UNPKG

@antv/g2

Version:

the Grammar of Graphics in Javascript

146 lines (145 loc) 5.52 kB
import EventEmitter from '@antv/event-emitter'; import type { DisplayObject } from '@antv/g'; import { Canvas, IAnimation as GAnimation } from '@antv/g'; import { G2Title, G2ViewDescriptor, GuideComponentPlane, GuideComponentPosition, Layout, Primitive } from './common'; import { AnimationComponent, CompositionComponent, CoordinateComponent, G2BaseComponent, G2ComponentNamespaces, GuideComponentComponent, InteractionComponent, LabelTransformComponent, PaletteComponent, Scale, ScaleComponent, ShapeComponent, ThemeComponent } from './component'; import { DataComponent } from './data'; import { EncodeComponent } from './encode'; import { MarkComponent } from './mark'; import { TransformComponent } from './transform'; export type G2ViewTree = { width?: number; height?: number; depth?: number; } & Node; export type Node = { type?: string | ((...args: any[]) => any); children?: Node[] | ((...args: any[]) => any); key?: string; [key: string]: any; }; export type G2Library = Record<`${G2ComponentNamespaces}.${string}`, { (...args: any[]): any; props?: Record<string, any>; }>; export type G2Context = { library?: G2Library; canvas?: Canvas; emitter?: EventEmitter; group?: DisplayObject; animations?: GAnimation[]; views?: G2ViewDescriptor[]; /** * Tell G2 how to create a canvas-like element, some marks will use it later such as wordcloud & heatmap. * Use `document.createElement('canvas')` instead if not provided. */ createCanvas?: () => HTMLCanvasElement; }; export type G2View = { key?: string; x?: number; y?: number; z?: number; width?: number; height?: number; depth?: number; padding?: number; paddingLeft?: number; paddingRight?: number; paddingTop?: number; paddingBottom?: number; inset?: number; insetLeft?: number; insetTop?: number; insetRight?: number; insetBottom?: number; margin?: number; marginLeft?: number; marginBottom?: number; marginTop?: number; marginRight?: number; theme?: G2ThemeOptions; title?: G2TitleOptions; coordinates?: G2CoordinateOptions[]; coordinate?: Record<string, any>; components?: G2GuideComponentOptions[]; interaction?: Record<string, any>; marks?: G2Mark[]; frame?: boolean; labelTransform?: G2LabelTransformOptions[]; style?: Record<string, any>; tooltip?: boolean; clip?: boolean; }; export type G2Mark = { key?: string; class?: string; paddingLeft?: number; paddingRight?: number; paddingTop?: number; paddingBottom?: number; data?: any; transform?: G2TransformOptions[]; scale?: Record<string, G2ScaleOptions>; encode?: Record<string, any | G2EncodeOptions>; type?: string | MarkComponent; animate?: { enter?: Record<string, Primitive>; update?: Record<string, Primitive>; exit?: Record<string, Primitive>; }; facet?: boolean; axis?: boolean | Record<string, any>; legend?: boolean | Record<string, any>; slider?: Record<string, any>; scrollbar?: Record<string, any>; tooltip?: any; filter?: (i: number) => boolean; children?: G2MarkChildrenCallback; dataDomain?: number; modifier?: any; frame?: boolean; style?: Record<string, Primitive>; labels?: Record<string, any>[]; interaction?: Record<string, any>; coordinate?: Record<string, any>; viewStyle?: Record<string, any>; }; export type G2MarkChildrenCallback = (visualData: Record<string, any>[], scale: Record<string, Scale>, layout: Layout) => Node[]; export type G2BaseComponentOptions<C = G2BaseComponent, O = { [key: string | symbol]: any; }> = { type?: string | C; } & O; export type G2ComponentOptions = G2TransformOptions | G2EncodeOptions | G2ThemeOptions | G2MarkOptions | G2CoordinateOptions | G2ScaleOptions | G2ShapeOptions | G2PaletteOptions | G2GuideComponentOptions | G2AnimationOptions | G2InteractionOptions | G2CompositionOptions | G2LabelTransformOptions; export type G2TransformOptions = G2BaseComponentOptions<TransformComponent>; export type G2EncodeOptions = G2BaseComponentOptions<EncodeComponent>; export type G2ThemeOptions = G2BaseComponentOptions<ThemeComponent>; export type G2MarkOptions = G2BaseComponentOptions<MarkComponent>; export type G2CoordinateOptions = G2BaseComponentOptions<CoordinateComponent>; export type G2ScaleOptions = G2BaseComponentOptions<ScaleComponent, { name?: string; domain?: any[]; range?: any[]; guide?: G2GuideComponentOptions; field?: string | string[]; zero?: boolean; [key: string | symbol]: any; }>; export type G2ShapeOptions = G2BaseComponentOptions<ShapeComponent>; export type G2PaletteOptions = G2BaseComponentOptions<PaletteComponent>; export type G2GuideComponentOptions = G2BaseComponentOptions<GuideComponentComponent, { scale?: G2ScaleOptions; position?: GuideComponentPosition; plane?: GuideComponentPlane; size?: number; order?: number; zIndex?: number; [key: string | symbol]: any; }>; export type G2AnimationOptions = G2BaseComponentOptions<AnimationComponent>; export type G2InteractionOptions = G2BaseComponentOptions<InteractionComponent>; export type G2CompositionOptions = G2BaseComponentOptions<CompositionComponent>; export type G2LabelTransformOptions = G2BaseComponentOptions<LabelTransformComponent>; export type G2TitleOptions = G2Title; export type G2DataOptions = G2BaseComponent<DataComponent>;