Commit graph

15 commits

Author SHA1 Message Date
Janus C. H. Knudsen
c2f7564f8e Refactor column key handling and event positioning
Introduces more robust column key management across renderers and drag/resize operations

Decouples column key parsing from date extraction
Simplifies event positioning logic
Improves multi-resource view compatibility
2025-12-13 12:52:27 +01:00
Janus C. H. Knudsen
0eb3bacb41 Introduces uniform column key concept for calendar events
Refactors column identification with a new buildColumnKey method to support flexible date and resource tracking

Replaces separate dateKey and resourceId handling with a unified columnKey approach
Improves column rendering and event management with more consistent key generation
Simplifies cross-component event tracking and column lookups
2025-12-13 11:46:57 +01:00
Janus C. H. Knudsen
7da88bb977 Improves header drag-and-drop event handling
Enhances drag leave logic for more precise event tracking
- Adds conditional cleanup for grid-to-header drag events
- Updates drag state management during column transitions
- Prevents premature ghost element removal
2025-12-12 15:48:28 +01:00
Janus C. H. Knudsen
bc5854e09a Enhance drag and drop interactions across calendar views
Adds support for dragging events between header and grid views
Improves drag-and-drop state management and event persistence
Enables converting all-day events to timed events when dropped in grid

Refactors drag handling to support more flexible event interactions
2025-12-12 00:36:10 +01:00
Janus C. H. Knudsen
d88956f47b Adds header drawer event rendering support
Extends calendar rendering to support all-day events in header drawer

Implements rendering logic for all-day events in header drawer:
- Fetches events for visible date range
- Filters and creates header items for all-day events
- Dynamically positions events with color classes
- Expands header drawer when events are present

Enhances event persistence with header drop detection
2025-12-11 23:04:48 +01:00
Janus C. H. Knudsen
f670598e7a Refactor event handling with SwpEvent wrapper
Introduces SwpEvent class to centralize event element data and calculations

Improves drag and resize event handling by extracting common logic
Simplifies calculation of event start/end times from element positions
Enhances type safety and reduces code complexity in event managers

Removes direct pixel/minute calculations from multiple managers
2025-12-11 22:45:33 +01:00
Janus C. H. Knudsen
9e568fbd8e wip 2025-12-11 21:16:40 +01:00
Janus C. H. Knudsen
1a4c22d37f Improves drag-and-drop event positioning logic
Refactors element positioning during drag operations to:
- Use getBoundingClientRect for precise Y positioning
- Move events to events-layer for consistent dragging
- Ensure proper absolute positioning across different event layouts

Addresses positioning inconsistencies for grouped and stacked events
2025-12-11 19:05:50 +01:00
Janus C. H. Knudsen
70172e8f10 Enhances event layout engine with advanced rendering logic
Introduces sophisticated event layout algorithm for handling complex scheduling scenarios

Adds support for:
- Grid and stacked event rendering
- Automatic column allocation
- Nested event stacking
- Threshold-based event grouping

Improves visual representation of overlapping and concurrent events
2025-12-11 18:11:11 +01:00
Janus C. H. Knudsen
6723658fd9 Adds header drawer and event drag interactions
Introduces HeaderDrawerRenderer and HeaderDrawerLayoutEngine to support dragging events into an all-day header drawer

Enables dynamic event placement and conversion between timed and all-day events through new drag interactions
Implements flexible layout calculation for header items with column and row management

Extends DragDropManager to handle header zone interactions
Adds new event types for header drag events
2025-12-10 23:11:11 +01:00
Janus C. H. Knudsen
026d83eb32 Adds event resizing functionality to calendar
Introduces ResizeManager to handle dynamic event duration updates

Implements smooth height animation and grid-based snapping
Adds resize event tracking and timestamp display during resizing
Integrates resize handle creation and pointer event management
2025-12-10 22:16:40 +01:00
Janus C. H. Knudsen
4e47df2e5c Refactor edge scroll management for drag operations
Simplifies EdgeScrollManager implementation with more focused and efficient auto-scrolling logic

Removes unnecessary complexity and scroll tracking
Optimizes scroll velocity calculation and boundary detection
Improves performance by using requestAnimationFrame for smooth scrolling
2025-12-10 19:22:13 +01:00
Janus C. H. Knudsen
10d8a444d8 Adds edge scroll functionality for drag interactions
Implements EdgeScrollManager to enable automatic scrolling during drag operations

Introduces new scroll management system that:
- Detects mouse proximity to container edges
- Provides variable scroll speed based on mouse position
- Compensates dragged elements during scrolling

Enhances drag-and-drop user experience with smooth scrolling
2025-12-10 19:12:38 +01:00
Janus C. H. Knudsen
8b95f2735f Adds drag column change event handling
Introduces support for moving events between columns during drag
Tracks column changes and updates event positioning dynamically
Enables smooth cross-column event dragging experience
2025-12-10 17:18:37 +01:00
Janus C. H. Knudsen
159b023f60 Adds drag-drop support for calendar events
Introduces comprehensive drag-drop functionality for calendar events
- Implements DragDropManager to handle event dragging
- Adds new CoreEvents for drag-drop interactions
- Supports smooth interpolation and grid snapping
- Provides flexible event handling with ghost element strategy
2025-12-10 17:07:03 +01:00