Optionalformatter: FormatterServiceDisposes all registered disposables and clears the disposables array.
Moves the selection to an explicit index (WAI-ARIA Home/End support). Clamps to [0, targets.length]; targets.length is the virtual search option, mirroring moveDown()'s upper bound so any valid position is addressable.
The target selection index.
Closes the dialog and navigates the active trace to a chosen target.
The only way into the model from the dialog, so every selection path — a
click, an Enter in the listbox, the hotkey — closes and moves in the same
order and gets the same guard. A trace can advertise extrema support
without implementing the jump (the base navigateToExtrema throws), which
would otherwise leave the reader in the GO_TO_EXTREMA scope with the
dialog open and nothing announced.
The extrema target to navigate to.
Closes the dialog and moves the active trace to a chosen X value.
The search half of selectTarget, guarded the same way so a trace that cannot honour the move cannot strand the reader in the dialog.
The raw X value to move to.
True when the trace could be moved, false when it offers no X-value navigation and the dialog was therefore left alone.
Get available X values from the active trace for search functionality
Array of X values that can be searched/navigated to
Get available X values paired with their display label. value is the raw
XValue (navigation matches on it); label is the x-axis formatted string so
the search options read the same as the terse layer text and the extrema
target labels (e.g. "Nov 3" rather than the raw "2019-11-03"). Falls back to
String(value) only when no formatter was injected or the active layer has
no id — every known layer is formatted, configured or not.
Array of {value, label} options for the search combobox.
Check if a trace supports extrema navigation
The trace to check
True if the trace supports extrema navigation
Abstract base class for view models that manage UI state and store interactions.