@riil-frontend/component-topology 13.0.0-dev.1 → 13.0.0-dev.2
Sign up to get free protection for your applications and to get access to all the features.
- package/build/1.js +1 -1
- package/build/index.js +14 -14
- package/es/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
- package/es/core/components/TopoView/topoView.js +7 -4
- package/es/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +2 -2
- package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +5 -15
- package/es/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +2 -27
- package/es/core/editor/components/Toolbar/widgets/FontSizeWidget.js +3 -28
- package/es/core/editor/components/Toolbar/widgets/FontStyleButton.js +6 -52
- package/es/core/editor/components/Toolbar/widgets/components/FontFamilySelect.js +29 -0
- package/es/core/editor/components/Toolbar/widgets/components/FontSizeSelect.js +29 -0
- package/es/core/editor/components/Toolbar/widgets/components/FontStyleSelect.js +71 -0
- package/es/core/editor/components/settings/core/updateElementProperty.js +3 -2
- package/es/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
- package/es/core/editor/hooks/useNewElementTheme.js +20 -16
- package/es/core/editor/utils/edgeTypeStyleUtil.js +11 -32
- package/es/core/hooks/useGraphAlarmDisplay.js +4 -0
- package/es/core/hooks/usePolling.js +2 -1
- package/es/core/hooks/useTopoEdit.js +206 -248
- package/es/core/models/AttributeMetricDisplay.js +4 -3
- package/es/core/models/HistoryManager.js +11 -9
- package/es/core/models/TopoApp.js +39 -45
- package/es/core/models/topoData.js +7 -14
- package/es/core/models/utils/linkUtils.js +36 -28
- package/es/core/store/models/topoConfig.js +14 -17
- package/es/core/utils/edgeUtil.js +7 -10
- package/es/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +2 -2
- package/es/networkTopo/models/EdgeGroupTagTipBuilder.js +7 -7
- package/es/networkTopo/models/LinkDynamicStyleExecutor.js +7 -63
- package/es/networkTopo/services/topo/basic.js +4 -2
- package/es/networkTopo/utils/edgeGroupTagUtil.js +2 -2
- package/es/networkTopo/utils/exitLinkUtil.js +23 -11
- package/es/networkTopo/utils/relateTopoDataUtil.js +38 -0
- package/es/style.js +1 -1
- package/es/utils/clusterUtil.js +3 -3
- package/es/utils/htElementUtils.js +16 -84
- package/lib/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
- package/lib/core/components/TopoView/topoView.js +15 -19
- package/lib/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +2 -2
- package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +5 -14
- package/lib/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +3 -28
- package/lib/core/editor/components/Toolbar/widgets/FontSizeWidget.js +3 -28
- package/lib/core/editor/components/Toolbar/widgets/FontStyleButton.js +6 -56
- package/lib/core/editor/components/Toolbar/widgets/components/FontFamilySelect.js +38 -0
- package/lib/core/editor/components/Toolbar/widgets/components/FontSizeSelect.js +38 -0
- package/lib/core/editor/components/Toolbar/widgets/components/FontStyleSelect.js +83 -0
- package/lib/core/editor/components/settings/core/updateElementProperty.js +7 -2
- package/lib/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
- package/lib/core/editor/hooks/useNewElementTheme.js +20 -16
- package/lib/core/editor/utils/edgeTypeStyleUtil.js +10 -33
- package/lib/core/hooks/useGraphAlarmDisplay.js +4 -0
- package/lib/core/hooks/usePolling.js +6 -5
- package/lib/core/hooks/useTopoEdit.js +212 -272
- package/lib/core/models/AttributeMetricDisplay.js +6 -6
- package/lib/core/models/HistoryManager.js +13 -17
- package/lib/core/models/TopoApp.js +39 -43
- package/lib/core/models/topoData.js +7 -14
- package/lib/core/models/utils/linkUtils.js +36 -27
- package/lib/core/store/models/topoConfig.js +20 -31
- package/lib/core/utils/edgeUtil.js +8 -10
- package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +3 -2
- package/lib/networkTopo/models/EdgeGroupTagTipBuilder.js +6 -6
- package/lib/networkTopo/models/LinkDynamicStyleExecutor.js +6 -64
- package/lib/networkTopo/services/topo/basic.js +4 -2
- package/lib/networkTopo/utils/edgeGroupTagUtil.js +2 -2
- package/lib/networkTopo/utils/exitLinkUtil.js +23 -11
- package/lib/networkTopo/utils/relateTopoDataUtil.js +49 -0
- package/lib/style.js +1 -1
- package/lib/utils/clusterUtil.js +2 -2
- package/lib/utils/htElementUtils.js +19 -93
- package/package.json +2 -2
- package/es/networkTopo/models/LinkTagsTipsBuilder.js +0 -235
- package/lib/networkTopo/models/LinkTagsTipsBuilder.js +0 -245
package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js
CHANGED
@@ -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
|
26
|
-
|
27
|
-
|
28
|
-
var linkId = (0, _edgeGroupTagUtil.getEdgeGroupLinkIdConfig)(
|
29
|
-
var edgeGroupId = [
|
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:
|
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
|
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
|
-
|
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
|
79
|
+
(_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false, '链路动态粗细');
|
138
80
|
}
|
139
81
|
/**
|
140
82
|
* 处理单个连线组切换。有链路时设置
|
@@ -430,7 +430,7 @@ var _default = (0, _extends2["default"])({
|
|
430
430
|
* @param {Array} groups
|
431
431
|
* @returns
|
432
432
|
*/
|
433
|
-
getTopoDataByResource: function getTopoDataByResource(id, resources, groups) {
|
433
|
+
getTopoDataByResource: function getTopoDataByResource(id, resources, groups, relateTopoIdList) {
|
434
434
|
return (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee13() {
|
435
435
|
var _result$nodes2, _result$links2;
|
436
436
|
|
@@ -450,7 +450,9 @@ var _default = (0, _extends2["default"])({
|
|
450
450
|
|
451
451
|
obj = prepareGroupParams(data);
|
452
452
|
_context13.next = 5;
|
453
|
-
return _componentTopologyUtils.request.post(API_ROOT + "/structure/byCondition/" + id, (0, _extends2["default"])({}, obj
|
453
|
+
return _componentTopologyUtils.request.post(API_ROOT + "/structure/byCondition/" + id, (0, _extends2["default"])({}, obj, {
|
454
|
+
relateTopoIdList: relateTopoIdList
|
455
|
+
}));
|
454
456
|
|
455
457
|
case 5:
|
456
458
|
result = _context13.sent;
|
@@ -65,8 +65,8 @@ function getEdgeGroupLinkIdConfig(edgeGroup, topo) {
|
|
65
65
|
}
|
66
66
|
|
67
67
|
function getEdgeGroupConfigId(edgeGroup) {
|
68
|
-
var sourceNode = edgeGroup.
|
69
|
-
var targetNode = edgeGroup.
|
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
|
254
|
+
var groups = topoData.groups,
|
255
|
+
nodes = topoData.nodes,
|
255
256
|
links = topoData.links;
|
256
|
-
var ipNodes = getIpNodes(groupConfigs,
|
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,
|
265
|
-
var
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
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
|
285
|
+
return ipNodes;
|
274
286
|
}
|
275
287
|
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
exports.__esModule = true;
|
6
|
+
exports.processBothTopoData = processBothTopoData;
|
7
|
+
exports.processByConditionTopoData = processByConditionTopoData;
|
8
|
+
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
10
|
+
|
11
|
+
// 关联拓扑数据
|
12
|
+
|
13
|
+
/**
|
14
|
+
* 升级历史数据:子拓扑节点序列化数据
|
15
|
+
* 构造子拓扑节点
|
16
|
+
* 构造子拓扑链路
|
17
|
+
* @param {*} ctx
|
18
|
+
*/
|
19
|
+
function processBothTopoData(ctx) {
|
20
|
+
var topoData = ctx.topoData;
|
21
|
+
var serialize = upgradeSerializeRelateTopoNode(topoData.serialize);
|
22
|
+
return (0, _extends2["default"])({}, topoData, {
|
23
|
+
serialize: serialize
|
24
|
+
});
|
25
|
+
}
|
26
|
+
/**
|
27
|
+
* 构造子拓扑节点
|
28
|
+
* 构造子拓扑链路
|
29
|
+
* @param {*} ctx
|
30
|
+
*/
|
31
|
+
|
32
|
+
|
33
|
+
function processByConditionTopoData(ctx) {
|
34
|
+
var topoData = ctx.topoData;
|
35
|
+
return (0, _extends2["default"])({}, topoData);
|
36
|
+
}
|
37
|
+
/**
|
38
|
+
* 升级历史数据:子拓扑节点序列化数据
|
39
|
+
* @param {*} serialize
|
40
|
+
*/
|
41
|
+
|
42
|
+
|
43
|
+
function upgradeSerializeRelateTopoNode(serialize) {
|
44
|
+
return serialize;
|
45
|
+
}
|
46
|
+
|
47
|
+
function getRelateTopoIdsFromSerialize(serialize) {
|
48
|
+
return serialize;
|
49
|
+
}
|
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');
|
package/lib/utils/clusterUtil.js
CHANGED
@@ -103,7 +103,7 @@ function isClusterHtElement(element) {
|
|
103
103
|
}
|
104
104
|
|
105
105
|
function isClusterMemberHtElement(element) {
|
106
|
-
return element
|
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.
|
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.
|
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.
|
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
|
-
*
|
216
|
-
* @
|
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).
|
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
|
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.
|
3
|
+
"version": "13.0.0-dev.2",
|
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.
|
126
|
+
"homepage": "https://unpkg.com/@riil-frontend/component-topology@13.0.0-dev.2/build/index.html",
|
127
127
|
"gitHead": "2da19ffccbb7ca60a8acf396e39f542c68bb33f5"
|
128
128
|
}
|