@riil-frontend/component-topology 6.0.0-alpha.52 → 6.0.0-alpha.54

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 (31) 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 +21 -21
  5. package/es/core/components/TopoView/topoView.js +2 -1
  6. package/es/core/editor/components/Toolbar/widgets/FontStyleButton.js +5 -1
  7. package/es/core/editor/components/Toolbar/widgets/Layout/index.js +1 -1
  8. package/es/core/editor/components/Toolbar/widgets/NodeAlignWidget.js +16 -11
  9. package/es/core/editor/components/settings/PropertyView.js +19 -4
  10. package/es/core/editor/components/settings/Settings.js +2 -13
  11. package/es/core/editor/components/settings/core/PropertyViewManager.js +21 -8
  12. package/es/core/editor/components/settings/core/edgePropertyViewAdapter.js +22 -0
  13. package/es/core/editor/components/settings/propertyViews/index.js +1 -5
  14. package/es/core/models/TopoApp.js +1 -1
  15. package/es/networkTopo/components/editor/propertyViews/edge/EdgeGroupPropertyView.js +2 -1
  16. package/es/networkTopo/components/editor/useEditorProps.js +1 -3
  17. package/es/style.js +1 -1
  18. package/lib/core/components/TopoView/topoView.js +2 -1
  19. package/lib/core/editor/components/Toolbar/widgets/FontStyleButton.js +5 -1
  20. package/lib/core/editor/components/Toolbar/widgets/Layout/index.js +1 -1
  21. package/lib/core/editor/components/Toolbar/widgets/NodeAlignWidget.js +16 -11
  22. package/lib/core/editor/components/settings/PropertyView.js +20 -4
  23. package/lib/core/editor/components/settings/Settings.js +2 -13
  24. package/lib/core/editor/components/settings/core/PropertyViewManager.js +22 -8
  25. package/lib/core/editor/components/settings/core/edgePropertyViewAdapter.js +33 -0
  26. package/lib/core/editor/components/settings/propertyViews/index.js +1 -9
  27. package/lib/core/models/TopoApp.js +1 -1
  28. package/lib/networkTopo/components/editor/propertyViews/edge/EdgeGroupPropertyView.js +1 -0
  29. package/lib/networkTopo/components/editor/useEditorProps.js +1 -4
  30. package/lib/style.js +1 -1
  31. package/package.json +2 -2
@@ -59,6 +59,7 @@ var Topology = function Topology(props) {
59
59
 
60
60
  var topoId = topoState.topoId,
61
61
  viewState = topoState.viewState,
62
+ graphLoaded = topoState.graphLoaded,
62
63
  topoData = topoState.topoData,
63
64
  urlParams = topoState.urlParams;
64
65
  var isEditMode = viewState === 'edit';
@@ -285,7 +286,7 @@ var Topology = function Topology(props) {
285
286
  urlParams: urlParams
286
287
  },
287
288
  editorProps: editorProps
288
- }), renderCanvas(), isEditMode && /*#__PURE__*/React.createElement(PropertyView, {
289
+ }), renderCanvas(), isEditMode && graphLoaded && /*#__PURE__*/React.createElement(PropertyView, {
289
290
  topo: topo,
290
291
  editorProps: editorProps
291
292
  })), !isEditMode && /*#__PURE__*/React.createElement(ViewerPlugin, {
@@ -114,7 +114,11 @@ function FontStyleButton(props) {
114
114
  }, /*#__PURE__*/React.createElement("img", {
115
115
  src: "/img/topo/editor/toolbar/" + item.icon + "/Normal.svg",
116
116
  alt: ""
117
- }), /*#__PURE__*/React.createElement("span", null, item.label)));
117
+ }), /*#__PURE__*/React.createElement("span", {
118
+ style: {
119
+ color: '#4d6277 !important'
120
+ }
121
+ }, item.label)));
118
122
  })));
119
123
  }
120
124
 
@@ -45,7 +45,7 @@ function Layout(props) {
45
45
  } // eslint-disable-next-line eqeqeq
46
46
 
47
47
 
48
- if (isLayer(firstElement)) {
48
+ if (firstElement && isLayer(firstElement)) {
49
49
  topo.getHtTopo().layoutLayer(selectionElements[0]);
50
50
  }
51
51
  };
@@ -47,14 +47,18 @@ function NodeAlignWidget(props) {
47
47
  topo.historyManager.endTransaction();
48
48
  };
49
49
 
50
- var leftInputChange = function leftInputChange(v) {
51
- setLeftInputVal(v);
52
- setSpace('h', v);
50
+ var leftInputChange = function leftInputChange(val) {
51
+ setLeftInputVal(val);
52
+ setSpace('h', val);
53
53
  };
54
54
 
55
- var rightInputChange = function rightInputChange(v) {
56
- setRightInputVal(v);
57
- setSpace('v', v);
55
+ var rightInputChange = function rightInputChange(val) {
56
+ setRightInputVal(val);
57
+ setSpace('v', val);
58
+ };
59
+
60
+ var parseValue = function parseValue(v) {
61
+ return v * 1 > 0 ? Math.round(v) : '';
58
62
  };
59
63
 
60
64
  useEffect(function () {
@@ -72,8 +76,8 @@ function NodeAlignWidget(props) {
72
76
  if (nodes.length === 2) {
73
77
  var h = topo.view.topoClient.htTopoClient.getElementsSpace(nodes, 'h')[0];
74
78
  var v = topo.view.topoClient.htTopoClient.getElementsSpace(nodes, 'v')[0];
75
- setLeftInputVal(Math.round(h * 1 > 0 ? h : 0));
76
- setRightInputVal(Math.round(v * 1 > 0 ? v : 0));
79
+ setLeftInputVal(parseValue(h));
80
+ setRightInputVal(parseValue(v));
77
81
  }
78
82
  } // eslint-disable-next-line react-hooks/exhaustive-deps
79
83
 
@@ -104,7 +108,7 @@ function NodeAlignWidget(props) {
104
108
  disabled: disabled,
105
109
  size: "small",
106
110
  hasTrigger: false,
107
- placeholder: "\u591A\u4E2A\u503C",
111
+ placeholder: distributionDisabled ? '' : '多个值',
108
112
  className: styles.leftInput,
109
113
  value: leftInputVal,
110
114
  min: 0,
@@ -113,8 +117,9 @@ function NodeAlignWidget(props) {
113
117
  }), /*#__PURE__*/React.createElement(_NumberPicker, {
114
118
  disabled: disabled,
115
119
  size: "small",
116
- hasTrigger: false,
117
- placeholder: "\u591A\u4E2A\u503C",
120
+ hasTrigger: false // eslint-disable-next-line no-nested-ternary
121
+ ,
122
+ placeholder: distributionDisabled ? '' : '多个值',
118
123
  className: styles.rightInput,
119
124
  value: rightInputVal,
120
125
  min: 0,
@@ -1,6 +1,7 @@
1
1
  import classNames from 'classnames';
2
2
  import React, { useEffect, useMemo } from 'react';
3
3
  import CloseablePanel from "./CloseablePanel";
4
+ import { adapterGetEdgePropertyViewType, addEdgePropertyViews } from "./core/edgePropertyViewAdapter";
4
5
  import PropertyViewManager from "./core/PropertyViewManager";
5
6
  import Settings from "./Settings";
6
7
  import styles from "./Settings.module.scss";
@@ -24,7 +25,15 @@ export default function PropertyPanel(props) {
24
25
  var propertyPanelVisible = topoEditState.propertyPanelVisible;
25
26
  var propertyViewManager = useMemo(function () {
26
27
  return new PropertyViewManager(topo);
27
- }, []);
28
+ }, []); // 临时适配连线属性面板类型,后期组件支持自定义适配
29
+
30
+ addEdgePropertyViews(propertyViewManager, editorProps);
31
+
32
+ propertyViewManager.customGetViewType = editorProps.getPropertyViewType || function (elements) {
33
+ return adapterGetEdgePropertyViewType(elements, editorProps);
34
+ };
35
+
36
+ var PropertyView = propertyViewManager.getPropertyView();
28
37
  useEffect(function () {
29
38
  if (graphLoaded) {
30
39
  propertyViewManager.init();
@@ -33,17 +42,23 @@ export default function PropertyPanel(props) {
33
42
  return function () {
34
43
  propertyViewManager.destroy();
35
44
  };
36
- }, [graphLoaded, propertyViewManager]);
45
+ }, [graphLoaded, propertyViewManager]); // 没有视图关闭属性面板
46
+
47
+ useEffect(function () {
48
+ if (propertyPanelVisible && !PropertyView) {
49
+ propertyViewManager.close();
50
+ }
51
+ }, [propertyPanelVisible, PropertyView, propertyViewManager]);
37
52
 
38
53
  var renderContent = function renderContent() {
39
- if (!propertyPanelVisible) {
54
+ if (!PropertyView) {
40
55
  return null;
41
56
  }
42
57
 
43
58
  return /*#__PURE__*/React.createElement(Settings, {
44
59
  topo: topo,
45
60
  selection: selection,
46
- propertyViewManager: propertyViewManager,
61
+ PropertyView: PropertyView,
47
62
  topoShowType: topoShowType,
48
63
  topoEditApi: topo.topoEdit,
49
64
  editorProps: editorProps
@@ -21,26 +21,15 @@ export default function PropertyViewContainer(props) {
21
21
  topoEditApi = props.topoEditApi,
22
22
  selection = props.selection,
23
23
  editorProps = props.editorProps,
24
- propertyViewManager = props.propertyViewManager;
24
+ PropertyView = props.PropertyView;
25
25
  var settingRuntimeState = useSettingRuntimeState();
26
26
  var selectionElements = useMemo(function () {
27
27
  return topo.selectionModel.getSelection();
28
- }, [selection]);
29
- var PropertyView = propertyViewManager.getPropertyView(selection); // 不建议使用,直接使用ht元素对象。待优化
28
+ }, [selection]); // 不建议使用,直接使用ht元素对象。待优化
30
29
 
31
30
  var singleElementValues = useMemo(function () {
32
31
  return selection.length === 1 ? buildElementValues(selection) : undefined;
33
32
  }, [selection]);
34
- useEffect(function () {
35
- if (!PropertyView) {
36
- propertyViewManager.close();
37
- }
38
- }, [PropertyView, propertyViewManager]);
39
-
40
- if (!PropertyView) {
41
- return null;
42
- }
43
-
44
33
  var elementProps = {};
45
34
 
46
35
  if (selection.length === 1) {
@@ -1,11 +1,12 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import propertyViews from "../propertyViews";
2
- import getPropertyViewType from "./getPropertyViewType";
3
+ import _getPropertyViewType from "./getPropertyViewType";
3
4
 
4
5
  var PropertyViewManager = /*#__PURE__*/function () {
5
6
  function PropertyViewManager(topo) {
6
7
  this.viewMap = propertyViews;
7
8
  this.topo = void 0;
8
- this.getPropertyViewType = getPropertyViewType;
9
+ this.customGetViewType = void 0;
9
10
  this.topo = topo;
10
11
  this.open = this.open.bind(this);
11
12
  }
@@ -13,7 +14,7 @@ var PropertyViewManager = /*#__PURE__*/function () {
13
14
  var _proto = PropertyViewManager.prototype;
14
15
 
15
16
  _proto.updateViews = function updateViews(viewMap) {
16
- Object.assign(this.viewMap, viewMap);
17
+ this.viewMap = _extends({}, propertyViews, viewMap);
17
18
  };
18
19
 
19
20
  _proto.init = function init() {
@@ -53,15 +54,27 @@ var PropertyViewManager = /*#__PURE__*/function () {
53
54
  });
54
55
  };
55
56
 
56
- _proto.getPropertyView = function
57
- /* selection */
58
- getPropertyView() {
59
- var selection = this.topo.selectionModel.getSelection();
60
- var elementType = getPropertyViewType(selection);
57
+ _proto.getPropertyView = function getPropertyView() {
58
+ var elementType = this.getPropertyViewType();
61
59
  var PropertyView = this.viewMap[elementType];
62
60
  return PropertyView;
63
61
  };
64
62
 
63
+ _proto.getPropertyViewType = function getPropertyViewType() {
64
+ var selection = this.topo.selectionModel.getSelection();
65
+ var type;
66
+
67
+ if (this.customGetViewType) {
68
+ type = this.customGetViewType(selection);
69
+
70
+ if (type) {
71
+ return type;
72
+ }
73
+ }
74
+
75
+ return _getPropertyViewType(selection);
76
+ };
77
+
65
78
  return PropertyViewManager;
66
79
  }();
67
80
 
@@ -0,0 +1,22 @@
1
+ import { isEdge } from "../../../../../utils/htElementUtils";
2
+ import addEdgeProps from "../propertyViews/edge/addEdgeProps";
3
+ export function adapterGetEdgePropertyViewType(selection, editorProps) {
4
+ var fn = editorProps.getEdgePropertyViewType;
5
+
6
+ if (selection.length === 1 && isEdge(selection[0]) && fn) {
7
+ var type = fn({
8
+ edge: selection[0]
9
+ });
10
+ return type;
11
+ }
12
+
13
+ return null;
14
+ }
15
+ export function addEdgePropertyViews(propertyViewManager, editorProps) {
16
+ var oldMap = editorProps.edgePropertyViews || {};
17
+ var map = {};
18
+ Object.keys(oldMap).forEach(function (name) {
19
+ map[name] = addEdgeProps(oldMap[name]);
20
+ });
21
+ propertyViewManager.updateViews(map);
22
+ }
@@ -1,17 +1,13 @@
1
1
  import NodePropertyView from "./node/NodePropertyView";
2
2
  import LayerPropertyView from "./layer/LayerPropertyView";
3
3
  import TextPropertyView from "./text/TextPropertyView";
4
- import ViewPropertyView from "./view/ViewPropertyView";
5
4
  import GroupPropertyView from "./group/GroupPropertyView";
6
- import MultipleElementPropertyView from "./multipleElements/MultipleElementPropertyView";
7
- import EdgePropertyView from "./edge/EdgePropertyView";
8
5
  import BoxPropertyView from "./box/BoxPropertyView";
9
- import EdgeGroupPropertyView from "./edge/EdgeGroupPropertyView";
10
6
  var propertyPanelMap = {
11
7
  // view: ViewPropertyView,
12
8
  group: GroupPropertyView,
13
9
  node: NodePropertyView,
14
- edge: EdgePropertyView,
10
+ // edge: EdgePropertyView,
15
11
  // edgeGroup: EdgeGroupPropertyView,
16
12
  layer: LayerPropertyView,
17
13
  text: TextPropertyView,
@@ -22,7 +22,7 @@ import topoFactory from "./topoFactory";
22
22
  import ElementTagTipConfig from "./tagstips/ElementTagTipConfig";
23
23
  import SelectionModel from "./SelectionModel"; // eslint-disable-next-line no-undef
24
24
 
25
- var version = typeof "6.0.0-alpha.52" === 'string' ? "6.0.0-alpha.52" : null;
25
+ var version = typeof "6.0.0-alpha.54" === 'string' ? "6.0.0-alpha.54" : null;
26
26
  console.info("\u62D3\u6251\u7248\u672C: " + version);
27
27
  /**
28
28
  * 拓扑显示和编辑
@@ -2,7 +2,8 @@ import _Tab from "@alifd/next/es/tab";
2
2
  import React, { useState, useEffect } from 'react';
3
3
  import TabView from "../../../../../core/editor/components/settings/common/tab/TabView";
4
4
  import EdgeGroupSetting from "../../../../../core/editor/components/settings/propertyViews/edge/edgeGroup/EdgeGroupSetting";
5
- import LindInfoPreview from "./link/LinkInfoPreview";
5
+ import LindInfoPreview from "./link/LinkInfoPreview"; // V1.2 废弃
6
+
6
7
  export default function EdgeGroupPropertyView(props) {
7
8
  var topo = props.topo,
8
9
  edge = props.edge,
@@ -2,7 +2,6 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _useGroupSortResources from "../../hooks/editor/useGroupSortResources";
3
3
  import LayerConfigPlugin from "./plugins/LayerConfigPlugin";
4
4
  import AddLinkDrawer from "./propertyViews/edge/addLinkDrawer/AddLinkDrawer";
5
- import EdgeGroupPropertyView from "./propertyViews/edge/EdgeGroupPropertyView";
6
5
  import EdgePropertyView from "./propertyViews/edge/EdgePropertyView";
7
6
  import LinkPropertyView from "./propertyViews/edge/LinkPropertyView";
8
7
  import LayerRelatedResourceList from "./propertyViews/LayerRelatedResourceList";
@@ -20,8 +19,7 @@ export default function useEditorProps(props) {
20
19
  // 连线属性面板
21
20
  edgePropertyViews: {
22
21
  edge: EdgePropertyView,
23
- link: LinkPropertyView,
24
- edgeGroup: EdgeGroupPropertyView
22
+ link: LinkPropertyView
25
23
  },
26
24
  getEdgePropertyViewType: function getEdgePropertyViewType(_ref) {
27
25
  var edge = _ref.edge;
package/es/style.js CHANGED
@@ -38,8 +38,8 @@ import '@alifd/next/es/menu/style';
38
38
  import '@alifd/next/es/collapse/style';
39
39
  import '@alifd/next/es/select/style';
40
40
  import '@alifd/next/es/number-picker/style';
41
- import '@alifd/next/es/tag/style';
42
41
 
42
+ import '@alifd/next/es/tag/style';
43
43
  import '@riil-frontend/component-riil-event-emitter/es/style';
44
44
  import '@alifd/next/es/range/style';
45
45
  import './index.scss';
@@ -96,6 +96,7 @@ var Topology = function Topology(props) {
96
96
 
97
97
  var topoId = topoState.topoId,
98
98
  viewState = topoState.viewState,
99
+ graphLoaded = topoState.graphLoaded,
99
100
  topoData = topoState.topoData,
100
101
  urlParams = topoState.urlParams;
101
102
  var isEditMode = viewState === 'edit';
@@ -330,7 +331,7 @@ var Topology = function Topology(props) {
330
331
  urlParams: urlParams
331
332
  },
332
333
  editorProps: editorProps
333
- }), renderCanvas(), isEditMode && /*#__PURE__*/_react["default"].createElement(_PropertyView["default"], {
334
+ }), renderCanvas(), isEditMode && graphLoaded && /*#__PURE__*/_react["default"].createElement(_PropertyView["default"], {
334
335
  topo: topo,
335
336
  editorProps: editorProps
336
337
  })), !isEditMode && /*#__PURE__*/_react["default"].createElement(_ViewerPlugin["default"], {
@@ -131,7 +131,11 @@ function FontStyleButton(props) {
131
131
  }, /*#__PURE__*/_react["default"].createElement("img", {
132
132
  src: "/img/topo/editor/toolbar/" + item.icon + "/Normal.svg",
133
133
  alt: ""
134
- }), /*#__PURE__*/_react["default"].createElement("span", null, item.label)));
134
+ }), /*#__PURE__*/_react["default"].createElement("span", {
135
+ style: {
136
+ color: '#4d6277 !important'
137
+ }
138
+ }, item.label)));
135
139
  })));
136
140
  }
137
141
 
@@ -61,7 +61,7 @@ function Layout(props) {
61
61
  } // eslint-disable-next-line eqeqeq
62
62
 
63
63
 
64
- if ((0, _htElementDataUtil.isLayer)(firstElement)) {
64
+ if (firstElement && (0, _htElementDataUtil.isLayer)(firstElement)) {
65
65
  topo.getHtTopo().layoutLayer(selectionElements[0]);
66
66
  }
67
67
  };
@@ -66,14 +66,18 @@ function NodeAlignWidget(props) {
66
66
  topo.historyManager.endTransaction();
67
67
  };
68
68
 
69
- var leftInputChange = function leftInputChange(v) {
70
- setLeftInputVal(v);
71
- setSpace('h', v);
69
+ var leftInputChange = function leftInputChange(val) {
70
+ setLeftInputVal(val);
71
+ setSpace('h', val);
72
72
  };
73
73
 
74
- var rightInputChange = function rightInputChange(v) {
75
- setRightInputVal(v);
76
- setSpace('v', v);
74
+ var rightInputChange = function rightInputChange(val) {
75
+ setRightInputVal(val);
76
+ setSpace('v', val);
77
+ };
78
+
79
+ var parseValue = function parseValue(v) {
80
+ return v * 1 > 0 ? Math.round(v) : '';
77
81
  };
78
82
 
79
83
  (0, _react.useEffect)(function () {
@@ -91,8 +95,8 @@ function NodeAlignWidget(props) {
91
95
  if (nodes.length === 2) {
92
96
  var h = topo.view.topoClient.htTopoClient.getElementsSpace(nodes, 'h')[0];
93
97
  var v = topo.view.topoClient.htTopoClient.getElementsSpace(nodes, 'v')[0];
94
- setLeftInputVal(Math.round(h * 1 > 0 ? h : 0));
95
- setRightInputVal(Math.round(v * 1 > 0 ? v : 0));
98
+ setLeftInputVal(parseValue(h));
99
+ setRightInputVal(parseValue(v));
96
100
  }
97
101
  } // eslint-disable-next-line react-hooks/exhaustive-deps
98
102
 
@@ -123,7 +127,7 @@ function NodeAlignWidget(props) {
123
127
  disabled: disabled,
124
128
  size: "small",
125
129
  hasTrigger: false,
126
- placeholder: "\u591A\u4E2A\u503C",
130
+ placeholder: distributionDisabled ? '' : '多个值',
127
131
  className: _NodeAlignWidgetModule["default"].leftInput,
128
132
  value: leftInputVal,
129
133
  min: 0,
@@ -132,8 +136,9 @@ function NodeAlignWidget(props) {
132
136
  }), /*#__PURE__*/_react["default"].createElement(_numberPicker["default"], {
133
137
  disabled: disabled,
134
138
  size: "small",
135
- hasTrigger: false,
136
- placeholder: "\u591A\u4E2A\u503C",
139
+ hasTrigger: false // eslint-disable-next-line no-nested-ternary
140
+ ,
141
+ placeholder: distributionDisabled ? '' : '多个值',
137
142
  className: _NodeAlignWidgetModule["default"].rightInput,
138
143
  value: rightInputVal,
139
144
  min: 0,
@@ -11,6 +11,8 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _CloseablePanel = _interopRequireDefault(require("./CloseablePanel"));
13
13
 
14
+ var _edgePropertyViewAdapter = require("./core/edgePropertyViewAdapter");
15
+
14
16
  var _PropertyViewManager = _interopRequireDefault(require("./core/PropertyViewManager"));
15
17
 
16
18
  var _Settings = _interopRequireDefault(require("./Settings"));
@@ -41,7 +43,15 @@ function PropertyPanel(props) {
41
43
  var propertyPanelVisible = topoEditState.propertyPanelVisible;
42
44
  var propertyViewManager = (0, _react.useMemo)(function () {
43
45
  return new _PropertyViewManager["default"](topo);
44
- }, []);
46
+ }, []); // 临时适配连线属性面板类型,后期组件支持自定义适配
47
+
48
+ (0, _edgePropertyViewAdapter.addEdgePropertyViews)(propertyViewManager, editorProps);
49
+
50
+ propertyViewManager.customGetViewType = editorProps.getPropertyViewType || function (elements) {
51
+ return (0, _edgePropertyViewAdapter.adapterGetEdgePropertyViewType)(elements, editorProps);
52
+ };
53
+
54
+ var PropertyView = propertyViewManager.getPropertyView();
45
55
  (0, _react.useEffect)(function () {
46
56
  if (graphLoaded) {
47
57
  propertyViewManager.init();
@@ -50,17 +60,23 @@ function PropertyPanel(props) {
50
60
  return function () {
51
61
  propertyViewManager.destroy();
52
62
  };
53
- }, [graphLoaded, propertyViewManager]);
63
+ }, [graphLoaded, propertyViewManager]); // 没有视图关闭属性面板
64
+
65
+ (0, _react.useEffect)(function () {
66
+ if (propertyPanelVisible && !PropertyView) {
67
+ propertyViewManager.close();
68
+ }
69
+ }, [propertyPanelVisible, PropertyView, propertyViewManager]);
54
70
 
55
71
  var renderContent = function renderContent() {
56
- if (!propertyPanelVisible) {
72
+ if (!PropertyView) {
57
73
  return null;
58
74
  }
59
75
 
60
76
  return /*#__PURE__*/_react["default"].createElement(_Settings["default"], {
61
77
  topo: topo,
62
78
  selection: selection,
63
- propertyViewManager: propertyViewManager,
79
+ PropertyView: PropertyView,
64
80
  topoShowType: topoShowType,
65
81
  topoEditApi: topo.topoEdit,
66
82
  editorProps: editorProps
@@ -34,26 +34,15 @@ function PropertyViewContainer(props) {
34
34
  topoEditApi = props.topoEditApi,
35
35
  selection = props.selection,
36
36
  editorProps = props.editorProps,
37
- propertyViewManager = props.propertyViewManager;
37
+ PropertyView = props.PropertyView;
38
38
  var settingRuntimeState = (0, _useSettingRuntimeState["default"])();
39
39
  var selectionElements = (0, _react.useMemo)(function () {
40
40
  return topo.selectionModel.getSelection();
41
- }, [selection]);
42
- var PropertyView = propertyViewManager.getPropertyView(selection); // 不建议使用,直接使用ht元素对象。待优化
41
+ }, [selection]); // 不建议使用,直接使用ht元素对象。待优化
43
42
 
44
43
  var singleElementValues = (0, _react.useMemo)(function () {
45
44
  return selection.length === 1 ? buildElementValues(selection) : undefined;
46
45
  }, [selection]);
47
- (0, _react.useEffect)(function () {
48
- if (!PropertyView) {
49
- propertyViewManager.close();
50
- }
51
- }, [PropertyView, propertyViewManager]);
52
-
53
- if (!PropertyView) {
54
- return null;
55
- }
56
-
57
46
  var elementProps = {};
58
47
 
59
48
  if (selection.length === 1) {
@@ -5,15 +5,17 @@ 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 _propertyViews = _interopRequireDefault(require("../propertyViews"));
9
11
 
10
- var _getPropertyViewType = _interopRequireDefault(require("./getPropertyViewType"));
12
+ var _getPropertyViewType2 = _interopRequireDefault(require("./getPropertyViewType"));
11
13
 
12
14
  var PropertyViewManager = /*#__PURE__*/function () {
13
15
  function PropertyViewManager(topo) {
14
16
  this.viewMap = _propertyViews["default"];
15
17
  this.topo = void 0;
16
- this.getPropertyViewType = _getPropertyViewType["default"];
18
+ this.customGetViewType = void 0;
17
19
  this.topo = topo;
18
20
  this.open = this.open.bind(this);
19
21
  }
@@ -21,7 +23,7 @@ var PropertyViewManager = /*#__PURE__*/function () {
21
23
  var _proto = PropertyViewManager.prototype;
22
24
 
23
25
  _proto.updateViews = function updateViews(viewMap) {
24
- Object.assign(this.viewMap, viewMap);
26
+ this.viewMap = (0, _extends2["default"])({}, _propertyViews["default"], viewMap);
25
27
  };
26
28
 
27
29
  _proto.init = function init() {
@@ -61,15 +63,27 @@ var PropertyViewManager = /*#__PURE__*/function () {
61
63
  });
62
64
  };
63
65
 
64
- _proto.getPropertyView = function
65
- /* selection */
66
- getPropertyView() {
67
- var selection = this.topo.selectionModel.getSelection();
68
- var elementType = (0, _getPropertyViewType["default"])(selection);
66
+ _proto.getPropertyView = function getPropertyView() {
67
+ var elementType = this.getPropertyViewType();
69
68
  var PropertyView = this.viewMap[elementType];
70
69
  return PropertyView;
71
70
  };
72
71
 
72
+ _proto.getPropertyViewType = function getPropertyViewType() {
73
+ var selection = this.topo.selectionModel.getSelection();
74
+ var type;
75
+
76
+ if (this.customGetViewType) {
77
+ type = this.customGetViewType(selection);
78
+
79
+ if (type) {
80
+ return type;
81
+ }
82
+ }
83
+
84
+ return (0, _getPropertyViewType2["default"])(selection);
85
+ };
86
+
73
87
  return PropertyViewManager;
74
88
  }();
75
89
 
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports.adapterGetEdgePropertyViewType = adapterGetEdgePropertyViewType;
7
+ exports.addEdgePropertyViews = addEdgePropertyViews;
8
+
9
+ var _htElementUtils = require("../../../../../utils/htElementUtils");
10
+
11
+ var _addEdgeProps = _interopRequireDefault(require("../propertyViews/edge/addEdgeProps"));
12
+
13
+ function adapterGetEdgePropertyViewType(selection, editorProps) {
14
+ var fn = editorProps.getEdgePropertyViewType;
15
+
16
+ if (selection.length === 1 && (0, _htElementUtils.isEdge)(selection[0]) && fn) {
17
+ var type = fn({
18
+ edge: selection[0]
19
+ });
20
+ return type;
21
+ }
22
+
23
+ return null;
24
+ }
25
+
26
+ function addEdgePropertyViews(propertyViewManager, editorProps) {
27
+ var oldMap = editorProps.edgePropertyViews || {};
28
+ var map = {};
29
+ Object.keys(oldMap).forEach(function (name) {
30
+ map[name] = (0, _addEdgeProps["default"])(oldMap[name]);
31
+ });
32
+ propertyViewManager.updateViews(map);
33
+ }
@@ -11,23 +11,15 @@ var _LayerPropertyView = _interopRequireDefault(require("./layer/LayerPropertyVi
11
11
 
12
12
  var _TextPropertyView = _interopRequireDefault(require("./text/TextPropertyView"));
13
13
 
14
- var _ViewPropertyView = _interopRequireDefault(require("./view/ViewPropertyView"));
15
-
16
14
  var _GroupPropertyView = _interopRequireDefault(require("./group/GroupPropertyView"));
17
15
 
18
- var _MultipleElementPropertyView = _interopRequireDefault(require("./multipleElements/MultipleElementPropertyView"));
19
-
20
- var _EdgePropertyView = _interopRequireDefault(require("./edge/EdgePropertyView"));
21
-
22
16
  var _BoxPropertyView = _interopRequireDefault(require("./box/BoxPropertyView"));
23
17
 
24
- var _EdgeGroupPropertyView = _interopRequireDefault(require("./edge/EdgeGroupPropertyView"));
25
-
26
18
  var propertyPanelMap = {
27
19
  // view: ViewPropertyView,
28
20
  group: _GroupPropertyView["default"],
29
21
  node: _NodePropertyView["default"],
30
- edge: _EdgePropertyView["default"],
22
+ // edge: EdgePropertyView,
31
23
  // edgeGroup: EdgeGroupPropertyView,
32
24
  layer: _LayerPropertyView["default"],
33
25
  text: _TextPropertyView["default"],
@@ -52,7 +52,7 @@ var _ElementTagTipConfig = _interopRequireDefault(require("./tagstips/ElementTag
52
52
  var _SelectionModel = _interopRequireDefault(require("./SelectionModel"));
53
53
 
54
54
  // eslint-disable-next-line no-undef
55
- var version = typeof "6.0.0-alpha.52" === 'string' ? "6.0.0-alpha.52" : null;
55
+ var version = typeof "6.0.0-alpha.54" === 'string' ? "6.0.0-alpha.54" : null;
56
56
  console.info("\u62D3\u6251\u7248\u672C: " + version);
57
57
  /**
58
58
  * 拓扑显示和编辑
@@ -19,6 +19,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
19
19
 
20
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; }
21
21
 
22
+ // V1.2 废弃
22
23
  function EdgeGroupPropertyView(props) {
23
24
  var topo = props.topo,
24
25
  edge = props.edge,