@aloudata/ink-lineage 0.0.1-beta.2 → 0.0.1-beta.21

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 (50) hide show
  1. package/package.json +10 -7
  2. package/src/assets/big/dataSourceTypeIcon.ts +0 -65
  3. package/src/assets/big/entityType.ts +0 -1
  4. package/src/assets/big/index.ts +0 -5
  5. package/src/assets/big/lineageIcon.ts +0 -35
  6. package/src/assets/big/tableTypeIcon.ts +0 -17
  7. package/src/assets/big/tipIcon.ts +0 -1
  8. package/src/assets/index.ts +0 -14
  9. package/src/components/Edges/DefaultEdge.ts +0 -196
  10. package/src/components/Edges/FoldEdge.ts +0 -97
  11. package/src/components/Edges/LineageEdge.ts +0 -24
  12. package/src/components/Edges/index.ts +0 -3
  13. package/src/components/Nodes/AssetNode.ts +0 -438
  14. package/src/components/Nodes/ColumnNode.ts +0 -491
  15. package/src/components/Nodes/CustomNode.ts +0 -63
  16. package/src/components/Nodes/DefaultNode.ts +0 -74
  17. package/src/components/Nodes/DowngradeNode.ts +0 -115
  18. package/src/components/Nodes/TableNode.ts +0 -534
  19. package/src/components/Nodes/index.ts +0 -4
  20. package/src/components/index.ts +0 -2
  21. package/src/constant/index.ts +0 -1
  22. package/src/constant/nodeStyle.ts +0 -141
  23. package/src/index.ts +0 -6
  24. package/src/manager/BaseManager.ts +0 -20
  25. package/src/manager/DataProcessor.ts +0 -782
  26. package/src/manager/ExpandManager.ts +0 -93
  27. package/src/manager/FoldLineageManager.ts +0 -196
  28. package/src/manager/GraphEventManager.ts +0 -90
  29. package/src/manager/LineageManager.ts +0 -680
  30. package/src/manager/RightKeyMenuManager.ts +0 -114
  31. package/src/manager/SearchNodeManager.ts +0 -188
  32. package/src/manager/ToolbarManager.ts +0 -42
  33. package/src/manager/index.ts +0 -8
  34. package/src/manager/nodeManager/AssetEventManager.ts +0 -442
  35. package/src/manager/nodeManager/BaseEventManager.ts +0 -68
  36. package/src/manager/nodeManager/ColumnEventManager.ts +0 -467
  37. package/src/manager/nodeManager/CustomEventManager.ts +0 -11
  38. package/src/manager/nodeManager/TableEventManager.ts +0 -87
  39. package/src/manager/nodeManager/index.ts +0 -3
  40. package/src/types/NodeConfig.ts +0 -69
  41. package/src/types/eventEnum.ts +0 -58
  42. package/src/types/index.ts +0 -3
  43. package/src/types/manager.ts +0 -75
  44. package/src/types/node.ts +0 -246
  45. package/src/utils/downgradeNode.ts +0 -22
  46. package/src/utils/foldNode.ts +0 -345
  47. package/src/utils/getIconByType.ts +0 -104
  48. package/src/utils/index.ts +0 -3
  49. package/src/utils/node.ts +0 -294
  50. 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
- }