sliver_tree/_operation_group_registry library

Internal: per-operation animation source for TreeController.

Each call to expand() / collapse() creates an OperationGroup with its own AnimationController — proportional reversal timing is the payoff (collapsing a 60%-done expand takes 60% of the duration, not 100%). This registry owns the map of live groups and the per-nid reverse index _opGroupKeyByNid.

The registry wires per-group addListener (tick → onTick) and addStatusListener (status → onStatusChanged(opKey, status)) at install time. The status handler lives on TreeController because it crosses structure / order / notification concerns; the registry just forwards the event with the operation key.

Classes

OperationGroupRegistry<TKey>