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

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 (234) 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 +28 -0
  30. package/dist/components/Edges/DefaultEdge.d.ts.map +1 -0
  31. package/dist/components/Edges/DefaultEdge.js +144 -0
  32. package/dist/components/Edges/DefaultEdge.js.map +1 -0
  33. package/dist/components/Edges/FoldEdge.d.ts +12 -0
  34. package/dist/components/Edges/FoldEdge.d.ts.map +1 -0
  35. package/dist/components/Edges/FoldEdge.js +91 -0
  36. package/dist/components/Edges/FoldEdge.js.map +1 -0
  37. package/dist/components/Edges/LineageEdge.d.ts +10 -0
  38. package/dist/components/Edges/LineageEdge.d.ts.map +1 -0
  39. package/dist/components/Edges/LineageEdge.js +24 -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 +26 -0
  46. package/dist/components/Nodes/AssetNode.d.ts.map +1 -0
  47. package/dist/components/Nodes/AssetNode.js +354 -0
  48. package/dist/components/Nodes/AssetNode.js.map +1 -0
  49. package/dist/components/Nodes/ColumnNode.d.ts +24 -0
  50. package/dist/components/Nodes/ColumnNode.d.ts.map +1 -0
  51. package/dist/components/Nodes/ColumnNode.js +387 -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 +59 -0
  56. package/dist/components/Nodes/CustomNode.js.map +1 -0
  57. package/dist/components/Nodes/DefaultNode.d.ts +20 -0
  58. package/dist/components/Nodes/DefaultNode.d.ts.map +1 -0
  59. package/dist/components/Nodes/DefaultNode.js +48 -0
  60. package/dist/components/Nodes/DefaultNode.js.map +1 -0
  61. package/dist/components/Nodes/DowngradeNode.d.ts +11 -0
  62. package/dist/components/Nodes/DowngradeNode.d.ts.map +1 -0
  63. package/dist/components/Nodes/DowngradeNode.js +89 -0
  64. package/dist/components/Nodes/DowngradeNode.js.map +1 -0
  65. package/dist/components/Nodes/TableNode.d.ts +25 -0
  66. package/dist/components/Nodes/TableNode.d.ts.map +1 -0
  67. package/dist/components/Nodes/TableNode.js +410 -0
  68. package/dist/components/Nodes/TableNode.js.map +1 -0
  69. package/dist/components/Nodes/index.d.ts +5 -0
  70. package/dist/components/Nodes/index.d.ts.map +1 -0
  71. package/{src/components/Nodes/index.ts → dist/components/Nodes/index.js} +1 -0
  72. package/dist/components/Nodes/index.js.map +1 -0
  73. package/dist/components/index.d.ts +3 -0
  74. package/dist/components/index.d.ts.map +1 -0
  75. package/dist/components/index.js +3 -0
  76. package/dist/components/index.js.map +1 -0
  77. package/dist/constant/index.d.ts +2 -0
  78. package/dist/constant/index.d.ts.map +1 -0
  79. package/dist/constant/index.js +2 -0
  80. package/dist/constant/index.js.map +1 -0
  81. package/dist/constant/nodeStyle.d.ts +76 -0
  82. package/dist/constant/nodeStyle.d.ts.map +1 -0
  83. package/dist/constant/nodeStyle.js +112 -0
  84. package/dist/constant/nodeStyle.js.map +1 -0
  85. package/dist/index.d.ts +6 -0
  86. package/dist/index.d.ts.map +1 -0
  87. package/{src/index.ts → dist/index.js} +1 -1
  88. package/dist/index.js.map +1 -0
  89. package/dist/manager/BaseManager.d.ts +10 -0
  90. package/dist/manager/BaseManager.d.ts.map +1 -0
  91. package/dist/manager/BaseManager.js +11 -0
  92. package/dist/manager/BaseManager.js.map +1 -0
  93. package/dist/manager/DataProcessor.d.ts +31 -0
  94. package/dist/manager/DataProcessor.d.ts.map +1 -0
  95. package/dist/manager/DataProcessor.js +561 -0
  96. package/dist/manager/DataProcessor.js.map +1 -0
  97. package/dist/manager/ExpandManager.d.ts +15 -0
  98. package/dist/manager/ExpandManager.d.ts.map +1 -0
  99. package/dist/manager/ExpandManager.js +75 -0
  100. package/dist/manager/ExpandManager.js.map +1 -0
  101. package/dist/manager/FoldLineageManager.d.ts +29 -0
  102. package/dist/manager/FoldLineageManager.d.ts.map +1 -0
  103. package/dist/manager/FoldLineageManager.js +156 -0
  104. package/dist/manager/FoldLineageManager.js.map +1 -0
  105. package/dist/manager/GraphEventManager.d.ts +13 -0
  106. package/dist/manager/GraphEventManager.d.ts.map +1 -0
  107. package/dist/manager/GraphEventManager.js +65 -0
  108. package/dist/manager/GraphEventManager.js.map +1 -0
  109. package/dist/manager/LineageManager.d.ts +108 -0
  110. package/dist/manager/LineageManager.d.ts.map +1 -0
  111. package/dist/manager/LineageManager.js +459 -0
  112. package/dist/manager/LineageManager.js.map +1 -0
  113. package/dist/manager/RightKeyMenuManager.d.ts +24 -0
  114. package/dist/manager/RightKeyMenuManager.d.ts.map +1 -0
  115. package/dist/manager/RightKeyMenuManager.js +80 -0
  116. package/dist/manager/RightKeyMenuManager.js.map +1 -0
  117. package/dist/manager/SearchNodeManager.d.ts +36 -0
  118. package/dist/manager/SearchNodeManager.d.ts.map +1 -0
  119. package/dist/manager/SearchNodeManager.js +131 -0
  120. package/dist/manager/SearchNodeManager.js.map +1 -0
  121. package/dist/manager/ToolbarManager.d.ts +13 -0
  122. package/dist/manager/ToolbarManager.d.ts.map +1 -0
  123. package/dist/manager/ToolbarManager.js +22 -0
  124. package/dist/manager/ToolbarManager.js.map +1 -0
  125. package/dist/manager/index.d.ts +9 -0
  126. package/dist/manager/index.d.ts.map +1 -0
  127. package/{src/manager/index.ts → dist/manager/index.js} +1 -0
  128. package/dist/manager/index.js.map +1 -0
  129. package/dist/manager/nodeManager/AssetEventManager.d.ts +22 -0
  130. package/dist/manager/nodeManager/AssetEventManager.d.ts.map +1 -0
  131. package/dist/manager/nodeManager/AssetEventManager.js +327 -0
  132. package/dist/manager/nodeManager/AssetEventManager.js.map +1 -0
  133. package/dist/manager/nodeManager/BaseEventManager.d.ts +21 -0
  134. package/dist/manager/nodeManager/BaseEventManager.d.ts.map +1 -0
  135. package/dist/manager/nodeManager/BaseEventManager.js +43 -0
  136. package/dist/manager/nodeManager/BaseEventManager.js.map +1 -0
  137. package/dist/manager/nodeManager/ColumnEventManager.d.ts +20 -0
  138. package/dist/manager/nodeManager/ColumnEventManager.d.ts.map +1 -0
  139. package/dist/manager/nodeManager/ColumnEventManager.js +354 -0
  140. package/dist/manager/nodeManager/ColumnEventManager.js.map +1 -0
  141. package/dist/manager/nodeManager/CustomEventManager.d.ts +7 -0
  142. package/dist/manager/nodeManager/CustomEventManager.d.ts.map +1 -0
  143. package/dist/manager/nodeManager/CustomEventManager.js +14 -0
  144. package/dist/manager/nodeManager/CustomEventManager.js.map +1 -0
  145. package/dist/manager/nodeManager/TableEventManager.d.ts +10 -0
  146. package/dist/manager/nodeManager/TableEventManager.d.ts.map +1 -0
  147. package/dist/manager/nodeManager/TableEventManager.js +78 -0
  148. package/dist/manager/nodeManager/TableEventManager.js.map +1 -0
  149. package/dist/manager/nodeManager/index.d.ts +4 -0
  150. package/dist/manager/nodeManager/index.d.ts.map +1 -0
  151. package/{src/manager/nodeManager/index.ts → dist/manager/nodeManager/index.js} +2 -1
  152. package/dist/manager/nodeManager/index.js.map +1 -0
  153. package/{src/types/NodeConfig.ts → dist/types/NodeConfig.d.ts} +17 -19
  154. package/dist/types/NodeConfig.d.ts.map +1 -0
  155. package/dist/types/NodeConfig.js +2 -0
  156. package/dist/types/NodeConfig.js.map +1 -0
  157. package/dist/types/eventEnum.d.ts +42 -0
  158. package/dist/types/eventEnum.d.ts.map +1 -0
  159. package/dist/types/eventEnum.js +46 -0
  160. package/dist/types/eventEnum.js.map +1 -0
  161. package/dist/types/index.d.ts +4 -0
  162. package/dist/types/index.d.ts.map +1 -0
  163. package/dist/types/index.js +4 -0
  164. package/dist/types/index.js.map +1 -0
  165. package/dist/types/manager.d.ts +40 -0
  166. package/dist/types/manager.d.ts.map +1 -0
  167. package/dist/types/manager.js +34 -0
  168. package/dist/types/manager.js.map +1 -0
  169. package/dist/types/node.d.ts +201 -0
  170. package/dist/types/node.d.ts.map +1 -0
  171. package/dist/types/node.js +129 -0
  172. package/dist/types/node.js.map +1 -0
  173. package/dist/utils/downgradeNode.d.ts +15 -0
  174. package/dist/utils/downgradeNode.d.ts.map +1 -0
  175. package/{src/utils/downgradeNode.ts → dist/utils/downgradeNode.js} +3 -5
  176. package/dist/utils/downgradeNode.js.map +1 -0
  177. package/dist/utils/foldNode.d.ts +14 -0
  178. package/dist/utils/foldNode.d.ts.map +1 -0
  179. package/dist/utils/foldNode.js +232 -0
  180. package/dist/utils/foldNode.js.map +1 -0
  181. package/dist/utils/getIconByType.d.ts +4 -0
  182. package/dist/utils/getIconByType.d.ts.map +1 -0
  183. package/dist/utils/getIconByType.js +72 -0
  184. package/dist/utils/getIconByType.js.map +1 -0
  185. package/dist/utils/index.d.ts +4 -0
  186. package/dist/utils/index.d.ts.map +1 -0
  187. package/{src/utils/index.ts → dist/utils/index.js} +1 -0
  188. package/dist/utils/index.js.map +1 -0
  189. package/dist/utils/node.d.ts +14 -0
  190. package/dist/utils/node.d.ts.map +1 -0
  191. package/dist/utils/node.js +242 -0
  192. package/dist/utils/node.js.map +1 -0
  193. package/package.json +6 -5
  194. package/src/assets/big/dataSourceTypeIcon.ts +0 -65
  195. package/src/assets/big/entityType.ts +0 -1
  196. package/src/assets/big/lineageIcon.ts +0 -35
  197. package/src/assets/big/tableTypeIcon.ts +0 -17
  198. package/src/assets/big/tipIcon.ts +0 -1
  199. package/src/assets/index.ts +0 -14
  200. package/src/components/Edges/DefaultEdge.ts +0 -196
  201. package/src/components/Edges/FoldEdge.ts +0 -97
  202. package/src/components/Edges/LineageEdge.ts +0 -24
  203. package/src/components/Edges/index.ts +0 -3
  204. package/src/components/Nodes/AssetNode.ts +0 -438
  205. package/src/components/Nodes/ColumnNode.ts +0 -491
  206. package/src/components/Nodes/CustomNode.ts +0 -63
  207. package/src/components/Nodes/DefaultNode.ts +0 -74
  208. package/src/components/Nodes/DowngradeNode.ts +0 -115
  209. package/src/components/Nodes/TableNode.ts +0 -534
  210. package/src/components/index.ts +0 -2
  211. package/src/constant/index.ts +0 -1
  212. package/src/constant/nodeStyle.ts +0 -141
  213. package/src/manager/BaseManager.ts +0 -20
  214. package/src/manager/DataProcessor.ts +0 -782
  215. package/src/manager/ExpandManager.ts +0 -93
  216. package/src/manager/FoldLineageManager.ts +0 -196
  217. package/src/manager/GraphEventManager.ts +0 -90
  218. package/src/manager/LineageManager.ts +0 -680
  219. package/src/manager/RightKeyMenuManager.ts +0 -114
  220. package/src/manager/SearchNodeManager.ts +0 -188
  221. package/src/manager/ToolbarManager.ts +0 -42
  222. package/src/manager/nodeManager/AssetEventManager.ts +0 -442
  223. package/src/manager/nodeManager/BaseEventManager.ts +0 -68
  224. package/src/manager/nodeManager/ColumnEventManager.ts +0 -467
  225. package/src/manager/nodeManager/CustomEventManager.ts +0 -11
  226. package/src/manager/nodeManager/TableEventManager.ts +0 -87
  227. package/src/types/eventEnum.ts +0 -58
  228. package/src/types/index.ts +0 -3
  229. package/src/types/manager.ts +0 -75
  230. package/src/types/node.ts +0 -246
  231. package/src/utils/foldNode.ts +0 -345
  232. package/src/utils/getIconByType.ts +0 -104
  233. package/src/utils/node.ts +0 -294
  234. package/tsconfig.json +0 -30
@@ -1,7 +1,5 @@
1
- import { customTableColorVar, TABLE_RECT_BORDER_RADIUS, tableColorVar } from "../constant";
2
1
  import { ECustomEvents, EEntityType, ETableEvents } from "../types";
3
-
4
- export function getEventTypeByEntityType(entityType: EEntityType) {
2
+ export function getEventTypeByEntityType(entityType) {
5
3
  if (entityType === EEntityType.CUSTOM) {
6
4
  return {
7
5
  headerClick: ECustomEvents.HEADER_CLICK,
@@ -11,7 +9,6 @@ export function getEventTypeByEntityType(entityType: EEntityType) {
11
9
  hotspotExpand: ECustomEvents.HOTSPOT_EXPAND,
12
10
  };
13
11
  }
14
-
15
12
  return {
16
13
  headerClick: ETableEvents.HEADER_CLICK,
17
14
  contextmenu: ETableEvents.CONTEXT_MENU,
@@ -19,4 +16,5 @@ export function getEventTypeByEntityType(entityType: EEntityType) {
19
16
  rightIconClick: ETableEvents.RIGHT_ICON_CLICK,
20
17
  hotspotExpand: ETableEvents.HOTSPOT_EXPAND,
21
18
  };
22
- }
19
+ }
20
+ //# sourceMappingURL=downgradeNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"downgradeNode.js","sourceRoot":"","sources":["../../src/utils/downgradeNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpE,MAAM,UAAU,wBAAwB,CAAC,UAAuB;IAC5D,IAAI,UAAU,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO;YACH,WAAW,EAAE,aAAa,CAAC,YAAY;YACvC,WAAW,EAAE,aAAa,CAAC,YAAY;YACvC,aAAa,EAAE,aAAa,CAAC,eAAe;YAC5C,cAAc,EAAE,aAAa,CAAC,gBAAgB;YAC9C,aAAa,EAAE,aAAa,CAAC,cAAc;SAC9C,CAAC;IACN,CAAC;IAED,OAAO;QACH,WAAW,EAAE,YAAY,CAAC,YAAY;QACtC,WAAW,EAAE,YAAY,CAAC,YAAY;QACtC,aAAa,EAAE,YAAY,CAAC,eAAe;QAC3C,cAAc,EAAE,YAAY,CAAC,gBAAgB;QAC7C,aAAa,EAAE,YAAY,CAAC,cAAc;KAC7C,CAAC;AACN,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { IColResBase, IEdgeConfig, INodeConfig, TDataBase } from '../types';
2
+ import { IFoldGroup, InkLineageManager } from '..';
3
+ export declare function getFoldNodes<TTableData extends TDataBase<TColumnData>, TColumnData extends IColResBase>(nodes: INodeConfig<TTableData, TColumnData>[], edges: IEdgeConfig[], lineageMgr: InkLineageManager<TTableData, TColumnData>): INodeConfig<TTableData, TColumnData>[];
4
+ export declare function getFoldNodesGroup<TTableData extends {
5
+ columns?: Array<TColumnData>;
6
+ name: string;
7
+ type?: string;
8
+ }, TColumnData extends IColResBase>(nodesConfig: INodeConfig<TTableData, TColumnData>[], edgesConfig: IEdgeConfig[]): INodeConfig<TTableData, TColumnData>[][];
9
+ export declare function getFoldNodesGroupMap<TTableData extends {
10
+ columns?: Array<TColumnData>;
11
+ name: string;
12
+ type?: string;
13
+ }, TColumnData extends IColResBase>(lineageMgr: InkLineageManager<TTableData, TColumnData>, nodesConfigGroup: INodeConfig<TTableData, TColumnData>[][], edgesConfig: IEdgeConfig[]): Map<string, IFoldGroup<TTableData, TColumnData>>;
14
+ //# sourceMappingURL=foldNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foldNode.d.ts","sourceRoot":"","sources":["../../src/utils/foldNode.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,WAAW,EAEX,WAAW,EACX,WAAW,EACX,SAAS,EACV,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AA0HnD,wBAAgB,YAAY,CAAC,UAAU,SAAS,SAAS,CAAC,WAAW,CAAC,EAAE,WAAW,SAAS,WAAW,EACrG,KAAK,EAAE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EAC7C,KAAK,EAAE,WAAW,EAAE,EACpB,UAAU,EAAE,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,0CAkEvD;AAGD,wBAAgB,iBAAiB,CAAC,UAAU,SAAS;IACnD,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EAAE,WAAW,SAAS,WAAW,EAChC,WAAW,EAAE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EACnD,WAAW,EAAE,WAAW,EAAE,GACzB,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,CAa1C;AAGD,wBAAgB,oBAAoB,CAAC,UAAU,SAAS;IACtD,OAAO,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,EAAE,WAAW,SAAS,WAAW,EAChC,UAAU,EAAE,iBAAiB,CAAC,UAAU,EAAE,WAAW,CAAC,EACtD,gBAAgB,EAAE,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,EAC1D,WAAW,EAAE,WAAW,EAAE,oDA8G3B"}
@@ -0,0 +1,232 @@
1
+ import { __read, __spreadArray, __values } from "tslib";
2
+ import { FOLD_EDGE, LINEAGE_EDGE } from '../constant';
3
+ import { EDashType, ERelationType, } from '../types';
4
+ function getRootNodesId(nodesConfig, allNodesId, edgesConfig) {
5
+ var downstreamNodesId = new Set(edgesConfig.map(function (edge) { return edge.target; }));
6
+ var rootNodesId = __spreadArray([], __read(allNodesId), false).filter(function (INodeId) { return !downstreamNodesId.has(INodeId); });
7
+ var rootNodes = nodesConfig.filter(function (nodeCfg) {
8
+ return rootNodesId.includes(nodeCfg.id);
9
+ });
10
+ return rootNodes.map(function (node) { return node.id; });
11
+ }
12
+ function getFoldNodeGroup(nodeId, nodesConfig, edgesConfig) {
13
+ var downstreamNodes = getDownstreamINodes(nodeId, edgesConfig);
14
+ var subtree = [nodesConfig.find(function (nodeCfg) { return nodeCfg.id === nodeId; })];
15
+ downstreamNodes.forEach(function (downstreamNodeId) {
16
+ subtree.push.apply(subtree, __spreadArray([], __read(getFoldNodeGroup(downstreamNodeId, nodesConfig, edgesConfig)), false));
17
+ });
18
+ return subtree;
19
+ }
20
+ function getDownstreamINodes(nodeId, edgesConfig) {
21
+ return edgesConfig
22
+ .filter(function (edgeCfg) { return edgeCfg.source === nodeId; })
23
+ .map(function (edgeCfg) { return edgeCfg.target; });
24
+ }
25
+ function getUpstreamTableId(nodeId, edgesConfig) {
26
+ var validEdge = edgesConfig.find(function (edge) {
27
+ return (edge.target === nodeId &&
28
+ (edge.relationType === EDashType.ALL ||
29
+ edge.relationType === EDashType.DIRECT));
30
+ });
31
+ if (!validEdge)
32
+ return '';
33
+ return validEdge.source;
34
+ }
35
+ function getDownstreamTableId(nodeId, edgesConfig) {
36
+ var validEdge = edgesConfig.find(function (edge) {
37
+ return (edge.source === nodeId &&
38
+ (edge.relationType === EDashType.ALL ||
39
+ edge.relationType === EDashType.DIRECT));
40
+ });
41
+ if (!validEdge)
42
+ return '';
43
+ return validEdge.target;
44
+ }
45
+ function findColumnsWithDirectEdges(columns, edges) {
46
+ var e_1, _a;
47
+ var result = [];
48
+ var _loop_1 = function (column) {
49
+ var upstreamEdges = edges.filter(function (edge) {
50
+ return edge.target === column.id &&
51
+ edge.relationType === EDashType.DIRECT &&
52
+ edge.data.fold === true;
53
+ });
54
+ var downstreamEdges = edges.filter(function (edge) {
55
+ return edge.source === column.id &&
56
+ edge.relationType === EDashType.DIRECT &&
57
+ edge.data.fold === true;
58
+ });
59
+ if (upstreamEdges.length === 1 && downstreamEdges.length === 1) {
60
+ result.push({
61
+ column: column,
62
+ inputEdge: upstreamEdges[0],
63
+ outputEdge: downstreamEdges[0],
64
+ });
65
+ }
66
+ };
67
+ try {
68
+ for (var columns_1 = __values(columns), columns_1_1 = columns_1.next(); !columns_1_1.done; columns_1_1 = columns_1.next()) {
69
+ var column = columns_1_1.value;
70
+ _loop_1(column);
71
+ }
72
+ }
73
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
74
+ finally {
75
+ try {
76
+ if (columns_1_1 && !columns_1_1.done && (_a = columns_1.return)) _a.call(columns_1);
77
+ }
78
+ finally { if (e_1) throw e_1.error; }
79
+ }
80
+ return result;
81
+ }
82
+ // step 1: find all fold nodes
83
+ export function getFoldNodes(nodes, edges, lineageMgr) {
84
+ var foldNodes = [];
85
+ nodes.forEach(function (node) {
86
+ var _a, _b, _c, _d;
87
+ if (node.isStartNode)
88
+ return;
89
+ var relatedColumns = node.relatedColumns;
90
+ // 只有一个列满足其上下游均为直接边,且直接边只有一条,表示该列可以被折叠
91
+ var canBeFoldColumns = findColumnsWithDirectEdges(relatedColumns, edges);
92
+ if (canBeFoldColumns.length !== 1)
93
+ return;
94
+ var tableInputEdges = [];
95
+ var tableOutputEdges = [];
96
+ // 且该列的上下游relation只有一个且只能是fold为true
97
+ edges.forEach(function (edge) {
98
+ if (tableInputEdges.length > 1 || tableOutputEdges.length > 1) {
99
+ return;
100
+ }
101
+ if (edge.target === node.id &&
102
+ (edge.relationType === EDashType.DIRECT ||
103
+ edge.relationType === EDashType.ALL)) {
104
+ tableInputEdges.push(edge);
105
+ }
106
+ if (edge.source === node.id &&
107
+ (edge.relationType === EDashType.DIRECT ||
108
+ edge.relationType === EDashType.ALL)) {
109
+ tableOutputEdges.push(edge);
110
+ }
111
+ });
112
+ if (tableInputEdges.length === 1 && tableOutputEdges.length === 1) {
113
+ var inputNodeConfig = lineageMgr.getNodeConfigById((_a = canBeFoldColumns[0]) === null || _a === void 0 ? void 0 : _a.inputEdge.source);
114
+ var currNodeConfig = lineageMgr.getNodeConfigById((_b = canBeFoldColumns[0]) === null || _b === void 0 ? void 0 : _b.outputEdge.target);
115
+ var inputTableNode = lineageMgr.getNodeConfigById((inputNodeConfig === null || inputNodeConfig === void 0 ? void 0 : inputNodeConfig.tableId) || (inputNodeConfig === null || inputNodeConfig === void 0 ? void 0 : inputNodeConfig.id));
116
+ var currTableNode = lineageMgr.getNodeConfigById((currNodeConfig === null || currNodeConfig === void 0 ? void 0 : currNodeConfig.tableId) || (currNodeConfig === null || currNodeConfig === void 0 ? void 0 : currNodeConfig.id));
117
+ if (((_c = inputTableNode === null || inputTableNode === void 0 ? void 0 : inputTableNode.position) === null || _c === void 0 ? void 0 : _c.x) >= ((_d = currTableNode === null || currTableNode === void 0 ? void 0 : currTableNode.position) === null || _d === void 0 ? void 0 : _d.x))
118
+ return; // FIXME: 这里需要优化 @yunke
119
+ node.canBeFold = true;
120
+ foldNodes.push(node);
121
+ }
122
+ });
123
+ return foldNodes;
124
+ }
125
+ // step 2: find all fold node groups
126
+ export function getFoldNodesGroup(nodesConfig, edgesConfig) {
127
+ var validNodeIds = new Set(nodesConfig.map(function (nodeCfg) { return nodeCfg.id; }));
128
+ var validEdges = edgesConfig.filter(function (edgeCfg) {
129
+ return validNodeIds.has(edgeCfg.source) && validNodeIds.has(edgeCfg.target);
130
+ });
131
+ var rootNodesId = getRootNodesId(nodesConfig, validNodeIds, validEdges);
132
+ var nodesGroup = rootNodesId.map(function (rootNodeId) {
133
+ return getFoldNodeGroup(rootNodeId, nodesConfig, validEdges);
134
+ });
135
+ return nodesGroup;
136
+ }
137
+ // step 3: generate fold nodes map
138
+ export function getFoldNodesGroupMap(lineageMgr, nodesConfigGroup, edgesConfig) {
139
+ var foldNodesMap = new Map();
140
+ nodesConfigGroup.forEach(function (nodes) {
141
+ var _a, _b;
142
+ // 获取起始节点的id: 每个子数组的第一个节点的srcId
143
+ var startNode = nodes[0];
144
+ // 从edges中找到startNode的上游table的id
145
+ var upstreamNodeId = getUpstreamTableId(startNode.id, edgesConfig);
146
+ // 获取末尾节点的id:每个子数组的末尾节点的dstId
147
+ var endNode = nodes[nodes.length - 1];
148
+ // 从edges中找到endNode的下游table的id
149
+ var downstreamNodeId = getDownstreamTableId(endNode.id, edgesConfig);
150
+ var srcColumnId = '';
151
+ var dstColumnId = '';
152
+ var startCanBeFoldColumns = findColumnsWithDirectEdges(startNode.relatedColumns, edgesConfig);
153
+ var endCanBeFoldColumns = findColumnsWithDirectEdges(endNode.relatedColumns, edgesConfig);
154
+ srcColumnId = (_a = startCanBeFoldColumns[0]) === null || _a === void 0 ? void 0 : _a.inputEdge.source;
155
+ dstColumnId = (_b = endCanBeFoldColumns[0]) === null || _b === void 0 ? void 0 : _b.outputEdge.target;
156
+ if (!srcColumnId || !dstColumnId)
157
+ return;
158
+ // 生成key "起始节点的id-末尾节点的id"
159
+ var key = "".concat(srcColumnId, "___").concat(dstColumnId);
160
+ // 从edges中挑选出当前子数组的所有边,都会删除
161
+ var foldEdges = [];
162
+ edgesConfig.forEach(function (edge) {
163
+ var _a;
164
+ var source = edge.source, target = edge.target, data = edge.data;
165
+ if ((_a = data === null || data === void 0 ? void 0 : data.relationTypeCode) === null || _a === void 0 ? void 0 : _a.includes('Table'))
166
+ return; // FIXME: 这里的判断条件不够严谨 @yunke
167
+ nodes.forEach(function (node) {
168
+ if (source === node.id ||
169
+ target === node.id ||
170
+ source.startsWith("".concat(node.id, ".")) ||
171
+ target.startsWith("".concat(node.id, "."))) {
172
+ edge.inFoldLink = true;
173
+ edge.foldTableId = key;
174
+ edge.type = FOLD_EDGE;
175
+ foldEdges.push(edge);
176
+ }
177
+ });
178
+ });
179
+ var value = {
180
+ foldNodes: nodes,
181
+ foldEdges: foldEdges,
182
+ foldNodeEdgeConfig: {
183
+ id: "".concat(upstreamNodeId, "___").concat(downstreamNodeId),
184
+ type: LINEAGE_EDGE,
185
+ data: {
186
+ relationTypeCode: ERelationType.TableDirectTable,
187
+ },
188
+ source: upstreamNodeId,
189
+ target: downstreamNodeId,
190
+ relationType: EDashType.DIRECT,
191
+ fold: false,
192
+ foldNodeId: key,
193
+ visible: true,
194
+ isActive: false,
195
+ isFolded: false,
196
+ canBeFold: false,
197
+ style: {
198
+ fill: '#0000',
199
+ stroke: '#B1B1B1',
200
+ lineWidth: 1,
201
+ },
202
+ isExtraFoldEdge: true,
203
+ },
204
+ foldColumnEdgeConfig: {
205
+ id: "".concat(srcColumnId, "___").concat(dstColumnId),
206
+ type: FOLD_EDGE,
207
+ data: {
208
+ relationTypeCode: ERelationType.ColumnDirectColumn,
209
+ },
210
+ source: srcColumnId,
211
+ target: dstColumnId,
212
+ relationType: EDashType.DIRECT,
213
+ fold: false,
214
+ showExpand: true,
215
+ foldNodeId: key,
216
+ visible: true,
217
+ isActive: false,
218
+ isFolded: false,
219
+ canBeFold: false,
220
+ style: {
221
+ fill: '#0000',
222
+ stroke: '#FFB01F',
223
+ lineWidth: 1,
224
+ },
225
+ isExtraFoldEdge: true,
226
+ },
227
+ };
228
+ foldNodesMap.set(key, value);
229
+ });
230
+ return foldNodesMap;
231
+ }
232
+ //# sourceMappingURL=foldNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"foldNode.js","sourceRoot":"","sources":["../../src/utils/foldNode.ts"],"names":[],"mappings":"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"}