FullScheduler - Calendar - Gallery Image

FullScheduler — Changelog v1.0.52 - Ghosts, Flat Storage & Smarter API

Docs, demos, API

Changelog detail

1.0.52
Back to changelog

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 / livePreviewEndMs refs 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