@riil-frontend/component-topology 5.0.16 → 5.0.18

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.
@@ -1,11 +1,10 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import React, { useState, useEffect, useRef, useCallback } from 'react';
2
+ import React, { useState, useEffect, useRef, useCallback, useMemo } from 'react';
3
3
  import PropTypes from 'prop-types';
4
4
  import classnames from 'classnames';
5
5
  import TopoGraph, { TopoEvent } from '@riil-frontend/component-topology-graph';
6
6
  import rlog from '@riil-frontend/component-topology-utils/es/rlog';
7
7
  import useTopoEdit from "../../hooks/useTopoEdit";
8
- import useSelectionListener from "../../hooks/useSelectionListener";
9
8
  import showMessage from "../../utils/showMessage";
10
9
  import EditorPlugin from "../../editor/components/EditorPlugin";
11
10
  import ViewerPlugin from "../../viewer/components/plugins/ViewerPlugin";
@@ -16,11 +15,12 @@ import BackgroundView from "../../editor/components/BackgroundView";
16
15
  import { updateEdgeExpanded } from "../../utils/edgeUtil";
17
16
  import useManageStatus from "../../hooks/useManageStatus";
18
17
  import useAlarm from "../../hooks/useAlarm";
19
- import styles from "./TopoView.module.scss";
20
18
  import useRouterAdapter from "../../hooks/useRouterAdapter";
21
19
  import { fixLink } from "../../utils/graphLinkUtil";
22
20
  import { handleClusterNoPermission, upgradeV103GraphClusterNode } from "../../../utils/clusterUtil";
23
- import { HistoryManager } from "../../models/HistoryManager";
21
+ import SelectionManager from "../../models/SelectionManager";
22
+ import HistoryManager from "../../models/HistoryManager";
23
+ import styles from "./TopoView.module.scss";
24
24
 
25
25
  var Topology = function Topology(props) {
26
26
  var _classnames, _graphViewProps$creat;
@@ -66,7 +66,9 @@ var Topology = function Topology(props) {
66
66
  setTData = _useState[1]; // TODO 临时放这里,当前监听内容较多
67
67
 
68
68
 
69
- useSelectionListener(props);
69
+ var selectionManager = useMemo(function () {
70
+ return new SelectionManager(topo);
71
+ }, []);
70
72
  useRouterAdapter(props);
71
73
  var topoEdit = useTopoEdit({
72
74
  topo: topo,
@@ -106,7 +108,9 @@ var Topology = function Topology(props) {
106
108
  setTData(buildLoadOptions ? buildLoadOptions(topoData) : topoData);
107
109
  }, [topoData]);
108
110
  useEffect(function () {
111
+ // 拓扑退出注销
109
112
  return function () {
113
+ selectionManager.destroy();
110
114
  topoDispatchers.reset();
111
115
  };
112
116
  }, []);
@@ -130,6 +134,7 @@ var Topology = function Topology(props) {
130
134
  topo.historyManager = new HistoryManager(topo, htHistoryManager);
131
135
  }
132
136
 
137
+ selectionManager.init();
133
138
  topoDispatchers.update({
134
139
  graphLoaded2: true
135
140
  });
@@ -144,6 +149,7 @@ var Topology = function Topology(props) {
144
149
  fixLink(topo);
145
150
  handleClusterNoPermission(topo);
146
151
  updateEdgeExpanded(topo);
152
+ selectionManager.init();
147
153
  topoDispatchers.update({
148
154
  graphLoaded: true
149
155
  });
@@ -1,139 +1,13 @@
1
- import _extends from "@babel/runtime/helpers/extends";
2
- import { useCallback, useRef } from 'react';
3
- import rlog from '@riil-frontend/component-topology-utils/es/rlog';
4
1
  /**
5
2
  * Selection
6
3
  */
7
-
8
4
  function useSelection(props) {
9
5
  var topo = props.topo;
10
- var selectionDispatchers = topo.store.useModelDispatchers('selection');
11
- var removeListenerRef = useRef(null);
12
-
13
- var setSelection = function setSelection(selection) {
14
- selectionDispatchers.update({
15
- selection: selection
16
- });
17
- };
18
-
19
- var updateSelection = useCallback(function (data) {
20
- try {
21
- var selectionModel = topo.getSelectionModel();
22
- var htSelection = selectionModel.getSelection().getArray(); // TODO 对比变更更新
23
-
24
- var selectionArr = htSelection.map(getElementData); // rlog.info("updateSelection", selectionArr.map((element) => element.id));
25
-
26
- setSelection(selectionArr);
27
- } catch (e) {
28
- rlog.error('updateSelection error', e);
29
- }
30
- }, []);
31
- var initListener = useCallback(function () {
32
- rlog.info('Selection initListener');
33
-
34
- function handleSelectionChange(e) {
35
- rlog.info('Selection handleSelectionChange', e);
36
- updateSelection();
37
- }
38
-
39
- function handleDataPropertyChange(e) {
40
- var property = e.property,
41
- data = e.data;
42
-
43
- if (['position', 'childChange', 'a:scale'].indexOf(property) !== -1) {
44
- return;
45
- }
46
-
47
- var selectionIds = selectionModel.getSelection().getArray().map(function (item) {
48
- return item.getId();
49
- });
50
-
51
- if (selectionIds.indexOf(data.getId()) > -1) {
52
- // console.info('PropertyChangeListener', e);
53
- updateSelection();
54
- }
55
- }
56
-
57
- var dataModel = topo.getDataModel();
58
- var selectionModel = topo.getSelectionModel();
59
- selectionModel.addSelectionChangeListener(handleSelectionChange);
60
- dataModel.addDataPropertyChangeListener(handleDataPropertyChange);
61
- return function () {
62
- selectionModel.removeSelectionChangeListener(handleSelectionChange);
63
- dataModel.removeDataPropertyChangeListener(handleDataPropertyChange);
64
- };
65
- }, []);
66
- var removeListener = useCallback(function (data) {
67
- rlog.info('Selection removeListener');
68
-
69
- if (removeListenerRef.current) {
70
- removeListenerRef.current();
71
- removeListenerRef.current = null;
72
- }
73
- }, []);
74
- var initSelection = useCallback(function () {
75
- rlog.info('Selection init');
76
-
77
- if (removeListenerRef.current) {
78
- removeListener();
79
- }
80
-
81
- updateSelection();
82
- removeListenerRef.current = initListener();
83
- }, []);
84
- var destroySelection = useCallback(function (data) {
85
- rlog.info('Selection destroy');
86
- removeListener();
87
- setSelection([]);
88
- }, []);
89
- var resetSelection = useCallback(function (data) {
90
- rlog.info('Selection reset');
91
- setSelection([]);
92
- }, []);
93
- return {
94
- initSelection: initSelection,
95
- destroySelection: destroySelection,
96
- resetSelection: resetSelection,
97
- updateSelection: updateSelection // destroy,
98
-
99
- };
100
- } // 构造元素数据
101
-
102
6
 
103
- var map = {
104
- common: function common(element) {
105
- var className = element.getClassName();
106
- return {
107
- className: className,
108
- id: element.getId(),
109
- tag: element.getTag(),
110
- // 业务id
111
- name: element.getName(),
112
- attrObject: JSON.parse(JSON.stringify(element.getAttrObject() || {})),
113
- styleMap: JSON.parse(JSON.stringify(element.getStyleMap() || {}))
114
- };
115
- },
116
- 'ht.Edge': function htEdge(element) {
117
- return _extends({}, map.common(element));
118
- },
119
- 'ht.Group': function htGroup(element) {
120
- return _extends({}, map['ht.Node'](element), {
121
- expanded: element.isExpanded()
122
- });
123
- },
124
- 'ht.Node': function htNode(element) {
125
- return _extends({}, map.common(element), {
126
- image: element.getImage(),
127
- width: element.getWidth(),
128
- height: element.getHeight(),
129
- position: element.getPosition()
130
- });
131
- }
132
- };
7
+ var _topo$store$useModelS = topo.store.useModelState('selection'),
8
+ selection = _topo$store$useModelS.selection;
133
9
 
134
- function getElementData(element) {
135
- var className = element.getClassName();
136
- return (map[className] || map.common)(element);
10
+ return selection;
137
11
  }
138
12
 
139
13
  export default useSelection;
@@ -1,7 +1,8 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import rlog from '@riil-frontend/component-topology-utils/es/rlog';
3
3
  var ht = window.ht;
4
- export var HistoryManager = /*#__PURE__*/function () {
4
+
5
+ var HistoryManager = /*#__PURE__*/function () {
5
6
  function HistoryManager(topo, htHistoryManager) {
6
7
  this.topo = null;
7
8
  this.htHistoryManager = void 0;
@@ -175,4 +176,6 @@ export var HistoryManager = /*#__PURE__*/function () {
175
176
  };
176
177
 
177
178
  return HistoryManager;
178
- }();
179
+ }();
180
+
181
+ export { HistoryManager as default };
@@ -0,0 +1,138 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import rlog from '@riil-frontend/component-topology-utils/es/rlog';
3
+
4
+ var SelectionManager = /*#__PURE__*/function () {
5
+ function SelectionManager(topo) {
6
+ var _this = this;
7
+
8
+ this.topo = null;
9
+ this.inited = false;
10
+
11
+ this.setSelection = function (selection) {
12
+ var selectionDispatchers = _this.topo.store.getModelDispatchers('selection');
13
+
14
+ selectionDispatchers.update({
15
+ selection: selection
16
+ });
17
+ };
18
+
19
+ this.updateSelection = function () {
20
+ try {
21
+ var selectionModel = _this.topo.getSelectionModel();
22
+
23
+ var htSelection = selectionModel.getSelection().getArray(); // TODO 对比变更更新
24
+
25
+ var selectionArr = htSelection.map(getElementData); // rlog.info("updateSelection", selectionArr.map((element) => element.id));
26
+
27
+ _this.setSelection(selectionArr);
28
+ } catch (e) {
29
+ rlog.error('updateSelection error', e);
30
+ }
31
+ };
32
+
33
+ this.topo = topo;
34
+ this.handleSelectionChange = this.handleSelectionChange.bind(this);
35
+ this.handleDataPropertyChange = this.handleDataPropertyChange.bind(this);
36
+ }
37
+
38
+ var _proto = SelectionManager.prototype;
39
+
40
+ _proto.init = function init() {
41
+ if (this.inited) {
42
+ this.removeListener();
43
+ }
44
+
45
+ this.updateSelection();
46
+ this.initListener();
47
+ this.inited = true;
48
+ };
49
+
50
+ _proto.destroy = function destroy() {
51
+ this.removeListener();
52
+ };
53
+
54
+ _proto.handleSelectionChange = function handleSelectionChange(e) {
55
+ rlog.info('Selection handleSelectionChange', e);
56
+ this.updateSelection();
57
+ };
58
+
59
+ _proto.handleDataPropertyChange = function handleDataPropertyChange(e) {
60
+ var property = e.property,
61
+ data = e.data;
62
+
63
+ if (['position', 'childChange', 'a:scale'].indexOf(property) !== -1) {
64
+ return;
65
+ }
66
+
67
+ var selectionModel = this.topo.getSelectionModel();
68
+ var selectionIds = selectionModel.getSelection().getArray().map(function (item) {
69
+ return item.getId();
70
+ });
71
+
72
+ if (selectionIds.indexOf(data.getId()) > -1) {
73
+ // console.info('PropertyChangeListener', e);
74
+ this.updateSelection();
75
+ }
76
+ };
77
+
78
+ _proto.initListener = function initListener() {
79
+ rlog.info('Selection initListener');
80
+ var dataModel = this.topo.getDataModel();
81
+ var selectionModel = this.topo.getSelectionModel();
82
+ selectionModel.addSelectionChangeListener(this.handleSelectionChange);
83
+ dataModel.addDataPropertyChangeListener(this.handleDataPropertyChange);
84
+ };
85
+
86
+ _proto.removeListener = function removeListener() {
87
+ if (!this.inited) {
88
+ return;
89
+ }
90
+
91
+ rlog.info('Selection removeListener');
92
+ var dataModel = this.topo.getDataModel();
93
+ var selectionModel = this.topo.getSelectionModel();
94
+ selectionModel.removeSelectionChangeListener(this.handleSelectionChange);
95
+ dataModel.removeDataPropertyChangeListener(this.handleDataPropertyChange);
96
+ };
97
+
98
+ return SelectionManager;
99
+ }();
100
+
101
+ export { SelectionManager as default };
102
+ ; // 构造元素数据
103
+
104
+ var map = {
105
+ common: function common(element) {
106
+ var className = element.getClassName();
107
+ return {
108
+ className: className,
109
+ id: element.getId(),
110
+ tag: element.getTag(),
111
+ // 业务id
112
+ name: element.getName(),
113
+ attrObject: JSON.parse(JSON.stringify(element.getAttrObject() || {})),
114
+ styleMap: JSON.parse(JSON.stringify(element.getStyleMap() || {}))
115
+ };
116
+ },
117
+ 'ht.Edge': function htEdge(element) {
118
+ return _extends({}, map.common(element));
119
+ },
120
+ 'ht.Group': function htGroup(element) {
121
+ return _extends({}, map['ht.Node'](element), {
122
+ expanded: element.isExpanded()
123
+ });
124
+ },
125
+ 'ht.Node': function htNode(element) {
126
+ return _extends({}, map.common(element), {
127
+ image: element.getImage(),
128
+ width: element.getWidth(),
129
+ height: element.getHeight(),
130
+ position: element.getPosition()
131
+ });
132
+ }
133
+ };
134
+
135
+ function getElementData(element) {
136
+ var className = element.getClassName();
137
+ return (map[className] || map.common)(element);
138
+ }
@@ -21,7 +21,7 @@ import PluginManager from "./PluginManager";
21
21
  import topoFactory from "./topoFactory";
22
22
  import ElementTagTipConfig from "./tagstips/ElementTagTipConfig"; // eslint-disable-next-line no-undef
23
23
 
24
- var version = typeof "5.0.16" === 'string' ? "5.0.16" : null;
24
+ var version = typeof "5.0.18" === 'string' ? "5.0.18" : null;
25
25
  console.info("\u62D3\u6251\u7248\u672C: " + version);
26
26
  /**
27
27
  * 拓扑显示和编辑
@@ -19,8 +19,6 @@ var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-ut
19
19
 
20
20
  var _useTopoEdit = _interopRequireDefault(require("../../hooks/useTopoEdit"));
21
21
 
22
- var _useSelectionListener = _interopRequireDefault(require("../../hooks/useSelectionListener"));
23
-
24
22
  var _showMessage = _interopRequireDefault(require("../../utils/showMessage"));
25
23
 
26
24
  var _EditorPlugin = _interopRequireDefault(require("../../editor/components/EditorPlugin"));
@@ -41,15 +39,17 @@ var _useManageStatus = _interopRequireDefault(require("../../hooks/useManageStat
41
39
 
42
40
  var _useAlarm = _interopRequireDefault(require("../../hooks/useAlarm"));
43
41
 
44
- var _TopoViewModule = _interopRequireDefault(require("./TopoView.module.scss"));
45
-
46
42
  var _useRouterAdapter = _interopRequireDefault(require("../../hooks/useRouterAdapter"));
47
43
 
48
44
  var _graphLinkUtil = require("../../utils/graphLinkUtil");
49
45
 
50
46
  var _clusterUtil = require("../../../utils/clusterUtil");
51
47
 
52
- var _HistoryManager = require("../../models/HistoryManager");
48
+ var _SelectionManager = _interopRequireDefault(require("../../models/SelectionManager"));
49
+
50
+ var _HistoryManager = _interopRequireDefault(require("../../models/HistoryManager"));
51
+
52
+ var _TopoViewModule = _interopRequireDefault(require("./TopoView.module.scss"));
53
53
 
54
54
  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); }
55
55
 
@@ -99,7 +99,9 @@ var Topology = function Topology(props) {
99
99
  setTData = _useState[1]; // TODO 临时放这里,当前监听内容较多
100
100
 
101
101
 
102
- (0, _useSelectionListener["default"])(props);
102
+ var selectionManager = (0, _react.useMemo)(function () {
103
+ return new _SelectionManager["default"](topo);
104
+ }, []);
103
105
  (0, _useRouterAdapter["default"])(props);
104
106
  var topoEdit = (0, _useTopoEdit["default"])({
105
107
  topo: topo,
@@ -139,7 +141,9 @@ var Topology = function Topology(props) {
139
141
  setTData(buildLoadOptions ? buildLoadOptions(topoData) : topoData);
140
142
  }, [topoData]);
141
143
  (0, _react.useEffect)(function () {
144
+ // 拓扑退出注销
142
145
  return function () {
146
+ selectionManager.destroy();
143
147
  topoDispatchers.reset();
144
148
  };
145
149
  }, []);
@@ -162,9 +166,10 @@ var Topology = function Topology(props) {
162
166
  var htHistoryManager = topo.getDataModel().getHistoryManager();
163
167
 
164
168
  if (htHistoryManager) {
165
- topo.historyManager = new _HistoryManager.HistoryManager(topo, htHistoryManager);
169
+ topo.historyManager = new _HistoryManager["default"](topo, htHistoryManager);
166
170
  }
167
171
 
172
+ selectionManager.init();
168
173
  topoDispatchers.update({
169
174
  graphLoaded2: true
170
175
  });
@@ -180,6 +185,7 @@ var Topology = function Topology(props) {
180
185
  (0, _graphLinkUtil.fixLink)(topo);
181
186
  (0, _clusterUtil.handleClusterNoPermission)(topo);
182
187
  (0, _edgeUtil.updateEdgeExpanded)(topo);
188
+ selectionManager.init();
183
189
  topoDispatchers.update({
184
190
  graphLoaded: true
185
191
  });
@@ -1,151 +1,18 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  exports.__esModule = true;
6
4
  exports["default"] = void 0;
7
5
 
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
-
10
- var _react = require("react");
11
-
12
- var _rlog = _interopRequireDefault(require("@riil-frontend/component-topology-utils/es/rlog"));
13
-
14
6
  /**
15
7
  * Selection
16
8
  */
17
9
  function useSelection(props) {
18
10
  var topo = props.topo;
19
- var selectionDispatchers = topo.store.useModelDispatchers('selection');
20
- var removeListenerRef = (0, _react.useRef)(null);
21
-
22
- var setSelection = function setSelection(selection) {
23
- selectionDispatchers.update({
24
- selection: selection
25
- });
26
- };
27
-
28
- var updateSelection = (0, _react.useCallback)(function (data) {
29
- try {
30
- var selectionModel = topo.getSelectionModel();
31
- var htSelection = selectionModel.getSelection().getArray(); // TODO 对比变更更新
32
-
33
- var selectionArr = htSelection.map(getElementData); // rlog.info("updateSelection", selectionArr.map((element) => element.id));
34
-
35
- setSelection(selectionArr);
36
- } catch (e) {
37
- _rlog["default"].error('updateSelection error', e);
38
- }
39
- }, []);
40
- var initListener = (0, _react.useCallback)(function () {
41
- _rlog["default"].info('Selection initListener');
42
-
43
- function handleSelectionChange(e) {
44
- _rlog["default"].info('Selection handleSelectionChange', e);
45
-
46
- updateSelection();
47
- }
48
-
49
- function handleDataPropertyChange(e) {
50
- var property = e.property,
51
- data = e.data;
52
-
53
- if (['position', 'childChange', 'a:scale'].indexOf(property) !== -1) {
54
- return;
55
- }
56
-
57
- var selectionIds = selectionModel.getSelection().getArray().map(function (item) {
58
- return item.getId();
59
- });
60
-
61
- if (selectionIds.indexOf(data.getId()) > -1) {
62
- // console.info('PropertyChangeListener', e);
63
- updateSelection();
64
- }
65
- }
66
-
67
- var dataModel = topo.getDataModel();
68
- var selectionModel = topo.getSelectionModel();
69
- selectionModel.addSelectionChangeListener(handleSelectionChange);
70
- dataModel.addDataPropertyChangeListener(handleDataPropertyChange);
71
- return function () {
72
- selectionModel.removeSelectionChangeListener(handleSelectionChange);
73
- dataModel.removeDataPropertyChangeListener(handleDataPropertyChange);
74
- };
75
- }, []);
76
- var removeListener = (0, _react.useCallback)(function (data) {
77
- _rlog["default"].info('Selection removeListener');
78
-
79
- if (removeListenerRef.current) {
80
- removeListenerRef.current();
81
- removeListenerRef.current = null;
82
- }
83
- }, []);
84
- var initSelection = (0, _react.useCallback)(function () {
85
- _rlog["default"].info('Selection init');
86
-
87
- if (removeListenerRef.current) {
88
- removeListener();
89
- }
90
-
91
- updateSelection();
92
- removeListenerRef.current = initListener();
93
- }, []);
94
- var destroySelection = (0, _react.useCallback)(function (data) {
95
- _rlog["default"].info('Selection destroy');
96
-
97
- removeListener();
98
- setSelection([]);
99
- }, []);
100
- var resetSelection = (0, _react.useCallback)(function (data) {
101
- _rlog["default"].info('Selection reset');
102
-
103
- setSelection([]);
104
- }, []);
105
- return {
106
- initSelection: initSelection,
107
- destroySelection: destroySelection,
108
- resetSelection: resetSelection,
109
- updateSelection: updateSelection // destroy,
110
-
111
- };
112
- } // 构造元素数据
113
-
114
11
 
115
- var map = {
116
- common: function common(element) {
117
- var className = element.getClassName();
118
- return {
119
- className: className,
120
- id: element.getId(),
121
- tag: element.getTag(),
122
- // 业务id
123
- name: element.getName(),
124
- attrObject: JSON.parse(JSON.stringify(element.getAttrObject() || {})),
125
- styleMap: JSON.parse(JSON.stringify(element.getStyleMap() || {}))
126
- };
127
- },
128
- 'ht.Edge': function htEdge(element) {
129
- return (0, _extends2["default"])({}, map.common(element));
130
- },
131
- 'ht.Group': function htGroup(element) {
132
- return (0, _extends2["default"])({}, map['ht.Node'](element), {
133
- expanded: element.isExpanded()
134
- });
135
- },
136
- 'ht.Node': function htNode(element) {
137
- return (0, _extends2["default"])({}, map.common(element), {
138
- image: element.getImage(),
139
- width: element.getWidth(),
140
- height: element.getHeight(),
141
- position: element.getPosition()
142
- });
143
- }
144
- };
12
+ var _topo$store$useModelS = topo.store.useModelState('selection'),
13
+ selection = _topo$store$useModelS.selection;
145
14
 
146
- function getElementData(element) {
147
- var className = element.getClassName();
148
- return (map[className] || map.common)(element);
15
+ return selection;
149
16
  }
150
17
 
151
18
  var _default = useSelection;
@@ -3,7 +3,7 @@
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  exports.__esModule = true;
6
- exports.HistoryManager = void 0;
6
+ exports["default"] = void 0;
7
7
 
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
 
@@ -194,4 +194,4 @@ var HistoryManager = /*#__PURE__*/function () {
194
194
  return HistoryManager;
195
195
  }();
196
196
 
197
- exports.HistoryManager = HistoryManager;
197
+ exports["default"] = HistoryManager;