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,308 @@
1
+ import { __read, __values } from "tslib";
2
+ import _ from 'lodash';
3
+ import { groupNodesByEdgesAndDirection } from '../utils';
4
+ import { EDirection } from '../types';
5
+ import { DOWNGRADE_TABLE_HEADER_HEIGHT } from '../constant/lineage';
6
+ var groupedNodesArr = [];
7
+ export function BigLayout(nodes, edges, canvasDomRoot, options) {
8
+ var e_1, _a, e_2, _b, e_3, _c;
9
+ var _d;
10
+ var _e = options || {}, _f = _e.shouldGroupNodes, shouldGroupNodes = _f === void 0 ? true : _f, _g = _e.sortConfig, sortConfig = _g === void 0 ? [] : _g, mode = _e.mode;
11
+ // get start node index
12
+ var startNodeIndex = nodes.findIndex(function (node) { return node.isStartNode; });
13
+ if (startNodeIndex < 0)
14
+ return;
15
+ // get start node config
16
+ var startNode = nodes[startNodeIndex];
17
+ if (!startNode)
18
+ return;
19
+ // 【性能优化】预建立节点索引Map,避免重复的find操作
20
+ var nodeMap = new Map();
21
+ nodes.forEach(function (node) {
22
+ nodeMap.set(node.id, node);
23
+ });
24
+ if (shouldGroupNodes) {
25
+ var nodesConfigMap_1 = new Map();
26
+ nodes.forEach(function (n) {
27
+ var _a;
28
+ nodesConfigMap_1.set(n.id, n);
29
+ (_a = n.relatedColumns) === null || _a === void 0 ? void 0 : _a.forEach(function (c) {
30
+ nodesConfigMap_1.set(c.id, c);
31
+ });
32
+ });
33
+ // get input group data
34
+ // 对上游节点进行分层,eg: {sourceNode1: -1}, {sourceNode2: -1} ... {startNode: 0}
35
+ var inputGroupedData = groupNodesByEdgesAndDirection(startNode, nodesConfigMap_1, edges, EDirection.INPUT);
36
+ // get output group data
37
+ // 对下游节点进行分层 eg: {startNode: 0} ... {targetNode1: 1}, {targetNode2: 1}
38
+ var outputGroupedData = groupNodesByEdgesAndDirection(startNode, nodesConfigMap_1, edges, EDirection.OUTPUT);
39
+ if (!inputGroupedData && !outputGroupedData)
40
+ return;
41
+ var inputGroupNodes = inputGroupedData.groupedNodes;
42
+ var outputGroupNodes = outputGroupedData.groupedNodes;
43
+ // 两个map合并
44
+ var groupedNodes = new Map();
45
+ if (inputGroupNodes) {
46
+ try {
47
+ for (var inputGroupNodes_1 = __values(inputGroupNodes), inputGroupNodes_1_1 = inputGroupNodes_1.next(); !inputGroupNodes_1_1.done; inputGroupNodes_1_1 = inputGroupNodes_1.next()) {
48
+ var _h = __read(inputGroupNodes_1_1.value, 2), key = _h[0], value = _h[1];
49
+ if (groupedNodes.has(key))
50
+ continue;
51
+ groupedNodes.set(key, value);
52
+ }
53
+ }
54
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
55
+ finally {
56
+ try {
57
+ if (inputGroupNodes_1_1 && !inputGroupNodes_1_1.done && (_a = inputGroupNodes_1.return)) _a.call(inputGroupNodes_1);
58
+ }
59
+ finally { if (e_1) throw e_1.error; }
60
+ }
61
+ }
62
+ if (outputGroupNodes) {
63
+ try {
64
+ for (var outputGroupNodes_1 = __values(outputGroupNodes), outputGroupNodes_1_1 = outputGroupNodes_1.next(); !outputGroupNodes_1_1.done; outputGroupNodes_1_1 = outputGroupNodes_1.next()) {
65
+ var _j = __read(outputGroupNodes_1_1.value, 2), key = _j[0], value = _j[1];
66
+ if (groupedNodes.has(key))
67
+ continue;
68
+ groupedNodes.set(key, value);
69
+ }
70
+ }
71
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
72
+ finally {
73
+ try {
74
+ if (outputGroupNodes_1_1 && !outputGroupNodes_1_1.done && (_b = outputGroupNodes_1.return)) _b.call(outputGroupNodes_1);
75
+ }
76
+ finally { if (e_2) throw e_2.error; }
77
+ }
78
+ }
79
+ if (!groupedNodes)
80
+ return;
81
+ // 根据层级进行分组,eg: {0: [id1, id2, id3], 1: [id4, id5, id6]}
82
+ var groupedMap = new Map();
83
+ try {
84
+ for (var groupedNodes_1 = __values(groupedNodes), groupedNodes_1_1 = groupedNodes_1.next(); !groupedNodes_1_1.done; groupedNodes_1_1 = groupedNodes_1.next()) {
85
+ var _k = __read(groupedNodes_1_1.value, 2), key = _k[0], value = _k[1];
86
+ if (!groupedMap.has(value)) {
87
+ groupedMap.set(value, []);
88
+ }
89
+ groupedMap.get(value).push(key);
90
+ }
91
+ }
92
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
93
+ finally {
94
+ try {
95
+ if (groupedNodes_1_1 && !groupedNodes_1_1.done && (_c = groupedNodes_1.return)) _c.call(groupedNodes_1);
96
+ }
97
+ finally { if (e_3) throw e_3.error; }
98
+ }
99
+ // 根据层级进行排序,eg: [[sourceNode1, sourceNode2], [startNode], [targetNode1, targetNode2]]
100
+ groupedNodesArr = Array.from(groupedMap.entries())
101
+ .sort(function (a, b) { return a[0] - b[0]; })
102
+ .map(function (entry) { return entry[1]; });
103
+ if (sortConfig === null || sortConfig === void 0 ? void 0 : sortConfig.length) {
104
+ sortNodesByCustomRules(nodesConfigMap_1, sortConfig);
105
+ }
106
+ }
107
+ var positions = [];
108
+ var OFFSET_Y = 100;
109
+ // 【性能优化】预计算每个节点的高度,避免重复计算
110
+ var getNodeHeight = function (nodeId) {
111
+ var _a;
112
+ var node = nodeMap.get(nodeId);
113
+ if (!node)
114
+ return 0;
115
+ if (mode === 'SIMPLE') {
116
+ return DOWNGRADE_TABLE_HEADER_HEIGHT + 20;
117
+ }
118
+ else {
119
+ return (((_a = node.style) === null || _a === void 0 ? void 0 : _a.height) || 0) + 20;
120
+ }
121
+ };
122
+ // 【性能优化】优化布局计算逻辑,减少循环复杂度
123
+ groupedNodesArr.forEach(function (nodeIdGroup, i) {
124
+ var currentY = OFFSET_Y;
125
+ nodeIdGroup.forEach(function (nodeId) {
126
+ var _a;
127
+ var currNode = nodeMap.get(nodeId);
128
+ if (!currNode)
129
+ return;
130
+ var widthTotal = i * (((_a = currNode.style) === null || _a === void 0 ? void 0 : _a.width) || 0) + i * 150;
131
+ positions.push({
132
+ id: nodeId,
133
+ pos: [widthTotal, currentY],
134
+ });
135
+ // 【性能优化】直接累加当前节点高度,避免重复计算之前节点
136
+ currentY += getNodeHeight(nodeId);
137
+ });
138
+ });
139
+ if (!canvasDomRoot) {
140
+ console.error('root is not defined');
141
+ }
142
+ var canvasWidth = canvasDomRoot.clientWidth || 0;
143
+ var canvasHeight = canvasDomRoot.clientHeight || 0;
144
+ if (!_.isNumber(canvasWidth) || !_.isNumber(canvasHeight))
145
+ return;
146
+ var centerX = canvasWidth * 0.5;
147
+ // const centerY = canvasHeight * 0.5;
148
+ var originNodePos = positions.filter(function (pos) { return pos.id === startNode.id; })[0];
149
+ var originNodeWidth = ((_d = startNode.style) === null || _d === void 0 ? void 0 : _d.width) || 0;
150
+ var transformX = centerX - (originNodePos.pos[0] + originNodeWidth * 0.5);
151
+ // const OFFSET_Y = 100;
152
+ // const transformY = centerY - originNodePos.pos[1] - OFFSET_Y;
153
+ var transformY = 0;
154
+ for (var i = 0; i < positions.length; i++) {
155
+ positions[i].pos[0] += transformX;
156
+ positions[i].pos[1] += transformY;
157
+ }
158
+ // 【性能优化】使用Map建立位置索引,避免重复查找
159
+ var positionMap = new Map();
160
+ positions.forEach(function (pos) {
161
+ positionMap.set(pos.id, pos);
162
+ });
163
+ // 更新节点位置
164
+ nodes === null || nodes === void 0 ? void 0 : nodes.forEach(function (node) {
165
+ var pos = positionMap.get(node.id);
166
+ if (pos) {
167
+ node.position.x = pos.pos[0];
168
+ node.position.y = pos.pos[1];
169
+ }
170
+ });
171
+ return {
172
+ nodes: nodes,
173
+ edges: edges,
174
+ };
175
+ }
176
+ export function getNodeHeight(node) {
177
+ var totalHeight = 0;
178
+ var children = node.children, relatedColumns = node.relatedColumns, pagination = node.pagination, isOpen = node.isOpen; // FIXME @yk
179
+ // header height
180
+ var headerHeight = 132;
181
+ totalHeight += headerHeight;
182
+ var visibleRelatedColumns = relatedColumns === null || relatedColumns === void 0 ? void 0 : relatedColumns.filter(function (column) { return column.visible; });
183
+ if (visibleRelatedColumns && visibleRelatedColumns.length > 0) {
184
+ var COLUMN_HEIGHT = 32; // height per column
185
+ var gap = 16;
186
+ var relatedColumnCount = visibleRelatedColumns.length;
187
+ totalHeight += relatedColumnCount * COLUMN_HEIGHT + gap;
188
+ }
189
+ // column height calculation
190
+ if (!isOpen)
191
+ return totalHeight;
192
+ if (children && children.length > 0) {
193
+ var COLUMN_HEIGHT = 32; // height per column
194
+ var itemsPerPage = (pagination === null || pagination === void 0 ? void 0 : pagination.pageSize) || children.length;
195
+ var currentPage = (pagination === null || pagination === void 0 ? void 0 : pagination.pageNum) || 1;
196
+ // Calculate items in current page
197
+ var startIndex = (currentPage - 1) * itemsPerPage;
198
+ var endIndex = Math.min(startIndex + itemsPerPage, children.length);
199
+ var currentPageItems = endIndex - startIndex;
200
+ var columnHeight = currentPageItems * COLUMN_HEIGHT;
201
+ totalHeight += columnHeight;
202
+ }
203
+ // footer height
204
+ var footerHeight = 32;
205
+ totalHeight += footerHeight;
206
+ return totalHeight;
207
+ }
208
+ export function getNodeWidth(node) {
209
+ var _a;
210
+ return ((_a = node.style) === null || _a === void 0 ? void 0 : _a.width) || 0;
211
+ }
212
+ /**
213
+ * 根据自定义规则对节点进行排序
214
+ *
215
+ * @description
216
+ * 对每一层的节点按照指定规则进行排序,支持多个排序规则,每个规则可以:
217
+ * 1. 指定排序字段
218
+ * 2. 设置默认值
219
+ * 3. 自定义转换函数
220
+ *
221
+ * @example
222
+ * ```typescript
223
+ * // 按照类型和名称排序
224
+ * const rules = [
225
+ * {
226
+ * field: 'data.type',
227
+ * transform: (value) => orderList?.get(value) ?? Number.MAX_SAFE_INTEGER
228
+ * },
229
+ * {
230
+ * field: 'data.name',
231
+ * transform: (value) => String(value || '').toLowerCase(),
232
+ * defaultValue: ''
233
+ * }
234
+ * ];
235
+ * sortNodesByCustomRules(nodesConfigMap, rules);
236
+ * ```
237
+ *
238
+ * @param nodesConfigMap - 节点配置映射表,key 为节点 ID
239
+ * @param rules - 排序规则数组,按照数组顺序依次排序
240
+ * @returns void - 直接修改全局的 sortedGroup
241
+ */
242
+ export function sortNodesByCustomRules(nodesConfigMap, rules) {
243
+ // 【性能优化】预处理排序键值,避免在排序过程中重复计算
244
+ var sortKeyCache = new Map();
245
+ // 对每个节点组应用排序规则
246
+ groupedNodesArr = groupedNodesArr.map(function (nodeIdGroup) {
247
+ // 为当前组的每个节点预计算排序键值
248
+ nodeIdGroup.forEach(function (nodeId) {
249
+ if (!sortKeyCache.has(nodeId)) {
250
+ var sortKeys = rules.map(function (_a) {
251
+ var _b;
252
+ var field = _a.field, defaultValue = _a.defaultValue, transform = _a.transform;
253
+ var nodeConfig = nodesConfigMap.get(nodeId);
254
+ if (!nodeConfig)
255
+ return defaultValue;
256
+ // 直接访问属性路径,避免使用lodash.get的开销
257
+ var value = (_b = getNestedValue(nodeConfig, field)) !== null && _b !== void 0 ? _b : defaultValue;
258
+ return transform ? transform(value) : value;
259
+ });
260
+ sortKeyCache.set(nodeId, sortKeys);
261
+ }
262
+ });
263
+ // 使用预计算的排序键值进行排序
264
+ return nodeIdGroup.slice().sort(function (a, b) {
265
+ var keysA = sortKeyCache.get(a) || [];
266
+ var keysB = sortKeyCache.get(b) || [];
267
+ for (var i = 0; i < rules.length; i++) {
268
+ var valueA = keysA[i];
269
+ var valueB = keysB[i];
270
+ if (valueA < valueB)
271
+ return -1;
272
+ if (valueA > valueB)
273
+ return 1;
274
+ }
275
+ return 0;
276
+ });
277
+ });
278
+ }
279
+ /**
280
+ * 【性能优化】高效的嵌套属性访问函数,替代lodash.get
281
+ * @param obj 对象
282
+ * @param path 属性路径,如 'data.type'
283
+ * @returns 属性值
284
+ */
285
+ function getNestedValue(obj, path) {
286
+ var e_4, _a;
287
+ if (!obj || !path)
288
+ return undefined;
289
+ var keys = path.split('.');
290
+ var result = obj;
291
+ try {
292
+ for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
293
+ var key = keys_1_1.value;
294
+ if (result == null)
295
+ return undefined;
296
+ result = result[key];
297
+ }
298
+ }
299
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
300
+ finally {
301
+ try {
302
+ if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
303
+ }
304
+ finally { if (e_4) throw e_4.error; }
305
+ }
306
+ return result;
307
+ }
308
+ //# sourceMappingURL=BigLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BigLayout.js","sourceRoot":"","sources":["../../src/layout/BigLayout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { BaseLayout } from './BaseLayout';
2
+ export declare class DagreLayout extends BaseLayout {
3
+ type: string;
4
+ run(): void;
5
+ }
6
+ //# sourceMappingURL=Dagre.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dagre.d.ts","sourceRoot":"","sources":["../../src/layout/Dagre.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK1C,qBAAa,WAAY,SAAQ,UAAU;IACzC,IAAI,SAAkB;IAEtB,GAAG;CA+FJ"}
@@ -0,0 +1,97 @@
1
+ import { __extends, __read, __spreadArray } from "tslib";
2
+ import { vec2 } from 'gl-matrix';
3
+ import { BaseLayout } from './BaseLayout';
4
+ import dagre from 'dagre';
5
+ import _ from 'lodash';
6
+ import { getCanvasCenter } from '../utils/canvas';
7
+ var DagreLayout = /** @class */ (function (_super) {
8
+ __extends(DagreLayout, _super);
9
+ function DagreLayout() {
10
+ var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;
11
+ _this.type = 'LAYOUT_DAGRE';
12
+ return _this;
13
+ }
14
+ DagreLayout.prototype.run = function () {
15
+ var _this = this;
16
+ var nodesConfig = this.graph.nodesConfig.filter(function (cfg) { return cfg.visible; });
17
+ var edgesConfig = this.graph.edgesConfig.filter(function (cfg) {
18
+ return cfg.visible &&
19
+ _.some(nodesConfig, { id: cfg.source }) &&
20
+ _.some(nodesConfig, { id: cfg.target });
21
+ });
22
+ var g = new dagre.graphlib.Graph();
23
+ g.setDefaultEdgeLabel(function () { return ({}); });
24
+ var layout = this.graph.getConfig().layout;
25
+ g.setGraph({
26
+ rankdir: (layout === null || layout === void 0 ? void 0 : layout.rankdir) || 'TB',
27
+ ranksep: (layout === null || layout === void 0 ? void 0 : layout.ranksep) || 160,
28
+ nodesep: (layout === null || layout === void 0 ? void 0 : layout.nodesep) || 60,
29
+ });
30
+ var startNode = null;
31
+ nodesConfig.forEach(function (nodeCfg) {
32
+ var currNode = _this.graph.getNodeById(nodeCfg.id);
33
+ if (!currNode)
34
+ return;
35
+ g.setNode(currNode.id, {
36
+ width: currNode.getBBox().width, // TODO 改由node自身提供相应的方法 @yunke
37
+ height: currNode.getBBox().height, // TODO 改由node自身提供相应的方法 @yunke
38
+ });
39
+ if (nodeCfg.isStartNode) {
40
+ startNode = nodeCfg;
41
+ }
42
+ });
43
+ edgesConfig.forEach(function (edgeCfg) {
44
+ var _a, _b;
45
+ // 过滤掉间接边,间接边不参与布局
46
+ if ((layout === null || layout === void 0 ? void 0 : layout.excludeIndirectEdges) &&
47
+ ((_b = (_a = edgeCfg.data) === null || _a === void 0 ? void 0 : _a.relationTypeCode) === null || _b === void 0 ? void 0 : _b.includes('Indirect')) &&
48
+ edgeCfg.relationType !== 'ALL') {
49
+ return; // FIXME: @yk 暴露边间接或直接类型给外部使用
50
+ }
51
+ g.setEdge(edgeCfg.source, edgeCfg.target);
52
+ });
53
+ dagre.layout(g);
54
+ // 将startNode放到canvas中心
55
+ var transformX = 0;
56
+ var transformY = 0;
57
+ if (startNode === null || startNode === void 0 ? void 0 : startNode.id) {
58
+ var centerPos = getCanvasCenter(this.graph.canvas) || {
59
+ centerX: 0,
60
+ centerY: 0,
61
+ };
62
+ var nodePos = g.node(startNode.id);
63
+ if (nodePos && centerPos) {
64
+ transformX = centerPos.centerX - nodePos.x;
65
+ transformY = centerPos.centerY - nodePos.y;
66
+ }
67
+ }
68
+ var nodesPosition = g.nodes().map(function (nodeId) {
69
+ var nodePos = g.node(nodeId);
70
+ if (nodePos) {
71
+ var newPos = vec2.fromValues(nodePos.x - nodePos.width / 2 + transformX, nodePos.y - nodePos.height / 2 + transformY);
72
+ return {
73
+ id: nodeId,
74
+ pos: newPos,
75
+ };
76
+ }
77
+ });
78
+ var edgesPosition = g.edges().map(function (edge) {
79
+ var edgePos = g.edge(edge);
80
+ if (edgePos) {
81
+ return {
82
+ source: edge.v,
83
+ target: edge.w,
84
+ points: edgePos.points.map(function (item) { return ({
85
+ x: item.x + transformX,
86
+ y: item.y + transformY,
87
+ }); }),
88
+ };
89
+ }
90
+ });
91
+ this.graph.updateNodesPos(nodesPosition);
92
+ this.graph.updateEdgesPos(edgesPosition);
93
+ };
94
+ return DagreLayout;
95
+ }(BaseLayout));
96
+ export { DagreLayout };
97
+ //# sourceMappingURL=Dagre.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dagre.js","sourceRoot":"","sources":["../../src/layout/Dagre.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { BaseLayout } from './BaseLayout';
2
+ export declare class HierarchyLayout extends BaseLayout {
3
+ type: string;
4
+ run(): void;
5
+ updateNodePosition(rootNode: any, transformX: any, transformY: any): void;
6
+ }
7
+ //# sourceMappingURL=HierarchyLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HierarchyLayout.d.ts","sourceRoot":"","sources":["../../src/layout/HierarchyLayout.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,IAAI,SAAsB;IAE1B,GAAG;IAiDH,kBAAkB,CAAC,QAAQ,KAAA,EAAE,UAAU,KAAA,EAAE,UAAU,KAAA;CASpD"}
@@ -0,0 +1,66 @@
1
+ import { __extends, __read, __spreadArray } from "tslib";
2
+ import { getCanvasCenter } from '../utils/canvas';
3
+ import { BaseLayout } from './BaseLayout';
4
+ import Hierarchy from '@antv/hierarchy';
5
+ var HierarchyLayout = /** @class */ (function (_super) {
6
+ __extends(HierarchyLayout, _super);
7
+ function HierarchyLayout() {
8
+ var _this = _super.apply(this, __spreadArray([], __read(arguments), false)) || this;
9
+ _this.type = 'layout_hierarchy';
10
+ return _this;
11
+ }
12
+ HierarchyLayout.prototype.run = function () {
13
+ var layout = this.graph.getConfig().layout;
14
+ var _a = layout.defaultTranslateY, defaultTranslateY = _a === void 0 ? 150 : _a;
15
+ var rootNode = Hierarchy.compactBox(this.graph.nodesConfig, {
16
+ direction: (layout === null || layout === void 0 ? void 0 : layout.direction) || 'TB',
17
+ getId: (layout === null || layout === void 0 ? void 0 : layout.getId) ||
18
+ function getId(d) {
19
+ return d.id;
20
+ },
21
+ getHeight: (layout === null || layout === void 0 ? void 0 : layout.getHight) ||
22
+ function getHeight(d) {
23
+ var _a;
24
+ return ((_a = d.style) === null || _a === void 0 ? void 0 : _a.height) || 64;
25
+ },
26
+ getWidth: (layout === null || layout === void 0 ? void 0 : layout.getWidth) ||
27
+ function getWidth(d) {
28
+ var _a;
29
+ return ((_a = d.style) === null || _a === void 0 ? void 0 : _a.width) || 200;
30
+ },
31
+ getVGap: (layout === null || layout === void 0 ? void 0 : layout.getVGap) ||
32
+ function getVGap() {
33
+ return 30;
34
+ },
35
+ getHGap: (layout === null || layout === void 0 ? void 0 : layout.getHGap) ||
36
+ function getHGap() {
37
+ return 50;
38
+ },
39
+ });
40
+ // 将startNode放到canvas中心
41
+ var centerPos = getCanvasCenter(this.graph.canvas) || {
42
+ centerX: 0,
43
+ centerY: 0,
44
+ };
45
+ var transformX = centerPos.centerX - rootNode.x - rootNode.width / 2;
46
+ var transformY = Number(defaultTranslateY) - rootNode.y;
47
+ this.updateNodePosition(rootNode, transformX, transformY);
48
+ this.graph.updateNodesPos(rootNode);
49
+ this.graph.updateEdgesPos(rootNode);
50
+ };
51
+ // 遍历rootNode这个tree,把每一层的x,y都加上transformX,transformY
52
+ HierarchyLayout.prototype.updateNodePosition = function (rootNode, transformX, transformY) {
53
+ var _this = this;
54
+ var _a;
55
+ if (!rootNode)
56
+ return;
57
+ rootNode.x += transformX;
58
+ rootNode.y += transformY;
59
+ (_a = rootNode === null || rootNode === void 0 ? void 0 : rootNode.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {
60
+ _this.updateNodePosition(child, transformX, transformY);
61
+ });
62
+ };
63
+ return HierarchyLayout;
64
+ }(BaseLayout));
65
+ export { HierarchyLayout };
66
+ //# sourceMappingURL=HierarchyLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HierarchyLayout.js","sourceRoot":"","sources":["../../src/layout/HierarchyLayout.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,SAAS,MAAM,iBAAiB,CAAC;AAExC;IAAqC,mCAAU;IAA/C;;QACE,UAAI,GAAG,kBAAkB,CAAC;;IA4D5B,CAAC;IA1DC,6BAAG,GAAH;QACU,IAAA,MAAM,GAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,OAA3B,CAA4B;QAClC,IAAA,KAA4B,MAAM,kBAAX,EAAvB,iBAAiB,mBAAG,GAAG,KAAA,CAAY;QAE3C,IAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;YAC5D,SAAS,EAAE,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,KAAI,IAAI;YACpC,KAAK,EACH,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK;gBACb,SAAS,KAAK,CAAC,CAAC;oBACd,OAAO,CAAC,CAAC,EAAE,CAAC;gBACd,CAAC;YACH,SAAS,EACP,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ;gBAChB,SAAS,SAAS,CAAC,CAAC;;oBAClB,OAAO,CAAA,MAAA,CAAC,CAAC,KAAK,0CAAE,MAAM,KAAI,EAAE,CAAC;gBAC/B,CAAC;YACH,QAAQ,EACN,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ;gBAChB,SAAS,QAAQ,CAAC,CAAC;;oBACjB,OAAO,CAAA,MAAA,CAAC,CAAC,KAAK,0CAAE,KAAK,KAAI,GAAG,CAAC;gBAC/B,CAAC;YACH,OAAO,EACL,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO;gBACf,SAAS,OAAO;oBACd,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,OAAO,EACL,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO;gBACf,SAAS,OAAO;oBACd,OAAO,EAAE,CAAC;gBACZ,CAAC;SACJ,CAAC,CAAC;QAEH,uBAAuB;QAEvB,IAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI;YACtD,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;SACX,CAAC;QACF,IAAM,UAAU,GAAG,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC;QACvE,IAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC;QAE1D,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAE1D,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,oDAAoD;IACpD,4CAAkB,GAAlB,UAAmB,QAAQ,EAAE,UAAU,EAAE,UAAU;QAAnD,iBAQC;;QAPC,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,QAAQ,CAAC,CAAC,IAAI,UAAU,CAAC;QACzB,QAAQ,CAAC,CAAC,IAAI,UAAU,CAAC;QAEzB,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,0CAAE,OAAO,CAAC,UAAC,KAAK;YAChC,KAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC;IACH,sBAAC;AAAD,CAAC,AA7DD,CAAqC,UAAU,GA6D9C"}
@@ -0,0 +1,6 @@
1
+ export * from './BaseLayout';
2
+ export * from './ALDLayout';
3
+ export * from './Dagre';
4
+ export * from './HierarchyLayout';
5
+ export * from './BigLayout';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/layout/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './BaseLayout';
2
+ export * from './ALDLayout';
3
+ export * from './Dagre';
4
+ export * from './HierarchyLayout';
5
+ export * from './BigLayout';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/layout/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { IGraph } from '../types';
2
+ import { BasePlugin } from '../types/Plugin';
3
+ export declare class PluginManager {
4
+ private graph;
5
+ private plugins;
6
+ constructor(graph: IGraph);
7
+ register(plugin: BasePlugin): void;
8
+ execute(): void;
9
+ destroy(): void;
10
+ }
11
+ //# sourceMappingURL=PluginManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginManager.d.ts","sourceRoot":"","sources":["../../src/manager/PluginManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,aAAa;IAGZ,OAAO,CAAC,KAAK;IAFzB,OAAO,CAAC,OAAO,CAAsC;gBAEjC,KAAK,EAAE,MAAM;IAEjC,QAAQ,CAAC,MAAM,EAAE,UAAU;IAM3B,OAAO;IAMP,OAAO;CAKR"}
@@ -0,0 +1,25 @@
1
+ var PluginManager = /** @class */ (function () {
2
+ function PluginManager(graph) {
3
+ this.graph = graph;
4
+ this.plugins = new Map();
5
+ }
6
+ PluginManager.prototype.register = function (plugin) {
7
+ if (!this.plugins.has(plugin.name)) {
8
+ this.plugins.set(plugin.name, plugin);
9
+ }
10
+ };
11
+ PluginManager.prototype.execute = function () {
12
+ var _this = this;
13
+ this.plugins.forEach(function (plugin) {
14
+ plugin.apply(_this.graph);
15
+ });
16
+ };
17
+ PluginManager.prototype.destroy = function () {
18
+ this.plugins.forEach(function (plugin) {
19
+ plugin.destroy();
20
+ });
21
+ };
22
+ return PluginManager;
23
+ }());
24
+ export { PluginManager };
25
+ //# sourceMappingURL=PluginManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../src/manager/PluginManager.ts"],"names":[],"mappings":"AAGA;IAGE,uBAAoB,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QAFzB,YAAO,GAA4B,IAAI,GAAG,EAAE,CAAC;IAEjB,CAAC;IAErC,gCAAQ,GAAR,UAAS,MAAkB;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,+BAAO,GAAP;QAAA,iBAIC;QAHC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,MAAM;YAC1B,MAAM,CAAC,KAAK,CAAC,KAAI,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+BAAO,GAAP;QACE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAC,MAAM;YAC1B,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IACH,oBAAC;AAAD,CAAC,AAtBD,IAsBC"}
@@ -0,0 +1,2 @@
1
+ export * from "./PluginManager";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manager/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./PluginManager";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/manager/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}