Enables all-day event drag and drop

Implements comprehensive drag and drop for all-day events, allowing movement within the header and conversion to timed events when dragged into the calendar grid.

Optimizes column detection with a cached bounding box strategy, improving performance and accuracy. Refactors event conversion logic and renames related event bus events for clarity.
This commit is contained in:
Janus C. H. Knudsen 2025-09-19 00:20:30 +02:00
parent f1d04ae12e
commit 0b7499521e
6 changed files with 338 additions and 106 deletions

View file

@ -17,7 +17,7 @@ Når en day event dragges op til headeren (for at konvertere til all-day) og der
### Trin 3: Mouse enters Header ⚠️ PROBLEM STARTER HER
- **DragDropManager** (linje 95-112): Lytter til `header:mouseover`
- Emitter `drag:convert-to-allday` event
- Emitter `drag:convert-to-allday_event` event
- **AllDayManager** (linje 232-285): `handleConvertToAllDay()`:
- Opretter all-day event i header
- **FJERNER original timed event permanent** (linje 274: `originalElement.remove()`)
@ -25,7 +25,7 @@ Når en day event dragges op til headeren (for at konvertere til all-day) og der
### Trin 4: Mouse leaves Header (tilbage til grid) ⚠️ PROBLEM FORTSÆTTER
- **DragDropManager** (linje 128-136): Lytter til `header:mouseleave`
- Emitter `drag:convert-from-allday` event
- Emitter `drag:convert-to-time_event` event
- **AllDayManager** (linje 290-311): `handleConvertFromAllDay()`:
- Fjerner all-day event fra container
- Viser drag clone igen