UNPKG

@antv/g2

Version:

the Grammar of Graphics in Javascript

160 lines (159 loc) 4.76 kB
import { Coordinate } from '@antv/coord'; import { DisplayObject, TextStyleProps } from '@antv/g'; import { G2GuideComponentOptions, G2Mark, G2ViewTree } from './options'; import { LabelTransform, Scale } from './component'; import { MarkProps } from './mark'; import { G2Theme } from './theme'; export type { G2Theme }; export type G2Title = { /** * Height of title, default is 36. */ size?: number; /** * Text of title. */ title?: string; /** * Text of subtitle. */ subtitle?: string | null; } & WithPrefix<Omit<TextStyleProps, 'x' | 'y' | 'text'>, 'title'> & // G.Text style for title. WithPrefix<Omit<TextStyleProps, 'x' | 'y' | 'text'>, 'subtitle'> & { titleAlign?: 'left' | 'center' | 'right'; subtitleAlign?: 'left' | 'center' | 'right'; /** * Align method for title. */ align?: 'left' | 'center' | 'right'; /** * The vertical spacing between title and subtitle, default is 2. */ spacing?: number; }; export type G2ViewDescriptor = { scale: Record<string, Scale>; coordinate: Coordinate; theme: G2Theme; markState: Map<G2Mark, G2MarkState>; components: G2GuideComponentOptions[]; layout: Layout; key: string; clip: boolean; labelTransform: LabelTransform; style: Record<string, any>; }; export type G2ViewInstance = { view: G2ViewDescriptor; container: DisplayObject; options: G2ViewTree; update: (options: G2ViewTree, source?: string | string[], callback?: any) => Promise<any>; }; export type ChannelGroups = { name?: string; scaleKey?: string; scale?: Record<string, any>; values?: { name?: string; value?: Primitive[]; field?: string; }[]; }; export type G2MarkState = { index?: number[]; data?: Record<string, any>[]; channels?: ChannelGroups[]; tooltip?: any; } & Omit<MarkProps, 'channels'>; export type MaybeArray<T> = T | T[]; export type Primitive = number | string | boolean | Date; export type TabularData = Record<string, Primitive>[]; export type WithPrefix<O extends Record<string, any>, P extends string> = { [K in keyof O as `${P}${Capitalize<K & string>}`]?: O[K]; }; export type EncodeFunction = (data: Record<string, MaybeArray<Primitive>>[]) => MaybeArray<Primitive>[]; export type Encoding = { type: string; [key: string]: any; } | Primitive | ((...args: any[]) => any); export type Encodings = Record<string | symbol, MaybeArray<Encoding>>; export type Value = { x?: number[][]; y?: number[][]; position?: number[][]; [key: string]: MaybeArray<Primitive>[]; }; export type IndexedValue = { index: number[]; value: Value; }; export type ChannelValue = MaybeArray<Primitive>[]; export type Channel = { name?: string; scale?: string; quantitative?: string; ordinal?: string; scaleName?: string; required?: boolean; value?: Primitive[]; type?: string; independent?: boolean; field?: string | string[]; visual?: boolean; range?: any[]; scaleKey?: string; }; export type Vector2 = [number, number]; export type Vector3 = [number, number, number]; export type BBox = { x?: number; y?: number; width?: number; height?: number; }; export type GuidePrimitivePosition = 'top' | 'bottom' | 'left' | 'right' | 'center' | 'inner' | 'outer'; export type GuideCompositePosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; export type GuideComponentPosition = GuidePrimitivePosition | GuideCompositePosition; export type GuideComponentOrientation = 'horizontal' | 'vertical' | number; export type GuideComponentPlane = 'xy' | 'xz' | 'yz'; export type Layout = { paddingLeft?: number; paddingRight?: number; paddingBottom?: number; paddingTop?: number; insetLeft?: number; insetRight?: number; insetBottom?: number; insetTop?: number; width?: number; height?: number; innerWidth?: number; innerHeight?: number; margin?: number; marginLeft?: number; marginBottom?: number; marginTop?: number; marginRight?: number; x?: number; y?: number; z?: number; depth?: number; }; export type Direction = 'horizontal' | 'vertical' | 'center'; export type FlexLayout = { flexDirection?: 'row' | 'column'; justifyContent?: 'flex-start' | 'flex-end' | 'center'; alignItems?: 'flex-start' | 'flex-end' | 'center'; }; export type SectionArea = [ x: number, y: number, width: number, height: number, direction: Direction, reverse: boolean, comparator: (a: Primitive, b: Primitive) => number, minX?: number, totalWidth?: number ]; export type Section = Record<GuideComponentPosition, SectionArea>;