@antv/g2
Version:
the Grammar of Graphics in Javascript
197 lines (196 loc) • 5.9 kB
TypeScript
import { Theme } from './theme';
import { Coordinate } from './coordinate';
import { Interaction } from './interaction';
import { Transform } from './transform';
import { Scale } from './scale';
import { Data } from './data';
import { LabelTransform } from './labelTransform';
import { Closeable, Literal2Object, Padding } from './utils';
import { AxisComponent, LegendComponent, ScrollbarComponent, SliderComponent, TitleComponent, TooltipComponent } from './component';
import { AtheisticChanelTypes, Mark, PositionChannelTypes } from './mark';
export type Composition = ViewComposition | GeoViewComposition | GeoPathComposition | SpaceLayerComposition | SpaceFlexComposition | RepeatMatrixComposition | FacetRectComposition | FacetCircleComposition | TimingKeyframeComposition;
export type CompositionTypes = 'view' | 'getView' | 'geoPath' | 'spaceLayer' | 'spaceFlex' | 'facetRect' | 'facetCircle' | 'repeatMatrix' | 'timingKeyframe';
export type ViewComposition = {
type?: 'view';
x?: number;
y?: number;
z?: number;
width?: number;
height?: number;
depth?: number;
data?: Data;
key?: string;
class?: string;
padding?: Padding;
paddingLeft?: Padding;
paddingRight?: Padding;
paddingTop?: Padding;
paddingBottom?: Padding;
margin?: number;
marginLeft?: number;
marginBottom?: number;
marginTop?: number;
marginRight?: number;
inset?: number;
insetLeft?: number;
insetTop?: number;
insetBottom?: number;
insetRight?: number;
coordinate?: Coordinate;
interaction?: Literal2Object<Interaction> & Record<string, any>;
transform?: Transform[];
theme?: Theme;
children?: (Mark | AxisComponent | LegendComponent)[];
scale?: Record<string, Scale>;
frame?: boolean;
labelTransform?: LabelTransform[];
axis?: Closeable<Partial<Record<PositionChannelTypes, Closeable<AxisComponent>>>>;
legend?: Closeable<Partial<Record<AtheisticChanelTypes, Closeable<LegendComponent>>>>;
tooltip?: TooltipComponent;
slider?: Closeable<Partial<Record<PositionChannelTypes, Closeable<SliderComponent>>>>;
scrollbar?: Closeable<Partial<Record<PositionChannelTypes, Closeable<ScrollbarComponent>>>>;
title?: string | TitleComponent;
style?: Record<string, any>;
clip?: boolean;
};
export type GeoViewComposition = Omit<ViewComposition, 'type'> & {
type?: 'geoView';
coordinate?: Record<string, any>;
[key: string]: any;
};
export type GeoPathComposition = Omit<ViewComposition, 'type'> & {
type?: 'geoPath';
coordinate?: Record<string, any>;
[key: string]: any;
};
export type SpaceLayerComposition = {
type?: 'spaceLayer';
key?: string;
data?: any;
children?: Node[];
[key: string]: any;
};
export type SpaceFlexComposition = {
type?: 'spaceFlex';
key?: string;
data?: Data;
direction?: 'col' | 'row';
ratio?: number[];
padding?: Padding;
children?: Node[];
[key: string]: any;
};
export type FacetContext = {
columnField?: string | number;
columnIndex?: number;
columnValue?: string | number;
columnValuesLength?: number;
rowField?: string | number;
rowIndex?: number;
rowValue?: string | number;
rowValuesLength?: number;
};
export type FacetRectComposition = {
type?: 'facetRect';
transform?: Transform;
data?: Data;
padding?: Padding;
paddingLeft?: Padding;
paddingRight?: Padding;
paddingTop?: Padding;
paddingBottom?: Padding;
margin?: number;
marginLeft?: number;
marginBottom?: number;
marginTop?: number;
marginRight?: number;
key?: string;
title?: string | TitleComponent;
encode?: {
x?: string;
y?: string;
};
scale?: {
x?: Scale;
y?: Scale;
color?: Scale;
};
shareData?: boolean;
shareSize?: boolean;
children?: Node[] | ((facet: FacetContext) => Node);
axis?: Record<string, any> | boolean;
legend?: Record<string, any> | boolean;
[key: string]: any;
};
export type RepeatMatrixComposition = {
type?: 'repeatMatrix';
padding?: Padding;
paddingLeft?: Padding;
paddingRight?: Padding;
paddingTop?: Padding;
paddingBottom?: Padding;
margin?: number;
marginLeft?: number;
marginBottom?: number;
marginTop?: number;
marginRight?: number;
transform?: Transform;
title?: string | TitleComponent;
data?: Data;
key?: string;
encode?: {
x?: string[] | string;
y?: string[] | string;
position?: string[];
};
scale?: {
x?: Scale;
y?: Scale;
color?: Scale;
};
axis?: Record<string, any> | boolean;
legend?: Record<string, any> | boolean;
children?: Node[] | ((facet: FacetContext) => Node);
[key: string]: any;
};
export type FacetCircleComposition = {
type?: 'facetCircle';
padding?: Padding;
paddingLeft?: Padding;
paddingRight?: Padding;
paddingTop?: Padding;
paddingBottom?: Padding;
margin?: number;
marginLeft?: number;
marginBottom?: number;
marginTop?: number;
marginRight?: number;
transform?: Transform;
title?: string | TitleComponent;
data?: Data;
key?: string;
encode?: {
position?: string;
};
scale?: {
x?: Scale;
y?: Scale;
color?: Scale;
};
children?: Node[] | ((facet: FacetContext) => Node);
axis?: Record<string, any> | boolean;
legend?: Record<string, any> | boolean;
[key: string]: any;
};
export type TimingKeyframeComposition = {
type?: 'timingKeyframe';
duration?: number;
key?: string;
easing?: string;
iterationCount?: 'infinite' | number;
direction?: 'normal' | 'reverse' | 'alternate' | 'reverse-alternate';
children?: Node[];
[key: string]: any;
};
type Node = Mark | Composition;
export {};