@aloudata/ink-lineage 0.0.1-beta.1 → 0.0.1-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/dist/assets/big/dataSourceTypeIcon.d.ts +23 -0
  2. package/dist/assets/big/dataSourceTypeIcon.d.ts.map +1 -0
  3. package/dist/assets/big/dataSourceTypeIcon.js +23 -0
  4. package/dist/assets/big/dataSourceTypeIcon.js.map +1 -0
  5. package/dist/assets/big/entityType.d.ts +2 -0
  6. package/dist/assets/big/entityType.d.ts.map +1 -0
  7. package/dist/assets/big/entityType.js +2 -0
  8. package/dist/assets/big/entityType.js.map +1 -0
  9. package/dist/assets/big/index.d.ts +6 -0
  10. package/dist/assets/big/index.d.ts.map +1 -0
  11. package/{src/assets/big/index.ts → dist/assets/big/index.js} +2 -1
  12. package/dist/assets/big/index.js.map +1 -0
  13. package/dist/assets/big/lineageIcon.d.ts +14 -0
  14. package/dist/assets/big/lineageIcon.d.ts.map +1 -0
  15. package/dist/assets/big/lineageIcon.js +14 -0
  16. package/dist/assets/big/lineageIcon.js.map +1 -0
  17. package/dist/assets/big/tableTypeIcon.d.ts +7 -0
  18. package/dist/assets/big/tableTypeIcon.d.ts.map +1 -0
  19. package/dist/assets/big/tableTypeIcon.js +7 -0
  20. package/dist/assets/big/tableTypeIcon.js.map +1 -0
  21. package/dist/assets/big/tipIcon.d.ts +2 -0
  22. package/dist/assets/big/tipIcon.d.ts.map +1 -0
  23. package/dist/assets/big/tipIcon.js +2 -0
  24. package/dist/assets/big/tipIcon.js.map +1 -0
  25. package/dist/assets/index.d.ts +5 -0
  26. package/dist/assets/index.d.ts.map +1 -0
  27. package/dist/assets/index.js +8 -0
  28. package/dist/assets/index.js.map +1 -0
  29. package/dist/components/Edges/DefaultEdge.d.ts +26 -0
  30. package/dist/components/Edges/DefaultEdge.d.ts.map +1 -0
  31. package/dist/components/Edges/DefaultEdge.js +145 -0
  32. package/dist/components/Edges/DefaultEdge.js.map +1 -0
  33. package/dist/components/Edges/FoldEdge.d.ts +9 -0
  34. package/dist/components/Edges/FoldEdge.d.ts.map +1 -0
  35. package/dist/components/Edges/FoldEdge.js +77 -0
  36. package/dist/components/Edges/FoldEdge.js.map +1 -0
  37. package/dist/components/Edges/LineageEdge.d.ts +7 -0
  38. package/dist/components/Edges/LineageEdge.d.ts.map +1 -0
  39. package/dist/components/Edges/LineageEdge.js +20 -0
  40. package/dist/components/Edges/LineageEdge.js.map +1 -0
  41. package/dist/components/Edges/index.d.ts +4 -0
  42. package/dist/components/Edges/index.d.ts.map +1 -0
  43. package/dist/components/Edges/index.js +4 -0
  44. package/dist/components/Edges/index.js.map +1 -0
  45. package/dist/components/Nodes/AssetNode.d.ts +21 -0
  46. package/dist/components/Nodes/AssetNode.d.ts.map +1 -0
  47. package/dist/components/Nodes/AssetNode.js +278 -0
  48. package/dist/components/Nodes/AssetNode.js.map +1 -0
  49. package/dist/components/Nodes/ColumnNode.d.ts +27 -0
  50. package/dist/components/Nodes/ColumnNode.d.ts.map +1 -0
  51. package/dist/components/Nodes/ColumnNode.js +327 -0
  52. package/dist/components/Nodes/ColumnNode.js.map +1 -0
  53. package/dist/components/Nodes/CustomNode.d.ts +10 -0
  54. package/dist/components/Nodes/CustomNode.d.ts.map +1 -0
  55. package/dist/components/Nodes/CustomNode.js +53 -0
  56. package/dist/components/Nodes/CustomNode.js.map +1 -0
  57. package/dist/components/Nodes/DefaultNode.d.ts +29 -0
  58. package/dist/components/Nodes/DefaultNode.d.ts.map +1 -0
  59. package/dist/components/Nodes/DefaultNode.js +162 -0
  60. package/dist/components/Nodes/DefaultNode.js.map +1 -0
  61. package/dist/components/Nodes/TableNode.d.ts +24 -0
  62. package/dist/components/Nodes/TableNode.d.ts.map +1 -0
  63. package/dist/components/Nodes/TableNode.js +384 -0
  64. package/dist/components/Nodes/TableNode.js.map +1 -0
  65. package/dist/components/Nodes/index.d.ts +4 -0
  66. package/dist/components/Nodes/index.d.ts.map +1 -0
  67. package/{src/components/Nodes/index.ts → dist/components/Nodes/index.js} +1 -1
  68. package/dist/components/Nodes/index.js.map +1 -0
  69. package/dist/components/Nodes/task/Column.d.ts +30 -0
  70. package/dist/components/Nodes/task/Column.d.ts.map +1 -0
  71. package/dist/components/Nodes/task/Column.js +222 -0
  72. package/dist/components/Nodes/task/Column.js.map +1 -0
  73. package/dist/components/Nodes/task/CustomNode.d.ts +38 -0
  74. package/dist/components/Nodes/task/CustomNode.d.ts.map +1 -0
  75. package/dist/components/Nodes/task/CustomNode.js +272 -0
  76. package/dist/components/Nodes/task/CustomNode.js.map +1 -0
  77. package/dist/components/Nodes/task/TableNode copy.d.ts +51 -0
  78. package/dist/components/Nodes/task/TableNode copy.d.ts.map +1 -0
  79. package/dist/components/Nodes/task/TableNode copy.js +642 -0
  80. package/dist/components/Nodes/task/TableNode copy.js.map +1 -0
  81. package/dist/components/Nodes/task/TableNode.d.ts +51 -0
  82. package/dist/components/Nodes/task/TableNode.d.ts.map +1 -0
  83. package/dist/components/Nodes/task/TableNode.js +642 -0
  84. package/dist/components/Nodes/task/TableNode.js.map +1 -0
  85. package/dist/components/index.d.ts +3 -0
  86. package/dist/components/index.d.ts.map +1 -0
  87. package/dist/components/index.js +3 -0
  88. package/dist/components/index.js.map +1 -0
  89. package/dist/constant/index.d.ts +2 -0
  90. package/dist/constant/index.d.ts.map +1 -0
  91. package/dist/constant/index.js +2 -0
  92. package/dist/constant/index.js.map +1 -0
  93. package/dist/constant/nodeStyle.d.ts +75 -0
  94. package/dist/constant/nodeStyle.d.ts.map +1 -0
  95. package/dist/constant/nodeStyle.js +111 -0
  96. package/dist/constant/nodeStyle.js.map +1 -0
  97. package/dist/index.d.ts +6 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/{src/index.ts → dist/index.js} +1 -1
  100. package/dist/index.js.map +1 -0
  101. package/dist/manager/BaseLineageManager.d.ts +51 -0
  102. package/dist/manager/BaseLineageManager.d.ts.map +1 -0
  103. package/dist/manager/BaseLineageManager.js +102 -0
  104. package/dist/manager/BaseLineageManager.js.map +1 -0
  105. package/dist/manager/BaseManager.d.ts +7 -0
  106. package/dist/manager/BaseManager.d.ts.map +1 -0
  107. package/dist/manager/BaseManager.js +8 -0
  108. package/dist/manager/BaseManager.js.map +1 -0
  109. package/dist/manager/DataProcessor.d.ts +27 -0
  110. package/dist/manager/DataProcessor.d.ts.map +1 -0
  111. package/dist/manager/DataProcessor.js +581 -0
  112. package/dist/manager/DataProcessor.js.map +1 -0
  113. package/dist/manager/ExpandManager.d.ts +13 -0
  114. package/dist/manager/ExpandManager.d.ts.map +1 -0
  115. package/dist/manager/ExpandManager.js +74 -0
  116. package/dist/manager/ExpandManager.js.map +1 -0
  117. package/dist/manager/FoldLineageManager.d.ts +17 -0
  118. package/dist/manager/FoldLineageManager.d.ts.map +1 -0
  119. package/dist/manager/FoldLineageManager.js +176 -0
  120. package/dist/manager/FoldLineageManager.js.map +1 -0
  121. package/dist/manager/GraphEventManager.d.ts +9 -0
  122. package/dist/manager/GraphEventManager.d.ts.map +1 -0
  123. package/dist/manager/GraphEventManager.js +72 -0
  124. package/dist/manager/GraphEventManager.js.map +1 -0
  125. package/dist/manager/LineageManager.d.ts +116 -0
  126. package/dist/manager/LineageManager.d.ts.map +1 -0
  127. package/dist/manager/LineageManager.js +495 -0
  128. package/dist/manager/LineageManager.js.map +1 -0
  129. package/dist/manager/RightKeyMenuManager.d.ts +21 -0
  130. package/dist/manager/RightKeyMenuManager.d.ts.map +1 -0
  131. package/dist/manager/RightKeyMenuManager.js +67 -0
  132. package/dist/manager/RightKeyMenuManager.js.map +1 -0
  133. package/dist/manager/SearchNodeManager.d.ts +12 -0
  134. package/dist/manager/SearchNodeManager.d.ts.map +1 -0
  135. package/dist/manager/SearchNodeManager.js +101 -0
  136. package/dist/manager/SearchNodeManager.js.map +1 -0
  137. package/dist/manager/ToolbarManager.d.ts +8 -0
  138. package/dist/manager/ToolbarManager.d.ts.map +1 -0
  139. package/dist/manager/ToolbarManager.js +23 -0
  140. package/dist/manager/ToolbarManager.js.map +1 -0
  141. package/dist/manager/index.d.ts +9 -0
  142. package/dist/manager/index.d.ts.map +1 -0
  143. package/{src/manager/index.ts → dist/manager/index.js} +1 -0
  144. package/dist/manager/index.js.map +1 -0
  145. package/dist/manager/nodeManager/AssetEventManager.d.ts +10 -0
  146. package/dist/manager/nodeManager/AssetEventManager.d.ts.map +1 -0
  147. package/dist/manager/nodeManager/AssetEventManager.js +287 -0
  148. package/dist/manager/nodeManager/AssetEventManager.js.map +1 -0
  149. package/dist/manager/nodeManager/BaseEventManager.d.ts +18 -0
  150. package/dist/manager/nodeManager/BaseEventManager.d.ts.map +1 -0
  151. package/dist/manager/nodeManager/BaseEventManager.js +89 -0
  152. package/dist/manager/nodeManager/BaseEventManager.js.map +1 -0
  153. package/dist/manager/nodeManager/ColumnEventManager.d.ts +12 -0
  154. package/dist/manager/nodeManager/ColumnEventManager.d.ts.map +1 -0
  155. package/dist/manager/nodeManager/ColumnEventManager.js +336 -0
  156. package/dist/manager/nodeManager/ColumnEventManager.js.map +1 -0
  157. package/dist/manager/nodeManager/CustomEventManager.d.ts +6 -0
  158. package/dist/manager/nodeManager/CustomEventManager.d.ts.map +1 -0
  159. package/dist/manager/nodeManager/CustomEventManager.js +19 -0
  160. package/dist/manager/nodeManager/CustomEventManager.js.map +1 -0
  161. package/dist/manager/nodeManager/TableEventManager.d.ts +11 -0
  162. package/dist/manager/nodeManager/TableEventManager.d.ts.map +1 -0
  163. package/dist/manager/nodeManager/TableEventManager.js +121 -0
  164. package/dist/manager/nodeManager/TableEventManager.js.map +1 -0
  165. package/dist/manager/nodeManager/index.d.ts +4 -0
  166. package/dist/manager/nodeManager/index.d.ts.map +1 -0
  167. package/{src/manager/nodeManager/index.ts → dist/manager/nodeManager/index.js} +2 -1
  168. package/dist/manager/nodeManager/index.js.map +1 -0
  169. package/dist/manager/task/DataProcessor.d.ts +22 -0
  170. package/dist/manager/task/DataProcessor.d.ts.map +1 -0
  171. package/dist/manager/task/DataProcessor.js +379 -0
  172. package/dist/manager/task/DataProcessor.js.map +1 -0
  173. package/dist/manager/task/GraphEventManager.d.ts +13 -0
  174. package/dist/manager/task/GraphEventManager.d.ts.map +1 -0
  175. package/dist/manager/task/GraphEventManager.js +77 -0
  176. package/dist/manager/task/GraphEventManager.js.map +1 -0
  177. package/dist/manager/task/LineageManager.d.ts +70 -0
  178. package/dist/manager/task/LineageManager.d.ts.map +1 -0
  179. package/dist/manager/task/LineageManager.js +399 -0
  180. package/dist/manager/task/LineageManager.js.map +1 -0
  181. package/dist/manager/task/RightKeyMenuManager.d.ts +44 -0
  182. package/dist/manager/task/RightKeyMenuManager.d.ts.map +1 -0
  183. package/dist/manager/task/RightKeyMenuManager.js +183 -0
  184. package/dist/manager/task/RightKeyMenuManager.js.map +1 -0
  185. package/dist/manager/task/SearchNodeManager.d.ts +12 -0
  186. package/dist/manager/task/SearchNodeManager.d.ts.map +1 -0
  187. package/dist/manager/task/SearchNodeManager.js +100 -0
  188. package/dist/manager/task/SearchNodeManager.js.map +1 -0
  189. package/dist/types/eventEnum.d.ts +45 -0
  190. package/dist/types/eventEnum.d.ts.map +1 -0
  191. package/dist/types/eventEnum.js +48 -0
  192. package/dist/types/eventEnum.js.map +1 -0
  193. package/dist/types/index.d.ts +4 -0
  194. package/dist/types/index.d.ts.map +1 -0
  195. package/dist/types/index.js +4 -0
  196. package/dist/types/index.js.map +1 -0
  197. package/dist/types/manager.d.ts +85 -0
  198. package/dist/types/manager.d.ts.map +1 -0
  199. package/dist/types/manager.js +34 -0
  200. package/dist/types/manager.js.map +1 -0
  201. package/dist/types/node.d.ts +208 -0
  202. package/dist/types/node.d.ts.map +1 -0
  203. package/dist/types/node.js +120 -0
  204. package/dist/types/node.js.map +1 -0
  205. package/dist/utils/foldNode.d.ts +14 -0
  206. package/dist/utils/foldNode.d.ts.map +1 -0
  207. package/dist/utils/foldNode.js +231 -0
  208. package/dist/utils/foldNode.js.map +1 -0
  209. package/dist/utils/getIconByType.d.ts +4 -0
  210. package/dist/utils/getIconByType.d.ts.map +1 -0
  211. package/dist/utils/getIconByType.js +72 -0
  212. package/dist/utils/getIconByType.js.map +1 -0
  213. package/dist/utils/index.d.ts +4 -0
  214. package/dist/utils/index.d.ts.map +1 -0
  215. package/{src/utils/index.ts → dist/utils/index.js} +1 -0
  216. package/dist/utils/index.js.map +1 -0
  217. package/dist/utils/manager.d.ts +5 -0
  218. package/dist/utils/manager.d.ts.map +1 -0
  219. package/dist/utils/manager.js +44 -0
  220. package/dist/utils/manager.js.map +1 -0
  221. package/dist/utils/node.d.ts +29 -0
  222. package/dist/utils/node.d.ts.map +1 -0
  223. package/dist/utils/node.js +286 -0
  224. package/dist/utils/node.js.map +1 -0
  225. package/package.json +9 -7
  226. package/src/assets/big/dataSourceTypeIcon.ts +0 -65
  227. package/src/assets/big/entityType.ts +0 -1
  228. package/src/assets/big/lineageIcon.ts +0 -35
  229. package/src/assets/big/tableTypeIcon.ts +0 -17
  230. package/src/assets/big/tipIcon.ts +0 -1
  231. package/src/assets/index.ts +0 -14
  232. package/src/components/Edges/DefaultEdge.ts +0 -196
  233. package/src/components/Edges/FoldEdge.ts +0 -97
  234. package/src/components/Edges/LineageEdge.ts +0 -24
  235. package/src/components/Edges/index.ts +0 -3
  236. package/src/components/Nodes/AssetNode.ts +0 -438
  237. package/src/components/Nodes/ColumnNode.ts +0 -491
  238. package/src/components/Nodes/CustomNode.ts +0 -63
  239. package/src/components/Nodes/DefaultNode.ts +0 -74
  240. package/src/components/Nodes/DowngradeNode.ts +0 -115
  241. package/src/components/Nodes/TableNode.ts +0 -534
  242. package/src/components/index.ts +0 -2
  243. package/src/constant/index.ts +0 -1
  244. package/src/constant/nodeStyle.ts +0 -141
  245. package/src/manager/BaseManager.ts +0 -20
  246. package/src/manager/DataProcessor.ts +0 -782
  247. package/src/manager/ExpandManager.ts +0 -93
  248. package/src/manager/FoldLineageManager.ts +0 -196
  249. package/src/manager/GraphEventManager.ts +0 -90
  250. package/src/manager/LineageManager.ts +0 -680
  251. package/src/manager/RightKeyMenuManager.ts +0 -114
  252. package/src/manager/SearchNodeManager.ts +0 -188
  253. package/src/manager/ToolbarManager.ts +0 -42
  254. package/src/manager/nodeManager/AssetEventManager.ts +0 -442
  255. package/src/manager/nodeManager/BaseEventManager.ts +0 -68
  256. package/src/manager/nodeManager/ColumnEventManager.ts +0 -467
  257. package/src/manager/nodeManager/CustomEventManager.ts +0 -11
  258. package/src/manager/nodeManager/TableEventManager.ts +0 -87
  259. package/src/types/NodeConfig.ts +0 -69
  260. package/src/types/eventEnum.ts +0 -58
  261. package/src/types/index.ts +0 -3
  262. package/src/types/manager.ts +0 -75
  263. package/src/types/node.ts +0 -246
  264. package/src/utils/downgradeNode.ts +0 -22
  265. package/src/utils/foldNode.ts +0 -345
  266. package/src/utils/getIconByType.ts +0 -104
  267. package/src/utils/node.ts +0 -294
  268. package/tsconfig.json +0 -30
@@ -1,680 +0,0 @@
1
- import { BigLayout, Graph, ISortConfig } from '@aloudata/ink-graph-new';
2
- import { DataProcessor, IParsedGraphData, ExpandManager } from './index';
3
- import {
4
- EDashType,
5
- EDirection,
6
- IColumnConfig,
7
- IContextMenuState,
8
- IEdgeConfig,
9
- IHotspotModalState,
10
- INode,
11
- INodeConfig,
12
- IOverViewBase,
13
- IColResBase,
14
- TDataBase,
15
- } from '../types';
16
- import { getRelatedData } from '../utils';
17
- import { SearchNodeManager, RightKeyMenuManager, FoldLineageManager } from '.';
18
- import _ from 'lodash';
19
- import { ToolbarManager, IToolbarState } from './ToolbarManager';
20
- import EventEmitter from 'eventemitter3';
21
- import { CustomNode, DowngradeNode, TableNode, DefaultEdge } from '../components';
22
- import { DefaultNode } from '../components/Nodes/DefaultNode';
23
- import {
24
- CustomEventManager,
25
- TableEventManager,
26
- ColumnEventManager,
27
- } from './nodeManager';
28
- import {
29
- CUSTOM_NODE,
30
- BASE_NODE,
31
- FOLD_EDGE,
32
- LAYOUT_TYPE,
33
- LINEAGE_EDGE,
34
- TABLE_NODE,
35
- BASE_EDGE,
36
- } from '../constant';
37
- import { FoldEdge } from '../components/Edges/FoldEdge';
38
- import { LineageEdge } from '../components/Edges/LineageEdge';
39
- import { GraphEventManager } from './GraphEventManager';
40
-
41
- export interface ILineageManagerConfig {
42
- root: string;
43
- baseNodeHeight?: number;
44
- cullingConfig: {
45
- max: number;
46
- auto: boolean;
47
- }
48
-
49
- [key: string]: any;
50
- }
51
-
52
- export class InkLineageManager<
53
- TTableData extends TDataBase<TColumnData>,
54
- TColumnData extends IColResBase,
55
- > {
56
- config: ILineageManagerConfig;
57
-
58
- graph: Graph;
59
-
60
- graphEventManager: GraphEventManager<TTableData, TColumnData>;
61
-
62
- dataProcessor: DataProcessor<TTableData, TColumnData>;
63
-
64
- emitter = new EventEmitter();
65
-
66
- foldLineageManager: FoldLineageManager<TTableData, TColumnData>;
67
-
68
- searchNodeManager: SearchNodeManager<TTableData, TColumnData>;
69
-
70
- rightKeyMenuManager: RightKeyMenuManager<TTableData, TColumnData>;
71
-
72
- tableEventManager: TableEventManager<TTableData, TColumnData>;
73
-
74
- customEventManager: CustomEventManager<TTableData, TColumnData>;
75
-
76
- columnEventManager: ColumnEventManager<TTableData, TColumnData>;
77
-
78
- toolbarManager: ToolbarManager<TTableData, TColumnData>;
79
-
80
- expandManager: ExpandManager<TTableData, TColumnData>;
81
-
82
- activeNodes: (
83
- | INodeConfig<TTableData, TColumnData>
84
- | IColumnConfig<TColumnData>
85
- )[] = [];
86
-
87
- relatedNodes: (
88
- | INodeConfig<TTableData, TColumnData>
89
- | IColumnConfig<TColumnData>
90
- )[] = [];
91
-
92
- relatedEdges: IEdgeConfig[] = [];
93
-
94
- cachedRelatedNodeConfig:
95
- | INodeConfig<TTableData, TColumnData>
96
- | IColumnConfig<TColumnData>
97
- | null = null;
98
-
99
- canvasDomRoot: HTMLElement;
100
-
101
- parsedData: IParsedGraphData<TTableData, TColumnData>;
102
-
103
- nodesMap = new Map<string, INodeConfig<TTableData, TColumnData>>();
104
-
105
- childrenColumnsMap = new Map<string, IColumnConfig<TColumnData>>();
106
-
107
- relatedColumnsMap = new Map<string, IColumnConfig<TColumnData>>();
108
-
109
- edgesMap = new Map<string, IEdgeConfig>();
110
-
111
- constructor(
112
- data: IParsedGraphData<TTableData, TColumnData>,
113
- config: ILineageManagerConfig,
114
- ) {
115
- this.config = config;
116
-
117
- this.canvasDomRoot = _.isString(config.root)
118
- ? document.getElementById(config.root as string)
119
- : (config.root as HTMLElement);
120
-
121
- this.setData(data);
122
-
123
- // 初始化managers
124
- this.initManagers();
125
-
126
- this.initGraph();
127
-
128
- if (this.graph) {
129
- this.dataProcessor.init(this.graph);
130
- this.foldLineageManager.init(this.graph);
131
- this.searchNodeManager.init(this.graph);
132
- this.rightKeyMenuManager.init(this.graph);
133
- this.toolbarManager.init(this.graph);
134
- this.expandManager.init(this.graph);
135
- this.graphEventManager.init(this.graph);
136
- }
137
- }
138
-
139
- private initGraph() {
140
- // init graph by parsed data
141
- const graph = new Graph<INodeConfig<TTableData, TColumnData>, IEdgeConfig>({
142
- root: this.config.root,
143
- layout: {
144
- type: LAYOUT_TYPE,
145
- sortOptions: this.getSortConfig(),
146
- },
147
- tools: {
148
- zoom: {
149
- min: 0.4,
150
- max: 2,
151
- },
152
- },
153
- culling: {
154
- ...this.config.cullingConfig
155
- },
156
- baseNodeHeight: this.config.baseNodeHeight,
157
- });
158
-
159
- this.graph = graph;
160
-
161
- // register custom node
162
- graph.registerNode(BASE_NODE, DowngradeNode);
163
- graph.registerNode(TABLE_NODE, TableNode);
164
- graph.registerNode(CUSTOM_NODE, CustomNode);
165
-
166
- graph.registerEdge(FOLD_EDGE, FoldEdge);
167
- graph.registerEdge(LINEAGE_EDGE, LineageEdge);
168
-
169
- DefaultNode.lineageManager = this;
170
- DefaultEdge.lineageManager = this;
171
-
172
- this.render();
173
- }
174
-
175
- private initManagers() {
176
- this.tableEventManager = new TableEventManager(this);
177
- this.customEventManager = new CustomEventManager(this);
178
- this.columnEventManager = new ColumnEventManager(this);
179
-
180
- this.graphEventManager = new GraphEventManager(this);
181
- this.dataProcessor = new DataProcessor(this);
182
- this.foldLineageManager = new FoldLineageManager(this);
183
- this.searchNodeManager = new SearchNodeManager(this);
184
- this.rightKeyMenuManager = new RightKeyMenuManager(this);
185
- this.toolbarManager = new ToolbarManager(this);
186
- this.expandManager = new ExpandManager(this);
187
- }
188
-
189
- public updateData(data: IParsedGraphData<TTableData, TColumnData>) {
190
- this.setData(data);
191
- this.update();
192
- }
193
-
194
- on(
195
- type: string,
196
- listener: EventListenerOrEventListenerObject | ((...args: any[]) => void),
197
- ) {
198
- this.emitter.on(type, listener as (...args: any[]) => void);
199
- }
200
-
201
- once(
202
- type: string,
203
- listener: EventListenerOrEventListenerObject | ((...args: any[]) => void),
204
- ) {
205
- this.emitter.once(type, listener as (...args: any[]) => void);
206
- }
207
-
208
- emit(event: string, data?: any): void {
209
- this.emitter.emit(event, data);
210
- }
211
-
212
- off(
213
- type: string,
214
- listener: EventListenerOrEventListenerObject | ((...args: any[]) => void),
215
- ) {
216
- this.emitter.off(type, listener as (...args: any[]) => void);
217
- }
218
-
219
- render() {
220
- if (!this.parsedData) return;
221
- const { nodes, edges } = this.parsedData;
222
-
223
- this.refreshExtraStatus();
224
-
225
- const visibleNodes = nodes.filter((node) => node.visible);
226
- const visibleEdges = edges.filter((edge) => edge.visible);
227
-
228
- const layoutedData = this.layout(visibleNodes, visibleEdges)
229
-
230
- this.graph.setData(layoutedData);
231
-
232
- this.graph?.render();
233
- }
234
-
235
- update(options?: { needLayout?: boolean; shouldGroupNodes?: boolean }) {
236
- if (!this.parsedData) return;
237
- const { nodes, edges } = this.parsedData;
238
-
239
- const { needLayout = true, shouldGroupNodes = true } = options || {};
240
-
241
- this.refreshExtraStatus();
242
-
243
- const visibleNodes = nodes.filter((node) => node.visible);
244
- const visibleEdges = edges.filter((edge) => edge.visible);
245
-
246
- if (needLayout) {
247
- const layoutedData = this.layout(visibleNodes, visibleEdges, {
248
- shouldGroupNodes,
249
- });
250
- this.graph?.setData(layoutedData);
251
- } else {
252
- this.graph?.setData({
253
- nodes: visibleNodes,
254
- edges: visibleEdges,
255
- });
256
- }
257
-
258
- this.graph?.update();
259
- }
260
-
261
- layout(
262
- nodes: INodeConfig<TTableData, TColumnData>[] = this.parsedData.nodes,
263
- edges: IEdgeConfig[] = this.parsedData.edges,
264
- options?: {
265
- shouldGroupNodes?: boolean;
266
- },
267
- ) {
268
- const { shouldGroupNodes = true } = options || {};
269
-
270
- const layoutedData = BigLayout(
271
- nodes,
272
- edges,
273
- this.canvasDomRoot,
274
- // todo
275
- shouldGroupNodes,
276
- this.getSortConfig(),
277
- this.graph.mode,
278
- );
279
-
280
- return layoutedData;
281
- }
282
-
283
-
284
- destroy() {
285
- this.graph?.destroy();
286
-
287
- this.graph = null;
288
- }
289
-
290
- setData(data: IParsedGraphData<TTableData, TColumnData>) {
291
- this.parsedData = data;
292
-
293
- this.updateDataMaps(this.parsedData);
294
- }
295
-
296
- refreshExtraStatus() {
297
- this.dataProcessor?.updateNodesAndEdgesVisible(
298
- this.parsedData,
299
- this.rightKeyMenuManager?.edgeDashVisible,
300
- this.rightKeyMenuManager?.onlyShowRelated,
301
- this.foldLineageManager?.isFoldChecked,
302
- );
303
-
304
- // 刷新相关节点和边的高亮样式(如果打开了间接血缘按钮,那这些间接血缘也需要高亮)
305
- this.dataProcessor?.refreshRelatedNodesAndEdges(
306
- this.relatedNodes,
307
- this.relatedEdges,
308
- );
309
-
310
- this.dataProcessor?.updateSideIconVisible(this.parsedData);
311
-
312
- this.dataProcessor?.updateNodeHeight(this.parsedData);
313
- this.dataProcessor?.updateColumnPosition(this.parsedData);
314
- }
315
-
316
- updateActiveNodes(
317
- nodes: (
318
- | INodeConfig<TTableData, TColumnData>
319
- | IColumnConfig<TColumnData>
320
- )[],
321
- ) {
322
- // reset prev active nodes
323
- this.activeNodes?.forEach((n) => {
324
- if (!n) return;
325
- n.isActive = false;
326
- n.style.stroke = '#B1B1B1';
327
- n.style.fill = '#fff';
328
- n.style.zIndex = 2;
329
- });
330
-
331
- // update new active nodes
332
- this.activeNodes = nodes;
333
- this.activeNodes?.forEach((n) => {
334
- if (!n) return;
335
- n.isActive = true;
336
- n.style.stroke = '#3271C9';
337
- n.style.fill = '#A9CFFB';
338
- n.style.zIndex = 3;
339
- });
340
- }
341
-
342
- resetActiveNodes() {
343
- this.updateActiveNodes([]);
344
- }
345
-
346
- updateRelatedNodes(
347
- nodes: (
348
- | INodeConfig<TTableData, TColumnData>
349
- | IColumnConfig<TColumnData>
350
- )[],
351
- edges: IEdgeConfig[],
352
- needUpdate: boolean = true,
353
- ) {
354
- // reset prev related nodes
355
- this.relatedNodes?.forEach((n) => {
356
- if (!n) return;
357
-
358
- n.isRelated = false;
359
- n.style.stroke = '#B1B1B1';
360
- if (!n.isActive) n.style.fill = '#fff';
361
- n.style.zIndex = 1;
362
-
363
- if (n?.tableId) {
364
- const tableNode = this.getNodeConfigById(n.tableId as string);
365
- if (tableNode) {
366
- tableNode.isRelated = false;
367
- }
368
- }
369
- });
370
-
371
- // reset prev related edges
372
- this.relatedEdges?.forEach((e) => {
373
- if (
374
- (e.inFoldLink && this.foldLineageManager.isFoldChecked) ||
375
- e.isExtraFoldEdge
376
- )
377
- return;
378
-
379
- e.style.stroke = '#B1B1B1';
380
- e.style.lineWidth = 1;
381
- e.style.zIndex = -1;
382
- });
383
-
384
- // update new related nodes
385
- this.relatedNodes = nodes;
386
- this.relatedNodes?.forEach((n) => {
387
- if (!n) return;
388
-
389
- n.isRelated = true;
390
- n.style.stroke = '#3271C9';
391
- if (!n.isActive) n.style.fill = '#E4EFFF';
392
- n.style.zIndex = 3;
393
-
394
- if (n?.tableId) {
395
- const tableNode = this.getNodeConfigById(n.tableId as string);
396
- if (tableNode) {
397
- tableNode.isRelated = true;
398
- }
399
- }
400
- });
401
-
402
- // update new related edges
403
- this.relatedEdges = edges;
404
- this.relatedEdges.forEach((e) => {
405
- if (
406
- (e.inFoldLink && this.foldLineageManager.isFoldChecked) ||
407
- e.isExtraFoldEdge
408
- )
409
- return;
410
-
411
- e.style.stroke = '#3271C9';
412
- e.style.lineWidth = 1.5;
413
- e.style.zIndex = 1;
414
- });
415
-
416
- if (needUpdate) {
417
- this.update({ needLayout: false });
418
- }
419
- }
420
-
421
- resetRelatedNodes(needUpdate: boolean = true) {
422
- this.updateRelatedNodes([], [], needUpdate);
423
- }
424
-
425
- resetHighLight() {
426
- const prevHighlightNodeConfig = this.getNodeConfigById(
427
- this.searchNodeManager.highlightNodeId,
428
- );
429
-
430
- if (prevHighlightNodeConfig) {
431
- // reset highlight
432
- prevHighlightNodeConfig.style.stroke = '#E8E8E8';
433
- prevHighlightNodeConfig.style.fill = '#FFF';
434
- }
435
-
436
- this.update({ needLayout: false });
437
- }
438
-
439
- getNodeInstanceById(id: string) {
440
- return this.graph?.getNodeById(id);
441
- }
442
-
443
- getNodeOrColumnInstanceById(id: string) {
444
- return this.graph?.getAnchorNodeById(id);
445
- }
446
-
447
- getEdgeInstanceById(id: string) {
448
- return this.graph?.getEdgeById(id);
449
- }
450
-
451
- getNodeConfigById(
452
- id: string,
453
- ): INodeConfig<TTableData, TColumnData> | IColumnConfig<TColumnData> {
454
- const tableNodeConfig = this.getTableNodeConfigById(id);
455
- const relatedColumnConfig = this.getRelatedColumnConfigById(id);
456
- const childrenColumnConfig = this.getChildrenColumnConfigById(id);
457
-
458
- return (
459
- tableNodeConfig ||
460
- (relatedColumnConfig?.visible
461
- ? relatedColumnConfig
462
- : childrenColumnConfig)
463
- );
464
- }
465
-
466
- getTableNodeConfigById(id: string): INodeConfig<TTableData, TColumnData> {
467
- return this.nodesMap.get(id);
468
- }
469
-
470
- getRelatedColumnConfigById(id: string): IColumnConfig<TColumnData> {
471
- return this.relatedColumnsMap.get(id);
472
- }
473
-
474
- getChildrenColumnConfigById(id: string): IColumnConfig<TColumnData> {
475
- return this.childrenColumnsMap.get(id);
476
- }
477
-
478
- setRelatedNodesAndEdges(
479
- nodeConfig:
480
- | INodeConfig<TTableData, TColumnData>
481
- | IColumnConfig<TColumnData>,
482
- needUpdate: boolean = true,
483
- ) {
484
- this.cachedRelatedNodeConfig = nodeConfig;
485
-
486
- if (!nodeConfig) return;
487
- // update related ui
488
- const relatedInputs = getRelatedData(
489
- nodeConfig,
490
- this.parsedData.nodes,
491
- this.parsedData.edges,
492
- EDirection.INPUT,
493
- );
494
-
495
- const relatedOutputs = getRelatedData(
496
- nodeConfig,
497
- this.parsedData.nodes,
498
- this.parsedData.edges,
499
- EDirection.OUTPUT,
500
- );
501
-
502
- const relatedNodes = _.uniqBy(
503
- [...relatedInputs.relatedNodes, ...relatedOutputs.relatedNodes],
504
- 'id',
505
- );
506
-
507
- const relatedEdges = _.uniqBy(
508
- [...relatedInputs.relatedEdges, ...relatedOutputs.relatedEdges],
509
- 'id',
510
- );
511
-
512
- this.updateRelatedNodes(relatedNodes, relatedEdges, needUpdate);
513
- }
514
-
515
- getEdgeConfigById(id: string): IEdgeConfig {
516
- return this.edgesMap.get(id);
517
- }
518
-
519
- resetToolConfig() {
520
- this.foldLineageManager.resetFoldCheck();
521
- this.rightKeyMenuManager.resetEdgeDashVisible();
522
- this.rightKeyMenuManager.resetOnlyShowRelated();
523
- }
524
-
525
- // Add method to update the maps
526
- updateDataMaps(data: IParsedGraphData<TTableData, TColumnData>) {
527
- // Clear existing maps
528
- this.nodesMap.clear();
529
- this.edgesMap.clear();
530
-
531
- // Populate node map
532
- data.nodes.forEach((node) => {
533
- this.nodesMap.set(node.id, node);
534
-
535
- // Add children to the map as well
536
- node.children?.forEach((child) => {
537
- this.childrenColumnsMap.set(child.id, child);
538
- });
539
-
540
- // Add related columns to the map
541
- node.relatedColumns?.forEach((col) => {
542
- this.relatedColumnsMap.set(col.id, col);
543
- });
544
- });
545
-
546
- // Populate edge map
547
- data.edges.forEach((edge) => {
548
- this.edgesMap.set(edge.id, edge);
549
- });
550
- }
551
-
552
- clearAllTableRelatedColumns(nodeConfig: IColumnConfig<TColumnData>) {
553
- if (!nodeConfig) return;
554
-
555
- if (nodeConfig.isStartNode) {
556
- this.parsedData.nodes.forEach((node) => {
557
- node.relatedColumns = [];
558
- });
559
- }
560
- }
561
-
562
- // TODOmuzi 后续这个方法要放到底层去
563
- resetPosition() {
564
- if (this.graph.mode === 'NORMAL') {
565
- this.graph.resetPosition();
566
- }
567
- }
568
-
569
- /**************************************** 扩展 *******************************/
570
- get isExpanding() {
571
- return this.expandManager?.isExpanding;
572
- }
573
-
574
- showExpandLoading(target: INode, direction: EDirection) {
575
- this.expandManager?.showExpandLoading(target, direction);
576
- }
577
-
578
- hideExpandLoading() {
579
- this.expandManager?.hideExpandLoading();
580
- }
581
-
582
- /**************************************** 全局搜索 *******************************/
583
- searchNode(input: string) {
584
- this.searchNodeManager?.searchNode(input);
585
- }
586
-
587
- /**************************************** 工具栏 *******************************/
588
- refreshToolbarRelatedStatus(
589
- nodeConfig:
590
- | INodeConfig<TTableData, TColumnData>
591
- | IColumnConfig<TColumnData>,
592
- ) {
593
- this.toolbarManager?.updateOnlyRelatedVisible(nodeConfig);
594
- }
595
-
596
- /**************************************** 右键菜单 *******************************/
597
- // update overview info
598
- setOverview(data: Partial<IOverViewBase>) {
599
- this.rightKeyMenuManager?.setOverview(data);
600
- }
601
-
602
- // show context menu
603
- showContextMenu(data: IContextMenuState) {
604
- this.rightKeyMenuManager?.showContextMenu(data);
605
- }
606
-
607
- // hide context menu
608
- hideContextMenu() {
609
- this.rightKeyMenuManager?.hideContextMenu();
610
- }
611
-
612
- // show hotspot modal
613
- updateHotspotModalState(data: IHotspotModalState) {
614
- this.rightKeyMenuManager.updateHotspotModalState(data);
615
- }
616
-
617
- // update direct & indirect table visible
618
- updateEdgeDashVisible(edgeDashVisible: EDashType) {
619
- this.rightKeyMenuManager?.updateEdgeDashVisible(edgeDashVisible);
620
- }
621
-
622
- getHotspotModalState() {
623
- return this.rightKeyMenuManager?.hotspotModalState;
624
- }
625
-
626
- getContextMenuState() {
627
- return this.rightKeyMenuManager?.contextMenuState;
628
- }
629
-
630
- getHotspotTipState() {
631
- return this.rightKeyMenuManager?.hotspotTipState;
632
- }
633
-
634
- getOverviewState() {
635
- return this.rightKeyMenuManager?.overviewState;
636
- }
637
-
638
- getToolbarState(): IToolbarState | undefined {
639
- return this.toolbarManager?.state;
640
- }
641
-
642
- /**************************************** 合并链路 *******************************/
643
- updateFoldStatus(checked: boolean) {
644
- this.foldLineageManager?.updateFoldStatus(checked);
645
- }
646
-
647
- unfoldNodeGroup(foldGroupKey: string, saveStatus?: boolean) {
648
- this.foldLineageManager?.unfoldNodeGroup(foldGroupKey, saveStatus);
649
- }
650
-
651
- foldNodeGroup(foldGroupKey: string, saveStatus?: boolean) {
652
- this.foldLineageManager?.foldNodeGroup(foldGroupKey, saveStatus);
653
- }
654
-
655
- // update related & unrelated table visible
656
- updateRelatedTableVisible(
657
- onlyShowRelated: boolean,
658
- needUpdate: boolean = true,
659
- ) {
660
- this.rightKeyMenuManager?.updateRelatedTableVisible(
661
- onlyShowRelated,
662
- needUpdate,
663
- );
664
- }
665
-
666
- getSortConfig(): ISortConfig[] {
667
- return [
668
- {
669
- field: 'data.typeCode',
670
- transform: (value) =>
671
- this.config.orderList?.get(value) ?? Number.MAX_SAFE_INTEGER,
672
- },
673
- {
674
- field: 'data.name',
675
- transform: (value) => String(value || '').toLowerCase(),
676
- defaultValue: '',
677
- },
678
- ];
679
- }
680
- }