UNPKG

@tanstack/charts

Version:

A chart grammar for TypeScript and JavaScript. Marks consume your data directly, channels describe visual encodings, and the engine compiles them into a renderer-neutral keyed scene. TanStack's compact scales cover common numeric and categorical mappings.

29 lines (28 loc) 2.37 kB
import type { ChartCursorBinding, ChartCursorController, ChartCursorExtensionToken, ChartCursorPresentation, ChartCursorState, ChartFocusSource, ChartFocusState, ChartFocusStrategy, ChartPoint, ChartScene, ChartValue } from './types.js'; export interface ChartCursorHostSession<TDatum, TXValue extends ChartValue, TYValue extends ChartValue> { readonly controller: ChartCursorController<TXValue, TYValue>; getState: () => ChartCursorState<TXValue, TYValue> | null; subscribe: (listener: () => void) => () => void; owns: (state: ChartCursorState<TXValue, TYValue> | null) => boolean; publish: (state: ChartCursorState<TXValue, TYValue>) => void; clearOwnedTransient: () => boolean; clear: () => void; destroy: () => void; resolvePresentation: (scene: ChartScene<TDatum, TXValue, TYValue>, binding: ChartCursorBinding<TDatum, TXValue, TYValue>, state: ChartCursorState<TXValue, TYValue> | null) => ChartCursorPresentation<TXValue, TYValue> | null; resolveFocus: (points: readonly ChartPoint<TDatum, TXValue, TYValue>[], binding: Extract<ChartCursorBinding<TDatum, TXValue, TYValue>, { mode: 'focus'; }>, state: ChartCursorState<TXValue, TYValue> | null, strategy?: ChartFocusStrategy<TDatum, TXValue, TYValue>) => readonly ChartPoint<TDatum, TXValue, TYValue>[]; createFocusState: (scene: ChartScene<TDatum, TXValue, TYValue>, binding: Extract<ChartCursorBinding<TDatum, TXValue, TYValue>, { mode: 'focus'; }>, focus: ChartFocusState<TDatum, TXValue, TYValue>) => ChartCursorState<TXValue, TYValue>; createFreeState: (scene: ChartScene<TDatum, TXValue, TYValue>, binding: Extract<ChartCursorBinding<TDatum, TXValue, TYValue>, { mode: 'free'; }>, position: Readonly<{ x: number; y: number; }>, source?: ChartFocusSource, pinned?: boolean) => ChartCursorState<TXValue, TYValue>; } export interface ChartCursorHostExtension extends ChartCursorExtensionToken { create: <TDatum, TXValue extends ChartValue, TYValue extends ChartValue>(controller: ChartCursorController<TXValue, TYValue>) => ChartCursorHostSession<TDatum, TXValue, TYValue>; } export declare function createChartCursorHostSession<TDatum, TXValue extends ChartValue, TYValue extends ChartValue>(binding: ChartCursorBinding<TDatum, TXValue, TYValue>): ChartCursorHostSession<TDatum, TXValue, TYValue>;