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.

39 lines (38 loc) 1.81 kB
import type { ControlledSignal } from './interaction-signal.js'; import type { ChartControl, ChartValue, SceneStyle } from './types.js'; export interface BrushRange<TValue extends ChartValue> { readonly start: TValue; readonly end: TValue; } export type BrushXSource = 'pointer' | 'keyboard'; export type BrushXTarget = 'selection' | 'start' | 'end' | 'new'; export type BrushXChange<TValue extends ChartValue> = BrushXChangeEvent<TValue, 'preview', 'pointer'> | BrushXChangeEvent<TValue, 'commit', BrushXSource> | BrushXChangeEvent<TValue, 'cancel', BrushXSource>; interface BrushXChangeEvent<TValue extends ChartValue, TType extends 'preview' | 'commit' | 'cancel', TSource extends BrushXSource> { readonly type: TType; readonly value: BrushRange<TValue>; readonly origin: BrushRange<TValue>; readonly source: TSource; readonly target: BrushXTarget; } interface BrushXBaseOptions<TValue extends ChartValue> { id?: string; range: ControlledSignal<BrushRange<TValue>, BrushXChange<TValue>>; ariaLabel?: string; startAriaLabel?: string; endAriaLabel?: string; format?: (value: TValue) => string; handleSize?: number; selectionStyle?: SceneStyle; handleStyle?: SceneStyle; } export interface BrushXValuesOptions<TValue extends ChartValue> extends BrushXBaseOptions<TValue> { values: readonly TValue[]; keyboard?: boolean; } export interface BrushXContinuousOptions<TValue extends number | Date> extends BrushXBaseOptions<TValue> { values?: never; keyboard: false; } export declare function brushX<TValue extends ChartValue>(options: BrushXValuesOptions<TValue>): ChartControl<TValue, any>; export declare function brushX<TValue extends number | Date>(options: BrushXContinuousOptions<TValue>): ChartControl<TValue, any>; export {};