@riil-frontend/component-topology 6.0.0-alpha.41 → 6.0.0-alpha.43
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.css +1 -1
- package/build/index.js +20 -20
- package/demo/CHANGELOG/CHANGELOG.md +5 -0
- package/es/components/VerticalIconTab/VerticalIconTab.js +11 -1
- package/es/components/VerticalIconTab/VerticalIconTab.module.scss +1 -0
- package/es/core/components/DisplaySettingDrawer/hooks/useDisplaySetting.js +8 -3
- package/es/core/components/TopoView/topoView.js +3 -3
- package/es/core/editor/components/Sidebar/panes.js +6 -1
- package/es/core/editor/components/Toolbar/widgets/AddResourceButton.js +1 -1
- package/es/core/editor/components/Toolbar/widgets/BoxBackgroundButton/BoxBackgroundButton.js +1 -1
- package/es/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +1 -1
- package/es/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +1 -1
- package/es/core/editor/components/Toolbar/widgets/FontColorButton.js +38 -12
- package/es/core/editor/components/Toolbar/widgets/FontColorButton.module.scss +4 -5
- package/es/core/editor/components/Toolbar/widgets/FontStyleButton.js +1 -1
- package/es/core/editor/components/Toolbar/widgets/Layout/index.js +2 -2
- package/es/core/editor/components/Toolbar/widgets/NodeAlignWidget.js +8 -1
- package/es/core/editor/components/Toolbar/widgets/NodeImageButton/NodeImageButton.js +1 -1
- package/es/core/editor/components/Toolbar/widgets/NodeSizeButton/NodeSizeButton.js +1 -1
- package/es/core/editor/components/Toolbar/widgets/components/textStyleSetting/ElementTextStyleSetting/ElementTextStyleSetting.js +1 -1
- package/es/core/editor/components/Toolbar/widgets/components/textStyleSetting/textStyleSettingRouter.js +1 -1
- package/es/core/editor/components/settings/CloseablePanel.module.scss +12 -0
- package/es/core/editor/components/settings/PropertyView.js +21 -18
- package/es/core/editor/components/settings/Settings.js +39 -77
- package/es/core/editor/components/settings/Settings.module.scss +2 -10
- package/es/core/editor/components/settings/core/PropertyViewManager.js +61 -0
- package/es/core/editor/components/settings/core/getPropertyViewType.js +34 -0
- package/es/core/editor/components/settings/core/updateElementProperty.js +21 -0
- package/es/core/editor/components/settings/propertyViews/box/BoxPropertyView.js +3 -8
- package/es/core/editor/components/settings/propertyViews/box/BoxPropertyViewV1.js +58 -0
- package/es/core/editor/components/settings/propertyViews/edge/CommonEdgePropertyView.js +5 -2
- package/es/core/editor/components/settings/propertyViews/edge/EdgeGroupPropertyView.js +7 -8
- package/es/core/editor/components/settings/propertyViews/edge/EdgePropertyView.js +9 -23
- package/es/core/editor/components/settings/propertyViews/edge/addEdgeProps.js +10 -0
- package/es/core/editor/components/settings/propertyViews/edge/edgeGroup/EdgeGroupSetting.js +1 -6
- package/es/core/editor/components/settings/propertyViews/group/GroupPropertyView.js +13 -21
- package/es/core/editor/components/settings/propertyViews/group/GroupPropertyView.module.scss +8 -1
- package/es/core/editor/components/settings/propertyViews/group/GroupPropertyViewV1.js +28 -0
- package/es/core/editor/components/settings/propertyViews/group/SettingTab/GroupBasicSetting.js +74 -0
- package/es/core/editor/components/settings/propertyViews/group/SettingTab/GroupExpandSetting.js +9 -7
- package/es/core/editor/components/settings/propertyViews/index.js +4 -2
- package/es/core/editor/components/settings/propertyViews/node/NodePropertyView.js +8 -32
- package/es/core/editor/components/settings/propertyViews/node/NodePropertyViewV1.js +53 -0
- package/es/core/editor/components/settings/propertyViews/node/Setting/BasicSetting.js +49 -0
- package/es/core/editor/components/settings/propertyViews/text/TextPropertyView.js +4 -19
- package/es/core/models/HistoryManager.js +11 -14
- package/es/core/models/{SelectionManager.js → SelectionModel.js} +27 -18
- package/es/core/models/TopoApp.js +3 -3
- package/es/networkTopo/components/editor/propertyViews/edge/EdgePropertyView.js +39 -6
- package/es/networkTopo/components/editor/propertyViews/edge/LinkPropertyView/LinkPropertyView.js +10 -16
- package/es/networkTopo/components/editor/propertyViews/edge/LinkPropertyView/LinkPropertyViewV1.js +37 -0
- package/es/networkTopo/components/editor/propertyViews/edge/link/LinkInfoPreview.module.scss +1 -1
- package/es/networkTopo/models/LinkDynamicStyleExecutor.js +2 -2
- package/es/style.js +1 -1
- package/lib/components/VerticalIconTab/VerticalIconTab.js +14 -1
- package/lib/components/VerticalIconTab/VerticalIconTab.module.scss +1 -0
- package/lib/core/components/DisplaySettingDrawer/hooks/useDisplaySetting.js +8 -3
- package/lib/core/components/TopoView/topoView.js +3 -3
- package/lib/core/editor/components/Sidebar/panes.js +6 -1
- package/lib/core/editor/components/Toolbar/widgets/AddResourceButton.js +1 -1
- package/lib/core/editor/components/Toolbar/widgets/BoxBackgroundButton/BoxBackgroundButton.js +1 -1
- package/lib/core/editor/components/Toolbar/widgets/EdgeColorButton/EdgeColorButton.js +1 -1
- package/lib/core/editor/components/Toolbar/widgets/EdgeTypeButton/index.js +1 -1
- package/lib/core/editor/components/Toolbar/widgets/FontColorButton.js +38 -12
- package/lib/core/editor/components/Toolbar/widgets/FontColorButton.module.scss +4 -5
- package/lib/core/editor/components/Toolbar/widgets/FontStyleButton.js +1 -1
- package/lib/core/editor/components/Toolbar/widgets/Layout/index.js +2 -2
- package/lib/core/editor/components/Toolbar/widgets/NodeAlignWidget.js +8 -1
- package/lib/core/editor/components/Toolbar/widgets/NodeImageButton/NodeImageButton.js +1 -1
- package/lib/core/editor/components/Toolbar/widgets/NodeSizeButton/NodeSizeButton.js +1 -1
- package/lib/core/editor/components/Toolbar/widgets/components/textStyleSetting/ElementTextStyleSetting/ElementTextStyleSetting.js +1 -1
- package/lib/core/editor/components/Toolbar/widgets/components/textStyleSetting/textStyleSettingRouter.js +1 -1
- package/lib/core/editor/components/settings/CloseablePanel.module.scss +12 -0
- package/lib/core/editor/components/settings/PropertyView.js +26 -19
- package/lib/core/editor/components/settings/Settings.js +44 -79
- package/lib/core/editor/components/settings/Settings.module.scss +2 -10
- package/lib/core/editor/components/settings/core/PropertyViewManager.js +70 -0
- package/lib/core/editor/components/settings/core/getPropertyViewType.js +40 -0
- package/lib/core/editor/components/settings/core/updateElementProperty.js +27 -0
- package/lib/core/editor/components/settings/propertyViews/box/BoxPropertyView.js +3 -8
- package/lib/core/editor/components/settings/propertyViews/box/BoxPropertyViewV1.js +76 -0
- package/lib/core/editor/components/settings/propertyViews/edge/CommonEdgePropertyView.js +8 -2
- package/lib/core/editor/components/settings/propertyViews/edge/EdgeGroupPropertyView.js +9 -12
- package/lib/core/editor/components/settings/propertyViews/edge/EdgePropertyView.js +7 -23
- package/lib/core/editor/components/settings/propertyViews/edge/addEdgeProps.js +19 -0
- package/lib/core/editor/components/settings/propertyViews/edge/edgeGroup/EdgeGroupSetting.js +1 -6
- package/lib/core/editor/components/settings/propertyViews/group/GroupPropertyView.js +14 -25
- package/lib/core/editor/components/settings/propertyViews/group/GroupPropertyView.module.scss +8 -1
- package/lib/core/editor/components/settings/propertyViews/group/GroupPropertyViewV1.js +43 -0
- package/lib/core/editor/components/settings/propertyViews/group/SettingTab/GroupBasicSetting.js +97 -0
- package/lib/core/editor/components/settings/propertyViews/group/SettingTab/GroupExpandSetting.js +8 -6
- package/lib/core/editor/components/settings/propertyViews/index.js +5 -2
- package/lib/core/editor/components/settings/propertyViews/node/NodePropertyView.js +8 -35
- package/lib/core/editor/components/settings/propertyViews/node/NodePropertyViewV1.js +68 -0
- package/lib/core/editor/components/settings/propertyViews/node/Setting/BasicSetting.js +64 -0
- package/lib/core/editor/components/settings/propertyViews/text/TextPropertyView.js +4 -19
- package/lib/core/models/HistoryManager.js +11 -14
- package/lib/core/models/{SelectionManager.js → SelectionModel.js} +27 -18
- package/lib/core/models/TopoApp.js +3 -3
- package/lib/networkTopo/components/editor/propertyViews/edge/EdgePropertyView.js +45 -7
- package/lib/networkTopo/components/editor/propertyViews/edge/LinkPropertyView/LinkPropertyView.js +10 -18
- package/lib/networkTopo/components/editor/propertyViews/edge/LinkPropertyView/LinkPropertyViewV1.js +50 -0
- package/lib/networkTopo/components/editor/propertyViews/edge/link/LinkInfoPreview.module.scss +1 -1
- package/lib/networkTopo/models/LinkDynamicStyleExecutor.js +2 -2
- package/lib/style.js +1 -1
- package/package.json +2 -2
- package/es/core/editor/components/settings/OpenPropertyPanelListener.js +0 -33
- package/lib/core/editor/components/settings/OpenPropertyPanelListener.js +0 -43
@@ -27,30 +27,42 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
27
27
|
function FontColorDropdown(props) {
|
28
28
|
var onChange = props.onChange,
|
29
29
|
topo = props.topo,
|
30
|
-
color = props.color,
|
31
|
-
background = props.background,
|
32
30
|
opacity = props.opacity;
|
33
31
|
|
34
32
|
var _useState = (0, _react.useState)(false),
|
35
33
|
disabled = _useState[0],
|
36
34
|
setDisabled = _useState[1];
|
37
35
|
|
38
|
-
var
|
36
|
+
var onPickerFocus = function onPickerFocus() {
|
37
|
+
topo.historyManager.beginTransaction();
|
38
|
+
};
|
39
|
+
|
40
|
+
var onPickerBlur = function onPickerBlur() {
|
41
|
+
topo.historyManager.endTransaction();
|
42
|
+
};
|
43
|
+
|
44
|
+
var backOpacityChange = function backOpacityChange(value, type) {
|
45
|
+
if (type === 'select') onPickerFocus();
|
39
46
|
onChange({
|
40
47
|
opacity: value / 100
|
41
48
|
});
|
49
|
+
if (type === 'select') onPickerBlur();
|
42
50
|
};
|
43
51
|
|
44
|
-
var colorChang = function colorChang(value) {
|
52
|
+
var colorChang = function colorChang(value, type) {
|
53
|
+
if (type === 'select') onPickerFocus();
|
45
54
|
onChange({
|
46
55
|
color: value
|
47
56
|
});
|
57
|
+
if (type === 'select') onPickerBlur();
|
48
58
|
};
|
49
59
|
|
50
60
|
var backgroundChang = function backgroundChang(value) {
|
61
|
+
onPickerFocus();
|
51
62
|
onChange({
|
52
63
|
background: value
|
53
64
|
});
|
65
|
+
onPickerBlur();
|
54
66
|
};
|
55
67
|
|
56
68
|
var icon = disabled ? /*#__PURE__*/_react["default"].createElement("img", {
|
@@ -67,9 +79,16 @@ function FontColorDropdown(props) {
|
|
67
79
|
className: _FontColorButtonModule["default"].content
|
68
80
|
}, /*#__PURE__*/_react["default"].createElement("div", {
|
69
81
|
className: _FontColorButtonModule["default"].fontColor
|
70
|
-
}, /*#__PURE__*/_react["default"].createElement("span", null, "\u5B57\u4F53\u989C\u8272"), /*#__PURE__*/_react["default"].createElement(
|
71
|
-
|
72
|
-
|
82
|
+
}, /*#__PURE__*/_react["default"].createElement("span", null, "\u5B57\u4F53\u989C\u8272"), /*#__PURE__*/_react["default"].createElement("div", {
|
83
|
+
style: {
|
84
|
+
marginTop: '10px',
|
85
|
+
marginLeft: '-4px'
|
86
|
+
}
|
87
|
+
}, /*#__PURE__*/_react["default"].createElement(_ColorPanel["default"], {
|
88
|
+
onChange: colorChang,
|
89
|
+
onPickerFocus: onPickerFocus,
|
90
|
+
onPickerBlur: onPickerBlur
|
91
|
+
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
73
92
|
className: _FontColorButtonModule["default"].backgroundColor
|
74
93
|
}, /*#__PURE__*/_react["default"].createElement("span", null, "\u80CC\u666F\u586B\u5145"), /*#__PURE__*/_react["default"].createElement("div", {
|
75
94
|
className: _FontColorButtonModule["default"].backOpacity
|
@@ -81,11 +100,19 @@ function FontColorDropdown(props) {
|
|
81
100
|
unit: "%",
|
82
101
|
list: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100],
|
83
102
|
onChange: backOpacityChange,
|
84
|
-
defaultValue: opacity
|
85
|
-
})), /*#__PURE__*/_react["default"].createElement(
|
103
|
+
defaultValue: opacity * 100
|
104
|
+
})), /*#__PURE__*/_react["default"].createElement("div", {
|
105
|
+
style: {
|
106
|
+
marginTop: '10px',
|
107
|
+
marginLeft: '-4px',
|
108
|
+
marginBottom: '3px'
|
109
|
+
}
|
110
|
+
}, /*#__PURE__*/_react["default"].createElement(_ColorPanel["default"], {
|
86
111
|
showClear: true,
|
87
|
-
onChange: backgroundChang
|
88
|
-
|
112
|
+
onChange: backgroundChang,
|
113
|
+
onPickerFocus: onPickerFocus,
|
114
|
+
onPickerBlur: onPickerBlur
|
115
|
+
})))));
|
89
116
|
}
|
90
117
|
|
91
118
|
function FontColorButton(props) {
|
@@ -102,7 +129,6 @@ function FontColorButton(props) {
|
|
102
129
|
background: style.background,
|
103
130
|
opacity: style.opacity,
|
104
131
|
onChange: function onChange(val) {
|
105
|
-
topo.historyManager.beginTransaction();
|
106
132
|
setStyle(val);
|
107
133
|
topo.historyManager.endTransaction();
|
108
134
|
},
|
@@ -1,20 +1,20 @@
|
|
1
1
|
.content {
|
2
|
-
|
2
|
+
margin: 4px 0px 0px 6px;
|
3
3
|
.fontColor{
|
4
4
|
width: 100%;
|
5
|
-
|
5
|
+
margin-bottom: 16px;
|
6
6
|
.colorPanelBox{
|
7
7
|
padding: 9px;
|
8
8
|
padding-top: 8px;
|
9
9
|
}
|
10
10
|
&>span{
|
11
11
|
font-size: 12px;
|
12
|
-
color: black;
|
13
12
|
font-family: PingFangSC-Regular, PingFang SC;
|
14
13
|
font-weight: 400;
|
15
14
|
color: #4D6277;
|
16
15
|
line-height: 17px;
|
17
16
|
}
|
17
|
+
|
18
18
|
}
|
19
19
|
.backgroundColor{
|
20
20
|
width: 100%;
|
@@ -32,9 +32,8 @@
|
|
32
32
|
line-height: 17px;
|
33
33
|
}
|
34
34
|
.backOpacity{
|
35
|
-
margin-top:
|
35
|
+
margin-top: 5px;
|
36
36
|
margin-bottom: 5px;
|
37
|
-
margin-left: 11px;
|
38
37
|
line-height: 8px;
|
39
38
|
display: flex;
|
40
39
|
flex-direction: row;
|
@@ -74,7 +74,7 @@ function FontStyleButton(props) {
|
|
74
74
|
setValue = _useState2[1]; // 选中的元素
|
75
75
|
|
76
76
|
|
77
|
-
var selection = topo.
|
77
|
+
var selection = topo.selectionModel.useHtSelection();
|
78
78
|
(0, _react.useEffect)(function () {
|
79
79
|
var isAllText = !selection.filter(function (ele) {
|
80
80
|
return !(0, _htElementUtils.isText)(ele);
|
@@ -34,7 +34,7 @@ function Layout(props) {
|
|
34
34
|
setLayout = _useState[1]; // 选中的元素
|
35
35
|
|
36
36
|
|
37
|
-
var selectionElements = topo.
|
37
|
+
var selectionElements = topo.selectionModel.useHtSelection();
|
38
38
|
|
39
39
|
var _topo$store$useModelS = topo.store.useModelState('selection'),
|
40
40
|
selection = _topo$store$useModelS.selection;
|
@@ -102,7 +102,7 @@ function LayoutWidget(props) {
|
|
102
102
|
// type为partition且selection.length>=0时可以点击布局, selection[0].className != 'ht.Node'
|
103
103
|
// type为auto且selection.length==0时可以点击布局
|
104
104
|
|
105
|
-
var selectionElements = topo.
|
105
|
+
var selectionElements = topo.selectionModel.useHtSelection();
|
106
106
|
var topoShowType = topoState.type; // 获取ID以及拓扑类型 // 拓扑类型:auto自由布局,layers分层,partition分区
|
107
107
|
|
108
108
|
var disabled = (0, _react.useMemo)(function () {
|
@@ -53,7 +53,7 @@ function NodeAlignWidget(props) {
|
|
53
53
|
graphLoaded = _topo$store$useModelS.graphLoaded; // 选中的元素
|
54
54
|
|
55
55
|
|
56
|
-
var selection = topo.
|
56
|
+
var selection = topo.selectionModel.useHtSelection();
|
57
57
|
|
58
58
|
var setSpace = function setSpace(type, num) {
|
59
59
|
topo.historyManager.beginTransaction(); // eslint-disable-next-line no-shadow
|
@@ -87,6 +87,13 @@ function NodeAlignWidget(props) {
|
|
87
87
|
setLeftInputVal();
|
88
88
|
setRightInputVal();
|
89
89
|
setDistributionDisabled(nodes.length <= 2);
|
90
|
+
|
91
|
+
if (nodes.length === 2) {
|
92
|
+
var h = topo.view.topoClient.htTopoClient.getElementsSpace(nodes, 'h')[0];
|
93
|
+
var v = topo.view.topoClient.htTopoClient.getElementsSpace(nodes, 'v')[0];
|
94
|
+
setLeftInputVal(h * 1 > 0 ? h : 0);
|
95
|
+
setRightInputVal(v * 1 > 0 ? v : 0);
|
96
|
+
}
|
90
97
|
} // eslint-disable-next-line react-hooks/exhaustive-deps
|
91
98
|
|
92
99
|
}, [graphLoaded, selection]);
|
@@ -42,7 +42,7 @@ function NodeImageButton(props) {
|
|
42
42
|
setImgVal = _useState2[1]; // 选中的元素
|
43
43
|
|
44
44
|
|
45
|
-
var selection = topo.
|
45
|
+
var selection = topo.selectionModel.useHtSelection();
|
46
46
|
(0, _react.useEffect)(function () {
|
47
47
|
var nodes = selection.filter(function (ele) {
|
48
48
|
return (0, _htElementUtils.isGroup)(ele) || (0, _htElementUtils.isNode)(ele);
|
@@ -46,7 +46,7 @@ function NodeSizeButton(props) {
|
|
46
46
|
setSize = _useState2[1]; // 选中的元素
|
47
47
|
|
48
48
|
|
49
|
-
var selection = topo.
|
49
|
+
var selection = topo.selectionModel.useSelection();
|
50
50
|
var settingRuntimeState = (0, _useSettingRuntimeState["default"])();
|
51
51
|
(0, _react.useEffect)(function () {
|
52
52
|
var elements = selection.map(function (item) {
|
@@ -29,7 +29,7 @@ function ElementTextStyleSetting(props) {
|
|
29
29
|
graphLoaded = _topo$store$useModelS.graphLoaded; // 选中的元素
|
30
30
|
|
31
31
|
|
32
|
-
var selection = topo.
|
32
|
+
var selection = topo.selectionModel.useSelection();
|
33
33
|
var htSelection = (0, _react.useMemo)(function () {
|
34
34
|
if (!selection.length) {
|
35
35
|
return [];
|
@@ -17,7 +17,7 @@ function textStyleSettingRouter(Component, options) {
|
|
17
17
|
var names = (options === null || options === void 0 ? void 0 : options.names) || [];
|
18
18
|
return function TextStyleSettingButton(props) {
|
19
19
|
var topo = props.topo;
|
20
|
-
var selection = topo.
|
20
|
+
var selection = topo.selectionModel.useHtSelection();
|
21
21
|
var Widget = !selection.length ? _GlobalTagStyleSetting["default"] : _ElementTextStyleSetting["default"];
|
22
22
|
return /*#__PURE__*/_react["default"].createElement(Widget, (0, _extends2["default"])({
|
23
23
|
Component: Component
|
@@ -1,9 +1,21 @@
|
|
1
|
+
@import '~@alifd/next/variables.scss';
|
2
|
+
|
3
|
+
|
1
4
|
.panel {
|
2
5
|
height: 100%;
|
3
6
|
display: flex;
|
4
7
|
flex-direction: column;
|
5
8
|
background: #FFFFFF;
|
9
|
+
|
10
|
+
|
11
|
+
:global {
|
12
|
+
.#{$css-prefix}drawer-header {
|
13
|
+
padding-left: 16px;
|
14
|
+
padding-right: 16px;
|
15
|
+
}
|
16
|
+
}
|
6
17
|
}
|
7
18
|
.body {
|
8
19
|
flex: 1;
|
20
|
+
overflow: auto;
|
9
21
|
}
|
@@ -3,21 +3,25 @@
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
4
|
|
5
5
|
exports.__esModule = true;
|
6
|
-
exports["default"] =
|
6
|
+
exports["default"] = PropertyPanel;
|
7
7
|
|
8
8
|
var _classnames = _interopRequireDefault(require("classnames"));
|
9
9
|
|
10
|
-
var _react =
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
11
11
|
|
12
12
|
var _CloseablePanel = _interopRequireDefault(require("./CloseablePanel"));
|
13
13
|
|
14
|
-
var
|
14
|
+
var _PropertyViewManager = _interopRequireDefault(require("./core/PropertyViewManager"));
|
15
15
|
|
16
16
|
var _Settings = _interopRequireDefault(require("./Settings"));
|
17
17
|
|
18
18
|
var _SettingsModule = _interopRequireDefault(require("./Settings.module.scss"));
|
19
19
|
|
20
|
-
function
|
20
|
+
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
|
+
|
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; }
|
23
|
+
|
24
|
+
function PropertyPanel(props) {
|
21
25
|
var _classNames;
|
22
26
|
|
23
27
|
var topo = props.topo,
|
@@ -35,37 +39,40 @@ function PropertyView(props) {
|
|
35
39
|
topoEditDispatchers = _topo$store$useModel[1];
|
36
40
|
|
37
41
|
var propertyPanelVisible = topoEditState.propertyPanelVisible;
|
42
|
+
var propertyViewManager = (0, _react.useMemo)(function () {
|
43
|
+
return new _PropertyViewManager["default"](topo);
|
44
|
+
}, []);
|
45
|
+
(0, _react.useEffect)(function () {
|
46
|
+
if (graphLoaded) {
|
47
|
+
propertyViewManager.init();
|
48
|
+
}
|
38
49
|
|
39
|
-
|
40
|
-
|
41
|
-
|
50
|
+
return function () {
|
51
|
+
propertyViewManager.destroy();
|
52
|
+
};
|
53
|
+
}, [graphLoaded, propertyViewManager]);
|
42
54
|
|
43
55
|
var renderContent = function renderContent() {
|
44
56
|
if (!propertyPanelVisible) {
|
45
57
|
return null;
|
46
58
|
}
|
47
59
|
|
48
|
-
return /*#__PURE__*/_react["default"].createElement(
|
49
|
-
topo: topo
|
50
|
-
}, /*#__PURE__*/_react["default"].createElement(_Settings["default"], {
|
60
|
+
return /*#__PURE__*/_react["default"].createElement(_Settings["default"], {
|
51
61
|
topo: topo,
|
62
|
+
selection: selection,
|
63
|
+
propertyViewManager: propertyViewManager,
|
52
64
|
topoShowType: topoShowType,
|
53
65
|
topoEditApi: topo.topoEdit,
|
54
|
-
selection: selection,
|
55
66
|
editorProps: editorProps
|
56
|
-
})
|
67
|
+
});
|
57
68
|
};
|
58
69
|
|
59
70
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
60
|
-
className: (0, _classnames["default"])(_SettingsModule["default"].
|
71
|
+
className: (0, _classnames["default"])(_SettingsModule["default"].propertyPanel, (_classNames = {}, _classNames[_SettingsModule["default"].hide] = !propertyPanelVisible, _classNames))
|
61
72
|
}, /*#__PURE__*/_react["default"].createElement(_CloseablePanel["default"], {
|
62
73
|
title: "\u6570\u636E\u5C5E\u6027",
|
63
74
|
onClose: function onClose() {
|
64
|
-
|
65
|
-
propertyPanelVisible: false
|
66
|
-
});
|
75
|
+
propertyViewManager.close();
|
67
76
|
}
|
68
|
-
},
|
69
|
-
topo: topo
|
70
|
-
}, renderContent())));
|
77
|
+
}, renderContent()));
|
71
78
|
}
|
@@ -3,109 +3,74 @@
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
4
|
|
5
5
|
exports.__esModule = true;
|
6
|
-
exports["default"] =
|
6
|
+
exports["default"] = PropertyViewContainer;
|
7
7
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
9
9
|
|
10
|
-
var _react =
|
11
|
-
|
12
|
-
var _htElementDataUtil = require("../../../../utils/htElementDataUtil");
|
13
|
-
|
14
|
-
var _propertyViews = _interopRequireDefault(require("./propertyViews"));
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
15
11
|
|
16
12
|
var _useSettingRuntimeState = _interopRequireDefault(require("./useSettingRuntimeState"));
|
17
13
|
|
18
|
-
var
|
14
|
+
var _updateElementProperty = _interopRequireDefault(require("./core/updateElementProperty"));
|
19
15
|
|
20
|
-
function
|
21
|
-
var selectionElement = selection[0];
|
22
|
-
var selectionSize = selection.length;
|
23
|
-
var elementType;
|
16
|
+
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); }
|
24
17
|
|
25
|
-
|
26
|
-
// 未选
|
27
|
-
elementType = "view";
|
28
|
-
} else if (selectionSize >= 2) {
|
29
|
-
// 多选
|
30
|
-
elementType = "multiple";
|
31
|
-
} else if ((0, _htElementDataUtil.isGroup)(selectionElement)) {
|
32
|
-
elementType = "group";
|
33
|
-
} else if (selectionElement.attrObject.topLeftText) {
|
34
|
-
// TODO 临时方式
|
35
|
-
elementType = "box";
|
36
|
-
} else if ((0, _htElementDataUtil.isNode)(selectionElement)) {
|
37
|
-
elementType = "node";
|
38
|
-
} else if ((0, _htElementDataUtil.isEdge)(selectionElement)) {
|
39
|
-
elementType = "edge";
|
40
|
-
} else if ((0, _htElementDataUtil.isLayer)(selectionElement)) {
|
41
|
-
// 分层
|
42
|
-
elementType = "layer";
|
43
|
-
} else if ((0, _htElementDataUtil.isText)(selectionElement)) {
|
44
|
-
elementType = "text";
|
45
|
-
}
|
18
|
+
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; }
|
46
19
|
|
47
|
-
|
20
|
+
function buildElementValues(selection) {
|
21
|
+
var values = (0, _extends2["default"])({}, selection[0]);
|
22
|
+
var attrTypes = ['attrObject', 'position', 'styleMap'];
|
23
|
+
attrTypes.forEach(function (type) {
|
24
|
+
Object.keys(values[type] || {}).forEach(function (key) {
|
25
|
+
values[type + "." + key] = values[type][key];
|
26
|
+
});
|
27
|
+
});
|
28
|
+
return values;
|
48
29
|
}
|
49
30
|
|
50
|
-
function
|
31
|
+
function PropertyViewContainer(props) {
|
51
32
|
var topo = props.topo,
|
52
33
|
topoShowType = props.topoShowType,
|
53
34
|
topoEditApi = props.topoEditApi,
|
54
35
|
selection = props.selection,
|
55
|
-
editorProps = props.editorProps
|
56
|
-
|
57
|
-
|
58
|
-
var
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
} else if (name.startsWith("styleMap.")) {
|
67
|
-
element.setStyle(name.replace("styleMap.", ""), value);
|
68
|
-
} else if (name === "name") {
|
69
|
-
element.setName(value);
|
70
|
-
} else if (name === "width") {
|
71
|
-
element.setWidth(value);
|
72
|
-
} else if (name === "height") {
|
73
|
-
element.setHeight(value);
|
74
|
-
} else if (name === "image") {
|
75
|
-
element.setImage(value);
|
76
|
-
} else if (name === "layout") {
|
77
|
-
// console.info("element----layout", element, value);
|
78
|
-
var layouType = value.id === "toward" ? "" + value.id + value.options.subId : value.id;
|
79
|
-
topo.getHtTopo().layoutInContainer(layouType);
|
80
|
-
}
|
81
|
-
};
|
82
|
-
|
83
|
-
var elementType = getElementType(selection);
|
84
|
-
var PropertyView = _propertyViews["default"][elementType];
|
36
|
+
editorProps = props.editorProps,
|
37
|
+
propertyViewManager = props.propertyViewManager;
|
38
|
+
var settingRuntimeState = (0, _useSettingRuntimeState["default"])();
|
39
|
+
var selectionElements = (0, _react.useMemo)(function () {
|
40
|
+
return topo.selectionModel.getSelection();
|
41
|
+
}, [selection]);
|
42
|
+
var PropertyView = propertyViewManager.getPropertyView(selection); // 不建议使用,直接使用ht元素对象。待优化
|
43
|
+
|
44
|
+
var singleElementValues = (0, _react.useMemo)(function () {
|
45
|
+
return selection.length === 1 ? buildElementValues(selection) : undefined;
|
46
|
+
}, [selection]);
|
85
47
|
|
86
48
|
if (!PropertyView) {
|
49
|
+
propertyViewManager.close();
|
87
50
|
return null;
|
88
51
|
}
|
89
52
|
|
90
|
-
var
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
type: elementType,
|
53
|
+
var elementProps = {};
|
54
|
+
|
55
|
+
if (selection.length === 1) {
|
56
|
+
elementProps = {
|
57
|
+
selectionElement: selectionElements[0],
|
58
|
+
values: singleElementValues
|
59
|
+
};
|
60
|
+
}
|
61
|
+
|
62
|
+
return /*#__PURE__*/_react["default"].createElement(PropertyView, (0, _extends2["default"])({
|
101
63
|
topo: topo,
|
64
|
+
selection: selection,
|
65
|
+
selectionElements: selectionElements,
|
102
66
|
topoShowType: topoShowType,
|
103
67
|
topoEdit: topoEditApi,
|
104
68
|
topoEditApi: topoEditApi,
|
105
|
-
|
106
|
-
|
107
|
-
onChange:
|
108
|
-
|
69
|
+
editorProps: editorProps
|
70
|
+
}, elementProps, {
|
71
|
+
onChange: function onChange(name, value) {
|
72
|
+
(0, _updateElementProperty["default"])(topo, name, value);
|
73
|
+
},
|
109
74
|
settingRuntimeState: settingRuntimeState
|
110
75
|
}));
|
111
76
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
@import '~@alifd/next/variables.scss';
|
2
2
|
|
3
|
-
.
|
3
|
+
.propertyPanel {
|
4
4
|
width: 280px;
|
5
5
|
height: 100%;
|
6
6
|
position: absolute;
|
@@ -14,7 +14,7 @@
|
|
14
14
|
overflow: hidden;
|
15
15
|
transition: width .1s linear;
|
16
16
|
|
17
|
-
&.
|
17
|
+
&.hide {
|
18
18
|
width: 0;
|
19
19
|
border-left: none;
|
20
20
|
}
|
@@ -74,11 +74,3 @@
|
|
74
74
|
align-items: center;
|
75
75
|
}
|
76
76
|
}
|
77
|
-
|
78
|
-
.content {
|
79
|
-
flex: 1;
|
80
|
-
background: #FFFFFF;
|
81
|
-
overflow: auto;
|
82
|
-
// padding-bottom: 12px;
|
83
|
-
|
84
|
-
}
|
@@ -0,0 +1,70 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
exports.__esModule = true;
|
6
|
+
exports["default"] = void 0;
|
7
|
+
|
8
|
+
var _propertyViews = _interopRequireDefault(require("../propertyViews"));
|
9
|
+
|
10
|
+
var _getPropertyViewType = _interopRequireDefault(require("./getPropertyViewType"));
|
11
|
+
|
12
|
+
var PropertyViewManager = /*#__PURE__*/function () {
|
13
|
+
function PropertyViewManager(topo) {
|
14
|
+
this.viewMap = _propertyViews["default"];
|
15
|
+
this.topo = void 0;
|
16
|
+
this.getPropertyViewType = _getPropertyViewType["default"];
|
17
|
+
this.topo = topo;
|
18
|
+
this.open = this.open.bind(this);
|
19
|
+
}
|
20
|
+
|
21
|
+
var _proto = PropertyViewManager.prototype;
|
22
|
+
|
23
|
+
_proto.updateViews = function updateViews(viewMap) {
|
24
|
+
Object.assign(this.viewMap, viewMap);
|
25
|
+
};
|
26
|
+
|
27
|
+
_proto.init = function init() {
|
28
|
+
var notifier = this.topo.getHtTopo().getNotifier();
|
29
|
+
notifier.on('topo_element_double_click', this.open);
|
30
|
+
};
|
31
|
+
|
32
|
+
_proto.destroy = function destroy() {
|
33
|
+
var notifier = this.topo.getHtTopo().getNotifier();
|
34
|
+
notifier.off('topo_element_double_click', this.open);
|
35
|
+
};
|
36
|
+
|
37
|
+
_proto.open = function open() {
|
38
|
+
var view = this.getPropertyView();
|
39
|
+
|
40
|
+
if (!view) {
|
41
|
+
return;
|
42
|
+
}
|
43
|
+
|
44
|
+
var topoEditDispatchers = this.topo.store.getModelDispatchers('topoEdit');
|
45
|
+
topoEditDispatchers.update({
|
46
|
+
propertyPanelVisible: true
|
47
|
+
});
|
48
|
+
};
|
49
|
+
|
50
|
+
_proto.close = function close() {
|
51
|
+
var topoEditDispatchers = this.topo.store.getModelDispatchers('topoEdit');
|
52
|
+
topoEditDispatchers.update({
|
53
|
+
propertyPanelVisible: false
|
54
|
+
});
|
55
|
+
};
|
56
|
+
|
57
|
+
_proto.getPropertyView = function
|
58
|
+
/* selection */
|
59
|
+
getPropertyView() {
|
60
|
+
var selection = this.topo.selectionModel.getSelection();
|
61
|
+
var elementType = (0, _getPropertyViewType["default"])(selection);
|
62
|
+
var PropertyView = this.viewMap[elementType];
|
63
|
+
return PropertyView;
|
64
|
+
};
|
65
|
+
|
66
|
+
return PropertyViewManager;
|
67
|
+
}();
|
68
|
+
|
69
|
+
var _default = PropertyViewManager;
|
70
|
+
exports["default"] = _default;
|
@@ -0,0 +1,40 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports["default"] = void 0;
|
5
|
+
|
6
|
+
var _htElementUtils = require("../../../../../utils/htElementUtils");
|
7
|
+
|
8
|
+
function getPropertyViewType(selection) {
|
9
|
+
var selectionElement = selection[0];
|
10
|
+
var selectionSize = selection.length;
|
11
|
+
var viewType;
|
12
|
+
|
13
|
+
if (!selectionSize) {
|
14
|
+
// 未选
|
15
|
+
viewType = 'view';
|
16
|
+
} else if (selectionSize >= 2) {
|
17
|
+
// 多选
|
18
|
+
viewType = 'multiple';
|
19
|
+
} else if ((0, _htElementUtils.isText)(selectionElement)) {
|
20
|
+
viewType = 'text';
|
21
|
+
} else if ((0, _htElementUtils.isGroup)(selectionElement)) {
|
22
|
+
viewType = 'group';
|
23
|
+
} else if (selectionElement.a('type') === 'box') {
|
24
|
+
viewType = 'box';
|
25
|
+
} else if ((0, _htElementUtils.isNode)(selectionElement)) {
|
26
|
+
viewType = 'node';
|
27
|
+
} else if ((0, _htElementUtils.isEdgeGroupAgent)(selectionElement)) {
|
28
|
+
viewType = 'edgeGroup';
|
29
|
+
} else if ((0, _htElementUtils.isEdge)(selectionElement)) {
|
30
|
+
viewType = 'edge';
|
31
|
+
} else if ((0, _htElementUtils.isLayer)(selectionElement)) {
|
32
|
+
// 分层
|
33
|
+
viewType = 'layer';
|
34
|
+
}
|
35
|
+
|
36
|
+
return viewType;
|
37
|
+
}
|
38
|
+
|
39
|
+
var _default = getPropertyViewType;
|
40
|
+
exports["default"] = _default;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
exports.__esModule = true;
|
4
|
+
exports["default"] = updateElementProperty;
|
5
|
+
|
6
|
+
function updateElementProperty(topo, name, value) {
|
7
|
+
// const element = topo.getDataModel().getDataById(selection[0].id);
|
8
|
+
var element = topo.getSelectionModel().getFirstData(); // console.info("updateElementProperty",topo.getSelectionModel().getSelection(), { selection, element, name, value });
|
9
|
+
|
10
|
+
if (name.startsWith('attrObject.')) {
|
11
|
+
element.setAttr(name.replace('attrObject.', ''), value);
|
12
|
+
} else if (name.startsWith('position.')) {
|
13
|
+
element.setPosition(name.replace('position.', ''), value);
|
14
|
+
} else if (name.startsWith('styleMap.')) {
|
15
|
+
element.setStyle(name.replace('styleMap.', ''), value);
|
16
|
+
} else if (name === 'name') {
|
17
|
+
element.setName(value);
|
18
|
+
} else if (name === 'width') {
|
19
|
+
element.setWidth(value);
|
20
|
+
} else if (name === 'height') {
|
21
|
+
element.setHeight(value);
|
22
|
+
} else if (name === 'image') {
|
23
|
+
element.setImage(value);
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
;
|