@riil-frontend/component-topology 12.1.0-dev.1 → 12.1.0-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +2 -2
- 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/utils/edgeTypeStyleUtil.js +11 -9
- package/es/core/models/TopoApp.js +1 -1
- package/es/core/models/utils/linkUtils.js +20 -19
- package/es/core/utils/edgeUtil.js +2 -1
- package/es/utils/htElementUtils.js +15 -3
- 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/utils/edgeTypeStyleUtil.js +10 -8
- package/lib/core/models/TopoApp.js +1 -1
- package/lib/core/models/utils/linkUtils.js +19 -18
- package/lib/core/utils/edgeUtil.js +3 -1
- package/lib/utils/htElementUtils.js +19 -3
- package/package.json +2 -2
@@ -36,14 +36,14 @@ function EdgeColorButton(props) {
|
|
36
36
|
});
|
37
37
|
};
|
38
38
|
|
39
|
-
var
|
39
|
+
var getCustomLines = function getCustomLines(list) {
|
40
40
|
return list.filter(isCustomEdge);
|
41
41
|
};
|
42
42
|
|
43
43
|
useEffect(function () {
|
44
44
|
if (graphLoaded) {
|
45
45
|
var edges = getEdgesBySelection(topo);
|
46
|
-
var list =
|
46
|
+
var list = getCustomLines(edges);
|
47
47
|
setLineWidth(1); // eslint-disable-next-line eqeqeq
|
48
48
|
|
49
49
|
if (selection.length == 1 && list.length === 1) {
|
@@ -32,21 +32,11 @@ var LINE_TYPE_OPTIONS = [{
|
|
32
32
|
value: 'doublearc',
|
33
33
|
label: '双弧线',
|
34
34
|
icon: 'topo_linear_icon_arcline'
|
35
|
-
}
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
];
|
41
|
-
|
42
|
-
if (localStorage.getItem('topo.test.edge.customType') === 'true') {
|
43
|
-
LINE_TYPE_OPTIONS.push({
|
44
|
-
value: 'points',
|
45
|
-
label: '自由线形',
|
46
|
-
icon: 'topo_linear_icon_pointsline'
|
47
|
-
});
|
48
|
-
}
|
49
|
-
|
35
|
+
}, {
|
36
|
+
value: 'points',
|
37
|
+
label: '自由线形',
|
38
|
+
icon: 'topo_linear_icon_pointsline'
|
39
|
+
}];
|
50
40
|
var LineType = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
51
41
|
var value = props.value,
|
52
42
|
onChange = props.onChange,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { getEdges, getEdgesBetweenNodes } from "../../../utils/htElementUtils";
|
1
|
+
import { getEdges, getEdgesBetweenNodes, isEdgeVisible } from "../../../utils/htElementUtils";
|
2
2
|
var ht = window.ht;
|
3
3
|
export function getEdgesBySelection(topo) {
|
4
4
|
var getChildrenNodeIds = function getChildrenNodeIds(nodes) {
|
@@ -14,6 +14,14 @@ export function getEdgesBySelection(topo) {
|
|
14
14
|
return nodeIds;
|
15
15
|
};
|
16
16
|
|
17
|
+
function getVisibleEdgesInNodes(gv, nodes) {
|
18
|
+
var nodeIds = getChildrenNodeIds(nodes);
|
19
|
+
var dm = gv.getDataModel();
|
20
|
+
return getEdges(dm).filter(function (edge) {
|
21
|
+
return nodeIds.includes(edge.getSource().getId()) && nodeIds.includes(edge.getTarget().getId());
|
22
|
+
}).filter(isEdgeVisible);
|
23
|
+
}
|
24
|
+
|
17
25
|
var getSelectedEdges = function getSelectedEdges(gv) {
|
18
26
|
var selection = gv.getSelectionModel().getSelection().toArray(); // 选中的连线
|
19
27
|
|
@@ -24,14 +32,8 @@ export function getEdgesBySelection(topo) {
|
|
24
32
|
var nodes = selection.filter(function (element) {
|
25
33
|
return element instanceof ht.Node;
|
26
34
|
});
|
27
|
-
|
28
|
-
|
29
|
-
getEdges(dm).forEach(function (edge) {
|
30
|
-
if (nodeIds.find(function (nodeId) {
|
31
|
-
return nodeId === edge.getSource().getId();
|
32
|
-
}) && nodeIds.find(function (nodeId) {
|
33
|
-
return nodeId === edge.getTarget().getId();
|
34
|
-
}) && !edges.find(function (item) {
|
35
|
+
getVisibleEdgesInNodes(gv, nodes).forEach(function (edge) {
|
36
|
+
if (!edges.find(function (item) {
|
35
37
|
return item === edge;
|
36
38
|
})) {
|
37
39
|
edges.push(edge);
|
@@ -24,7 +24,7 @@ import ElementTagTipConfig from "./tagstips/ElementTagTipConfig";
|
|
24
24
|
import SelectionModel from "./SelectionModel";
|
25
25
|
import CiCache from "./cache/CiCache"; // eslint-disable-next-line no-undef
|
26
26
|
|
27
|
-
var version = typeof "12.1.0-dev.
|
27
|
+
var version = typeof "12.1.0-dev.3" === 'string' ? "12.1.0-dev.3" : null;
|
28
28
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
29
29
|
/**
|
30
30
|
* 拓扑显示和编辑
|
@@ -4,7 +4,7 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
4
|
import keyBy from "lodash/keyBy";
|
5
5
|
import _ from "lodash"; // 查询所有连线
|
6
6
|
|
7
|
-
import { getEdges } from "../../../utils/htElementUtils";
|
7
|
+
import { getEdges, isEdgeGroup } from "../../../utils/htElementUtils";
|
8
8
|
import CiTypeCache from "../cache/CiTypeCache";
|
9
9
|
import CiCache from "../cache/CiCache"; // const interfaceTypeMap = {
|
10
10
|
// "network.interface": {
|
@@ -158,7 +158,8 @@ export var plurals = {
|
|
158
158
|
2: ["phy"],
|
159
159
|
3: ["agg"],
|
160
160
|
4: ["phy", "agg"]
|
161
|
-
};
|
161
|
+
}; // 待办:移到网络拓扑组件
|
162
|
+
|
162
163
|
export var showLinkByConfig = function showLinkByConfig(props) {
|
163
164
|
var _plurals$compatibleWi;
|
164
165
|
|
@@ -170,29 +171,29 @@ export var showLinkByConfig = function showLinkByConfig(props) {
|
|
170
171
|
|
171
172
|
var gv = topo.getGraphView();
|
172
173
|
var dm = gv.getDataModel();
|
173
|
-
var edges = getEdges(dm)
|
174
|
+
var edges = getEdges(dm).filter(function (edge) {
|
175
|
+
return !isEdgeGroup(edge);
|
176
|
+
}); // console.log("edges", edges);
|
174
177
|
|
175
178
|
var showPhy = types.indexOf("phy") >= 0;
|
176
179
|
var showAgg = types.indexOf("agg") >= 0; // console.log("edges----types",showType, types,showPhy, showAgg);
|
177
180
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
var d = topo.dataModel.getDataById(edge.getTag()); // 判断是否聚合链路
|
181
|
+
edges.forEach(function (edge) {
|
182
|
+
if (showType === 1 || showType === true) {
|
183
|
+
// 单链路全部显示
|
184
|
+
// console.log("单链路全部显示", edge);
|
185
|
+
edge.s("x.visible", true);
|
186
|
+
} else {
|
187
|
+
var d = topo.dataModel.getDataById(edge.getTag()); // 判断是否聚合链路
|
186
188
|
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
}
|
189
|
+
if (isAggLink(d)) {
|
190
|
+
edge.s("x.visible", showAgg);
|
191
|
+
} else {
|
192
|
+
// console.log("edge", edge, d, showAgg);
|
193
|
+
edge.s("x.visible", showPhy);
|
193
194
|
}
|
194
|
-
}
|
195
|
-
}
|
195
|
+
}
|
196
|
+
});
|
196
197
|
};
|
197
198
|
export var mergeExportLinkData = function mergeExportLinkData(props) {
|
198
199
|
var source = props.source,
|
@@ -1,12 +1,13 @@
|
|
1
1
|
import rlog from "@riil-frontend/component-topology-utils/es/rlog";
|
2
2
|
import { showLinkByConfig } from "../models/utils/linkUtils";
|
3
|
+
import { isEdgeGroup } from "../../utils/htElementUtils";
|
3
4
|
/**
|
4
5
|
* 是否手工连线
|
5
6
|
* @param {*} edge
|
6
7
|
*/
|
7
8
|
|
8
9
|
export function isCustomEdge(edge) {
|
9
|
-
return !edge
|
10
|
+
return !isEdgeGroup(edge) && (edge.a('type') == 'line' || !edge.a('type'));
|
10
11
|
}
|
11
12
|
/**
|
12
13
|
* 根据配置更新连线展开折叠状态
|
@@ -115,8 +115,14 @@ export function getNodeData(element) {
|
|
115
115
|
export function getEdges(dataModel) {
|
116
116
|
return getElements(dataModel).filter(isValidEdge);
|
117
117
|
}
|
118
|
-
|
119
|
-
|
118
|
+
/**
|
119
|
+
* 是否连线组
|
120
|
+
* @param {ht.Edge} edge
|
121
|
+
* @returns
|
122
|
+
*/
|
123
|
+
|
124
|
+
export function isEdgeGroup(edge) {
|
125
|
+
return isEdge(edge) && edge.a('edgegroup.isEdgeGroup');
|
120
126
|
}
|
121
127
|
/**
|
122
128
|
* 是否连线组代理
|
@@ -125,7 +131,13 @@ export function isEdgeGroupExpanded(edge) {
|
|
125
131
|
*/
|
126
132
|
|
127
133
|
export function isEdgeGroupAgent(edge) {
|
128
|
-
return
|
134
|
+
return isEdgeGroup(edge) && isEdgeVisible(edge);
|
135
|
+
}
|
136
|
+
export function isEdgeGroupExpanded(edge) {
|
137
|
+
return isEdge(edge) && edge.getEdgeGroup() && !!edge.s("edge.expanded");
|
138
|
+
}
|
139
|
+
export function isEdgeVisible(edge) {
|
140
|
+
return edge.s('2d.visible') || edge.s('2d.visible') === undefined;
|
129
141
|
}
|
130
142
|
/**
|
131
143
|
* 获得两个节点间的连线列表
|
@@ -53,14 +53,14 @@ function EdgeColorButton(props) {
|
|
53
53
|
});
|
54
54
|
};
|
55
55
|
|
56
|
-
var
|
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 =
|
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
|
-
|
53
|
-
|
54
|
-
|
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,
|
@@ -24,6 +24,14 @@ function getEdgesBySelection(topo) {
|
|
24
24
|
return nodeIds;
|
25
25
|
};
|
26
26
|
|
27
|
+
function getVisibleEdgesInNodes(gv, nodes) {
|
28
|
+
var nodeIds = getChildrenNodeIds(nodes);
|
29
|
+
var dm = gv.getDataModel();
|
30
|
+
return (0, _htElementUtils.getEdges)(dm).filter(function (edge) {
|
31
|
+
return nodeIds.includes(edge.getSource().getId()) && nodeIds.includes(edge.getTarget().getId());
|
32
|
+
}).filter(_htElementUtils.isEdgeVisible);
|
33
|
+
}
|
34
|
+
|
27
35
|
var getSelectedEdges = function getSelectedEdges(gv) {
|
28
36
|
var selection = gv.getSelectionModel().getSelection().toArray(); // 选中的连线
|
29
37
|
|
@@ -34,14 +42,8 @@ function getEdgesBySelection(topo) {
|
|
34
42
|
var nodes = selection.filter(function (element) {
|
35
43
|
return element instanceof ht.Node;
|
36
44
|
});
|
37
|
-
|
38
|
-
|
39
|
-
(0, _htElementUtils.getEdges)(dm).forEach(function (edge) {
|
40
|
-
if (nodeIds.find(function (nodeId) {
|
41
|
-
return nodeId === edge.getSource().getId();
|
42
|
-
}) && nodeIds.find(function (nodeId) {
|
43
|
-
return nodeId === edge.getTarget().getId();
|
44
|
-
}) && !edges.find(function (item) {
|
45
|
+
getVisibleEdgesInNodes(gv, nodes).forEach(function (edge) {
|
46
|
+
if (!edges.find(function (item) {
|
45
47
|
return item === edge;
|
46
48
|
})) {
|
47
49
|
edges.push(edge);
|
@@ -54,7 +54,7 @@ var _SelectionModel = _interopRequireDefault(require("./SelectionModel"));
|
|
54
54
|
var _CiCache = _interopRequireDefault(require("./cache/CiCache"));
|
55
55
|
|
56
56
|
// eslint-disable-next-line no-undef
|
57
|
-
var version = typeof "12.1.0-dev.
|
57
|
+
var version = typeof "12.1.0-dev.3" === 'string' ? "12.1.0-dev.3" : null;
|
58
58
|
console.info("\u62D3\u6251\u7248\u672C: " + version);
|
59
59
|
/**
|
60
60
|
* 拓扑显示和编辑
|
@@ -186,7 +186,8 @@ var plurals = {
|
|
186
186
|
2: ["phy"],
|
187
187
|
3: ["agg"],
|
188
188
|
4: ["phy", "agg"]
|
189
|
-
};
|
189
|
+
}; // 待办:移到网络拓扑组件
|
190
|
+
|
190
191
|
exports.plurals = plurals;
|
191
192
|
|
192
193
|
var showLinkByConfig = function showLinkByConfig(props) {
|
@@ -200,29 +201,29 @@ var showLinkByConfig = function showLinkByConfig(props) {
|
|
200
201
|
|
201
202
|
var gv = topo.getGraphView();
|
202
203
|
var dm = gv.getDataModel();
|
203
|
-
var edges = (0, _htElementUtils.getEdges)(dm)
|
204
|
+
var edges = (0, _htElementUtils.getEdges)(dm).filter(function (edge) {
|
205
|
+
return !(0, _htElementUtils.isEdgeGroup)(edge);
|
206
|
+
}); // console.log("edges", edges);
|
204
207
|
|
205
208
|
var showPhy = types.indexOf("phy") >= 0;
|
206
209
|
var showAgg = types.indexOf("agg") >= 0; // console.log("edges----types",showType, types,showPhy, showAgg);
|
207
210
|
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
var d = topo.dataModel.getDataById(edge.getTag()); // 判断是否聚合链路
|
211
|
+
edges.forEach(function (edge) {
|
212
|
+
if (showType === 1 || showType === true) {
|
213
|
+
// 单链路全部显示
|
214
|
+
// console.log("单链路全部显示", edge);
|
215
|
+
edge.s("x.visible", true);
|
216
|
+
} else {
|
217
|
+
var d = topo.dataModel.getDataById(edge.getTag()); // 判断是否聚合链路
|
216
218
|
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
}
|
219
|
+
if (isAggLink(d)) {
|
220
|
+
edge.s("x.visible", showAgg);
|
221
|
+
} else {
|
222
|
+
// console.log("edge", edge, d, showAgg);
|
223
|
+
edge.s("x.visible", showPhy);
|
223
224
|
}
|
224
|
-
}
|
225
|
-
}
|
225
|
+
}
|
226
|
+
});
|
226
227
|
};
|
227
228
|
|
228
229
|
exports.showLinkByConfig = showLinkByConfig;
|
@@ -10,12 +10,14 @@ var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-ut
|
|
10
10
|
|
11
11
|
var _linkUtils = require("../models/utils/linkUtils");
|
12
12
|
|
13
|
+
var _htElementUtils = require("../../utils/htElementUtils");
|
14
|
+
|
13
15
|
/**
|
14
16
|
* 是否手工连线
|
15
17
|
* @param {*} edge
|
16
18
|
*/
|
17
19
|
function isCustomEdge(edge) {
|
18
|
-
return !
|
20
|
+
return !(0, _htElementUtils.isEdgeGroup)(edge) && (edge.a('type') == 'line' || !edge.a('type'));
|
19
21
|
}
|
20
22
|
/**
|
21
23
|
* 根据配置更新连线展开折叠状态
|
@@ -26,8 +26,10 @@ exports.getNodeDatas = getNodeDatas;
|
|
26
26
|
exports.getNodes = getNodes;
|
27
27
|
exports.getNodesByGroupIdOrTag = getNodesByGroupIdOrTag;
|
28
28
|
exports.isEdge = isEdge;
|
29
|
+
exports.isEdgeGroup = isEdgeGroup;
|
29
30
|
exports.isEdgeGroupAgent = isEdgeGroupAgent;
|
30
31
|
exports.isEdgeGroupExpanded = isEdgeGroupExpanded;
|
32
|
+
exports.isEdgeVisible = isEdgeVisible;
|
31
33
|
exports.isExistedElement = isExistedElement;
|
32
34
|
exports.isGroup = isGroup;
|
33
35
|
exports.isLayer = isLayer;
|
@@ -172,9 +174,15 @@ function getNodeData(element) {
|
|
172
174
|
function getEdges(dataModel) {
|
173
175
|
return getElements(dataModel).filter(isValidEdge);
|
174
176
|
}
|
177
|
+
/**
|
178
|
+
* 是否连线组
|
179
|
+
* @param {ht.Edge} edge
|
180
|
+
* @returns
|
181
|
+
*/
|
175
182
|
|
176
|
-
|
177
|
-
|
183
|
+
|
184
|
+
function isEdgeGroup(edge) {
|
185
|
+
return isEdge(edge) && edge.a('edgegroup.isEdgeGroup');
|
178
186
|
}
|
179
187
|
/**
|
180
188
|
* 是否连线组代理
|
@@ -184,7 +192,15 @@ function isEdgeGroupExpanded(edge) {
|
|
184
192
|
|
185
193
|
|
186
194
|
function isEdgeGroupAgent(edge) {
|
187
|
-
return
|
195
|
+
return isEdgeGroup(edge) && isEdgeVisible(edge);
|
196
|
+
}
|
197
|
+
|
198
|
+
function isEdgeGroupExpanded(edge) {
|
199
|
+
return isEdge(edge) && edge.getEdgeGroup() && !!edge.s("edge.expanded");
|
200
|
+
}
|
201
|
+
|
202
|
+
function isEdgeVisible(edge) {
|
203
|
+
return edge.s('2d.visible') || edge.s('2d.visible') === undefined;
|
188
204
|
}
|
189
205
|
/**
|
190
206
|
* 获得两个节点间的连线列表
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@riil-frontend/component-topology",
|
3
|
-
"version": "12.1.0-dev.
|
3
|
+
"version": "12.1.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@12.1.0-dev.
|
126
|
+
"homepage": "https://unpkg.com/@riil-frontend/component-topology@12.1.0-dev.3/build/index.html",
|
127
127
|
"gitHead": "2da19ffccbb7ca60a8acf396e39f542c68bb33f5"
|
128
128
|
}
|