FullScheduler — Changelog v1.0.52 - Ghosts, Flat Storage & Smarter API
Docs, demos, API
Changelog v1.0.52 - Ghosts, Flat Storage & Smarter API
Date: 2025-10-21
Build: 1.0.52+2319
Major structural simplification and render-performance upgrade.
Event storage is now flat and reactive, ghost elements simulate drag/resize actions without reflows, and a new API surface enables sorting, filtering, and dynamic day adjustments.
Changed
1) Flattened event storage
Removed the old two-dimensional [day][row] event matrix.
All events now live in a single flat collection calendarEvents).
This reduces overhead from nested reactivity and simplifies the virtual scroller logic.
Added
2) Ghost elements for drag and resize
Introduced a new ghost rendering layer for event previews:
Appears during drag or resize operations.
Does not modify the original event data.
Uses lightweight
livePreviewStartMs/livePreviewEndMsrefs for smooth, reactive-free motion.
This improves performance on large calendars and provides a realistic preview of movement and resizing.
3) Sorting and filtering API
New methods in the event manager API:
sort: Sort
setSortFn: SetSortFn<T>
getEventsByDate: GetEventsByDate<T>
They allow dynamic sorting and precise per-day filtering of events from the flat collection.
4) resizeDayContainerByDate
A new API utility that adjusts container height or row layout based on a given date.
Useful when events dynamically overflow or shrink beyond default layout expectations.
Changed (cleanup)
5) Predicate-based deletion
Removed the rigid removeEventsByParam method.
Replaced with a new, expressive functional variant:
deleteEvents(predicate: (obj: T) => boolean)
This allows flexible logic for pruning events by custom conditions within their payload.
Internal workflow
FullSchedulerEventContainer and GhostElements now read live preview refs from the drag/resize singletons.
Rendering logic for visible events is fully ghost-aware, bypassing reactive mutations during interaction.
All computations for layout (marginLeft, width) are derived from effective preview dates.
Meta
Scope: runtime optimization, API surface, event lifecycle simplification
Breaking changes: none for end-users; internal composables updated to new flat model
uthor:. Mateusz Swiderski
