@antv/layout 1.0.0-alpha.0 → 1.0.0-alpha.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -2
- package/dist/834dba87c3eb7182a7be.worker.js +2 -0
- package/dist/834dba87c3eb7182a7be.worker.js.map +1 -0
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/esm/834dba87c3eb7182a7be.worker.js +2 -0
- package/esm/834dba87c3eb7182a7be.worker.js.map +1 -0
- package/esm/index.esm.js +2 -0
- package/esm/index.esm.js.map +1 -0
- package/lib/Circular.d.ts +3 -13
- package/lib/Supervisor.d.ts +2 -2
- package/lib/concentric.d.ts +30 -0
- package/lib/d3Force/forceInBox.d.ts +28 -0
- package/lib/d3Force/index.d.ts +47 -0
- package/lib/force/forceNBody.d.ts +7 -0
- package/lib/force/index.d.ts +125 -0
- package/lib/force/types.d.ts +42 -0
- package/lib/fruchterman.d.ts +37 -0
- package/lib/grid.d.ts +30 -0
- package/lib/index.d.ts +8 -0
- package/lib/mds.d.ts +30 -0
- package/lib/radial/RadialNonoverlapForce.d.ts +16 -0
- package/lib/radial/index.d.ts +32 -0
- package/lib/radial/mds.d.ts +2 -0
- package/lib/random.d.ts +30 -0
- package/lib/types.d.ts +197 -89
- package/lib/util/function.d.ts +17 -3
- package/lib/util/gpu.d.ts +0 -7
- package/lib/util/math.d.ts +15 -8
- package/lib/util/object.d.ts +8 -0
- package/lib/worker.d.ts +1 -2
- package/package.json +13 -5
- package/dist/3a54d760230d1933f953.worker.js +0 -2
- package/dist/3a54d760230d1933f953.worker.js.map +0 -1
package/lib/types.d.ts
CHANGED
|
@@ -1,102 +1,45 @@
|
|
|
1
|
-
import
|
|
2
|
-
export interface
|
|
3
|
-
|
|
1
|
+
import { Graph as IGraph, Node as INode, Edge as IEdge, PlainObject } from "@antv/graphlib";
|
|
2
|
+
export interface NodeData extends PlainObject {
|
|
3
|
+
visible?: boolean;
|
|
4
|
+
size?: number | number[];
|
|
5
|
+
bboxSize?: number[];
|
|
4
6
|
}
|
|
5
|
-
export interface
|
|
7
|
+
export interface OutNodeData extends NodeData {
|
|
6
8
|
x: number;
|
|
7
9
|
y: number;
|
|
8
|
-
fx?: number;
|
|
9
|
-
fy?: number;
|
|
10
|
-
comboId?: string;
|
|
11
|
-
layer?: number;
|
|
12
|
-
_order?: number;
|
|
13
|
-
layout?: boolean;
|
|
14
|
-
size?: number | number[] | undefined;
|
|
15
|
-
}
|
|
16
|
-
export interface Edge {
|
|
17
|
-
source: string;
|
|
18
|
-
target: string;
|
|
19
|
-
}
|
|
20
|
-
export interface Combo {
|
|
21
|
-
id: string;
|
|
22
|
-
parentId?: string;
|
|
23
|
-
x?: number;
|
|
24
|
-
y?: number;
|
|
25
|
-
name?: string | number;
|
|
26
|
-
cx?: number;
|
|
27
|
-
cy?: number;
|
|
28
|
-
count?: number;
|
|
29
|
-
depth?: number;
|
|
30
|
-
children?: any[];
|
|
31
|
-
empty?: boolean;
|
|
32
|
-
minX?: number;
|
|
33
|
-
maxX?: number;
|
|
34
|
-
minY?: number;
|
|
35
|
-
maxY?: number;
|
|
36
|
-
size?: number;
|
|
37
|
-
r?: number;
|
|
38
|
-
itemType?: string;
|
|
39
|
-
collapsed?: boolean;
|
|
40
|
-
}
|
|
41
|
-
export interface Model {
|
|
42
|
-
nodes?: Node[];
|
|
43
|
-
edges?: Edge[];
|
|
44
|
-
combos?: Combo[];
|
|
45
|
-
comboEdges?: Edge[];
|
|
46
|
-
hiddenNodes?: Node[];
|
|
47
|
-
hiddenEdges?: Edge[];
|
|
48
|
-
hiddenCombos?: Combo[];
|
|
49
|
-
vedges?: Edge[];
|
|
50
|
-
}
|
|
51
|
-
export interface OutModel extends Model {
|
|
52
|
-
nodes?: OutNode[];
|
|
53
|
-
}
|
|
54
|
-
export interface Size {
|
|
55
|
-
width: number;
|
|
56
|
-
height: number;
|
|
57
10
|
}
|
|
58
|
-
export
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
export type
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
export type Matrix = number[];
|
|
69
|
-
export type Point = {
|
|
70
|
-
x: number;
|
|
71
|
-
y: number;
|
|
72
|
-
};
|
|
11
|
+
export interface EdgeData extends PlainObject {
|
|
12
|
+
visible?: boolean;
|
|
13
|
+
virtual?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/** input node */
|
|
16
|
+
export type Node = INode<NodeData>;
|
|
17
|
+
/** output node */
|
|
18
|
+
export type OutNode = INode<OutNodeData>;
|
|
19
|
+
/** input and output edge */
|
|
20
|
+
export type Edge = IEdge<EdgeData>;
|
|
73
21
|
export type Degree = {
|
|
74
22
|
in: number;
|
|
75
23
|
out: number;
|
|
76
24
|
all: number;
|
|
77
25
|
};
|
|
78
|
-
export
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
parentId?: string;
|
|
83
|
-
itemType?: "node" | "combo";
|
|
84
|
-
[key: string]: unknown;
|
|
85
|
-
}
|
|
86
|
-
export interface ComboConfig {
|
|
87
|
-
id: string;
|
|
88
|
-
parentId?: string;
|
|
89
|
-
children?: ComboTree[];
|
|
90
|
-
depth?: number;
|
|
91
|
-
}
|
|
26
|
+
export type IndexMap = {
|
|
27
|
+
[nodeId: string]: number;
|
|
28
|
+
};
|
|
29
|
+
export type Graph = IGraph<NodeData, EdgeData>;
|
|
92
30
|
export type PointTuple = [number, number];
|
|
31
|
+
export type Point = {
|
|
32
|
+
x: number;
|
|
33
|
+
y: number;
|
|
34
|
+
};
|
|
35
|
+
export type Matrix = number[];
|
|
93
36
|
export type LayoutMapping = {
|
|
94
37
|
nodes: OutNode[];
|
|
95
38
|
edges: Edge[];
|
|
96
39
|
};
|
|
97
40
|
export interface SyncLayout<LayoutOptions> {
|
|
98
|
-
assign(graph: Graph
|
|
99
|
-
execute(graph: Graph
|
|
41
|
+
assign(graph: Graph, options?: LayoutOptions): void;
|
|
42
|
+
execute(graph: Graph, options?: LayoutOptions): LayoutMapping;
|
|
100
43
|
options: LayoutOptions;
|
|
101
44
|
id: string;
|
|
102
45
|
}
|
|
@@ -107,8 +50,13 @@ export interface LayoutSupervisor {
|
|
|
107
50
|
start(): void;
|
|
108
51
|
stop(): void;
|
|
109
52
|
kill(): void;
|
|
53
|
+
isRunning(): boolean;
|
|
110
54
|
}
|
|
111
|
-
|
|
55
|
+
interface CommonOptions {
|
|
56
|
+
layoutInvisibles?: boolean;
|
|
57
|
+
onLayoutEnd?: (data: LayoutMapping) => void;
|
|
58
|
+
}
|
|
59
|
+
export interface CircularLayoutOptions extends CommonOptions {
|
|
112
60
|
center?: PointTuple;
|
|
113
61
|
width?: number;
|
|
114
62
|
height?: number;
|
|
@@ -119,10 +67,170 @@ export interface CircularLayoutOptions {
|
|
|
119
67
|
divisions?: number;
|
|
120
68
|
ordering?: "topology" | "topology-directed" | "degree" | null;
|
|
121
69
|
angleRatio?: number;
|
|
122
|
-
workerEnabled?: boolean;
|
|
123
70
|
startAngle?: number;
|
|
124
71
|
endAngle?: number;
|
|
125
|
-
nodeSpacing?: ((
|
|
126
|
-
nodeSize?: number;
|
|
127
|
-
|
|
72
|
+
nodeSpacing?: ((node?: Node) => number) | number;
|
|
73
|
+
nodeSize?: number | number[];
|
|
74
|
+
}
|
|
75
|
+
export interface GridLayoutOptions extends CommonOptions {
|
|
76
|
+
width?: number;
|
|
77
|
+
height?: number;
|
|
78
|
+
begin?: PointTuple;
|
|
79
|
+
preventOverlap?: boolean;
|
|
80
|
+
nodeSize?: number | number[];
|
|
81
|
+
preventOverlapPadding?: number;
|
|
82
|
+
condense?: boolean;
|
|
83
|
+
rows?: number;
|
|
84
|
+
cols?: number;
|
|
85
|
+
sortBy?: string;
|
|
86
|
+
position?: ((node?: Node) => {
|
|
87
|
+
row?: number;
|
|
88
|
+
col?: number;
|
|
89
|
+
}) | undefined;
|
|
90
|
+
nodeSpacing?: ((node?: Node) => number) | number | undefined;
|
|
91
|
+
}
|
|
92
|
+
export interface RandomLayoutOptions extends CommonOptions {
|
|
93
|
+
center?: PointTuple;
|
|
94
|
+
width?: number;
|
|
95
|
+
height?: number;
|
|
96
|
+
}
|
|
97
|
+
export interface MDSLayoutOptions extends CommonOptions {
|
|
98
|
+
center?: PointTuple;
|
|
99
|
+
linkDistance?: number;
|
|
100
|
+
}
|
|
101
|
+
export interface ConcentricLayoutOptions extends CommonOptions {
|
|
102
|
+
center?: PointTuple;
|
|
103
|
+
preventOverlap?: boolean;
|
|
104
|
+
nodeSize?: number | PointTuple;
|
|
105
|
+
minNodeSpacing?: number;
|
|
106
|
+
sweep?: number;
|
|
107
|
+
equidistant?: boolean;
|
|
108
|
+
startAngle?: number;
|
|
109
|
+
clockwise?: boolean;
|
|
110
|
+
maxLevelDiff?: number;
|
|
111
|
+
sortBy?: string;
|
|
112
|
+
width?: number;
|
|
113
|
+
height?: number;
|
|
114
|
+
nodeSpacing?: number | number[] | ((node?: Node) => number) | undefined;
|
|
115
|
+
}
|
|
116
|
+
export interface RadialLayoutOptions extends CommonOptions {
|
|
117
|
+
center?: PointTuple;
|
|
118
|
+
width?: number;
|
|
119
|
+
height?: number;
|
|
120
|
+
linkDistance?: number;
|
|
121
|
+
maxIteration?: number;
|
|
122
|
+
focusNode?: string | Node | null;
|
|
123
|
+
unitRadius?: number | null;
|
|
124
|
+
preventOverlap?: boolean;
|
|
125
|
+
nodeSize?: number | number[] | undefined;
|
|
126
|
+
nodeSpacing?: number | Function | undefined;
|
|
127
|
+
maxPreventOverlapIteration?: number;
|
|
128
|
+
strictRadial?: boolean;
|
|
129
|
+
sortBy?: string | undefined;
|
|
130
|
+
sortStrength?: number;
|
|
131
|
+
}
|
|
132
|
+
export interface DagreLayoutOptions extends CommonOptions {
|
|
133
|
+
rankdir?: "TB" | "BT" | "LR" | "RL";
|
|
134
|
+
align?: "UL" | "UR" | "DL" | "DR";
|
|
135
|
+
begin?: PointTuple;
|
|
136
|
+
nodeSize?: number | number[] | undefined;
|
|
137
|
+
nodesep?: number;
|
|
138
|
+
ranksep?: number;
|
|
139
|
+
controlPoints?: boolean;
|
|
140
|
+
sortByCombo?: boolean;
|
|
141
|
+
edgeLabelSpace?: boolean;
|
|
142
|
+
nodeOrder?: string[];
|
|
143
|
+
radial?: boolean;
|
|
144
|
+
focusNode: string | Node | null;
|
|
145
|
+
preset?: {
|
|
146
|
+
nodes: OutNode[];
|
|
147
|
+
edges: Edge[];
|
|
148
|
+
};
|
|
149
|
+
nodesepFunc?: ((d?: Node) => number) | undefined;
|
|
150
|
+
ranksepFunc?: ((d?: Node) => number) | undefined;
|
|
151
|
+
}
|
|
152
|
+
export interface D3ForceLayoutOptions extends CommonOptions {
|
|
153
|
+
center?: PointTuple;
|
|
154
|
+
linkDistance?: number | ((edge?: Edge) => number) | undefined;
|
|
155
|
+
edgeStrength?: number | ((edge?: Edge) => number) | undefined;
|
|
156
|
+
nodeStrength?: number | ((node: Node, i: number, nodes: Node[]) => number) | undefined;
|
|
157
|
+
preventOverlap?: boolean;
|
|
158
|
+
collideStrength?: number;
|
|
159
|
+
nodeSize?: number | number[] | ((node?: Node) => number) | undefined;
|
|
160
|
+
nodeSpacing?: number | number[] | ((node?: Node) => number) | undefined;
|
|
161
|
+
alpha?: number;
|
|
162
|
+
alphaDecay?: number;
|
|
163
|
+
alphaMin?: number;
|
|
164
|
+
clustering?: boolean;
|
|
165
|
+
clusterNodeStrength?: number;
|
|
166
|
+
clusterEdgeStrength?: number;
|
|
167
|
+
clusterEdgeDistance?: number;
|
|
168
|
+
clusterNodeSize?: number;
|
|
169
|
+
clusterFociStrength?: number;
|
|
170
|
+
forceSimulation?: any;
|
|
171
|
+
onTick?: (data: LayoutMapping) => void;
|
|
172
|
+
}
|
|
173
|
+
export interface CentripetalOptions {
|
|
174
|
+
/** Force strength for leaf nodes. */
|
|
175
|
+
leaf?: number | ((node: Node, nodes: Node[], edges: Edge[]) => number);
|
|
176
|
+
/** Force strength for single nodes. */
|
|
177
|
+
single?: number | ((node: Node) => number);
|
|
178
|
+
/** Force strength for other nodes. */
|
|
179
|
+
others?: number | ((node: Node) => number);
|
|
180
|
+
/** Centri force's position and sterngth, points to the canvas center by default */
|
|
181
|
+
center?: (node: Node, nodes: Node[], edges: Edge[], width: number, height: number) => {
|
|
182
|
+
x: number;
|
|
183
|
+
y: number;
|
|
184
|
+
centerStrength?: number;
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
export interface ForceLayoutOptions extends CommonOptions {
|
|
188
|
+
center?: PointTuple;
|
|
189
|
+
width?: number;
|
|
190
|
+
height?: number;
|
|
191
|
+
linkDistance?: number | ((edge?: Edge, source?: any, target?: any) => number) | undefined;
|
|
192
|
+
nodeStrength?: number | ((d?: Node) => number) | undefined;
|
|
193
|
+
edgeStrength?: number | ((d?: Edge) => number) | undefined;
|
|
194
|
+
preventOverlap?: boolean;
|
|
195
|
+
nodeSize?: number | number[] | ((d?: Node) => number);
|
|
196
|
+
nodeSpacing?: number | ((d?: Node) => number);
|
|
197
|
+
minMovement?: number;
|
|
198
|
+
maxIteration?: number;
|
|
199
|
+
damping?: number;
|
|
200
|
+
maxSpeed?: number;
|
|
201
|
+
coulombDisScale?: number;
|
|
202
|
+
gravity?: number;
|
|
203
|
+
factor?: number;
|
|
204
|
+
interval?: number;
|
|
205
|
+
centripetalOptions?: CentripetalOptions;
|
|
206
|
+
leafCluster?: boolean;
|
|
207
|
+
clustering?: boolean;
|
|
208
|
+
nodeClusterBy?: string;
|
|
209
|
+
clusterNodeStrength?: number | ((node: Node) => number);
|
|
210
|
+
collideStrength?: number;
|
|
211
|
+
distanceThresholdMode?: "mean" | "max" | "min";
|
|
212
|
+
animate?: boolean;
|
|
213
|
+
onTick?: (data: LayoutMapping) => void;
|
|
214
|
+
getMass?: ((d: Node) => number) | undefined;
|
|
215
|
+
getCenter?: ((d?: Node, degree?: number) => number[]) | undefined;
|
|
216
|
+
monitor?: (params: {
|
|
217
|
+
energy: number;
|
|
218
|
+
nodes: Node[];
|
|
219
|
+
edges: Edge[];
|
|
220
|
+
iterations: number;
|
|
221
|
+
}) => void;
|
|
222
|
+
}
|
|
223
|
+
export interface FruchtermanLayoutOptions extends CommonOptions {
|
|
224
|
+
center?: PointTuple;
|
|
225
|
+
maxIteration?: number;
|
|
226
|
+
width?: number;
|
|
227
|
+
height?: number;
|
|
228
|
+
gravity?: number;
|
|
229
|
+
speed?: number;
|
|
230
|
+
clustering?: boolean;
|
|
231
|
+
clusterGravity?: number;
|
|
232
|
+
animate?: boolean;
|
|
233
|
+
nodeClusterBy?: string;
|
|
234
|
+
onTick?: (data: LayoutMapping) => void;
|
|
128
235
|
}
|
|
236
|
+
export {};
|
package/lib/util/function.d.ts
CHANGED
|
@@ -1,6 +1,20 @@
|
|
|
1
|
+
import { Node } from "../types";
|
|
1
2
|
export declare const isFunction: (val: unknown) => val is Function;
|
|
2
|
-
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Format value with multiple types into a function returns number.
|
|
5
|
+
* @param defaultValue default value when value is invalid
|
|
6
|
+
* @param value value to be formatted
|
|
7
|
+
* @returns formatted result, a function returns number
|
|
8
|
+
*/
|
|
9
|
+
export declare function formatNumberFn<T = unknown>(defaultValue: number, value: number | ((d?: T) => number) | undefined): (d?: T | undefined) => number;
|
|
10
|
+
/**
|
|
11
|
+
* Format size config with multiple types into a function returns number
|
|
12
|
+
* @param defaultValue default value when value is invalid
|
|
13
|
+
* @param value value to be formatted
|
|
14
|
+
* @param resultIsNumber whether returns number
|
|
15
|
+
* @returns formatted result, a function returns number
|
|
16
|
+
*/
|
|
17
|
+
export declare function formatSizeFn<T extends Node>(defaultValue: number, value?: number | number[] | {
|
|
4
18
|
width: number;
|
|
5
19
|
height: number;
|
|
6
|
-
} | ((d?:
|
|
20
|
+
} | ((d?: T) => number) | undefined, resultIsNumber?: boolean): (d: T) => number | number[];
|
package/lib/util/gpu.d.ts
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
1
|
import { OutNode, Edge } from "../types";
|
|
2
|
-
/**
|
|
3
|
-
* 将 number | Function 类型的参数转换为 return number 的 Function
|
|
4
|
-
* @param {number | Function} value 需要被转换的值
|
|
5
|
-
* @param {number} defaultV 返回函数的默认返回值
|
|
6
|
-
* @return {Function} 转换后的函数
|
|
7
|
-
*/
|
|
8
|
-
export declare const proccessToFunc: (value: number | Function | undefined, defaultV?: number) => (d?: any) => number;
|
|
9
2
|
/**
|
|
10
3
|
* 将节点和边数据转换为 GPU 可读的数组。并返回 maxEdgePerVetex,每个节点上最多的边数
|
|
11
4
|
* @param {NodeConfig[]} nodes 需要被转换的值
|
package/lib/util/math.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { Matrix,
|
|
2
|
-
export declare const getEdgeTerminal: (edge: Edge, type: "source" | "target") => any;
|
|
3
|
-
export declare const getDegree: (n: number, nodeIdxMap: IndexMap, edges: Edge[] | null) => Degree[];
|
|
4
|
-
export declare const getDegreeMap: (nodes: Node[], edges: Edge[] | null) => {
|
|
5
|
-
[id: string]: Degree;
|
|
6
|
-
};
|
|
1
|
+
import type { Matrix, Edge, Node, OutNode, Degree, Point } from "../types";
|
|
7
2
|
export declare const floydWarshall: (adjMatrix: Matrix[]) => Matrix[];
|
|
8
|
-
export declare const getAdjMatrix: (data:
|
|
3
|
+
export declare const getAdjMatrix: (data: {
|
|
4
|
+
nodes: Node[];
|
|
5
|
+
edges: Edge[];
|
|
6
|
+
}, directed: boolean) => Matrix[];
|
|
9
7
|
/**
|
|
10
8
|
* scale matrix
|
|
11
9
|
* @param matrix [ [], [], [] ]
|
|
@@ -41,8 +39,17 @@ export declare const getAvgNodePosition: (nodes: OutNode[]) => {
|
|
|
41
39
|
};
|
|
42
40
|
export declare const getCoreNodeAndRelativeLeafNodes: (type: "leaf" | "all", node: Node, edges: Edge[], nodeClusterBy: string, degreesMap: {
|
|
43
41
|
[id: string]: Degree;
|
|
44
|
-
}, nodeMap:
|
|
42
|
+
}, nodeMap: {
|
|
43
|
+
[id: string]: Node;
|
|
44
|
+
}) => {
|
|
45
45
|
coreNode: Node;
|
|
46
46
|
relativeLeafNodes: Node[];
|
|
47
47
|
sameTypeLeafNodes: Node[];
|
|
48
48
|
};
|
|
49
|
+
/**
|
|
50
|
+
* calculate the euclidean distance form p1 to p2
|
|
51
|
+
* @param p1
|
|
52
|
+
* @param p2
|
|
53
|
+
* @returns
|
|
54
|
+
*/
|
|
55
|
+
export declare const getEuclideanDistance: (p1: Point, p2: Point) => number;
|
package/lib/util/object.d.ts
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
+
import { Node, Edge } from '../types';
|
|
1
2
|
export declare const isObject: (val: unknown) => val is Record<any, any>;
|
|
2
3
|
export declare const clone: <T>(target: T) => T;
|
|
4
|
+
/**
|
|
5
|
+
* Clone node or edge data and format it
|
|
6
|
+
* @param target node/edge to be cloned
|
|
7
|
+
* @param initRange whether init the x and y in data with the range, which means [xRange, yRange]
|
|
8
|
+
* @returns cloned node/edge
|
|
9
|
+
*/
|
|
10
|
+
export declare const cloneFormatData: <T extends Node | Edge>(target: T, initRange?: [number, number]) => T;
|
package/lib/worker.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import type { Payload } from "./supervisor";
|
|
2
|
-
|
|
3
|
-
export declare function calculateLayout(payload: Payload, transferables: Float32Array[]): (Float32Array[] | LayoutMapping)[];
|
|
2
|
+
export declare function calculateLayout(payload: Payload, transferables: Float32Array[]): Promise<unknown>;
|
package/package.json
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antv/layout",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.10",
|
|
4
4
|
"description": "graph layout algorithm",
|
|
5
5
|
"main": "dist/index.min.js",
|
|
6
|
-
"module": "
|
|
6
|
+
"module": "esm/index.esm.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
8
8
|
"unpkg": "dist/index.min.js",
|
|
9
9
|
"files": [
|
|
10
10
|
"package.json",
|
|
11
11
|
"dist",
|
|
12
|
+
"esm",
|
|
12
13
|
"lib",
|
|
13
14
|
"LICENSE",
|
|
14
15
|
"README.md"
|
|
@@ -20,9 +21,12 @@
|
|
|
20
21
|
"antv"
|
|
21
22
|
],
|
|
22
23
|
"dependencies": {
|
|
23
|
-
"@antv/graphlib": "^2.0.0-alpha.
|
|
24
|
+
"@antv/graphlib": "^2.0.0-alpha.2",
|
|
24
25
|
"@naoak/workerize-transferable": "^0.1.0",
|
|
25
|
-
"
|
|
26
|
+
"d3-force": "^3.0.0",
|
|
27
|
+
"d3-quadtree": "^3.0.1",
|
|
28
|
+
"eventemitter3": "^4.0.0",
|
|
29
|
+
"ml-matrix": "^6.10.4"
|
|
26
30
|
},
|
|
27
31
|
"devDependencies": {
|
|
28
32
|
"@babel/core": "^7.7.7",
|
|
@@ -36,6 +40,10 @@
|
|
|
36
40
|
"workerize-loader": "^2.0.2"
|
|
37
41
|
},
|
|
38
42
|
"scripts": {
|
|
39
|
-
"
|
|
43
|
+
"dev": "webpack --config webpack.dev.config.js --mode development",
|
|
44
|
+
"build": "npm run build:esm && npm run build:umd",
|
|
45
|
+
"build:esm": "webpack --config webpack.esm.config.js --mode production",
|
|
46
|
+
"build:umd": "webpack --config webpack.config.js --mode production",
|
|
47
|
+
"publish:alpha": "npm publish --tag alpha"
|
|
40
48
|
}
|
|
41
49
|
}
|