ink-graph-new 0.0.1-beta.25
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 +5 -0
- package/dist/assets/big/dataSourceTypeIcon.d.ts +23 -0
- package/dist/assets/big/dataSourceTypeIcon.d.ts.map +1 -0
- package/dist/assets/big/dataSourceTypeIcon.js +23 -0
- package/dist/assets/big/dataSourceTypeIcon.js.map +1 -0
- package/dist/assets/big/entityType.d.ts +2 -0
- package/dist/assets/big/entityType.d.ts.map +1 -0
- package/dist/assets/big/entityType.js +2 -0
- package/dist/assets/big/entityType.js.map +1 -0
- package/dist/assets/big/lineageIcon.d.ts +14 -0
- package/dist/assets/big/lineageIcon.d.ts.map +1 -0
- package/dist/assets/big/lineageIcon.js +14 -0
- package/dist/assets/big/lineageIcon.js.map +1 -0
- package/dist/assets/big/tableTypeIcon.d.ts +7 -0
- package/dist/assets/big/tableTypeIcon.d.ts.map +1 -0
- package/dist/assets/big/tableTypeIcon.js +7 -0
- package/dist/assets/big/tableTypeIcon.js.map +1 -0
- package/dist/assets/big/tipIcon.d.ts +4 -0
- package/dist/assets/big/tipIcon.d.ts.map +1 -0
- package/dist/assets/big/tipIcon.js +4 -0
- package/dist/assets/big/tipIcon.js.map +1 -0
- package/dist/assets/index.d.ts +4 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/assets/index.js +7 -0
- package/dist/assets/index.js.map +1 -0
- package/dist/components/Edges/ALDEdge.d.ts +11 -0
- package/dist/components/Edges/ALDEdge.d.ts.map +1 -0
- package/dist/components/Edges/ALDEdge.js +195 -0
- package/dist/components/Edges/ALDEdge.js.map +1 -0
- package/dist/components/Edges/BaseEdge.d.ts +24 -0
- package/dist/components/Edges/BaseEdge.d.ts.map +1 -0
- package/dist/components/Edges/BaseEdge.js +171 -0
- package/dist/components/Edges/BaseEdge.js.map +1 -0
- package/dist/components/Edges/DagreEdge.d.ts +7 -0
- package/dist/components/Edges/DagreEdge.d.ts.map +1 -0
- package/dist/components/Edges/DagreEdge.js +73 -0
- package/dist/components/Edges/DagreEdge.js.map +1 -0
- package/dist/components/Edges/HierarchyEdge.d.ts +11 -0
- package/dist/components/Edges/HierarchyEdge.d.ts.map +1 -0
- package/dist/components/Edges/HierarchyEdge.js +75 -0
- package/dist/components/Edges/HierarchyEdge.js.map +1 -0
- package/dist/components/Edges/index.d.ts +6 -0
- package/dist/components/Edges/index.d.ts.map +1 -0
- package/dist/components/Edges/index.js +6 -0
- package/dist/components/Edges/index.js.map +1 -0
- package/dist/components/Edges/utils/bezierPath.d.ts +2 -0
- package/dist/components/Edges/utils/bezierPath.d.ts.map +1 -0
- package/dist/components/Edges/utils/bezierPath.js +24 -0
- package/dist/components/Edges/utils/bezierPath.js.map +1 -0
- package/dist/components/Edges/utils/index.d.ts +4 -0
- package/dist/components/Edges/utils/index.d.ts.map +1 -0
- package/dist/components/Edges/utils/index.js +4 -0
- package/dist/components/Edges/utils/index.js.map +1 -0
- package/dist/components/Edges/utils/loopBackPath.d.ts +2 -0
- package/dist/components/Edges/utils/loopBackPath.d.ts.map +1 -0
- package/dist/components/Edges/utils/loopBackPath.js +35 -0
- package/dist/components/Edges/utils/loopBackPath.js.map +1 -0
- package/dist/components/Edges/utils/selfConnectPath.d.ts +2 -0
- package/dist/components/Edges/utils/selfConnectPath.d.ts.map +1 -0
- package/dist/components/Edges/utils/selfConnectPath.js +25 -0
- package/dist/components/Edges/utils/selfConnectPath.js.map +1 -0
- package/dist/components/Nodes/ALDNode.d.ts +18 -0
- package/dist/components/Nodes/ALDNode.d.ts.map +1 -0
- package/dist/components/Nodes/ALDNode.js +34 -0
- package/dist/components/Nodes/ALDNode.js.map +1 -0
- package/dist/components/Nodes/BaseNode.d.ts +37 -0
- package/dist/components/Nodes/BaseNode.d.ts.map +1 -0
- package/dist/components/Nodes/BaseNode.js +225 -0
- package/dist/components/Nodes/BaseNode.js.map +1 -0
- package/dist/components/Nodes/index.d.ts +3 -0
- package/dist/components/Nodes/index.d.ts.map +1 -0
- package/dist/components/Nodes/index.js +3 -0
- package/dist/components/Nodes/index.js.map +1 -0
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/index.js +3 -0
- package/dist/components/index.js.map +1 -0
- package/dist/constant/bigEvents.d.ts +22 -0
- package/dist/constant/bigEvents.d.ts.map +1 -0
- package/dist/constant/bigEvents.js +25 -0
- package/dist/constant/bigEvents.js.map +1 -0
- package/dist/constant/events.d.ts +5 -0
- package/dist/constant/events.d.ts.map +1 -0
- package/dist/constant/events.js +6 -0
- package/dist/constant/events.js.map +1 -0
- package/dist/constant/index.d.ts +3 -0
- package/dist/constant/index.d.ts.map +1 -0
- package/dist/constant/index.js +3 -0
- package/dist/constant/index.js.map +1 -0
- package/dist/constant/lineage.d.ts +64 -0
- package/dist/constant/lineage.d.ts.map +1 -0
- package/dist/constant/lineage.js +95 -0
- package/dist/constant/lineage.js.map +1 -0
- package/dist/graph/Graph.d.ts +83 -0
- package/dist/graph/Graph.d.ts.map +1 -0
- package/dist/graph/Graph.js +392 -0
- package/dist/graph/Graph.js.map +1 -0
- package/dist/graph/TreeGraph.d.ts +65 -0
- package/dist/graph/TreeGraph.d.ts.map +1 -0
- package/dist/graph/TreeGraph.js +267 -0
- package/dist/graph/TreeGraph.js.map +1 -0
- package/dist/graph/index.d.ts +3 -0
- package/dist/graph/index.d.ts.map +1 -0
- package/dist/graph/index.js +3 -0
- package/dist/graph/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/ALDLayout.d.ts +8 -0
- package/dist/layout/ALDLayout.d.ts.map +1 -0
- package/dist/layout/ALDLayout.js +147 -0
- package/dist/layout/ALDLayout.js.map +1 -0
- package/dist/layout/BaseLayout.d.ts +14 -0
- package/dist/layout/BaseLayout.d.ts.map +1 -0
- package/dist/layout/BaseLayout.js +10 -0
- package/dist/layout/BaseLayout.js.map +1 -0
- package/dist/layout/BigLayout.d.ts +43 -0
- package/dist/layout/BigLayout.d.ts.map +1 -0
- package/dist/layout/BigLayout.js +308 -0
- package/dist/layout/BigLayout.js.map +1 -0
- package/dist/layout/Dagre.d.ts +6 -0
- package/dist/layout/Dagre.d.ts.map +1 -0
- package/dist/layout/Dagre.js +97 -0
- package/dist/layout/Dagre.js.map +1 -0
- package/dist/layout/HierarchyLayout.d.ts +7 -0
- package/dist/layout/HierarchyLayout.d.ts.map +1 -0
- package/dist/layout/HierarchyLayout.js +66 -0
- package/dist/layout/HierarchyLayout.js.map +1 -0
- package/dist/layout/index.d.ts +6 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +6 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/manager/PluginManager.d.ts +11 -0
- package/dist/manager/PluginManager.d.ts.map +1 -0
- package/dist/manager/PluginManager.js +25 -0
- package/dist/manager/PluginManager.js.map +1 -0
- package/dist/manager/index.d.ts +2 -0
- package/dist/manager/index.d.ts.map +1 -0
- package/dist/manager/index.js +2 -0
- package/dist/manager/index.js.map +1 -0
- package/dist/plugins/Minimap/index.d.ts +54 -0
- package/dist/plugins/Minimap/index.d.ts.map +1 -0
- package/dist/plugins/Minimap/index.js +378 -0
- package/dist/plugins/Minimap/index.js.map +1 -0
- package/dist/plugins/Tools/ResetViewport.d.ts +11 -0
- package/dist/plugins/Tools/ResetViewport.d.ts.map +1 -0
- package/dist/plugins/Tools/ResetViewport.js +32 -0
- package/dist/plugins/Tools/ResetViewport.js.map +1 -0
- package/dist/plugins/Tools/ToolPlugin.d.ts +9 -0
- package/dist/plugins/Tools/ToolPlugin.d.ts.map +1 -0
- package/dist/plugins/Tools/ToolPlugin.js +42 -0
- package/dist/plugins/Tools/ToolPlugin.js.map +1 -0
- package/dist/plugins/Tools/Zoom.d.ts +8 -0
- package/dist/plugins/Tools/Zoom.d.ts.map +1 -0
- package/dist/plugins/Tools/Zoom.js +58 -0
- package/dist/plugins/Tools/Zoom.js.map +1 -0
- package/dist/plugins/Tools/defaultConfig.d.ts +12 -0
- package/dist/plugins/Tools/defaultConfig.d.ts.map +1 -0
- package/dist/plugins/Tools/defaultConfig.js +12 -0
- package/dist/plugins/Tools/defaultConfig.js.map +1 -0
- package/dist/plugins/Tools/index.d.ts +2 -0
- package/dist/plugins/Tools/index.d.ts.map +1 -0
- package/dist/plugins/Tools/index.js +2 -0
- package/dist/plugins/Tools/index.js.map +1 -0
- package/dist/types/Edge.d.ts +34 -0
- package/dist/types/Edge.d.ts.map +1 -0
- package/dist/types/Edge.js +2 -0
- package/dist/types/Edge.js.map +1 -0
- package/dist/types/Graph.d.ts +53 -0
- package/dist/types/Graph.d.ts.map +1 -0
- package/dist/types/Graph.js +2 -0
- package/dist/types/Graph.js.map +1 -0
- package/dist/types/Layout.d.ts +57 -0
- package/dist/types/Layout.d.ts.map +1 -0
- package/dist/types/Layout.js +9 -0
- package/dist/types/Layout.js.map +1 -0
- package/dist/types/Node.d.ts +45 -0
- package/dist/types/Node.d.ts.map +1 -0
- package/dist/types/Node.js +2 -0
- package/dist/types/Node.js.map +1 -0
- package/dist/types/Plugin.d.ts +7 -0
- package/dist/types/Plugin.d.ts.map +1 -0
- package/dist/types/Plugin.js +2 -0
- package/dist/types/Plugin.js.map +1 -0
- package/dist/types/big/BigNode.d.ts +8 -0
- package/dist/types/big/BigNode.d.ts.map +1 -0
- package/dist/types/big/BigNode.js +15 -0
- package/dist/types/big/BigNode.js.map +1 -0
- package/dist/types/big/enumType.d.ts +6 -0
- package/dist/types/big/enumType.d.ts.map +1 -0
- package/dist/types/big/enumType.js +11 -0
- package/dist/types/big/enumType.js.map +1 -0
- package/dist/types/big/index.d.ts +3 -0
- package/dist/types/big/index.d.ts.map +1 -0
- package/dist/types/big/index.js +3 -0
- package/dist/types/big/index.js.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/big/defaultNode.d.ts +23 -0
- package/dist/utils/big/defaultNode.d.ts.map +1 -0
- package/dist/utils/big/defaultNode.js +40 -0
- package/dist/utils/big/defaultNode.js.map +1 -0
- package/dist/utils/big/getIconByType.d.ts +2 -0
- package/dist/utils/big/getIconByType.d.ts.map +1 -0
- package/dist/utils/big/getIconByType.js +21 -0
- package/dist/utils/big/getIconByType.js.map +1 -0
- package/dist/utils/big/index.d.ts +2 -0
- package/dist/utils/big/index.d.ts.map +1 -0
- package/dist/utils/big/index.js +2 -0
- package/dist/utils/big/index.js.map +1 -0
- package/dist/utils/buildTreeEdge.d.ts +3 -0
- package/dist/utils/buildTreeEdge.d.ts.map +1 -0
- package/dist/utils/buildTreeEdge.js +49 -0
- package/dist/utils/buildTreeEdge.js.map +1 -0
- package/dist/utils/canvas.d.ts +5 -0
- package/dist/utils/canvas.d.ts.map +1 -0
- package/dist/utils/canvas.js +13 -0
- package/dist/utils/canvas.js.map +1 -0
- package/dist/utils/graph.d.ts +4 -0
- package/dist/utils/graph.d.ts.map +1 -0
- package/dist/utils/graph.js +22 -0
- package/dist/utils/graph.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/node-performance-test.d.ts +3 -0
- package/dist/utils/node-performance-test.d.ts.map +1 -0
- package/dist/utils/node-performance-test.js +155 -0
- package/dist/utils/node-performance-test.js.map +1 -0
- package/dist/utils/node.d.ts +8 -0
- package/dist/utils/node.d.ts.map +1 -0
- package/dist/utils/node.js +275 -0
- package/dist/utils/node.js.map +1 -0
- package/dist/utils/text.d.ts +2 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +14 -0
- package/dist/utils/text.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { __read, __spreadArray } from "tslib";
|
|
2
|
+
export function buildTreeEdge(tree, parent) {
|
|
3
|
+
if (parent === void 0) { parent = null; }
|
|
4
|
+
var edges = [];
|
|
5
|
+
if (parent !== null) {
|
|
6
|
+
// 添加当前节点和父节点之间的边关系
|
|
7
|
+
var id = "".concat(parent, "___").concat(tree.id);
|
|
8
|
+
edges.push({
|
|
9
|
+
id: id,
|
|
10
|
+
type: 'edge_hierarchy',
|
|
11
|
+
source: parent,
|
|
12
|
+
target: tree.id,
|
|
13
|
+
points: [],
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
if (tree.children) {
|
|
17
|
+
// 遍历子节点
|
|
18
|
+
tree.children.forEach(function (child) {
|
|
19
|
+
// 递归处理子节点的子节点
|
|
20
|
+
edges.push.apply(edges, __spreadArray([], __read(buildTreeEdge(child, tree.id)), false));
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
// 返回构建好的边信息
|
|
24
|
+
return edges;
|
|
25
|
+
}
|
|
26
|
+
export function getTreeEdgePositions(tree, parent) {
|
|
27
|
+
if (parent === void 0) { parent = null; }
|
|
28
|
+
var edgesPositions = [];
|
|
29
|
+
if (parent !== null) {
|
|
30
|
+
var id = "".concat(parent.id, "___").concat(tree.id);
|
|
31
|
+
edgesPositions.push({
|
|
32
|
+
id: id,
|
|
33
|
+
points: [
|
|
34
|
+
{
|
|
35
|
+
x: parent.x + (parent.width - parent.hgap * 2) / 2,
|
|
36
|
+
y: (parent === null || parent === void 0 ? void 0 : parent.y) + parent.height - parent.vgap * 2,
|
|
37
|
+
},
|
|
38
|
+
{ x: tree.x + (tree.width - tree.hgap * 2) / 2, y: tree.y },
|
|
39
|
+
],
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
if (tree.children) {
|
|
43
|
+
tree.children.forEach(function (child) {
|
|
44
|
+
edgesPositions.push.apply(edgesPositions, __spreadArray([], __read(getTreeEdgePositions(child, tree)), false));
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return edgesPositions;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=buildTreeEdge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildTreeEdge.js","sourceRoot":"","sources":["../../src/utils/buildTreeEdge.ts"],"names":[],"mappings":";AAAA,MAAM,UAAU,aAAa,CAAC,IAAS,EAAE,MAAa;IAAb,uBAAA,EAAA,aAAa;IACpD,IAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,mBAAmB;QACnB,IAAM,EAAE,GAAG,UAAG,MAAM,gBAAM,IAAI,CAAC,EAAE,CAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC;YACT,EAAE,IAAA;YACF,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,QAAQ;QACR,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAU;YAC/B,cAAc;YACd,KAAK,CAAC,IAAI,OAAV,KAAK,2BAAS,aAAa,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,WAAE;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;IACZ,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,IAAI,EAAE,MAAa;IAAb,uBAAA,EAAA,aAAa;IACtD,IAAM,cAAc,GAAG,EAAE,CAAC;IAE1B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,IAAM,EAAE,GAAG,UAAG,MAAM,CAAC,EAAE,gBAAM,IAAI,CAAC,EAAE,CAAE,CAAC;QACvC,cAAc,CAAC,IAAI,CAAC;YAClB,EAAE,IAAA;YACF,MAAM,EAAE;gBACN;oBACE,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;oBAClD,CAAC,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,CAAC,IAAG,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,CAAC;iBAC/C;gBACD,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE;aAC5D;SACF,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,KAAK;YAC1B,cAAc,CAAC,IAAI,OAAnB,cAAc,2BAAS,oBAAoB,CAAC,KAAK,EAAE,IAAI,CAAC,WAAE;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/utils/canvas.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG;;;EAW1C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import _ from 'lodash';
|
|
2
|
+
export function getCanvasCenter(canvas) {
|
|
3
|
+
var _a = canvas.getConfig(), canvasWidth = _a.width, canvasHeight = _a.height;
|
|
4
|
+
if (!_.isNumber(canvasWidth) || !_.isNumber(canvasHeight))
|
|
5
|
+
return;
|
|
6
|
+
var centerX = canvasWidth * 0.5;
|
|
7
|
+
var centerY = canvasHeight * 0.5;
|
|
8
|
+
return {
|
|
9
|
+
centerX: centerX,
|
|
10
|
+
centerY: centerY,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=canvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../src/utils/canvas.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,MAAM,UAAU,eAAe,CAAC,MAAW;IACnC,IAAA,KAA+C,MAAM,CAAC,SAAS,EAAE,EAAxD,WAAW,WAAA,EAAU,YAAY,YAAuB,CAAC;IACxE,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAAE,OAAO;IAElE,IAAM,OAAO,GAAG,WAAW,GAAG,GAAG,CAAC;IAClC,IAAM,OAAO,GAAG,YAAY,GAAG,GAAG,CAAC;IAEnC,OAAO;QACL,OAAO,SAAA;QACP,OAAO,SAAA;KACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { EdgeBaseCtor, IBaseEdgeConfig, IBaseNodeConfig, NodeBaseCtor } from '../types';
|
|
2
|
+
export declare function getEdgeConstructor(edgeType: string, edgeTypeMap: Map<string, EdgeBaseCtor<IBaseEdgeConfig>>, mode: 'SIMPLE' | 'NORMAL'): EdgeBaseCtor<IBaseEdgeConfig>;
|
|
3
|
+
export declare function getNodeConstructor(nodeType: string, nodeTypeMap: Map<string, NodeBaseCtor<IBaseNodeConfig>>, mode: 'SIMPLE' | 'NORMAL'): NodeBaseCtor<IBaseNodeConfig>;
|
|
4
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/utils/graph.ts"],"names":[],"mappings":"AACA,OAAO,EACH,YAAY,EACZ,eAAe,EACf,eAAe,EACf,YAAY,EACf,MAAM,UAAU,CAAC;AAElB,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,EACvD,IAAI,EAAE,QAAQ,GAAG,QAAQ,iCAW5B;AAED,wBAAgB,kBAAkB,CAC9B,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,eAAe,CAAC,CAAC,EACvD,IAAI,EAAE,QAAQ,GAAG,QAAQ,iCAU5B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BASE_EDGE, BASE_NODE } from '../constant/lineage';
|
|
2
|
+
export function getEdgeConstructor(edgeType, edgeTypeMap, mode) {
|
|
3
|
+
if (!edgeType) {
|
|
4
|
+
edgeType = BASE_EDGE;
|
|
5
|
+
}
|
|
6
|
+
var edgeConstructor = edgeTypeMap.get(edgeType);
|
|
7
|
+
if (mode === 'SIMPLE') {
|
|
8
|
+
edgeConstructor = edgeTypeMap.get(BASE_EDGE);
|
|
9
|
+
}
|
|
10
|
+
return edgeConstructor;
|
|
11
|
+
}
|
|
12
|
+
export function getNodeConstructor(nodeType, nodeTypeMap, mode) {
|
|
13
|
+
if (!nodeType) {
|
|
14
|
+
nodeType = BASE_NODE;
|
|
15
|
+
}
|
|
16
|
+
var nodeConstructor = nodeTypeMap.get(nodeType);
|
|
17
|
+
if (mode === 'SIMPLE') {
|
|
18
|
+
nodeConstructor = nodeTypeMap.get(BASE_NODE);
|
|
19
|
+
}
|
|
20
|
+
return nodeConstructor;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/utils/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAQ3D,MAAM,UAAU,kBAAkB,CAC9B,QAAgB,EAChB,WAAuD,EACvD,IAAyB;IAEzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,QAAQ,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,IAAI,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpB,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAC9B,QAAgB,EAChB,WAAuD,EACvD,IAAyB;IAEzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,QAAQ,GAAG,SAAS,CAAC;IACzB,CAAC;IACD,IAAI,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpB,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,eAAe,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,iBAAiB,CAAC;AAChC,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-performance-test.d.ts","sourceRoot":"","sources":["../../src/utils/node-performance-test.ts"],"names":[],"mappings":"AA+HA,wBAAgB,kBAAkB,SA6CjC;AAGD,wBAAgB,kBAAkB,SAmBjC"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { EDirection } from '../types';
|
|
2
|
+
// 原始版本(用于性能对比)
|
|
3
|
+
function groupNodesByEdgesAndDirectionOriginal(startNodeCfg, nodesConfigMap, edgesConfig, direction) {
|
|
4
|
+
var existMap = new Map();
|
|
5
|
+
existMap.set(startNodeCfg.id, 0);
|
|
6
|
+
var todoList = [startNodeCfg];
|
|
7
|
+
var relatedEdges = new Set();
|
|
8
|
+
var _loop_1 = function () {
|
|
9
|
+
var curr = todoList.shift();
|
|
10
|
+
if (!curr)
|
|
11
|
+
return { value: void 0 };
|
|
12
|
+
var currPosition = existMap.get(curr.id);
|
|
13
|
+
if (currPosition === undefined)
|
|
14
|
+
return { value: void 0 };
|
|
15
|
+
edgesConfig.forEach(function (edge) {
|
|
16
|
+
var _a, _b;
|
|
17
|
+
if (direction === EDirection.BOTH || direction === EDirection.INPUT) {
|
|
18
|
+
if (edge.target === curr.id ||
|
|
19
|
+
((_a = curr.relatedColumns) === null || _a === void 0 ? void 0 : _a.some(function (col) { return col.id === edge.target; }))) {
|
|
20
|
+
relatedEdges.add(edge);
|
|
21
|
+
var inMapNode = nodesConfigMap.get(edge.source);
|
|
22
|
+
if (!inMapNode)
|
|
23
|
+
return;
|
|
24
|
+
var srcNode = inMapNode.tableId
|
|
25
|
+
? nodesConfigMap.get(inMapNode.tableId)
|
|
26
|
+
: inMapNode;
|
|
27
|
+
if (!srcNode)
|
|
28
|
+
return;
|
|
29
|
+
if (!existMap.has(srcNode.id)) {
|
|
30
|
+
existMap.set(srcNode.id, currPosition - 1);
|
|
31
|
+
todoList.push(srcNode);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (direction === EDirection.BOTH || direction === EDirection.OUTPUT) {
|
|
36
|
+
if (edge.source === curr.id ||
|
|
37
|
+
((_b = curr.relatedColumns) === null || _b === void 0 ? void 0 : _b.some(function (col) { return col.id === edge.source; }))) {
|
|
38
|
+
relatedEdges.add(edge);
|
|
39
|
+
var inMapNode = nodesConfigMap.get(edge.target);
|
|
40
|
+
if (!inMapNode)
|
|
41
|
+
return;
|
|
42
|
+
var tgtNode = inMapNode.tableId
|
|
43
|
+
? nodesConfigMap.get(inMapNode.tableId)
|
|
44
|
+
: inMapNode;
|
|
45
|
+
if (!existMap.has(tgtNode.id)) {
|
|
46
|
+
existMap.set(tgtNode.id, currPosition + 1);
|
|
47
|
+
todoList.push(tgtNode);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
while (todoList.length > 0) {
|
|
54
|
+
var state_1 = _loop_1();
|
|
55
|
+
if (typeof state_1 === "object")
|
|
56
|
+
return state_1.value;
|
|
57
|
+
}
|
|
58
|
+
return {
|
|
59
|
+
groupedNodes: existMap,
|
|
60
|
+
relatedEdges: Array.from(relatedEdges),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// 生成测试数据
|
|
64
|
+
function generateTestData(nodeCount, edgeCount) {
|
|
65
|
+
var nodes = [];
|
|
66
|
+
var edges = [];
|
|
67
|
+
var nodesMap = new Map();
|
|
68
|
+
// 生成节点
|
|
69
|
+
for (var i = 0; i < nodeCount; i++) {
|
|
70
|
+
var node = {
|
|
71
|
+
id: "node_".concat(i),
|
|
72
|
+
type: 'test-node',
|
|
73
|
+
name: "Node ".concat(i),
|
|
74
|
+
position: { x: i * 100, y: 0 },
|
|
75
|
+
style: { width: 100, height: 50 },
|
|
76
|
+
visible: true,
|
|
77
|
+
isStartNode: i === Math.floor(nodeCount / 2), // 中间的节点作为起始节点
|
|
78
|
+
relatedColumns: i % 3 === 0 ? [{ id: "col_".concat(i) }] : undefined, // 部分节点有relatedColumns
|
|
79
|
+
};
|
|
80
|
+
nodes.push(node);
|
|
81
|
+
nodesMap.set(node.id, node);
|
|
82
|
+
// 为relatedColumns也添加到map中
|
|
83
|
+
if (node.relatedColumns && Array.isArray(node.relatedColumns)) {
|
|
84
|
+
node.relatedColumns.forEach(function (col) {
|
|
85
|
+
if (col === null || col === void 0 ? void 0 : col.id) {
|
|
86
|
+
nodesMap.set(col.id, col);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// 生成边
|
|
92
|
+
for (var i = 0; i < edgeCount; i++) {
|
|
93
|
+
var sourceIndex = Math.floor(Math.random() * nodeCount);
|
|
94
|
+
var targetIndex = Math.floor(Math.random() * nodeCount);
|
|
95
|
+
if (sourceIndex !== targetIndex) {
|
|
96
|
+
var edge = {
|
|
97
|
+
id: "edge_".concat(i),
|
|
98
|
+
type: 'test-edge',
|
|
99
|
+
source: "node_".concat(sourceIndex),
|
|
100
|
+
target: "node_".concat(targetIndex),
|
|
101
|
+
points: [{ x: 0, y: 0 }, { x: 100, y: 0 }],
|
|
102
|
+
visible: true,
|
|
103
|
+
};
|
|
104
|
+
edges.push(edge);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return { nodes: nodes, edges: edges, nodesMap: nodesMap, startNode: nodes[Math.floor(nodeCount / 2)] };
|
|
108
|
+
}
|
|
109
|
+
// 性能测试函数
|
|
110
|
+
export function runPerformanceTest() {
|
|
111
|
+
console.log('🚀 开始性能测试...\n');
|
|
112
|
+
var testCases = [
|
|
113
|
+
{ nodes: 100, edges: 500 },
|
|
114
|
+
{ nodes: 500, edges: 2000 },
|
|
115
|
+
{ nodes: 1000, edges: 5000 },
|
|
116
|
+
{ nodes: 2000, edges: 10000 },
|
|
117
|
+
];
|
|
118
|
+
testCases.forEach(function (_a) {
|
|
119
|
+
var nodeCount = _a.nodes, edgeCount = _a.edges;
|
|
120
|
+
console.log("\uD83D\uDCCA \u6D4B\u8BD5\u7528\u4F8B: ".concat(nodeCount, " \u4E2A\u8282\u70B9, ").concat(edgeCount, " \u6761\u8FB9"));
|
|
121
|
+
var _b = generateTestData(nodeCount, edgeCount), nodes = _b.nodes, edges = _b.edges, nodesMap = _b.nodesMap, startNode = _b.startNode;
|
|
122
|
+
// 测试原始版本
|
|
123
|
+
var start1 = performance.now();
|
|
124
|
+
var result1 = groupNodesByEdgesAndDirectionOriginal(startNode, nodesMap, edges, EDirection.BOTH);
|
|
125
|
+
var end1 = performance.now();
|
|
126
|
+
var originalTime = end1 - start1;
|
|
127
|
+
// 测试优化版本 (需要从实际的模块导入)
|
|
128
|
+
var start2 = performance.now();
|
|
129
|
+
// 这里应该导入优化后的函数
|
|
130
|
+
// const result2 = groupNodesByEdgesAndDirection(startNode, nodesMap, edges, EDirection.BOTH);
|
|
131
|
+
var end2 = performance.now();
|
|
132
|
+
var optimizedTime = end2 - start2;
|
|
133
|
+
console.log(" \uD83D\uDCC8 \u539F\u59CB\u7248\u672C\u8017\u65F6: ".concat(originalTime.toFixed(2), "ms"));
|
|
134
|
+
console.log(" \u26A1 \u4F18\u5316\u7248\u672C\u8017\u65F6: ".concat(optimizedTime.toFixed(2), "ms"));
|
|
135
|
+
console.log(" \uD83C\uDFAF \u6027\u80FD\u63D0\u5347: ".concat(((originalTime - optimizedTime) / originalTime * 100).toFixed(1), "%"));
|
|
136
|
+
if (result1) {
|
|
137
|
+
console.log(" \uD83D\uDCCB \u5904\u7406\u7684\u8282\u70B9\u6570: ".concat(result1.groupedNodes.size));
|
|
138
|
+
console.log(" \uD83D\uDD17 \u76F8\u5173\u8FB9\u6570: ".concat(result1.relatedEdges.length));
|
|
139
|
+
}
|
|
140
|
+
console.log('');
|
|
141
|
+
});
|
|
142
|
+
console.log('✅ 性能测试完成!');
|
|
143
|
+
}
|
|
144
|
+
// 验证结果一致性的测试
|
|
145
|
+
export function runCorrectnessTest() {
|
|
146
|
+
console.log('🔍 开始正确性测试...\n');
|
|
147
|
+
var _a = generateTestData(50, 200), nodes = _a.nodes, edges = _a.edges, nodesMap = _a.nodesMap, startNode = _a.startNode;
|
|
148
|
+
var result1 = groupNodesByEdgesAndDirectionOriginal(startNode, nodesMap, edges, EDirection.BOTH);
|
|
149
|
+
// 这里应该测试优化版本的结果
|
|
150
|
+
// const result2 = groupNodesByEdgesAndDirection(startNode, nodesMap, edges, EDirection.BOTH);
|
|
151
|
+
console.log('原始版本结果:', result1 === null || result1 === void 0 ? void 0 : result1.groupedNodes.size, '个节点');
|
|
152
|
+
// console.log('优化版本结果:', result2?.groupedNodes.size, '个节点');
|
|
153
|
+
console.log('✅ 正确性测试完成!');
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=node-performance-test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-performance-test.js","sourceRoot":"","sources":["../../src/utils/node-performance-test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EDirection, IBaseEdgeConfig, IBaseNodeConfig } from '../types';
|
|
2
|
+
import { mat4 } from 'gl-matrix';
|
|
3
|
+
export declare function groupNodesByEdgesAndDirection<T extends IBaseNodeConfig = IBaseNodeConfig, K extends IBaseEdgeConfig = IBaseEdgeConfig>(startNodeCfg: T, nodesConfigMap: Map<string, T>, edgesConfig: K[], direction: EDirection): {
|
|
4
|
+
groupedNodes: Map<string, number>;
|
|
5
|
+
relatedEdges: K[];
|
|
6
|
+
};
|
|
7
|
+
export declare function isNodeVisible<T extends IBaseNodeConfig = IBaseNodeConfig>(node: T, canvasWidth: number, canvasHeight: number, globalTransform?: mat4): boolean;
|
|
8
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/utils/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,IAAI,EAAQ,MAAM,WAAW,CAAC;AAsEvC,wBAAgB,6BAA6B,CAC3C,CAAC,SAAS,eAAe,GAAG,eAAe,EAC3C,CAAC,SAAS,eAAe,GAAG,eAAe,EAE3C,YAAY,EAAE,CAAC,EACf,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EAC9B,WAAW,EAAE,CAAC,EAAE,EAChB,SAAS,EAAE,UAAU;;;EAyEtB;AA0BD,wBAAgB,aAAa,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EACvE,IAAI,EAAE,CAAC,EACP,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,EACpB,eAAe,GAAE,IAAoB,WAyDtC"}
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
import { __read, __spreadArray, __values } from "tslib";
|
|
2
|
+
import { EDirection } from '../types';
|
|
3
|
+
import { mat4, vec4 } from 'gl-matrix';
|
|
4
|
+
// 简单的双端队列实现,避免shift()的O(n)开销
|
|
5
|
+
var SimpleQueue = /** @class */ (function () {
|
|
6
|
+
function SimpleQueue() {
|
|
7
|
+
this.items = [];
|
|
8
|
+
this.frontIndex = 0;
|
|
9
|
+
}
|
|
10
|
+
SimpleQueue.prototype.enqueue = function (item) {
|
|
11
|
+
this.items.push(item);
|
|
12
|
+
};
|
|
13
|
+
SimpleQueue.prototype.dequeue = function () {
|
|
14
|
+
if (this.frontIndex >= this.items.length) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
return this.items[this.frontIndex++];
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(SimpleQueue.prototype, "length", {
|
|
20
|
+
get: function () {
|
|
21
|
+
return this.items.length - this.frontIndex;
|
|
22
|
+
},
|
|
23
|
+
enumerable: false,
|
|
24
|
+
configurable: true
|
|
25
|
+
});
|
|
26
|
+
return SimpleQueue;
|
|
27
|
+
}());
|
|
28
|
+
// 预处理边数据,建立索引
|
|
29
|
+
function buildEdgeIndexes(edgesConfig, nodesConfigMap) {
|
|
30
|
+
var e_1, _a, e_2, _b, e_3, _c;
|
|
31
|
+
var bySource = new Map();
|
|
32
|
+
var byTarget = new Map();
|
|
33
|
+
var relatedColumnsCache = new Map();
|
|
34
|
+
try {
|
|
35
|
+
// 预处理relatedColumns缓存
|
|
36
|
+
for (var nodesConfigMap_1 = __values(nodesConfigMap), nodesConfigMap_1_1 = nodesConfigMap_1.next(); !nodesConfigMap_1_1.done; nodesConfigMap_1_1 = nodesConfigMap_1.next()) {
|
|
37
|
+
var _d = __read(nodesConfigMap_1_1.value, 2), nodeId = _d[0], node = _d[1];
|
|
38
|
+
if (node.relatedColumns) {
|
|
39
|
+
var columnIds = new Set();
|
|
40
|
+
try {
|
|
41
|
+
for (var _e = (e_2 = void 0, __values(node.relatedColumns)), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
42
|
+
var col = _f.value;
|
|
43
|
+
if (col === null || col === void 0 ? void 0 : col.id) {
|
|
44
|
+
columnIds.add(col.id);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
49
|
+
finally {
|
|
50
|
+
try {
|
|
51
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
52
|
+
}
|
|
53
|
+
finally { if (e_2) throw e_2.error; }
|
|
54
|
+
}
|
|
55
|
+
relatedColumnsCache.set(nodeId, columnIds);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
60
|
+
finally {
|
|
61
|
+
try {
|
|
62
|
+
if (nodesConfigMap_1_1 && !nodesConfigMap_1_1.done && (_a = nodesConfigMap_1.return)) _a.call(nodesConfigMap_1);
|
|
63
|
+
}
|
|
64
|
+
finally { if (e_1) throw e_1.error; }
|
|
65
|
+
}
|
|
66
|
+
try {
|
|
67
|
+
// 建立边索引
|
|
68
|
+
for (var edgesConfig_1 = __values(edgesConfig), edgesConfig_1_1 = edgesConfig_1.next(); !edgesConfig_1_1.done; edgesConfig_1_1 = edgesConfig_1.next()) {
|
|
69
|
+
var edge = edgesConfig_1_1.value;
|
|
70
|
+
// 按source索引
|
|
71
|
+
if (!bySource.has(edge.source)) {
|
|
72
|
+
bySource.set(edge.source, []);
|
|
73
|
+
}
|
|
74
|
+
bySource.get(edge.source).push(edge);
|
|
75
|
+
// 按target索引
|
|
76
|
+
if (!byTarget.has(edge.target)) {
|
|
77
|
+
byTarget.set(edge.target, []);
|
|
78
|
+
}
|
|
79
|
+
byTarget.get(edge.target).push(edge);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
83
|
+
finally {
|
|
84
|
+
try {
|
|
85
|
+
if (edgesConfig_1_1 && !edgesConfig_1_1.done && (_c = edgesConfig_1.return)) _c.call(edgesConfig_1);
|
|
86
|
+
}
|
|
87
|
+
finally { if (e_3) throw e_3.error; }
|
|
88
|
+
}
|
|
89
|
+
return { bySource: bySource, byTarget: byTarget, relatedColumnsCache: relatedColumnsCache };
|
|
90
|
+
}
|
|
91
|
+
export function groupNodesByEdgesAndDirection(startNodeCfg, nodesConfigMap, edgesConfig, direction) {
|
|
92
|
+
var e_4, _a, e_5, _b, e_6, _c, e_7, _d, e_8, _e, e_9, _f;
|
|
93
|
+
var existMap = new Map();
|
|
94
|
+
existMap.set(startNodeCfg.id, 0);
|
|
95
|
+
// 使用双端队列替代数组shift操作
|
|
96
|
+
var todoQueue = new SimpleQueue();
|
|
97
|
+
todoQueue.enqueue(startNodeCfg);
|
|
98
|
+
var relatedEdges = new Set();
|
|
99
|
+
// 预处理边数据,建立索引
|
|
100
|
+
var edgeIndexes = buildEdgeIndexes(edgesConfig, nodesConfigMap);
|
|
101
|
+
while (todoQueue.length > 0) {
|
|
102
|
+
var curr = todoQueue.dequeue();
|
|
103
|
+
if (!curr)
|
|
104
|
+
return;
|
|
105
|
+
var currPosition = existMap.get(curr.id);
|
|
106
|
+
if (currPosition === undefined)
|
|
107
|
+
return;
|
|
108
|
+
// 获取当前节点的relatedColumns缓存
|
|
109
|
+
var currRelatedColumns = edgeIndexes.relatedColumnsCache.get(curr.id);
|
|
110
|
+
// 处理INPUT方向的边
|
|
111
|
+
if (direction === EDirection.BOTH || direction === EDirection.INPUT) {
|
|
112
|
+
// 获取以当前节点为target的所有边
|
|
113
|
+
var targetEdges = edgeIndexes.byTarget.get(curr.id) || [];
|
|
114
|
+
try {
|
|
115
|
+
for (var targetEdges_1 = (e_4 = void 0, __values(targetEdges)), targetEdges_1_1 = targetEdges_1.next(); !targetEdges_1_1.done; targetEdges_1_1 = targetEdges_1.next()) {
|
|
116
|
+
var edge = targetEdges_1_1.value;
|
|
117
|
+
relatedEdges.add(edge);
|
|
118
|
+
processEdgeNode(edge.source, currPosition - 1, nodesConfigMap, existMap, todoQueue);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
122
|
+
finally {
|
|
123
|
+
try {
|
|
124
|
+
if (targetEdges_1_1 && !targetEdges_1_1.done && (_a = targetEdges_1.return)) _a.call(targetEdges_1);
|
|
125
|
+
}
|
|
126
|
+
finally { if (e_4) throw e_4.error; }
|
|
127
|
+
}
|
|
128
|
+
// 处理relatedColumns作为target的情况
|
|
129
|
+
if (currRelatedColumns) {
|
|
130
|
+
try {
|
|
131
|
+
for (var currRelatedColumns_1 = (e_5 = void 0, __values(currRelatedColumns)), currRelatedColumns_1_1 = currRelatedColumns_1.next(); !currRelatedColumns_1_1.done; currRelatedColumns_1_1 = currRelatedColumns_1.next()) {
|
|
132
|
+
var columnId = currRelatedColumns_1_1.value;
|
|
133
|
+
var columnTargetEdges = edgeIndexes.byTarget.get(columnId) || [];
|
|
134
|
+
try {
|
|
135
|
+
for (var columnTargetEdges_1 = (e_6 = void 0, __values(columnTargetEdges)), columnTargetEdges_1_1 = columnTargetEdges_1.next(); !columnTargetEdges_1_1.done; columnTargetEdges_1_1 = columnTargetEdges_1.next()) {
|
|
136
|
+
var edge = columnTargetEdges_1_1.value;
|
|
137
|
+
relatedEdges.add(edge);
|
|
138
|
+
processEdgeNode(edge.source, currPosition - 1, nodesConfigMap, existMap, todoQueue);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
142
|
+
finally {
|
|
143
|
+
try {
|
|
144
|
+
if (columnTargetEdges_1_1 && !columnTargetEdges_1_1.done && (_c = columnTargetEdges_1.return)) _c.call(columnTargetEdges_1);
|
|
145
|
+
}
|
|
146
|
+
finally { if (e_6) throw e_6.error; }
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
151
|
+
finally {
|
|
152
|
+
try {
|
|
153
|
+
if (currRelatedColumns_1_1 && !currRelatedColumns_1_1.done && (_b = currRelatedColumns_1.return)) _b.call(currRelatedColumns_1);
|
|
154
|
+
}
|
|
155
|
+
finally { if (e_5) throw e_5.error; }
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
// 处理OUTPUT方向的边
|
|
160
|
+
if (direction === EDirection.BOTH || direction === EDirection.OUTPUT) {
|
|
161
|
+
// 获取以当前节点为source的所有边
|
|
162
|
+
var sourceEdges = edgeIndexes.bySource.get(curr.id) || [];
|
|
163
|
+
try {
|
|
164
|
+
for (var sourceEdges_1 = (e_7 = void 0, __values(sourceEdges)), sourceEdges_1_1 = sourceEdges_1.next(); !sourceEdges_1_1.done; sourceEdges_1_1 = sourceEdges_1.next()) {
|
|
165
|
+
var edge = sourceEdges_1_1.value;
|
|
166
|
+
relatedEdges.add(edge);
|
|
167
|
+
processEdgeNode(edge.target, currPosition + 1, nodesConfigMap, existMap, todoQueue);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
171
|
+
finally {
|
|
172
|
+
try {
|
|
173
|
+
if (sourceEdges_1_1 && !sourceEdges_1_1.done && (_d = sourceEdges_1.return)) _d.call(sourceEdges_1);
|
|
174
|
+
}
|
|
175
|
+
finally { if (e_7) throw e_7.error; }
|
|
176
|
+
}
|
|
177
|
+
// 处理relatedColumns作为source的情况
|
|
178
|
+
if (currRelatedColumns) {
|
|
179
|
+
try {
|
|
180
|
+
for (var currRelatedColumns_2 = (e_8 = void 0, __values(currRelatedColumns)), currRelatedColumns_2_1 = currRelatedColumns_2.next(); !currRelatedColumns_2_1.done; currRelatedColumns_2_1 = currRelatedColumns_2.next()) {
|
|
181
|
+
var columnId = currRelatedColumns_2_1.value;
|
|
182
|
+
var columnSourceEdges = edgeIndexes.bySource.get(columnId) || [];
|
|
183
|
+
try {
|
|
184
|
+
for (var columnSourceEdges_1 = (e_9 = void 0, __values(columnSourceEdges)), columnSourceEdges_1_1 = columnSourceEdges_1.next(); !columnSourceEdges_1_1.done; columnSourceEdges_1_1 = columnSourceEdges_1.next()) {
|
|
185
|
+
var edge = columnSourceEdges_1_1.value;
|
|
186
|
+
relatedEdges.add(edge);
|
|
187
|
+
processEdgeNode(edge.target, currPosition + 1, nodesConfigMap, existMap, todoQueue);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
191
|
+
finally {
|
|
192
|
+
try {
|
|
193
|
+
if (columnSourceEdges_1_1 && !columnSourceEdges_1_1.done && (_f = columnSourceEdges_1.return)) _f.call(columnSourceEdges_1);
|
|
194
|
+
}
|
|
195
|
+
finally { if (e_9) throw e_9.error; }
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
200
|
+
finally {
|
|
201
|
+
try {
|
|
202
|
+
if (currRelatedColumns_2_1 && !currRelatedColumns_2_1.done && (_e = currRelatedColumns_2.return)) _e.call(currRelatedColumns_2);
|
|
203
|
+
}
|
|
204
|
+
finally { if (e_8) throw e_8.error; }
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return {
|
|
210
|
+
groupedNodes: existMap,
|
|
211
|
+
relatedEdges: Array.from(relatedEdges),
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
// 提取公共逻辑,减少重复代码
|
|
215
|
+
function processEdgeNode(nodeId, position, nodesConfigMap, existMap, todoQueue) {
|
|
216
|
+
var inMapNode = nodesConfigMap.get(nodeId);
|
|
217
|
+
if (!inMapNode)
|
|
218
|
+
return;
|
|
219
|
+
var targetNode = inMapNode.tableId
|
|
220
|
+
? nodesConfigMap.get(inMapNode.tableId)
|
|
221
|
+
: inMapNode;
|
|
222
|
+
if (!targetNode)
|
|
223
|
+
return;
|
|
224
|
+
if (!existMap.has(targetNode.id)) {
|
|
225
|
+
existMap.set(targetNode.id, position);
|
|
226
|
+
todoQueue.enqueue(targetNode);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
// data check visible
|
|
230
|
+
export function isNodeVisible(node, canvasWidth, canvasHeight, globalTransform) {
|
|
231
|
+
var _a, _b;
|
|
232
|
+
if (globalTransform === void 0) { globalTransform = mat4.create(); }
|
|
233
|
+
if (node.isStartNode)
|
|
234
|
+
return true;
|
|
235
|
+
if (!node.visible)
|
|
236
|
+
return false;
|
|
237
|
+
// 创建节点位置的齐次坐标
|
|
238
|
+
var nodePos = vec4.fromValues(node.position.x, node.position.y, 0, 1);
|
|
239
|
+
// 应用全局变换矩阵
|
|
240
|
+
var transformedPos = vec4.create();
|
|
241
|
+
vec4.transformMat4(transformedPos, nodePos, globalTransform);
|
|
242
|
+
// 获取节点的宽度和高度
|
|
243
|
+
var nodeWidth = ((_a = node.style) === null || _a === void 0 ? void 0 : _a.width) || 0;
|
|
244
|
+
var nodeHeight = ((_b = node.style) === null || _b === void 0 ? void 0 : _b.height) || 0;
|
|
245
|
+
// 变换节点的四个角以确保完全检查可见性
|
|
246
|
+
var corners = [
|
|
247
|
+
vec4.fromValues(node.position.x, node.position.y, 0, 1),
|
|
248
|
+
vec4.fromValues(node.position.x + nodeWidth, node.position.y, 0, 1),
|
|
249
|
+
vec4.fromValues(node.position.x, node.position.y + nodeHeight, 0, 1),
|
|
250
|
+
vec4.fromValues(node.position.x + nodeWidth, node.position.y + nodeHeight, 0, 1),
|
|
251
|
+
];
|
|
252
|
+
var transformedCorners = corners.map(function (corner) {
|
|
253
|
+
var transformed = vec4.create();
|
|
254
|
+
vec4.transformMat4(transformed, corner, globalTransform);
|
|
255
|
+
return {
|
|
256
|
+
x: transformed[0] / transformed[3],
|
|
257
|
+
y: transformed[1] / transformed[3],
|
|
258
|
+
};
|
|
259
|
+
});
|
|
260
|
+
// 检查是否至少有一个角在可见区域内
|
|
261
|
+
var isVisible = transformedCorners.some(function (corner) {
|
|
262
|
+
return corner.x >= 0 &&
|
|
263
|
+
corner.x <= canvasWidth &&
|
|
264
|
+
corner.y >= 0 &&
|
|
265
|
+
corner.y <= canvasHeight;
|
|
266
|
+
});
|
|
267
|
+
// 或者检查画布是否在节点内部(当节点非常大时)
|
|
268
|
+
var minX = Math.min.apply(Math, __spreadArray([], __read(transformedCorners.map(function (c) { return c.x; })), false));
|
|
269
|
+
var maxX = Math.max.apply(Math, __spreadArray([], __read(transformedCorners.map(function (c) { return c.x; })), false));
|
|
270
|
+
var minY = Math.min.apply(Math, __spreadArray([], __read(transformedCorners.map(function (c) { return c.y; })), false));
|
|
271
|
+
var maxY = Math.max.apply(Math, __spreadArray([], __read(transformedCorners.map(function (c) { return c.y; })), false));
|
|
272
|
+
var canvasInsideNode = minX <= 0 && maxX >= canvasWidth && minY <= 0 && maxY >= canvasHeight;
|
|
273
|
+
return isVisible || canvasInsideNode;
|
|
274
|
+
}
|
|
275
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/utils/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/utils/text.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,MAAW,EACrB,UAAU,GAAE,MAAsB,UAMnC"}
|