{"version":3,"sources":["webpack://../node_modules/react-dnd-html5-backend/dist/esm/BrowserDetector.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/EnterLeaveCounter.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/HTML5BackendImpl.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/MonotonicInterpolant.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/NativeDragSource.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/getDataFromDataTransfer.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/index.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/NativeDragSources/nativeTypesConfig.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/NativeTypes.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/OffsetUtils.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/OptionsReader.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/getEmptyImage.js","webpack://../node_modules/react-dnd-html5-backend/dist/esm/utils/js_utils.js","webpack://@liferay/frontend-js-react-web/webpack/bootstrap","webpack://@liferay/frontend-js-react-web/webpack/runtime/define property getters","webpack://@liferay/frontend-js-react-web/webpack/runtime/hasOwnProperty shorthand","webpack://@liferay/frontend-js-react-web/webpack/runtime/make namespace object","webpack://../node_modules/react-dnd-html5-backend/dist/esm/index.js"],"names":["isFirefox","_utils_js_utils__WEBPACK_IMPORTED_MODULE_0__","memoize","test","navigator","userAgent","isSafari","Boolean","window","safari","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","EnterLeaveCounter","isNodeInDocument","instance","Constructor","TypeError","_classCallCheck","this","entered","protoProps","staticProps","value","enteringNode","_this","previousLength","union","filter","node","contains","leavingNode","without","prototype","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","push","apply","_objectSpread","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","HTML5BackendImpl","manager","globalContext","sourcePreviewNodes","Map","sourcePreviewNodeOptions","sourceNodes","sourceNodeOptions","dragStartSourceIds","dropTargetIds","dragEnterTargetIds","currentNativeSource","currentNativeHandle","currentDragSourceNode","altKeyPressed","mouseMoveTimeoutTimer","asyncEndDragFrameId","dragOverTargetIds","getSourceClientOffset","sourceId","get","_OffsetUtils__WEBPACK_IMPORTED_MODULE_0__","getNodeClientOffset","endDragNativeItem","isDraggingNativeItem","actions","endDrag","registry","removeSource","document","body","endDragIfSourceWasRemovedFromDOM","clearCurrentDragSourceNode","handleTopDragStartCapture","handleTopDragStart","e","defaultPrevented","clientOffset","getEventClientOffset","monitor","isDragging","beginDrag","publishSource","dataTransfer","nativeType","_NativeDragSources__WEBPACK_IMPORTED_MODULE_1__","matchNativeItemType","setDragImage","getSourceId","sourceNode","dragPreview","_this$getCurrentSourc","getCurrentSourcePreviewNodeOptions","anchorPoint","anchorX","anchorY","offsetPoint","offsetX","offsetY","dragPreviewOffset","getDragPreviewOffset","x","y","setData","err","setCurrentDragSourceNode","captureDraggingState","publishDragSource","setTimeout","beginDragNativeItem","types","hasAttribute","preventDefault","handleTopDragEndCapture","handleTopDragEnterCapture","enterLeaveCounter","enter","handleTopDragEnter","altKey","_BrowserDetector__WEBPACK_IMPORTED_MODULE_2__","hover","some","targetId","canDropOnTarget","dropEffect","getCurrentDropEffect","handleTopDragOverCapture","handleTopDragOver","handleTopDragLeaveCapture","leave","handleTopDropCapture","_this$currentNativeSo","loadDataTransfer","reset","handleTopDrop","drop","handleSelectStart","dragDrop","tagName","isContentEditable","options","_OptionsReader__WEBPACK_IMPORTED_MODULE_3__","OptionsReader","getActions","getMonitor","getRegistry","_EnterLeaveCounter__WEBPACK_IMPORTED_MODULE_4__","_this$dragStartSource","_this$dragOverTargetI","size","undefined","__isReactDndBackendSetUp","Error","addEventListeners","removeEventListeners","cancelAnimationFrame","_this2","set","delete","_this3","handleDragStart","setAttribute","addEventListener","removeEventListener","_this4","handleDragEnter","handleDragOver","handleDrop","getCurrentSourceNodeOptions","itemType","getItemType","_NativeTypes__WEBPACK_IMPORTED_MODULE_5__","type","createNativeDragSource","addSource","_this5","clearTimeout","unshift","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","mid","low","high","xHere","Math","floor","diff","max","diffSq","NativeDragSource","config","item","initializeExposedProperties","exposeProperties","property","console","warn","concat","newProperties","matchesTypes","handle","getDataFromDataTransfer","typesToTry","defaultValue","result","reduce","resultSoFar","typeToTry","getData","_NativeDragSource__WEBPACK_IMPORTED_MODULE_0__","_nativeTypesConfig__WEBPACK_IMPORTED_MODULE_1__","nativeTypesConfig","dataTransferTypes","Array","slice","call","nativeItemType","t","indexOf","_nativeTypesConfig","_NativeTypes__WEBPACK_IMPORTED_MODULE_0__","FILE","files","items","URL","urls","_getDataFromDataTransfer__WEBPACK_IMPORTED_MODULE_1__","split","TEXT","text","el","nodeType","parentElement","_el$getBoundingClient","getBoundingClientRect","top","left","clientX","clientY","_document$documentEle","isImage","nodeName","_BrowserDetector__WEBPACK_IMPORTED_MODULE_0__","documentElement","dragPreviewNodeOffsetFromClient","offsetFromDragPreview","sourceWidth","offsetWidth","sourceHeight","offsetHeight","_getDragPreviewSize","dragPreviewWidth","width","dragPreviewHeight","height","devicePixelRatio","getDragPreviewSize","isManualOffsetY","_MonotonicInterpolant__WEBPACK_IMPORTED_MODULE_1__","interpolate","emptyImage","getEmptyImage","Image","src","fn","itemsA","itemsB","Set","insertItem","add","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__","d","definition","o","prop","hasOwnProperty","r","Symbol","toStringTag","HTML5Backend","context","_HTML5BackendImpl__WEBPACK_IMPORTED_MODULE_2__"],"mappings":"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","sourcesContent":["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\nimport { union, without } from './utils/js_utils';\nexport var EnterLeaveCounter = /*#__PURE__*/function () {\n function EnterLeaveCounter(isNodeInDocument) {\n _classCallCheck(this, EnterLeaveCounter);\n\n this.entered = [];\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}();","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\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\nimport { EnterLeaveCounter } from './EnterLeaveCounter';\nimport { isFirefox } from './BrowserDetector';\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 function HTML5BackendImpl(manager, globalContext) {\n var _this = this;\n\n _classCallCheck(this, HTML5BackendImpl);\n\n this.sourcePreviewNodes = new Map();\n this.sourcePreviewNodeOptions = new Map();\n this.sourceNodes = new Map();\n this.sourceNodeOptions = new Map();\n this.dragStartSourceIds = null;\n this.dropTargetIds = [];\n this.dragEnterTargetIds = [];\n this.currentNativeSource = null;\n this.currentNativeHandle = null;\n this.currentDragSourceNode = null;\n this.altKeyPressed = false;\n this.mouseMoveTimeoutTimer = null;\n this.asyncEndDragFrameId = null;\n this.dragOverTargetIds = null;\n\n this.getSourceClientOffset = function (sourceId) {\n var source = _this.sourceNodes.get(sourceId);\n\n return source && getNodeClientOffset(source) || null;\n };\n\n 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 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 && document.body.contains(node));\n };\n\n this.endDragIfSourceWasRemovedFromDOM = function () {\n var node = _this.currentDragSourceNode;\n\n if (_this.isNodeInDocument(node)) {\n return;\n }\n\n if (_this.clearCurrentDragSourceNode()) {\n _this.actions.endDrag();\n }\n };\n\n this.handleTopDragStartCapture = function () {\n _this.clearCurrentDragSourceNode();\n\n _this.dragStartSourceIds = [];\n };\n\n 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 this.handleTopDragEndCapture = function () {\n if (_this.clearCurrentDragSourceNode()) {\n // Firefox can dispatch this event in an infinite loop\n // if dragend handler does something like showing an alert.\n // Only proceed if we have not handled it already.\n _this.actions.endDrag();\n }\n };\n\n 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 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;\n\n if (!isFirefox()) {\n // Don't emit hover in `dragenter` on Firefox due to an edge case.\n // If the target changes position as the result of `dragenter`, Firefox\n // will still happily dispatch `dragover` despite target being no longer\n // there. The easy solution is to only fire `hover` in `dragover` on FF.\n _this.actions.hover(dragEnterTargetIds, {\n clientOffset: 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 this.handleTopDragOverCapture = function () {\n _this.dragOverTargetIds = [];\n };\n\n 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\n _this.actions.hover(dragOverTargetIds || [], {\n clientOffset: getEventClientOffset(e)\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 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 _this.endDragNativeItem();\n }\n };\n\n this.handleTopDropCapture = function (e) {\n _this.dropTargetIds = [];\n e.preventDefault();\n\n if (_this.isDraggingNativeItem()) {\n var _this$currentNativeSo;\n\n (_this$currentNativeSo = _this.currentNativeSource) === null || _this$currentNativeSo === void 0 ? void 0 : _this$currentNativeSo.loadDataTransfer(e.dataTransfer);\n }\n\n _this.enterLeaveCounter.reset();\n };\n\n 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 {\n _this.endDragIfSourceWasRemovedFromDOM();\n }\n };\n\n 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);\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: \"setup\",\n value: function setup() {\n if (this.window === undefined) {\n return;\n }\n\n if (this.window.__isReactDndBackendSetUp) {\n throw new Error('Cannot have two HTML5 backends at the same time.');\n }\n\n this.window.__isReactDndBackendSetUp = true;\n this.addEventListeners(this.window);\n }\n }, {\n key: \"teardown\",\n value: function teardown() {\n if (this.window === undefined) {\n return;\n }\n\n this.window.__isReactDndBackendSetUp = false;\n this.removeEventListeners(this.window);\n this.clearCurrentDragSourceNode();\n\n if (this.asyncEndDragFrameId) {\n 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 return _this5.window && _this5.window.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.window) {\n this.window.clearTimeout(this.mouseMoveTimeoutTimer || undefined);\n this.window.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 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\n return HTML5BackendImpl;\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\nexport var MonotonicInterpolant = /*#__PURE__*/function () {\n function MonotonicInterpolant(xs, ys) {\n _classCallCheck(this, MonotonicInterpolant);\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}();","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\nexport var NativeDragSource = /*#__PURE__*/function () {\n function NativeDragSource(config) {\n _classCallCheck(this, NativeDragSource);\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}();","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}","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}","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 },\n matchesTypes: ['Files']\n}), _defineProperty(_nativeTypesConfig, NativeTypes.URL, {\n exposeProperties: {\n urls: function urls(dataTransfer, matchesTypes) {\n return getDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n');\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 },\n matchesTypes: ['Text', 'text/plain']\n}), _nativeTypesConfig);","export var FILE = '__NATIVE_FILE__';\nexport var URL = '__NATIVE_URL__';\nexport var TEXT = '__NATIVE_TEXT__';","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 ? 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}","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\nexport var OptionsReader = /*#__PURE__*/function () {\n function OptionsReader(globalContext) {\n _classCallCheck(this, OptionsReader);\n\n this.globalContext = globalContext;\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 if (this.window) {\n return this.window.document;\n }\n\n return undefined;\n }\n }]);\n\n return OptionsReader;\n}();","var emptyImage;\nexport function getEmptyImage() {\n if (!emptyImage) {\n emptyImage = new Image();\n emptyImage.src = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\n }\n\n return emptyImage;\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}","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { HTML5BackendImpl } from './HTML5BackendImpl';\nimport * as NativeTypes from './NativeTypes';\nexport { getEmptyImage } from './getEmptyImage';\nexport { NativeTypes };\nexport var HTML5Backend = function createBackend(manager, context) {\n return new HTML5BackendImpl(manager, context);\n};"]}