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

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 (44) hide show
  1. package/dist/components/Edges/ClickEdge.d.ts +8 -0
  2. package/dist/components/Edges/ClickEdge.d.ts.map +1 -0
  3. package/dist/components/Edges/ClickEdge.js +68 -0
  4. package/dist/components/Edges/ClickEdge.js.map +1 -0
  5. package/dist/manager/LineageManager.d.ts.map +1 -1
  6. package/dist/manager/LineageManager.js +8 -6
  7. package/dist/manager/LineageManager.js.map +1 -1
  8. package/dist/manager/dataProcessor/ScheduleDataProcessor.d.ts +21 -0
  9. package/dist/manager/dataProcessor/ScheduleDataProcessor.d.ts.map +1 -0
  10. package/dist/manager/dataProcessor/ScheduleDataProcessor.js +349 -0
  11. package/dist/manager/dataProcessor/ScheduleDataProcessor.js.map +1 -0
  12. package/dist/manager/dataProcessor/TableDataProcessor.d.ts +26 -0
  13. package/dist/manager/dataProcessor/TableDataProcessor.d.ts.map +1 -0
  14. package/dist/manager/dataProcessor/TableDataProcessor.js +616 -0
  15. package/dist/manager/dataProcessor/TableDataProcessor.js.map +1 -0
  16. package/dist/manager/dataProcessor/TaskDataProcessor.d.ts +82 -0
  17. package/dist/manager/dataProcessor/TaskDataProcessor.d.ts.map +1 -0
  18. package/dist/manager/dataProcessor/TaskDataProcessor.js +307 -0
  19. package/dist/manager/dataProcessor/TaskDataProcessor.js.map +1 -0
  20. package/dist/manager/graphEventManager/BaseGraphEventManager.d.ts +10 -0
  21. package/dist/manager/graphEventManager/BaseGraphEventManager.d.ts.map +1 -0
  22. package/dist/manager/graphEventManager/BaseGraphEventManager.js +65 -0
  23. package/dist/manager/graphEventManager/BaseGraphEventManager.js.map +1 -0
  24. package/dist/manager/graphEventManager/TableGraphEventManager.d.ts +6 -0
  25. package/dist/manager/graphEventManager/TableGraphEventManager.d.ts.map +1 -0
  26. package/dist/manager/graphEventManager/TableGraphEventManager.js +25 -0
  27. package/dist/manager/graphEventManager/TableGraphEventManager.js.map +1 -0
  28. package/dist/manager/graphEventManager/TaskGraphEventManager.d.ts +6 -0
  29. package/dist/manager/graphEventManager/TaskGraphEventManager.d.ts.map +1 -0
  30. package/dist/manager/graphEventManager/TaskGraphEventManager.js +22 -0
  31. package/dist/manager/graphEventManager/TaskGraphEventManager.js.map +1 -0
  32. package/dist/manager/rightKeyMenu/BaseRightKeyMenuManager.d.ts +40 -0
  33. package/dist/manager/rightKeyMenu/BaseRightKeyMenuManager.d.ts.map +1 -0
  34. package/dist/manager/rightKeyMenu/BaseRightKeyMenuManager.js +93 -0
  35. package/dist/manager/rightKeyMenu/BaseRightKeyMenuManager.js.map +1 -0
  36. package/dist/manager/rightKeyMenu/TableRightKeyMenuManager.d.ts +10 -0
  37. package/dist/manager/rightKeyMenu/TableRightKeyMenuManager.d.ts.map +1 -0
  38. package/dist/manager/rightKeyMenu/TableRightKeyMenuManager.js +29 -0
  39. package/dist/manager/rightKeyMenu/TableRightKeyMenuManager.js.map +1 -0
  40. package/dist/manager/rightKeyMenu/TaskRightKeyMenuManager.d.ts +20 -0
  41. package/dist/manager/rightKeyMenu/TaskRightKeyMenuManager.d.ts.map +1 -0
  42. package/dist/manager/rightKeyMenu/TaskRightKeyMenuManager.js +149 -0
  43. package/dist/manager/rightKeyMenu/TaskRightKeyMenuManager.js.map +1 -0
  44. package/package.json +1 -1
@@ -0,0 +1,616 @@
1
+ import { __assign, __extends, __read, __values } from "tslib";
2
+ import { EDirection, getNodeHeight, groupNodesByEdgesAndDirection, } from '@aloudata/ink-graph-new';
3
+ import { EEntityType, EDashType, } from '../../types';
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() {
10
+ return _super !== null && _super.apply(this, arguments) || this;
11
+ }
12
+ TableDataProcessor.parseData = function (data, startNodes) {
13
+ TableDataProcessor.startNodes = startNodes;
14
+ // parse data here
15
+ var entities = data.entities, relations = data.relations;
16
+ var nodes = TableDataProcessor.parseEntities(entities, startNodes);
17
+ var edges = TableDataProcessor.parseRelations(relations);
18
+ var res = {
19
+ nodes: nodes,
20
+ edges: edges,
21
+ };
22
+ return res;
23
+ };
24
+ TableDataProcessor.parseEntities = function (entities, startNodes) {
25
+ var _this = this;
26
+ var nodesId = [];
27
+ var nodes = [];
28
+ entities.forEach(function (entity) {
29
+ if (nodesId.includes(entity.guid))
30
+ return;
31
+ var isStartNode = startNodes.includes(entity.guid);
32
+ var node = null;
33
+ switch (entity.typeCode) {
34
+ case 'Table':
35
+ case 'View':
36
+ node = TableDataProcessor.parseTableEntity(entity, isStartNode);
37
+ break;
38
+ default:
39
+ node = TableDataProcessor.parseCustomEntity(entity, isStartNode);
40
+ break;
41
+ }
42
+ if (node) {
43
+ nodes.push(node);
44
+ nodesId.push(node.id);
45
+ _this.nodesIdMap.set(node.id, node);
46
+ }
47
+ });
48
+ return nodes;
49
+ };
50
+ TableDataProcessor.parseRelations = function (relations) {
51
+ var _this = this;
52
+ var existedEdgesMap = new Map();
53
+ var edges = [];
54
+ relations.forEach(function (relation) {
55
+ var edgeId = "".concat(relation.srcGuid, "___").concat(relation.dstGuid);
56
+ if (existedEdgesMap.has(edgeId)) {
57
+ if (existedEdgesMap.get(edgeId) !== relation.relationTypeCode) {
58
+ var edge_1 = edges.find(function (e) { return e.id === edgeId; });
59
+ if (edge_1) {
60
+ edge_1.relationType = EDashType.ALL;
61
+ edge_1.style.strokeDasharray = [0];
62
+ }
63
+ }
64
+ return;
65
+ }
66
+ 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
+ var edge = {
75
+ id: edgeId,
76
+ type: edgeType,
77
+ data: __assign({}, relation),
78
+ source: relation.srcGuid,
79
+ target: relation.dstGuid,
80
+ visible: true,
81
+ isActive: false,
82
+ isFolded: false,
83
+ canBeFold: false,
84
+ relationType: isIndirect ? EDashType.INDIRECT : EDashType.DIRECT,
85
+ style: {
86
+ stroke: '#B1B1B1',
87
+ strokeDasharray: isIndirect ? [2] : [0],
88
+ lineWidth: 1,
89
+ },
90
+ points: [],
91
+ };
92
+ edges.push(edge);
93
+ existedEdgesMap.set(edge.id, edge.data.relationTypeCode);
94
+ });
95
+ return edges;
96
+ };
97
+ TableDataProcessor.parseTableEntity = function (entity, isStartNode) {
98
+ var _a, _b, _c, _d, _e, _f, _g;
99
+ var cols = Array.isArray((_a = entity.properties) === null || _a === void 0 ? void 0 : _a.columns)
100
+ ? ((_c = (_b = entity.properties) === null || _b === void 0 ? void 0 : _b.columns) === null || _c === void 0 ? void 0 : _c.map(function (col) {
101
+ var _a;
102
+ return TableDataProcessor.parseColumn(col, isStartNode, entity.guid, (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.name);
103
+ })) || []
104
+ : [];
105
+ // 只有起始资产的relatedCols一开始有元素
106
+ var relatedCols = Array.isArray((_d = entity.properties) === null || _d === void 0 ? void 0 : _d.columns)
107
+ ? ((_f = (_e = entity.properties) === null || _e === void 0 ? void 0 : _e.columns) === null || _f === void 0 ? void 0 : _f.map(function (col) {
108
+ var _a;
109
+ return TableDataProcessor.parseRelatedColumn(col, isStartNode, entity.guid, (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.name);
110
+ })) || []
111
+ : [];
112
+ var data = {
113
+ id: entity.guid,
114
+ 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 }),
116
+ style: {
117
+ width: NODE_WIDTH + 2,
118
+ height: TABLE_HEADER_HEIGHT,
119
+ headerHeight: TABLE_HEADER_HEIGHT,
120
+ },
121
+ position: {
122
+ x: 0,
123
+ y: 0,
124
+ },
125
+ isStartNode: isStartNode,
126
+ isOpen: isStartNode,
127
+ visible: true,
128
+ isRelated: false,
129
+ isFolded: false,
130
+ isExpandOutput: false,
131
+ isExpandInput: false,
132
+ canExpandInput: false,
133
+ canExpandOutput: false,
134
+ canFoldInput: false,
135
+ canFoldOutput: false,
136
+ hasMoreInput: true,
137
+ hasMoreOutput: true,
138
+ children: cols,
139
+ pagination: {
140
+ pageNum: 1,
141
+ pageSize: 10,
142
+ total: 0,
143
+ totalPage: 0,
144
+ },
145
+ relatedColumns: relatedCols,
146
+ };
147
+ data.style.height = getNodeHeight(data);
148
+ return data;
149
+ };
150
+ TableDataProcessor.parseColumn = function (column, isStartNode, tableId, tableName) {
151
+ return {
152
+ data: __assign({}, column),
153
+ type: '',
154
+ style: {
155
+ width: NODE_WIDTH + 2,
156
+ height: COL_HEIGHT,
157
+ headerHeight: COL_HEIGHT,
158
+ },
159
+ position: { x: 8, y: 0 },
160
+ id: column.guid,
161
+ tableId: tableId,
162
+ tableName: column.tableName || tableName,
163
+ visible: true,
164
+ isFolded: false,
165
+ isStartNode: isStartNode,
166
+ isRelated: false,
167
+ canExpandInput: false,
168
+ canExpandOutput: false,
169
+ canFoldInput: false,
170
+ canFoldOutput: false,
171
+ hasMoreInput: true,
172
+ hasMoreOutput: true,
173
+ };
174
+ };
175
+ TableDataProcessor.parseRelatedColumn = function (column, isStartNode, tableId, tableName) {
176
+ return {
177
+ data: __assign({}, column),
178
+ type: '',
179
+ style: {
180
+ width: NODE_WIDTH + 2,
181
+ height: COL_HEIGHT,
182
+ headerHeight: COL_HEIGHT,
183
+ },
184
+ position: { x: 0, y: 0 },
185
+ id: column.guid,
186
+ tableId: tableId,
187
+ tableName: column.tableName || tableName,
188
+ visible: true,
189
+ isFolded: false,
190
+ isStartNode: isStartNode,
191
+ isRelated: true,
192
+ isRelatedColumn: true,
193
+ canExpandInput: false,
194
+ canExpandOutput: false,
195
+ canFoldInput: false,
196
+ canFoldOutput: false,
197
+ hasMoreInput: true,
198
+ hasMoreOutput: true,
199
+ };
200
+ };
201
+ TableDataProcessor.parseCustomEntity = function (entity, isStartNode) {
202
+ var _a, _b, _c, _d;
203
+ var data = {
204
+ id: entity.guid,
205
+ type: CUSTOM_NODE,
206
+ data: __assign(__assign({}, entity.properties), { type: ((_a = entity.properties) === null || _a === void 0 ? void 0 : _a.type) || EEntityType.TABLE, guid: entity.guid, typeCode: entity.typeCode, typeCodeName: entity.typeCodeName }),
207
+ style: {
208
+ width: NODE_WIDTH + 2,
209
+ height: TABLE_HEADER_HEIGHT,
210
+ headerHeight: TABLE_HEADER_HEIGHT,
211
+ },
212
+ position: {
213
+ x: 0,
214
+ y: 0,
215
+ },
216
+ isStartNode: isStartNode,
217
+ isOpen: isStartNode,
218
+ visible: true,
219
+ isRelated: false,
220
+ canExpandInput: false,
221
+ canExpandOutput: false,
222
+ canFoldInput: false,
223
+ canFoldOutput: false,
224
+ hasMoreInput: true,
225
+ hasMoreOutput: true,
226
+ children: Array.isArray((_b = entity.properties) === null || _b === void 0 ? void 0 : _b.columns)
227
+ ? ((_d = (_c = entity.properties) === null || _c === void 0 ? void 0 : _c.columns) === null || _d === void 0 ? void 0 : _d.map(function (col) {
228
+ var _a;
229
+ return TableDataProcessor.parseColumn(col, isStartNode, entity.guid, (_a = entity.properties) === null || _a === void 0 ? void 0 : _a.name);
230
+ })) || []
231
+ : [],
232
+ pagination: {
233
+ pageNum: 1,
234
+ pageSize: 10,
235
+ total: 0,
236
+ totalPage: 0,
237
+ },
238
+ relatedColumns: [],
239
+ };
240
+ data.style.height = getNodeHeight(data);
241
+ return data;
242
+ };
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;
459
+ if (_.isNil(data))
460
+ return;
461
+ var nodesConfig = data.nodes.filter(function (cfg) { return cfg.visible; });
462
+ var edgesConfig = data.edges.filter(function (cfg) { return cfg.visible; });
463
+ if (!nodesConfig.length)
464
+ return;
465
+ var startNodeIndex = nodesConfig.findIndex(function (node) { return node.isStartNode; });
466
+ if (startNodeIndex < 0)
467
+ return;
468
+ var startNodeCfg = nodesConfig[startNodeIndex];
469
+ if (!startNodeCfg)
470
+ return;
471
+ var nodesConfigMap = new Map();
472
+ nodesConfig.forEach(function (n) {
473
+ var _a;
474
+ nodesConfigMap.set(n.id, n);
475
+ (_a = n.children) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {
476
+ nodesConfigMap.set(child.id, child);
477
+ });
478
+ });
479
+ var inputGroupedData = groupNodesByEdgesAndDirection(startNodeCfg, nodesConfigMap, edgesConfig, EDirection.INPUT);
480
+ var outputGroupedData = groupNodesByEdgesAndDirection(startNodeCfg, nodesConfigMap, edgesConfig, EDirection.OUTPUT);
481
+ if (!inputGroupedData && !outputGroupedData)
482
+ return;
483
+ var inputGroupNodes = inputGroupedData.groupedNodes;
484
+ var outputGroupNodes = outputGroupedData.groupedNodes;
485
+ // 优化Map合并:直接使用inputGroupNodes作为基础,避免重复has()调用
486
+ var groupedNodes = new Map(inputGroupNodes || []);
487
+ if (outputGroupNodes) {
488
+ 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
+ }
494
+ }
495
+ }
496
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
497
+ finally {
498
+ try {
499
+ if (outputGroupNodes_1_1 && !outputGroupNodes_1_1.done && (_a = outputGroupNodes_1.return)) _a.call(outputGroupNodes_1);
500
+ }
501
+ finally { if (e_1) throw e_1.error; }
502
+ }
503
+ }
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);
518
+ }
519
+ if (target === ((_b = _this.lineageManager.activeNodes[0]) === null || _b === void 0 ? void 0 : _b.id)) {
520
+ dstNodeIdsSet.add(target);
521
+ }
522
+ }
523
+ });
524
+ // 优化节点处理逻辑
525
+ nodesConfig.forEach(function (n) {
526
+ // 重置状态
527
+ n.canExpandInput = false;
528
+ n.canExpandOutput = false;
529
+ n.canFoldInput = false;
530
+ n.canFoldOutput = false;
531
+ var currNodeLevel = groupedNodes.get(n.id);
532
+ if (_.isNil(currNodeLevel)) {
533
+ console.warn("get node level error '".concat(n.id, "'"));
534
+ return;
535
+ }
536
+ // 优化:使用Set的has()方法进行O(1)查找
537
+ var isInputLeaf = false;
538
+ var isOutputLeaf = false;
539
+ if (currNodeLevel === 0) {
540
+ isInputLeaf = !dstNodeIdsSet.has(n.id);
541
+ isOutputLeaf = !srcNodeIdsSet.has(n.id);
542
+ }
543
+ else if (currNodeLevel < 0) {
544
+ isInputLeaf = !dstNodeIdsSet.has(n.id);
545
+ }
546
+ else {
547
+ isOutputLeaf = !srcNodeIdsSet.has(n.id);
548
+ }
549
+ // input node exist & left of start node
550
+ if (currNodeLevel <= 0 && !isInputLeaf) {
551
+ n.canFoldInput = true;
552
+ }
553
+ // input node not exist & left of start node
554
+ if (currNodeLevel <= 0 && isInputLeaf && n.hasMoreInput) {
555
+ n.canExpandInput = true;
556
+ }
557
+ // output node exist & right of start node
558
+ if (currNodeLevel >= 0 && !isOutputLeaf) {
559
+ n.canFoldOutput = true;
560
+ }
561
+ // output node not exist & right of start node
562
+ if (currNodeLevel >= 0 && isOutputLeaf && n.hasMoreOutput) {
563
+ n.canExpandOutput = true;
564
+ }
565
+ // column: always true if isStartNode === true
566
+ var columnRefreshList = n.isStartNode
567
+ ? (n.children || []).concat(n.relatedColumns || [])
568
+ : (n.relatedColumns || []);
569
+ // 处理列的展开/折叠状态
570
+ columnRefreshList.forEach(function (col) {
571
+ // 重置列状态
572
+ col.canExpandInput = false;
573
+ col.canExpandOutput = false;
574
+ col.canFoldInput = false;
575
+ col.canFoldOutput = false;
576
+ if (!col.isStartNode && !col.isRelatedColumn)
577
+ return;
578
+ // 优化:使用Set进行O(1)查找
579
+ var isInputLeaf_col = false;
580
+ var isOutputLeaf_col = false;
581
+ if (currNodeLevel === 0) {
582
+ isInputLeaf_col = !dstNodeIdsSet.has(col.id);
583
+ isOutputLeaf_col = !srcNodeIdsSet.has(col.id);
584
+ }
585
+ else if (currNodeLevel < 0) {
586
+ isInputLeaf_col = !dstNodeIdsSet.has(col.id);
587
+ }
588
+ else {
589
+ isOutputLeaf_col = !srcNodeIdsSet.has(col.id);
590
+ }
591
+ // input node exist & left of start node
592
+ if (currNodeLevel <= 0 && !isInputLeaf_col) {
593
+ col.canFoldInput = true;
594
+ }
595
+ // input node not exist & left of start node
596
+ if (currNodeLevel <= 0 && isInputLeaf_col && col.hasMoreInput) {
597
+ col.canExpandInput = true;
598
+ }
599
+ // output node exist & right of start node
600
+ if (currNodeLevel >= 0 && !isOutputLeaf_col) {
601
+ col.canFoldOutput = true;
602
+ }
603
+ // output node not exist & right of start node
604
+ if (currNodeLevel >= 0 && isOutputLeaf_col && col.hasMoreOutput) {
605
+ col.canExpandOutput = true;
606
+ }
607
+ });
608
+ });
609
+ };
610
+ TableDataProcessor.startNodes = [];
611
+ // 放在这里,是因为parseData相当于一个工具方法,可以在lineageManager没有初始化的时候,就调用
612
+ TableDataProcessor.nodesIdMap = new Map();
613
+ return TableDataProcessor;
614
+ }(BaseManager));
615
+ export { TableDataProcessor };
616
+ //# sourceMappingURL=TableDataProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableDataProcessor.js","sourceRoot":"","sources":["../../../src/manager/dataProcessor/TableDataProcessor.ts"],"names":[],"mappings":"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"}