{"version":3,"file":"bundle.29452.49a82b25a89082617ae7.js","mappings":"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","sources":["webpack://goformz-web-app/./node_modules/@react-dnd/invariant/dist/invariant.esm.js","webpack://goformz-web-app/./node_modules/@react-dnd/shallowequal/dist/shallowequal.esm.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/utils/js_utils.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/EnterLeaveCounter.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/BrowserDetector.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/MonotonicInterpolant.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/OffsetUtils.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/NativeTypes.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/nativeTypesConfig.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/getDataFromDataTransfer.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/NativeDragSource.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/index.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/OptionsReader.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/HTML5BackendImpl.js","webpack://goformz-web-app/./node_modules/react-dnd-html5-backend/dist/esm/index.js","webpack://goformz-web-app/./node_modules/react-dnd/dist/esm/core/DndContext.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/actions/dragDrop/types.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/actions/dragDrop/local/setClientOffset.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/utils/js_utils.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/actions/dragDrop/beginDrag.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/actions/dragDrop/publishDragSource.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/utils/matchesType.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/actions/dragDrop/hover.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/actions/dragDrop/drop.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/actions/dragDrop/endDrag.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/classes/DragDropManagerImpl.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/actions/dragDrop/index.js","webpack://goformz-web-app/./node_modules/dnd-core/node_modules/redux/es/redux.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/utils/equality.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/reducers/dragOffset.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/actions/registry.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/reducers/dragOperation.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/reducers/refCount.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/utils/dirtiness.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/reducers/dirtyHandlerIds.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/reducers/stateId.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/reducers/index.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/utils/coords.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/classes/DragDropMonitorImpl.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/interfaces.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/utils/getNextUniqueId.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/contracts.js","webpack://goformz-web-app/./node_modules/@react-dnd/asap/dist/esm/makeRequestCall.mjs","webpack://goformz-web-app/./node_modules/@react-dnd/asap/dist/esm/RawTask.mjs","webpack://goformz-web-app/./node_modules/@react-dnd/asap/dist/esm/asap.mjs","webpack://goformz-web-app/./node_modules/@react-dnd/asap/dist/esm/AsapQueue.mjs","webpack://goformz-web-app/./node_modules/@react-dnd/asap/dist/esm/TaskFactory.mjs","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/classes/HandlerRegistryImpl.js","webpack://goformz-web-app/./node_modules/dnd-core/dist/esm/createDragDropManager.js","webpack://goformz-web-app/./node_modules/react-dnd/dist/esm/core/DndProvider.js","webpack://goformz-web-app/./node_modules/react-dnd/dist/esm/internals/DragSourceMonitorImpl.js","webpack://goformz-web-app/./node_modules/react-dnd/dist/esm/internals/DropTargetMonitorImpl.js","webpack://goformz-web-app/./node_modules/react-dnd/dist/esm/internals/SourceConnector.js","webpack://goformz-web-app/./node_modules/react-dnd/dist/esm/internals/TargetConnector.js","webpack://goformz-web-app/./node_modules/react-dnd/dist/esm/internals/isRef.js","webpack://goformz-web-app/./node_modules/react-dnd/dist/esm/internals/registration.js","webpack://goformz-web-app/./node_modules/react-dnd/dist/esm/internals/wrapConnectorHooks.js","webpack://goformz-web-app/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://goformz-web-app/./node_modules/react/jsx-runtime.js"],"sourcesContent":["/**\r\n * Use invariant() to assert state which your program assumes to be true.\r\n *\r\n * Provide sprintf-style format (only %s is supported) and arguments\r\n * to provide information about what broke and what you were\r\n * expecting.\r\n *\r\n * The invariant message will be stripped in production, but the invariant\r\n * will remain to ensure logic does not differ in production.\r\n */\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\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\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 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\n throw error;\n }\n}\n\nexport { invariant };\n//# sourceMappingURL=invariant.esm.js.map\n","function shallowEqual(objA, objB, compare, compareContext) {\n var compareResult = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (compareResult !== void 0) {\n return !!compareResult;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\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 var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB); // Test for A's keys different from B.\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n compareResult = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (compareResult === false || compareResult === void 0 && valueA !== valueB) {\n return false;\n }\n }\n\n return true;\n}\n\nexport { shallowEqual };\n//# sourceMappingURL=shallowequal.esm.js.map\n","// cheap lodash replacements\nexport function memoize(fn) {\n var result = null;\n\n var memoized = function memoized() {\n if (result == null) {\n result = fn();\n }\n\n return result;\n };\n\n return memoized;\n}\n/**\n * drop-in replacement for _.without\n */\n\nexport function without(items, item) {\n return items.filter(function (i) {\n return i !== item;\n });\n}\nexport function union(itemsA, itemsB) {\n var set = new Set();\n\n var insertItem = function insertItem(item) {\n return set.add(item);\n };\n\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n var result = [];\n set.forEach(function (key) {\n return result.push(key);\n });\n return result;\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nimport { union, without } from './utils/js_utils';\nexport var EnterLeaveCounter = /*#__PURE__*/function () {\n function EnterLeaveCounter(isNodeInDocument) {\n _classCallCheck(this, EnterLeaveCounter);\n\n _defineProperty(this, \"entered\", []);\n\n _defineProperty(this, \"isNodeInDocument\", void 0);\n\n this.isNodeInDocument = isNodeInDocument;\n }\n\n _createClass(EnterLeaveCounter, [{\n key: \"enter\",\n value: function enter(enteringNode) {\n var _this = this;\n\n var previousLength = this.entered.length;\n\n var isNodeEntered = function isNodeEntered(node) {\n return _this.isNodeInDocument(node) && (!node.contains || node.contains(enteringNode));\n };\n\n this.entered = union(this.entered.filter(isNodeEntered), [enteringNode]);\n return previousLength === 0 && this.entered.length > 0;\n }\n }, {\n key: \"leave\",\n value: function leave(leavingNode) {\n var previousLength = this.entered.length;\n this.entered = without(this.entered.filter(this.isNodeInDocument), leavingNode);\n return previousLength > 0 && this.entered.length === 0;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.entered = [];\n }\n }]);\n\n return EnterLeaveCounter;\n}();","import { memoize } from './utils/js_utils';\nexport var isFirefox = memoize(function () {\n return /firefox/i.test(navigator.userAgent);\n});\nexport var isSafari = memoize(function () {\n return Boolean(window.safari);\n});","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nexport var MonotonicInterpolant = /*#__PURE__*/function () {\n function MonotonicInterpolant(xs, ys) {\n _classCallCheck(this, MonotonicInterpolant);\n\n _defineProperty(this, \"xs\", void 0);\n\n _defineProperty(this, \"ys\", void 0);\n\n _defineProperty(this, \"c1s\", void 0);\n\n _defineProperty(this, \"c2s\", void 0);\n\n _defineProperty(this, \"c3s\", void 0);\n\n var length = xs.length; // Rearrange xs and ys so that xs is sorted\n\n var indexes = [];\n\n for (var i = 0; i < length; i++) {\n indexes.push(i);\n }\n\n indexes.sort(function (a, b) {\n return xs[a] < xs[b] ? -1 : 1;\n }); // Get consecutive differences and slopes\n\n var dys = [];\n var dxs = [];\n var ms = [];\n var dx;\n var dy;\n\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 } // Get degree-1 coefficients\n\n\n var c1s = [ms[0]];\n\n for (var _i2 = 0; _i2 < dxs.length - 1; _i2++) {\n var m2 = ms[_i2];\n var mNext = ms[_i2 + 1];\n\n if (m2 * mNext <= 0) {\n c1s.push(0);\n } else {\n dx = dxs[_i2];\n var dxNext = dxs[_i2 + 1];\n var common = dx + dxNext;\n c1s.push(3 * common / ((common + dxNext) / m2 + (common + dx) / mNext));\n }\n }\n\n c1s.push(ms[ms.length - 1]); // Get degree-2 and degree-3 coefficients\n\n var c2s = [];\n var c3s = [];\n var m;\n\n for (var _i3 = 0; _i3 < c1s.length - 1; _i3++) {\n m = ms[_i3];\n var c1 = c1s[_i3];\n var invDx = 1 / dxs[_i3];\n\n var _common = c1 + c1s[_i3 + 1] - m - m;\n\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 _createClass(MonotonicInterpolant, [{\n key: \"interpolate\",\n value: function interpolate(x) {\n var xs = this.xs,\n ys = this.ys,\n c1s = this.c1s,\n c2s = this.c2s,\n c3s = this.c3s; // The rightmost point in the dataset should give an exact result\n\n var i = xs.length - 1;\n\n if (x === xs[i]) {\n return ys[i];\n } // Search for the interval x is in, returning the corresponding y if x is one of the original xs\n\n\n var low = 0;\n var high = c3s.length - 1;\n var mid;\n\n while (low <= high) {\n mid = Math.floor(0.5 * (low + high));\n var xHere = xs[mid];\n\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\n i = Math.max(0, high); // Interpolate\n\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\n return MonotonicInterpolant;\n}();","import { isSafari, isFirefox } from './BrowserDetector';\nimport { MonotonicInterpolant } from './MonotonicInterpolant';\nvar ELEMENT_NODE = 1;\nexport function getNodeClientOffset(node) {\n var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n\n if (!el) {\n return null;\n }\n\n var _el$getBoundingClient = el.getBoundingClientRect(),\n top = _el$getBoundingClient.top,\n left = _el$getBoundingClient.left;\n\n return {\n x: left,\n y: top\n };\n}\nexport function getEventClientOffset(e) {\n return {\n x: e.clientX,\n y: e.clientY\n };\n}\n\nfunction isImageNode(node) {\n var _document$documentEle;\n\n return node.nodeName === 'IMG' && (isFirefox() || !((_document$documentEle = document.documentElement) !== null && _document$documentEle !== void 0 && _document$documentEle.contains(node)));\n}\n\nfunction getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight) {\n var dragPreviewWidth = isImage ? dragPreview.width : sourceWidth;\n var dragPreviewHeight = isImage ? dragPreview.height : sourceHeight; // Work around @2x coordinate discrepancies in browsers\n\n if (isSafari() && isImage) {\n dragPreviewHeight /= window.devicePixelRatio;\n dragPreviewWidth /= window.devicePixelRatio;\n }\n\n return {\n dragPreviewWidth: dragPreviewWidth,\n dragPreviewHeight: dragPreviewHeight\n };\n}\n\nexport function getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint) {\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 = isImageNode(dragPreview);\n var dragPreviewNode = isImage ? sourceNode : dragPreview;\n var dragPreviewNodeOffsetFromClient = getNodeClientOffset(dragPreviewNode);\n var offsetFromDragPreview = {\n x: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n y: clientOffset.y - dragPreviewNodeOffsetFromClient.y\n };\n var sourceWidth = sourceNode.offsetWidth,\n sourceHeight = sourceNode.offsetHeight;\n var anchorX = anchorPoint.anchorX,\n anchorY = anchorPoint.anchorY;\n\n var _getDragPreviewSize = getDragPreviewSize(isImage, dragPreview, sourceWidth, sourceHeight),\n dragPreviewWidth = _getDragPreviewSize.dragPreviewWidth,\n dragPreviewHeight = _getDragPreviewSize.dragPreviewHeight;\n\n var calculateYOffset = function calculateYOffset() {\n var interpolantY = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the top\n offsetFromDragPreview.y, // Align at the center\n offsetFromDragPreview.y / sourceHeight * dragPreviewHeight, // Dock to the bottom\n offsetFromDragPreview.y + dragPreviewHeight - sourceHeight]);\n var y = interpolantY.interpolate(anchorY); // Work around Safari 8 positioning bug\n\n if (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 y;\n };\n\n var calculateXOffset = function calculateXOffset() {\n // Interpolate coordinates depending on anchor point\n // If you know a simpler way to do this, let me know\n var interpolantX = new MonotonicInterpolant([0, 0.5, 1], [// Dock to the left\n offsetFromDragPreview.x, // Align at the center\n offsetFromDragPreview.x / sourceWidth * dragPreviewWidth, // Dock to the right\n offsetFromDragPreview.x + dragPreviewWidth - sourceWidth]);\n return interpolantX.interpolate(anchorX);\n }; // Force offsets if specified in the options.\n\n\n var offsetX = offsetPoint.offsetX,\n offsetY = offsetPoint.offsetY;\n var isManualOffsetX = offsetX === 0 || offsetX;\n var isManualOffsetY = offsetY === 0 || offsetY;\n return {\n x: isManualOffsetX ? offsetX : calculateXOffset(),\n y: isManualOffsetY ? offsetY : calculateYOffset()\n };\n}","export var FILE = '__NATIVE_FILE__';\nexport var URL = '__NATIVE_URL__';\nexport var TEXT = '__NATIVE_TEXT__';\nexport var HTML = '__NATIVE_HTML__';","var _nativeTypesConfig;\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\nimport * as NativeTypes from '../NativeTypes';\nimport { getDataFromDataTransfer } from './getDataFromDataTransfer';\nexport var nativeTypesConfig = (_nativeTypesConfig = {}, _defineProperty(_nativeTypesConfig, NativeTypes.FILE, {\n exposeProperties: {\n files: function files(dataTransfer) {\n return Array.prototype.slice.call(dataTransfer.files);\n },\n items: function items(dataTransfer) {\n return dataTransfer.items;\n },\n dataTransfer: function dataTransfer(_dataTransfer) {\n return _dataTransfer;\n }\n },\n matchesTypes: ['Files']\n}), _defineProperty(_nativeTypesConfig, NativeTypes.HTML, {\n exposeProperties: {\n html: function html(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '');\n },\n dataTransfer: function dataTransfer(_dataTransfer2) {\n return _dataTransfer2;\n }\n },\n matchesTypes: ['Html', 'text/html']\n}), _defineProperty(_nativeTypesConfig, NativeTypes.URL, {\n exposeProperties: {\n urls: function urls(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n');\n },\n dataTransfer: function dataTransfer(_dataTransfer3) {\n return _dataTransfer3;\n }\n },\n matchesTypes: ['Url', 'text/uri-list']\n}), _defineProperty(_nativeTypesConfig, NativeTypes.TEXT, {\n exposeProperties: {\n text: function text(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '');\n },\n dataTransfer: function dataTransfer(_dataTransfer4) {\n return _dataTransfer4;\n }\n },\n matchesTypes: ['Text', 'text/plain']\n}), _nativeTypesConfig);","export function getDataFromDataTransfer(dataTransfer, typesToTry, defaultValue) {\n var result = typesToTry.reduce(function (resultSoFar, typeToTry) {\n return resultSoFar || dataTransfer.getData(typeToTry);\n }, '');\n return result != null ? result : defaultValue;\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nexport var NativeDragSource = /*#__PURE__*/function () {\n function NativeDragSource(config) {\n _classCallCheck(this, NativeDragSource);\n\n _defineProperty(this, \"item\", void 0);\n\n _defineProperty(this, \"config\", void 0);\n\n this.config = config;\n this.item = {};\n this.initializeExposedProperties();\n }\n\n _createClass(NativeDragSource, [{\n key: \"initializeExposedProperties\",\n value: function initializeExposedProperties() {\n var _this = this;\n\n Object.keys(this.config.exposeProperties).forEach(function (property) {\n Object.defineProperty(_this.item, property, {\n configurable: true,\n enumerable: true,\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn(\"Browser doesn't allow reading \\\"\".concat(property, \"\\\" until the drop event.\"));\n return null;\n }\n });\n });\n }\n }, {\n key: \"loadDataTransfer\",\n value: function loadDataTransfer(dataTransfer) {\n var _this2 = this;\n\n if (dataTransfer) {\n var newProperties = {};\n Object.keys(this.config.exposeProperties).forEach(function (property) {\n newProperties[property] = {\n value: _this2.config.exposeProperties[property](dataTransfer, _this2.config.matchesTypes),\n configurable: true,\n enumerable: true\n };\n });\n Object.defineProperties(this.item, newProperties);\n }\n }\n }, {\n key: \"canDrag\",\n value: function canDrag() {\n return true;\n }\n }, {\n key: \"beginDrag\",\n value: function beginDrag() {\n return this.item;\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() {// empty\n }\n }]);\n\n return NativeDragSource;\n}();","import { nativeTypesConfig } from './nativeTypesConfig';\nimport { NativeDragSource } from './NativeDragSource';\nexport function createNativeDragSource(type, dataTransfer) {\n var result = new NativeDragSource(nativeTypesConfig[type]);\n result.loadDataTransfer(dataTransfer);\n return result;\n}\nexport function matchNativeItemType(dataTransfer) {\n if (!dataTransfer) {\n return null;\n }\n\n var dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || []);\n return Object.keys(nativeTypesConfig).filter(function (nativeItemType) {\n var matchesTypes = nativeTypesConfig[nativeItemType].matchesTypes;\n return matchesTypes.some(function (t) {\n return dataTransferTypes.indexOf(t) > -1;\n });\n })[0] || null;\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nexport var OptionsReader = /*#__PURE__*/function () {\n function OptionsReader(globalContext, options) {\n _classCallCheck(this, OptionsReader);\n\n _defineProperty(this, \"ownerDocument\", null);\n\n _defineProperty(this, \"globalContext\", void 0);\n\n _defineProperty(this, \"optionsArgs\", void 0);\n\n this.globalContext = globalContext;\n this.optionsArgs = options;\n }\n\n _createClass(OptionsReader, [{\n key: \"window\",\n get: function get() {\n if (this.globalContext) {\n return this.globalContext;\n } else if (typeof window !== 'undefined') {\n return window;\n }\n\n return undefined;\n }\n }, {\n key: \"document\",\n get: function get() {\n var _this$globalContext;\n\n if ((_this$globalContext = this.globalContext) !== null && _this$globalContext !== void 0 && _this$globalContext.document) {\n return this.globalContext.document;\n } else if (this.window) {\n return this.window.document;\n } else {\n return undefined;\n }\n }\n }, {\n key: \"rootElement\",\n get: function get() {\n var _this$optionsArgs;\n\n return ((_this$optionsArgs = this.optionsArgs) === null || _this$optionsArgs === void 0 ? void 0 : _this$optionsArgs.rootElement) || this.window;\n }\n }]);\n\n return OptionsReader;\n}();","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nimport { EnterLeaveCounter } from './EnterLeaveCounter';\nimport { getNodeClientOffset, getEventClientOffset, getDragPreviewOffset } from './OffsetUtils';\nimport { createNativeDragSource, matchNativeItemType } from './NativeDragSources';\nimport * as NativeTypes from './NativeTypes';\nimport { OptionsReader } from './OptionsReader';\nexport var HTML5BackendImpl = /*#__PURE__*/function () {\n // React-Dnd Components\n // Internal State\n function HTML5BackendImpl(manager, globalContext, options) {\n var _this = this;\n\n _classCallCheck(this, HTML5BackendImpl);\n\n _defineProperty(this, \"options\", void 0);\n\n _defineProperty(this, \"actions\", void 0);\n\n _defineProperty(this, \"monitor\", void 0);\n\n _defineProperty(this, \"registry\", void 0);\n\n _defineProperty(this, \"enterLeaveCounter\", void 0);\n\n _defineProperty(this, \"sourcePreviewNodes\", new Map());\n\n _defineProperty(this, \"sourcePreviewNodeOptions\", new Map());\n\n _defineProperty(this, \"sourceNodes\", new Map());\n\n _defineProperty(this, \"sourceNodeOptions\", new Map());\n\n _defineProperty(this, \"dragStartSourceIds\", null);\n\n _defineProperty(this, \"dropTargetIds\", []);\n\n _defineProperty(this, \"dragEnterTargetIds\", []);\n\n _defineProperty(this, \"currentNativeSource\", null);\n\n _defineProperty(this, \"currentNativeHandle\", null);\n\n _defineProperty(this, \"currentDragSourceNode\", null);\n\n _defineProperty(this, \"altKeyPressed\", false);\n\n _defineProperty(this, \"mouseMoveTimeoutTimer\", null);\n\n _defineProperty(this, \"asyncEndDragFrameId\", null);\n\n _defineProperty(this, \"dragOverTargetIds\", null);\n\n _defineProperty(this, \"lastClientOffset\", null);\n\n _defineProperty(this, \"hoverRafId\", null);\n\n _defineProperty(this, \"getSourceClientOffset\", function (sourceId) {\n var source = _this.sourceNodes.get(sourceId);\n\n return source && getNodeClientOffset(source) || null;\n });\n\n _defineProperty(this, \"endDragNativeItem\", function () {\n if (!_this.isDraggingNativeItem()) {\n return;\n }\n\n _this.actions.endDrag();\n\n if (_this.currentNativeHandle) {\n _this.registry.removeSource(_this.currentNativeHandle);\n }\n\n _this.currentNativeHandle = null;\n _this.currentNativeSource = null;\n });\n\n _defineProperty(this, \"isNodeInDocument\", function (node) {\n // Check the node either in the main document or in the current context\n return Boolean(node && _this.document && _this.document.body && _this.document.body.contains(node));\n });\n\n _defineProperty(this, \"endDragIfSourceWasRemovedFromDOM\", function () {\n var node = _this.currentDragSourceNode;\n\n if (node == null || _this.isNodeInDocument(node)) {\n return;\n }\n\n if (_this.clearCurrentDragSourceNode() && _this.monitor.isDragging()) {\n _this.actions.endDrag();\n }\n });\n\n _defineProperty(this, \"handleTopDragStartCapture\", function () {\n _this.clearCurrentDragSourceNode();\n\n _this.dragStartSourceIds = [];\n });\n\n _defineProperty(this, \"handleTopDragStart\", function (e) {\n if (e.defaultPrevented) {\n return;\n }\n\n var dragStartSourceIds = _this.dragStartSourceIds;\n _this.dragStartSourceIds = null;\n var clientOffset = getEventClientOffset(e); // Avoid crashing if we missed a drop event or our previous drag died\n\n if (_this.monitor.isDragging()) {\n _this.actions.endDrag();\n } // Don't publish the source just yet (see why below)\n\n\n _this.actions.beginDrag(dragStartSourceIds || [], {\n publishSource: false,\n getSourceClientOffset: _this.getSourceClientOffset,\n clientOffset: clientOffset\n });\n\n var dataTransfer = e.dataTransfer;\n var nativeType = matchNativeItemType(dataTransfer);\n\n if (_this.monitor.isDragging()) {\n if (dataTransfer && 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\n var sourceNode = _this.sourceNodes.get(sourceId);\n\n var dragPreview = _this.sourcePreviewNodes.get(sourceId) || sourceNode;\n\n if (dragPreview) {\n var _this$getCurrentSourc = _this.getCurrentSourcePreviewNodeOptions(),\n anchorX = _this$getCurrentSourc.anchorX,\n anchorY = _this$getCurrentSourc.anchorY,\n offsetX = _this$getCurrentSourc.offsetX,\n offsetY = _this$getCurrentSourc.offsetY;\n\n var anchorPoint = {\n anchorX: anchorX,\n anchorY: anchorY\n };\n var offsetPoint = {\n offsetX: offsetX,\n offsetY: offsetY\n };\n var dragPreviewOffset = getDragPreviewOffset(sourceNode, dragPreview, clientOffset, anchorPoint, offsetPoint);\n dataTransfer.setDragImage(dragPreview, dragPreviewOffset.x, dragPreviewOffset.y);\n }\n }\n\n try {\n // Firefox won't drag without setting data\n dataTransfer === null || dataTransfer === void 0 ? void 0 : dataTransfer.setData('application/json', {});\n } catch (err) {// IE doesn't support MIME types in setData\n } // Store drag source node so we can check whether\n // it is removed from DOM and trigger endDrag manually.\n\n\n _this.setCurrentDragSourceNode(e.target); // Now we are ready to publish the drag source.. or are we not?\n\n\n var _this$getCurrentSourc2 = _this.getCurrentSourcePreviewNodeOptions(),\n captureDraggingState = _this$getCurrentSourc2.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 _this.actions.publishDragSource();\n }, 0);\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 && !dataTransfer.types && (e.target && !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\n // 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 _defineProperty(this, \"handleTopDragEndCapture\", function () {\n if (_this.clearCurrentDragSourceNode() && _this.monitor.isDragging()) {\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 _defineProperty(this, \"handleTopDragEnterCapture\", function (e) {\n _this.dragEnterTargetIds = [];\n\n var isFirstEnter = _this.enterLeaveCounter.enter(e.target);\n\n if (!isFirstEnter || _this.monitor.isDragging()) {\n return;\n }\n\n var dataTransfer = e.dataTransfer;\n var nativeType = matchNativeItemType(dataTransfer);\n\n if (nativeType) {\n // A native item (such as file or URL) dragged from outside the document\n _this.beginDragNativeItem(nativeType, dataTransfer);\n }\n });\n\n _defineProperty(this, \"handleTopDragEnter\", function (e) {\n var dragEnterTargetIds = _this.dragEnterTargetIds;\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 _this.altKeyPressed = e.altKey; // If the target changes position as the result of `dragenter`, `dragover` might still\n // get dispatched despite target being no longer there. The easy solution is to check\n // whether there actually is a target before firing `hover`.\n\n if (dragEnterTargetIds.length > 0) {\n _this.actions.hover(dragEnterTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n }\n\n var canDrop = dragEnterTargetIds.some(function (targetId) {\n return _this.monitor.canDropOnTarget(targetId);\n });\n\n if (canDrop) {\n // IE requires this to fire dragover events\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = _this.getCurrentDropEffect();\n }\n }\n });\n\n _defineProperty(this, \"handleTopDragOverCapture\", function () {\n _this.dragOverTargetIds = [];\n });\n\n _defineProperty(this, \"handleTopDragOver\", function (e) {\n var dragOverTargetIds = _this.dragOverTargetIds;\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\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n\n return;\n }\n\n _this.altKeyPressed = e.altKey;\n _this.lastClientOffset = getEventClientOffset(e);\n\n if (_this.hoverRafId === null && typeof requestAnimationFrame !== 'undefined') {\n _this.hoverRafId = requestAnimationFrame(function () {\n if (_this.monitor.isDragging()) {\n _this.actions.hover(dragOverTargetIds || [], {\n clientOffset: _this.lastClientOffset\n });\n }\n\n _this.hoverRafId = null;\n });\n }\n\n var canDrop = (dragOverTargetIds || []).some(function (targetId) {\n return _this.monitor.canDropOnTarget(targetId);\n });\n\n if (canDrop) {\n // Show user-specified drop effect.\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = _this.getCurrentDropEffect();\n }\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 } else {\n e.preventDefault();\n\n if (e.dataTransfer) {\n e.dataTransfer.dropEffect = 'none';\n }\n }\n });\n\n _defineProperty(this, \"handleTopDragLeaveCapture\", function (e) {\n if (_this.isDraggingNativeItem()) {\n e.preventDefault();\n }\n\n var isLastLeave = _this.enterLeaveCounter.leave(e.target);\n\n if (!isLastLeave) {\n return;\n }\n\n if (_this.isDraggingNativeItem()) {\n setTimeout(function () {\n return _this.endDragNativeItem();\n }, 0);\n }\n });\n\n _defineProperty(this, \"handleTopDropCapture\", function (e) {\n _this.dropTargetIds = [];\n\n if (_this.isDraggingNativeItem()) {\n var _this$currentNativeSo;\n\n e.preventDefault();\n (_this$currentNativeSo = _this.currentNativeSource) === null || _this$currentNativeSo === void 0 ? void 0 : _this$currentNativeSo.loadDataTransfer(e.dataTransfer);\n } else if (matchNativeItemType(e.dataTransfer)) {\n // Dragging some elements, like and may still behave like a native drag event,\n // even if the current drag event matches a user-defined type.\n // Stop the default behavior when we're not expecting a native item to be dropped.\n e.preventDefault();\n }\n\n _this.enterLeaveCounter.reset();\n });\n\n _defineProperty(this, \"handleTopDrop\", function (e) {\n var dropTargetIds = _this.dropTargetIds;\n _this.dropTargetIds = [];\n\n _this.actions.hover(dropTargetIds, {\n clientOffset: getEventClientOffset(e)\n });\n\n _this.actions.drop({\n dropEffect: _this.getCurrentDropEffect()\n });\n\n if (_this.isDraggingNativeItem()) {\n _this.endDragNativeItem();\n } else if (_this.monitor.isDragging()) {\n _this.actions.endDrag();\n }\n });\n\n _defineProperty(this, \"handleSelectStart\", function (e) {\n var target = e.target; // Only IE requires us to explicitly say\n // we want drag drop operation to start\n\n if (typeof target.dragDrop !== 'function') {\n return;\n } // Inputs and textareas should be selectable\n\n\n if (target.tagName === 'INPUT' || target.tagName === 'SELECT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return;\n } // For other targets, ask IE\n // to enable drag and drop\n\n\n e.preventDefault();\n target.dragDrop();\n });\n\n this.options = new OptionsReader(globalContext, options);\n this.actions = manager.getActions();\n this.monitor = manager.getMonitor();\n this.registry = manager.getRegistry();\n this.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument);\n }\n /**\n * Generate profiling statistics for the HTML5Backend.\n */\n\n\n _createClass(HTML5BackendImpl, [{\n key: \"profile\",\n value: function profile() {\n var _this$dragStartSource, _this$dragOverTargetI;\n\n return {\n sourcePreviewNodes: this.sourcePreviewNodes.size,\n sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,\n sourceNodeOptions: this.sourceNodeOptions.size,\n sourceNodes: this.sourceNodes.size,\n dragStartSourceIds: ((_this$dragStartSource = this.dragStartSourceIds) === null || _this$dragStartSource === void 0 ? void 0 : _this$dragStartSource.length) || 0,\n dropTargetIds: this.dropTargetIds.length,\n dragEnterTargetIds: this.dragEnterTargetIds.length,\n dragOverTargetIds: ((_this$dragOverTargetI = this.dragOverTargetIds) === null || _this$dragOverTargetI === void 0 ? void 0 : _this$dragOverTargetI.length) || 0\n };\n } // public for test\n\n }, {\n key: \"window\",\n get: function get() {\n return this.options.window;\n }\n }, {\n key: \"document\",\n get: function get() {\n return this.options.document;\n }\n /**\n * Get the root element to use for event subscriptions\n */\n\n }, {\n key: \"rootElement\",\n get: function get() {\n return this.options.rootElement;\n }\n }, {\n key: \"setup\",\n value: function setup() {\n var root = this.rootElement;\n\n if (root === undefined) {\n return;\n }\n\n if (root.__isReactDndBackendSetUp) {\n throw new Error('Cannot have two HTML5 backends at the same time.');\n }\n\n root.__isReactDndBackendSetUp = true;\n this.addEventListeners(root);\n }\n }, {\n key: \"teardown\",\n value: function teardown() {\n var root = this.rootElement;\n\n if (root === undefined) {\n return;\n }\n\n root.__isReactDndBackendSetUp = false;\n this.removeEventListeners(this.rootElement);\n this.clearCurrentDragSourceNode();\n\n if (this.asyncEndDragFrameId) {\n var _this$window;\n\n (_this$window = this.window) === null || _this$window === void 0 ? void 0 : _this$window.cancelAnimationFrame(this.asyncEndDragFrameId);\n }\n }\n }, {\n key: \"connectDragPreview\",\n value: function connectDragPreview(sourceId, node, options) {\n var _this2 = this;\n\n this.sourcePreviewNodeOptions.set(sourceId, options);\n this.sourcePreviewNodes.set(sourceId, node);\n return function () {\n _this2.sourcePreviewNodes.delete(sourceId);\n\n _this2.sourcePreviewNodeOptions.delete(sourceId);\n };\n }\n }, {\n key: \"connectDragSource\",\n value: function connectDragSource(sourceId, node, options) {\n var _this3 = this;\n\n this.sourceNodes.set(sourceId, node);\n this.sourceNodeOptions.set(sourceId, options);\n\n var handleDragStart = function handleDragStart(e) {\n return _this3.handleDragStart(e, sourceId);\n };\n\n var handleSelectStart = function handleSelectStart(e) {\n return _this3.handleSelectStart(e);\n };\n\n node.setAttribute('draggable', 'true');\n node.addEventListener('dragstart', handleDragStart);\n node.addEventListener('selectstart', handleSelectStart);\n return function () {\n _this3.sourceNodes.delete(sourceId);\n\n _this3.sourceNodeOptions.delete(sourceId);\n\n node.removeEventListener('dragstart', handleDragStart);\n node.removeEventListener('selectstart', handleSelectStart);\n node.setAttribute('draggable', 'false');\n };\n }\n }, {\n key: \"connectDropTarget\",\n value: function connectDropTarget(targetId, node) {\n var _this4 = this;\n\n var handleDragEnter = function handleDragEnter(e) {\n return _this4.handleDragEnter(e, targetId);\n };\n\n var handleDragOver = function handleDragOver(e) {\n return _this4.handleDragOver(e, targetId);\n };\n\n var handleDrop = function handleDrop(e) {\n return _this4.handleDrop(e, targetId);\n };\n\n node.addEventListener('dragenter', handleDragEnter);\n node.addEventListener('dragover', handleDragOver);\n node.addEventListener('drop', handleDrop);\n return function () {\n node.removeEventListener('dragenter', handleDragEnter);\n node.removeEventListener('dragover', handleDragOver);\n node.removeEventListener('drop', handleDrop);\n };\n }\n }, {\n key: \"addEventListeners\",\n value: function addEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.addEventListener) {\n return;\n }\n\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 key: \"removeEventListeners\",\n value: function removeEventListeners(target) {\n // SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n if (!target.removeEventListener) {\n return;\n }\n\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 key: \"getCurrentSourceNodeOptions\",\n value: function getCurrentSourceNodeOptions() {\n var sourceId = this.monitor.getSourceId();\n var sourceNodeOptions = this.sourceNodeOptions.get(sourceId);\n return _objectSpread({\n dropEffect: this.altKeyPressed ? 'copy' : 'move'\n }, sourceNodeOptions || {});\n }\n }, {\n key: \"getCurrentDropEffect\",\n value: 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 key: \"getCurrentSourcePreviewNodeOptions\",\n value: function getCurrentSourcePreviewNodeOptions() {\n var sourceId = this.monitor.getSourceId();\n var sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId);\n return _objectSpread({\n anchorX: 0.5,\n anchorY: 0.5,\n captureDraggingState: false\n }, sourcePreviewNodeOptions || {});\n }\n }, {\n key: \"isDraggingNativeItem\",\n value: 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 key: \"beginDragNativeItem\",\n value: function beginDragNativeItem(type, dataTransfer) {\n this.clearCurrentDragSourceNode();\n this.currentNativeSource = createNativeDragSource(type, dataTransfer);\n this.currentNativeHandle = this.registry.addSource(type, this.currentNativeSource);\n this.actions.beginDrag([this.currentNativeHandle]);\n }\n }, {\n key: \"setCurrentDragSourceNode\",\n value: function setCurrentDragSourceNode(node) {\n var _this5 = this;\n\n this.clearCurrentDragSourceNode();\n this.currentDragSourceNode = node; // A timeout of > 0 is necessary to resolve Firefox issue referenced\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n\n var MOUSE_MOVE_TIMEOUT = 1000; // 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 //\n // We need to wait before we start listening for mousemove events.\n // This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event\n // immediately in some browsers.\n //\n // See:\n // * https://github.com/react-dnd/react-dnd/pull/928\n // * https://github.com/react-dnd/react-dnd/issues/869\n //\n\n this.mouseMoveTimeoutTimer = setTimeout(function () {\n var _this5$rootElement;\n\n return (_this5$rootElement = _this5.rootElement) === null || _this5$rootElement === void 0 ? void 0 : _this5$rootElement.addEventListener('mousemove', _this5.endDragIfSourceWasRemovedFromDOM, true);\n }, MOUSE_MOVE_TIMEOUT);\n }\n }, {\n key: \"clearCurrentDragSourceNode\",\n value: function clearCurrentDragSourceNode() {\n if (this.currentDragSourceNode) {\n this.currentDragSourceNode = null;\n\n if (this.rootElement) {\n var _this$window2;\n\n (_this$window2 = this.window) === null || _this$window2 === void 0 ? void 0 : _this$window2.clearTimeout(this.mouseMoveTimeoutTimer || undefined);\n this.rootElement.removeEventListener('mousemove', this.endDragIfSourceWasRemovedFromDOM, true);\n }\n\n this.mouseMoveTimeoutTimer = null;\n return true;\n }\n\n return false;\n }\n }, {\n key: \"handleDragStart\",\n value: function handleDragStart(e, sourceId) {\n if (e.defaultPrevented) {\n return;\n }\n\n if (!this.dragStartSourceIds) {\n this.dragStartSourceIds = [];\n }\n\n this.dragStartSourceIds.unshift(sourceId);\n }\n }, {\n key: \"handleDragEnter\",\n value: function handleDragEnter(e, targetId) {\n this.dragEnterTargetIds.unshift(targetId);\n }\n }, {\n key: \"handleDragOver\",\n value: function handleDragOver(e, targetId) {\n if (this.dragOverTargetIds === null) {\n this.dragOverTargetIds = [];\n }\n\n this.dragOverTargetIds.unshift(targetId);\n }\n }, {\n key: \"handleDrop\",\n value: function handleDrop(e, targetId) {\n this.dropTargetIds.unshift(targetId);\n }\n }]);\n\n return HTML5BackendImpl;\n}();","import { HTML5BackendImpl } from './HTML5BackendImpl';\nimport * as NativeTypes from './NativeTypes';\nexport { getEmptyImage } from './getEmptyImage';\nexport { NativeTypes };\nexport var HTML5Backend = function createBackend(manager, context, options) {\n return new HTML5BackendImpl(manager, context, options);\n};","import { createContext } from 'react';\n/**\n * Create the React Context\n */\n\nexport var DndContext = createContext({\n dragDropManager: undefined\n});","export var INIT_COORDS = 'dnd-core/INIT_COORDS';\nexport var BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';\nexport var PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';\nexport var HOVER = 'dnd-core/HOVER';\nexport var DROP = 'dnd-core/DROP';\nexport var END_DRAG = 'dnd-core/END_DRAG';","import { INIT_COORDS } from '../types';\nexport function setClientOffset(clientOffset, sourceClientOffset) {\n return {\n type: INIT_COORDS,\n payload: {\n sourceClientOffset: sourceClientOffset || null,\n clientOffset: clientOffset || null\n }\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n// cheap lodash replacements\n\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */\nexport function get(obj, path, defaultValue) {\n return path.split('.').reduce(function (a, c) {\n return a && a[c] ? a[c] : defaultValue || null;\n }, obj);\n}\n/**\n * drop-in replacement for _.without\n */\n\nexport function without(items, item) {\n return items.filter(function (i) {\n return i !== item;\n });\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */\n\nexport function isString(input) {\n return typeof input === 'string';\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */\n\nexport function isObject(input) {\n return _typeof(input) === 'object';\n}\n/**\n * repalcement for _.xor\n * @param itemsA\n * @param itemsB\n */\n\nexport function xor(itemsA, itemsB) {\n var map = new Map();\n\n var insertItem = function insertItem(item) {\n map.set(item, map.has(item) ? map.get(item) + 1 : 1);\n };\n\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n var result = [];\n map.forEach(function (count, key) {\n if (count === 1) {\n result.push(key);\n }\n });\n return result;\n}\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */\n\nexport function intersection(itemsA, itemsB) {\n return itemsA.filter(function (t) {\n return itemsB.indexOf(t) > -1;\n });\n}","import { invariant } from '@react-dnd/invariant';\nimport { setClientOffset } from './local/setClientOffset';\nimport { isObject } from '../../utils/js_utils';\nimport { BEGIN_DRAG, INIT_COORDS } from './types';\nvar ResetCoordinatesAction = {\n type: INIT_COORDS,\n payload: {\n clientOffset: null,\n sourceClientOffset: null\n }\n};\nexport function createBeginDrag(manager) {\n return function beginDrag() {\n var sourceIds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n publishSource: true\n };\n var _options$publishSourc = options.publishSource,\n publishSource = _options$publishSourc === void 0 ? true : _options$publishSourc,\n clientOffset = options.clientOffset,\n getSourceClientOffset = options.getSourceClientOffset;\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry(); // Initialize the coordinates using the client offset\n\n manager.dispatch(setClientOffset(clientOffset));\n verifyInvariants(sourceIds, monitor, registry); // Get the draggable source\n\n var sourceId = getDraggableSource(sourceIds, monitor);\n\n if (sourceId === null) {\n manager.dispatch(ResetCoordinatesAction);\n return;\n } // Get the source client offset\n\n\n var sourceClientOffset = null;\n\n if (clientOffset) {\n if (!getSourceClientOffset) {\n throw new Error('getSourceClientOffset must be defined');\n }\n\n verifyGetSourceClientOffsetIsFunction(getSourceClientOffset);\n sourceClientOffset = getSourceClientOffset(sourceId);\n } // Initialize the full coordinates\n\n\n manager.dispatch(setClientOffset(clientOffset, sourceClientOffset));\n var source = registry.getSource(sourceId);\n var item = source.beginDrag(monitor, sourceId); // If source.beginDrag returns null, this is an indicator to cancel the drag\n\n if (item == null) {\n return undefined;\n }\n\n verifyItemIsObject(item);\n registry.pinSource(sourceId);\n var itemType = registry.getSourceType(sourceId);\n return {\n type: BEGIN_DRAG,\n payload: {\n itemType: itemType,\n item: item,\n sourceId: sourceId,\n clientOffset: clientOffset || null,\n sourceClientOffset: sourceClientOffset || null,\n isSourcePublic: !!publishSource\n }\n };\n };\n}\n\nfunction verifyInvariants(sourceIds, monitor, registry) {\n invariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');\n sourceIds.forEach(function (sourceId) {\n invariant(registry.getSource(sourceId), 'Expected sourceIds to be registered.');\n });\n}\n\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset) {\n invariant(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');\n}\n\nfunction verifyItemIsObject(item) {\n invariant(isObject(item), 'Item must be an object.');\n}\n\nfunction getDraggableSource(sourceIds, monitor) {\n var sourceId = null;\n\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\n return sourceId;\n}","import { PUBLISH_DRAG_SOURCE } from './types';\nexport function createPublishDragSource(manager) {\n return function publishDragSource() {\n var monitor = manager.getMonitor();\n\n if (monitor.isDragging()) {\n return {\n type: PUBLISH_DRAG_SOURCE\n };\n }\n };\n}","export function matchesType(targetType, draggedItemType) {\n if (draggedItemType === null) {\n return targetType === null;\n }\n\n return Array.isArray(targetType) ? targetType.some(function (t) {\n return t === draggedItemType;\n }) : targetType === draggedItemType;\n}","import { invariant } from '@react-dnd/invariant';\nimport { matchesType } from '../../utils/matchesType';\nimport { HOVER } from './types';\nexport function createHover(manager) {\n return function hover(targetIdsArg) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n clientOffset = _ref.clientOffset;\n\n verifyTargetIdsIsArray(targetIdsArg);\n var targetIds = targetIdsArg.slice(0);\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n checkInvariants(targetIds, monitor, registry);\n var draggedItemType = monitor.getItemType();\n removeNonMatchingTargetIds(targetIds, registry, draggedItemType);\n hoverAllTargets(targetIds, monitor, registry);\n return {\n type: HOVER,\n payload: {\n targetIds: targetIds,\n clientOffset: clientOffset || null\n }\n };\n };\n}\n\nfunction verifyTargetIdsIsArray(targetIdsArg) {\n invariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.');\n}\n\nfunction checkInvariants(targetIds, monitor, registry) {\n invariant(monitor.isDragging(), 'Cannot call hover while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call hover after drop.');\n\n for (var i = 0; i < targetIds.length; i++) {\n var targetId = targetIds[i];\n invariant(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');\n var target = registry.getTarget(targetId);\n invariant(target, 'Expected targetIds to be registered.');\n }\n}\n\nfunction removeNonMatchingTargetIds(targetIds, registry, draggedItemType) {\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 i = targetIds.length - 1; i >= 0; i--) {\n var targetId = targetIds[i];\n var targetType = registry.getTargetType(targetId);\n\n if (!matchesType(targetType, draggedItemType)) {\n targetIds.splice(i, 1);\n }\n }\n}\n\nfunction hoverAllTargets(targetIds, monitor, registry) {\n // Finally call hover on all matching targets.\n targetIds.forEach(function (targetId) {\n var target = registry.getTarget(targetId);\n target.hover(monitor, targetId);\n });\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { invariant } from '@react-dnd/invariant';\nimport { DROP } from './types';\nimport { isObject } from '../../utils/js_utils';\nexport function createDrop(manager) {\n return function drop() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n verifyInvariants(monitor);\n var targetIds = getDroppableTargets(monitor); // Multiple actions are dispatched here, which is why this doesn't return an action\n\n targetIds.forEach(function (targetId, index) {\n var dropResult = determineDropResult(targetId, index, registry, monitor);\n var action = {\n type: DROP,\n payload: {\n dropResult: _objectSpread(_objectSpread({}, options), dropResult)\n }\n };\n manager.dispatch(action);\n });\n };\n}\n\nfunction verifyInvariants(monitor) {\n invariant(monitor.isDragging(), 'Cannot call drop while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.');\n}\n\nfunction determineDropResult(targetId, index, registry, monitor) {\n var target = registry.getTarget(targetId);\n var dropResult = target ? target.drop(monitor, targetId) : undefined;\n verifyDropResultType(dropResult);\n\n if (typeof dropResult === 'undefined') {\n dropResult = index === 0 ? {} : monitor.getDropResult();\n }\n\n return dropResult;\n}\n\nfunction verifyDropResultType(dropResult) {\n invariant(typeof dropResult === 'undefined' || isObject(dropResult), 'Drop result must either be an object or undefined.');\n}\n\nfunction getDroppableTargets(monitor) {\n var targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor);\n targetIds.reverse();\n return targetIds;\n}","import { invariant } from '@react-dnd/invariant';\nimport { END_DRAG } from './types';\nexport function createEndDrag(manager) {\n return function endDrag() {\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n verifyIsDragging(monitor);\n var sourceId = monitor.getSourceId();\n\n if (sourceId != null) {\n var source = registry.getSource(sourceId, true);\n source.endDrag(monitor, sourceId);\n registry.unpinSource();\n }\n\n return {\n type: END_DRAG\n };\n };\n}\n\nfunction verifyIsDragging(monitor) {\n invariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.');\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nimport { createDragDropActions } from '../actions/dragDrop';\nexport var DragDropManagerImpl = /*#__PURE__*/function () {\n function DragDropManagerImpl(store, monitor) {\n var _this = this;\n\n _classCallCheck(this, DragDropManagerImpl);\n\n _defineProperty(this, \"store\", void 0);\n\n _defineProperty(this, \"monitor\", void 0);\n\n _defineProperty(this, \"backend\", void 0);\n\n _defineProperty(this, \"isSetUp\", false);\n\n _defineProperty(this, \"handleRefCountChange\", function () {\n var shouldSetUp = _this.store.getState().refCount > 0;\n\n if (_this.backend) {\n if (shouldSetUp && !_this.isSetUp) {\n _this.backend.setup();\n\n _this.isSetUp = true;\n } else if (!shouldSetUp && _this.isSetUp) {\n _this.backend.teardown();\n\n _this.isSetUp = false;\n }\n }\n });\n\n this.store = store;\n this.monitor = monitor;\n store.subscribe(this.handleRefCountChange);\n }\n\n _createClass(DragDropManagerImpl, [{\n key: \"receiveBackend\",\n value: function receiveBackend(backend) {\n this.backend = backend;\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.monitor.registry;\n }\n }, {\n key: \"getActions\",\n value: function getActions() {\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n var manager = this;\n var dispatch = this.store.dispatch;\n\n function bindActionCreator(actionCreator) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var action = actionCreator.apply(manager, args);\n\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n\n var actions = createDragDropActions(this);\n return Object.keys(actions).reduce(function (boundActions, key) {\n var action = actions[key];\n boundActions[key] = bindActionCreator(action);\n return boundActions;\n }, {});\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(action) {\n this.store.dispatch(action);\n }\n }]);\n\n return DragDropManagerImpl;\n}();","import { createBeginDrag } from './beginDrag';\nimport { createPublishDragSource } from './publishDragSource';\nimport { createHover } from './hover';\nimport { createDrop } from './drop';\nimport { createEndDrag } from './endDrag';\nexport * from './types';\nexport function createDragDropActions(manager) {\n return {\n beginDrag: createBeginDrag(manager),\n publishDragSource: createPublishDragSource(manager),\n hover: createHover(manager),\n drop: createDrop(manager),\n endDrag: createEndDrag(manager)\n };\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\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 randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\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(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\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\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\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\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\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\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : '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\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\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\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\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\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' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\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 {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\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\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\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\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","export var strictEquality = function strictEquality(a, b) {\n return a === b;\n};\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */\n\nexport function areCoordsEqual(offsetA, offsetB) {\n if (!offsetA && !offsetB) {\n return true;\n } else if (!offsetA || !offsetB) {\n return false;\n } else {\n return offsetA.x === offsetB.x && offsetA.y === offsetB.y;\n }\n}\n/**\n * Determines if two arrays of items are equal\n * @param a The first array of items\n * @param b The second array of items\n */\n\nexport function areArraysEqual(a, b) {\n var isEqual = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : strictEquality;\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (var i = 0; i < a.length; ++i) {\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { INIT_COORDS, BEGIN_DRAG, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { areCoordsEqual } from '../utils/equality';\nvar initialState = {\n initialSourceClientOffset: null,\n initialClientOffset: null,\n clientOffset: null\n};\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var payload = action.payload;\n\n switch (action.type) {\n case INIT_COORDS:\n case BEGIN_DRAG:\n return {\n initialSourceClientOffset: payload.sourceClientOffset,\n initialClientOffset: payload.clientOffset,\n clientOffset: payload.clientOffset\n };\n\n case HOVER:\n if (areCoordsEqual(state.clientOffset, payload.clientOffset)) {\n return state;\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n clientOffset: payload.clientOffset\n });\n\n case END_DRAG:\n case DROP:\n return initialState;\n\n default:\n return state;\n }\n}","export var ADD_SOURCE = 'dnd-core/ADD_SOURCE';\nexport var ADD_TARGET = 'dnd-core/ADD_TARGET';\nexport var REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';\nexport var REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';\nexport function addSource(sourceId) {\n return {\n type: ADD_SOURCE,\n payload: {\n sourceId: sourceId\n }\n };\n}\nexport function addTarget(targetId) {\n return {\n type: ADD_TARGET,\n payload: {\n targetId: targetId\n }\n };\n}\nexport function removeSource(sourceId) {\n return {\n type: REMOVE_SOURCE,\n payload: {\n sourceId: sourceId\n }\n };\n}\nexport function removeTarget(targetId) {\n return {\n type: REMOVE_TARGET,\n payload: {\n targetId: targetId\n }\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { BEGIN_DRAG, PUBLISH_DRAG_SOURCE, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { REMOVE_TARGET } from '../actions/registry';\nimport { without } from '../utils/js_utils';\nvar initialState = {\n itemType: null,\n item: null,\n sourceId: null,\n targetIds: [],\n dropResult: null,\n didDrop: false,\n isSourcePublic: null\n};\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var payload = action.payload;\n\n switch (action.type) {\n case BEGIN_DRAG:\n return _objectSpread(_objectSpread({}, state), {}, {\n itemType: payload.itemType,\n item: payload.item,\n sourceId: payload.sourceId,\n isSourcePublic: payload.isSourcePublic,\n dropResult: null,\n didDrop: false\n });\n\n case PUBLISH_DRAG_SOURCE:\n return _objectSpread(_objectSpread({}, state), {}, {\n isSourcePublic: true\n });\n\n case HOVER:\n return _objectSpread(_objectSpread({}, state), {}, {\n targetIds: payload.targetIds\n });\n\n case REMOVE_TARGET:\n if (state.targetIds.indexOf(payload.targetId) === -1) {\n return state;\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n targetIds: without(state.targetIds, payload.targetId)\n });\n\n case DROP:\n return _objectSpread(_objectSpread({}, state), {}, {\n dropResult: payload.dropResult,\n didDrop: true,\n targetIds: []\n });\n\n case END_DRAG:\n return _objectSpread(_objectSpread({}, state), {}, {\n itemType: null,\n item: null,\n sourceId: null,\n dropResult: null,\n didDrop: false,\n isSourcePublic: null,\n targetIds: []\n });\n\n default:\n return state;\n }\n}","import { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry';\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case ADD_SOURCE:\n case ADD_TARGET:\n return state + 1;\n\n case REMOVE_SOURCE:\n case REMOVE_TARGET:\n return state - 1;\n\n default:\n return state;\n }\n}","import { intersection } from './js_utils';\nexport var NONE = [];\nexport var ALL = [];\nNONE.__IS_NONE__ = true;\nALL.__IS_ALL__ = true;\n/**\n * Determines if the given handler IDs are dirty or not.\n *\n * @param dirtyIds The set of dirty handler ids\n * @param handlerIds The set of handler ids to check\n */\n\nexport function areDirty(dirtyIds, handlerIds) {\n if (dirtyIds === NONE) {\n return false;\n }\n\n if (dirtyIds === ALL || typeof handlerIds === 'undefined') {\n return true;\n }\n\n var commonIds = intersection(handlerIds, dirtyIds);\n return commonIds.length > 0;\n}","import { BEGIN_DRAG, PUBLISH_DRAG_SOURCE, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry';\nimport { areArraysEqual } from '../utils/equality';\nimport { NONE, ALL } from '../utils/dirtiness';\nimport { xor } from '../utils/js_utils';\nexport function reduce() {\n var _state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NONE;\n\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case HOVER:\n break;\n\n case ADD_SOURCE:\n case ADD_TARGET:\n case REMOVE_TARGET:\n case REMOVE_SOURCE:\n return NONE;\n\n case BEGIN_DRAG:\n case PUBLISH_DRAG_SOURCE:\n case END_DRAG:\n case DROP:\n default:\n return ALL;\n }\n\n var _action$payload = action.payload,\n _action$payload$targe = _action$payload.targetIds,\n targetIds = _action$payload$targe === void 0 ? [] : _action$payload$targe,\n _action$payload$prevT = _action$payload.prevTargetIds,\n prevTargetIds = _action$payload$prevT === void 0 ? [] : _action$payload$prevT;\n var result = xor(targetIds, prevTargetIds);\n var didChange = result.length > 0 || !areArraysEqual(targetIds, prevTargetIds);\n\n if (!didChange) {\n return NONE;\n } // Check the target ids at the innermost position. If they are valid, add them\n // to the result\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\n if (innermostTargetId) {\n result.push(innermostTargetId);\n }\n }\n\n return result;\n}","export function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return state + 1;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { reduce as dragOffset } from './dragOffset';\nimport { reduce as dragOperation } from './dragOperation';\nimport { reduce as refCount } from './refCount';\nimport { reduce as dirtyHandlerIds } from './dirtyHandlerIds';\nimport { reduce as stateId } from './stateId';\nimport { get } from '../utils/js_utils';\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments.length > 1 ? arguments[1] : undefined;\n return {\n dirtyHandlerIds: dirtyHandlerIds(state.dirtyHandlerIds, {\n type: action.type,\n payload: _objectSpread(_objectSpread({}, action.payload), {}, {\n prevTargetIds: get(state, 'dragOperation.targetIds', [])\n })\n }),\n dragOffset: dragOffset(state.dragOffset, action),\n refCount: refCount(state.refCount, action),\n dragOperation: dragOperation(state.dragOperation, action),\n stateId: stateId(state.stateId)\n };\n}","/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function add(a, b) {\n return {\n x: a.x + b.x,\n y: a.y + b.y\n };\n}\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */\n\nexport function subtract(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n}\n/**\n * Returns the cartesian distance of the drag source component's position, based on its position\n * at the time when the current drag operation has started, and the movement difference.\n *\n * Returns null if no item is being dragged.\n *\n * @param state The offset state to compute from\n */\n\nexport function 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\n return subtract(add(clientOffset, initialSourceClientOffset), initialClientOffset);\n}\n/**\n * Determines the x,y offset between the client offset and the initial client offset\n *\n * @param state The offset state to compute from\n */\n\nexport function getDifferenceFromInitialOffset(state) {\n var clientOffset = state.clientOffset,\n initialClientOffset = state.initialClientOffset;\n\n if (!clientOffset || !initialClientOffset) {\n return null;\n }\n\n return subtract(clientOffset, initialClientOffset);\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nimport { invariant } from '@react-dnd/invariant';\nimport { matchesType } from '../utils/matchesType';\nimport { getSourceClientOffset as _getSourceClientOffset, getDifferenceFromInitialOffset as _getDifferenceFromInitialOffset } from '../utils/coords';\nimport { areDirty } from '../utils/dirtiness';\nexport var DragDropMonitorImpl = /*#__PURE__*/function () {\n function DragDropMonitorImpl(store, registry) {\n _classCallCheck(this, DragDropMonitorImpl);\n\n _defineProperty(this, \"store\", void 0);\n\n _defineProperty(this, \"registry\", void 0);\n\n this.store = store;\n this.registry = registry;\n }\n\n _createClass(DragDropMonitorImpl, [{\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 handlerIds: undefined\n };\n var handlerIds = options.handlerIds;\n invariant(typeof listener === 'function', 'listener must be a function.');\n invariant(typeof handlerIds === 'undefined' || Array.isArray(handlerIds), 'handlerIds, when specified, must be an array of strings.');\n var prevStateId = this.store.getState().stateId;\n\n var handleChange = function handleChange() {\n var state = _this.store.getState();\n\n var currentStateId = state.stateId;\n\n try {\n var canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !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 invariant(typeof listener === 'function', 'listener must be a function.');\n var previousState = this.store.getState().dragOffset;\n\n var handleChange = function handleChange() {\n var nextState = _this2.store.getState().dragOffset;\n\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 if (!sourceId) {\n return false;\n }\n\n var source = this.registry.getSource(sourceId);\n invariant(source, \"Expected to find a valid source. sourceId=\".concat(sourceId));\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 // undefined on initial render\n if (!targetId) {\n return false;\n }\n\n var target = this.registry.getTarget(targetId);\n invariant(target, \"Expected to find a valid target. targetId=\".concat(targetId));\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 matchesType(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 // undefined on initial render\n if (!sourceId) {\n return false;\n }\n\n var source = this.registry.getSource(sourceId, true);\n invariant(source, \"Expected to find a valid source. sourceId=\".concat(sourceId));\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\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] : {\n shallow: false\n };\n\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n\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\n if (draggedItemType && !matchesType(targetType, draggedItemType)) {\n return false;\n }\n\n var targetIds = this.getTargetIds();\n\n if (!targetIds.length) {\n return false;\n }\n\n var index = targetIds.indexOf(targetId);\n\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 Boolean(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 _getSourceClientOffset(this.store.getState().dragOffset);\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return _getDifferenceFromInitialOffset(this.store.getState().dragOffset);\n }\n }]);\n\n return DragDropMonitorImpl;\n}();","export var HandlerRole;\n\n(function (HandlerRole) {\n HandlerRole[\"SOURCE\"] = \"SOURCE\";\n HandlerRole[\"TARGET\"] = \"TARGET\";\n})(HandlerRole || (HandlerRole = {}));","var nextUniqueId = 0;\nexport function getNextUniqueId() {\n return nextUniqueId++;\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { invariant } from '@react-dnd/invariant';\nexport function validateSourceContract(source) {\n invariant(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');\n invariant(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');\n invariant(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');\n}\nexport function validateTargetContract(target) {\n invariant(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');\n invariant(typeof target.hover === 'function', 'Expected hover to be a function.');\n invariant(typeof target.drop === 'function', 'Expected beginDrag to be a function.');\n}\nexport function validateType(type, allowArray) {\n if (allowArray && Array.isArray(type)) {\n type.forEach(function (t) {\n return validateType(t, false);\n });\n return;\n }\n\n invariant(typeof type === 'string' || _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}","// 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/* globals self */ const scope = typeof global !== 'undefined' ? global : self;\nconst BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver;\nexport function 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 const 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 const intervalHandle = setInterval(handleTimer, 50);\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// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nexport function makeRequestCallFromMutationObserver(callback) {\n let toggle = 1;\n const observer = new BrowserMutationObserver(callback);\n const node = document.createTextNode('');\n observer.observe(node, {\n characterData: true\n });\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n}\nexport const makeRequestCall = typeof BrowserMutationObserver === 'function' ? // 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\nmakeRequestCallFromMutationObserver : // 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// 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// 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\nmakeRequestCallFromTimer;\n\n//# sourceMappingURL=makeRequestCall.mjs.map","// `call`, just like a function.\nexport class RawTask {\n call() {\n try {\n this.task && this.task();\n } catch (error) {\n this.onError(error);\n } finally{\n this.task = null;\n this.release(this);\n }\n }\n constructor(onError, release){\n this.onError = onError;\n this.release = release;\n this.task = null;\n }\n}\n\n//# sourceMappingURL=RawTask.mjs.map","import { AsapQueue } from './AsapQueue.mjs';\nimport { TaskFactory } from './TaskFactory.mjs';\nconst asapQueue = new AsapQueue();\nconst taskFactory = new TaskFactory(asapQueue.registerPendingError);\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 */ export function asap(task) {\n asapQueue.enqueueTask(taskFactory.create(task));\n}\n\n//# sourceMappingURL=asap.mjs.map","import { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.mjs';\nexport class AsapQueue {\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.\n enqueueTask(task) {\n const { queue: q , requestFlush } = this;\n if (!q.length) {\n requestFlush();\n this.flushing = true;\n }\n // Equivalent to push, but avoids a function call.\n q[q.length] = task;\n }\n constructor(){\n this.queue = [];\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.\n this.pendingErrors = [];\n // Once a flush has been requested, no further calls to `requestFlush` are\n // necessary until the next `flush` completes.\n // @ts-ignore\n this.flushing = false;\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.\n this.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.\n this.capacity = 1024;\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.\n this.flush = ()=>{\n const { queue: q } = this;\n while(this.index < q.length){\n const currentIndex = this.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 this.index++;\n q[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 (this.index > this.capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for(let scan = 0, newLength = q.length - this.index; scan < newLength; scan++){\n q[scan] = q[scan + this.index];\n }\n q.length -= this.index;\n this.index = 0;\n }\n }\n q.length = 0;\n this.index = 0;\n this.flushing = false;\n };\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 this.registerPendingError = (err)=>{\n this.pendingErrors.push(err);\n this.requestErrorThrow();\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.\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 this.requestFlush = makeRequestCall(this.flush);\n this.requestErrorThrow = makeRequestCallFromTimer(()=>{\n // Throw first error\n if (this.pendingErrors.length) {\n throw this.pendingErrors.shift();\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 // 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 // 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 // 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 // function makeRequestCallFromSetImmediate(callback) {\n // return function requestCall() {\n // setImmediate(callback);\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 // `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 // This is for `asap.js` only.\n // Its name will be periodically randomized to break any code that depends on\n // // its existence.\n // rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\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//# sourceMappingURL=AsapQueue.mjs.map","import { RawTask } from './RawTask.mjs';\nexport class TaskFactory {\n create(task) {\n const tasks = this.freeTasks;\n const t1 = tasks.length ? tasks.pop() : new RawTask(this.onError, (t)=>tasks[tasks.length] = t\n );\n t1.task = task;\n return t1;\n }\n constructor(onError){\n this.onError = onError;\n this.freeTasks = [];\n }\n}\n\n//# sourceMappingURL=TaskFactory.mjs.map","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport { invariant } from '@react-dnd/invariant';\nimport { addSource as _addSource, addTarget as _addTarget, removeSource as _removeSource, removeTarget as _removeTarget } from '../actions/registry';\nimport { getNextUniqueId } from '../utils/getNextUniqueId';\nimport { HandlerRole } from '../interfaces';\nimport { validateSourceContract, validateTargetContract, validateType } from '../contracts';\nimport { asap } from '@react-dnd/asap';\n\nfunction getNextHandlerId(role) {\n var id = getNextUniqueId().toString();\n\n switch (role) {\n case HandlerRole.SOURCE:\n return \"S\".concat(id);\n\n case HandlerRole.TARGET:\n return \"T\".concat(id);\n\n default:\n throw new Error(\"Unknown Handler Role: \".concat(role));\n }\n}\n\nfunction parseRoleFromHandlerId(handlerId) {\n switch (handlerId[0]) {\n case 'S':\n return HandlerRole.SOURCE;\n\n case 'T':\n return HandlerRole.TARGET;\n\n default:\n invariant(false, \"Cannot parse handler ID: \".concat(handlerId));\n }\n}\n\nfunction mapContainsValue(map, searchValue) {\n var entries = map.entries();\n var isDone = false;\n\n do {\n var _entries$next = entries.next(),\n done = _entries$next.done,\n _entries$next$value = _slicedToArray(_entries$next.value, 2),\n value = _entries$next$value[1];\n\n if (value === searchValue) {\n return true;\n }\n\n isDone = !!done;\n } while (!isDone);\n\n return false;\n}\n\nexport var HandlerRegistryImpl = /*#__PURE__*/function () {\n function HandlerRegistryImpl(store) {\n _classCallCheck(this, HandlerRegistryImpl);\n\n _defineProperty(this, \"types\", new Map());\n\n _defineProperty(this, \"dragSources\", new Map());\n\n _defineProperty(this, \"dropTargets\", new Map());\n\n _defineProperty(this, \"pinnedSourceId\", null);\n\n _defineProperty(this, \"pinnedSource\", null);\n\n _defineProperty(this, \"store\", void 0);\n\n this.store = store;\n }\n\n _createClass(HandlerRegistryImpl, [{\n key: \"addSource\",\n value: function addSource(type, source) {\n validateType(type);\n validateSourceContract(source);\n var sourceId = this.addHandler(HandlerRole.SOURCE, type, source);\n this.store.dispatch(_addSource(sourceId));\n return sourceId;\n }\n }, {\n key: \"addTarget\",\n value: function addTarget(type, target) {\n validateType(type, true);\n validateTargetContract(target);\n var targetId = this.addHandler(HandlerRole.TARGET, type, target);\n this.store.dispatch(_addTarget(targetId));\n return targetId;\n }\n }, {\n key: \"containsHandler\",\n value: function containsHandler(handler) {\n return mapContainsValue(this.dragSources, handler) || mapContainsValue(this.dropTargets, handler);\n }\n }, {\n key: \"getSource\",\n value: function getSource(sourceId) {\n var includePinned = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n var isPinned = includePinned && sourceId === this.pinnedSourceId;\n var source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId);\n return source;\n }\n }, {\n key: \"getTarget\",\n value: function getTarget(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.dropTargets.get(targetId);\n }\n }, {\n key: \"getSourceType\",\n value: function getSourceType(sourceId) {\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n return this.types.get(sourceId);\n }\n }, {\n key: \"getTargetType\",\n value: function getTargetType(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.types.get(targetId);\n }\n }, {\n key: \"isSourceId\",\n value: function isSourceId(handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.SOURCE;\n }\n }, {\n key: \"isTargetId\",\n value: function isTargetId(handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.TARGET;\n }\n }, {\n key: \"removeSource\",\n value: function removeSource(sourceId) {\n var _this = this;\n\n invariant(this.getSource(sourceId), 'Expected an existing source.');\n this.store.dispatch(_removeSource(sourceId));\n asap(function () {\n _this.dragSources.delete(sourceId);\n\n _this.types.delete(sourceId);\n });\n }\n }, {\n key: \"removeTarget\",\n value: function removeTarget(targetId) {\n invariant(this.getTarget(targetId), 'Expected an existing target.');\n this.store.dispatch(_removeTarget(targetId));\n this.dropTargets.delete(targetId);\n this.types.delete(targetId);\n }\n }, {\n key: \"pinSource\",\n value: function pinSource(sourceId) {\n var source = this.getSource(sourceId);\n invariant(source, 'Expected an existing source.');\n this.pinnedSourceId = sourceId;\n this.pinnedSource = source;\n }\n }, {\n key: \"unpinSource\",\n value: function unpinSource() {\n invariant(this.pinnedSource, 'No source is pinned at the time.');\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n }\n }, {\n key: \"addHandler\",\n value: function addHandler(role, type, handler) {\n var id = getNextHandlerId(role);\n this.types.set(id, type);\n\n if (role === HandlerRole.SOURCE) {\n this.dragSources.set(id, handler);\n } else if (role === HandlerRole.TARGET) {\n this.dropTargets.set(id, handler);\n }\n\n return id;\n }\n }]);\n\n return HandlerRegistryImpl;\n}();","import { DragDropManagerImpl } from './classes/DragDropManagerImpl';\nimport { createStore } from 'redux';\nimport { reduce } from './reducers';\nimport { DragDropMonitorImpl } from './classes/DragDropMonitorImpl';\nimport { HandlerRegistryImpl } from './classes/HandlerRegistryImpl';\nexport function createDragDropManager(backendFactory) {\n var globalContext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var backendOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var debugMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var store = makeStoreInstance(debugMode);\n var monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store));\n var manager = new DragDropManagerImpl(store, monitor);\n var backend = backendFactory(manager, globalContext, backendOptions);\n manager.receiveBackend(backend);\n return manager;\n}\n\nfunction makeStoreInstance(debugMode) {\n // TODO: if we ever make a react-native version of this,\n // we'll need to consider how to pull off dev-tooling\n var reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;\n return createStore(reduce, debugMode && reduxDevTools && reduxDevTools({\n name: 'dnd-core',\n instanceId: 'dnd-core'\n }));\n}","var _excluded = [\"children\"];\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, memo } from 'react';\nimport { createDragDropManager } from 'dnd-core';\nimport { DndContext } from './DndContext';\nvar refCount = 0;\nvar INSTANCE_SYM = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__');\n/**\n * A React component that provides the React-DnD context\n */\n\nexport var DndProvider = memo(function DndProvider(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _getDndContextValue = getDndContextValue(props),\n _getDndContextValue2 = _slicedToArray(_getDndContextValue, 2),\n manager = _getDndContextValue2[0],\n isGlobalInstance = _getDndContextValue2[1]; // memoized from props\n\n /**\n * If the global context was used to store the DND context\n * then where theres no more references to it we should\n * clean it up to avoid memory leaks\n */\n\n\n useEffect(function () {\n if (isGlobalInstance) {\n var context = getGlobalContext();\n ++refCount;\n return function () {\n if (--refCount === 0) {\n context[INSTANCE_SYM] = null;\n }\n };\n }\n }, []);\n return _jsx(DndContext.Provider, Object.assign({\n value: manager\n }, {\n children: children\n }), void 0);\n});\n\nfunction getDndContextValue(props) {\n if ('manager' in props) {\n var _manager = {\n dragDropManager: props.manager\n };\n return [_manager, false];\n }\n\n var manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode);\n var isGlobalInstance = !props.context;\n return [manager, isGlobalInstance];\n}\n\nfunction createSingletonDndContext(backend) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getGlobalContext();\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var debugMode = arguments.length > 3 ? arguments[3] : undefined;\n var ctx = context;\n\n if (!ctx[INSTANCE_SYM]) {\n ctx[INSTANCE_SYM] = {\n dragDropManager: createDragDropManager(backend, context, options, debugMode)\n };\n }\n\n return ctx[INSTANCE_SYM];\n}\n\nfunction getGlobalContext() {\n return typeof global !== 'undefined' ? global : window;\n}","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nimport { invariant } from '@react-dnd/invariant';\nvar isCallingCanDrag = false;\nvar isCallingIsDragging = false;\nexport var DragSourceMonitorImpl = /*#__PURE__*/function () {\n function DragSourceMonitorImpl(manager) {\n _classCallCheck(this, DragSourceMonitorImpl);\n\n _defineProperty(this, \"internalMonitor\", void 0);\n\n _defineProperty(this, \"sourceId\", null);\n\n this.internalMonitor = manager.getMonitor();\n }\n\n _createClass(DragSourceMonitorImpl, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(sourceId) {\n this.sourceId = sourceId;\n }\n }, {\n key: \"getHandlerId\",\n value: function getHandlerId() {\n return this.sourceId;\n }\n }, {\n key: \"canDrag\",\n value: function canDrag() {\n invariant(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n\n try {\n isCallingCanDrag = true;\n return this.internalMonitor.canDragSource(this.sourceId);\n } finally {\n isCallingCanDrag = false;\n }\n }\n }, {\n key: \"isDragging\",\n value: function isDragging() {\n if (!this.sourceId) {\n return false;\n }\n\n invariant(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n\n try {\n isCallingIsDragging = true;\n return this.internalMonitor.isDraggingSource(this.sourceId);\n } finally {\n isCallingIsDragging = false;\n }\n }\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n }, {\n key: \"isDraggingSource\",\n value: function isDraggingSource(sourceId) {\n return this.internalMonitor.isDraggingSource(sourceId);\n }\n }, {\n key: \"isOverTarget\",\n value: function isOverTarget(targetId, options) {\n return this.internalMonitor.isOverTarget(targetId, options);\n }\n }, {\n key: \"getTargetIds\",\n value: function getTargetIds() {\n return this.internalMonitor.getTargetIds();\n }\n }, {\n key: \"isSourcePublic\",\n value: function isSourcePublic() {\n return this.internalMonitor.isSourcePublic();\n }\n }, {\n key: \"getSourceId\",\n value: function getSourceId() {\n return this.internalMonitor.getSourceId();\n }\n }, {\n key: \"subscribeToOffsetChange\",\n value: function subscribeToOffsetChange(listener) {\n return this.internalMonitor.subscribeToOffsetChange(listener);\n }\n }, {\n key: \"canDragSource\",\n value: function canDragSource(sourceId) {\n return this.internalMonitor.canDragSource(sourceId);\n }\n }, {\n key: \"canDropOnTarget\",\n value: function canDropOnTarget(targetId) {\n return this.internalMonitor.canDropOnTarget(targetId);\n }\n }, {\n key: \"getItemType\",\n value: function getItemType() {\n return this.internalMonitor.getItemType();\n }\n }, {\n key: \"getItem\",\n value: function getItem() {\n return this.internalMonitor.getItem();\n }\n }, {\n key: \"getDropResult\",\n value: function getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n }, {\n key: \"didDrop\",\n value: function didDrop() {\n return this.internalMonitor.didDrop();\n }\n }, {\n key: \"getInitialClientOffset\",\n value: function getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n }, {\n key: \"getInitialSourceClientOffset\",\n value: function getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n }, {\n key: \"getSourceClientOffset\",\n value: function getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n }, {\n key: \"getClientOffset\",\n value: function getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n }]);\n\n return DragSourceMonitorImpl;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nimport { invariant } from '@react-dnd/invariant';\nvar isCallingCanDrop = false;\nexport var DropTargetMonitorImpl = /*#__PURE__*/function () {\n function DropTargetMonitorImpl(manager) {\n _classCallCheck(this, DropTargetMonitorImpl);\n\n _defineProperty(this, \"internalMonitor\", void 0);\n\n _defineProperty(this, \"targetId\", null);\n\n this.internalMonitor = manager.getMonitor();\n }\n\n _createClass(DropTargetMonitorImpl, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(targetId) {\n this.targetId = targetId;\n }\n }, {\n key: \"getHandlerId\",\n value: function getHandlerId() {\n return this.targetId;\n }\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n }, {\n key: \"canDrop\",\n value: function canDrop() {\n // Cut out early if the target id has not been set. This should prevent errors\n // where the user has an older version of dnd-core like in\n // https://github.com/react-dnd/react-dnd/issues/1310\n if (!this.targetId) {\n return false;\n }\n\n invariant(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor');\n\n try {\n isCallingCanDrop = true;\n return this.internalMonitor.canDropOnTarget(this.targetId);\n } finally {\n isCallingCanDrop = false;\n }\n }\n }, {\n key: \"isOver\",\n value: function isOver(options) {\n if (!this.targetId) {\n return false;\n }\n\n return this.internalMonitor.isOverTarget(this.targetId, options);\n }\n }, {\n key: \"getItemType\",\n value: function getItemType() {\n return this.internalMonitor.getItemType();\n }\n }, {\n key: \"getItem\",\n value: function getItem() {\n return this.internalMonitor.getItem();\n }\n }, {\n key: \"getDropResult\",\n value: function getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n }, {\n key: \"didDrop\",\n value: function didDrop() {\n return this.internalMonitor.didDrop();\n }\n }, {\n key: \"getInitialClientOffset\",\n value: function getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n }, {\n key: \"getInitialSourceClientOffset\",\n value: function getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n }, {\n key: \"getSourceClientOffset\",\n value: function getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n }, {\n key: \"getClientOffset\",\n value: function getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n }]);\n\n return DropTargetMonitorImpl;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nimport { wrapConnectorHooks } from './wrapConnectorHooks';\nimport { isRef } from './isRef';\nimport { shallowEqual } from '@react-dnd/shallowequal';\nexport var SourceConnector = /*#__PURE__*/function () {\n // The drop target may either be attached via ref or connect function\n // The drag preview may either be attached via ref or connect function\n function SourceConnector(backend) {\n var _this = this;\n\n _classCallCheck(this, SourceConnector);\n\n _defineProperty(this, \"hooks\", wrapConnectorHooks({\n dragSource: function dragSource(node, options) {\n _this.clearDragSource();\n\n _this.dragSourceOptions = options || null;\n\n if (isRef(node)) {\n _this.dragSourceRef = node;\n } else {\n _this.dragSourceNode = node;\n }\n\n _this.reconnectDragSource();\n },\n dragPreview: function dragPreview(node, options) {\n _this.clearDragPreview();\n\n _this.dragPreviewOptions = options || null;\n\n if (isRef(node)) {\n _this.dragPreviewRef = node;\n } else {\n _this.dragPreviewNode = node;\n }\n\n _this.reconnectDragPreview();\n }\n }));\n\n _defineProperty(this, \"handlerId\", null);\n\n _defineProperty(this, \"dragSourceRef\", null);\n\n _defineProperty(this, \"dragSourceNode\", void 0);\n\n _defineProperty(this, \"dragSourceOptionsInternal\", null);\n\n _defineProperty(this, \"dragSourceUnsubscribe\", void 0);\n\n _defineProperty(this, \"dragPreviewRef\", null);\n\n _defineProperty(this, \"dragPreviewNode\", void 0);\n\n _defineProperty(this, \"dragPreviewOptionsInternal\", null);\n\n _defineProperty(this, \"dragPreviewUnsubscribe\", void 0);\n\n _defineProperty(this, \"lastConnectedHandlerId\", null);\n\n _defineProperty(this, \"lastConnectedDragSource\", null);\n\n _defineProperty(this, \"lastConnectedDragSourceOptions\", null);\n\n _defineProperty(this, \"lastConnectedDragPreview\", null);\n\n _defineProperty(this, \"lastConnectedDragPreviewOptions\", null);\n\n _defineProperty(this, \"backend\", void 0);\n\n this.backend = backend;\n }\n\n _createClass(SourceConnector, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(newHandlerId) {\n if (this.handlerId === newHandlerId) {\n return;\n }\n\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n }, {\n key: \"connectTarget\",\n get: function get() {\n return this.dragSource;\n }\n }, {\n key: \"dragSourceOptions\",\n get: function get() {\n return this.dragSourceOptionsInternal;\n },\n set: function set(options) {\n this.dragSourceOptionsInternal = options;\n }\n }, {\n key: \"dragPreviewOptions\",\n get: function get() {\n return this.dragPreviewOptionsInternal;\n },\n set: function set(options) {\n this.dragPreviewOptionsInternal = options;\n }\n }, {\n key: \"reconnect\",\n value: function reconnect() {\n this.reconnectDragSource();\n this.reconnectDragPreview();\n }\n }, {\n key: \"reconnectDragSource\",\n value: function reconnectDragSource() {\n var dragSource = this.dragSource; // if nothing has changed then don't resubscribe\n\n var didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange();\n\n if (didChange) {\n this.disconnectDragSource();\n }\n\n if (!this.handlerId) {\n return;\n }\n\n if (!dragSource) {\n this.lastConnectedDragSource = dragSource;\n return;\n }\n\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragSource = dragSource;\n this.lastConnectedDragSourceOptions = this.dragSourceOptions;\n this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions);\n }\n }\n }, {\n key: \"reconnectDragPreview\",\n value: function reconnectDragPreview() {\n var dragPreview = this.dragPreview; // if nothing has changed then don't resubscribe\n\n var didChange = this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange();\n\n if (didChange) {\n this.disconnectDragPreview();\n }\n\n if (!this.handlerId) {\n return;\n }\n\n if (!dragPreview) {\n this.lastConnectedDragPreview = dragPreview;\n return;\n }\n\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragPreview = dragPreview;\n this.lastConnectedDragPreviewOptions = this.dragPreviewOptions;\n this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions);\n }\n }\n }, {\n key: \"didHandlerIdChange\",\n value: function didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n }, {\n key: \"didConnectedDragSourceChange\",\n value: function didConnectedDragSourceChange() {\n return this.lastConnectedDragSource !== this.dragSource;\n }\n }, {\n key: \"didConnectedDragPreviewChange\",\n value: function didConnectedDragPreviewChange() {\n return this.lastConnectedDragPreview !== this.dragPreview;\n }\n }, {\n key: \"didDragSourceOptionsChange\",\n value: function didDragSourceOptionsChange() {\n return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions);\n }\n }, {\n key: \"didDragPreviewOptionsChange\",\n value: function didDragPreviewOptionsChange() {\n return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);\n }\n }, {\n key: \"disconnectDragSource\",\n value: function disconnectDragSource() {\n if (this.dragSourceUnsubscribe) {\n this.dragSourceUnsubscribe();\n this.dragSourceUnsubscribe = undefined;\n }\n }\n }, {\n key: \"disconnectDragPreview\",\n value: function disconnectDragPreview() {\n if (this.dragPreviewUnsubscribe) {\n this.dragPreviewUnsubscribe();\n this.dragPreviewUnsubscribe = undefined;\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n }\n }, {\n key: \"dragSource\",\n get: function get() {\n return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current;\n }\n }, {\n key: \"dragPreview\",\n get: function get() {\n return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current;\n }\n }, {\n key: \"clearDragSource\",\n value: function clearDragSource() {\n this.dragSourceNode = null;\n this.dragSourceRef = null;\n }\n }, {\n key: \"clearDragPreview\",\n value: function clearDragPreview() {\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n }]);\n\n return SourceConnector;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\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\nimport { shallowEqual } from '@react-dnd/shallowequal';\nimport { wrapConnectorHooks } from './wrapConnectorHooks';\nimport { isRef } from './isRef';\nexport var TargetConnector = /*#__PURE__*/function () {\n // The drop target may either be attached via ref or connect function\n function TargetConnector(backend) {\n var _this = this;\n\n _classCallCheck(this, TargetConnector);\n\n _defineProperty(this, \"hooks\", wrapConnectorHooks({\n dropTarget: function dropTarget(node, options) {\n _this.clearDropTarget();\n\n _this.dropTargetOptions = options;\n\n if (isRef(node)) {\n _this.dropTargetRef = node;\n } else {\n _this.dropTargetNode = node;\n }\n\n _this.reconnect();\n }\n }));\n\n _defineProperty(this, \"handlerId\", null);\n\n _defineProperty(this, \"dropTargetRef\", null);\n\n _defineProperty(this, \"dropTargetNode\", void 0);\n\n _defineProperty(this, \"dropTargetOptionsInternal\", null);\n\n _defineProperty(this, \"unsubscribeDropTarget\", void 0);\n\n _defineProperty(this, \"lastConnectedHandlerId\", null);\n\n _defineProperty(this, \"lastConnectedDropTarget\", null);\n\n _defineProperty(this, \"lastConnectedDropTargetOptions\", null);\n\n _defineProperty(this, \"backend\", void 0);\n\n this.backend = backend;\n }\n\n _createClass(TargetConnector, [{\n key: \"connectTarget\",\n get: function get() {\n return this.dropTarget;\n }\n }, {\n key: \"reconnect\",\n value: function reconnect() {\n // if nothing has changed then don't resubscribe\n var didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange();\n\n if (didChange) {\n this.disconnectDropTarget();\n }\n\n var dropTarget = this.dropTarget;\n\n if (!this.handlerId) {\n return;\n }\n\n if (!dropTarget) {\n this.lastConnectedDropTarget = dropTarget;\n return;\n }\n\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDropTarget = dropTarget;\n this.lastConnectedDropTargetOptions = this.dropTargetOptions;\n this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions);\n }\n }\n }, {\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(newHandlerId) {\n if (newHandlerId === this.handlerId) {\n return;\n }\n\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n }, {\n key: \"dropTargetOptions\",\n get: function get() {\n return this.dropTargetOptionsInternal;\n },\n set: function set(options) {\n this.dropTargetOptionsInternal = options;\n }\n }, {\n key: \"didHandlerIdChange\",\n value: function didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n }, {\n key: \"didDropTargetChange\",\n value: function didDropTargetChange() {\n return this.lastConnectedDropTarget !== this.dropTarget;\n }\n }, {\n key: \"didOptionsChange\",\n value: function didOptionsChange() {\n return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions);\n }\n }, {\n key: \"disconnectDropTarget\",\n value: function disconnectDropTarget() {\n if (this.unsubscribeDropTarget) {\n this.unsubscribeDropTarget();\n this.unsubscribeDropTarget = undefined;\n }\n }\n }, {\n key: \"dropTarget\",\n get: function get() {\n return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current;\n }\n }, {\n key: \"clearDropTarget\",\n value: function clearDropTarget() {\n this.dropTargetRef = null;\n this.dropTargetNode = null;\n }\n }]);\n\n return TargetConnector;\n}();","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexport function isRef(obj) {\n return (// eslint-disable-next-line no-prototype-builtins\n obj !== null && _typeof(obj) === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current')\n );\n}","export function registerTarget(type, target, manager) {\n var registry = manager.getRegistry();\n var targetId = registry.addTarget(type, target);\n return [targetId, function () {\n return registry.removeTarget(targetId);\n }];\n}\nexport function registerSource(type, source, manager) {\n var registry = manager.getRegistry();\n var sourceId = registry.addSource(type, source);\n return [sourceId, function () {\n return registry.removeSource(sourceId);\n }];\n}","import { invariant } from '@react-dnd/invariant';\nimport { cloneElement, isValidElement } from '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 throw new Error('Only native element nodes can now be passed to React DnD connectors.' + \"You can either wrap \".concat(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 ? arguments[0] : null;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // When passed a node, call the hook straight away.\n if (!isValidElement(elementOrNode)) {\n var node = elementOrNode;\n hook(node, options); // return the node so it can be chained (e.g. when within callback refs\n //
connectDragSource(connectDropTarget(node))}/>\n\n return node;\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\n\n var element = elementOrNode;\n throwIfCompositeComponentElement(element); // When no options are passed, use the hook directly\n\n var ref = options ? function (node) {\n return hook(node, options);\n } : hook;\n return cloneWithRef(element, ref);\n };\n}\n\nexport function wrapConnectorHooks(hooks) {\n var wrappedHooks = {};\n Object.keys(hooks).forEach(function (key) {\n var hook = hooks[key]; // ref objects should be passed straight through without wrapping\n\n if (key.endsWith('Ref')) {\n wrappedHooks[key] = hooks[key];\n } else {\n var wrappedHook = wrapHookToRecognizeElement(hook);\n\n wrappedHooks[key] = function () {\n return wrappedHook;\n };\n }\n });\n return wrappedHooks;\n}\n\nfunction setRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n}\n\nfunction cloneWithRef(element, newRef) {\n var previousRef = element.ref;\n invariant(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://reactjs.org/docs/refs-and-the-dom.html#callback-refs');\n\n if (!previousRef) {\n // When there is no ref on the element, use the new ref directly\n return cloneElement(element, {\n ref: newRef\n });\n } else {\n return cloneElement(element, {\n ref: function ref(node) {\n setRef(previousRef, node);\n setRef(newRef, node);\n }\n });\n }\n}","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n"],"names":["invariant","condition","format","_len","arguments","length","args","Array","_key","error","undefined","Error","argIndex","replace","name","framesToPop","shallowEqual","objA","objB","compare","compareContext","compareResult","call","keysA","Object","keys","keysB","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","key","valueA","valueB","memoize","fn","result","_defineProperties","target","props","i","descriptor","enumerable","configurable","writable","defineProperty","_defineProperty","obj","value","EnterLeaveCounter","isNodeInDocument","instance","Constructor","TypeError","_classCallCheck","this","protoProps","staticProps","enteringNode","_this","previousLength","entered","itemsA","itemsB","set","Set","insertItem","item","add","forEach","push","union","filter","node","contains","leavingNode","items","isFirefox","test","navigator","userAgent","isSafari","Boolean","window","safari","MonotonicInterpolant","xs","ys","indexes","sort","a","b","dx","dy","dys","dxs","ms","_i","c1s","_i2","m2","mNext","dxNext","common","m","c2s","c3s","_i3","c1","invDx","_common","x","mid","low","high","xHere","Math","floor","diff","max","diffSq","ELEMENT_NODE","getNodeClientOffset","el","nodeType","parentElement","_el$getBoundingClient","getBoundingClientRect","top","left","y","getEventClientOffset","e","clientX","clientY","getDragPreviewOffset","sourceNode","dragPreview","clientOffset","anchorPoint","offsetPoint","_document$documentEle","isImage","nodeName","document","documentElement","dragPreviewNodeOffsetFromClient","offsetFromDragPreview","sourceWidth","offsetWidth","sourceHeight","offsetHeight","anchorX","anchorY","_getDragPreviewSize","dragPreviewWidth","width","dragPreviewHeight","height","devicePixelRatio","getDragPreviewSize","offsetX","offsetY","isManualOffsetY","interpolate","_nativeTypesConfig","FILE","URL","TEXT","HTML","getDataFromDataTransfer","dataTransfer","typesToTry","defaultValue","reduce","resultSoFar","typeToTry","getData","nativeTypesConfig","exposeProperties","files","slice","_dataTransfer","matchesTypes","html","_dataTransfer2","urls","split","_dataTransfer3","text","_dataTransfer4","NativeDragSource","config","initializeExposedProperties","property","get","console","warn","concat","_this2","newProperties","defineProperties","monitor","handle","getSourceId","matchNativeItemType","dataTransferTypes","types","nativeItemType","some","t","indexOf","OptionsReader","globalContext","options","optionsArgs","_this$globalContext","_this$optionsArgs","rootElement","ownKeys","object","enumerableOnly","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","apply","_objectSpread","source","getOwnPropertyDescriptors","HTML5BackendImpl","manager","Map","sourceId","sourceNodes","isDraggingNativeItem","actions","endDrag","currentNativeHandle","registry","removeSource","currentNativeSource","body","currentDragSourceNode","clearCurrentDragSourceNode","isDragging","dragStartSourceIds","defaultPrevented","beginDrag","publishSource","getSourceClientOffset","nativeType","setDragImage","sourcePreviewNodes","_this$getCurrentSourc","getCurrentSourcePreviewNodeOptions","dragPreviewOffset","setData","err","setCurrentDragSourceNode","captureDraggingState","publishDragSource","setTimeout","beginDragNativeItem","hasAttribute","preventDefault","dragEnterTargetIds","enterLeaveCounter","enter","altKeyPressed","altKey","hover","targetId","canDropOnTarget","dropEffect","getCurrentDropEffect","dragOverTargetIds","lastClientOffset","hoverRafId","requestAnimationFrame","leave","endDragNativeItem","_this$currentNativeSo","dropTargetIds","loadDataTransfer","reset","drop","dragDrop","tagName","isContentEditable","getActions","getMonitor","getRegistry","_this$dragStartSource","_this$dragOverTargetI","size","sourcePreviewNodeOptions","sourceNodeOptions","root","__isReactDndBackendSetUp","addEventListeners","_this$window","removeEventListeners","asyncEndDragFrameId","cancelAnimationFrame","delete","_this3","handleDragStart","handleSelectStart","setAttribute","addEventListener","removeEventListener","_this4","handleDragEnter","handleDragOver","handleDrop","handleTopDragStart","handleTopDragStartCapture","handleTopDragEndCapture","handleTopDragEnter","handleTopDragEnterCapture","handleTopDragLeaveCapture","handleTopDragOver","handleTopDragOverCapture","handleTopDrop","handleTopDropCapture","getCurrentSourceNodeOptions","itemType","getItemType","type","createNativeDragSource","addSource","_this5","mouseMoveTimeoutTimer","_this5$rootElement","endDragIfSourceWasRemovedFromDOM","_this$window2","clearTimeout","unshift","HTML5Backend","context","DndContext","createContext","dragDropManager","INIT_COORDS","BEGIN_DRAG","PUBLISH_DRAG_SOURCE","HOVER","DROP","END_DRAG","setClientOffset","sourceClientOffset","payload","_typeof","Symbol","iterator","constructor","isObject","input","ResetCoordinatesAction","createBeginDrag","sourceIds","_options$publishSourc","dispatch","getSource","verifyInvariants","canDragSource","getDraggableSource","verifyGetSourceClientOffsetIsFunction","verifyItemIsObject","pinSource","getSourceType","isSourcePublic","createPublishDragSource","matchesType","targetType","draggedItemType","isArray","createHover","targetIdsArg","verifyTargetIdsIsArray","targetIds","didDrop","lastIndexOf","getTarget","checkInvariants","getTargetType","splice","removeNonMatchingTargetIds","hoverAllTargets","createDrop","getTargetIds","reverse","getDroppableTargets","index","dropResult","verifyDropResultType","getDropResult","determineDropResult","action","createEndDrag","verifyIsDragging","unpinSource","DragDropManagerImpl","store","shouldSetUp","getState","refCount","backend","isSetUp","setup","teardown","subscribe","handleRefCountChange","createDragDropActions","boundActions","actionCreator","formatProdErrorMessage","code","$$observable","observable","randomString","random","toString","substring","join","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","proto","getPrototypeOf","createStore","reducer","preloadedState","enhancer","_ref2","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","listener","isSubscribed","listeners","replaceReducer","nextReducer","_ref","outerSubscribe","observer","observeState","next","unsubscribe","strictEquality","initialState","initialSourceClientOffset","initialClientOffset","offsetA","offsetB","state","ADD_SOURCE","ADD_TARGET","REMOVE_SOURCE","REMOVE_TARGET","NONE","ALL","_action$payload","_action$payload$targe","_action$payload$prevT","prevTargetIds","map","has","count","xor","didChange","isEqual","areArraysEqual","prevInnermostTargetId","innermostTargetId","path","dirtyHandlerIds","c","dragOffset","dragOperation","stateId","subtract","__IS_NONE__","__IS_ALL__","HandlerRole","DragDropMonitorImpl","handlerIds","prevStateId","currentStateId","canSkipListener","dirtyIds","areDirty","previousState","nextState","canDrag","canDrop","shallow","nextUniqueId","validateType","allowArray","scope","global","self","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","makeRequestCallFromTimer","callback","timeoutHandle","handleTimer","intervalHandle","setInterval","clearInterval","makeRequestCall","toggle","createTextNode","observe","characterData","data","RawTask","task","onError","release","asapQueue","enqueueTask","queue","q","requestFlush","flushing","pendingErrors","capacity","flush","currentIndex","scan","newLength","registerPendingError","requestErrorThrow","shift","taskFactory","create","tasks","freeTasks","t1","pop","_slicedToArray","arr","_arrayWithHoles","_s","_e","_arr","_n","_d","done","_iterableToArrayLimit","o","minLen","_arrayLikeToArray","n","from","_unsupportedIterableToArray","_nonIterableRest","len","arr2","getNextHandlerId","role","id","SOURCE","TARGET","parseRoleFromHandlerId","handlerId","mapContainsValue","searchValue","entries","isDone","_entries$next","HandlerRegistryImpl","validateSourceContract","addHandler","validateTargetContract","handler","dragSources","dropTargets","includePinned","isSourceId","pinnedSourceId","pinnedSource","isTargetId","createDragDropManager","backendFactory","backendOptions","debugMode","reduxDevTools","__REDUX_DEVTOOLS_EXTENSION__","instanceId","makeStoreInstance","receiveBackend","_excluded","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","INSTANCE_SYM","for","DndProvider","memo","children","_getDndContextValue","getGlobalContext","ctx","createSingletonDndContext","isGlobalInstance","getDndContextValue","_getDndContextValue2","useEffect","Provider","assign","g","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","internalMonitor","isDraggingSource","subscribeToStateChange","isOverTarget","subscribeToOffsetChange","getItem","getInitialClientOffset","getInitialSourceClientOffset","getClientOffset","getDifferenceFromInitialOffset","isCallingCanDrop","DropTargetMonitorImpl","SourceConnector","dragSource","clearDragSource","dragSourceOptions","dragSourceRef","dragSourceNode","reconnectDragSource","clearDragPreview","dragPreviewOptions","dragPreviewRef","dragPreviewNode","reconnectDragPreview","newHandlerId","reconnect","dragSourceOptionsInternal","dragPreviewOptionsInternal","didHandlerIdChange","didConnectedDragSourceChange","didDragSourceOptionsChange","disconnectDragSource","lastConnectedHandlerId","lastConnectedDragSource","lastConnectedDragSourceOptions","dragSourceUnsubscribe","connectDragSource","didConnectedDragPreviewChange","didDragPreviewOptionsChange","disconnectDragPreview","lastConnectedDragPreview","lastConnectedDragPreviewOptions","dragPreviewUnsubscribe","connectDragPreview","current","TargetConnector","dropTarget","clearDropTarget","dropTargetOptions","dropTargetRef","dropTargetNode","didDropTargetChange","didOptionsChange","disconnectDropTarget","lastConnectedDropTarget","lastConnectedDropTargetOptions","unsubscribeDropTarget","connectDropTarget","dropTargetOptionsInternal","isRef","registerTarget","addTarget","removeTarget","registerSource","wrapHookToRecognizeElement","hook","elementOrNode","isValidElement","element","displayName","throwIfCompositeComponentElement","ref","newRef","previousRef","cloneElement","setRef","cloneWithRef","wrapConnectorHooks","hooks","wrappedHooks","endsWith","wrappedHook","f","exports","Fragment","h","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","__self","__source","k","d","l","defaultProps","$$typeof","_owner","jsx","jsxs","module"],"sourceRoot":""}