Optionalformatter: FormatterServiceDisposes all registered disposables and clears the disposables array.
Opens the dialog on the active trace's extrema.
Nothing is dispatched and the scope is left alone when there is nothing to list: an empty state, a trace without extrema, or one that has none at the moment. The dialog renders nothing without targets, so opening it then would play the menu-open cue over an invisible dialog and trap the keys.
The current trace state
Whether the dialog opened, so the caller can say why it did not
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.