@riil-frontend/component-topology 13.0.0-dev.1 → 13.0.0-dev.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. package/build/1.js +1 -1
  2. package/build/index.js +14 -14
  3. package/es/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
  4. package/es/core/components/TopoView/topoView.js +7 -4
  5. package/es/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +2 -2
  6. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +5 -15
  7. package/es/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +2 -27
  8. package/es/core/editor/components/Toolbar/widgets/FontSizeWidget.js +3 -28
  9. package/es/core/editor/components/Toolbar/widgets/FontStyleButton.js +6 -52
  10. package/es/core/editor/components/Toolbar/widgets/components/FontFamilySelect.js +29 -0
  11. package/es/core/editor/components/Toolbar/widgets/components/FontSizeSelect.js +29 -0
  12. package/es/core/editor/components/Toolbar/widgets/components/FontStyleSelect.js +71 -0
  13. package/es/core/editor/components/settings/core/updateElementProperty.js +3 -2
  14. package/es/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
  15. package/es/core/editor/hooks/useNewElementTheme.js +20 -16
  16. package/es/core/editor/utils/edgeTypeStyleUtil.js +11 -32
  17. package/es/core/hooks/useGraphAlarmDisplay.js +4 -0
  18. package/es/core/hooks/usePolling.js +2 -1
  19. package/es/core/hooks/useTopoEdit.js +206 -248
  20. package/es/core/models/AttributeMetricDisplay.js +4 -3
  21. package/es/core/models/HistoryManager.js +11 -9
  22. package/es/core/models/TopoApp.js +39 -45
  23. package/es/core/models/topoData.js +7 -14
  24. package/es/core/models/utils/linkUtils.js +36 -28
  25. package/es/core/store/models/topoConfig.js +14 -17
  26. package/es/core/utils/edgeUtil.js +7 -10
  27. package/es/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +2 -2
  28. package/es/networkTopo/models/EdgeGroupTagTipBuilder.js +7 -7
  29. package/es/networkTopo/models/LinkDynamicStyleExecutor.js +7 -63
  30. package/es/networkTopo/services/topo/basic.js +15 -8
  31. package/es/networkTopo/utils/edgeGroupTagUtil.js +2 -2
  32. package/es/networkTopo/utils/exitLinkUtil.js +23 -11
  33. package/es/networkTopo/utils/relateTopoDataUtil.js +96 -0
  34. package/es/style.js +1 -1
  35. package/es/utils/clusterUtil.js +3 -3
  36. package/es/utils/htElementUtils.js +16 -84
  37. package/lib/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
  38. package/lib/core/components/TopoView/topoView.js +15 -19
  39. package/lib/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +2 -2
  40. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +5 -14
  41. package/lib/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +3 -28
  42. package/lib/core/editor/components/Toolbar/widgets/FontSizeWidget.js +3 -28
  43. package/lib/core/editor/components/Toolbar/widgets/FontStyleButton.js +6 -56
  44. package/lib/core/editor/components/Toolbar/widgets/components/FontFamilySelect.js +38 -0
  45. package/lib/core/editor/components/Toolbar/widgets/components/FontSizeSelect.js +38 -0
  46. package/lib/core/editor/components/Toolbar/widgets/components/FontStyleSelect.js +83 -0
  47. package/lib/core/editor/components/settings/core/updateElementProperty.js +7 -2
  48. package/lib/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
  49. package/lib/core/editor/hooks/useNewElementTheme.js +20 -16
  50. package/lib/core/editor/utils/edgeTypeStyleUtil.js +10 -33
  51. package/lib/core/hooks/useGraphAlarmDisplay.js +4 -0
  52. package/lib/core/hooks/usePolling.js +6 -5
  53. package/lib/core/hooks/useTopoEdit.js +212 -272
  54. package/lib/core/models/AttributeMetricDisplay.js +6 -6
  55. package/lib/core/models/HistoryManager.js +13 -17
  56. package/lib/core/models/TopoApp.js +39 -43
  57. package/lib/core/models/topoData.js +7 -14
  58. package/lib/core/models/utils/linkUtils.js +36 -27
  59. package/lib/core/store/models/topoConfig.js +20 -31
  60. package/lib/core/utils/edgeUtil.js +8 -10
  61. package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +3 -2
  62. package/lib/networkTopo/models/EdgeGroupTagTipBuilder.js +6 -6
  63. package/lib/networkTopo/models/LinkDynamicStyleExecutor.js +6 -64
  64. package/lib/networkTopo/services/topo/basic.js +21 -8
  65. package/lib/networkTopo/utils/edgeGroupTagUtil.js +2 -2
  66. package/lib/networkTopo/utils/exitLinkUtil.js +23 -11
  67. package/lib/networkTopo/utils/relateTopoDataUtil.js +109 -0
  68. package/lib/style.js +1 -1
  69. package/lib/utils/clusterUtil.js +2 -2
  70. package/lib/utils/htElementUtils.js +19 -93
  71. package/package.json +2 -2
  72. package/es/networkTopo/models/LinkTagsTipsBuilder.js +0 -235
  73. package/lib/networkTopo/models/LinkTagsTipsBuilder.js +0 -245
@@ -9,6 +9,8 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _DefaultDetailContent = _interopRequireDefault(require("../../ResourceDetail/DefaultDetailContent"));
11
11
 
12
+ var _htElementUtils = require("../../../../../../utils/htElementUtils");
13
+
12
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
15
 
14
16
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -74,9 +76,8 @@ function useElementDetailManager(props) {
74
76
  }
75
77
 
76
78
  function openByHtElement(htElement) {
77
- var isEdgeGroupAgent = htElement instanceof ht.Edge && htElement.isEdgeGroupAgent() && !htElement.s('edge.expanded');
78
79
  open({
79
- id: isEdgeGroupAgent || !htElement.getTag() ? "ht:" + htElement.getId() : htElement.getTag(),
80
+ id: (0, _htElementUtils.isEdgeGroupAgent)(htElement) || !htElement.getTag() ? "ht:" + htElement.getId() : htElement.getTag(),
80
81
  htElement: htElement
81
82
  });
82
83
  }
@@ -22,11 +22,11 @@ var EdgeGroupTagTipBuilder = /*#__PURE__*/function () {
22
22
 
23
23
  var topo = this.topo;
24
24
  var dm = this.topo.getDataModel();
25
- var edgeGroupsTagsTips = (0, _htElementUtils.getEdgeGroups)(dm).map(function (edgeGroup) {
26
- var edge = edgeGroup.getEdges().getArray()[0]; // 获取配置的链路
27
-
28
- var linkId = (0, _edgeGroupTagUtil.getEdgeGroupLinkIdConfig)(edge, topo);
29
- var edgeGroupId = [edge.getSourceAgent().getId(), edge.getTargetAgent().getId()];
25
+ var edgeGroupAgents = (0, _htElementUtils.getEdgeGroupAgents)(dm);
26
+ var edgeGroupsTagsTips = edgeGroupAgents.map(function (edgeGroupAgent) {
27
+ // 获取配置的链路
28
+ var linkId = (0, _edgeGroupTagUtil.getEdgeGroupLinkIdConfig)(edgeGroupAgent, topo);
29
+ var edgeGroupId = [edgeGroupAgent.getSource().getId(), edgeGroupAgent.getTarget().getId()];
30
30
  var data = {
31
31
  tags: [],
32
32
  tips: []
@@ -37,7 +37,7 @@ var EdgeGroupTagTipBuilder = /*#__PURE__*/function () {
37
37
  }
38
38
 
39
39
  return {
40
- htId: edge.getId(),
40
+ htId: edgeGroupAgent.getId(),
41
41
  edgeGroupId: edgeGroupId,
42
42
  tags: data.tags,
43
43
  tips: data.tips,
@@ -3,14 +3,10 @@
3
3
  exports.__esModule = true;
4
4
  exports["default"] = void 0;
5
5
 
6
- var _componentTopologyUtils = require("@riil-frontend/component-topology-utils");
7
-
8
6
  var _clusterUtil = require("../../utils/clusterUtil");
9
7
 
10
8
  var _htElementUtils = require("../../utils/htElementUtils");
11
9
 
12
- var _linkUtil = require("../utils/linkUtil");
13
-
14
10
  // network_link.actual_bandwidth
15
11
  function calcEdgeWidth(actualBandwidth) {
16
12
  if (!actualBandwidth) {
@@ -61,16 +57,17 @@ var LinkDynamicStyleExecutor = /*#__PURE__*/function () {
61
57
  var _proto = LinkDynamicStyleExecutor.prototype;
62
58
 
63
59
  _proto.execute = function execute() {
64
- var _this = this;
60
+ var _topo$historyManager,
61
+ _this = this,
62
+ _topo$historyManager2;
65
63
 
66
64
  var topo = this.topo;
67
65
 
68
66
  var _topo$dataModel$getDa = topo.dataModel.getData(),
69
- links = _topo$dataModel$getDa.links,
70
- linkGroups = _topo$dataModel$getDa.linkGroups;
67
+ links = _topo$dataModel$getDa.links;
71
68
 
72
69
  var dataModel = this.topo.getDataModel();
73
- topo.historyManager && topo.historyManager.setDisabled(true, '链路动态样式'); // 1、如果连线可见,设置线宽
70
+ (_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true, '链路动态粗细'); // 1、如果连线可见,设置线宽
74
71
 
75
72
  links.forEach(function (link) {
76
73
  var edge = dataModel.getDataByTag(link.id);
@@ -78,63 +75,8 @@ var LinkDynamicStyleExecutor = /*#__PURE__*/function () {
78
75
  if (edge) {
79
76
  edge.s('edge.width', _this.calcLinkEdgeWidth(link));
80
77
  }
81
- }); // 2、如果连线组关联链路并可见,设置线宽
82
-
83
- linkGroups.forEach(function (link) {
84
- // 聚合链路是连线/连线组,并可以查询到
85
- var edge = topo.getDataModel().getDataByTag(link.id);
86
-
87
- if (edge) {
88
- edge.s('edge.width', _this.calcLinkEdgeWidth(link));
89
- return;
90
- } // 聚合链路是连线组(编辑模式还未关联业务信息)
91
-
92
-
93
- var edgeGroup = (0, _htElementUtils.getEdgeGroupByNodeTags)(dataModel, link.source, link.target);
94
-
95
- if (edgeGroup) {
96
- var edgeGroupAgent = edgeGroup.getEdgeGroupAgent(); // 判断是显示的连线组元素
97
-
98
- if (edgeGroupAgent) {
99
- edgeGroup.getEdgeGroupAgent().s('edge.width', _this.calcLinkEdgeWidth(link));
100
- }
101
- } else {
102
- _componentTopologyUtils.rlog.warn('动态链路样式执行:未找到聚合链路的ht元素', link);
103
- }
104
- }); // 3、如果连线组未关联链路并可见,设置线宽。
105
-
106
- var edges = (0, _htElementUtils.getEdges)(dataModel);
107
- edges.forEach(function (edge) {
108
- try {
109
- // 获取两端代理节点
110
- var sourceAgent = edge.getSourceAgent();
111
- var targetAgent = edge.getTargetAgent();
112
- var sourceId = sourceAgent.getTag();
113
- var targetId = targetAgent.getTag(); // 查询是否有聚合链路
114
-
115
- var aggLink = linkGroups.find(function (link) {
116
- return link.source === sourceId && link.target === targetId || link.target === sourceId && link.source === targetId;
117
- }); // 如果连线组未关联链路并可见
118
-
119
- if (!aggLink && edge.isEdgeGroupAgent()) {
120
- // 查询两端代理节点(包含子节点)间的子链路列表
121
- var sourceCiIds = getChildrenNodeCiIds([sourceAgent]);
122
- var targetCiIds = getChildrenNodeCiIds([targetAgent]);
123
- var aggLinks = (0, _linkUtil.getLinksBetweenNodes)(linkGroups, sourceCiIds, targetCiIds);
124
- var phyLinks = (0, _linkUtil.getLinksBetweenNodes)(links, sourceCiIds, targetCiIds);
125
- var linkBetweenNodes = aggLinks.length ? aggLinks : phyLinks; // 如果有子链路,计算线宽并设置
126
-
127
- if (linkBetweenNodes.length) {
128
- var edgeWidth = _this.calcEdgeGroupEdgeWidth(linkBetweenNodes);
129
-
130
- edge.s('edge.width', edgeWidth);
131
- }
132
- }
133
- } catch (error) {
134
- _componentTopologyUtils.rlog.error('连线组未关联链路并可见,设置线宽:异常', edge, error);
135
- }
136
78
  });
137
- topo.historyManager && topo.historyManager.setDisabled(false, '链路动态样式');
79
+ (_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false, '链路动态粗细');
138
80
  }
139
81
  /**
140
82
  * 处理单个连线组切换。有链路时设置
@@ -23,7 +23,14 @@ var _model = require("../model");
23
23
 
24
24
  var _exitLinkUtil = require("../../utils/exitLinkUtil");
25
25
 
26
+ var processBothTopoDataUtil = _interopRequireWildcard(require("../../utils/relateTopoDataUtil"));
27
+
26
28
  var _excluded = ["groups", "resources"];
29
+
30
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
+
32
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
+
27
34
  var API_ROOT = _constants.TOPO_API_ROOT;
28
35
  /**
29
36
  * 拓扑图(看做一个容器)的“父容器”ID
@@ -406,16 +413,19 @@ var _default = (0, _extends2["default"])({
406
413
 
407
414
  case 2:
408
415
  result = _context12.sent;
409
- return _context12.abrupt("return", (0, _exitLinkUtil.processExitLink)((0, _extends2["default"])({}, result, {
416
+ result = (0, _extends2["default"])({}, result, {
410
417
  nodes: (_result$nodes = result.nodes) !== null && _result$nodes !== void 0 ? _result$nodes : [],
411
418
  links: ((_result$links = result.links) !== null && _result$links !== void 0 ? _result$links : []).map(function (item) {
412
419
  return (0, _extends2["default"])({}, item, {
413
420
  ciType: 'network_link'
414
421
  });
415
422
  })
416
- })));
423
+ });
424
+ result = (0, _exitLinkUtil.processExitLink)(result);
425
+ result = processBothTopoDataUtil.processBothTopoData(result);
426
+ return _context12.abrupt("return", result);
417
427
 
418
- case 4:
428
+ case 7:
419
429
  case "end":
420
430
  return _context12.stop();
421
431
  }
@@ -430,7 +440,7 @@ var _default = (0, _extends2["default"])({
430
440
  * @param {Array} groups
431
441
  * @returns
432
442
  */
433
- getTopoDataByResource: function getTopoDataByResource(id, resources, groups) {
443
+ getTopoDataByResource: function getTopoDataByResource(id, resources, groups, relateTopoIdList) {
434
444
  return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13() {
435
445
  var _result$nodes2, _result$links2;
436
446
 
@@ -450,20 +460,23 @@ var _default = (0, _extends2["default"])({
450
460
 
451
461
  obj = prepareGroupParams(data);
452
462
  _context13.next = 5;
453
- return _componentTopologyUtils.request.post(API_ROOT + "/structure/byCondition/" + id, (0, _extends2["default"])({}, obj));
463
+ return _componentTopologyUtils.request.post(API_ROOT + "/structure/byCondition/" + id, (0, _extends2["default"])({}, obj, {
464
+ relateTopoIdList: relateTopoIdList
465
+ }));
454
466
 
455
467
  case 5:
456
468
  result = _context13.sent;
457
- return _context13.abrupt("return", (0, _exitLinkUtil.processByConditionResult)((0, _extends2["default"])({}, result, {
469
+ result = (0, _extends2["default"])({}, result, {
458
470
  nodes: (_result$nodes2 = result.nodes) !== null && _result$nodes2 !== void 0 ? _result$nodes2 : [],
459
471
  links: ((_result$links2 = result.links) !== null && _result$links2 !== void 0 ? _result$links2 : []).map(function (item) {
460
472
  return (0, _extends2["default"])({}, item, {
461
473
  ciType: 'network_link'
462
474
  });
463
475
  })
464
- }), obj.groups));
476
+ });
477
+ return _context13.abrupt("return", (0, _exitLinkUtil.processByConditionResult)(result, obj.groups));
465
478
 
466
- case 7:
479
+ case 8:
467
480
  case "end":
468
481
  return _context13.stop();
469
482
  }
@@ -65,8 +65,8 @@ function getEdgeGroupLinkIdConfig(edgeGroup, topo) {
65
65
  }
66
66
 
67
67
  function getEdgeGroupConfigId(edgeGroup) {
68
- var sourceNode = edgeGroup.getSourceAgent();
69
- var targetNode = edgeGroup.getTargetAgent();
68
+ var sourceNode = edgeGroup.getSource();
69
+ var targetNode = edgeGroup.getTarget();
70
70
  var sourceId = sourceNode.a('uuid');
71
71
  var targetId = targetNode.a('uuid');
72
72
  return [sourceId, targetId].sort().join(',');
@@ -251,9 +251,10 @@ function updateLinkTarget(links, nodes) {
251
251
 
252
252
 
253
253
  function processByConditionResult(topoData, groupConfigs) {
254
- var nodes = topoData.nodes,
254
+ var groups = topoData.groups,
255
+ nodes = topoData.nodes,
255
256
  links = topoData.links;
256
- var ipNodes = getIpNodes(groupConfigs, nodes); // 出口链路目的端设置为IP节点或者ping资源节点id
257
+ var ipNodes = getIpNodes(groupConfigs, topoData); // 出口链路目的端设置为IP节点或者ping资源节点id
257
258
 
258
259
  var newLinks = updateLinkTarget(links, nodes);
259
260
  return (0, _extends2["default"])({}, topoData, {
@@ -261,15 +262,26 @@ function processByConditionResult(topoData, groupConfigs) {
261
262
  links: newLinks
262
263
  });
263
264
 
264
- function getIpNodes(groupConfigs, nodes) {
265
- var ips = groupConfigs.map(function (g) {
266
- return g.condition.linkIps;
267
- }).reduce(function (result, groupIps) {
268
- return [].concat(result, groupIps);
269
- }, []) // 过滤ping资源对应的ip节点
270
- .filter(function (ip) {
271
- return !findPingNode(nodes, ip);
265
+ function getIpNodes(groupConfigs, _ref) {
266
+ var groups = _ref.groups,
267
+ nodes = _ref.nodes;
268
+ var ipNodes = [];
269
+ groupConfigs.forEach(function (g) {
270
+ g.condition.linkIps // 过滤ping资源对应的ip节点
271
+ .filter(function (ip) {
272
+ return !findPingNode(nodes, ip);
273
+ }).map(function (ip) {
274
+ var topoGroup = g.topoGroup;
275
+ var group = groups.find(function (item) {
276
+ return item.id === topoGroup.id || item.tag === topoGroup.tag;
277
+ });
278
+ ipNodes.push((0, _extends2["default"])({}, buildIpNode(ip), {
279
+ // 解决区域里有ip添加资源ip消失的问题
280
+ 'groupId': group === null || group === void 0 ? void 0 : group.id,
281
+ 'groupTag': group === null || group === void 0 ? void 0 : group.tag
282
+ }));
283
+ });
272
284
  });
273
- return ips.map(buildIpNode);
285
+ return ipNodes;
274
286
  }
275
287
  }
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.buildTopoNode = buildTopoNode;
7
+ exports.processBothTopoData = processBothTopoData;
8
+ exports.processByConditionTopoData = processByConditionTopoData;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ // 关联拓扑数据
13
+
14
+ /**
15
+ * 升级历史数据:子拓扑节点序列化数据
16
+ * 构造子拓扑节点
17
+ * 构造子拓扑链路
18
+ * @param {*} ctx
19
+ */
20
+ function processBothTopoData(topoData) {
21
+ var nodes = topoData.nodes,
22
+ links = topoData.links;
23
+ var serialize = upgradeSerializeOldTopoNode(topoData.serialize);
24
+ return (0, _extends2["default"])({}, topoData, {
25
+ nodes: [].concat(nodes, buildTopoNodeDatasFromSerialize(serialize)),
26
+ serialize: serialize
27
+ });
28
+ }
29
+ /**
30
+ * 构造子拓扑节点
31
+ * 构造子拓扑链路
32
+ * @param {*} ctx
33
+ */
34
+
35
+
36
+ function processByConditionTopoData(ctx) {
37
+ var topoData = ctx.topoData;
38
+ var nodes = topoData.nodes,
39
+ links = topoData.links;
40
+ return (0, _extends2["default"])({}, topoData);
41
+ }
42
+
43
+ function buildTopoNode(topoId) {
44
+ return {
45
+ id: "topo:" + topoId,
46
+ // name: ,
47
+ bindType: "topo",
48
+ // 绑定资源类型。关联资源 值为空,关联IP ip
49
+ bindIp: topoId,
50
+ // TODO 所属区域,从序列化拿
51
+ // 'groupId': null,
52
+ // 'groupTag': null,
53
+ // 'attributes': [],
54
+ // 'metrics': [],
55
+ type: "node",
56
+ isbinding: true,
57
+ // 'dtype': 'device'
58
+ operation: "delete"
59
+ };
60
+ }
61
+ /**
62
+ * 升级历史数据:子拓扑节点序列化数据
63
+ * @param {*} serialize
64
+ */
65
+
66
+
67
+ function upgradeSerializeOldTopoNode(serialize) {
68
+ if (serialize) {
69
+ var isOldTopoNode = function isOldTopoNode(ele) {
70
+ return isTopoNode(ele) && !ele.p.tag;
71
+ };
72
+
73
+ var oldTopoNodes = serialize.d.filter(isOldTopoNode);
74
+ oldTopoNodes.forEach(function (node) {
75
+ var _node$a;
76
+
77
+ var topoId = (_node$a = node.a) === null || _node$a === void 0 ? void 0 : _node$a.bindTopo;
78
+ node.a = (0, _extends2["default"])({}, node.a, buildTopoNode(topoId));
79
+ node.p.tag = "topo:" + topoId;
80
+ });
81
+ }
82
+
83
+ return serialize;
84
+ }
85
+
86
+ function isTopoNode(ele) {
87
+ var _ele$a;
88
+
89
+ return !!((_ele$a = ele.a) !== null && _ele$a !== void 0 && _ele$a.bindTopo);
90
+ }
91
+
92
+ function buildTopoNodeDatasFromSerialize(serialize) {
93
+ if (!serialize) {
94
+ return [];
95
+ }
96
+
97
+ var topoNodes = serialize.d.filter(isTopoNode);
98
+ var topoNodeDatas = topoNodes.map(function (node) {
99
+ var _node$a2;
100
+
101
+ var topoId = (_node$a2 = node.a) === null || _node$a2 === void 0 ? void 0 : _node$a2.bindTopo;
102
+ return buildTopoNode(topoId);
103
+ });
104
+ return topoNodeDatas;
105
+ }
106
+
107
+ function getRelateTopoIdsFromSerialize(serialize) {
108
+ return serialize;
109
+ }
package/lib/style.js CHANGED
@@ -1,7 +1,7 @@
1
1
  require('@riil-frontend/component-topology-graph/lib/style');
2
2
  require('@alifd/next/lib/box/style');
3
- require('@riil-frontend/component-topology-utils/lib/style');
4
3
  require('@alifd/next/lib/message/style');
4
+ require('@riil-frontend/component-topology-utils/lib/style');
5
5
  require('@riil-frontend/utils/lib/style');
6
6
  require('@riil-frontend/component-riil-event-emitter/lib/style');
7
7
  require('@alifd/next/lib/menu-button/style');
@@ -103,7 +103,7 @@ function isClusterHtElement(element) {
103
103
  }
104
104
 
105
105
  function isClusterMemberHtElement(element) {
106
- return element && element.getParent() && isClusterHtElement(element.getParent());
106
+ return (element === null || element === void 0 ? void 0 : element.getParent()) && isClusterHtElement(element.getParent());
107
107
  }
108
108
  /**
109
109
  * 集群无权限时收起
@@ -140,7 +140,7 @@ function upgradeV103GraphClusterNode(topo, topoData) {
140
140
  var topoDataTrans = (0, _utils.transformTopoElements)(topoData);
141
141
  var dm = topo.getDataModel();
142
142
  var unExistedList = topoDataTrans.filter(function (data) {
143
- return !(0, _htElementUtils.isExistedElement)(topo.getHtTopo(), dm, data);
143
+ return !(0, _htElementUtils.containsElement)(dm, data);
144
144
  });
145
145
 
146
146
  if (!unExistedList.length) {
@@ -3,11 +3,9 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  exports.__esModule = true;
6
+ exports.containsElement = containsElement;
6
7
  exports.getEdgeDatas = getEdgeDatas;
7
8
  exports.getEdgeGroupAgents = getEdgeGroupAgents;
8
- exports.getEdgeGroupByNodeTags = getEdgeGroupByNodeTags;
9
- exports.getEdgeGroupByNodes = getEdgeGroupByNodes;
10
- exports.getEdgeGroups = getEdgeGroups;
11
9
  exports.getEdges = getEdges;
12
10
  exports.getEdgesBetweenNodes = getEdgesBetweenNodes;
13
11
  exports.getElements = getElements;
@@ -27,8 +25,7 @@ exports.getNodes = getNodes;
27
25
  exports.getNodesByGroupIdOrTag = getNodesByGroupIdOrTag;
28
26
  exports.isEdge = isEdge;
29
27
  exports.isEdgeGroupAgent = isEdgeGroupAgent;
30
- exports.isEdgeGroupExpanded = isEdgeGroupExpanded;
31
- exports.isExistedElement = isExistedElement;
28
+ exports.isEdgeVisible = isEdgeVisible;
32
29
  exports.isGroup = isGroup;
33
30
  exports.isLayer = isLayer;
34
31
  exports.isNode = isNode;
@@ -172,10 +169,6 @@ function getNodeData(element) {
172
169
  function getEdges(dataModel) {
173
170
  return getElements(dataModel).filter(isValidEdge);
174
171
  }
175
-
176
- function isEdgeGroupExpanded(edge) {
177
- return isEdge(edge) && edge.getEdgeGroup() && !!edge.s("edge.expanded");
178
- }
179
172
  /**
180
173
  * 是否连线组代理
181
174
  * @param {*} edge
@@ -184,7 +177,11 @@ function isEdgeGroupExpanded(edge) {
184
177
 
185
178
 
186
179
  function isEdgeGroupAgent(edge) {
187
- return isEdge(edge) && edge.getEdgeGroup() && edge.isEdgeGroupAgent();
180
+ return isEdge(edge) && edge.a('x.edgegroup.isEdgeGroup');
181
+ }
182
+
183
+ function isEdgeVisible(edge) {
184
+ return edge.s('2d.visible') || edge.s('2d.visible') === undefined;
188
185
  }
189
186
  /**
190
187
  * 获得两个节点间的连线列表
@@ -212,66 +209,20 @@ function getEdgesBetweenNodes(node1, node2) {
212
209
  return edges;
213
210
  }
214
211
  /**
215
- * 获得节点间的连线组,连线<=1时返回null
216
- * @returns
217
- */
218
-
219
-
220
- function getEdgeGroupByNodes(node1, node2) {
221
- var htEdgeGroup = null;
222
- getEdgesBetweenNodes(node1, node2).forEach(function (edge) {
223
- if (!htEdgeGroup) {
224
- htEdgeGroup = edge.getEdgeGroup();
225
- }
226
- });
227
-
228
- if (!htEdgeGroup) {
229
- return null;
230
- }
231
-
232
- return new _EdgeGroup["default"](htEdgeGroup);
233
- }
234
- /**
235
- * 获得节点间的连线组,连线<=1时返回null
236
- * @returns
212
+ * 获得连线组连线列表
213
+ * @param {*} dataModel
214
+ * @returns
237
215
  */
238
216
 
239
217
 
240
- function getEdgeGroupByNodeTags(dataModel, nodeTag1, nodeTag2) {
241
- var node1 = dataModel.getDataByTag(nodeTag1);
242
- var node2 = dataModel.getDataByTag(nodeTag2);
243
-
244
- if (!node1 || !node2) {
245
- console.warn("getEdgeGroupByNodes 未找到节点", {
246
- node1: node1,
247
- node2: node2,
248
- nodeTag1: nodeTag1,
249
- nodeTag2: nodeTag2
250
- });
251
- return null;
252
- }
253
-
254
- return getEdgeGroupByNodes(node1, node2);
255
- }
256
-
257
- function getEdgeGroups(dataModel) {
258
- var edgeGroups = [];
259
- getEdges(dataModel).forEach(function (edge) {
260
- var group = edge.getEdgeGroup();
261
-
262
- if (group && !edgeGroups.includes(group)) {
263
- edgeGroups.push(group);
264
- }
265
- });
266
- return edgeGroups;
267
- }
268
-
269
218
  function getEdgeGroupAgents(dataModel) {
270
219
  return getEdges(dataModel).filter(isEdgeGroupAgent);
271
220
  }
272
221
 
273
222
  function getEdgeDatas(dataModel) {
274
- return getEdges(dataModel).map(function (element) {
223
+ return getEdges(dataModel).filter(function (edge) {
224
+ return !isEdgeGroupAgent(edge);
225
+ }).map(function (element) {
275
226
  var _element$getSource, _element$getTarget;
276
227
 
277
228
  return (0, _extends3["default"])({}, element.getAttrObject(), {
@@ -379,10 +330,14 @@ function setElementRuntimeStyle(element, name, value) {
379
330
  }
380
331
  /**
381
332
  * 判断拓扑图是否存在元素
333
+ *
334
+ * @param {*} dataModel
335
+ * @param {{id?: string, tag?: string}} data
336
+ * @returns
382
337
  */
383
338
 
384
339
 
385
- function isExistedElement(htTopo, dataModel, data) {
340
+ function containsElement(dataModel, data) {
386
341
  if (dataModel.getDataByTag(data.id)) {
387
342
  return true;
388
343
  } // 识别区域
@@ -391,34 +346,5 @@ function isExistedElement(htTopo, dataModel, data) {
391
346
  var element = getElements(dataModel).find(function (item) {
392
347
  return data.tag && item.a("tag") === data.tag;
393
348
  });
394
-
395
- if (element) {
396
- return true;
397
- } // 连线/连线组
398
-
399
-
400
- var edges = getEdges(dataModel);
401
-
402
- for (var i = 0; i < edges.length; i++) {
403
- var edge = edges[i]; // 如果连线组折叠,判断子连线
404
-
405
- var edgeData = htTopo.getEdgeData(edge);
406
-
407
- if (edgeData) {
408
- // eslint-disable-next-line no-underscore-dangle
409
- var id = edgeData._attrObject.id;
410
-
411
- if (id === data.id) {
412
- return true;
413
- }
414
- } // 如果连线组展开,判断连线组
415
- // eslint-disable-next-line no-underscore-dangle
416
-
417
-
418
- if (edge.__edgeGroup && edge.__edgeGroup._tag === data.id) {
419
- return true;
420
- }
421
- }
422
-
423
- return false;
349
+ return !!element;
424
350
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@riil-frontend/component-topology",
3
- "version": "13.0.0-dev.1",
3
+ "version": "13.0.0-dev.3",
4
4
  "description": "拓扑",
5
5
  "scripts": {
6
6
  "start": "build-scripts start",
@@ -123,6 +123,6 @@
123
123
  "access": "public"
124
124
  },
125
125
  "license": "MIT",
126
- "homepage": "https://unpkg.com/@riil-frontend/component-topology@13.0.0-dev.1/build/index.html",
126
+ "homepage": "https://unpkg.com/@riil-frontend/component-topology@13.0.0-dev.3/build/index.html",
127
127
  "gitHead": "2da19ffccbb7ca60a8acf396e39f542c68bb33f5"
128
128
  }