@antv/g2
Version:
the Grammar of Graphics in Javascript
168 lines (167 loc) • 5.49 kB
TypeScript
import { TransformComponent, Primitive } from '../runtime';
import { ChannelTypes } from './mark';
export type Transform = StackYTransform | DodgeXTransform | NormalizeYTransform | StackEnterTransform | JitterTransform | JitterXTransform | JitterYTransform | SymmetryYTransform | DiffYTransform | SelectTransform | SelectXTransform | SelectYTransform | GroupXTransform | GroupYTransform | GroupColorTransform | SortXTransform | SortYTransform | SortColorTransform | GroupTransform | PackTransform | BinXTransform | BinTransform | SampleTransform | FlexXTransform | FilterTransform;
export type TransformTypes = 'dodgeX' | 'stackY' | 'normalizeY' | 'stackEnter' | 'jitter' | 'jitterX' | 'jitterY' | 'symmetryY' | 'diffY' | 'select' | 'selectY' | 'selectX' | 'groupX' | 'groupY' | 'group' | 'groupColor' | 'sortX' | 'sortColor' | 'sortY' | 'flexX' | 'pack' | 'sample' | 'filter' | 'kde' | TransformComponent;
export type TransformOrder = 'value' | 'sum' | 'series' | 'maxIndex' | string[] | null | ((data: Record<string, Primitive>) => Primitive);
export type DodgeXTransform = {
type?: 'dodgeX';
groupBy?: string | string[];
reverse?: boolean;
orderBy?: TransformOrder;
padding?: number;
};
export type StackYTransform = {
type?: 'stackY';
groupBy?: string | string[];
reverse?: boolean;
orderBy?: TransformOrder;
y?: 'y' | 'y1';
y1?: 'y' | 'y1';
series?: boolean;
};
export type NormalizeYTransform = {
type?: 'normalizeY';
series?: boolean;
groupBy?: string | string[];
basis?: 'deviation' | 'first' | 'last' | 'max' | 'mean' | 'median' | 'min' | 'sum';
};
export type JitterTransform = {
type?: 'jitter';
padding?: number;
paddingX?: number;
paddingY?: number;
random?: () => number;
};
export type JitterXTransform = {
type?: 'jitterX';
padding?: number;
random?: () => number;
};
export type JitterYTransform = {
type?: 'jitterY';
padding?: number;
random?: () => number;
};
export type StackEnterTransform = {
type?: 'stackEnter';
groupBy?: string[] | string;
orderBy?: string;
reverse?: boolean;
duration?: number;
reducer?: (I: number[], V: any[]) => any;
};
export type SymmetryYTransform = {
type?: 'symmetryY';
groupBy?: string | string[];
};
export type DiffYTransform = {
type?: 'diffY';
groupBy?: string | string[];
series?: boolean;
};
export type Selector = 'min' | 'max' | 'first' | 'last' | 'mean' | 'median' | ((I: number[], V: number[]) => number[]);
export type SelectTransform = {
type?: 'select';
groupBy?: string | string[];
channel?: ChannelTypes;
selector?: Selector;
};
export type SelectXTransform = {
type?: 'selectX';
groupBy?: string | string[];
selector?: Selector;
};
export type SelectYTransform = {
type?: 'selectY';
groupBy?: string | string[];
selector?: Selector;
};
export type SortColorTransform = {
type?: 'sortColor';
reverse?: boolean;
by?: string;
slice?: number | [number, number];
reducer?: 'max' | 'min' | 'sum' | 'first' | 'last' | 'mean' | 'median' | ((I: number[], V: Primitive[]) => Primitive);
};
export type SortXTransform = {
type?: 'sortX';
reverse?: boolean;
by?: string;
slice?: number | [number, number];
ordinal?: boolean;
reducer?: 'max' | 'min' | 'sum' | 'first' | 'last' | 'mean' | 'median' | ((I: number[], V: Primitive[]) => Primitive);
};
export type SortYTransform = {
type?: 'sortY';
reverse?: boolean;
by?: string;
slice?: number | [number, number];
reducer?: 'max' | 'min' | 'sum' | 'first' | 'last' | 'mean' | 'median' | ((I: number[], V: Primitive[]) => Primitive);
};
export type FlexXTransform = {
type?: 'flexX';
field?: string | ((d: any) => Primitive[]);
channel?: string;
reducer?: 'sum' | ((I: number[], V: Primitive[]) => Primitive);
};
export type PackTransform = {
type?: 'pack';
padding?: number;
direction?: 'row' | 'col';
};
export type Reducer = 'mean' | 'max' | 'count' | 'min' | 'median' | 'sum' | 'first' | 'last' | ((I: number[], V: Primitive[]) => Primitive);
export type GroupXTransform = {
type?: 'groupX';
} & {
[key in ChannelTypes]?: Reducer;
};
export type GroupYTransform = {
type?: 'groupY';
} & {
[key in ChannelTypes]?: Reducer;
};
export type GroupColorTransform = {
type?: 'groupColor';
} & {
[key in ChannelTypes]?: Reducer;
};
export type GroupTransform = {
type?: 'group';
} & {
[key in ChannelTypes]?: Reducer;
};
export type BinXTransform = {
type?: 'binX';
thresholds?: number;
} & {
[key in ChannelTypes]?: Reducer;
};
export type BinTransform = {
type?: 'bin';
thresholdsX?: number;
thresholdsY?: number;
} & {
[key in ChannelTypes]?: Reducer;
};
export type SampleFunction = (I: number[], X: number[], Y: number[], thresholds: number) => number[];
export type SampleTransform = {
type?: 'sample';
/**
* Sample strategy. Default is 'median'.
*/
strategy?: 'lttb' | 'median' | 'max' | 'min' | 'first' | 'last' | SampleFunction;
/**
* The thresholds of sample, when data size great then thresholds, sample will take effect.
* Default is 2000.
*/
thresholds?: number;
/**
* Group data by fields, for series data.
*/
groupBy?: string | string[];
};
export type FilterTransform = {
type?: 'filter';
} & {
[key in ChannelTypes]?: any[] | ((v: Primitive) => boolean);
};