@antv/layout 0.3.2 → 0.3.4

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.
Files changed (41) hide show
  1. package/dist/layout.min.js +1 -1
  2. package/dist/layout.min.js.map +1 -1
  3. package/es/layout/dagre/src/position/index.js +1 -1
  4. package/es/layout/dagre/src/position/index.js.map +1 -1
  5. package/es/layout/dagre/src/rank/util.js +4 -0
  6. package/es/layout/dagre/src/rank/util.js.map +1 -1
  7. package/es/layout/force2/ForceNBody.js +1 -1
  8. package/es/layout/force2/ForceNBody.js.map +1 -1
  9. package/es/layout/force2/index.js +9 -11
  10. package/es/layout/force2/index.js.map +1 -1
  11. package/es/layout/gForce.js +1 -1
  12. package/es/layout/gpu/gForce.js +1 -1
  13. package/es/layout/gpu/gForce.js.map +1 -1
  14. package/es/layout/layout.d.ts +12 -1
  15. package/es/layout/layout.js +30 -0
  16. package/es/layout/layout.js.map +1 -1
  17. package/es/util/math.js +13 -13
  18. package/es/util/math.js.map +1 -1
  19. package/lib/layout/dagre/src/position/index.js +10 -1
  20. package/lib/layout/dagre/src/position/index.js.map +1 -1
  21. package/lib/layout/dagre/src/rank/util.js +4 -0
  22. package/lib/layout/dagre/src/rank/util.js.map +1 -1
  23. package/lib/layout/force2/ForceNBody.js.map +1 -1
  24. package/lib/layout/force2/index.js +1 -3
  25. package/lib/layout/force2/index.js.map +1 -1
  26. package/lib/layout/gForce.js +1 -1
  27. package/lib/layout/gpu/gForce.js.map +1 -1
  28. package/lib/layout/layout.d.ts +12 -1
  29. package/lib/layout/layout.js +30 -0
  30. package/lib/layout/layout.js.map +1 -1
  31. package/lib/util/math.js.map +1 -1
  32. package/package.json +1 -1
  33. package/src/layout/dagre/src/position/index.ts +1 -1
  34. package/src/layout/dagre/src/rank/util.ts +4 -0
  35. package/src/layout/force2/ForceNBody.ts +2 -2
  36. package/src/layout/force2/index.ts +16 -16
  37. package/src/layout/gForce.ts +2 -2
  38. package/src/layout/gpu/gForce.ts +1 -1
  39. package/src/layout/layout.ts +34 -1
  40. package/src/layout/types.ts +1 -1
  41. package/src/util/math.ts +19 -19
package/src/util/math.ts CHANGED
@@ -35,14 +35,14 @@ export const getDegree = (n: number, nodeIdxMap: IndexMap, edges: Edge[] | null)
35
35
  };
36
36
 
37
37
  export const getDegreeMap = (nodes: Node[], edges: Edge[] | null) => {
38
- const degreesMap: { [id: string]: Degree } = {}
39
- nodes.forEach(node => {
38
+ const degreesMap: { [id: string]: Degree } = {};
39
+ nodes.forEach((node) => {
40
40
  degreesMap[node.id] = {
41
41
  in: 0,
42
42
  out: 0,
43
43
  all: 0
44
- }
45
- })
44
+ };
45
+ });
46
46
 
47
47
  if (!edges) return degreesMap;
48
48
  edges.forEach((e) => {
@@ -193,8 +193,8 @@ export const findMinMaxNodeXY = (nodes: OutNode[]) => {
193
193
  * @returns 平局内置
194
194
  */
195
195
  export const getAvgNodePosition = (nodes: OutNode[]) => {
196
- let totalNodes = { x: 0, y: 0 };
197
- nodes.forEach(node => {
196
+ const totalNodes = { x: 0, y: 0 };
197
+ nodes.forEach((node) => {
198
198
  totalNodes.x += node.x || 0;
199
199
  totalNodes.y += node.y || 0;
200
200
  });
@@ -209,26 +209,26 @@ export const getAvgNodePosition = (nodes: OutNode[]) => {
209
209
  // 找出指定节点关联的边的起点或终点
210
210
  const getCoreNode = (type: 'source' | 'target', node: Node, edges: Edge[]) => {
211
211
  if (type === 'source') {
212
- return (edges?.find(edge => edge.target === node.id)?.source || {}) as Node;
212
+ return (edges?.find((edge) => edge.target === node.id)?.source || {}) as Node;
213
213
  }
214
- return (edges?.find(edge => edge.source === node.id)?.target || {}) as Node;
214
+ return (edges?.find((edge) => edge.source === node.id)?.target || {}) as Node;
215
215
  };
216
216
 
217
217
  // 找出指定节点为起点或终点的所有一度叶子节点
218
218
  const getRelativeNodeIds = (type: 'source' | 'target' | 'both', coreNode: Node, edges: Edge[]) => {
219
- let relativeNodes: string[] = []
219
+ let relativeNodes: string[] = [];
220
220
  switch (type) {
221
221
  case 'source':
222
- relativeNodes = edges?.filter(edge => edge.source === coreNode.id).map(edge => edge.target);
222
+ relativeNodes = edges?.filter((edge) => edge.source === coreNode.id).map((edge) => edge.target);
223
223
  break;
224
224
  case 'target':
225
- relativeNodes = edges?.filter(edge => edge.target === coreNode.id).map(edge => edge.source);
225
+ relativeNodes = edges?.filter((edge) => edge.target === coreNode.id).map((edge) => edge.source);
226
226
  break;
227
227
  case 'both':
228
228
  relativeNodes = edges
229
- ?.filter(edge => edge.source === coreNode.id)
230
- .map(edge => edge.target)
231
- .concat(edges?.filter(edge => edge.target === coreNode.id).map(edge => edge.source));
229
+ ?.filter((edge) => edge.source === coreNode.id)
230
+ .map((edge) => edge.target)
231
+ .concat(edges?.filter((edge) => edge.target === coreNode.id).map((edge) => edge.source));
232
232
  break;
233
233
  default:
234
234
  break;
@@ -242,9 +242,9 @@ const getSameTypeNodes = (type: 'leaf' | 'all', nodeClusterBy: string, node: Nod
242
242
  // @ts-ignore
243
243
  const typeName = node[nodeClusterBy] || '';
244
244
  // @ts-ignore
245
- let sameTypeNodes = relativeNodes?.filter(item => item[nodeClusterBy] === typeName) || [];
245
+ let sameTypeNodes = relativeNodes?.filter((item) => item[nodeClusterBy] === typeName) || [];
246
246
  if (type === 'leaf') {
247
- sameTypeNodes = sameTypeNodes.filter(node => degreesMap[node.id]?.in === 0 ||degreesMap[node.id]?.out === 0);
247
+ sameTypeNodes = sameTypeNodes.filter((node) => degreesMap[node.id]?.in === 0 ||degreesMap[node.id]?.out === 0);
248
248
  }
249
249
  return sameTypeNodes;
250
250
  };
@@ -258,14 +258,14 @@ export const getCoreNodeAndRelativeLeafNodes = (type: 'leaf' | 'all', node: Node
258
258
  if (inDegree === 0) {
259
259
  // 如果为没有出边的叶子节点,则找出与它关联的边的起点出发的所有一度节点
260
260
  coreNode = getCoreNode('source', node, edges);
261
- relativeLeafNodes = getRelativeNodeIds('both', coreNode, edges).map(nodeId => nodeMap[nodeId]);
261
+ relativeLeafNodes = getRelativeNodeIds('both', coreNode, edges).map((nodeId) => nodeMap[nodeId]);
262
262
  } else if (outDegree === 0) {
263
263
  // 如果为没有入边边的叶子节点,则找出与它关联的边的起点出发的所有一度节点
264
264
  coreNode = getCoreNode('target', node, edges);
265
- relativeLeafNodes = getRelativeNodeIds('both', coreNode, edges).map(nodeId => nodeMap[nodeId]);
265
+ relativeLeafNodes = getRelativeNodeIds('both', coreNode, edges).map((nodeId) => nodeMap[nodeId]);
266
266
  }
267
267
  relativeLeafNodes = relativeLeafNodes.filter(
268
- node => degreesMap[node.id] && (degreesMap[node.id].in === 0 || degreesMap[node.id].out === 0),
268
+ (node) => degreesMap[node.id] && (degreesMap[node.id].in === 0 || degreesMap[node.id].out === 0),
269
269
  );
270
270
  const sameTypeLeafNodes = getSameTypeNodes(type, nodeClusterBy, node, relativeLeafNodes, degreesMap);
271
271
  return { coreNode, relativeLeafNodes, sameTypeLeafNodes };