{"version":3,"file":"react-dnd-DSY3ewER.js","sources":["../../node_modules/react-dnd/dist/core/DndContext.js","../../node_modules/react-dnd/dist/core/DndProvider.js","../../node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js","../../node_modules/react-dnd/dist/hooks/useCollector.js","../../node_modules/react-dnd/dist/hooks/useMonitorOutput.js","../../node_modules/react-dnd/dist/hooks/useCollectedProps.js","../../node_modules/react-dnd/dist/hooks/useOptionalFactory.js","../../node_modules/react-dnd/dist/hooks/useDrag/connectors.js","../../node_modules/react-dnd/dist/internals/DragSourceMonitorImpl.js","../../node_modules/react-dnd/dist/internals/DropTargetMonitorImpl.js","../../node_modules/react-dnd/dist/internals/registration.js","../../node_modules/react-dnd/dist/internals/isRef.js","../../node_modules/react-dnd/dist/internals/wrapConnectorHooks.js","../../node_modules/react-dnd/dist/internals/SourceConnector.js","../../node_modules/react-dnd/dist/internals/TargetConnector.js","../../node_modules/react-dnd/dist/hooks/useDragDropManager.js","../../node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js","../../node_modules/react-dnd/dist/hooks/useDrag/useDragSourceMonitor.js","../../node_modules/react-dnd/dist/hooks/useDrag/DragSourceImpl.js","../../node_modules/react-dnd/dist/hooks/useDrag/useDragSource.js","../../node_modules/react-dnd/dist/hooks/useDrag/useDragType.js","../../node_modules/react-dnd/dist/hooks/useDrag/useRegisteredDragSource.js","../../node_modules/react-dnd/dist/hooks/useDrag/useDrag.js","../../node_modules/react-dnd/dist/hooks/useDrop/connectors.js","../../node_modules/react-dnd/dist/hooks/useDrop/useDropTargetConnector.js","../../node_modules/react-dnd/dist/hooks/useDrop/useDropTargetMonitor.js","../../node_modules/react-dnd/dist/hooks/useDrop/useAccept.js","../../node_modules/react-dnd/dist/hooks/useDrop/DropTargetImpl.js","../../node_modules/react-dnd/dist/hooks/useDrop/useDropTarget.js","../../node_modules/react-dnd/dist/hooks/useDrop/useRegisteredDropTarget.js","../../node_modules/react-dnd/dist/hooks/useDrop/useDrop.js"],"sourcesContent":["import { createContext } from 'react';\n/**\n * Create the React Context\n */ export const DndContext = createContext({\n dragDropManager: undefined\n});\n\n//# sourceMappingURL=DndContext.js.map","function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for(i = 0; i < sourceSymbolKeys.length; i++){\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for(i = 0; i < sourceKeys.length; i++){\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createDragDropManager } from 'dnd-core';\nimport { memo, useEffect } from 'react';\nimport { DndContext } from './DndContext.js';\nlet refCount = 0;\nconst INSTANCE_SYM = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__');\nvar DndProvider = /*#__PURE__*/ memo(function DndProvider(_param) {\n var { children } = _param, props = _objectWithoutProperties(_param, [\n \"children\"\n ]);\n const [manager, isGlobalInstance] = getDndContextValue(props) // memoized from props\n ;\n /**\n\t\t * If the global context was used to store the DND context\n\t\t * then where theres no more references to it we should\n\t\t * clean it up to avoid memory leaks\n\t\t */ useEffect(()=>{\n if (isGlobalInstance) {\n const context = getGlobalContext();\n ++refCount;\n return ()=>{\n if (--refCount === 0) {\n context[INSTANCE_SYM] = null;\n }\n };\n }\n return;\n }, []);\n return /*#__PURE__*/ _jsx(DndContext.Provider, {\n value: manager,\n children: children\n });\n});\n/**\n * A React component that provides the React-DnD context\n */ export { DndProvider, };\nfunction getDndContextValue(props) {\n if ('manager' in props) {\n const manager = {\n dragDropManager: props.manager\n };\n return [\n manager,\n false\n ];\n }\n const manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode);\n const isGlobalInstance = !props.context;\n return [\n manager,\n isGlobalInstance\n ];\n}\nfunction createSingletonDndContext(backend, context = getGlobalContext(), options, debugMode) {\n const ctx = context;\n if (!ctx[INSTANCE_SYM]) {\n ctx[INSTANCE_SYM] = {\n dragDropManager: createDragDropManager(backend, context, options, debugMode)\n };\n }\n return ctx[INSTANCE_SYM];\n}\nfunction getGlobalContext() {\n return typeof global !== 'undefined' ? global : window;\n}\n\n//# sourceMappingURL=DndProvider.js.map","import { useEffect, useLayoutEffect } from 'react';\n// suppress the useLayoutEffect warning on server side.\nexport const useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\n//# sourceMappingURL=useIsomorphicLayoutEffect.js.map","import equal from 'fast-deep-equal';\nimport { useCallback, useState } from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js';\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */ export function useCollector(monitor, collect, onUpdate) {\n const [collected, setCollected] = useState(()=>collect(monitor)\n );\n const updateCollected = useCallback(()=>{\n const nextValue = collect(monitor);\n // This needs to be a deep-equality check because some monitor-collected values\n // include XYCoord objects that may be equivalent, but do not have instance equality.\n if (!equal(collected, nextValue)) {\n setCollected(nextValue);\n if (onUpdate) {\n onUpdate();\n }\n }\n }, [\n collected,\n monitor,\n onUpdate\n ]);\n // update the collected properties after react renders.\n // Note that the \"Dustbin Stress Test\" fails if this is not\n // done when the component updates\n useIsomorphicLayoutEffect(updateCollected);\n return [\n collected,\n updateCollected\n ];\n}\n\n//# sourceMappingURL=useCollector.js.map","import { useCollector } from './useCollector.js';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js';\nexport function useMonitorOutput(monitor, collect, onCollect) {\n const [collected, updateCollected] = useCollector(monitor, collect, onCollect);\n useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() {\n const handlerId = monitor.getHandlerId();\n if (handlerId == null) {\n return;\n }\n return monitor.subscribeToStateChange(updateCollected, {\n handlerIds: [\n handlerId\n ]\n });\n }, [\n monitor,\n updateCollected\n ]);\n return collected;\n}\n\n//# sourceMappingURL=useMonitorOutput.js.map","import { useMonitorOutput } from './useMonitorOutput.js';\nexport function useCollectedProps(collector, monitor, connector) {\n return useMonitorOutput(monitor, collector || (()=>({})\n ), ()=>connector.reconnect()\n );\n}\n\n//# sourceMappingURL=useCollectedProps.js.map","import { useMemo } from 'react';\nexport function useOptionalFactory(arg, deps) {\n const memoDeps = [\n ...deps || []\n ];\n if (deps == null && typeof arg !== 'function') {\n memoDeps.push(arg);\n }\n return useMemo(()=>{\n return typeof arg === 'function' ? arg() : arg;\n }, memoDeps);\n}\n\n//# sourceMappingURL=useOptionalFactory.js.map","import { useMemo } from 'react';\nexport function useConnectDragSource(connector) {\n return useMemo(()=>connector.hooks.dragSource()\n , [\n connector\n ]);\n}\nexport function useConnectDragPreview(connector) {\n return useMemo(()=>connector.hooks.dragPreview()\n , [\n connector\n ]);\n}\n\n//# sourceMappingURL=connectors.js.map","import { invariant } from '@react-dnd/invariant';\nlet isCallingCanDrag = false;\nlet isCallingIsDragging = false;\nexport class DragSourceMonitorImpl {\n receiveHandlerId(sourceId) {\n this.sourceId = sourceId;\n }\n getHandlerId() {\n return this.sourceId;\n }\n 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 try {\n isCallingCanDrag = true;\n return this.internalMonitor.canDragSource(this.sourceId);\n } finally{\n isCallingCanDrag = false;\n }\n }\n isDragging() {\n if (!this.sourceId) {\n return false;\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 try {\n isCallingIsDragging = true;\n return this.internalMonitor.isDraggingSource(this.sourceId);\n } finally{\n isCallingIsDragging = false;\n }\n }\n subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n isDraggingSource(sourceId) {\n return this.internalMonitor.isDraggingSource(sourceId);\n }\n isOverTarget(targetId, options) {\n return this.internalMonitor.isOverTarget(targetId, options);\n }\n getTargetIds() {\n return this.internalMonitor.getTargetIds();\n }\n isSourcePublic() {\n return this.internalMonitor.isSourcePublic();\n }\n getSourceId() {\n return this.internalMonitor.getSourceId();\n }\n subscribeToOffsetChange(listener) {\n return this.internalMonitor.subscribeToOffsetChange(listener);\n }\n canDragSource(sourceId) {\n return this.internalMonitor.canDragSource(sourceId);\n }\n canDropOnTarget(targetId) {\n return this.internalMonitor.canDropOnTarget(targetId);\n }\n getItemType() {\n return this.internalMonitor.getItemType();\n }\n getItem() {\n return this.internalMonitor.getItem();\n }\n getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n didDrop() {\n return this.internalMonitor.didDrop();\n }\n getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n constructor(manager){\n this.sourceId = null;\n this.internalMonitor = manager.getMonitor();\n }\n}\n\n//# sourceMappingURL=DragSourceMonitorImpl.js.map","import { invariant } from '@react-dnd/invariant';\nlet isCallingCanDrop = false;\nexport class DropTargetMonitorImpl {\n receiveHandlerId(targetId) {\n this.targetId = targetId;\n }\n getHandlerId() {\n return this.targetId;\n }\n subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n 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 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 try {\n isCallingCanDrop = true;\n return this.internalMonitor.canDropOnTarget(this.targetId);\n } finally{\n isCallingCanDrop = false;\n }\n }\n isOver(options) {\n if (!this.targetId) {\n return false;\n }\n return this.internalMonitor.isOverTarget(this.targetId, options);\n }\n getItemType() {\n return this.internalMonitor.getItemType();\n }\n getItem() {\n return this.internalMonitor.getItem();\n }\n getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n didDrop() {\n return this.internalMonitor.didDrop();\n }\n getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n constructor(manager){\n this.targetId = null;\n this.internalMonitor = manager.getMonitor();\n }\n}\n\n//# sourceMappingURL=DropTargetMonitorImpl.js.map","export function registerTarget(type, target, manager) {\n const registry = manager.getRegistry();\n const targetId = registry.addTarget(type, target);\n return [\n targetId,\n ()=>registry.removeTarget(targetId)\n ];\n}\nexport function registerSource(type, source, manager) {\n const registry = manager.getRegistry();\n const sourceId = registry.addSource(type, source);\n return [\n sourceId,\n ()=>registry.removeSource(sourceId)\n ];\n}\n\n//# sourceMappingURL=registration.js.map","export 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\n//# sourceMappingURL=isRef.js.map","import { invariant } from '@react-dnd/invariant';\nimport { cloneElement, isValidElement } from 'react';\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 const 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 ${displayName} into a
, or turn it into a ` + 'drag source or a drop target itself.');\n}\nfunction wrapHookToRecognizeElement(hook) {\n return (elementOrNode = null, options = null)=>{\n // When passed a node, call the hook straight away.\n if (!isValidElement(elementOrNode)) {\n const node = elementOrNode;\n hook(node, options);\n // return the node so it can be chained (e.g. when within callback refs\n //
connectDragSource(connectDropTarget(node))}/>\n return node;\n }\n // If passed a ReactElement, clone it and attach this function as a ref.\n // This helps us achieve a neat API where user doesn't even know that refs\n // are being used under the hood.\n const element = elementOrNode;\n throwIfCompositeComponentElement(element);\n // When no options are passed, use the hook directly\n const ref = options ? (node)=>hook(node, options)\n : hook;\n return cloneWithRef(element, ref);\n };\n}\nexport function wrapConnectorHooks(hooks) {\n const wrappedHooks = {};\n Object.keys(hooks).forEach((key)=>{\n const hook = hooks[key];\n // ref objects should be passed straight through without wrapping\n if (key.endsWith('Ref')) {\n wrappedHooks[key] = hooks[key];\n } else {\n const wrappedHook = wrapHookToRecognizeElement(hook);\n wrappedHooks[key] = ()=>wrappedHook\n ;\n }\n });\n return wrappedHooks;\n}\nfunction setRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n}\nfunction cloneWithRef(element, newRef) {\n const 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 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: (node)=>{\n setRef(previousRef, node);\n setRef(newRef, node);\n }\n });\n }\n}\n\n//# sourceMappingURL=wrapConnectorHooks.js.map","import { shallowEqual } from '@react-dnd/shallowequal';\nimport { isRef } from './isRef.js';\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js';\nexport class SourceConnector {\n receiveHandlerId(newHandlerId) {\n if (this.handlerId === newHandlerId) {\n return;\n }\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n get connectTarget() {\n return this.dragSource;\n }\n get dragSourceOptions() {\n return this.dragSourceOptionsInternal;\n }\n set dragSourceOptions(options) {\n this.dragSourceOptionsInternal = options;\n }\n get dragPreviewOptions() {\n return this.dragPreviewOptionsInternal;\n }\n set dragPreviewOptions(options) {\n this.dragPreviewOptionsInternal = options;\n }\n reconnect() {\n const didChange = this.reconnectDragSource();\n this.reconnectDragPreview(didChange);\n }\n reconnectDragSource() {\n const dragSource = this.dragSource;\n // if nothing has changed then don't resubscribe\n const didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange();\n if (didChange) {\n this.disconnectDragSource();\n }\n if (!this.handlerId) {\n return didChange;\n }\n if (!dragSource) {\n this.lastConnectedDragSource = dragSource;\n return didChange;\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 return didChange;\n }\n reconnectDragPreview(forceDidChange = false) {\n const dragPreview = this.dragPreview;\n // if nothing has changed then don't resubscribe\n const didChange = forceDidChange || this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange();\n if (didChange) {\n this.disconnectDragPreview();\n }\n if (!this.handlerId) {\n return;\n }\n if (!dragPreview) {\n this.lastConnectedDragPreview = dragPreview;\n return;\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 didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n didConnectedDragSourceChange() {\n return this.lastConnectedDragSource !== this.dragSource;\n }\n didConnectedDragPreviewChange() {\n return this.lastConnectedDragPreview !== this.dragPreview;\n }\n didDragSourceOptionsChange() {\n return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions);\n }\n didDragPreviewOptionsChange() {\n return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);\n }\n disconnectDragSource() {\n if (this.dragSourceUnsubscribe) {\n this.dragSourceUnsubscribe();\n this.dragSourceUnsubscribe = undefined;\n }\n }\n disconnectDragPreview() {\n if (this.dragPreviewUnsubscribe) {\n this.dragPreviewUnsubscribe();\n this.dragPreviewUnsubscribe = undefined;\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n }\n get dragSource() {\n return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current;\n }\n get dragPreview() {\n return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current;\n }\n clearDragSource() {\n this.dragSourceNode = null;\n this.dragSourceRef = null;\n }\n clearDragPreview() {\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n constructor(backend){\n this.hooks = wrapConnectorHooks({\n dragSource: (node, options)=>{\n this.clearDragSource();\n this.dragSourceOptions = options || null;\n if (isRef(node)) {\n this.dragSourceRef = node;\n } else {\n this.dragSourceNode = node;\n }\n this.reconnectDragSource();\n },\n dragPreview: (node, options)=>{\n this.clearDragPreview();\n this.dragPreviewOptions = options || null;\n if (isRef(node)) {\n this.dragPreviewRef = node;\n } else {\n this.dragPreviewNode = node;\n }\n this.reconnectDragPreview();\n }\n });\n this.handlerId = null;\n // The drop target may either be attached via ref or connect function\n this.dragSourceRef = null;\n this.dragSourceOptionsInternal = null;\n // The drag preview may either be attached via ref or connect function\n this.dragPreviewRef = null;\n this.dragPreviewOptionsInternal = null;\n this.lastConnectedHandlerId = null;\n this.lastConnectedDragSource = null;\n this.lastConnectedDragSourceOptions = null;\n this.lastConnectedDragPreview = null;\n this.lastConnectedDragPreviewOptions = null;\n this.backend = backend;\n }\n}\n\n//# sourceMappingURL=SourceConnector.js.map","import { shallowEqual } from '@react-dnd/shallowequal';\nimport { isRef } from './isRef.js';\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js';\nexport class TargetConnector {\n get connectTarget() {\n return this.dropTarget;\n }\n reconnect() {\n // if nothing has changed then don't resubscribe\n const didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange();\n if (didChange) {\n this.disconnectDropTarget();\n }\n const dropTarget = this.dropTarget;\n if (!this.handlerId) {\n return;\n }\n if (!dropTarget) {\n this.lastConnectedDropTarget = dropTarget;\n return;\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 receiveHandlerId(newHandlerId) {\n if (newHandlerId === this.handlerId) {\n return;\n }\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n get dropTargetOptions() {\n return this.dropTargetOptionsInternal;\n }\n set dropTargetOptions(options) {\n this.dropTargetOptionsInternal = options;\n }\n didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n didDropTargetChange() {\n return this.lastConnectedDropTarget !== this.dropTarget;\n }\n didOptionsChange() {\n return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions);\n }\n disconnectDropTarget() {\n if (this.unsubscribeDropTarget) {\n this.unsubscribeDropTarget();\n this.unsubscribeDropTarget = undefined;\n }\n }\n get dropTarget() {\n return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current;\n }\n clearDropTarget() {\n this.dropTargetRef = null;\n this.dropTargetNode = null;\n }\n constructor(backend){\n this.hooks = wrapConnectorHooks({\n dropTarget: (node, options)=>{\n this.clearDropTarget();\n this.dropTargetOptions = options;\n if (isRef(node)) {\n this.dropTargetRef = node;\n } else {\n this.dropTargetNode = node;\n }\n this.reconnect();\n }\n });\n this.handlerId = null;\n // The drop target may either be attached via ref or connect function\n this.dropTargetRef = null;\n this.dropTargetOptionsInternal = null;\n this.lastConnectedHandlerId = null;\n this.lastConnectedDropTarget = null;\n this.lastConnectedDropTargetOptions = null;\n this.backend = backend;\n }\n}\n\n//# sourceMappingURL=TargetConnector.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useContext } from 'react';\nimport { DndContext } from '../core/index.js';\n/**\n * A hook to retrieve the DragDropManager from Context\n */ export function useDragDropManager() {\n const { dragDropManager } = useContext(DndContext);\n invariant(dragDropManager != null, 'Expected drag drop context');\n return dragDropManager;\n}\n\n//# sourceMappingURL=useDragDropManager.js.map","import { useMemo } from 'react';\nimport { SourceConnector } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nexport function useDragSourceConnector(dragSourceOptions, dragPreviewOptions) {\n const manager = useDragDropManager();\n const connector = useMemo(()=>new SourceConnector(manager.getBackend())\n , [\n manager\n ]);\n useIsomorphicLayoutEffect(()=>{\n connector.dragSourceOptions = dragSourceOptions || null;\n connector.reconnect();\n return ()=>connector.disconnectDragSource()\n ;\n }, [\n connector,\n dragSourceOptions\n ]);\n useIsomorphicLayoutEffect(()=>{\n connector.dragPreviewOptions = dragPreviewOptions || null;\n connector.reconnect();\n return ()=>connector.disconnectDragPreview()\n ;\n }, [\n connector,\n dragPreviewOptions\n ]);\n return connector;\n}\n\n//# sourceMappingURL=useDragSourceConnector.js.map","import { useMemo } from 'react';\nimport { DragSourceMonitorImpl } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nexport function useDragSourceMonitor() {\n const manager = useDragDropManager();\n return useMemo(()=>new DragSourceMonitorImpl(manager)\n , [\n manager\n ]);\n}\n\n//# sourceMappingURL=useDragSourceMonitor.js.map","export class DragSourceImpl {\n beginDrag() {\n const spec = this.spec;\n const monitor = this.monitor;\n let result = null;\n if (typeof spec.item === 'object') {\n result = spec.item;\n } else if (typeof spec.item === 'function') {\n result = spec.item(monitor);\n } else {\n result = {};\n }\n return result !== null && result !== void 0 ? result : null;\n }\n canDrag() {\n const spec = this.spec;\n const monitor = this.monitor;\n if (typeof spec.canDrag === 'boolean') {\n return spec.canDrag;\n } else if (typeof spec.canDrag === 'function') {\n return spec.canDrag(monitor);\n } else {\n return true;\n }\n }\n isDragging(globalMonitor, target) {\n const spec = this.spec;\n const monitor = this.monitor;\n const { isDragging } = spec;\n return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId();\n }\n endDrag() {\n const spec = this.spec;\n const monitor = this.monitor;\n const connector = this.connector;\n const { end } = spec;\n if (end) {\n end(monitor.getItem(), monitor);\n }\n connector.reconnect();\n }\n constructor(spec, monitor, connector){\n this.spec = spec;\n this.monitor = monitor;\n this.connector = connector;\n }\n}\n\n//# sourceMappingURL=DragSourceImpl.js.map","import { useEffect, useMemo } from 'react';\nimport { DragSourceImpl } from './DragSourceImpl.js';\nexport function useDragSource(spec, monitor, connector) {\n const handler = useMemo(()=>new DragSourceImpl(spec, monitor, connector)\n , [\n monitor,\n connector\n ]);\n useEffect(()=>{\n handler.spec = spec;\n }, [\n spec\n ]);\n return handler;\n}\n\n//# sourceMappingURL=useDragSource.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useMemo } from 'react';\nexport function useDragType(spec) {\n return useMemo(()=>{\n const result = spec.type;\n invariant(result != null, 'spec.type must be defined');\n return result;\n }, [\n spec\n ]);\n}\n\n//# sourceMappingURL=useDragType.js.map","import { registerSource } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nimport { useDragSource } from './useDragSource.js';\nimport { useDragType } from './useDragType.js';\nexport function useRegisteredDragSource(spec, monitor, connector) {\n const manager = useDragDropManager();\n const handler = useDragSource(spec, monitor, connector);\n const itemType = useDragType(spec);\n useIsomorphicLayoutEffect(function registerDragSource() {\n if (itemType != null) {\n const [handlerId, unregister] = registerSource(itemType, handler, manager);\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }\n return;\n }, [\n manager,\n monitor,\n connector,\n handler,\n itemType\n ]);\n}\n\n//# sourceMappingURL=useRegisteredDragSource.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useCollectedProps } from '../useCollectedProps.js';\nimport { useOptionalFactory } from '../useOptionalFactory.js';\nimport { useConnectDragPreview, useConnectDragSource } from './connectors.js';\nimport { useDragSourceConnector } from './useDragSourceConnector.js';\nimport { useDragSourceMonitor } from './useDragSourceMonitor.js';\nimport { useRegisteredDragSource } from './useRegisteredDragSource.js';\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */ export function useDrag(specArg, deps) {\n const spec = useOptionalFactory(specArg, deps);\n invariant(!spec.begin, `useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)`);\n const monitor = useDragSourceMonitor();\n const connector = useDragSourceConnector(spec.options, spec.previewOptions);\n useRegisteredDragSource(spec, monitor, connector);\n return [\n useCollectedProps(spec.collect, monitor, connector),\n useConnectDragSource(connector),\n useConnectDragPreview(connector), \n ];\n}\n\n//# sourceMappingURL=useDrag.js.map","import { useMemo } from 'react';\nexport function useConnectDropTarget(connector) {\n return useMemo(()=>connector.hooks.dropTarget()\n , [\n connector\n ]);\n}\n\n//# sourceMappingURL=connectors.js.map","import { useMemo } from 'react';\nimport { TargetConnector } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nexport function useDropTargetConnector(options) {\n const manager = useDragDropManager();\n const connector = useMemo(()=>new TargetConnector(manager.getBackend())\n , [\n manager\n ]);\n useIsomorphicLayoutEffect(()=>{\n connector.dropTargetOptions = options || null;\n connector.reconnect();\n return ()=>connector.disconnectDropTarget()\n ;\n }, [\n options\n ]);\n return connector;\n}\n\n//# sourceMappingURL=useDropTargetConnector.js.map","import { useMemo } from 'react';\nimport { DropTargetMonitorImpl } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nexport function useDropTargetMonitor() {\n const manager = useDragDropManager();\n return useMemo(()=>new DropTargetMonitorImpl(manager)\n , [\n manager\n ]);\n}\n\n//# sourceMappingURL=useDropTargetMonitor.js.map","import { invariant } from '@react-dnd/invariant';\nimport { useMemo } from 'react';\n/**\n * Internal utility hook to get an array-version of spec.accept.\n * The main utility here is that we aren't creating a new array on every render if a non-array spec.accept is passed in.\n * @param spec\n */ export function useAccept(spec) {\n const { accept } = spec;\n return useMemo(()=>{\n invariant(spec.accept != null, 'accept must be defined');\n return Array.isArray(accept) ? accept : [\n accept\n ];\n }, [\n accept\n ]);\n}\n\n//# sourceMappingURL=useAccept.js.map","export class DropTargetImpl {\n canDrop() {\n const spec = this.spec;\n const monitor = this.monitor;\n return spec.canDrop ? spec.canDrop(monitor.getItem(), monitor) : true;\n }\n hover() {\n const spec = this.spec;\n const monitor = this.monitor;\n if (spec.hover) {\n spec.hover(monitor.getItem(), monitor);\n }\n }\n drop() {\n const spec = this.spec;\n const monitor = this.monitor;\n if (spec.drop) {\n return spec.drop(monitor.getItem(), monitor);\n }\n return;\n }\n constructor(spec, monitor){\n this.spec = spec;\n this.monitor = monitor;\n }\n}\n\n//# sourceMappingURL=DropTargetImpl.js.map","import { useEffect, useMemo } from 'react';\nimport { DropTargetImpl } from './DropTargetImpl.js';\nexport function useDropTarget(spec, monitor) {\n const dropTarget = useMemo(()=>new DropTargetImpl(spec, monitor)\n , [\n monitor\n ]);\n useEffect(()=>{\n dropTarget.spec = spec;\n }, [\n spec\n ]);\n return dropTarget;\n}\n\n//# sourceMappingURL=useDropTarget.js.map","import { registerTarget } from '../../internals/index.js';\nimport { useDragDropManager } from '../useDragDropManager.js';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js';\nimport { useAccept } from './useAccept.js';\nimport { useDropTarget } from './useDropTarget.js';\nexport function useRegisteredDropTarget(spec, monitor, connector) {\n const manager = useDragDropManager();\n const dropTarget = useDropTarget(spec, monitor);\n const accept = useAccept(spec);\n useIsomorphicLayoutEffect(function registerDropTarget() {\n const [handlerId, unregister] = registerTarget(accept, dropTarget, manager);\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }, [\n manager,\n monitor,\n dropTarget,\n connector,\n accept.map((a)=>a.toString()\n ).join('|'), \n ]);\n}\n\n//# sourceMappingURL=useRegisteredDropTarget.js.map","import { useCollectedProps } from '../useCollectedProps.js';\nimport { useOptionalFactory } from '../useOptionalFactory.js';\nimport { useConnectDropTarget } from './connectors.js';\nimport { useDropTargetConnector } from './useDropTargetConnector.js';\nimport { useDropTargetMonitor } from './useDropTargetMonitor.js';\nimport { useRegisteredDropTarget } from './useRegisteredDropTarget.js';\n/**\n * useDropTarget Hook\n * @param spec The drop target specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */ export function useDrop(specArg, deps) {\n const spec = useOptionalFactory(specArg, deps);\n const monitor = useDropTargetMonitor();\n const connector = useDropTargetConnector(spec.options);\n useRegisteredDropTarget(spec, monitor, connector);\n return [\n useCollectedProps(spec.collect, monitor, connector),\n useConnectDropTarget(connector), \n ];\n}\n\n//# sourceMappingURL=useDrop.js.map"],"names":["DndContext","createContext","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","key","sourceSymbolKeys","sourceKeys","i","refCount","INSTANCE_SYM","DndProvider","memo","_param","children","props","manager","isGlobalInstance","getDndContextValue","useEffect","context","getGlobalContext","_jsx","createSingletonDndContext","backend","options","debugMode","ctx","createDragDropManager","useIsomorphicLayoutEffect","useLayoutEffect","useCollector","monitor","collect","onUpdate","collected","setCollected","useState","updateCollected","useCallback","nextValue","equal","useMonitorOutput","onCollect","handlerId","useCollectedProps","collector","connector","useOptionalFactory","arg","deps","memoDeps","useMemo","useConnectDragSource","useConnectDragPreview","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","sourceId","invariant","listener","targetId","isCallingCanDrop","DropTargetMonitorImpl","registerTarget","type","registry","registerSource","isRef","obj","throwIfCompositeComponentElement","element","displayName","wrapHookToRecognizeElement","hook","elementOrNode","isValidElement","node","cloneWithRef","wrapConnectorHooks","hooks","wrappedHooks","wrappedHook","setRef","ref","newRef","previousRef","cloneElement","SourceConnector","newHandlerId","didChange","dragSource","forceDidChange","dragPreview","shallowEqual","TargetConnector","dropTarget","useDragDropManager","dragDropManager","useContext","useDragSourceConnector","dragSourceOptions","dragPreviewOptions","useDragSourceMonitor","DragSourceImpl","spec","result","globalMonitor","isDragging","end","useDragSource","handler","useDragType","useRegisteredDragSource","itemType","unregister","useDrag","specArg","useConnectDropTarget","useDropTargetConnector","useDropTargetMonitor","useAccept","accept","DropTargetImpl","useDropTarget","useRegisteredDropTarget","useDrop"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30]}