ronds-metadata 1.1.14 → 1.1.17

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.
@@ -17,14 +17,16 @@ var EditableAction = function EditableAction(props) {
17
17
  editableStream = _ref.editableStream,
18
18
  editConfig = _ref.editConfig;
19
19
 
20
- var onEdit = function onEdit() {
20
+ var onEdit = function onEdit(e) {
21
+ e.stopPropagation();
21
22
  editableStream.next({
22
23
  type: 'editRowKey',
23
24
  payload: record
24
25
  });
25
26
  };
26
27
 
27
- var onCancel = function onCancel() {
28
+ var onCancel = function onCancel(e) {
29
+ e.stopPropagation();
28
30
  editableStream.next({
29
31
  type: 'editRowKey',
30
32
  payload: {
@@ -33,7 +35,8 @@ var EditableAction = function EditableAction(props) {
33
35
  });
34
36
  };
35
37
 
36
- var onSave = function onSave() {
38
+ var onSave = function onSave(e) {
39
+ e.stopPropagation();
37
40
  editableStream.next({
38
41
  type: 'onSingleSave',
39
42
  payload: record
@@ -47,7 +50,8 @@ var EditableAction = function EditableAction(props) {
47
50
  });
48
51
  };
49
52
 
50
- var onDelete = function onDelete() {
53
+ var onDelete = function onDelete(e) {
54
+ e.stopPropagation();
51
55
  editableStream.next({
52
56
  type: 'onDelete',
53
57
  payload: record
@@ -35,6 +35,15 @@ var EditableRow = function EditableRow(props) {
35
35
  }
36
36
  };
37
37
 
38
+ var onRowClick = function onRowClick() {
39
+ editableStream.next({
40
+ type: 'onRowClick',
41
+ payload: {
42
+ record: record
43
+ }
44
+ });
45
+ };
46
+
38
47
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Form, {
39
48
  name: "editable_".concat(record === null || record === void 0 ? void 0 : record._rowKey_, "_"),
40
49
  form: form,
@@ -42,10 +51,11 @@ var EditableRow = function EditableRow(props) {
42
51
  onValuesChange: onValuesChange,
43
52
  component: false
44
53
  }, /*#__PURE__*/React.createElement("tr", _extends({}, props, {
45
- className: "".concat(className, " ").concat(index % 2 === 0 ? 'ant-table-row--even' : 'ant-table-row--odd'),
54
+ className: "".concat(index % 2 === 0 || props['data-row-key'] ? 'ant-table-row--even' : 'ant-table-row--odd', " ").concat(className, " "),
46
55
  style: {
47
56
  height: '30px'
48
- }
57
+ },
58
+ onClick: onRowClick
49
59
  }))));
50
60
  };
51
61
 
@@ -37,6 +37,10 @@ interface IEditableProps<R = any> {
37
37
  * antd自身的属性
38
38
  */
39
39
  tableProps?: TableProps<R>;
40
+ /**
41
+ * 每行确认回调函数
42
+ */
43
+ onRowClick?: (record: any) => void;
40
44
  /**
41
45
  * 每行确认回调函数
42
46
  */
@@ -33,6 +33,7 @@ var Editable = function Editable(props) {
33
33
  _props$isAddColumn = props.isAddColumn,
34
34
  isAddColumn = _props$isAddColumn === void 0 ? false : _props$isAddColumn,
35
35
  tableProps = props.tableProps,
36
+ onRowClick = props.onRowClick,
36
37
  onRowConfirm = props.onRowConfirm,
37
38
  onRowDelete = props.onRowDelete,
38
39
  onMulChange = props.onMulChange,
@@ -120,6 +121,10 @@ var Editable = function Editable(props) {
120
121
  setEditHeardCellkey(data.payload);
121
122
  break;
122
123
 
124
+ case 'onRowClick':
125
+ onRowClick && onRowClick(data.payload);
126
+ break;
127
+
123
128
  case 'onSingleSave':
124
129
  if (lastValueRef.current && lastValueRef.current.rowIdx === data.payload._rowKey_) {
125
130
  onRowConfirm && onRowConfirm({
@@ -0,0 +1,8 @@
1
+ export default function useSyncScroll({ vertical, horizontal }: {
2
+ vertical: any;
3
+ horizontal: any;
4
+ }): (ref: any) => number;
5
+ export declare function useSyncScrollByRefs(refsRef: any, { vertical, horizontal }: {
6
+ vertical: any;
7
+ horizontal: any;
8
+ }): boolean;
@@ -0,0 +1,106 @@
1
+ /*
2
+ * @Author: wangxian
3
+ * @Date: 2022-06-24 08:44:41
4
+ * @LastEditTime: 2022-06-24 10:39:43
5
+ */
6
+ import React from 'react';
7
+
8
+ function syncScroll(target, others, TopLeft, WidthHeight) {
9
+ var percentage = target["scroll".concat(TopLeft)] / (target["scroll".concat(WidthHeight)] - target["offset".concat(WidthHeight)]);
10
+ window.requestAnimationFrame(function () {
11
+ others.forEach(function (el) {
12
+ el["scroll".concat(TopLeft)] = Math.round(percentage * (el["scroll".concat(WidthHeight)] - el["offset".concat(WidthHeight)]));
13
+ });
14
+ });
15
+ }
16
+
17
+ function syncVerticalScroll(target, others) {
18
+ syncScroll(target, others, 'Top', 'Height');
19
+ }
20
+
21
+ function syncHorizontalScroll(target, others) {
22
+ syncScroll(target, others, 'Left', 'Width');
23
+ }
24
+
25
+ export default function useSyncScroll(_ref) {
26
+ var vertical = _ref.vertical,
27
+ horizontal = _ref.horizontal;
28
+ var refsRef = React.useRef([]);
29
+ var locksRef = React.useRef(0);
30
+ React.useEffect(function () {
31
+ if (refsRef.current.length < 2) return function () {};
32
+
33
+ function handleScroll(_ref2) {
34
+ var target = _ref2.target;
35
+
36
+ if (locksRef.current > 0) {
37
+ locksRef.current -= 1; // Release lock by 1
38
+
39
+ return;
40
+ }
41
+
42
+ locksRef.current = refsRef.current.length - 1; // Acquire lock
43
+
44
+ var others = refsRef.current.filter(function (ref) {
45
+ return ref !== target;
46
+ });
47
+ if (vertical) syncVerticalScroll(target, others);
48
+ if (horizontal) syncHorizontalScroll(target, others);
49
+ }
50
+
51
+ var elements = refsRef.current;
52
+ elements.forEach(function (el) {
53
+ return el.addEventListener('scroll', handleScroll);
54
+ });
55
+ return function () {
56
+ elements.forEach(function (el) {
57
+ return el.removeEventListener('scroll', handleScroll);
58
+ });
59
+ };
60
+ }, [refsRef, vertical, horizontal, locksRef]);
61
+ return function (ref) {
62
+ return refsRef.current.push(ref);
63
+ };
64
+ }
65
+ export function useSyncScrollByRefs(refsRef, _ref3) {
66
+ var vertical = _ref3.vertical,
67
+ horizontal = _ref3.horizontal;
68
+ var refsRefOk = refsRef && refsRef.current && refsRef.current.length > 1;
69
+ var locksRef = React.useRef(0);
70
+ React.useEffect(function () {
71
+ if (!refsRefOk) return function () {};
72
+
73
+ function handleScroll(_ref4) {
74
+ var target = _ref4.target;
75
+
76
+ if (locksRef.current > 0) {
77
+ locksRef.current -= 1; // Release lock by 1
78
+
79
+ return;
80
+ }
81
+
82
+ locksRef.current = refsRef.current.length - 1; // Acquire lock
83
+
84
+ var others = refsRef.current.reduce(function (result, ref) {
85
+ if (ref.current && ref.current !== target) result.push(ref.current);
86
+ return result;
87
+ }, []);
88
+ if (vertical) syncVerticalScroll(target, others);
89
+ if (horizontal) syncHorizontalScroll(target, others);
90
+ }
91
+
92
+ var elements = refsRef.current.reduce(function (result, ref) {
93
+ if (ref.current) result.push(ref.current);
94
+ return result;
95
+ }, []);
96
+ elements.forEach(function (el) {
97
+ return el.addEventListener('scroll', handleScroll);
98
+ });
99
+ return function () {
100
+ elements.forEach(function (el) {
101
+ return el.removeEventListener('scroll', handleScroll);
102
+ });
103
+ };
104
+ }, [refsRef, refsRefOk, vertical, horizontal, locksRef]);
105
+ return refsRefOk;
106
+ }
package/es/index.d.ts CHANGED
@@ -14,5 +14,6 @@ export * from './framework/metadata/index';
14
14
  export { default as http, addInterceptor } from './framework/http/index';
15
15
  export { default as useMemoSubject } from './framework/rxjs-hooks/useMemoSubject';
16
16
  export { default as useObservable } from './framework/rxjs-hooks/useObservable';
17
+ export { default as useSyncScroll, useSyncScrollByRefs } from './framework/hooks/use-sync-scroll';
17
18
  export { registerMetadataAPI } from './framework/metadata/MetadataService';
18
19
  export { globalSettingStream } from './config';
package/es/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * @Author:wangxian
3
3
  * @Date: 2021-09-18 14:15:04
4
- * @LastEditTime: 2022-05-28 11:18:17
4
+ * @LastEditTime: 2022-06-24 10:28:22
5
5
  */
6
6
  import './theme.less';
7
7
  export { default as MetadataEdit } from './comps/MetadataEdit';
@@ -19,5 +19,6 @@ export * from './framework/metadata/index';
19
19
  export { default as http, addInterceptor } from './framework/http/index';
20
20
  export { default as useMemoSubject } from './framework/rxjs-hooks/useMemoSubject';
21
21
  export { default as useObservable } from './framework/rxjs-hooks/useObservable';
22
+ export { default as useSyncScroll, useSyncScrollByRefs } from './framework/hooks/use-sync-scroll';
22
23
  export { registerMetadataAPI } from './framework/metadata/MetadataService';
23
24
  export { globalSettingStream } from './config';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "public": true,
3
3
  "name": "ronds-metadata",
4
- "version": "1.1.14",
4
+ "version": "1.1.17",
5
5
  "scripts": {
6
6
  "start": "dumi dev",
7
7
  "docs:build": "dumi build",