Skip to main content
The DragDropManager is the central orchestrator of the drag and drop system. It coordinates all interactions between draggable and droppable elements.

Detect input

Trigger

Transform

Manager

Registry

Entities

Plugins

Sensors

Modifiers

Draggable

Droppable

Operation

Events

Usage

Create a manager instance to coordinate drag and drop interactions:
object
Optional configuration for the manager:
  • sensors: Sensors to detect drag interactions — an array or a function that receives the defaults
  • plugins: Plugins to extend functionality — an array or a function that receives the defaults
  • modifiers: Modifiers to customize behavior — an array or a function that receives the defaults

Configuration

The manager comes with sensible defaults, but you can customize its behavior. The plugins, sensors, and modifiers options accept either an array (which replaces the defaults) or a function that receives the default values and returns a new array.

Extending defaults

Use the function form to add to or configure the defaults without replacing them:

Replacing defaults

Pass an array to fully replace the defaults:
The manager includes these defaults out of the box:Sensors
  • PointerSensor: Handles mouse and touch interactions
    • Mouse: Activates immediately on drag handle
    • Touch: 250ms delay with 5px movement tolerance
    • Other pointers: 200ms delay with 5px distance threshold
  • KeyboardSensor: Enables keyboard navigation with arrow keys
Plugins
  • Accessibility: Manages ARIA attributes and announcements
  • AutoScroller: Scrolls containers when dragging near edges
  • Cursor: Updates cursor appearance during drag
  • Feedback: Controls visual feedback during drag
  • PreventSelection: Prevents text selection while dragging
  • ScrollListener: Monitors scroll events during drag
  • Scroller: Handles programmatic scrolling

Events

The manager’s monitor lets you observe drag and drop events:

Available Events

Event
Fires before drag begins. Can be prevented.
Event
Fires when drag starts.
Event
Fires during movement. Can be prevented.
Event
Fires when over a droppable. Call event.preventDefault() to prevent the default behavior of plugins that respond to this event.
Event
Fires on droppable collision. Can be prevented.
Event
Fires when drag ends.

Registration

The manager’s registry tracks draggable and droppable elements:
Elements automatically register when created with a manager reference. Only use manual registration for advanced use cases.

API Reference

Properties

  • registry: Tracks active elements and extensions
    • draggables: Map of registered draggable elements
    • droppables: Map of registered droppable elements
    • plugins: Registry of active plugins
    • sensors: Registry of active sensors
    • modifiers: Registry of active modifiers
  • dragOperation: Current drag operation state
    • source: Currently dragged element
    • target: Current drop target
    • position: Current drag coordinates
    • status: Current operation status
    • canceled: Whether operation was canceled
  • monitor: Event system
    • addEventListener: Add event listener
    • removeEventListener: Remove listener
  • renderer: Integration with asynchronous renderers such as React

Methods

function
Clean up the manager and all registered elements:
  • Unregisters all draggables and droppables
  • Cleans up all plugins, sensors, and modifiers
  • Removes all event listeners

Lifecycle

  1. Initialization
    • Manager created
    • Default plugins and sensors registered
    • Custom configuration applied
  2. Registration
    • Draggable and droppable elements register
    • Plugins initialize
    • Event listeners bound
  3. Operation
    • Drag operations tracked
    • Events dispatched
    • Collisions detected
  4. Cleanup
    • Elements unregister
    • Event listeners removed
    • Resources released