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.

30 lines (29 loc) 2.29 kB
import type { ChartMark, ChartMarkDatum, ChartMarkPointX, ChartMarkPointY, ChartMotionDefinition, InitializedMark, MarkRenderContext, MarkScene, MaterializedChannel, SceneLabel } from './types.js'; export type AnyInitializedMark = InitializedMark<any, any, any>; type ChildDatum<TMark> = TMark extends InitializedMark<infer TDatum, any, any> ? TDatum : never; type ChildXValue<TMark> = TMark extends InitializedMark<any, infer TXValue, any> ? TXValue : never; type ChildYValue<TMark> = TMark extends InitializedMark<any, any, infer TYValue> ? TYValue : never; export interface InitializedMarkComposition<TChildren extends readonly AnyInitializedMark[]> { channels: Readonly<Record<string, MaterializedChannel>>; seriesFromColor?: boolean; childMotions: ReadonlyMap<string, ChartMotionDefinition<any>>; layoutLabels?: (context: MarkRenderContext) => readonly SceneLabel[]; render: (context: MarkRenderContext) => MarkScene<ChildDatum<TChildren[number]>, ChildXValue<TChildren[number]>, ChildYValue<TChildren[number]>>; } interface ComposeInitializedMarksOptions { coordinates: 'semantic' | 'pixel'; owner: 'Composite mark' | 'Resolved layout'; interactiveChildren?: ReadonlySet<string>; } /** Composes initialized child marks while preserving their normal scene API. */ export declare function composeInitializedMarks<const TChildren extends readonly AnyInitializedMark[]>(parentId: string, children: TChildren, options: ComposeInitializedMarksOptions): InitializedMarkComposition<TChildren>; type AnyChartMark = ChartMark<any, any, any, any, any>; interface InitializeCompositeMarkOptions<TDatum> { motion?: ChartMotionDefinition<TDatum>; interactiveChildren?: ReadonlySet<string>; } /** Initializes one ordinary semantic composite through the shared scene kernel. */ export declare function initializeCompositeMark<const TMarks extends readonly AnyChartMark[]>(id: string, marks: TMarks, options?: InitializeCompositeMarkOptions<ChartMarkDatum<TMarks[number]>>): InitializedMark<ChartMarkDatum<TMarks[number]>, ChartMarkPointX<TMarks[number]>, ChartMarkPointY<TMarks[number]>>; /** Resolves one direct child's stable mark and scene namespace. */ export declare function compositeChildMarkId(parentId: string, childId: string): string; export {};