@zhenliang/sheet 0.0.8 → 0.1.0

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.
Files changed (147) hide show
  1. package/README.md +3 -2
  2. package/dist/core/config.js +1 -2
  3. package/dist/core/editor/cascaderEditor/index.js +14 -7
  4. package/dist/core/editor/dateEditor/index.d.ts +1 -1
  5. package/dist/core/editor/dateEditor/index.js +2 -3
  6. package/dist/core/editor/index.d.ts +1 -1
  7. package/dist/core/editor/index.js +2 -3
  8. package/dist/core/editor/numberEditor/index.js +50 -6
  9. package/dist/core/editor/numberEditor/index.less +1 -0
  10. package/dist/core/editor/selectEditor/index.d.ts +1 -1
  11. package/dist/core/editor/selectEditor/index.js +23 -5
  12. package/dist/core/reducers/index.d.ts +1 -1
  13. package/dist/core/reducers/index.js +3 -2
  14. package/dist/core/reducers/keyboardReducer.js +2 -3
  15. package/dist/core/reducers/mouseReducer.js +1 -2
  16. package/dist/core/reducers/sideEffectReducer.js +49 -25
  17. package/dist/core/reducers/stateReducer.js +35 -10
  18. package/dist/core/sheet/Cell.js +37 -16
  19. package/dist/core/sheet/DataEditor.js +4 -2
  20. package/dist/core/sheet/DefaultCell.js +1 -2
  21. package/dist/core/sheet/DefaultRow.d.ts +1 -0
  22. package/dist/core/sheet/DefaultRow.js +5 -3
  23. package/dist/core/sheet/DefaultRowMapper.js +1 -2
  24. package/dist/core/sheet/DefaultShell.js +1 -2
  25. package/dist/core/sheet/Event.js +2 -3
  26. package/dist/core/sheet/ValueViewer.js +1 -2
  27. package/dist/core/sheet/index.js +54 -15
  28. package/dist/core/sheet/index.less +20 -11
  29. package/dist/core/sheet/useCellEvent.js +1 -2
  30. package/dist/core/sheet/useContextMenu.d.ts +1 -1
  31. package/dist/core/sheet/useContextMenu.js +2 -3
  32. package/dist/core/sheet/useKeyBoardEvent.js +15 -3
  33. package/dist/core/sheet/useMouseEvent.js +3 -4
  34. package/dist/core/sheet/useSelectVisible.d.ts +2 -0
  35. package/dist/core/sheet/useSelectVisible.js +48 -0
  36. package/dist/core/sheet/useVirtualList.d.ts +1 -1
  37. package/dist/core/sheet/useVirtualList.js +24 -20
  38. package/dist/core/shell/draggableShell/index.d.ts +0 -1
  39. package/dist/core/shell/draggableShell/index.js +21 -13
  40. package/dist/core/shell/tableShell.d.ts +0 -1
  41. package/dist/core/shell/tableShell.js +9 -6
  42. package/dist/core/table/events.d.ts +15 -0
  43. package/dist/core/table/events.js +94 -0
  44. package/dist/core/table/index.js +91 -112
  45. package/dist/core/table/useGroupConfig.js +24 -7
  46. package/dist/core/table/useRowSelection.d.ts +2 -1
  47. package/dist/core/table/useRowSelection.js +1 -2
  48. package/dist/core/table/util.js +2 -3
  49. package/dist/core/util.d.ts +5 -2
  50. package/dist/core/util.js +97 -16
  51. package/dist/core/viewer/btnViewer/index.js +2 -3
  52. package/dist/core/viewer/cascaderViewer/index.d.ts +2 -0
  53. package/dist/core/viewer/cascaderViewer/index.js +11 -0
  54. package/dist/core/viewer/checkViewer/index.js +2 -3
  55. package/dist/core/viewer/editViewer/index.js +2 -3
  56. package/dist/core/viewer/groupViewer/index.js +5 -3
  57. package/dist/core/viewer/index.d.ts +1 -0
  58. package/dist/core/viewer/index.js +2 -2
  59. package/dist/core/viewer/selectorViewer/index.d.ts +2 -0
  60. package/dist/core/viewer/selectorViewer/index.js +12 -0
  61. package/dist/core/viewer/switchViewer/index.js +2 -3
  62. package/dist/example/antComponent.js +60 -14
  63. package/dist/example/basic.js +2 -3
  64. package/dist/example/ellipsis.js +1 -2
  65. package/dist/example/fixed.js +1 -2
  66. package/dist/example/group.js +42 -4
  67. package/dist/example/selection.js +2 -3
  68. package/dist/example/sheet.js +52 -16
  69. package/dist/example/valuationAnalyze.js +20 -18
  70. package/dist/hooks/index.d.ts +1 -0
  71. package/dist/hooks/index.js +1 -1
  72. package/dist/hooks/useEventBus.d.ts +0 -1
  73. package/dist/hooks/useEventBus.js +1 -2
  74. package/dist/hooks/useKeyboard.js +1 -2
  75. package/dist/hooks/useMiddlewareReducer.js +1 -2
  76. package/dist/hooks/useMouse.js +1 -2
  77. package/dist/hooks/useSetState.js +1 -2
  78. package/dist/hooks/useSheetEvent.js +1 -2
  79. package/dist/hooks/useWidthConfig.d.ts +4 -0
  80. package/dist/hooks/useWidthConfig.js +5 -0
  81. package/dist/index.d.ts +4 -0
  82. package/dist/index.js +4 -1
  83. package/dist/standardUtils/index.js +2 -3
  84. package/dist/type/index.js +1 -2
  85. package/dist/type/sheet.d.ts +14 -3
  86. package/dist/type/sheet.js +1 -2
  87. package/dist/type/sheetTable.d.ts +43 -14
  88. package/dist/type/sheetTable.js +1 -2
  89. package/package.json +1 -1
  90. package/dist/core/config.js.map +0 -1
  91. package/dist/core/editor/cascaderEditor/index.js.map +0 -1
  92. package/dist/core/editor/dateEditor/index.js.map +0 -1
  93. package/dist/core/editor/index.js.map +0 -1
  94. package/dist/core/editor/numberEditor/index.js.map +0 -1
  95. package/dist/core/editor/selectEditor/index.js.map +0 -1
  96. package/dist/core/reducers/index.js.map +0 -1
  97. package/dist/core/reducers/keyboardReducer.js.map +0 -1
  98. package/dist/core/reducers/mouseReducer.js.map +0 -1
  99. package/dist/core/reducers/sideEffectReducer.js.map +0 -1
  100. package/dist/core/reducers/stateReducer.js.map +0 -1
  101. package/dist/core/sheet/Cell.js.map +0 -1
  102. package/dist/core/sheet/DataEditor.js.map +0 -1
  103. package/dist/core/sheet/DefaultCell.js.map +0 -1
  104. package/dist/core/sheet/DefaultRow.js.map +0 -1
  105. package/dist/core/sheet/DefaultRowMapper.js.map +0 -1
  106. package/dist/core/sheet/DefaultShell.js.map +0 -1
  107. package/dist/core/sheet/Event.js.map +0 -1
  108. package/dist/core/sheet/ValueViewer.js.map +0 -1
  109. package/dist/core/sheet/index.js.map +0 -1
  110. package/dist/core/sheet/useCellEvent.js.map +0 -1
  111. package/dist/core/sheet/useContextMenu.js.map +0 -1
  112. package/dist/core/sheet/useKeyBoardEvent.js.map +0 -1
  113. package/dist/core/sheet/useMouseEvent.js.map +0 -1
  114. package/dist/core/sheet/useVirtualList.js.map +0 -1
  115. package/dist/core/shell/draggableShell/index.js.map +0 -1
  116. package/dist/core/shell/tableShell.js.map +0 -1
  117. package/dist/core/table/index.js.map +0 -1
  118. package/dist/core/table/useGroupConfig.js.map +0 -1
  119. package/dist/core/table/useRowSelection.js.map +0 -1
  120. package/dist/core/table/util.js.map +0 -1
  121. package/dist/core/util.js.map +0 -1
  122. package/dist/core/viewer/btnViewer/index.js.map +0 -1
  123. package/dist/core/viewer/checkViewer/index.js.map +0 -1
  124. package/dist/core/viewer/editViewer/index.js.map +0 -1
  125. package/dist/core/viewer/groupViewer/index.js.map +0 -1
  126. package/dist/core/viewer/index.js.map +0 -1
  127. package/dist/core/viewer/switchViewer/index.js.map +0 -1
  128. package/dist/example/antComponent.js.map +0 -1
  129. package/dist/example/basic.js.map +0 -1
  130. package/dist/example/ellipsis.js.map +0 -1
  131. package/dist/example/fixed.js.map +0 -1
  132. package/dist/example/group.js.map +0 -1
  133. package/dist/example/selection.js.map +0 -1
  134. package/dist/example/sheet.js.map +0 -1
  135. package/dist/example/valuationAnalyze.js.map +0 -1
  136. package/dist/hooks/index.js.map +0 -1
  137. package/dist/hooks/useEventBus.js.map +0 -1
  138. package/dist/hooks/useKeyboard.js.map +0 -1
  139. package/dist/hooks/useMiddlewareReducer.js.map +0 -1
  140. package/dist/hooks/useMouse.js.map +0 -1
  141. package/dist/hooks/useSetState.js.map +0 -1
  142. package/dist/hooks/useSheetEvent.js.map +0 -1
  143. package/dist/index.js.map +0 -1
  144. package/dist/standardUtils/index.js.map +0 -1
  145. package/dist/type/index.js.map +0 -1
  146. package/dist/type/sheet.js.map +0 -1
  147. package/dist/type/sheetTable.js.map +0 -1
package/dist/core/util.js CHANGED
@@ -4,6 +4,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
4
4
  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; }
5
5
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
6
6
  function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
7
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
7
8
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
8
9
  function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
9
10
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -13,7 +14,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
13
14
  /* eslint-disable no-param-reassign */
14
15
  /* eslint-disable @typescript-eslint/no-use-before-define */
15
16
 
16
- import { cloneDeep, isNil, range } from 'lodash';
17
+ import { cloneDeep, get, isNil, range } from 'lodash';
17
18
  export function findParentTd(el) {
18
19
  if (!el) return null;
19
20
  if (el.tagName === 'TD') return el;
@@ -123,7 +124,8 @@ export function formatDataToCell(_ref2) {
123
124
  var isSinglePaste = pasteData.length === 1 && pasteData[0].length === 1;
124
125
 
125
126
  // todo 超出行的处理
126
- var isExRow = cells[cells.length - 1].row > ((data === null || data === void 0 ? void 0 : data.length) || 0);
127
+ // const isExRow = (cells[cells.length - 1].row as number) > (data?.length || 0);
128
+
127
129
  var groupMap = groupConfigToGroupMap(groupConfig);
128
130
  var actualRowCount = range((_start$row3 = start === null || start === void 0 ? void 0 : start.row) !== null && _start$row3 !== void 0 ? _start$row3 : 0, ((_end$row3 = end === null || end === void 0 ? void 0 : end.row) !== null && _end$row3 !== void 0 ? _end$row3 : 0) + 1).reduce(function (left, index) {
129
131
  var _groupMap$get, _groupMap$get2;
@@ -146,7 +148,7 @@ export function formatDataToCell(_ref2) {
146
148
  changes.push({
147
149
  row: row,
148
150
  col: col,
149
- value: pasteData[0][0]
151
+ value: pasteData[0][0].trimStart().trimEnd()
150
152
  });
151
153
  });
152
154
  return {
@@ -163,13 +165,14 @@ export function formatDataToCell(_ref2) {
163
165
  pasteData.forEach(function (rowData, i) {
164
166
  rowData.forEach(function (cell, j) {
165
167
  if (row + i >= data.length) {
168
+ var _pasteData$i$j;
166
169
  extChanges.push({
167
170
  row: row + i,
168
171
  col: col + j,
169
- value: pasteData[i][j]
172
+ value: (_pasteData$i$j = pasteData[i][j]) === null || _pasteData$i$j === void 0 ? void 0 : _pasteData$i$j.trimStart().trimEnd()
170
173
  });
171
174
  } else {
172
- var _data, _data2, _groupMap$get5, _groupMap$get6;
175
+ var _data, _data2, _groupMap$get5, _groupMap$get6, _pasteData$i$j2;
173
176
  if (data !== null && data !== void 0 && (_data = data[row + i]) !== null && _data !== void 0 && (_data2 = _data[col + j]) !== null && _data2 !== void 0 && _data2.readonly) return;
174
177
  if (groupMap.get(row + i) && !((_groupMap$get5 = groupMap.get(row + i)) !== null && _groupMap$get5 !== void 0 && _groupMap$get5.isStart) && !((_groupMap$get6 = groupMap.get(row + i)) !== null && _groupMap$get6 !== void 0 && _groupMap$get6.isOpen)) {
175
178
  hasStartAndNotOpen = true;
@@ -177,7 +180,7 @@ export function formatDataToCell(_ref2) {
177
180
  changes.push({
178
181
  row: row + i,
179
182
  col: col + j,
180
- value: pasteData[i][j]
183
+ value: (_pasteData$i$j2 = pasteData[i][j]) === null || _pasteData$i$j2 === void 0 ? void 0 : _pasteData$i$j2.trimStart().trimEnd()
181
184
  });
182
185
  }
183
186
  });
@@ -191,7 +194,7 @@ export function formatDataToCell(_ref2) {
191
194
  }
192
195
  return {
193
196
  changes: changes,
194
- extChanges: isExRow && freePaste ? extChanges : undefined
197
+ extChanges: freePaste ? extChanges : undefined
195
198
  };
196
199
  } else {
197
200
  // 选中多个单元格,粘贴多个数据
@@ -200,19 +203,24 @@ export function formatDataToCell(_ref2) {
200
203
  return;
201
204
  }
202
205
  var baseCol = cells[0].col;
206
+ var lastRow = cells[0].row;
203
207
  var pasteCount = 0;
204
208
  cells.forEach(function (_ref4) {
205
- var _groupMap$get7, _groupMap$get8;
209
+ var _data$row$col, _groupMap$get7, _groupMap$get8, _pasteData$pasteCount, _pasteData$pasteCount2;
206
210
  var row = _ref4.row,
207
211
  col = _ref4.col;
208
- if (data[row][col].readonly) return;
212
+ if ((_data$row$col = data[row][col]) !== null && _data$row$col !== void 0 && _data$row$col.readonly) return;
209
213
  if (groupMap.get(row) && !((_groupMap$get7 = groupMap.get(row)) !== null && _groupMap$get7 !== void 0 && _groupMap$get7.isStart) && !((_groupMap$get8 = groupMap.get(row)) !== null && _groupMap$get8 !== void 0 && _groupMap$get8.isOpen)) {
210
214
  return;
211
215
  }
216
+ if (row !== lastRow) {
217
+ pasteCount++;
218
+ lastRow = row;
219
+ }
212
220
  changes.push({
213
221
  row: row,
214
222
  col: col,
215
- value: pasteData[pasteCount++][col - baseCol]
223
+ value: pasteData === null || pasteData === void 0 ? void 0 : (_pasteData$pasteCount = pasteData[pasteCount]) === null || _pasteData$pasteCount === void 0 ? void 0 : (_pasteData$pasteCount2 = _pasteData$pasteCount[col - baseCol]) === null || _pasteData$pasteCount2 === void 0 ? void 0 : _pasteData$pasteCount2.trimStart().trimEnd()
216
224
  });
217
225
  });
218
226
  return {
@@ -227,21 +235,27 @@ export function renderValue(cell) {
227
235
  var value = defaultValueRenderer(cell);
228
236
  return value === null || typeof value === 'undefined' ? '' : value;
229
237
  }
238
+ export var optionsToValuesFromLabelOrValue = function optionsToValuesFromLabelOrValue(options, val) {
239
+ var labelRes = optionsTransferToValue(options, val);
240
+ var valueRes = optionsTransferToValue(options, val, 'value');
241
+ return labelRes !== null && labelRes !== void 0 && labelRes.length ? labelRes : valueRes;
242
+ };
230
243
  export var optionsTransferToValue = function optionsTransferToValue(options, val) {
244
+ var key = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'label';
231
245
  var values = [];
232
246
  for (var i = 0; i < options.length; i++) {
233
247
  var _options$i = options[i],
234
- label = _options$i.label,
235
248
  value = _options$i.value,
236
249
  children = _options$i.children;
237
250
  if (children) {
238
- values = optionsTransferToValue(children, val);
251
+ values = optionsTransferToValue(children, val, key);
239
252
  if (values.length) {
240
253
  values = [value].concat(_toConsumableArray(values));
241
254
  break;
242
255
  }
243
- } else if (label === val) {
256
+ } else if (get(options[i], key) === val) {
244
257
  values.push(value);
258
+ console.log('cascader', get(options[i], key), val, value);
245
259
  break;
246
260
  } else {
247
261
  values = [];
@@ -249,6 +263,73 @@ export var optionsTransferToValue = function optionsTransferToValue(options, val
249
263
  }
250
264
  return values;
251
265
  };
266
+ export var optionsTransferToValue2 = function optionsTransferToValue2(options, value) {
267
+ var path = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
268
+ if (!(options !== null && options !== void 0 && options.length) || !value) return _toConsumableArray(path);
269
+ var leaveNode = options === null || options === void 0 ? void 0 : options.find(function (item) {
270
+ var _item$children;
271
+ return !((_item$children = item.children) !== null && _item$children !== void 0 && _item$children.length) && value === item.value;
272
+ });
273
+ if (leaveNode) {
274
+ return [leaveNode.value];
275
+ }
276
+ var childrenNodes = options === null || options === void 0 ? void 0 : options.filter(function (item) {
277
+ var _item$children2;
278
+ return (_item$children2 = item.children) === null || _item$children2 === void 0 ? void 0 : _item$children2.length;
279
+ });
280
+ if (childrenNodes) {
281
+ var _iterator = _createForOfIteratorHelper(childrenNodes),
282
+ _step;
283
+ try {
284
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
285
+ var childrenNode = _step.value;
286
+ var allPath = optionsTransferToValue(childrenNode.children, value, [].concat(_toConsumableArray(path), [childrenNode.value]));
287
+ if (allPath !== null && allPath !== void 0 && allPath.length) {
288
+ return allPath;
289
+ }
290
+ }
291
+ } catch (err) {
292
+ _iterator.e(err);
293
+ } finally {
294
+ _iterator.f();
295
+ }
296
+ }
297
+ return [];
298
+ };
299
+ export var valuesTransferToLabel = function valuesTransferToLabel(options, value) {
300
+ if (!(options !== null && options !== void 0 && options.length) || !value) return null;
301
+ var leaveNode = options === null || options === void 0 ? void 0 : options.find(function (item) {
302
+ var _item$children3;
303
+ return !((_item$children3 = item.children) !== null && _item$children3 !== void 0 && _item$children3.length) && value === item.value;
304
+ });
305
+ var childrenNode = options === null || options === void 0 ? void 0 : options.filter(function (item) {
306
+ var _item$children4;
307
+ return (_item$children4 = item.children) === null || _item$children4 === void 0 ? void 0 : _item$children4.length;
308
+ }).map(function (item) {
309
+ return item.children;
310
+ });
311
+ if (leaveNode) {
312
+ return leaveNode.label;
313
+ }
314
+ if (childrenNode) {
315
+ var _iterator2 = _createForOfIteratorHelper(childrenNode),
316
+ _step2;
317
+ try {
318
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
319
+ var children = _step2.value;
320
+ var label = valuesTransferToLabel(children, value);
321
+ if (label) {
322
+ return label;
323
+ }
324
+ }
325
+ } catch (err) {
326
+ _iterator2.e(err);
327
+ } finally {
328
+ _iterator2.f();
329
+ }
330
+ }
331
+ return null;
332
+ };
252
333
  export var groupConfigToGroupMap = function groupConfigToGroupMap(rowGroupConfig) {
253
334
  var _rowGroupConfig$group;
254
335
  var groupMap = new Map();
@@ -320,6 +401,7 @@ export var getRowHeight = function getRowHeight(container) {
320
401
  };
321
402
  export var getNextVisibleRow = function getNextVisibleRow(row, maxRow, groupMap) {
322
403
  var _groupMap$get9, _groupMap$get10;
404
+ var up = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
323
405
  if (!(groupMap !== null && groupMap !== void 0 && groupMap.size)) {
324
406
  return row;
325
407
  }
@@ -327,7 +409,7 @@ export var getNextVisibleRow = function getNextVisibleRow(row, maxRow, groupMap)
327
409
  return null;
328
410
  }
329
411
  if (groupMap.get(row) && !((_groupMap$get9 = groupMap.get(row)) !== null && _groupMap$get9 !== void 0 && _groupMap$get9.isOpen) && !((_groupMap$get10 = groupMap.get(row)) !== null && _groupMap$get10 !== void 0 && _groupMap$get10.isStart)) {
330
- return getNextVisibleRow(row + 1, maxRow, groupMap);
412
+ return getNextVisibleRow(row + up, maxRow, groupMap);
331
413
  }
332
414
  return row;
333
415
  };
@@ -361,5 +443,4 @@ export var calcMenuPosition = function calcMenuPosition(_ref5) {
361
443
  top: top,
362
444
  left: left
363
445
  };
364
- };
365
- //# sourceMappingURL=util.js.map
446
+ };
@@ -1,4 +1,4 @@
1
- import { useSheetEvent } from "../../../hooks";
1
+ import { useSheetEvent } from "../../..";
2
2
  import { Button, Divider } from 'antd';
3
3
  import { useCallback } from 'react';
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -34,5 +34,4 @@ export var BtnViewer = function BtnViewer(props) {
34
34
  children: "\u5220\u9664"
35
35
  }, "delete")]
36
36
  });
37
- };
38
- //# sourceMappingURL=index.js.map
37
+ };
@@ -0,0 +1,2 @@
1
+ import { SheetType } from "../../../type";
2
+ export declare const GetCascaderViewer: (options: SheetType.OptionsType[]) => SheetType.CellViewer;
@@ -0,0 +1,11 @@
1
+ /* eslint-disable eqeqeq */
2
+ // == string 和 number 类型忽略
3
+
4
+ import { valuesTransferToLabel } from "../../util";
5
+ export var GetCascaderViewer = function GetCascaderViewer(options) {
6
+ var TypeViewer = function TypeViewer(props) {
7
+ var value = props.value;
8
+ return valuesTransferToLabel(options, value) || value;
9
+ };
10
+ return TypeViewer;
11
+ };
@@ -1,4 +1,4 @@
1
- import { useSheetEvent } from "../../../hooks";
1
+ import { useSheetEvent } from "../../..";
2
2
  import { Checkbox } from 'antd';
3
3
  import { useCallback } from 'react';
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -20,5 +20,4 @@ export var CheckViewer = function CheckViewer(props) {
20
20
  checked: value,
21
21
  onChange: handleChange
22
22
  });
23
- };
24
- //# sourceMappingURL=index.js.map
23
+ };
@@ -1,5 +1,5 @@
1
1
  import { EditFilled } from '@ant-design/icons';
2
- import { useSheetEvent } from "../../../hooks";
2
+ import { useSheetEvent } from "../../..";
3
3
  import { useCallback } from 'react';
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  import { jsxs as _jsxs } from "react/jsx-runtime";
@@ -28,5 +28,4 @@ export var EditViewer = function EditViewer(props) {
28
28
  onClick: handleClick
29
29
  })]
30
30
  });
31
- };
32
- //# sourceMappingURL=index.js.map
31
+ };
@@ -1,5 +1,5 @@
1
1
  import { MinusSquareOutlined, PlusSquareOutlined } from '@ant-design/icons';
2
- import { useSheetEvent } from "../../../hooks";
2
+ import { useSheetEvent } from "../../..";
3
3
  import { useCallback } from 'react';
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
5
5
  export var GroupViewer = function GroupViewer(props) {
@@ -20,10 +20,12 @@ export var GroupViewer = function GroupViewer(props) {
20
20
  }, [eventBus, row, record === null || record === void 0 ? void 0 : record.open]);
21
21
  if (value) {
22
22
  return /*#__PURE__*/_jsx("span", {
23
+ onMouseDown: function onMouseDown(e) {
24
+ return e.stopPropagation();
25
+ },
23
26
  onClick: handleChange,
24
27
  children: !(record !== null && record !== void 0 && record.open) ? /*#__PURE__*/_jsx(PlusSquareOutlined, {}) : /*#__PURE__*/_jsx(MinusSquareOutlined, {})
25
28
  });
26
29
  }
27
30
  return /*#__PURE__*/_jsx("span", {});
28
- };
29
- //# sourceMappingURL=index.js.map
31
+ };
@@ -2,4 +2,5 @@ export { BtnViewer } from './btnViewer';
2
2
  export { CheckViewer } from './checkViewer';
3
3
  export { EditViewer } from './editViewer';
4
4
  export { GroupViewer } from './groupViewer';
5
+ export { getSelectorViewer } from './selectorViewer';
5
6
  export { SwitchViewer } from './switchViewer';
@@ -2,5 +2,5 @@ export { BtnViewer } from "./btnViewer";
2
2
  export { CheckViewer } from "./checkViewer";
3
3
  export { EditViewer } from "./editViewer";
4
4
  export { GroupViewer } from "./groupViewer";
5
- export { SwitchViewer } from "./switchViewer";
6
- //# sourceMappingURL=index.js.map
5
+ export { getSelectorViewer } from "./selectorViewer";
6
+ export { SwitchViewer } from "./switchViewer";
@@ -0,0 +1,2 @@
1
+ import { SheetType } from "../../../type";
2
+ export declare const getSelectorViewer: (options: SheetType.Options[]) => SheetType.CellViewer;
@@ -0,0 +1,12 @@
1
+ /* eslint-disable eqeqeq */
2
+ // == string 和 number 类型忽略
3
+
4
+ export var getSelectorViewer = function getSelectorViewer(options) {
5
+ var TypeViewer = function TypeViewer(props) {
6
+ var _options$find;
7
+ return ((_options$find = options.find(function (item) {
8
+ return item.label === props.value || item.value == props.value;
9
+ })) === null || _options$find === void 0 ? void 0 : _options$find.label) || null;
10
+ };
11
+ return TypeViewer;
12
+ };
@@ -1,4 +1,4 @@
1
- import { useSheetEvent } from "../../../hooks";
1
+ import { useSheetEvent } from "../../..";
2
2
  import { Switch } from 'antd';
3
3
  import { useCallback } from 'react';
4
4
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -19,5 +19,4 @@ export var SwitchViewer = function SwitchViewer(props) {
19
19
  checked: value,
20
20
  onChange: handleChange
21
21
  });
22
- };
23
- //# sourceMappingURL=index.js.map
22
+ };
@@ -14,14 +14,16 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
14
14
  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; }
15
15
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
16
16
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
- import { Modal } from 'antd';
17
+ import { Button, Modal } from 'antd';
18
18
  import { cloneDeep, random } from 'lodash';
19
- import React, { useCallback, useRef, useState } from 'react';
20
- import { getCascaderEditor, GetDateEditor, getNumberEditor, getSelectEditor } from "../core/editor";
19
+ import React, { useCallback, useMemo, useRef, useState } from 'react';
20
+ import { getCascaderEditor, getDateEditor, getNumberEditor, getSelectEditor } from "../core/editor";
21
21
  import Table from "../core/table";
22
22
  import { BtnViewer } from "../core/viewer/btnViewer";
23
+ import { GetCascaderViewer } from "../core/viewer/cascaderViewer";
23
24
  import { EditViewer } from "../core/viewer/editViewer";
24
25
  import { SwitchViewer } from "../core/viewer/switchViewer";
26
+ import { SheetType } from "../type";
25
27
  import { jsx as _jsx } from "react/jsx-runtime";
26
28
  var Precision2MoneyEditor = getNumberEditor({
27
29
  max: 1000,
@@ -34,7 +36,7 @@ var Precision2Number = getNumberEditor({
34
36
  min: 0,
35
37
  precision: 2
36
38
  });
37
- var TypeSelector = getSelectEditor([{
39
+ var SelectorOptions = [{
38
40
  value: '1',
39
41
  label: '111111'
40
42
  }, {
@@ -43,8 +45,17 @@ var TypeSelector = getSelectEditor([{
43
45
  }, {
44
46
  value: '3',
45
47
  label: '333333'
46
- }]);
47
- var CascaderSelector = getCascaderEditor([{
48
+ }];
49
+ var getTypeViewer = function getTypeViewer(options) {
50
+ var TypeViewer = function TypeViewer(props) {
51
+ return options.find(function (item) {
52
+ return item.label === props.value || item.value == props.value;
53
+ }).label;
54
+ };
55
+ return TypeViewer;
56
+ };
57
+ var TypeSelector = getSelectEditor(SelectorOptions, 'label');
58
+ var cascaderOptions = [{
48
59
  value: 'zhejiang',
49
60
  label: 'Zhejiang',
50
61
  children: [{
@@ -66,7 +77,9 @@ var CascaderSelector = getCascaderEditor([{
66
77
  label: 'Zhong Hua Men'
67
78
  }]
68
79
  }]
69
- }]);
80
+ }];
81
+ var CascaderViewer = GetCascaderViewer(cascaderOptions);
82
+ var CascaderSelector = getCascaderEditor(cascaderOptions);
70
83
  var columns = [{
71
84
  title: 'Full Name',
72
85
  width: 100,
@@ -99,22 +112,31 @@ var columns = [{
99
112
  width: 150,
100
113
  dataIndex: 'date',
101
114
  key: 'date',
102
- editor: GetDateEditor()
115
+ editor: getDateEditor()
103
116
  // fixed: 'left',
104
117
  }, {
105
118
  title: 'select',
106
119
  width: 200,
107
120
  dataIndex: 'select',
108
- editor: TypeSelector
121
+ render: getTypeViewer(SelectorOptions),
122
+ editor: getSelectEditor(SelectorOptions, 'label')
109
123
  }, {
110
124
  title: 'Column 2',
111
125
  width: 200,
126
+ titleConfig: {
127
+ colSpan: 2
128
+ },
112
129
  dataIndex: 'address1',
130
+ align: SheetType.CellAlign.center,
113
131
  key: '2',
132
+ render: CascaderViewer,
114
133
  editor: CascaderSelector
115
134
  }, {
116
135
  title: 'Column 3',
117
136
  width: 200,
137
+ titleConfig: {
138
+ colSpan: 0
139
+ },
118
140
  dataIndex: 'address2',
119
141
  key: '3',
120
142
  editable: false,
@@ -146,7 +168,7 @@ var columns = [{
146
168
  key: '8'
147
169
  }, {
148
170
  title: 'Action',
149
- align: 'center',
171
+ align: SheetType.CellAlign.center,
150
172
  key: 'operation',
151
173
  fixed: 'right',
152
174
  width: 150,
@@ -177,8 +199,13 @@ var App = function App() {
177
199
  _useState2 = _slicedToArray(_useState, 2),
178
200
  state = _useState2[0],
179
201
  setState = _useState2[1];
202
+ var _useState3 = useState(SelectorOptions),
203
+ _useState4 = _slicedToArray(_useState3, 2),
204
+ options = _useState4[0],
205
+ setOptions = _useState4[1];
180
206
  var sheetInstance = useRef(null);
181
- var handleChange = useCallback(function (changes) {
207
+ var handleChange = useCallback(function (changes, extChange) {
208
+ console.log(extChange);
182
209
  var newState = cloneDeep(state);
183
210
  changes.forEach(function (change) {
184
211
  var row = change.row,
@@ -209,9 +236,29 @@ var App = function App() {
209
236
  address: 'London Park'
210
237
  }]));
211
238
  }, [state]);
239
+ var handleOptionsAdd = useCallback(function () {
240
+ setOptions([].concat(_toConsumableArray(options), [{
241
+ label: String("newSelect".concat(random(false))),
242
+ value: String(random(true))
243
+ }]));
244
+ }, [options]);
245
+ var antColumns = useMemo(function () {
246
+ var newColumns = [].concat(columns);
247
+ newColumns[4] = _objectSpread(_objectSpread({}, columns[4]), {}, {
248
+ render: getTypeViewer(options),
249
+ editor: getSelectEditor(options, 'value', /*#__PURE__*/_jsx(Button, {
250
+ id: "antColumnAdd",
251
+ type: "link",
252
+ onClick: handleOptionsAdd,
253
+ children: "\u65B0\u589E"
254
+ }))
255
+ });
256
+ return newColumns;
257
+ }, [options]);
212
258
  return /*#__PURE__*/_jsx(Table, {
259
+ freePaste: true,
213
260
  sheetInstance: sheetInstance,
214
- columns: columns,
261
+ columns: antColumns,
215
262
  dataSource: state,
216
263
  scroll: {
217
264
  x: '100%'
@@ -261,5 +308,4 @@ var App = function App() {
261
308
  }
262
309
  });
263
310
  };
264
- export default App;
265
- //# sourceMappingURL=antComponent.js.map
311
+ export default App;
@@ -14,7 +14,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
14
14
  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; }
15
15
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
16
16
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
- import Table from "../core/table";
17
+ import { Table } from "./..";
18
18
  import { Space, Tag } from 'antd';
19
19
  import 'antd/dist/antd.css';
20
20
  import React, { useCallback, useState } from 'react';
@@ -117,5 +117,4 @@ var App = function App() {
117
117
  onChange: onChange
118
118
  });
119
119
  };
120
- export default App;
121
- //# sourceMappingURL=basic.js.map
120
+ export default App;
@@ -60,5 +60,4 @@ var App = function App() {
60
60
  onChange: function onChange() {}
61
61
  });
62
62
  };
63
- export default App;
64
- //# sourceMappingURL=ellipsis.js.map
63
+ export default App;
@@ -85,5 +85,4 @@ var App = function App() {
85
85
  onChange: function onChange() {}
86
86
  });
87
87
  };
88
- export default App;
89
- //# sourceMappingURL=fixed.js.map
88
+ export default App;
@@ -1,3 +1,11 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ 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; }
5
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ import { cloneDeep } from 'lodash';
8
+ import { useCallback, useState } from 'react';
1
9
  import Table from "../core/table";
2
10
  import { jsx as _jsx } from "react/jsx-runtime";
3
11
  var columns = [{
@@ -29,47 +37,78 @@ var columns = [{
29
37
  }];
30
38
  var data = [{
31
39
  key: 1,
40
+ id: 1,
32
41
  name: 'John Brown',
33
42
  age: 32,
34
43
  address: 'New York No. 1 Lake Park',
35
44
  children: [{
45
+ id: 11,
36
46
  key: '1-1'
37
47
  }, {
48
+ id: 12,
38
49
  key: '1-2'
39
50
  }]
40
51
  }, {
41
52
  key: 2,
53
+ id: 2,
42
54
  name: 'Jim Green',
43
55
  age: 42,
44
56
  address: 'London No. 1 Lake Park',
45
57
  children: [{
58
+ id: 21,
46
59
  key: '2-1'
47
60
  }, {
61
+ id: 22,
48
62
  key: '2-2'
49
63
  }]
50
64
  }, {
51
65
  key: 3,
66
+ id: 3,
52
67
  name: 'Not Expandable',
53
68
  age: 29,
54
69
  address: 'Jiangsu No. 1 Lake Park'
55
70
  }, {
56
71
  key: 4,
72
+ id: 4,
57
73
  name: 'Joe Black',
58
74
  age: 32,
59
75
  address: 'Sidney No. 1 Lake Park',
60
76
  children: [{
77
+ id: 41,
61
78
  key: '4-1'
62
79
  }, {
80
+ id: 42,
63
81
  key: '4-2'
64
82
  }]
65
83
  }];
66
84
  var App = function App() {
85
+ var _useState = useState(data),
86
+ _useState2 = _slicedToArray(_useState, 2),
87
+ state = _useState2[0],
88
+ setState = _useState2[1];
89
+ var handleChange = useCallback(function (changes, extChange) {
90
+ console.log(extChange);
91
+ var newState = cloneDeep(state);
92
+ changes.forEach(function (change) {
93
+ var row = change.row,
94
+ key = change.key,
95
+ value = change.value;
96
+ newState[row][key] = value;
97
+ });
98
+ setState(newState);
99
+ }, [state]);
67
100
  return /*#__PURE__*/_jsx(Table, {
68
101
  draggable: true,
69
102
  scroll: {
70
103
  x: '100%'
71
104
  },
72
- columns: columns
105
+ columns: columns,
106
+ showBackEdit: true,
107
+ backEditStyle: {
108
+ marginLeft: '10px',
109
+ bottom: '5px',
110
+ right: '5px'
111
+ }
73
112
  // expandable={{
74
113
  // expandedRowRender: (record) => (
75
114
  // <p style={{ margin: 0 }}>{record.description}</p>
@@ -78,8 +117,7 @@ var App = function App() {
78
117
  // }}
79
118
  ,
80
119
  dataSource: data,
81
- onChange: function onChange() {}
120
+ onChange: handleChange
82
121
  });
83
122
  };
84
- export default App;
85
- //# sourceMappingURL=group.js.map
123
+ export default App;
@@ -14,7 +14,7 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
14
14
  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; }
15
15
  function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
16
16
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17
- import Table from "../core/table";
17
+ import { Table } from "./..";
18
18
  import 'antd/dist/antd.css';
19
19
  import React, { useCallback, useState } from 'react';
20
20
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -82,5 +82,4 @@ var App = function App() {
82
82
  }
83
83
  });
84
84
  };
85
- export default App;
86
- //# sourceMappingURL=selection.js.map
85
+ export default App;