@zhenliang/sheet 0.1.7-3.beta.2 → 0.1.7-3.beta.4

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.
@@ -71,7 +71,8 @@ export var keyboardReducer = {
71
71
  end = state.end,
72
72
  editing = state.editing,
73
73
  data = state.data;
74
- if (!start || !end || data !== null && data !== void 0 && (_data$start$row = data[start.row]) !== null && _data$start$row !== void 0 && _data$start$row[start.col].readonly || !(data !== null && data !== void 0 && (_data$start$row2 = data[start.row]) !== null && _data$start$row2 !== void 0 && _data$start$row2[start.col].editable)) {
74
+ var freeze = state.freeze;
75
+ if (!start || !end || data !== null && data !== void 0 && (_data$start$row = data[start.row]) !== null && _data$start$row !== void 0 && _data$start$row[start.col].readonly || !(data !== null && data !== void 0 && (_data$start$row2 = data[start.row]) !== null && _data$start$row2 !== void 0 && _data$start$row2[start.col].editable) || freeze) {
75
76
  return state;
76
77
  }
77
78
  if (!editing) {
@@ -164,8 +164,9 @@ export var mouseReducer = {
164
164
  var _ref4 = payload,
165
165
  row = _ref4.row,
166
166
  col = _ref4.col;
167
- var data = state.data;
168
- if (data !== null && data !== void 0 && (_data$row$col = data[row][col]) !== null && _data$row$col !== void 0 && _data$row$col.readonly) {
167
+ var data = state.data,
168
+ freeze = state.freeze;
169
+ if (data !== null && data !== void 0 && (_data$row$col = data[row][col]) !== null && _data$row$col !== void 0 && _data$row$col.readonly || freeze) {
169
170
  return state;
170
171
  }
171
172
  return _objectSpread(_objectSpread({}, state), {}, {
@@ -206,12 +206,12 @@ export var sideEffectReducer = {
206
206
  paste: function paste(dispatch, getState) {
207
207
  return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
208
208
  var _extChanges$;
209
- var _getState8, start, end, cellChangeHandler, history, _getState8$freePaste, freePaste, data, groupConfig, pasteData, changeInfo, changes, extChanges, legalChanges, lastRow, lastIndex, legalExtChanges, newHistory;
209
+ var _getState8, start, end, cellChangeHandler, history, _getState8$freePaste, freePaste, data, freeze, groupConfig, pasteData, changeInfo, changes, extChanges, legalChanges, lastRow, lastIndex, legalExtChanges, newHistory;
210
210
  return _regeneratorRuntime().wrap(function _callee$(_context) {
211
211
  while (1) switch (_context.prev = _context.next) {
212
212
  case 0:
213
- _getState8 = getState(), start = _getState8.start, end = _getState8.end, cellChangeHandler = _getState8.cellChangeHandler, history = _getState8.history, _getState8$freePaste = _getState8.freePaste, freePaste = _getState8$freePaste === void 0 ? false : _getState8$freePaste, data = _getState8.data, groupConfig = _getState8.groupConfig;
214
- if (!(!start || !end)) {
213
+ _getState8 = getState(), start = _getState8.start, end = _getState8.end, cellChangeHandler = _getState8.cellChangeHandler, history = _getState8.history, _getState8$freePaste = _getState8.freePaste, freePaste = _getState8$freePaste === void 0 ? false : _getState8$freePaste, data = _getState8.data, freeze = _getState8.freeze, groupConfig = _getState8.groupConfig;
214
+ if (!(!start || !end || freeze)) {
215
215
  _context.next = 3;
216
216
  break;
217
217
  }
@@ -51,6 +51,7 @@ var Sheet = function Sheet(props) {
51
51
  virtualized = _props$virtualized === void 0 ? false : _props$virtualized,
52
52
  className = props.className,
53
53
  data = props.data,
54
+ freeze = props.freeze,
54
55
  _props$freePaste = props.freePaste,
55
56
  freePaste = _props$freePaste === void 0 ? false : _props$freePaste,
56
57
  onCellsChanged = props.onCellsChanged,
@@ -131,10 +132,16 @@ var Sheet = function Sheet(props) {
131
132
  },
132
133
  goTo: function goTo(row, col) {
133
134
  dispatch(function (d, getState) {
134
- var _sheetWrapperRef$curr4;
135
135
  var _getState2 = getState(),
136
136
  groupConfig = _getState2.groupConfig,
137
- data = _getState2.data;
137
+ data = _getState2.data,
138
+ eventBus = _getState2.eventBus;
139
+ var nextLoop = groupConfig === null || groupConfig === void 0 ? void 0 : groupConfig.groupOpen.some(function (v) {
140
+ return !v;
141
+ });
142
+ if (nextLoop) {
143
+ eventBus === null || eventBus === void 0 || eventBus.emit('group-open-title', true);
144
+ }
138
145
  var container = sheetWrapperRef.current;
139
146
  if (isNil(row) || isNil(col)) return;
140
147
  var actual = rowToActualRow(row, groupConfig, data.length);
@@ -142,7 +149,15 @@ var Sheet = function Sheet(props) {
142
149
  var firstRowCell = container.querySelector("td.cell[data-col='".concat(col, "']"));
143
150
  var colPosition = firstRowCell ? firstRowCell.offsetLeft - firstRowCell.clientWidth : 0;
144
151
  var scrollHeight = actual * rowHeight;
145
- (_sheetWrapperRef$curr4 = sheetWrapperRef.current) === null || _sheetWrapperRef$curr4 === void 0 || _sheetWrapperRef$curr4.scrollTo(colPosition, scrollHeight);
152
+ if (nextLoop) {
153
+ setTimeout(function () {
154
+ var _sheetWrapperRef$curr4;
155
+ (_sheetWrapperRef$curr4 = sheetWrapperRef.current) === null || _sheetWrapperRef$curr4 === void 0 || _sheetWrapperRef$curr4.scrollTo(colPosition, scrollHeight);
156
+ }, 1);
157
+ } else {
158
+ var _sheetWrapperRef$curr5;
159
+ (_sheetWrapperRef$curr5 = sheetWrapperRef.current) === null || _sheetWrapperRef$curr5 === void 0 || _sheetWrapperRef$curr5.scrollTo(colPosition, scrollHeight);
160
+ }
146
161
  });
147
162
  },
148
163
  pushToHistory: function pushToHistory(config) {
@@ -196,10 +211,11 @@ var Sheet = function Sheet(props) {
196
211
  cellChangeHandler: onCellsChanged,
197
212
  data: data,
198
213
  freePaste: freePaste,
199
- groupConfig: groupConfig
214
+ groupConfig: groupConfig,
215
+ freeze: freeze
200
216
  }
201
217
  });
202
- }, [onCellsChanged, data, freePaste, groupConfig]);
218
+ }, [onCellsChanged, data, freePaste, groupConfig, freeze]);
203
219
  useCellEvent(dispatch, state);
204
220
  useMouseEvent(dispatch, sheetWrapperRef);
205
221
  useKeyBoardEvent(dispatch, sheetWrapperRef);
@@ -211,9 +227,9 @@ var Sheet = function Sheet(props) {
211
227
  useEffect(function () {
212
228
  if (!state.editing && state.start) {
213
229
  setTimeout(function () {
214
- var _sheetWrapperRef$curr5;
230
+ var _sheetWrapperRef$curr6;
215
231
  // 表格获取焦点 + 接收keyboard event
216
- (_sheetWrapperRef$curr5 = sheetWrapperRef.current) === null || _sheetWrapperRef$curr5 === void 0 || _sheetWrapperRef$curr5.focus({
232
+ (_sheetWrapperRef$curr6 = sheetWrapperRef.current) === null || _sheetWrapperRef$curr6 === void 0 || _sheetWrapperRef$curr6.focus({
217
233
  preventScroll: true
218
234
  });
219
235
  }, 1);
@@ -336,7 +352,6 @@ var Sheet = function Sheet(props) {
336
352
  handleScroll();
337
353
  }
338
354
  }, []);
339
- console.log(menu.showMenu);
340
355
  return /*#__PURE__*/_jsx(SheetEventContext.Provider, {
341
356
  value: eventBus,
342
357
  children: /*#__PURE__*/_jsxs(_Fragment, {
@@ -371,13 +386,6 @@ var Sheet = function Sheet(props) {
371
386
  showMenu: menu.showMenu,
372
387
  contextMenu: ContextMenu,
373
388
  onContextMenu: onContextMenu
374
- }), /*#__PURE__*/_jsx(Remark, {
375
- showRemark: remarkInfo.show && !menu.showMenu,
376
- position: {
377
- left: remarkInfo.position.left,
378
- top: remarkInfo.position.top
379
- },
380
- children: remarkElement
381
389
  }), EmptyElement]
382
390
  }), /*#__PURE__*/_jsxs("div", {
383
391
  className: "harvest-sheet-control",
@@ -408,6 +416,13 @@ var Sheet = function Sheet(props) {
408
416
  }
409
417
  }), children]
410
418
  })]
419
+ }), /*#__PURE__*/_jsx(Remark, {
420
+ showRemark: remarkInfo.show && !menu.showMenu,
421
+ position: {
422
+ left: remarkInfo.position.left,
423
+ top: remarkInfo.position.top
424
+ },
425
+ children: remarkElement
411
426
  }), /*#__PURE__*/_jsx(SearchInput, {
412
427
  style: props.searchStyle,
413
428
  value: state.searchText,
@@ -378,7 +378,7 @@ span.harvest-sheet-container:focus {
378
378
  color: #a4a9b2;
379
379
  }
380
380
  }
381
- .harvest-sheet-container .harvest-remark-container{
381
+ .harvest-remark-container{
382
382
  opacity: 1;
383
383
  border:1px solid #E5E5E5;
384
384
  border-radius: 2px;
@@ -11,8 +11,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
11
11
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
13
  import { useSetState } from "../../hooks";
14
+ import { throttle } from 'lodash';
14
15
  import { useCallback, useEffect } from 'react';
15
- import { debounce } from 'lodash';
16
16
  export var useRemarkContainer = function useRemarkContainer(elementRef, start, editing) {
17
17
  var showRemark = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
18
18
  var _useSetState = useSetState({
@@ -62,7 +62,7 @@ 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 remarkScroll = debounce(function () {
65
+ var remarkScroll = throttle(function () {
66
66
  setRemarkInfo({
67
67
  show: false
68
68
  });
@@ -96,10 +96,11 @@ export var useRemarkContainer = function useRemarkContainer(elementRef, start, e
96
96
  }
97
97
  var io = new IntersectionObserver(function (entries) {
98
98
  var ratio = entries[0].intersectionRatio;
99
- console.log('io-ratio', ratio);
100
- if (ratio < 1) setRemarkInfo({
101
- show: false
102
- });
99
+ if (ratio < 1) {
100
+ setRemarkInfo({
101
+ show: false
102
+ });
103
+ }
103
104
  }, {
104
105
  threshold: 1
105
106
  });
@@ -1,5 +1,5 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["sheetInstance", "columns", "dataSource", "rowKey", "rowSelection", "groupConfig", "onChange", "handleAdd", "handleBatchAdd", "draggable", "eventHandler", "remarkRender", "handleAddRemark", "showRemark"];
2
+ var _excluded = ["sheetInstance", "columns", "dataSource", "rowKey", "rowSelection", "groupConfig", "onChange", "handleAdd", "handleBatchAdd", "draggable", "eventHandler", "remarkRender", "handleAddRemark", "showRemark", "freeze"];
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
5
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
@@ -45,6 +45,8 @@ var Table = function Table(_ref) {
45
45
  handleAddRemark = _ref.handleAddRemark,
46
46
  _ref$showRemark = _ref.showRemark,
47
47
  showRemark = _ref$showRemark === void 0 ? false : _ref$showRemark,
48
+ _ref$freeze = _ref.freeze,
49
+ freeze = _ref$freeze === void 0 ? false : _ref$freeze,
48
50
  args = _objectWithoutProperties(_ref, _excluded);
49
51
  var _useState = useState([[]]),
50
52
  _useState2 = _slicedToArray(_useState, 2),
@@ -102,6 +104,7 @@ var Table = function Table(_ref) {
102
104
  }
103
105
  }, [dataSource, columns]);
104
106
  var handleChanges = useCallback(function (changes, extChange) {
107
+ if (freeze) return;
105
108
  onChange && onChange(changes.map(function (item) {
106
109
  return {
107
110
  col: item.col,
@@ -119,7 +122,7 @@ var Table = function Table(_ref) {
119
122
  value: item.value
120
123
  };
121
124
  }));
122
- }, [columns, onChange, hasControl]);
125
+ }, [columns, onChange, hasControl, freeze]);
123
126
  var handleReverse = useCallback(function (value) {
124
127
  var _ref2 = value,
125
128
  type = _ref2.type,
@@ -206,38 +209,66 @@ var Table = function Table(_ref) {
206
209
  return null;
207
210
  }
208
211
  return remarkRender === null || remarkRender === void 0 ? void 0 : remarkRender(remarkInfo);
209
- }, [remarkRender, remarkInfo, showRemark]);
212
+ }, [remarkRender, remarkInfo, showRemark, data]);
213
+ var addRemark = useCallback(function (value) {
214
+ handleAddRemark === null || handleAddRemark === void 0 || handleAddRemark(value);
215
+ setShowRemark(true);
216
+ }, [handleAddRemark]);
210
217
  var menuRenderer = args.menuRenderer;
211
218
  var wrappMenuRenderer = useMemo(function () {
212
219
  var remarkMenu = /*#__PURE__*/_jsx("div", {
213
220
  className: "harvest-menu-item",
214
221
  onClick: function onClick() {
215
- return remarkInfo && (handleAddRemark === null || handleAddRemark === void 0 ? void 0 : handleAddRemark(remarkInfo));
222
+ return addRemark(remarkInfo);
216
223
  },
217
224
  children: "\u6DFB\u52A0\u8BC4\u8BBA"
218
- });
225
+ }, "remark");
219
226
  if (!menuRenderer) {
220
227
  if (showRemark) {
221
228
  return function (props) {
222
- return /*#__PURE__*/_jsx("div", {
223
- className: "harvest-menu",
224
- style: _objectSpread({}, props.position),
225
- children: remarkMenu
226
- });
229
+ var _data$row3;
230
+ var cell = props.cell;
231
+ var _ref5 = cell !== null && cell !== void 0 ? cell : {},
232
+ _ref5$col = _ref5.col,
233
+ col = _ref5$col === void 0 ? -1 : _ref5$col,
234
+ _ref5$row = _ref5.row,
235
+ row = _ref5$row === void 0 ? -1 : _ref5$row;
236
+ var target = data === null || data === void 0 || (_data$row3 = data[row]) === null || _data$row3 === void 0 ? void 0 : _data$row3[col + 1];
237
+ console.log(data, target, row, col);
238
+ if ((target === null || target === void 0 ? void 0 : target.readonly) !== true && !target.fixed) {
239
+ return /*#__PURE__*/_jsx("div", {
240
+ className: "harvest-menu",
241
+ style: _objectSpread({}, props.position),
242
+ children: remarkMenu
243
+ });
244
+ }
245
+ return null;
227
246
  };
228
247
  }
229
248
  return undefined;
230
249
  } else {
231
250
  return function (props) {
251
+ var _data$row4;
252
+ var cell = props.cell;
253
+ var _ref6 = cell !== null && cell !== void 0 ? cell : {},
254
+ _ref6$col = _ref6.col,
255
+ col = _ref6$col === void 0 ? -1 : _ref6$col,
256
+ _ref6$row = _ref6.row,
257
+ row = _ref6$row === void 0 ? -1 : _ref6$row;
258
+ var target = data === null || data === void 0 || (_data$row4 = data[row]) === null || _data$row4 === void 0 ? void 0 : _data$row4[col + 1];
232
259
  var MenuFC = menuRenderer;
233
- return /*#__PURE__*/_jsxs(MenuFC, _objectSpread(_objectSpread({}, props), {}, {
234
- children: [remarkMenu, /*#__PURE__*/_jsx("div", {
235
- className: "harvest-menu-divider"
236
- })]
260
+ if (showRemark && (target === null || target === void 0 ? void 0 : target.readonly) !== true && !target.fixed) {
261
+ return /*#__PURE__*/_jsx(MenuFC, _objectSpread(_objectSpread({}, props), {}, {
262
+ target: target,
263
+ children: remarkMenu
264
+ }));
265
+ }
266
+ return /*#__PURE__*/_jsx(MenuFC, _objectSpread(_objectSpread({}, props), {}, {
267
+ target: target
237
268
  }));
238
269
  };
239
270
  }
240
- }, [showRemark, showRemarkPop, menuRenderer, remarkInfo]);
271
+ }, [showRemark, showRemarkPop, menuRenderer, remarkInfo, addRemark, data]);
241
272
  return /*#__PURE__*/_jsx(ConfigProvider, {
242
273
  renderEmpty: function renderEmpty() {
243
274
  return /*#__PURE__*/_jsx(Empty, {
@@ -255,6 +286,7 @@ var Table = function Table(_ref) {
255
286
  onChange: setGroupConfig
256
287
  },
257
288
  children: /*#__PURE__*/_jsxs(Sheet, _objectSpread(_objectSpread({}, args), {}, {
289
+ freeze: freeze,
258
290
  menuRenderer: wrappMenuRenderer,
259
291
  showRemark: showRemarkPop,
260
292
  sheetInstance: sheetInstance,
@@ -282,7 +314,7 @@ var Table = function Table(_ref) {
282
314
  name: key,
283
315
  handler: eventHandler === null || eventHandler === void 0 ? void 0 : eventHandler[key]
284
316
  }, key);
285
- }), /*#__PURE__*/_jsx(AddButton, {
317
+ }), freeze ? null : /*#__PURE__*/_jsx(AddButton, {
286
318
  handleAdd: handleAdd,
287
319
  handleBatchAdd: handleBatchAdd
288
320
  })]
@@ -2,10 +2,6 @@ import { SheetEvent } from "../sheet/Event";
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  export var RemarkEvent = function RemarkEvent(_ref) {
4
4
  var handler = _ref.handler;
5
- // const handleClick = useCallback((value: SheetType.CellPosition) => {
6
- // if (!value) return;
7
- // console.log(value);
8
- // }, []);
9
5
  return /*#__PURE__*/_jsx(SheetEvent, {
10
6
  name: "cell-select-single",
11
7
  handler: handler
@@ -15,14 +15,13 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
15
15
  function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
16
16
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
17
17
  import { getNumberEditor, getSelectEditor, Table } from "./..";
18
- import { Button, message } from 'antd';
18
+ import { Button, Input } from 'antd';
19
19
  import { isNil } from 'lodash';
20
- import { useCallback, useEffect, useRef, useState } from 'react';
20
+ import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
21
21
  import { SwitchViewer } from "../core/viewer";
22
22
  import { SheetType } from "../type";
23
23
  import { jsx as _jsx } from "react/jsx-runtime";
24
24
  import { jsxs as _jsxs } from "react/jsx-runtime";
25
- import { Fragment as _Fragment } from "react/jsx-runtime";
26
25
  var RateValueInput = getNumberEditor({
27
26
  addonAfter: '%',
28
27
  min: 0,
@@ -421,8 +420,9 @@ export default (function () {
421
420
  var handleChange = useCallback(function () {}, [state]);
422
421
  useEffect(function () {
423
422
  setTimeout(function () {
424
- var _sheetInstance$curren;
425
- (_sheetInstance$curren = sheetInstance.current) === null || _sheetInstance$curren === void 0 || _sheetInstance$curren.select({
423
+ var _sheetInstance$curren, _sheetInstance$curren2;
424
+ (_sheetInstance$curren = sheetInstance.current) === null || _sheetInstance$curren === void 0 || _sheetInstance$curren.zoomTo(1);
425
+ (_sheetInstance$curren2 = sheetInstance.current) === null || _sheetInstance$curren2 === void 0 || _sheetInstance$curren2.select({
426
426
  start: {
427
427
  row: 1,
428
428
  col: 3
@@ -434,17 +434,45 @@ export default (function () {
434
434
  });
435
435
  }, 3);
436
436
  }, []);
437
+ var _useState3 = useState([]),
438
+ _useState4 = _slicedToArray(_useState3, 2),
439
+ currentRemark = _useState4[0],
440
+ setCurrentRemark = _useState4[1];
437
441
  var renderRemark = useCallback(function (value) {
438
- return /*#__PURE__*/_jsxs(_Fragment, {
442
+ return /*#__PURE__*/_jsxs("div", {
443
+ style: {
444
+ background: 'white'
445
+ },
439
446
  children: [/*#__PURE__*/_jsxs("p", {
440
447
  children: [" columns:", value.columnKey]
441
448
  }), /*#__PURE__*/_jsxs("p", {
442
449
  children: [" id:", value.id]
443
450
  }), /*#__PURE__*/_jsx("p", {
444
451
  children: " bugs --"
452
+ }), /*#__PURE__*/_jsx(Input, {
453
+ onPressEnter: function onPressEnter(e) {
454
+ setCurrentRemark([{
455
+ id: value.id,
456
+ remarks: [value.columnKey]
457
+ }]);
458
+ }
445
459
  })]
446
460
  });
447
461
  }, []);
462
+ var wrapData = useMemo(function () {
463
+ return state.map(function (d) {
464
+ var _currentRemark$find;
465
+ var remarks = currentRemark === null || currentRemark === void 0 || (_currentRemark$find = currentRemark.find(function (r) {
466
+ return r.id === d.id;
467
+ })) === null || _currentRemark$find === void 0 ? void 0 : _currentRemark$find.remarks;
468
+ if (remarks) {
469
+ return _objectSpread(_objectSpread({}, d), {}, {
470
+ remarks: remarks
471
+ });
472
+ }
473
+ return d;
474
+ });
475
+ }, [state, currentRemark]);
448
476
  return /*#__PURE__*/_jsxs("div", {
449
477
  style: {
450
478
  height: '100vh',
@@ -454,16 +482,15 @@ export default (function () {
454
482
  },
455
483
  children: [/*#__PURE__*/_jsx(Table, {
456
484
  virtualized: true,
485
+ freeze: true,
457
486
  draggable: true,
458
487
  sheetInstance: sheetInstance,
459
488
  columns: columns,
460
489
  showRemark: true,
461
- remarkRender: renderRemark,
462
- handleAddRemark: function handleAddRemark(value) {
463
- message.info("".concat(value.id, "\uFF1A").concat(value.columnKey));
464
- console.log(value.id, value.columnKey);
465
- },
466
- dataSource: state,
490
+ remarkRender: renderRemark
491
+ // handleAddRemark={handleAddRemark}
492
+ ,
493
+ dataSource: wrapData,
467
494
  onChange: handleChange,
468
495
  onContextMenu: function onContextMenu() {},
469
496
  menuRenderer: function menuRenderer(props) {
@@ -93,6 +93,7 @@ export type MenuRenderProps = {
93
93
  cell?: CellPosition;
94
94
  onContextMenu?: (event: any) => void;
95
95
  children?: ReactNode | ReactNode[];
96
+ target?: any;
96
97
  };
97
98
  export type SheetInstance = {
98
99
  zoomTo: (row?: number) => void;
@@ -119,6 +120,7 @@ export type SheetProps = {
119
120
  backEditStyle?: Partial<CSSProperties>;
120
121
  searchStyle?: Partial<CSSProperties>;
121
122
  sticky?: boolean;
123
+ freeze?: boolean;
122
124
  groupConfig?: RowGroupConfig;
123
125
  remarkElement?: ReactNode;
124
126
  onCellsChanged?: CellChangeHandler;
@@ -214,6 +216,7 @@ export type UpdateStateType = {
214
216
  data: Cell[][];
215
217
  mouseDown: boolean;
216
218
  isIndex: boolean;
219
+ freeze: boolean;
217
220
  lastSelected?: {
218
221
  start?: CellPosition;
219
222
  end?: CellPosition;
@@ -56,6 +56,11 @@ export type TableGroupConfig = {
56
56
  onChange?: (value: SheetType.RowGroupConfig) => void;
57
57
  };
58
58
  export type EventHandler = (value: any) => void;
59
+ export type RemarkProps = {
60
+ cell: SheetType.CellPosition;
61
+ columnKey: string;
62
+ id?: string | number;
63
+ };
59
64
  export type TableProps = {
60
65
  /**
61
66
  * @description 表格类名
@@ -83,16 +88,8 @@ export type TableProps = {
83
88
  freeze?: boolean;
84
89
  showBackEdit?: boolean;
85
90
  showRemark?: boolean;
86
- remarkRender?: (props: {
87
- cell: SheetType.CellPosition;
88
- columnKey: string;
89
- id?: string | number;
90
- }) => ReactNode;
91
- handleAddRemark?: (value: {
92
- cell: SheetType.CellPosition;
93
- columnKey: string;
94
- id?: string | number;
95
- }) => void;
91
+ remarkRender?: (props: RemarkProps) => ReactNode;
92
+ handleAddRemark?: (value: RemarkProps) => void;
96
93
  backEditStyle?: Partial<CSSProperties>;
97
94
  searchStyle?: Partial<CSSProperties>;
98
95
  rowSelection?: TableRowSelection;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhenliang/sheet",
3
- "version": "0.1.73.beta.2",
3
+ "version": "0.1.73.beta.4",
4
4
  "description": "A react library developed with dumi",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.js",