@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.
37 lines (36 loc) • 3.11 kB
TypeScript
import type { ChartInteractionController, ChartRenderer, ChartRendererHostOptions, ChartSurface } from './dom-types.js';
import type { ChartRuntime, ChartScene, ChartValue, RenderChartOptions } from './types.js';
export interface CanvasChartRendererOptions {
pixelRatio?: number;
}
export interface CanvasChartSurface<TDatum = unknown, TXValue extends ChartValue = ChartValue, TYValue extends ChartValue = ChartValue> extends ChartSurface<TDatum, TXValue, TYValue> {
readonly element: HTMLDivElement;
/** Background plus ordinary scene, excluding transient focus presentation. */
readonly canvas: HTMLCanvasElement;
/** Live background layer beneath focus underlays. */
readonly backgroundCanvas: HTMLCanvasElement;
readonly focusUnderCanvas: HTMLCanvasElement;
/** Live ordinary-scene layer above focus underlays. */
readonly sceneCanvas: HTMLCanvasElement;
readonly focusCanvas: HTMLCanvasElement;
}
export interface CanvasChartRenderer<TDatum = unknown, TXValue extends ChartValue = ChartValue, TYValue extends ChartValue = ChartValue> extends ChartRenderer<TDatum, TXValue, TYValue> {
mount: (container: HTMLElement, requestRender: (force?: boolean) => void) => CanvasChartSurface<TDatum, TXValue, TYValue>;
}
interface UniversalCanvasChartRenderer {
readonly id: string;
prerender: <TDatum = unknown, TXValue extends ChartValue = ChartValue, TYValue extends ChartValue = ChartValue>(scene: ChartScene<TDatum, TXValue, TYValue>, options: RenderChartOptions) => string;
mount: <TDatum = unknown, TXValue extends ChartValue = ChartValue, TYValue extends ChartValue = ChartValue>(container: HTMLElement, requestRender: (force?: boolean) => void) => CanvasChartSurface<TDatum, TXValue, TYValue>;
}
type DistributiveOmit<TValue, TKey extends PropertyKey> = TValue extends unknown ? Omit<TValue, TKey> : never;
export type CanvasChartHostOptions<TDatum = unknown, TXValue extends ChartValue = ChartValue, TYValue extends ChartValue = ChartValue> = DistributiveOmit<ChartRendererHostOptions<TDatum, TXValue, TYValue>, 'renderer'>;
export interface CanvasChartHost<TDatum = unknown, TXValue extends ChartValue = ChartValue, TYValue extends ChartValue = ChartValue> {
readonly interaction: ChartInteractionController<TDatum, TXValue, TYValue>;
update: (options: CanvasChartHostOptions<TDatum, TXValue, TYValue>) => void;
getScene: () => ChartScene<TDatum, TXValue, TYValue>;
destroy: () => void;
}
export declare function createCanvasChartRenderer<TDatum = unknown, TXValue extends ChartValue = ChartValue, TYValue extends ChartValue = ChartValue>(rendererOptions?: CanvasChartRendererOptions): CanvasChartRenderer<TDatum, TXValue, TYValue>;
export declare const canvasChartRenderer: UniversalCanvasChartRenderer;
export declare function mountCanvasChart<TDatum, TXValue extends ChartValue = ChartValue, TYValue extends ChartValue = ChartValue>(container: HTMLElement, initialOptions: CanvasChartHostOptions<TDatum, TXValue, TYValue>, runtime?: ChartRuntime<TDatum, TXValue, TYValue>): CanvasChartHost<TDatum, TXValue, TYValue>;
export {};