@zhenliang/sheet 0.1.7-3.beta.8 → 0.1.7-4.beta.1
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.
- package/dist/core/reducers/sideEffectReducer.js +5 -5
- package/dist/core/sheet/Remark.js +2 -2
- package/dist/core/sheet/index.js +10 -0
- package/dist/core/sheet/index.less +2 -0
- package/dist/core/sheet/useMouseEvent.js +4 -2
- package/dist/core/sheet/useRemarkContainer.js +30 -7
- package/dist/core/table/index.js +24 -15
- package/dist/type/sheet.d.ts +4 -2
- package/dist/type/sheetTable.d.ts +2 -1
- package/package.json +2 -2
|
@@ -35,7 +35,7 @@ export var sideEffectReducer = {
|
|
|
35
35
|
cell: cell
|
|
36
36
|
}
|
|
37
37
|
});
|
|
38
|
-
cellChangeHandler && cellChangeHandler([cell]);
|
|
38
|
+
cellChangeHandler && cellChangeHandler([cell], undefined, 'Edit');
|
|
39
39
|
});
|
|
40
40
|
});
|
|
41
41
|
eventBus.on('cell-create', function (_ref) {
|
|
@@ -307,7 +307,7 @@ export var sideEffectReducer = {
|
|
|
307
307
|
}
|
|
308
308
|
}
|
|
309
309
|
});
|
|
310
|
-
cellChangeHandler && cellChangeHandler(legalChanges, freePaste ? legalExtChanges : []);
|
|
310
|
+
cellChangeHandler && cellChangeHandler(legalChanges, freePaste ? legalExtChanges : [], 'Paste');
|
|
311
311
|
case 18:
|
|
312
312
|
case "end":
|
|
313
313
|
return _context.stop();
|
|
@@ -364,7 +364,7 @@ export var sideEffectReducer = {
|
|
|
364
364
|
history: newHistory
|
|
365
365
|
}
|
|
366
366
|
});
|
|
367
|
-
cellChangeHandler && cellChangeHandler(changes);
|
|
367
|
+
cellChangeHandler && cellChangeHandler(changes, undefined, 'Delete');
|
|
368
368
|
},
|
|
369
369
|
reverse: function reverse(dispatch, getState) {
|
|
370
370
|
var _getState10 = getState(),
|
|
@@ -391,7 +391,7 @@ export var sideEffectReducer = {
|
|
|
391
391
|
});
|
|
392
392
|
return;
|
|
393
393
|
}
|
|
394
|
-
cellChangeHandler && cellChangeHandler(change.changes);
|
|
394
|
+
cellChangeHandler && cellChangeHandler(change.changes, undefined, 'Reverse');
|
|
395
395
|
var recoverChange = _objectSpread(_objectSpread({}, change), {}, {
|
|
396
396
|
changes: change.changes.map(function (item) {
|
|
397
397
|
var _item$row, _item$col;
|
|
@@ -448,7 +448,7 @@ export var sideEffectReducer = {
|
|
|
448
448
|
});
|
|
449
449
|
})
|
|
450
450
|
});
|
|
451
|
-
cellChangeHandler && cellChangeHandler(change.changes);
|
|
451
|
+
cellChangeHandler && cellChangeHandler(change.changes, undefined, 'Recover');
|
|
452
452
|
dispatch({
|
|
453
453
|
type: 'changes',
|
|
454
454
|
payload: {
|
|
@@ -8,9 +8,9 @@ export var Remark = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
8
8
|
var rightOverflow = document.body.clientWidth - position.left < 400;
|
|
9
9
|
var bottomOverflow = document.body.clientHeight - position.top < 400;
|
|
10
10
|
if (rightOverflow && bottomOverflow) {
|
|
11
|
-
return "translate(-100
|
|
11
|
+
return "translate(calc(-100% - 4px), calc(-100% - 4px))";
|
|
12
12
|
} else if (rightOverflow && !bottomOverflow) {
|
|
13
|
-
return "translate(-100
|
|
13
|
+
return "translate(calc(-100% - 4px), 44px)";
|
|
14
14
|
} else if (!rightOverflow && bottomOverflow) {
|
|
15
15
|
return "translate(0, calc(40px - 100%))";
|
|
16
16
|
}
|
package/dist/core/sheet/index.js
CHANGED
|
@@ -201,6 +201,16 @@ var Sheet = function Sheet(props) {
|
|
|
201
201
|
}
|
|
202
202
|
});
|
|
203
203
|
return history !== null && history !== void 0 ? history : [];
|
|
204
|
+
},
|
|
205
|
+
call: function call(caller) {
|
|
206
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
207
|
+
args[_key - 1] = arguments[_key];
|
|
208
|
+
}
|
|
209
|
+
return dispatch(function (d, getState) {
|
|
210
|
+
var _getState3 = getState(),
|
|
211
|
+
data = _getState3.data;
|
|
212
|
+
caller === null || caller === void 0 || caller.apply(void 0, args.concat([data]));
|
|
213
|
+
});
|
|
204
214
|
}
|
|
205
215
|
};
|
|
206
216
|
}, [state.history]);
|
|
@@ -386,9 +386,11 @@ span.harvest-sheet-container:focus {
|
|
|
386
386
|
z-index: 10;
|
|
387
387
|
margin-left: 5px;
|
|
388
388
|
overflow: auto;
|
|
389
|
+
scroll-behavior: smooth;
|
|
389
390
|
padding: 0;
|
|
390
391
|
background: rgb(255,255,255);
|
|
391
392
|
box-shadow: 0 4px 8px rgba(216,223,235,.5);
|
|
393
|
+
transition: top .1s linear,left .1s linear,transform .05s linear;
|
|
392
394
|
}
|
|
393
395
|
.harvest-remark-container::-webkit-scrollbar{
|
|
394
396
|
display: none;
|
|
@@ -188,7 +188,9 @@ export var useMouseEvent = function useMouseEvent(dispatch, elementRef) {
|
|
|
188
188
|
});
|
|
189
189
|
}, []);
|
|
190
190
|
var mouseUp = useCallback(function (e) {
|
|
191
|
-
|
|
191
|
+
// input select 问题
|
|
192
|
+
// e.preventDefault();
|
|
193
|
+
|
|
192
194
|
resetInterval();
|
|
193
195
|
var currentCell = findParentTd(e.target);
|
|
194
196
|
if (!currentCell || currentCell.classList.contains('fixed')) {
|
|
@@ -287,7 +289,7 @@ export var useMouseEvent = function useMouseEvent(dispatch, elementRef) {
|
|
|
287
289
|
}, []);
|
|
288
290
|
useEffect(function () {
|
|
289
291
|
if (elementRef.current) {
|
|
290
|
-
if (navigator.appVersion.indexOf(
|
|
292
|
+
if (navigator.appVersion.indexOf('Mac') !== -1) {
|
|
291
293
|
elementRef.current.style.setProperty('--arrow-down', 'var(--arrow-mac-down)');
|
|
292
294
|
elementRef.current.style.setProperty('--arrow-right', 'var(--arrow-mac-right)');
|
|
293
295
|
}
|
|
@@ -62,21 +62,44 @@ export var useRemarkContainer = function useRemarkContainer(elementRef, start, e
|
|
|
62
62
|
}, [showRemark, editing]);
|
|
63
63
|
useEffect(function () {
|
|
64
64
|
var _elementRef$current, _elementRef$current2;
|
|
65
|
-
var
|
|
66
|
-
setRemarkInfo({
|
|
67
|
-
show: false
|
|
68
|
-
});
|
|
69
|
-
}, 50);
|
|
65
|
+
var scrollTimer;
|
|
70
66
|
var remarkScrollEnd = function remarkScrollEnd() {
|
|
71
67
|
var position = calcPosition();
|
|
72
68
|
if (!position) {
|
|
73
69
|
return;
|
|
74
70
|
}
|
|
71
|
+
// end called
|
|
72
|
+
if (scrollTimer) {
|
|
73
|
+
clearTimeout(scrollTimer);
|
|
74
|
+
}
|
|
75
75
|
setRemarkInfo({
|
|
76
76
|
position: position,
|
|
77
77
|
show: position.visible && showRemark && !editing && position.left > 0 && position.top > 0
|
|
78
78
|
});
|
|
79
79
|
};
|
|
80
|
+
var remarkScroll = throttle(function () {
|
|
81
|
+
var _ref = elementRef.current || {},
|
|
82
|
+
_ref$scrollTop = _ref.scrollTop,
|
|
83
|
+
scrollTop = _ref$scrollTop === void 0 ? 0 : _ref$scrollTop,
|
|
84
|
+
_ref$scrollHeight = _ref.scrollHeight,
|
|
85
|
+
scrollHeight = _ref$scrollHeight === void 0 ? 0 : _ref$scrollHeight,
|
|
86
|
+
_ref$clientHeight = _ref.clientHeight,
|
|
87
|
+
clientHeight = _ref$clientHeight === void 0 ? 0 : _ref$clientHeight;
|
|
88
|
+
// 滚动条抖动导致的
|
|
89
|
+
if (Math.abs(clientHeight + scrollTop - scrollHeight) <= 1) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
setRemarkInfo({
|
|
93
|
+
show: false
|
|
94
|
+
});
|
|
95
|
+
if (scrollTimer) {
|
|
96
|
+
clearTimeout(scrollTimer);
|
|
97
|
+
}
|
|
98
|
+
scrollTimer = setTimeout(function () {
|
|
99
|
+
remarkScrollEnd();
|
|
100
|
+
clearTimeout(scrollTimer);
|
|
101
|
+
}, 100);
|
|
102
|
+
}, 50);
|
|
80
103
|
(_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 || _elementRef$current.addEventListener('scroll', remarkScroll);
|
|
81
104
|
(_elementRef$current2 = elementRef.current) === null || _elementRef$current2 === void 0 || _elementRef$current2.addEventListener('scrollend', remarkScrollEnd);
|
|
82
105
|
return function () {
|
|
@@ -96,13 +119,13 @@ export var useRemarkContainer = function useRemarkContainer(elementRef, start, e
|
|
|
96
119
|
}
|
|
97
120
|
var io = new IntersectionObserver(function (entries) {
|
|
98
121
|
var ratio = entries[0].intersectionRatio;
|
|
99
|
-
if (ratio <
|
|
122
|
+
if (ratio < 0.5) {
|
|
100
123
|
setRemarkInfo({
|
|
101
124
|
show: false
|
|
102
125
|
});
|
|
103
126
|
}
|
|
104
127
|
}, {
|
|
105
|
-
threshold:
|
|
128
|
+
threshold: 0.5
|
|
106
129
|
});
|
|
107
130
|
io.observe(cell);
|
|
108
131
|
return function () {
|
package/dist/core/table/index.js
CHANGED
|
@@ -69,14 +69,14 @@ var Table = function Table(_ref) {
|
|
|
69
69
|
useImperativeHandle(sheetRef, function () {
|
|
70
70
|
return new Proxy({}, {
|
|
71
71
|
get: function get(target, property) {
|
|
72
|
-
var _sheetInstance$
|
|
72
|
+
var _sheetInstance$curren4;
|
|
73
73
|
if (property === 'goToByTable') {
|
|
74
|
-
|
|
75
|
-
var _sheetInstance$curren, _sheetInstance$curren2;
|
|
76
|
-
var toCol =
|
|
77
|
-
return
|
|
78
|
-
})
|
|
79
|
-
var toRow =
|
|
74
|
+
var goToByTable = function goToByTable(id, columnKey, currentData) {
|
|
75
|
+
var _currentData$, _sheetInstance$curren, _sheetInstance$curren2;
|
|
76
|
+
var toCol = currentData === null || currentData === void 0 || (_currentData$ = currentData[0]) === null || _currentData$ === void 0 ? void 0 : _currentData$.findIndex(function (d) {
|
|
77
|
+
return d.dataIndex === columnKey;
|
|
78
|
+
});
|
|
79
|
+
var toRow = currentData.findIndex(function (d) {
|
|
80
80
|
return String(d === null || d === void 0 ? void 0 : d[0].id) === String(id);
|
|
81
81
|
});
|
|
82
82
|
(_sheetInstance$curren = sheetInstance.current) === null || _sheetInstance$curren === void 0 || _sheetInstance$curren.goTo(toRow, toCol);
|
|
@@ -91,11 +91,18 @@ var Table = function Table(_ref) {
|
|
|
91
91
|
}
|
|
92
92
|
});
|
|
93
93
|
};
|
|
94
|
+
return function () {
|
|
95
|
+
var _sheetInstance$curren3;
|
|
96
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
97
|
+
args[_key] = arguments[_key];
|
|
98
|
+
}
|
|
99
|
+
(_sheetInstance$curren3 = sheetInstance.current) === null || _sheetInstance$curren3 === void 0 || _sheetInstance$curren3.call.apply(_sheetInstance$curren3, [goToByTable].concat(args));
|
|
100
|
+
};
|
|
94
101
|
}
|
|
95
|
-
return (_sheetInstance$
|
|
102
|
+
return (_sheetInstance$curren4 = sheetInstance.current) === null || _sheetInstance$curren4 === void 0 ? void 0 : _sheetInstance$curren4[property];
|
|
96
103
|
}
|
|
97
104
|
});
|
|
98
|
-
}, [columns,
|
|
105
|
+
}, [columns, dataSource, offset]);
|
|
99
106
|
var _useRowSelection = useRowSelection(dataSource, rowSelection, hasChildren),
|
|
100
107
|
_useRowSelection2 = _slicedToArray(_useRowSelection, 2),
|
|
101
108
|
checkedRow = _useRowSelection2[0],
|
|
@@ -133,7 +140,7 @@ var Table = function Table(_ref) {
|
|
|
133
140
|
setData([[]]);
|
|
134
141
|
}
|
|
135
142
|
}, [dataSource, columns]);
|
|
136
|
-
var handleChanges = useCallback(function (changes, extChange) {
|
|
143
|
+
var handleChanges = useCallback(function (changes, extChange, type) {
|
|
137
144
|
if (freeze) return;
|
|
138
145
|
onChange && onChange(changes.map(function (item) {
|
|
139
146
|
return {
|
|
@@ -151,7 +158,7 @@ var Table = function Table(_ref) {
|
|
|
151
158
|
key: item.key || columns[item.col - offset].dataIndex,
|
|
152
159
|
value: item.value
|
|
153
160
|
};
|
|
154
|
-
}));
|
|
161
|
+
}), type);
|
|
155
162
|
}, [columns, onChange, hasControl, freeze]);
|
|
156
163
|
var handleReverse = useCallback(function (value) {
|
|
157
164
|
var _ref2 = value,
|
|
@@ -260,7 +267,7 @@ var Table = function Table(_ref) {
|
|
|
260
267
|
if (!menuRenderer) {
|
|
261
268
|
if (showRemark) {
|
|
262
269
|
return function (props) {
|
|
263
|
-
var _data$row3;
|
|
270
|
+
var _data$row3, _target$record, _target$record$includ;
|
|
264
271
|
var cell = props.cell;
|
|
265
272
|
var _ref5 = cell !== null && cell !== void 0 ? cell : {},
|
|
266
273
|
_ref5$col = _ref5.col,
|
|
@@ -268,7 +275,8 @@ var Table = function Table(_ref) {
|
|
|
268
275
|
_ref5$row = _ref5.row,
|
|
269
276
|
row = _ref5$row === void 0 ? -1 : _ref5$row;
|
|
270
277
|
var target = data === null || data === void 0 || (_data$row3 = data[row]) === null || _data$row3 === void 0 ? void 0 : _data$row3[col + 1];
|
|
271
|
-
|
|
278
|
+
var cellHasRemark = (_target$record = target.record) === null || _target$record === void 0 || (_target$record = _target$record.remarks) === null || _target$record === void 0 || (_target$record$includ = _target$record.includes) === null || _target$record$includ === void 0 ? void 0 : _target$record$includ.call(_target$record, target.dataIndex);
|
|
279
|
+
if ((target === null || target === void 0 ? void 0 : target.readonly) !== true && !target.fixed && !cellHasRemark) {
|
|
272
280
|
return /*#__PURE__*/_jsx("div", {
|
|
273
281
|
className: "harvest-menu",
|
|
274
282
|
style: _objectSpread({}, props.position),
|
|
@@ -281,7 +289,7 @@ var Table = function Table(_ref) {
|
|
|
281
289
|
return undefined;
|
|
282
290
|
} else {
|
|
283
291
|
return function (props) {
|
|
284
|
-
var _data$row4;
|
|
292
|
+
var _data$row4, _target$record2, _target$record2$inclu;
|
|
285
293
|
var cell = props.cell;
|
|
286
294
|
var _ref6 = cell !== null && cell !== void 0 ? cell : {},
|
|
287
295
|
_ref6$col = _ref6.col,
|
|
@@ -290,7 +298,8 @@ var Table = function Table(_ref) {
|
|
|
290
298
|
row = _ref6$row === void 0 ? -1 : _ref6$row;
|
|
291
299
|
var target = data === null || data === void 0 || (_data$row4 = data[row]) === null || _data$row4 === void 0 ? void 0 : _data$row4[col + 1];
|
|
292
300
|
var MenuFC = menuRenderer;
|
|
293
|
-
|
|
301
|
+
var cellHasRemark = (_target$record2 = target.record) === null || _target$record2 === void 0 || (_target$record2 = _target$record2.remarks) === null || _target$record2 === void 0 || (_target$record2$inclu = _target$record2.includes) === null || _target$record2$inclu === void 0 ? void 0 : _target$record2$inclu.call(_target$record2, target.dataIndex);
|
|
302
|
+
if (showRemark && (target === null || target === void 0 ? void 0 : target.readonly) !== true && !target.fixed && !cellHasRemark) {
|
|
294
303
|
return /*#__PURE__*/_jsx(MenuFC, _objectSpread(_objectSpread({}, props), {}, {
|
|
295
304
|
target: target,
|
|
296
305
|
children: remarkMenu
|
package/dist/type/sheet.d.ts
CHANGED
|
@@ -69,8 +69,9 @@ export type CellData = {
|
|
|
69
69
|
key?: string;
|
|
70
70
|
value?: string;
|
|
71
71
|
};
|
|
72
|
+
export type ChangeType = 'Edit' | 'Paste' | 'Delete' | 'Reverse' | 'Recover';
|
|
72
73
|
export type CellNavigable = (cell?: Cell, row?: number, col?: number) => boolean;
|
|
73
|
-
export type CellChangeHandler = (cells: CellData[], additions
|
|
74
|
+
export type CellChangeHandler = (cells: CellData[], additions: CellData[] | undefined, type: ChangeType) => void;
|
|
74
75
|
export type RowGroup = {
|
|
75
76
|
groupName: string;
|
|
76
77
|
groupStart: number;
|
|
@@ -106,6 +107,7 @@ export type SheetInstance = {
|
|
|
106
107
|
}) => void;
|
|
107
108
|
popHistory: () => OperateHistory;
|
|
108
109
|
dropHistory: () => OperateHistory[];
|
|
110
|
+
call: (caller: (...args: any) => void, ...args: any) => void;
|
|
109
111
|
};
|
|
110
112
|
export type SheetProps = {
|
|
111
113
|
sheetInstance?: React.MutableRefObject<SheetInstance | null>;
|
|
@@ -232,7 +234,7 @@ export type UpdateStateType = {
|
|
|
232
234
|
lastEditing: CellPosition & {
|
|
233
235
|
confirm?: boolean;
|
|
234
236
|
};
|
|
235
|
-
cellChangeHandler: (cells: CellData[], additions
|
|
237
|
+
cellChangeHandler: (cells: CellData[], additions: CellData[] | undefined, type: ChangeType) => void;
|
|
236
238
|
fixedInfo: SheetType.FixedInfo[];
|
|
237
239
|
} & SearchState;
|
|
238
240
|
export type UpdateFocus = (start: CellPosition, end: CellPosition) => void;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CSSProperties, ReactNode } from 'react';
|
|
2
2
|
import { SheetType } from '.';
|
|
3
|
+
import { ChangeType } from './sheet';
|
|
3
4
|
export type refAssertion = {
|
|
4
5
|
contains?: (target: EventTarget | null) => boolean;
|
|
5
6
|
focus?: () => boolean;
|
|
@@ -100,7 +101,7 @@ export type TableProps = {
|
|
|
100
101
|
groupConfig?: TableGroupConfig;
|
|
101
102
|
menuRenderer?: React.FC<SheetType.MenuRenderProps>;
|
|
102
103
|
onContextMenu?: (event: any) => void;
|
|
103
|
-
onChange: (changes: TableChange[], extChanges
|
|
104
|
+
onChange: (changes: TableChange[], extChanges: TableChange[] | undefined, type: ChangeType) => void;
|
|
104
105
|
handleAdd?: () => void;
|
|
105
106
|
handleBatchAdd?: (value: number) => void;
|
|
106
107
|
eventHandler?: Record<'reverse' | 'btn-click' | 'cell-edit' | 'cell-switch' | string, undefined | EventHandler>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhenliang/sheet",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.74.beta.1",
|
|
4
4
|
"description": "A react library developed with dumi",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -85,4 +85,4 @@
|
|
|
85
85
|
"fizz.zhou@ap.jll.com"
|
|
86
86
|
],
|
|
87
87
|
"preid": "beta"
|
|
88
|
-
}
|
|
88
|
+
}
|