/** * AllDayDragService - Manages drag and drop operations for all-day events * * STATELESS SERVICE - Reads all data from DOM via AllDayDomReader * - No persistent state * - Handles timed → all-day conversion * - Handles all-day → all-day repositioning * - Handles column changes during drag * - Calculates layouts on-demand from DOM */ import { IEventLayout } from '../../utils/AllDayLayoutEngine'; import { IDragMouseEnterHeaderEventPayload, IDragColumnChangeEventPayload, IDragEndEventPayload } from '../../types/EventTypes'; import { EventManager } from '../../managers/EventManager'; import { AllDayEventRenderer } from '../../renderers/AllDayEventRenderer'; import { DateService } from '../../utils/DateService'; export declare class AllDayDragService { private eventManager; private allDayEventRenderer; private dateService; constructor(eventManager: EventManager, allDayEventRenderer: AllDayEventRenderer, dateService: DateService); /** * Handle conversion from timed event to all-day event * Called when dragging a timed event into the header */ handleConvertToAllDay(payload: IDragMouseEnterHeaderEventPayload): void; /** * Handle column change during drag of all-day event * Updates grid position while maintaining event span */ handleColumnChange(payload: IDragColumnChangeEventPayload): void; /** * Handle drag end for all-day → all-day drops * Recalculates layouts and updates event positions */ handleDragEnd(dragEndEvent: IDragEndEventPayload): Promise; /** * Calculate layouts for events using AllDayLayoutEngine */ private calculateLayouts; /** * Apply layout updates to DOM elements * Only updates elements that have changed position * Public so AllDayCoordinator can use it for full recalculation */ applyLayoutUpdates(newLayouts: IEventLayout[]): void; /** * Fade out and remove element */ private fadeOutAndRemove; }