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

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 (92) hide show
  1. package/build/1.js +1 -1
  2. package/build/index.css +1 -1
  3. package/build/index.js +29 -29
  4. package/es/components/ColorPanel/index.js +68 -58
  5. package/es/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
  6. package/es/core/components/TopoView/topoView.js +7 -4
  7. package/es/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +2 -2
  8. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +5 -15
  9. package/es/core/editor/components/Toolbar/widgets/FontColorButton.js +10 -91
  10. package/es/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +2 -27
  11. package/es/core/editor/components/Toolbar/widgets/FontSizeWidget.js +3 -28
  12. package/es/core/editor/components/Toolbar/widgets/FontStyleButton.js +6 -52
  13. package/es/core/editor/components/Toolbar/widgets/components/FontColorDropdown.js +120 -0
  14. package/es/core/editor/components/Toolbar/widgets/components/FontFamilySelect.js +29 -0
  15. package/es/core/editor/components/Toolbar/widgets/components/FontSizeSelect.js +29 -0
  16. package/es/core/editor/components/Toolbar/widgets/components/FontStyleSelect.js +77 -0
  17. package/es/core/editor/components/settings/core/updateElementProperty.js +3 -2
  18. package/es/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
  19. package/es/core/editor/hooks/useKeyboardShortcut.js +4 -0
  20. package/es/core/editor/hooks/useNewElementTheme.js +20 -16
  21. package/es/core/editor/utils/edgeTypeStyleUtil.js +11 -32
  22. package/es/core/hooks/useGraphAlarmDisplay.js +4 -0
  23. package/es/core/hooks/usePolling.js +2 -1
  24. package/es/core/hooks/useResourceConfig.js +1 -2
  25. package/es/core/hooks/useTopoEdit.js +210 -248
  26. package/es/core/models/AttributeMetricDisplay.js +4 -3
  27. package/es/core/models/HistoryManager.js +11 -9
  28. package/es/core/models/TopoApp.js +39 -45
  29. package/es/core/models/topoData.js +9 -17
  30. package/es/core/models/utils/linkUtils.js +65 -52
  31. package/es/core/store/models/topoConfig.js +7 -11
  32. package/es/core/utils/edgeUtil.js +7 -10
  33. package/es/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +2 -2
  34. package/es/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/EventsCard.js +4 -2
  35. package/es/networkTopo/models/EdgeGroupTagTipBuilder.js +7 -7
  36. package/es/networkTopo/models/LinkDynamicStyleExecutor.js +7 -63
  37. package/es/networkTopo/services/topo/basic.js +27 -17
  38. package/es/networkTopo/utils/__tests__/relateTopoData.js +205 -0
  39. package/es/networkTopo/utils/edgeGroupTagUtil.js +2 -2
  40. package/es/networkTopo/utils/exitLinkUtil.js +25 -13
  41. package/es/networkTopo/utils/relateTopoDataUtil.js +149 -0
  42. package/es/style.js +1 -1
  43. package/es/utils/ResourceConfigUtil.js +1 -16
  44. package/es/utils/clusterUtil.js +3 -3
  45. package/es/utils/htElementUtils.js +19 -85
  46. package/lib/components/ColorPanel/index.js +71 -59
  47. package/lib/components/ResourceSelectDrawer/ResourceSelectDrawer.js +1 -1
  48. package/lib/core/components/TopoView/topoView.js +15 -19
  49. package/lib/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +2 -2
  50. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +5 -14
  51. package/lib/core/editor/components/Toolbar/widgets/FontColorButton.js +11 -95
  52. package/lib/core/editor/components/Toolbar/widgets/FontFamilyWidget.js +3 -28
  53. package/lib/core/editor/components/Toolbar/widgets/FontSizeWidget.js +3 -28
  54. package/lib/core/editor/components/Toolbar/widgets/FontStyleButton.js +6 -56
  55. package/lib/core/editor/components/Toolbar/widgets/components/FontColorDropdown.js +136 -0
  56. package/lib/core/editor/components/Toolbar/widgets/components/FontFamilySelect.js +38 -0
  57. package/lib/core/editor/components/Toolbar/widgets/components/FontSizeSelect.js +38 -0
  58. package/lib/core/editor/components/Toolbar/widgets/components/FontStyleSelect.js +89 -0
  59. package/lib/core/editor/components/settings/core/updateElementProperty.js +7 -2
  60. package/lib/core/editor/components/settings/propertyViews/view/GlobalEdgeToggle.js +2 -2
  61. package/lib/core/editor/hooks/useKeyboardShortcut.js +4 -0
  62. package/lib/core/editor/hooks/useNewElementTheme.js +20 -16
  63. package/lib/core/editor/utils/edgeTypeStyleUtil.js +10 -33
  64. package/lib/core/hooks/useGraphAlarmDisplay.js +4 -0
  65. package/lib/core/hooks/usePolling.js +6 -5
  66. package/lib/core/hooks/useResourceConfig.js +1 -2
  67. package/lib/core/hooks/useTopoEdit.js +216 -272
  68. package/lib/core/models/AttributeMetricDisplay.js +6 -6
  69. package/lib/core/models/HistoryManager.js +13 -17
  70. package/lib/core/models/TopoApp.js +39 -43
  71. package/lib/core/models/topoData.js +9 -17
  72. package/lib/core/models/utils/linkUtils.js +65 -51
  73. package/lib/core/store/models/topoConfig.js +13 -25
  74. package/lib/core/utils/edgeUtil.js +8 -10
  75. package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +3 -2
  76. package/lib/core/viewer/components/plugins/ResourceDetail/components/ResourceOverview/EventsCard.js +6 -2
  77. package/lib/networkTopo/models/EdgeGroupTagTipBuilder.js +6 -6
  78. package/lib/networkTopo/models/LinkDynamicStyleExecutor.js +6 -64
  79. package/lib/networkTopo/services/topo/basic.js +32 -18
  80. package/lib/networkTopo/utils/__tests__/relateTopoData.js +210 -0
  81. package/lib/networkTopo/utils/edgeGroupTagUtil.js +2 -2
  82. package/lib/networkTopo/utils/exitLinkUtil.js +25 -13
  83. package/lib/networkTopo/utils/relateTopoDataUtil.js +164 -0
  84. package/lib/style.js +1 -1
  85. package/lib/utils/ResourceConfigUtil.js +1 -16
  86. package/lib/utils/clusterUtil.js +2 -2
  87. package/lib/utils/htElementUtils.js +22 -94
  88. package/package.json +2 -2
  89. package/es/networkTopo/models/LinkTagsTipsBuilder.js +0 -235
  90. package/lib/networkTopo/models/LinkTagsTipsBuilder.js +0 -245
  91. /package/es/core/editor/components/Toolbar/widgets/{FontColorButton.module.scss → components/FontColorDropdown.module.scss} +0 -0
  92. /package/lib/core/editor/components/Toolbar/widgets/{FontColorButton.module.scss → components/FontColorDropdown.module.scss} +0 -0
@@ -0,0 +1,149 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ // 关联拓扑数据
3
+ import { topoLinks } from "./__tests__/relateTopoData";
4
+ /**
5
+ * 升级历史数据:子拓扑节点序列化数据
6
+ * 构造子拓扑节点
7
+ * 构造子拓扑链路
8
+ * @param {*} ctx
9
+ */
10
+
11
+ export function processBothTopoData(topoData) {
12
+ var nodes = topoData.nodes,
13
+ links = topoData.links;
14
+ var serialize = upgradeSerializeOldTopoNode(topoData.serialize);
15
+ return _extends({}, topoData, {
16
+ nodes: [].concat(nodes, buildTopoNodeDatasFromSerialize(serialize)),
17
+ links: buildTopoLinks(links),
18
+ serialize: serialize
19
+ });
20
+ }
21
+ /**
22
+ * 构造子拓扑节点
23
+ * 构造子拓扑链路
24
+ * @param {*} ctx
25
+ */
26
+
27
+ export function processByConditionTopoData(ctx) {
28
+ var data = ctx.data,
29
+ config = ctx.config;
30
+ var nodes = data.nodes,
31
+ links = data.links;
32
+ return _extends({}, data, {
33
+ nodes: [].concat(nodes, buildTopoNodeDatas(config)),
34
+ links: buildTopoLinks(links)
35
+ });
36
+ }
37
+ export function getRelateTopoIdListFromConfig(groups) {
38
+ var relateTopoIdList = [];
39
+ groups.forEach(function (g) {
40
+ g.resources["static"].filter(function (ciId) {
41
+ return ciId.startsWith('topo:');
42
+ }).map(function (ciId) {
43
+ return ciId.replace('topo:', '');
44
+ }).map(function (topoId) {
45
+ if (!relateTopoIdList.includes(topoId)) {
46
+ relateTopoIdList.push(topoId);
47
+ }
48
+ });
49
+ });
50
+ return relateTopoIdList;
51
+ }
52
+ export function buildTopoNode(topoId) {
53
+ return {
54
+ id: "topo:" + topoId,
55
+ // name: ,
56
+ bindType: "topo",
57
+ // 绑定资源类型。关联资源 值为空,关联IP ip
58
+ bindIp: topoId,
59
+ // TODO 所属区域,从序列化拿
60
+ // 'groupId': null,
61
+ // 'groupTag': null,
62
+ // 'attributes': [],
63
+ // 'metrics': [],
64
+ type: "node",
65
+ isbinding: true,
66
+ // 'dtype': 'device'
67
+ operation: "delete"
68
+ };
69
+ }
70
+
71
+ function buildTopoLinks(links) {
72
+ if (process.env.NODE_ENV !== 'production') {
73
+ links.push.apply(links, topoLinks);
74
+ }
75
+
76
+ return links.map(function (link) {
77
+ return _extends({}, link, {
78
+ "source": link.sourceType ? link.sourceType + ':' + link.source : link.source,
79
+ "target": link.targetType ? link.targetType + ':' + link.target : link.target
80
+ });
81
+ });
82
+ }
83
+ /**
84
+ * 升级历史数据:子拓扑节点序列化数据
85
+ * @param {*} serialize
86
+ */
87
+
88
+
89
+ function upgradeSerializeOldTopoNode(serialize) {
90
+ if (serialize) {
91
+ var isOldTopoNode = function isOldTopoNode(ele) {
92
+ return isTopoNode(ele) && !ele.p.tag;
93
+ };
94
+
95
+ var oldTopoNodes = serialize.d.filter(isOldTopoNode);
96
+ oldTopoNodes.forEach(function (node) {
97
+ var _node$a;
98
+
99
+ var topoId = (_node$a = node.a) === null || _node$a === void 0 ? void 0 : _node$a.bindTopo;
100
+ node.a = _extends({}, node.a, buildTopoNode(topoId));
101
+ node.p.tag = "topo:" + topoId;
102
+ });
103
+ }
104
+
105
+ return serialize;
106
+ }
107
+
108
+ function isTopoNode(ele) {
109
+ var _ele$a;
110
+
111
+ return !!((_ele$a = ele.a) !== null && _ele$a !== void 0 && _ele$a.bindTopo);
112
+ }
113
+
114
+ function buildTopoNodeDatasFromSerialize(serialize) {
115
+ if (!serialize) {
116
+ return [];
117
+ }
118
+
119
+ var topoNodes = serialize.d.filter(isTopoNode);
120
+ var topoNodeDatas = topoNodes.map(function (node) {
121
+ var _node$a2;
122
+
123
+ var topoId = (_node$a2 = node.a) === null || _node$a2 === void 0 ? void 0 : _node$a2.bindTopo;
124
+ return buildTopoNode(topoId);
125
+ });
126
+ return topoNodeDatas;
127
+ }
128
+
129
+ function buildTopoNodeDatas(config) {
130
+ var topoNodeDatas = [];
131
+ config.forEach(function (g) {
132
+ g.resources["static"].filter(function (ciId) {
133
+ return ciId.startsWith('topo:');
134
+ }).map(function (ciId) {
135
+ return ciId.replace('topo:', '');
136
+ }).map(function (topoId) {
137
+ topoNodeDatas.push(_extends({}, buildTopoNode(topoId), {
138
+ // 添加资源拓扑节点消失的问题
139
+ 'groupId': g.id,
140
+ 'groupTag': g.tag
141
+ }));
142
+ });
143
+ });
144
+ return topoNodeDatas;
145
+ }
146
+
147
+ function getRelateTopoIdsFromSerialize(serialize) {
148
+ return serialize;
149
+ }
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';
@@ -41,23 +41,8 @@ function getResourceConfigFromHt(topo) {
41
41
  return {
42
42
  layers: sortBy(layers, 'order'),
43
43
  groups: groups,
44
- resources: resources,
45
- relateTopoIdList: getRelateTopoIdList(dataModel)
44
+ resources: resources
46
45
  };
47
- } // 查询关联拓扑id列表
48
-
49
-
50
- function getRelateTopoIdList(dataModel) {
51
- return getNodes(dataModel).reduce(function (topoIds, node) {
52
- var bindType = node.a('bindType');
53
- var bindTopo = node.a('bindTopo');
54
-
55
- if (bindType === 'topo' && bindTopo && !topoIds.includes(bindTopo)) {
56
- return [].concat(topoIds, [bindTopo]);
57
- }
58
-
59
- return topoIds;
60
- }, []);
61
46
  }
62
47
 
63
48
  function getLayerDatas(dataModel) {
@@ -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
  * 获得两个节点间的连线列表
@@ -142,7 +142,9 @@ export function getEdgesBetweenNodes(node1, node2) {
142
142
  return edges;
143
143
  }
144
144
 
145
- node1Edges.toArray().filter(isValidEdge).forEach(function (edge) {
145
+ node1Edges.toArray().filter(isValidEdge).filter(function (edge) {
146
+ return !isEdgeGroupAgent(edge);
147
+ }).forEach(function (edge) {
146
148
  var isEdgeBetweenNodes = edge.getSource().getTag() === node2.getTag() || edge.getTarget().getTag() === node2.getTag();
147
149
 
148
150
  if (isEdgeBetweenNodes) {
@@ -152,61 +154,18 @@ export function getEdgesBetweenNodes(node1, node2) {
152
154
  return edges;
153
155
  }
154
156
  /**
155
- * 获得节点间的连线组,连线<=1时返回null
156
- * @returns
157
+ * 获得连线组连线列表
158
+ * @param {*} dataModel
159
+ * @returns
157
160
  */
158
161
 
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
162
  export function getEdgeGroupAgents(dataModel) {
206
163
  return getEdges(dataModel).filter(isEdgeGroupAgent);
207
164
  }
208
165
  export function getEdgeDatas(dataModel) {
209
- return getEdges(dataModel).map(function (element) {
166
+ return getEdges(dataModel).filter(function (edge) {
167
+ return !isEdgeGroupAgent(edge);
168
+ }).map(function (element) {
210
169
  var _element$getSource, _element$getTarget;
211
170
 
212
171
  return _extends({}, element.getAttrObject(), {
@@ -309,9 +268,13 @@ export function setElementRuntimeStyle(element, name, value) {
309
268
  }
310
269
  /**
311
270
  * 判断拓扑图是否存在元素
271
+ *
272
+ * @param {*} dataModel
273
+ * @param {{id?: string, tag?: string}} data
274
+ * @returns
312
275
  */
313
276
 
314
- export function isExistedElement(htTopo, dataModel, data) {
277
+ export function containsElement(dataModel, data) {
315
278
  if (dataModel.getDataByTag(data.id)) {
316
279
  return true;
317
280
  } // 识别区域
@@ -320,34 +283,5 @@ export function isExistedElement(htTopo, dataModel, data) {
320
283
  var element = getElements(dataModel).find(function (item) {
321
284
  return data.tag && item.a("tag") === data.tag;
322
285
  });
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;
286
+ return !!element;
353
287
  }
@@ -7,8 +7,12 @@ exports["default"] = void 0;
7
7
 
8
8
  var _balloon = _interopRequireDefault(require("@alifd/next/lib/balloon"));
9
9
 
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
10
12
  var _react = _interopRequireWildcard(require("react"));
11
13
 
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
12
16
  var _classnames4 = _interopRequireDefault(require("classnames"));
13
17
 
14
18
  var _color = _interopRequireDefault(require("color"));
@@ -26,7 +30,58 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
26
30
  /* eslint-disable eqeqeq */
27
31
 
28
32
  /* eslint-disable jsx-a11y/alt-text */
29
-
33
+ var defaultColorList = [{
34
+ color: 'rgba(255, 255, 255, 1)',
35
+ borderColor: 'rgba(219, 219, 219, 1)'
36
+ }, {
37
+ color: 'rgba(245, 245, 245, 1)',
38
+ borderColor: 'rgba(208, 208, 208, 1)'
39
+ }, {
40
+ color: 'rgba(230, 230, 230, 1)',
41
+ borderColor: 'rgba(196, 196, 196, 1)'
42
+ }, {
43
+ color: 'rgba(168, 168, 168, 1)',
44
+ borderColor: 'rgba(146, 146, 146, 1)'
45
+ }, {
46
+ color: 'rgba(97, 97, 97, 1)',
47
+ borderColor: 'rgba(85, 85, 85, 1)'
48
+ }, {
49
+ color: 'rgba(49, 49, 49, 1)',
50
+ borderColor: 'rgba(43, 43, 43, 1)'
51
+ }, {
52
+ color: 'rgba(251, 115, 80, 1)',
53
+ borderColor: 'rgba(213, 98, 69, 1)'
54
+ }, {
55
+ color: 'rgba(255, 166, 41, 1)',
56
+ borderColor: 'rgba(219, 144, 45, 1)'
57
+ }, {
58
+ color: 'rgba(255, 205, 42, 1)',
59
+ borderColor: 'rgba(216, 175, 37, 1)'
60
+ }, {
61
+ color: 'rgba(18, 174, 92, 1)',
62
+ borderColor: 'rgba(23, 148, 79, 1)'
63
+ }, {
64
+ color: 'rgba(83, 184, 255, 1)',
65
+ borderColor: 'rgba(74, 156, 217, 1)'
66
+ }, {
67
+ color: 'rgba(183, 128, 255, 1)',
68
+ borderColor: 'rgba(155, 109, 216, 1)'
69
+ }, {
70
+ color: 'rgba(254, 192, 174, 1)',
71
+ borderColor: 'rgba(217, 163, 148, 1)'
72
+ }, {
73
+ color: 'rgba(252, 209, 156, 1)',
74
+ borderColor: 'rgba(215, 178, 133, 1)'
75
+ }, {
76
+ color: 'rgba(255, 232, 163, 1)',
77
+ borderColor: 'rgba(217, 198, 139, 1)'
78
+ }, {
79
+ color: 'rgba(176, 244, 197, 1)',
80
+ borderColor: 'rgba(153, 209, 171, 1)'
81
+ }, {
82
+ color: 'rgba(189, 227, 255, 1)',
83
+ borderColor: 'rgba(161, 193, 217, 1)'
84
+ }];
30
85
  /**
31
86
  * 颜色选择
32
87
  *
@@ -34,12 +89,15 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
34
89
  * @return {*}
35
90
  * @constructor
36
91
  */
92
+
37
93
  function ColorPanel(props) {
38
94
  var _classnames2, _classnames3;
39
95
 
40
96
  var value = props.value,
41
97
  showClear = props.showClear,
42
- dataSource = props.dataSource,
98
+ _props$dataSource = props.dataSource,
99
+ dataSource = _props$dataSource === void 0 ? defaultColorList : _props$dataSource,
100
+ colorPickerBalloonProps = props.colorPickerBalloonProps,
43
101
  onChange = props.onChange,
44
102
  onPickerFocus = props.onPickerFocus,
45
103
  onPickerBlur = props.onPickerBlur;
@@ -187,9 +245,7 @@ function ColorPanel(props) {
187
245
  onClick: function onClick() {
188
246
  changClick('17');
189
247
  }
190
- }, /*#__PURE__*/_react["default"].createElement(_balloon["default"], {
191
- visible: visible,
192
- trigger: defaultTrigger,
248
+ }, /*#__PURE__*/_react["default"].createElement(_balloon["default"], (0, _extends2["default"])({
193
249
  closable: false,
194
250
  triggerType: "click",
195
251
  animation: false,
@@ -198,9 +254,12 @@ function ColorPanel(props) {
198
254
  alignEdge: true,
199
255
  style: {
200
256
  paddingBottom: 0
201
- },
257
+ }
258
+ }, colorPickerBalloonProps, {
259
+ visible: visible,
260
+ trigger: defaultTrigger,
202
261
  onClose: close
203
- }, /*#__PURE__*/_react["default"].createElement(_reactColor.SketchPicker, {
262
+ }), /*#__PURE__*/_react["default"].createElement(_reactColor.SketchPicker, {
204
263
  color: data !== null && data !== void 0 ? data : undefined // width={230}
205
264
  ,
206
265
  disableAlpha: true,
@@ -216,61 +275,14 @@ function ColorPanel(props) {
216
275
  }))))));
217
276
  }
218
277
 
278
+ ColorPanel.propTypes = {
279
+ dataSource: _propTypes["default"].array
280
+ };
219
281
  ColorPanel.defaultProps = {
220
282
  value: undefined,
221
283
  showClear: false,
222
- dataSource: [{
223
- color: 'rgba(255, 255, 255, 1)',
224
- borderColor: 'rgba(219, 219, 219, 1)'
225
- }, {
226
- color: 'rgba(245, 245, 245, 1)',
227
- borderColor: 'rgba(208, 208, 208, 1)'
228
- }, {
229
- color: 'rgba(230, 230, 230, 1)',
230
- borderColor: 'rgba(196, 196, 196, 1)'
231
- }, {
232
- color: 'rgba(168, 168, 168, 1)',
233
- borderColor: 'rgba(146, 146, 146, 1)'
234
- }, {
235
- color: 'rgba(97, 97, 97, 1)',
236
- borderColor: 'rgba(85, 85, 85, 1)'
237
- }, {
238
- color: 'rgba(49, 49, 49, 1)',
239
- borderColor: 'rgba(43, 43, 43, 1)'
240
- }, {
241
- color: 'rgba(251, 115, 80, 1)',
242
- borderColor: 'rgba(213, 98, 69, 1)'
243
- }, {
244
- color: 'rgba(255, 166, 41, 1)',
245
- borderColor: 'rgba(219, 144, 45, 1)'
246
- }, {
247
- color: 'rgba(255, 205, 42, 1)',
248
- borderColor: 'rgba(216, 175, 37, 1)'
249
- }, {
250
- color: 'rgba(18, 174, 92, 1)',
251
- borderColor: 'rgba(23, 148, 79, 1)'
252
- }, {
253
- color: 'rgba(83, 184, 255, 1)',
254
- borderColor: 'rgba(74, 156, 217, 1)'
255
- }, {
256
- color: 'rgba(183, 128, 255, 1)',
257
- borderColor: 'rgba(155, 109, 216, 1)'
258
- }, {
259
- color: 'rgba(254, 192, 174, 1)',
260
- borderColor: 'rgba(217, 163, 148, 1)'
261
- }, {
262
- color: 'rgba(252, 209, 156, 1)',
263
- borderColor: 'rgba(215, 178, 133, 1)'
264
- }, {
265
- color: 'rgba(255, 232, 163, 1)',
266
- borderColor: 'rgba(217, 198, 139, 1)'
267
- }, {
268
- color: 'rgba(176, 244, 197, 1)',
269
- borderColor: 'rgba(153, 209, 171, 1)'
270
- }, {
271
- color: 'rgba(189, 227, 255, 1)',
272
- borderColor: 'rgba(161, 193, 217, 1)'
273
- }],
284
+ dataSource: defaultColorList,
285
+ colorPickerBalloonProps: {},
274
286
  onChange: function onChange() {},
275
287
  onPickerFocus: function onPickerFocus() {},
276
288
  onPickerBlur: function onPickerBlur() {}
@@ -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 (topo.store.getState().topoMod.viewState === 'edit' && 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) {