@riil-frontend/component-topology 6.0.0-alpha.5 → 6.0.0-alpha.6

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 (35) hide show
  1. package/build/index.css +1 -1
  2. package/build/index.js +6 -6
  3. package/es/components/VerticalIconTab/VerticalIconTab.module.scss +4 -0
  4. package/es/core/editor/components/Sidebar/Sidebar.js +9 -1
  5. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +2 -3
  6. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +27 -6
  7. package/es/core/editor/components/Toolbar/widgets/NodeSizeButton/NodeSizeButton.js +2 -1
  8. package/es/core/editor/components/Toolbar/widgets/WidgetBox.js +5 -1
  9. package/es/core/editor/components/Toolbar/widgets/WidgetBox.module.scss +1 -0
  10. package/es/core/editor/components/Toolbar/widgets/components/DropdownButton.js +8 -5
  11. package/es/core/editor/components/settings/common/LineType/index.js +3 -19
  12. package/es/core/editor/components/settings/common/SizeInput/NodeSizeInput.js +3 -0
  13. package/es/core/editor/components/settings/propertyViews/multipleElements/MultipleElementLineType.js +2 -37
  14. package/es/core/editor/store/topoEdit.js +3 -0
  15. package/es/core/editor/utils/edgeTypeStyleUtil.js +73 -0
  16. package/es/core/models/TopoApp.js +1 -1
  17. package/es/core/models/TopoGraphView.js +8 -2
  18. package/lib/components/VerticalIconTab/VerticalIconTab.module.scss +4 -0
  19. package/lib/core/editor/components/Sidebar/Sidebar.js +8 -0
  20. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/LineType.js +2 -3
  21. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +27 -5
  22. package/lib/core/editor/components/Toolbar/widgets/NodeSizeButton/NodeSizeButton.js +2 -1
  23. package/lib/core/editor/components/Toolbar/widgets/WidgetBox.js +5 -1
  24. package/lib/core/editor/components/Toolbar/widgets/WidgetBox.module.scss +1 -0
  25. package/lib/core/editor/components/Toolbar/widgets/components/DropdownButton.js +8 -5
  26. package/lib/core/editor/components/settings/common/LineType/index.js +3 -18
  27. package/lib/core/editor/components/settings/common/SizeInput/NodeSizeInput.js +3 -0
  28. package/lib/core/editor/components/settings/propertyViews/multipleElements/MultipleElementLineType.js +2 -37
  29. package/lib/core/editor/store/topoEdit.js +3 -0
  30. package/lib/core/editor/utils/edgeTypeStyleUtil.js +82 -0
  31. package/lib/core/models/TopoApp.js +1 -1
  32. package/lib/core/models/TopoGraphView.js +8 -2
  33. package/package.json +2 -2
  34. package/es/core/store/models/topoView.js +0 -36
  35. package/lib/core/store/models/topoView.js +0 -47
@@ -37,6 +37,10 @@
37
37
  &:hover {
38
38
  background-color: rgba(76, 137, 255, 0.1);
39
39
  }
40
+
41
+ .tab-title {
42
+ margin-top: 3px;
43
+ }
40
44
  }
41
45
  }
42
46
  }
@@ -1,5 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import React, { useState } from 'react';
2
+ import React, { useEffect, useState } from 'react';
3
3
  import classNames from 'classnames';
4
4
  import Tab from "../../../../components/VerticalIconTab";
5
5
  import panes from "./panes";
@@ -15,6 +15,14 @@ function Sidebar(props) {
15
15
  topoEditDispatchers = _topo$store$useModel[1];
16
16
 
17
17
  var activeKey = topoEditState.resourceTabactiveKey;
18
+ useEffect(function () {
19
+ return function () {
20
+ // 退出编辑模式,关闭资源面板状态
21
+ topoEditDispatchers.update({
22
+ resourceTabactiveKey: null
23
+ });
24
+ };
25
+ }, []);
18
26
 
19
27
  var renderTabItem = function renderTabItem(pane) {
20
28
  var View = pane.content;
@@ -24,8 +24,7 @@ var LINE_TYPE_OPTIONS = [{
24
24
  }];
25
25
 
26
26
  function LineType(props) {
27
- var handleChange = function handleChange(node) {};
28
-
27
+ var onChange = props.onChange;
29
28
  return /*#__PURE__*/React.createElement("div", {
30
29
  className: styles.lineType
31
30
  }, LINE_TYPE_OPTIONS.map(function (item, index, array) {
@@ -34,7 +33,7 @@ function LineType(props) {
34
33
  title: item.label,
35
34
  className: "" + styles.redioBtn,
36
35
  onClick: function onClick() {
37
- handleChange(item);
36
+ onChange(item.value);
38
37
  }
39
38
  }, /*#__PURE__*/React.createElement("img", {
40
39
  src: "/img/topo/editor/lineType/" + item.icon + ".svg",
@@ -1,6 +1,7 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
2
2
  var _excluded = ["topo", "showLabel"];
3
- import React, { useEffect, useState } from 'react';
3
+ import React, { useEffect, useMemo, useState } from 'react';
4
+ import { getEdgesBySelection, setEdgesType } from "../../../../utils/edgeTypeStyleUtil";
4
5
  import DropdownButton from "../components/DropdownButton";
5
6
  import WidgetBox from "../WidgetBox";
6
7
  import EdgeType from "./EdgeType";
@@ -15,15 +16,32 @@ function EdgeTypeButton(props) {
15
16
  showLabel = props.showLabel,
16
17
  otherProps = _objectWithoutPropertiesLoose(props, _excluded);
17
18
 
18
- var _useState = useState(true),
19
+ var _useState = useState(false),
19
20
  disabled = _useState[0],
20
- setDisabled = _useState[1]; // 选中的元素
21
+ setDisabled = _useState[1]; // 拓扑图是否加载
22
+
23
+
24
+ var _topo$store$useModelS = topo.store.useModelState('topoMod'),
25
+ graphLoaded = _topo$store$useModelS.graphLoaded; // 选中的元素
21
26
 
22
27
 
23
28
  var selection = topo.selectionManager.useSelection();
24
29
  useEffect(function () {
25
- setDisabled(false);
26
- }, [selection]);
30
+ if (graphLoaded) {
31
+ var edges = getEdgesBySelection(topo);
32
+ console.info('xxxx', edges, selection);
33
+ setDisabled(!edges.length);
34
+ }
35
+ }, [selection, graphLoaded]);
36
+
37
+ var handleChange = function handleChange(name, value) {
38
+ var edges = getEdgesBySelection(topo);
39
+
40
+ if (name === 'lineButton') {
41
+ setEdgesType(edges, value, topo);
42
+ }
43
+ };
44
+
27
45
  var icon = disabled ? /*#__PURE__*/React.createElement("img", {
28
46
  src: "/img/topo/editor/toolbar/\u7EBF\u5F62/Disable.svg",
29
47
  alt: ""
@@ -34,11 +52,14 @@ function EdgeTypeButton(props) {
34
52
  return /*#__PURE__*/React.createElement(WidgetBox, {
35
53
  label: "\u7EBF\u5F62",
36
54
  tooltip: "\u7EBF\u5F62",
55
+ disabled: disabled,
37
56
  showLabel: showLabel
38
57
  }, /*#__PURE__*/React.createElement(DropdownButton, {
39
58
  disabled: disabled,
40
59
  trigger: icon
41
- }, /*#__PURE__*/React.createElement(EdgeType, null)));
60
+ }, /*#__PURE__*/React.createElement(EdgeType, {
61
+ onChange: handleChange
62
+ })));
42
63
  }
43
64
 
44
65
  export default EdgeTypeButton;
@@ -35,7 +35,8 @@ function NodeSizeButton(props) {
35
35
  }, /*#__PURE__*/React.createElement(BatchSetNodeSize, {
36
36
  topo: topo,
37
37
  size: "small",
38
- showLabel: false
38
+ showLabel: false,
39
+ hasTrigger: false
39
40
  })));
40
41
  }
41
42
 
@@ -24,7 +24,11 @@ function WidgetBox(props) {
24
24
 
25
25
  return /*#__PURE__*/React.createElement(_Balloon.Tooltip, {
26
26
  trigger: button,
27
- align: "b"
27
+ align: "b" // 解决遮挡下拉浮层问题
28
+ ,
29
+ popupStyle: {
30
+ zIndex: 1000
31
+ }
28
32
  }, tooltip);
29
33
  }
30
34
 
@@ -8,6 +8,7 @@
8
8
  border-width: 0;
9
9
  background-color: transparent;
10
10
  border-color: transparent;
11
+ user-select: none;
11
12
 
12
13
  &[disabled] {
13
14
  cursor: not-allowed;
@@ -6,6 +6,7 @@ import styles from "./DropdownButton.module.scss";
6
6
 
7
7
  function DropdownButton(props) {
8
8
  var trigger = props.trigger,
9
+ disabled = props.disabled,
9
10
  _props$showArrow = props.showArrow,
10
11
  showArrow = _props$showArrow === void 0 ? true : _props$showArrow,
11
12
  _props$showContainer = props.showContainer,
@@ -13,18 +14,20 @@ function DropdownButton(props) {
13
14
  children = props.children;
14
15
 
15
16
  var _useState = useState(false),
16
- visible = _useState[0],
17
- setVisible = _useState[1];
17
+ active = _useState[0],
18
+ setActive = _useState[1];
18
19
 
19
20
  var button = /*#__PURE__*/React.createElement(ButtonBox, {
20
- active: visible,
21
+ active: active,
22
+ disabled: disabled,
21
23
  showArrow: showArrow
22
24
  }, trigger);
23
25
  return /*#__PURE__*/React.createElement(_Dropdown, {
24
- visible: visible,
26
+ visible: active,
27
+ disabled: disabled,
25
28
  trigger: button,
26
29
  triggerType: "click",
27
- onVisibleChange: setVisible
30
+ onVisibleChange: setActive
28
31
  }, !showContainer ? children : /*#__PURE__*/React.createElement(PopupCard, null, children));
29
32
  }
30
33
 
@@ -1,7 +1,8 @@
1
1
  import _Box from "@alifd/next/es/box";
2
2
  import _Button from "@alifd/next/es/button";
3
3
  import React, { useState } from "react";
4
- import styles from "./LineType.module.scss"; // 直线 2. 直线单向箭头 3. 直线双向箭头 4. 双折线 5. 双折线单向箭头 6. 弧线
4
+ import styles from "./LineType.module.scss";
5
+ import { setEdgesType } from "../../../../utils/edgeTypeStyleUtil"; // 直线 2. 直线单向箭头 3. 直线双向箭头 4. 双折线 5. 双折线单向箭头 6. 弧线
5
6
  // 7. 弧线单向箭头 8. 内向双向箭头 9. 纵向折线 10. 纵向折线带箭头 11. 水平折线 12. 水平折线带箭头
6
7
 
7
8
  var LINE_TYPE_OPTIONS = [{
@@ -66,24 +67,7 @@ var LineType = function LineType(props) {
66
67
 
67
68
  var setLineType = function setLineType(type) {
68
69
  var edges = getEdges();
69
- var htTopo = topo.getHtTopo();
70
- edges.forEach(function (edge) {
71
- htTopo.setGraphLinear(edge, {
72
- type: type
73
- });
74
-
75
- if (edge.isEdgeGroupAgent()) {
76
- // 连线组折叠时同时设置子连线
77
- var edgeChildren = edge.getEdgeGroup().getEdges().toArray();
78
- htTopo.toggleEdgeGroup(edge.getSource(), edge.getTarget(), true);
79
- edgeChildren.forEach(function (edgeChild) {
80
- htTopo.setGraphLinear(edgeChild, {
81
- type: type
82
- });
83
- });
84
- htTopo.toggleEdgeGroup(edge.getSource(), edge.getTarget(), false);
85
- }
86
- });
70
+ setEdgesType(edges, type, topo);
87
71
  };
88
72
 
89
73
  var handleChange = function handleChange(data) {
@@ -26,6 +26,7 @@ function SizeInput(props) {
26
26
  onLockChange = props.onLockChange,
27
27
  _props$showLabel = props.showLabel,
28
28
  showLabel = _props$showLabel === void 0 ? true : _props$showLabel,
29
+ hasTrigger = props.hasTrigger,
29
30
  size = props.size;
30
31
 
31
32
  var handleChange = function handleChange(name, attrValue) {
@@ -73,6 +74,7 @@ function SizeInput(props) {
73
74
  step: step,
74
75
  placeholder: "\u8BF7\u8F93\u5165",
75
76
  size: size,
77
+ hasTrigger: hasTrigger,
76
78
  style: {
77
79
  width: '100%'
78
80
  },
@@ -104,6 +106,7 @@ function SizeInput(props) {
104
106
  step: step,
105
107
  placeholder: "\u8BF7\u8F93\u5165",
106
108
  size: size,
109
+ hasTrigger: hasTrigger,
107
110
  style: {
108
111
  width: '100%'
109
112
  },
@@ -1,48 +1,13 @@
1
1
  import React from 'react';
2
- import { getEdges } from "../../../../../../utils/htElementUtils";
2
+ import { getEdgesBySelection } from "../../../../utils/edgeTypeStyleUtil";
3
3
  import LineType from "../../common/LineType";
4
4
  export default function MultipleElementLineType(props) {
5
5
  var topo = props.topo;
6
6
 
7
7
  var setLineType = function setLineType(type) {};
8
8
 
9
- var getChildrenNodeIds = function getChildrenNodeIds(nodes) {
10
- var nodeIds = nodes.map(function (node) {
11
- return node.getId();
12
- });
13
- nodes.forEach(function (node) {
14
- if (node instanceof ht.Group) {
15
- var children = node.getChildren().toArray();
16
- nodeIds.push.apply(nodeIds, getChildrenNodeIds(children));
17
- }
18
- });
19
- return nodeIds;
20
- };
21
-
22
9
  var getSelectedEdges = function getSelectedEdges() {
23
- var gv = topo.getGraphView();
24
- var selection = gv.getSelectionModel().getSelection().toArray();
25
- var edges = selection.filter(function (element) {
26
- return element instanceof ht.Edge;
27
- }); // 查询选中节点间的连线
28
-
29
- var nodes = selection.filter(function (element) {
30
- return element instanceof ht.Node;
31
- });
32
- var nodeIds = getChildrenNodeIds(nodes);
33
- var dm = gv.getDataModel();
34
- getEdges(dm).forEach(function (edge) {
35
- if (nodeIds.find(function (nodeId) {
36
- return nodeId === edge.getSource().getId();
37
- }) && nodeIds.find(function (nodeId) {
38
- return nodeId === edge.getTarget().getId();
39
- }) && !edges.find(function (item) {
40
- return item === edge;
41
- })) {
42
- edges.push(edge);
43
- }
44
- });
45
- return edges;
10
+ return getEdgesBySelection(topo);
46
11
  };
47
12
 
48
13
  return /*#__PURE__*/React.createElement(LineType, {
@@ -10,6 +10,9 @@ import topoService from '@riil-frontend/component-topology-common/es/services/to
10
10
  export default {
11
11
  // 定义 model 的初始 state
12
12
  state: {
13
+ // 是否就绪
14
+ ready: false,
15
+ // 保存状态
13
16
  saving: false,
14
17
  // 选择/拖动模式模式。默认选择模式 select|move
15
18
  viewMouseMode: 'select',
@@ -0,0 +1,73 @@
1
+ import { getEdges } from "../../../utils/htElementUtils";
2
+ var ht = window.ht;
3
+ export function getEdgesBySelection(topo) {
4
+ var getChildrenNodeIds = function getChildrenNodeIds(nodes) {
5
+ var nodeIds = nodes.map(function (node) {
6
+ return node.getId();
7
+ });
8
+ nodes.forEach(function (node) {
9
+ if (node instanceof ht.Group) {
10
+ var children = node.getChildren().toArray();
11
+ nodeIds.push.apply(nodeIds, getChildrenNodeIds(children));
12
+ }
13
+ });
14
+ return nodeIds;
15
+ };
16
+
17
+ var getSelectedEdges = function getSelectedEdges(topo) {
18
+ var gv = topo.getGraphView();
19
+ var selection = gv.getSelectionModel().getSelection().toArray(); // 选中的连线
20
+
21
+ var edges = selection.filter(function (element) {
22
+ return element instanceof ht.Edge;
23
+ }); // 查询选中节点间的连线
24
+
25
+ var nodes = selection.filter(function (element) {
26
+ return element instanceof ht.Node;
27
+ });
28
+ var nodeIds = getChildrenNodeIds(nodes);
29
+ var dm = gv.getDataModel();
30
+ getEdges(dm).forEach(function (edge) {
31
+ if (nodeIds.find(function (nodeId) {
32
+ return nodeId === edge.getSource().getId();
33
+ }) && nodeIds.find(function (nodeId) {
34
+ return nodeId === edge.getTarget().getId();
35
+ }) && !edges.find(function (item) {
36
+ return item === edge;
37
+ })) {
38
+ edges.push(edge);
39
+ }
40
+ });
41
+ return edges;
42
+ };
43
+
44
+ return getSelectedEdges(topo);
45
+ }
46
+ /**
47
+ * 批量设置连线线形
48
+ *
49
+ * @param {*} edges
50
+ * @param {*} type
51
+ * @param {*} topo
52
+ */
53
+
54
+ export function setEdgesType(edges, type, topo) {
55
+ var htTopo = topo.getHtTopo();
56
+ edges.forEach(function (edge) {
57
+ htTopo.setGraphLinear(edge, {
58
+ type: type
59
+ });
60
+
61
+ if (edge.isEdgeGroupAgent()) {
62
+ // 连线组折叠时同时设置子连线
63
+ var edgeChildren = edge.getEdgeGroup().getEdges().toArray();
64
+ htTopo.toggleEdgeGroup(edge.getSource(), edge.getTarget(), true);
65
+ edgeChildren.forEach(function (edgeChild) {
66
+ htTopo.setGraphLinear(edgeChild, {
67
+ type: type
68
+ });
69
+ });
70
+ htTopo.toggleEdgeGroup(edge.getSource(), edge.getTarget(), false);
71
+ }
72
+ });
73
+ }
@@ -22,7 +22,7 @@ import topoFactory from "./topoFactory";
22
22
  import ElementTagTipConfig from "./tagstips/ElementTagTipConfig";
23
23
  import SelectionManager from "./SelectionManager"; // eslint-disable-next-line no-undef
24
24
 
25
- var version = typeof "6.0.0-alpha.5" === 'string' ? "6.0.0-alpha.5" : null;
25
+ var version = typeof "6.0.0-alpha.6" === 'string' ? "6.0.0-alpha.6" : null;
26
26
  console.info("\u62D3\u6251\u7248\u672C: " + version);
27
27
  /**
28
28
  * 拓扑显示和编辑
@@ -26,10 +26,16 @@ var TopoGraphView = /*#__PURE__*/function () {
26
26
  this.contextMenu = new ContextMenu();
27
27
  };
28
28
 
29
- _proto.getHtDataModel = function getHtDataModel() {
29
+ _proto.getHtGraphView = function getHtGraphView() {
30
30
  var _this$topoClient;
31
31
 
32
- return (_this$topoClient = this.topoClient) === null || _this$topoClient === void 0 ? void 0 : _this$topoClient.getDataModel();
32
+ return (_this$topoClient = this.topoClient) === null || _this$topoClient === void 0 ? void 0 : _this$topoClient.getGraphView();
33
+ };
34
+
35
+ _proto.getHtDataModel = function getHtDataModel() {
36
+ var _this$topoClient2;
37
+
38
+ return (_this$topoClient2 = this.topoClient) === null || _this$topoClient2 === void 0 ? void 0 : _this$topoClient2.getDataModel();
33
39
  }
34
40
  /**
35
41
  * 缩放平移整个拓扑以展示所有的图元
@@ -37,6 +37,10 @@
37
37
  &:hover {
38
38
  background-color: rgba(76, 137, 255, 0.1);
39
39
  }
40
+
41
+ .tab-title {
42
+ margin-top: 3px;
43
+ }
40
44
  }
41
45
  }
42
46
  }
@@ -31,6 +31,14 @@ function Sidebar(props) {
31
31
  topoEditDispatchers = _topo$store$useModel[1];
32
32
 
33
33
  var activeKey = topoEditState.resourceTabactiveKey;
34
+ (0, _react.useEffect)(function () {
35
+ return function () {
36
+ // 退出编辑模式,关闭资源面板状态
37
+ topoEditDispatchers.update({
38
+ resourceTabactiveKey: null
39
+ });
40
+ };
41
+ }, []);
34
42
 
35
43
  var renderTabItem = function renderTabItem(pane) {
36
44
  var View = pane.content;
@@ -38,8 +38,7 @@ var LINE_TYPE_OPTIONS = [{
38
38
  }];
39
39
 
40
40
  function LineType(props) {
41
- var handleChange = function handleChange(node) {};
42
-
41
+ var onChange = props.onChange;
43
42
  return /*#__PURE__*/_react["default"].createElement("div", {
44
43
  className: _LineTypeModule["default"].lineType
45
44
  }, LINE_TYPE_OPTIONS.map(function (item, index, array) {
@@ -48,7 +47,7 @@ function LineType(props) {
48
47
  title: item.label,
49
48
  className: "" + _LineTypeModule["default"].redioBtn,
50
49
  onClick: function onClick() {
51
- handleChange(item);
50
+ onChange(item.value);
52
51
  }
53
52
  }, /*#__PURE__*/_react["default"].createElement("img", {
54
53
  src: "/img/topo/editor/lineType/" + item.icon + ".svg",
@@ -9,6 +9,8 @@ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runt
9
9
 
10
10
  var _react = _interopRequireWildcard(require("react"));
11
11
 
12
+ var _edgeTypeStyleUtil = require("../../../../utils/edgeTypeStyleUtil");
13
+
12
14
  var _DropdownButton = _interopRequireDefault(require("../components/DropdownButton"));
13
15
 
14
16
  var _WidgetBox = _interopRequireDefault(require("../WidgetBox"));
@@ -31,15 +33,32 @@ function EdgeTypeButton(props) {
31
33
  showLabel = props.showLabel,
32
34
  otherProps = (0, _objectWithoutPropertiesLoose2["default"])(props, _excluded);
33
35
 
34
- var _useState = (0, _react.useState)(true),
36
+ var _useState = (0, _react.useState)(false),
35
37
  disabled = _useState[0],
36
- setDisabled = _useState[1]; // 选中的元素
38
+ setDisabled = _useState[1]; // 拓扑图是否加载
39
+
40
+
41
+ var _topo$store$useModelS = topo.store.useModelState('topoMod'),
42
+ graphLoaded = _topo$store$useModelS.graphLoaded; // 选中的元素
37
43
 
38
44
 
39
45
  var selection = topo.selectionManager.useSelection();
40
46
  (0, _react.useEffect)(function () {
41
- setDisabled(false);
42
- }, [selection]);
47
+ if (graphLoaded) {
48
+ var edges = (0, _edgeTypeStyleUtil.getEdgesBySelection)(topo);
49
+ console.info('xxxx', edges, selection);
50
+ setDisabled(!edges.length);
51
+ }
52
+ }, [selection, graphLoaded]);
53
+
54
+ var handleChange = function handleChange(name, value) {
55
+ var edges = (0, _edgeTypeStyleUtil.getEdgesBySelection)(topo);
56
+
57
+ if (name === 'lineButton') {
58
+ (0, _edgeTypeStyleUtil.setEdgesType)(edges, value, topo);
59
+ }
60
+ };
61
+
43
62
  var icon = disabled ? /*#__PURE__*/_react["default"].createElement("img", {
44
63
  src: "/img/topo/editor/toolbar/\u7EBF\u5F62/Disable.svg",
45
64
  alt: ""
@@ -50,11 +69,14 @@ function EdgeTypeButton(props) {
50
69
  return /*#__PURE__*/_react["default"].createElement(_WidgetBox["default"], {
51
70
  label: "\u7EBF\u5F62",
52
71
  tooltip: "\u7EBF\u5F62",
72
+ disabled: disabled,
53
73
  showLabel: showLabel
54
74
  }, /*#__PURE__*/_react["default"].createElement(_DropdownButton["default"], {
55
75
  disabled: disabled,
56
76
  trigger: icon
57
- }, /*#__PURE__*/_react["default"].createElement(_EdgeType["default"], null)));
77
+ }, /*#__PURE__*/_react["default"].createElement(_EdgeType["default"], {
78
+ onChange: handleChange
79
+ })));
58
80
  }
59
81
 
60
82
  var _default = EdgeTypeButton;
@@ -51,7 +51,8 @@ function NodeSizeButton(props) {
51
51
  }, /*#__PURE__*/_react["default"].createElement(_BatchSetNodeSize["default"], {
52
52
  topo: topo,
53
53
  size: "small",
54
- showLabel: false
54
+ showLabel: false,
55
+ hasTrigger: false
55
56
  })));
56
57
  }
57
58
 
@@ -35,7 +35,11 @@ function WidgetBox(props) {
35
35
 
36
36
  return /*#__PURE__*/_react["default"].createElement(_balloon["default"].Tooltip, {
37
37
  trigger: button,
38
- align: "b"
38
+ align: "b" // 解决遮挡下拉浮层问题
39
+ ,
40
+ popupStyle: {
41
+ zIndex: 1000
42
+ }
39
43
  }, tooltip);
40
44
  }
41
45
 
@@ -8,6 +8,7 @@
8
8
  border-width: 0;
9
9
  background-color: transparent;
10
10
  border-color: transparent;
11
+ user-select: none;
11
12
 
12
13
  &[disabled] {
13
14
  cursor: not-allowed;
@@ -21,6 +21,7 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
21
21
 
22
22
  function DropdownButton(props) {
23
23
  var trigger = props.trigger,
24
+ disabled = props.disabled,
24
25
  _props$showArrow = props.showArrow,
25
26
  showArrow = _props$showArrow === void 0 ? true : _props$showArrow,
26
27
  _props$showContainer = props.showContainer,
@@ -28,19 +29,21 @@ function DropdownButton(props) {
28
29
  children = props.children;
29
30
 
30
31
  var _useState = (0, _react.useState)(false),
31
- visible = _useState[0],
32
- setVisible = _useState[1];
32
+ active = _useState[0],
33
+ setActive = _useState[1];
33
34
 
34
35
  var button = /*#__PURE__*/_react["default"].createElement(_ButtonBox["default"], {
35
- active: visible,
36
+ active: active,
37
+ disabled: disabled,
36
38
  showArrow: showArrow
37
39
  }, trigger);
38
40
 
39
41
  return /*#__PURE__*/_react["default"].createElement(_dropdown["default"], {
40
- visible: visible,
42
+ visible: active,
43
+ disabled: disabled,
41
44
  trigger: button,
42
45
  triggerType: "click",
43
- onVisibleChange: setVisible
46
+ onVisibleChange: setActive
44
47
  }, !showContainer ? children : /*#__PURE__*/_react["default"].createElement(PopupCard, null, children));
45
48
  }
46
49
 
@@ -13,6 +13,8 @@ var _react = _interopRequireWildcard(require("react"));
13
13
 
14
14
  var _LineTypeModule = _interopRequireDefault(require("./LineType.module.scss"));
15
15
 
16
+ var _edgeTypeStyleUtil = require("../../../../utils/edgeTypeStyleUtil");
17
+
16
18
  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); }
17
19
 
18
20
  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; }
@@ -81,24 +83,7 @@ var LineType = function LineType(props) {
81
83
 
82
84
  var setLineType = function setLineType(type) {
83
85
  var edges = getEdges();
84
- var htTopo = topo.getHtTopo();
85
- edges.forEach(function (edge) {
86
- htTopo.setGraphLinear(edge, {
87
- type: type
88
- });
89
-
90
- if (edge.isEdgeGroupAgent()) {
91
- // 连线组折叠时同时设置子连线
92
- var edgeChildren = edge.getEdgeGroup().getEdges().toArray();
93
- htTopo.toggleEdgeGroup(edge.getSource(), edge.getTarget(), true);
94
- edgeChildren.forEach(function (edgeChild) {
95
- htTopo.setGraphLinear(edgeChild, {
96
- type: type
97
- });
98
- });
99
- htTopo.toggleEdgeGroup(edge.getSource(), edge.getTarget(), false);
100
- }
101
- });
86
+ (0, _edgeTypeStyleUtil.setEdgesType)(edges, type, topo);
102
87
  };
103
88
 
104
89
  var handleChange = function handleChange(data) {
@@ -46,6 +46,7 @@ function SizeInput(props) {
46
46
  onLockChange = props.onLockChange,
47
47
  _props$showLabel = props.showLabel,
48
48
  showLabel = _props$showLabel === void 0 ? true : _props$showLabel,
49
+ hasTrigger = props.hasTrigger,
49
50
  size = props.size;
50
51
 
51
52
  var handleChange = function handleChange(name, attrValue) {
@@ -92,6 +93,7 @@ function SizeInput(props) {
92
93
  step: step,
93
94
  placeholder: "\u8BF7\u8F93\u5165",
94
95
  size: size,
96
+ hasTrigger: hasTrigger,
95
97
  style: {
96
98
  width: '100%'
97
99
  },
@@ -123,6 +125,7 @@ function SizeInput(props) {
123
125
  step: step,
124
126
  placeholder: "\u8BF7\u8F93\u5165",
125
127
  size: size,
128
+ hasTrigger: hasTrigger,
126
129
  style: {
127
130
  width: '100%'
128
131
  },