@antv/g2
Version:
the Grammar of Graphics in Javascript
147 lines (146 loc) • 3.96 kB
TypeScript
import { DataComponent } from '../runtime';
export type DataTransform = SortByTransform | SortTransform | PickTransform | RenameTransform | FoldTransform | JoinTransform | FilterDataTransform | MapTransform | SliceTransform | KDEDataTransform | VennDataTransform | LogDataTransform | CustomTransform;
export type DataTransformTypes = 'sortBy' | 'sort' | 'pick' | 'rename' | 'fold' | 'join' | 'filter' | 'map' | 'slice' | 'kde' | 'venn' | 'log' | 'custom' | DataComponent;
export type SortByTransform = {
type?: 'sortBy';
/** type: [field, order]; order: true => ascend, false => descend */
fields?: (string | [string, boolean?])[];
};
export type PickTransform = {
type?: 'pick';
fields?: string[];
};
export type RenameTransform = {
type?: 'rename';
[key: string]: string;
};
export type FilterDataTransform = {
type?: 'filter';
/**
* The filter condition, same with [Array.prototype.filter](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter).
*/
callback?: (v: any, idx: number, arr: any[]) => boolean;
};
export type SliceTransform = {
type?: 'slice';
/**
* The start index for slice. Default is 0.
*/
start?: number;
/**
* The end index for slice. Default is arr.length - 1
*/
end?: number;
};
export type SortTransform = {
type?: 'sort';
/**
* The sort comparator, same with [Array.prototype.sort](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort).
*/
callback?: (a: any, b: any) => number;
};
export type FoldTransform = {
type?: 'fold';
/**
* Set fields will be folded.
*/
fields?: string[];
/**
* Fold key field, default is `key`.
*/
key?: string;
/**
* Fold value field, default is `value`.
*/
value?: string;
};
export type JoinTransform = {
type?: 'join';
/**
* The dataset to be joined.
*/
join: Record<string, any>[];
/**
* Join keys of 2 dataset, [k1, k2] means join on ds1.k1 === ds2.k2.
*/
on: [string | ((d: any) => string), string | ((d: any) => string)];
/**
* Select fields from joined dataset.
*/
select: string[];
/**
* Rename the select fields, default: keep the original name.
*/
as?: string[];
/**
* When not matched, use `unknown` instead.
*/
unknown?: any;
};
export type MapTransform = {
type?: 'map';
callback?: (d: any) => any;
};
export type CustomDataTransform = {
type?: 'custom';
callback?: (d: any) => any;
};
export type KDEDataTransform = {
type?: 'kde';
/**
* Kernel Density Estimation field.
*/
field: string;
/**
* Group data by fields.
*/
groupBy: string[];
/**
* Generate new fieds, default: ['y', 'size']
*/
as?: ['y', 'size'];
/**
* Defaults to smallest value in the array minus some threshold.
*/
min?: number;
/**
* Defaults to largest value in the array plus some threshold.
*/
max?: number;
/**
* Number of points to represent the pdf. Defaults to 10.
*/
size?: number;
/**
* Determine how many points to the left and right does an element affect,
* similar to bandwidth in kernel density estimation. Defaults to 2.
*/
width?: number;
};
export type VennDataTransform = {
type?: 'venn';
/**
* Canvas padding for 4 direction.
* Default is `0`.
*/
padding?: number;
/**
* Set the sets field.
* Default is `sets`.
*/
sets?: string;
/**
* Set the size field for each set.
* Default is `size`.
*/
size?: string;
/**
* Set the generated fields, includes: [key, x, y, path]
*/
as?: [string, string];
};
export type LogDataTransform = {};
export type CustomTransform = {
type?: DataComponent;
[key: string]: any;
};