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.
Files changed (242) hide show
  1. package/README.md +5 -0
  2. package/dist/assets/big/dataSourceTypeIcon.d.ts +23 -0
  3. package/dist/assets/big/dataSourceTypeIcon.d.ts.map +1 -0
  4. package/dist/assets/big/dataSourceTypeIcon.js +23 -0
  5. package/dist/assets/big/dataSourceTypeIcon.js.map +1 -0
  6. package/dist/assets/big/entityType.d.ts +2 -0
  7. package/dist/assets/big/entityType.d.ts.map +1 -0
  8. package/dist/assets/big/entityType.js +2 -0
  9. package/dist/assets/big/entityType.js.map +1 -0
  10. package/dist/assets/big/lineageIcon.d.ts +14 -0
  11. package/dist/assets/big/lineageIcon.d.ts.map +1 -0
  12. package/dist/assets/big/lineageIcon.js +14 -0
  13. package/dist/assets/big/lineageIcon.js.map +1 -0
  14. package/dist/assets/big/tableTypeIcon.d.ts +7 -0
  15. package/dist/assets/big/tableTypeIcon.d.ts.map +1 -0
  16. package/dist/assets/big/tableTypeIcon.js +7 -0
  17. package/dist/assets/big/tableTypeIcon.js.map +1 -0
  18. package/dist/assets/big/tipIcon.d.ts +4 -0
  19. package/dist/assets/big/tipIcon.d.ts.map +1 -0
  20. package/dist/assets/big/tipIcon.js +4 -0
  21. package/dist/assets/big/tipIcon.js.map +1 -0
  22. package/dist/assets/index.d.ts +4 -0
  23. package/dist/assets/index.d.ts.map +1 -0
  24. package/dist/assets/index.js +7 -0
  25. package/dist/assets/index.js.map +1 -0
  26. package/dist/components/Edges/ALDEdge.d.ts +11 -0
  27. package/dist/components/Edges/ALDEdge.d.ts.map +1 -0
  28. package/dist/components/Edges/ALDEdge.js +195 -0
  29. package/dist/components/Edges/ALDEdge.js.map +1 -0
  30. package/dist/components/Edges/BaseEdge.d.ts +24 -0
  31. package/dist/components/Edges/BaseEdge.d.ts.map +1 -0
  32. package/dist/components/Edges/BaseEdge.js +171 -0
  33. package/dist/components/Edges/BaseEdge.js.map +1 -0
  34. package/dist/components/Edges/DagreEdge.d.ts +7 -0
  35. package/dist/components/Edges/DagreEdge.d.ts.map +1 -0
  36. package/dist/components/Edges/DagreEdge.js +73 -0
  37. package/dist/components/Edges/DagreEdge.js.map +1 -0
  38. package/dist/components/Edges/HierarchyEdge.d.ts +11 -0
  39. package/dist/components/Edges/HierarchyEdge.d.ts.map +1 -0
  40. package/dist/components/Edges/HierarchyEdge.js +75 -0
  41. package/dist/components/Edges/HierarchyEdge.js.map +1 -0
  42. package/dist/components/Edges/index.d.ts +6 -0
  43. package/dist/components/Edges/index.d.ts.map +1 -0
  44. package/dist/components/Edges/index.js +6 -0
  45. package/dist/components/Edges/index.js.map +1 -0
  46. package/dist/components/Edges/utils/bezierPath.d.ts +2 -0
  47. package/dist/components/Edges/utils/bezierPath.d.ts.map +1 -0
  48. package/dist/components/Edges/utils/bezierPath.js +24 -0
  49. package/dist/components/Edges/utils/bezierPath.js.map +1 -0
  50. package/dist/components/Edges/utils/index.d.ts +4 -0
  51. package/dist/components/Edges/utils/index.d.ts.map +1 -0
  52. package/dist/components/Edges/utils/index.js +4 -0
  53. package/dist/components/Edges/utils/index.js.map +1 -0
  54. package/dist/components/Edges/utils/loopBackPath.d.ts +2 -0
  55. package/dist/components/Edges/utils/loopBackPath.d.ts.map +1 -0
  56. package/dist/components/Edges/utils/loopBackPath.js +35 -0
  57. package/dist/components/Edges/utils/loopBackPath.js.map +1 -0
  58. package/dist/components/Edges/utils/selfConnectPath.d.ts +2 -0
  59. package/dist/components/Edges/utils/selfConnectPath.d.ts.map +1 -0
  60. package/dist/components/Edges/utils/selfConnectPath.js +25 -0
  61. package/dist/components/Edges/utils/selfConnectPath.js.map +1 -0
  62. package/dist/components/Nodes/ALDNode.d.ts +18 -0
  63. package/dist/components/Nodes/ALDNode.d.ts.map +1 -0
  64. package/dist/components/Nodes/ALDNode.js +34 -0
  65. package/dist/components/Nodes/ALDNode.js.map +1 -0
  66. package/dist/components/Nodes/BaseNode.d.ts +37 -0
  67. package/dist/components/Nodes/BaseNode.d.ts.map +1 -0
  68. package/dist/components/Nodes/BaseNode.js +225 -0
  69. package/dist/components/Nodes/BaseNode.js.map +1 -0
  70. package/dist/components/Nodes/index.d.ts +3 -0
  71. package/dist/components/Nodes/index.d.ts.map +1 -0
  72. package/dist/components/Nodes/index.js +3 -0
  73. package/dist/components/Nodes/index.js.map +1 -0
  74. package/dist/components/index.d.ts +3 -0
  75. package/dist/components/index.d.ts.map +1 -0
  76. package/dist/components/index.js +3 -0
  77. package/dist/components/index.js.map +1 -0
  78. package/dist/constant/bigEvents.d.ts +22 -0
  79. package/dist/constant/bigEvents.d.ts.map +1 -0
  80. package/dist/constant/bigEvents.js +25 -0
  81. package/dist/constant/bigEvents.js.map +1 -0
  82. package/dist/constant/events.d.ts +5 -0
  83. package/dist/constant/events.d.ts.map +1 -0
  84. package/dist/constant/events.js +6 -0
  85. package/dist/constant/events.js.map +1 -0
  86. package/dist/constant/index.d.ts +3 -0
  87. package/dist/constant/index.d.ts.map +1 -0
  88. package/dist/constant/index.js +3 -0
  89. package/dist/constant/index.js.map +1 -0
  90. package/dist/constant/lineage.d.ts +64 -0
  91. package/dist/constant/lineage.d.ts.map +1 -0
  92. package/dist/constant/lineage.js +95 -0
  93. package/dist/constant/lineage.js.map +1 -0
  94. package/dist/graph/Graph.d.ts +83 -0
  95. package/dist/graph/Graph.d.ts.map +1 -0
  96. package/dist/graph/Graph.js +392 -0
  97. package/dist/graph/Graph.js.map +1 -0
  98. package/dist/graph/TreeGraph.d.ts +65 -0
  99. package/dist/graph/TreeGraph.d.ts.map +1 -0
  100. package/dist/graph/TreeGraph.js +267 -0
  101. package/dist/graph/TreeGraph.js.map +1 -0
  102. package/dist/graph/index.d.ts +3 -0
  103. package/dist/graph/index.d.ts.map +1 -0
  104. package/dist/graph/index.js +3 -0
  105. package/dist/graph/index.js.map +1 -0
  106. package/dist/index.d.ts +8 -0
  107. package/dist/index.d.ts.map +1 -0
  108. package/dist/index.js +8 -0
  109. package/dist/index.js.map +1 -0
  110. package/dist/layout/ALDLayout.d.ts +8 -0
  111. package/dist/layout/ALDLayout.d.ts.map +1 -0
  112. package/dist/layout/ALDLayout.js +147 -0
  113. package/dist/layout/ALDLayout.js.map +1 -0
  114. package/dist/layout/BaseLayout.d.ts +14 -0
  115. package/dist/layout/BaseLayout.d.ts.map +1 -0
  116. package/dist/layout/BaseLayout.js +10 -0
  117. package/dist/layout/BaseLayout.js.map +1 -0
  118. package/dist/layout/BigLayout.d.ts +43 -0
  119. package/dist/layout/BigLayout.d.ts.map +1 -0
  120. package/dist/layout/BigLayout.js +308 -0
  121. package/dist/layout/BigLayout.js.map +1 -0
  122. package/dist/layout/Dagre.d.ts +6 -0
  123. package/dist/layout/Dagre.d.ts.map +1 -0
  124. package/dist/layout/Dagre.js +97 -0
  125. package/dist/layout/Dagre.js.map +1 -0
  126. package/dist/layout/HierarchyLayout.d.ts +7 -0
  127. package/dist/layout/HierarchyLayout.d.ts.map +1 -0
  128. package/dist/layout/HierarchyLayout.js +66 -0
  129. package/dist/layout/HierarchyLayout.js.map +1 -0
  130. package/dist/layout/index.d.ts +6 -0
  131. package/dist/layout/index.d.ts.map +1 -0
  132. package/dist/layout/index.js +6 -0
  133. package/dist/layout/index.js.map +1 -0
  134. package/dist/manager/PluginManager.d.ts +11 -0
  135. package/dist/manager/PluginManager.d.ts.map +1 -0
  136. package/dist/manager/PluginManager.js +25 -0
  137. package/dist/manager/PluginManager.js.map +1 -0
  138. package/dist/manager/index.d.ts +2 -0
  139. package/dist/manager/index.d.ts.map +1 -0
  140. package/dist/manager/index.js +2 -0
  141. package/dist/manager/index.js.map +1 -0
  142. package/dist/plugins/Minimap/index.d.ts +54 -0
  143. package/dist/plugins/Minimap/index.d.ts.map +1 -0
  144. package/dist/plugins/Minimap/index.js +378 -0
  145. package/dist/plugins/Minimap/index.js.map +1 -0
  146. package/dist/plugins/Tools/ResetViewport.d.ts +11 -0
  147. package/dist/plugins/Tools/ResetViewport.d.ts.map +1 -0
  148. package/dist/plugins/Tools/ResetViewport.js +32 -0
  149. package/dist/plugins/Tools/ResetViewport.js.map +1 -0
  150. package/dist/plugins/Tools/ToolPlugin.d.ts +9 -0
  151. package/dist/plugins/Tools/ToolPlugin.d.ts.map +1 -0
  152. package/dist/plugins/Tools/ToolPlugin.js +42 -0
  153. package/dist/plugins/Tools/ToolPlugin.js.map +1 -0
  154. package/dist/plugins/Tools/Zoom.d.ts +8 -0
  155. package/dist/plugins/Tools/Zoom.d.ts.map +1 -0
  156. package/dist/plugins/Tools/Zoom.js +58 -0
  157. package/dist/plugins/Tools/Zoom.js.map +1 -0
  158. package/dist/plugins/Tools/defaultConfig.d.ts +12 -0
  159. package/dist/plugins/Tools/defaultConfig.d.ts.map +1 -0
  160. package/dist/plugins/Tools/defaultConfig.js +12 -0
  161. package/dist/plugins/Tools/defaultConfig.js.map +1 -0
  162. package/dist/plugins/Tools/index.d.ts +2 -0
  163. package/dist/plugins/Tools/index.d.ts.map +1 -0
  164. package/dist/plugins/Tools/index.js +2 -0
  165. package/dist/plugins/Tools/index.js.map +1 -0
  166. package/dist/types/Edge.d.ts +34 -0
  167. package/dist/types/Edge.d.ts.map +1 -0
  168. package/dist/types/Edge.js +2 -0
  169. package/dist/types/Edge.js.map +1 -0
  170. package/dist/types/Graph.d.ts +53 -0
  171. package/dist/types/Graph.d.ts.map +1 -0
  172. package/dist/types/Graph.js +2 -0
  173. package/dist/types/Graph.js.map +1 -0
  174. package/dist/types/Layout.d.ts +57 -0
  175. package/dist/types/Layout.d.ts.map +1 -0
  176. package/dist/types/Layout.js +9 -0
  177. package/dist/types/Layout.js.map +1 -0
  178. package/dist/types/Node.d.ts +45 -0
  179. package/dist/types/Node.d.ts.map +1 -0
  180. package/dist/types/Node.js +2 -0
  181. package/dist/types/Node.js.map +1 -0
  182. package/dist/types/Plugin.d.ts +7 -0
  183. package/dist/types/Plugin.d.ts.map +1 -0
  184. package/dist/types/Plugin.js +2 -0
  185. package/dist/types/Plugin.js.map +1 -0
  186. package/dist/types/big/BigNode.d.ts +8 -0
  187. package/dist/types/big/BigNode.d.ts.map +1 -0
  188. package/dist/types/big/BigNode.js +15 -0
  189. package/dist/types/big/BigNode.js.map +1 -0
  190. package/dist/types/big/enumType.d.ts +6 -0
  191. package/dist/types/big/enumType.d.ts.map +1 -0
  192. package/dist/types/big/enumType.js +11 -0
  193. package/dist/types/big/enumType.js.map +1 -0
  194. package/dist/types/big/index.d.ts +3 -0
  195. package/dist/types/big/index.d.ts.map +1 -0
  196. package/dist/types/big/index.js +3 -0
  197. package/dist/types/big/index.js.map +1 -0
  198. package/dist/types/index.d.ts +7 -0
  199. package/dist/types/index.d.ts.map +1 -0
  200. package/dist/types/index.js +7 -0
  201. package/dist/types/index.js.map +1 -0
  202. package/dist/utils/big/defaultNode.d.ts +23 -0
  203. package/dist/utils/big/defaultNode.d.ts.map +1 -0
  204. package/dist/utils/big/defaultNode.js +40 -0
  205. package/dist/utils/big/defaultNode.js.map +1 -0
  206. package/dist/utils/big/getIconByType.d.ts +2 -0
  207. package/dist/utils/big/getIconByType.d.ts.map +1 -0
  208. package/dist/utils/big/getIconByType.js +21 -0
  209. package/dist/utils/big/getIconByType.js.map +1 -0
  210. package/dist/utils/big/index.d.ts +2 -0
  211. package/dist/utils/big/index.d.ts.map +1 -0
  212. package/dist/utils/big/index.js +2 -0
  213. package/dist/utils/big/index.js.map +1 -0
  214. package/dist/utils/buildTreeEdge.d.ts +3 -0
  215. package/dist/utils/buildTreeEdge.d.ts.map +1 -0
  216. package/dist/utils/buildTreeEdge.js +49 -0
  217. package/dist/utils/buildTreeEdge.js.map +1 -0
  218. package/dist/utils/canvas.d.ts +5 -0
  219. package/dist/utils/canvas.d.ts.map +1 -0
  220. package/dist/utils/canvas.js +13 -0
  221. package/dist/utils/canvas.js.map +1 -0
  222. package/dist/utils/graph.d.ts +4 -0
  223. package/dist/utils/graph.d.ts.map +1 -0
  224. package/dist/utils/graph.js +22 -0
  225. package/dist/utils/graph.js.map +1 -0
  226. package/dist/utils/index.d.ts +6 -0
  227. package/dist/utils/index.d.ts.map +1 -0
  228. package/dist/utils/index.js +6 -0
  229. package/dist/utils/index.js.map +1 -0
  230. package/dist/utils/node-performance-test.d.ts +3 -0
  231. package/dist/utils/node-performance-test.d.ts.map +1 -0
  232. package/dist/utils/node-performance-test.js +155 -0
  233. package/dist/utils/node-performance-test.js.map +1 -0
  234. package/dist/utils/node.d.ts +8 -0
  235. package/dist/utils/node.d.ts.map +1 -0
  236. package/dist/utils/node.js +275 -0
  237. package/dist/utils/node.js.map +1 -0
  238. package/dist/utils/text.d.ts +2 -0
  239. package/dist/utils/text.d.ts.map +1 -0
  240. package/dist/utils/text.js +14 -0
  241. package/dist/utils/text.js.map +1 -0
  242. package/package.json +34 -0
@@ -0,0 +1,392 @@
1
+ import { DAGRE_LAYOUT_TYPE, LAYOUT_TYPE, } from '../types/Layout';
2
+ import { DagreLayout } from '../layout/Dagre';
3
+ import EventEmitter from 'eventemitter3';
4
+ import { Canvas, Group, LifeCycleEvent } from 'ink-new';
5
+ import _ from 'lodash';
6
+ import { ALDEdge, BaseNode, BaseEdge, DagreEdge } from '../components';
7
+ import { PluginManager } from '../manager';
8
+ import { ToolPlugin } from '../plugins/Tools';
9
+ import { ALDLayout } from '../layout';
10
+ import { GRAPH_EVENTS } from '../constant/events';
11
+ import { Minimap } from '../plugins/Minimap';
12
+ import { BASE_EDGE, BASE_NODE } from '../constant/lineage';
13
+ import { getEdgeConstructor, getNodeConstructor } from '../utils';
14
+ import { ALDNode } from '../components/Nodes/ALDNode';
15
+ // 实例化Graph的时候要设置数据
16
+ var Graph = /** @class */ (function () {
17
+ function Graph(cfg) {
18
+ this.emitter = new EventEmitter();
19
+ this.nodeTypeMap = new Map();
20
+ this.edgeTypeMap = new Map();
21
+ this.layoutTypeMap = new Map();
22
+ this.fullNodesMap = new Map();
23
+ this.nodes = new Map();
24
+ this.edges = new Map();
25
+ this.minimap = null;
26
+ this.mode = 'NORMAL';
27
+ this._config = cfg;
28
+ this.culling = cfg.culling || {
29
+ auto: true,
30
+ max: 50,
31
+ };
32
+ this.initCanvas();
33
+ this.initNodes();
34
+ this.initEdges();
35
+ this.initLayout();
36
+ this.initPlugins();
37
+ }
38
+ Graph.prototype.initCanvas = function () {
39
+ var _this = this;
40
+ if (_.isNil(this._config))
41
+ return;
42
+ var _a = this._config, root = _a.root, fontList = _a.fontList;
43
+ this.canvasDomRoot = _.isString(root)
44
+ ? document.getElementById(root)
45
+ : root;
46
+ if (!this.canvasDomRoot) {
47
+ console.error('root is not defined');
48
+ }
49
+ var vw = this.canvasDomRoot.clientWidth || 0;
50
+ var vh = this.canvasDomRoot.clientHeight || 0;
51
+ // 初始化渲染器
52
+ var canvas = new Canvas(this.canvasDomRoot, _.merge({
53
+ engine: 'ck',
54
+ width: vw,
55
+ height: vh,
56
+ fontList: fontList,
57
+ interactions: {
58
+ zoom: true,
59
+ },
60
+ }, this._config.canvasOptions));
61
+ this.canvas = canvas;
62
+ this.canvas.on(LifeCycleEvent.TRANSFORM_CHANGE, function () {
63
+ _this.onTransformChange();
64
+ });
65
+ // 初始化画布内节点容器和其他元素容器
66
+ var rootGroup = new Group({
67
+ name: 'rootGroup',
68
+ });
69
+ this.rootGroup = rootGroup;
70
+ var extraGroup = new Group({
71
+ name: 'extraGroup',
72
+ });
73
+ this.extraGroup = extraGroup;
74
+ this.canvas.add(rootGroup);
75
+ this.canvas.add(extraGroup);
76
+ };
77
+ Graph.prototype.initNodes = function () {
78
+ // this.registerEdge(TABLE_DEFAULT_EDGE, DowngradeEdge);
79
+ this.registerNode(ALDNode.type, ALDNode);
80
+ // register table node
81
+ this.registerNode(BASE_NODE, BaseNode);
82
+ };
83
+ /**
84
+ * 定义内置的边类型
85
+ */
86
+ Graph.prototype.initEdges = function () {
87
+ this.registerEdge('ald_edge', ALDEdge);
88
+ this.registerEdge('dagre_edge', DagreEdge);
89
+ this.registerEdge(BASE_EDGE, BaseEdge);
90
+ };
91
+ Graph.prototype.initLayout = function () {
92
+ this.layoutTypeMap.set(DAGRE_LAYOUT_TYPE, DagreLayout);
93
+ this.layoutTypeMap.set(LAYOUT_TYPE, ALDLayout);
94
+ // ...
95
+ };
96
+ Graph.prototype.initPlugins = function () {
97
+ this.pluginManager = new PluginManager(this);
98
+ this.pluginManager.register(new ToolPlugin());
99
+ this.minimap = new Minimap();
100
+ this.pluginManager.register(this.minimap);
101
+ this.pluginManager.execute();
102
+ };
103
+ Graph.prototype.getConfig = function () {
104
+ return this._config;
105
+ };
106
+ Graph.prototype.registerNode = function (type, node) {
107
+ // type存在直接覆盖
108
+ this.nodeTypeMap.set(type, node);
109
+ };
110
+ Graph.prototype.registerEdge = function (type, edge) {
111
+ // type存在直接覆盖
112
+ this.edgeTypeMap.set(type, edge);
113
+ };
114
+ Graph.prototype.registerLayout = function (type, layout) {
115
+ this.layoutTypeMap.set(type, layout);
116
+ };
117
+ /** @deprecated 使用setData */
118
+ Graph.prototype.setNodes = function (nodesConfig) {
119
+ this.nodesConfig = nodesConfig;
120
+ };
121
+ /** @deprecated 使用setData */
122
+ Graph.prototype.setEdges = function (edgesConfig) {
123
+ this.edgesConfig = edgesConfig;
124
+ };
125
+ Graph.prototype.setData = function (data) {
126
+ var _this = this;
127
+ this.data = data;
128
+ this.nodesConfig = data.nodes;
129
+ this.edgesConfig = data.edges;
130
+ this.nodesConfig.forEach(function (nodeConfig) {
131
+ _this.setAllNodesMap(nodeConfig);
132
+ });
133
+ };
134
+ Graph.prototype.layout = function () {
135
+ var _a;
136
+ if (!this.layoutIns) {
137
+ // TODO 处理类型
138
+ var layout = this.layoutTypeMap.get(this._config.layout.type);
139
+ if (!layout) {
140
+ console.error("layout type ".concat(this._config.layout.type, " is not registered"));
141
+ }
142
+ this.layoutIns = new layout(this);
143
+ }
144
+ (_a = this.layoutIns) === null || _a === void 0 ? void 0 : _a.run();
145
+ };
146
+ Graph.prototype.render = function () {
147
+ var begin = performance.now();
148
+ console.debug('graph begin render', begin);
149
+ this.renderNodes();
150
+ this.renderEdges();
151
+ var end = performance.now();
152
+ console.debug('graph render cost: ', end - begin, 'ms', end);
153
+ this.emitter.emit(GRAPH_EVENTS.NODES_CHANGE);
154
+ };
155
+ Graph.prototype.update = function () {
156
+ this.render();
157
+ };
158
+ Graph.prototype.renderNodes = function () {
159
+ var _this = this;
160
+ var _a;
161
+ var newNodes = new Map();
162
+ (_a = this.nodesConfig) === null || _a === void 0 ? void 0 : _a.forEach(function (nodeConfig) {
163
+ var oldNode = _this.nodes.get(nodeConfig.id);
164
+ // Add related columns to the map
165
+ var node = _this.createNode(nodeConfig, oldNode);
166
+ if (_.isNil(node))
167
+ return;
168
+ if (node === oldNode) {
169
+ node.update(nodeConfig, node.container);
170
+ }
171
+ else {
172
+ node.render(nodeConfig, node.container);
173
+ }
174
+ _this.nodes.delete(nodeConfig.id);
175
+ newNodes.set(node.id, node);
176
+ });
177
+ // 销毁已经移除的节点
178
+ this.nodes.forEach(function (node) {
179
+ // 可能已经移除了,但这里额外调用一次确保节点从画布移除
180
+ _this.rootGroup.removeChild(node.container);
181
+ });
182
+ this.nodes = newNodes;
183
+ };
184
+ Graph.prototype.setAllNodesMap = function (nodeConfig) {
185
+ var _this = this;
186
+ var _a, _b;
187
+ this.fullNodesMap.set(nodeConfig.id, nodeConfig);
188
+ // Add children to the map as well
189
+ (_a = nodeConfig.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {
190
+ _this.fullNodesMap.set(child.id, child);
191
+ });
192
+ // Add related columns to the map
193
+ (_b = nodeConfig.relatedColumns) === null || _b === void 0 ? void 0 : _b.forEach(function (col) {
194
+ _this.fullNodesMap.set(col.id, col);
195
+ });
196
+ };
197
+ Graph.prototype.renderEdges = function () {
198
+ var _this = this;
199
+ var newEdges = new Map();
200
+ this.edgesConfig = this.data.edges;
201
+ this.edgesConfig.forEach(function (edgeConfig) {
202
+ var oldEdge = _this.edges.get(edgeConfig.id);
203
+ var edge = _this.createEdge(edgeConfig, oldEdge);
204
+ if (_.isNil(edge))
205
+ return;
206
+ if (edge === oldEdge) {
207
+ edge.setConfig(edgeConfig);
208
+ edge.update();
209
+ }
210
+ else {
211
+ edge.render(edgeConfig, edge.container);
212
+ }
213
+ _this.edges.delete(edgeConfig.id);
214
+ newEdges.set(edge.id, edge);
215
+ });
216
+ // 销毁已经移除的边
217
+ this.edges.forEach(function (edge) {
218
+ // 可能已经移除了,但这里额外调用一次确保边从画布移除
219
+ _this.rootGroup.removeChild(edge.container);
220
+ });
221
+ this.edges = newEdges;
222
+ };
223
+ Graph.prototype.createNode = function (nodeConfig, oldNode) {
224
+ var nodeType = nodeConfig.type;
225
+ var nodeConstructor = getNodeConstructor(nodeType, this.nodeTypeMap, this.mode);
226
+ if (!nodeConstructor) {
227
+ console.error("node type '".concat(nodeType, "' is not registered"));
228
+ return null;
229
+ }
230
+ // TODO: old node暂时不会有值,需要测试
231
+ if ((oldNode === null || oldNode === void 0 ? void 0 : oldNode.constructor) === nodeConstructor) {
232
+ return oldNode;
233
+ }
234
+ var node = new nodeConstructor(this, nodeConfig);
235
+ this.rootGroup.addChild(node.container);
236
+ return node;
237
+ };
238
+ Graph.prototype.createEdge = function (edgeConfig, oldEdge) {
239
+ var edgeType = edgeConfig.type;
240
+ var edgeConstructor = getEdgeConstructor(edgeType, this.edgeTypeMap, this.mode);
241
+ if (!edgeConstructor) {
242
+ console.error("edge type '".concat(edgeType, "' is not registered"));
243
+ return null;
244
+ }
245
+ // 如果旧边存在且构造函数相同,则复用
246
+ if ((oldEdge === null || oldEdge === void 0 ? void 0 : oldEdge.constructor) === edgeConstructor) {
247
+ return oldEdge;
248
+ }
249
+ var edge = new edgeConstructor(this, edgeConfig);
250
+ this.rootGroup.addChild(edge.container);
251
+ return edge;
252
+ };
253
+ Graph.prototype.updateNodesPos = function (positions) {
254
+ var _this = this;
255
+ positions.forEach(function (p) {
256
+ var node = _this.nodes.get(p.id);
257
+ if (node)
258
+ node.setPosition(p.pos);
259
+ });
260
+ };
261
+ Graph.prototype.updateEdgesPos = function (positions) {
262
+ var _this = this;
263
+ positions.forEach(function (p) {
264
+ var edge = _this.edgesConfig.find(function (e) { return e.id === p.source + '___' + p.target; });
265
+ if (edge)
266
+ edge.points = p.points;
267
+ });
268
+ };
269
+ Graph.prototype.getNodes = function () {
270
+ return this.nodes;
271
+ };
272
+ Graph.prototype.getNodeConfigById = function (id) {
273
+ return this.fullNodesMap.get(id);
274
+ };
275
+ Graph.prototype.getNodeById = function (id) {
276
+ return this.nodes.get(id);
277
+ };
278
+ Graph.prototype.getEdgeById = function (id) {
279
+ return this.edges.get(id);
280
+ };
281
+ // TODO: 类型定义,查询缓存
282
+ Graph.prototype.getAnchorNodeById = function (id) {
283
+ var node = this.nodes.get(id);
284
+ if (!node) {
285
+ this.nodes.forEach(function (n) {
286
+ var _a;
287
+ // 这里node是TableNode。。但TableNode在ink-lineage定义,不应该依赖TableNode的结构
288
+ (_a = n.relatedColumns) === null || _a === void 0 ? void 0 : _a.forEach(function (column) {
289
+ if (column.id === id) {
290
+ node = column;
291
+ }
292
+ });
293
+ });
294
+ }
295
+ if (!node) {
296
+ this.nodes.forEach(function (n) {
297
+ var _a;
298
+ (_a = n.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {
299
+ if (child.id === id) {
300
+ node = child;
301
+ }
302
+ });
303
+ });
304
+ }
305
+ if (!node) {
306
+ console.error("node ".concat(id, " is not found"));
307
+ }
308
+ return node;
309
+ };
310
+ Graph.prototype.getElementById = function (id) {
311
+ return this.canvas.getDisplayObjectById(id);
312
+ };
313
+ // TODO: check包围盒坐标
314
+ Graph.prototype.getBounds = function () {
315
+ return this.rootGroup.getBoundingRect();
316
+ };
317
+ Graph.prototype.on = function (type, listener, capture) {
318
+ var _a;
319
+ if (type.includes(':')) {
320
+ this.emitter.on(type, listener);
321
+ }
322
+ else {
323
+ (_a = this.canvas) === null || _a === void 0 ? void 0 : _a.on(type, listener, capture);
324
+ }
325
+ };
326
+ Graph.prototype.emit = function (type) {
327
+ this.emitter.emit(type);
328
+ };
329
+ Graph.prototype.destroy = function () {
330
+ this.canvas.destroy();
331
+ this.pluginManager.destroy();
332
+ };
333
+ Graph.prototype.getTranslation = function () {
334
+ var _a = this.canvas.getTranslation(), x = _a.x, y = _a.y;
335
+ return [x, y];
336
+ };
337
+ Graph.prototype.getZoom = function () {
338
+ return this.canvas.getZoom();
339
+ };
340
+ Graph.prototype.setZoom = function (zoom) {
341
+ this.canvas.setZoom(zoom);
342
+ this.onTransformChange();
343
+ };
344
+ Graph.prototype.resetPosition = function () {
345
+ var _a;
346
+ if (this.mode === 'NORMAL') {
347
+ (_a = this.canvas) === null || _a === void 0 ? void 0 : _a.setTranslation(0, 0);
348
+ }
349
+ };
350
+ Graph.prototype.getWidth = function () {
351
+ var _a, _b;
352
+ return (_b = (_a = this.canvas) === null || _a === void 0 ? void 0 : _a.getSize()) === null || _b === void 0 ? void 0 : _b.width;
353
+ };
354
+ Graph.prototype.getHeight = function () {
355
+ var _a, _b;
356
+ return (_b = (_a = this.canvas) === null || _a === void 0 ? void 0 : _a.getSize()) === null || _b === void 0 ? void 0 : _b.height;
357
+ };
358
+ /** 相对当前位置移动 */
359
+ Graph.prototype.translate = function (dx, dy) {
360
+ var _a;
361
+ (_a = this.canvas) === null || _a === void 0 ? void 0 : _a.translate(dx, dy);
362
+ this.onTransformChange();
363
+ };
364
+ Graph.prototype.onTransformChange = function () {
365
+ this.emitter.emit(GRAPH_EVENTS.TRANSFORM_CHANGE);
366
+ };
367
+ Graph.prototype.setMinimapVisible = function (visible) {
368
+ var _a;
369
+ if (visible === void 0) { visible = true; }
370
+ (_a = this.minimap) === null || _a === void 0 ? void 0 : _a.setVisible(visible);
371
+ };
372
+ Graph.prototype.moveTargetToCenter = function (nodeId) {
373
+ if (!nodeId)
374
+ return;
375
+ var node = this.data.nodes.find(function (n) { return n.id === nodeId; });
376
+ if (!node) {
377
+ console.error("node ".concat(nodeId, " is not found"));
378
+ return;
379
+ }
380
+ // move to center
381
+ var _a = node.position, x = _a.x, y = _a.y;
382
+ var _b = node.style, height = _b.height, width = _b.width;
383
+ this.resetPosition();
384
+ var viewportBox = this.canvas.getViewportBox();
385
+ var viewportCenterX = viewportBox.x + viewportBox.width / 2;
386
+ var viewportCenterY = viewportBox.y + viewportBox.height / 2;
387
+ this.translate(viewportCenterX - (x + width / 2), viewportCenterY - (y + height / 2));
388
+ };
389
+ return Graph;
390
+ }());
391
+ export { Graph };
392
+ //# sourceMappingURL=Graph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Graph.js","sourceRoot":"","sources":["../../src/graph/Graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ import { IGraph, IGraphConfig } from '../types/Graph';
2
+ import { IBaseNodeConfig, NodeBaseCtor } from '../types/Node';
3
+ import { EdgeBaseCtor, IBaseEdgeConfig } from '../types/Edge';
4
+ import { LayoutBaseCtor } from '../types/Layout';
5
+ import { BaseLayout } from '../layout/BaseLayout';
6
+ import EventEmitter from 'eventemitter3';
7
+ import { Canvas, Group, InkEventHandler } from 'ink-new';
8
+ import { PluginManager } from '../manager';
9
+ export declare class TreeGraph<NodeConfig extends IBaseNodeConfig = IBaseNodeConfig, EdgeConfig extends IBaseEdgeConfig = IBaseEdgeConfig> implements IGraph<NodeConfig, EdgeConfig> {
10
+ private _config;
11
+ emitter: EventEmitter;
12
+ canvas: Canvas;
13
+ layoutIns: BaseLayout;
14
+ pluginManager: PluginManager;
15
+ nodeTypeMap: Map<string, NodeBaseCtor<NodeConfig>>;
16
+ edgeTypeMap: Map<string, EdgeBaseCtor<EdgeConfig>>;
17
+ layoutTypeMap: Map<string, LayoutBaseCtor>;
18
+ rootGroup: Group;
19
+ nodesConfig: NodeConfig;
20
+ edgesConfig: EdgeConfig[];
21
+ nodes: Map<any, any>;
22
+ edges: Map<any, any>;
23
+ constructor(cfg: IGraphConfig);
24
+ initCanvas(): void;
25
+ initNodes(): void;
26
+ /**
27
+ * 定义内置的边类型
28
+ */
29
+ initEdges(): void;
30
+ initLayout(): void;
31
+ initPlugins(): void;
32
+ getConfig(): IGraphConfig;
33
+ registerNode(type: string, node: any): void;
34
+ registerEdge(type: string, edge: any): void;
35
+ registerLayout(type: string, layout: any): void;
36
+ setNodes(nodesConfig: NodeConfig): void;
37
+ setEdges(edgesConfig: EdgeConfig[]): void;
38
+ layout(): void;
39
+ render(): void;
40
+ update(): void;
41
+ renderNodes(): void;
42
+ renderEdges(): void;
43
+ updateNodes(): void;
44
+ updateEdges(): void;
45
+ createNode(nodeConfig: NodeConfig): import("../components").BaseNode<IBaseNodeConfig>;
46
+ createEdge(edgeConfig: EdgeConfig): import("../components").BaseEdge;
47
+ updateNodesPos(rootNode: any): void;
48
+ updateEdgesPos(rootNode: any): void;
49
+ getNodes(): Map<any, any>;
50
+ getNodeById(id: string): any;
51
+ getAnchorNodeById(id: string): any;
52
+ getElementById(id: string): import("ink-new").DisplayObject<import("ink-new").DisplayObjectOptions<import("ink-new").DisplayObjectStyle>>;
53
+ on(type: string, listener: InkEventHandler | ((...args: any[]) => void), capture?: boolean): void;
54
+ destroy(): void;
55
+ getTranslation(): {
56
+ x: number;
57
+ y: number;
58
+ };
59
+ getZoom(): number;
60
+ resetPosition(): void;
61
+ getWidth(): number;
62
+ getHeight(): number;
63
+ translate(x: number, y: number): void;
64
+ }
65
+ //# sourceMappingURL=TreeGraph.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeGraph.d.ts","sourceRoot":"","sources":["../../src/graph/TreeGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAA4B,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAW3C,qBAAa,SAAS,CACpB,UAAU,SAAS,eAAe,GAAG,eAAe,EACpD,UAAU,SAAS,eAAe,GAAG,eAAe,CACpD,YAAW,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC;IAGzC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,EAAE,YAAY,CAAsB;IAE3C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,UAAU,CAAC;IAEtB,aAAa,EAAE,aAAa,CAAC;IAE7B,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAa;IAC/D,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAa;IAC/D,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAa;IAEvD,SAAS,EAAE,KAAK,CAAC;IAEjB,WAAW,EAAE,UAAU,CAAC;IACxB,WAAW,EAAE,UAAU,EAAE,CAAC;IAE1B,KAAK,gBAAa;IAClB,KAAK,gBAAa;gBAEN,GAAG,EAAE,YAAY;IAS7B,UAAU;IA6BV,SAAS;IAKT;;OAEG;IACH,SAAS;IAIT,UAAU;IAKV,WAAW;IAQX,SAAS;IAIT,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAKpC,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;IAKpC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;IAIxC,QAAQ,CAAC,WAAW,EAAE,UAAU;IAKhC,QAAQ,CAAC,WAAW,EAAE,UAAU,EAAE;IAIlC,MAAM;IAgBN,MAAM;IAaN,MAAM;IAMN,WAAW;IAwBX,WAAW;IAaX,WAAW;IAUX,WAAW;IAEX,UAAU,CAAC,UAAU,EAAE,UAAU;IAcjC,UAAU,CAAC,UAAU,EAAE,UAAU;IAYjC,cAAc,CAAC,QAAQ,EAAE,GAAG;IAkB5B,cAAc,CAAC,QAAQ,EAAE,GAAG;IAW5B,QAAQ;IAIR,WAAW,CAAC,EAAE,EAAE,MAAM;IAItB,iBAAiB,CAAC,EAAE,EAAE,MAAM;IAgB5B,cAAc,CAAC,EAAE,EAAE,MAAM;IAIzB,EAAE,CACA,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,EACtD,OAAO,CAAC,EAAE,OAAO;IASnB,OAAO;IAKP,cAAc;;;;IAId,OAAO;IAIP,aAAa;IAIb,QAAQ;IAIR,SAAS;IAIT,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAG/B"}