wip
This commit is contained in:
parent
727a6ec53a
commit
72019a3d9a
15 changed files with 1056 additions and 1230 deletions
|
|
@ -176,27 +176,32 @@ private detectPixelOverlap(element1: HTMLElement, element2: HTMLElement): Overla
|
|||
- Proper separation of rendering logic from positioning
|
||||
- Clean drag state management
|
||||
|
||||
### EventOverlapManager (`src/managers/EventOverlapManager.ts`)
|
||||
### SimpleEventOverlapManager (`src/managers/SimpleEventOverlapManager.ts`)
|
||||
|
||||
**Brilliant Overlap Algorithm:**
|
||||
**Clean, Data-Attribute Based Overlap System:**
|
||||
```typescript
|
||||
public detectOverlap(event1: CalendarEvent, event2: CalendarEvent): OverlapType {
|
||||
if (!this.eventsOverlapInTime(event1, event2)) {
|
||||
return OverlapType.NONE;
|
||||
}
|
||||
|
||||
const start1 = new Date(event1.start).getTime();
|
||||
const start2 = new Date(event2.start).getTime();
|
||||
const timeDiffMinutes = Math.abs(start1 - start2) / (1000 * 60);
|
||||
const timeDiffMinutes = Math.abs(
|
||||
new Date(event1.start).getTime() - new Date(event2.start).getTime()
|
||||
) / (1000 * 60);
|
||||
|
||||
// Over 30 min start difference = stacking, within 30 min = column sharing
|
||||
return timeDiffMinutes > 30 ? OverlapType.STACKING : OverlapType.COLUMN_SHARING;
|
||||
}
|
||||
```
|
||||
|
||||
**Key Improvements Over Legacy System:**
|
||||
- **Data-Attribute Tracking**: Uses `data-stack-link` instead of in-memory Maps
|
||||
- **Simplified State Management**: DOM is the single source of truth
|
||||
- **51% Less Code**: Eliminated complex linked list management
|
||||
- **Zero State Sync Bugs**: No memory/DOM synchronization issues
|
||||
|
||||
**Visual Layout Strategies:**
|
||||
- **Column Sharing**: Flexbox layout for concurrent events
|
||||
- **Stacking**: Margin-left offsets with z-index management
|
||||
- **Stacking**: Margin-left offsets with z-index management via data attributes
|
||||
- **Dynamic Grouping**: Real-time group creation and cleanup
|
||||
|
||||
---
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue