diff --git a/.gitignore b/.gitignore index 2dd4976..f1a4bc5 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,5 @@ node_modules *~ \#*# .#* +dist/lib.js +dist/lib.js.map diff --git a/dist/lib.js b/dist/lib.js deleted file mode 100644 index 1bef167..0000000 --- a/dist/lib.js +++ /dev/null @@ -1,5 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define("dazzle",["react","react-dom"],t):"object"==typeof exports?exports.dazzle=t(require("react"),require("react-dom")):e.dazzle=t(e.react,e["react-dom"])}(this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="/",t(0)}([function(e,t,n){e.exports=n(67)},function(e,t,n){"use strict";var r=function(e,t,n,r,o,i,a,u){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,u],f=0;s=new Error(t.replace(/%s/g,function(){return c[f++]})),s.name="Invariant Violation"}throw s.framesToPop=1,s}};e.exports=r},function(t,n){t.exports=e},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){function r(e){if(!a(e)||o(e)!=u)return!1;var t=i(e);if(null===t)return!0;var n=l.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&f.call(n)==d}var o=n(12),i=n(111),a=n(8),u="[object Object]",s=Function.prototype,c=Object.prototype,f=s.toString,l=c.hasOwnProperty,d=f.call(Object);e.exports=r},function(e,t,n){function r(e,t){return a(i(e,t,o),e+"")}var o=n(47),i=n(138),a=n(141);e.exports=r},function(e,t,n){var r=n(44),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t){function n(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}e.exports=n},function(e,t){function n(e){return null!=e&&"object"==typeof e}e.exports=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{publishSource:!0,clientOffset:null},n=t.publishSource,r=t.clientOffset,o=t.getSourceClientOffset;(0,l.default)((0,p.default)(e),"Expected sourceIds to be an array.");var i=this.getMonitor(),a=this.getRegistry();(0,l.default)(!i.isDragging(),"Cannot call beginDrag while dragging.");for(var u=0;u=0;c--)if(i.canDragSource(e[c])){s=e[c];break}if(null!==s){var f=null;r&&((0,l.default)("function"==typeof o,"When clientOffset is provided, getSourceClientOffset must be a function."),f=o(s));var d=a.getSource(s),h=d.beginDrag(i,s);(0,l.default)((0,g.default)(h),"Item must be an object."),a.pinSource(s);var v=a.getSourceType(s);return{type:m,itemType:v,item:h,sourceId:s,clientOffset:r,sourceClientOffset:f,isSourcePublic:n}}}function i(){var e=this.getMonitor();if(e.isDragging())return{type:b}}function a(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.clientOffset,r=void 0===n?null:n;(0,l.default)((0,p.default)(e),"Expected targetIds to be an array.");var o=e.slice(0),i=this.getMonitor(),a=this.getRegistry();(0,l.default)(i.isDragging(),"Cannot call hover while not dragging."),(0,l.default)(!i.didDrop(),"Cannot call hover after drop.");for(var u=0;u=0;d--){var h=o[d],g=a.getTargetType(h);(0,y.default)(g,f)||o.splice(d,1)}for(var v=0;v0&&void 0!==arguments[0]?arguments[0]:{},n=this.getMonitor(),r=this.getRegistry();(0,l.default)(n.isDragging(),"Cannot call drop while not dragging."),(0,l.default)(!n.didDrop(),"Cannot call drop twice during one drag operation.");var o=n.getTargetIds().filter(n.canDropOnTarget,n);o.reverse(),o.forEach(function(o,i){var a=r.getTarget(o),u=a.drop(n,o);(0,l.default)("undefined"==typeof u||(0,g.default)(u),"Drop result must either be an object or undefined."),"undefined"==typeof u&&(u=0===i?{}:n.getDropResult()),e.store.dispatch({type:_,dropResult:c({},t,u)})})}function s(){var e=this.getMonitor(),t=this.getRegistry();(0,l.default)(e.isDragging(),"Cannot call endDrag while not dragging.");var n=e.getSourceId(),r=t.getSource(n,!0);return r.endDrag(e,n),t.unpinSource(),{type:O}}Object.defineProperty(t,"__esModule",{value:!0}),t.END_DRAG=t.DROP=t.HOVER=t.PUBLISH_DRAG_SOURCE=t.BEGIN_DRAG=void 0;var c=Object.assign||function(e){for(var t=1;t-1}var o=n(95);e.exports=r},function(e,t){function n(e,t,n){for(var r=-1,o=null==e?0:e.length;++r0&&void 0!==arguments[0]?arguments[0]:d,arguments[1]),t=arguments[2];switch(e.type){case f.HOVER:break;case l.ADD_SOURCE:case l.ADD_TARGET:case l.REMOVE_TARGET:case l.REMOVE_SOURCE:return d;case f.BEGIN_DRAG:case f.PUBLISH_DRAG_SOURCE:case f.END_DRAG:case f.DROP:default:return p}var n=e.targetIds,r=t.targetIds,o=(0,u.default)(n,r),i=!1;if(0===o.length){for(var a=0;a0)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o,t.areDirty=i;var a=n(155),u=r(a),s=n(148),c=r(s),f=n(9),l=n(10),d=[],p=[]},function(e,t,n){"use strict";function r(e,t){return e===t||e&&t&&e.x===t.x&&e.y===t.y}function o(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c,t=arguments[1];switch(t.type){case s.BEGIN_DRAG:return{initialSourceClientOffset:t.sourceClientOffset,initialClientOffset:t.clientOffset,clientOffset:t.clientOffset};case s.HOVER:return r(e.clientOffset,t.clientOffset)?e:u({},e,{clientOffset:t.clientOffset});case s.END_DRAG:case s.DROP:return c;default:return e}}function i(e){var t=e.clientOffset,n=e.initialClientOffset,r=e.initialSourceClientOffset;return t&&n&&r?{x:t.x+r.x-n.x,y:t.y+r.y-n.y}:null}function a(e){var t=e.clientOffset,n=e.initialClientOffset;return t&&n?{x:t.x-n.x,y:t.y-n.y}:null}Object.defineProperty(t,"__esModule",{value:!0});var u=Object.assign||function(e){for(var t=1;t=f&&(d=c,p=!1,t=new o(t));e:for(;++l0&&n(f)?t>1?r(f,t-1,n,a,u):o(u,f):a||(u[u.length]=f)}return u}var o=n(92),i=n(119);e.exports=r},function(e,t,n){function r(e,t,n){var r=-1,l=i,d=e.length,p=!0,h=[],g=h;if(n)p=!1,l=a;else if(d>=f){var v=t?null:s(e);if(v)return c(v);p=!1,l=u,g=new o}else g=t?[]:h;e:for(;++r-1&&e%1==0&&e-1&&e%1==0&&e<=r}var r=9007199254740991;e.exports=n},function(e,t){function n(){}e.exports=n},function(e,t,n){var r=n(40),o=n(5),i=n(17),a=o(function(e,t){return i(e)?r(e,t):[]});e.exports=a},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(152),i=r(o),a=i.default(function(){return/firefox/i.test(navigator.userAgent)});t.isFirefox=a;var u=i.default(function(){return Boolean(window.safari)});t.isSafari=u},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){return t===e||null!==t&&null!==e&&a.default(t,e)}t.__esModule=!0,t.default=o;var i=n(31),a=r(i);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e){var t=e.DecoratedComponent,n=e.createHandler,r=e.createMonitor,a=e.createConnector,d=e.registerHandler,h=e.containerDisplayName,v=e.getType,y=e.collect,b=e.options,D=b.arePropsEqual,_=void 0===D?g.default:D,O=t.displayName||t.name||"Component";return function(e){function g(t,i){o(this,g),e.call(this,t,i),this.handleChange=this.handleChange.bind(this),this.handleChildRef=this.handleChildRef.bind(this),m.default("object"==typeof this.context.dragDropManager,"Could not find the drag and drop manager in the context of %s. Make sure to wrap the top-level component of your app with DragDropContext. Read more: http://gaearon.github.io/react-dnd/docs-troubleshooting.html#could-not-find-the-drag-and-drop-manager-in-the-context",O,O),this.manager=this.context.dragDropManager,this.handlerMonitor=r(this.manager),this.handlerConnector=a(this.manager.getBackend()),this.handler=n(this.handlerMonitor),this.disposable=new l.SerialDisposable,this.receiveProps(t),this.state=this.getCurrentState(),this.dispose()}return i(g,e),g.prototype.getHandlerId=function(){return this.handlerId},g.prototype.getDecoratedComponentInstance=function(){return this.decoratedComponentInstance},g.prototype.shouldComponentUpdate=function(e,t){return!_(e,this.props)||!p.default(t,this.state)},s(g,null,[{key:"DecoratedComponent",value:t,enumerable:!0},{key:"displayName",value:h+"("+O+")",enumerable:!0},{key:"contextTypes",value:{dragDropManager:c.PropTypes.object.isRequired},enumerable:!0}]),g.prototype.componentDidMount=function(){this.isCurrentlyMounted=!0,this.disposable=new l.SerialDisposable,this.currentType=null,this.receiveProps(this.props),this.handleChange()},g.prototype.componentWillReceiveProps=function(e){_(e,this.props)||(this.receiveProps(e),this.handleChange())},g.prototype.componentWillUnmount=function(){this.dispose(),this.isCurrentlyMounted=!1},g.prototype.receiveProps=function(e){this.handler.receiveProps(e),this.receiveType(v(e))},g.prototype.receiveType=function(e){if(e!==this.currentType){this.currentType=e;var t=d(e,this.handler,this.manager),n=t.handlerId,r=t.unregister;this.handlerId=n,this.handlerMonitor.receiveHandlerId(n),this.handlerConnector.receiveHandlerId(n);var o=this.manager.getMonitor(),i=o.subscribeToStateChange(this.handleChange,{handlerIds:[n]});this.disposable.setDisposable(new l.CompositeDisposable(new l.Disposable(i),new l.Disposable(r)))}},g.prototype.handleChange=function(){if(this.isCurrentlyMounted){var e=this.getCurrentState();p.default(e,this.state)||this.setState(e)}},g.prototype.dispose=function(){this.disposable.dispose(),this.handlerConnector.receiveHandlerId(null)},g.prototype.handleChildRef=function(e){this.decoratedComponentInstance=e,this.handler.receiveComponent(e)},g.prototype.getCurrentState=function(){var e=y(this.handlerConnector.hooks,this.handlerMonitor);return e},g.prototype.render=function(){return f.default.createElement(t,u({},this.props,this.state,{ref:this.handleChildRef}))},g}(c.Component)}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t, or turn it into a ")+"drag source or a drop target itself.")}}function i(e){return function(){var t=arguments.length<=0||void 0===arguments[0]?null:arguments[0],n=arguments.length<=1||void 0===arguments[1]?null:arguments[1];if(!c.isValidElement(t)){var r=t;return void e(r,n)}var i=t;o(i);var a=n?function(t){return e(t,n)}:e;return s.default(i,a)}}function a(e){var t={};return Object.keys(e).forEach(function(n){var r=e[n],o=i(r);t[n]=function(){return o}}),t}t.__esModule=!0,t.default=a;var u=n(176),s=r(u),c=n(2);e.exports=t.default},function(e,t,n){try{(function(){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),o=e(r),i=function(e){var t=e.text,n=e.onClick;return o.default.createElement("div",{className:"add-widget-button",onClick:n},o.default.createElement("a",{className:"add-widget-link"},t))};i.propTypes={onClick:r.PropTypes.func,text:r.PropTypes.string},i.defaultProps={text:"Add Widget"},t.default=i}).call(this)}finally{}},function(e,t,n){try{(function(){"use strict";function e(e){return e&&e.__esModule?e:{default:e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a,u,s=function(){function e(e,t){for(var n=0;no&&s>a)){var c=e.layout,f=e.columnIndex,l=e.rowIndex;if(t.getItem().columnIndex===f){var p=(0,g.sortWidget)(c,{rowIndex:l,columnIndex:f,widgetIndex:r},{rowIndex:l,columnIndex:f,widgetIndex:o},t.getItem().widgetName);e.onMove(p),t.getItem().widgetIndex=o}}}}},D=(a=(0,p.DropTarget)(h.WIDGET,b,function(e){return{connectDropTarget:e.dropTarget()}}),u=(0,p.DragSource)(h.WIDGET,m,function(e,t){return{connectDragSource:e.dragSource(),isDragging:t.isDragging()}}),a(s=u(s=function(e){function t(){var e,n,i,a;r(this,t);for(var u=arguments.length,s=Array(u),c=0;cf){for(var t=0,n=u.length-c;t1&&void 0!==arguments[1]?arguments[1]:{};i(this,e);var r=(0,s.default)(f.default);this.context=n,this.store=r,this.monitor=new h.default(r),this.registry=this.monitor.registry,this.backend=t(this),r.subscribe(this.handleRefCountChange.bind(this))}return a(e,[{key:"handleRefCountChange",value:function(){var e=this.store.getState().refCount>0;e&&!this.isSetUp?(this.backend.setup(),this.isSetUp=!0):!e&&this.isSetUp&&(this.backend.teardown(),this.isSetUp=!1)}},{key:"getContext",value:function(){return this.context}},{key:"getMonitor",value:function(){return this.monitor}},{key:"getBackend",value:function(){return this.backend}},{key:"getRegistry",value:function(){return this.registry}},{key:"getActions",value:function(){function e(e){return function(){for(var r=arguments.length,o=Array(r),i=0;i1&&void 0!==arguments[1]?arguments[1]:{},r=n.handlerIds;(0,u.default)("function"==typeof e,"listener must be a function."),(0,u.default)("undefined"==typeof r||(0,c.default)(r),"handlerIds, when specified, must be an array of strings.");var o=this.store.getState().stateId,i=function(){var n=t.store.getState(),i=n.stateId;try{var a=i===o||i===o+1&&!(0,g.areDirty)(n.dirtyHandlerIds,r);a||e()}finally{o=i}};return this.store.subscribe(i)}},{key:"subscribeToOffsetChange",value:function(e){var t=this;(0,u.default)("function"==typeof e,"listener must be a function.");var n=this.store.getState().dragOffset,r=function(){var r=t.store.getState().dragOffset;r!==n&&(n=r,e())};return this.store.subscribe(r)}},{key:"canDragSource",value:function(e){var t=this.registry.getSource(e);return(0,u.default)(t,"Expected to find a valid source."),!this.isDragging()&&t.canDrag(this,e)}},{key:"canDropOnTarget",value:function(e){var t=this.registry.getTarget(e);if((0,u.default)(t,"Expected to find a valid target."),!this.isDragging()||this.didDrop())return!1;var n=this.registry.getTargetType(e),r=this.getItemType();return(0,l.default)(n,r)&&t.canDrop(this,e)}},{key:"isDragging",value:function(){return Boolean(this.getItemType())}},{key:"isDraggingSource",value:function(e){var t=this.registry.getSource(e,!0);if((0,u.default)(t,"Expected to find a valid source."),!this.isDragging()||!this.isSourcePublic())return!1;var n=this.registry.getSourceType(e),r=this.getItemType();return n===r&&t.isDragging(this,e)}},{key:"isOverTarget",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{shallow:!1},n=t.shallow;if(!this.isDragging())return!1;var r=this.registry.getTargetType(e),o=this.getItemType();if(!(0,l.default)(r,o))return!1;var i=this.getTargetIds();if(!i.length)return!1;var a=i.indexOf(e);return n?a===i.length-1:a>-1}},{key:"getItemType",value:function(){return this.store.getState().dragOperation.itemType}},{key:"getItem",value:function(){return this.store.getState().dragOperation.item}},{key:"getSourceId",value:function(){return this.store.getState().dragOperation.sourceId}},{key:"getTargetIds",value:function(){return this.store.getState().dragOperation.targetIds}},{key:"getDropResult",value:function(){return this.store.getState().dragOperation.dropResult}},{key:"didDrop",value:function(){return this.store.getState().dragOperation.didDrop}},{key:"isSourcePublic",value:function(){return this.store.getState().dragOperation.isSourcePublic}},{key:"getInitialClientOffset",value:function(){return this.store.getState().dragOffset.initialClientOffset}},{key:"getInitialSourceClientOffset",value:function(){return this.store.getState().dragOffset.initialSourceClientOffset}},{key:"getClientOffset",value:function(){return this.store.getState().dragOffset.clientOffset}},{key:"getSourceClientOffset",value:function(){return(0,h.getSourceClientOffset)(this.store.getState().dragOffset)}},{key:"getDifferenceFromInitialOffset",value:function(){return(0,h.getDifferenceFromInitialOffset)(this.store.getState().dragOffset)}}]),e}();t.default=v},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:f,t=arguments[1];switch(t.type){case s.BEGIN_DRAG:return i({},e,{itemType:t.itemType,item:t.item,sourceId:t.sourceId,isSourcePublic:t.isSourcePublic,dropResult:null,didDrop:!1});case s.PUBLISH_DRAG_SOURCE:return i({},e,{isSourcePublic:!0});case s.HOVER:return i({},e,{targetIds:t.targetIds});case c.REMOVE_TARGET:return e.targetIds.indexOf(t.targetId)===-1?e:i({},e,{targetIds:(0,u.default)(e.targetIds,t.targetId)});case s.DROP:return i({},e,{dropResult:t.dropResult,didDrop:!0,targetIds:[]});case s.END_DRAG:return i({},e,{itemType:null,item:null,sourceId:null,dropResult:null,didDrop:!1,isSourcePublic:null,targetIds:[]});default:return e}}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{},t=arguments[1];return{dirtyHandlerIds:(0,d.default)(e.dirtyHandlerIds,t,e.dragOperation),dragOffset:(0,a.default)(e.dragOffset,t),refCount:(0,f.default)(e.refCount,t),dragOperation:(0,s.default)(e.dragOperation,t),stateId:(0,h.default)(e.stateId)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var i=n(35),a=r(i),u=n(81),s=r(u),c=n(83),f=r(c),l=n(34),d=r(l),p=n(84),h=r(p)},function(e,t,n){"use strict";function r(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments[1];switch(t.type){case o.ADD_SOURCE:case o.ADD_TARGET:return e+1;case o.REMOVE_SOURCE:case o.REMOVE_TARGET:return e-1;default:return e}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;var o=n(10)},function(e,t){"use strict";function n(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e+1}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n},function(e,t){"use strict";function n(){return r++}Object.defineProperty(t,"__esModule",{value:!0}),t.default=n;var r=0},function(e,t,n){function r(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t=120&&y.length>=120)?new o(p&&y):void 0}y=e[0];var m=-1,b=h[0];e:for(;++m1?n[o-1]:void 0,u=o>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(o--,a):void 0,u&&i(n[0],n[1],u)&&(a=o<3?void 0:a,o=1),t=Object(t);++r-1}var o=n(11);e.exports=r},function(e,t,n){function r(e,t){var n=this.__data__,r=o(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}var o=n(11);e.exports=r},function(e,t,n){function r(){this.size=0,this.__data__={hash:new o,map:new(a||i),string:new o}}var o=n(86),i=n(87),a=n(88);e.exports=r},function(e,t,n){function r(e){var t=o(this,e).delete(e);return this.size-=t?1:0,t}var o=n(13);e.exports=r},function(e,t,n){function r(e){return o(this,e).get(e)}var o=n(13);e.exports=r},function(e,t,n){function r(e){return o(this,e).has(e)}var o=n(13);e.exports=r},function(e,t,n){function r(e,t){var n=o(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}var o=n(13);e.exports=r},function(e,t){function n(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}e.exports=n},function(e,t,n){(function(e){var r=n(44),o="object"==typeof t&&t&&!t.nodeType&&t,i=o&&"object"==typeof e&&e&&!e.nodeType&&e,a=i&&i.exports===o,u=a&&r.process,s=function(){try{return u&&u.binding&&u.binding("util")}catch(e){}}();e.exports=s}).call(t,n(32)(e))},function(e,t){function n(e){return o.call(e)}var r=Object.prototype,o=r.toString;e.exports=n},function(e,t){function n(e,t){return function(n){return e(t(n))}}e.exports=n},function(e,t,n){function r(e,t,n){return t=i(void 0===t?e.length-1:t,0),function(){for(var r=arguments,a=-1,u=i(r.length-t,0),s=Array(u);++a0){if(++t>=r)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}var r=800,o=16,i=Date.now;e.exports=n},function(e,t){function n(e,t,n){for(var r=n-1,o=e.length;++r0},e.prototype.leave=function(e){var t=this.entered.length;return this.entered=s.default(this.entered.filter(function(e){return document.documentElement.contains(e)}),e),t>0&&0===this.entered.length},e.prototype.reset=function(){this.entered=[]},e}();t.default=c,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function o(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var a=n(147),u=o(a),s=n(163),c=o(s),f=n(156),l=o(f),d=n(53),p=n(160),h=n(159),g=n(29),v=r(g),y=function(){function e(t){i(this,e),this.actions=t.getActions(),this.monitor=t.getMonitor(), -this.registry=t.getRegistry(),this.sourcePreviewNodes={},this.sourcePreviewNodeOptions={},this.sourceNodes={},this.sourceNodeOptions={},this.enterLeaveCounter=new l.default,this.getSourceClientOffset=this.getSourceClientOffset.bind(this),this.handleTopDragStart=this.handleTopDragStart.bind(this),this.handleTopDragStartCapture=this.handleTopDragStartCapture.bind(this),this.handleTopDragEndCapture=this.handleTopDragEndCapture.bind(this),this.handleTopDragEnter=this.handleTopDragEnter.bind(this),this.handleTopDragEnterCapture=this.handleTopDragEnterCapture.bind(this),this.handleTopDragLeaveCapture=this.handleTopDragLeaveCapture.bind(this),this.handleTopDragOver=this.handleTopDragOver.bind(this),this.handleTopDragOverCapture=this.handleTopDragOverCapture.bind(this),this.handleTopDrop=this.handleTopDrop.bind(this),this.handleTopDropCapture=this.handleTopDropCapture.bind(this),this.handleSelectStart=this.handleSelectStart.bind(this),this.endDragIfSourceWasRemovedFromDOM=this.endDragIfSourceWasRemovedFromDOM.bind(this),this.endDragNativeItem=this.endDragNativeItem.bind(this)}return e.prototype.setup=function(){if("undefined"!=typeof window){if(this.constructor.isSetUp)throw new Error("Cannot have two HTML5 backends at the same time.");this.constructor.isSetUp=!0,this.addEventListeners(window)}},e.prototype.teardown=function(){"undefined"!=typeof window&&(this.constructor.isSetUp=!1,this.removeEventListeners(window),this.clearCurrentDragSourceNode())},e.prototype.addEventListeners=function(e){e.addEventListener("dragstart",this.handleTopDragStart),e.addEventListener("dragstart",this.handleTopDragStartCapture,!0),e.addEventListener("dragend",this.handleTopDragEndCapture,!0),e.addEventListener("dragenter",this.handleTopDragEnter),e.addEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.addEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.addEventListener("dragover",this.handleTopDragOver),e.addEventListener("dragover",this.handleTopDragOverCapture,!0),e.addEventListener("drop",this.handleTopDrop),e.addEventListener("drop",this.handleTopDropCapture,!0)},e.prototype.removeEventListeners=function(e){e.removeEventListener("dragstart",this.handleTopDragStart),e.removeEventListener("dragstart",this.handleTopDragStartCapture,!0),e.removeEventListener("dragend",this.handleTopDragEndCapture,!0),e.removeEventListener("dragenter",this.handleTopDragEnter),e.removeEventListener("dragenter",this.handleTopDragEnterCapture,!0),e.removeEventListener("dragleave",this.handleTopDragLeaveCapture,!0),e.removeEventListener("dragover",this.handleTopDragOver),e.removeEventListener("dragover",this.handleTopDragOverCapture,!0),e.removeEventListener("drop",this.handleTopDrop),e.removeEventListener("drop",this.handleTopDropCapture,!0)},e.prototype.connectDragPreview=function(e,t,n){var r=this;return this.sourcePreviewNodeOptions[e]=n,this.sourcePreviewNodes[e]=t,function(){delete r.sourcePreviewNodes[e],delete r.sourcePreviewNodeOptions[e]}},e.prototype.connectDragSource=function(e,t,n){var r=this;this.sourceNodes[e]=t,this.sourceNodeOptions[e]=n;var o=function(t){return r.handleDragStart(t,e)},i=function(t){return r.handleSelectStart(t,e)};return t.setAttribute("draggable",!0),t.addEventListener("dragstart",o),t.addEventListener("selectstart",i),function(){delete r.sourceNodes[e],delete r.sourceNodeOptions[e],t.removeEventListener("dragstart",o),t.removeEventListener("selectstart",i),t.setAttribute("draggable",!1)}},e.prototype.connectDropTarget=function(e,t){var n=this,r=function(t){return n.handleDragEnter(t,e)},o=function(t){return n.handleDragOver(t,e)},i=function(t){return n.handleDrop(t,e)};return t.addEventListener("dragenter",r),t.addEventListener("dragover",o),t.addEventListener("drop",i),function(){t.removeEventListener("dragenter",r),t.removeEventListener("dragover",o),t.removeEventListener("drop",i)}},e.prototype.getCurrentSourceNodeOptions=function(){var e=this.monitor.getSourceId(),t=this.sourceNodeOptions[e];return u.default(t||{},{dropEffect:"move"})},e.prototype.getCurrentDropEffect=function(){return this.isDraggingNativeItem()?"copy":this.getCurrentSourceNodeOptions().dropEffect},e.prototype.getCurrentSourcePreviewNodeOptions=function(){var e=this.monitor.getSourceId(),t=this.sourcePreviewNodeOptions[e];return u.default(t||{},{anchorX:.5,anchorY:.5,captureDraggingState:!1})},e.prototype.getSourceClientOffset=function(e){return p.getNodeClientOffset(this.sourceNodes[e])},e.prototype.isDraggingNativeItem=function(){var e=this.monitor.getItemType();return Object.keys(v).some(function(t){return v[t]===e})},e.prototype.beginDragNativeItem=function(e){this.clearCurrentDragSourceNode();var t=h.createNativeDragSource(e);this.currentNativeSource=new t,this.currentNativeHandle=this.registry.addSource(e,this.currentNativeSource),this.actions.beginDrag([this.currentNativeHandle]),d.isFirefox()&&window.addEventListener("mousemove",this.endDragNativeItem,!0)},e.prototype.endDragNativeItem=function(){this.isDraggingNativeItem()&&(d.isFirefox()&&window.removeEventListener("mousemove",this.endDragNativeItem,!0),this.actions.endDrag(),this.registry.removeSource(this.currentNativeHandle),this.currentNativeHandle=null,this.currentNativeSource=null)},e.prototype.endDragIfSourceWasRemovedFromDOM=function(){var e=this.currentDragSourceNode;document.body.contains(e)||this.clearCurrentDragSourceNode()&&this.actions.endDrag()},e.prototype.setCurrentDragSourceNode=function(e){this.clearCurrentDragSourceNode(),this.currentDragSourceNode=e,this.currentDragSourceNodeOffset=p.getNodeClientOffset(e),this.currentDragSourceNodeOffsetChanged=!1,window.addEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0)},e.prototype.clearCurrentDragSourceNode=function(){return!!this.currentDragSourceNode&&(this.currentDragSourceNode=null,this.currentDragSourceNodeOffset=null,this.currentDragSourceNodeOffsetChanged=!1,window.removeEventListener("mousemove",this.endDragIfSourceWasRemovedFromDOM,!0),!0)},e.prototype.checkIfCurrentDragSourceRectChanged=function(){var e=this.currentDragSourceNode;return!!e&&(!!this.currentDragSourceNodeOffsetChanged||(this.currentDragSourceNodeOffsetChanged=!c.default(p.getNodeClientOffset(e),this.currentDragSourceNodeOffset),this.currentDragSourceNodeOffsetChanged))},e.prototype.handleTopDragStartCapture=function(){this.clearCurrentDragSourceNode(),this.dragStartSourceIds=[]},e.prototype.handleDragStart=function(e,t){this.dragStartSourceIds.unshift(t)},e.prototype.handleTopDragStart=function(e){var t=this,n=this.dragStartSourceIds;this.dragStartSourceIds=null;var r=p.getEventClientOffset(e);this.actions.beginDrag(n,{publishSource:!1,getSourceClientOffset:this.getSourceClientOffset,clientOffset:r});var o=e.dataTransfer,i=h.matchNativeItemType(o);if(this.monitor.isDragging()){if("function"==typeof o.setDragImage){var a=this.monitor.getSourceId(),u=this.sourceNodes[a],s=this.sourcePreviewNodes[a]||u,c=this.getCurrentSourcePreviewNodeOptions(),f=c.anchorX,l=c.anchorY,d={anchorX:f,anchorY:l},g=p.getDragPreviewOffset(u,s,r,d);o.setDragImage(s,g.x,g.y)}try{o.setData("application/json",{})}catch(e){}this.setCurrentDragSourceNode(e.target);var v=this.getCurrentSourcePreviewNodeOptions(),y=v.captureDraggingState;y?this.actions.publishDragSource():setTimeout(function(){return t.actions.publishDragSource()})}else if(i)this.beginDragNativeItem(i);else{if(!(o.types||e.target.hasAttribute&&e.target.hasAttribute("draggable")))return;e.preventDefault()}},e.prototype.handleTopDragEndCapture=function(){this.clearCurrentDragSourceNode()&&this.actions.endDrag()},e.prototype.handleTopDragEnterCapture=function(e){this.dragEnterTargetIds=[];var t=this.enterLeaveCounter.enter(e.target);if(t&&!this.monitor.isDragging()){var n=e.dataTransfer,r=h.matchNativeItemType(n);r&&this.beginDragNativeItem(r)}},e.prototype.handleDragEnter=function(e,t){this.dragEnterTargetIds.unshift(t)},e.prototype.handleTopDragEnter=function(e){var t=this,n=this.dragEnterTargetIds;if(this.dragEnterTargetIds=[],this.monitor.isDragging()){d.isFirefox()||this.actions.hover(n,{clientOffset:p.getEventClientOffset(e)});var r=n.some(function(e){return t.monitor.canDropOnTarget(e)});r&&(e.preventDefault(),e.dataTransfer.dropEffect=this.getCurrentDropEffect())}},e.prototype.handleTopDragOverCapture=function(){this.dragOverTargetIds=[]},e.prototype.handleDragOver=function(e,t){this.dragOverTargetIds.unshift(t)},e.prototype.handleTopDragOver=function(e){var t=this,n=this.dragOverTargetIds;if(this.dragOverTargetIds=[],!this.monitor.isDragging())return e.preventDefault(),void(e.dataTransfer.dropEffect="none");this.actions.hover(n,{clientOffset:p.getEventClientOffset(e)});var r=n.some(function(e){return t.monitor.canDropOnTarget(e)});r?(e.preventDefault(),e.dataTransfer.dropEffect=this.getCurrentDropEffect()):this.isDraggingNativeItem()?(e.preventDefault(),e.dataTransfer.dropEffect="none"):this.checkIfCurrentDragSourceRectChanged()&&(e.preventDefault(),e.dataTransfer.dropEffect="move")},e.prototype.handleTopDragLeaveCapture=function(e){this.isDraggingNativeItem()&&e.preventDefault();var t=this.enterLeaveCounter.leave(e.target);t&&this.isDraggingNativeItem()&&this.endDragNativeItem()},e.prototype.handleTopDropCapture=function(e){this.dropTargetIds=[],e.preventDefault(),this.isDraggingNativeItem()&&this.currentNativeSource.mutateItemByReadingDataTransfer(e.dataTransfer),this.enterLeaveCounter.reset()},e.prototype.handleDrop=function(e,t){this.dropTargetIds.unshift(t)},e.prototype.handleTopDrop=function(e){var t=this.dropTargetIds;this.dropTargetIds=[],this.actions.hover(t,{clientOffset:p.getEventClientOffset(e)}),this.actions.drop(),this.isDraggingNativeItem()?this.endDragNativeItem():this.endDragIfSourceWasRemovedFromDOM()},e.prototype.handleSelectStart=function(e){var t=e.target;"function"==typeof t.dragDrop&&("INPUT"===t.tagName||"SELECT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable||(e.preventDefault(),t.dragDrop()))},e}();t.default=y,e.exports=t.default},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var r=function(){function e(t,r){n(this,e);for(var o=t.length,i=[],a=0;ae))return n[c];s=c-1}}a=Math.max(0,s);var l=e-t[a],d=l*l;return n[a]+r[a]*l+o[a]*d+i[a]*l*d},e}();t.default=r,e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t,n){var r=t.reduce(function(t,n){return t||e.getData(n)},null);return null!=r?r:n}function u(e){var t=d[e],n=t.exposeProperty,r=t.matchesTypes,a=t.getData;return function(){function e(){o(this,e),this.item=Object.defineProperties({},i({},n,{get:function(){return console.warn("Browser doesn't allow reading \""+n+'" until the drop event.'),null},configurable:!0,enumerable:!0}))}return e.prototype.mutateItemByReadingDataTransfer=function(e){delete this.item[n],this.item[n]=a(e,r)},e.prototype.canDrag=function(){return!0},e.prototype.beginDrag=function(){return this.item},e.prototype.isDragging=function(e,t){return t===e.getSourceId()},e.prototype.endDrag=function(){},e}()}function s(e){var t=Array.prototype.slice.call(e.types||[]);return Object.keys(d).filter(function(e){var n=d[e].matchesTypes;return n.some(function(e){return t.indexOf(e)>-1})})[0]||null}t.__esModule=!0;var c;t.createNativeDragSource=u,t.matchNativeItemType=s;var f=n(29),l=r(f),d=(c={},i(c,l.FILE,{exposeProperty:"files",matchesTypes:["Files"],getData:function(e){return Array.prototype.slice.call(e.files)}}),i(c,l.URL,{exposeProperty:"urls",matchesTypes:["Url","text/uri-list"],getData:function(e,t){return a(e,t,"").split("\n")}}),i(c,l.TEXT,{exposeProperty:"text",matchesTypes:["Text","text/plain"],getData:function(e,t){return a(e,t,"")}}),c)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=e.nodeType===f?e:e.parentElement;if(!t)return null;var n=t.getBoundingClientRect(),r=n.top,o=n.left;return{x:o,y:r}}function i(e){return{x:e.clientX,y:e.clientY}}function a(e,t,n,r){var i="IMG"===t.nodeName&&(u.isFirefox()||!document.documentElement.contains(t)),a=i?e:t,s=o(a),f={x:n.x-s.x,y:n.y-s.y},l=e.offsetWidth,d=e.offsetHeight,p=r.anchorX,h=r.anchorY,g=i?t.width:l,v=i?t.height:d;u.isSafari()&&i?(v/=window.devicePixelRatio,g/=window.devicePixelRatio):u.isFirefox()&&!i&&(v*=window.devicePixelRatio,g*=window.devicePixelRatio);var y=new c.default([0,.5,1],[f.x,f.x/l*g,f.x+g-l]),m=new c.default([0,.5,1],[f.y,f.y/d*v,f.y+v-d]),b=y.interpolate(p),D=m.interpolate(h);return u.isSafari()&&i&&(D+=(window.devicePixelRatio-1)*v),{x:b,y:D}}t.__esModule=!0,t.getNodeClientOffset=o,t.getEventClientOffset=i,t.getDragPreviewOffset=a;var u=n(53),s=n(158),c=r(s),f=1},function(e,t){"use strict";function n(){return r||(r=new Image,r.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),r}t.__esModule=!0,t.default=n;var r=void 0;e.exports=t.default},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function o(e){return e&&e.__esModule?e:{default:e}}function i(e){return new u.default(e)}t.__esModule=!0,t.default=i;var a=n(157),u=o(a),s=n(161),c=o(s),f=n(29),l=r(f);t.NativeTypes=l,t.getEmptyImage=c.default},function(e,t){"use strict";function n(e,t){if(e===t)return!0;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var o=Object.prototype.hasOwnProperty,i=0;i-1,'Expected the drag source specification to only have some of the following keys: %s. Instead received a specification with an unexpected "%s" key. Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html',c.join(", "),t),u.default("function"==typeof e[t],"Expected %s in the drag source specification to be a function. Instead received a specification with %s: %s. Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html",t,t,e[t])}),f.forEach(function(t){u.default("function"==typeof e[t],"Expected %s in the drag source specification to be a function. Instead received a specification with %s: %s. Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html",t,t,e[t])});var t=function(){function t(e){o(this,t),this.monitor=e,this.props=null,this.component=null}return t.prototype.receiveProps=function(e){this.props=e},t.prototype.receiveComponent=function(e){this.component=e},t.prototype.canDrag=function(){return!e.canDrag||e.canDrag(this.props,this.monitor)},t.prototype.isDragging=function(t,n){return e.isDragging?e.isDragging(this.props,this.monitor):n===t.getSourceId()},t.prototype.beginDrag=function(){var t=e.beginDrag(this.props,this.monitor,this.component);return t},t.prototype.endDrag=function(){e.endDrag&&e.endDrag(this.props,this.monitor,this.component)},t}();return function(e){return new t(e)}}t.__esModule=!0,t.default=i;var a=n(1),u=r(a),s=n(4),c=(r(s),["canDrag","beginDrag","canDrag","isDragging","endDrag"]),f=["beginDrag"];e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){return new f(e)}t.__esModule=!0,t.default=i;var a=n(1),u=r(a),s=!1,c=!1,f=function(){function e(t){o(this,e),this.internalMonitor=t.getMonitor()}return e.prototype.receiveHandlerId=function(e){this.sourceId=e},e.prototype.canDrag=function(){u.default(!s,"You may not call monitor.canDrag() inside your canDrag() implementation. Read more: http://gaearon.github.io/react-dnd/docs-drag-source-monitor.html");try{return s=!0,this.internalMonitor.canDragSource(this.sourceId)}finally{s=!1}},e.prototype.isDragging=function(){u.default(!c,"You may not call monitor.isDragging() inside your isDragging() implementation. Read more: http://gaearon.github.io/react-dnd/docs-drag-source-monitor.html");try{return c=!0,this.internalMonitor.isDraggingSource(this.sourceId)}finally{c=!1}},e.prototype.getItemType=function(){return this.internalMonitor.getItemType()},e.prototype.getItem=function(){return this.internalMonitor.getItem()},e.prototype.getDropResult=function(){return this.internalMonitor.getDropResult()},e.prototype.didDrop=function(){return this.internalMonitor.didDrop()},e.prototype.getInitialClientOffset=function(){return this.internalMonitor.getInitialClientOffset()},e.prototype.getInitialSourceClientOffset=function(){return this.internalMonitor.getInitialSourceClientOffset()},e.prototype.getSourceClientOffset=function(){return this.internalMonitor.getSourceClientOffset()},e.prototype.getClientOffset=function(){return this.internalMonitor.getClientOffset()},e.prototype.getDifferenceFromInitialOffset=function(){return this.internalMonitor.getDifferenceFromInitialOffset()},e}();e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){function t(){u&&(u(),u=null),r&&o&&(u=e.connectDropTarget(r,o,i))}function n(e){e!==r&&(r=e,t())}var r=void 0,o=void 0,i=void 0,u=void 0,c=a.default({dropTarget:function(e,n){e===o&&s.default(n,i)||(o=e,i=n,t())}});return{receiveHandlerId:n,hooks:c}}t.__esModule=!0,t.default=o;var i=n(58),a=r(i),u=n(54),s=r(u);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){Object.keys(e).forEach(function(t){u.default(c.indexOf(t)>-1,'Expected the drop target specification to only have some of the following keys: %s. Instead received a specification with an unexpected "%s" key. Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html',c.join(", "),t),u.default("function"==typeof e[t],"Expected %s in the drop target specification to be a function. Instead received a specification with %s: %s. Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html",t,t,e[t])});var t=function(){function t(e){o(this,t),this.monitor=e,this.props=null,this.component=null}return t.prototype.receiveProps=function(e){this.props=e},t.prototype.receiveMonitor=function(e){this.monitor=e},t.prototype.receiveComponent=function(e){this.component=e},t.prototype.canDrop=function(){return!e.canDrop||e.canDrop(this.props,this.monitor)},t.prototype.hover=function(){e.hover&&e.hover(this.props,this.monitor,this.component)},t.prototype.drop=function(){if(e.drop){var t=e.drop(this.props,this.monitor,this.component);return t}},t}();return function(e){return new t(e)}}t.__esModule=!0,t.default=i;var a=n(1),u=r(a),s=n(4),c=(r(s),["canDrop","hover","drop"]);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e){return new c(e)}t.__esModule=!0,t.default=i;var a=n(1),u=r(a),s=!1,c=function(){function e(t){o(this,e),this.internalMonitor=t.getMonitor()}return e.prototype.receiveHandlerId=function(e){this.targetId=e},e.prototype.canDrop=function(){u.default(!s,"You may not call monitor.canDrop() inside your canDrop() implementation. Read more: http://gaearon.github.io/react-dnd/docs-drop-target-monitor.html");try{return s=!0,this.internalMonitor.canDropOnTarget(this.targetId)}finally{s=!1}},e.prototype.isOver=function(e){return this.internalMonitor.isOverTarget(this.targetId,e)},e.prototype.getItemType=function(){return this.internalMonitor.getItemType()},e.prototype.getItem=function(){return this.internalMonitor.getItem()},e.prototype.getDropResult=function(){return this.internalMonitor.getDropResult()},e.prototype.didDrop=function(){return this.internalMonitor.didDrop()},e.prototype.getInitialClientOffset=function(){return this.internalMonitor.getInitialClientOffset()},e.prototype.getInitialSourceClientOffset=function(){return this.internalMonitor.getInitialSourceClientOffset()},e.prototype.getSourceClientOffset=function(){return this.internalMonitor.getSourceClientOffset()},e.prototype.getClientOffset=function(){return this.internalMonitor.getClientOffset()},e.prototype.getDifferenceFromInitialOffset=function(){return this.internalMonitor.getDifferenceFromInitialOffset()},e}();e.exports=t.default},function(e,t){"use strict";function n(e,t,n){function r(){o.removeSource(i)}var o=n.getRegistry(),i=o.addSource(e,t);return{handlerId:i,unregister:r}}t.__esModule=!0,t.default=n,e.exports=t.default},function(e,t){"use strict";function n(e,t,n){function r(){o.removeTarget(i)}var o=n.getRegistry(),i=o.addTarget(e,t);return{handlerId:i,unregister:r}}t.__esModule=!0,t.default=n,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n=e.ref;return a.default("string"!=typeof n,"Cannot connect React DnD to an element with an existing string ref. Please convert it to use a callback ref instead, or wrap it into a or
. Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute"), -n?u.cloneElement(e,{ref:function(e){t(e),n&&n(e)}}):u.cloneElement(e,{ref:t})}t.__esModule=!0,t.default=o;var i=n(1),a=r(i),u=n(2);e.exports=t.default},function(e,t){"use strict";function n(e,t){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var n=Object(e),r=Object.prototype.hasOwnProperty,o=1;o true\n\t *\n\t * _.isArray(document.body.children);\n\t * // => false\n\t *\n\t * _.isArray('abc');\n\t * // => false\n\t *\n\t * _.isArray(_.noop);\n\t * // => false\n\t */\n\tvar isArray = Array.isArray;\n\t\n\tmodule.exports = isArray;\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseGetTag = __webpack_require__(12),\n\t getPrototype = __webpack_require__(111),\n\t isObjectLike = __webpack_require__(8);\n\t\n\t/** `Object#toString` result references. */\n\tvar objectTag = '[object Object]';\n\t\n\t/** Used for built-in method references. */\n\tvar funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\t\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/** Used to infer the `Object` constructor. */\n\tvar objectCtorString = funcToString.call(Object);\n\t\n\t/**\n\t * Checks if `value` is a plain object, that is, an object created by the\n\t * `Object` constructor or one with a `[[Prototype]]` of `null`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.8.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * }\n\t *\n\t * _.isPlainObject(new Foo);\n\t * // => false\n\t *\n\t * _.isPlainObject([1, 2, 3]);\n\t * // => false\n\t *\n\t * _.isPlainObject({ 'x': 0, 'y': 0 });\n\t * // => true\n\t *\n\t * _.isPlainObject(Object.create(null));\n\t * // => true\n\t */\n\tfunction isPlainObject(value) {\n\t if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n\t return false;\n\t }\n\t var proto = getPrototype(value);\n\t if (proto === null) {\n\t return true;\n\t }\n\t var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n\t return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n\t funcToString.call(Ctor) == objectCtorString;\n\t}\n\t\n\tmodule.exports = isPlainObject;\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar identity = __webpack_require__(47),\n\t overRest = __webpack_require__(138),\n\t setToString = __webpack_require__(141);\n\t\n\t/**\n\t * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n\t *\n\t * @private\n\t * @param {Function} func The function to apply a rest parameter to.\n\t * @param {number} [start=func.length-1] The start position of the rest parameter.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction baseRest(func, start) {\n\t return setToString(overRest(func, start, identity), func + '');\n\t}\n\t\n\tmodule.exports = baseRest;\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar freeGlobal = __webpack_require__(44);\n\t\n\t/** Detect free variable `self`. */\n\tvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\t\n\t/** Used as a reference to the global object. */\n\tvar root = freeGlobal || freeSelf || Function('return this')();\n\t\n\tmodule.exports = root;\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return value != null && (type == 'object' || type == 'function');\n\t}\n\t\n\tmodule.exports = isObject;\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return value != null && typeof value == 'object';\n\t}\n\t\n\tmodule.exports = isObjectLike;\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.END_DRAG = exports.DROP = exports.HOVER = exports.PUBLISH_DRAG_SOURCE = exports.BEGIN_DRAG = undefined;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\texports.beginDrag = beginDrag;\n\texports.publishDragSource = publishDragSource;\n\texports.hover = hover;\n\texports.drop = drop;\n\texports.endDrag = endDrag;\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _isArray = __webpack_require__(3);\n\t\n\tvar _isArray2 = _interopRequireDefault(_isArray);\n\t\n\tvar _isObject = __webpack_require__(7);\n\t\n\tvar _isObject2 = _interopRequireDefault(_isObject);\n\t\n\tvar _matchesType = __webpack_require__(36);\n\t\n\tvar _matchesType2 = _interopRequireDefault(_matchesType);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar BEGIN_DRAG = exports.BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';\n\tvar PUBLISH_DRAG_SOURCE = exports.PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';\n\tvar HOVER = exports.HOVER = 'dnd-core/HOVER';\n\tvar DROP = exports.DROP = 'dnd-core/DROP';\n\tvar END_DRAG = exports.END_DRAG = 'dnd-core/END_DRAG';\n\t\n\tfunction beginDrag(sourceIds) {\n\t var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { publishSource: true, clientOffset: null };\n\t var publishSource = options.publishSource,\n\t clientOffset = options.clientOffset,\n\t getSourceClientOffset = options.getSourceClientOffset;\n\t\n\t (0, _invariant2.default)((0, _isArray2.default)(sourceIds), 'Expected sourceIds to be an array.');\n\t\n\t var monitor = this.getMonitor();\n\t var registry = this.getRegistry();\n\t (0, _invariant2.default)(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');\n\t\n\t for (var i = 0; i < sourceIds.length; i++) {\n\t (0, _invariant2.default)(registry.getSource(sourceIds[i]), 'Expected sourceIds to be registered.');\n\t }\n\t\n\t var sourceId = null;\n\t for (var _i = sourceIds.length - 1; _i >= 0; _i--) {\n\t if (monitor.canDragSource(sourceIds[_i])) {\n\t sourceId = sourceIds[_i];\n\t break;\n\t }\n\t }\n\t if (sourceId === null) {\n\t return;\n\t }\n\t\n\t var sourceClientOffset = null;\n\t if (clientOffset) {\n\t (0, _invariant2.default)(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');\n\t sourceClientOffset = getSourceClientOffset(sourceId);\n\t }\n\t\n\t var source = registry.getSource(sourceId);\n\t var item = source.beginDrag(monitor, sourceId);\n\t (0, _invariant2.default)((0, _isObject2.default)(item), 'Item must be an object.');\n\t\n\t registry.pinSource(sourceId);\n\t\n\t var itemType = registry.getSourceType(sourceId);\n\t return {\n\t type: BEGIN_DRAG,\n\t itemType: itemType,\n\t item: item,\n\t sourceId: sourceId,\n\t clientOffset: clientOffset,\n\t sourceClientOffset: sourceClientOffset,\n\t isSourcePublic: publishSource\n\t };\n\t}\n\t\n\tfunction publishDragSource() {\n\t var monitor = this.getMonitor();\n\t if (!monitor.isDragging()) {\n\t return;\n\t }\n\t\n\t return { type: PUBLISH_DRAG_SOURCE };\n\t}\n\t\n\tfunction hover(targetIdsArg) {\n\t var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n\t _ref$clientOffset = _ref.clientOffset,\n\t clientOffset = _ref$clientOffset === undefined ? null : _ref$clientOffset;\n\t\n\t (0, _invariant2.default)((0, _isArray2.default)(targetIdsArg), 'Expected targetIds to be an array.');\n\t var targetIds = targetIdsArg.slice(0);\n\t\n\t var monitor = this.getMonitor();\n\t var registry = this.getRegistry();\n\t (0, _invariant2.default)(monitor.isDragging(), 'Cannot call hover while not dragging.');\n\t (0, _invariant2.default)(!monitor.didDrop(), 'Cannot call hover after drop.');\n\t\n\t // First check invariants.\n\t for (var i = 0; i < targetIds.length; i++) {\n\t var targetId = targetIds[i];\n\t (0, _invariant2.default)(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');\n\t\n\t var target = registry.getTarget(targetId);\n\t (0, _invariant2.default)(target, 'Expected targetIds to be registered.');\n\t }\n\t\n\t var draggedItemType = monitor.getItemType();\n\t\n\t // Remove those targetIds that don't match the targetType. This\n\t // fixes shallow isOver which would only be non-shallow because of\n\t // non-matching targets.\n\t for (var _i2 = targetIds.length - 1; _i2 >= 0; _i2--) {\n\t var _targetId = targetIds[_i2];\n\t var targetType = registry.getTargetType(_targetId);\n\t if (!(0, _matchesType2.default)(targetType, draggedItemType)) {\n\t targetIds.splice(_i2, 1);\n\t }\n\t }\n\t\n\t // Finally call hover on all matching targets.\n\t for (var _i3 = 0; _i3 < targetIds.length; _i3++) {\n\t var _targetId2 = targetIds[_i3];\n\t var _target = registry.getTarget(_targetId2);\n\t _target.hover(monitor, _targetId2);\n\t }\n\t\n\t return {\n\t type: HOVER,\n\t targetIds: targetIds,\n\t clientOffset: clientOffset\n\t };\n\t}\n\t\n\tfunction drop() {\n\t var _this = this;\n\t\n\t var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t\n\t var monitor = this.getMonitor();\n\t var registry = this.getRegistry();\n\t (0, _invariant2.default)(monitor.isDragging(), 'Cannot call drop while not dragging.');\n\t (0, _invariant2.default)(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.');\n\t\n\t var targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor);\n\t\n\t targetIds.reverse();\n\t targetIds.forEach(function (targetId, index) {\n\t var target = registry.getTarget(targetId);\n\t\n\t var dropResult = target.drop(monitor, targetId);\n\t (0, _invariant2.default)(typeof dropResult === 'undefined' || (0, _isObject2.default)(dropResult), 'Drop result must either be an object or undefined.');\n\t if (typeof dropResult === 'undefined') {\n\t dropResult = index === 0 ? {} : monitor.getDropResult();\n\t }\n\t\n\t _this.store.dispatch({\n\t type: DROP,\n\t dropResult: _extends({}, options, dropResult)\n\t });\n\t });\n\t}\n\t\n\tfunction endDrag() {\n\t var monitor = this.getMonitor();\n\t var registry = this.getRegistry();\n\t (0, _invariant2.default)(monitor.isDragging(), 'Cannot call endDrag while not dragging.');\n\t\n\t var sourceId = monitor.getSourceId();\n\t var source = registry.getSource(sourceId, true);\n\t source.endDrag(monitor, sourceId);\n\t\n\t registry.unpinSource();\n\t\n\t return { type: END_DRAG };\n\t}\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.addSource = addSource;\n\texports.addTarget = addTarget;\n\texports.removeSource = removeSource;\n\texports.removeTarget = removeTarget;\n\tvar ADD_SOURCE = exports.ADD_SOURCE = 'dnd-core/ADD_SOURCE';\n\tvar ADD_TARGET = exports.ADD_TARGET = 'dnd-core/ADD_TARGET';\n\tvar REMOVE_SOURCE = exports.REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';\n\tvar REMOVE_TARGET = exports.REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';\n\t\n\tfunction addSource(sourceId) {\n\t return {\n\t type: ADD_SOURCE,\n\t sourceId: sourceId\n\t };\n\t}\n\t\n\tfunction addTarget(targetId) {\n\t return {\n\t type: ADD_TARGET,\n\t targetId: targetId\n\t };\n\t}\n\t\n\tfunction removeSource(sourceId) {\n\t return {\n\t type: REMOVE_SOURCE,\n\t sourceId: sourceId\n\t };\n\t}\n\t\n\tfunction removeTarget(targetId) {\n\t return {\n\t type: REMOVE_TARGET,\n\t targetId: targetId\n\t };\n\t}\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar eq = __webpack_require__(16);\n\t\n\t/**\n\t * Gets the index at which the `key` is found in `array` of key-value pairs.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} key The key to search for.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction assocIndexOf(array, key) {\n\t var length = array.length;\n\t while (length--) {\n\t if (eq(array[length][0], key)) {\n\t return length;\n\t }\n\t }\n\t return -1;\n\t}\n\t\n\tmodule.exports = assocIndexOf;\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(22),\n\t getRawTag = __webpack_require__(112),\n\t objectToString = __webpack_require__(136);\n\t\n\t/** `Object#toString` result references. */\n\tvar nullTag = '[object Null]',\n\t undefinedTag = '[object Undefined]';\n\t\n\t/** Built-in value references. */\n\tvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\t\n\t/**\n\t * The base implementation of `getTag` without fallbacks for buggy environments.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the `toStringTag`.\n\t */\n\tfunction baseGetTag(value) {\n\t if (value == null) {\n\t return value === undefined ? undefinedTag : nullTag;\n\t }\n\t return (symToStringTag && symToStringTag in Object(value))\n\t ? getRawTag(value)\n\t : objectToString(value);\n\t}\n\t\n\tmodule.exports = baseGetTag;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar isKeyable = __webpack_require__(121);\n\t\n\t/**\n\t * Gets the data for `map`.\n\t *\n\t * @private\n\t * @param {Object} map The map to query.\n\t * @param {string} key The reference key.\n\t * @returns {*} Returns the map data.\n\t */\n\tfunction getMapData(map, key) {\n\t var data = map.__data__;\n\t return isKeyable(key)\n\t ? data[typeof key == 'string' ? 'string' : 'hash']\n\t : data.map;\n\t}\n\t\n\tmodule.exports = getMapData;\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseIsNative = __webpack_require__(99),\n\t getValue = __webpack_require__(113);\n\t\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = getValue(object, key);\n\t return baseIsNative(value) ? value : undefined;\n\t}\n\t\n\tmodule.exports = getNative;\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar getNative = __webpack_require__(14);\n\t\n\t/* Built-in method references that are verified to be native. */\n\tvar nativeCreate = getNative(Object, 'create');\n\t\n\tmodule.exports = nativeCreate;\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Performs a\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * comparison between two values to determine if they are equivalent.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to compare.\n\t * @param {*} other The other value to compare.\n\t * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t * var other = { 'a': 1 };\n\t *\n\t * _.eq(object, object);\n\t * // => true\n\t *\n\t * _.eq(object, other);\n\t * // => false\n\t *\n\t * _.eq('a', 'a');\n\t * // => true\n\t *\n\t * _.eq('a', Object('a'));\n\t * // => false\n\t *\n\t * _.eq(NaN, NaN);\n\t * // => true\n\t */\n\tfunction eq(value, other) {\n\t return value === other || (value !== value && other !== other);\n\t}\n\t\n\tmodule.exports = eq;\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar isArrayLike = __webpack_require__(28),\n\t isObjectLike = __webpack_require__(8);\n\t\n\t/**\n\t * This method is like `_.isArrayLike` except that it also checks if `value`\n\t * is an object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an array-like object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArrayLikeObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLikeObject('abc');\n\t * // => false\n\t *\n\t * _.isArrayLikeObject(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLikeObject(value) {\n\t return isObjectLike(value) && isArrayLike(value);\n\t}\n\t\n\tmodule.exports = isArrayLikeObject;\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = checkDecoratorArguments;\n\t\n\tfunction checkDecoratorArguments(functionName, signature) {\n\t if (false) {\n\t for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n\t args[_key - 2] = arguments[_key];\n\t }\n\t\n\t for (var i = 0; i < args.length; i++) {\n\t var arg = args[i];\n\t if (arg && arg.prototype && arg.prototype.render) {\n\t console.error( // eslint-disable-line no-console\n\t 'You seem to be applying the arguments in the wrong order. ' + ('It should be ' + functionName + '(' + signature + ')(Component), not the other way around. ') + 'Read more: http://gaearon.github.io/react-dnd/docs-troubleshooting.html#you-seem-to-be-applying-the-arguments-in-the-wrong-order');\n\t return;\n\t }\n\t }\n\t }\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-api\\\\modules\\\\index.js\"), RootInstanceProvider = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.addWidget = addWidget;\n\texports.removeWidget = removeWidget;\n\texports.moveWidget = moveWidget;\n\texports.sortWidget = sortWidget;\n\t\n\tvar _update = __webpack_require__(178);\n\t\n\tvar _update2 = _interopRequireDefault(_update);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\t\n\t/**\r\n\t * Adds the specified widget to the specified position in the layout.\r\n\t */\n\tfunction addWidget(layout, rowIndex, columnIndex, widgetName) {\n\t return (0, _update2.default)(layout, {\n\t rows: _defineProperty({}, rowIndex, {\n\t columns: _defineProperty({}, columnIndex, {\n\t widgets: {\n\t $push: [{\n\t key: widgetName\n\t }]\n\t }\n\t })\n\t })\n\t });\n\t}\n\t\n\t/**\r\n\t * Removes the widget at a specified index.\r\n\t */\n\tfunction removeWidget(layout, rowIndex, columnIndex, widgetIndex) {\n\t return (0, _update2.default)(layout, {\n\t rows: _defineProperty({}, rowIndex, {\n\t columns: _defineProperty({}, columnIndex, {\n\t widgets: {\n\t $splice: [[widgetIndex, 1]]\n\t }\n\t })\n\t })\n\t });\n\t}\n\t\n\t/**\r\n\t * Moves a widget from column to column.\r\n\t */\n\tfunction moveWidget(layout, initialLocation, destination, widgetName) {\n\t var removedLayout = removeWidget(layout, initialLocation.rowIndex, initialLocation.columnIndex, initialLocation.widgetIndex);\n\t var movedLayout = addWidget(removedLayout, destination.rowIndex, destination.columnIndex, widgetName);\n\t return movedLayout;\n\t}\n\t\n\t/**\r\n\t * Sorts a widget in the same column.\r\n\t */\n\tfunction sortWidget(layout, initialLocation, destination, widgetName) {\n\t return (0, _update2.default)(layout, {\n\t rows: _defineProperty({}, initialLocation.rowIndex, {\n\t columns: _defineProperty({}, initialLocation.columnIndex, {\n\t widgets: {\n\t $splice: [[initialLocation.widgetIndex, 1], [destination.widgetIndex, 0, {\n\t key: widgetName\n\t }]]\n\t }\n\t })\n\t })\n\t });\n\t}\n\t\n\t/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot apply hot update to \" + \"index.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = isDisposable;\n\t\n\tfunction isDisposable(obj) {\n\t return Boolean(obj && typeof obj.dispose === 'function');\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar MapCache = __webpack_require__(37),\n\t setCacheAdd = __webpack_require__(139),\n\t setCacheHas = __webpack_require__(140);\n\t\n\t/**\n\t *\n\t * Creates an array cache object to store unique values.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [values] The values to cache.\n\t */\n\tfunction SetCache(values) {\n\t var index = -1,\n\t length = values == null ? 0 : values.length;\n\t\n\t this.__data__ = new MapCache;\n\t while (++index < length) {\n\t this.add(values[index]);\n\t }\n\t}\n\t\n\t// Add methods to `SetCache`.\n\tSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n\tSetCache.prototype.has = setCacheHas;\n\t\n\tmodule.exports = SetCache;\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar root = __webpack_require__(6);\n\t\n\t/** Built-in value references. */\n\tvar Symbol = root.Symbol;\n\t\n\tmodule.exports = Symbol;\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseIndexOf = __webpack_require__(95);\n\t\n\t/**\n\t * A specialized version of `_.includes` for arrays without support for\n\t * specifying an index to search from.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to inspect.\n\t * @param {*} target The value to search for.\n\t * @returns {boolean} Returns `true` if `target` is found, else `false`.\n\t */\n\tfunction arrayIncludes(array, value) {\n\t var length = array == null ? 0 : array.length;\n\t return !!length && baseIndexOf(array, value, 0) > -1;\n\t}\n\t\n\tmodule.exports = arrayIncludes;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * This function is like `arrayIncludes` except that it accepts a comparator.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to inspect.\n\t * @param {*} target The value to search for.\n\t * @param {Function} comparator The comparator invoked per element.\n\t * @returns {boolean} Returns `true` if `target` is found, else `false`.\n\t */\n\tfunction arrayIncludesWith(array, value, comparator) {\n\t var index = -1,\n\t length = array == null ? 0 : array.length;\n\t\n\t while (++index < length) {\n\t if (comparator(value, array[index])) {\n\t return true;\n\t }\n\t }\n\t return false;\n\t}\n\t\n\tmodule.exports = arrayIncludesWith;\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * A specialized version of `_.map` for arrays without support for iteratee\n\t * shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the new mapped array.\n\t */\n\tfunction arrayMap(array, iteratee) {\n\t var index = -1,\n\t length = array == null ? 0 : array.length,\n\t result = Array(length);\n\t\n\t while (++index < length) {\n\t result[index] = iteratee(array[index], index, array);\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = arrayMap;\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * The base implementation of `_.unary` without support for storing metadata.\n\t *\n\t * @private\n\t * @param {Function} func The function to cap arguments for.\n\t * @returns {Function} Returns the new capped function.\n\t */\n\tfunction baseUnary(func) {\n\t return function(value) {\n\t return func(value);\n\t };\n\t}\n\t\n\tmodule.exports = baseUnary;\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Checks if a `cache` value for `key` exists.\n\t *\n\t * @private\n\t * @param {Object} cache The cache to query.\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction cacheHas(cache, key) {\n\t return cache.has(key);\n\t}\n\t\n\tmodule.exports = cacheHas;\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar isFunction = __webpack_require__(49),\n\t isLength = __webpack_require__(50);\n\t\n\t/**\n\t * Checks if `value` is array-like. A value is considered array-like if it's\n\t * not a function and has a `value.length` that's an integer greater than or\n\t * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n\t * @example\n\t *\n\t * _.isArrayLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isArrayLike(document.body.children);\n\t * // => true\n\t *\n\t * _.isArrayLike('abc');\n\t * // => true\n\t *\n\t * _.isArrayLike(_.noop);\n\t * // => false\n\t */\n\tfunction isArrayLike(value) {\n\t return value != null && isLength(value.length) && !isFunction(value);\n\t}\n\t\n\tmodule.exports = isArrayLike;\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\tvar FILE = '__NATIVE_FILE__';\n\texports.FILE = FILE;\n\tvar URL = '__NATIVE_URL__';\n\texports.URL = URL;\n\tvar TEXT = '__NATIVE_TEXT__';\n\texports.TEXT = TEXT;\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; }\n\t\n\tvar _DragDropContext = __webpack_require__(164);\n\t\n\texports.DragDropContext = _interopRequire(_DragDropContext);\n\t\n\tvar _DragLayer = __webpack_require__(165);\n\t\n\texports.DragLayer = _interopRequire(_DragLayer);\n\t\n\tvar _DragSource = __webpack_require__(166);\n\t\n\texports.DragSource = _interopRequire(_DragSource);\n\t\n\tvar _DropTarget = __webpack_require__(167);\n\t\n\texports.DropTarget = _interopRequire(_DropTarget);\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = shallowEqual;\n\t\n\tfunction shallowEqual(objA, objB) {\n\t if (objA === objB) {\n\t return true;\n\t }\n\t\n\t var keysA = Object.keys(objA);\n\t var keysB = Object.keys(objB);\n\t\n\t if (keysA.length !== keysB.length) {\n\t return false;\n\t }\n\t\n\t // Test for A's keys different from B.\n\t var hasOwn = Object.prototype.hasOwnProperty;\n\t for (var i = 0; i < keysA.length; i++) {\n\t if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n\t return false;\n\t }\n\t\n\t var valA = objA[keysA[i]];\n\t var valB = objB[keysA[i]];\n\t\n\t if (valA !== valB) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\t\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = function(module) {\r\n\t\tif(!module.webpackPolyfill) {\r\n\t\t\tmodule.deprecate = function() {};\r\n\t\t\tmodule.paths = [];\r\n\t\t\t// module.parent = undefined by default\r\n\t\t\tmodule.children = [];\r\n\t\t\tmodule.webpackPolyfill = 1;\r\n\t\t}\r\n\t\treturn module;\r\n\t}\r\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-api\\\\modules\\\\index.js\"), RootInstanceProvider = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\tvar WIDGET = exports.WIDGET = 'WIDGET';\n\t\n\t/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot apply hot update to \" + \"ItemTypes.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = dirtyHandlerIds;\n\texports.areDirty = areDirty;\n\t\n\tvar _xor = __webpack_require__(155);\n\t\n\tvar _xor2 = _interopRequireDefault(_xor);\n\t\n\tvar _intersection = __webpack_require__(148);\n\t\n\tvar _intersection2 = _interopRequireDefault(_intersection);\n\t\n\tvar _dragDrop = __webpack_require__(9);\n\t\n\tvar _registry = __webpack_require__(10);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar NONE = [];\n\tvar ALL = [];\n\t\n\tfunction dirtyHandlerIds() {\n\t var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NONE;\n\t var action = arguments[1];\n\t var dragOperation = arguments[2];\n\t\n\t switch (action.type) {\n\t case _dragDrop.HOVER:\n\t break;\n\t case _registry.ADD_SOURCE:\n\t case _registry.ADD_TARGET:\n\t case _registry.REMOVE_TARGET:\n\t case _registry.REMOVE_SOURCE:\n\t return NONE;\n\t case _dragDrop.BEGIN_DRAG:\n\t case _dragDrop.PUBLISH_DRAG_SOURCE:\n\t case _dragDrop.END_DRAG:\n\t case _dragDrop.DROP:\n\t default:\n\t return ALL;\n\t }\n\t\n\t var targetIds = action.targetIds;\n\t var prevTargetIds = dragOperation.targetIds;\n\t\n\t var result = (0, _xor2.default)(targetIds, prevTargetIds);\n\t\n\t var didChange = false;\n\t if (result.length === 0) {\n\t for (var i = 0; i < targetIds.length; i++) {\n\t if (targetIds[i] !== prevTargetIds[i]) {\n\t didChange = true;\n\t break;\n\t }\n\t }\n\t } else {\n\t didChange = true;\n\t }\n\t\n\t if (!didChange) {\n\t return NONE;\n\t }\n\t\n\t var prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];\n\t var innermostTargetId = targetIds[targetIds.length - 1];\n\t\n\t if (prevInnermostTargetId !== innermostTargetId) {\n\t if (prevInnermostTargetId) {\n\t result.push(prevInnermostTargetId);\n\t }\n\t if (innermostTargetId) {\n\t result.push(innermostTargetId);\n\t }\n\t }\n\t\n\t return result;\n\t}\n\t\n\tfunction areDirty(state, handlerIds) {\n\t if (state === NONE) {\n\t return false;\n\t }\n\t\n\t if (state === ALL || typeof handlerIds === 'undefined') {\n\t return true;\n\t }\n\t\n\t return (0, _intersection2.default)(handlerIds, state).length > 0;\n\t}\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\texports.default = dragOffset;\n\texports.getSourceClientOffset = getSourceClientOffset;\n\texports.getDifferenceFromInitialOffset = getDifferenceFromInitialOffset;\n\t\n\tvar _dragDrop = __webpack_require__(9);\n\t\n\tvar initialState = {\n\t initialSourceClientOffset: null,\n\t initialClientOffset: null,\n\t clientOffset: null\n\t};\n\t\n\tfunction areOffsetsEqual(offsetA, offsetB) {\n\t if (offsetA === offsetB) {\n\t return true;\n\t }\n\t return offsetA && offsetB && offsetA.x === offsetB.x && offsetA.y === offsetB.y;\n\t}\n\t\n\tfunction dragOffset() {\n\t var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n\t var action = arguments[1];\n\t\n\t switch (action.type) {\n\t case _dragDrop.BEGIN_DRAG:\n\t return {\n\t initialSourceClientOffset: action.sourceClientOffset,\n\t initialClientOffset: action.clientOffset,\n\t clientOffset: action.clientOffset\n\t };\n\t case _dragDrop.HOVER:\n\t if (areOffsetsEqual(state.clientOffset, action.clientOffset)) {\n\t return state;\n\t }\n\t return _extends({}, state, {\n\t clientOffset: action.clientOffset\n\t });\n\t case _dragDrop.END_DRAG:\n\t case _dragDrop.DROP:\n\t return initialState;\n\t default:\n\t return state;\n\t }\n\t}\n\t\n\tfunction getSourceClientOffset(state) {\n\t var clientOffset = state.clientOffset,\n\t initialClientOffset = state.initialClientOffset,\n\t initialSourceClientOffset = state.initialSourceClientOffset;\n\t\n\t if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n\t return null;\n\t }\n\t return {\n\t x: clientOffset.x + initialSourceClientOffset.x - initialClientOffset.x,\n\t y: clientOffset.y + initialSourceClientOffset.y - initialClientOffset.y\n\t };\n\t}\n\t\n\tfunction getDifferenceFromInitialOffset(state) {\n\t var clientOffset = state.clientOffset,\n\t initialClientOffset = state.initialClientOffset;\n\t\n\t if (!clientOffset || !initialClientOffset) {\n\t return null;\n\t }\n\t return {\n\t x: clientOffset.x - initialClientOffset.x,\n\t y: clientOffset.y - initialClientOffset.y\n\t };\n\t}\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = matchesType;\n\t\n\tvar _isArray = __webpack_require__(3);\n\t\n\tvar _isArray2 = _interopRequireDefault(_isArray);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction matchesType(targetType, draggedItemType) {\n\t if ((0, _isArray2.default)(targetType)) {\n\t return targetType.some(function (t) {\n\t return t === draggedItemType;\n\t });\n\t } else {\n\t return targetType === draggedItemType;\n\t }\n\t}\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar mapCacheClear = __webpack_require__(129),\n\t mapCacheDelete = __webpack_require__(130),\n\t mapCacheGet = __webpack_require__(131),\n\t mapCacheHas = __webpack_require__(132),\n\t mapCacheSet = __webpack_require__(133);\n\t\n\t/**\n\t * Creates a map cache object to store key-value pairs.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction MapCache(entries) {\n\t var index = -1,\n\t length = entries == null ? 0 : entries.length;\n\t\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\t\n\t// Add methods to `MapCache`.\n\tMapCache.prototype.clear = mapCacheClear;\n\tMapCache.prototype['delete'] = mapCacheDelete;\n\tMapCache.prototype.get = mapCacheGet;\n\tMapCache.prototype.has = mapCacheHas;\n\tMapCache.prototype.set = mapCacheSet;\n\t\n\tmodule.exports = MapCache;\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * A faster alternative to `Function#apply`, this function invokes `func`\n\t * with the `this` binding of `thisArg` and the arguments of `args`.\n\t *\n\t * @private\n\t * @param {Function} func The function to invoke.\n\t * @param {*} thisArg The `this` binding of `func`.\n\t * @param {Array} args The arguments to invoke `func` with.\n\t * @returns {*} Returns the result of `func`.\n\t */\n\tfunction apply(func, thisArg, args) {\n\t switch (args.length) {\n\t case 0: return func.call(thisArg);\n\t case 1: return func.call(thisArg, args[0]);\n\t case 2: return func.call(thisArg, args[0], args[1]);\n\t case 3: return func.call(thisArg, args[0], args[1], args[2]);\n\t }\n\t return func.apply(thisArg, args);\n\t}\n\t\n\tmodule.exports = apply;\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar defineProperty = __webpack_require__(43);\n\t\n\t/**\n\t * The base implementation of `assignValue` and `assignMergeValue` without\n\t * value checks.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction baseAssignValue(object, key, value) {\n\t if (key == '__proto__' && defineProperty) {\n\t defineProperty(object, key, {\n\t 'configurable': true,\n\t 'enumerable': true,\n\t 'value': value,\n\t 'writable': true\n\t });\n\t } else {\n\t object[key] = value;\n\t }\n\t}\n\t\n\tmodule.exports = baseAssignValue;\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar SetCache = __webpack_require__(21),\n\t arrayIncludes = __webpack_require__(23),\n\t arrayIncludesWith = __webpack_require__(24),\n\t arrayMap = __webpack_require__(25),\n\t baseUnary = __webpack_require__(26),\n\t cacheHas = __webpack_require__(27);\n\t\n\t/** Used as the size to enable large array optimizations. */\n\tvar LARGE_ARRAY_SIZE = 200;\n\t\n\t/**\n\t * The base implementation of methods like `_.difference` without support\n\t * for excluding multiple arrays or iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {Array} values The values to exclude.\n\t * @param {Function} [iteratee] The iteratee invoked per element.\n\t * @param {Function} [comparator] The comparator invoked per element.\n\t * @returns {Array} Returns the new array of filtered values.\n\t */\n\tfunction baseDifference(array, values, iteratee, comparator) {\n\t var index = -1,\n\t includes = arrayIncludes,\n\t isCommon = true,\n\t length = array.length,\n\t result = [],\n\t valuesLength = values.length;\n\t\n\t if (!length) {\n\t return result;\n\t }\n\t if (iteratee) {\n\t values = arrayMap(values, baseUnary(iteratee));\n\t }\n\t if (comparator) {\n\t includes = arrayIncludesWith;\n\t isCommon = false;\n\t }\n\t else if (values.length >= LARGE_ARRAY_SIZE) {\n\t includes = cacheHas;\n\t isCommon = false;\n\t values = new SetCache(values);\n\t }\n\t outer:\n\t while (++index < length) {\n\t var value = array[index],\n\t computed = iteratee == null ? value : iteratee(value);\n\t\n\t value = (comparator || value !== 0) ? value : 0;\n\t if (isCommon && computed === computed) {\n\t var valuesIndex = valuesLength;\n\t while (valuesIndex--) {\n\t if (values[valuesIndex] === computed) {\n\t continue outer;\n\t }\n\t }\n\t result.push(value);\n\t }\n\t else if (!includes(values, computed, comparator)) {\n\t result.push(value);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseDifference;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar arrayPush = __webpack_require__(92),\n\t isFlattenable = __webpack_require__(119);\n\t\n\t/**\n\t * The base implementation of `_.flatten` with support for restricting flattening.\n\t *\n\t * @private\n\t * @param {Array} array The array to flatten.\n\t * @param {number} depth The maximum recursion depth.\n\t * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n\t * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n\t * @param {Array} [result=[]] The initial result value.\n\t * @returns {Array} Returns the new flattened array.\n\t */\n\tfunction baseFlatten(array, depth, predicate, isStrict, result) {\n\t var index = -1,\n\t length = array.length;\n\t\n\t predicate || (predicate = isFlattenable);\n\t result || (result = []);\n\t\n\t while (++index < length) {\n\t var value = array[index];\n\t if (depth > 0 && predicate(value)) {\n\t if (depth > 1) {\n\t // Recursively flatten arrays (susceptible to call stack limits).\n\t baseFlatten(value, depth - 1, predicate, isStrict, result);\n\t } else {\n\t arrayPush(result, value);\n\t }\n\t } else if (!isStrict) {\n\t result[result.length] = value;\n\t }\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseFlatten;\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar SetCache = __webpack_require__(21),\n\t arrayIncludes = __webpack_require__(23),\n\t arrayIncludesWith = __webpack_require__(24),\n\t cacheHas = __webpack_require__(27),\n\t createSet = __webpack_require__(109),\n\t setToArray = __webpack_require__(46);\n\t\n\t/** Used as the size to enable large array optimizations. */\n\tvar LARGE_ARRAY_SIZE = 200;\n\t\n\t/**\n\t * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {Function} [iteratee] The iteratee invoked per element.\n\t * @param {Function} [comparator] The comparator invoked per element.\n\t * @returns {Array} Returns the new duplicate free array.\n\t */\n\tfunction baseUniq(array, iteratee, comparator) {\n\t var index = -1,\n\t includes = arrayIncludes,\n\t length = array.length,\n\t isCommon = true,\n\t result = [],\n\t seen = result;\n\t\n\t if (comparator) {\n\t isCommon = false;\n\t includes = arrayIncludesWith;\n\t }\n\t else if (length >= LARGE_ARRAY_SIZE) {\n\t var set = iteratee ? null : createSet(array);\n\t if (set) {\n\t return setToArray(set);\n\t }\n\t isCommon = false;\n\t includes = cacheHas;\n\t seen = new SetCache;\n\t }\n\t else {\n\t seen = iteratee ? [] : result;\n\t }\n\t outer:\n\t while (++index < length) {\n\t var value = array[index],\n\t computed = iteratee ? iteratee(value) : value;\n\t\n\t value = (comparator || value !== 0) ? value : 0;\n\t if (isCommon && computed === computed) {\n\t var seenIndex = seen.length;\n\t while (seenIndex--) {\n\t if (seen[seenIndex] === computed) {\n\t continue outer;\n\t }\n\t }\n\t if (iteratee) {\n\t seen.push(computed);\n\t }\n\t result.push(value);\n\t }\n\t else if (!includes(seen, computed, comparator)) {\n\t if (seen !== result) {\n\t seen.push(computed);\n\t }\n\t result.push(value);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseUniq;\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar getNative = __webpack_require__(14);\n\t\n\tvar defineProperty = (function() {\n\t try {\n\t var func = getNative(Object, 'defineProperty');\n\t func({}, '', {});\n\t return func;\n\t } catch (e) {}\n\t}());\n\t\n\tmodule.exports = defineProperty;\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports) {\n\n\t/** Detect free variable `global` from Node.js. */\n\tvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\t\n\tmodule.exports = freeGlobal;\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports) {\n\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\t\n\t/** Used to detect unsigned integer values. */\n\tvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\t\n\t/**\n\t * Checks if `value` is a valid array-like index.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n\t * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n\t */\n\tfunction isIndex(value, length) {\n\t length = length == null ? MAX_SAFE_INTEGER : length;\n\t return !!length &&\n\t (typeof value == 'number' || reIsUint.test(value)) &&\n\t (value > -1 && value % 1 == 0 && value < length);\n\t}\n\t\n\tmodule.exports = isIndex;\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Converts `set` to an array of its values.\n\t *\n\t * @private\n\t * @param {Object} set The set to convert.\n\t * @returns {Array} Returns the values.\n\t */\n\tfunction setToArray(set) {\n\t var index = -1,\n\t result = Array(set.size);\n\t\n\t set.forEach(function(value) {\n\t result[++index] = value;\n\t });\n\t return result;\n\t}\n\t\n\tmodule.exports = setToArray;\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * This method returns the first argument it receives.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Util\n\t * @param {*} value Any value.\n\t * @returns {*} Returns `value`.\n\t * @example\n\t *\n\t * var object = { 'a': 1 };\n\t *\n\t * console.log(_.identity(object) === object);\n\t * // => true\n\t */\n\tfunction identity(value) {\n\t return value;\n\t}\n\t\n\tmodule.exports = identity;\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseIsArguments = __webpack_require__(97),\n\t isObjectLike = __webpack_require__(8);\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/** Built-in value references. */\n\tvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\t\n\t/**\n\t * Checks if `value` is likely an `arguments` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isArguments(function() { return arguments; }());\n\t * // => true\n\t *\n\t * _.isArguments([1, 2, 3]);\n\t * // => false\n\t */\n\tvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n\t return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n\t !propertyIsEnumerable.call(value, 'callee');\n\t};\n\t\n\tmodule.exports = isArguments;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseGetTag = __webpack_require__(12),\n\t isObject = __webpack_require__(7);\n\t\n\t/** `Object#toString` result references. */\n\tvar asyncTag = '[object AsyncFunction]',\n\t funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t proxyTag = '[object Proxy]';\n\t\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t if (!isObject(value)) {\n\t return false;\n\t }\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 9 which returns 'object' for typed arrays and other constructors.\n\t var tag = baseGetTag(value);\n\t return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n\t}\n\t\n\tmodule.exports = isFunction;\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports) {\n\n\t/** Used as references for various `Number` constants. */\n\tvar MAX_SAFE_INTEGER = 9007199254740991;\n\t\n\t/**\n\t * Checks if `value` is a valid array-like length.\n\t *\n\t * **Note:** This method is loosely based on\n\t * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n\t * @example\n\t *\n\t * _.isLength(3);\n\t * // => true\n\t *\n\t * _.isLength(Number.MIN_VALUE);\n\t * // => false\n\t *\n\t * _.isLength(Infinity);\n\t * // => false\n\t *\n\t * _.isLength('3');\n\t * // => false\n\t */\n\tfunction isLength(value) {\n\t return typeof value == 'number' &&\n\t value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n\t}\n\t\n\tmodule.exports = isLength;\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * This method returns `undefined`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.3.0\n\t * @category Util\n\t * @example\n\t *\n\t * _.times(2, _.noop);\n\t * // => [undefined, undefined]\n\t */\n\tfunction noop() {\n\t // No operation performed.\n\t}\n\t\n\tmodule.exports = noop;\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseDifference = __webpack_require__(40),\n\t baseRest = __webpack_require__(5),\n\t isArrayLikeObject = __webpack_require__(17);\n\t\n\t/**\n\t * Creates an array excluding all given values using\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * **Note:** Unlike `_.pull`, this method returns a new array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Array\n\t * @param {Array} array The array to inspect.\n\t * @param {...*} [values] The values to exclude.\n\t * @returns {Array} Returns the new array of filtered values.\n\t * @see _.difference, _.xor\n\t * @example\n\t *\n\t * _.without([2, 1, 2, 3], 1, 2);\n\t * // => [3]\n\t */\n\tvar without = baseRest(function(array, values) {\n\t return isArrayLikeObject(array)\n\t ? baseDifference(array, values)\n\t : [];\n\t});\n\t\n\tmodule.exports = without;\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _lodashMemoize = __webpack_require__(152);\n\t\n\tvar _lodashMemoize2 = _interopRequireDefault(_lodashMemoize);\n\t\n\tvar isFirefox = _lodashMemoize2['default'](function () {\n\t return (/firefox/i.test(navigator.userAgent)\n\t );\n\t});\n\t\n\texports.isFirefox = isFirefox;\n\tvar isSafari = _lodashMemoize2['default'](function () {\n\t return Boolean(window.safari);\n\t});\n\texports.isSafari = isSafari;\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = areOptionsEqual;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _utilsShallowEqual = __webpack_require__(31);\n\t\n\tvar _utilsShallowEqual2 = _interopRequireDefault(_utilsShallowEqual);\n\t\n\tfunction areOptionsEqual(nextOptions, currentOptions) {\n\t if (currentOptions === nextOptions) {\n\t return true;\n\t }\n\t\n\t return currentOptions !== null && nextOptions !== null && _utilsShallowEqual2['default'](currentOptions, nextOptions);\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\texports['default'] = decorateHandler;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _disposables = __webpack_require__(73);\n\t\n\tvar _utilsShallowEqual = __webpack_require__(31);\n\t\n\tvar _utilsShallowEqual2 = _interopRequireDefault(_utilsShallowEqual);\n\t\n\tvar _utilsShallowEqualScalar = __webpack_require__(57);\n\t\n\tvar _utilsShallowEqualScalar2 = _interopRequireDefault(_utilsShallowEqualScalar);\n\t\n\tvar _lodashIsPlainObject = __webpack_require__(4);\n\t\n\tvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tfunction decorateHandler(_ref) {\n\t var DecoratedComponent = _ref.DecoratedComponent;\n\t var createHandler = _ref.createHandler;\n\t var createMonitor = _ref.createMonitor;\n\t var createConnector = _ref.createConnector;\n\t var registerHandler = _ref.registerHandler;\n\t var containerDisplayName = _ref.containerDisplayName;\n\t var getType = _ref.getType;\n\t var collect = _ref.collect;\n\t var options = _ref.options;\n\t var _options$arePropsEqual = options.arePropsEqual;\n\t var arePropsEqual = _options$arePropsEqual === undefined ? _utilsShallowEqualScalar2['default'] : _options$arePropsEqual;\n\t\n\t var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';\n\t\n\t return (function (_Component) {\n\t _inherits(DragDropContainer, _Component);\n\t\n\t DragDropContainer.prototype.getHandlerId = function getHandlerId() {\n\t return this.handlerId;\n\t };\n\t\n\t DragDropContainer.prototype.getDecoratedComponentInstance = function getDecoratedComponentInstance() {\n\t return this.decoratedComponentInstance;\n\t };\n\t\n\t DragDropContainer.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n\t return !arePropsEqual(nextProps, this.props) || !_utilsShallowEqual2['default'](nextState, this.state);\n\t };\n\t\n\t _createClass(DragDropContainer, null, [{\n\t key: 'DecoratedComponent',\n\t value: DecoratedComponent,\n\t enumerable: true\n\t }, {\n\t key: 'displayName',\n\t value: containerDisplayName + '(' + displayName + ')',\n\t enumerable: true\n\t }, {\n\t key: 'contextTypes',\n\t value: {\n\t dragDropManager: _react.PropTypes.object.isRequired\n\t },\n\t enumerable: true\n\t }]);\n\t\n\t function DragDropContainer(props, context) {\n\t _classCallCheck(this, DragDropContainer);\n\t\n\t _Component.call(this, props, context);\n\t this.handleChange = this.handleChange.bind(this);\n\t this.handleChildRef = this.handleChildRef.bind(this);\n\t\n\t _invariant2['default'](typeof this.context.dragDropManager === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to wrap the top-level component of your app with DragDropContext. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-troubleshooting.html#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);\n\t\n\t this.manager = this.context.dragDropManager;\n\t this.handlerMonitor = createMonitor(this.manager);\n\t this.handlerConnector = createConnector(this.manager.getBackend());\n\t this.handler = createHandler(this.handlerMonitor);\n\t\n\t this.disposable = new _disposables.SerialDisposable();\n\t this.receiveProps(props);\n\t this.state = this.getCurrentState();\n\t this.dispose();\n\t }\n\t\n\t DragDropContainer.prototype.componentDidMount = function componentDidMount() {\n\t this.isCurrentlyMounted = true;\n\t this.disposable = new _disposables.SerialDisposable();\n\t this.currentType = null;\n\t this.receiveProps(this.props);\n\t this.handleChange();\n\t };\n\t\n\t DragDropContainer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n\t if (!arePropsEqual(nextProps, this.props)) {\n\t this.receiveProps(nextProps);\n\t this.handleChange();\n\t }\n\t };\n\t\n\t DragDropContainer.prototype.componentWillUnmount = function componentWillUnmount() {\n\t this.dispose();\n\t this.isCurrentlyMounted = false;\n\t };\n\t\n\t DragDropContainer.prototype.receiveProps = function receiveProps(props) {\n\t this.handler.receiveProps(props);\n\t this.receiveType(getType(props));\n\t };\n\t\n\t DragDropContainer.prototype.receiveType = function receiveType(type) {\n\t if (type === this.currentType) {\n\t return;\n\t }\n\t\n\t this.currentType = type;\n\t\n\t var _registerHandler = registerHandler(type, this.handler, this.manager);\n\t\n\t var handlerId = _registerHandler.handlerId;\n\t var unregister = _registerHandler.unregister;\n\t\n\t this.handlerId = handlerId;\n\t this.handlerMonitor.receiveHandlerId(handlerId);\n\t this.handlerConnector.receiveHandlerId(handlerId);\n\t\n\t var globalMonitor = this.manager.getMonitor();\n\t var unsubscribe = globalMonitor.subscribeToStateChange(this.handleChange, { handlerIds: [handlerId] });\n\t\n\t this.disposable.setDisposable(new _disposables.CompositeDisposable(new _disposables.Disposable(unsubscribe), new _disposables.Disposable(unregister)));\n\t };\n\t\n\t DragDropContainer.prototype.handleChange = function handleChange() {\n\t if (!this.isCurrentlyMounted) {\n\t return;\n\t }\n\t\n\t var nextState = this.getCurrentState();\n\t if (!_utilsShallowEqual2['default'](nextState, this.state)) {\n\t this.setState(nextState);\n\t }\n\t };\n\t\n\t DragDropContainer.prototype.dispose = function dispose() {\n\t this.disposable.dispose();\n\t this.handlerConnector.receiveHandlerId(null);\n\t };\n\t\n\t DragDropContainer.prototype.handleChildRef = function handleChildRef(component) {\n\t this.decoratedComponentInstance = component;\n\t this.handler.receiveComponent(component);\n\t };\n\t\n\t DragDropContainer.prototype.getCurrentState = function getCurrentState() {\n\t var nextState = collect(this.handlerConnector.hooks, this.handlerMonitor);\n\t\n\t if (false) {\n\t _invariant2['default'](_lodashIsPlainObject2['default'](nextState), 'Expected `collect` specified as the second argument to ' + '%s for %s to return a plain object of props to inject. ' + 'Instead, received %s.', containerDisplayName, displayName, nextState);\n\t }\n\t\n\t return nextState;\n\t };\n\t\n\t DragDropContainer.prototype.render = function render() {\n\t return _react2['default'].createElement(DecoratedComponent, _extends({}, this.props, this.state, {\n\t ref: this.handleChildRef }));\n\t };\n\t\n\t return DragDropContainer;\n\t })(_react.Component);\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = isValidType;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _lodashIsArray = __webpack_require__(3);\n\t\n\tvar _lodashIsArray2 = _interopRequireDefault(_lodashIsArray);\n\t\n\tfunction isValidType(type, allowArray) {\n\t return typeof type === 'string' || typeof type === 'symbol' || allowArray && _lodashIsArray2['default'](type) && type.every(function (t) {\n\t return isValidType(t, false);\n\t });\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = shallowEqualScalar;\n\t\n\tfunction shallowEqualScalar(objA, objB) {\n\t if (objA === objB) {\n\t return true;\n\t }\n\t\n\t if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n\t return false;\n\t }\n\t\n\t var keysA = Object.keys(objA);\n\t var keysB = Object.keys(objB);\n\t\n\t if (keysA.length !== keysB.length) {\n\t return false;\n\t }\n\t\n\t // Test for A's keys different from B.\n\t var hasOwn = Object.prototype.hasOwnProperty;\n\t for (var i = 0; i < keysA.length; i++) {\n\t if (!hasOwn.call(objB, keysA[i])) {\n\t return false;\n\t }\n\t\n\t var valA = objA[keysA[i]];\n\t var valB = objB[keysA[i]];\n\t\n\t if (valA !== valB || typeof valA === 'object' || typeof valB === 'object') {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = wrapConnectorHooks;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _utilsCloneWithRef = __webpack_require__(176);\n\t\n\tvar _utilsCloneWithRef2 = _interopRequireDefault(_utilsCloneWithRef);\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tfunction throwIfCompositeComponentElement(element) {\n\t // Custom components can no longer be wrapped directly in React DnD 2.0\n\t // so that we don't need to depend on findDOMNode() from react-dom.\n\t if (typeof element.type === 'string') {\n\t return;\n\t }\n\t\n\t var displayName = element.type.displayName || element.type.name || 'the component';\n\t\n\t throw new Error('Only native element nodes can now be passed to React DnD connectors. ' + ('You can either wrap ' + displayName + ' into a
, or turn it into a ') + 'drag source or a drop target itself.');\n\t}\n\t\n\tfunction wrapHookToRecognizeElement(hook) {\n\t return function () {\n\t var elementOrNode = arguments.length <= 0 || arguments[0] === undefined ? null : arguments[0];\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\t\n\t // When passed a node, call the hook straight away.\n\t if (!_react.isValidElement(elementOrNode)) {\n\t var node = elementOrNode;\n\t hook(node, options);\n\t return;\n\t }\n\t\n\t // If passed a ReactElement, clone it and attach this function as a ref.\n\t // This helps us achieve a neat API where user doesn't even know that refs\n\t // are being used under the hood.\n\t var element = elementOrNode;\n\t throwIfCompositeComponentElement(element);\n\t\n\t // When no options are passed, use the hook directly\n\t var ref = options ? function (node) {\n\t return hook(node, options);\n\t } : hook;\n\t\n\t return _utilsCloneWithRef2['default'](element, ref);\n\t };\n\t}\n\t\n\tfunction wrapConnectorHooks(hooks) {\n\t var wrappedHooks = {};\n\t\n\t Object.keys(hooks).forEach(function (key) {\n\t var hook = hooks[key];\n\t var wrappedHook = wrapHookToRecognizeElement(hook);\n\t wrappedHooks[key] = function () {\n\t return wrappedHook;\n\t };\n\t });\n\t\n\t return wrappedHooks;\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-api\\\\modules\\\\index.js\"), RootInstanceProvider = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\t\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\r\n\t * Default AddWidget component.\r\n\t * @param {[type]} {text [description]\r\n\t * @param {[type]} onClick} [description]\r\n\t * @return {[type]} [description]\r\n\t */\n\tvar AddWidget = function AddWidget(_ref) {\n\t var text = _ref.text,\n\t onClick = _ref.onClick;\n\t\n\t return _react2.default.createElement(\n\t \"div\",\n\t { className: \"add-widget-button\", onClick: onClick },\n\t _react2.default.createElement(\n\t \"a\",\n\t { className: \"add-widget-link\" },\n\t text\n\t )\n\t );\n\t};\n\t\n\tAddWidget.propTypes = {\n\t /**\r\n\t * Should be called when 'add' is clicked\r\n\t */\n\t onClick: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Text that should be displyed in the component\r\n\t */\n\t text: _react.PropTypes.string\n\t};\n\t\n\tAddWidget.defaultProps = {\n\t text: 'Add Widget'\n\t};\n\t\n\texports.default = AddWidget;\n\t\n\t/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot apply hot update to \" + \"AddWidget.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-api\\\\modules\\\\index.js\"), RootInstanceProvider = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _dec, _class;\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDnd = __webpack_require__(30);\n\t\n\tvar _ItemTypes = __webpack_require__(33);\n\t\n\tvar _AddWidget = __webpack_require__(59);\n\t\n\tvar _AddWidget2 = _interopRequireDefault(_AddWidget);\n\t\n\tvar _util = __webpack_require__(19);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar columnTarget = {\n\t drop: function drop(props, monitor) {\n\t var layout = props.layout,\n\t rowIndex = props.rowIndex,\n\t columnIndex = props.columnIndex,\n\t onMove = props.onMove;\n\t\n\t var item = monitor.getItem();\n\t if (item.columnIndex !== columnIndex || item.rowIndex !== rowIndex) {\n\t var movedLayout = (0, _util.moveWidget)(layout, {\n\t rowIndex: item.rowIndex,\n\t columnIndex: item.columnIndex,\n\t widgetIndex: item.widgetIndex\n\t }, {\n\t rowIndex: rowIndex,\n\t columnIndex: columnIndex\n\t }, item.widgetName);\n\t onMove(movedLayout);\n\t }\n\t }\n\t};\n\t\n\t/**\r\n\t * Colum of the dashboard grid. A column holds multiple widgets.\r\n\t */\n\tvar Column = (_dec = (0, _reactDnd.DropTarget)(_ItemTypes.WIDGET, columnTarget, function (connect, monitor) {\n\t return {\n\t connectDropTarget: connect.dropTarget(),\n\t isOver: monitor.isOver(),\n\t canDrop: monitor.canDrop()\n\t };\n\t}), _dec(_class = function (_Component) {\n\t _inherits(Column, _Component);\n\t\n\t function Column() {\n\t _classCallCheck(this, Column);\n\t\n\t return _possibleConstructorReturn(this, (Column.__proto__ || Object.getPrototypeOf(Column)).apply(this, arguments));\n\t }\n\t\n\t _createClass(Column, [{\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props,\n\t className = _props.className,\n\t layout = _props.layout,\n\t rowIndex = _props.rowIndex,\n\t columnIndex = _props.columnIndex,\n\t editable = _props.editable,\n\t children = _props.children,\n\t connectDropTarget = _props.connectDropTarget,\n\t onAdd = _props.onAdd,\n\t isOver = _props.isOver,\n\t canDrop = _props.canDrop,\n\t editableColumnClass = _props.editableColumnClass,\n\t droppableColumnClass = _props.droppableColumnClass,\n\t addWidgetComponentText = _props.addWidgetComponentText,\n\t addWidgetComponent = _props.addWidgetComponent;\n\t\n\t\n\t var classes = className;\n\t classes = editable ? className + ' ' + editableColumnClass : classes;\n\t var isActive = isOver && canDrop;\n\t classes = isActive ? classes + ' ' + droppableColumnClass : classes;\n\t\n\t var addWidgetComponentToUse = null;\n\t if (addWidgetComponent) {\n\t addWidgetComponentToUse = (0, _react.createElement)(addWidgetComponent, { text: addWidgetComponentText, onClick: function onClick() {\n\t onAdd(layout, rowIndex, columnIndex);\n\t } });\n\t } else {\n\t addWidgetComponentToUse = _react2.default.createElement(_AddWidget2.default, { text: addWidgetComponentText, onClick: function onClick() {\n\t onAdd(layout, rowIndex, columnIndex);\n\t } });\n\t }\n\t\n\t return connectDropTarget(_react2.default.createElement(\n\t 'div',\n\t { className: classes },\n\t editable && addWidgetComponentToUse,\n\t children\n\t ));\n\t }\n\t }]);\n\t\n\t return Column;\n\t}(_react.Component)) || _class);\n\t\n\t\n\tColumn.propTypes = {\n\t /**\r\n\t * Children of the column\r\n\t */\n\t children: _react.PropTypes.node,\n\t\n\t /**\r\n\t * CSS class that should be used with the column.\r\n\t */\n\t className: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Function that should be called when user tries to add a widget\r\n\t * to the column.\r\n\t */\n\t onAdd: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Layout of the dashboard.\r\n\t */\n\t layout: _react.PropTypes.object,\n\t\n\t /**\r\n\t * Index of the row that this column resides.\r\n\t */\n\t rowIndex: _react.PropTypes.number,\n\t\n\t /**\r\n\t * Index of this column.\r\n\t */\n\t columnIndex: _react.PropTypes.number,\n\t\n\t /**\r\n\t * Indicates weather dashboard is in editable state\r\n\t */\n\t editable: _react.PropTypes.bool,\n\t\n\t /**\r\n\t * Indicates weather a widget is being draged over.\r\n\t */\n\t isOver: _react.PropTypes.bool,\n\t\n\t /**\r\n\t * Indicated a widget can be dropped.\r\n\t */\n\t canDrop: _react.PropTypes.bool,\n\t\n\t /**\r\n\t * Class to be used for columns in editable mode.\r\n\t */\n\t editableColumnClass: _react.PropTypes.string,\n\t\n\t /**\r\n\t * CSS class to be used for columns when a widget is droppable.\r\n\t */\n\t droppableColumnClass: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Text that should be given to the AddWidget component.\r\n\t */\n\t addWidgetComponentText: _react.PropTypes.string,\n\t\n\t /**\r\n\t * ReactDnd's connectDropTarget.\r\n\t */\n\t connectDropTarget: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Customized AddWidget component.\r\n\t */\n\t addWidgetComponent: _react.PropTypes.func\n\t};\n\t\n\tColumn.defaultProps = {\n\t editableColumnClass: 'editable-column',\n\t droppableColumnClass: 'droppable-column'\n\t};\n\t\n\texports.default = Column;\n\t\n\t/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot apply hot update to \" + \"Column.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-api\\\\modules\\\\index.js\"), RootInstanceProvider = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _dec, _class;\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDnd = __webpack_require__(30);\n\t\n\tvar _reactDndHtml5Backend = __webpack_require__(162);\n\t\n\tvar _reactDndHtml5Backend2 = _interopRequireDefault(_reactDndHtml5Backend);\n\t\n\tvar _LayoutRenderer = __webpack_require__(63);\n\t\n\tvar _LayoutRenderer2 = _interopRequireDefault(_LayoutRenderer);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\t/**\r\n\t * Main dashboard component. This is where all of this starts.\r\n\t */\n\tvar Dashboard = (_dec = (0, _reactDnd.DragDropContext)(_reactDndHtml5Backend2.default), _dec(_class = function (_Component) {\n\t _inherits(Dashboard, _Component);\n\t\n\t function Dashboard() {\n\t _classCallCheck(this, Dashboard);\n\t\n\t return _possibleConstructorReturn(this, (Dashboard.__proto__ || Object.getPrototypeOf(Dashboard)).apply(this, arguments));\n\t }\n\t\n\t _createClass(Dashboard, [{\n\t key: 'render',\n\t value: function render() {\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t _react2.default.createElement(_LayoutRenderer2.default, this.props)\n\t );\n\t }\n\t }]);\n\t\n\t return Dashboard;\n\t}(_react.Component)) || _class);\n\t\n\t\n\tDashboard.PropTypes = {\n\t /**\r\n\t * The layout of the dashboard.\r\n\t */\n\t layout: _react.PropTypes.object,\n\t\n\t /**\r\n\t * List of widgets that are avilable in the dashboard.\r\n\t */\n\t widgets: _react.PropTypes.object,\n\t\n\t /**\r\n\t * Indicates weather the dashoard is in editable state or not.\r\n\t */\n\t editable: _react.PropTypes.bool,\n\t\n\t /**\r\n\t * CSS class name that should be provided to the row. Default is 'row'.\r\n\t */\n\t rowClass: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Customized widget frame. The dashboard supports a default frame. But if\r\n\t * it doesn't suit your needs or the look and feel is not what you wanted, you\r\n\t * could create your own widget frame and pass it through here. Ever widget Will\r\n\t * use this as the outer container which displays controls like 'remove' button\r\n\t * on edit mode.\r\n\t */\n\t frameComponent: _react.PropTypes.func,\n\t\n\t /**\r\n\t * A custom component for the `add widget` button.\r\n\t */\n\t addWidgetComponent: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Class to be used for columns in editable mode.\r\n\t */\n\t editableColumnClass: _react.PropTypes.string,\n\t\n\t /**\r\n\t * CSS class to be used for columns when a widget is droppable.\r\n\t */\n\t droppableColumnClass: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Text that should be displayed in the `AddWidget` component.\r\n\t */\n\t addWidgetComponentText: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Will be called when a widget removed by the user from the dashboard.\r\n\t * Should be handled if the dashbord supports edit functionality.\r\n\t * provides the updated layout object. This layout object with the removed widget\r\n\t * should be given back to the dashboard through the layout prop to re-render the dashboard.\r\n\t */\n\t onRemove: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Will be called when user tries to add a widget into a column.\r\n\t */\n\t onAdd: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Function to be called when a widget is moved by the user.\r\n\t */\n\t onMove: _react.PropTypes.func\n\t};\n\t\n\texports.default = Dashboard;\n\t\n\t/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot apply hot update to \" + \"Dashboard.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-api\\\\modules\\\\index.js\"), RootInstanceProvider = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\t\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\r\n\t * Default frame that will be used with the widgets.\r\n\t */\n\tvar DefaultFrame = function DefaultFrame(_ref) {\n\t var children = _ref.children,\n\t onRemove = _ref.onRemove,\n\t editable = _ref.editable,\n\t title = _ref.title;\n\t\n\t return _react2.default.createElement(\n\t \"div\",\n\t { className: \"defaultWidgetFrame\" },\n\t _react2.default.createElement(\n\t \"div\",\n\t { className: \"defaultWidgetFrameHeader\" },\n\t _react2.default.createElement(\n\t \"span\",\n\t { className: \"title\" },\n\t title\n\t ),\n\t editable && _react2.default.createElement(\n\t \"a\",\n\t { className: \"remove\", onClick: function onClick() {\n\t onRemove();\n\t } },\n\t \"Remove\"\n\t )\n\t ),\n\t children\n\t );\n\t};\n\t\n\tDefaultFrame.propTypes = {\n\t /**\r\n\t * Indicates weather the dashboard is in editable mode.\r\n\t */\n\t editable: _react.PropTypes.bool,\n\t\n\t /**\r\n\t * Children of the frame.\r\n\t */\n\t children: _react.PropTypes.node,\n\t\n\t /**\r\n\t * Function to call when the widget is removed.\r\n\t */\n\t onRemove: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Title of the widget\r\n\t */\n\t title: _react.PropTypes.string\n\t};\n\t\n\texports.default = DefaultFrame;\n\t\n\t/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot apply hot update to \" + \"DefaultFrame.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-api\\\\modules\\\\index.js\"), RootInstanceProvider = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _Row = __webpack_require__(64);\n\t\n\tvar _Row2 = _interopRequireDefault(_Row);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\r\n\t * Renders the row, column layout based on the layout provided to the dashboard.\r\n\t */\n\tvar LayoutRenderer = function LayoutRenderer(props) {\n\t var layout = props.layout,\n\t widgets = props.widgets,\n\t onRemove = props.onRemove,\n\t editable = props.editable,\n\t onAdd = props.onAdd,\n\t frameComponent = props.frameComponent,\n\t rowClass = props.rowClass,\n\t onMove = props.onMove,\n\t editableColumnClass = props.editableColumnClass,\n\t droppableColumnClass = props.droppableColumnClass,\n\t addWidgetComponentText = props.addWidgetComponentText,\n\t addWidgetComponent = props.addWidgetComponent;\n\t\n\t\n\t var rows = layout.rows.map(function (row, rowIndex) {\n\t return _react2.default.createElement(_Row2.default, {\n\t key: rowIndex,\n\t rowClass: rowClass,\n\t columns: row.columns,\n\t widgets: widgets,\n\t onRemove: onRemove,\n\t layout: layout,\n\t rowIndex: rowIndex,\n\t editable: editable,\n\t onAdd: onAdd,\n\t onMove: onMove,\n\t frameComponent: frameComponent,\n\t editableColumnClass: editableColumnClass,\n\t droppableColumnClass: droppableColumnClass,\n\t addWidgetComponentText: addWidgetComponentText,\n\t addWidgetComponent: addWidgetComponent\n\t });\n\t });\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t rows\n\t );\n\t};\n\t\n\tLayoutRenderer.propTypes = {\n\t /**\r\n\t * Layout of the dashboard.\r\n\t */\n\t layout: _react.PropTypes.object,\n\t\n\t /**\r\n\t * Widgets that the dashboard supports.\r\n\t */\n\t widgets: _react.PropTypes.object,\n\t\n\t /**\r\n\t * Indicates weather this dashboard is in editable mode.\r\n\t */\n\t editable: _react.PropTypes.bool,\n\t\n\t /**\r\n\t * Function that will be called when user removed a widget.\r\n\t */\n\t onRemove: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Function that will be called user tries to add a widget.\r\n\t */\n\t onAdd: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Frame that should be used as the outer cotnainer of the widget.\r\n\t */\n\t frameComponent: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Class name that should be provided to the row component.\r\n\t */\n\t rowClass: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Function to be called when a widget is moved by the user.\r\n\t */\n\t onMove: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Class to be used for columns in editable mode.\r\n\t */\n\t editableColumnClass: _react.PropTypes.string,\n\t\n\t /**\r\n\t * CSS class to be used for columns when a widget is droppable.\r\n\t */\n\t droppableColumnClass: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Customized AddWidget component.\r\n\t */\n\t addWidgetComponent: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Text that should be displayed in the `AddWidget` component.\r\n\t */\n\t addWidgetComponentText: _react.PropTypes.string\n\t};\n\t\n\tLayoutRenderer.defaultProps = {\n\t /**\r\n\t * Default layout.\r\n\t */\n\t layout: {\n\t rows: []\n\t }\n\t};\n\t\n\texports.default = LayoutRenderer;\n\t\n\t/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot apply hot update to \" + \"LayoutRenderer.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-api\\\\modules\\\\index.js\"), RootInstanceProvider = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _Column = __webpack_require__(60);\n\t\n\tvar _Column2 = _interopRequireDefault(_Column);\n\t\n\tvar _Widgets = __webpack_require__(66);\n\t\n\tvar _Widgets2 = _interopRequireDefault(_Widgets);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\r\n\t * Returns a set of columns that belongs to a row.\r\n\t */\n\tfunction Row(props) {\n\t var rowClass = props.rowClass,\n\t columns = props.columns,\n\t widgets = props.widgets,\n\t onRemove = props.onRemove,\n\t layout = props.layout,\n\t rowIndex = props.rowIndex,\n\t editable = props.editable,\n\t frameComponent = props.frameComponent,\n\t editableColumnClass = props.editableColumnClass,\n\t droppableColumnClass = props.droppableColumnClass,\n\t addWidgetComponentText = props.addWidgetComponentText,\n\t addWidgetComponent = props.addWidgetComponent,\n\t onAdd = props.onAdd,\n\t onMove = props.onMove;\n\t\n\t\n\t var items = columns.map(function (column, index) {\n\t return _react2.default.createElement(\n\t _Column2.default,\n\t {\n\t key: index,\n\t className: column.className,\n\t onAdd: onAdd,\n\t layout: layout,\n\t rowIndex: rowIndex,\n\t columnIndex: index,\n\t editable: editable,\n\t onMove: onMove,\n\t editableColumnClass: editableColumnClass,\n\t droppableColumnClass: droppableColumnClass,\n\t addWidgetComponent: addWidgetComponent,\n\t addWidgetComponentText: addWidgetComponentText\n\t },\n\t _react2.default.createElement(_Widgets2.default, {\n\t key: index,\n\t widgets: column.widgets,\n\t widgetTypes: widgets,\n\t onRemove: onRemove,\n\t layout: layout,\n\t rowIndex: rowIndex,\n\t columnIndex: index,\n\t editable: editable,\n\t frameComponent: frameComponent,\n\t onMove: onMove\n\t })\n\t );\n\t });\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t { className: rowClass },\n\t items\n\t );\n\t}\n\t\n\tRow.propTypes = {\n\t /**\r\n\t * CSS class that should be used to represent a row.\r\n\t */\n\t rowClass: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Columns of the layout.\r\n\t */\n\t columns: _react.PropTypes.array,\n\t\n\t /**\r\n\t * Widgets that should be used in the dashboard.\r\n\t */\n\t widgets: _react.PropTypes.object,\n\t\n\t /**\r\n\t * Layout of the dashboard.\r\n\t */\n\t layout: _react.PropTypes.object,\n\t\n\t /**\r\n\t * Index of the row where this column is in.\r\n\t */\n\t rowIndex: _react.PropTypes.number,\n\t\n\t /**\r\n\t * Indicates weather the dashboard is in editable mode or not.\r\n\t */\n\t editable: _react.PropTypes.bool,\n\t\n\t /**\r\n\t * Custom frame that should be used with the widget.\r\n\t */\n\t frameComponent: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Class to be used for columns in editable mode.\r\n\t */\n\t editableColumnClass: _react.PropTypes.string,\n\t\n\t /**\r\n\t * CSS class to be used for columns when a widget is droppable.\r\n\t */\n\t droppableColumnClass: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Custom AddWidget component.\r\n\t */\n\t addWidgetComponent: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Text that should be displyed in the AddWidget component.\r\n\t */\n\t addWidgetComponentText: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Method that should be called when a component is added.\r\n\t */\n\t onAdd: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Method that should be called when a component is removed.\r\n\t */\n\t onRemove: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Method that should be called when a widget is moved.\r\n\t */\n\t onMove: _react.PropTypes.func\n\t};\n\t\n\tRow.defaultProps = {\n\t /**\r\n\t * Most CSS grid systems uses 'row' as the class name. Or not ?\r\n\t */\n\t rowClass: 'row'\n\t};\n\t\n\texports.default = Row;\n\t\n\t/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot apply hot update to \" + \"Row.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-api\\\\modules\\\\index.js\"), RootInstanceProvider = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _dec, _dec2, _class;\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDom = __webpack_require__(185);\n\t\n\tvar _reactDnd = __webpack_require__(30);\n\t\n\tvar _ItemTypes = __webpack_require__(33);\n\t\n\tvar _util = __webpack_require__(19);\n\t\n\tvar _DefaultFrame = __webpack_require__(62);\n\t\n\tvar _DefaultFrame2 = _interopRequireDefault(_DefaultFrame);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar boxSource = {\n\t beginDrag: function beginDrag(props) {\n\t return {\n\t widgetName: props.widgetName,\n\t rowIndex: props.rowIndex,\n\t columnIndex: props.columnIndex,\n\t widgetIndex: props.widgetIndex\n\t };\n\t }\n\t};\n\t\n\tvar cardTarget = {\n\t hover: function hover(props, monitor, component) {\n\t var dragIndex = monitor.getItem().widgetIndex;\n\t var hoverIndex = props.widgetIndex;\n\t\n\t // Don't replace items with themselves\n\t if (dragIndex === hoverIndex) {\n\t return;\n\t }\n\t\n\t // Determine rectangle on screen\n\t var hoverBoundingRect = (0, _reactDom.findDOMNode)(component).getBoundingClientRect();\n\t\n\t // Get vertical middle\n\t var hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\n\t\n\t // Determine mouse position\n\t var clientOffset = monitor.getClientOffset();\n\t\n\t // Get pixels to the top\n\t var hoverClientY = clientOffset.y - hoverBoundingRect.top;\n\t\n\t // Only perform the move when the mouse has crossed half of the items height\n\t // When dragging downwards, only move when the cursor is below 50%\n\t // When dragging upwards, only move when the cursor is above 50%\n\t\n\t // Dragging downwards\n\t if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\n\t return;\n\t }\n\t\n\t // Dragging upwards\n\t if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\n\t return;\n\t }\n\t\n\t // Time to actually perform the action\n\t var layout = props.layout,\n\t columnIndex = props.columnIndex,\n\t rowIndex = props.rowIndex;\n\t\n\t\n\t if (monitor.getItem().columnIndex === columnIndex) {\n\t var newLayout = (0, _util.sortWidget)(layout, {\n\t rowIndex: rowIndex,\n\t columnIndex: columnIndex,\n\t widgetIndex: dragIndex\n\t }, {\n\t rowIndex: rowIndex,\n\t columnIndex: columnIndex,\n\t widgetIndex: hoverIndex\n\t }, monitor.getItem().widgetName);\n\t\n\t props.onMove(newLayout);\n\t\n\t // Note: we're mutating the monitor item here!\n\t // Generally it's better to avoid mutations,\n\t // but it's good here for the sake of performance\n\t // to avoid expensive index searches.\n\t monitor.getItem().widgetIndex = hoverIndex;\n\t }\n\t }\n\t};\n\t\n\t/**\r\n\t * Frame component which surrounds each widget.\r\n\t */\n\tvar WidgetFrame = (_dec = (0, _reactDnd.DropTarget)(_ItemTypes.WIDGET, cardTarget, function (connect) {\n\t return {\n\t connectDropTarget: connect.dropTarget()\n\t };\n\t}), _dec2 = (0, _reactDnd.DragSource)(_ItemTypes.WIDGET, boxSource, function (connect, monitor) {\n\t return {\n\t connectDragSource: connect.dragSource(),\n\t isDragging: monitor.isDragging()\n\t };\n\t}), _dec(_class = _dec2(_class = function (_Component) {\n\t _inherits(WidgetFrame, _Component);\n\t\n\t function WidgetFrame() {\n\t var _ref;\n\t\n\t var _temp, _this, _ret;\n\t\n\t _classCallCheck(this, WidgetFrame);\n\t\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = WidgetFrame.__proto__ || Object.getPrototypeOf(WidgetFrame)).call.apply(_ref, [this].concat(args))), _this), _this.remove = function () {\n\t var _this$props = _this.props,\n\t layout = _this$props.layout,\n\t rowIndex = _this$props.rowIndex,\n\t columnIndex = _this$props.columnIndex,\n\t widgetIndex = _this$props.widgetIndex;\n\t\n\t var newLayout = (0, _util.removeWidget)(layout, rowIndex, columnIndex, widgetIndex);\n\t _this.props.onRemove(newLayout);\n\t }, _temp), _possibleConstructorReturn(_this, _ret);\n\t }\n\t\n\t _createClass(WidgetFrame, [{\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props,\n\t frameComponent = _props.frameComponent,\n\t children = _props.children,\n\t editable = _props.editable,\n\t title = _props.title,\n\t connectDragSource = _props.connectDragSource,\n\t connectDropTarget = _props.connectDropTarget,\n\t isDragging = _props.isDragging;\n\t\n\t\n\t var selected = null;\n\t\n\t if (frameComponent) {\n\t // if user provided a custom frame, use it\n\t selected = (0, _react.createElement)(frameComponent, { children: children, editable: editable, title: title, onRemove: this.remove });\n\t } else {\n\t // else use the default frame\n\t selected = _react2.default.createElement(_DefaultFrame2.default, {\n\t title: title,\n\t editable: editable,\n\t children: children,\n\t onRemove: this.remove\n\t });\n\t }\n\t var opacity = isDragging ? 0 : 1;\n\t var widgetFrame = _react2.default.createElement(\n\t 'div',\n\t { style: { opacity: opacity } },\n\t selected\n\t );\n\t\n\t return editable ? connectDragSource(connectDropTarget(widgetFrame)) : widgetFrame;\n\t }\n\t }]);\n\t\n\t return WidgetFrame;\n\t}(_react.Component)) || _class) || _class);\n\t\n\t\n\tWidgetFrame.propTypes = {\n\t /**\r\n\t * Childrens of the widget frame.\r\n\t */\n\t children: _react.PropTypes.element,\n\t\n\t /**\r\n\t * Layout of the dahsboard.\r\n\t */\n\t layout: _react.PropTypes.object,\n\t\n\t /**\r\n\t * Index of the column these widgets should be placed.\r\n\t */\n\t columnIndex: _react.PropTypes.number,\n\t\n\t /**\r\n\t * Index of the row these widgets should be placed.\r\n\t */\n\t rowIndex: _react.PropTypes.number,\n\t\n\t /**\r\n\t * Index of the widget.\r\n\t */\n\t widgetIndex: _react.PropTypes.number,\n\t\n\t /**\r\n\t * Indicates weatehr dashboard is in ediable mode or not.\r\n\t */\n\t editable: _react.PropTypes.bool,\n\t\n\t /**\r\n\t * User provided widget frame that should be used instead of the default one.\r\n\t */\n\t frameComponent: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Name of the widget.\r\n\t */\n\t widgetName: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Title of the widget.\r\n\t */\n\t title: _react.PropTypes.string,\n\t\n\t /**\r\n\t * Weather the component is being dragged.\r\n\t */\n\t isDragging: _react.PropTypes.bool,\n\t\n\t /**\r\n\t * ReactDnd's connectDragSource().\r\n\t */\n\t connectDragSource: _react.PropTypes.func,\n\t\n\t /**\r\n\t * ReactDnd's connectDropTarget().\r\n\t */\n\t connectDropTarget: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Function that should be called when a widget is about to be removed.\r\n\t */\n\t onRemove: _react.PropTypes.func\n\t};\n\t\n\texports.default = WidgetFrame;\n\t\n\t/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot apply hot update to \" + \"WidgetFrame.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-api\\\\modules\\\\index.js\"), RootInstanceProvider = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _WidgetFrame = __webpack_require__(65);\n\t\n\tvar _WidgetFrame2 = _interopRequireDefault(_WidgetFrame);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t/**\r\n\t * Component that renders the widget which belongs to a column.\r\n\t */\n\tvar Widgets = function Widgets(_ref) {\n\t var widgets = _ref.widgets,\n\t widgetTypes = _ref.widgetTypes,\n\t onRemove = _ref.onRemove,\n\t layout = _ref.layout,\n\t columnIndex = _ref.columnIndex,\n\t rowIndex = _ref.rowIndex,\n\t editable = _ref.editable,\n\t frameComponent = _ref.frameComponent,\n\t onMove = _ref.onMove;\n\t\n\t var createdWidgets = widgets.map(function (widget, index) {\n\t return _react2.default.createElement(\n\t _WidgetFrame2.default,\n\t {\n\t key: index,\n\t widgetName: widget.key,\n\t title: widgetTypes[widget.key].title,\n\t onRemove: onRemove,\n\t layout: layout,\n\t columnIndex: columnIndex,\n\t rowIndex: rowIndex,\n\t widgetIndex: index,\n\t editable: editable,\n\t frameComponent: frameComponent,\n\t onMove: onMove\n\t },\n\t (0, _react.createElement)(widgetTypes[widget.key].type, widgetTypes[widget.key].props)\n\t );\n\t });\n\t return _react2.default.createElement(\n\t 'div',\n\t null,\n\t createdWidgets\n\t );\n\t};\n\t\n\tWidgets.propTypes = {\n\t /**\r\n\t * Widgets that should be rendered.\r\n\t */\n\t widgets: _react.PropTypes.array,\n\t\n\t /**\r\n\t * Widgets that are available in the dashboard.\r\n\t */\n\t widgetTypes: _react.PropTypes.object,\n\t\n\t /**\r\n\t * Function that should be called when a widget is about to be removed.\r\n\t */\n\t onRemove: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Layout of the dahsboard.\r\n\t */\n\t layout: _react.PropTypes.object,\n\t\n\t /**\r\n\t * Index of the column these widgets should be placed.\r\n\t */\n\t columnIndex: _react.PropTypes.number,\n\t\n\t /**\r\n\t * Index of the row these widgets should be placed.\r\n\t */\n\t rowIndex: _react.PropTypes.number,\n\t\n\t /**\r\n\t * Indicates weatehr dashboard is in ediable mode or not.\r\n\t */\n\t editable: _react.PropTypes.bool,\n\t\n\t /**\r\n\t * User provided widget frame that should be used instead of the default one.\r\n\t */\n\t frameComponent: _react.PropTypes.func,\n\t\n\t /**\r\n\t * Method to call when a widget is moved.\r\n\t */\n\t onMove: _react.PropTypes.func\n\t};\n\t\n\texports.default = Widgets;\n\t\n\t/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot apply hot update to \" + \"Widgets.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-api\\\\modules\\\\index.js\"), RootInstanceProvider = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _Dashboard = __webpack_require__(61);\n\t\n\tObject.defineProperty(exports, 'default', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_Dashboard).default;\n\t }\n\t});\n\t\n\tvar _util = __webpack_require__(19);\n\t\n\tObject.defineProperty(exports, 'addWidget', {\n\t enumerable: true,\n\t get: function get() {\n\t return _util.addWidget;\n\t }\n\t});\n\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\t/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"D:\\\\projects\\\\dazzle\\\\src\\\\node_modules\\\\react-hot-loader\\\\makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot apply hot update to \" + \"index.js\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\t// rawAsap provides everything we need except exception management.\n\tvar rawAsap = __webpack_require__(69);\n\t// RawTasks are recycled to reduce GC churn.\n\tvar freeTasks = [];\n\t// We queue errors to ensure they are thrown in right order (FIFO).\n\t// Array-as-queue is good enough here, since we are just dealing with exceptions.\n\tvar pendingErrors = [];\n\tvar requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);\n\t\n\tfunction throwFirstError() {\n\t if (pendingErrors.length) {\n\t throw pendingErrors.shift();\n\t }\n\t}\n\t\n\t/**\n\t * Calls a task as soon as possible after returning, in its own event, with priority\n\t * over other events like animation, reflow, and repaint. An error thrown from an\n\t * event will not interrupt, nor even substantially slow down the processing of\n\t * other events, but will be rather postponed to a lower priority event.\n\t * @param {{call}} task A callable object, typically a function that takes no\n\t * arguments.\n\t */\n\tmodule.exports = asap;\n\tfunction asap(task) {\n\t var rawTask;\n\t if (freeTasks.length) {\n\t rawTask = freeTasks.pop();\n\t } else {\n\t rawTask = new RawTask();\n\t }\n\t rawTask.task = task;\n\t rawAsap(rawTask);\n\t}\n\t\n\t// We wrap tasks with recyclable task objects. A task object implements\n\t// `call`, just like a function.\n\tfunction RawTask() {\n\t this.task = null;\n\t}\n\t\n\t// The sole purpose of wrapping the task is to catch the exception and recycle\n\t// the task object after its single use.\n\tRawTask.prototype.call = function () {\n\t try {\n\t this.task.call();\n\t } catch (error) {\n\t if (asap.onerror) {\n\t // This hook exists purely for testing purposes.\n\t // Its name will be periodically randomized to break any code that\n\t // depends on its existence.\n\t asap.onerror(error);\n\t } else {\n\t // In a web browser, exceptions are not fatal. However, to avoid\n\t // slowing down the queue of pending tasks, we rethrow the error in a\n\t // lower priority turn.\n\t pendingErrors.push(error);\n\t requestErrorThrow();\n\t }\n\t } finally {\n\t this.task = null;\n\t freeTasks[freeTasks.length] = this;\n\t }\n\t};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\t// Use the fastest means possible to execute a task in its own turn, with\n\t// priority over other events including IO, animation, reflow, and redraw\n\t// events in browsers.\n\t//\n\t// An exception thrown by a task will permanently interrupt the processing of\n\t// subsequent tasks. The higher level `asap` function ensures that if an\n\t// exception is thrown by a task, that the task queue will continue flushing as\n\t// soon as possible, but if you use `rawAsap` directly, you are responsible to\n\t// either ensure that no exceptions are thrown from your task, or to manually\n\t// call `rawAsap.requestFlush` if an exception is thrown.\n\tmodule.exports = rawAsap;\n\tfunction rawAsap(task) {\n\t if (!queue.length) {\n\t requestFlush();\n\t flushing = true;\n\t }\n\t // Equivalent to push, but avoids a function call.\n\t queue[queue.length] = task;\n\t}\n\t\n\tvar queue = [];\n\t// Once a flush has been requested, no further calls to `requestFlush` are\n\t// necessary until the next `flush` completes.\n\tvar flushing = false;\n\t// `requestFlush` is an implementation-specific method that attempts to kick\n\t// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n\t// the event queue before yielding to the browser's own event loop.\n\tvar requestFlush;\n\t// The position of the next task to execute in the task queue. This is\n\t// preserved between calls to `flush` so that it can be resumed if\n\t// a task throws an exception.\n\tvar index = 0;\n\t// If a task schedules additional tasks recursively, the task queue can grow\n\t// unbounded. To prevent memory exhaustion, the task queue will periodically\n\t// truncate already-completed tasks.\n\tvar capacity = 1024;\n\t\n\t// The flush function processes all tasks that have been scheduled with\n\t// `rawAsap` unless and until one of those tasks throws an exception.\n\t// If a task throws an exception, `flush` ensures that its state will remain\n\t// consistent and will resume where it left off when called again.\n\t// However, `flush` does not make any arrangements to be called again if an\n\t// exception is thrown.\n\tfunction flush() {\n\t while (index < queue.length) {\n\t var currentIndex = index;\n\t // Advance the index before calling the task. This ensures that we will\n\t // begin flushing on the next task the task throws an error.\n\t index = index + 1;\n\t queue[currentIndex].call();\n\t // Prevent leaking memory for long chains of recursive calls to `asap`.\n\t // If we call `asap` within tasks scheduled by `asap`, the queue will\n\t // grow, but to avoid an O(n) walk for every task we execute, we don't\n\t // shift tasks off the queue after they have been executed.\n\t // Instead, we periodically shift 1024 tasks off the queue.\n\t if (index > capacity) {\n\t // Manually shift all values starting at the index back to the\n\t // beginning of the queue.\n\t for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n\t queue[scan] = queue[scan + index];\n\t }\n\t queue.length -= index;\n\t index = 0;\n\t }\n\t }\n\t queue.length = 0;\n\t index = 0;\n\t flushing = false;\n\t}\n\t\n\t// `requestFlush` is implemented using a strategy based on data collected from\n\t// every available SauceLabs Selenium web driver worker at time of writing.\n\t// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\t\n\t// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n\t// have WebKitMutationObserver but not un-prefixed MutationObserver.\n\t// Must use `global` or `self` instead of `window` to work in both frames and web\n\t// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\t\n\t/* globals self */\n\tvar scope = typeof global !== \"undefined\" ? global : self;\n\tvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\t\n\t// MutationObservers are desirable because they have high priority and work\n\t// reliably everywhere they are implemented.\n\t// They are implemented in all modern browsers.\n\t//\n\t// - Android 4-4.3\n\t// - Chrome 26-34\n\t// - Firefox 14-29\n\t// - Internet Explorer 11\n\t// - iPad Safari 6-7.1\n\t// - iPhone Safari 7-7.1\n\t// - Safari 6-7\n\tif (typeof BrowserMutationObserver === \"function\") {\n\t requestFlush = makeRequestCallFromMutationObserver(flush);\n\t\n\t// MessageChannels are desirable because they give direct access to the HTML\n\t// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n\t// 11-12, and in web workers in many engines.\n\t// Although message channels yield to any queued rendering and IO tasks, they\n\t// would be better than imposing the 4ms delay of timers.\n\t// However, they do not work reliably in Internet Explorer or Safari.\n\t\n\t// Internet Explorer 10 is the only browser that has setImmediate but does\n\t// not have MutationObservers.\n\t// Although setImmediate yields to the browser's renderer, it would be\n\t// preferrable to falling back to setTimeout since it does not have\n\t// the minimum 4ms penalty.\n\t// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n\t// Desktop to a lesser extent) that renders both setImmediate and\n\t// MessageChannel useless for the purposes of ASAP.\n\t// https://github.com/kriskowal/q/issues/396\n\t\n\t// Timers are implemented universally.\n\t// We fall back to timers in workers in most engines, and in foreground\n\t// contexts in the following browsers.\n\t// However, note that even this simple case requires nuances to operate in a\n\t// broad spectrum of browsers.\n\t//\n\t// - Firefox 3-13\n\t// - Internet Explorer 6-9\n\t// - iPad Safari 4.3\n\t// - Lynx 2.8.7\n\t} else {\n\t requestFlush = makeRequestCallFromTimer(flush);\n\t}\n\t\n\t// `requestFlush` requests that the high priority event queue be flushed as\n\t// soon as possible.\n\t// This is useful to prevent an error thrown in a task from stalling the event\n\t// queue if the exception handled by Node.js’s\n\t// `process.on(\"uncaughtException\")` or by a domain.\n\trawAsap.requestFlush = requestFlush;\n\t\n\t// To request a high priority event, we induce a mutation observer by toggling\n\t// the text of a text node between \"1\" and \"-1\".\n\tfunction makeRequestCallFromMutationObserver(callback) {\n\t var toggle = 1;\n\t var observer = new BrowserMutationObserver(callback);\n\t var node = document.createTextNode(\"\");\n\t observer.observe(node, {characterData: true});\n\t return function requestCall() {\n\t toggle = -toggle;\n\t node.data = toggle;\n\t };\n\t}\n\t\n\t// The message channel technique was discovered by Malte Ubl and was the\n\t// original foundation for this library.\n\t// http://www.nonblocking.io/2011/06/windownexttick.html\n\t\n\t// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n\t// page's first load. Thankfully, this version of Safari supports\n\t// MutationObservers, so we don't need to fall back in that case.\n\t\n\t// function makeRequestCallFromMessageChannel(callback) {\n\t// var channel = new MessageChannel();\n\t// channel.port1.onmessage = callback;\n\t// return function requestCall() {\n\t// channel.port2.postMessage(0);\n\t// };\n\t// }\n\t\n\t// For reasons explained above, we are also unable to use `setImmediate`\n\t// under any circumstances.\n\t// Even if we were, there is another bug in Internet Explorer 10.\n\t// It is not sufficient to assign `setImmediate` to `requestFlush` because\n\t// `setImmediate` must be called *by name* and therefore must be wrapped in a\n\t// closure.\n\t// Never forget.\n\t\n\t// function makeRequestCallFromSetImmediate(callback) {\n\t// return function requestCall() {\n\t// setImmediate(callback);\n\t// };\n\t// }\n\t\n\t// Safari 6.0 has a problem where timers will get lost while the user is\n\t// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n\t// mutation observers, so that implementation is used instead.\n\t// However, if we ever elect to use timers in Safari, the prevalent work-around\n\t// is to add a scroll event listener that calls for a flush.\n\t\n\t// `setTimeout` does not call the passed callback if the delay is less than\n\t// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n\t// even then.\n\t\n\tfunction makeRequestCallFromTimer(callback) {\n\t return function requestCall() {\n\t // We dispatch a timeout with a specified delay of 0 for engines that\n\t // can reliably accommodate that request. This will usually be snapped\n\t // to a 4 milisecond delay, but once we're flushing, there's no delay\n\t // between events.\n\t var timeoutHandle = setTimeout(handleTimer, 0);\n\t // However, since this timer gets frequently dropped in Firefox\n\t // workers, we enlist an interval handle that will try to fire\n\t // an event 20 times per second until it succeeds.\n\t var intervalHandle = setInterval(handleTimer, 50);\n\t\n\t function handleTimer() {\n\t // Whichever timer succeeds will cancel both timers and\n\t // execute the callback.\n\t clearTimeout(timeoutHandle);\n\t clearInterval(intervalHandle);\n\t callback();\n\t }\n\t };\n\t}\n\t\n\t// This is for `asap.js` only.\n\t// Its name will be periodically randomized to break any code that depends on\n\t// its existence.\n\trawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\t\n\t// ASAP was originally a nextTick shim included in Q. This was factored out\n\t// into this ASAP package. It was later adapted to RSVP which made further\n\t// amendments. These decisions, particularly to marginalize MessageChannel and\n\t// to capture the MutationObserver implementation in a closure, were integrated\n\t// back into ASAP proper.\n\t// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };\n\t\n\tvar _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };\n\t\n\texports.__esModule = true;\n\t\n\tvar _isDisposable = __webpack_require__(20);\n\t\n\tvar _isDisposable2 = _interopRequireWildcard(_isDisposable);\n\t\n\t/**\n\t * Represents a group of disposable resources that are disposed together.\n\t */\n\t\n\tvar CompositeDisposable = (function () {\n\t function CompositeDisposable() {\n\t for (var _len = arguments.length, disposables = Array(_len), _key = 0; _key < _len; _key++) {\n\t disposables[_key] = arguments[_key];\n\t }\n\t\n\t _classCallCheck(this, CompositeDisposable);\n\t\n\t if (Array.isArray(disposables[0]) && disposables.length === 1) {\n\t disposables = disposables[0];\n\t }\n\t\n\t for (var i = 0; i < disposables.length; i++) {\n\t if (!_isDisposable2['default'](disposables[i])) {\n\t throw new Error('Expected a disposable');\n\t }\n\t }\n\t\n\t this.disposables = disposables;\n\t this.isDisposed = false;\n\t }\n\t\n\t /**\n\t * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed.\n\t * @param {Disposable} item Disposable to add.\n\t */\n\t\n\t CompositeDisposable.prototype.add = function add(item) {\n\t if (this.isDisposed) {\n\t item.dispose();\n\t } else {\n\t this.disposables.push(item);\n\t }\n\t };\n\t\n\t /**\n\t * Removes and disposes the first occurrence of a disposable from the CompositeDisposable.\n\t * @param {Disposable} item Disposable to remove.\n\t * @returns {Boolean} true if found; false otherwise.\n\t */\n\t\n\t CompositeDisposable.prototype.remove = function remove(item) {\n\t if (this.isDisposed) {\n\t return false;\n\t }\n\t\n\t var index = this.disposables.indexOf(item);\n\t if (index === -1) {\n\t return false;\n\t }\n\t\n\t this.disposables.splice(index, 1);\n\t item.dispose();\n\t return true;\n\t };\n\t\n\t /**\n\t * Disposes all disposables in the group and removes them from the group.\n\t */\n\t\n\t CompositeDisposable.prototype.dispose = function dispose() {\n\t if (this.isDisposed) {\n\t return;\n\t }\n\t\n\t var len = this.disposables.length;\n\t var currentDisposables = new Array(len);\n\t for (var i = 0; i < len; i++) {\n\t currentDisposables[i] = this.disposables[i];\n\t }\n\t\n\t this.isDisposed = true;\n\t this.disposables = [];\n\t this.length = 0;\n\t\n\t for (var i = 0; i < len; i++) {\n\t currentDisposables[i].dispose();\n\t }\n\t };\n\t\n\t return CompositeDisposable;\n\t})();\n\t\n\texports['default'] = CompositeDisposable;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\tvar _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } };\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\texports.__esModule = true;\n\tvar noop = function noop() {};\n\t\n\t/**\n\t * The basic disposable.\n\t */\n\t\n\tvar Disposable = (function () {\n\t function Disposable(action) {\n\t _classCallCheck(this, Disposable);\n\t\n\t this.isDisposed = false;\n\t this.action = action || noop;\n\t }\n\t\n\t Disposable.prototype.dispose = function dispose() {\n\t if (!this.isDisposed) {\n\t this.action.call(null);\n\t this.isDisposed = true;\n\t }\n\t };\n\t\n\t _createClass(Disposable, null, [{\n\t key: \"empty\",\n\t enumerable: true,\n\t value: { dispose: noop }\n\t }]);\n\t\n\t return Disposable;\n\t})();\n\t\n\texports[\"default\"] = Disposable;\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };\n\t\n\tvar _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };\n\t\n\texports.__esModule = true;\n\t\n\tvar _isDisposable = __webpack_require__(20);\n\t\n\tvar _isDisposable2 = _interopRequireWildcard(_isDisposable);\n\t\n\tvar SerialDisposable = (function () {\n\t function SerialDisposable() {\n\t _classCallCheck(this, SerialDisposable);\n\t\n\t this.isDisposed = false;\n\t this.current = null;\n\t }\n\t\n\t /**\n\t * Gets the underlying disposable.\n\t * @return The underlying disposable.\n\t */\n\t\n\t SerialDisposable.prototype.getDisposable = function getDisposable() {\n\t return this.current;\n\t };\n\t\n\t /**\n\t * Sets the underlying disposable.\n\t * @param {Disposable} value The new underlying disposable.\n\t */\n\t\n\t SerialDisposable.prototype.setDisposable = function setDisposable() {\n\t var value = arguments[0] === undefined ? null : arguments[0];\n\t\n\t if (value != null && !_isDisposable2['default'](value)) {\n\t throw new Error('Expected either an empty value or a valid disposable');\n\t }\n\t\n\t var isDisposed = this.isDisposed;\n\t var previous = undefined;\n\t\n\t if (!isDisposed) {\n\t previous = this.current;\n\t this.current = value;\n\t }\n\t\n\t if (previous) {\n\t previous.dispose();\n\t }\n\t\n\t if (isDisposed && value) {\n\t value.dispose();\n\t }\n\t };\n\t\n\t /**\n\t * Disposes the underlying disposable as well as all future replacements.\n\t */\n\t\n\t SerialDisposable.prototype.dispose = function dispose() {\n\t if (this.isDisposed) {\n\t return;\n\t }\n\t\n\t this.isDisposed = true;\n\t var previous = this.current;\n\t this.current = null;\n\t\n\t if (previous) {\n\t previous.dispose();\n\t }\n\t };\n\t\n\t return SerialDisposable;\n\t})();\n\t\n\texports['default'] = SerialDisposable;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };\n\t\n\texports.__esModule = true;\n\t\n\tvar _isDisposable2 = __webpack_require__(20);\n\t\n\tvar _isDisposable3 = _interopRequireWildcard(_isDisposable2);\n\t\n\texports.isDisposable = _isDisposable3['default'];\n\t\n\tvar _Disposable2 = __webpack_require__(71);\n\t\n\tvar _Disposable3 = _interopRequireWildcard(_Disposable2);\n\t\n\texports.Disposable = _Disposable3['default'];\n\t\n\tvar _CompositeDisposable2 = __webpack_require__(70);\n\t\n\tvar _CompositeDisposable3 = _interopRequireWildcard(_CompositeDisposable2);\n\t\n\texports.CompositeDisposable = _CompositeDisposable3['default'];\n\t\n\tvar _SerialDisposable2 = __webpack_require__(72);\n\t\n\tvar _SerialDisposable3 = _interopRequireWildcard(_SerialDisposable2);\n\t\n\texports.SerialDisposable = _SerialDisposable3['default'];\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _createStore = __webpack_require__(181);\n\t\n\tvar _createStore2 = _interopRequireDefault(_createStore);\n\t\n\tvar _reducers = __webpack_require__(82);\n\t\n\tvar _reducers2 = _interopRequireDefault(_reducers);\n\t\n\tvar _dragDrop = __webpack_require__(9);\n\t\n\tvar dragDropActions = _interopRequireWildcard(_dragDrop);\n\t\n\tvar _DragDropMonitor = __webpack_require__(75);\n\t\n\tvar _DragDropMonitor2 = _interopRequireDefault(_DragDropMonitor);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar DragDropManager = function () {\n\t function DragDropManager(createBackend) {\n\t var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t\n\t _classCallCheck(this, DragDropManager);\n\t\n\t var store = (0, _createStore2.default)(_reducers2.default);\n\t this.context = context;\n\t this.store = store;\n\t this.monitor = new _DragDropMonitor2.default(store);\n\t this.registry = this.monitor.registry;\n\t this.backend = createBackend(this);\n\t\n\t store.subscribe(this.handleRefCountChange.bind(this));\n\t }\n\t\n\t _createClass(DragDropManager, [{\n\t key: 'handleRefCountChange',\n\t value: function handleRefCountChange() {\n\t var shouldSetUp = this.store.getState().refCount > 0;\n\t if (shouldSetUp && !this.isSetUp) {\n\t this.backend.setup();\n\t this.isSetUp = true;\n\t } else if (!shouldSetUp && this.isSetUp) {\n\t this.backend.teardown();\n\t this.isSetUp = false;\n\t }\n\t }\n\t }, {\n\t key: 'getContext',\n\t value: function getContext() {\n\t return this.context;\n\t }\n\t }, {\n\t key: 'getMonitor',\n\t value: function getMonitor() {\n\t return this.monitor;\n\t }\n\t }, {\n\t key: 'getBackend',\n\t value: function getBackend() {\n\t return this.backend;\n\t }\n\t }, {\n\t key: 'getRegistry',\n\t value: function getRegistry() {\n\t return this.registry;\n\t }\n\t }, {\n\t key: 'getActions',\n\t value: function getActions() {\n\t var manager = this;\n\t var dispatch = this.store.dispatch;\n\t\n\t\n\t function bindActionCreator(actionCreator) {\n\t return function () {\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t var action = actionCreator.apply(manager, args);\n\t if (typeof action !== 'undefined') {\n\t dispatch(action);\n\t }\n\t };\n\t }\n\t\n\t return Object.keys(dragDropActions).filter(function (key) {\n\t return typeof dragDropActions[key] === 'function';\n\t }).reduce(function (boundActions, key) {\n\t var action = dragDropActions[key];\n\t boundActions[key] = bindActionCreator(action); // eslint-disable-line no-param-reassign\n\t return boundActions;\n\t }, {});\n\t }\n\t }]);\n\t\n\t return DragDropManager;\n\t}();\n\t\n\texports.default = DragDropManager;\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _isArray = __webpack_require__(3);\n\t\n\tvar _isArray2 = _interopRequireDefault(_isArray);\n\t\n\tvar _matchesType = __webpack_require__(36);\n\t\n\tvar _matchesType2 = _interopRequireDefault(_matchesType);\n\t\n\tvar _HandlerRegistry = __webpack_require__(78);\n\t\n\tvar _HandlerRegistry2 = _interopRequireDefault(_HandlerRegistry);\n\t\n\tvar _dragOffset = __webpack_require__(35);\n\t\n\tvar _dirtyHandlerIds = __webpack_require__(34);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar DragDropMonitor = function () {\n\t function DragDropMonitor(store) {\n\t _classCallCheck(this, DragDropMonitor);\n\t\n\t this.store = store;\n\t this.registry = new _HandlerRegistry2.default(store);\n\t }\n\t\n\t _createClass(DragDropMonitor, [{\n\t key: 'subscribeToStateChange',\n\t value: function subscribeToStateChange(listener) {\n\t var _this = this;\n\t\n\t var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\t var handlerIds = options.handlerIds;\n\t\n\t (0, _invariant2.default)(typeof listener === 'function', 'listener must be a function.');\n\t (0, _invariant2.default)(typeof handlerIds === 'undefined' || (0, _isArray2.default)(handlerIds), 'handlerIds, when specified, must be an array of strings.');\n\t\n\t var prevStateId = this.store.getState().stateId;\n\t var handleChange = function handleChange() {\n\t var state = _this.store.getState();\n\t var currentStateId = state.stateId;\n\t try {\n\t var canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !(0, _dirtyHandlerIds.areDirty)(state.dirtyHandlerIds, handlerIds);\n\t\n\t if (!canSkipListener) {\n\t listener();\n\t }\n\t } finally {\n\t prevStateId = currentStateId;\n\t }\n\t };\n\t\n\t return this.store.subscribe(handleChange);\n\t }\n\t }, {\n\t key: 'subscribeToOffsetChange',\n\t value: function subscribeToOffsetChange(listener) {\n\t var _this2 = this;\n\t\n\t (0, _invariant2.default)(typeof listener === 'function', 'listener must be a function.');\n\t\n\t var previousState = this.store.getState().dragOffset;\n\t var handleChange = function handleChange() {\n\t var nextState = _this2.store.getState().dragOffset;\n\t if (nextState === previousState) {\n\t return;\n\t }\n\t\n\t previousState = nextState;\n\t listener();\n\t };\n\t\n\t return this.store.subscribe(handleChange);\n\t }\n\t }, {\n\t key: 'canDragSource',\n\t value: function canDragSource(sourceId) {\n\t var source = this.registry.getSource(sourceId);\n\t (0, _invariant2.default)(source, 'Expected to find a valid source.');\n\t\n\t if (this.isDragging()) {\n\t return false;\n\t }\n\t\n\t return source.canDrag(this, sourceId);\n\t }\n\t }, {\n\t key: 'canDropOnTarget',\n\t value: function canDropOnTarget(targetId) {\n\t var target = this.registry.getTarget(targetId);\n\t (0, _invariant2.default)(target, 'Expected to find a valid target.');\n\t\n\t if (!this.isDragging() || this.didDrop()) {\n\t return false;\n\t }\n\t\n\t var targetType = this.registry.getTargetType(targetId);\n\t var draggedItemType = this.getItemType();\n\t return (0, _matchesType2.default)(targetType, draggedItemType) && target.canDrop(this, targetId);\n\t }\n\t }, {\n\t key: 'isDragging',\n\t value: function isDragging() {\n\t return Boolean(this.getItemType());\n\t }\n\t }, {\n\t key: 'isDraggingSource',\n\t value: function isDraggingSource(sourceId) {\n\t var source = this.registry.getSource(sourceId, true);\n\t (0, _invariant2.default)(source, 'Expected to find a valid source.');\n\t\n\t if (!this.isDragging() || !this.isSourcePublic()) {\n\t return false;\n\t }\n\t\n\t var sourceType = this.registry.getSourceType(sourceId);\n\t var draggedItemType = this.getItemType();\n\t if (sourceType !== draggedItemType) {\n\t return false;\n\t }\n\t\n\t return source.isDragging(this, sourceId);\n\t }\n\t }, {\n\t key: 'isOverTarget',\n\t value: function isOverTarget(targetId) {\n\t var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { shallow: false };\n\t var shallow = options.shallow;\n\t\n\t if (!this.isDragging()) {\n\t return false;\n\t }\n\t\n\t var targetType = this.registry.getTargetType(targetId);\n\t var draggedItemType = this.getItemType();\n\t if (!(0, _matchesType2.default)(targetType, draggedItemType)) {\n\t return false;\n\t }\n\t\n\t var targetIds = this.getTargetIds();\n\t if (!targetIds.length) {\n\t return false;\n\t }\n\t\n\t var index = targetIds.indexOf(targetId);\n\t if (shallow) {\n\t return index === targetIds.length - 1;\n\t } else {\n\t return index > -1;\n\t }\n\t }\n\t }, {\n\t key: 'getItemType',\n\t value: function getItemType() {\n\t return this.store.getState().dragOperation.itemType;\n\t }\n\t }, {\n\t key: 'getItem',\n\t value: function getItem() {\n\t return this.store.getState().dragOperation.item;\n\t }\n\t }, {\n\t key: 'getSourceId',\n\t value: function getSourceId() {\n\t return this.store.getState().dragOperation.sourceId;\n\t }\n\t }, {\n\t key: 'getTargetIds',\n\t value: function getTargetIds() {\n\t return this.store.getState().dragOperation.targetIds;\n\t }\n\t }, {\n\t key: 'getDropResult',\n\t value: function getDropResult() {\n\t return this.store.getState().dragOperation.dropResult;\n\t }\n\t }, {\n\t key: 'didDrop',\n\t value: function didDrop() {\n\t return this.store.getState().dragOperation.didDrop;\n\t }\n\t }, {\n\t key: 'isSourcePublic',\n\t value: function isSourcePublic() {\n\t return this.store.getState().dragOperation.isSourcePublic;\n\t }\n\t }, {\n\t key: 'getInitialClientOffset',\n\t value: function getInitialClientOffset() {\n\t return this.store.getState().dragOffset.initialClientOffset;\n\t }\n\t }, {\n\t key: 'getInitialSourceClientOffset',\n\t value: function getInitialSourceClientOffset() {\n\t return this.store.getState().dragOffset.initialSourceClientOffset;\n\t }\n\t }, {\n\t key: 'getClientOffset',\n\t value: function getClientOffset() {\n\t return this.store.getState().dragOffset.clientOffset;\n\t }\n\t }, {\n\t key: 'getSourceClientOffset',\n\t value: function getSourceClientOffset() {\n\t return (0, _dragOffset.getSourceClientOffset)(this.store.getState().dragOffset);\n\t }\n\t }, {\n\t key: 'getDifferenceFromInitialOffset',\n\t value: function getDifferenceFromInitialOffset() {\n\t return (0, _dragOffset.getDifferenceFromInitialOffset)(this.store.getState().dragOffset);\n\t }\n\t }]);\n\t\n\t return DragDropMonitor;\n\t}();\n\t\n\texports.default = DragDropMonitor;\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar DragSource = function () {\n\t function DragSource() {\n\t _classCallCheck(this, DragSource);\n\t }\n\t\n\t _createClass(DragSource, [{\n\t key: \"canDrag\",\n\t value: function canDrag() {\n\t return true;\n\t }\n\t }, {\n\t key: \"isDragging\",\n\t value: function isDragging(monitor, handle) {\n\t return handle === monitor.getSourceId();\n\t }\n\t }, {\n\t key: \"endDrag\",\n\t value: function endDrag() {}\n\t }]);\n\t\n\t return DragSource;\n\t}();\n\t\n\texports.default = DragSource;\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar DropTarget = function () {\n\t function DropTarget() {\n\t _classCallCheck(this, DropTarget);\n\t }\n\t\n\t _createClass(DropTarget, [{\n\t key: \"canDrop\",\n\t value: function canDrop() {\n\t return true;\n\t }\n\t }, {\n\t key: \"hover\",\n\t value: function hover() {}\n\t }, {\n\t key: \"drop\",\n\t value: function drop() {}\n\t }]);\n\t\n\t return DropTarget;\n\t}();\n\t\n\texports.default = DropTarget;\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _isArray = __webpack_require__(3);\n\t\n\tvar _isArray2 = _interopRequireDefault(_isArray);\n\t\n\tvar _asap = __webpack_require__(68);\n\t\n\tvar _asap2 = _interopRequireDefault(_asap);\n\t\n\tvar _registry = __webpack_require__(10);\n\t\n\tvar _getNextUniqueId = __webpack_require__(85);\n\t\n\tvar _getNextUniqueId2 = _interopRequireDefault(_getNextUniqueId);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar HandlerRoles = {\n\t SOURCE: 'SOURCE',\n\t TARGET: 'TARGET'\n\t};\n\t\n\tfunction validateSourceContract(source) {\n\t (0, _invariant2.default)(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');\n\t (0, _invariant2.default)(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');\n\t (0, _invariant2.default)(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');\n\t}\n\t\n\tfunction validateTargetContract(target) {\n\t (0, _invariant2.default)(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');\n\t (0, _invariant2.default)(typeof target.hover === 'function', 'Expected hover to be a function.');\n\t (0, _invariant2.default)(typeof target.drop === 'function', 'Expected beginDrag to be a function.');\n\t}\n\t\n\tfunction validateType(type, allowArray) {\n\t if (allowArray && (0, _isArray2.default)(type)) {\n\t type.forEach(function (t) {\n\t return validateType(t, false);\n\t });\n\t return;\n\t }\n\t\n\t (0, _invariant2.default)(typeof type === 'string' || (typeof type === 'undefined' ? 'undefined' : _typeof(type)) === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');\n\t}\n\t\n\tfunction getNextHandlerId(role) {\n\t var id = (0, _getNextUniqueId2.default)().toString();\n\t switch (role) {\n\t case HandlerRoles.SOURCE:\n\t return 'S' + id;\n\t case HandlerRoles.TARGET:\n\t return 'T' + id;\n\t default:\n\t (0, _invariant2.default)(false, 'Unknown role: ' + role);\n\t }\n\t}\n\t\n\tfunction parseRoleFromHandlerId(handlerId) {\n\t switch (handlerId[0]) {\n\t case 'S':\n\t return HandlerRoles.SOURCE;\n\t case 'T':\n\t return HandlerRoles.TARGET;\n\t default:\n\t (0, _invariant2.default)(false, 'Cannot parse handler ID: ' + handlerId);\n\t }\n\t}\n\t\n\tvar HandlerRegistry = function () {\n\t function HandlerRegistry(store) {\n\t _classCallCheck(this, HandlerRegistry);\n\t\n\t this.store = store;\n\t\n\t this.types = {};\n\t this.handlers = {};\n\t\n\t this.pinnedSourceId = null;\n\t this.pinnedSource = null;\n\t }\n\t\n\t _createClass(HandlerRegistry, [{\n\t key: 'addSource',\n\t value: function addSource(type, source) {\n\t validateType(type);\n\t validateSourceContract(source);\n\t\n\t var sourceId = this.addHandler(HandlerRoles.SOURCE, type, source);\n\t this.store.dispatch((0, _registry.addSource)(sourceId));\n\t return sourceId;\n\t }\n\t }, {\n\t key: 'addTarget',\n\t value: function addTarget(type, target) {\n\t validateType(type, true);\n\t validateTargetContract(target);\n\t\n\t var targetId = this.addHandler(HandlerRoles.TARGET, type, target);\n\t this.store.dispatch((0, _registry.addTarget)(targetId));\n\t return targetId;\n\t }\n\t }, {\n\t key: 'addHandler',\n\t value: function addHandler(role, type, handler) {\n\t var id = getNextHandlerId(role);\n\t this.types[id] = type;\n\t this.handlers[id] = handler;\n\t\n\t return id;\n\t }\n\t }, {\n\t key: 'containsHandler',\n\t value: function containsHandler(handler) {\n\t var _this = this;\n\t\n\t return Object.keys(this.handlers).some(function (key) {\n\t return _this.handlers[key] === handler;\n\t });\n\t }\n\t }, {\n\t key: 'getSource',\n\t value: function getSource(sourceId, includePinned) {\n\t (0, _invariant2.default)(this.isSourceId(sourceId), 'Expected a valid source ID.');\n\t\n\t var isPinned = includePinned && sourceId === this.pinnedSourceId;\n\t var source = isPinned ? this.pinnedSource : this.handlers[sourceId];\n\t\n\t return source;\n\t }\n\t }, {\n\t key: 'getTarget',\n\t value: function getTarget(targetId) {\n\t (0, _invariant2.default)(this.isTargetId(targetId), 'Expected a valid target ID.');\n\t return this.handlers[targetId];\n\t }\n\t }, {\n\t key: 'getSourceType',\n\t value: function getSourceType(sourceId) {\n\t (0, _invariant2.default)(this.isSourceId(sourceId), 'Expected a valid source ID.');\n\t return this.types[sourceId];\n\t }\n\t }, {\n\t key: 'getTargetType',\n\t value: function getTargetType(targetId) {\n\t (0, _invariant2.default)(this.isTargetId(targetId), 'Expected a valid target ID.');\n\t return this.types[targetId];\n\t }\n\t }, {\n\t key: 'isSourceId',\n\t value: function isSourceId(handlerId) {\n\t var role = parseRoleFromHandlerId(handlerId);\n\t return role === HandlerRoles.SOURCE;\n\t }\n\t }, {\n\t key: 'isTargetId',\n\t value: function isTargetId(handlerId) {\n\t var role = parseRoleFromHandlerId(handlerId);\n\t return role === HandlerRoles.TARGET;\n\t }\n\t }, {\n\t key: 'removeSource',\n\t value: function removeSource(sourceId) {\n\t var _this2 = this;\n\t\n\t (0, _invariant2.default)(this.getSource(sourceId), 'Expected an existing source.');\n\t this.store.dispatch((0, _registry.removeSource)(sourceId));\n\t\n\t (0, _asap2.default)(function () {\n\t delete _this2.handlers[sourceId];\n\t delete _this2.types[sourceId];\n\t });\n\t }\n\t }, {\n\t key: 'removeTarget',\n\t value: function removeTarget(targetId) {\n\t var _this3 = this;\n\t\n\t (0, _invariant2.default)(this.getTarget(targetId), 'Expected an existing target.');\n\t this.store.dispatch((0, _registry.removeTarget)(targetId));\n\t\n\t (0, _asap2.default)(function () {\n\t delete _this3.handlers[targetId];\n\t delete _this3.types[targetId];\n\t });\n\t }\n\t }, {\n\t key: 'pinSource',\n\t value: function pinSource(sourceId) {\n\t var source = this.getSource(sourceId);\n\t (0, _invariant2.default)(source, 'Expected an existing source.');\n\t\n\t this.pinnedSourceId = sourceId;\n\t this.pinnedSource = source;\n\t }\n\t }, {\n\t key: 'unpinSource',\n\t value: function unpinSource() {\n\t (0, _invariant2.default)(this.pinnedSource, 'No source is pinned at the time.');\n\t\n\t this.pinnedSourceId = null;\n\t this.pinnedSource = null;\n\t }\n\t }]);\n\t\n\t return HandlerRegistry;\n\t}();\n\t\n\texports.default = HandlerRegistry;\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\texports.default = createBackend;\n\t\n\tvar _noop = __webpack_require__(51);\n\t\n\tvar _noop2 = _interopRequireDefault(_noop);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar TestBackend = function () {\n\t function TestBackend(manager) {\n\t _classCallCheck(this, TestBackend);\n\t\n\t this.actions = manager.getActions();\n\t }\n\t\n\t _createClass(TestBackend, [{\n\t key: 'setup',\n\t value: function setup() {\n\t this.didCallSetup = true;\n\t }\n\t }, {\n\t key: 'teardown',\n\t value: function teardown() {\n\t this.didCallTeardown = true;\n\t }\n\t }, {\n\t key: 'connectDragSource',\n\t value: function connectDragSource() {\n\t return _noop2.default;\n\t }\n\t }, {\n\t key: 'connectDragPreview',\n\t value: function connectDragPreview() {\n\t return _noop2.default;\n\t }\n\t }, {\n\t key: 'connectDropTarget',\n\t value: function connectDropTarget() {\n\t return _noop2.default;\n\t }\n\t }, {\n\t key: 'simulateBeginDrag',\n\t value: function simulateBeginDrag(sourceIds, options) {\n\t this.actions.beginDrag(sourceIds, options);\n\t }\n\t }, {\n\t key: 'simulatePublishDragSource',\n\t value: function simulatePublishDragSource() {\n\t this.actions.publishDragSource();\n\t }\n\t }, {\n\t key: 'simulateHover',\n\t value: function simulateHover(targetIds, options) {\n\t this.actions.hover(targetIds, options);\n\t }\n\t }, {\n\t key: 'simulateDrop',\n\t value: function simulateDrop() {\n\t this.actions.drop();\n\t }\n\t }, {\n\t key: 'simulateEndDrag',\n\t value: function simulateEndDrag() {\n\t this.actions.endDrag();\n\t }\n\t }]);\n\t\n\t return TestBackend;\n\t}();\n\t\n\tfunction createBackend(manager) {\n\t return new TestBackend(manager);\n\t}\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _DragDropManager = __webpack_require__(74);\n\t\n\tObject.defineProperty(exports, 'DragDropManager', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_DragDropManager).default;\n\t }\n\t});\n\t\n\tvar _DragSource = __webpack_require__(76);\n\t\n\tObject.defineProperty(exports, 'DragSource', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_DragSource).default;\n\t }\n\t});\n\t\n\tvar _DropTarget = __webpack_require__(77);\n\t\n\tObject.defineProperty(exports, 'DropTarget', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_DropTarget).default;\n\t }\n\t});\n\t\n\tvar _createTestBackend = __webpack_require__(79);\n\t\n\tObject.defineProperty(exports, 'createTestBackend', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_createTestBackend).default;\n\t }\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\texports.default = dragOperation;\n\t\n\tvar _without = __webpack_require__(52);\n\t\n\tvar _without2 = _interopRequireDefault(_without);\n\t\n\tvar _dragDrop = __webpack_require__(9);\n\t\n\tvar _registry = __webpack_require__(10);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tvar initialState = {\n\t itemType: null,\n\t item: null,\n\t sourceId: null,\n\t targetIds: [],\n\t dropResult: null,\n\t didDrop: false,\n\t isSourcePublic: null\n\t};\n\t\n\tfunction dragOperation() {\n\t var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n\t var action = arguments[1];\n\t\n\t switch (action.type) {\n\t case _dragDrop.BEGIN_DRAG:\n\t return _extends({}, state, {\n\t itemType: action.itemType,\n\t item: action.item,\n\t sourceId: action.sourceId,\n\t isSourcePublic: action.isSourcePublic,\n\t dropResult: null,\n\t didDrop: false\n\t });\n\t case _dragDrop.PUBLISH_DRAG_SOURCE:\n\t return _extends({}, state, {\n\t isSourcePublic: true\n\t });\n\t case _dragDrop.HOVER:\n\t return _extends({}, state, {\n\t targetIds: action.targetIds\n\t });\n\t case _registry.REMOVE_TARGET:\n\t if (state.targetIds.indexOf(action.targetId) === -1) {\n\t return state;\n\t }\n\t return _extends({}, state, {\n\t targetIds: (0, _without2.default)(state.targetIds, action.targetId)\n\t });\n\t case _dragDrop.DROP:\n\t return _extends({}, state, {\n\t dropResult: action.dropResult,\n\t didDrop: true,\n\t targetIds: []\n\t });\n\t case _dragDrop.END_DRAG:\n\t return _extends({}, state, {\n\t itemType: null,\n\t item: null,\n\t sourceId: null,\n\t dropResult: null,\n\t didDrop: false,\n\t isSourcePublic: null,\n\t targetIds: []\n\t });\n\t default:\n\t return state;\n\t }\n\t}\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = reduce;\n\t\n\tvar _dragOffset = __webpack_require__(35);\n\t\n\tvar _dragOffset2 = _interopRequireDefault(_dragOffset);\n\t\n\tvar _dragOperation = __webpack_require__(81);\n\t\n\tvar _dragOperation2 = _interopRequireDefault(_dragOperation);\n\t\n\tvar _refCount = __webpack_require__(83);\n\t\n\tvar _refCount2 = _interopRequireDefault(_refCount);\n\t\n\tvar _dirtyHandlerIds = __webpack_require__(34);\n\t\n\tvar _dirtyHandlerIds2 = _interopRequireDefault(_dirtyHandlerIds);\n\t\n\tvar _stateId = __webpack_require__(84);\n\t\n\tvar _stateId2 = _interopRequireDefault(_stateId);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction reduce() {\n\t var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\t var action = arguments[1];\n\t\n\t return {\n\t dirtyHandlerIds: (0, _dirtyHandlerIds2.default)(state.dirtyHandlerIds, action, state.dragOperation),\n\t dragOffset: (0, _dragOffset2.default)(state.dragOffset, action),\n\t refCount: (0, _refCount2.default)(state.refCount, action),\n\t dragOperation: (0, _dragOperation2.default)(state.dragOperation, action),\n\t stateId: (0, _stateId2.default)(state.stateId)\n\t };\n\t}\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = refCount;\n\t\n\tvar _registry = __webpack_require__(10);\n\t\n\tfunction refCount() {\n\t var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\t var action = arguments[1];\n\t\n\t switch (action.type) {\n\t case _registry.ADD_SOURCE:\n\t case _registry.ADD_TARGET:\n\t return state + 1;\n\t case _registry.REMOVE_SOURCE:\n\t case _registry.REMOVE_TARGET:\n\t return state - 1;\n\t default:\n\t return state;\n\t }\n\t}\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = stateId;\n\tfunction stateId() {\n\t var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\t\n\t return state + 1;\n\t}\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = getNextUniqueId;\n\tvar nextUniqueId = 0;\n\t\n\tfunction getNextUniqueId() {\n\t return nextUniqueId++;\n\t}\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar hashClear = __webpack_require__(114),\n\t hashDelete = __webpack_require__(115),\n\t hashGet = __webpack_require__(116),\n\t hashHas = __webpack_require__(117),\n\t hashSet = __webpack_require__(118);\n\t\n\t/**\n\t * Creates a hash object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction Hash(entries) {\n\t var index = -1,\n\t length = entries == null ? 0 : entries.length;\n\t\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\t\n\t// Add methods to `Hash`.\n\tHash.prototype.clear = hashClear;\n\tHash.prototype['delete'] = hashDelete;\n\tHash.prototype.get = hashGet;\n\tHash.prototype.has = hashHas;\n\tHash.prototype.set = hashSet;\n\t\n\tmodule.exports = Hash;\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar listCacheClear = __webpack_require__(124),\n\t listCacheDelete = __webpack_require__(125),\n\t listCacheGet = __webpack_require__(126),\n\t listCacheHas = __webpack_require__(127),\n\t listCacheSet = __webpack_require__(128);\n\t\n\t/**\n\t * Creates an list cache object.\n\t *\n\t * @private\n\t * @constructor\n\t * @param {Array} [entries] The key-value pairs to cache.\n\t */\n\tfunction ListCache(entries) {\n\t var index = -1,\n\t length = entries == null ? 0 : entries.length;\n\t\n\t this.clear();\n\t while (++index < length) {\n\t var entry = entries[index];\n\t this.set(entry[0], entry[1]);\n\t }\n\t}\n\t\n\t// Add methods to `ListCache`.\n\tListCache.prototype.clear = listCacheClear;\n\tListCache.prototype['delete'] = listCacheDelete;\n\tListCache.prototype.get = listCacheGet;\n\tListCache.prototype.has = listCacheHas;\n\tListCache.prototype.set = listCacheSet;\n\t\n\tmodule.exports = ListCache;\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar getNative = __webpack_require__(14),\n\t root = __webpack_require__(6);\n\t\n\t/* Built-in method references that are verified to be native. */\n\tvar Map = getNative(root, 'Map');\n\t\n\tmodule.exports = Map;\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar getNative = __webpack_require__(14),\n\t root = __webpack_require__(6);\n\t\n\t/* Built-in method references that are verified to be native. */\n\tvar Set = getNative(root, 'Set');\n\t\n\tmodule.exports = Set;\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * A specialized version of `_.filter` for arrays without support for\n\t * iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} [array] The array to iterate over.\n\t * @param {Function} predicate The function invoked per iteration.\n\t * @returns {Array} Returns the new filtered array.\n\t */\n\tfunction arrayFilter(array, predicate) {\n\t var index = -1,\n\t length = array == null ? 0 : array.length,\n\t resIndex = 0,\n\t result = [];\n\t\n\t while (++index < length) {\n\t var value = array[index];\n\t if (predicate(value, index, array)) {\n\t result[resIndex++] = value;\n\t }\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = arrayFilter;\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseTimes = __webpack_require__(103),\n\t isArguments = __webpack_require__(48),\n\t isArray = __webpack_require__(3),\n\t isBuffer = __webpack_require__(149),\n\t isIndex = __webpack_require__(45),\n\t isTypedArray = __webpack_require__(150);\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Creates an array of the enumerable property names of the array-like `value`.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @param {boolean} inherited Specify returning inherited property names.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction arrayLikeKeys(value, inherited) {\n\t var isArr = isArray(value),\n\t isArg = !isArr && isArguments(value),\n\t isBuff = !isArr && !isArg && isBuffer(value),\n\t isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n\t skipIndexes = isArr || isArg || isBuff || isType,\n\t result = skipIndexes ? baseTimes(value.length, String) : [],\n\t length = result.length;\n\t\n\t for (var key in value) {\n\t if ((inherited || hasOwnProperty.call(value, key)) &&\n\t !(skipIndexes && (\n\t // Safari 9 has enumerable `arguments.length` in strict mode.\n\t key == 'length' ||\n\t // Node.js 0.10 has enumerable non-index properties on buffers.\n\t (isBuff && (key == 'offset' || key == 'parent')) ||\n\t // PhantomJS 2 has enumerable non-index properties on typed arrays.\n\t (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n\t // Skip index properties.\n\t isIndex(key, length)\n\t ))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = arrayLikeKeys;\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Appends the elements of `values` to `array`.\n\t *\n\t * @private\n\t * @param {Array} array The array to modify.\n\t * @param {Array} values The values to append.\n\t * @returns {Array} Returns `array`.\n\t */\n\tfunction arrayPush(array, values) {\n\t var index = -1,\n\t length = values.length,\n\t offset = array.length;\n\t\n\t while (++index < length) {\n\t array[offset + index] = values[index];\n\t }\n\t return array;\n\t}\n\t\n\tmodule.exports = arrayPush;\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseAssignValue = __webpack_require__(39),\n\t eq = __webpack_require__(16);\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Assigns `value` to `key` of `object` if the existing value is not equivalent\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @private\n\t * @param {Object} object The object to modify.\n\t * @param {string} key The key of the property to assign.\n\t * @param {*} value The value to assign.\n\t */\n\tfunction assignValue(object, key, value) {\n\t var objValue = object[key];\n\t if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n\t (value === undefined && !(key in object))) {\n\t baseAssignValue(object, key, value);\n\t }\n\t}\n\t\n\tmodule.exports = assignValue;\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * The base implementation of `_.findIndex` and `_.findLastIndex` without\n\t * support for iteratee shorthands.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {Function} predicate The function invoked per iteration.\n\t * @param {number} fromIndex The index to search from.\n\t * @param {boolean} [fromRight] Specify iterating from right to left.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n\t var length = array.length,\n\t index = fromIndex + (fromRight ? 1 : -1);\n\t\n\t while ((fromRight ? index-- : ++index < length)) {\n\t if (predicate(array[index], index, array)) {\n\t return index;\n\t }\n\t }\n\t return -1;\n\t}\n\t\n\tmodule.exports = baseFindIndex;\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseFindIndex = __webpack_require__(94),\n\t baseIsNaN = __webpack_require__(98),\n\t strictIndexOf = __webpack_require__(143);\n\t\n\t/**\n\t * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} value The value to search for.\n\t * @param {number} fromIndex The index to search from.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction baseIndexOf(array, value, fromIndex) {\n\t return value === value\n\t ? strictIndexOf(array, value, fromIndex)\n\t : baseFindIndex(array, baseIsNaN, fromIndex);\n\t}\n\t\n\tmodule.exports = baseIndexOf;\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar SetCache = __webpack_require__(21),\n\t arrayIncludes = __webpack_require__(23),\n\t arrayIncludesWith = __webpack_require__(24),\n\t arrayMap = __webpack_require__(25),\n\t baseUnary = __webpack_require__(26),\n\t cacheHas = __webpack_require__(27);\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeMin = Math.min;\n\t\n\t/**\n\t * The base implementation of methods like `_.intersection`, without support\n\t * for iteratee shorthands, that accepts an array of arrays to inspect.\n\t *\n\t * @private\n\t * @param {Array} arrays The arrays to inspect.\n\t * @param {Function} [iteratee] The iteratee invoked per element.\n\t * @param {Function} [comparator] The comparator invoked per element.\n\t * @returns {Array} Returns the new array of shared values.\n\t */\n\tfunction baseIntersection(arrays, iteratee, comparator) {\n\t var includes = comparator ? arrayIncludesWith : arrayIncludes,\n\t length = arrays[0].length,\n\t othLength = arrays.length,\n\t othIndex = othLength,\n\t caches = Array(othLength),\n\t maxLength = Infinity,\n\t result = [];\n\t\n\t while (othIndex--) {\n\t var array = arrays[othIndex];\n\t if (othIndex && iteratee) {\n\t array = arrayMap(array, baseUnary(iteratee));\n\t }\n\t maxLength = nativeMin(array.length, maxLength);\n\t caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n\t ? new SetCache(othIndex && array)\n\t : undefined;\n\t }\n\t array = arrays[0];\n\t\n\t var index = -1,\n\t seen = caches[0];\n\t\n\t outer:\n\t while (++index < length && result.length < maxLength) {\n\t var value = array[index],\n\t computed = iteratee ? iteratee(value) : value;\n\t\n\t value = (comparator || value !== 0) ? value : 0;\n\t if (!(seen\n\t ? cacheHas(seen, computed)\n\t : includes(result, computed, comparator)\n\t )) {\n\t othIndex = othLength;\n\t while (--othIndex) {\n\t var cache = caches[othIndex];\n\t if (!(cache\n\t ? cacheHas(cache, computed)\n\t : includes(arrays[othIndex], computed, comparator))\n\t ) {\n\t continue outer;\n\t }\n\t }\n\t if (seen) {\n\t seen.push(computed);\n\t }\n\t result.push(value);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseIntersection;\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseGetTag = __webpack_require__(12),\n\t isObjectLike = __webpack_require__(8);\n\t\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]';\n\t\n\t/**\n\t * The base implementation of `_.isArguments`.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n\t */\n\tfunction baseIsArguments(value) {\n\t return isObjectLike(value) && baseGetTag(value) == argsTag;\n\t}\n\t\n\tmodule.exports = baseIsArguments;\n\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * The base implementation of `_.isNaN` without support for number objects.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n\t */\n\tfunction baseIsNaN(value) {\n\t return value !== value;\n\t}\n\t\n\tmodule.exports = baseIsNaN;\n\n\n/***/ }),\n/* 99 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar isFunction = __webpack_require__(49),\n\t isMasked = __webpack_require__(122),\n\t isObject = __webpack_require__(7),\n\t toSource = __webpack_require__(144);\n\t\n\t/**\n\t * Used to match `RegExp`\n\t * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n\t */\n\tvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\t\n\t/** Used to detect host constructors (Safari). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t/** Used for built-in method references. */\n\tvar funcProto = Function.prototype,\n\t objectProto = Object.prototype;\n\t\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' +\n\t funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n\t .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n\t);\n\t\n\t/**\n\t * The base implementation of `_.isNative` without bad shim checks.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function,\n\t * else `false`.\n\t */\n\tfunction baseIsNative(value) {\n\t if (!isObject(value) || isMasked(value)) {\n\t return false;\n\t }\n\t var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n\t return pattern.test(toSource(value));\n\t}\n\t\n\tmodule.exports = baseIsNative;\n\n\n/***/ }),\n/* 100 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseGetTag = __webpack_require__(12),\n\t isLength = __webpack_require__(50),\n\t isObjectLike = __webpack_require__(8);\n\t\n\t/** `Object#toString` result references. */\n\tvar argsTag = '[object Arguments]',\n\t arrayTag = '[object Array]',\n\t boolTag = '[object Boolean]',\n\t dateTag = '[object Date]',\n\t errorTag = '[object Error]',\n\t funcTag = '[object Function]',\n\t mapTag = '[object Map]',\n\t numberTag = '[object Number]',\n\t objectTag = '[object Object]',\n\t regexpTag = '[object RegExp]',\n\t setTag = '[object Set]',\n\t stringTag = '[object String]',\n\t weakMapTag = '[object WeakMap]';\n\t\n\tvar arrayBufferTag = '[object ArrayBuffer]',\n\t dataViewTag = '[object DataView]',\n\t float32Tag = '[object Float32Array]',\n\t float64Tag = '[object Float64Array]',\n\t int8Tag = '[object Int8Array]',\n\t int16Tag = '[object Int16Array]',\n\t int32Tag = '[object Int32Array]',\n\t uint8Tag = '[object Uint8Array]',\n\t uint8ClampedTag = '[object Uint8ClampedArray]',\n\t uint16Tag = '[object Uint16Array]',\n\t uint32Tag = '[object Uint32Array]';\n\t\n\t/** Used to identify `toStringTag` values of typed arrays. */\n\tvar typedArrayTags = {};\n\ttypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n\ttypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n\ttypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n\ttypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n\ttypedArrayTags[uint32Tag] = true;\n\ttypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n\ttypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n\ttypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n\ttypedArrayTags[errorTag] = typedArrayTags[funcTag] =\n\ttypedArrayTags[mapTag] = typedArrayTags[numberTag] =\n\ttypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n\ttypedArrayTags[setTag] = typedArrayTags[stringTag] =\n\ttypedArrayTags[weakMapTag] = false;\n\t\n\t/**\n\t * The base implementation of `_.isTypedArray` without Node.js optimizations.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n\t */\n\tfunction baseIsTypedArray(value) {\n\t return isObjectLike(value) &&\n\t isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n\t}\n\t\n\tmodule.exports = baseIsTypedArray;\n\n\n/***/ }),\n/* 101 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar isObject = __webpack_require__(7),\n\t isPrototype = __webpack_require__(123),\n\t nativeKeysIn = __webpack_require__(134);\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction baseKeysIn(object) {\n\t if (!isObject(object)) {\n\t return nativeKeysIn(object);\n\t }\n\t var isProto = isPrototype(object),\n\t result = [];\n\t\n\t for (var key in object) {\n\t if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseKeysIn;\n\n\n/***/ }),\n/* 102 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar constant = __webpack_require__(146),\n\t defineProperty = __webpack_require__(43),\n\t identity = __webpack_require__(47);\n\t\n\t/**\n\t * The base implementation of `setToString` without support for hot loop shorting.\n\t *\n\t * @private\n\t * @param {Function} func The function to modify.\n\t * @param {Function} string The `toString` result.\n\t * @returns {Function} Returns `func`.\n\t */\n\tvar baseSetToString = !defineProperty ? identity : function(func, string) {\n\t return defineProperty(func, 'toString', {\n\t 'configurable': true,\n\t 'enumerable': false,\n\t 'value': constant(string),\n\t 'writable': true\n\t });\n\t};\n\t\n\tmodule.exports = baseSetToString;\n\n\n/***/ }),\n/* 103 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * The base implementation of `_.times` without support for iteratee shorthands\n\t * or max array length checks.\n\t *\n\t * @private\n\t * @param {number} n The number of times to invoke `iteratee`.\n\t * @param {Function} iteratee The function invoked per iteration.\n\t * @returns {Array} Returns the array of results.\n\t */\n\tfunction baseTimes(n, iteratee) {\n\t var index = -1,\n\t result = Array(n);\n\t\n\t while (++index < n) {\n\t result[index] = iteratee(index);\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = baseTimes;\n\n\n/***/ }),\n/* 104 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseDifference = __webpack_require__(40),\n\t baseFlatten = __webpack_require__(41),\n\t baseUniq = __webpack_require__(42);\n\t\n\t/**\n\t * The base implementation of methods like `_.xor`, without support for\n\t * iteratee shorthands, that accepts an array of arrays to inspect.\n\t *\n\t * @private\n\t * @param {Array} arrays The arrays to inspect.\n\t * @param {Function} [iteratee] The iteratee invoked per element.\n\t * @param {Function} [comparator] The comparator invoked per element.\n\t * @returns {Array} Returns the new array of values.\n\t */\n\tfunction baseXor(arrays, iteratee, comparator) {\n\t var length = arrays.length;\n\t if (length < 2) {\n\t return length ? baseUniq(arrays[0]) : [];\n\t }\n\t var index = -1,\n\t result = Array(length);\n\t\n\t while (++index < length) {\n\t var array = arrays[index],\n\t othIndex = -1;\n\t\n\t while (++othIndex < length) {\n\t if (othIndex != index) {\n\t result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n\t }\n\t }\n\t }\n\t return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n\t}\n\t\n\tmodule.exports = baseXor;\n\n\n/***/ }),\n/* 105 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar isArrayLikeObject = __webpack_require__(17);\n\t\n\t/**\n\t * Casts `value` to an empty array if it's not an array like object.\n\t *\n\t * @private\n\t * @param {*} value The value to inspect.\n\t * @returns {Array|Object} Returns the cast array-like object.\n\t */\n\tfunction castArrayLikeObject(value) {\n\t return isArrayLikeObject(value) ? value : [];\n\t}\n\t\n\tmodule.exports = castArrayLikeObject;\n\n\n/***/ }),\n/* 106 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar assignValue = __webpack_require__(93),\n\t baseAssignValue = __webpack_require__(39);\n\t\n\t/**\n\t * Copies properties of `source` to `object`.\n\t *\n\t * @private\n\t * @param {Object} source The object to copy properties from.\n\t * @param {Array} props The property identifiers to copy.\n\t * @param {Object} [object={}] The object to copy properties to.\n\t * @param {Function} [customizer] The function to customize copied values.\n\t * @returns {Object} Returns `object`.\n\t */\n\tfunction copyObject(source, props, object, customizer) {\n\t var isNew = !object;\n\t object || (object = {});\n\t\n\t var index = -1,\n\t length = props.length;\n\t\n\t while (++index < length) {\n\t var key = props[index];\n\t\n\t var newValue = customizer\n\t ? customizer(object[key], source[key], key, object, source)\n\t : undefined;\n\t\n\t if (newValue === undefined) {\n\t newValue = source[key];\n\t }\n\t if (isNew) {\n\t baseAssignValue(object, key, newValue);\n\t } else {\n\t assignValue(object, key, newValue);\n\t }\n\t }\n\t return object;\n\t}\n\t\n\tmodule.exports = copyObject;\n\n\n/***/ }),\n/* 107 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar root = __webpack_require__(6);\n\t\n\t/** Used to detect overreaching core-js shims. */\n\tvar coreJsData = root['__core-js_shared__'];\n\t\n\tmodule.exports = coreJsData;\n\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseRest = __webpack_require__(5),\n\t isIterateeCall = __webpack_require__(120);\n\t\n\t/**\n\t * Creates a function like `_.assign`.\n\t *\n\t * @private\n\t * @param {Function} assigner The function to assign values.\n\t * @returns {Function} Returns the new assigner function.\n\t */\n\tfunction createAssigner(assigner) {\n\t return baseRest(function(object, sources) {\n\t var index = -1,\n\t length = sources.length,\n\t customizer = length > 1 ? sources[length - 1] : undefined,\n\t guard = length > 2 ? sources[2] : undefined;\n\t\n\t customizer = (assigner.length > 3 && typeof customizer == 'function')\n\t ? (length--, customizer)\n\t : undefined;\n\t\n\t if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n\t customizer = length < 3 ? undefined : customizer;\n\t length = 1;\n\t }\n\t object = Object(object);\n\t while (++index < length) {\n\t var source = sources[index];\n\t if (source) {\n\t assigner(object, source, index, customizer);\n\t }\n\t }\n\t return object;\n\t });\n\t}\n\t\n\tmodule.exports = createAssigner;\n\n\n/***/ }),\n/* 109 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar Set = __webpack_require__(89),\n\t noop = __webpack_require__(51),\n\t setToArray = __webpack_require__(46);\n\t\n\t/** Used as references for various `Number` constants. */\n\tvar INFINITY = 1 / 0;\n\t\n\t/**\n\t * Creates a set object of `values`.\n\t *\n\t * @private\n\t * @param {Array} values The values to add to the set.\n\t * @returns {Object} Returns the new set.\n\t */\n\tvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n\t return new Set(values);\n\t};\n\t\n\tmodule.exports = createSet;\n\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar eq = __webpack_require__(16);\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n\t * of source objects to the destination object for all destination properties\n\t * that resolve to `undefined`.\n\t *\n\t * @private\n\t * @param {*} objValue The destination value.\n\t * @param {*} srcValue The source value.\n\t * @param {string} key The key of the property to assign.\n\t * @param {Object} object The parent object of `objValue`.\n\t * @returns {*} Returns the value to assign.\n\t */\n\tfunction customDefaultsAssignIn(objValue, srcValue, key, object) {\n\t if (objValue === undefined ||\n\t (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n\t return srcValue;\n\t }\n\t return objValue;\n\t}\n\t\n\tmodule.exports = customDefaultsAssignIn;\n\n\n/***/ }),\n/* 111 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar overArg = __webpack_require__(137);\n\t\n\t/** Built-in value references. */\n\tvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\t\n\tmodule.exports = getPrototype;\n\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(22);\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar nativeObjectToString = objectProto.toString;\n\t\n\t/** Built-in value references. */\n\tvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\t\n\t/**\n\t * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n\t *\n\t * @private\n\t * @param {*} value The value to query.\n\t * @returns {string} Returns the raw `toStringTag`.\n\t */\n\tfunction getRawTag(value) {\n\t var isOwn = hasOwnProperty.call(value, symToStringTag),\n\t tag = value[symToStringTag];\n\t\n\t try {\n\t value[symToStringTag] = undefined;\n\t var unmasked = true;\n\t } catch (e) {}\n\t\n\t var result = nativeObjectToString.call(value);\n\t if (unmasked) {\n\t if (isOwn) {\n\t value[symToStringTag] = tag;\n\t } else {\n\t delete value[symToStringTag];\n\t }\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = getRawTag;\n\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Gets the value at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} [object] The object to query.\n\t * @param {string} key The key of the property to get.\n\t * @returns {*} Returns the property value.\n\t */\n\tfunction getValue(object, key) {\n\t return object == null ? undefined : object[key];\n\t}\n\t\n\tmodule.exports = getValue;\n\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar nativeCreate = __webpack_require__(15);\n\t\n\t/**\n\t * Removes all key-value entries from the hash.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf Hash\n\t */\n\tfunction hashClear() {\n\t this.__data__ = nativeCreate ? nativeCreate(null) : {};\n\t this.size = 0;\n\t}\n\t\n\tmodule.exports = hashClear;\n\n\n/***/ }),\n/* 115 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Removes `key` and its value from the hash.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf Hash\n\t * @param {Object} hash The hash to modify.\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction hashDelete(key) {\n\t var result = this.has(key) && delete this.__data__[key];\n\t this.size -= result ? 1 : 0;\n\t return result;\n\t}\n\t\n\tmodule.exports = hashDelete;\n\n\n/***/ }),\n/* 116 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar nativeCreate = __webpack_require__(15);\n\t\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Gets the hash value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction hashGet(key) {\n\t var data = this.__data__;\n\t if (nativeCreate) {\n\t var result = data[key];\n\t return result === HASH_UNDEFINED ? undefined : result;\n\t }\n\t return hasOwnProperty.call(data, key) ? data[key] : undefined;\n\t}\n\t\n\tmodule.exports = hashGet;\n\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar nativeCreate = __webpack_require__(15);\n\t\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t/**\n\t * Checks if a hash value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf Hash\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction hashHas(key) {\n\t var data = this.__data__;\n\t return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n\t}\n\t\n\tmodule.exports = hashHas;\n\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar nativeCreate = __webpack_require__(15);\n\t\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\t\n\t/**\n\t * Sets the hash `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf Hash\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the hash instance.\n\t */\n\tfunction hashSet(key, value) {\n\t var data = this.__data__;\n\t this.size += this.has(key) ? 0 : 1;\n\t data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n\t return this;\n\t}\n\t\n\tmodule.exports = hashSet;\n\n\n/***/ }),\n/* 119 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar Symbol = __webpack_require__(22),\n\t isArguments = __webpack_require__(48),\n\t isArray = __webpack_require__(3);\n\t\n\t/** Built-in value references. */\n\tvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\t\n\t/**\n\t * Checks if `value` is a flattenable `arguments` object or array.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n\t */\n\tfunction isFlattenable(value) {\n\t return isArray(value) || isArguments(value) ||\n\t !!(spreadableSymbol && value && value[spreadableSymbol]);\n\t}\n\t\n\tmodule.exports = isFlattenable;\n\n\n/***/ }),\n/* 120 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar eq = __webpack_require__(16),\n\t isArrayLike = __webpack_require__(28),\n\t isIndex = __webpack_require__(45),\n\t isObject = __webpack_require__(7);\n\t\n\t/**\n\t * Checks if the given arguments are from an iteratee call.\n\t *\n\t * @private\n\t * @param {*} value The potential iteratee value argument.\n\t * @param {*} index The potential iteratee index or key argument.\n\t * @param {*} object The potential iteratee object argument.\n\t * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n\t * else `false`.\n\t */\n\tfunction isIterateeCall(value, index, object) {\n\t if (!isObject(object)) {\n\t return false;\n\t }\n\t var type = typeof index;\n\t if (type == 'number'\n\t ? (isArrayLike(object) && isIndex(index, object.length))\n\t : (type == 'string' && index in object)\n\t ) {\n\t return eq(object[index], value);\n\t }\n\t return false;\n\t}\n\t\n\tmodule.exports = isIterateeCall;\n\n\n/***/ }),\n/* 121 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Checks if `value` is suitable for use as unique object key.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n\t */\n\tfunction isKeyable(value) {\n\t var type = typeof value;\n\t return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n\t ? (value !== '__proto__')\n\t : (value === null);\n\t}\n\t\n\tmodule.exports = isKeyable;\n\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar coreJsData = __webpack_require__(107);\n\t\n\t/** Used to detect methods masquerading as native. */\n\tvar maskSrcKey = (function() {\n\t var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n\t return uid ? ('Symbol(src)_1.' + uid) : '';\n\t}());\n\t\n\t/**\n\t * Checks if `func` has its source masked.\n\t *\n\t * @private\n\t * @param {Function} func The function to check.\n\t * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n\t */\n\tfunction isMasked(func) {\n\t return !!maskSrcKey && (maskSrcKey in func);\n\t}\n\t\n\tmodule.exports = isMasked;\n\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports) {\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/**\n\t * Checks if `value` is likely a prototype object.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n\t */\n\tfunction isPrototype(value) {\n\t var Ctor = value && value.constructor,\n\t proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\t\n\t return value === proto;\n\t}\n\t\n\tmodule.exports = isPrototype;\n\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Removes all key-value entries from the list cache.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf ListCache\n\t */\n\tfunction listCacheClear() {\n\t this.__data__ = [];\n\t this.size = 0;\n\t}\n\t\n\tmodule.exports = listCacheClear;\n\n\n/***/ }),\n/* 125 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar assocIndexOf = __webpack_require__(11);\n\t\n\t/** Used for built-in method references. */\n\tvar arrayProto = Array.prototype;\n\t\n\t/** Built-in value references. */\n\tvar splice = arrayProto.splice;\n\t\n\t/**\n\t * Removes `key` and its value from the list cache.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction listCacheDelete(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\t\n\t if (index < 0) {\n\t return false;\n\t }\n\t var lastIndex = data.length - 1;\n\t if (index == lastIndex) {\n\t data.pop();\n\t } else {\n\t splice.call(data, index, 1);\n\t }\n\t --this.size;\n\t return true;\n\t}\n\t\n\tmodule.exports = listCacheDelete;\n\n\n/***/ }),\n/* 126 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar assocIndexOf = __webpack_require__(11);\n\t\n\t/**\n\t * Gets the list cache value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction listCacheGet(key) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\t\n\t return index < 0 ? undefined : data[index][1];\n\t}\n\t\n\tmodule.exports = listCacheGet;\n\n\n/***/ }),\n/* 127 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar assocIndexOf = __webpack_require__(11);\n\t\n\t/**\n\t * Checks if a list cache value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf ListCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction listCacheHas(key) {\n\t return assocIndexOf(this.__data__, key) > -1;\n\t}\n\t\n\tmodule.exports = listCacheHas;\n\n\n/***/ }),\n/* 128 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar assocIndexOf = __webpack_require__(11);\n\t\n\t/**\n\t * Sets the list cache `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf ListCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the list cache instance.\n\t */\n\tfunction listCacheSet(key, value) {\n\t var data = this.__data__,\n\t index = assocIndexOf(data, key);\n\t\n\t if (index < 0) {\n\t ++this.size;\n\t data.push([key, value]);\n\t } else {\n\t data[index][1] = value;\n\t }\n\t return this;\n\t}\n\t\n\tmodule.exports = listCacheSet;\n\n\n/***/ }),\n/* 129 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar Hash = __webpack_require__(86),\n\t ListCache = __webpack_require__(87),\n\t Map = __webpack_require__(88);\n\t\n\t/**\n\t * Removes all key-value entries from the map.\n\t *\n\t * @private\n\t * @name clear\n\t * @memberOf MapCache\n\t */\n\tfunction mapCacheClear() {\n\t this.size = 0;\n\t this.__data__ = {\n\t 'hash': new Hash,\n\t 'map': new (Map || ListCache),\n\t 'string': new Hash\n\t };\n\t}\n\t\n\tmodule.exports = mapCacheClear;\n\n\n/***/ }),\n/* 130 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar getMapData = __webpack_require__(13);\n\t\n\t/**\n\t * Removes `key` and its value from the map.\n\t *\n\t * @private\n\t * @name delete\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to remove.\n\t * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n\t */\n\tfunction mapCacheDelete(key) {\n\t var result = getMapData(this, key)['delete'](key);\n\t this.size -= result ? 1 : 0;\n\t return result;\n\t}\n\t\n\tmodule.exports = mapCacheDelete;\n\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar getMapData = __webpack_require__(13);\n\t\n\t/**\n\t * Gets the map value for `key`.\n\t *\n\t * @private\n\t * @name get\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to get.\n\t * @returns {*} Returns the entry value.\n\t */\n\tfunction mapCacheGet(key) {\n\t return getMapData(this, key).get(key);\n\t}\n\t\n\tmodule.exports = mapCacheGet;\n\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar getMapData = __webpack_require__(13);\n\t\n\t/**\n\t * Checks if a map value for `key` exists.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf MapCache\n\t * @param {string} key The key of the entry to check.\n\t * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n\t */\n\tfunction mapCacheHas(key) {\n\t return getMapData(this, key).has(key);\n\t}\n\t\n\tmodule.exports = mapCacheHas;\n\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar getMapData = __webpack_require__(13);\n\t\n\t/**\n\t * Sets the map `key` to `value`.\n\t *\n\t * @private\n\t * @name set\n\t * @memberOf MapCache\n\t * @param {string} key The key of the value to set.\n\t * @param {*} value The value to set.\n\t * @returns {Object} Returns the map cache instance.\n\t */\n\tfunction mapCacheSet(key, value) {\n\t var data = getMapData(this, key),\n\t size = data.size;\n\t\n\t data.set(key, value);\n\t this.size += data.size == size ? 0 : 1;\n\t return this;\n\t}\n\t\n\tmodule.exports = mapCacheSet;\n\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * This function is like\n\t * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n\t * except that it includes inherited enumerable properties.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t */\n\tfunction nativeKeysIn(object) {\n\t var result = [];\n\t if (object != null) {\n\t for (var key in Object(object)) {\n\t result.push(key);\n\t }\n\t }\n\t return result;\n\t}\n\t\n\tmodule.exports = nativeKeysIn;\n\n\n/***/ }),\n/* 135 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(44);\n\t\n\t/** Detect free variable `exports`. */\n\tvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\t\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\t\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\t\n\t/** Detect free variable `process` from Node.js. */\n\tvar freeProcess = moduleExports && freeGlobal.process;\n\t\n\t/** Used to access faster Node.js helpers. */\n\tvar nodeUtil = (function() {\n\t try {\n\t return freeProcess && freeProcess.binding && freeProcess.binding('util');\n\t } catch (e) {}\n\t}());\n\t\n\tmodule.exports = nodeUtil;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)(module)))\n\n/***/ }),\n/* 136 */\n/***/ (function(module, exports) {\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\t\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar nativeObjectToString = objectProto.toString;\n\t\n\t/**\n\t * Converts `value` to a string using `Object.prototype.toString`.\n\t *\n\t * @private\n\t * @param {*} value The value to convert.\n\t * @returns {string} Returns the converted string.\n\t */\n\tfunction objectToString(value) {\n\t return nativeObjectToString.call(value);\n\t}\n\t\n\tmodule.exports = objectToString;\n\n\n/***/ }),\n/* 137 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Creates a unary function that invokes `func` with its argument transformed.\n\t *\n\t * @private\n\t * @param {Function} func The function to wrap.\n\t * @param {Function} transform The argument transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overArg(func, transform) {\n\t return function(arg) {\n\t return func(transform(arg));\n\t };\n\t}\n\t\n\tmodule.exports = overArg;\n\n\n/***/ }),\n/* 138 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar apply = __webpack_require__(38);\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max;\n\t\n\t/**\n\t * A specialized version of `baseRest` which transforms the rest array.\n\t *\n\t * @private\n\t * @param {Function} func The function to apply a rest parameter to.\n\t * @param {number} [start=func.length-1] The start position of the rest parameter.\n\t * @param {Function} transform The rest array transform.\n\t * @returns {Function} Returns the new function.\n\t */\n\tfunction overRest(func, start, transform) {\n\t start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n\t return function() {\n\t var args = arguments,\n\t index = -1,\n\t length = nativeMax(args.length - start, 0),\n\t array = Array(length);\n\t\n\t while (++index < length) {\n\t array[index] = args[start + index];\n\t }\n\t index = -1;\n\t var otherArgs = Array(start + 1);\n\t while (++index < start) {\n\t otherArgs[index] = args[index];\n\t }\n\t otherArgs[start] = transform(array);\n\t return apply(func, this, otherArgs);\n\t };\n\t}\n\t\n\tmodule.exports = overRest;\n\n\n/***/ }),\n/* 139 */\n/***/ (function(module, exports) {\n\n\t/** Used to stand-in for `undefined` hash values. */\n\tvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\t\n\t/**\n\t * Adds `value` to the array cache.\n\t *\n\t * @private\n\t * @name add\n\t * @memberOf SetCache\n\t * @alias push\n\t * @param {*} value The value to cache.\n\t * @returns {Object} Returns the cache instance.\n\t */\n\tfunction setCacheAdd(value) {\n\t this.__data__.set(value, HASH_UNDEFINED);\n\t return this;\n\t}\n\t\n\tmodule.exports = setCacheAdd;\n\n\n/***/ }),\n/* 140 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Checks if `value` is in the array cache.\n\t *\n\t * @private\n\t * @name has\n\t * @memberOf SetCache\n\t * @param {*} value The value to search for.\n\t * @returns {number} Returns `true` if `value` is found, else `false`.\n\t */\n\tfunction setCacheHas(value) {\n\t return this.__data__.has(value);\n\t}\n\t\n\tmodule.exports = setCacheHas;\n\n\n/***/ }),\n/* 141 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseSetToString = __webpack_require__(102),\n\t shortOut = __webpack_require__(142);\n\t\n\t/**\n\t * Sets the `toString` method of `func` to return `string`.\n\t *\n\t * @private\n\t * @param {Function} func The function to modify.\n\t * @param {Function} string The `toString` result.\n\t * @returns {Function} Returns `func`.\n\t */\n\tvar setToString = shortOut(baseSetToString);\n\t\n\tmodule.exports = setToString;\n\n\n/***/ }),\n/* 142 */\n/***/ (function(module, exports) {\n\n\t/** Used to detect hot functions by number of calls within a span of milliseconds. */\n\tvar HOT_COUNT = 800,\n\t HOT_SPAN = 16;\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeNow = Date.now;\n\t\n\t/**\n\t * Creates a function that'll short out and invoke `identity` instead\n\t * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n\t * milliseconds.\n\t *\n\t * @private\n\t * @param {Function} func The function to restrict.\n\t * @returns {Function} Returns the new shortable function.\n\t */\n\tfunction shortOut(func) {\n\t var count = 0,\n\t lastCalled = 0;\n\t\n\t return function() {\n\t var stamp = nativeNow(),\n\t remaining = HOT_SPAN - (stamp - lastCalled);\n\t\n\t lastCalled = stamp;\n\t if (remaining > 0) {\n\t if (++count >= HOT_COUNT) {\n\t return arguments[0];\n\t }\n\t } else {\n\t count = 0;\n\t }\n\t return func.apply(undefined, arguments);\n\t };\n\t}\n\t\n\tmodule.exports = shortOut;\n\n\n/***/ }),\n/* 143 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * A specialized version of `_.indexOf` which performs strict equality\n\t * comparisons of values, i.e. `===`.\n\t *\n\t * @private\n\t * @param {Array} array The array to inspect.\n\t * @param {*} value The value to search for.\n\t * @param {number} fromIndex The index to search from.\n\t * @returns {number} Returns the index of the matched value, else `-1`.\n\t */\n\tfunction strictIndexOf(array, value, fromIndex) {\n\t var index = fromIndex - 1,\n\t length = array.length;\n\t\n\t while (++index < length) {\n\t if (array[index] === value) {\n\t return index;\n\t }\n\t }\n\t return -1;\n\t}\n\t\n\tmodule.exports = strictIndexOf;\n\n\n/***/ }),\n/* 144 */\n/***/ (function(module, exports) {\n\n\t/** Used for built-in method references. */\n\tvar funcProto = Function.prototype;\n\t\n\t/** Used to resolve the decompiled source of functions. */\n\tvar funcToString = funcProto.toString;\n\t\n\t/**\n\t * Converts `func` to its source code.\n\t *\n\t * @private\n\t * @param {Function} func The function to convert.\n\t * @returns {string} Returns the source code.\n\t */\n\tfunction toSource(func) {\n\t if (func != null) {\n\t try {\n\t return funcToString.call(func);\n\t } catch (e) {}\n\t try {\n\t return (func + '');\n\t } catch (e) {}\n\t }\n\t return '';\n\t}\n\t\n\tmodule.exports = toSource;\n\n\n/***/ }),\n/* 145 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar copyObject = __webpack_require__(106),\n\t createAssigner = __webpack_require__(108),\n\t keysIn = __webpack_require__(151);\n\t\n\t/**\n\t * This method is like `_.assignIn` except that it accepts `customizer`\n\t * which is invoked to produce the assigned values. If `customizer` returns\n\t * `undefined`, assignment is handled by the method instead. The `customizer`\n\t * is invoked with five arguments: (objValue, srcValue, key, object, source).\n\t *\n\t * **Note:** This method mutates `object`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @alias extendWith\n\t * @category Object\n\t * @param {Object} object The destination object.\n\t * @param {...Object} sources The source objects.\n\t * @param {Function} [customizer] The function to customize assigned values.\n\t * @returns {Object} Returns `object`.\n\t * @see _.assignWith\n\t * @example\n\t *\n\t * function customizer(objValue, srcValue) {\n\t * return _.isUndefined(objValue) ? srcValue : objValue;\n\t * }\n\t *\n\t * var defaults = _.partialRight(_.assignInWith, customizer);\n\t *\n\t * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n\t * // => { 'a': 1, 'b': 2 }\n\t */\n\tvar assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n\t copyObject(source, keysIn(source), object, customizer);\n\t});\n\t\n\tmodule.exports = assignInWith;\n\n\n/***/ }),\n/* 146 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Creates a function that returns `value`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @category Util\n\t * @param {*} value The value to return from the new function.\n\t * @returns {Function} Returns the new constant function.\n\t * @example\n\t *\n\t * var objects = _.times(2, _.constant({ 'a': 1 }));\n\t *\n\t * console.log(objects);\n\t * // => [{ 'a': 1 }, { 'a': 1 }]\n\t *\n\t * console.log(objects[0] === objects[1]);\n\t * // => true\n\t */\n\tfunction constant(value) {\n\t return function() {\n\t return value;\n\t };\n\t}\n\t\n\tmodule.exports = constant;\n\n\n/***/ }),\n/* 147 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar apply = __webpack_require__(38),\n\t assignInWith = __webpack_require__(145),\n\t baseRest = __webpack_require__(5),\n\t customDefaultsAssignIn = __webpack_require__(110);\n\t\n\t/**\n\t * Assigns own and inherited enumerable string keyed properties of source\n\t * objects to the destination object for all destination properties that\n\t * resolve to `undefined`. Source objects are applied from left to right.\n\t * Once a property is set, additional values of the same property are ignored.\n\t *\n\t * **Note:** This method mutates `object`.\n\t *\n\t * @static\n\t * @since 0.1.0\n\t * @memberOf _\n\t * @category Object\n\t * @param {Object} object The destination object.\n\t * @param {...Object} [sources] The source objects.\n\t * @returns {Object} Returns `object`.\n\t * @see _.defaultsDeep\n\t * @example\n\t *\n\t * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n\t * // => { 'a': 1, 'b': 2 }\n\t */\n\tvar defaults = baseRest(function(args) {\n\t args.push(undefined, customDefaultsAssignIn);\n\t return apply(assignInWith, undefined, args);\n\t});\n\t\n\tmodule.exports = defaults;\n\n\n/***/ }),\n/* 148 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar arrayMap = __webpack_require__(25),\n\t baseIntersection = __webpack_require__(96),\n\t baseRest = __webpack_require__(5),\n\t castArrayLikeObject = __webpack_require__(105);\n\t\n\t/**\n\t * Creates an array of unique values that are included in all given arrays\n\t * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons. The order and references of result values are\n\t * determined by the first array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Array\n\t * @param {...Array} [arrays] The arrays to inspect.\n\t * @returns {Array} Returns the new array of intersecting values.\n\t * @example\n\t *\n\t * _.intersection([2, 1], [2, 3]);\n\t * // => [2]\n\t */\n\tvar intersection = baseRest(function(arrays) {\n\t var mapped = arrayMap(arrays, castArrayLikeObject);\n\t return (mapped.length && mapped[0] === arrays[0])\n\t ? baseIntersection(mapped)\n\t : [];\n\t});\n\t\n\tmodule.exports = intersection;\n\n\n/***/ }),\n/* 149 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(6),\n\t stubFalse = __webpack_require__(153);\n\t\n\t/** Detect free variable `exports`. */\n\tvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\t\n\t/** Detect free variable `module`. */\n\tvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\t\n\t/** Detect the popular CommonJS extension `module.exports`. */\n\tvar moduleExports = freeModule && freeModule.exports === freeExports;\n\t\n\t/** Built-in value references. */\n\tvar Buffer = moduleExports ? root.Buffer : undefined;\n\t\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\t\n\t/**\n\t * Checks if `value` is a buffer.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.3.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n\t * @example\n\t *\n\t * _.isBuffer(new Buffer(2));\n\t * // => true\n\t *\n\t * _.isBuffer(new Uint8Array(2));\n\t * // => false\n\t */\n\tvar isBuffer = nativeIsBuffer || stubFalse;\n\t\n\tmodule.exports = isBuffer;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)(module)))\n\n/***/ }),\n/* 150 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseIsTypedArray = __webpack_require__(100),\n\t baseUnary = __webpack_require__(26),\n\t nodeUtil = __webpack_require__(135);\n\t\n\t/* Node.js helper references. */\n\tvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\t\n\t/**\n\t * Checks if `value` is classified as a typed array.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 3.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n\t * @example\n\t *\n\t * _.isTypedArray(new Uint8Array);\n\t * // => true\n\t *\n\t * _.isTypedArray([]);\n\t * // => false\n\t */\n\tvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\t\n\tmodule.exports = isTypedArray;\n\n\n/***/ }),\n/* 151 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar arrayLikeKeys = __webpack_require__(91),\n\t baseKeysIn = __webpack_require__(101),\n\t isArrayLike = __webpack_require__(28);\n\t\n\t/**\n\t * Creates an array of the own and inherited enumerable property names of `object`.\n\t *\n\t * **Note:** Non-object values are coerced to objects.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 3.0.0\n\t * @category Object\n\t * @param {Object} object The object to query.\n\t * @returns {Array} Returns the array of property names.\n\t * @example\n\t *\n\t * function Foo() {\n\t * this.a = 1;\n\t * this.b = 2;\n\t * }\n\t *\n\t * Foo.prototype.c = 3;\n\t *\n\t * _.keysIn(new Foo);\n\t * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n\t */\n\tfunction keysIn(object) {\n\t return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n\t}\n\t\n\tmodule.exports = keysIn;\n\n\n/***/ }),\n/* 152 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar MapCache = __webpack_require__(37);\n\t\n\t/** Error message constants. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t/**\n\t * Creates a function that memoizes the result of `func`. If `resolver` is\n\t * provided, it determines the cache key for storing the result based on the\n\t * arguments provided to the memoized function. By default, the first argument\n\t * provided to the memoized function is used as the map cache key. The `func`\n\t * is invoked with the `this` binding of the memoized function.\n\t *\n\t * **Note:** The cache is exposed as the `cache` property on the memoized\n\t * function. Its creation may be customized by replacing the `_.memoize.Cache`\n\t * constructor with one whose instances implement the\n\t * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n\t * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to have its output memoized.\n\t * @param {Function} [resolver] The function to resolve the cache key.\n\t * @returns {Function} Returns the new memoized function.\n\t * @example\n\t *\n\t * var object = { 'a': 1, 'b': 2 };\n\t * var other = { 'c': 3, 'd': 4 };\n\t *\n\t * var values = _.memoize(_.values);\n\t * values(object);\n\t * // => [1, 2]\n\t *\n\t * values(other);\n\t * // => [3, 4]\n\t *\n\t * object.a = 2;\n\t * values(object);\n\t * // => [1, 2]\n\t *\n\t * // Modify the result cache.\n\t * values.cache.set(object, ['a', 'b']);\n\t * values(object);\n\t * // => ['a', 'b']\n\t *\n\t * // Replace `_.memoize.Cache`.\n\t * _.memoize.Cache = WeakMap;\n\t */\n\tfunction memoize(func, resolver) {\n\t if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t var memoized = function() {\n\t var args = arguments,\n\t key = resolver ? resolver.apply(this, args) : args[0],\n\t cache = memoized.cache;\n\t\n\t if (cache.has(key)) {\n\t return cache.get(key);\n\t }\n\t var result = func.apply(this, args);\n\t memoized.cache = cache.set(key, result) || cache;\n\t return result;\n\t };\n\t memoized.cache = new (memoize.Cache || MapCache);\n\t return memoized;\n\t}\n\t\n\t// Expose `MapCache`.\n\tmemoize.Cache = MapCache;\n\t\n\tmodule.exports = memoize;\n\n\n/***/ }),\n/* 153 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * This method returns `false`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.13.0\n\t * @category Util\n\t * @returns {boolean} Returns `false`.\n\t * @example\n\t *\n\t * _.times(2, _.stubFalse);\n\t * // => [false, false]\n\t */\n\tfunction stubFalse() {\n\t return false;\n\t}\n\t\n\tmodule.exports = stubFalse;\n\n\n/***/ }),\n/* 154 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar baseFlatten = __webpack_require__(41),\n\t baseRest = __webpack_require__(5),\n\t baseUniq = __webpack_require__(42),\n\t isArrayLikeObject = __webpack_require__(17);\n\t\n\t/**\n\t * Creates an array of unique values, in order, from all given arrays using\n\t * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n\t * for equality comparisons.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Array\n\t * @param {...Array} [arrays] The arrays to inspect.\n\t * @returns {Array} Returns the new array of combined values.\n\t * @example\n\t *\n\t * _.union([2], [1, 2]);\n\t * // => [2, 1]\n\t */\n\tvar union = baseRest(function(arrays) {\n\t return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n\t});\n\t\n\tmodule.exports = union;\n\n\n/***/ }),\n/* 155 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar arrayFilter = __webpack_require__(90),\n\t baseRest = __webpack_require__(5),\n\t baseXor = __webpack_require__(104),\n\t isArrayLikeObject = __webpack_require__(17);\n\t\n\t/**\n\t * Creates an array of unique values that is the\n\t * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n\t * of the given arrays. The order of result values is determined by the order\n\t * they occur in the arrays.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @category Array\n\t * @param {...Array} [arrays] The arrays to inspect.\n\t * @returns {Array} Returns the new array of filtered values.\n\t * @see _.difference, _.without\n\t * @example\n\t *\n\t * _.xor([2, 1], [2, 3]);\n\t * // => [1, 3]\n\t */\n\tvar xor = baseRest(function(arrays) {\n\t return baseXor(arrayFilter(arrays, isArrayLikeObject));\n\t});\n\t\n\tmodule.exports = xor;\n\n\n/***/ }),\n/* 156 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _lodashUnion = __webpack_require__(154);\n\t\n\tvar _lodashUnion2 = _interopRequireDefault(_lodashUnion);\n\t\n\tvar _lodashWithout = __webpack_require__(52);\n\t\n\tvar _lodashWithout2 = _interopRequireDefault(_lodashWithout);\n\t\n\tvar EnterLeaveCounter = (function () {\n\t function EnterLeaveCounter() {\n\t _classCallCheck(this, EnterLeaveCounter);\n\t\n\t this.entered = [];\n\t }\n\t\n\t EnterLeaveCounter.prototype.enter = function enter(enteringNode) {\n\t var previousLength = this.entered.length;\n\t\n\t this.entered = _lodashUnion2['default'](this.entered.filter(function (node) {\n\t return document.documentElement.contains(node) && (!node.contains || node.contains(enteringNode));\n\t }), [enteringNode]);\n\t\n\t return previousLength === 0 && this.entered.length > 0;\n\t };\n\t\n\t EnterLeaveCounter.prototype.leave = function leave(leavingNode) {\n\t var previousLength = this.entered.length;\n\t\n\t this.entered = _lodashWithout2['default'](this.entered.filter(function (node) {\n\t return document.documentElement.contains(node);\n\t }), leavingNode);\n\t\n\t return previousLength > 0 && this.entered.length === 0;\n\t };\n\t\n\t EnterLeaveCounter.prototype.reset = function reset() {\n\t this.entered = [];\n\t };\n\t\n\t return EnterLeaveCounter;\n\t})();\n\t\n\texports['default'] = EnterLeaveCounter;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 157 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _lodashDefaults = __webpack_require__(147);\n\t\n\tvar _lodashDefaults2 = _interopRequireDefault(_lodashDefaults);\n\t\n\tvar _shallowEqual = __webpack_require__(163);\n\t\n\tvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\t\n\tvar _EnterLeaveCounter = __webpack_require__(156);\n\t\n\tvar _EnterLeaveCounter2 = _interopRequireDefault(_EnterLeaveCounter);\n\t\n\tvar _BrowserDetector = __webpack_require__(53);\n\t\n\tvar _OffsetUtils = __webpack_require__(160);\n\t\n\tvar _NativeDragSources = __webpack_require__(159);\n\t\n\tvar _NativeTypes = __webpack_require__(29);\n\t\n\tvar NativeTypes = _interopRequireWildcard(_NativeTypes);\n\t\n\tvar HTML5Backend = (function () {\n\t function HTML5Backend(manager) {\n\t _classCallCheck(this, HTML5Backend);\n\t\n\t this.actions = manager.getActions();\n\t this.monitor = manager.getMonitor();\n\t this.registry = manager.getRegistry();\n\t\n\t this.sourcePreviewNodes = {};\n\t this.sourcePreviewNodeOptions = {};\n\t this.sourceNodes = {};\n\t this.sourceNodeOptions = {};\n\t this.enterLeaveCounter = new _EnterLeaveCounter2['default']();\n\t\n\t this.getSourceClientOffset = this.getSourceClientOffset.bind(this);\n\t this.handleTopDragStart = this.handleTopDragStart.bind(this);\n\t this.handleTopDragStartCapture = this.handleTopDragStartCapture.bind(this);\n\t this.handleTopDragEndCapture = this.handleTopDragEndCapture.bind(this);\n\t this.handleTopDragEnter = this.handleTopDragEnter.bind(this);\n\t this.handleTopDragEnterCapture = this.handleTopDragEnterCapture.bind(this);\n\t this.handleTopDragLeaveCapture = this.handleTopDragLeaveCapture.bind(this);\n\t this.handleTopDragOver = this.handleTopDragOver.bind(this);\n\t this.handleTopDragOverCapture = this.handleTopDragOverCapture.bind(this);\n\t this.handleTopDrop = this.handleTopDrop.bind(this);\n\t this.handleTopDropCapture = this.handleTopDropCapture.bind(this);\n\t this.handleSelectStart = this.handleSelectStart.bind(this);\n\t this.endDragIfSourceWasRemovedFromDOM = this.endDragIfSourceWasRemovedFromDOM.bind(this);\n\t this.endDragNativeItem = this.endDragNativeItem.bind(this);\n\t }\n\t\n\t HTML5Backend.prototype.setup = function setup() {\n\t if (typeof window === 'undefined') {\n\t return;\n\t }\n\t\n\t if (this.constructor.isSetUp) {\n\t throw new Error('Cannot have two HTML5 backends at the same time.');\n\t }\n\t this.constructor.isSetUp = true;\n\t this.addEventListeners(window);\n\t };\n\t\n\t HTML5Backend.prototype.teardown = function teardown() {\n\t if (typeof window === 'undefined') {\n\t return;\n\t }\n\t\n\t this.constructor.isSetUp = false;\n\t this.removeEventListeners(window);\n\t this.clearCurrentDragSourceNode();\n\t };\n\t\n\t HTML5Backend.prototype.addEventListeners = function addEventListeners(target) {\n\t target.addEventListener('dragstart', this.handleTopDragStart);\n\t target.addEventListener('dragstart', this.handleTopDragStartCapture, true);\n\t target.addEventListener('dragend', this.handleTopDragEndCapture, true);\n\t target.addEventListener('dragenter', this.handleTopDragEnter);\n\t target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);\n\t target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n\t target.addEventListener('dragover', this.handleTopDragOver);\n\t target.addEventListener('dragover', this.handleTopDragOverCapture, true);\n\t target.addEventListener('drop', this.handleTopDrop);\n\t target.addEventListener('drop', this.handleTopDropCapture, true);\n\t };\n\t\n\t HTML5Backend.prototype.removeEventListeners = function removeEventListeners(target) {\n\t target.removeEventListener('dragstart', this.handleTopDragStart);\n\t target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);\n\t target.removeEventListener('dragend', this.handleTopDragEndCapture, true);\n\t target.removeEventListener('dragenter', this.handleTopDragEnter);\n\t target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);\n\t target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n\t target.removeEventListener('dragover', this.handleTopDragOver);\n\t target.removeEventListener('dragover', this.handleTopDragOverCapture, true);\n\t target.removeEventListener('drop', this.handleTopDrop);\n\t target.removeEventListener('drop', this.handleTopDropCapture, true);\n\t };\n\t\n\t HTML5Backend.prototype.connectDragPreview = function connectDragPreview(sourceId, node, options) {\n\t var _this = this;\n\t\n\t this.sourcePreviewNodeOptions[sourceId] = options;\n\t this.sourcePreviewNodes[sourceId] = node;\n\t\n\t return function () {\n\t delete _this.sourcePreviewNodes[sourceId];\n\t delete _this.sourcePreviewNodeOptions[sourceId];\n\t };\n\t };\n\t\n\t HTML5Backend.prototype.connectDragSource = function connectDragSource(sourceId, node, options) {\n\t var _this2 = this;\n\t\n\t this.sourceNodes[sourceId] = node;\n\t this.sourceNodeOptions[sourceId] = options;\n\t\n\t var handleDragStart = function handleDragStart(e) {\n\t return _this2.handleDragStart(e, sourceId);\n\t };\n\t var handleSelectStart = function handleSelectStart(e) {\n\t return _this2.handleSelectStart(e, sourceId);\n\t };\n\t\n\t node.setAttribute('draggable', true);\n\t node.addEventListener('dragstart', handleDragStart);\n\t node.addEventListener('selectstart', handleSelectStart);\n\t\n\t return function () {\n\t delete _this2.sourceNodes[sourceId];\n\t delete _this2.sourceNodeOptions[sourceId];\n\t\n\t node.removeEventListener('dragstart', handleDragStart);\n\t node.removeEventListener('selectstart', handleSelectStart);\n\t node.setAttribute('draggable', false);\n\t };\n\t };\n\t\n\t HTML5Backend.prototype.connectDropTarget = function connectDropTarget(targetId, node) {\n\t var _this3 = this;\n\t\n\t var handleDragEnter = function handleDragEnter(e) {\n\t return _this3.handleDragEnter(e, targetId);\n\t };\n\t var handleDragOver = function handleDragOver(e) {\n\t return _this3.handleDragOver(e, targetId);\n\t };\n\t var handleDrop = function handleDrop(e) {\n\t return _this3.handleDrop(e, targetId);\n\t };\n\t\n\t node.addEventListener('dragenter', handleDragEnter);\n\t node.addEventListener('dragover', handleDragOver);\n\t node.addEventListener('drop', handleDrop);\n\t\n\t return function () {\n\t node.removeEventListener('dragenter', handleDragEnter);\n\t node.removeEventListener('dragover', handleDragOver);\n\t node.removeEventListener('drop', handleDrop);\n\t };\n\t };\n\t\n\t HTML5Backend.prototype.getCurrentSourceNodeOptions = function getCurrentSourceNodeOptions() {\n\t var sourceId = this.monitor.getSourceId();\n\t var sourceNodeOptions = this.sourceNodeOptions[sourceId];\n\t\n\t return _lodashDefaults2['default'](sourceNodeOptions || {}, {\n\t dropEffect: 'move'\n\t });\n\t };\n\t\n\t HTML5Backend.prototype.getCurrentDropEffect = function getCurrentDropEffect() {\n\t if (this.isDraggingNativeItem()) {\n\t // It makes more sense to default to 'copy' for native resources\n\t return 'copy';\n\t }\n\t\n\t return this.getCurrentSourceNodeOptions().dropEffect;\n\t };\n\t\n\t HTML5Backend.prototype.getCurrentSourcePreviewNodeOptions = function getCurrentSourcePreviewNodeOptions() {\n\t var sourceId = this.monitor.getSourceId();\n\t var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions[sourceId];\n\t\n\t return _lodashDefaults2['default'](sourcePreviewNodeOptions || {}, {\n\t anchorX: 0.5,\n\t anchorY: 0.5,\n\t captureDraggingState: false\n\t });\n\t };\n\t\n\t HTML5Backend.prototype.getSourceClientOffset = function getSourceClientOffset(sourceId) {\n\t return _OffsetUtils.getNodeClientOffset(this.sourceNodes[sourceId]);\n\t };\n\t\n\t HTML5Backend.prototype.isDraggingNativeItem = function isDraggingNativeItem() {\n\t var itemType = this.monitor.getItemType();\n\t return Object.keys(NativeTypes).some(function (key) {\n\t return NativeTypes[key] === itemType;\n\t });\n\t };\n\t\n\t HTML5Backend.prototype.beginDragNativeItem = function beginDragNativeItem(type) {\n\t this.clearCurrentDragSourceNode();\n\t\n\t var SourceType = _NativeDragSources.createNativeDragSource(type);\n\t this.currentNativeSource = new SourceType();\n\t this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);\n\t this.actions.beginDrag([this.currentNativeHandle]);\n\t\n\t // On Firefox, if mousemove fires, the drag is over but browser failed to tell us.\n\t // This is not true for other browsers.\n\t if (_BrowserDetector.isFirefox()) {\n\t window.addEventListener('mousemove', this.endDragNativeItem, true);\n\t }\n\t };\n\t\n\t HTML5Backend.prototype.endDragNativeItem = function endDragNativeItem() {\n\t if (!this.isDraggingNativeItem()) {\n\t return;\n\t }\n\t\n\t if (_BrowserDetector.isFirefox()) {\n\t window.removeEventListener('mousemove', this.endDragNativeItem, true);\n\t }\n\t\n\t this.actions.endDrag();\n\t this.registry.removeSource(this.currentNativeHandle);\n\t this.currentNativeHandle = null;\n\t this.currentNativeSource = null;\n\t };\n\t\n\t HTML5Backend.prototype.endDragIfSourceWasRemovedFromDOM = function endDragIfSourceWasRemovedFromDOM() {\n\t var node = this.currentDragSourceNode;\n\t if (document.body.contains(node)) {\n\t return;\n\t }\n\t\n\t if (this.clearCurrentDragSourceNode()) {\n\t this.actions.endDrag();\n\t }\n\t };\n\t\n\t HTML5Backend.prototype.setCurrentDragSourceNode = function setCurrentDragSourceNode(node) {\n\t this.clearCurrentDragSourceNode();\n\t this.currentDragSourceNode = node;\n\t this.currentDragSourceNodeOffset = _OffsetUtils.getNodeClientOffset(node);\n\t this.currentDragSourceNodeOffsetChanged = false;\n\t\n\t // Receiving a mouse event in the middle of a dragging operation\n\t // means it has ended and the drag source node disappeared from DOM,\n\t // so the browser didn't dispatch the dragend event.\n\t window.addEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n\t };\n\t\n\t HTML5Backend.prototype.clearCurrentDragSourceNode = function clearCurrentDragSourceNode() {\n\t if (this.currentDragSourceNode) {\n\t this.currentDragSourceNode = null;\n\t this.currentDragSourceNodeOffset = null;\n\t this.currentDragSourceNodeOffsetChanged = false;\n\t window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n\t return true;\n\t }\n\t\n\t return false;\n\t };\n\t\n\t HTML5Backend.prototype.checkIfCurrentDragSourceRectChanged = function checkIfCurrentDragSourceRectChanged() {\n\t var node = this.currentDragSourceNode;\n\t if (!node) {\n\t return false;\n\t }\n\t\n\t if (this.currentDragSourceNodeOffsetChanged) {\n\t return true;\n\t }\n\t\n\t this.currentDragSourceNodeOffsetChanged = !_shallowEqual2['default'](_OffsetUtils.getNodeClientOffset(node), this.currentDragSourceNodeOffset);\n\t\n\t return this.currentDragSourceNodeOffsetChanged;\n\t };\n\t\n\t HTML5Backend.prototype.handleTopDragStartCapture = function handleTopDragStartCapture() {\n\t this.clearCurrentDragSourceNode();\n\t this.dragStartSourceIds = [];\n\t };\n\t\n\t HTML5Backend.prototype.handleDragStart = function handleDragStart(e, sourceId) {\n\t this.dragStartSourceIds.unshift(sourceId);\n\t };\n\t\n\t HTML5Backend.prototype.handleTopDragStart = function handleTopDragStart(e) {\n\t var _this4 = this;\n\t\n\t var dragStartSourceIds = this.dragStartSourceIds;\n\t\n\t this.dragStartSourceIds = null;\n\t\n\t var clientOffset = _OffsetUtils.getEventClientOffset(e);\n\t\n\t // Don't publish the source just yet (see why below)\n\t this.actions.beginDrag(dragStartSourceIds, {\n\t publishSource: false,\n\t getSourceClientOffset: this.getSourceClientOffset,\n\t clientOffset: clientOffset\n\t });\n\t\n\t var dataTransfer = e.dataTransfer;\n\t\n\t var nativeType = _NativeDragSources.matchNativeItemType(dataTransfer);\n\t\n\t if (this.monitor.isDragging()) {\n\t if (typeof dataTransfer.setDragImage === 'function') {\n\t // Use custom drag image if user specifies it.\n\t // If child drag source refuses drag but parent agrees,\n\t // use parent's node as drag image. Neither works in IE though.\n\t var sourceId = this.monitor.getSourceId();\n\t var sourceNode = this.sourceNodes[sourceId];\n\t var dragPreview = this.sourcePreviewNodes[sourceId] || sourceNode;\n\t\n\t var _getCurrentSourcePreviewNodeOptions = this.getCurrentSourcePreviewNodeOptions();\n\t\n\t var anchorX = _getCurrentSourcePreviewNodeOptions.anchorX;\n\t var anchorY = _getCurrentSourcePreviewNodeOptions.anchorY;\n\t\n\t var anchorPoint = { anchorX: anchorX, anchorY: anchorY };\n\t var dragPreviewOffset = _OffsetUtils.getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint);\n\t dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);\n\t }\n\t\n\t try {\n\t // Firefox won't drag without setting data\n\t dataTransfer.setData('application/json', {});\n\t } catch (err) {}\n\t // IE doesn't support MIME types in setData\n\t\n\t // Store drag source node so we can check whether\n\t // it is removed from DOM and trigger endDrag manually.\n\t this.setCurrentDragSourceNode(e.target);\n\t\n\t // Now we are ready to publish the drag source.. or are we not?\n\t\n\t var _getCurrentSourcePreviewNodeOptions2 = this.getCurrentSourcePreviewNodeOptions();\n\t\n\t var captureDraggingState = _getCurrentSourcePreviewNodeOptions2.captureDraggingState;\n\t\n\t if (!captureDraggingState) {\n\t // Usually we want to publish it in the next tick so that browser\n\t // is able to screenshot the current (not yet dragging) state.\n\t //\n\t // It also neatly avoids a situation where render() returns null\n\t // in the same tick for the source element, and browser freaks out.\n\t setTimeout(function () {\n\t return _this4.actions.publishDragSource();\n\t });\n\t } else {\n\t // In some cases the user may want to override this behavior, e.g.\n\t // to work around IE not supporting custom drag previews.\n\t //\n\t // When using a custom drag layer, the only way to prevent\n\t // the default drag preview from drawing in IE is to screenshot\n\t // the dragging state in which the node itself has zero opacity\n\t // and height. In this case, though, returning null from render()\n\t // will abruptly end the dragging, which is not obvious.\n\t //\n\t // This is the reason such behavior is strictly opt-in.\n\t this.actions.publishDragSource();\n\t }\n\t } else if (nativeType) {\n\t // A native item (such as URL) dragged from inside the document\n\t this.beginDragNativeItem(nativeType);\n\t } else if (!dataTransfer.types && (!e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {\n\t // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n\t // Just let it drag. It's a native type (URL or text) and will be picked up in dragenter handler.\n\t return;\n\t } else {\n\t // If by this time no drag source reacted, tell browser not to drag.\n\t e.preventDefault();\n\t }\n\t };\n\t\n\t HTML5Backend.prototype.handleTopDragEndCapture = function handleTopDragEndCapture() {\n\t if (this.clearCurrentDragSourceNode()) {\n\t // Firefox can dispatch this event in an infinite loop\n\t // if dragend handler does something like showing an alert.\n\t // Only proceed if we have not handled it already.\n\t this.actions.endDrag();\n\t }\n\t };\n\t\n\t HTML5Backend.prototype.handleTopDragEnterCapture = function handleTopDragEnterCapture(e) {\n\t this.dragEnterTargetIds = [];\n\t\n\t var isFirstEnter = this.enterLeaveCounter.enter(e.target);\n\t if (!isFirstEnter || this.monitor.isDragging()) {\n\t return;\n\t }\n\t\n\t var dataTransfer = e.dataTransfer;\n\t\n\t var nativeType = _NativeDragSources.matchNativeItemType(dataTransfer);\n\t\n\t if (nativeType) {\n\t // A native item (such as file or URL) dragged from outside the document\n\t this.beginDragNativeItem(nativeType);\n\t }\n\t };\n\t\n\t HTML5Backend.prototype.handleDragEnter = function handleDragEnter(e, targetId) {\n\t this.dragEnterTargetIds.unshift(targetId);\n\t };\n\t\n\t HTML5Backend.prototype.handleTopDragEnter = function handleTopDragEnter(e) {\n\t var _this5 = this;\n\t\n\t var dragEnterTargetIds = this.dragEnterTargetIds;\n\t\n\t this.dragEnterTargetIds = [];\n\t\n\t if (!this.monitor.isDragging()) {\n\t // This is probably a native item type we don't understand.\n\t return;\n\t }\n\t\n\t if (!_BrowserDetector.isFirefox()) {\n\t // Don't emit hover in `dragenter` on Firefox due to an edge case.\n\t // If the target changes position as the result of `dragenter`, Firefox\n\t // will still happily dispatch `dragover` despite target being no longer\n\t // there. The easy solution is to only fire `hover` in `dragover` on FF.\n\t this.actions.hover(dragEnterTargetIds, {\n\t clientOffset: _OffsetUtils.getEventClientOffset(e)\n\t });\n\t }\n\t\n\t var canDrop = dragEnterTargetIds.some(function (targetId) {\n\t return _this5.monitor.canDropOnTarget(targetId);\n\t });\n\t\n\t if (canDrop) {\n\t // IE requires this to fire dragover events\n\t e.preventDefault();\n\t e.dataTransfer.dropEffect = this.getCurrentDropEffect();\n\t }\n\t };\n\t\n\t HTML5Backend.prototype.handleTopDragOverCapture = function handleTopDragOverCapture() {\n\t this.dragOverTargetIds = [];\n\t };\n\t\n\t HTML5Backend.prototype.handleDragOver = function handleDragOver(e, targetId) {\n\t this.dragOverTargetIds.unshift(targetId);\n\t };\n\t\n\t HTML5Backend.prototype.handleTopDragOver = function handleTopDragOver(e) {\n\t var _this6 = this;\n\t\n\t var dragOverTargetIds = this.dragOverTargetIds;\n\t\n\t this.dragOverTargetIds = [];\n\t\n\t if (!this.monitor.isDragging()) {\n\t // This is probably a native item type we don't understand.\n\t // Prevent default \"drop and blow away the whole document\" action.\n\t e.preventDefault();\n\t e.dataTransfer.dropEffect = 'none';\n\t return;\n\t }\n\t\n\t this.actions.hover(dragOverTargetIds, {\n\t clientOffset: _OffsetUtils.getEventClientOffset(e)\n\t });\n\t\n\t var canDrop = dragOverTargetIds.some(function (targetId) {\n\t return _this6.monitor.canDropOnTarget(targetId);\n\t });\n\t\n\t if (canDrop) {\n\t // Show user-specified drop effect.\n\t e.preventDefault();\n\t e.dataTransfer.dropEffect = this.getCurrentDropEffect();\n\t } else if (this.isDraggingNativeItem()) {\n\t // Don't show a nice cursor but still prevent default\n\t // \"drop and blow away the whole document\" action.\n\t e.preventDefault();\n\t e.dataTransfer.dropEffect = 'none';\n\t } else if (this.checkIfCurrentDragSourceRectChanged()) {\n\t // Prevent animating to incorrect position.\n\t // Drop effect must be other than 'none' to prevent animation.\n\t e.preventDefault();\n\t e.dataTransfer.dropEffect = 'move';\n\t }\n\t };\n\t\n\t HTML5Backend.prototype.handleTopDragLeaveCapture = function handleTopDragLeaveCapture(e) {\n\t if (this.isDraggingNativeItem()) {\n\t e.preventDefault();\n\t }\n\t\n\t var isLastLeave = this.enterLeaveCounter.leave(e.target);\n\t if (!isLastLeave) {\n\t return;\n\t }\n\t\n\t if (this.isDraggingNativeItem()) {\n\t this.endDragNativeItem();\n\t }\n\t };\n\t\n\t HTML5Backend.prototype.handleTopDropCapture = function handleTopDropCapture(e) {\n\t this.dropTargetIds = [];\n\t e.preventDefault();\n\t\n\t if (this.isDraggingNativeItem()) {\n\t this.currentNativeSource.mutateItemByReadingDataTransfer(e.dataTransfer);\n\t }\n\t\n\t this.enterLeaveCounter.reset();\n\t };\n\t\n\t HTML5Backend.prototype.handleDrop = function handleDrop(e, targetId) {\n\t this.dropTargetIds.unshift(targetId);\n\t };\n\t\n\t HTML5Backend.prototype.handleTopDrop = function handleTopDrop(e) {\n\t var dropTargetIds = this.dropTargetIds;\n\t\n\t this.dropTargetIds = [];\n\t\n\t this.actions.hover(dropTargetIds, {\n\t clientOffset: _OffsetUtils.getEventClientOffset(e)\n\t });\n\t this.actions.drop();\n\t\n\t if (this.isDraggingNativeItem()) {\n\t this.endDragNativeItem();\n\t } else {\n\t this.endDragIfSourceWasRemovedFromDOM();\n\t }\n\t };\n\t\n\t HTML5Backend.prototype.handleSelectStart = function handleSelectStart(e) {\n\t var target = e.target;\n\t\n\t // Only IE requires us to explicitly say\n\t // we want drag drop operation to start\n\t if (typeof target.dragDrop !== 'function') {\n\t return;\n\t }\n\t\n\t // Inputs and textareas should be selectable\n\t if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n\t return;\n\t }\n\t\n\t // For other targets, ask IE\n\t // to enable drag and drop\n\t e.preventDefault();\n\t target.dragDrop();\n\t };\n\t\n\t return HTML5Backend;\n\t})();\n\t\n\texports['default'] = HTML5Backend;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 158 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tvar MonotonicInterpolant = (function () {\n\t function MonotonicInterpolant(xs, ys) {\n\t _classCallCheck(this, MonotonicInterpolant);\n\t\n\t var length = xs.length;\n\t\n\t // Rearrange xs and ys so that xs is sorted\n\t var indexes = [];\n\t for (var i = 0; i < length; i++) {\n\t indexes.push(i);\n\t }\n\t indexes.sort(function (a, b) {\n\t return xs[a] < xs[b] ? -1 : 1;\n\t });\n\t\n\t // Get consecutive differences and slopes\n\t var dys = [];\n\t var dxs = [];\n\t var ms = [];\n\t var dx = undefined;\n\t var dy = undefined;\n\t for (var i = 0; i < length - 1; i++) {\n\t dx = xs[i + 1] - xs[i];\n\t dy = ys[i + 1] - ys[i];\n\t dxs.push(dx);\n\t dys.push(dy);\n\t ms.push(dy / dx);\n\t }\n\t\n\t // Get degree-1 coefficients\n\t var c1s = [ms[0]];\n\t for (var i = 0; i < dxs.length - 1; i++) {\n\t var _m = ms[i];\n\t var mNext = ms[i + 1];\n\t if (_m * mNext <= 0) {\n\t c1s.push(0);\n\t } else {\n\t dx = dxs[i];\n\t var dxNext = dxs[i + 1];\n\t var common = dx + dxNext;\n\t c1s.push(3 * common / ((common + dxNext) / _m + (common + dx) / mNext));\n\t }\n\t }\n\t c1s.push(ms[ms.length - 1]);\n\t\n\t // Get degree-2 and degree-3 coefficients\n\t var c2s = [];\n\t var c3s = [];\n\t var m = undefined;\n\t for (var i = 0; i < c1s.length - 1; i++) {\n\t m = ms[i];\n\t var c1 = c1s[i];\n\t var invDx = 1 / dxs[i];\n\t var common = c1 + c1s[i + 1] - m - m;\n\t c2s.push((m - c1 - common) * invDx);\n\t c3s.push(common * invDx * invDx);\n\t }\n\t\n\t this.xs = xs;\n\t this.ys = ys;\n\t this.c1s = c1s;\n\t this.c2s = c2s;\n\t this.c3s = c3s;\n\t }\n\t\n\t MonotonicInterpolant.prototype.interpolate = function interpolate(x) {\n\t var xs = this.xs;\n\t var ys = this.ys;\n\t var c1s = this.c1s;\n\t var c2s = this.c2s;\n\t var c3s = this.c3s;\n\t\n\t // The rightmost point in the dataset should give an exact result\n\t var i = xs.length - 1;\n\t if (x === xs[i]) {\n\t return ys[i];\n\t }\n\t\n\t // Search for the interval x is in, returning the corresponding y if x is one of the original xs\n\t var low = 0;\n\t var high = c3s.length - 1;\n\t var mid = undefined;\n\t while (low <= high) {\n\t mid = Math.floor(0.5 * (low + high));\n\t var xHere = xs[mid];\n\t if (xHere < x) {\n\t low = mid + 1;\n\t } else if (xHere > x) {\n\t high = mid - 1;\n\t } else {\n\t return ys[mid];\n\t }\n\t }\n\t i = Math.max(0, high);\n\t\n\t // Interpolate\n\t var diff = x - xs[i];\n\t var diffSq = diff * diff;\n\t return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;\n\t };\n\t\n\t return MonotonicInterpolant;\n\t})();\n\t\n\texports[\"default\"] = MonotonicInterpolant;\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 159 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _nativeTypesConfig;\n\t\n\texports.createNativeDragSource = createNativeDragSource;\n\texports.matchNativeItemType = matchNativeItemType;\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\t\n\tvar _NativeTypes = __webpack_require__(29);\n\t\n\tvar NativeTypes = _interopRequireWildcard(_NativeTypes);\n\t\n\tfunction getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {\n\t var result = typesToTry.reduce(function (resultSoFar, typeToTry) {\n\t return resultSoFar || dataTransfer.getData(typeToTry);\n\t }, null);\n\t\n\t return result != null ? // eslint-disable-line eqeqeq\n\t result : defaultValue;\n\t}\n\t\n\tvar nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, {\n\t exposeProperty: 'files',\n\t matchesTypes: ['Files'],\n\t getData: function getData(dataTransfer) {\n\t return Array.prototype.slice.call(dataTransfer.files);\n\t }\n\t}), _defineProperty(_nativeTypesConfig, NativeTypes.URL, {\n\t exposeProperty: 'urls',\n\t matchesTypes: ['Url', 'text/uri-list'],\n\t getData: function getData(dataTransfer, matchesTypes) {\n\t return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n');\n\t }\n\t}), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, {\n\t exposeProperty: 'text',\n\t matchesTypes: ['Text', 'text/plain'],\n\t getData: function getData(dataTransfer, matchesTypes) {\n\t return getDataFromDataTransfer(dataTransfer, matchesTypes, '');\n\t }\n\t}), _nativeTypesConfig);\n\t\n\tfunction createNativeDragSource(type) {\n\t var _nativeTypesConfig$type = nativeTypesConfig[type];\n\t var exposeProperty = _nativeTypesConfig$type.exposeProperty;\n\t var matchesTypes = _nativeTypesConfig$type.matchesTypes;\n\t var getData = _nativeTypesConfig$type.getData;\n\t\n\t return (function () {\n\t function NativeDragSource() {\n\t _classCallCheck(this, NativeDragSource);\n\t\n\t this.item = Object.defineProperties({}, _defineProperty({}, exposeProperty, {\n\t get: function get() {\n\t console.warn( // eslint-disable-line no-console\n\t 'Browser doesn\\'t allow reading \"' + exposeProperty + '\" until the drop event.');\n\t return null;\n\t },\n\t configurable: true,\n\t enumerable: true\n\t }));\n\t }\n\t\n\t NativeDragSource.prototype.mutateItemByReadingDataTransfer = function mutateItemByReadingDataTransfer(dataTransfer) {\n\t delete this.item[exposeProperty];\n\t this.item[exposeProperty] = getData(dataTransfer, matchesTypes);\n\t };\n\t\n\t NativeDragSource.prototype.canDrag = function canDrag() {\n\t return true;\n\t };\n\t\n\t NativeDragSource.prototype.beginDrag = function beginDrag() {\n\t return this.item;\n\t };\n\t\n\t NativeDragSource.prototype.isDragging = function isDragging(monitor, handle) {\n\t return handle === monitor.getSourceId();\n\t };\n\t\n\t NativeDragSource.prototype.endDrag = function endDrag() {};\n\t\n\t return NativeDragSource;\n\t })();\n\t}\n\t\n\tfunction matchNativeItemType(dataTransfer) {\n\t var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);\n\t\n\t return Object.keys(nativeTypesConfig).filter(function (nativeItemType) {\n\t var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes;\n\t\n\t return matchesTypes.some(function (t) {\n\t return dataTransferTypes.indexOf(t) > -1;\n\t });\n\t })[0] || null;\n\t}\n\n/***/ }),\n/* 160 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.getNodeClientOffset = getNodeClientOffset;\n\texports.getEventClientOffset = getEventClientOffset;\n\texports.getDragPreviewOffset = getDragPreviewOffset;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _BrowserDetector = __webpack_require__(53);\n\t\n\tvar _MonotonicInterpolant = __webpack_require__(158);\n\t\n\tvar _MonotonicInterpolant2 = _interopRequireDefault(_MonotonicInterpolant);\n\t\n\tvar ELEMENT_NODE = 1;\n\t\n\tfunction getNodeClientOffset(node) {\n\t var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n\t\n\t if (!el) {\n\t return null;\n\t }\n\t\n\t var _el$getBoundingClientRect = el.getBoundingClientRect();\n\t\n\t var top = _el$getBoundingClientRect.top;\n\t var left = _el$getBoundingClientRect.left;\n\t\n\t return { x: left, y: top };\n\t}\n\t\n\tfunction getEventClientOffset(e) {\n\t return {\n\t x: e.clientX,\n\t y: e.clientY\n\t };\n\t}\n\t\n\tfunction getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint) {\n\t // The browsers will use the image intrinsic size under different conditions.\n\t // Firefox only cares if it's an image, but WebKit also wants it to be detached.\n\t var isImage = dragPreview.nodeName === 'IMG' && (_BrowserDetector.isFirefox() || !document.documentElement.contains(dragPreview));\n\t var dragPreviewNode = isImage ? sourceNode : dragPreview;\n\t\n\t var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);\n\t var offsetFromDragPreview = {\n\t x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n\t y: clientOffset.y - dragPreviewNodeOffsetFromClient.y\n\t };\n\t\n\t var sourceWidth = sourceNode.offsetWidth;\n\t var sourceHeight = sourceNode.offsetHeight;\n\t var anchorX = anchorPoint.anchorX;\n\t var anchorY = anchorPoint.anchorY;\n\t\n\t var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;\n\t var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight;\n\t\n\t // Work around @2x coordinate discrepancies in browsers\n\t if (_BrowserDetector.isSafari() && isImage) {\n\t dragPreviewHeight /= window.devicePixelRatio;\n\t dragPreviewWidth /= window.devicePixelRatio;\n\t } else if (_BrowserDetector.isFirefox() && !isImage) {\n\t dragPreviewHeight *= window.devicePixelRatio;\n\t dragPreviewWidth *= window.devicePixelRatio;\n\t }\n\t\n\t // Interpolate coordinates depending on anchor point\n\t // If you know a simpler way to do this, let me know\n\t var interpolantX = new _MonotonicInterpolant2['default']([0, 0.5, 1], [\n\t // Dock to the left\n\t offsetFromDragPreview.x,\n\t // Align at the center\n\t offsetFromDragPreview.x / sourceWidth * dragPreviewWidth,\n\t // Dock to the right\n\t offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]);\n\t var interpolantY = new _MonotonicInterpolant2['default']([0, 0.5, 1], [\n\t // Dock to the top\n\t offsetFromDragPreview.y,\n\t // Align at the center\n\t offsetFromDragPreview.y / sourceHeight * dragPreviewHeight,\n\t // Dock to the bottom\n\t offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]);\n\t var x = interpolantX.interpolate(anchorX);\n\t var y = interpolantY.interpolate(anchorY);\n\t\n\t // Work around Safari 8 positioning bug\n\t if (_BrowserDetector.isSafari() && isImage) {\n\t // We'll have to wait for @3x to see if this is entirely correct\n\t y += (window.devicePixelRatio - 1) * dragPreviewHeight;\n\t }\n\t\n\t return { x: x, y: y };\n\t}\n\n/***/ }),\n/* 161 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = getEmptyImage;\n\tvar emptyImage = undefined;\n\t\n\tfunction getEmptyImage() {\n\t if (!emptyImage) {\n\t emptyImage = new Image();\n\t emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n\t }\n\t\n\t return emptyImage;\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 162 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = createHTML5Backend;\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _HTML5Backend = __webpack_require__(157);\n\t\n\tvar _HTML5Backend2 = _interopRequireDefault(_HTML5Backend);\n\t\n\tvar _getEmptyImage = __webpack_require__(161);\n\t\n\tvar _getEmptyImage2 = _interopRequireDefault(_getEmptyImage);\n\t\n\tvar _NativeTypes = __webpack_require__(29);\n\t\n\tvar NativeTypes = _interopRequireWildcard(_NativeTypes);\n\t\n\texports.NativeTypes = NativeTypes;\n\texports.getEmptyImage = _getEmptyImage2['default'];\n\t\n\tfunction createHTML5Backend(manager) {\n\t return new _HTML5Backend2['default'](manager);\n\t}\n\n/***/ }),\n/* 163 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = shallowEqual;\n\t\n\tfunction shallowEqual(objA, objB) {\n\t if (objA === objB) {\n\t return true;\n\t }\n\t\n\t var keysA = Object.keys(objA);\n\t var keysB = Object.keys(objB);\n\t\n\t if (keysA.length !== keysB.length) {\n\t return false;\n\t }\n\t\n\t // Test for A's keys different from B.\n\t var hasOwn = Object.prototype.hasOwnProperty;\n\t for (var i = 0; i < keysA.length; i++) {\n\t if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n\t return false;\n\t }\n\t\n\t var valA = objA[keysA[i]];\n\t var valB = objB[keysA[i]];\n\t\n\t if (valA !== valB) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\t\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 164 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _slice = Array.prototype.slice;\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\texports['default'] = DragDropContext;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _dndCore = __webpack_require__(80);\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _utilsCheckDecoratorArguments = __webpack_require__(18);\n\t\n\tvar _utilsCheckDecoratorArguments2 = _interopRequireDefault(_utilsCheckDecoratorArguments);\n\t\n\tfunction DragDropContext(backendOrModule) {\n\t _utilsCheckDecoratorArguments2['default'].apply(undefined, ['DragDropContext', 'backend'].concat(_slice.call(arguments)));\n\t\n\t // Auto-detect ES6 default export for people still using ES5\n\t var backend = undefined;\n\t if (typeof backendOrModule === 'object' && typeof backendOrModule['default'] === 'function') {\n\t backend = backendOrModule['default'];\n\t } else {\n\t backend = backendOrModule;\n\t }\n\t\n\t _invariant2['default'](typeof backend === 'function', 'Expected the backend to be a function or an ES6 module exporting a default function. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-drop-context.html');\n\t\n\t var childContext = {\n\t dragDropManager: new _dndCore.DragDropManager(backend)\n\t };\n\t\n\t return function decorateContext(DecoratedComponent) {\n\t var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';\n\t\n\t return (function (_Component) {\n\t _inherits(DragDropContextContainer, _Component);\n\t\n\t function DragDropContextContainer() {\n\t _classCallCheck(this, DragDropContextContainer);\n\t\n\t _Component.apply(this, arguments);\n\t }\n\t\n\t DragDropContextContainer.prototype.getDecoratedComponentInstance = function getDecoratedComponentInstance() {\n\t return this.refs.child;\n\t };\n\t\n\t DragDropContextContainer.prototype.getManager = function getManager() {\n\t return childContext.dragDropManager;\n\t };\n\t\n\t DragDropContextContainer.prototype.getChildContext = function getChildContext() {\n\t return childContext;\n\t };\n\t\n\t DragDropContextContainer.prototype.render = function render() {\n\t return _react2['default'].createElement(DecoratedComponent, _extends({}, this.props, {\n\t ref: 'child' }));\n\t };\n\t\n\t _createClass(DragDropContextContainer, null, [{\n\t key: 'DecoratedComponent',\n\t value: DecoratedComponent,\n\t enumerable: true\n\t }, {\n\t key: 'displayName',\n\t value: 'DragDropContext(' + displayName + ')',\n\t enumerable: true\n\t }, {\n\t key: 'childContextTypes',\n\t value: {\n\t dragDropManager: _react.PropTypes.object.isRequired\n\t },\n\t enumerable: true\n\t }]);\n\t\n\t return DragDropContextContainer;\n\t })(_react.Component);\n\t };\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 165 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _slice = Array.prototype.slice;\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\texports['default'] = DragLayer;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _utilsShallowEqual = __webpack_require__(31);\n\t\n\tvar _utilsShallowEqual2 = _interopRequireDefault(_utilsShallowEqual);\n\t\n\tvar _utilsShallowEqualScalar = __webpack_require__(57);\n\t\n\tvar _utilsShallowEqualScalar2 = _interopRequireDefault(_utilsShallowEqualScalar);\n\t\n\tvar _lodashIsPlainObject = __webpack_require__(4);\n\t\n\tvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _utilsCheckDecoratorArguments = __webpack_require__(18);\n\t\n\tvar _utilsCheckDecoratorArguments2 = _interopRequireDefault(_utilsCheckDecoratorArguments);\n\t\n\tfunction DragLayer(collect) {\n\t var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\t\n\t _utilsCheckDecoratorArguments2['default'].apply(undefined, ['DragLayer', 'collect[, options]'].concat(_slice.call(arguments)));\n\t _invariant2['default'](typeof collect === 'function', 'Expected \"collect\" provided as the first argument to DragLayer ' + 'to be a function that collects props to inject into the component. ', 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-layer.html', collect);\n\t _invariant2['default'](_lodashIsPlainObject2['default'](options), 'Expected \"options\" provided as the second argument to DragLayer to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-layer.html', options);\n\t\n\t return function decorateLayer(DecoratedComponent) {\n\t var _options$arePropsEqual = options.arePropsEqual;\n\t var arePropsEqual = _options$arePropsEqual === undefined ? _utilsShallowEqualScalar2['default'] : _options$arePropsEqual;\n\t\n\t var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';\n\t\n\t return (function (_Component) {\n\t _inherits(DragLayerContainer, _Component);\n\t\n\t DragLayerContainer.prototype.getDecoratedComponentInstance = function getDecoratedComponentInstance() {\n\t return this.refs.child;\n\t };\n\t\n\t DragLayerContainer.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n\t return !arePropsEqual(nextProps, this.props) || !_utilsShallowEqual2['default'](nextState, this.state);\n\t };\n\t\n\t _createClass(DragLayerContainer, null, [{\n\t key: 'DecoratedComponent',\n\t value: DecoratedComponent,\n\t enumerable: true\n\t }, {\n\t key: 'displayName',\n\t value: 'DragLayer(' + displayName + ')',\n\t enumerable: true\n\t }, {\n\t key: 'contextTypes',\n\t value: {\n\t dragDropManager: _react.PropTypes.object.isRequired\n\t },\n\t enumerable: true\n\t }]);\n\t\n\t function DragLayerContainer(props, context) {\n\t _classCallCheck(this, DragLayerContainer);\n\t\n\t _Component.call(this, props);\n\t this.handleChange = this.handleChange.bind(this);\n\t\n\t this.manager = context.dragDropManager;\n\t _invariant2['default'](typeof this.manager === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to wrap the top-level component of your app with DragDropContext. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-troubleshooting.html#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);\n\t\n\t this.state = this.getCurrentState();\n\t }\n\t\n\t DragLayerContainer.prototype.componentDidMount = function componentDidMount() {\n\t this.isCurrentlyMounted = true;\n\t\n\t var monitor = this.manager.getMonitor();\n\t this.unsubscribeFromOffsetChange = monitor.subscribeToOffsetChange(this.handleChange);\n\t this.unsubscribeFromStateChange = monitor.subscribeToStateChange(this.handleChange);\n\t\n\t this.handleChange();\n\t };\n\t\n\t DragLayerContainer.prototype.componentWillUnmount = function componentWillUnmount() {\n\t this.isCurrentlyMounted = false;\n\t\n\t this.unsubscribeFromOffsetChange();\n\t this.unsubscribeFromStateChange();\n\t };\n\t\n\t DragLayerContainer.prototype.handleChange = function handleChange() {\n\t if (!this.isCurrentlyMounted) {\n\t return;\n\t }\n\t\n\t var nextState = this.getCurrentState();\n\t if (!_utilsShallowEqual2['default'](nextState, this.state)) {\n\t this.setState(nextState);\n\t }\n\t };\n\t\n\t DragLayerContainer.prototype.getCurrentState = function getCurrentState() {\n\t var monitor = this.manager.getMonitor();\n\t return collect(monitor);\n\t };\n\t\n\t DragLayerContainer.prototype.render = function render() {\n\t return _react2['default'].createElement(DecoratedComponent, _extends({}, this.props, this.state, {\n\t ref: 'child' }));\n\t };\n\t\n\t return DragLayerContainer;\n\t })(_react.Component);\n\t };\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 166 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\tvar _slice = Array.prototype.slice;\n\texports['default'] = DragSource;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _lodashIsPlainObject = __webpack_require__(4);\n\t\n\tvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\t\n\tvar _utilsCheckDecoratorArguments = __webpack_require__(18);\n\t\n\tvar _utilsCheckDecoratorArguments2 = _interopRequireDefault(_utilsCheckDecoratorArguments);\n\t\n\tvar _decorateHandler = __webpack_require__(55);\n\t\n\tvar _decorateHandler2 = _interopRequireDefault(_decorateHandler);\n\t\n\tvar _registerSource = __webpack_require__(174);\n\t\n\tvar _registerSource2 = _interopRequireDefault(_registerSource);\n\t\n\tvar _createSourceFactory = __webpack_require__(169);\n\t\n\tvar _createSourceFactory2 = _interopRequireDefault(_createSourceFactory);\n\t\n\tvar _createSourceMonitor = __webpack_require__(170);\n\t\n\tvar _createSourceMonitor2 = _interopRequireDefault(_createSourceMonitor);\n\t\n\tvar _createSourceConnector = __webpack_require__(168);\n\t\n\tvar _createSourceConnector2 = _interopRequireDefault(_createSourceConnector);\n\t\n\tvar _utilsIsValidType = __webpack_require__(56);\n\t\n\tvar _utilsIsValidType2 = _interopRequireDefault(_utilsIsValidType);\n\t\n\tfunction DragSource(type, spec, collect) {\n\t var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\t\n\t _utilsCheckDecoratorArguments2['default'].apply(undefined, ['DragSource', 'type, spec, collect[, options]'].concat(_slice.call(arguments)));\n\t var getType = type;\n\t if (typeof type !== 'function') {\n\t _invariant2['default'](_utilsIsValidType2['default'](type), 'Expected \"type\" provided as the first argument to DragSource to be ' + 'a string, or a function that returns a string given the current props. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', type);\n\t getType = function () {\n\t return type;\n\t };\n\t }\n\t _invariant2['default'](_lodashIsPlainObject2['default'](spec), 'Expected \"spec\" provided as the second argument to DragSource to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', spec);\n\t var createSource = _createSourceFactory2['default'](spec);\n\t _invariant2['default'](typeof collect === 'function', 'Expected \"collect\" provided as the third argument to DragSource to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', collect);\n\t _invariant2['default'](_lodashIsPlainObject2['default'](options), 'Expected \"options\" provided as the fourth argument to DragSource to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', collect);\n\t\n\t return function decorateSource(DecoratedComponent) {\n\t return _decorateHandler2['default']({\n\t connectBackend: function connectBackend(backend, sourceId) {\n\t return backend.connectDragSource(sourceId);\n\t },\n\t containerDisplayName: 'DragSource',\n\t createHandler: createSource,\n\t registerHandler: _registerSource2['default'],\n\t createMonitor: _createSourceMonitor2['default'],\n\t createConnector: _createSourceConnector2['default'],\n\t DecoratedComponent: DecoratedComponent,\n\t getType: getType,\n\t collect: collect,\n\t options: options\n\t });\n\t };\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 167 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\tvar _slice = Array.prototype.slice;\n\texports['default'] = DropTarget;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _lodashIsPlainObject = __webpack_require__(4);\n\t\n\tvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\t\n\tvar _utilsCheckDecoratorArguments = __webpack_require__(18);\n\t\n\tvar _utilsCheckDecoratorArguments2 = _interopRequireDefault(_utilsCheckDecoratorArguments);\n\t\n\tvar _decorateHandler = __webpack_require__(55);\n\t\n\tvar _decorateHandler2 = _interopRequireDefault(_decorateHandler);\n\t\n\tvar _registerTarget = __webpack_require__(175);\n\t\n\tvar _registerTarget2 = _interopRequireDefault(_registerTarget);\n\t\n\tvar _createTargetFactory = __webpack_require__(172);\n\t\n\tvar _createTargetFactory2 = _interopRequireDefault(_createTargetFactory);\n\t\n\tvar _createTargetMonitor = __webpack_require__(173);\n\t\n\tvar _createTargetMonitor2 = _interopRequireDefault(_createTargetMonitor);\n\t\n\tvar _createTargetConnector = __webpack_require__(171);\n\t\n\tvar _createTargetConnector2 = _interopRequireDefault(_createTargetConnector);\n\t\n\tvar _utilsIsValidType = __webpack_require__(56);\n\t\n\tvar _utilsIsValidType2 = _interopRequireDefault(_utilsIsValidType);\n\t\n\tfunction DropTarget(type, spec, collect) {\n\t var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\t\n\t _utilsCheckDecoratorArguments2['default'].apply(undefined, ['DropTarget', 'type, spec, collect[, options]'].concat(_slice.call(arguments)));\n\t var getType = type;\n\t if (typeof type !== 'function') {\n\t _invariant2['default'](_utilsIsValidType2['default'](type, true), 'Expected \"type\" provided as the first argument to DropTarget to be ' + 'a string, an array of strings, or a function that returns either given ' + 'the current props. Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', type);\n\t getType = function () {\n\t return type;\n\t };\n\t }\n\t _invariant2['default'](_lodashIsPlainObject2['default'](spec), 'Expected \"spec\" provided as the second argument to DropTarget to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', spec);\n\t var createTarget = _createTargetFactory2['default'](spec);\n\t _invariant2['default'](typeof collect === 'function', 'Expected \"collect\" provided as the third argument to DropTarget to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', collect);\n\t _invariant2['default'](_lodashIsPlainObject2['default'](options), 'Expected \"options\" provided as the fourth argument to DropTarget to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', collect);\n\t\n\t return function decorateTarget(DecoratedComponent) {\n\t return _decorateHandler2['default']({\n\t connectBackend: function connectBackend(backend, targetId) {\n\t return backend.connectDropTarget(targetId);\n\t },\n\t containerDisplayName: 'DropTarget',\n\t createHandler: createTarget,\n\t registerHandler: _registerTarget2['default'],\n\t createMonitor: _createTargetMonitor2['default'],\n\t createConnector: _createTargetConnector2['default'],\n\t DecoratedComponent: DecoratedComponent,\n\t getType: getType,\n\t collect: collect,\n\t options: options\n\t });\n\t };\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 168 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = createSourceConnector;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _wrapConnectorHooks = __webpack_require__(58);\n\t\n\tvar _wrapConnectorHooks2 = _interopRequireDefault(_wrapConnectorHooks);\n\t\n\tvar _areOptionsEqual = __webpack_require__(54);\n\t\n\tvar _areOptionsEqual2 = _interopRequireDefault(_areOptionsEqual);\n\t\n\tfunction createSourceConnector(backend) {\n\t var currentHandlerId = undefined;\n\t\n\t var currentDragSourceNode = undefined;\n\t var currentDragSourceOptions = undefined;\n\t var disconnectCurrentDragSource = undefined;\n\t\n\t var currentDragPreviewNode = undefined;\n\t var currentDragPreviewOptions = undefined;\n\t var disconnectCurrentDragPreview = undefined;\n\t\n\t function reconnectDragSource() {\n\t if (disconnectCurrentDragSource) {\n\t disconnectCurrentDragSource();\n\t disconnectCurrentDragSource = null;\n\t }\n\t\n\t if (currentHandlerId && currentDragSourceNode) {\n\t disconnectCurrentDragSource = backend.connectDragSource(currentHandlerId, currentDragSourceNode, currentDragSourceOptions);\n\t }\n\t }\n\t\n\t function reconnectDragPreview() {\n\t if (disconnectCurrentDragPreview) {\n\t disconnectCurrentDragPreview();\n\t disconnectCurrentDragPreview = null;\n\t }\n\t\n\t if (currentHandlerId && currentDragPreviewNode) {\n\t disconnectCurrentDragPreview = backend.connectDragPreview(currentHandlerId, currentDragPreviewNode, currentDragPreviewOptions);\n\t }\n\t }\n\t\n\t function receiveHandlerId(handlerId) {\n\t if (handlerId === currentHandlerId) {\n\t return;\n\t }\n\t\n\t currentHandlerId = handlerId;\n\t reconnectDragSource();\n\t reconnectDragPreview();\n\t }\n\t\n\t var hooks = _wrapConnectorHooks2['default']({\n\t dragSource: function connectDragSource(node, options) {\n\t if (node === currentDragSourceNode && _areOptionsEqual2['default'](options, currentDragSourceOptions)) {\n\t return;\n\t }\n\t\n\t currentDragSourceNode = node;\n\t currentDragSourceOptions = options;\n\t\n\t reconnectDragSource();\n\t },\n\t\n\t dragPreview: function connectDragPreview(node, options) {\n\t if (node === currentDragPreviewNode && _areOptionsEqual2['default'](options, currentDragPreviewOptions)) {\n\t return;\n\t }\n\t\n\t currentDragPreviewNode = node;\n\t currentDragPreviewOptions = options;\n\t\n\t reconnectDragPreview();\n\t }\n\t });\n\t\n\t return {\n\t receiveHandlerId: receiveHandlerId,\n\t hooks: hooks\n\t };\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 169 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = createSourceFactory;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _lodashIsPlainObject = __webpack_require__(4);\n\t\n\tvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\t\n\tvar ALLOWED_SPEC_METHODS = ['canDrag', 'beginDrag', 'canDrag', 'isDragging', 'endDrag'];\n\tvar REQUIRED_SPEC_METHODS = ['beginDrag'];\n\t\n\tfunction createSourceFactory(spec) {\n\t Object.keys(spec).forEach(function (key) {\n\t _invariant2['default'](ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drag source specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected \"%s\" key. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', ALLOWED_SPEC_METHODS.join(', '), key);\n\t _invariant2['default'](typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', key, key, spec[key]);\n\t });\n\t REQUIRED_SPEC_METHODS.forEach(function (key) {\n\t _invariant2['default'](typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', key, key, spec[key]);\n\t });\n\t\n\t var Source = (function () {\n\t function Source(monitor) {\n\t _classCallCheck(this, Source);\n\t\n\t this.monitor = monitor;\n\t this.props = null;\n\t this.component = null;\n\t }\n\t\n\t Source.prototype.receiveProps = function receiveProps(props) {\n\t this.props = props;\n\t };\n\t\n\t Source.prototype.receiveComponent = function receiveComponent(component) {\n\t this.component = component;\n\t };\n\t\n\t Source.prototype.canDrag = function canDrag() {\n\t if (!spec.canDrag) {\n\t return true;\n\t }\n\t\n\t return spec.canDrag(this.props, this.monitor);\n\t };\n\t\n\t Source.prototype.isDragging = function isDragging(globalMonitor, sourceId) {\n\t if (!spec.isDragging) {\n\t return sourceId === globalMonitor.getSourceId();\n\t }\n\t\n\t return spec.isDragging(this.props, this.monitor);\n\t };\n\t\n\t Source.prototype.beginDrag = function beginDrag() {\n\t var item = spec.beginDrag(this.props, this.monitor, this.component);\n\t if (false) {\n\t _invariant2['default'](_lodashIsPlainObject2['default'](item), 'beginDrag() must return a plain object that represents the dragged item. ' + 'Instead received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', item);\n\t }\n\t return item;\n\t };\n\t\n\t Source.prototype.endDrag = function endDrag() {\n\t if (!spec.endDrag) {\n\t return;\n\t }\n\t\n\t spec.endDrag(this.props, this.monitor, this.component);\n\t };\n\t\n\t return Source;\n\t })();\n\t\n\t return function createSource(monitor) {\n\t return new Source(monitor);\n\t };\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 170 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = createSourceMonitor;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar isCallingCanDrag = false;\n\tvar isCallingIsDragging = false;\n\t\n\tvar SourceMonitor = (function () {\n\t function SourceMonitor(manager) {\n\t _classCallCheck(this, SourceMonitor);\n\t\n\t this.internalMonitor = manager.getMonitor();\n\t }\n\t\n\t SourceMonitor.prototype.receiveHandlerId = function receiveHandlerId(sourceId) {\n\t this.sourceId = sourceId;\n\t };\n\t\n\t SourceMonitor.prototype.canDrag = function canDrag() {\n\t _invariant2['default'](!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source-monitor.html');\n\t\n\t try {\n\t isCallingCanDrag = true;\n\t return this.internalMonitor.canDragSource(this.sourceId);\n\t } finally {\n\t isCallingCanDrag = false;\n\t }\n\t };\n\t\n\t SourceMonitor.prototype.isDragging = function isDragging() {\n\t _invariant2['default'](!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source-monitor.html');\n\t\n\t try {\n\t isCallingIsDragging = true;\n\t return this.internalMonitor.isDraggingSource(this.sourceId);\n\t } finally {\n\t isCallingIsDragging = false;\n\t }\n\t };\n\t\n\t SourceMonitor.prototype.getItemType = function getItemType() {\n\t return this.internalMonitor.getItemType();\n\t };\n\t\n\t SourceMonitor.prototype.getItem = function getItem() {\n\t return this.internalMonitor.getItem();\n\t };\n\t\n\t SourceMonitor.prototype.getDropResult = function getDropResult() {\n\t return this.internalMonitor.getDropResult();\n\t };\n\t\n\t SourceMonitor.prototype.didDrop = function didDrop() {\n\t return this.internalMonitor.didDrop();\n\t };\n\t\n\t SourceMonitor.prototype.getInitialClientOffset = function getInitialClientOffset() {\n\t return this.internalMonitor.getInitialClientOffset();\n\t };\n\t\n\t SourceMonitor.prototype.getInitialSourceClientOffset = function getInitialSourceClientOffset() {\n\t return this.internalMonitor.getInitialSourceClientOffset();\n\t };\n\t\n\t SourceMonitor.prototype.getSourceClientOffset = function getSourceClientOffset() {\n\t return this.internalMonitor.getSourceClientOffset();\n\t };\n\t\n\t SourceMonitor.prototype.getClientOffset = function getClientOffset() {\n\t return this.internalMonitor.getClientOffset();\n\t };\n\t\n\t SourceMonitor.prototype.getDifferenceFromInitialOffset = function getDifferenceFromInitialOffset() {\n\t return this.internalMonitor.getDifferenceFromInitialOffset();\n\t };\n\t\n\t return SourceMonitor;\n\t})();\n\t\n\tfunction createSourceMonitor(manager) {\n\t return new SourceMonitor(manager);\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 171 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = createTargetConnector;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _wrapConnectorHooks = __webpack_require__(58);\n\t\n\tvar _wrapConnectorHooks2 = _interopRequireDefault(_wrapConnectorHooks);\n\t\n\tvar _areOptionsEqual = __webpack_require__(54);\n\t\n\tvar _areOptionsEqual2 = _interopRequireDefault(_areOptionsEqual);\n\t\n\tfunction createTargetConnector(backend) {\n\t var currentHandlerId = undefined;\n\t\n\t var currentDropTargetNode = undefined;\n\t var currentDropTargetOptions = undefined;\n\t var disconnectCurrentDropTarget = undefined;\n\t\n\t function reconnectDropTarget() {\n\t if (disconnectCurrentDropTarget) {\n\t disconnectCurrentDropTarget();\n\t disconnectCurrentDropTarget = null;\n\t }\n\t\n\t if (currentHandlerId && currentDropTargetNode) {\n\t disconnectCurrentDropTarget = backend.connectDropTarget(currentHandlerId, currentDropTargetNode, currentDropTargetOptions);\n\t }\n\t }\n\t\n\t function receiveHandlerId(handlerId) {\n\t if (handlerId === currentHandlerId) {\n\t return;\n\t }\n\t\n\t currentHandlerId = handlerId;\n\t reconnectDropTarget();\n\t }\n\t\n\t var hooks = _wrapConnectorHooks2['default']({\n\t dropTarget: function connectDropTarget(node, options) {\n\t if (node === currentDropTargetNode && _areOptionsEqual2['default'](options, currentDropTargetOptions)) {\n\t return;\n\t }\n\t\n\t currentDropTargetNode = node;\n\t currentDropTargetOptions = options;\n\t\n\t reconnectDropTarget();\n\t }\n\t });\n\t\n\t return {\n\t receiveHandlerId: receiveHandlerId,\n\t hooks: hooks\n\t };\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 172 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = createTargetFactory;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _lodashIsPlainObject = __webpack_require__(4);\n\t\n\tvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\t\n\tvar ALLOWED_SPEC_METHODS = ['canDrop', 'hover', 'drop'];\n\t\n\tfunction createTargetFactory(spec) {\n\t Object.keys(spec).forEach(function (key) {\n\t _invariant2['default'](ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drop target specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected \"%s\" key. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', ALLOWED_SPEC_METHODS.join(', '), key);\n\t _invariant2['default'](typeof spec[key] === 'function', 'Expected %s in the drop target specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', key, key, spec[key]);\n\t });\n\t\n\t var Target = (function () {\n\t function Target(monitor) {\n\t _classCallCheck(this, Target);\n\t\n\t this.monitor = monitor;\n\t this.props = null;\n\t this.component = null;\n\t }\n\t\n\t Target.prototype.receiveProps = function receiveProps(props) {\n\t this.props = props;\n\t };\n\t\n\t Target.prototype.receiveMonitor = function receiveMonitor(monitor) {\n\t this.monitor = monitor;\n\t };\n\t\n\t Target.prototype.receiveComponent = function receiveComponent(component) {\n\t this.component = component;\n\t };\n\t\n\t Target.prototype.canDrop = function canDrop() {\n\t if (!spec.canDrop) {\n\t return true;\n\t }\n\t\n\t return spec.canDrop(this.props, this.monitor);\n\t };\n\t\n\t Target.prototype.hover = function hover() {\n\t if (!spec.hover) {\n\t return;\n\t }\n\t\n\t spec.hover(this.props, this.monitor, this.component);\n\t };\n\t\n\t Target.prototype.drop = function drop() {\n\t if (!spec.drop) {\n\t return;\n\t }\n\t\n\t var dropResult = spec.drop(this.props, this.monitor, this.component);\n\t if (false) {\n\t _invariant2['default'](typeof dropResult === 'undefined' || _lodashIsPlainObject2['default'](dropResult), 'drop() must either return undefined, or an object that represents the drop result. ' + 'Instead received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', dropResult);\n\t }\n\t return dropResult;\n\t };\n\t\n\t return Target;\n\t })();\n\t\n\t return function createTarget(monitor) {\n\t return new Target(monitor);\n\t };\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 173 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = createTargetMonitor;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar isCallingCanDrop = false;\n\t\n\tvar TargetMonitor = (function () {\n\t function TargetMonitor(manager) {\n\t _classCallCheck(this, TargetMonitor);\n\t\n\t this.internalMonitor = manager.getMonitor();\n\t }\n\t\n\t TargetMonitor.prototype.receiveHandlerId = function receiveHandlerId(targetId) {\n\t this.targetId = targetId;\n\t };\n\t\n\t TargetMonitor.prototype.canDrop = function canDrop() {\n\t _invariant2['default'](!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target-monitor.html');\n\t\n\t try {\n\t isCallingCanDrop = true;\n\t return this.internalMonitor.canDropOnTarget(this.targetId);\n\t } finally {\n\t isCallingCanDrop = false;\n\t }\n\t };\n\t\n\t TargetMonitor.prototype.isOver = function isOver(options) {\n\t return this.internalMonitor.isOverTarget(this.targetId, options);\n\t };\n\t\n\t TargetMonitor.prototype.getItemType = function getItemType() {\n\t return this.internalMonitor.getItemType();\n\t };\n\t\n\t TargetMonitor.prototype.getItem = function getItem() {\n\t return this.internalMonitor.getItem();\n\t };\n\t\n\t TargetMonitor.prototype.getDropResult = function getDropResult() {\n\t return this.internalMonitor.getDropResult();\n\t };\n\t\n\t TargetMonitor.prototype.didDrop = function didDrop() {\n\t return this.internalMonitor.didDrop();\n\t };\n\t\n\t TargetMonitor.prototype.getInitialClientOffset = function getInitialClientOffset() {\n\t return this.internalMonitor.getInitialClientOffset();\n\t };\n\t\n\t TargetMonitor.prototype.getInitialSourceClientOffset = function getInitialSourceClientOffset() {\n\t return this.internalMonitor.getInitialSourceClientOffset();\n\t };\n\t\n\t TargetMonitor.prototype.getSourceClientOffset = function getSourceClientOffset() {\n\t return this.internalMonitor.getSourceClientOffset();\n\t };\n\t\n\t TargetMonitor.prototype.getClientOffset = function getClientOffset() {\n\t return this.internalMonitor.getClientOffset();\n\t };\n\t\n\t TargetMonitor.prototype.getDifferenceFromInitialOffset = function getDifferenceFromInitialOffset() {\n\t return this.internalMonitor.getDifferenceFromInitialOffset();\n\t };\n\t\n\t return TargetMonitor;\n\t})();\n\t\n\tfunction createTargetMonitor(manager) {\n\t return new TargetMonitor(manager);\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 174 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = registerSource;\n\t\n\tfunction registerSource(type, source, manager) {\n\t var registry = manager.getRegistry();\n\t var sourceId = registry.addSource(type, source);\n\t\n\t function unregisterSource() {\n\t registry.removeSource(sourceId);\n\t }\n\t\n\t return {\n\t handlerId: sourceId,\n\t unregister: unregisterSource\n\t };\n\t}\n\t\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 175 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\texports[\"default\"] = registerTarget;\n\t\n\tfunction registerTarget(type, target, manager) {\n\t var registry = manager.getRegistry();\n\t var targetId = registry.addTarget(type, target);\n\t\n\t function unregisterTarget() {\n\t registry.removeTarget(targetId);\n\t }\n\t\n\t return {\n\t handlerId: targetId,\n\t unregister: unregisterTarget\n\t };\n\t}\n\t\n\tmodule.exports = exports[\"default\"];\n\n/***/ }),\n/* 176 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = cloneWithRef;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _invariant = __webpack_require__(1);\n\t\n\tvar _invariant2 = _interopRequireDefault(_invariant);\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tfunction cloneWithRef(element, newRef) {\n\t var previousRef = element.ref;\n\t _invariant2['default'](typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a or
. ' + 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');\n\t\n\t if (!previousRef) {\n\t // When there is no ref on the element, use the new ref directly\n\t return _react.cloneElement(element, {\n\t ref: newRef\n\t });\n\t }\n\t\n\t return _react.cloneElement(element, {\n\t ref: function ref(node) {\n\t newRef(node);\n\t\n\t if (previousRef) {\n\t previousRef(node);\n\t }\n\t }\n\t });\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 177 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Copyright 2014-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * @providesModule Object.assign\n\t */\n\t\n\t// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign\n\t\n\t'use strict';\n\t\n\tfunction assign(target, sources) {\n\t if (target == null) {\n\t throw new TypeError('Object.assign target cannot be null or undefined');\n\t }\n\t\n\t var to = Object(target);\n\t var hasOwnProperty = Object.prototype.hasOwnProperty;\n\t\n\t for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n\t var nextSource = arguments[nextIndex];\n\t if (nextSource == null) {\n\t continue;\n\t }\n\t\n\t var from = Object(nextSource);\n\t\n\t // We don't currently support accessors nor proxies. Therefore this\n\t // copy cannot throw. If we ever supported this then we must handle\n\t // exceptions and side-effects. We don't support symbols so they won't\n\t // be transferred.\n\t\n\t for (var key in from) {\n\t if (hasOwnProperty.call(from, key)) {\n\t to[key] = from[key];\n\t }\n\t }\n\t }\n\t\n\t return to;\n\t}\n\t\n\tmodule.exports = assign;\n\n/***/ }),\n/* 178 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * @providesModule update\n\t */\n\t\n\t/* global hasOwnProperty:true */\n\t\n\t'use strict';\n\t\n\tvar assign = __webpack_require__(177);\n\tvar keyOf = __webpack_require__(180);\n\tvar invariant = __webpack_require__(179);\n\tvar hasOwnProperty = ({}).hasOwnProperty;\n\t\n\tfunction shallowCopy(x) {\n\t if (Array.isArray(x)) {\n\t return x.concat();\n\t } else if (x && typeof x === 'object') {\n\t return assign(new x.constructor(), x);\n\t } else {\n\t return x;\n\t }\n\t}\n\t\n\tvar COMMAND_PUSH = keyOf({ $push: null });\n\tvar COMMAND_UNSHIFT = keyOf({ $unshift: null });\n\tvar COMMAND_SPLICE = keyOf({ $splice: null });\n\tvar COMMAND_SET = keyOf({ $set: null });\n\tvar COMMAND_MERGE = keyOf({ $merge: null });\n\tvar COMMAND_APPLY = keyOf({ $apply: null });\n\t\n\tvar ALL_COMMANDS_LIST = [COMMAND_PUSH, COMMAND_UNSHIFT, COMMAND_SPLICE, COMMAND_SET, COMMAND_MERGE, COMMAND_APPLY];\n\t\n\tvar ALL_COMMANDS_SET = {};\n\t\n\tALL_COMMANDS_LIST.forEach(function (command) {\n\t ALL_COMMANDS_SET[command] = true;\n\t});\n\t\n\tfunction invariantArrayCase(value, spec, command) {\n\t !Array.isArray(value) ? false ? invariant(false, 'update(): expected target of %s to be an array; got %s.', command, value) : invariant(false) : undefined;\n\t var specValue = spec[command];\n\t !Array.isArray(specValue) ? false ? invariant(false, 'update(): expected spec of %s to be an array; got %s. ' + 'Did you forget to wrap your parameter in an array?', command, specValue) : invariant(false) : undefined;\n\t}\n\t\n\tfunction update(value, spec) {\n\t !(typeof spec === 'object') ? false ? invariant(false, 'update(): You provided a key path to update() that did not contain one ' + 'of %s. Did you forget to include {%s: ...}?', ALL_COMMANDS_LIST.join(', '), COMMAND_SET) : invariant(false) : undefined;\n\t\n\t if (hasOwnProperty.call(spec, COMMAND_SET)) {\n\t !(Object.keys(spec).length === 1) ? false ? invariant(false, 'Cannot have more than one key in an object with %s', COMMAND_SET) : invariant(false) : undefined;\n\t\n\t return spec[COMMAND_SET];\n\t }\n\t\n\t var nextValue = shallowCopy(value);\n\t\n\t if (hasOwnProperty.call(spec, COMMAND_MERGE)) {\n\t var mergeObj = spec[COMMAND_MERGE];\n\t !(mergeObj && typeof mergeObj === 'object') ? false ? invariant(false, 'update(): %s expects a spec of type \\'object\\'; got %s', COMMAND_MERGE, mergeObj) : invariant(false) : undefined;\n\t !(nextValue && typeof nextValue === 'object') ? false ? invariant(false, 'update(): %s expects a target of type \\'object\\'; got %s', COMMAND_MERGE, nextValue) : invariant(false) : undefined;\n\t assign(nextValue, spec[COMMAND_MERGE]);\n\t }\n\t\n\t if (hasOwnProperty.call(spec, COMMAND_PUSH)) {\n\t invariantArrayCase(value, spec, COMMAND_PUSH);\n\t spec[COMMAND_PUSH].forEach(function (item) {\n\t nextValue.push(item);\n\t });\n\t }\n\t\n\t if (hasOwnProperty.call(spec, COMMAND_UNSHIFT)) {\n\t invariantArrayCase(value, spec, COMMAND_UNSHIFT);\n\t spec[COMMAND_UNSHIFT].forEach(function (item) {\n\t nextValue.unshift(item);\n\t });\n\t }\n\t\n\t if (hasOwnProperty.call(spec, COMMAND_SPLICE)) {\n\t !Array.isArray(value) ? false ? invariant(false, 'Expected %s target to be an array; got %s', COMMAND_SPLICE, value) : invariant(false) : undefined;\n\t !Array.isArray(spec[COMMAND_SPLICE]) ? false ? invariant(false, 'update(): expected spec of %s to be an array of arrays; got %s. ' + 'Did you forget to wrap your parameters in an array?', COMMAND_SPLICE, spec[COMMAND_SPLICE]) : invariant(false) : undefined;\n\t spec[COMMAND_SPLICE].forEach(function (args) {\n\t !Array.isArray(args) ? false ? invariant(false, 'update(): expected spec of %s to be an array of arrays; got %s. ' + 'Did you forget to wrap your parameters in an array?', COMMAND_SPLICE, spec[COMMAND_SPLICE]) : invariant(false) : undefined;\n\t nextValue.splice.apply(nextValue, args);\n\t });\n\t }\n\t\n\t if (hasOwnProperty.call(spec, COMMAND_APPLY)) {\n\t !(typeof spec[COMMAND_APPLY] === 'function') ? false ? invariant(false, 'update(): expected spec of %s to be a function; got %s.', COMMAND_APPLY, spec[COMMAND_APPLY]) : invariant(false) : undefined;\n\t nextValue = spec[COMMAND_APPLY](nextValue);\n\t }\n\t\n\t for (var k in spec) {\n\t if (!(ALL_COMMANDS_SET.hasOwnProperty(k) && ALL_COMMANDS_SET[k])) {\n\t nextValue[k] = update(value[k], spec[k]);\n\t }\n\t }\n\t\n\t return nextValue;\n\t}\n\t\n\tmodule.exports = update;\n\n/***/ }),\n/* 179 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * @providesModule invariant\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tfunction invariant(condition, format, a, b, c, d, e, f) {\n\t if (false) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t }\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t }));\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t}\n\t\n\tmodule.exports = invariant;\n\n/***/ }),\n/* 180 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Copyright 2013-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * @providesModule keyOf\n\t */\n\t\n\t/**\n\t * Allows extraction of a minified key. Let's the build system minify keys\n\t * without losing the ability to dynamically use key strings as values\n\t * themselves. Pass in an object with a single key/val pair and it will return\n\t * you the string key of that single record. Suppose you want to grab the\n\t * value for a key 'className' inside of an object. Key/val minification may\n\t * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n\t * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n\t * reuse those resolutions.\n\t */\n\t\"use strict\";\n\t\n\tvar keyOf = function (oneKeyObj) {\n\t var key;\n\t for (key in oneKeyObj) {\n\t if (!oneKeyObj.hasOwnProperty(key)) {\n\t continue;\n\t }\n\t return key;\n\t }\n\t return null;\n\t};\n\t\n\tmodule.exports = keyOf;\n\n/***/ }),\n/* 181 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports.ActionTypes = undefined;\n\texports['default'] = createStore;\n\t\n\tvar _isPlainObject = __webpack_require__(4);\n\t\n\tvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\t\n\tvar _symbolObservable = __webpack_require__(182);\n\t\n\tvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\t/**\n\t * These are private action types reserved by Redux.\n\t * For any unknown actions, you must return the current state.\n\t * If the current state is undefined, you must return the initial state.\n\t * Do not reference these action types directly in your code.\n\t */\n\tvar ActionTypes = exports.ActionTypes = {\n\t INIT: '@@redux/INIT'\n\t\n\t /**\n\t * Creates a Redux store that holds the state tree.\n\t * The only way to change the data in the store is to call `dispatch()` on it.\n\t *\n\t * There should only be a single store in your app. To specify how different\n\t * parts of the state tree respond to actions, you may combine several reducers\n\t * into a single reducer function by using `combineReducers`.\n\t *\n\t * @param {Function} reducer A function that returns the next state tree, given\n\t * the current state tree and the action to handle.\n\t *\n\t * @param {any} [preloadedState] The initial state. You may optionally specify it\n\t * to hydrate the state from the server in universal apps, or to restore a\n\t * previously serialized user session.\n\t * If you use `combineReducers` to produce the root reducer function, this must be\n\t * an object with the same shape as `combineReducers` keys.\n\t *\n\t * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n\t * to enhance the store with third-party capabilities such as middleware,\n\t * time travel, persistence, etc. The only store enhancer that ships with Redux\n\t * is `applyMiddleware()`.\n\t *\n\t * @returns {Store} A Redux store that lets you read the state, dispatch actions\n\t * and subscribe to changes.\n\t */\n\t};function createStore(reducer, preloadedState, enhancer) {\n\t var _ref2;\n\t\n\t if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n\t enhancer = preloadedState;\n\t preloadedState = undefined;\n\t }\n\t\n\t if (typeof enhancer !== 'undefined') {\n\t if (typeof enhancer !== 'function') {\n\t throw new Error('Expected the enhancer to be a function.');\n\t }\n\t\n\t return enhancer(createStore)(reducer, preloadedState);\n\t }\n\t\n\t if (typeof reducer !== 'function') {\n\t throw new Error('Expected the reducer to be a function.');\n\t }\n\t\n\t var currentReducer = reducer;\n\t var currentState = preloadedState;\n\t var currentListeners = [];\n\t var nextListeners = currentListeners;\n\t var isDispatching = false;\n\t\n\t function ensureCanMutateNextListeners() {\n\t if (nextListeners === currentListeners) {\n\t nextListeners = currentListeners.slice();\n\t }\n\t }\n\t\n\t /**\n\t * Reads the state tree managed by the store.\n\t *\n\t * @returns {any} The current state tree of your application.\n\t */\n\t function getState() {\n\t return currentState;\n\t }\n\t\n\t /**\n\t * Adds a change listener. It will be called any time an action is dispatched,\n\t * and some part of the state tree may potentially have changed. You may then\n\t * call `getState()` to read the current state tree inside the callback.\n\t *\n\t * You may call `dispatch()` from a change listener, with the following\n\t * caveats:\n\t *\n\t * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n\t * If you subscribe or unsubscribe while the listeners are being invoked, this\n\t * will not have any effect on the `dispatch()` that is currently in progress.\n\t * However, the next `dispatch()` call, whether nested or not, will use a more\n\t * recent snapshot of the subscription list.\n\t *\n\t * 2. The listener should not expect to see all state changes, as the state\n\t * might have been updated multiple times during a nested `dispatch()` before\n\t * the listener is called. It is, however, guaranteed that all subscribers\n\t * registered before the `dispatch()` started will be called with the latest\n\t * state by the time it exits.\n\t *\n\t * @param {Function} listener A callback to be invoked on every dispatch.\n\t * @returns {Function} A function to remove this change listener.\n\t */\n\t function subscribe(listener) {\n\t if (typeof listener !== 'function') {\n\t throw new Error('Expected listener to be a function.');\n\t }\n\t\n\t var isSubscribed = true;\n\t\n\t ensureCanMutateNextListeners();\n\t nextListeners.push(listener);\n\t\n\t return function unsubscribe() {\n\t if (!isSubscribed) {\n\t return;\n\t }\n\t\n\t isSubscribed = false;\n\t\n\t ensureCanMutateNextListeners();\n\t var index = nextListeners.indexOf(listener);\n\t nextListeners.splice(index, 1);\n\t };\n\t }\n\t\n\t /**\n\t * Dispatches an action. It is the only way to trigger a state change.\n\t *\n\t * The `reducer` function, used to create the store, will be called with the\n\t * current state tree and the given `action`. Its return value will\n\t * be considered the **next** state of the tree, and the change listeners\n\t * will be notified.\n\t *\n\t * The base implementation only supports plain object actions. If you want to\n\t * dispatch a Promise, an Observable, a thunk, or something else, you need to\n\t * wrap your store creating function into the corresponding middleware. For\n\t * example, see the documentation for the `redux-thunk` package. Even the\n\t * middleware will eventually dispatch plain object actions using this method.\n\t *\n\t * @param {Object} action A plain object representing “what changed”. It is\n\t * a good idea to keep actions serializable so you can record and replay user\n\t * sessions, or use the time travelling `redux-devtools`. An action must have\n\t * a `type` property which may not be `undefined`. It is a good idea to use\n\t * string constants for action types.\n\t *\n\t * @returns {Object} For convenience, the same action object you dispatched.\n\t *\n\t * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n\t * return something else (for example, a Promise you can await).\n\t */\n\t function dispatch(action) {\n\t if (!(0, _isPlainObject2['default'])(action)) {\n\t throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n\t }\n\t\n\t if (typeof action.type === 'undefined') {\n\t throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n\t }\n\t\n\t if (isDispatching) {\n\t throw new Error('Reducers may not dispatch actions.');\n\t }\n\t\n\t try {\n\t isDispatching = true;\n\t currentState = currentReducer(currentState, action);\n\t } finally {\n\t isDispatching = false;\n\t }\n\t\n\t var listeners = currentListeners = nextListeners;\n\t for (var i = 0; i < listeners.length; i++) {\n\t var listener = listeners[i];\n\t listener();\n\t }\n\t\n\t return action;\n\t }\n\t\n\t /**\n\t * Replaces the reducer currently used by the store to calculate the state.\n\t *\n\t * You might need this if your app implements code splitting and you want to\n\t * load some of the reducers dynamically. You might also need this if you\n\t * implement a hot reloading mechanism for Redux.\n\t *\n\t * @param {Function} nextReducer The reducer for the store to use instead.\n\t * @returns {void}\n\t */\n\t function replaceReducer(nextReducer) {\n\t if (typeof nextReducer !== 'function') {\n\t throw new Error('Expected the nextReducer to be a function.');\n\t }\n\t\n\t currentReducer = nextReducer;\n\t dispatch({ type: ActionTypes.INIT });\n\t }\n\t\n\t /**\n\t * Interoperability point for observable/reactive libraries.\n\t * @returns {observable} A minimal observable of state changes.\n\t * For more information, see the observable proposal:\n\t * https://github.com/tc39/proposal-observable\n\t */\n\t function observable() {\n\t var _ref;\n\t\n\t var outerSubscribe = subscribe;\n\t return _ref = {\n\t /**\n\t * The minimal observable subscription method.\n\t * @param {Object} observer Any object that can be used as an observer.\n\t * The observer object should have a `next` method.\n\t * @returns {subscription} An object with an `unsubscribe` method that can\n\t * be used to unsubscribe the observable from the store, and prevent further\n\t * emission of values from the observable.\n\t */\n\t subscribe: function subscribe(observer) {\n\t if (typeof observer !== 'object') {\n\t throw new TypeError('Expected the observer to be an object.');\n\t }\n\t\n\t function observeState() {\n\t if (observer.next) {\n\t observer.next(getState());\n\t }\n\t }\n\t\n\t observeState();\n\t var unsubscribe = outerSubscribe(observeState);\n\t return { unsubscribe: unsubscribe };\n\t }\n\t }, _ref[_symbolObservable2['default']] = function () {\n\t return this;\n\t }, _ref;\n\t }\n\t\n\t // When a store is created, an \"INIT\" action is dispatched so that every\n\t // reducer returns their initial state. This effectively populates\n\t // the initial state tree.\n\t dispatch({ type: ActionTypes.INIT });\n\t\n\t return _ref2 = {\n\t dispatch: dispatch,\n\t subscribe: subscribe,\n\t getState: getState,\n\t replaceReducer: replaceReducer\n\t }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n\t}\n\n/***/ }),\n/* 182 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __webpack_require__(183);\n\n\n/***/ }),\n/* 183 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(module) {'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _ponyfill = __webpack_require__(184);\n\t\n\tvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar root; /* global window */\n\t\n\t\n\tif (typeof self !== 'undefined') {\n\t root = self;\n\t} else if (typeof window !== 'undefined') {\n\t root = window;\n\t} else if (typeof global !== 'undefined') {\n\t root = global;\n\t} else if (true) {\n\t root = module;\n\t} else {\n\t root = Function('return this')();\n\t}\n\t\n\tvar result = (0, _ponyfill2['default'])(root);\n\texports['default'] = result;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)(module)))\n\n/***/ }),\n/* 184 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t\tvalue: true\n\t});\n\texports['default'] = symbolObservablePonyfill;\n\tfunction symbolObservablePonyfill(root) {\n\t\tvar result;\n\t\tvar _Symbol = root.Symbol;\n\t\n\t\tif (typeof _Symbol === 'function') {\n\t\t\tif (_Symbol.observable) {\n\t\t\t\tresult = _Symbol.observable;\n\t\t\t} else {\n\t\t\t\tresult = _Symbol('observable');\n\t\t\t\t_Symbol.observable = result;\n\t\t\t}\n\t\t} else {\n\t\t\tresult = '@@observable';\n\t\t}\n\t\n\t\treturn result;\n\t};\n\n/***/ }),\n/* 185 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_185__;\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// lib.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap b9f82072716a4b21457f","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/invariant/browser.js\n// module id = 1\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react\"\n// module id = 2\n// module chunks = 0","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isArray.js\n// module id = 3\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isPlainObject.js\n// module id = 4\n// module chunks = 0","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseRest.js\n// module id = 5\n// module chunks = 0","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_root.js\n// module id = 6\n// module chunks = 0","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isObject.js\n// module id = 7\n// module chunks = 0","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isObjectLike.js\n// module id = 8\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.END_DRAG = exports.DROP = exports.HOVER = exports.PUBLISH_DRAG_SOURCE = exports.BEGIN_DRAG = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.beginDrag = beginDrag;\nexports.publishDragSource = publishDragSource;\nexports.hover = hover;\nexports.drop = drop;\nexports.endDrag = endDrag;\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _isArray = require('lodash/isArray');\n\nvar _isArray2 = _interopRequireDefault(_isArray);\n\nvar _isObject = require('lodash/isObject');\n\nvar _isObject2 = _interopRequireDefault(_isObject);\n\nvar _matchesType = require('../utils/matchesType');\n\nvar _matchesType2 = _interopRequireDefault(_matchesType);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar BEGIN_DRAG = exports.BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';\nvar PUBLISH_DRAG_SOURCE = exports.PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';\nvar HOVER = exports.HOVER = 'dnd-core/HOVER';\nvar DROP = exports.DROP = 'dnd-core/DROP';\nvar END_DRAG = exports.END_DRAG = 'dnd-core/END_DRAG';\n\nfunction beginDrag(sourceIds) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { publishSource: true, clientOffset: null };\n var publishSource = options.publishSource,\n clientOffset = options.clientOffset,\n getSourceClientOffset = options.getSourceClientOffset;\n\n (0, _invariant2.default)((0, _isArray2.default)(sourceIds), 'Expected sourceIds to be an array.');\n\n var monitor = this.getMonitor();\n var registry = this.getRegistry();\n (0, _invariant2.default)(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');\n\n for (var i = 0; i < sourceIds.length; i++) {\n (0, _invariant2.default)(registry.getSource(sourceIds[i]), 'Expected sourceIds to be registered.');\n }\n\n var sourceId = null;\n for (var _i = sourceIds.length - 1; _i >= 0; _i--) {\n if (monitor.canDragSource(sourceIds[_i])) {\n sourceId = sourceIds[_i];\n break;\n }\n }\n if (sourceId === null) {\n return;\n }\n\n var sourceClientOffset = null;\n if (clientOffset) {\n (0, _invariant2.default)(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');\n sourceClientOffset = getSourceClientOffset(sourceId);\n }\n\n var source = registry.getSource(sourceId);\n var item = source.beginDrag(monitor, sourceId);\n (0, _invariant2.default)((0, _isObject2.default)(item), 'Item must be an object.');\n\n registry.pinSource(sourceId);\n\n var itemType = registry.getSourceType(sourceId);\n return {\n type: BEGIN_DRAG,\n itemType: itemType,\n item: item,\n sourceId: sourceId,\n clientOffset: clientOffset,\n sourceClientOffset: sourceClientOffset,\n isSourcePublic: publishSource\n };\n}\n\nfunction publishDragSource() {\n var monitor = this.getMonitor();\n if (!monitor.isDragging()) {\n return;\n }\n\n return { type: PUBLISH_DRAG_SOURCE };\n}\n\nfunction hover(targetIdsArg) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$clientOffset = _ref.clientOffset,\n clientOffset = _ref$clientOffset === undefined ? null : _ref$clientOffset;\n\n (0, _invariant2.default)((0, _isArray2.default)(targetIdsArg), 'Expected targetIds to be an array.');\n var targetIds = targetIdsArg.slice(0);\n\n var monitor = this.getMonitor();\n var registry = this.getRegistry();\n (0, _invariant2.default)(monitor.isDragging(), 'Cannot call hover while not dragging.');\n (0, _invariant2.default)(!monitor.didDrop(), 'Cannot call hover after drop.');\n\n // First check invariants.\n for (var i = 0; i < targetIds.length; i++) {\n var targetId = targetIds[i];\n (0, _invariant2.default)(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');\n\n var target = registry.getTarget(targetId);\n (0, _invariant2.default)(target, 'Expected targetIds to be registered.');\n }\n\n var draggedItemType = monitor.getItemType();\n\n // Remove those targetIds that don't match the targetType. This\n // fixes shallow isOver which would only be non-shallow because of\n // non-matching targets.\n for (var _i2 = targetIds.length - 1; _i2 >= 0; _i2--) {\n var _targetId = targetIds[_i2];\n var targetType = registry.getTargetType(_targetId);\n if (!(0, _matchesType2.default)(targetType, draggedItemType)) {\n targetIds.splice(_i2, 1);\n }\n }\n\n // Finally call hover on all matching targets.\n for (var _i3 = 0; _i3 < targetIds.length; _i3++) {\n var _targetId2 = targetIds[_i3];\n var _target = registry.getTarget(_targetId2);\n _target.hover(monitor, _targetId2);\n }\n\n return {\n type: HOVER,\n targetIds: targetIds,\n clientOffset: clientOffset\n };\n}\n\nfunction drop() {\n var _this = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var monitor = this.getMonitor();\n var registry = this.getRegistry();\n (0, _invariant2.default)(monitor.isDragging(), 'Cannot call drop while not dragging.');\n (0, _invariant2.default)(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.');\n\n var targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor);\n\n targetIds.reverse();\n targetIds.forEach(function (targetId, index) {\n var target = registry.getTarget(targetId);\n\n var dropResult = target.drop(monitor, targetId);\n (0, _invariant2.default)(typeof dropResult === 'undefined' || (0, _isObject2.default)(dropResult), 'Drop result must either be an object or undefined.');\n if (typeof dropResult === 'undefined') {\n dropResult = index === 0 ? {} : monitor.getDropResult();\n }\n\n _this.store.dispatch({\n type: DROP,\n dropResult: _extends({}, options, dropResult)\n });\n });\n}\n\nfunction endDrag() {\n var monitor = this.getMonitor();\n var registry = this.getRegistry();\n (0, _invariant2.default)(monitor.isDragging(), 'Cannot call endDrag while not dragging.');\n\n var sourceId = monitor.getSourceId();\n var source = registry.getSource(sourceId, true);\n source.endDrag(monitor, sourceId);\n\n registry.unpinSource();\n\n return { type: END_DRAG };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/actions/dragDrop.js\n// module id = 9\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addSource = addSource;\nexports.addTarget = addTarget;\nexports.removeSource = removeSource;\nexports.removeTarget = removeTarget;\nvar ADD_SOURCE = exports.ADD_SOURCE = 'dnd-core/ADD_SOURCE';\nvar ADD_TARGET = exports.ADD_TARGET = 'dnd-core/ADD_TARGET';\nvar REMOVE_SOURCE = exports.REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';\nvar REMOVE_TARGET = exports.REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';\n\nfunction addSource(sourceId) {\n return {\n type: ADD_SOURCE,\n sourceId: sourceId\n };\n}\n\nfunction addTarget(targetId) {\n return {\n type: ADD_TARGET,\n targetId: targetId\n };\n}\n\nfunction removeSource(sourceId) {\n return {\n type: REMOVE_SOURCE,\n sourceId: sourceId\n };\n}\n\nfunction removeTarget(targetId) {\n return {\n type: REMOVE_TARGET,\n targetId: targetId\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/actions/registry.js\n// module id = 10\n// module chunks = 0","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_assocIndexOf.js\n// module id = 11\n// module chunks = 0","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseGetTag.js\n// module id = 12\n// module chunks = 0","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getMapData.js\n// module id = 13\n// module chunks = 0","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getNative.js\n// module id = 14\n// module chunks = 0","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nativeCreate.js\n// module id = 15\n// module chunks = 0","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/eq.js\n// module id = 16\n// module chunks = 0","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isArrayLikeObject.js\n// module id = 17\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = checkDecoratorArguments;\n\nfunction checkDecoratorArguments(functionName, signature) {\n if (process.env.NODE_ENV !== 'production') {\n for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n for (var i = 0; i < args.length; i++) {\n var arg = args[i];\n if (arg && arg.prototype && arg.prototype.render) {\n console.error( // eslint-disable-line no-console\n 'You seem to be applying the arguments in the wrong order. ' + ('It should be ' + functionName + '(' + signature + ')(Component), not the other way around. ') + 'Read more: http://gaearon.github.io/react-dnd/docs-troubleshooting.html#you-seem-to-be-applying-the-arguments-in-the-wrong-order');\n return;\n }\n }\n }\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/utils/checkDecoratorArguments.js\n// module id = 18\n// module chunks = 0","import update from 'react/lib/update';\r\n\r\n/**\r\n * Adds the specified widget to the specified position in the layout.\r\n */\r\nexport function addWidget(layout, rowIndex, columnIndex, widgetName) {\r\n return update(layout, {\r\n rows: {\r\n [rowIndex]: {\r\n columns: {\r\n [columnIndex]: {\r\n widgets: {\r\n $push: [{\r\n key: widgetName,\r\n }],\r\n },\r\n },\r\n },\r\n },\r\n },\r\n });\r\n}\r\n\r\n/**\r\n * Removes the widget at a specified index.\r\n */\r\nexport function removeWidget(layout, rowIndex, columnIndex, widgetIndex) {\r\n return update(layout, {\r\n rows: {\r\n [rowIndex]: {\r\n columns: {\r\n [columnIndex]: {\r\n widgets: {\r\n $splice: [\r\n [widgetIndex, 1],\r\n ],\r\n },\r\n },\r\n },\r\n },\r\n },\r\n });\r\n}\r\n\r\n/**\r\n * Moves a widget from column to column.\r\n */\r\nexport function moveWidget(layout, initialLocation, destination, widgetName) {\r\n const removedLayout = removeWidget(layout, initialLocation.rowIndex, initialLocation.columnIndex, initialLocation.widgetIndex);\r\n const movedLayout = addWidget(removedLayout, destination.rowIndex, destination.columnIndex, widgetName);\r\n return movedLayout;\r\n}\r\n\r\n/**\r\n * Sorts a widget in the same column.\r\n */\r\nexport function sortWidget(layout, initialLocation, destination, widgetName) {\r\n return update(layout, {\r\n rows: {\r\n [initialLocation.rowIndex]: {\r\n columns: {\r\n [initialLocation.columnIndex]: {\r\n widgets: {\r\n $splice: [\r\n [initialLocation.widgetIndex, 1],\r\n [destination.widgetIndex, 0, {\r\n key: widgetName,\r\n }],\r\n ],\r\n },\r\n },\r\n },\r\n },\r\n },\r\n });\r\n}\r\n\n\n\n// WEBPACK FOOTER //\n// ./lib/util/index.js","'use strict';\n\nexports.__esModule = true;\nexports['default'] = isDisposable;\n\nfunction isDisposable(obj) {\n return Boolean(obj && typeof obj.dispose === 'function');\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/disposables/modules/isDisposable.js\n// module id = 20\n// module chunks = 0","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_SetCache.js\n// module id = 21\n// module chunks = 0","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Symbol.js\n// module id = 22\n// module chunks = 0","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayIncludes.js\n// module id = 23\n// module chunks = 0","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayIncludesWith.js\n// module id = 24\n// module chunks = 0","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayMap.js\n// module id = 25\n// module chunks = 0","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseUnary.js\n// module id = 26\n// module chunks = 0","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_cacheHas.js\n// module id = 27\n// module chunks = 0","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isArrayLike.js\n// module id = 28\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar FILE = '__NATIVE_FILE__';\nexports.FILE = FILE;\nvar URL = '__NATIVE_URL__';\nexports.URL = URL;\nvar TEXT = '__NATIVE_TEXT__';\nexports.TEXT = TEXT;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd-html5-backend/lib/NativeTypes.js\n// module id = 29\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequire(obj) { return obj && obj.__esModule ? obj['default'] : obj; }\n\nvar _DragDropContext = require('./DragDropContext');\n\nexports.DragDropContext = _interopRequire(_DragDropContext);\n\nvar _DragLayer = require('./DragLayer');\n\nexports.DragLayer = _interopRequire(_DragLayer);\n\nvar _DragSource = require('./DragSource');\n\nexports.DragSource = _interopRequire(_DragSource);\n\nvar _DropTarget = require('./DropTarget');\n\nexports.DropTarget = _interopRequire(_DropTarget);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/index.js\n// module id = 30\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = shallowEqual;\n\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n\n var valA = objA[keysA[i]];\n var valB = objB[keysA[i]];\n\n if (valA !== valB) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/utils/shallowEqual.js\n// module id = 31\n// module chunks = 0","module.exports = function(module) {\r\n\tif(!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tmodule.children = [];\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n}\r\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// (webpack)/buildin/module.js\n// module id = 32\n// module chunks = 0","export const WIDGET = 'WIDGET';\r\n\n\n\n// WEBPACK FOOTER //\n// ./lib/components/ItemTypes.js","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = dirtyHandlerIds;\nexports.areDirty = areDirty;\n\nvar _xor = require('lodash/xor');\n\nvar _xor2 = _interopRequireDefault(_xor);\n\nvar _intersection = require('lodash/intersection');\n\nvar _intersection2 = _interopRequireDefault(_intersection);\n\nvar _dragDrop = require('../actions/dragDrop');\n\nvar _registry = require('../actions/registry');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar NONE = [];\nvar ALL = [];\n\nfunction dirtyHandlerIds() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NONE;\n var action = arguments[1];\n var dragOperation = arguments[2];\n\n switch (action.type) {\n case _dragDrop.HOVER:\n break;\n case _registry.ADD_SOURCE:\n case _registry.ADD_TARGET:\n case _registry.REMOVE_TARGET:\n case _registry.REMOVE_SOURCE:\n return NONE;\n case _dragDrop.BEGIN_DRAG:\n case _dragDrop.PUBLISH_DRAG_SOURCE:\n case _dragDrop.END_DRAG:\n case _dragDrop.DROP:\n default:\n return ALL;\n }\n\n var targetIds = action.targetIds;\n var prevTargetIds = dragOperation.targetIds;\n\n var result = (0, _xor2.default)(targetIds, prevTargetIds);\n\n var didChange = false;\n if (result.length === 0) {\n for (var i = 0; i < targetIds.length; i++) {\n if (targetIds[i] !== prevTargetIds[i]) {\n didChange = true;\n break;\n }\n }\n } else {\n didChange = true;\n }\n\n if (!didChange) {\n return NONE;\n }\n\n var prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];\n var innermostTargetId = targetIds[targetIds.length - 1];\n\n if (prevInnermostTargetId !== innermostTargetId) {\n if (prevInnermostTargetId) {\n result.push(prevInnermostTargetId);\n }\n if (innermostTargetId) {\n result.push(innermostTargetId);\n }\n }\n\n return result;\n}\n\nfunction areDirty(state, handlerIds) {\n if (state === NONE) {\n return false;\n }\n\n if (state === ALL || typeof handlerIds === 'undefined') {\n return true;\n }\n\n return (0, _intersection2.default)(handlerIds, state).length > 0;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/reducers/dirtyHandlerIds.js\n// module id = 34\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = dragOffset;\nexports.getSourceClientOffset = getSourceClientOffset;\nexports.getDifferenceFromInitialOffset = getDifferenceFromInitialOffset;\n\nvar _dragDrop = require('../actions/dragDrop');\n\nvar initialState = {\n initialSourceClientOffset: null,\n initialClientOffset: null,\n clientOffset: null\n};\n\nfunction areOffsetsEqual(offsetA, offsetB) {\n if (offsetA === offsetB) {\n return true;\n }\n return offsetA && offsetB && offsetA.x === offsetB.x && offsetA.y === offsetB.y;\n}\n\nfunction dragOffset() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments[1];\n\n switch (action.type) {\n case _dragDrop.BEGIN_DRAG:\n return {\n initialSourceClientOffset: action.sourceClientOffset,\n initialClientOffset: action.clientOffset,\n clientOffset: action.clientOffset\n };\n case _dragDrop.HOVER:\n if (areOffsetsEqual(state.clientOffset, action.clientOffset)) {\n return state;\n }\n return _extends({}, state, {\n clientOffset: action.clientOffset\n });\n case _dragDrop.END_DRAG:\n case _dragDrop.DROP:\n return initialState;\n default:\n return state;\n }\n}\n\nfunction getSourceClientOffset(state) {\n var clientOffset = state.clientOffset,\n initialClientOffset = state.initialClientOffset,\n initialSourceClientOffset = state.initialSourceClientOffset;\n\n if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n return null;\n }\n return {\n x: clientOffset.x + initialSourceClientOffset.x - initialClientOffset.x,\n y: clientOffset.y + initialSourceClientOffset.y - initialClientOffset.y\n };\n}\n\nfunction getDifferenceFromInitialOffset(state) {\n var clientOffset = state.clientOffset,\n initialClientOffset = state.initialClientOffset;\n\n if (!clientOffset || !initialClientOffset) {\n return null;\n }\n return {\n x: clientOffset.x - initialClientOffset.x,\n y: clientOffset.y - initialClientOffset.y\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/reducers/dragOffset.js\n// module id = 35\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = matchesType;\n\nvar _isArray = require('lodash/isArray');\n\nvar _isArray2 = _interopRequireDefault(_isArray);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction matchesType(targetType, draggedItemType) {\n if ((0, _isArray2.default)(targetType)) {\n return targetType.some(function (t) {\n return t === draggedItemType;\n });\n } else {\n return targetType === draggedItemType;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/utils/matchesType.js\n// module id = 36\n// module chunks = 0","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_MapCache.js\n// module id = 37\n// module chunks = 0","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_apply.js\n// module id = 38\n// module chunks = 0","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseAssignValue.js\n// module id = 39\n// module chunks = 0","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseDifference.js\n// module id = 40\n// module chunks = 0","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseFlatten.js\n// module id = 41\n// module chunks = 0","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseUniq.js\n// module id = 42\n// module chunks = 0","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_defineProperty.js\n// module id = 43\n// module chunks = 0","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_freeGlobal.js\n// module id = 44\n// module chunks = 0","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isIndex.js\n// module id = 45\n// module chunks = 0","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setToArray.js\n// module id = 46\n// module chunks = 0","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/identity.js\n// module id = 47\n// module chunks = 0","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isArguments.js\n// module id = 48\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isFunction.js\n// module id = 49\n// module chunks = 0","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isLength.js\n// module id = 50\n// module chunks = 0","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/noop.js\n// module id = 51\n// module chunks = 0","var baseDifference = require('./_baseDifference'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\nvar without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n});\n\nmodule.exports = without;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/without.js\n// module id = 52\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _lodashMemoize = require('lodash/memoize');\n\nvar _lodashMemoize2 = _interopRequireDefault(_lodashMemoize);\n\nvar isFirefox = _lodashMemoize2['default'](function () {\n return (/firefox/i.test(navigator.userAgent)\n );\n});\n\nexports.isFirefox = isFirefox;\nvar isSafari = _lodashMemoize2['default'](function () {\n return Boolean(window.safari);\n});\nexports.isSafari = isSafari;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd-html5-backend/lib/BrowserDetector.js\n// module id = 53\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = areOptionsEqual;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utilsShallowEqual = require('./utils/shallowEqual');\n\nvar _utilsShallowEqual2 = _interopRequireDefault(_utilsShallowEqual);\n\nfunction areOptionsEqual(nextOptions, currentOptions) {\n if (currentOptions === nextOptions) {\n return true;\n }\n\n return currentOptions !== null && nextOptions !== null && _utilsShallowEqual2['default'](currentOptions, nextOptions);\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/areOptionsEqual.js\n// module id = 54\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nexports['default'] = decorateHandler;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _disposables = require('disposables');\n\nvar _utilsShallowEqual = require('./utils/shallowEqual');\n\nvar _utilsShallowEqual2 = _interopRequireDefault(_utilsShallowEqual);\n\nvar _utilsShallowEqualScalar = require('./utils/shallowEqualScalar');\n\nvar _utilsShallowEqualScalar2 = _interopRequireDefault(_utilsShallowEqualScalar);\n\nvar _lodashIsPlainObject = require('lodash/isPlainObject');\n\nvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction decorateHandler(_ref) {\n var DecoratedComponent = _ref.DecoratedComponent;\n var createHandler = _ref.createHandler;\n var createMonitor = _ref.createMonitor;\n var createConnector = _ref.createConnector;\n var registerHandler = _ref.registerHandler;\n var containerDisplayName = _ref.containerDisplayName;\n var getType = _ref.getType;\n var collect = _ref.collect;\n var options = _ref.options;\n var _options$arePropsEqual = options.arePropsEqual;\n var arePropsEqual = _options$arePropsEqual === undefined ? _utilsShallowEqualScalar2['default'] : _options$arePropsEqual;\n\n var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';\n\n return (function (_Component) {\n _inherits(DragDropContainer, _Component);\n\n DragDropContainer.prototype.getHandlerId = function getHandlerId() {\n return this.handlerId;\n };\n\n DragDropContainer.prototype.getDecoratedComponentInstance = function getDecoratedComponentInstance() {\n return this.decoratedComponentInstance;\n };\n\n DragDropContainer.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n return !arePropsEqual(nextProps, this.props) || !_utilsShallowEqual2['default'](nextState, this.state);\n };\n\n _createClass(DragDropContainer, null, [{\n key: 'DecoratedComponent',\n value: DecoratedComponent,\n enumerable: true\n }, {\n key: 'displayName',\n value: containerDisplayName + '(' + displayName + ')',\n enumerable: true\n }, {\n key: 'contextTypes',\n value: {\n dragDropManager: _react.PropTypes.object.isRequired\n },\n enumerable: true\n }]);\n\n function DragDropContainer(props, context) {\n _classCallCheck(this, DragDropContainer);\n\n _Component.call(this, props, context);\n this.handleChange = this.handleChange.bind(this);\n this.handleChildRef = this.handleChildRef.bind(this);\n\n _invariant2['default'](typeof this.context.dragDropManager === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to wrap the top-level component of your app with DragDropContext. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-troubleshooting.html#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);\n\n this.manager = this.context.dragDropManager;\n this.handlerMonitor = createMonitor(this.manager);\n this.handlerConnector = createConnector(this.manager.getBackend());\n this.handler = createHandler(this.handlerMonitor);\n\n this.disposable = new _disposables.SerialDisposable();\n this.receiveProps(props);\n this.state = this.getCurrentState();\n this.dispose();\n }\n\n DragDropContainer.prototype.componentDidMount = function componentDidMount() {\n this.isCurrentlyMounted = true;\n this.disposable = new _disposables.SerialDisposable();\n this.currentType = null;\n this.receiveProps(this.props);\n this.handleChange();\n };\n\n DragDropContainer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (!arePropsEqual(nextProps, this.props)) {\n this.receiveProps(nextProps);\n this.handleChange();\n }\n };\n\n DragDropContainer.prototype.componentWillUnmount = function componentWillUnmount() {\n this.dispose();\n this.isCurrentlyMounted = false;\n };\n\n DragDropContainer.prototype.receiveProps = function receiveProps(props) {\n this.handler.receiveProps(props);\n this.receiveType(getType(props));\n };\n\n DragDropContainer.prototype.receiveType = function receiveType(type) {\n if (type === this.currentType) {\n return;\n }\n\n this.currentType = type;\n\n var _registerHandler = registerHandler(type, this.handler, this.manager);\n\n var handlerId = _registerHandler.handlerId;\n var unregister = _registerHandler.unregister;\n\n this.handlerId = handlerId;\n this.handlerMonitor.receiveHandlerId(handlerId);\n this.handlerConnector.receiveHandlerId(handlerId);\n\n var globalMonitor = this.manager.getMonitor();\n var unsubscribe = globalMonitor.subscribeToStateChange(this.handleChange, { handlerIds: [handlerId] });\n\n this.disposable.setDisposable(new _disposables.CompositeDisposable(new _disposables.Disposable(unsubscribe), new _disposables.Disposable(unregister)));\n };\n\n DragDropContainer.prototype.handleChange = function handleChange() {\n if (!this.isCurrentlyMounted) {\n return;\n }\n\n var nextState = this.getCurrentState();\n if (!_utilsShallowEqual2['default'](nextState, this.state)) {\n this.setState(nextState);\n }\n };\n\n DragDropContainer.prototype.dispose = function dispose() {\n this.disposable.dispose();\n this.handlerConnector.receiveHandlerId(null);\n };\n\n DragDropContainer.prototype.handleChildRef = function handleChildRef(component) {\n this.decoratedComponentInstance = component;\n this.handler.receiveComponent(component);\n };\n\n DragDropContainer.prototype.getCurrentState = function getCurrentState() {\n var nextState = collect(this.handlerConnector.hooks, this.handlerMonitor);\n\n if (process.env.NODE_ENV !== 'production') {\n _invariant2['default'](_lodashIsPlainObject2['default'](nextState), 'Expected `collect` specified as the second argument to ' + '%s for %s to return a plain object of props to inject. ' + 'Instead, received %s.', containerDisplayName, displayName, nextState);\n }\n\n return nextState;\n };\n\n DragDropContainer.prototype.render = function render() {\n return _react2['default'].createElement(DecoratedComponent, _extends({}, this.props, this.state, {\n ref: this.handleChildRef }));\n };\n\n return DragDropContainer;\n })(_react.Component);\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/decorateHandler.js\n// module id = 55\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = isValidType;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _lodashIsArray = require('lodash/isArray');\n\nvar _lodashIsArray2 = _interopRequireDefault(_lodashIsArray);\n\nfunction isValidType(type, allowArray) {\n return typeof type === 'string' || typeof type === 'symbol' || allowArray && _lodashIsArray2['default'](type) && type.every(function (t) {\n return isValidType(t, false);\n });\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/utils/isValidType.js\n// module id = 56\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = shallowEqualScalar;\n\nfunction shallowEqualScalar(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i])) {\n return false;\n }\n\n var valA = objA[keysA[i]];\n var valB = objB[keysA[i]];\n\n if (valA !== valB || typeof valA === 'object' || typeof valB === 'object') {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/utils/shallowEqualScalar.js\n// module id = 57\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = wrapConnectorHooks;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utilsCloneWithRef = require('./utils/cloneWithRef');\n\nvar _utilsCloneWithRef2 = _interopRequireDefault(_utilsCloneWithRef);\n\nvar _react = require('react');\n\nfunction throwIfCompositeComponentElement(element) {\n // Custom components can no longer be wrapped directly in React DnD 2.0\n // so that we don't need to depend on findDOMNode() from react-dom.\n if (typeof element.type === 'string') {\n return;\n }\n\n var displayName = element.type.displayName || element.type.name || 'the component';\n\n throw new Error('Only native element nodes can now be passed to React DnD connectors. ' + ('You can either wrap ' + displayName + ' into a
, or turn it into a ') + 'drag source or a drop target itself.');\n}\n\nfunction wrapHookToRecognizeElement(hook) {\n return function () {\n var elementOrNode = arguments.length <= 0 || arguments[0] === undefined ? null : arguments[0];\n var options = arguments.length <= 1 || arguments[1] === undefined ? null : arguments[1];\n\n // When passed a node, call the hook straight away.\n if (!_react.isValidElement(elementOrNode)) {\n var node = elementOrNode;\n hook(node, options);\n return;\n }\n\n // If passed a ReactElement, clone it and attach this function as a ref.\n // This helps us achieve a neat API where user doesn't even know that refs\n // are being used under the hood.\n var element = elementOrNode;\n throwIfCompositeComponentElement(element);\n\n // When no options are passed, use the hook directly\n var ref = options ? function (node) {\n return hook(node, options);\n } : hook;\n\n return _utilsCloneWithRef2['default'](element, ref);\n };\n}\n\nfunction wrapConnectorHooks(hooks) {\n var wrappedHooks = {};\n\n Object.keys(hooks).forEach(function (key) {\n var hook = hooks[key];\n var wrappedHook = wrapHookToRecognizeElement(hook);\n wrappedHooks[key] = function () {\n return wrappedHook;\n };\n });\n\n return wrappedHooks;\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/wrapConnectorHooks.js\n// module id = 58\n// module chunks = 0","import React, { PropTypes } from 'react';\r\n\r\n/**\r\n * Default AddWidget component.\r\n * @param {[type]} {text [description]\r\n * @param {[type]} onClick} [description]\r\n * @return {[type]} [description]\r\n */\r\nconst AddWidget = ({text, onClick}) => {\r\n return (\r\n
\r\n {text}\r\n
\r\n );\r\n};\r\n\r\nAddWidget.propTypes = {\r\n /**\r\n * Should be called when 'add' is clicked\r\n */\r\n onClick: PropTypes.func,\r\n\r\n /**\r\n * Text that should be displyed in the component\r\n */\r\n text: PropTypes.string,\r\n};\r\n\r\nAddWidget.defaultProps = {\r\n text: 'Add Widget',\r\n};\r\n\r\nexport default AddWidget;\r\n\n\n\n// WEBPACK FOOTER //\n// ./lib/components/AddWidget.js","import React, { Component, PropTypes, createElement } from 'react';\r\nimport { DropTarget } from 'react-dnd';\r\nimport { WIDGET } from './ItemTypes';\r\nimport AddWidget from './AddWidget';\r\nimport { moveWidget } from '../util';\r\n\r\nconst columnTarget = {\r\n drop(props, monitor) {\r\n const { layout, rowIndex, columnIndex, onMove} = props;\r\n const item = monitor.getItem();\r\n if (item.columnIndex !== columnIndex || item.rowIndex !== rowIndex) {\r\n const movedLayout = moveWidget(layout, {\r\n rowIndex: item.rowIndex,\r\n columnIndex: item.columnIndex,\r\n widgetIndex: item.widgetIndex,\r\n }, {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex,\r\n }, item.widgetName);\r\n onMove(movedLayout);\r\n }\r\n },\r\n};\r\n\r\n/**\r\n * Colum of the dashboard grid. A column holds multiple widgets.\r\n */\r\n@DropTarget(WIDGET, columnTarget, (connect, monitor) => ({\r\n connectDropTarget: connect.dropTarget(),\r\n isOver: monitor.isOver(),\r\n canDrop: monitor.canDrop(),\r\n}))\r\nclass Column extends Component {\r\n render() {\r\n const {\r\n className,\r\n layout,\r\n rowIndex,\r\n columnIndex,\r\n editable,\r\n children,\r\n connectDropTarget,\r\n onAdd,\r\n isOver,\r\n canDrop,\r\n editableColumnClass,\r\n droppableColumnClass,\r\n addWidgetComponentText,\r\n addWidgetComponent,\r\n } = this.props;\r\n\r\n let classes = className;\r\n classes = editable ? `${className} ${editableColumnClass}` : classes;\r\n const isActive = isOver && canDrop;\r\n classes = isActive ? `${classes} ${droppableColumnClass}` : classes;\r\n\r\n let addWidgetComponentToUse = null;\r\n if (addWidgetComponent) {\r\n addWidgetComponentToUse = createElement(addWidgetComponent, {\ttext: addWidgetComponentText, onClick:\t() => {onAdd(layout, rowIndex, columnIndex);} });\r\n } else {\r\n addWidgetComponentToUse = {onAdd(layout, rowIndex, columnIndex);}}/>;\r\n }\r\n\r\n return (\r\n connectDropTarget(\r\n
\r\n {editable && addWidgetComponentToUse}\r\n { children }\r\n
\r\n )\r\n );\r\n }\r\n}\r\n\r\nColumn.propTypes = {\r\n /**\r\n * Children of the column\r\n */\r\n children: PropTypes.node,\r\n\r\n /**\r\n * CSS class that should be used with the column.\r\n */\r\n className: PropTypes.string,\r\n\r\n /**\r\n * Function that should be called when user tries to add a widget\r\n * to the column.\r\n */\r\n onAdd: PropTypes.func,\r\n\r\n /**\r\n * Layout of the dashboard.\r\n */\r\n layout: PropTypes.object,\r\n\r\n /**\r\n * Index of the row that this column resides.\r\n */\r\n rowIndex: PropTypes.number,\r\n\r\n /**\r\n * Index of this column.\r\n */\r\n columnIndex: PropTypes.number,\r\n\r\n /**\r\n * Indicates weather dashboard is in editable state\r\n */\r\n editable: PropTypes.bool,\r\n\r\n /**\r\n * Indicates weather a widget is being draged over.\r\n */\r\n isOver: PropTypes.bool,\r\n\r\n /**\r\n * Indicated a widget can be dropped.\r\n */\r\n canDrop: PropTypes.bool,\r\n\r\n /**\r\n * Class to be used for columns in editable mode.\r\n */\r\n editableColumnClass: PropTypes.string,\r\n\r\n /**\r\n * CSS class to be used for columns when a widget is droppable.\r\n */\r\n droppableColumnClass: PropTypes.string,\r\n\r\n /**\r\n * Text that should be given to the AddWidget component.\r\n */\r\n addWidgetComponentText: PropTypes.string,\r\n\r\n /**\r\n * ReactDnd's connectDropTarget.\r\n */\r\n connectDropTarget: PropTypes.func,\r\n\r\n /**\r\n * Customized AddWidget component.\r\n */\r\n addWidgetComponent: PropTypes.func,\r\n};\r\n\r\nColumn.defaultProps = {\r\n editableColumnClass: 'editable-column',\r\n droppableColumnClass: 'droppable-column',\r\n};\r\n\r\nexport default Column;\r\n\n\n\n// WEBPACK FOOTER //\n// ./lib/components/Column.js","import React, { Component, PropTypes } from 'react';\r\nimport { DragDropContext } from 'react-dnd';\r\nimport HTML5Backend from 'react-dnd-html5-backend';\r\nimport LayoutRenderer from './LayoutRenderer';\r\n\r\n/**\r\n * Main dashboard component. This is where all of this starts.\r\n */\r\n @DragDropContext(HTML5Backend)\r\nclass Dashboard extends Component {\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nDashboard.PropTypes = {\r\n /**\r\n * The layout of the dashboard.\r\n */\r\n layout: PropTypes.object,\r\n\r\n /**\r\n * List of widgets that are avilable in the dashboard.\r\n */\r\n widgets: PropTypes.object,\r\n\r\n /**\r\n * Indicates weather the dashoard is in editable state or not.\r\n */\r\n editable: PropTypes.bool,\r\n\r\n /**\r\n * CSS class name that should be provided to the row. Default is 'row'.\r\n */\r\n rowClass: PropTypes.string,\r\n\r\n /**\r\n * Customized widget frame. The dashboard supports a default frame. But if\r\n * it doesn't suit your needs or the look and feel is not what you wanted, you\r\n * could create your own widget frame and pass it through here. Ever widget Will\r\n * use this as the outer container which displays controls like 'remove' button\r\n * on edit mode.\r\n */\r\n frameComponent: PropTypes.func,\r\n\r\n /**\r\n * A custom component for the `add widget` button.\r\n */\r\n addWidgetComponent: PropTypes.func,\r\n\r\n /**\r\n * Class to be used for columns in editable mode.\r\n */\r\n editableColumnClass: PropTypes.string,\r\n\r\n /**\r\n * CSS class to be used for columns when a widget is droppable.\r\n */\r\n droppableColumnClass: PropTypes.string,\r\n\r\n /**\r\n * Text that should be displayed in the `AddWidget` component.\r\n */\r\n addWidgetComponentText: PropTypes.string,\r\n\r\n /**\r\n * Will be called when a widget removed by the user from the dashboard.\r\n * Should be handled if the dashbord supports edit functionality.\r\n * provides the updated layout object. This layout object with the removed widget\r\n * should be given back to the dashboard through the layout prop to re-render the dashboard.\r\n */\r\n onRemove: PropTypes.func,\r\n\r\n /**\r\n * Will be called when user tries to add a widget into a column.\r\n */\r\n onAdd: PropTypes.func,\r\n\r\n /**\r\n * Function to be called when a widget is moved by the user.\r\n */\r\n onMove: PropTypes.func,\r\n};\r\n\r\nexport default Dashboard;\r\n\n\n\n// WEBPACK FOOTER //\n// ./lib/components/Dashboard.js","import React, { PropTypes } from 'react';\r\n\r\n/**\r\n * Default frame that will be used with the widgets.\r\n */\r\nconst DefaultFrame = ({children, onRemove, editable, title}) => {\r\n return (\r\n
\r\n
\r\n {title}\r\n {editable && {onRemove();}}>Remove}\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nDefaultFrame.propTypes = {\r\n /**\r\n * Indicates weather the dashboard is in editable mode.\r\n */\r\n editable: PropTypes.bool,\r\n\r\n /**\r\n * Children of the frame.\r\n */\r\n children: PropTypes.node,\r\n\r\n /**\r\n * Function to call when the widget is removed.\r\n */\r\n onRemove: PropTypes.func,\r\n\r\n /**\r\n * Title of the widget\r\n */\r\n title: PropTypes.string,\r\n};\r\n\r\nexport default DefaultFrame;\r\n\n\n\n// WEBPACK FOOTER //\n// ./lib/components/DefaultFrame.js","import React, { PropTypes } from 'react';\r\nimport Row from './Row';\r\n\r\n/**\r\n * Renders the row, column layout based on the layout provided to the dashboard.\r\n */\r\nconst LayoutRenderer = (props) => {\r\n const {\r\n layout,\r\n widgets,\r\n onRemove,\r\n editable,\r\n onAdd,\r\n frameComponent,\r\n rowClass,\r\n onMove,\r\n editableColumnClass,\r\n droppableColumnClass,\r\n addWidgetComponentText,\r\n addWidgetComponent,\r\n } = props;\r\n\r\n let rows = layout.rows.map((row, rowIndex) => {\r\n return (\r\n \r\n );\r\n });\r\n\r\n return (\r\n
\r\n {rows}\r\n
\r\n );\r\n};\r\n\r\nLayoutRenderer.propTypes = {\r\n /**\r\n * Layout of the dashboard.\r\n */\r\n layout: PropTypes.object,\r\n\r\n /**\r\n * Widgets that the dashboard supports.\r\n */\r\n widgets: PropTypes.object,\r\n\r\n /**\r\n * Indicates weather this dashboard is in editable mode.\r\n */\r\n editable: PropTypes.bool,\r\n\r\n /**\r\n * Function that will be called when user removed a widget.\r\n */\r\n onRemove: PropTypes.func,\r\n\r\n /**\r\n * Function that will be called user tries to add a widget.\r\n */\r\n onAdd: PropTypes.func,\r\n\r\n /**\r\n * Frame that should be used as the outer cotnainer of the widget.\r\n */\r\n frameComponent: PropTypes.func,\r\n\r\n /**\r\n * Class name that should be provided to the row component.\r\n */\r\n rowClass: PropTypes.string,\r\n\r\n /**\r\n * Function to be called when a widget is moved by the user.\r\n */\r\n onMove: PropTypes.func,\r\n\r\n /**\r\n * Class to be used for columns in editable mode.\r\n */\r\n editableColumnClass: PropTypes.string,\r\n\r\n /**\r\n * CSS class to be used for columns when a widget is droppable.\r\n */\r\n droppableColumnClass: PropTypes.string,\r\n\r\n /**\r\n * Customized AddWidget component.\r\n */\r\n addWidgetComponent: PropTypes.func,\r\n\r\n /**\r\n * Text that should be displayed in the `AddWidget` component.\r\n */\r\n addWidgetComponentText: PropTypes.string,\r\n};\r\n\r\nLayoutRenderer.defaultProps = {\r\n /**\r\n * Default layout.\r\n */\r\n layout: {\r\n rows: [],\r\n },\r\n};\r\n\r\nexport default LayoutRenderer;\r\n\n\n\n// WEBPACK FOOTER //\n// ./lib/components/LayoutRenderer.js","import React, { PropTypes } from 'react';\r\nimport Column from './Column';\r\nimport Widgets from './Widgets';\r\n\r\n/**\r\n * Returns a set of columns that belongs to a row.\r\n */\r\nfunction Row(props) {\r\n const {\r\n rowClass,\r\n columns,\r\n widgets,\r\n onRemove,\r\n layout,\r\n rowIndex,\r\n editable,\r\n frameComponent,\r\n editableColumnClass,\r\n droppableColumnClass,\r\n addWidgetComponentText,\r\n addWidgetComponent,\r\n onAdd,\r\n onMove,\r\n } = props;\r\n\r\n const items = columns.map((column, index) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n });\r\n\r\n return (\r\n
\r\n {items}\r\n
\r\n );\r\n}\r\n\r\nRow.propTypes = {\r\n /**\r\n * CSS class that should be used to represent a row.\r\n */\r\n rowClass: PropTypes.string,\r\n\r\n /**\r\n * Columns of the layout.\r\n */\r\n columns: PropTypes.array,\r\n\r\n /**\r\n * Widgets that should be used in the dashboard.\r\n */\r\n widgets: PropTypes.object,\r\n\r\n /**\r\n * Layout of the dashboard.\r\n */\r\n layout: PropTypes.object,\r\n\r\n /**\r\n * Index of the row where this column is in.\r\n */\r\n rowIndex: PropTypes.number,\r\n\r\n /**\r\n * Indicates weather the dashboard is in editable mode or not.\r\n */\r\n editable: PropTypes.bool,\r\n\r\n /**\r\n * Custom frame that should be used with the widget.\r\n */\r\n frameComponent: PropTypes.func,\r\n\r\n /**\r\n * Class to be used for columns in editable mode.\r\n */\r\n editableColumnClass: PropTypes.string,\r\n\r\n /**\r\n * CSS class to be used for columns when a widget is droppable.\r\n */\r\n droppableColumnClass: PropTypes.string,\r\n\r\n /**\r\n * Custom AddWidget component.\r\n */\r\n addWidgetComponent: PropTypes.func,\r\n\r\n /**\r\n * Text that should be displyed in the AddWidget component.\r\n */\r\n addWidgetComponentText: PropTypes.string,\r\n\r\n /**\r\n * Method that should be called when a component is added.\r\n */\r\n onAdd: PropTypes.func,\r\n\r\n /**\r\n * Method that should be called when a component is removed.\r\n */\r\n onRemove: PropTypes.func,\r\n\r\n /**\r\n * Method that should be called when a widget is moved.\r\n */\r\n onMove: PropTypes.func,\r\n};\r\n\r\nRow.defaultProps = {\r\n /**\r\n * Most CSS grid systems uses 'row' as the class name. Or not ?\r\n */\r\n rowClass: 'row',\r\n};\r\n\r\nexport default Row;\r\n\n\n\n// WEBPACK FOOTER //\n// ./lib/components/Row.js","import React, { Component, PropTypes, createElement } from 'react';\r\nimport { findDOMNode } from 'react-dom';\r\nimport { DragSource, DropTarget } from 'react-dnd';\r\nimport { WIDGET } from './ItemTypes';\r\nimport { removeWidget, sortWidget } from '../util';\r\nimport DefaultFrame from './DefaultFrame';\r\n\r\nconst boxSource = {\r\n beginDrag(props) {\r\n return {\r\n widgetName: props.widgetName,\r\n rowIndex: props.rowIndex,\r\n columnIndex: props.columnIndex,\r\n widgetIndex: props.widgetIndex,\r\n };\r\n },\r\n};\r\n\r\nconst cardTarget = {\r\n hover(props, monitor, component) {\r\n const dragIndex = monitor.getItem().widgetIndex;\r\n const hoverIndex = props.widgetIndex;\r\n\r\n // Don't replace items with themselves\r\n if (dragIndex === hoverIndex) {\r\n return;\r\n }\r\n\r\n // Determine rectangle on screen\r\n const hoverBoundingRect = findDOMNode(component).getBoundingClientRect();\r\n\r\n // Get vertical middle\r\n const hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2;\r\n\r\n // Determine mouse position\r\n const clientOffset = monitor.getClientOffset();\r\n\r\n // Get pixels to the top\r\n const hoverClientY = clientOffset.y - hoverBoundingRect.top;\r\n\r\n // Only perform the move when the mouse has crossed half of the items height\r\n // When dragging downwards, only move when the cursor is below 50%\r\n // When dragging upwards, only move when the cursor is above 50%\r\n\r\n // Dragging downwards\r\n if (dragIndex < hoverIndex && hoverClientY < hoverMiddleY) {\r\n return;\r\n }\r\n\r\n // Dragging upwards\r\n if (dragIndex > hoverIndex && hoverClientY > hoverMiddleY) {\r\n return;\r\n }\r\n\r\n // Time to actually perform the action\r\n const { layout, columnIndex, rowIndex } = props;\r\n\r\n if (monitor.getItem().columnIndex === columnIndex) {\r\n const newLayout = sortWidget(layout, {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex,\r\n widgetIndex: dragIndex,\r\n }, {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex,\r\n widgetIndex: hoverIndex,\r\n }, monitor.getItem().widgetName);\r\n\r\n props.onMove(newLayout);\r\n\r\n // Note: we're mutating the monitor item here!\r\n // Generally it's better to avoid mutations,\r\n // but it's good here for the sake of performance\r\n // to avoid expensive index searches.\r\n monitor.getItem().widgetIndex = hoverIndex;\r\n }\r\n },\r\n};\r\n\r\n/**\r\n * Frame component which surrounds each widget.\r\n */\r\n @DropTarget(WIDGET, cardTarget, connect => ({\r\n connectDropTarget: connect.dropTarget(),\r\n }))\r\n @DragSource(WIDGET, boxSource, (connect, monitor) => ({\r\n connectDragSource: connect.dragSource(),\r\n isDragging: monitor.isDragging(),\r\n }))\r\nclass WidgetFrame extends Component {\r\n render() {\r\n const {\r\n frameComponent,\r\n children,\r\n editable,\r\n title,\r\n connectDragSource,\r\n connectDropTarget,\r\n isDragging,\r\n } = this.props;\r\n\r\n let selected = null;\r\n\r\n if (frameComponent) {\r\n // if user provided a custom frame, use it\r\n selected = createElement(frameComponent, {\tchildren,\teditable, title, onRemove: this.remove });\r\n } else {\r\n // else use the default frame\r\n selected = (\r\n \r\n );\r\n }\r\n const opacity = isDragging ? 0 : 1;\r\n const widgetFrame = (\r\n
\r\n {selected}\r\n
\r\n );\r\n\r\n return editable ? connectDragSource(connectDropTarget(widgetFrame)) : widgetFrame;\r\n }\r\n\r\n remove = () => {\r\n const { layout, rowIndex, columnIndex, widgetIndex } = this.props;\r\n const newLayout = removeWidget(layout, rowIndex, columnIndex, widgetIndex);\r\n this.props.onRemove(newLayout);\r\n }\r\n}\r\n\r\nWidgetFrame.propTypes = {\r\n /**\r\n * Childrens of the widget frame.\r\n */\r\n children: PropTypes.element,\r\n\r\n\r\n /**\r\n * Layout of the dahsboard.\r\n */\r\n layout: PropTypes.object,\r\n\r\n /**\r\n * Index of the column these widgets should be placed.\r\n */\r\n columnIndex: PropTypes.number,\r\n\r\n /**\r\n * Index of the row these widgets should be placed.\r\n */\r\n rowIndex: PropTypes.number,\r\n\r\n /**\r\n * Index of the widget.\r\n */\r\n widgetIndex: PropTypes.number,\r\n\r\n /**\r\n * Indicates weatehr dashboard is in ediable mode or not.\r\n */\r\n editable: PropTypes.bool,\r\n\r\n /**\r\n * User provided widget frame that should be used instead of the default one.\r\n */\r\n frameComponent: PropTypes.func,\r\n\r\n /**\r\n * Name of the widget.\r\n */\r\n widgetName: PropTypes.string,\r\n\r\n /**\r\n * Title of the widget.\r\n */\r\n title: PropTypes.string,\r\n\r\n /**\r\n * Weather the component is being dragged.\r\n */\r\n isDragging: PropTypes.bool,\r\n\r\n /**\r\n * ReactDnd's connectDragSource().\r\n */\r\n connectDragSource: PropTypes.func,\r\n\r\n/**\r\n * ReactDnd's connectDropTarget().\r\n */\r\n connectDropTarget: PropTypes.func,\r\n\r\n /**\r\n * Function that should be called when a widget is about to be removed.\r\n */\r\n onRemove: PropTypes.func,\r\n};\r\n\r\nexport default WidgetFrame;\r\n\n\n\n// WEBPACK FOOTER //\n// ./lib/components/WidgetFrame.js","import React, { PropTypes, createElement } from 'react';\r\nimport WidgetFrame from './WidgetFrame';\r\n\r\n/**\r\n * Component that renders the widget which belongs to a column.\r\n */\r\nconst Widgets = ({widgets, widgetTypes, onRemove, layout, columnIndex, rowIndex, editable, frameComponent, onMove}) => {\r\n let createdWidgets = widgets.map((widget, index)=> {\r\n return (\r\n \r\n {\r\n createElement(widgetTypes[widget.key].type, widgetTypes[widget.key].props)\r\n }\r\n \r\n );\r\n });\r\n return
{createdWidgets}
;\r\n};\r\n\r\nWidgets.propTypes = {\r\n /**\r\n * Widgets that should be rendered.\r\n */\r\n widgets: PropTypes.array,\r\n\r\n /**\r\n * Widgets that are available in the dashboard.\r\n */\r\n widgetTypes: PropTypes.object,\r\n\r\n /**\r\n * Function that should be called when a widget is about to be removed.\r\n */\r\n onRemove: PropTypes.func,\r\n\r\n /**\r\n * Layout of the dahsboard.\r\n */\r\n layout: PropTypes.object,\r\n\r\n /**\r\n * Index of the column these widgets should be placed.\r\n */\r\n columnIndex: PropTypes.number,\r\n\r\n /**\r\n * Index of the row these widgets should be placed.\r\n */\r\n rowIndex: PropTypes.number,\r\n\r\n /**\r\n * Indicates weatehr dashboard is in ediable mode or not.\r\n */\r\n editable: PropTypes.bool,\r\n\r\n /**\r\n * User provided widget frame that should be used instead of the default one.\r\n */\r\n frameComponent: PropTypes.func,\r\n\r\n /**\r\n * Method to call when a widget is moved.\r\n */\r\n onMove: PropTypes.func,\r\n};\r\n\r\nexport default Widgets;\r\n\n\n\n// WEBPACK FOOTER //\n// ./lib/components/Widgets.js","export { default as default } from './components/Dashboard';\r\nexport { addWidget } from './util';\r\n\n\n\n// WEBPACK FOOTER //\n// ./lib/index.js","\"use strict\";\n\n// rawAsap provides everything we need except exception management.\nvar rawAsap = require(\"./raw\");\n// RawTasks are recycled to reduce GC churn.\nvar freeTasks = [];\n// We queue errors to ensure they are thrown in right order (FIFO).\n// Array-as-queue is good enough here, since we are just dealing with exceptions.\nvar pendingErrors = [];\nvar requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);\n\nfunction throwFirstError() {\n if (pendingErrors.length) {\n throw pendingErrors.shift();\n }\n}\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nmodule.exports = asap;\nfunction asap(task) {\n var rawTask;\n if (freeTasks.length) {\n rawTask = freeTasks.pop();\n } else {\n rawTask = new RawTask();\n }\n rawTask.task = task;\n rawAsap(rawTask);\n}\n\n// We wrap tasks with recyclable task objects. A task object implements\n// `call`, just like a function.\nfunction RawTask() {\n this.task = null;\n}\n\n// The sole purpose of wrapping the task is to catch the exception and recycle\n// the task object after its single use.\nRawTask.prototype.call = function () {\n try {\n this.task.call();\n } catch (error) {\n if (asap.onerror) {\n // This hook exists purely for testing purposes.\n // Its name will be periodically randomized to break any code that\n // depends on its existence.\n asap.onerror(error);\n } else {\n // In a web browser, exceptions are not fatal. However, to avoid\n // slowing down the queue of pending tasks, we rethrow the error in a\n // lower priority turn.\n pendingErrors.push(error);\n requestErrorThrow();\n }\n } finally {\n this.task = null;\n freeTasks[freeTasks.length] = this;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/asap/browser-asap.js\n// module id = 68\n// module chunks = 0","\"use strict\";\n\n// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nmodule.exports = rawAsap;\nfunction rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n queue[queue.length] = task;\n}\n\nvar queue = [];\n// Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\nvar flushing = false;\n// `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\nvar requestFlush;\n// The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\nvar index = 0;\n// If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\nvar capacity = 1024;\n\n// The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index;\n // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n index = index + 1;\n queue[currentIndex].call();\n // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n queue.length -= index;\n index = 0;\n }\n }\n queue.length = 0;\n index = 0;\n flushing = false;\n}\n\n// `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nvar scope = typeof global !== \"undefined\" ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\n\n// MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\nif (typeof BrowserMutationObserver === \"function\") {\n requestFlush = makeRequestCallFromMutationObserver(flush);\n\n// MessageChannels are desirable because they give direct access to the HTML\n// task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n// 11-12, and in web workers in many engines.\n// Although message channels yield to any queued rendering and IO tasks, they\n// would be better than imposing the 4ms delay of timers.\n// However, they do not work reliably in Internet Explorer or Safari.\n\n// Internet Explorer 10 is the only browser that has setImmediate but does\n// not have MutationObservers.\n// Although setImmediate yields to the browser's renderer, it would be\n// preferrable to falling back to setTimeout since it does not have\n// the minimum 4ms penalty.\n// Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n// Desktop to a lesser extent) that renders both setImmediate and\n// MessageChannel useless for the purposes of ASAP.\n// https://github.com/kriskowal/q/issues/396\n\n// Timers are implemented universally.\n// We fall back to timers in workers in most engines, and in foreground\n// contexts in the following browsers.\n// However, note that even this simple case requires nuances to operate in a\n// broad spectrum of browsers.\n//\n// - Firefox 3-13\n// - Internet Explorer 6-9\n// - iPad Safari 4.3\n// - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n}\n\n// `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\nrawAsap.requestFlush = requestFlush;\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode(\"\");\n observer.observe(node, {characterData: true});\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0);\n // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n}\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer;\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/asap/browser-raw.js\n// module id = 69\n// module chunks = 0","'use strict';\n\nvar _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };\n\nvar _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };\n\nexports.__esModule = true;\n\nvar _isDisposable = require('./isDisposable');\n\nvar _isDisposable2 = _interopRequireWildcard(_isDisposable);\n\n/**\n * Represents a group of disposable resources that are disposed together.\n */\n\nvar CompositeDisposable = (function () {\n function CompositeDisposable() {\n for (var _len = arguments.length, disposables = Array(_len), _key = 0; _key < _len; _key++) {\n disposables[_key] = arguments[_key];\n }\n\n _classCallCheck(this, CompositeDisposable);\n\n if (Array.isArray(disposables[0]) && disposables.length === 1) {\n disposables = disposables[0];\n }\n\n for (var i = 0; i < disposables.length; i++) {\n if (!_isDisposable2['default'](disposables[i])) {\n throw new Error('Expected a disposable');\n }\n }\n\n this.disposables = disposables;\n this.isDisposed = false;\n }\n\n /**\n * Adds a disposable to the CompositeDisposable or disposes the disposable if the CompositeDisposable is disposed.\n * @param {Disposable} item Disposable to add.\n */\n\n CompositeDisposable.prototype.add = function add(item) {\n if (this.isDisposed) {\n item.dispose();\n } else {\n this.disposables.push(item);\n }\n };\n\n /**\n * Removes and disposes the first occurrence of a disposable from the CompositeDisposable.\n * @param {Disposable} item Disposable to remove.\n * @returns {Boolean} true if found; false otherwise.\n */\n\n CompositeDisposable.prototype.remove = function remove(item) {\n if (this.isDisposed) {\n return false;\n }\n\n var index = this.disposables.indexOf(item);\n if (index === -1) {\n return false;\n }\n\n this.disposables.splice(index, 1);\n item.dispose();\n return true;\n };\n\n /**\n * Disposes all disposables in the group and removes them from the group.\n */\n\n CompositeDisposable.prototype.dispose = function dispose() {\n if (this.isDisposed) {\n return;\n }\n\n var len = this.disposables.length;\n var currentDisposables = new Array(len);\n for (var i = 0; i < len; i++) {\n currentDisposables[i] = this.disposables[i];\n }\n\n this.isDisposed = true;\n this.disposables = [];\n this.length = 0;\n\n for (var i = 0; i < len; i++) {\n currentDisposables[i].dispose();\n }\n };\n\n return CompositeDisposable;\n})();\n\nexports['default'] = CompositeDisposable;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/disposables/modules/CompositeDisposable.js\n// module id = 70\n// module chunks = 0","\"use strict\";\n\nvar _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } };\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nexports.__esModule = true;\nvar noop = function noop() {};\n\n/**\n * The basic disposable.\n */\n\nvar Disposable = (function () {\n function Disposable(action) {\n _classCallCheck(this, Disposable);\n\n this.isDisposed = false;\n this.action = action || noop;\n }\n\n Disposable.prototype.dispose = function dispose() {\n if (!this.isDisposed) {\n this.action.call(null);\n this.isDisposed = true;\n }\n };\n\n _createClass(Disposable, null, [{\n key: \"empty\",\n enumerable: true,\n value: { dispose: noop }\n }]);\n\n return Disposable;\n})();\n\nexports[\"default\"] = Disposable;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/disposables/modules/Disposable.js\n// module id = 71\n// module chunks = 0","'use strict';\n\nvar _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };\n\nvar _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };\n\nexports.__esModule = true;\n\nvar _isDisposable = require('./isDisposable');\n\nvar _isDisposable2 = _interopRequireWildcard(_isDisposable);\n\nvar SerialDisposable = (function () {\n function SerialDisposable() {\n _classCallCheck(this, SerialDisposable);\n\n this.isDisposed = false;\n this.current = null;\n }\n\n /**\n * Gets the underlying disposable.\n * @return The underlying disposable.\n */\n\n SerialDisposable.prototype.getDisposable = function getDisposable() {\n return this.current;\n };\n\n /**\n * Sets the underlying disposable.\n * @param {Disposable} value The new underlying disposable.\n */\n\n SerialDisposable.prototype.setDisposable = function setDisposable() {\n var value = arguments[0] === undefined ? null : arguments[0];\n\n if (value != null && !_isDisposable2['default'](value)) {\n throw new Error('Expected either an empty value or a valid disposable');\n }\n\n var isDisposed = this.isDisposed;\n var previous = undefined;\n\n if (!isDisposed) {\n previous = this.current;\n this.current = value;\n }\n\n if (previous) {\n previous.dispose();\n }\n\n if (isDisposed && value) {\n value.dispose();\n }\n };\n\n /**\n * Disposes the underlying disposable as well as all future replacements.\n */\n\n SerialDisposable.prototype.dispose = function dispose() {\n if (this.isDisposed) {\n return;\n }\n\n this.isDisposed = true;\n var previous = this.current;\n this.current = null;\n\n if (previous) {\n previous.dispose();\n }\n };\n\n return SerialDisposable;\n})();\n\nexports['default'] = SerialDisposable;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/disposables/modules/SerialDisposable.js\n// module id = 72\n// module chunks = 0","'use strict';\n\nvar _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };\n\nexports.__esModule = true;\n\nvar _isDisposable2 = require('./isDisposable');\n\nvar _isDisposable3 = _interopRequireWildcard(_isDisposable2);\n\nexports.isDisposable = _isDisposable3['default'];\n\nvar _Disposable2 = require('./Disposable');\n\nvar _Disposable3 = _interopRequireWildcard(_Disposable2);\n\nexports.Disposable = _Disposable3['default'];\n\nvar _CompositeDisposable2 = require('./CompositeDisposable');\n\nvar _CompositeDisposable3 = _interopRequireWildcard(_CompositeDisposable2);\n\nexports.CompositeDisposable = _CompositeDisposable3['default'];\n\nvar _SerialDisposable2 = require('./SerialDisposable');\n\nvar _SerialDisposable3 = _interopRequireWildcard(_SerialDisposable2);\n\nexports.SerialDisposable = _SerialDisposable3['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/disposables/modules/index.js\n// module id = 73\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _createStore = require('redux/lib/createStore');\n\nvar _createStore2 = _interopRequireDefault(_createStore);\n\nvar _reducers = require('./reducers');\n\nvar _reducers2 = _interopRequireDefault(_reducers);\n\nvar _dragDrop = require('./actions/dragDrop');\n\nvar dragDropActions = _interopRequireWildcard(_dragDrop);\n\nvar _DragDropMonitor = require('./DragDropMonitor');\n\nvar _DragDropMonitor2 = _interopRequireDefault(_DragDropMonitor);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DragDropManager = function () {\n function DragDropManager(createBackend) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, DragDropManager);\n\n var store = (0, _createStore2.default)(_reducers2.default);\n this.context = context;\n this.store = store;\n this.monitor = new _DragDropMonitor2.default(store);\n this.registry = this.monitor.registry;\n this.backend = createBackend(this);\n\n store.subscribe(this.handleRefCountChange.bind(this));\n }\n\n _createClass(DragDropManager, [{\n key: 'handleRefCountChange',\n value: function handleRefCountChange() {\n var shouldSetUp = this.store.getState().refCount > 0;\n if (shouldSetUp && !this.isSetUp) {\n this.backend.setup();\n this.isSetUp = true;\n } else if (!shouldSetUp && this.isSetUp) {\n this.backend.teardown();\n this.isSetUp = false;\n }\n }\n }, {\n key: 'getContext',\n value: function getContext() {\n return this.context;\n }\n }, {\n key: 'getMonitor',\n value: function getMonitor() {\n return this.monitor;\n }\n }, {\n key: 'getBackend',\n value: function getBackend() {\n return this.backend;\n }\n }, {\n key: 'getRegistry',\n value: function getRegistry() {\n return this.registry;\n }\n }, {\n key: 'getActions',\n value: function getActions() {\n var manager = this;\n var dispatch = this.store.dispatch;\n\n\n function bindActionCreator(actionCreator) {\n return function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var action = actionCreator.apply(manager, args);\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n\n return Object.keys(dragDropActions).filter(function (key) {\n return typeof dragDropActions[key] === 'function';\n }).reduce(function (boundActions, key) {\n var action = dragDropActions[key];\n boundActions[key] = bindActionCreator(action); // eslint-disable-line no-param-reassign\n return boundActions;\n }, {});\n }\n }]);\n\n return DragDropManager;\n}();\n\nexports.default = DragDropManager;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/DragDropManager.js\n// module id = 74\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _isArray = require('lodash/isArray');\n\nvar _isArray2 = _interopRequireDefault(_isArray);\n\nvar _matchesType = require('./utils/matchesType');\n\nvar _matchesType2 = _interopRequireDefault(_matchesType);\n\nvar _HandlerRegistry = require('./HandlerRegistry');\n\nvar _HandlerRegistry2 = _interopRequireDefault(_HandlerRegistry);\n\nvar _dragOffset = require('./reducers/dragOffset');\n\nvar _dirtyHandlerIds = require('./reducers/dirtyHandlerIds');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DragDropMonitor = function () {\n function DragDropMonitor(store) {\n _classCallCheck(this, DragDropMonitor);\n\n this.store = store;\n this.registry = new _HandlerRegistry2.default(store);\n }\n\n _createClass(DragDropMonitor, [{\n key: 'subscribeToStateChange',\n value: function subscribeToStateChange(listener) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var handlerIds = options.handlerIds;\n\n (0, _invariant2.default)(typeof listener === 'function', 'listener must be a function.');\n (0, _invariant2.default)(typeof handlerIds === 'undefined' || (0, _isArray2.default)(handlerIds), 'handlerIds, when specified, must be an array of strings.');\n\n var prevStateId = this.store.getState().stateId;\n var handleChange = function handleChange() {\n var state = _this.store.getState();\n var currentStateId = state.stateId;\n try {\n var canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !(0, _dirtyHandlerIds.areDirty)(state.dirtyHandlerIds, handlerIds);\n\n if (!canSkipListener) {\n listener();\n }\n } finally {\n prevStateId = currentStateId;\n }\n };\n\n return this.store.subscribe(handleChange);\n }\n }, {\n key: 'subscribeToOffsetChange',\n value: function subscribeToOffsetChange(listener) {\n var _this2 = this;\n\n (0, _invariant2.default)(typeof listener === 'function', 'listener must be a function.');\n\n var previousState = this.store.getState().dragOffset;\n var handleChange = function handleChange() {\n var nextState = _this2.store.getState().dragOffset;\n if (nextState === previousState) {\n return;\n }\n\n previousState = nextState;\n listener();\n };\n\n return this.store.subscribe(handleChange);\n }\n }, {\n key: 'canDragSource',\n value: function canDragSource(sourceId) {\n var source = this.registry.getSource(sourceId);\n (0, _invariant2.default)(source, 'Expected to find a valid source.');\n\n if (this.isDragging()) {\n return false;\n }\n\n return source.canDrag(this, sourceId);\n }\n }, {\n key: 'canDropOnTarget',\n value: function canDropOnTarget(targetId) {\n var target = this.registry.getTarget(targetId);\n (0, _invariant2.default)(target, 'Expected to find a valid target.');\n\n if (!this.isDragging() || this.didDrop()) {\n return false;\n }\n\n var targetType = this.registry.getTargetType(targetId);\n var draggedItemType = this.getItemType();\n return (0, _matchesType2.default)(targetType, draggedItemType) && target.canDrop(this, targetId);\n }\n }, {\n key: 'isDragging',\n value: function isDragging() {\n return Boolean(this.getItemType());\n }\n }, {\n key: 'isDraggingSource',\n value: function isDraggingSource(sourceId) {\n var source = this.registry.getSource(sourceId, true);\n (0, _invariant2.default)(source, 'Expected to find a valid source.');\n\n if (!this.isDragging() || !this.isSourcePublic()) {\n return false;\n }\n\n var sourceType = this.registry.getSourceType(sourceId);\n var draggedItemType = this.getItemType();\n if (sourceType !== draggedItemType) {\n return false;\n }\n\n return source.isDragging(this, sourceId);\n }\n }, {\n key: 'isOverTarget',\n value: function isOverTarget(targetId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { shallow: false };\n var shallow = options.shallow;\n\n if (!this.isDragging()) {\n return false;\n }\n\n var targetType = this.registry.getTargetType(targetId);\n var draggedItemType = this.getItemType();\n if (!(0, _matchesType2.default)(targetType, draggedItemType)) {\n return false;\n }\n\n var targetIds = this.getTargetIds();\n if (!targetIds.length) {\n return false;\n }\n\n var index = targetIds.indexOf(targetId);\n if (shallow) {\n return index === targetIds.length - 1;\n } else {\n return index > -1;\n }\n }\n }, {\n key: 'getItemType',\n value: function getItemType() {\n return this.store.getState().dragOperation.itemType;\n }\n }, {\n key: 'getItem',\n value: function getItem() {\n return this.store.getState().dragOperation.item;\n }\n }, {\n key: 'getSourceId',\n value: function getSourceId() {\n return this.store.getState().dragOperation.sourceId;\n }\n }, {\n key: 'getTargetIds',\n value: function getTargetIds() {\n return this.store.getState().dragOperation.targetIds;\n }\n }, {\n key: 'getDropResult',\n value: function getDropResult() {\n return this.store.getState().dragOperation.dropResult;\n }\n }, {\n key: 'didDrop',\n value: function didDrop() {\n return this.store.getState().dragOperation.didDrop;\n }\n }, {\n key: 'isSourcePublic',\n value: function isSourcePublic() {\n return this.store.getState().dragOperation.isSourcePublic;\n }\n }, {\n key: 'getInitialClientOffset',\n value: function getInitialClientOffset() {\n return this.store.getState().dragOffset.initialClientOffset;\n }\n }, {\n key: 'getInitialSourceClientOffset',\n value: function getInitialSourceClientOffset() {\n return this.store.getState().dragOffset.initialSourceClientOffset;\n }\n }, {\n key: 'getClientOffset',\n value: function getClientOffset() {\n return this.store.getState().dragOffset.clientOffset;\n }\n }, {\n key: 'getSourceClientOffset',\n value: function getSourceClientOffset() {\n return (0, _dragOffset.getSourceClientOffset)(this.store.getState().dragOffset);\n }\n }, {\n key: 'getDifferenceFromInitialOffset',\n value: function getDifferenceFromInitialOffset() {\n return (0, _dragOffset.getDifferenceFromInitialOffset)(this.store.getState().dragOffset);\n }\n }]);\n\n return DragDropMonitor;\n}();\n\nexports.default = DragDropMonitor;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/DragDropMonitor.js\n// module id = 75\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DragSource = function () {\n function DragSource() {\n _classCallCheck(this, DragSource);\n }\n\n _createClass(DragSource, [{\n key: \"canDrag\",\n value: function canDrag() {\n return true;\n }\n }, {\n key: \"isDragging\",\n value: function isDragging(monitor, handle) {\n return handle === monitor.getSourceId();\n }\n }, {\n key: \"endDrag\",\n value: function endDrag() {}\n }]);\n\n return DragSource;\n}();\n\nexports.default = DragSource;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/DragSource.js\n// module id = 76\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DropTarget = function () {\n function DropTarget() {\n _classCallCheck(this, DropTarget);\n }\n\n _createClass(DropTarget, [{\n key: \"canDrop\",\n value: function canDrop() {\n return true;\n }\n }, {\n key: \"hover\",\n value: function hover() {}\n }, {\n key: \"drop\",\n value: function drop() {}\n }]);\n\n return DropTarget;\n}();\n\nexports.default = DropTarget;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/DropTarget.js\n// module id = 77\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _isArray = require('lodash/isArray');\n\nvar _isArray2 = _interopRequireDefault(_isArray);\n\nvar _asap = require('asap');\n\nvar _asap2 = _interopRequireDefault(_asap);\n\nvar _registry = require('./actions/registry');\n\nvar _getNextUniqueId = require('./utils/getNextUniqueId');\n\nvar _getNextUniqueId2 = _interopRequireDefault(_getNextUniqueId);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar HandlerRoles = {\n SOURCE: 'SOURCE',\n TARGET: 'TARGET'\n};\n\nfunction validateSourceContract(source) {\n (0, _invariant2.default)(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');\n (0, _invariant2.default)(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');\n (0, _invariant2.default)(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');\n}\n\nfunction validateTargetContract(target) {\n (0, _invariant2.default)(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');\n (0, _invariant2.default)(typeof target.hover === 'function', 'Expected hover to be a function.');\n (0, _invariant2.default)(typeof target.drop === 'function', 'Expected beginDrag to be a function.');\n}\n\nfunction validateType(type, allowArray) {\n if (allowArray && (0, _isArray2.default)(type)) {\n type.forEach(function (t) {\n return validateType(t, false);\n });\n return;\n }\n\n (0, _invariant2.default)(typeof type === 'string' || (typeof type === 'undefined' ? 'undefined' : _typeof(type)) === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');\n}\n\nfunction getNextHandlerId(role) {\n var id = (0, _getNextUniqueId2.default)().toString();\n switch (role) {\n case HandlerRoles.SOURCE:\n return 'S' + id;\n case HandlerRoles.TARGET:\n return 'T' + id;\n default:\n (0, _invariant2.default)(false, 'Unknown role: ' + role);\n }\n}\n\nfunction parseRoleFromHandlerId(handlerId) {\n switch (handlerId[0]) {\n case 'S':\n return HandlerRoles.SOURCE;\n case 'T':\n return HandlerRoles.TARGET;\n default:\n (0, _invariant2.default)(false, 'Cannot parse handler ID: ' + handlerId);\n }\n}\n\nvar HandlerRegistry = function () {\n function HandlerRegistry(store) {\n _classCallCheck(this, HandlerRegistry);\n\n this.store = store;\n\n this.types = {};\n this.handlers = {};\n\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n }\n\n _createClass(HandlerRegistry, [{\n key: 'addSource',\n value: function addSource(type, source) {\n validateType(type);\n validateSourceContract(source);\n\n var sourceId = this.addHandler(HandlerRoles.SOURCE, type, source);\n this.store.dispatch((0, _registry.addSource)(sourceId));\n return sourceId;\n }\n }, {\n key: 'addTarget',\n value: function addTarget(type, target) {\n validateType(type, true);\n validateTargetContract(target);\n\n var targetId = this.addHandler(HandlerRoles.TARGET, type, target);\n this.store.dispatch((0, _registry.addTarget)(targetId));\n return targetId;\n }\n }, {\n key: 'addHandler',\n value: function addHandler(role, type, handler) {\n var id = getNextHandlerId(role);\n this.types[id] = type;\n this.handlers[id] = handler;\n\n return id;\n }\n }, {\n key: 'containsHandler',\n value: function containsHandler(handler) {\n var _this = this;\n\n return Object.keys(this.handlers).some(function (key) {\n return _this.handlers[key] === handler;\n });\n }\n }, {\n key: 'getSource',\n value: function getSource(sourceId, includePinned) {\n (0, _invariant2.default)(this.isSourceId(sourceId), 'Expected a valid source ID.');\n\n var isPinned = includePinned && sourceId === this.pinnedSourceId;\n var source = isPinned ? this.pinnedSource : this.handlers[sourceId];\n\n return source;\n }\n }, {\n key: 'getTarget',\n value: function getTarget(targetId) {\n (0, _invariant2.default)(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.handlers[targetId];\n }\n }, {\n key: 'getSourceType',\n value: function getSourceType(sourceId) {\n (0, _invariant2.default)(this.isSourceId(sourceId), 'Expected a valid source ID.');\n return this.types[sourceId];\n }\n }, {\n key: 'getTargetType',\n value: function getTargetType(targetId) {\n (0, _invariant2.default)(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.types[targetId];\n }\n }, {\n key: 'isSourceId',\n value: function isSourceId(handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRoles.SOURCE;\n }\n }, {\n key: 'isTargetId',\n value: function isTargetId(handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRoles.TARGET;\n }\n }, {\n key: 'removeSource',\n value: function removeSource(sourceId) {\n var _this2 = this;\n\n (0, _invariant2.default)(this.getSource(sourceId), 'Expected an existing source.');\n this.store.dispatch((0, _registry.removeSource)(sourceId));\n\n (0, _asap2.default)(function () {\n delete _this2.handlers[sourceId];\n delete _this2.types[sourceId];\n });\n }\n }, {\n key: 'removeTarget',\n value: function removeTarget(targetId) {\n var _this3 = this;\n\n (0, _invariant2.default)(this.getTarget(targetId), 'Expected an existing target.');\n this.store.dispatch((0, _registry.removeTarget)(targetId));\n\n (0, _asap2.default)(function () {\n delete _this3.handlers[targetId];\n delete _this3.types[targetId];\n });\n }\n }, {\n key: 'pinSource',\n value: function pinSource(sourceId) {\n var source = this.getSource(sourceId);\n (0, _invariant2.default)(source, 'Expected an existing source.');\n\n this.pinnedSourceId = sourceId;\n this.pinnedSource = source;\n }\n }, {\n key: 'unpinSource',\n value: function unpinSource() {\n (0, _invariant2.default)(this.pinnedSource, 'No source is pinned at the time.');\n\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n }\n }]);\n\n return HandlerRegistry;\n}();\n\nexports.default = HandlerRegistry;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/HandlerRegistry.js\n// module id = 78\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nexports.default = createBackend;\n\nvar _noop = require('lodash/noop');\n\nvar _noop2 = _interopRequireDefault(_noop);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar TestBackend = function () {\n function TestBackend(manager) {\n _classCallCheck(this, TestBackend);\n\n this.actions = manager.getActions();\n }\n\n _createClass(TestBackend, [{\n key: 'setup',\n value: function setup() {\n this.didCallSetup = true;\n }\n }, {\n key: 'teardown',\n value: function teardown() {\n this.didCallTeardown = true;\n }\n }, {\n key: 'connectDragSource',\n value: function connectDragSource() {\n return _noop2.default;\n }\n }, {\n key: 'connectDragPreview',\n value: function connectDragPreview() {\n return _noop2.default;\n }\n }, {\n key: 'connectDropTarget',\n value: function connectDropTarget() {\n return _noop2.default;\n }\n }, {\n key: 'simulateBeginDrag',\n value: function simulateBeginDrag(sourceIds, options) {\n this.actions.beginDrag(sourceIds, options);\n }\n }, {\n key: 'simulatePublishDragSource',\n value: function simulatePublishDragSource() {\n this.actions.publishDragSource();\n }\n }, {\n key: 'simulateHover',\n value: function simulateHover(targetIds, options) {\n this.actions.hover(targetIds, options);\n }\n }, {\n key: 'simulateDrop',\n value: function simulateDrop() {\n this.actions.drop();\n }\n }, {\n key: 'simulateEndDrag',\n value: function simulateEndDrag() {\n this.actions.endDrag();\n }\n }]);\n\n return TestBackend;\n}();\n\nfunction createBackend(manager) {\n return new TestBackend(manager);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/backends/createTestBackend.js\n// module id = 79\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _DragDropManager = require('./DragDropManager');\n\nObject.defineProperty(exports, 'DragDropManager', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_DragDropManager).default;\n }\n});\n\nvar _DragSource = require('./DragSource');\n\nObject.defineProperty(exports, 'DragSource', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_DragSource).default;\n }\n});\n\nvar _DropTarget = require('./DropTarget');\n\nObject.defineProperty(exports, 'DropTarget', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_DropTarget).default;\n }\n});\n\nvar _createTestBackend = require('./backends/createTestBackend');\n\nObject.defineProperty(exports, 'createTestBackend', {\n enumerable: true,\n get: function get() {\n return _interopRequireDefault(_createTestBackend).default;\n }\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/index.js\n// module id = 80\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nexports.default = dragOperation;\n\nvar _without = require('lodash/without');\n\nvar _without2 = _interopRequireDefault(_without);\n\nvar _dragDrop = require('../actions/dragDrop');\n\nvar _registry = require('../actions/registry');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar initialState = {\n itemType: null,\n item: null,\n sourceId: null,\n targetIds: [],\n dropResult: null,\n didDrop: false,\n isSourcePublic: null\n};\n\nfunction dragOperation() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments[1];\n\n switch (action.type) {\n case _dragDrop.BEGIN_DRAG:\n return _extends({}, state, {\n itemType: action.itemType,\n item: action.item,\n sourceId: action.sourceId,\n isSourcePublic: action.isSourcePublic,\n dropResult: null,\n didDrop: false\n });\n case _dragDrop.PUBLISH_DRAG_SOURCE:\n return _extends({}, state, {\n isSourcePublic: true\n });\n case _dragDrop.HOVER:\n return _extends({}, state, {\n targetIds: action.targetIds\n });\n case _registry.REMOVE_TARGET:\n if (state.targetIds.indexOf(action.targetId) === -1) {\n return state;\n }\n return _extends({}, state, {\n targetIds: (0, _without2.default)(state.targetIds, action.targetId)\n });\n case _dragDrop.DROP:\n return _extends({}, state, {\n dropResult: action.dropResult,\n didDrop: true,\n targetIds: []\n });\n case _dragDrop.END_DRAG:\n return _extends({}, state, {\n itemType: null,\n item: null,\n sourceId: null,\n dropResult: null,\n didDrop: false,\n isSourcePublic: null,\n targetIds: []\n });\n default:\n return state;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/reducers/dragOperation.js\n// module id = 81\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = reduce;\n\nvar _dragOffset = require('./dragOffset');\n\nvar _dragOffset2 = _interopRequireDefault(_dragOffset);\n\nvar _dragOperation = require('./dragOperation');\n\nvar _dragOperation2 = _interopRequireDefault(_dragOperation);\n\nvar _refCount = require('./refCount');\n\nvar _refCount2 = _interopRequireDefault(_refCount);\n\nvar _dirtyHandlerIds = require('./dirtyHandlerIds');\n\nvar _dirtyHandlerIds2 = _interopRequireDefault(_dirtyHandlerIds);\n\nvar _stateId = require('./stateId');\n\nvar _stateId2 = _interopRequireDefault(_stateId);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n return {\n dirtyHandlerIds: (0, _dirtyHandlerIds2.default)(state.dirtyHandlerIds, action, state.dragOperation),\n dragOffset: (0, _dragOffset2.default)(state.dragOffset, action),\n refCount: (0, _refCount2.default)(state.refCount, action),\n dragOperation: (0, _dragOperation2.default)(state.dragOperation, action),\n stateId: (0, _stateId2.default)(state.stateId)\n };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/reducers/index.js\n// module id = 82\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = refCount;\n\nvar _registry = require('../actions/registry');\n\nfunction refCount() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var action = arguments[1];\n\n switch (action.type) {\n case _registry.ADD_SOURCE:\n case _registry.ADD_TARGET:\n return state + 1;\n case _registry.REMOVE_SOURCE:\n case _registry.REMOVE_TARGET:\n return state - 1;\n default:\n return state;\n }\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/reducers/refCount.js\n// module id = 83\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = stateId;\nfunction stateId() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n return state + 1;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/reducers/stateId.js\n// module id = 84\n// module chunks = 0","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getNextUniqueId;\nvar nextUniqueId = 0;\n\nfunction getNextUniqueId() {\n return nextUniqueId++;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/dnd-core/lib/utils/getNextUniqueId.js\n// module id = 85\n// module chunks = 0","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Hash.js\n// module id = 86\n// module chunks = 0","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_ListCache.js\n// module id = 87\n// module chunks = 0","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Map.js\n// module id = 88\n// module chunks = 0","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_Set.js\n// module id = 89\n// module chunks = 0","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayFilter.js\n// module id = 90\n// module chunks = 0","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayLikeKeys.js\n// module id = 91\n// module chunks = 0","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_arrayPush.js\n// module id = 92\n// module chunks = 0","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_assignValue.js\n// module id = 93\n// module chunks = 0","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseFindIndex.js\n// module id = 94\n// module chunks = 0","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIndexOf.js\n// module id = 95\n// module chunks = 0","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIntersection.js\n// module id = 96\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsArguments.js\n// module id = 97\n// module chunks = 0","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsNaN.js\n// module id = 98\n// module chunks = 0","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsNative.js\n// module id = 99\n// module chunks = 0","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseIsTypedArray.js\n// module id = 100\n// module chunks = 0","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseKeysIn.js\n// module id = 101\n// module chunks = 0","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseSetToString.js\n// module id = 102\n// module chunks = 0","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseTimes.js\n// module id = 103\n// module chunks = 0","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseUniq = require('./_baseUniq');\n\n/**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\nfunction baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n}\n\nmodule.exports = baseXor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_baseXor.js\n// module id = 104\n// module chunks = 0","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_castArrayLikeObject.js\n// module id = 105\n// module chunks = 0","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_copyObject.js\n// module id = 106\n// module chunks = 0","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_coreJsData.js\n// module id = 107\n// module chunks = 0","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createAssigner.js\n// module id = 108\n// module chunks = 0","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_createSet.js\n// module id = 109\n// module chunks = 0","var eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\nfunction customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n}\n\nmodule.exports = customDefaultsAssignIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_customDefaultsAssignIn.js\n// module id = 110\n// module chunks = 0","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getPrototype.js\n// module id = 111\n// module chunks = 0","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getRawTag.js\n// module id = 112\n// module chunks = 0","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_getValue.js\n// module id = 113\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashClear.js\n// module id = 114\n// module chunks = 0","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashDelete.js\n// module id = 115\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashGet.js\n// module id = 116\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashHas.js\n// module id = 117\n// module chunks = 0","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_hashSet.js\n// module id = 118\n// module chunks = 0","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isFlattenable.js\n// module id = 119\n// module chunks = 0","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isIterateeCall.js\n// module id = 120\n// module chunks = 0","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isKeyable.js\n// module id = 121\n// module chunks = 0","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isMasked.js\n// module id = 122\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_isPrototype.js\n// module id = 123\n// module chunks = 0","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheClear.js\n// module id = 124\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheDelete.js\n// module id = 125\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheGet.js\n// module id = 126\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheHas.js\n// module id = 127\n// module chunks = 0","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_listCacheSet.js\n// module id = 128\n// module chunks = 0","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheClear.js\n// module id = 129\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheDelete.js\n// module id = 130\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheGet.js\n// module id = 131\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheHas.js\n// module id = 132\n// module chunks = 0","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_mapCacheSet.js\n// module id = 133\n// module chunks = 0","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nativeKeysIn.js\n// module id = 134\n// module chunks = 0","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_nodeUtil.js\n// module id = 135\n// module chunks = 0","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_objectToString.js\n// module id = 136\n// module chunks = 0","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_overArg.js\n// module id = 137\n// module chunks = 0","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_overRest.js\n// module id = 138\n// module chunks = 0","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setCacheAdd.js\n// module id = 139\n// module chunks = 0","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setCacheHas.js\n// module id = 140\n// module chunks = 0","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_setToString.js\n// module id = 141\n// module chunks = 0","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_shortOut.js\n// module id = 142\n// module chunks = 0","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_strictIndexOf.js\n// module id = 143\n// module chunks = 0","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/_toSource.js\n// module id = 144\n// module chunks = 0","var copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n keysIn = require('./keysIn');\n\n/**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n});\n\nmodule.exports = assignInWith;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/assignInWith.js\n// module id = 145\n// module chunks = 0","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/constant.js\n// module id = 146\n// module chunks = 0","var apply = require('./_apply'),\n assignInWith = require('./assignInWith'),\n baseRest = require('./_baseRest'),\n customDefaultsAssignIn = require('./_customDefaultsAssignIn');\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(args) {\n args.push(undefined, customDefaultsAssignIn);\n return apply(assignInWith, undefined, args);\n});\n\nmodule.exports = defaults;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/defaults.js\n// module id = 147\n// module chunks = 0","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/intersection.js\n// module id = 148\n// module chunks = 0","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isBuffer.js\n// module id = 149\n// module chunks = 0","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/isTypedArray.js\n// module id = 150\n// module chunks = 0","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/keysIn.js\n// module id = 151\n// module chunks = 0","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/memoize.js\n// module id = 152\n// module chunks = 0","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/stubFalse.js\n// module id = 153\n// module chunks = 0","var baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n baseUniq = require('./_baseUniq'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nmodule.exports = union;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/union.js\n// module id = 154\n// module chunks = 0","var arrayFilter = require('./_arrayFilter'),\n baseRest = require('./_baseRest'),\n baseXor = require('./_baseXor'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\nvar xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n});\n\nmodule.exports = xor;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/lodash/xor.js\n// module id = 155\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar _lodashUnion = require('lodash/union');\n\nvar _lodashUnion2 = _interopRequireDefault(_lodashUnion);\n\nvar _lodashWithout = require('lodash/without');\n\nvar _lodashWithout2 = _interopRequireDefault(_lodashWithout);\n\nvar EnterLeaveCounter = (function () {\n function EnterLeaveCounter() {\n _classCallCheck(this, EnterLeaveCounter);\n\n this.entered = [];\n }\n\n EnterLeaveCounter.prototype.enter = function enter(enteringNode) {\n var previousLength = this.entered.length;\n\n this.entered = _lodashUnion2['default'](this.entered.filter(function (node) {\n return document.documentElement.contains(node) && (!node.contains || node.contains(enteringNode));\n }), [enteringNode]);\n\n return previousLength === 0 && this.entered.length > 0;\n };\n\n EnterLeaveCounter.prototype.leave = function leave(leavingNode) {\n var previousLength = this.entered.length;\n\n this.entered = _lodashWithout2['default'](this.entered.filter(function (node) {\n return document.documentElement.contains(node);\n }), leavingNode);\n\n return previousLength > 0 && this.entered.length === 0;\n };\n\n EnterLeaveCounter.prototype.reset = function reset() {\n this.entered = [];\n };\n\n return EnterLeaveCounter;\n})();\n\nexports['default'] = EnterLeaveCounter;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd-html5-backend/lib/EnterLeaveCounter.js\n// module id = 156\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar _lodashDefaults = require('lodash/defaults');\n\nvar _lodashDefaults2 = _interopRequireDefault(_lodashDefaults);\n\nvar _shallowEqual = require('./shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nvar _EnterLeaveCounter = require('./EnterLeaveCounter');\n\nvar _EnterLeaveCounter2 = _interopRequireDefault(_EnterLeaveCounter);\n\nvar _BrowserDetector = require('./BrowserDetector');\n\nvar _OffsetUtils = require('./OffsetUtils');\n\nvar _NativeDragSources = require('./NativeDragSources');\n\nvar _NativeTypes = require('./NativeTypes');\n\nvar NativeTypes = _interopRequireWildcard(_NativeTypes);\n\nvar HTML5Backend = (function () {\n function HTML5Backend(manager) {\n _classCallCheck(this, HTML5Backend);\n\n this.actions = manager.getActions();\n this.monitor = manager.getMonitor();\n this.registry = manager.getRegistry();\n\n this.sourcePreviewNodes = {};\n this.sourcePreviewNodeOptions = {};\n this.sourceNodes = {};\n this.sourceNodeOptions = {};\n this.enterLeaveCounter = new _EnterLeaveCounter2['default']();\n\n this.getSourceClientOffset = this.getSourceClientOffset.bind(this);\n this.handleTopDragStart = this.handleTopDragStart.bind(this);\n this.handleTopDragStartCapture = this.handleTopDragStartCapture.bind(this);\n this.handleTopDragEndCapture = this.handleTopDragEndCapture.bind(this);\n this.handleTopDragEnter = this.handleTopDragEnter.bind(this);\n this.handleTopDragEnterCapture = this.handleTopDragEnterCapture.bind(this);\n this.handleTopDragLeaveCapture = this.handleTopDragLeaveCapture.bind(this);\n this.handleTopDragOver = this.handleTopDragOver.bind(this);\n this.handleTopDragOverCapture = this.handleTopDragOverCapture.bind(this);\n this.handleTopDrop = this.handleTopDrop.bind(this);\n this.handleTopDropCapture = this.handleTopDropCapture.bind(this);\n this.handleSelectStart = this.handleSelectStart.bind(this);\n this.endDragIfSourceWasRemovedFromDOM = this.endDragIfSourceWasRemovedFromDOM.bind(this);\n this.endDragNativeItem = this.endDragNativeItem.bind(this);\n }\n\n HTML5Backend.prototype.setup = function setup() {\n if (typeof window === 'undefined') {\n return;\n }\n\n if (this.constructor.isSetUp) {\n throw new Error('Cannot have two HTML5 backends at the same time.');\n }\n this.constructor.isSetUp = true;\n this.addEventListeners(window);\n };\n\n HTML5Backend.prototype.teardown = function teardown() {\n if (typeof window === 'undefined') {\n return;\n }\n\n this.constructor.isSetUp = false;\n this.removeEventListeners(window);\n this.clearCurrentDragSourceNode();\n };\n\n HTML5Backend.prototype.addEventListeners = function addEventListeners(target) {\n target.addEventListener('dragstart', this.handleTopDragStart);\n target.addEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.addEventListener('dragend', this.handleTopDragEndCapture, true);\n target.addEventListener('dragenter', this.handleTopDragEnter);\n target.addEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.addEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.addEventListener('dragover', this.handleTopDragOver);\n target.addEventListener('dragover', this.handleTopDragOverCapture, true);\n target.addEventListener('drop', this.handleTopDrop);\n target.addEventListener('drop', this.handleTopDropCapture, true);\n };\n\n HTML5Backend.prototype.removeEventListeners = function removeEventListeners(target) {\n target.removeEventListener('dragstart', this.handleTopDragStart);\n target.removeEventListener('dragstart', this.handleTopDragStartCapture, true);\n target.removeEventListener('dragend', this.handleTopDragEndCapture, true);\n target.removeEventListener('dragenter', this.handleTopDragEnter);\n target.removeEventListener('dragenter', this.handleTopDragEnterCapture, true);\n target.removeEventListener('dragleave', this.handleTopDragLeaveCapture, true);\n target.removeEventListener('dragover', this.handleTopDragOver);\n target.removeEventListener('dragover', this.handleTopDragOverCapture, true);\n target.removeEventListener('drop', this.handleTopDrop);\n target.removeEventListener('drop', this.handleTopDropCapture, true);\n };\n\n HTML5Backend.prototype.connectDragPreview = function connectDragPreview(sourceId, node, options) {\n var _this = this;\n\n this.sourcePreviewNodeOptions[sourceId] = options;\n this.sourcePreviewNodes[sourceId] = node;\n\n return function () {\n delete _this.sourcePreviewNodes[sourceId];\n delete _this.sourcePreviewNodeOptions[sourceId];\n };\n };\n\n HTML5Backend.prototype.connectDragSource = function connectDragSource(sourceId, node, options) {\n var _this2 = this;\n\n this.sourceNodes[sourceId] = node;\n this.sourceNodeOptions[sourceId] = options;\n\n var handleDragStart = function handleDragStart(e) {\n return _this2.handleDragStart(e, sourceId);\n };\n var handleSelectStart = function handleSelectStart(e) {\n return _this2.handleSelectStart(e, sourceId);\n };\n\n node.setAttribute('draggable', true);\n node.addEventListener('dragstart', handleDragStart);\n node.addEventListener('selectstart', handleSelectStart);\n\n return function () {\n delete _this2.sourceNodes[sourceId];\n delete _this2.sourceNodeOptions[sourceId];\n\n node.removeEventListener('dragstart', handleDragStart);\n node.removeEventListener('selectstart', handleSelectStart);\n node.setAttribute('draggable', false);\n };\n };\n\n HTML5Backend.prototype.connectDropTarget = function connectDropTarget(targetId, node) {\n var _this3 = this;\n\n var handleDragEnter = function handleDragEnter(e) {\n return _this3.handleDragEnter(e, targetId);\n };\n var handleDragOver = function handleDragOver(e) {\n return _this3.handleDragOver(e, targetId);\n };\n var handleDrop = function handleDrop(e) {\n return _this3.handleDrop(e, targetId);\n };\n\n node.addEventListener('dragenter', handleDragEnter);\n node.addEventListener('dragover', handleDragOver);\n node.addEventListener('drop', handleDrop);\n\n return function () {\n node.removeEventListener('dragenter', handleDragEnter);\n node.removeEventListener('dragover', handleDragOver);\n node.removeEventListener('drop', handleDrop);\n };\n };\n\n HTML5Backend.prototype.getCurrentSourceNodeOptions = function getCurrentSourceNodeOptions() {\n var sourceId = this.monitor.getSourceId();\n var sourceNodeOptions = this.sourceNodeOptions[sourceId];\n\n return _lodashDefaults2['default'](sourceNodeOptions || {}, {\n dropEffect: 'move'\n });\n };\n\n HTML5Backend.prototype.getCurrentDropEffect = function getCurrentDropEffect() {\n if (this.isDraggingNativeItem()) {\n // It makes more sense to default to 'copy' for native resources\n return 'copy';\n }\n\n return this.getCurrentSourceNodeOptions().dropEffect;\n };\n\n HTML5Backend.prototype.getCurrentSourcePreviewNodeOptions = function getCurrentSourcePreviewNodeOptions() {\n var sourceId = this.monitor.getSourceId();\n var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions[sourceId];\n\n return _lodashDefaults2['default'](sourcePreviewNodeOptions || {}, {\n anchorX: 0.5,\n anchorY: 0.5,\n captureDraggingState: false\n });\n };\n\n HTML5Backend.prototype.getSourceClientOffset = function getSourceClientOffset(sourceId) {\n return _OffsetUtils.getNodeClientOffset(this.sourceNodes[sourceId]);\n };\n\n HTML5Backend.prototype.isDraggingNativeItem = function isDraggingNativeItem() {\n var itemType = this.monitor.getItemType();\n return Object.keys(NativeTypes).some(function (key) {\n return NativeTypes[key] === itemType;\n });\n };\n\n HTML5Backend.prototype.beginDragNativeItem = function beginDragNativeItem(type) {\n this.clearCurrentDragSourceNode();\n\n var SourceType = _NativeDragSources.createNativeDragSource(type);\n this.currentNativeSource = new SourceType();\n this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);\n this.actions.beginDrag([this.currentNativeHandle]);\n\n // On Firefox, if mousemove fires, the drag is over but browser failed to tell us.\n // This is not true for other browsers.\n if (_BrowserDetector.isFirefox()) {\n window.addEventListener('mousemove', this.endDragNativeItem, true);\n }\n };\n\n HTML5Backend.prototype.endDragNativeItem = function endDragNativeItem() {\n if (!this.isDraggingNativeItem()) {\n return;\n }\n\n if (_BrowserDetector.isFirefox()) {\n window.removeEventListener('mousemove', this.endDragNativeItem, true);\n }\n\n this.actions.endDrag();\n this.registry.removeSource(this.currentNativeHandle);\n this.currentNativeHandle = null;\n this.currentNativeSource = null;\n };\n\n HTML5Backend.prototype.endDragIfSourceWasRemovedFromDOM = function endDragIfSourceWasRemovedFromDOM() {\n var node = this.currentDragSourceNode;\n if (document.body.contains(node)) {\n return;\n }\n\n if (this.clearCurrentDragSourceNode()) {\n this.actions.endDrag();\n }\n };\n\n HTML5Backend.prototype.setCurrentDragSourceNode = function setCurrentDragSourceNode(node) {\n this.clearCurrentDragSourceNode();\n this.currentDragSourceNode = node;\n this.currentDragSourceNodeOffset = _OffsetUtils.getNodeClientOffset(node);\n this.currentDragSourceNodeOffsetChanged = false;\n\n // Receiving a mouse event in the middle of a dragging operation\n // means it has ended and the drag source node disappeared from DOM,\n // so the browser didn't dispatch the dragend event.\n window.addEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n };\n\n HTML5Backend.prototype.clearCurrentDragSourceNode = function clearCurrentDragSourceNode() {\n if (this.currentDragSourceNode) {\n this.currentDragSourceNode = null;\n this.currentDragSourceNodeOffset = null;\n this.currentDragSourceNodeOffsetChanged = false;\n window.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n return true;\n }\n\n return false;\n };\n\n HTML5Backend.prototype.checkIfCurrentDragSourceRectChanged = function checkIfCurrentDragSourceRectChanged() {\n var node = this.currentDragSourceNode;\n if (!node) {\n return false;\n }\n\n if (this.currentDragSourceNodeOffsetChanged) {\n return true;\n }\n\n this.currentDragSourceNodeOffsetChanged = !_shallowEqual2['default'](_OffsetUtils.getNodeClientOffset(node), this.currentDragSourceNodeOffset);\n\n return this.currentDragSourceNodeOffsetChanged;\n };\n\n HTML5Backend.prototype.handleTopDragStartCapture = function handleTopDragStartCapture() {\n this.clearCurrentDragSourceNode();\n this.dragStartSourceIds = [];\n };\n\n HTML5Backend.prototype.handleDragStart = function handleDragStart(e, sourceId) {\n this.dragStartSourceIds.unshift(sourceId);\n };\n\n HTML5Backend.prototype.handleTopDragStart = function handleTopDragStart(e) {\n var _this4 = this;\n\n var dragStartSourceIds = this.dragStartSourceIds;\n\n this.dragStartSourceIds = null;\n\n var clientOffset = _OffsetUtils.getEventClientOffset(e);\n\n // Don't publish the source just yet (see why below)\n this.actions.beginDrag(dragStartSourceIds, {\n publishSource: false,\n getSourceClientOffset: this.getSourceClientOffset,\n clientOffset: clientOffset\n });\n\n var dataTransfer = e.dataTransfer;\n\n var nativeType = _NativeDragSources.matchNativeItemType(dataTransfer);\n\n if (this.monitor.isDragging()) {\n if (typeof dataTransfer.setDragImage === 'function') {\n // Use custom drag image if user specifies it.\n // If child drag source refuses drag but parent agrees,\n // use parent's node as drag image. Neither works in IE though.\n var sourceId = this.monitor.getSourceId();\n var sourceNode = this.sourceNodes[sourceId];\n var dragPreview = this.sourcePreviewNodes[sourceId] || sourceNode;\n\n var _getCurrentSourcePreviewNodeOptions = this.getCurrentSourcePreviewNodeOptions();\n\n var anchorX = _getCurrentSourcePreviewNodeOptions.anchorX;\n var anchorY = _getCurrentSourcePreviewNodeOptions.anchorY;\n\n var anchorPoint = { anchorX: anchorX, anchorY: anchorY };\n var dragPreviewOffset = _OffsetUtils.getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint);\n dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);\n }\n\n try {\n // Firefox won't drag without setting data\n dataTransfer.setData('application/json', {});\n } catch (err) {}\n // IE doesn't support MIME types in setData\n\n // Store drag source node so we can check whether\n // it is removed from DOM and trigger endDrag manually.\n this.setCurrentDragSourceNode(e.target);\n\n // Now we are ready to publish the drag source.. or are we not?\n\n var _getCurrentSourcePreviewNodeOptions2 = this.getCurrentSourcePreviewNodeOptions();\n\n var captureDraggingState = _getCurrentSourcePreviewNodeOptions2.captureDraggingState;\n\n if (!captureDraggingState) {\n // Usually we want to publish it in the next tick so that browser\n // is able to screenshot the current (not yet dragging) state.\n //\n // It also neatly avoids a situation where render() returns null\n // in the same tick for the source element, and browser freaks out.\n setTimeout(function () {\n return _this4.actions.publishDragSource();\n });\n } else {\n // In some cases the user may want to override this behavior, e.g.\n // to work around IE not supporting custom drag previews.\n //\n // When using a custom drag layer, the only way to prevent\n // the default drag preview from drawing in IE is to screenshot\n // the dragging state in which the node itself has zero opacity\n // and height. In this case, though, returning null from render()\n // will abruptly end the dragging, which is not obvious.\n //\n // This is the reason such behavior is strictly opt-in.\n this.actions.publishDragSource();\n }\n } else if (nativeType) {\n // A native item (such as URL) dragged from inside the document\n this.beginDragNativeItem(nativeType);\n } else if (!dataTransfer.types && (!e.target.hasAttribute || !e.target.hasAttribute('draggable'))) {\n // Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n // Just let it drag. It's a native type (URL or text) and will be picked up in dragenter handler.\n return;\n } else {\n // If by this time no drag source reacted, tell browser not to drag.\n e.preventDefault();\n }\n };\n\n HTML5Backend.prototype.handleTopDragEndCapture = function handleTopDragEndCapture() {\n if (this.clearCurrentDragSourceNode()) {\n // Firefox can dispatch this event in an infinite loop\n // if dragend handler does something like showing an alert.\n // Only proceed if we have not handled it already.\n this.actions.endDrag();\n }\n };\n\n HTML5Backend.prototype.handleTopDragEnterCapture = function handleTopDragEnterCapture(e) {\n this.dragEnterTargetIds = [];\n\n var isFirstEnter = this.enterLeaveCounter.enter(e.target);\n if (!isFirstEnter || this.monitor.isDragging()) {\n return;\n }\n\n var dataTransfer = e.dataTransfer;\n\n var nativeType = _NativeDragSources.matchNativeItemType(dataTransfer);\n\n if (nativeType) {\n // A native item (such as file or URL) dragged from outside the document\n this.beginDragNativeItem(nativeType);\n }\n };\n\n HTML5Backend.prototype.handleDragEnter = function handleDragEnter(e, targetId) {\n this.dragEnterTargetIds.unshift(targetId);\n };\n\n HTML5Backend.prototype.handleTopDragEnter = function handleTopDragEnter(e) {\n var _this5 = this;\n\n var dragEnterTargetIds = this.dragEnterTargetIds;\n\n this.dragEnterTargetIds = [];\n\n if (!this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n return;\n }\n\n if (!_BrowserDetector.isFirefox()) {\n // Don't emit hover in `dragenter` on Firefox due to an edge case.\n // If the target changes position as the result of `dragenter`, Firefox\n // will still happily dispatch `dragover` despite target being no longer\n // there. The easy solution is to only fire `hover` in `dragover` on FF.\n this.actions.hover(dragEnterTargetIds, {\n clientOffset: _OffsetUtils.getEventClientOffset(e)\n });\n }\n\n var canDrop = dragEnterTargetIds.some(function (targetId) {\n return _this5.monitor.canDropOnTarget(targetId);\n });\n\n if (canDrop) {\n // IE requires this to fire dragover events\n e.preventDefault();\n e.dataTransfer.dropEffect = this.getCurrentDropEffect();\n }\n };\n\n HTML5Backend.prototype.handleTopDragOverCapture = function handleTopDragOverCapture() {\n this.dragOverTargetIds = [];\n };\n\n HTML5Backend.prototype.handleDragOver = function handleDragOver(e, targetId) {\n this.dragOverTargetIds.unshift(targetId);\n };\n\n HTML5Backend.prototype.handleTopDragOver = function handleTopDragOver(e) {\n var _this6 = this;\n\n var dragOverTargetIds = this.dragOverTargetIds;\n\n this.dragOverTargetIds = [];\n\n if (!this.monitor.isDragging()) {\n // This is probably a native item type we don't understand.\n // Prevent default \"drop and blow away the whole document\" action.\n e.preventDefault();\n e.dataTransfer.dropEffect = 'none';\n return;\n }\n\n this.actions.hover(dragOverTargetIds, {\n clientOffset: _OffsetUtils.getEventClientOffset(e)\n });\n\n var canDrop = dragOverTargetIds.some(function (targetId) {\n return _this6.monitor.canDropOnTarget(targetId);\n });\n\n if (canDrop) {\n // Show user-specified drop effect.\n e.preventDefault();\n e.dataTransfer.dropEffect = this.getCurrentDropEffect();\n } else if (this.isDraggingNativeItem()) {\n // Don't show a nice cursor but still prevent default\n // \"drop and blow away the whole document\" action.\n e.preventDefault();\n e.dataTransfer.dropEffect = 'none';\n } else if (this.checkIfCurrentDragSourceRectChanged()) {\n // Prevent animating to incorrect position.\n // Drop effect must be other than 'none' to prevent animation.\n e.preventDefault();\n e.dataTransfer.dropEffect = 'move';\n }\n };\n\n HTML5Backend.prototype.handleTopDragLeaveCapture = function handleTopDragLeaveCapture(e) {\n if (this.isDraggingNativeItem()) {\n e.preventDefault();\n }\n\n var isLastLeave = this.enterLeaveCounter.leave(e.target);\n if (!isLastLeave) {\n return;\n }\n\n if (this.isDraggingNativeItem()) {\n this.endDragNativeItem();\n }\n };\n\n HTML5Backend.prototype.handleTopDropCapture = function handleTopDropCapture(e) {\n this.dropTargetIds = [];\n e.preventDefault();\n\n if (this.isDraggingNativeItem()) {\n this.currentNativeSource.mutateItemByReadingDataTransfer(e.dataTransfer);\n }\n\n this.enterLeaveCounter.reset();\n };\n\n HTML5Backend.prototype.handleDrop = function handleDrop(e, targetId) {\n this.dropTargetIds.unshift(targetId);\n };\n\n HTML5Backend.prototype.handleTopDrop = function handleTopDrop(e) {\n var dropTargetIds = this.dropTargetIds;\n\n this.dropTargetIds = [];\n\n this.actions.hover(dropTargetIds, {\n clientOffset: _OffsetUtils.getEventClientOffset(e)\n });\n this.actions.drop();\n\n if (this.isDraggingNativeItem()) {\n this.endDragNativeItem();\n } else {\n this.endDragIfSourceWasRemovedFromDOM();\n }\n };\n\n HTML5Backend.prototype.handleSelectStart = function handleSelectStart(e) {\n var target = e.target;\n\n // Only IE requires us to explicitly say\n // we want drag drop operation to start\n if (typeof target.dragDrop !== 'function') {\n return;\n }\n\n // Inputs and textareas should be selectable\n if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return;\n }\n\n // For other targets, ask IE\n // to enable drag and drop\n e.preventDefault();\n target.dragDrop();\n };\n\n return HTML5Backend;\n})();\n\nexports['default'] = HTML5Backend;\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd-html5-backend/lib/HTML5Backend.js\n// module id = 157\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar MonotonicInterpolant = (function () {\n function MonotonicInterpolant(xs, ys) {\n _classCallCheck(this, MonotonicInterpolant);\n\n var length = xs.length;\n\n // Rearrange xs and ys so that xs is sorted\n var indexes = [];\n for (var i = 0; i < length; i++) {\n indexes.push(i);\n }\n indexes.sort(function (a, b) {\n return xs[a] < xs[b] ? -1 : 1;\n });\n\n // Get consecutive differences and slopes\n var dys = [];\n var dxs = [];\n var ms = [];\n var dx = undefined;\n var dy = undefined;\n for (var i = 0; i < length - 1; i++) {\n dx = xs[i + 1] - xs[i];\n dy = ys[i + 1] - ys[i];\n dxs.push(dx);\n dys.push(dy);\n ms.push(dy / dx);\n }\n\n // Get degree-1 coefficients\n var c1s = [ms[0]];\n for (var i = 0; i < dxs.length - 1; i++) {\n var _m = ms[i];\n var mNext = ms[i + 1];\n if (_m * mNext <= 0) {\n c1s.push(0);\n } else {\n dx = dxs[i];\n var dxNext = dxs[i + 1];\n var common = dx + dxNext;\n c1s.push(3 * common / ((common + dxNext) / _m + (common + dx) / mNext));\n }\n }\n c1s.push(ms[ms.length - 1]);\n\n // Get degree-2 and degree-3 coefficients\n var c2s = [];\n var c3s = [];\n var m = undefined;\n for (var i = 0; i < c1s.length - 1; i++) {\n m = ms[i];\n var c1 = c1s[i];\n var invDx = 1 / dxs[i];\n var common = c1 + c1s[i + 1] - m - m;\n c2s.push((m - c1 - common) * invDx);\n c3s.push(common * invDx * invDx);\n }\n\n this.xs = xs;\n this.ys = ys;\n this.c1s = c1s;\n this.c2s = c2s;\n this.c3s = c3s;\n }\n\n MonotonicInterpolant.prototype.interpolate = function interpolate(x) {\n var xs = this.xs;\n var ys = this.ys;\n var c1s = this.c1s;\n var c2s = this.c2s;\n var c3s = this.c3s;\n\n // The rightmost point in the dataset should give an exact result\n var i = xs.length - 1;\n if (x === xs[i]) {\n return ys[i];\n }\n\n // Search for the interval x is in, returning the corresponding y if x is one of the original xs\n var low = 0;\n var high = c3s.length - 1;\n var mid = undefined;\n while (low <= high) {\n mid = Math.floor(0.5 * (low + high));\n var xHere = xs[mid];\n if (xHere < x) {\n low = mid + 1;\n } else if (xHere > x) {\n high = mid - 1;\n } else {\n return ys[mid];\n }\n }\n i = Math.max(0, high);\n\n // Interpolate\n var diff = x - xs[i];\n var diffSq = diff * diff;\n return ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq;\n };\n\n return MonotonicInterpolant;\n})();\n\nexports[\"default\"] = MonotonicInterpolant;\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd-html5-backend/lib/MonotonicInterpolant.js\n// module id = 158\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _nativeTypesConfig;\n\nexports.createNativeDragSource = createNativeDragSource;\nexports.matchNativeItemType = matchNativeItemType;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar _NativeTypes = require('./NativeTypes');\n\nvar NativeTypes = _interopRequireWildcard(_NativeTypes);\n\nfunction getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {\n var result = typesToTry.reduce(function (resultSoFar, typeToTry) {\n return resultSoFar || dataTransfer.getData(typeToTry);\n }, null);\n\n return result != null ? // eslint-disable-line eqeqeq\n result : defaultValue;\n}\n\nvar nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, {\n exposeProperty: 'files',\n matchesTypes: ['Files'],\n getData: function getData(dataTransfer) {\n return Array.prototype.slice.call(dataTransfer.files);\n }\n}), _defineProperty(_nativeTypesConfig, NativeTypes.URL, {\n exposeProperty: 'urls',\n matchesTypes: ['Url', 'text/uri-list'],\n getData: function getData(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n');\n }\n}), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, {\n exposeProperty: 'text',\n matchesTypes: ['Text', 'text/plain'],\n getData: function getData(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '');\n }\n}), _nativeTypesConfig);\n\nfunction createNativeDragSource(type) {\n var _nativeTypesConfig$type = nativeTypesConfig[type];\n var exposeProperty = _nativeTypesConfig$type.exposeProperty;\n var matchesTypes = _nativeTypesConfig$type.matchesTypes;\n var getData = _nativeTypesConfig$type.getData;\n\n return (function () {\n function NativeDragSource() {\n _classCallCheck(this, NativeDragSource);\n\n this.item = Object.defineProperties({}, _defineProperty({}, exposeProperty, {\n get: function get() {\n console.warn( // eslint-disable-line no-console\n 'Browser doesn\\'t allow reading \"' + exposeProperty + '\" until the drop event.');\n return null;\n },\n configurable: true,\n enumerable: true\n }));\n }\n\n NativeDragSource.prototype.mutateItemByReadingDataTransfer = function mutateItemByReadingDataTransfer(dataTransfer) {\n delete this.item[exposeProperty];\n this.item[exposeProperty] = getData(dataTransfer, matchesTypes);\n };\n\n NativeDragSource.prototype.canDrag = function canDrag() {\n return true;\n };\n\n NativeDragSource.prototype.beginDrag = function beginDrag() {\n return this.item;\n };\n\n NativeDragSource.prototype.isDragging = function isDragging(monitor, handle) {\n return handle === monitor.getSourceId();\n };\n\n NativeDragSource.prototype.endDrag = function endDrag() {};\n\n return NativeDragSource;\n })();\n}\n\nfunction matchNativeItemType(dataTransfer) {\n var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);\n\n return Object.keys(nativeTypesConfig).filter(function (nativeItemType) {\n var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes;\n\n return matchesTypes.some(function (t) {\n return dataTransferTypes.indexOf(t) > -1;\n });\n })[0] || null;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd-html5-backend/lib/NativeDragSources.js\n// module id = 159\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.getNodeClientOffset = getNodeClientOffset;\nexports.getEventClientOffset = getEventClientOffset;\nexports.getDragPreviewOffset = getDragPreviewOffset;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _BrowserDetector = require('./BrowserDetector');\n\nvar _MonotonicInterpolant = require('./MonotonicInterpolant');\n\nvar _MonotonicInterpolant2 = _interopRequireDefault(_MonotonicInterpolant);\n\nvar ELEMENT_NODE = 1;\n\nfunction getNodeClientOffset(node) {\n var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n\n if (!el) {\n return null;\n }\n\n var _el$getBoundingClientRect = el.getBoundingClientRect();\n\n var top = _el$getBoundingClientRect.top;\n var left = _el$getBoundingClientRect.left;\n\n return { x: left, y: top };\n}\n\nfunction getEventClientOffset(e) {\n return {\n x: e.clientX,\n y: e.clientY\n };\n}\n\nfunction getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint) {\n // The browsers will use the image intrinsic size under different conditions.\n // Firefox only cares if it's an image, but WebKit also wants it to be detached.\n var isImage = dragPreview.nodeName === 'IMG' && (_BrowserDetector.isFirefox() || !document.documentElement.contains(dragPreview));\n var dragPreviewNode = isImage ? sourceNode : dragPreview;\n\n var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);\n var offsetFromDragPreview = {\n x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n y: clientOffset.y - dragPreviewNodeOffsetFromClient.y\n };\n\n var sourceWidth = sourceNode.offsetWidth;\n var sourceHeight = sourceNode.offsetHeight;\n var anchorX = anchorPoint.anchorX;\n var anchorY = anchorPoint.anchorY;\n\n var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;\n var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight;\n\n // Work around @2x coordinate discrepancies in browsers\n if (_BrowserDetector.isSafari() && isImage) {\n dragPreviewHeight /= window.devicePixelRatio;\n dragPreviewWidth /= window.devicePixelRatio;\n } else if (_BrowserDetector.isFirefox() && !isImage) {\n dragPreviewHeight *= window.devicePixelRatio;\n dragPreviewWidth *= window.devicePixelRatio;\n }\n\n // Interpolate coordinates depending on anchor point\n // If you know a simpler way to do this, let me know\n var interpolantX = new _MonotonicInterpolant2['default']([0, 0.5, 1], [\n // Dock to the left\n offsetFromDragPreview.x,\n // Align at the center\n offsetFromDragPreview.x / sourceWidth * dragPreviewWidth,\n // Dock to the right\n offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]);\n var interpolantY = new _MonotonicInterpolant2['default']([0, 0.5, 1], [\n // Dock to the top\n offsetFromDragPreview.y,\n // Align at the center\n offsetFromDragPreview.y / sourceHeight * dragPreviewHeight,\n // Dock to the bottom\n offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]);\n var x = interpolantX.interpolate(anchorX);\n var y = interpolantY.interpolate(anchorY);\n\n // Work around Safari 8 positioning bug\n if (_BrowserDetector.isSafari() && isImage) {\n // We'll have to wait for @3x to see if this is entirely correct\n y += (window.devicePixelRatio - 1) * dragPreviewHeight;\n }\n\n return { x: x, y: y };\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd-html5-backend/lib/OffsetUtils.js\n// module id = 160\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = getEmptyImage;\nvar emptyImage = undefined;\n\nfunction getEmptyImage() {\n if (!emptyImage) {\n emptyImage = new Image();\n emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n }\n\n return emptyImage;\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd-html5-backend/lib/getEmptyImage.js\n// module id = 161\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = createHTML5Backend;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _HTML5Backend = require('./HTML5Backend');\n\nvar _HTML5Backend2 = _interopRequireDefault(_HTML5Backend);\n\nvar _getEmptyImage = require('./getEmptyImage');\n\nvar _getEmptyImage2 = _interopRequireDefault(_getEmptyImage);\n\nvar _NativeTypes = require('./NativeTypes');\n\nvar NativeTypes = _interopRequireWildcard(_NativeTypes);\n\nexports.NativeTypes = NativeTypes;\nexports.getEmptyImage = _getEmptyImage2['default'];\n\nfunction createHTML5Backend(manager) {\n return new _HTML5Backend2['default'](manager);\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd-html5-backend/lib/index.js\n// module id = 162\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = shallowEqual;\n\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var hasOwn = Object.prototype.hasOwnProperty;\n for (var i = 0; i < keysA.length; i++) {\n if (!hasOwn.call(objB, keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n\n var valA = objA[keysA[i]];\n var valB = objB[keysA[i]];\n\n if (valA !== valB) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd-html5-backend/lib/shallowEqual.js\n// module id = 163\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slice = Array.prototype.slice;\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nexports['default'] = DragDropContext;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _dndCore = require('dnd-core');\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _utilsCheckDecoratorArguments = require('./utils/checkDecoratorArguments');\n\nvar _utilsCheckDecoratorArguments2 = _interopRequireDefault(_utilsCheckDecoratorArguments);\n\nfunction DragDropContext(backendOrModule) {\n _utilsCheckDecoratorArguments2['default'].apply(undefined, ['DragDropContext', 'backend'].concat(_slice.call(arguments)));\n\n // Auto-detect ES6 default export for people still using ES5\n var backend = undefined;\n if (typeof backendOrModule === 'object' && typeof backendOrModule['default'] === 'function') {\n backend = backendOrModule['default'];\n } else {\n backend = backendOrModule;\n }\n\n _invariant2['default'](typeof backend === 'function', 'Expected the backend to be a function or an ES6 module exporting a default function. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-drop-context.html');\n\n var childContext = {\n dragDropManager: new _dndCore.DragDropManager(backend)\n };\n\n return function decorateContext(DecoratedComponent) {\n var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';\n\n return (function (_Component) {\n _inherits(DragDropContextContainer, _Component);\n\n function DragDropContextContainer() {\n _classCallCheck(this, DragDropContextContainer);\n\n _Component.apply(this, arguments);\n }\n\n DragDropContextContainer.prototype.getDecoratedComponentInstance = function getDecoratedComponentInstance() {\n return this.refs.child;\n };\n\n DragDropContextContainer.prototype.getManager = function getManager() {\n return childContext.dragDropManager;\n };\n\n DragDropContextContainer.prototype.getChildContext = function getChildContext() {\n return childContext;\n };\n\n DragDropContextContainer.prototype.render = function render() {\n return _react2['default'].createElement(DecoratedComponent, _extends({}, this.props, {\n ref: 'child' }));\n };\n\n _createClass(DragDropContextContainer, null, [{\n key: 'DecoratedComponent',\n value: DecoratedComponent,\n enumerable: true\n }, {\n key: 'displayName',\n value: 'DragDropContext(' + displayName + ')',\n enumerable: true\n }, {\n key: 'childContextTypes',\n value: {\n dragDropManager: _react.PropTypes.object.isRequired\n },\n enumerable: true\n }]);\n\n return DragDropContextContainer;\n })(_react.Component);\n };\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/DragDropContext.js\n// module id = 164\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slice = Array.prototype.slice;\n\nvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\nexports['default'] = DragLayer;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _utilsShallowEqual = require('./utils/shallowEqual');\n\nvar _utilsShallowEqual2 = _interopRequireDefault(_utilsShallowEqual);\n\nvar _utilsShallowEqualScalar = require('./utils/shallowEqualScalar');\n\nvar _utilsShallowEqualScalar2 = _interopRequireDefault(_utilsShallowEqualScalar);\n\nvar _lodashIsPlainObject = require('lodash/isPlainObject');\n\nvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _utilsCheckDecoratorArguments = require('./utils/checkDecoratorArguments');\n\nvar _utilsCheckDecoratorArguments2 = _interopRequireDefault(_utilsCheckDecoratorArguments);\n\nfunction DragLayer(collect) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n _utilsCheckDecoratorArguments2['default'].apply(undefined, ['DragLayer', 'collect[, options]'].concat(_slice.call(arguments)));\n _invariant2['default'](typeof collect === 'function', 'Expected \"collect\" provided as the first argument to DragLayer ' + 'to be a function that collects props to inject into the component. ', 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-layer.html', collect);\n _invariant2['default'](_lodashIsPlainObject2['default'](options), 'Expected \"options\" provided as the second argument to DragLayer to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-layer.html', options);\n\n return function decorateLayer(DecoratedComponent) {\n var _options$arePropsEqual = options.arePropsEqual;\n var arePropsEqual = _options$arePropsEqual === undefined ? _utilsShallowEqualScalar2['default'] : _options$arePropsEqual;\n\n var displayName = DecoratedComponent.displayName || DecoratedComponent.name || 'Component';\n\n return (function (_Component) {\n _inherits(DragLayerContainer, _Component);\n\n DragLayerContainer.prototype.getDecoratedComponentInstance = function getDecoratedComponentInstance() {\n return this.refs.child;\n };\n\n DragLayerContainer.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {\n return !arePropsEqual(nextProps, this.props) || !_utilsShallowEqual2['default'](nextState, this.state);\n };\n\n _createClass(DragLayerContainer, null, [{\n key: 'DecoratedComponent',\n value: DecoratedComponent,\n enumerable: true\n }, {\n key: 'displayName',\n value: 'DragLayer(' + displayName + ')',\n enumerable: true\n }, {\n key: 'contextTypes',\n value: {\n dragDropManager: _react.PropTypes.object.isRequired\n },\n enumerable: true\n }]);\n\n function DragLayerContainer(props, context) {\n _classCallCheck(this, DragLayerContainer);\n\n _Component.call(this, props);\n this.handleChange = this.handleChange.bind(this);\n\n this.manager = context.dragDropManager;\n _invariant2['default'](typeof this.manager === 'object', 'Could not find the drag and drop manager in the context of %s. ' + 'Make sure to wrap the top-level component of your app with DragDropContext. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-troubleshooting.html#could-not-find-the-drag-and-drop-manager-in-the-context', displayName, displayName);\n\n this.state = this.getCurrentState();\n }\n\n DragLayerContainer.prototype.componentDidMount = function componentDidMount() {\n this.isCurrentlyMounted = true;\n\n var monitor = this.manager.getMonitor();\n this.unsubscribeFromOffsetChange = monitor.subscribeToOffsetChange(this.handleChange);\n this.unsubscribeFromStateChange = monitor.subscribeToStateChange(this.handleChange);\n\n this.handleChange();\n };\n\n DragLayerContainer.prototype.componentWillUnmount = function componentWillUnmount() {\n this.isCurrentlyMounted = false;\n\n this.unsubscribeFromOffsetChange();\n this.unsubscribeFromStateChange();\n };\n\n DragLayerContainer.prototype.handleChange = function handleChange() {\n if (!this.isCurrentlyMounted) {\n return;\n }\n\n var nextState = this.getCurrentState();\n if (!_utilsShallowEqual2['default'](nextState, this.state)) {\n this.setState(nextState);\n }\n };\n\n DragLayerContainer.prototype.getCurrentState = function getCurrentState() {\n var monitor = this.manager.getMonitor();\n return collect(monitor);\n };\n\n DragLayerContainer.prototype.render = function render() {\n return _react2['default'].createElement(DecoratedComponent, _extends({}, this.props, this.state, {\n ref: 'child' }));\n };\n\n return DragLayerContainer;\n })(_react.Component);\n };\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/DragLayer.js\n// module id = 165\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar _slice = Array.prototype.slice;\nexports['default'] = DragSource;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _lodashIsPlainObject = require('lodash/isPlainObject');\n\nvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\nvar _utilsCheckDecoratorArguments = require('./utils/checkDecoratorArguments');\n\nvar _utilsCheckDecoratorArguments2 = _interopRequireDefault(_utilsCheckDecoratorArguments);\n\nvar _decorateHandler = require('./decorateHandler');\n\nvar _decorateHandler2 = _interopRequireDefault(_decorateHandler);\n\nvar _registerSource = require('./registerSource');\n\nvar _registerSource2 = _interopRequireDefault(_registerSource);\n\nvar _createSourceFactory = require('./createSourceFactory');\n\nvar _createSourceFactory2 = _interopRequireDefault(_createSourceFactory);\n\nvar _createSourceMonitor = require('./createSourceMonitor');\n\nvar _createSourceMonitor2 = _interopRequireDefault(_createSourceMonitor);\n\nvar _createSourceConnector = require('./createSourceConnector');\n\nvar _createSourceConnector2 = _interopRequireDefault(_createSourceConnector);\n\nvar _utilsIsValidType = require('./utils/isValidType');\n\nvar _utilsIsValidType2 = _interopRequireDefault(_utilsIsValidType);\n\nfunction DragSource(type, spec, collect) {\n var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\n _utilsCheckDecoratorArguments2['default'].apply(undefined, ['DragSource', 'type, spec, collect[, options]'].concat(_slice.call(arguments)));\n var getType = type;\n if (typeof type !== 'function') {\n _invariant2['default'](_utilsIsValidType2['default'](type), 'Expected \"type\" provided as the first argument to DragSource to be ' + 'a string, or a function that returns a string given the current props. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', type);\n getType = function () {\n return type;\n };\n }\n _invariant2['default'](_lodashIsPlainObject2['default'](spec), 'Expected \"spec\" provided as the second argument to DragSource to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', spec);\n var createSource = _createSourceFactory2['default'](spec);\n _invariant2['default'](typeof collect === 'function', 'Expected \"collect\" provided as the third argument to DragSource to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', collect);\n _invariant2['default'](_lodashIsPlainObject2['default'](options), 'Expected \"options\" provided as the fourth argument to DragSource to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', collect);\n\n return function decorateSource(DecoratedComponent) {\n return _decorateHandler2['default']({\n connectBackend: function connectBackend(backend, sourceId) {\n return backend.connectDragSource(sourceId);\n },\n containerDisplayName: 'DragSource',\n createHandler: createSource,\n registerHandler: _registerSource2['default'],\n createMonitor: _createSourceMonitor2['default'],\n createConnector: _createSourceConnector2['default'],\n DecoratedComponent: DecoratedComponent,\n getType: getType,\n collect: collect,\n options: options\n });\n };\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/DragSource.js\n// module id = 166\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nvar _slice = Array.prototype.slice;\nexports['default'] = DropTarget;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _lodashIsPlainObject = require('lodash/isPlainObject');\n\nvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\nvar _utilsCheckDecoratorArguments = require('./utils/checkDecoratorArguments');\n\nvar _utilsCheckDecoratorArguments2 = _interopRequireDefault(_utilsCheckDecoratorArguments);\n\nvar _decorateHandler = require('./decorateHandler');\n\nvar _decorateHandler2 = _interopRequireDefault(_decorateHandler);\n\nvar _registerTarget = require('./registerTarget');\n\nvar _registerTarget2 = _interopRequireDefault(_registerTarget);\n\nvar _createTargetFactory = require('./createTargetFactory');\n\nvar _createTargetFactory2 = _interopRequireDefault(_createTargetFactory);\n\nvar _createTargetMonitor = require('./createTargetMonitor');\n\nvar _createTargetMonitor2 = _interopRequireDefault(_createTargetMonitor);\n\nvar _createTargetConnector = require('./createTargetConnector');\n\nvar _createTargetConnector2 = _interopRequireDefault(_createTargetConnector);\n\nvar _utilsIsValidType = require('./utils/isValidType');\n\nvar _utilsIsValidType2 = _interopRequireDefault(_utilsIsValidType);\n\nfunction DropTarget(type, spec, collect) {\n var options = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3];\n\n _utilsCheckDecoratorArguments2['default'].apply(undefined, ['DropTarget', 'type, spec, collect[, options]'].concat(_slice.call(arguments)));\n var getType = type;\n if (typeof type !== 'function') {\n _invariant2['default'](_utilsIsValidType2['default'](type, true), 'Expected \"type\" provided as the first argument to DropTarget to be ' + 'a string, an array of strings, or a function that returns either given ' + 'the current props. Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', type);\n getType = function () {\n return type;\n };\n }\n _invariant2['default'](_lodashIsPlainObject2['default'](spec), 'Expected \"spec\" provided as the second argument to DropTarget to be ' + 'a plain object. Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', spec);\n var createTarget = _createTargetFactory2['default'](spec);\n _invariant2['default'](typeof collect === 'function', 'Expected \"collect\" provided as the third argument to DropTarget to be ' + 'a function that returns a plain object of props to inject. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', collect);\n _invariant2['default'](_lodashIsPlainObject2['default'](options), 'Expected \"options\" provided as the fourth argument to DropTarget to be ' + 'a plain object when specified. ' + 'Instead, received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', collect);\n\n return function decorateTarget(DecoratedComponent) {\n return _decorateHandler2['default']({\n connectBackend: function connectBackend(backend, targetId) {\n return backend.connectDropTarget(targetId);\n },\n containerDisplayName: 'DropTarget',\n createHandler: createTarget,\n registerHandler: _registerTarget2['default'],\n createMonitor: _createTargetMonitor2['default'],\n createConnector: _createTargetConnector2['default'],\n DecoratedComponent: DecoratedComponent,\n getType: getType,\n collect: collect,\n options: options\n });\n };\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/DropTarget.js\n// module id = 167\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = createSourceConnector;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _wrapConnectorHooks = require('./wrapConnectorHooks');\n\nvar _wrapConnectorHooks2 = _interopRequireDefault(_wrapConnectorHooks);\n\nvar _areOptionsEqual = require('./areOptionsEqual');\n\nvar _areOptionsEqual2 = _interopRequireDefault(_areOptionsEqual);\n\nfunction createSourceConnector(backend) {\n var currentHandlerId = undefined;\n\n var currentDragSourceNode = undefined;\n var currentDragSourceOptions = undefined;\n var disconnectCurrentDragSource = undefined;\n\n var currentDragPreviewNode = undefined;\n var currentDragPreviewOptions = undefined;\n var disconnectCurrentDragPreview = undefined;\n\n function reconnectDragSource() {\n if (disconnectCurrentDragSource) {\n disconnectCurrentDragSource();\n disconnectCurrentDragSource = null;\n }\n\n if (currentHandlerId && currentDragSourceNode) {\n disconnectCurrentDragSource = backend.connectDragSource(currentHandlerId, currentDragSourceNode, currentDragSourceOptions);\n }\n }\n\n function reconnectDragPreview() {\n if (disconnectCurrentDragPreview) {\n disconnectCurrentDragPreview();\n disconnectCurrentDragPreview = null;\n }\n\n if (currentHandlerId && currentDragPreviewNode) {\n disconnectCurrentDragPreview = backend.connectDragPreview(currentHandlerId, currentDragPreviewNode, currentDragPreviewOptions);\n }\n }\n\n function receiveHandlerId(handlerId) {\n if (handlerId === currentHandlerId) {\n return;\n }\n\n currentHandlerId = handlerId;\n reconnectDragSource();\n reconnectDragPreview();\n }\n\n var hooks = _wrapConnectorHooks2['default']({\n dragSource: function connectDragSource(node, options) {\n if (node === currentDragSourceNode && _areOptionsEqual2['default'](options, currentDragSourceOptions)) {\n return;\n }\n\n currentDragSourceNode = node;\n currentDragSourceOptions = options;\n\n reconnectDragSource();\n },\n\n dragPreview: function connectDragPreview(node, options) {\n if (node === currentDragPreviewNode && _areOptionsEqual2['default'](options, currentDragPreviewOptions)) {\n return;\n }\n\n currentDragPreviewNode = node;\n currentDragPreviewOptions = options;\n\n reconnectDragPreview();\n }\n });\n\n return {\n receiveHandlerId: receiveHandlerId,\n hooks: hooks\n };\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/createSourceConnector.js\n// module id = 168\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = createSourceFactory;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _lodashIsPlainObject = require('lodash/isPlainObject');\n\nvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\nvar ALLOWED_SPEC_METHODS = ['canDrag', 'beginDrag', 'canDrag', 'isDragging', 'endDrag'];\nvar REQUIRED_SPEC_METHODS = ['beginDrag'];\n\nfunction createSourceFactory(spec) {\n Object.keys(spec).forEach(function (key) {\n _invariant2['default'](ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drag source specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected \"%s\" key. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', ALLOWED_SPEC_METHODS.join(', '), key);\n _invariant2['default'](typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', key, key, spec[key]);\n });\n REQUIRED_SPEC_METHODS.forEach(function (key) {\n _invariant2['default'](typeof spec[key] === 'function', 'Expected %s in the drag source specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', key, key, spec[key]);\n });\n\n var Source = (function () {\n function Source(monitor) {\n _classCallCheck(this, Source);\n\n this.monitor = monitor;\n this.props = null;\n this.component = null;\n }\n\n Source.prototype.receiveProps = function receiveProps(props) {\n this.props = props;\n };\n\n Source.prototype.receiveComponent = function receiveComponent(component) {\n this.component = component;\n };\n\n Source.prototype.canDrag = function canDrag() {\n if (!spec.canDrag) {\n return true;\n }\n\n return spec.canDrag(this.props, this.monitor);\n };\n\n Source.prototype.isDragging = function isDragging(globalMonitor, sourceId) {\n if (!spec.isDragging) {\n return sourceId === globalMonitor.getSourceId();\n }\n\n return spec.isDragging(this.props, this.monitor);\n };\n\n Source.prototype.beginDrag = function beginDrag() {\n var item = spec.beginDrag(this.props, this.monitor, this.component);\n if (process.env.NODE_ENV !== 'production') {\n _invariant2['default'](_lodashIsPlainObject2['default'](item), 'beginDrag() must return a plain object that represents the dragged item. ' + 'Instead received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source.html', item);\n }\n return item;\n };\n\n Source.prototype.endDrag = function endDrag() {\n if (!spec.endDrag) {\n return;\n }\n\n spec.endDrag(this.props, this.monitor, this.component);\n };\n\n return Source;\n })();\n\n return function createSource(monitor) {\n return new Source(monitor);\n };\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/createSourceFactory.js\n// module id = 169\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = createSourceMonitor;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar isCallingCanDrag = false;\nvar isCallingIsDragging = false;\n\nvar SourceMonitor = (function () {\n function SourceMonitor(manager) {\n _classCallCheck(this, SourceMonitor);\n\n this.internalMonitor = manager.getMonitor();\n }\n\n SourceMonitor.prototype.receiveHandlerId = function receiveHandlerId(sourceId) {\n this.sourceId = sourceId;\n };\n\n SourceMonitor.prototype.canDrag = function canDrag() {\n _invariant2['default'](!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source-monitor.html');\n\n try {\n isCallingCanDrag = true;\n return this.internalMonitor.canDragSource(this.sourceId);\n } finally {\n isCallingCanDrag = false;\n }\n };\n\n SourceMonitor.prototype.isDragging = function isDragging() {\n _invariant2['default'](!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drag-source-monitor.html');\n\n try {\n isCallingIsDragging = true;\n return this.internalMonitor.isDraggingSource(this.sourceId);\n } finally {\n isCallingIsDragging = false;\n }\n };\n\n SourceMonitor.prototype.getItemType = function getItemType() {\n return this.internalMonitor.getItemType();\n };\n\n SourceMonitor.prototype.getItem = function getItem() {\n return this.internalMonitor.getItem();\n };\n\n SourceMonitor.prototype.getDropResult = function getDropResult() {\n return this.internalMonitor.getDropResult();\n };\n\n SourceMonitor.prototype.didDrop = function didDrop() {\n return this.internalMonitor.didDrop();\n };\n\n SourceMonitor.prototype.getInitialClientOffset = function getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n };\n\n SourceMonitor.prototype.getInitialSourceClientOffset = function getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n };\n\n SourceMonitor.prototype.getSourceClientOffset = function getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n };\n\n SourceMonitor.prototype.getClientOffset = function getClientOffset() {\n return this.internalMonitor.getClientOffset();\n };\n\n SourceMonitor.prototype.getDifferenceFromInitialOffset = function getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n };\n\n return SourceMonitor;\n})();\n\nfunction createSourceMonitor(manager) {\n return new SourceMonitor(manager);\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/createSourceMonitor.js\n// module id = 170\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = createTargetConnector;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _wrapConnectorHooks = require('./wrapConnectorHooks');\n\nvar _wrapConnectorHooks2 = _interopRequireDefault(_wrapConnectorHooks);\n\nvar _areOptionsEqual = require('./areOptionsEqual');\n\nvar _areOptionsEqual2 = _interopRequireDefault(_areOptionsEqual);\n\nfunction createTargetConnector(backend) {\n var currentHandlerId = undefined;\n\n var currentDropTargetNode = undefined;\n var currentDropTargetOptions = undefined;\n var disconnectCurrentDropTarget = undefined;\n\n function reconnectDropTarget() {\n if (disconnectCurrentDropTarget) {\n disconnectCurrentDropTarget();\n disconnectCurrentDropTarget = null;\n }\n\n if (currentHandlerId && currentDropTargetNode) {\n disconnectCurrentDropTarget = backend.connectDropTarget(currentHandlerId, currentDropTargetNode, currentDropTargetOptions);\n }\n }\n\n function receiveHandlerId(handlerId) {\n if (handlerId === currentHandlerId) {\n return;\n }\n\n currentHandlerId = handlerId;\n reconnectDropTarget();\n }\n\n var hooks = _wrapConnectorHooks2['default']({\n dropTarget: function connectDropTarget(node, options) {\n if (node === currentDropTargetNode && _areOptionsEqual2['default'](options, currentDropTargetOptions)) {\n return;\n }\n\n currentDropTargetNode = node;\n currentDropTargetOptions = options;\n\n reconnectDropTarget();\n }\n });\n\n return {\n receiveHandlerId: receiveHandlerId,\n hooks: hooks\n };\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/createTargetConnector.js\n// module id = 171\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = createTargetFactory;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _lodashIsPlainObject = require('lodash/isPlainObject');\n\nvar _lodashIsPlainObject2 = _interopRequireDefault(_lodashIsPlainObject);\n\nvar ALLOWED_SPEC_METHODS = ['canDrop', 'hover', 'drop'];\n\nfunction createTargetFactory(spec) {\n Object.keys(spec).forEach(function (key) {\n _invariant2['default'](ALLOWED_SPEC_METHODS.indexOf(key) > -1, 'Expected the drop target specification to only have ' + 'some of the following keys: %s. ' + 'Instead received a specification with an unexpected \"%s\" key. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', ALLOWED_SPEC_METHODS.join(', '), key);\n _invariant2['default'](typeof spec[key] === 'function', 'Expected %s in the drop target specification to be a function. ' + 'Instead received a specification with %s: %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', key, key, spec[key]);\n });\n\n var Target = (function () {\n function Target(monitor) {\n _classCallCheck(this, Target);\n\n this.monitor = monitor;\n this.props = null;\n this.component = null;\n }\n\n Target.prototype.receiveProps = function receiveProps(props) {\n this.props = props;\n };\n\n Target.prototype.receiveMonitor = function receiveMonitor(monitor) {\n this.monitor = monitor;\n };\n\n Target.prototype.receiveComponent = function receiveComponent(component) {\n this.component = component;\n };\n\n Target.prototype.canDrop = function canDrop() {\n if (!spec.canDrop) {\n return true;\n }\n\n return spec.canDrop(this.props, this.monitor);\n };\n\n Target.prototype.hover = function hover() {\n if (!spec.hover) {\n return;\n }\n\n spec.hover(this.props, this.monitor, this.component);\n };\n\n Target.prototype.drop = function drop() {\n if (!spec.drop) {\n return;\n }\n\n var dropResult = spec.drop(this.props, this.monitor, this.component);\n if (process.env.NODE_ENV !== 'production') {\n _invariant2['default'](typeof dropResult === 'undefined' || _lodashIsPlainObject2['default'](dropResult), 'drop() must either return undefined, or an object that represents the drop result. ' + 'Instead received %s. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target.html', dropResult);\n }\n return dropResult;\n };\n\n return Target;\n })();\n\n return function createTarget(monitor) {\n return new Target(monitor);\n };\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/createTargetFactory.js\n// module id = 172\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = createTargetMonitor;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar isCallingCanDrop = false;\n\nvar TargetMonitor = (function () {\n function TargetMonitor(manager) {\n _classCallCheck(this, TargetMonitor);\n\n this.internalMonitor = manager.getMonitor();\n }\n\n TargetMonitor.prototype.receiveHandlerId = function receiveHandlerId(targetId) {\n this.targetId = targetId;\n };\n\n TargetMonitor.prototype.canDrop = function canDrop() {\n _invariant2['default'](!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://gaearon.github.io/react-dnd/docs-drop-target-monitor.html');\n\n try {\n isCallingCanDrop = true;\n return this.internalMonitor.canDropOnTarget(this.targetId);\n } finally {\n isCallingCanDrop = false;\n }\n };\n\n TargetMonitor.prototype.isOver = function isOver(options) {\n return this.internalMonitor.isOverTarget(this.targetId, options);\n };\n\n TargetMonitor.prototype.getItemType = function getItemType() {\n return this.internalMonitor.getItemType();\n };\n\n TargetMonitor.prototype.getItem = function getItem() {\n return this.internalMonitor.getItem();\n };\n\n TargetMonitor.prototype.getDropResult = function getDropResult() {\n return this.internalMonitor.getDropResult();\n };\n\n TargetMonitor.prototype.didDrop = function didDrop() {\n return this.internalMonitor.didDrop();\n };\n\n TargetMonitor.prototype.getInitialClientOffset = function getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n };\n\n TargetMonitor.prototype.getInitialSourceClientOffset = function getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n };\n\n TargetMonitor.prototype.getSourceClientOffset = function getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n };\n\n TargetMonitor.prototype.getClientOffset = function getClientOffset() {\n return this.internalMonitor.getClientOffset();\n };\n\n TargetMonitor.prototype.getDifferenceFromInitialOffset = function getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n };\n\n return TargetMonitor;\n})();\n\nfunction createTargetMonitor(manager) {\n return new TargetMonitor(manager);\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/createTargetMonitor.js\n// module id = 173\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = registerSource;\n\nfunction registerSource(type, source, manager) {\n var registry = manager.getRegistry();\n var sourceId = registry.addSource(type, source);\n\n function unregisterSource() {\n registry.removeSource(sourceId);\n }\n\n return {\n handlerId: sourceId,\n unregister: unregisterSource\n };\n}\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/registerSource.js\n// module id = 174\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = registerTarget;\n\nfunction registerTarget(type, target, manager) {\n var registry = manager.getRegistry();\n var targetId = registry.addTarget(type, target);\n\n function unregisterTarget() {\n registry.removeTarget(targetId);\n }\n\n return {\n handlerId: targetId,\n unregister: unregisterTarget\n };\n}\n\nmodule.exports = exports[\"default\"];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/registerTarget.js\n// module id = 175\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports['default'] = cloneWithRef;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _react = require('react');\n\nfunction cloneWithRef(element, newRef) {\n var previousRef = element.ref;\n _invariant2['default'](typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a or
. ' + 'Read more: https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute');\n\n if (!previousRef) {\n // When there is no ref on the element, use the new ref directly\n return _react.cloneElement(element, {\n ref: newRef\n });\n }\n\n return _react.cloneElement(element, {\n ref: function ref(node) {\n newRef(node);\n\n if (previousRef) {\n previousRef(node);\n }\n }\n });\n}\n\nmodule.exports = exports['default'];\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react-dnd/lib/utils/cloneWithRef.js\n// module id = 176\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Object.assign\n */\n\n// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign\n\n'use strict';\n\nfunction assign(target, sources) {\n if (target == null) {\n throw new TypeError('Object.assign target cannot be null or undefined');\n }\n\n var to = Object(target);\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) {\n var nextSource = arguments[nextIndex];\n if (nextSource == null) {\n continue;\n }\n\n var from = Object(nextSource);\n\n // We don't currently support accessors nor proxies. Therefore this\n // copy cannot throw. If we ever supported this then we must handle\n // exceptions and side-effects. We don't support symbols so they won't\n // be transferred.\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n }\n\n return to;\n}\n\nmodule.exports = assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/Object.assign.js\n// module id = 177\n// module chunks = 0","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule update\n */\n\n/* global hasOwnProperty:true */\n\n'use strict';\n\nvar assign = require('./Object.assign');\nvar keyOf = require('fbjs/lib/keyOf');\nvar invariant = require('fbjs/lib/invariant');\nvar hasOwnProperty = ({}).hasOwnProperty;\n\nfunction shallowCopy(x) {\n if (Array.isArray(x)) {\n return x.concat();\n } else if (x && typeof x === 'object') {\n return assign(new x.constructor(), x);\n } else {\n return x;\n }\n}\n\nvar COMMAND_PUSH = keyOf({ $push: null });\nvar COMMAND_UNSHIFT = keyOf({ $unshift: null });\nvar COMMAND_SPLICE = keyOf({ $splice: null });\nvar COMMAND_SET = keyOf({ $set: null });\nvar COMMAND_MERGE = keyOf({ $merge: null });\nvar COMMAND_APPLY = keyOf({ $apply: null });\n\nvar ALL_COMMANDS_LIST = [COMMAND_PUSH, COMMAND_UNSHIFT, COMMAND_SPLICE, COMMAND_SET, COMMAND_MERGE, COMMAND_APPLY];\n\nvar ALL_COMMANDS_SET = {};\n\nALL_COMMANDS_LIST.forEach(function (command) {\n ALL_COMMANDS_SET[command] = true;\n});\n\nfunction invariantArrayCase(value, spec, command) {\n !Array.isArray(value) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): expected target of %s to be an array; got %s.', command, value) : invariant(false) : undefined;\n var specValue = spec[command];\n !Array.isArray(specValue) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): expected spec of %s to be an array; got %s. ' + 'Did you forget to wrap your parameter in an array?', command, specValue) : invariant(false) : undefined;\n}\n\nfunction update(value, spec) {\n !(typeof spec === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): You provided a key path to update() that did not contain one ' + 'of %s. Did you forget to include {%s: ...}?', ALL_COMMANDS_LIST.join(', '), COMMAND_SET) : invariant(false) : undefined;\n\n if (hasOwnProperty.call(spec, COMMAND_SET)) {\n !(Object.keys(spec).length === 1) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Cannot have more than one key in an object with %s', COMMAND_SET) : invariant(false) : undefined;\n\n return spec[COMMAND_SET];\n }\n\n var nextValue = shallowCopy(value);\n\n if (hasOwnProperty.call(spec, COMMAND_MERGE)) {\n var mergeObj = spec[COMMAND_MERGE];\n !(mergeObj && typeof mergeObj === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): %s expects a spec of type \\'object\\'; got %s', COMMAND_MERGE, mergeObj) : invariant(false) : undefined;\n !(nextValue && typeof nextValue === 'object') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): %s expects a target of type \\'object\\'; got %s', COMMAND_MERGE, nextValue) : invariant(false) : undefined;\n assign(nextValue, spec[COMMAND_MERGE]);\n }\n\n if (hasOwnProperty.call(spec, COMMAND_PUSH)) {\n invariantArrayCase(value, spec, COMMAND_PUSH);\n spec[COMMAND_PUSH].forEach(function (item) {\n nextValue.push(item);\n });\n }\n\n if (hasOwnProperty.call(spec, COMMAND_UNSHIFT)) {\n invariantArrayCase(value, spec, COMMAND_UNSHIFT);\n spec[COMMAND_UNSHIFT].forEach(function (item) {\n nextValue.unshift(item);\n });\n }\n\n if (hasOwnProperty.call(spec, COMMAND_SPLICE)) {\n !Array.isArray(value) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'Expected %s target to be an array; got %s', COMMAND_SPLICE, value) : invariant(false) : undefined;\n !Array.isArray(spec[COMMAND_SPLICE]) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): expected spec of %s to be an array of arrays; got %s. ' + 'Did you forget to wrap your parameters in an array?', COMMAND_SPLICE, spec[COMMAND_SPLICE]) : invariant(false) : undefined;\n spec[COMMAND_SPLICE].forEach(function (args) {\n !Array.isArray(args) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): expected spec of %s to be an array of arrays; got %s. ' + 'Did you forget to wrap your parameters in an array?', COMMAND_SPLICE, spec[COMMAND_SPLICE]) : invariant(false) : undefined;\n nextValue.splice.apply(nextValue, args);\n });\n }\n\n if (hasOwnProperty.call(spec, COMMAND_APPLY)) {\n !(typeof spec[COMMAND_APPLY] === 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'update(): expected spec of %s to be a function; got %s.', COMMAND_APPLY, spec[COMMAND_APPLY]) : invariant(false) : undefined;\n nextValue = spec[COMMAND_APPLY](nextValue);\n }\n\n for (var k in spec) {\n if (!(ALL_COMMANDS_SET.hasOwnProperty(k) && ALL_COMMANDS_SET[k])) {\n nextValue[k] = update(value[k], spec[k]);\n }\n }\n\n return nextValue;\n}\n\nmodule.exports = update;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/lib/update.js\n// module id = 178\n// module chunks = 0","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule invariant\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/~/fbjs/lib/invariant.js\n// module id = 179\n// module chunks = 0","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule keyOf\n */\n\n/**\n * Allows extraction of a minified key. Let's the build system minify keys\n * without losing the ability to dynamically use key strings as values\n * themselves. Pass in an object with a single key/val pair and it will return\n * you the string key of that single record. Suppose you want to grab the\n * value for a key 'className' inside of an object. Key/val minification may\n * have aliased that key to be 'xa12'. keyOf({className: null}) will return\n * 'xa12' in that case. Resolve keys you want to use once at startup time, then\n * reuse those resolutions.\n */\n\"use strict\";\n\nvar keyOf = function (oneKeyObj) {\n var key;\n for (key in oneKeyObj) {\n if (!oneKeyObj.hasOwnProperty(key)) {\n continue;\n }\n return key;\n }\n return null;\n};\n\nmodule.exports = keyOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/react/~/fbjs/lib/keyOf.js\n// module id = 180\n// module chunks = 0","'use strict';\n\nexports.__esModule = true;\nexports.ActionTypes = undefined;\nexports['default'] = createStore;\n\nvar _isPlainObject = require('lodash/isPlainObject');\n\nvar _isPlainObject2 = _interopRequireDefault(_isPlainObject);\n\nvar _symbolObservable = require('symbol-observable');\n\nvar _symbolObservable2 = _interopRequireDefault(_symbolObservable);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar ActionTypes = exports.ActionTypes = {\n INIT: '@@redux/INIT'\n\n /**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n};function createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!(0, _isPlainObject2['default'])(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[_symbolObservable2['default']] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[_symbolObservable2['default']] = observable, _ref2;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/redux/lib/createStore.js\n// module id = 181\n// module chunks = 0","module.exports = require('./lib/index');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/symbol-observable/index.js\n// module id = 182\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ponyfill = require('./ponyfill');\n\nvar _ponyfill2 = _interopRequireDefault(_ponyfill);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar root; /* global window */\n\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = (0, _ponyfill2['default'])(root);\nexports['default'] = result;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/symbol-observable/lib/index.js\n// module id = 183\n// module chunks = 0","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\t\t\tresult = _Symbol('observable');\n\t\t\t_Symbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/symbol-observable/lib/ponyfill.js\n// module id = 184\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_185__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external \"react-dom\"\n// module id = 185\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file