@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.
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 +4 -2
  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 +38 -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 +4 -2
  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 +49 -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
@@ -1,7 +1,5 @@
1
- import { rlog } from '@riil-frontend/component-topology-utils';
2
1
  import { isClusterHtElement } from "../../utils/clusterUtil";
3
- import { getEdgeGroupByNodeTags, getEdges, isNode } from "../../utils/htElementUtils";
4
- import { getLinksBetweenNodes } from "../utils/linkUtil"; // network_link.actual_bandwidth
2
+ import { isNode } from "../../utils/htElementUtils"; // network_link.actual_bandwidth
5
3
 
6
4
  function calcEdgeWidth(actualBandwidth) {
7
5
  if (!actualBandwidth) {
@@ -52,16 +50,17 @@ var LinkDynamicStyleExecutor = /*#__PURE__*/function () {
52
50
  var _proto = LinkDynamicStyleExecutor.prototype;
53
51
 
54
52
  _proto.execute = function execute() {
55
- var _this = this;
53
+ var _topo$historyManager,
54
+ _this = this,
55
+ _topo$historyManager2;
56
56
 
57
57
  var topo = this.topo;
58
58
 
59
59
  var _topo$dataModel$getDa = topo.dataModel.getData(),
60
- links = _topo$dataModel$getDa.links,
61
- linkGroups = _topo$dataModel$getDa.linkGroups;
60
+ links = _topo$dataModel$getDa.links;
62
61
 
63
62
  var dataModel = this.topo.getDataModel();
64
- topo.historyManager && topo.historyManager.setDisabled(true, '链路动态样式'); // 1、如果连线可见,设置线宽
63
+ (_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true, '链路动态粗细'); // 1、如果连线可见,设置线宽
65
64
 
66
65
  links.forEach(function (link) {
67
66
  var edge = dataModel.getDataByTag(link.id);
@@ -69,63 +68,8 @@ var LinkDynamicStyleExecutor = /*#__PURE__*/function () {
69
68
  if (edge) {
70
69
  edge.s('edge.width', _this.calcLinkEdgeWidth(link));
71
70
  }
72
- }); // 2、如果连线组关联链路并可见,设置线宽
73
-
74
- linkGroups.forEach(function (link) {
75
- // 聚合链路是连线/连线组,并可以查询到
76
- var edge = topo.getDataModel().getDataByTag(link.id);
77
-
78
- if (edge) {
79
- edge.s('edge.width', _this.calcLinkEdgeWidth(link));
80
- return;
81
- } // 聚合链路是连线组(编辑模式还未关联业务信息)
82
-
83
-
84
- var edgeGroup = getEdgeGroupByNodeTags(dataModel, link.source, link.target);
85
-
86
- if (edgeGroup) {
87
- var edgeGroupAgent = edgeGroup.getEdgeGroupAgent(); // 判断是显示的连线组元素
88
-
89
- if (edgeGroupAgent) {
90
- edgeGroup.getEdgeGroupAgent().s('edge.width', _this.calcLinkEdgeWidth(link));
91
- }
92
- } else {
93
- rlog.warn('动态链路样式执行:未找到聚合链路的ht元素', link);
94
- }
95
- }); // 3、如果连线组未关联链路并可见,设置线宽。
96
-
97
- var edges = getEdges(dataModel);
98
- edges.forEach(function (edge) {
99
- try {
100
- // 获取两端代理节点
101
- var sourceAgent = edge.getSourceAgent();
102
- var targetAgent = edge.getTargetAgent();
103
- var sourceId = sourceAgent.getTag();
104
- var targetId = targetAgent.getTag(); // 查询是否有聚合链路
105
-
106
- var aggLink = linkGroups.find(function (link) {
107
- return link.source === sourceId && link.target === targetId || link.target === sourceId && link.source === targetId;
108
- }); // 如果连线组未关联链路并可见
109
-
110
- if (!aggLink && edge.isEdgeGroupAgent()) {
111
- // 查询两端代理节点(包含子节点)间的子链路列表
112
- var sourceCiIds = getChildrenNodeCiIds([sourceAgent]);
113
- var targetCiIds = getChildrenNodeCiIds([targetAgent]);
114
- var aggLinks = getLinksBetweenNodes(linkGroups, sourceCiIds, targetCiIds);
115
- var phyLinks = getLinksBetweenNodes(links, sourceCiIds, targetCiIds);
116
- var linkBetweenNodes = aggLinks.length ? aggLinks : phyLinks; // 如果有子链路,计算线宽并设置
117
-
118
- if (linkBetweenNodes.length) {
119
- var edgeWidth = _this.calcEdgeGroupEdgeWidth(linkBetweenNodes);
120
-
121
- edge.s('edge.width', edgeWidth);
122
- }
123
- }
124
- } catch (error) {
125
- rlog.error('连线组未关联链路并可见,设置线宽:异常', edge, error);
126
- }
127
71
  });
128
- topo.historyManager && topo.historyManager.setDisabled(false, '链路动态样式');
72
+ (_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false, '链路动态粗细');
129
73
  }
130
74
  /**
131
75
  * 处理单个连线组切换。有链路时设置
@@ -413,7 +413,7 @@ export default _extends({
413
413
  * @param {Array} groups
414
414
  * @returns
415
415
  */
416
- getTopoDataByResource: function getTopoDataByResource(id, resources, groups) {
416
+ getTopoDataByResource: function getTopoDataByResource(id, resources, groups, relateTopoIdList) {
417
417
  return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee13() {
418
418
  var _result$nodes2, _result$links2;
419
419
 
@@ -433,7 +433,9 @@ export default _extends({
433
433
 
434
434
  obj = prepareGroupParams(data);
435
435
  _context13.next = 5;
436
- return request.post(API_ROOT + "/structure/byCondition/" + id, _extends({}, obj));
436
+ return request.post(API_ROOT + "/structure/byCondition/" + id, _extends({}, obj, {
437
+ relateTopoIdList: relateTopoIdList
438
+ }));
437
439
 
438
440
  case 5:
439
441
  result = _context13.sent;
@@ -55,8 +55,8 @@ export function getEdgeGroupLinkIdConfig(edgeGroup, topo) {
55
55
  });
56
56
  }
57
57
  export function getEdgeGroupConfigId(edgeGroup) {
58
- var sourceNode = edgeGroup.getSourceAgent();
59
- var targetNode = edgeGroup.getTargetAgent();
58
+ var sourceNode = edgeGroup.getSource();
59
+ var targetNode = edgeGroup.getTarget();
60
60
  var sourceId = sourceNode.a('uuid');
61
61
  var targetId = targetNode.a('uuid');
62
62
  return [sourceId, targetId].sort().join(',');
@@ -239,9 +239,10 @@ function updateLinkTarget(links, nodes) {
239
239
 
240
240
 
241
241
  export function processByConditionResult(topoData, groupConfigs) {
242
- var nodes = topoData.nodes,
242
+ var groups = topoData.groups,
243
+ nodes = topoData.nodes,
243
244
  links = topoData.links;
244
- var ipNodes = getIpNodes(groupConfigs, nodes); // 出口链路目的端设置为IP节点或者ping资源节点id
245
+ var ipNodes = getIpNodes(groupConfigs, topoData); // 出口链路目的端设置为IP节点或者ping资源节点id
245
246
 
246
247
  var newLinks = updateLinkTarget(links, nodes);
247
248
  return _extends({}, topoData, {
@@ -249,15 +250,26 @@ export function processByConditionResult(topoData, groupConfigs) {
249
250
  links: newLinks
250
251
  });
251
252
 
252
- function getIpNodes(groupConfigs, nodes) {
253
- var ips = groupConfigs.map(function (g) {
254
- return g.condition.linkIps;
255
- }).reduce(function (result, groupIps) {
256
- return [].concat(result, groupIps);
257
- }, []) // 过滤ping资源对应的ip节点
258
- .filter(function (ip) {
259
- return !findPingNode(nodes, ip);
253
+ function getIpNodes(groupConfigs, _ref) {
254
+ var groups = _ref.groups,
255
+ nodes = _ref.nodes;
256
+ var ipNodes = [];
257
+ groupConfigs.forEach(function (g) {
258
+ g.condition.linkIps // 过滤ping资源对应的ip节点
259
+ .filter(function (ip) {
260
+ return !findPingNode(nodes, ip);
261
+ }).map(function (ip) {
262
+ var topoGroup = g.topoGroup;
263
+ var group = groups.find(function (item) {
264
+ return item.id === topoGroup.id || item.tag === topoGroup.tag;
265
+ });
266
+ ipNodes.push(_extends({}, buildIpNode(ip), {
267
+ // 解决区域里有ip添加资源ip消失的问题
268
+ 'groupId': group === null || group === void 0 ? void 0 : group.id,
269
+ 'groupTag': group === null || group === void 0 ? void 0 : group.tag
270
+ }));
271
+ });
260
272
  });
261
- return ips.map(buildIpNode);
273
+ return ipNodes;
262
274
  }
263
275
  }
@@ -0,0 +1,38 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ // 关联拓扑数据
3
+
4
+ /**
5
+ * 升级历史数据:子拓扑节点序列化数据
6
+ * 构造子拓扑节点
7
+ * 构造子拓扑链路
8
+ * @param {*} ctx
9
+ */
10
+ export function processBothTopoData(ctx) {
11
+ var topoData = ctx.topoData;
12
+ var serialize = upgradeSerializeRelateTopoNode(topoData.serialize);
13
+ return _extends({}, topoData, {
14
+ serialize: serialize
15
+ });
16
+ }
17
+ /**
18
+ * 构造子拓扑节点
19
+ * 构造子拓扑链路
20
+ * @param {*} ctx
21
+ */
22
+
23
+ export function processByConditionTopoData(ctx) {
24
+ var topoData = ctx.topoData;
25
+ return _extends({}, topoData);
26
+ }
27
+ /**
28
+ * 升级历史数据:子拓扑节点序列化数据
29
+ * @param {*} serialize
30
+ */
31
+
32
+ function upgradeSerializeRelateTopoNode(serialize) {
33
+ return serialize;
34
+ }
35
+
36
+ function getRelateTopoIdsFromSerialize(serialize) {
37
+ return serialize;
38
+ }
package/es/style.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import '@riil-frontend/component-topology-graph/es/style';
2
2
  import '@alifd/next/es/box/style';
3
- import '@riil-frontend/component-topology-utils/es/style';
4
3
  import '@alifd/next/es/message/style';
4
+ import '@riil-frontend/component-topology-utils/es/style';
5
5
  import '@riil-frontend/utils/es/style';
6
6
  import '@riil-frontend/component-riil-event-emitter/es/style';
7
7
  import '@alifd/next/es/menu-button/style';
@@ -5,7 +5,7 @@ import _extends from "@babel/runtime/helpers/extends";
5
5
  */
6
6
  import { transformTopoElements } from "@riil-frontend/component-topology-graph/es/utils";
7
7
  import rlog from "@riil-frontend/component-topology-utils/es/rlog";
8
- import { getGroups, isExistedElement } from "./htElementUtils";
8
+ import { getGroups, containsElement } from "./htElementUtils";
9
9
  import { findGroupChildren } from "./topoData";
10
10
  export function isCluster(node) {
11
11
  return !!node.cluster;
@@ -76,7 +76,7 @@ export function isClusterHtElement(element) {
76
76
  return !!element.a('cluster');
77
77
  }
78
78
  export function isClusterMemberHtElement(element) {
79
- return element && element.getParent() && isClusterHtElement(element.getParent());
79
+ return (element === null || element === void 0 ? void 0 : element.getParent()) && isClusterHtElement(element.getParent());
80
80
  }
81
81
  /**
82
82
  * 集群无权限时收起
@@ -111,7 +111,7 @@ export function upgradeV103GraphClusterNode(topo, topoData) {
111
111
  var topoDataTrans = transformTopoElements(topoData);
112
112
  var dm = topo.getDataModel();
113
113
  var unExistedList = topoDataTrans.filter(function (data) {
114
- return !isExistedElement(topo.getHtTopo(), dm, data);
114
+ return !containsElement(dm, data);
115
115
  });
116
116
 
117
117
  if (!unExistedList.length) {
@@ -115,9 +115,6 @@ export function getNodeData(element) {
115
115
  export function getEdges(dataModel) {
116
116
  return getElements(dataModel).filter(isValidEdge);
117
117
  }
118
- export function isEdgeGroupExpanded(edge) {
119
- return isEdge(edge) && edge.getEdgeGroup() && !!edge.s("edge.expanded");
120
- }
121
118
  /**
122
119
  * 是否连线组代理
123
120
  * @param {*} edge
@@ -125,7 +122,10 @@ export function isEdgeGroupExpanded(edge) {
125
122
  */
126
123
 
127
124
  export function isEdgeGroupAgent(edge) {
128
- return isEdge(edge) && edge.getEdgeGroup() && edge.isEdgeGroupAgent();
125
+ return isEdge(edge) && edge.a('x.edgegroup.isEdgeGroup');
126
+ }
127
+ export function isEdgeVisible(edge) {
128
+ return edge.s('2d.visible') || edge.s('2d.visible') === undefined;
129
129
  }
130
130
  /**
131
131
  * 获得两个节点间的连线列表
@@ -152,61 +152,18 @@ export function getEdgesBetweenNodes(node1, node2) {
152
152
  return edges;
153
153
  }
154
154
  /**
155
- * 获得节点间的连线组,连线<=1时返回null
156
- * @returns
155
+ * 获得连线组连线列表
156
+ * @param {*} dataModel
157
+ * @returns
157
158
  */
158
159
 
159
- export function getEdgeGroupByNodes(node1, node2) {
160
- var htEdgeGroup = null;
161
- getEdgesBetweenNodes(node1, node2).forEach(function (edge) {
162
- if (!htEdgeGroup) {
163
- htEdgeGroup = edge.getEdgeGroup();
164
- }
165
- });
166
-
167
- if (!htEdgeGroup) {
168
- return null;
169
- }
170
-
171
- return new EdgeGroup(htEdgeGroup);
172
- }
173
- /**
174
- * 获得节点间的连线组,连线<=1时返回null
175
- * @returns
176
- */
177
-
178
- export function getEdgeGroupByNodeTags(dataModel, nodeTag1, nodeTag2) {
179
- var node1 = dataModel.getDataByTag(nodeTag1);
180
- var node2 = dataModel.getDataByTag(nodeTag2);
181
-
182
- if (!node1 || !node2) {
183
- console.warn("getEdgeGroupByNodes 未找到节点", {
184
- node1: node1,
185
- node2: node2,
186
- nodeTag1: nodeTag1,
187
- nodeTag2: nodeTag2
188
- });
189
- return null;
190
- }
191
-
192
- return getEdgeGroupByNodes(node1, node2);
193
- }
194
- export function getEdgeGroups(dataModel) {
195
- var edgeGroups = [];
196
- getEdges(dataModel).forEach(function (edge) {
197
- var group = edge.getEdgeGroup();
198
-
199
- if (group && !edgeGroups.includes(group)) {
200
- edgeGroups.push(group);
201
- }
202
- });
203
- return edgeGroups;
204
- }
205
160
  export function getEdgeGroupAgents(dataModel) {
206
161
  return getEdges(dataModel).filter(isEdgeGroupAgent);
207
162
  }
208
163
  export function getEdgeDatas(dataModel) {
209
- return getEdges(dataModel).map(function (element) {
164
+ return getEdges(dataModel).filter(function (edge) {
165
+ return !isEdgeGroupAgent(edge);
166
+ }).map(function (element) {
210
167
  var _element$getSource, _element$getTarget;
211
168
 
212
169
  return _extends({}, element.getAttrObject(), {
@@ -309,9 +266,13 @@ export function setElementRuntimeStyle(element, name, value) {
309
266
  }
310
267
  /**
311
268
  * 判断拓扑图是否存在元素
269
+ *
270
+ * @param {*} dataModel
271
+ * @param {{id?: string, tag?: string}} data
272
+ * @returns
312
273
  */
313
274
 
314
- export function isExistedElement(htTopo, dataModel, data) {
275
+ export function containsElement(dataModel, data) {
315
276
  if (dataModel.getDataByTag(data.id)) {
316
277
  return true;
317
278
  } // 识别区域
@@ -320,34 +281,5 @@ export function isExistedElement(htTopo, dataModel, data) {
320
281
  var element = getElements(dataModel).find(function (item) {
321
282
  return data.tag && item.a("tag") === data.tag;
322
283
  });
323
-
324
- if (element) {
325
- return true;
326
- } // 连线/连线组
327
-
328
-
329
- var edges = getEdges(dataModel);
330
-
331
- for (var i = 0; i < edges.length; i++) {
332
- var edge = edges[i]; // 如果连线组折叠,判断子连线
333
-
334
- var edgeData = htTopo.getEdgeData(edge);
335
-
336
- if (edgeData) {
337
- // eslint-disable-next-line no-underscore-dangle
338
- var id = edgeData._attrObject.id;
339
-
340
- if (id === data.id) {
341
- return true;
342
- }
343
- } // 如果连线组展开,判断连线组
344
- // eslint-disable-next-line no-underscore-dangle
345
-
346
-
347
- if (edge.__edgeGroup && edge.__edgeGroup._tag === data.id) {
348
- return true;
349
- }
350
- }
351
-
352
- return false;
284
+ return !!element;
353
285
  }
@@ -83,7 +83,7 @@ function ResourceSelectDrawer(props) {
83
83
  _context.t0 = _context["catch"](1);
84
84
  setLoading(false);
85
85
 
86
- _componentTopologyUtils.rlog.error('ResourceSelectDrawer.handleOk', _context.t0);
86
+ _componentTopologyUtils.rlog.error('ResourceSelectDrawer.handleOk', _context.t0, _context.t0.stack);
87
87
 
88
88
  case 13:
89
89
  case "end":
@@ -19,7 +19,7 @@ var _componentTopologyGraph = _interopRequireWildcard(require("@riil-frontend/co
19
19
 
20
20
  var _PortalContainer = _interopRequireDefault(require("@riil-frontend/component-topology-graph/es/components/PortalContainer"));
21
21
 
22
- var _componentTopologyUtils = require("@riil-frontend/component-topology-utils");
22
+ var _loglevel = _interopRequireDefault(require("loglevel"));
23
23
 
24
24
  var _showMessage = _interopRequireDefault(require("../../utils/showMessage"));
25
25
 
@@ -66,6 +66,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
66
66
  // 通用
67
67
  // 显示模式
68
68
  // 编辑模式
69
+ var rlog = _loglevel["default"].getLogger('topo');
70
+
69
71
  var Topology = function Topology(props) {
70
72
  var _classnames;
71
73
 
@@ -138,40 +140,39 @@ var Topology = function Topology(props) {
138
140
  (0, _react.useEffect)(function () {
139
141
  // 拓扑退出注销
140
142
  return function () {
141
- _componentTopologyUtils.rlog.info('TopoView 退出');
142
-
143
+ rlog.info('TopoView 退出');
143
144
  topo.selectionModel.destroy();
144
145
  topoDispatchers.reset();
145
146
  };
146
147
  }, []);
147
148
  var onGraphCreated = (0, _react.useCallback)(function (topoClient) {
148
149
  topo.view.onCreatedView(topoClient);
149
-
150
- _componentTopologyUtils.rlog.info('TopoView.onGraphCreated');
150
+ rlog.info('TopoView.onGraphCreated');
151
151
 
152
152
  if (onReady) {
153
153
  onReady();
154
154
  }
155
155
  }, []);
156
156
  var handleGraphDataLoaded = (0, _react.useCallback)(function () {
157
- _componentTopologyUtils.rlog.info('TopoView.handleGraphDataLoaded', new Date().toString(), {
157
+ rlog.info('TopoView.handleGraphDataLoaded: 数据加载完成', new Date().toString(), {
158
158
  topoMod: topo.store.getState().topoMod,
159
159
  topoData: topoData,
160
160
  htElements: topo.getDataModel().getDatas().toArray()
161
161
  });
162
-
163
162
  (0, _nodeNameVisibleUtil.updateNodesNameVisible)(topo);
164
163
  (0, _clusterUtil.upgradeV103GraphClusterNode)(topo, topoData);
165
164
  (0, _graphLinkUtil.fixLink)(topo);
166
165
  (0, _clusterUtil.handleClusterNoPermission)(topo);
167
166
  (0, _edgeUtil.updateEdgeExpanded)(topo);
167
+ topo.selectionModel.init();
168
168
  var htHistoryManager = topo.getDataModel().getHistoryManager();
169
169
 
170
- if (htHistoryManager) {
170
+ if (isEditMode && htHistoryManager) {
171
171
  topo.historyManager = new _HistoryManager["default"](topo, htHistoryManager);
172
+ topo.historyManager.clear();
173
+ rlog.info('TopoView.handleGraphDataLoaded: 初始化HistoryManager ', topo.historyManager.toString());
172
174
  }
173
175
 
174
- topo.selectionModel.init();
175
176
  topoDispatchers.update({
176
177
  graphLoaded2: true
177
178
  });
@@ -181,12 +182,11 @@ var Topology = function Topology(props) {
181
182
  }
182
183
  }, [topoData]);
183
184
  var handleGraphLoaded = (0, _react.useCallback)(function () {
184
- _componentTopologyUtils.rlog.info('TopoView.handleGraphLoaded', new Date().toString(), {
185
+ rlog.info('TopoView.handleGraphLoaded', new Date().toString(), {
185
186
  topoMod: topo.store.getState().topoMod,
186
187
  topoData: topoData,
187
188
  htElements: topo.getDataModel().getDatas().toArray()
188
189
  });
189
-
190
190
  (0, _nodeNameVisibleUtil.updateNodesNameVisible)(topo);
191
191
  (0, _clusterUtil.upgradeV103GraphClusterNode)(topo, topoData);
192
192
  (0, _graphLinkUtil.fixLink)(topo);
@@ -223,8 +223,7 @@ var Topology = function Topology(props) {
223
223
  }, [topoData]);
224
224
 
225
225
  var rightEventHandle = function rightEventHandle(event) {
226
- _componentTopologyUtils.rlog.debug('右键事件', event);
227
-
226
+ rlog.debug('右键事件', event);
228
227
  var contextMenu = topo.view.contextMenu;
229
228
 
230
229
  if (contextMenu.containsCommand(event.data.id)) {
@@ -233,8 +232,7 @@ var Topology = function Topology(props) {
233
232
  };
234
233
 
235
234
  var onRefresh = function onRefresh(e) {
236
- _componentTopologyUtils.rlog.debug('TopoView:onRefresh', e);
237
-
235
+ rlog.debug('TopoView:onRefresh', e);
238
236
  onRefreshTopo ? onRefreshTopo() : topoDispatchers.refreshTopo();
239
237
  };
240
238
  /**
@@ -244,8 +242,7 @@ var Topology = function Topology(props) {
244
242
 
245
243
 
246
244
  var handleEvent = function handleEvent(event) {
247
- _componentTopologyUtils.rlog.debug('TopoView:onEvent', event);
248
-
245
+ rlog.debug('TopoView:onEvent', event);
249
246
  onEvent && onEvent(event);
250
247
  topoEdit.onEvent(event);
251
248
 
@@ -272,8 +269,7 @@ var Topology = function Topology(props) {
272
269
  break;
273
270
 
274
271
  case _componentTopologyGraph.TopoEvent.EVENT_CONTEXT_TOOL:
275
- _componentTopologyUtils.rlog.debug('自定义工具栏事件', event);
276
-
272
+ rlog.debug('自定义工具栏事件', event);
277
273
  break;
278
274
 
279
275
  default:
@@ -53,14 +53,14 @@ function EdgeColorButton(props) {
53
53
  });
54
54
  };
55
55
 
56
- var getLines = function getLines(list) {
56
+ var getCustomLines = function getCustomLines(list) {
57
57
  return list.filter(_edgeUtil.isCustomEdge);
58
58
  };
59
59
 
60
60
  (0, _react.useEffect)(function () {
61
61
  if (graphLoaded) {
62
62
  var edges = (0, _edgeTypeStyleUtil.getEdgesBySelection)(topo);
63
- var list = getLines(edges);
63
+ var list = getCustomLines(edges);
64
64
  setLineWidth(1); // eslint-disable-next-line eqeqeq
65
65
 
66
66
  if (selection.length == 1 && list.length === 1) {
@@ -48,20 +48,11 @@ var LINE_TYPE_OPTIONS = [{
48
48
  value: 'doublearc',
49
49
  label: '双弧线',
50
50
  icon: 'topo_linear_icon_arcline'
51
- } // {
52
- // value: 'points',
53
- // label: '自由线形',
54
- // icon: 'topo_linear_icon_pointsline',
55
- // },
56
- ];
57
-
58
- if (localStorage.getItem('topo.test.edge.customType') === 'true') {
59
- LINE_TYPE_OPTIONS.push({
60
- value: 'points',
61
- label: '自由线形',
62
- icon: 'topo_linear_icon_pointsline'
63
- });
64
- }
51
+ }, {
52
+ value: 'points',
53
+ label: '自由线形',
54
+ icon: 'topo_linear_icon_pointsline'
55
+ }];
65
56
 
66
57
  var LineType = /*#__PURE__*/_react["default"].forwardRef(function (props, ref) {
67
58
  var value = props.value,
@@ -7,9 +7,9 @@ exports["default"] = void 0;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
10
- var _DropdownMenu = _interopRequireDefault(require("./components/DropdownMenu"));
10
+ var _FontFamilySelect = _interopRequireDefault(require("./components/FontFamilySelect"));
11
11
 
12
- var _textStyleSettingRouter = _interopRequireDefault(require("./components/textStyleSetting/textStyleSettingRouter.js"));
12
+ var _textStyleSettingRouter = _interopRequireDefault(require("./components/textStyleSetting/textStyleSettingRouter"));
13
13
 
14
14
  var _WidgetBox = _interopRequireDefault(require("./WidgetBox"));
15
15
 
@@ -17,31 +17,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
17
17
 
18
18
  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; }
19
19
 
20
- function FontFamilySelect(props) {
21
- var value = props.value,
22
- onChange = props.onChange;
23
- var items = ['宋体', '微软雅黑', '黑体', 'Arial'];
24
- return /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
25
- value: (items.includes(value) ? value : null) || '',
26
- valueRender: function valueRender(val) {
27
- return /*#__PURE__*/_react["default"].createElement("div", {
28
- style: {
29
- width: 48
30
- }
31
- }, val || '微软雅黑');
32
- },
33
- onSelect: onChange
34
- }, items.map(function (item) {
35
- return /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"].Item, {
36
- key: item
37
- }, /*#__PURE__*/_react["default"].createElement("div", {
38
- style: {
39
- fontFamily: item
40
- }
41
- }, item));
42
- }));
43
- }
44
-
45
20
  function FontFamilyWidget(props) {
46
21
  var topo = props.topo,
47
22
  showLabel = props.showLabel,
@@ -51,7 +26,7 @@ function FontFamilyWidget(props) {
51
26
  label: "\u5B57\u4F53",
52
27
  tooltip: "\u5B57\u4F53",
53
28
  showLabel: showLabel
54
- }, /*#__PURE__*/_react["default"].createElement(FontFamilySelect, {
29
+ }, /*#__PURE__*/_react["default"].createElement(_FontFamilySelect["default"], {
55
30
  value: style.fontFamily,
56
31
  onChange: function onChange(val) {
57
32
  topo.historyManager.beginTransaction();
@@ -7,9 +7,9 @@ exports["default"] = void 0;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
10
- var _DropdownMenu = _interopRequireDefault(require("./components/DropdownMenu"));
10
+ var _FontSizeSelect = _interopRequireDefault(require("./components/FontSizeSelect"));
11
11
 
12
- var _textStyleSettingRouter = _interopRequireDefault(require("./components/textStyleSetting/textStyleSettingRouter.js"));
12
+ var _textStyleSettingRouter = _interopRequireDefault(require("./components/textStyleSetting/textStyleSettingRouter"));
13
13
 
14
14
  var _WidgetBox = _interopRequireDefault(require("./WidgetBox"));
15
15
 
@@ -17,31 +17,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
17
17
 
18
18
  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; }
19
19
 
20
- function FontSizeSelect(props) {
21
- var value = props.value,
22
- disabled = props.disabled,
23
- onChange = props.onChange;
24
- var items = [12, 14, 16, 18, 20, 24, 30, 36, 48, 60, 80];
25
- return /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
26
- value: "" + (value || ''),
27
- valueRender: function valueRender(val) {
28
- return /*#__PURE__*/_react["default"].createElement("div", {
29
- style: {
30
- width: 18
31
- }
32
- }, val || 20);
33
- },
34
- disabled: disabled,
35
- onSelect: function onSelect(val) {
36
- return onChange(parseInt(val, 10));
37
- }
38
- }, items.map(function (item) {
39
- return /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"].Item, {
40
- key: item
41
- }, item);
42
- }));
43
- }
44
-
45
20
  function FontSizeWidget(props) {
46
21
  var topo = props.topo,
47
22
  showLabel = props.showLabel,
@@ -57,7 +32,7 @@ function FontSizeWidget(props) {
57
32
  tooltip: "\u5B57\u53F7",
58
33
  showLabel: showLabel,
59
34
  disabled: disabled
60
- }, /*#__PURE__*/_react["default"].createElement(FontSizeSelect, {
35
+ }, /*#__PURE__*/_react["default"].createElement(_FontSizeSelect["default"], {
61
36
  value: style.fontSize,
62
37
  disabled: disabled,
63
38
  onChange: function onChange(val) {