@tanstack/charts
Version:
<div align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="https://tanstack.com/api/readme/charts.png?theme=dark" /> <source media="(prefers-color-scheme: light)" srcset="https://tanstack.com/
30 lines (29 loc) • 2.3 kB
TypeScript
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, 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 {};