Phase 7 of the Multi-Body Epic (#9486).
This issue describes the ultimate "Killer Demo" capability: seamless cross-window Drag & Drop for individual grid columns.
The Scenario:
- A user detaches the Left SubGrid into its own physical browser window (as per #9493).
- The user initiates a drag on a column header in the Main window (Center SubGrid). The high-fidelity drag proxy (header + cells) is created.
- The user drags the column outside the Main window bounds. The proxy seamlessly transitions into a floating OS popup window (Infinite Canvas style, like the Dashboard).
- The user drags the floating column over the detached Left SubGrid window.
- The proxy reintegrates into the Left SubGrid's DOM. The user can continue dragging to sort the column within the detached SubGrid before finally dropping it.
Requirements:
Dashboard-Style Proxy Transitions:
- Integrate
DragCoordinator logic into the Grid's SortZone.
- Implement
onDragBoundaryExit: Detect when the column proxy leaves the grid bounds and convert it into a floating popup window containing just that column.
- Implement
onDragBoundaryEntry: Detect when the floating column window enters the bounds of another valid Grid instance (e.g., a detached SubGrid).
Cross-Window Handover (suspendWindowDrag / resumeWindowDrag):
- When entering the detached SubGrid, the OS window drag must be suspended. The floating popup closes, and the dragged column's DOM is instantaneously injected into the target SubGrid's proxy structure so the drag motion can continue unbroken.
- The target SubGrid must take over the drag state, calculating drop indices and providing visual indicators.
Data Orchestration Sync:
- Upon final drop in the new window, the App Worker must update the central
GridContainer's collections (moving the column from centerColumns to lockedStartColumns).
- The layout engines of both windows must be triggered to render the final state.
Phase 7 of the Multi-Body Epic (#9486).
This issue describes the ultimate "Killer Demo" capability: seamless cross-window Drag & Drop for individual grid columns.
The Scenario:
Requirements:
Dashboard-Style Proxy Transitions:
DragCoordinatorlogic into the Grid'sSortZone.onDragBoundaryExit: Detect when the column proxy leaves the grid bounds and convert it into a floating popup window containing just that column.onDragBoundaryEntry: Detect when the floating column window enters the bounds of another valid Grid instance (e.g., a detached SubGrid).Cross-Window Handover (
suspendWindowDrag/resumeWindowDrag):Data Orchestration Sync:
GridContainer's collections (moving the column fromcenterColumnstolockedStartColumns).