-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtypes.ts
64 lines (62 loc) · 1.69 KB
/
types.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
export type ComputeMode = 'iterative' | 'adaptive' | 'direct';
export type LayoutType =
| 'pickWorst'
| 'pickBest'
| 'gridLayout'
| 'zigZagOnX'
| 'zigZagOnY'
| 'zigZagOnXY'
| 'psuedoCartogramLayout'
| 'psuedoCartogramLayoutZigZag'
| 'partialPsuedoCartogram'
| 'rampX'
| 'rampY';
export interface FigureConfig {
data: any;
stepSize: number;
computeMode: ComputeMode;
accessor?: (x: any) => number;
getLabel?: (x: any) => string;
layout?: LayoutType;
showAxisLabels?: boolean;
dims?: Dimensions;
showLabelsByDefault?: boolean;
defaultColor?: string;
xLabels?: (string | number)[];
yLabels?: (string | number)[];
showBorder?: boolean;
computeAnnotationBoxBy?: (d: any) => any;
optimizationParams?: OptimizationParams;
}
export interface OptimizationParams {
stepSize?: number;
useAnalytic?: boolean;
nonDeterministic?: boolean;
useGreedy?: boolean;
overlapPenalty?: number;
orderPenalty?: number;
borderPenalty?: number;
lineSearchSteps?: number;
useEvans?: boolean;
}
export type Vector = number[];
export type DataTable = number[][];
export type Pos = {x: number; y: number};
export type ArrPos = [number, number];
export type Rect = Pos[];
export type PositionTable = Pos[][];
export type Getter = (x: any) => number;
export type Dimensions = {height: number; width: number};
export type Gon = {vertices: Rect; value: number; data: number; individualError?: number};
export type ObjFunc = (vec: Vector, onlyShowPenalty?: boolean) => number;
export interface PenaltyProps {
cell: Pos;
newTable: PositionTable;
inCorner: boolean;
inFirstRow: boolean;
inLastRow: boolean;
i: number;
j: number;
inLeftColumn: boolean;
inRightColumn: boolean;
}