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.

51 lines (50 loc) 3.2 kB
import type { Channel, ChannelOutput, ChartFocusMatch, ChartKey, ChartMark, ChartMarkMotionOptions, ChartPoint, ChartValue, VisualChannel } from './types.js'; export interface FocusGuideRuleOptions<TDatum> { stroke?: VisualChannel<TDatum, string>; strokeOpacity?: VisualChannel<TDatum, number>; strokeWidth?: VisualChannel<TDatum, number>; strokeDasharray?: VisualChannel<TDatum, string>; lineCap?: 'butt' | 'round' | 'square'; } export interface FocusGuideMarkerOptions<TDatum> { radius?: VisualChannel<TDatum, number>; fill?: VisualChannel<TDatum, string>; fillOpacity?: VisualChannel<TDatum, number>; stroke?: VisualChannel<TDatum, string>; strokeOpacity?: VisualChannel<TDatum, number>; strokeWidth?: VisualChannel<TDatum, number>; } export interface FocusGuideLabelFormatContext<TDatum, TXValue extends ChartValue, TYValue extends ChartValue> { readonly point: ChartPoint<TDatum, TXValue, TYValue>; } export interface FocusGuideLabelOptions<TDatum, TValue extends ChartValue, TXValue extends ChartValue, TYValue extends ChartValue> { format?: (value: TValue, context: FocusGuideLabelFormatContext<TDatum, TXValue, TYValue>) => string; side?: 'start' | 'end'; offset?: number; paddingX?: number; paddingY?: number; radius?: number; background?: VisualChannel<TDatum, string>; color?: VisualChannel<TDatum, string>; stroke?: VisualChannel<TDatum, string>; strokeWidth?: number; fontSize?: number; fontWeight?: number; } type FocusGuideChannel<TDatum> = Channel<TDatum, ChartValue | null | undefined>; export interface FocusGuideOptions<TDatum, TXChannel extends FocusGuideChannel<TDatum>, TYChannel extends FocusGuideChannel<TDatum>> extends ChartMarkMotionOptions<TDatum> { id?: string; x: TXChannel; y: TYChannel; z?: Channel<TDatum, ChartKey | null | undefined>; key?: Channel<TDatum, ChartKey>; match?: ChartFocusMatch; xRule?: false | FocusGuideRuleOptions<TDatum>; yRule?: false | FocusGuideRuleOptions<TDatum>; marker?: false | FocusGuideMarkerOptions<TDatum>; xLabel?: false | FocusGuideLabelOptions<TDatum, ChannelOutput<TDatum, TXChannel, number>, ChannelOutput<TDatum, TXChannel, number>, ChannelOutput<TDatum, TYChannel, number>>; yLabel?: false | FocusGuideLabelOptions<TDatum, ChannelOutput<TDatum, TYChannel, number>, ChannelOutput<TDatum, TXChannel, number>, ChannelOutput<TDatum, TYChannel, number>>; } export declare function focusGuideX<TDatum, const TXChannel extends FocusGuideChannel<NoInfer<TDatum>>, const TYChannel extends FocusGuideChannel<NoInfer<TDatum>>>(source: Iterable<TDatum>, options: FocusGuideOptions<NoInfer<TDatum>, TXChannel, TYChannel>): ChartMark<TDatum, ChannelOutput<TDatum, TXChannel, number>, ChannelOutput<TDatum, TYChannel, number>>; export declare function focusGuideY<TDatum, const TXChannel extends FocusGuideChannel<NoInfer<TDatum>>, const TYChannel extends FocusGuideChannel<NoInfer<TDatum>>>(source: Iterable<TDatum>, options: FocusGuideOptions<NoInfer<TDatum>, TXChannel, TYChannel>): ChartMark<TDatum, ChannelOutput<TDatum, TXChannel, number>, ChannelOutput<TDatum, TYChannel, number>>; export {};