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.

50 lines (49 loc) 6.04 kB
import type { ResponsiveChartDefinition, ChartAxisOptions, ChartBuildContext, CheckedChartSpec, ChartDefinitionOptions, ChartDefinition, ResponsiveChartConfig, ChartLayoutOptions, ChartMark, ChartMarkDatum, ChartMarkPointX, ChartMarkPointY, ChartPoint, ChartScene, ChartSize, ChartSpec, ChartSpecDatum, ChartSpecXValue, ChartSpecYValue, StaticChartDefinition, ChartTheme, ChartValue } from './types.js'; export declare const defaultChartTheme: ChartTheme; type DefinedStaticChart<TMarks extends readonly ChartMark<any, any, any>[], TSpec extends ChartSpec<TMarks>> = Omit<StaticChartDefinition<ChartMarkDatum<TMarks[number]>, ChartMarkPointX<TMarks[number]>, ChartMarkPointY<TMarks[number]>>, keyof ChartDefinitionOptions | keyof ChartSpec> & Omit<TSpec, keyof ChartDefinitionOptions> & Pick<StaticChartDefinition<ChartMarkDatum<TMarks[number]>, ChartMarkPointX<TMarks[number]>, ChartMarkPointY<TMarks[number]>>, Exclude<Extract<keyof TSpec, keyof ChartDefinitionOptions>, 'tooltip'>> & Pick<TSpec, Extract<keyof TSpec, 'tooltip'>>; type ChartDefinitionDatum<TDefinition> = TDefinition extends ChartDefinition<infer TDatum, any, any> ? TDatum : never; type ChartDefinitionXValue<TDefinition> = TDefinition extends ChartDefinition<any, infer TXValue, any> ? TXValue : never; type ChartDefinitionYValue<TDefinition> = TDefinition extends ChartDefinition<any, any, infer TYValue> ? TYValue : never; type ChartDefinitionWithOptions<TDefinition, TOptions> = Omit<TDefinition, keyof TOptions> & TOptions; type DefinedResponsiveChart<TSpec extends { marks: readonly ChartMark<any, any, any>[]; x?: ChartAxisOptions<any> | null; y?: ChartAxisOptions<any> | null; }> = Omit<ResponsiveChartDefinition<ChartSpecDatum<TSpec>, ChartSpecXValue<TSpec>, ChartSpecYValue<TSpec>>, keyof ChartDefinitionOptions> & { chart: (context: ChartBuildContext) => CheckedChartSpec<TSpec>; }; export declare function defineChart<const TMarks extends readonly ChartMark<any, any, any>[], const TSpec extends ChartSpec<TMarks>>(spec: TSpec & { marks: TMarks; } & ChartDefinitionOptions<ChartMarkDatum<TMarks[number]>, ChartMarkPointX<TMarks[number]>, ChartMarkPointY<TMarks[number]>>): DefinedStaticChart<TMarks, TSpec>; export declare function defineChart<const TSpec extends { marks: readonly ChartMark<any, any, any>[]; x?: ChartAxisOptions<any> | null; y?: ChartAxisOptions<any> | null; }, TTooltipHost extends string = never>(config: ResponsiveChartConfig<TSpec, TTooltipHost>): Omit<ResponsiveChartDefinition<ChartSpecDatum<TSpec>, ChartSpecXValue<TSpec>, ChartSpecYValue<TSpec>>, keyof ChartDefinitionOptions> & ResponsiveChartConfig<TSpec, TTooltipHost>; export declare function defineChart<const TSpec extends { marks: readonly ChartMark<any, any, any>[]; x?: ChartAxisOptions<any> | null; y?: ChartAxisOptions<any> | null; }>(chart: (context: ChartBuildContext) => CheckedChartSpec<TSpec>): DefinedResponsiveChart<TSpec>; export declare function defineChart<const TMarks extends readonly ChartMark<any, any, any>[], const TSpec extends ChartSpec<TMarks>, const TOptions extends ChartDefinitionOptions<ChartMarkDatum<TMarks[number]>, ChartMarkPointX<TMarks[number]>, ChartMarkPointY<TMarks[number]>>>(spec: TSpec & { marks: TMarks; } & ChartDefinitionOptions<ChartMarkDatum<TMarks[number]>, ChartMarkPointX<TMarks[number]>, ChartMarkPointY<TMarks[number]>>, options: TOptions): ChartDefinitionWithOptions<DefinedStaticChart<TMarks, TSpec>, TOptions>; export declare function defineChart<const TSpec extends { marks: readonly ChartMark<any, any, any>[]; x?: ChartAxisOptions<any> | null; y?: ChartAxisOptions<any> | null; }, const TOptions extends ChartDefinitionOptions<ChartSpecDatum<TSpec>, ChartSpecXValue<TSpec>, ChartSpecYValue<TSpec>>>(chart: (context: ChartBuildContext) => TSpec, options: TOptions): ChartDefinitionWithOptions<DefinedResponsiveChart<TSpec>, TOptions>; export declare function defineChart<const TMarks extends readonly ChartMark<any, any, any>[], const TSpec extends ChartSpec<TMarks>, const TOptions extends ChartDefinitionOptions<ChartMarkDatum<TMarks[number]>, ChartMarkPointX<TMarks[number]>, ChartMarkPointY<TMarks[number]>>>(config: { chart: (context: ChartBuildContext) => TSpec & { marks: TMarks; }; }, options: TOptions): ChartDefinitionWithOptions<DefinedResponsiveChart<TSpec & { marks: TMarks; }>, TOptions>; export declare function defineChart<const TDefinition extends StaticChartDefinition<any, any, any>, const TOptions extends ChartDefinitionOptions<ChartDefinitionDatum<TDefinition>, ChartDefinitionXValue<TDefinition>, ChartDefinitionYValue<TDefinition>>>(definition: TDefinition, options: TOptions): ChartDefinitionWithOptions<NoInfer<TDefinition>, NoInfer<TOptions>>; export declare function defineChart<const TDefinition extends ResponsiveChartDefinition<any, any, any>, const TOptions extends ChartDefinitionOptions<ChartDefinitionDatum<TDefinition>, ChartDefinitionXValue<TDefinition>, ChartDefinitionYValue<TDefinition>>>(definition: TDefinition, options: TOptions): ChartDefinitionWithOptions<NoInfer<TDefinition>, NoInfer<TOptions>>; export declare function createChartScene<TDatum, TXValue extends ChartValue, TYValue extends ChartValue>(definition: StaticChartDefinition<TDatum, TXValue, TYValue>, size: ChartSize, layout?: ChartLayoutOptions): ChartScene<TDatum, TXValue, TYValue>; export declare function findNearestPoint<TDatum, TXValue extends ChartValue, TYValue extends ChartValue>(scene: ChartScene<TDatum, TXValue, TYValue>, x: number, y: number, maxDistance?: number, points?: readonly ChartPoint<TDatum, TXValue, TYValue>[]): ChartPoint<TDatum, TXValue, TYValue> | null; /** Points whose presented anchors are inside an active viewport clip. */ export declare function viewportInteractionPoints<TDatum, TXValue extends ChartValue, TYValue extends ChartValue>(scene: ChartScene<TDatum, TXValue, TYValue>, points?: readonly ChartPoint<TDatum, TXValue, TYValue>[]): readonly ChartPoint<TDatum, TXValue, TYValue>[]; export {};