ronds-metadata 1.1.76 → 1.1.77

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.
@@ -3,17 +3,21 @@ import "antd/es/form/style";
3
3
  import _Form from "antd/es/form";
4
4
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
5
  import React from 'react';
6
- import { EditableContext } from '../interface';
6
+ import { useDrag, useDrop } from 'react-dnd';
7
+ import { DND_TYPE, EditableContext } from '../interface';
7
8
 
8
9
  var EditableRow = function EditableRow(props) {
9
10
  var record = props.record,
10
11
  index = props.index,
11
- className = props.className;
12
+ className = props.className,
13
+ onMove = props.onMove;
12
14
 
13
15
  var _Form$useForm = _Form.useForm(),
14
16
  _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
15
17
  form = _Form$useForm2[0];
16
18
 
19
+ var ref = React.useRef(null);
20
+
17
21
  var _ref = React.useContext(EditableContext) || undefined,
18
22
  editableStream = _ref.editableStream;
19
23
 
@@ -22,6 +26,55 @@ var EditableRow = function EditableRow(props) {
22
26
  form.setFieldsValue(record);
23
27
  }, [record]);
24
28
 
29
+ var _useDrop = useDrop({
30
+ accept: DND_TYPE,
31
+ collect: function collect(monitor) {
32
+ var _ref2 = monitor.getItem() || {},
33
+ dragIndex = _ref2.index;
34
+
35
+ if (dragIndex === index || !onMove) {
36
+ return {};
37
+ }
38
+
39
+ return {
40
+ isOver: monitor.isOver(),
41
+ dropClassName: dragIndex < index ? ' drop-over-downward' : ' drop-over-upward'
42
+ };
43
+ },
44
+ drop: function drop(item, monitor) {
45
+ onMove && onMove({
46
+ dragIndex: item.index,
47
+ hoverIndex: index
48
+ });
49
+ }
50
+ }),
51
+ _useDrop2 = _slicedToArray(_useDrop, 2),
52
+ _useDrop2$ = _useDrop2[0],
53
+ isOver = _useDrop2$.isOver,
54
+ dropClassName = _useDrop2$.dropClassName,
55
+ drop = _useDrop2[1];
56
+
57
+ var _useDrag = useDrag({
58
+ item: {
59
+ index: index,
60
+ type: DND_TYPE
61
+ },
62
+ end: function end(item, monitor) {
63
+ var dropResult = monitor.getDropResult();
64
+
65
+ if (item && dropResult) {}
66
+ },
67
+ collect: function collect(monitor) {
68
+ return {
69
+ isDragging: monitor.isDragging()
70
+ };
71
+ }
72
+ }),
73
+ _useDrag2 = _slicedToArray(_useDrag, 2),
74
+ drag = _useDrag2[1];
75
+
76
+ onMove && drop(drag(ref));
77
+
25
78
  var onValuesChange = function onValuesChange(values, allValues) {
26
79
  if (editableStream) {
27
80
  editableStream.next({
@@ -50,8 +103,10 @@ var EditableRow = function EditableRow(props) {
50
103
  initialValues: record,
51
104
  onValuesChange: onValuesChange,
52
105
  component: false
53
- }, /*#__PURE__*/React.createElement("tr", _extends({}, props, {
54
- className: "".concat(index % 2 === 0 ? 'ant-table-row--even' : 'ant-table-row--odd', " ").concat(className, " "),
106
+ }, /*#__PURE__*/React.createElement("tr", _extends({
107
+ ref: ref
108
+ }, props, {
109
+ className: "".concat(index % 2 === 0 ? 'ant-table-row--even' : 'ant-table-row--odd', " ").concat(className, " ").concat(isOver ? dropClassName : '', " "),
55
110
  style: {
56
111
  height: '30px',
57
112
  fontSize: '13px'
@@ -28,3 +28,11 @@
28
28
  .font-bold {
29
29
  font-weight: bold;
30
30
  }
31
+
32
+ .drop-over-downward td {
33
+ border-bottom: 2px dashed #1890ff !important;
34
+ }
35
+
36
+ .drop-over-upward td {
37
+ border-top: 2px dashed #1890ff !important;
38
+ }
@@ -49,6 +49,10 @@ interface IEditableProps<R = any> {
49
49
  * 每行确认回调函数
50
50
  */
51
51
  onRowClick?: (record: any) => void;
52
+ /**
53
+ * 行移动
54
+ */
55
+ onMove?: (record: any) => void;
52
56
  /**
53
57
  * 表格按钮点击事件
54
58
  */
@@ -10,6 +10,8 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
10
10
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
11
11
  import React from 'react';
12
12
  import { pick, isArray } from 'lodash';
13
+ import { DndProvider } from 'react-dnd';
14
+ import { HTML5Backend } from 'react-dnd-html5-backend';
13
15
  import EditableCell from './comps/EditableCell';
14
16
  import EditableRow from './comps/EditableRow';
15
17
  import { EditableContext } from './interface';
@@ -37,6 +39,7 @@ var Editable = function Editable(props) {
37
39
  _props$isAction = props.isAction,
38
40
  isAction = _props$isAction === void 0 ? true : _props$isAction,
39
41
  tableProps = props.tableProps,
42
+ onMove = props.onMove,
40
43
  onRowClick = props.onRowClick,
41
44
  onButtonCellClick = props.onButtonCellClick,
42
45
  onRowConfirm = props.onRowConfirm,
@@ -332,6 +335,8 @@ var Editable = function Editable(props) {
332
335
  editHeardCellKey: editHeardCellKey
333
336
  }
334
337
  }
338
+ }, /*#__PURE__*/React.createElement(DndProvider, {
339
+ backend: HTML5Backend
335
340
  }, /*#__PURE__*/React.createElement(_Table, _extends({
336
341
  key: _columns.length,
337
342
  className: "ronds-edit-table",
@@ -358,10 +363,11 @@ var Editable = function Editable(props) {
358
363
  onRow: function onRow(record, index) {
359
364
  return {
360
365
  record: record,
361
- index: index
366
+ index: index,
367
+ onMove: onMove
362
368
  };
363
369
  }
364
- })), (type === 'multiple' || type === 'freedom') && !readonly && isAddRow && defaultValue && /*#__PURE__*/React.createElement(_Button, {
370
+ }))), (type === 'multiple' || type === 'freedom') && !readonly && isAddRow && defaultValue && /*#__PURE__*/React.createElement(_Button, {
365
371
  block: true,
366
372
  type: "dashed",
367
373
  style: {
@@ -30,6 +30,7 @@ export interface EditableRowProps extends React.HTMLAttributes<HTMLElement> {
30
30
  rowIndex: number;
31
31
  record?: any;
32
32
  index?: any;
33
+ onMove?: (data: any) => void;
33
34
  }
34
35
  export declare type InputType = 'bool' | 'number' | 'text' | 'enum' | string;
35
36
  export interface EditColumnsType extends ColumnsType<any> {
@@ -68,3 +69,4 @@ export interface IMultipleProps extends ICommonProps {
68
69
  }
69
70
  export interface IFreedomProps extends ICommonProps {
70
71
  }
72
+ export declare const DND_TYPE = "rzDndTableRow";
@@ -1,7 +1,8 @@
1
1
  /*
2
2
  * @Author: wangxian
3
3
  * @Date: 2022-03-04 15:07:57
4
- * @LastEditTime: 2022-09-27 10:11:38
4
+ * @LastEditTime: 2023-01-04 10:38:53
5
5
  */
6
6
  import React from 'react';
7
- export var EditableContext = /*#__PURE__*/React.createContext(null);
7
+ export var EditableContext = /*#__PURE__*/React.createContext(null);
8
+ export var DND_TYPE = 'rzDndTableRow';
@@ -1,41 +1,41 @@
1
- pre {
2
- margin: 0;
3
- font-weight: 900;
4
- font-size: 14px;
5
- }
6
- .string {
7
- color: #3ab54a;
8
- }
9
- .number {
10
- color: #25aae2;
11
- }
12
- .boolean {
13
- color: #f98280;
14
- }
15
- .null {
16
- color: #f1592a;
17
- }
18
- .width-10 {
19
- width: 10px;
20
- }
21
- .key {
22
- color: #92278f;
23
- }
24
- .open {
25
- display: inline-block;
26
- width: 12px;
27
- height: 12px;
28
- background: url('./icon/close.png') no-repeat;
29
- background-size: 100% 100%;
30
- vertical-align: middle;
31
- cursor: pointer;
32
- }
33
- .close {
34
- display: inline-block;
35
- width: 12px;
36
- height: 12px;
37
- background: url('./icon/open.png') no-repeat;
38
- background-size: 100% 100%;
39
- vertical-align: middle;
40
- cursor: pointer;
41
- }
1
+ pre {
2
+ margin: 0;
3
+ font-weight: 900;
4
+ font-size: 14px;
5
+ }
6
+ .string {
7
+ color: #3ab54a;
8
+ }
9
+ .number {
10
+ color: #25aae2;
11
+ }
12
+ .boolean {
13
+ color: #f98280;
14
+ }
15
+ .null {
16
+ color: #f1592a;
17
+ }
18
+ .width-10 {
19
+ width: 10px;
20
+ }
21
+ .key {
22
+ color: #92278f;
23
+ }
24
+ .open {
25
+ display: inline-block;
26
+ width: 12px;
27
+ height: 12px;
28
+ background: url('./icon/close.png') no-repeat;
29
+ background-size: 100% 100%;
30
+ vertical-align: middle;
31
+ cursor: pointer;
32
+ }
33
+ .close {
34
+ display: inline-block;
35
+ width: 12px;
36
+ height: 12px;
37
+ background: url('./icon/open.png') no-repeat;
38
+ background-size: 100% 100%;
39
+ vertical-align: middle;
40
+ cursor: pointer;
41
+ }
@@ -1,10 +1,10 @@
1
- .metadata-edit {
2
- height: 100%;
3
- width: 100%;
4
- .ant-row {
5
- display: block;
6
- }
7
- .pr-10 {
8
- padding-right: 10px;
9
- }
10
- }
1
+ .metadata-edit {
2
+ height: 100%;
3
+ width: 100%;
4
+ .ant-row {
5
+ display: block;
6
+ }
7
+ .pr-10 {
8
+ padding-right: 10px;
9
+ }
10
+ }
@@ -1,20 +1,20 @@
1
- export interface IMetaFileds {
2
- id: string;
3
- type: 'object';
4
- properties: any[];
5
- value: any;
6
- }
7
-
8
- export type ITypeStatus = 'object' | 'ref' | 'bool' | 'number' | 'text' | 'enum' | 'array';
9
-
10
- export type IMetaProperty = {
11
- /**
12
- * 属性的名称
13
- */
14
- id: string;
15
- /**
16
- * 类型
17
- */
18
- type: string;
19
- enum?: any[];
20
- };
1
+ export interface IMetaFileds {
2
+ id: string;
3
+ type: 'object';
4
+ properties: any[];
5
+ value: any;
6
+ }
7
+
8
+ export type ITypeStatus = 'object' | 'ref' | 'bool' | 'number' | 'text' | 'enum' | 'array';
9
+
10
+ export type IMetaProperty = {
11
+ /**
12
+ * 属性的名称
13
+ */
14
+ id: string;
15
+ /**
16
+ * 类型
17
+ */
18
+ type: string;
19
+ enum?: any[];
20
+ };
package/package.json CHANGED
@@ -1,94 +1,94 @@
1
- {
2
- "public": true,
3
- "name": "ronds-metadata",
4
- "version": "1.1.76",
5
- "scripts": {
6
- "start": "dumi dev",
7
- "docs:build": "dumi build",
8
- "docs:deploy": "gh-pages -d docs-dist",
9
- "build": "father-build",
10
- "deploy": "npm run docs:build && npm run docs:deploy",
11
- "release": "npm run build && npm publish",
12
- "prettier": "prettier --write \"**/*.{js,jsx,tsx,ts,less,md,json}\"",
13
- "test": "umi-test",
14
- "test:coverage": "umi-test --coverage",
15
- "prepublishOnly": "npm run build"
16
- },
17
- "main": "es",
18
- "module": "es",
19
- "types": "es/index.d.ts",
20
- "gitHooks": {
21
- "pre-commit": "lint-staged"
22
- },
23
- "lint-staged": {
24
- "*.{js,jsx,less,md,json}": [
25
- "prettier --write"
26
- ],
27
- "*.ts?(x)": [
28
- "prettier --parser=typescript --write"
29
- ]
30
- },
31
- "files": [
32
- "/es"
33
- ],
34
- "dependencies": {
35
- "@antv/x6": "^1.32.2",
36
- "@antv/x6-react-shape": "^1.6.0",
37
- "@babel/helper-create-regexp-features-plugin": "^7.12.13",
38
- "@babel/runtime": "^7.11.2",
39
- "@popperjs/core": "^2.4.4",
40
- "@types/markdown-navbar": "^1.4.0",
41
- "ahooks": "^3.4.0",
42
- "axios": "^0.21.4",
43
- "babel-plugin-import": "^1.13.3",
44
- "babel-plugin-transform-remove-console": "^6.9.4",
45
- "bl": "^5.0.0",
46
- "codemirror": "^5.63.0",
47
- "codepage": "^1.15.0",
48
- "github-markdown-css": "^5.1.0",
49
- "immer": "^9.0.14",
50
- "lodash": "^4.17.21",
51
- "markdown-navbar": "^1.4.3",
52
- "qs": "^6.10.1",
53
- "react": "^17.0.2",
54
- "react-dnd": "^11.1.3",
55
- "react-dnd-html5-backend": "^11.1.3",
56
- "react-jexcel": "^1.0.2",
57
- "react-markdown": "^8.0.3",
58
- "react-markdown-editor-lite": "^1.3.2",
59
- "react-popper": "^2.2.3",
60
- "react-syntax-highlighter": "^15.5.0",
61
- "rehype-raw": "^6.1.1",
62
- "remark-gfm": "^3.0.1",
63
- "rxjs": "^7.5.4",
64
- "xlsx": "^0.18.5"
65
- },
66
- "peerDependencies": {
67
- "antd": ">=4.1.5",
68
- "react": ">=16.14.0",
69
- "react-dom": ">=16.14.0",
70
- "react-router": ">=5.0.0",
71
- "styled-components": ">=4.1.1"
72
- },
73
- "devDependencies": {
74
- "@types/react": "^17.0.2",
75
- "@types/react-dom": "^17.0.2",
76
- "@types/react-router": "^5.1.8",
77
- "@types/react-window": "^1.8.2",
78
- "@types/styled-components": "^5.1.2",
79
- "@umijs/test": "^3.0.5",
80
- "antd": "^4.18.1",
81
- "babel-loader": "^8.1.0",
82
- "copy-to-clipboard": "^3.3.1",
83
- "css-loader": "^4.2.2",
84
- "dumi": "^1.0.16",
85
- "father-build": "^1.17.2",
86
- "gh-pages": "^3.0.0",
87
- "less-loader": "^7.0.0",
88
- "lint-staged": "^10.0.7",
89
- "prettier": "^2.2.1",
90
- "style-loader": "^1.2.1",
91
- "webpack-cli": "^3.3.12",
92
- "yorkie": "^2.0.0"
93
- }
94
- }
1
+ {
2
+ "public": true,
3
+ "name": "ronds-metadata",
4
+ "version": "1.1.77",
5
+ "scripts": {
6
+ "start": "dumi dev",
7
+ "docs:build": "dumi build",
8
+ "docs:deploy": "gh-pages -d docs-dist",
9
+ "build": "father-build",
10
+ "deploy": "npm run docs:build && npm run docs:deploy",
11
+ "release": "npm run build && npm publish",
12
+ "prettier": "prettier --write \"**/*.{js,jsx,tsx,ts,less,md,json}\"",
13
+ "test": "umi-test",
14
+ "test:coverage": "umi-test --coverage",
15
+ "prepublishOnly": "npm run build"
16
+ },
17
+ "main": "es",
18
+ "module": "es",
19
+ "types": "es/index.d.ts",
20
+ "gitHooks": {
21
+ "pre-commit": "lint-staged"
22
+ },
23
+ "lint-staged": {
24
+ "*.{js,jsx,less,md,json}": [
25
+ "prettier --write"
26
+ ],
27
+ "*.ts?(x)": [
28
+ "prettier --parser=typescript --write"
29
+ ]
30
+ },
31
+ "files": [
32
+ "/es"
33
+ ],
34
+ "dependencies": {
35
+ "@antv/x6": "^1.32.2",
36
+ "@antv/x6-react-shape": "^1.6.0",
37
+ "@babel/helper-create-regexp-features-plugin": "^7.12.13",
38
+ "@babel/runtime": "^7.11.2",
39
+ "@popperjs/core": "^2.4.4",
40
+ "@types/markdown-navbar": "^1.4.0",
41
+ "ahooks": "^3.4.0",
42
+ "axios": "^0.21.4",
43
+ "babel-plugin-import": "^1.13.3",
44
+ "babel-plugin-transform-remove-console": "^6.9.4",
45
+ "bl": "^5.0.0",
46
+ "codemirror": "^5.63.0",
47
+ "codepage": "^1.15.0",
48
+ "github-markdown-css": "^5.1.0",
49
+ "immer": "^9.0.14",
50
+ "lodash": "^4.17.21",
51
+ "markdown-navbar": "^1.4.3",
52
+ "qs": "^6.10.1",
53
+ "react": "^17.0.2",
54
+ "react-dnd": "^11.1.3",
55
+ "react-dnd-html5-backend": "^11.1.3",
56
+ "react-jexcel": "^1.0.2",
57
+ "react-markdown": "^8.0.3",
58
+ "react-markdown-editor-lite": "^1.3.2",
59
+ "react-popper": "^2.2.3",
60
+ "react-syntax-highlighter": "^15.5.0",
61
+ "rehype-raw": "^6.1.1",
62
+ "remark-gfm": "^3.0.1",
63
+ "rxjs": "^7.5.4",
64
+ "xlsx": "^0.18.5"
65
+ },
66
+ "peerDependencies": {
67
+ "antd": ">=4.1.5",
68
+ "react": ">=16.14.0",
69
+ "react-dom": ">=16.14.0",
70
+ "react-router": ">=5.0.0",
71
+ "styled-components": ">=4.1.1"
72
+ },
73
+ "devDependencies": {
74
+ "@types/react": "^17.0.2",
75
+ "@types/react-dom": "^17.0.2",
76
+ "@types/react-router": "^5.1.8",
77
+ "@types/react-window": "^1.8.2",
78
+ "@types/styled-components": "^5.1.2",
79
+ "@umijs/test": "^3.0.5",
80
+ "antd": "^4.18.1",
81
+ "babel-loader": "^8.1.0",
82
+ "copy-to-clipboard": "^3.3.1",
83
+ "css-loader": "^4.2.2",
84
+ "dumi": "^1.0.16",
85
+ "father-build": "^1.17.2",
86
+ "gh-pages": "^3.0.0",
87
+ "less-loader": "^7.0.0",
88
+ "lint-staged": "^10.0.7",
89
+ "prettier": "^2.2.1",
90
+ "style-loader": "^1.2.1",
91
+ "webpack-cli": "^3.3.12",
92
+ "yorkie": "^2.0.0"
93
+ }
94
+ }