ronds-metadata 1.1.6 → 1.1.7

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.
@@ -0,0 +1,6 @@
1
+ import '../index.less';
2
+ interface NodeElementProps {
3
+ node?: Node;
4
+ }
5
+ declare const NodeElement: (props: NodeElementProps) => JSX.Element;
6
+ export default NodeElement;
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+
3
+ /*
4
+ * @Author: wangxian
5
+ * @Date: 2022-05-24 08:50:16
6
+ * @LastEditTime: 2022-05-24 11:58:52
7
+ */
8
+ import { GlobalOutlined } from '@ant-design/icons';
9
+ import "../index.css";
10
+
11
+ var NodeElement = function NodeElement(props) {
12
+ var node = props.node;
13
+ var data = (node === null || node === void 0 ? void 0 : node.getData()) || {};
14
+ var name = data.name;
15
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
16
+ className: "node-element"
17
+ }, /*#__PURE__*/React.createElement("div", {
18
+ className: 'icon'
19
+ }, /*#__PURE__*/React.createElement(GlobalOutlined, null)), /*#__PURE__*/React.createElement("div", {
20
+ className: "notation"
21
+ }, /*#__PURE__*/React.createElement("div", {
22
+ className: "name"
23
+ }, name))));
24
+ };
25
+
26
+ export default NodeElement;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ /*
2
+ * @Author: wangxian
3
+ * @Date: 2022-05-24 10:53:37
4
+ * @LastEditTime: 2022-05-24 10:53:41
5
+ */
6
+ import { Graph } from '@antv/x6';
7
+ Graph.registerConnector('pai', function (s, t) {
8
+ var offset = 4;
9
+ var control = 80;
10
+ var v1 = {
11
+ x: s.x,
12
+ y: s.y + offset + control
13
+ };
14
+ var v2 = {
15
+ x: t.x,
16
+ y: t.y - offset - control
17
+ };
18
+ return "M ".concat(s.x, " ").concat(s.y, "\n L ").concat(s.x, " ").concat(s.y + offset, "\n C ").concat(v1.x, " ").concat(v1.y, " ").concat(v2.x, " ").concat(v2.y, " ").concat(t.x, " ").concat(t.y - offset, "\n L ").concat(t.x, " ").concat(t.y, "\n ");
19
+ }, true);
@@ -0,0 +1,4 @@
1
+ .x6-edge-selected path[stroke-width='1'],
2
+ .x6-edge:hover path[stroke-width='1'] {
3
+ stroke-width: 3px;
4
+ }
@@ -0,0 +1,10 @@
1
+ import { Shape } from '@antv/x6';
2
+ import './edge.less';
3
+ export declare class BaseEdge extends Shape.Edge {
4
+ isGroupEdge(): boolean;
5
+ }
6
+ export declare class DPEdge extends BaseEdge {
7
+ }
8
+ export declare class DPGroupEdge extends DPEdge {
9
+ isGroupEdge(): boolean;
10
+ }
@@ -0,0 +1,91 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+
6
+ /*
7
+ * @Author: wangxian
8
+ * @Date: 2022-05-24 09:18:34
9
+ * @LastEditTime: 2022-05-24 10:43:18
10
+ */
11
+ import { Shape, Edge } from '@antv/x6';
12
+ import "./edge.css";
13
+ export var BaseEdge = /*#__PURE__*/function (_Shape$Edge) {
14
+ _inherits(BaseEdge, _Shape$Edge);
15
+
16
+ var _super = _createSuper(BaseEdge);
17
+
18
+ function BaseEdge() {
19
+ _classCallCheck(this, BaseEdge);
20
+
21
+ return _super.apply(this, arguments);
22
+ }
23
+
24
+ _createClass(BaseEdge, [{
25
+ key: "isGroupEdge",
26
+ value: // eslint-disable-next-line class-methods-use-this
27
+ function isGroupEdge() {
28
+ return false;
29
+ }
30
+ }]);
31
+
32
+ return BaseEdge;
33
+ }(Shape.Edge);
34
+ export var DPEdge = /*#__PURE__*/function (_BaseEdge) {
35
+ _inherits(DPEdge, _BaseEdge);
36
+
37
+ var _super2 = _createSuper(DPEdge);
38
+
39
+ function DPEdge() {
40
+ _classCallCheck(this, DPEdge);
41
+
42
+ return _super2.apply(this, arguments);
43
+ }
44
+
45
+ return DPEdge;
46
+ }(BaseEdge);
47
+ DPEdge.config({
48
+ shape: 'DPEdge',
49
+ connector: {
50
+ name: 'pai'
51
+ },
52
+ zIndex: 2,
53
+ attrs: {
54
+ line: {
55
+ stroke: '#808080',
56
+ strokeWidth: 1,
57
+ targetMarker: {
58
+ stroke: 'none',
59
+ fill: 'none'
60
+ }
61
+ }
62
+ }
63
+ });
64
+ export var DPGroupEdge = /*#__PURE__*/function (_DPEdge) {
65
+ _inherits(DPGroupEdge, _DPEdge);
66
+
67
+ var _super3 = _createSuper(DPGroupEdge);
68
+
69
+ function DPGroupEdge() {
70
+ _classCallCheck(this, DPGroupEdge);
71
+
72
+ return _super3.apply(this, arguments);
73
+ }
74
+
75
+ _createClass(DPGroupEdge, [{
76
+ key: "isGroupEdge",
77
+ value: // eslint-disable-next-line class-methods-use-this
78
+ function isGroupEdge() {
79
+ return true;
80
+ }
81
+ }]);
82
+
83
+ return DPGroupEdge;
84
+ }(DPEdge);
85
+ DPGroupEdge.config({
86
+ shape: 'DPGroupEdge'
87
+ });
88
+ Edge.registry.register({
89
+ DPEdge: DPEdge,
90
+ DPGroupEdge: DPGroupEdge
91
+ });
@@ -0,0 +1,11 @@
1
+ import { ReactShape } from '@antv/x6-react-shape';
2
+ export declare class BaseNode extends ReactShape {
3
+ isGroup(): boolean;
4
+ }
5
+ export declare class DPNode extends BaseNode {
6
+ getInPorts(): import("@antv/x6/lib/model/port").PortManager.PortMetadata[];
7
+ getOutPorts(): import("@antv/x6/lib/model/port").PortManager.PortMetadata[];
8
+ }
9
+ export declare class DPGroupNode extends BaseNode {
10
+ isGroup(): boolean;
11
+ }
@@ -0,0 +1,190 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+ import _inherits from "@babel/runtime/helpers/esm/inherits";
4
+ import _createSuper from "@babel/runtime/helpers/esm/createSuper";
5
+ import { Dom, Node } from '@antv/x6';
6
+ import { ReactShape } from '@antv/x6-react-shape';
7
+ import { NODE_WIDTH, NODE_HEIGHT } from '../../constant';
8
+ export var BaseNode = /*#__PURE__*/function (_ReactShape) {
9
+ _inherits(BaseNode, _ReactShape);
10
+
11
+ var _super = _createSuper(BaseNode);
12
+
13
+ function BaseNode() {
14
+ _classCallCheck(this, BaseNode);
15
+
16
+ return _super.apply(this, arguments);
17
+ }
18
+
19
+ _createClass(BaseNode, [{
20
+ key: "isGroup",
21
+ value: // eslint-disable-next-line class-methods-use-this
22
+ function isGroup() {
23
+ return false;
24
+ }
25
+ }]);
26
+
27
+ return BaseNode;
28
+ }(ReactShape);
29
+ export var DPNode = /*#__PURE__*/function (_BaseNode) {
30
+ _inherits(DPNode, _BaseNode);
31
+
32
+ var _super2 = _createSuper(DPNode);
33
+
34
+ function DPNode() {
35
+ _classCallCheck(this, DPNode);
36
+
37
+ return _super2.apply(this, arguments);
38
+ }
39
+
40
+ _createClass(DPNode, [{
41
+ key: "getInPorts",
42
+ value: function getInPorts() {
43
+ return this.getPortsByGroup('in');
44
+ }
45
+ }, {
46
+ key: "getOutPorts",
47
+ value: function getOutPorts() {
48
+ return this.getPortsByGroup('out');
49
+ }
50
+ }]);
51
+
52
+ return DPNode;
53
+ }(BaseNode);
54
+ Node.registry.register('rz-rect-port', DPNode);
55
+ DPNode.config({
56
+ width: NODE_WIDTH,
57
+ height: NODE_HEIGHT,
58
+ shape: 'rz-rect-port',
59
+ ports: {
60
+ groups: {
61
+ in: {
62
+ position: {
63
+ name: 'top'
64
+ },
65
+ zIndex: 2
66
+ },
67
+ out: {
68
+ position: {
69
+ name: 'bottom'
70
+ },
71
+ zIndex: 2
72
+ }
73
+ }
74
+ },
75
+ attrs: {
76
+ body: {
77
+ magnet: false,
78
+ fill: 'none',
79
+ stroke: 'none',
80
+ refWidth: '100%',
81
+ refHeight: '100%',
82
+ zIndex: 1
83
+ }
84
+ },
85
+ portMarkup: [{
86
+ tagName: 'foreignObject',
87
+ selector: 'fo',
88
+ attrs: {
89
+ width: 6,
90
+ height: 6,
91
+ x: -3,
92
+ y: -3,
93
+ zIndex: 10,
94
+ // magnet决定是否可交互
95
+ magnet: 'true'
96
+ },
97
+ children: [{
98
+ ns: Dom.ns.xhtml,
99
+ tagName: 'body',
100
+ selector: 'foBody',
101
+ attrs: {
102
+ xmlns: Dom.ns.xhtml
103
+ },
104
+ style: {
105
+ width: '100%',
106
+ height: '100%'
107
+ },
108
+ children: [{
109
+ tagName: 'div',
110
+ selector: 'content',
111
+ style: {
112
+ width: '100%',
113
+ height: '100%'
114
+ }
115
+ }]
116
+ }]
117
+ }]
118
+ });
119
+ export var DPGroupNode = /*#__PURE__*/function (_BaseNode2) {
120
+ _inherits(DPGroupNode, _BaseNode2);
121
+
122
+ var _super3 = _createSuper(DPGroupNode);
123
+
124
+ function DPGroupNode() {
125
+ _classCallCheck(this, DPGroupNode);
126
+
127
+ return _super3.apply(this, arguments);
128
+ }
129
+
130
+ _createClass(DPGroupNode, [{
131
+ key: "isGroup",
132
+ value: // eslint-disable-next-line class-methods-use-this
133
+ function isGroup() {
134
+ return true;
135
+ }
136
+ }]);
137
+
138
+ return DPGroupNode;
139
+ }(BaseNode);
140
+ DPGroupNode.config({
141
+ ports: {
142
+ groups: {
143
+ in: {
144
+ position: {
145
+ name: 'top'
146
+ },
147
+ zIndex: 2
148
+ },
149
+ out: {
150
+ position: {
151
+ name: 'bottom'
152
+ },
153
+ zIndex: 2
154
+ }
155
+ }
156
+ },
157
+ portMarkup: [{
158
+ tagName: 'foreignObject',
159
+ selector: 'fo',
160
+ attrs: {
161
+ width: 6,
162
+ height: 6,
163
+ x: -3,
164
+ y: -3,
165
+ zIndex: 10,
166
+ // magnet决定是否可交互
167
+ magnet: 'true'
168
+ },
169
+ children: [{
170
+ ns: Dom.ns.xhtml,
171
+ tagName: 'body',
172
+ selector: 'foBody',
173
+ attrs: {
174
+ xmlns: Dom.ns.xhtml
175
+ },
176
+ style: {
177
+ width: '100%',
178
+ height: '100%'
179
+ },
180
+ children: [{
181
+ tagName: 'span',
182
+ selector: 'content',
183
+ style: {
184
+ width: '100%',
185
+ height: '100%'
186
+ }
187
+ }]
188
+ }]
189
+ }]
190
+ });
@@ -0,0 +1,7 @@
1
+ export declare const GROUP_HORIZONTAL__PADDING = 24;
2
+ export declare const GROUP_VERTICAL__PADDING = 40;
3
+ export declare const NODE_WIDTH = 180;
4
+ export declare const NODE_HEIGHT = 32;
5
+ export declare const RERENDER_EVENT = "RERENDER_EVENT";
6
+ export declare const DRAGGABLE_ALGO_COMPONENT = "ALGO_COMPONENT";
7
+ export declare const DRAGGABLE_MODEL = "MODEL";
@@ -0,0 +1,19 @@
1
+ /*
2
+ * @Author: wangxian
3
+ * @Date: 2022-05-24 08:48:57
4
+ * @LastEditTime: 2022-05-24 08:49:24
5
+ */
6
+ export var GROUP_HORIZONTAL__PADDING = 24; // 分组横向 padding
7
+
8
+ export var GROUP_VERTICAL__PADDING = 40; // 分组纵向 padding
9
+
10
+ export var NODE_WIDTH = 180;
11
+ export var NODE_HEIGHT = 32; // 触发画布重新渲染事件
12
+
13
+ export var RERENDER_EVENT = 'RERENDER_EVENT';
14
+ /*
15
+ * 以下是拖拽相关
16
+ */
17
+
18
+ export var DRAGGABLE_ALGO_COMPONENT = 'ALGO_COMPONENT';
19
+ export var DRAGGABLE_MODEL = 'MODEL';
@@ -0,0 +1,159 @@
1
+ .node-element {
2
+ display: flex;
3
+ align-items: center;
4
+ box-sizing: border-box;
5
+ width: 180px;
6
+ height: 32px;
7
+ overflow: hidden;
8
+ background-color: #fff;
9
+ border-radius: 4px;
10
+ box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.08);
11
+ }
12
+ .node-element.selected,
13
+ .node-element:hover {
14
+ background-color: rgba(243, 249, 255, 0.92);
15
+ border: 1px solid #1890ff;
16
+ box-shadow: 0 0 3px 3px rgba(64, 169, 255, 0.2);
17
+ }
18
+ .node-element.selected .icon,
19
+ .node-element:hover .icon {
20
+ width: 32px;
21
+ height: 30px;
22
+ margin: 0 1px 0 -1px;
23
+ }
24
+ .node-element > * {
25
+ flex-grow: 1;
26
+ }
27
+ .node-element .icon {
28
+ display: inline-flex;
29
+ flex-grow: 0;
30
+ align-items: center;
31
+ justify-content: center;
32
+ width: 32px;
33
+ height: 32px;
34
+ background-color: rgba(229, 238, 255, 0.85);
35
+ border-radius: 4px 0 0 4px;
36
+ }
37
+ .node-element .notation {
38
+ display: inline-flex;
39
+ align-items: center;
40
+ width: calc(100% - 32px);
41
+ padding: 0 8px;
42
+ user-select: none;
43
+ }
44
+ .node-element .notation > * {
45
+ flex-grow: 1;
46
+ }
47
+ .node-element .notation .name {
48
+ overflow-x: hidden;
49
+ color: rgba(0, 0, 0, 0.65);
50
+ font-size: 12px;
51
+ white-space: nowrap;
52
+ text-overflow: ellipsis;
53
+ vertical-align: middle;
54
+ }
55
+ .node-element .notation .statusIcon {
56
+ display: inline-flex;
57
+ flex-grow: 0;
58
+ align-items: center;
59
+ font-size: 14px;
60
+ transform: translateZ(0);
61
+ }
62
+ .x6-node [magnet='true'] {
63
+ cursor: crosshair;
64
+ transition: none;
65
+ }
66
+ .x6-node [magnet='true']:hover {
67
+ opacity: 1;
68
+ }
69
+ .x6-node [magnet='true'][port-group='in'] {
70
+ cursor: move;
71
+ stroke: none;
72
+ }
73
+ .x6-port-body > span {
74
+ display: block;
75
+ }
76
+ .dp-port {
77
+ width: 100%;
78
+ height: 100%;
79
+ border: 1px solid #808080;
80
+ border-radius: 100%;
81
+ background: #fff;
82
+ display: block;
83
+ }
84
+ .dp-port.connected {
85
+ width: 0;
86
+ height: 0;
87
+ margin-top: 3px;
88
+ margin-left: -1px;
89
+ border-width: 5px 4px 0;
90
+ border-style: solid;
91
+ border-color: #808080 transparent transparent;
92
+ border-radius: 0;
93
+ background-color: transparent;
94
+ }
95
+ .x6-port-body.available {
96
+ overflow: visible;
97
+ }
98
+ .x6-port-body.available body {
99
+ overflow: visible;
100
+ }
101
+ .x6-port-body.available span {
102
+ overflow: visible;
103
+ display: block;
104
+ }
105
+ .x6-port-body.available body > span::before {
106
+ content: ' ';
107
+ float: left;
108
+ width: 20px;
109
+ height: 20px;
110
+ margin-top: -6px;
111
+ margin-left: -6px;
112
+ border-radius: 50%;
113
+ background-color: rgba(57, 202, 116, 0.6);
114
+ box-sizing: border-box;
115
+ }
116
+ .x6-port-body.available body > span::after {
117
+ content: ' ';
118
+ float: left;
119
+ clear: both;
120
+ width: 10px;
121
+ height: 10px;
122
+ margin-top: -15px;
123
+ margin-left: -1px;
124
+ border-radius: 50%;
125
+ background-color: #fff;
126
+ border: 1px solid #39ca74;
127
+ z-index: 10;
128
+ box-sizing: border-box;
129
+ }
130
+ .x6-port-body.adsorbed {
131
+ overflow: visible;
132
+ }
133
+ .x6-port-body.adsorbed body {
134
+ overflow: visible;
135
+ }
136
+ .x6-port-body.adsorbed body > span::before {
137
+ content: ' ';
138
+ float: left;
139
+ width: 28px;
140
+ height: 28px;
141
+ margin-top: -9px;
142
+ margin-left: -10px;
143
+ border-radius: 50%;
144
+ background-color: rgba(57, 202, 116, 0.6);
145
+ box-sizing: border-box;
146
+ }
147
+ .x6-port-body.adsorbed body > span::after {
148
+ content: ' ';
149
+ float: left;
150
+ clear: both;
151
+ width: 10px;
152
+ height: 10px;
153
+ margin-top: -19px;
154
+ border-radius: 50%;
155
+ background-color: #fff;
156
+ border: 1px solid #39ca74;
157
+ z-index: 10;
158
+ box-sizing: border-box;
159
+ }
@@ -1,2 +1,4 @@
1
+ import './index.less';
2
+ import './comps/shape/connector';
1
3
  declare const DynamicPorts: () => JSX.Element;
2
4
  export default DynamicPorts;
@@ -1,15 +1,122 @@
1
+ import "antd/es/tooltip/style";
2
+ import _Tooltip from "antd/es/tooltip";
3
+
1
4
  /*
2
5
  * @Author: wangxian
3
6
  * @Date: 2022-05-16 18:53:31
4
- * @LastEditTime: 2022-05-23 17:05:14
7
+ * @LastEditTime: 2022-05-24 12:09:46
5
8
  */
6
- import { Markup } from "@antv/x6/es/view/markup";
9
+ import { Graph, Markup } from '@antv/x6';
7
10
  import React from 'react';
11
+ import NodeElement from './comps/NodeElement';
12
+ import { DPGroupEdge } from './comps/shape/edge';
13
+ import { DPNode } from './comps/shape/node';
14
+ import ReactDOM from 'react-dom';
15
+ import "./index.css";
16
+ import './comps/shape/connector';
8
17
 
9
18
  var DynamicPorts = function DynamicPorts() {
10
- var containerRef = React.useRef();
19
+ var divRef = React.useRef(null);
20
+ React.useEffect(function () {
21
+ if (divRef.current !== null) {
22
+ var graph = new Graph({
23
+ container: divRef.current,
24
+ grid: true,
25
+ onPortRendered: function onPortRendered(args) {
26
+ var port = args.port;
27
+ var contentSelectors = args.contentSelectors;
28
+ var container = contentSelectors && contentSelectors.content;
29
+ var placement = port.group === 'in' ? 'top' : 'bottom';
30
+
31
+ if (container) {
32
+ ReactDOM.render( /*#__PURE__*/React.createElement(_Tooltip, {
33
+ title: port.description,
34
+ placement: placement
35
+ }, /*#__PURE__*/React.createElement("div", {
36
+ className: "dp-port".concat(port.connected ? '.connected' : '')
37
+ })), container);
38
+ }
39
+ }
40
+ });
41
+ graph.addNode(new DPNode({
42
+ id: '1',
43
+ x: 40,
44
+ y: 35,
45
+ ports: {
46
+ items: [{
47
+ group: 'in',
48
+ id: 'in11'
49
+ }, {
50
+ group: 'in',
51
+ id: 'in22'
52
+ }, {
53
+ group: 'out',
54
+ id: 'out11'
55
+ }, {
56
+ group: 'out',
57
+ id: 'out22'
58
+ }]
59
+ },
60
+ data: {
61
+ id: '1',
62
+ name: '算法'
63
+ },
64
+ shape: 'rz-rect-port',
65
+ component: /*#__PURE__*/React.createElement(NodeElement, null)
66
+ }));
67
+ graph.addNode(new DPNode({
68
+ id: '2',
69
+ x: 300,
70
+ y: 35,
71
+ ports: {
72
+ items: [{
73
+ group: 'in',
74
+ id: 'in1',
75
+ connected: true
76
+ }, {
77
+ group: 'in',
78
+ id: 'in2'
79
+ }, {
80
+ group: 'out',
81
+ id: 'out1'
82
+ }, {
83
+ group: 'out',
84
+ id: 'out2'
85
+ }]
86
+ },
87
+ data: {
88
+ id: '2',
89
+ name: 'Kafka数据源'
90
+ },
91
+ shape: 'rz-rect-port',
92
+ component: /*#__PURE__*/React.createElement(NodeElement, null)
93
+ }));
94
+ graph.addEdge(new DPGroupEdge({
95
+ sourceAnchor: 'bottom',
96
+ source: {
97
+ cell: '1',
98
+ port: 'out11',
99
+ anchor: {
100
+ name: 'bottom'
101
+ }
102
+ },
103
+ target: {
104
+ cell: '2',
105
+ port: 'in1',
106
+ anchor: {
107
+ name: 'center'
108
+ }
109
+ },
110
+ zIndex: 1
111
+ }));
112
+ }
113
+ }, []);
11
114
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
12
- ref: containerRef
115
+ style: {
116
+ width: '100%',
117
+ height: '100%'
118
+ },
119
+ ref: divRef
13
120
  }));
14
121
  };
15
122
 
@@ -36,11 +36,13 @@ var MetaPropsEdit = function MetaPropsEdit(props) {
36
36
  var metaType = useMetaType(metadataTag, refresh);
37
37
 
38
38
  var onTypeChange = function onTypeChange(idx) {
39
- var _properties = form.getFieldValue('properties');
39
+ var _properties$idx, _properties$idx2;
40
+
41
+ var _properties = form.getFieldValue('properties') || [];
40
42
 
41
43
  var __properties = {
42
- id: _properties[idx].id,
43
- type: _properties[idx].type
44
+ id: (_properties$idx = _properties[idx]) === null || _properties$idx === void 0 ? void 0 : _properties$idx.id,
45
+ type: (_properties$idx2 = _properties[idx]) === null || _properties$idx2 === void 0 ? void 0 : _properties$idx2.type
44
46
  };
45
47
  _properties[idx] = __properties;
46
48
  form.setFieldsValue({
@@ -0,0 +1 @@
1
+
File without changes
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "public": true,
3
3
  "name": "ronds-metadata",
4
- "version": "1.1.6",
4
+ "version": "1.1.7",
5
5
  "scripts": {
6
6
  "start": "dumi dev",
7
7
  "docs:build": "dumi build",
@@ -32,6 +32,7 @@
32
32
  ],
33
33
  "dependencies": {
34
34
  "@antv/x6": "^1.32.2",
35
+ "@antv/x6-react-shape": "^1.6.0",
35
36
  "@babel/helper-create-regexp-features-plugin": "^7.12.13",
36
37
  "@babel/runtime": "^7.11.2",
37
38
  "@popperjs/core": "^2.4.4",