sliver_tree/_animation_coordinator library
Internal: facade over the five animation sources (standalone, per-operation groups, bulk, slide, make-room preview), plus the cross-source state that spans them.
The first three drive layout and are unioned by hasActiveAnimations;
slide and preview are paint-only and are read through the slide-delta
getters instead.
Owns the cross-source per-nid state (full extents, pending deletion, the animating and exiting union mirrors), the broad animation generation counter (the bulk-specific one lives on BulkAnimator), the animating-keys cache, and the animation-listener channel. The five sub-coordinators are held by composition, not inheritance.
Implements AnimationReader so RenderSliverTree can hold an abstract reference instead of the concrete coordinator (or the controller).
Status-change handlers and the standalone tick body stay on
TreeController: they cross structure, order and structural
notification concerns, and are wired in here as callbacks.
Classes
-
AnimationCoordinator<
TKey> -
AnimationReader<
TKey> - Narrow read interface that the render layer depends on instead of TreeController. Allows render-layer tests to stub animation reads without standing up a full controller.