@aloudata/ink-lineage 0.0.1-beta.34 → 0.0.1-beta.36

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 (85) hide show
  1. package/dist/components/Nodes/AssetNode.d.ts.map +1 -1
  2. package/dist/components/Nodes/AssetNode.js.map +1 -1
  3. package/dist/components/Nodes/ColumnNode.d.ts +27 -0
  4. package/dist/components/Nodes/ColumnNode.d.ts.map +1 -0
  5. package/dist/components/Nodes/ColumnNode.js +327 -0
  6. package/dist/components/Nodes/ColumnNode.js.map +1 -0
  7. package/dist/components/Nodes/CustomNode.d.ts.map +1 -0
  8. package/dist/components/Nodes/CustomNode.js +53 -0
  9. package/dist/components/Nodes/CustomNode.js.map +1 -0
  10. package/dist/components/Nodes/Table/ColumnNode.d.ts.map +1 -1
  11. package/dist/components/Nodes/Table/ColumnNode.js +2 -2
  12. package/dist/components/Nodes/Table/ColumnNode.js.map +1 -1
  13. package/dist/components/Nodes/TableNode.d.ts.map +1 -0
  14. package/dist/components/Nodes/TableNode.js +384 -0
  15. package/dist/components/Nodes/TableNode.js.map +1 -0
  16. package/dist/manager/BaseRightKeyMenuManager.d.ts.map +1 -1
  17. package/dist/manager/BaseRightKeyMenuManager.js +2 -0
  18. package/dist/manager/BaseRightKeyMenuManager.js.map +1 -1
  19. package/dist/manager/DataProcessor.d.ts +27 -0
  20. package/dist/manager/DataProcessor.d.ts.map +1 -0
  21. package/dist/manager/{dataProcessor/TableDataProcessor.js → DataProcessor.js} +274 -303
  22. package/dist/manager/DataProcessor.js.map +1 -0
  23. package/dist/manager/GraphEventManager.d.ts.map +1 -0
  24. package/dist/manager/{graphEventManager/BaseGraphEventManager.js → GraphEventManager.js} +19 -12
  25. package/dist/manager/GraphEventManager.js.map +1 -0
  26. package/dist/manager/LineageManager.d.ts.map +1 -1
  27. package/dist/manager/LineageManager.js +3 -2
  28. package/dist/manager/LineageManager.js.map +1 -1
  29. package/dist/manager/RightKeyMenuManager.d.ts +29 -0
  30. package/dist/manager/RightKeyMenuManager.d.ts.map +1 -0
  31. package/dist/manager/RightKeyMenuManager.js +78 -0
  32. package/dist/manager/RightKeyMenuManager.js.map +1 -0
  33. package/dist/manager/TableDataProcessor.js +2 -2
  34. package/dist/manager/TableDataProcessor.js.map +1 -1
  35. package/dist/manager/nodeManager/BaseColumnEventManager.d.ts.map +1 -1
  36. package/dist/manager/nodeManager/BaseColumnEventManager.js +1 -1
  37. package/dist/manager/nodeManager/BaseColumnEventManager.js.map +1 -1
  38. package/dist/manager/nodeManager/BaseEventManager.d.ts.map +1 -1
  39. package/dist/manager/nodeManager/ColumnEventManager.d.ts.map +1 -1
  40. package/dist/manager/nodeManager/ColumnEventManager.js.map +1 -1
  41. package/dist/utils/getIconByType.d.ts.map +1 -1
  42. package/dist/utils/manager.d.ts.map +1 -1
  43. package/dist/utils/node.d.ts +1 -1
  44. package/dist/utils/node.d.ts.map +1 -1
  45. package/dist/utils/node.js +5 -1
  46. package/dist/utils/node.js.map +1 -1
  47. package/package.json +1 -1
  48. package/dist/components/Edges/ClickEdge.d.ts +0 -8
  49. package/dist/components/Edges/ClickEdge.d.ts.map +0 -1
  50. package/dist/components/Edges/ClickEdge.js +0 -68
  51. package/dist/components/Edges/ClickEdge.js.map +0 -1
  52. package/dist/manager/dataProcessor/ScheduleDataProcessor.d.ts +0 -21
  53. package/dist/manager/dataProcessor/ScheduleDataProcessor.d.ts.map +0 -1
  54. package/dist/manager/dataProcessor/ScheduleDataProcessor.js +0 -349
  55. package/dist/manager/dataProcessor/ScheduleDataProcessor.js.map +0 -1
  56. package/dist/manager/dataProcessor/TableDataProcessor.d.ts +0 -26
  57. package/dist/manager/dataProcessor/TableDataProcessor.d.ts.map +0 -1
  58. package/dist/manager/dataProcessor/TableDataProcessor.js.map +0 -1
  59. package/dist/manager/dataProcessor/TaskDataProcessor.d.ts +0 -82
  60. package/dist/manager/dataProcessor/TaskDataProcessor.d.ts.map +0 -1
  61. package/dist/manager/dataProcessor/TaskDataProcessor.js +0 -307
  62. package/dist/manager/dataProcessor/TaskDataProcessor.js.map +0 -1
  63. package/dist/manager/graphEventManager/BaseGraphEventManager.d.ts +0 -10
  64. package/dist/manager/graphEventManager/BaseGraphEventManager.d.ts.map +0 -1
  65. package/dist/manager/graphEventManager/BaseGraphEventManager.js.map +0 -1
  66. package/dist/manager/graphEventManager/TableGraphEventManager.d.ts +0 -6
  67. package/dist/manager/graphEventManager/TableGraphEventManager.d.ts.map +0 -1
  68. package/dist/manager/graphEventManager/TableGraphEventManager.js +0 -25
  69. package/dist/manager/graphEventManager/TableGraphEventManager.js.map +0 -1
  70. package/dist/manager/graphEventManager/TaskGraphEventManager.d.ts +0 -6
  71. package/dist/manager/graphEventManager/TaskGraphEventManager.d.ts.map +0 -1
  72. package/dist/manager/graphEventManager/TaskGraphEventManager.js +0 -22
  73. package/dist/manager/graphEventManager/TaskGraphEventManager.js.map +0 -1
  74. package/dist/manager/rightKeyMenu/BaseRightKeyMenuManager.d.ts +0 -40
  75. package/dist/manager/rightKeyMenu/BaseRightKeyMenuManager.d.ts.map +0 -1
  76. package/dist/manager/rightKeyMenu/BaseRightKeyMenuManager.js +0 -93
  77. package/dist/manager/rightKeyMenu/BaseRightKeyMenuManager.js.map +0 -1
  78. package/dist/manager/rightKeyMenu/TableRightKeyMenuManager.d.ts +0 -10
  79. package/dist/manager/rightKeyMenu/TableRightKeyMenuManager.d.ts.map +0 -1
  80. package/dist/manager/rightKeyMenu/TableRightKeyMenuManager.js +0 -29
  81. package/dist/manager/rightKeyMenu/TableRightKeyMenuManager.js.map +0 -1
  82. package/dist/manager/rightKeyMenu/TaskRightKeyMenuManager.d.ts +0 -20
  83. package/dist/manager/rightKeyMenu/TaskRightKeyMenuManager.d.ts.map +0 -1
  84. package/dist/manager/rightKeyMenu/TaskRightKeyMenuManager.js +0 -149
  85. package/dist/manager/rightKeyMenu/TaskRightKeyMenuManager.js.map +0 -1
@@ -1,28 +1,27 @@
1
- import { __assign, __extends, __read, __values } from "tslib";
2
- import { EDirection, getNodeHeight, groupNodesByEdgesAndDirection, } from '@aloudata/ink-graph-new';
3
- import { EEntityType, EDashType, } from '../../types';
1
+ import { __assign, __extends, __read, __spreadArray, __values } from "tslib";
2
+ import { getNodeHeight, groupNodesByEdgesAndDirection, } from '@aloudata/ink-graph-new';
3
+ import { EEntityType, EDirection, EDashType, } from '../types';
4
4
  import _ from 'lodash';
5
- import { BaseManager } from '../BaseManager';
6
- import { CLICK_EDGE, COL_HEIGHT, CUSTOM_NODE, LINEAGE_EDGE, NODE_WIDTH, TABLE_HEADER_HEIGHT, TABLE_NODE, } from '../../constant';
7
- var TableDataProcessor = /** @class */ (function (_super) {
8
- __extends(TableDataProcessor, _super);
9
- function TableDataProcessor() {
5
+ import { BaseManager } from './BaseManager';
6
+ import { COL_HEIGHT, CUSTOM_NODE, LINEAGE_EDGE, NODE_WIDTH, TABLE_HEADER_HEIGHT, TABLE_NODE, } from '../constant';
7
+ var DataProcessor = /** @class */ (function (_super) {
8
+ __extends(DataProcessor, _super);
9
+ function DataProcessor() {
10
10
  return _super !== null && _super.apply(this, arguments) || this;
11
11
  }
12
- TableDataProcessor.parseData = function (data, startNodes) {
13
- TableDataProcessor.startNodes = startNodes;
12
+ DataProcessor.parseData = function (data, startNodes) {
13
+ DataProcessor.startNodes = startNodes;
14
14
  // parse data here
15
15
  var entities = data.entities, relations = data.relations;
16
- var nodes = TableDataProcessor.parseEntities(entities, startNodes);
17
- var edges = TableDataProcessor.parseRelations(relations);
16
+ var nodes = DataProcessor.parseEntities(entities, startNodes);
17
+ var edges = DataProcessor.parseRelations(relations);
18
18
  var res = {
19
19
  nodes: nodes,
20
20
  edges: edges,
21
21
  };
22
22
  return res;
23
23
  };
24
- TableDataProcessor.parseEntities = function (entities, startNodes) {
25
- var _this = this;
24
+ DataProcessor.parseEntities = function (entities, startNodes) {
26
25
  var nodesId = [];
27
26
  var nodes = [];
28
27
  entities.forEach(function (entity) {
@@ -33,22 +32,20 @@ var TableDataProcessor = /** @class */ (function (_super) {
33
32
  switch (entity.typeCode) {
34
33
  case 'Table':
35
34
  case 'View':
36
- node = TableDataProcessor.parseTableEntity(entity, isStartNode);
35
+ node = DataProcessor.parseTableEntity(entity, isStartNode);
37
36
  break;
38
37
  default:
39
- node = TableDataProcessor.parseCustomEntity(entity, isStartNode);
38
+ node = DataProcessor.parseCustomEntity(entity, isStartNode);
40
39
  break;
41
40
  }
42
41
  if (node) {
43
42
  nodes.push(node);
44
43
  nodesId.push(node.id);
45
- _this.nodesIdMap.set(node.id, node);
46
44
  }
47
45
  });
48
46
  return nodes;
49
47
  };
50
- TableDataProcessor.parseRelations = function (relations) {
51
- var _this = this;
48
+ DataProcessor.parseRelations = function (relations) {
52
49
  var existedEdgesMap = new Map();
53
50
  var edges = [];
54
51
  relations.forEach(function (relation) {
@@ -64,16 +61,9 @@ var TableDataProcessor = /** @class */ (function (_super) {
64
61
  return;
65
62
  }
66
63
  var isIndirect = relation.relationTypeCode.includes('Indirect');
67
- var edgeType = LINEAGE_EDGE;
68
- var srcGuid = relation.srcGuid, dstGuid = relation.dstGuid;
69
- var srcNode = _this.nodesIdMap.get(srcGuid);
70
- var tgtNode = _this.nodesIdMap.get(dstGuid);
71
- if (srcNode || tgtNode) {
72
- edgeType = CLICK_EDGE;
73
- }
74
64
  var edge = {
75
65
  id: edgeId,
76
- type: edgeType,
66
+ type: LINEAGE_EDGE,
77
67
  data: __assign({}, relation),
78
68
  source: relation.srcGuid,
79
69
  target: relation.dstGuid,
@@ -94,25 +84,25 @@ var TableDataProcessor = /** @class */ (function (_super) {
94
84
  });
95
85
  return edges;
96
86
  };
97
- TableDataProcessor.parseTableEntity = function (entity, isStartNode) {
87
+ DataProcessor.parseTableEntity = function (entity, isStartNode) {
98
88
  var _a, _b, _c, _d, _e, _f, _g;
99
89
  var cols = Array.isArray((_a = entity.properties) === null || _a === void 0 ? void 0 : _a.columns)
100
90
  ? ((_c = (_b = entity.properties) === null || _b === void 0 ? void 0 : _b.columns) === null || _c === void 0 ? void 0 : _c.map(function (col) {
101
91
  var _a;
102
- return TableDataProcessor.parseColumn(col, isStartNode, entity.guid, (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.name);
92
+ return DataProcessor.parseColumn(col, isStartNode, entity.guid, (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.name);
103
93
  })) || []
104
94
  : [];
105
95
  // 只有起始资产的relatedCols一开始有元素
106
96
  var relatedCols = Array.isArray((_d = entity.properties) === null || _d === void 0 ? void 0 : _d.columns)
107
97
  ? ((_f = (_e = entity.properties) === null || _e === void 0 ? void 0 : _e.columns) === null || _f === void 0 ? void 0 : _f.map(function (col) {
108
98
  var _a;
109
- return TableDataProcessor.parseRelatedColumn(col, isStartNode, entity.guid, (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.name);
99
+ return DataProcessor.parseRelatedColumn(col, isStartNode, entity.guid, (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.name);
110
100
  })) || []
111
101
  : [];
112
102
  var data = {
113
103
  id: entity.guid,
114
104
  type: TABLE_NODE,
115
- data: __assign(__assign({}, entity.properties), { type: ((_g = entity.properties) === null || _g === void 0 ? void 0 : _g.type) || EEntityType.TABLE, guid: entity.guid, typeCode: entity.typeCode, isAggregationTable: true }),
105
+ data: __assign(__assign({}, entity.properties), { type: ((_g = entity.properties) === null || _g === void 0 ? void 0 : _g.type) || EEntityType.TABLE, guid: entity.guid, typeCode: entity.typeCode }),
116
106
  style: {
117
107
  width: NODE_WIDTH + 2,
118
108
  height: TABLE_HEADER_HEIGHT,
@@ -147,7 +137,7 @@ var TableDataProcessor = /** @class */ (function (_super) {
147
137
  data.style.height = getNodeHeight(data);
148
138
  return data;
149
139
  };
150
- TableDataProcessor.parseColumn = function (column, isStartNode, tableId, tableName) {
140
+ DataProcessor.parseColumn = function (column, isStartNode, tableId, tableName) {
151
141
  return {
152
142
  data: __assign({}, column),
153
143
  type: '',
@@ -172,7 +162,7 @@ var TableDataProcessor = /** @class */ (function (_super) {
172
162
  hasMoreOutput: true,
173
163
  };
174
164
  };
175
- TableDataProcessor.parseRelatedColumn = function (column, isStartNode, tableId, tableName) {
165
+ DataProcessor.parseRelatedColumn = function (column, isStartNode, tableId, tableName) {
176
166
  return {
177
167
  data: __assign({}, column),
178
168
  type: '',
@@ -198,7 +188,7 @@ var TableDataProcessor = /** @class */ (function (_super) {
198
188
  hasMoreOutput: true,
199
189
  };
200
190
  };
201
- TableDataProcessor.parseCustomEntity = function (entity, isStartNode) {
191
+ DataProcessor.parseCustomEntity = function (entity, isStartNode) {
202
192
  var _a, _b, _c, _d;
203
193
  var data = {
204
194
  id: entity.guid,
@@ -226,7 +216,7 @@ var TableDataProcessor = /** @class */ (function (_super) {
226
216
  children: Array.isArray((_b = entity.properties) === null || _b === void 0 ? void 0 : _b.columns)
227
217
  ? ((_d = (_c = entity.properties) === null || _c === void 0 ? void 0 : _c.columns) === null || _d === void 0 ? void 0 : _d.map(function (col) {
228
218
  var _a;
229
- return TableDataProcessor.parseColumn(col, isStartNode, entity.guid, (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.name);
219
+ return DataProcessor.parseColumn(col, isStartNode, entity.guid, (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.name);
230
220
  })) || []
231
221
  : [],
232
222
  pagination: {
@@ -240,227 +230,13 @@ var TableDataProcessor = /** @class */ (function (_super) {
240
230
  data.style.height = getNodeHeight(data);
241
231
  return data;
242
232
  };
243
- // 刷新相关节点和边
244
- TableDataProcessor.prototype.refreshRelatedNodesAndEdges = function (relatedNodes, relatedEdges) {
245
- var _this = this;
246
- relatedNodes.forEach(function (n) {
247
- if (!n)
248
- return;
249
- var nodeConfig = _this.lineageManager.getNodeConfigById(n.id);
250
- if (!nodeConfig)
251
- return;
252
- nodeConfig.isRelated = true;
253
- if (nodeConfig.style.zIndex < 4) {
254
- nodeConfig.style.zIndex = 3;
255
- nodeConfig.style.stroke = '#3271C9';
256
- if (!nodeConfig.isActive) {
257
- nodeConfig.style.fill = '#E4EFFF';
258
- }
259
- else {
260
- nodeConfig.style.fill = '#A9CFFB';
261
- }
262
- }
263
- });
264
- relatedEdges.forEach(function (e) {
265
- if (!e)
266
- return;
267
- var edge = _this.lineageManager.getEdgeConfigById(e.id);
268
- if (!edge)
269
- return;
270
- if ((edge.inFoldLink &&
271
- _this.lineageManager.foldLineageManager.isFoldChecked) ||
272
- edge.isExtraFoldEdge)
273
- return;
274
- edge.style.stroke = '#3271C9';
275
- });
276
- };
277
- // 更新节点和边可见性
278
- TableDataProcessor.prototype.updateNodesAndEdgesVisible = function (data, edgeDashVisible, onlyShowRelated, isFoldChecked) {
279
- this.updateEdgesVisible(data, edgeDashVisible, onlyShowRelated, isFoldChecked);
280
- // 更新节点本身、列、节点children的可见性
281
- this.updateNodesVisible(data, edgeDashVisible, onlyShowRelated, isFoldChecked);
282
- };
283
- // 获取边可见性
284
- TableDataProcessor.prototype.getEdgeVisible = function (edgeCfg, edgeDashVisible, onlyShowRelated, isFoldChecked, relatedNodes) {
285
- var _a, _b, _c;
286
- // 如果边被折叠了,那么该边就隐藏
287
- if (edgeCfg.isFolded)
288
- return false;
289
- var visible = false;
290
- // 折叠
291
- if (isFoldChecked) {
292
- var foldStatus = (_c = (_b = (_a = this.lineageManager) === null || _a === void 0 ? void 0 : _a.foldLineageManager) === null || _b === void 0 ? void 0 : _b.foldStatusMap) === null || _c === void 0 ? void 0 : _c.get(edgeCfg.foldTableId);
293
- if (foldStatus) {
294
- visible = !!edgeCfg.isExtraFoldEdge;
295
- if (!visible) {
296
- return visible;
297
- }
298
- }
299
- }
300
- // 仅相关
301
- if (onlyShowRelated) {
302
- var source = edgeCfg.source, target = edgeCfg.target;
303
- if (relatedNodes[source] && relatedNodes[target]) {
304
- visible = true;
305
- }
306
- else {
307
- return false;
308
- }
309
- }
310
- switch (edgeDashVisible) {
311
- case EDashType.DIRECT:
312
- visible =
313
- edgeCfg.relationType === EDashType.DIRECT ||
314
- edgeCfg.relationType === EDashType.ALL;
315
- break;
316
- case EDashType.INDIRECT:
317
- visible = true;
318
- break;
319
- }
320
- return visible;
321
- };
322
- // 获取相关节点可见性
323
- TableDataProcessor.prototype.getRelatedNodeVisible = function (nodeConfig, data, edgeDashVisible) {
324
- var _a, _b, _c, _d, _e, _f;
325
- // 仅相关开启的情况下,如果高亮链路是表链路,隐藏非相关的列
326
- if ((_b = (_a = this.lineageManager) === null || _a === void 0 ? void 0 : _a.rightKeyMenuManager) === null || _b === void 0 ? void 0 : _b.onlyShowRelated) {
327
- if (!((_e = (_d = (_c = this.lineageManager) === null || _c === void 0 ? void 0 : _c.activeNodes) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.tableName)) {
328
- if (!_.some((_f = this.lineageManager) === null || _f === void 0 ? void 0 : _f.relatedNodes, { id: nodeConfig.id }))
329
- return false;
330
- }
331
- }
332
- var cacheBit = this.nodeEdgeRelationCache.get(nodeConfig.id);
333
- if (!cacheBit)
334
- return false;
335
- var isAllIndirectEdges = cacheBit < 0;
336
- // 开关只有true false,直接、间接
337
- if (edgeDashVisible === EDashType.INDIRECT) {
338
- return true;
339
- }
340
- else {
341
- // 如果边都是间接边,那么该节点就隐藏
342
- if (isAllIndirectEdges)
343
- return false;
344
- return true;
345
- }
346
- };
347
- // 获取节点可见性
348
- TableDataProcessor.prototype.getNodeVisible = function (nodeConfig, data, edgeDashVisible, onlyShowRelated, isFoldChecked) {
349
- if (nodeConfig.isStartNode)
350
- return true;
351
- if (nodeConfig.isFolded)
352
- return false;
353
- // 只显示相关节点 & 该节点不是相关节点 & 该节点不是表,则该节点不可见
354
- if (onlyShowRelated && !nodeConfig.isRelated && !nodeConfig.tableId)
355
- return false;
356
- if (nodeConfig.canBeFold && isFoldChecked)
357
- return false;
358
- var cacheBit = this.nodeEdgeRelationCache.get(nodeConfig.id);
359
- if (!cacheBit)
360
- return false;
361
- var isAllIndirectEdges = cacheBit < 0;
362
- // 开关只有true false,直接、间接
363
- if (edgeDashVisible === EDashType.INDIRECT) {
364
- return true;
365
- }
366
- else {
367
- // 如果边都是间接边,那么该节点就隐藏
368
- if (isAllIndirectEdges)
369
- return false;
370
- return true;
371
- }
372
- };
373
- // 更新边可见性
374
- TableDataProcessor.prototype.updateEdgesVisible = function (data, edgeDashVisible, onlyShowRelated, isFoldChecked) {
375
- var _this = this;
376
- if (_.isNil(data))
377
- return;
378
- var relatedNodes = {};
379
- data.nodes.forEach(function (node) {
380
- var _a;
381
- if (node.isRelated) {
382
- relatedNodes[node.id] = node;
383
- (_a = node.relatedColumns) === null || _a === void 0 ? void 0 : _a.forEach(function (col) {
384
- if (col.visible) {
385
- relatedNodes[col.id] = col;
386
- }
387
- });
388
- }
389
- });
390
- data.edges.forEach(function (edge) {
391
- edge.visible = _this.getEdgeVisible(edge, edgeDashVisible, onlyShowRelated, isFoldChecked, relatedNodes);
392
- });
393
- };
394
- // 构建节点/列可见性缓存。根据关联的边类型和当前配置决定是否可见
395
- TableDataProcessor.prototype.buildVisibilityCache = function (data, isFoldChecked) {
396
- var nodeIdToNodeMap = new Map();
397
- var columnIdToTableIdMap = new Map();
398
- data.nodes.forEach(function (node) {
399
- var _a, _b;
400
- (_a = node.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {
401
- columnIdToTableIdMap.set(child.id, child.tableId);
402
- });
403
- (_b = node.relatedColumns) === null || _b === void 0 ? void 0 : _b.forEach(function (col) {
404
- columnIdToTableIdMap.set(col.id, col.tableId);
405
- });
406
- nodeIdToNodeMap.set(node.id, node);
407
- });
408
- this.nodeEdgeRelationCache = new Map();
409
- var cache = this.nodeEdgeRelationCache;
410
- var updateBit = function (id, isIndirect) {
411
- if (!id)
412
- return;
413
- var bit = cache.get(id);
414
- if (!bit) {
415
- cache.set(id, isIndirect ? -1 : 1);
416
- }
417
- if (bit < 0 && !isIndirect) {
418
- cache.set(id, 1);
419
- }
420
- };
421
- data.edges.forEach(function (edge) {
422
- var srcNode = nodeIdToNodeMap.get(edge.source);
423
- var tgtNode = nodeIdToNodeMap.get(edge.target);
424
- if (!edge.visible)
425
- return;
426
- // 合并链路,折叠的边忽略
427
- if (((srcNode === null || srcNode === void 0 ? void 0 : srcNode.canBeFold) || (tgtNode === null || tgtNode === void 0 ? void 0 : tgtNode.canBeFold)) && isFoldChecked) {
428
- return;
429
- }
430
- var isIndirect = edge.relationType === EDashType.INDIRECT;
431
- updateBit(edge.source, isIndirect);
432
- updateBit(edge.target, isIndirect);
433
- // 更新列对应的表(如果是列
434
- updateBit(columnIdToTableIdMap.get(edge.source), isIndirect);
435
- updateBit(columnIdToTableIdMap.get(edge.target), isIndirect);
436
- });
437
- };
438
- // 更新节点的可见性
439
- TableDataProcessor.prototype.updateNodesVisible = function (data, edgeDashVisible, onlyShowRelated, isFoldChecked) {
440
- var _this = this;
441
- if (_.isNil(data))
442
- return;
443
- this.buildVisibilityCache(data, isFoldChecked);
444
- data.nodes.forEach(function (node) {
445
- var _a, _b;
446
- node.visible = _this.getNodeVisible(node, data, edgeDashVisible, onlyShowRelated, isFoldChecked);
447
- (_a = node.relatedColumns) === null || _a === void 0 ? void 0 : _a.forEach(function (col) {
448
- col.visible = _this.getRelatedNodeVisible(col, data, edgeDashVisible);
449
- });
450
- (_b = node.children) === null || _b === void 0 ? void 0 : _b.forEach(function (child) {
451
- child.visible = _this.getNodeVisible(child, data, edgeDashVisible, onlyShowRelated, isFoldChecked);
452
- });
453
- });
454
- };
455
- // 更新icon的可见性
456
- TableDataProcessor.prototype.updateSideIconVisible = function (data) {
457
- var e_1, _a;
458
- var _this = this;
233
+ DataProcessor.prototype.updateSideIconVisible = function (data) {
234
+ var e_1, _a, e_2, _b;
459
235
  if (_.isNil(data))
460
236
  return;
461
237
  var nodesConfig = data.nodes.filter(function (cfg) { return cfg.visible; });
462
238
  var edgesConfig = data.edges.filter(function (cfg) { return cfg.visible; });
463
- if (!nodesConfig.length)
239
+ if (!nodesConfig)
464
240
  return;
465
241
  var startNodeIndex = nodesConfig.findIndex(function (node) { return node.isStartNode; });
466
242
  if (startNodeIndex < 0)
@@ -469,7 +245,7 @@ var TableDataProcessor = /** @class */ (function (_super) {
469
245
  if (!startNodeCfg)
470
246
  return;
471
247
  var nodesConfigMap = new Map();
472
- nodesConfig.forEach(function (n) {
248
+ nodesConfig === null || nodesConfig === void 0 ? void 0 : nodesConfig.forEach(function (n) {
473
249
  var _a;
474
250
  nodesConfigMap.set(n.id, n);
475
251
  (_a = n.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {
@@ -482,48 +258,46 @@ var TableDataProcessor = /** @class */ (function (_super) {
482
258
  return;
483
259
  var inputGroupNodes = inputGroupedData.groupedNodes;
484
260
  var outputGroupNodes = outputGroupedData.groupedNodes;
485
- // 优化Map合并:直接使用inputGroupNodes作为基础,避免重复has()调用
486
- var groupedNodes = new Map(inputGroupNodes || []);
487
- if (outputGroupNodes) {
261
+ // 两个map合并
262
+ var groupedNodes = new Map();
263
+ if (inputGroupNodes) {
488
264
  try {
489
- for (var outputGroupNodes_1 = __values(outputGroupNodes), outputGroupNodes_1_1 = outputGroupNodes_1.next(); !outputGroupNodes_1_1.done; outputGroupNodes_1_1 = outputGroupNodes_1.next()) {
490
- var _b = __read(outputGroupNodes_1_1.value, 2), key = _b[0], value = _b[1];
491
- if (!groupedNodes.has(key)) {
492
- groupedNodes.set(key, value);
493
- }
265
+ for (var inputGroupNodes_1 = __values(inputGroupNodes), inputGroupNodes_1_1 = inputGroupNodes_1.next(); !inputGroupNodes_1_1.done; inputGroupNodes_1_1 = inputGroupNodes_1.next()) {
266
+ var _c = __read(inputGroupNodes_1_1.value, 2), key = _c[0], value = _c[1];
267
+ if (groupedNodes.has(key))
268
+ continue;
269
+ groupedNodes.set(key, value);
494
270
  }
495
271
  }
496
272
  catch (e_1_1) { e_1 = { error: e_1_1 }; }
497
273
  finally {
498
274
  try {
499
- if (outputGroupNodes_1_1 && !outputGroupNodes_1_1.done && (_a = outputGroupNodes_1.return)) _a.call(outputGroupNodes_1);
275
+ if (inputGroupNodes_1_1 && !inputGroupNodes_1_1.done && (_a = inputGroupNodes_1.return)) _a.call(inputGroupNodes_1);
500
276
  }
501
277
  finally { if (e_1) throw e_1.error; }
502
278
  }
503
279
  }
504
- var dstNodeIdsSet = new Set();
505
- var srcNodeIdsSet = new Set();
506
- edgesConfig.forEach(function (item) {
507
- var _a, _b;
508
- var target = item.target, source = item.source;
509
- var dstNode = _this.lineageManager.getNodeConfigById(target);
510
- var srcNode = _this.lineageManager.getNodeConfigById(source);
511
- if (srcNode.position.x < dstNode.position.x) {
512
- srcNodeIdsSet.add(source);
513
- dstNodeIdsSet.add(target);
514
- }
515
- else {
516
- if (source === ((_a = _this.lineageManager.activeNodes[0]) === null || _a === void 0 ? void 0 : _a.id)) {
517
- srcNodeIdsSet.add(source);
280
+ if (outputGroupNodes) {
281
+ try {
282
+ for (var outputGroupNodes_1 = __values(outputGroupNodes), outputGroupNodes_1_1 = outputGroupNodes_1.next(); !outputGroupNodes_1_1.done; outputGroupNodes_1_1 = outputGroupNodes_1.next()) {
283
+ var _d = __read(outputGroupNodes_1_1.value, 2), key = _d[0], value = _d[1];
284
+ if (groupedNodes.has(key))
285
+ continue;
286
+ groupedNodes.set(key, value);
518
287
  }
519
- if (target === ((_b = _this.lineageManager.activeNodes[0]) === null || _b === void 0 ? void 0 : _b.id)) {
520
- dstNodeIdsSet.add(target);
288
+ }
289
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
290
+ finally {
291
+ try {
292
+ if (outputGroupNodes_1_1 && !outputGroupNodes_1_1.done && (_b = outputGroupNodes_1.return)) _b.call(outputGroupNodes_1);
521
293
  }
294
+ finally { if (e_2) throw e_2.error; }
522
295
  }
523
- });
524
- // 优化节点处理逻辑
525
- nodesConfig.forEach(function (n) {
526
- // 重置状态
296
+ }
297
+ var dstNodeIds = edgesConfig.map(function (edge) { return edge.target; });
298
+ var srcNodeIds = edgesConfig.map(function (edge) { return edge.source; });
299
+ // table
300
+ nodesConfig === null || nodesConfig === void 0 ? void 0 : nodesConfig.forEach(function (n) {
527
301
  n.canExpandInput = false;
528
302
  n.canExpandOutput = false;
529
303
  n.canFoldInput = false;
@@ -533,18 +307,17 @@ var TableDataProcessor = /** @class */ (function (_super) {
533
307
  console.warn("get node level error '".concat(n.id, "'"));
534
308
  return;
535
309
  }
536
- // 优化:使用Set的has()方法进行O(1)查找
537
310
  var isInputLeaf = false;
538
311
  var isOutputLeaf = false;
539
312
  if (currNodeLevel === 0) {
540
- isInputLeaf = !dstNodeIdsSet.has(n.id);
541
- isOutputLeaf = !srcNodeIdsSet.has(n.id);
313
+ isInputLeaf = !dstNodeIds.includes(n.id);
314
+ isOutputLeaf = !srcNodeIds.includes(n.id);
542
315
  }
543
316
  else if (currNodeLevel < 0) {
544
- isInputLeaf = !dstNodeIdsSet.has(n.id);
317
+ isInputLeaf = !dstNodeIds.includes(n.id);
545
318
  }
546
319
  else {
547
- isOutputLeaf = !srcNodeIdsSet.has(n.id);
320
+ isOutputLeaf = !srcNodeIds.includes(n.id);
548
321
  }
549
322
  // input node exist & left of start node
550
323
  if (currNodeLevel <= 0 && !isInputLeaf) {
@@ -564,29 +337,25 @@ var TableDataProcessor = /** @class */ (function (_super) {
564
337
  }
565
338
  // column: always true if isStartNode === true
566
339
  var columnRefreshList = n.isStartNode
567
- ? (n.children || []).concat(n.relatedColumns || [])
568
- : (n.relatedColumns || []);
569
- // 处理列的展开/折叠状态
570
- columnRefreshList.forEach(function (col) {
571
- // 重置列状态
340
+ ? __spreadArray(__spreadArray([], __read(n.children), false), __read(n.relatedColumns), false) : n.relatedColumns;
341
+ columnRefreshList === null || columnRefreshList === void 0 ? void 0 : columnRefreshList.forEach(function (col) {
572
342
  col.canExpandInput = false;
573
343
  col.canExpandOutput = false;
574
344
  col.canFoldInput = false;
575
345
  col.canFoldOutput = false;
576
346
  if (!col.isStartNode && !col.isRelatedColumn)
577
347
  return;
578
- // 优化:使用Set进行O(1)查找
579
348
  var isInputLeaf_col = false;
580
349
  var isOutputLeaf_col = false;
581
350
  if (currNodeLevel === 0) {
582
- isInputLeaf_col = !dstNodeIdsSet.has(col.id);
583
- isOutputLeaf_col = !srcNodeIdsSet.has(col.id);
351
+ isInputLeaf_col = !dstNodeIds.includes(col.id);
352
+ isOutputLeaf_col = !srcNodeIds.includes(col.id);
584
353
  }
585
354
  else if (currNodeLevel < 0) {
586
- isInputLeaf_col = !dstNodeIdsSet.has(col.id);
355
+ isInputLeaf_col = !dstNodeIds.includes(col.id);
587
356
  }
588
357
  else {
589
- isOutputLeaf_col = !srcNodeIdsSet.has(col.id);
358
+ isOutputLeaf_col = !srcNodeIds.includes(col.id);
590
359
  }
591
360
  // input node exist & left of start node
592
361
  if (currNodeLevel <= 0 && !isInputLeaf_col) {
@@ -607,10 +376,212 @@ var TableDataProcessor = /** @class */ (function (_super) {
607
376
  });
608
377
  });
609
378
  };
610
- TableDataProcessor.startNodes = [];
611
- // 放在这里,是因为parseData相当于一个工具方法,可以在lineageManager没有初始化的时候,就调用
612
- TableDataProcessor.nodesIdMap = new Map();
613
- return TableDataProcessor;
379
+ DataProcessor.prototype.getNodeType = function (typeCode) {
380
+ return typeCode === 'Table' ? TABLE_NODE : CUSTOM_NODE;
381
+ };
382
+ DataProcessor.prototype.updateNodesVisible = function (data, edgeDashVisible, onlyShowRelated, isFoldChecked) {
383
+ var _this = this;
384
+ if (_.isNil(data))
385
+ return;
386
+ data.nodes.forEach(function (node) {
387
+ var _a, _b;
388
+ node.visible = _this.getNodeVisible(node, data, edgeDashVisible, onlyShowRelated, isFoldChecked);
389
+ (_a = node.relatedColumns) === null || _a === void 0 ? void 0 : _a.forEach(function (col) {
390
+ col.visible = _this.getRelatedNodeVisible(col, data, edgeDashVisible);
391
+ });
392
+ (_b = node.children) === null || _b === void 0 ? void 0 : _b.forEach(function (child) {
393
+ child.visible = _this.getNodeVisible(child, data, edgeDashVisible, onlyShowRelated, isFoldChecked);
394
+ });
395
+ });
396
+ };
397
+ DataProcessor.prototype.updateEdgesVisible = function (data, edgeDashVisible, onlyShowRelated, isFoldChecked) {
398
+ var _this = this;
399
+ if (_.isNil(data))
400
+ return;
401
+ var relatedNodes = {};
402
+ data.nodes.forEach(function (node) {
403
+ var _a;
404
+ if (node.isRelated) {
405
+ relatedNodes[node.id] = node;
406
+ (_a = node.relatedColumns) === null || _a === void 0 ? void 0 : _a.forEach(function (col) {
407
+ if (col.visible) {
408
+ relatedNodes[col.id] = col;
409
+ }
410
+ });
411
+ }
412
+ });
413
+ data.edges.forEach(function (edge) {
414
+ edge.visible = _this.getEdgeVisible(edge, edgeDashVisible, onlyShowRelated, isFoldChecked, relatedNodes);
415
+ });
416
+ };
417
+ DataProcessor.prototype.getNodeVisible = function (nodeConfig, data, edgeDashVisible, onlyShowRelated, isFoldChecked) {
418
+ if (nodeConfig.isStartNode)
419
+ return true;
420
+ if (nodeConfig.isFolded)
421
+ return false;
422
+ // 只显示相关节点 & 该节点不是相关节点 & 该节点不是表,则该节点不可见
423
+ if (onlyShowRelated && !nodeConfig.isRelated && !nodeConfig.tableId)
424
+ return false;
425
+ if (nodeConfig.canBeFold && isFoldChecked)
426
+ return false;
427
+ // 找出所有target、source为该节点的边
428
+ var relatedEdges = data.edges.filter(function (edge) {
429
+ var _a;
430
+ return (
431
+ // 上游表-当前表、当前表-下游表
432
+ edge.target === nodeConfig.id ||
433
+ edge.source === nodeConfig.id ||
434
+ (
435
+ // 上游列-当前列、当前列-下游列
436
+ (_a = nodeConfig === null || nodeConfig === void 0 ? void 0 : nodeConfig.relatedColumns) === null || _a === void 0 ? void 0 : _a.some(function (col) {
437
+ return edge.target === col.id || edge.source === col.id;
438
+ })));
439
+ });
440
+ if (!relatedEdges.length)
441
+ return false;
442
+ var allRelatedNodeInvisible = relatedEdges.every(function (edgeCfg) {
443
+ var srcNode = data.nodes.find(function (node) { return node.id === edgeCfg.source; });
444
+ var tgtNode = data.nodes.find(function (node) { return node.id === edgeCfg.target; });
445
+ if (((srcNode === null || srcNode === void 0 ? void 0 : srcNode.canBeFold) || (tgtNode === null || tgtNode === void 0 ? void 0 : tgtNode.canBeFold)) && isFoldChecked)
446
+ return true;
447
+ });
448
+ if (allRelatedNodeInvisible)
449
+ return false;
450
+ var isAllIndirectEdges = relatedEdges.every(function (edge) { return edge.relationType === EDashType.INDIRECT; });
451
+ // 开关只有true false,直接、间接
452
+ if (edgeDashVisible === EDashType.INDIRECT) {
453
+ return true;
454
+ }
455
+ else {
456
+ // 如果边都是间接边,那么该节点就隐藏
457
+ if (isAllIndirectEdges)
458
+ return false;
459
+ return true;
460
+ }
461
+ };
462
+ DataProcessor.prototype.getRelatedNodeVisible = function (nodeConfig, data, edgeDashVisible) {
463
+ var _a, _b, _c, _d, _e, _f;
464
+ // 仅相关开启的情况下,如果高亮链路是表链路,隐藏非相关的列
465
+ if ((_b = (_a = this.lineageManager) === null || _a === void 0 ? void 0 : _a.rightKeyMenuManager) === null || _b === void 0 ? void 0 : _b.onlyShowRelated) {
466
+ if (!((_e = (_d = (_c = this.lineageManager) === null || _c === void 0 ? void 0 : _c.activeNodes) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.tableName)) {
467
+ if (!_.some((_f = this.lineageManager) === null || _f === void 0 ? void 0 : _f.relatedNodes, { id: nodeConfig.id }))
468
+ return false;
469
+ }
470
+ }
471
+ // 找出所有target、source为该节点的边
472
+ var relatedEdges = data.edges.filter(function (edge) {
473
+ return (edge.target === nodeConfig.id || edge.source === nodeConfig.id) &&
474
+ edge.visible;
475
+ });
476
+ if (!relatedEdges.length)
477
+ return false;
478
+ var isAllIndirectEdges = relatedEdges.every(function (edge) { return edge.relationType === EDashType.INDIRECT; });
479
+ // 开关只有true false,直接、间接
480
+ if (edgeDashVisible === EDashType.INDIRECT) {
481
+ return true;
482
+ }
483
+ else {
484
+ // 如果边都是间接边,那么该节点就隐藏
485
+ if (isAllIndirectEdges)
486
+ return false;
487
+ return true;
488
+ }
489
+ };
490
+ DataProcessor.prototype.getEdgeVisible = function (edgeCfg, edgeDashVisible, onlyShowRelated, isFoldChecked, relatedNodes) {
491
+ var _a, _b, _c;
492
+ // 如果边被折叠了,那么该边就隐藏
493
+ if (edgeCfg.isFolded)
494
+ return false;
495
+ var visible = false;
496
+ // 折叠
497
+ if (isFoldChecked) {
498
+ var foldStatus = (_c = (_b = (_a = this.lineageManager) === null || _a === void 0 ? void 0 : _a.foldLineageManager) === null || _b === void 0 ? void 0 : _b.foldStatusMap) === null || _c === void 0 ? void 0 : _c.get(edgeCfg.foldTableId);
499
+ if (foldStatus) {
500
+ visible = !!edgeCfg.isExtraFoldEdge;
501
+ if (!visible) {
502
+ return visible;
503
+ }
504
+ }
505
+ }
506
+ // 仅相关
507
+ if (onlyShowRelated) {
508
+ var source = edgeCfg.source, target = edgeCfg.target;
509
+ if (relatedNodes[source] && relatedNodes[target]) {
510
+ visible = true;
511
+ }
512
+ else {
513
+ return false;
514
+ }
515
+ }
516
+ switch (edgeDashVisible) {
517
+ case EDashType.DIRECT:
518
+ visible =
519
+ edgeCfg.relationType === EDashType.DIRECT ||
520
+ edgeCfg.relationType === EDashType.ALL;
521
+ break;
522
+ case EDashType.INDIRECT:
523
+ visible = true;
524
+ break;
525
+ }
526
+ return visible;
527
+ };
528
+ DataProcessor.prototype.updateNodesAndEdgesVisible = function (data, edgeDashVisible, onlyShowRelated, isFoldChecked) {
529
+ this.updateEdgesVisible(data, edgeDashVisible, onlyShowRelated, isFoldChecked);
530
+ // 更新节点本身、列、节点children的可见性
531
+ this.updateNodesVisible(data, edgeDashVisible, onlyShowRelated, isFoldChecked);
532
+ };
533
+ DataProcessor.prototype.refreshRelatedNodesAndEdges = function (relatedNodes, relatedEdges) {
534
+ var _this = this;
535
+ relatedNodes.forEach(function (n) {
536
+ if (!n)
537
+ return;
538
+ var nodeConfig = _this.lineageManager.getNodeConfigById(n.id);
539
+ if (!nodeConfig)
540
+ return;
541
+ nodeConfig.isRelated = true;
542
+ nodeConfig.style.stroke = '#3271C9';
543
+ if (!nodeConfig.isActive) {
544
+ nodeConfig.style.fill = '#E4EFFF';
545
+ }
546
+ nodeConfig.style.zIndex = 3;
547
+ });
548
+ relatedEdges.forEach(function (e) {
549
+ if (!e)
550
+ return;
551
+ var edge = _this.lineageManager.getEdgeConfigById(e.id);
552
+ if (!edge)
553
+ return;
554
+ if ((edge.inFoldLink &&
555
+ _this.lineageManager.foldLineageManager.isFoldChecked) ||
556
+ edge.isExtraFoldEdge)
557
+ return;
558
+ edge.style.stroke = '#3271C9';
559
+ });
560
+ };
561
+ DataProcessor.prototype.updateNodeHeight = function (data) {
562
+ var _this = this;
563
+ data.nodes.forEach(function (node) {
564
+ node.style.height = _this.calcNodeHeight(node);
565
+ });
566
+ };
567
+ DataProcessor.prototype.updateColumnPosition = function (data) {
568
+ data.nodes.forEach(function (node) {
569
+ var _a, _b;
570
+ var visibleRelatedColumns = (_a = node.relatedColumns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return col.visible; });
571
+ visibleRelatedColumns === null || visibleRelatedColumns === void 0 ? void 0 : visibleRelatedColumns.forEach(function (col, i) {
572
+ col.position.y = i * COL_HEIGHT;
573
+ });
574
+ var visibleColumns = (_b = node.children) === null || _b === void 0 ? void 0 : _b.filter(function (col) { return col.visible; });
575
+ visibleColumns === null || visibleColumns === void 0 ? void 0 : visibleColumns.forEach(function (col, i) {
576
+ col.position.y = node.position.y + COL_HEIGHT * i;
577
+ });
578
+ });
579
+ };
580
+ DataProcessor.prototype.calcNodeHeight = function (node) {
581
+ return getNodeHeight(node);
582
+ };
583
+ DataProcessor.startNodes = [];
584
+ return DataProcessor;
614
585
  }(BaseManager));
615
- export { TableDataProcessor };
616
- //# sourceMappingURL=TableDataProcessor.js.map
586
+ export { DataProcessor };
587
+ //# sourceMappingURL=DataProcessor.js.map