Implements drag and drop functionality

Introduces a DragDropManager to handle event dragging and dropping, replacing the ColumnDetector.

This change centralizes drag and drop logic, improving code organization and maintainability.

The EventRenderer now uses the DragDropManager's events to visually update the calendar during drag operations.

Removes ColumnDetector which is now replaced by the drag and drop manager.
This commit is contained in:
Janus Knudsen 2025-08-27 22:50:13 +02:00
parent be4a8af7c4
commit f697944d75
4 changed files with 658 additions and 676 deletions

View file

@ -7,7 +7,7 @@ import { ScrollManager } from '../managers/ScrollManager';
import { NavigationManager } from '../managers/NavigationManager';
import { ViewManager } from '../managers/ViewManager';
import { CalendarManager } from '../managers/CalendarManager';
import { ColumnDetector } from '../managers/ColumnDetector';
import { DragDropManager } from '../managers/DragDropManager';
/**
* Factory for creating and managing calendar managers with proper dependency injection
@ -35,6 +35,7 @@ export class ManagerFactory {
navigationManager: NavigationManager;
viewManager: ViewManager;
calendarManager: CalendarManager;
dragDropManager: DragDropManager;
} {
console.log('🏭 ManagerFactory: Creating managers with proper DI...');
@ -45,7 +46,7 @@ export class ManagerFactory {
const scrollManager = new ScrollManager();
const navigationManager = new NavigationManager(eventBus, eventRenderer);
const viewManager = new ViewManager(eventBus);
const columnDetector = new ColumnDetector();
const dragDropManager = new DragDropManager(eventBus, config);
// CalendarManager depends on all other managers
const calendarManager = new CalendarManager(
@ -66,7 +67,8 @@ export class ManagerFactory {
scrollManager,
navigationManager,
viewManager,
calendarManager
calendarManager,
dragDropManager
};
}