@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.
24 lines (23 loc) • 1.9 kB
TypeScript
import type { Channel, ChartKey, ChartMark, ChartMarkMotionOptions, ChartMotionDefinition, ChartSpec, ChartSpecDatum, ChartValue, StaticChartDefinition } from './types.js';
export type FacetAxes = 'outer' | 'cell';
export interface FacetChartContext {
key: ChartKey;
}
export interface FacetOptions<TDatum, TChildSpec extends ChartSpec = StaticChartDefinition<TDatum>> extends ChartMarkMotionOptions<ChartSpecDatum<TChildSpec>> {
id?: string;
by: Channel<TDatum, ChartKey>;
chart: (data: readonly [TDatum, ...TDatum[]], context: FacetChartContext) => TChildSpec;
columns?: number;
minWidth?: number;
gap?: number;
label?: boolean | ((key: ChartKey) => string);
axes?: FacetAxes;
}
type FacetChartInput<TDatum> = (data: readonly [TDatum, ...TDatum[]], context: FacetChartContext) => unknown;
type FacetOptionsInput<TDatum, TChart extends FacetChartInput<TDatum>> = Omit<FacetOptions<TDatum>, 'chart' | 'motion'> & {
chart: TChart;
motion?: ChartMotionDefinition<ChartSpecDatum<Extract<ReturnType<TChart>, ChartSpec>>>;
} & ([ReturnType<TChart>] extends [ChartSpec] ? unknown : never);
export declare function facet<TDatum, TChart extends FacetChartInput<NoInfer<TDatum>> = (data: readonly [TDatum, ...TDatum[]], context: FacetChartContext) => StaticChartDefinition<TDatum>>(source: Iterable<TDatum>, options: FacetOptionsInput<NoInfer<TDatum>, TChart>): ChartMark<ChartSpecDatum<Extract<ReturnType<TChart>, ChartSpec>>, ChartValue, ChartValue, never, never>;
export declare function facetChart<TDatum, TChart extends FacetChartInput<NoInfer<TDatum>> = (data: readonly [TDatum, ...TDatum[]], context: FacetChartContext) => StaticChartDefinition<TDatum>>(source: Iterable<TDatum>, options: FacetOptionsInput<NoInfer<TDatum>, TChart>): StaticChartDefinition<ChartSpecDatum<Extract<ReturnType<TChart>, ChartSpec>>, ChartValue, ChartValue, never>;
export {};