{"version":3,"file":"react-dnd-CQwW52iq.js","sources":["../../node_modules/react-dnd/dist/core/DndContext.js","../../node_modules/react-dnd/dist/hooks/useIsomorphicLayoutEffect.js","../../node_modules/react-dnd/dist/hooks/useMonitorOutput.js","../../node_modules/react-dnd/dist/hooks/useCollector.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/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/DragSourceImpl.js","../../node_modules/react-dnd/dist/hooks/useDrag/useRegisteredDragSource.js","../../node_modules/react-dnd/dist/hooks/useDrag/useDragSource.js","../../node_modules/react-dnd/dist/hooks/useDrag/useDragType.js","../../node_modules/react-dnd/dist/internals/registration.js","../../node_modules/react-dnd/dist/hooks/useDrag/useDrag.js","../../node_modules/react-dnd/dist/hooks/useDrag/useDragSourceMonitor.js","../../node_modules/react-dnd/dist/hooks/useDrag/useDragSourceConnector.js","../../node_modules/react-dnd/dist/hooks/useDrop/connectors.js","../../node_modules/react-dnd/dist/hooks/useDrop/DropTargetImpl.js","../../node_modules/react-dnd/dist/hooks/useDrop/useRegisteredDropTarget.js","../../node_modules/react-dnd/dist/hooks/useDrop/useDropTarget.js","../../node_modules/react-dnd/dist/hooks/useDrop/useAccept.js","../../node_modules/react-dnd/dist/hooks/useDrop/useDrop.js","../../node_modules/react-dnd/dist/hooks/useDrop/useDropTargetMonitor.js","../../node_modules/react-dnd/dist/hooks/useDrop/useDropTargetConnector.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","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 { 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 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 { 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 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","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 { 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 { 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","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","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';\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","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';\nexport function useConnectDropTarget(connector) {\n return useMemo(()=>connector.hooks.dropTarget()\n , [\n connector\n ]);\n}\n\n//# sourceMappingURL=connectors.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 { 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 { 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 { 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","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","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 { 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"],"names":["DndContext","createContext","dragDropManager","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","useMonitorOutput","monitor","collect","onCollect","collected","updateCollected","onUpdate","setCollected","useState","useCallback","nextValue","equal","useCollector","handlerId","getHandlerId","subscribeToStateChange","handlerIds","useCollectedProps","collector","connector","reconnect","useOptionalFactory","arg","deps","memoDeps","useMemo","push","useConnectDragSource","hooks","dragSource","useConnectDragPreview","dragPreview","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","receiveHandlerId","sourceId","this","canDrag","invariant","internalMonitor","canDragSource","isDragging","isDraggingSource","listener","options","isOverTarget","targetId","getTargetIds","isSourcePublic","getSourceId","subscribeToOffsetChange","canDropOnTarget","getItemType","getItem","getDropResult","didDrop","getInitialClientOffset","getInitialSourceClientOffset","getSourceClientOffset","getClientOffset","getDifferenceFromInitialOffset","constructor","manager","getMonitor","isCallingCanDrop","DropTargetMonitorImpl","canDrop","isOver","isRef","obj","Object","prototype","hasOwnProperty","call","wrapHookToRecognizeElement","hook","elementOrNode","isValidElement","node","element","type","displayName","name","Error","throwIfCompositeComponentElement","newRef","previousRef","ref","cloneElement","setRef","cloneWithRef","wrapConnectorHooks","wrappedHooks","keys","forEach","key","endsWith","wrappedHook","current","SourceConnector","newHandlerId","connectTarget","dragSourceOptions","dragSourceOptionsInternal","dragPreviewOptions","dragPreviewOptionsInternal","didChange","reconnectDragSource","reconnectDragPreview","didHandlerIdChange","didConnectedDragSourceChange","didDragSourceOptionsChange","disconnectDragSource","lastConnectedHandlerId","lastConnectedDragSource","lastConnectedDragSourceOptions","dragSourceUnsubscribe","backend","connectDragSource","forceDidChange","didConnectedDragPreviewChange","didDragPreviewOptionsChange","disconnectDragPreview","lastConnectedDragPreview","lastConnectedDragPreviewOptions","dragPreviewUnsubscribe","connectDragPreview","shallowEqual","dragPreviewNode","dragPreviewRef","dragSourceNode","dragSourceRef","clearDragSource","clearDragPreview","TargetConnector","dropTarget","didDropTargetChange","didOptionsChange","disconnectDropTarget","lastConnectedDropTarget","lastConnectedDropTargetOptions","dropTargetOptions","unsubscribeDropTarget","connectDropTarget","dropTargetOptionsInternal","dropTargetNode","dropTargetRef","clearDropTarget","useDragDropManager","useContext","DragSourceImpl","beginDrag","spec","result","item","globalMonitor","target","endDrag","end","useRegisteredDragSource","handler","useDragSource","itemType","useDragType","unregister","source","registry","getRegistry","addSource","removeSource","registerSource","useDrag","specArg","begin","useDragSourceMonitor","getBackend","useDragSourceConnector","previewOptions","useConnectDropTarget","DropTargetImpl","hover","drop","useRegisteredDropTarget","useDropTarget","accept","Array","isArray","useAccept","addTarget","removeTarget","registerTarget","map","a","toString","join","useDrop","useDropTargetMonitor","useDropTargetConnector"],"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]}