@riil-frontend/component-topology 10.0.18 → 10.0.19

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 (25) 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 +19 -19
  5. package/es/core/editor/config/themes.js +11 -11
  6. package/es/core/models/TopoApp.js +1 -1
  7. package/es/core/viewer/components/plugins/ElementDetailDrawer/components/DetailDrawer.js +15 -0
  8. package/es/core/viewer/components/plugins/ElementDetailDrawer/components/DetailDrawer.module.scss +16 -0
  9. package/es/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +197 -0
  10. package/es/core/viewer/components/plugins/ResourceDetail/DefaultDetailContent.js +63 -0
  11. package/es/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +31 -217
  12. package/es/core/viewer/components/plugins/ResourceDetail/components/DrawerTitle.js +67 -49
  13. package/es/core/viewer/components/plugins/ResourceDetail/hooks/useUserId.js +66 -0
  14. package/es/style.js +1 -1
  15. package/lib/core/editor/config/themes.js +11 -11
  16. package/lib/core/models/TopoApp.js +1 -1
  17. package/lib/core/viewer/components/plugins/ElementDetailDrawer/components/DetailDrawer.js +26 -0
  18. package/lib/core/viewer/components/plugins/ElementDetailDrawer/components/DetailDrawer.module.scss +16 -0
  19. package/lib/core/viewer/components/plugins/ElementDetailDrawer/hooks/useElementDetailManager.js +211 -0
  20. package/lib/core/viewer/components/plugins/ResourceDetail/DefaultDetailContent.js +79 -0
  21. package/lib/core/viewer/components/plugins/ResourceDetail/ResourceDetailDrawer.js +31 -223
  22. package/lib/core/viewer/components/plugins/ResourceDetail/components/DrawerTitle.js +69 -51
  23. package/lib/core/viewer/components/plugins/ResourceDetail/hooks/useUserId.js +81 -0
  24. package/lib/style.js +1 -1
  25. package/package.json +2 -2
@@ -4,62 +4,80 @@ import { dataSearch, isAvailableArray } from '@riil-frontend/utils';
4
4
  import React, { useState } from 'react';
5
5
  import styles from "../index.module.scss";
6
6
 
7
- function Title(_ref) {
7
+ function NodeDrawerTitle(_ref) {
8
8
  var id = _ref.id,
9
- name = _ref.name,
10
- type = _ref.type,
11
9
  onChange = _ref.onChange,
12
10
  topo = _ref.topo;
13
11
 
14
- if (type === 'node') {
15
- var _useState = useState(''),
16
- keyword = _useState[0],
17
- setKeyword = _useState[1];
12
+ var _useState = useState(''),
13
+ keyword = _useState[0],
14
+ setKeyword = _useState[1];
18
15
 
19
- var nodes = topo.store.getModelState('topoMod').data.nodes; // 查询资源列表
16
+ var resourceData = topo.dataModel.useDataById(id);
17
+ var name = resourceData === null || resourceData === void 0 ? void 0 : resourceData.name;
18
+ var nodes = topo.store.getModelState('topoMod').data.nodes; // 查询资源列表
20
19
 
21
- nodes = nodes.filter(function (item) {
22
- return item.id !== id;
23
- });
24
- if (!nodes.length) return name;
25
- var filterNodes = dataSearch(nodes, ['name'], keyword);
26
- return /*#__PURE__*/React.createElement(_MenuButton, {
27
- text: true,
28
- autoWidth: false,
29
- size: "large",
30
- popupClassName: styles['title-popup'],
31
- menuProps: {
32
- header: /*#__PURE__*/React.createElement(_Search, {
33
- shape: "simple",
34
- placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u5B57",
35
- className: styles.search,
36
- hasClear: true,
37
- onChange: function onChange(val) {
38
- return !val && setKeyword(val);
39
- },
40
- onSearch: setKeyword
41
- })
42
- },
43
- label: /*#__PURE__*/React.createElement("div", {
44
- className: styles['drawer-title']
45
- }, name),
46
- onItemClick: function onItemClick(key) {
47
- return onChange(nodes.find(function (item) {
48
- return item.id === key;
49
- }) || '');
50
- }
51
- }, isAvailableArray(filterNodes) && filterNodes.length ? filterNodes.map(function (item) {
52
- return /*#__PURE__*/React.createElement(_MenuButton.Item, {
53
- key: item.id,
54
- disabled: !item.operation
55
- }, item.name);
56
- }) : /*#__PURE__*/React.createElement("div", {
57
- className: styles['not-data']
58
- }, "\u6682\u65E0\u6570\u636E"));
59
- } else {
60
- return /*#__PURE__*/React.createElement("div", {
20
+ nodes = nodes.filter(function (item) {
21
+ return item.id !== id;
22
+ });
23
+ if (!nodes.length) return name;
24
+ var filterNodes = dataSearch(nodes, ['name'], keyword);
25
+ return /*#__PURE__*/React.createElement(_MenuButton, {
26
+ text: true,
27
+ autoWidth: false,
28
+ size: "large",
29
+ popupClassName: styles['title-popup'],
30
+ menuProps: {
31
+ header: /*#__PURE__*/React.createElement(_Search, {
32
+ shape: "simple",
33
+ placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u5B57",
34
+ className: styles.search,
35
+ hasClear: true,
36
+ onChange: function onChange(val) {
37
+ return !val && setKeyword(val);
38
+ },
39
+ onSearch: setKeyword
40
+ })
41
+ },
42
+ label: /*#__PURE__*/React.createElement("div", {
61
43
  className: styles['drawer-title']
62
- }, "\u94FE\u8DEF\u8BE6\u60C5");
44
+ }, name),
45
+ onItemClick: function onItemClick(key) {
46
+ return onChange({
47
+ id: key
48
+ });
49
+ }
50
+ }, isAvailableArray(filterNodes) && filterNodes.length ? filterNodes.map(function (item) {
51
+ return /*#__PURE__*/React.createElement(_MenuButton.Item, {
52
+ key: item.id,
53
+ disabled: !item.operation
54
+ }, item.name);
55
+ }) : /*#__PURE__*/React.createElement("div", {
56
+ className: styles['not-data']
57
+ }, "\u6682\u65E0\u6570\u636E"));
58
+ }
59
+
60
+ function LinkDrawerTitle(_ref2) {
61
+ var id = _ref2.id,
62
+ onChange = _ref2.onChange,
63
+ topo = _ref2.topo;
64
+ return /*#__PURE__*/React.createElement("div", {
65
+ className: styles['drawer-title']
66
+ }, "\u94FE\u8DEF\u8BE6\u60C5");
67
+ }
68
+
69
+ function Title(props) {
70
+ var id = props.id,
71
+ data = props.data,
72
+ onChange = props.onChange,
73
+ topo = props.topo;
74
+
75
+ if (!id) {
76
+ return null;
77
+ } else if ((data === null || data === void 0 ? void 0 : data.type) === 'node') {
78
+ return /*#__PURE__*/React.createElement(NodeDrawerTitle, props);
79
+ } else {
80
+ return /*#__PURE__*/React.createElement(LinkDrawerTitle, props);
63
81
  }
64
82
  }
65
83
 
@@ -0,0 +1,66 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import React, { useState } from 'react';
4
+ import service from "../../../../../services/overview";
5
+
6
+ function useUserId(props) {
7
+ var _useState = useState(''),
8
+ userId = _useState[0],
9
+ setUserId = _useState[1];
10
+
11
+ function fetchUserId() {
12
+ return _fetchUserId.apply(this, arguments);
13
+ }
14
+
15
+ function _fetchUserId() {
16
+ _fetchUserId = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
17
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
18
+ while (1) {
19
+ switch (_context2.prev = _context2.next) {
20
+ case 0:
21
+ setUserId(function (prev) {
22
+ // console.log('获取用户id', prev);
23
+ // 如果已经获取过,就不再重新获取
24
+ if (!prev) {
25
+ _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
26
+ var res;
27
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
28
+ while (1) {
29
+ switch (_context.prev = _context.next) {
30
+ case 0:
31
+ _context.next = 2;
32
+ return service.getUserId();
33
+
34
+ case 2:
35
+ res = _context.sent;
36
+ setUserId((res === null || res === void 0 ? void 0 : res.user_id) || '');
37
+
38
+ case 4:
39
+ case "end":
40
+ return _context.stop();
41
+ }
42
+ }
43
+ }, _callee);
44
+ }))();
45
+ }
46
+
47
+ return prev;
48
+ });
49
+
50
+ case 1:
51
+ case "end":
52
+ return _context2.stop();
53
+ }
54
+ }
55
+ }, _callee2);
56
+ }));
57
+ return _fetchUserId.apply(this, arguments);
58
+ }
59
+
60
+ return {
61
+ fetchUserId: fetchUserId,
62
+ userId: userId
63
+ };
64
+ }
65
+
66
+ export default useUserId;
package/es/style.js CHANGED
@@ -4,9 +4,9 @@ import '@alifd/next/es/message/style';
4
4
  import '@riil-frontend/component-topology-utils/es/style';
5
5
  import '@riil-frontend/component-riil-event-emitter/es/style';
6
6
  import '@riil-frontend/utils/es/style';
7
- import '@alifd/next/es/drawer/style';
8
7
  import '@alifd/next/es/menu-button/style';
9
8
  import '@alifd/next/es/search/style';
9
+ import '@alifd/next/es/drawer/style';
10
10
  import '@alifd/next/es/tab/style';
11
11
  import '@alifd/next/es/table/style';
12
12
  import '@riil-frontend/component-table-layout/es/style';
@@ -9,9 +9,9 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
9
9
 
10
10
  var baseLightTheme = {
11
11
  color: '#FFFFFF',
12
- globalNodeLabelColor: '#4d6277',
12
+ globalNodeLabelColor: 'rgba(0, 0, 0, 0.75)',
13
13
  globalNodeLabelStyle: {
14
- color: '#4d6277'
14
+ color: 'rgba(0, 0, 0, 0.75)'
15
15
  },
16
16
  globalEdgeTagStyle: {
17
17
  color: '#777B9A',
@@ -21,16 +21,16 @@ var baseLightTheme = {
21
21
 
22
22
  },
23
23
  text: {
24
- color: '#4d6277'
24
+ color: 'rgba(0, 0, 0, 0.75)'
25
25
  },
26
26
  group: {
27
27
  style: {
28
- 'group.title.background': 'rgba(228, 233, 238, 1)',
28
+ 'group.title.background': '#3E6BB3',
29
29
  // 标题背景颜色 #E4E9EE
30
- 'group.title.color': '#4D6277',
30
+ 'group.title.color': '#FFFFFF',
31
31
  // 标题文字颜色
32
- 'group.background': 'rgba(255, 255, 255, 0.9)',
33
- 'group.border.color': '#E4E9EE',
32
+ 'group.background': 'rgba(255, 255, 255, 0.50)',
33
+ 'group.border.color': 'rgba(255, 255, 255, 0.50)',
34
34
  // 边框颜色
35
35
  'group.splitLine': false // 标题底部边框
36
36
 
@@ -89,12 +89,12 @@ var THEMES = [(0, _extends2["default"])({}, baseLightTheme, {
89
89
  },
90
90
  group: {
91
91
  style: {
92
- 'group.title.background': 'rgba(8,165,244,1)',
92
+ 'group.title.background': 'rgba(0, 85, 214, 0.60)',
93
93
  // 标题背景颜色 #08A5F4
94
94
  'group.title.color': '#FFFFFF',
95
95
  // 标题文字颜色
96
- 'group.background': 'rgba(29,55,113,0.6)',
97
- 'group.border.color': 'rgba(8,165,244,0.8)',
96
+ 'group.background': 'rgba(0, 0, 0, 0.30)',
97
+ 'group.border.color': 'rgba(0, 0, 0, 0.30)',
98
98
  // 边框颜色
99
99
  'group.splitLine': false // 标题底部边框
100
100
 
@@ -136,7 +136,7 @@ var THEMES = [(0, _extends2["default"])({}, baseLightTheme, {
136
136
  style: {
137
137
  'group.title.background': 'rgba(0,0,0,0.01)',
138
138
  // 标题背景颜色 #08A5F4
139
- 'group.title.color': '#8FECFF',
139
+ 'group.title.color': 'rgba(143, 236, 255, 1)',
140
140
  // 标题文字颜色
141
141
  'group.title.border.color': '#ffffff',
142
142
  // 边框颜色
@@ -56,7 +56,7 @@ var _SelectionModel = _interopRequireDefault(require("./SelectionModel"));
56
56
  var _CiCache = _interopRequireDefault(require("./cache/CiCache"));
57
57
 
58
58
  // eslint-disable-next-line no-undef
59
- var version = typeof "10.0.18" === 'string' ? "10.0.18" : null;
59
+ var version = typeof "10.0.19" === 'string' ? "10.0.19" : null;
60
60
  console.info("\u62D3\u6251\u7248\u672C: " + version);
61
61
  /**
62
62
  * 拓扑显示和编辑
@@ -0,0 +1,26 @@
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 _drawer = _interopRequireDefault(require("@alifd/next/lib/drawer"));
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _DetailDrawerModule = _interopRequireDefault(require("./DetailDrawer.module.scss"));
15
+
16
+ function DetailDrawer(props) {
17
+ return /*#__PURE__*/_react["default"].createElement(_drawer["default"], (0, _extends2["default"])({
18
+ className: _DetailDrawerModule["default"].baseInfo,
19
+ closeMode: ['close', 'esc'],
20
+ width: 580,
21
+ hasMask: false
22
+ }, props));
23
+ }
24
+
25
+ var _default = DetailDrawer;
26
+ exports["default"] = _default;
@@ -0,0 +1,16 @@
1
+ @import '~@alifd/next/variables.scss';
2
+
3
+ .baseInfo {
4
+ box-shadow: 0px 0px 6px 1px #F2F7FD;
5
+ .drawer-title{
6
+ font-size: 16px;
7
+ font-weight: 500;
8
+ color: #4D6277;
9
+ }
10
+ :global {
11
+ .#{$css-prefix}drawer-body {
12
+ height: calc(100% - 49px);
13
+ padding: 0 24px;
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,211 @@
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 _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _componentTopologyGraph = require("@riil-frontend/component-topology-graph");
11
+
12
+ var _DefaultDetailContent = _interopRequireDefault(require("../../ResourceDetail/DefaultDetailContent"));
13
+
14
+ 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); }
15
+
16
+ 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
+
18
+ function useElementDetailManager(props) {
19
+ var topo = props.topo,
20
+ canShow = props.canShow,
21
+ resourceDetailProps = props.resourceDetailProps;
22
+
23
+ var _topo$store$useModel = topo.store.useModel('resourceDetail'),
24
+ resourceDetailState = _topo$store$useModel[0],
25
+ resourceDetailDispatchers = _topo$store$useModel[1];
26
+
27
+ var visible = resourceDetailState.visible,
28
+ id = resourceDetailState.id;
29
+ var resourceData = topo.dataModel.useDataById(id);
30
+ var currentHtElementRef = (0, _react.useRef)(null);
31
+
32
+ function init() {
33
+ var notifier = topo.view.topoClient.notifier;
34
+ notifier.on('topo_element_double_click', handleDblClick);
35
+ notifier.on('topo_element_click', handleClick);
36
+ }
37
+
38
+ function destroy() {
39
+ var notifier = topo.view.topoClient.notifier;
40
+ notifier.off('topo_element_double_click', handleDblClick);
41
+ notifier.off('topo_element_click', handleClick); // 清除数据
42
+
43
+ currentHtElementRef.current = null;
44
+ resourceDetailDispatchers.reset();
45
+ var topoDispatchers = topo.store.getModelDispatchers('topoBaseInfoOverview');
46
+ topoDispatchers.update({
47
+ id: '',
48
+ metricCodes: []
49
+ });
50
+ } // 打开
51
+
52
+ /**
53
+ *
54
+ * @param {{id: string, htElement?}} data
55
+ * @returns
56
+ */
57
+
58
+
59
+ function open(data) {
60
+ var id = data.id;
61
+ var resourceData = topo.dataModel.getDataById(id);
62
+ var htElement = data.htElement || topo.getDataModel().getDataByTag(id); // 如果是资源/链路,没有权限不显示
63
+
64
+ if (resourceData) {
65
+ var operation = resourceData.operation,
66
+ permission = resourceData.permission;
67
+
68
+ if (!operation && !(permission !== null && permission !== void 0 && permission.readable)) {
69
+ return;
70
+ }
71
+ } // 自定义显示方法
72
+
73
+
74
+ if (!canShow(htElement)) {
75
+ return;
76
+ }
77
+
78
+ var content = getDetailContent({
79
+ id: id
80
+ });
81
+
82
+ if (content) {
83
+ resourceDetailDispatchers.update({
84
+ visible: true,
85
+ id: id
86
+ });
87
+ }
88
+ }
89
+
90
+ function change(data) {
91
+ open(data);
92
+ } // 重置
93
+
94
+
95
+ function reset() {
96
+ currentHtElementRef.current = null;
97
+ resourceDetailDispatchers.reset();
98
+ var topoDispatchers = topo.store.getModelDispatchers('topoBaseInfoOverview');
99
+ topoDispatchers.update({
100
+ id: '',
101
+ metricCodes: []
102
+ });
103
+ } // 关闭
104
+
105
+
106
+ function close() {
107
+ currentHtElementRef.current = null;
108
+ resourceDetailDispatchers.update({
109
+ visible: false
110
+ });
111
+ } // 处理双击元素事件
112
+
113
+
114
+ function handleDblClick(htElement) {
115
+ var _topo$store$getModelS = topo.store.getModelState("lock"),
116
+ lock = _topo$store$getModelS.lock;
117
+
118
+ if (lock) {
119
+ open({
120
+ id: htElement.getTag() || "ht:" + htElement.getId(),
121
+ htElement: htElement
122
+ });
123
+ }
124
+ } // 单击切换
125
+
126
+
127
+ function handleClick(htElement) {
128
+ var resourceDetailState = topo.store.getModelState('resourceDetail');
129
+ var visible = resourceDetailState.visible;
130
+
131
+ if (!visible) {
132
+ return;
133
+ }
134
+
135
+ var data = htElement.getAttrObject();
136
+ open({
137
+ id: data.id,
138
+ htElement: htElement
139
+ });
140
+ }
141
+
142
+ function getDefaultDetailContent(_ref) {
143
+ var resourceData = _ref.resourceData,
144
+ htElement = _ref.htElement;
145
+
146
+ // 仅展示资源和链路的概览
147
+ if (!resourceData) {
148
+ return;
149
+ }
150
+
151
+ var ciType = resourceData.ciType; // 没有citype不显示
152
+
153
+ if (!ciType) return;
154
+ return _DefaultDetailContent["default"];
155
+ }
156
+
157
+ function getDetailContent(_ref2) {
158
+ var id = _ref2.id;
159
+
160
+ if (!id) {
161
+ return null;
162
+ }
163
+
164
+ var resourceData = topo.dataModel.getDataById(id);
165
+ var htElement = topo.getDataModel().getDataByTag(id);
166
+ var widget; // 支持自定义概览
167
+
168
+ var _ref3 = resourceDetailProps || {},
169
+ getCustomDetailContent = _ref3.getCustomDetailContent;
170
+
171
+ if (getCustomDetailContent) {
172
+ widget = getCustomDetailContent({
173
+ id: id,
174
+ resourceData: resourceData,
175
+ htElement: htElement
176
+ });
177
+ } // 无自定义使用默认
178
+
179
+
180
+ if (!widget) {
181
+ widget = getDefaultDetailContent({
182
+ resourceData: resourceData,
183
+ htElement: htElement
184
+ });
185
+ }
186
+
187
+ return widget;
188
+ }
189
+
190
+ var Content = visible && id ? getDetailContent({
191
+ id: id
192
+ }) : null;
193
+ var elementDetailManager = {
194
+ visible: visible,
195
+ id: id,
196
+ resourceData: resourceData,
197
+ Content: Content,
198
+ init: init,
199
+ destroy: destroy,
200
+ open: open,
201
+ change: change,
202
+ reset: reset,
203
+ close: close,
204
+ handleDblClick: handleDblClick,
205
+ handleClick: handleClick
206
+ };
207
+ return elementDetailManager;
208
+ }
209
+
210
+ var _default = useElementDetailManager;
211
+ exports["default"] = _default;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ exports.__esModule = true;
6
+ exports["default"] = DefaultDetailContent;
7
+
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+
12
+ var _react = _interopRequireWildcard(require("react"));
13
+
14
+ var _ResourceDetail = _interopRequireDefault(require("./ResourceDetail"));
15
+
16
+ var _useUserId2 = _interopRequireDefault(require("./hooks/useUserId"));
17
+
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
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
+
22
+ function DefaultDetailContent(props) {
23
+ var topo = props.topo,
24
+ id = props.id,
25
+ viewerProps = props.viewerProps,
26
+ onChangeActive = props.onChangeActive,
27
+ onClose = props.onClose;
28
+
29
+ var _useUserId = (0, _useUserId2["default"])(),
30
+ userId = _useUserId.userId,
31
+ fetchUserId = _useUserId.fetchUserId;
32
+
33
+ var resourceData = topo.dataModel.useDataById(id);
34
+ var activeData = (0, _react.useMemo)(function () {
35
+ return resourceData ? {
36
+ id: resourceData.id,
37
+ name: resourceData.name,
38
+ type: resourceData.type === 'node' ? 'node' : 'link',
39
+ // 类型: node、link
40
+ ciType: resourceData.ciType,
41
+ ciName: resourceData.ciName
42
+ } : {
43
+ id: '',
44
+ name: '',
45
+ type: '',
46
+ // 类型: node、link
47
+ ciType: '',
48
+ ciName: ''
49
+ };
50
+ }, [resourceData]);
51
+ (0, _react.useEffect)(function () {
52
+ fetchUserId();
53
+ }, []); // 支持自定义概览
54
+
55
+ var _ref = (viewerProps === null || viewerProps === void 0 ? void 0 : viewerProps.resourceDetailProps) || {},
56
+ getResourceDetail = _ref.getResourceDetail;
57
+
58
+ var ResourceDetailWidget;
59
+
60
+ if (getResourceDetail) {
61
+ ResourceDetailWidget = getResourceDetail(resourceData);
62
+ }
63
+
64
+ if (!ResourceDetailWidget) {
65
+ ResourceDetailWidget = _ResourceDetail["default"];
66
+ }
67
+
68
+ if (!userId) {
69
+ return null;
70
+ }
71
+
72
+ return /*#__PURE__*/_react["default"].createElement(ResourceDetailWidget, (0, _extends2["default"])({}, props, {
73
+ topo: topo,
74
+ userId: userId,
75
+ activeData: activeData,
76
+ resourceData: resourceData,
77
+ onClose: onClose
78
+ }));
79
+ }