@riil-frontend/component-topology 6.0.0-alpha.30 → 6.0.0-alpha.31

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 (55) hide show
  1. package/build/1.js +2 -2
  2. package/build/2.js +1 -1
  3. package/build/index.css +1 -1
  4. package/build/index.js +20 -20
  5. package/es/core/editor/components/EditorPlugin.js +2 -1
  6. package/es/core/editor/components/Sidebar/Sidebar.js +2 -1
  7. package/es/core/editor/components/Sidebar/views/CanvasPanel/CanvasPanel.js +2 -3
  8. package/es/core/editor/components/Sidebar/views/ImagePanel/HtImagePalette.js +1 -0
  9. package/es/core/editor/components/Toolbar/buttons.js +5 -4
  10. package/es/core/editor/components/Toolbar/hooks/useFontStyleSetting.js +23 -6
  11. package/es/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +29 -9
  12. package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +15 -0
  13. package/es/core/editor/components/Toolbar/widgets/FontColorButton.js +4 -0
  14. package/es/core/editor/components/Toolbar/widgets/FontStyleButton.js +82 -33
  15. package/es/core/editor/components/Toolbar/widgets/NodeAlignWidget.js +20 -25
  16. package/es/core/editor/components/Toolbar/widgets/NodeAlignWidget.module.scss +22 -6
  17. package/es/core/editor/components/Toolbar/widgets/NodeSizeButton/NodeSizeButton.js +12 -9
  18. package/es/core/editor/components/Toolbar/widgets/components/DropdownButton.js +19 -6
  19. package/es/core/editor/components/Toolbar/widgets/components/DropdownMenu.js +8 -5
  20. package/es/core/editor/components/settings/CloseablePanel.js +7 -2
  21. package/es/core/editor/components/settings/CloseablePanel.module.scss +9 -0
  22. package/es/core/editor/components/settings/PropertyView.js +2 -6
  23. package/es/core/editor/components/settings/common/AlignSetting/index.js +1 -2
  24. package/es/core/editor/components/settings/propertyViews/edge/CommonEdgePropertyView.js +7 -1
  25. package/es/core/editor/utils/textStyleUtil.js +0 -0
  26. package/es/core/hooks/usePolling.js +2 -5
  27. package/es/core/models/AttributeMetricDisplay.js +4 -0
  28. package/es/core/models/TopoApp.js +1 -1
  29. package/es/utils/htElementUtils.js +3 -0
  30. package/lib/core/editor/components/EditorPlugin.js +3 -1
  31. package/lib/core/editor/components/Sidebar/Sidebar.js +2 -1
  32. package/lib/core/editor/components/Sidebar/views/CanvasPanel/CanvasPanel.js +2 -3
  33. package/lib/core/editor/components/Sidebar/views/ImagePanel/HtImagePalette.js +1 -0
  34. package/lib/core/editor/components/Toolbar/buttons.js +5 -4
  35. package/lib/core/editor/components/Toolbar/hooks/useFontStyleSetting.js +20 -6
  36. package/lib/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +29 -8
  37. package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +15 -0
  38. package/lib/core/editor/components/Toolbar/widgets/FontColorButton.js +5 -0
  39. package/lib/core/editor/components/Toolbar/widgets/FontStyleButton.js +88 -33
  40. package/lib/core/editor/components/Toolbar/widgets/NodeAlignWidget.js +20 -25
  41. package/lib/core/editor/components/Toolbar/widgets/NodeAlignWidget.module.scss +22 -6
  42. package/lib/core/editor/components/Toolbar/widgets/NodeSizeButton/NodeSizeButton.js +11 -9
  43. package/lib/core/editor/components/Toolbar/widgets/components/DropdownButton.js +18 -6
  44. package/lib/core/editor/components/Toolbar/widgets/components/DropdownMenu.js +10 -5
  45. package/lib/core/editor/components/settings/CloseablePanel.js +8 -2
  46. package/lib/core/editor/components/settings/CloseablePanel.module.scss +9 -0
  47. package/lib/core/editor/components/settings/PropertyView.js +3 -7
  48. package/lib/core/editor/components/settings/common/AlignSetting/index.js +1 -2
  49. package/lib/core/editor/components/settings/propertyViews/edge/CommonEdgePropertyView.js +7 -1
  50. package/lib/core/editor/utils/textStyleUtil.js +1 -0
  51. package/lib/core/hooks/usePolling.js +2 -5
  52. package/lib/core/models/AttributeMetricDisplay.js +4 -0
  53. package/lib/core/models/TopoApp.js +1 -1
  54. package/lib/utils/htElementUtils.js +5 -0
  55. package/package.json +2 -2
@@ -1,13 +1,16 @@
1
1
  import _ConfigProvider from "@alifd/next/es/config-provider";
2
2
  import _Icon from "@alifd/next/es/icon";
3
3
  import React from 'react';
4
+ import styles from "./CloseablePanel.module.scss";
4
5
 
5
6
  function CloseablePanel(props) {
6
7
  var prefix = props.prefix,
7
8
  title = props.title,
8
9
  onClose = props.onClose,
9
10
  children = props.children;
10
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
11
+ return /*#__PURE__*/React.createElement("div", {
12
+ className: styles.panel
13
+ }, /*#__PURE__*/React.createElement("div", {
11
14
  className: prefix + "drawer-header",
12
15
  role: "heading",
13
16
  "aria-level": "1"
@@ -19,7 +22,9 @@ function CloseablePanel(props) {
19
22
  }, /*#__PURE__*/React.createElement(_Icon, {
20
23
  type: "close",
21
24
  className: "next-drawer-close-icon"
22
- }))), /*#__PURE__*/React.createElement("div", null, children));
25
+ }))), /*#__PURE__*/React.createElement("div", {
26
+ className: styles.body
27
+ }, children));
23
28
  }
24
29
 
25
30
  CloseablePanel.defaultProps = {
@@ -0,0 +1,9 @@
1
+ .panel {
2
+ height: 100%;
3
+ display: flex;
4
+ flex-direction: column;
5
+ background: #FFFFFF;
6
+ }
7
+ .body {
8
+ flex: 1;
9
+ }
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
2
  import classNames from 'classnames';
3
3
  import Settings from "./Settings";
4
- import styles from "./Settings.module.scss";
5
4
  import OpenPropertyPanelListener from "./OpenPropertyPanelListener";
6
5
  import CloseablePanel from "./CloseablePanel";
6
+ import styles from "./Settings.module.scss";
7
7
  export default function PropertyView(props) {
8
8
  var _classNames;
9
9
 
@@ -28,10 +28,6 @@ export default function PropertyView(props) {
28
28
  }
29
29
 
30
30
  var renderContent = function renderContent() {
31
- if (!graphLoaded) {
32
- return null;
33
- }
34
-
35
31
  return /*#__PURE__*/React.createElement(OpenPropertyPanelListener, {
36
32
  topo: topo
37
33
  }, /*#__PURE__*/React.createElement(Settings, {
@@ -52,5 +48,5 @@ export default function PropertyView(props) {
52
48
  propertyPanelVisible: false
53
49
  });
54
50
  }
55
- }), renderContent());
51
+ }, renderContent()));
56
52
  }
@@ -13,8 +13,7 @@ export default function AlignSetting(props) {
13
13
  return !isLayer(ele) && !isEdge(ele);
14
14
  }); // console.info("element--selectList", element, selectList);
15
15
 
16
- topo.view.topoClient.htTopoClient.setAlignmentBySelectionNodes(type, nodes); // topo.view.topoClient.htTopoClient.setElementsSpace(nodes,'h',300)
17
-
16
+ topo.view.topoClient.htTopoClient.setAlignmentBySelectionNodes(type, nodes);
18
17
  topo.historyManager.endTransaction();
19
18
  };
20
19
 
@@ -41,8 +41,10 @@ export default function CommonEdgePropertyView(props) {
41
41
  }, [values]);
42
42
 
43
43
  var setLineColor = function setLineColor(color) {
44
- var style = edge.a("styles") || {};
44
+ // 同时修改实线、虚线
45
45
  edge.s("edge.color", color);
46
+ edge.s("edge.dash.color", color);
47
+ var style = edge.a("styles") || {};
46
48
  edge.a("styles", _extends({}, style, {
47
49
  color: color
48
50
  }));
@@ -93,6 +95,10 @@ export default function CommonEdgePropertyView(props) {
93
95
  style: {
94
96
  width: "100%"
95
97
  },
98
+ onChange: function onChange(val) {
99
+ // 同时修改实线、虚线的线宽
100
+ edge.s('edge.dash.width', val);
101
+ },
96
102
  onFocus: function onFocus() {
97
103
  topo.historyManager.beginTransaction();
98
104
  },
File without changes
@@ -61,11 +61,8 @@ var usePolling = function usePolling(props) {
61
61
 
62
62
 
63
63
  useEffect(function () {
64
- var isViewer = topoState.viewState === 'view';
65
-
66
- if (topo.options.enableDefaultMetricLoader && isViewer) {
64
+ if (topo.options.enableDefaultMetricLoader) {
67
65
  rlog.debug('usePolling.useEffect: 开始轮询', {
68
- isViewer: isViewer,
69
66
  pollingSwitch: pollingSwitch,
70
67
  resIdsList: resIdsList,
71
68
  resourceOverviewState: resourceOverviewState,
@@ -80,7 +77,7 @@ var usePolling = function usePolling(props) {
80
77
  stopPoll();
81
78
  }
82
79
  };
83
- }, [topoState.viewState, pollingSwitch, resIdsList, displayConfig, resourceOverviewState.id, resourceOverviewState.metricCodes]);
80
+ }, [pollingSwitch, resIdsList, displayConfig, resourceOverviewState.id, resourceOverviewState.metricCodes]);
84
81
  /**
85
82
  *
86
83
  * @returns {{id, attributes: object[], metrics: object[]}[]} 属性和指标
@@ -650,7 +650,11 @@ var AttributeMetricDisplay = /*#__PURE__*/function () {
650
650
  var htTopo = topo.getHtTopo();
651
651
 
652
652
  if (htTopo) {
653
+ var _topo$historyManager, _topo$historyManager2;
654
+
655
+ (_topo$historyManager = topo.historyManager) === null || _topo$historyManager === void 0 ? void 0 : _topo$historyManager.setDisabled(true, '加载标注');
653
656
  htTopo.loadTagAndTip(JSON.parse(JSON.stringify(elementTagsAndTips)));
657
+ (_topo$historyManager2 = topo.historyManager) === null || _topo$historyManager2 === void 0 ? void 0 : _topo$historyManager2.setDisabled(false, '加载标注');
654
658
  }
655
659
  }
656
660
  /**
@@ -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.30" === 'string' ? "6.0.0-alpha.30" : null;
25
+ var version = typeof "6.0.0-alpha.31" === 'string' ? "6.0.0-alpha.31" : null;
26
26
  console.info("\u62D3\u6251\u7248\u672C: " + version);
27
27
  /**
28
28
  * 拓扑显示和编辑
@@ -50,6 +50,9 @@ export function isGroup(element) {
50
50
  export function isLayer(element) {
51
51
  return element instanceof ht.Grid;
52
52
  }
53
+ export function isText(element) {
54
+ return element instanceof ht.Text && element.a('isText');
55
+ }
53
56
  export function getElements(dataModel) {
54
57
  // console.error(111, dataModel.getDatas().getArray())
55
58
  return dataModel.getDatas().getArray();
@@ -17,13 +17,15 @@ var _MultipleResourceSelectPlugin = _interopRequireDefault(require("./plugins/Mu
17
17
 
18
18
  var _GroupAddResourceDrawerPlugin = _interopRequireDefault(require("./GroupAddResourceDrawerPlugin"));
19
19
 
20
+ var _MetricPollingPlugin = _interopRequireDefault(require("../../viewer/components/plugins/MetricPollingPlugin"));
21
+
20
22
  function TopoEditorPlugin(props) {
21
23
  var topo = props.topo,
22
24
  topoContext = props.topoContext,
23
25
  topoEdit = props.topoEdit,
24
26
  editorProps = props.editorProps;
25
27
  var store = topo.store;
26
- var plugins = [_SaveLoading["default"], _GroupAddResourceDrawerPlugin["default"], _MultipleResourceSelectPlugin["default"], _CustomIconPlugin["default"]].concat((editorProps === null || editorProps === void 0 ? void 0 : editorProps.plugins) || []);
28
+ var plugins = [_SaveLoading["default"], _GroupAddResourceDrawerPlugin["default"], _MultipleResourceSelectPlugin["default"], _CustomIconPlugin["default"], _MetricPollingPlugin["default"]].concat((editorProps === null || editorProps === void 0 ? void 0 : editorProps.plugins) || []);
27
29
  return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, plugins.map(function (Plugin, index) {
28
30
  return /*#__PURE__*/_react["default"].createElement(Plugin, (0, _extends2["default"])({
29
31
  key: index,
@@ -42,7 +42,8 @@ function Sidebar(props) {
42
42
  resourceTabActiveKey: null
43
43
  });
44
44
  };
45
- }, []);
45
+ }, []); // 通过url参数打开对应面板
46
+
46
47
  (0, _react.useEffect)(function () {
47
48
  var _topo$viewProps$urlPa;
48
49
 
@@ -61,7 +61,7 @@ function CanvasPanel(props) {
61
61
  topo.historyManager.beginTransaction();
62
62
  displayConfigDispatchers.update({
63
63
  canvasTheme: theme
64
- }); // 设置资源标注
64
+ }); // 设置资源/链路标注样式
65
65
 
66
66
  var _topo$store$getModelS = topo.store.getModelState('displayConfig'),
67
67
  nodeLabelStyle = _topo$store$getModelS.nodeLabelStyle,
@@ -78,8 +78,7 @@ function CanvasPanel(props) {
78
78
  displayConfigDispatchers.update({
79
79
  nodeLabelStyle: globalNodeLabelStyle,
80
80
  defaultEdgeLabelStyle: globalEdgeTagStyle
81
- }); // 设置链路标注
82
-
81
+ });
83
82
  topo.historyManager.endTransaction();
84
83
  };
85
84
 
@@ -36,6 +36,7 @@ function HtImagePalette(props) {
36
36
  viewRef.current = htTopo.createImagePalette(container, {
37
37
  icons: icons
38
38
  });
39
+ console.error(viewRef.current);
39
40
  } catch (error) {
40
41
  _rlog["default"].error('初始化资源面板失败', error);
41
42
  } // 注销组件
@@ -51,13 +51,14 @@ function getButtons(isNetworkTopo) {
51
51
  _FontSizeWidget["default"], // 字号
52
52
  _FontStyleButton["default"], // 文字样式
53
53
  _FontColorButton["default"], // 文字颜色
54
- _Divider["default"], _BoxBackgroundButton["default"], // 框背景
55
- _Divider["default"], _EdgeColorButton["default"], // 线条颜色
54
+ _Divider["default"], // BoxBackgroundButton, // 框背景
55
+ // Divider,
56
+ _EdgeColorButton["default"], // 线条颜色
56
57
  _EdgeTypeButton["default"], // 线形
57
58
  _Divider["default"], _NodeImageButton["default"], // 替换图片
58
59
  _NodeSizeButton["default"], // 图片尺寸
59
60
  _Divider["default"], _Layout["default"], // 布局方式
60
- _NodeAlignWidget["default"], // 对齐方式
61
- _SearchWidget["default"] // 搜索
61
+ _NodeAlignWidget["default"] // 对齐方式
62
+ // SearchWidget, // 搜索
62
63
  ]);
63
64
  }
@@ -23,21 +23,35 @@ function useFontStyleSetting(props) {
23
23
  var buttonEnabled = true; // 全局配置
24
24
 
25
25
  var _topo$store$useModel = topo.store.useModel('displayConfig'),
26
- nodeLabelStyle = _topo$store$useModel[0].nodeLabelStyle,
26
+ displayConfigState = _topo$store$useModel[0],
27
27
  displayConfigDispatchers = _topo$store$useModel[1];
28
28
 
29
+ var nodeLabelStyle = displayConfigState.nodeLabelStyle,
30
+ defaultEdgeLabelStyle = displayConfigState.defaultEdgeLabelStyle;
31
+
32
+ var setGlobalTagStyle = function setGlobalTagStyle(styleData) {
33
+ var globalNodeLabelStyle = (0, _extends2["default"])({}, nodeLabelStyle, styleData);
34
+ topo.getHtTopo().setGlobalNodeLabelStyle(globalNodeLabelStyle);
35
+ var globalEdgeTagStyle = (0, _extends2["default"])({}, defaultEdgeLabelStyle, styleData);
36
+ topo.getHtTopo().setGlobalEdgeTagStyle(globalEdgeTagStyle);
37
+ displayConfigDispatchers.update({
38
+ nodeLabelStyle: globalNodeLabelStyle,
39
+ defaultEdgeLabelStyle: globalEdgeTagStyle
40
+ });
41
+ };
42
+
29
43
  var setStyle = function setStyle(styleData) {
30
- // 全局调整(资源和链路):无选择时,按钮亮起,即可修改全局资源和链路的标注,不影响“文本”、框名称、区域名称、分层名称的格式。
44
+ topo.historyManager.beginTransaction(); // 全局调整(资源和链路):无选择时,按钮亮起,即可修改全局资源和链路的标注,不影响“文本”、框名称、区域名称、分层名称的格式。
45
+
31
46
  if (!selectionElements.length) {
32
- topo.getHtTopo().setGlobalNodeLabelStyle(styleData);
33
- displayConfigDispatchers.update({
34
- nodeLabelStyle: (0, _extends2["default"])({}, nodeLabelStyle, styleData)
35
- });
47
+ setGlobalTagStyle(styleData);
36
48
  } else {
37
49
  selectionElements.forEach(function (element) {
38
50
  if ((0, _htElementUtils.isNode)(element)) {} else if ((0, _htElementUtils.isGroup)(element)) {} else if ((0, _htElementDataUtil.isText)(element)) {} else if ((0, _htElementUtils.isLayer)(element)) {}
39
51
  });
40
52
  }
53
+
54
+ topo.historyManager.endTransaction();
41
55
  };
42
56
 
43
57
  return {
@@ -5,6 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  exports.__esModule = true;
6
6
  exports["default"] = void 0;
7
7
 
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
8
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
11
 
10
12
  var _react = _interopRequireWildcard(require("react"));
@@ -48,10 +50,16 @@ function EdgeColorButton(props) {
48
50
 
49
51
  var selection = topo.selectionManager.useHtSelection();
50
52
 
53
+ var loopEdges = function loopEdges(edges, operateEdgeFn) {
54
+ edges.forEach(function (edge) {
55
+ operateEdgeFn(edge);
56
+ });
57
+ };
58
+
51
59
  var getLines = function getLines(list) {
52
60
  // eslint-disable-next-line prefer-const
53
61
  var arr = [];
54
- (0, _edgeTypeStyleUtil.loopEdgesAndChildren)(topo, list, function (edge) {
62
+ loopEdges(list, function (edge) {
55
63
  // eslint-disable-next-line eqeqeq
56
64
  if (edge.getAttrObject().type == 'line') {
57
65
  arr.push(edge);
@@ -66,7 +74,7 @@ function EdgeColorButton(props) {
66
74
  var list = getLines(edges);
67
75
  setLineWidth(0); // eslint-disable-next-line eqeqeq
68
76
 
69
- if (selection.length == 1 && selection[0].getAttrObject().type == 'line') {
77
+ if (selection.length == 1 && selection[0].a('type') == 'line') {
70
78
  setLineWidth(list[0] && (list[0].a('styles') && list[0].a('styles').width || list[0].getStyleMap()['edge.width']) || 2);
71
79
  }
72
80
 
@@ -74,14 +82,20 @@ function EdgeColorButton(props) {
74
82
  }
75
83
  }, [selection, graphLoaded]);
76
84
 
77
- var colorOnChange = function colorOnChange(color, type) {
85
+ var colorOnChange = function colorOnChange(colors, type) {
78
86
  // eslint-disable-next-line eqeqeq
79
87
  if (type == 'select') topo.historyManager.beginTransaction();
80
88
  var edges = (0, _edgeTypeStyleUtil.getEdgesBySelection)(topo);
81
- (0, _edgeTypeStyleUtil.loopEdgesAndChildren)(topo, edges, function (edge) {
89
+ loopEdges(edges, function (edge) {
82
90
  // eslint-disable-next-line eqeqeq
83
91
  if (edge.getAttrObject().type == 'line') {
84
- edge.s('edge.color', color.hex);
92
+ var color = colors.hex;
93
+ edge.s('edge.color', color);
94
+ edge.s('edge.dash.color', color);
95
+ var style = edge.a('styles') || {};
96
+ edge.a('styles', (0, _extends2["default"])({}, style, {
97
+ color: color
98
+ }));
85
99
  }
86
100
  }); // eslint-disable-next-line eqeqeq
87
101
 
@@ -97,14 +111,21 @@ function EdgeColorButton(props) {
97
111
  topo.historyManager.endTransaction();
98
112
  };
99
113
 
100
- var lineSizeChange = function lineSizeChange(value) {
114
+ var lineSizeChange = function lineSizeChange(width) {
101
115
  var edges = (0, _edgeTypeStyleUtil.getEdgesBySelection)(topo);
102
- (0, _edgeTypeStyleUtil.setEdgesAndChildren)(topo, edges, function (edge) {
116
+ topo.historyManager.beginTransaction();
117
+ loopEdges(edges, function (edge) {
103
118
  // eslint-disable-next-line eqeqeq
104
119
  if (edge.getAttrObject().type == 'line') {
105
- edge.s('edge.width', value); // 设置
120
+ edge.s('edge.dash.width', width);
121
+ edge.s('edge.width', width);
122
+ var style = edge.a('styles') || {};
123
+ edge.a('styles', (0, _extends2["default"])({}, style, {
124
+ width: width
125
+ }));
106
126
  }
107
127
  });
128
+ topo.historyManager.endTransaction();
108
129
  };
109
130
 
110
131
  var icon = disabled ? /*#__PURE__*/_react["default"].createElement("img", {
@@ -86,8 +86,23 @@ function EdgeTypeButton(props) {
86
86
  edge.s('icons', (0, _extends2["default"])({}, edge.s('icons')));
87
87
  edge.addStyleIcon(value, _constants.EDGE_END_POINT_TYPE_MAP[value]);
88
88
  } else if (name === 'lineMold') {
89
+ // 修改实线虚线
89
90
  edge.a('lineMode', value);
90
91
  htTopo.setElementStyle(edge, _constants.LINE_MOLD_MAP[value]);
92
+
93
+ if (value !== 'solid') {
94
+ var edgeWidth = edge.s('edge.width');
95
+
96
+ if (edgeWidth) {
97
+ edge.s('edge.dash.width', edgeWidth);
98
+ }
99
+
100
+ var color = edge.s('edge.color');
101
+
102
+ if (edgeWidth) {
103
+ edge.s('edge.dash.color', color);
104
+ }
105
+ }
91
106
  }
92
107
  });
93
108
  };
@@ -17,6 +17,8 @@ var _FontColorRange = _interopRequireDefault(require("../../../../../components/
17
17
 
18
18
  var _FontColorButtonModule = _interopRequireDefault(require("./FontColorButton.module.scss"));
19
19
 
20
+ var _useFontStyleSetting = _interopRequireDefault(require("../hooks/useFontStyleSetting"));
21
+
20
22
  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); }
21
23
 
22
24
  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; }
@@ -31,6 +33,9 @@ function FontFamilySelect(props) {
31
33
  disabled = _useState[0],
32
34
  setDisabled = _useState[1];
33
35
 
36
+ var fontStyleSetting = (0, _useFontStyleSetting["default"])({
37
+ topo: topo
38
+ });
34
39
  console.log(topo, 'topo这里需要处理颜色改变的事情');
35
40
 
36
41
  var backOpacityChange = function backOpacityChange(value) {
@@ -7,6 +7,12 @@ exports["default"] = void 0;
7
7
 
8
8
  var _react = _interopRequireWildcard(require("react"));
9
9
 
10
+ var _htElementUtils = require("../../../../../utils/htElementUtils");
11
+
12
+ var _fontStyleUtil = _interopRequireDefault(require("../../settings/common/text/fontStyleUtil"));
13
+
14
+ var _useFontStyleSetting = _interopRequireDefault(require("../hooks/useFontStyleSetting"));
15
+
10
16
  var _DropdownMenu = _interopRequireDefault(require("./components/DropdownMenu"));
11
17
 
12
18
  var _WidgetBox = _interopRequireDefault(require("./WidgetBox"));
@@ -15,40 +21,37 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
15
21
 
16
22
  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; }
17
23
 
18
- function FontFamilySelect(props) {
19
- var value = props.value,
20
- disabled = props.disabled,
21
- onChange = props.onChange;
22
- var items = ['宋体', '微软雅黑', '黑体', 'Arial'];
23
- var icon = disabled ? /*#__PURE__*/_react["default"].createElement("img", {
24
- src: "/img/topo/editor/toolbar/bold/Disable.svg",
25
- alt: ""
26
- }) : /*#__PURE__*/_react["default"].createElement("img", {
27
- src: "/img/topo/editor/toolbar/bold/Normal.svg",
28
- alt: ""
29
- });
30
- return /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
31
- value: value,
32
- valueRender: function valueRender() {
33
- return icon;
34
- },
35
- onChange: onChange
36
- }, items.map(function (item) {
37
- return /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"].Item, {
38
- key: item
39
- }, /*#__PURE__*/_react["default"].createElement("div", {
40
- style: {
41
- fontFamily: item
42
- }
43
- }, item));
44
- }));
24
+ var items = [{
25
+ key: 'bold',
26
+ label: '加粗',
27
+ icon: 'bold'
28
+ }, {
29
+ key: 'italic',
30
+ label: '斜体',
31
+ icon: 'Italics'
32
+ }, {
33
+ key: 'underline',
34
+ label: '下划线',
35
+ icon: 'Underline'
36
+ }];
37
+
38
+ function getTextFontStyle(textElement) {
39
+ var underline = textElement.s('text.decoration') === 'underline';
40
+
41
+ var fontStyle = _fontStyleUtil["default"].toMap(textElement.s('text.font'));
42
+
43
+ return {
44
+ underline: underline,
45
+ bold: fontStyle.bold,
46
+ italic: fontStyle.italic
47
+ };
45
48
  }
46
49
 
47
50
  function FontStyleButton(props) {
48
51
  var topo = props.topo,
49
52
  showLabel = props.showLabel;
50
53
 
51
- var _useState = (0, _react.useState)('微软雅黑'),
54
+ var _useState = (0, _react.useState)(['bold']),
52
55
  value = _useState[0],
53
56
  setValue = _useState[1];
54
57
 
@@ -57,19 +60,71 @@ function FontStyleButton(props) {
57
60
  setDisabled = _useState2[1]; // 选中的元素
58
61
 
59
62
 
60
- var selection = topo.selectionManager.useSelection();
63
+ var selection = topo.selectionManager.useHtSelection();
64
+ var fontStyleSetting = (0, _useFontStyleSetting["default"])({
65
+ topo: topo
66
+ });
61
67
  (0, _react.useEffect)(function () {
62
68
  setDisabled(false);
69
+ var fontObj = {};
70
+
71
+ if (selection.length === 1) {
72
+ var element = selection[0];
73
+
74
+ if ((0, _htElementUtils.isText)(element)) {
75
+ fontObj = getTextFontStyle(element);
76
+ }
77
+ }
78
+
79
+ var newValue = Object.keys(fontObj).reduce(function (result, key) {
80
+ if (fontObj[key]) {
81
+ return [].concat(result, [key]);
82
+ }
83
+
84
+ return result;
85
+ }, []);
86
+ setValue(newValue);
63
87
  }, [selection]);
88
+ /**
89
+ *
90
+ * @param {Array} selectedKeys
91
+ */
92
+
93
+ var handleChange = function handleChange(selectedKeys) {
94
+ setValue(selectedKeys);
95
+ var style = {
96
+ fontBold: selectedKeys.includes('bold')
97
+ };
98
+ fontStyleSetting.setStyle(style);
99
+ };
100
+
64
101
  return /*#__PURE__*/_react["default"].createElement(_WidgetBox["default"], {
65
102
  label: "\u6587\u5B57\u6837\u5F0F",
66
103
  tooltip: "\u6587\u5B57\u6837\u5F0F",
67
104
  showLabel: showLabel
68
- }, /*#__PURE__*/_react["default"].createElement(FontFamilySelect, {
105
+ }, /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
69
106
  value: value,
70
- disabled: disabled,
71
- onChange: setValue
72
- }));
107
+ valueRender: function valueRender() {
108
+ return /*#__PURE__*/_react["default"].createElement("img", {
109
+ src: "/img/topo/editor/toolbar/bold/" + (disabled ? 'Disable' : 'Normal') + ".svg",
110
+ alt: ""
111
+ });
112
+ },
113
+ multiple: true,
114
+ onChange: handleChange
115
+ }, items.map(function (item) {
116
+ return /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"].Item, {
117
+ key: item.key
118
+ }, /*#__PURE__*/_react["default"].createElement("div", {
119
+ style: {
120
+ display: 'flex',
121
+ alignItems: 'center'
122
+ }
123
+ }, /*#__PURE__*/_react["default"].createElement("img", {
124
+ src: "/img/topo/editor/toolbar/" + item.icon + "/Normal.svg",
125
+ alt: ""
126
+ }), /*#__PURE__*/_react["default"].createElement("span", null, item.label)));
127
+ })));
73
128
  }
74
129
 
75
130
  var _default = FontStyleButton;
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  exports.__esModule = true;
6
6
  exports["default"] = void 0;
7
7
 
8
- var _input = _interopRequireDefault(require("@alifd/next/lib/input"));
8
+ var _numberPicker = _interopRequireDefault(require("@alifd/next/lib/number-picker"));
9
9
 
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
 
@@ -70,27 +70,13 @@ function NodeAlignWidget(props) {
70
70
  };
71
71
 
72
72
  var leftInputChange = function leftInputChange(v) {
73
- if (v * 1 < 0) {
74
- setLeftInputVal(0);
75
- } else if (v * 1 > 10000) {
76
- setLeftInputVal(10000);
77
- } else {
78
- setLeftInputVal(v);
79
- }
80
-
81
- setSpace('v', leftInputVal);
73
+ setLeftInputVal(v);
74
+ setSpace('h', v);
82
75
  };
83
76
 
84
77
  var rightInputChange = function rightInputChange(v) {
85
- if (v * 1 < 0) {
86
- setRightInputVal(0);
87
- } else if (v * 1 > 10000) {
88
- setRightInputVal(10000);
89
- } else {
90
- setRightInputVal(v);
91
- }
92
-
93
- setSpace('h', rightInputVal);
78
+ setRightInputVal(v);
79
+ setSpace('v', v);
94
80
  };
95
81
 
96
82
  (0, _react.useEffect)(function () {
@@ -101,10 +87,17 @@ function NodeAlignWidget(props) {
101
87
  });
102
88
  setDisabled(nodes.length <= 1);
103
89
  getClickType('none');
90
+ setLeftInputVal();
91
+ setRightInputVal();
104
92
  }
105
93
  }, [graphLoaded, selection]);
106
94
 
107
95
  var getClickType = function getClickType(type) {
96
+ if (leftInputVal || rightInputVal) {
97
+ setLeftInputVal();
98
+ setRightInputVal();
99
+ }
100
+
108
101
  setLeftDisable(true);
109
102
  setRightDisable(true);
110
103
 
@@ -135,23 +128,25 @@ function NodeAlignWidget(props) {
135
128
  }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_AlignSetting["default"], {
136
129
  topo: topo,
137
130
  getClickType: getClickType
138
- }), /*#__PURE__*/_react["default"].createElement(_input["default"], {
131
+ }), /*#__PURE__*/_react["default"].createElement(_numberPicker["default"], {
139
132
  disabled: leftDisable,
140
133
  size: "small",
134
+ hasTrigger: false,
141
135
  placeholder: "\u591A\u4E2A\u503C",
142
136
  className: _NodeAlignWidgetModule["default"].leftInput,
143
137
  value: leftInputVal,
144
- htmlType: "number",
145
- maxLength: 5,
138
+ min: 0,
139
+ max: 10000,
146
140
  onChange: leftInputChange
147
- }), /*#__PURE__*/_react["default"].createElement(_input["default"], {
141
+ }), /*#__PURE__*/_react["default"].createElement(_numberPicker["default"], {
148
142
  disabled: rightDisable,
149
143
  size: "small",
144
+ hasTrigger: false,
150
145
  placeholder: "\u591A\u4E2A\u503C",
151
146
  className: _NodeAlignWidgetModule["default"].rightInput,
152
147
  value: rightInputVal,
153
- htmlType: "number",
154
- maxLength: 5,
148
+ min: 0,
149
+ max: 10000,
155
150
  onChange: rightInputChange
156
151
  }))));
157
152
  }