linkmore-design 1.1.12 → 1.1.13-alpha.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.
Files changed (75) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/LmEditTable/DndContainer.d.ts +4 -3
  3. package/dist/LmEditTable/EditTable.d.ts +2 -0
  4. package/dist/LmEditTable/components/DraggableContainer.d.ts +7 -0
  5. package/dist/LmEditTable/components/index.d.ts +11 -0
  6. package/dist/LmEditTable/sortableItem.d.ts +3 -2
  7. package/dist/LmEditTable/util.d.ts +2 -0
  8. package/dist/LmEditTable/virtual/VirtualRow.d.ts +6 -0
  9. package/dist/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  10. package/dist/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  11. package/dist/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  12. package/dist/LmEditTable/virtual/context.d.ts +13 -0
  13. package/dist/LmEditTable/virtual/index.d.ts +4 -0
  14. package/dist/index.umd.js +479 -217
  15. package/dist/index.umd.min.js +5 -5
  16. package/dist/variables.css +29 -0
  17. package/es/IconFont/index.js +1 -1
  18. package/es/LmEditTable/DndContainer.d.ts +4 -3
  19. package/es/LmEditTable/DndContainer.js +2 -2
  20. package/es/LmEditTable/EditTable.d.ts +2 -0
  21. package/es/LmEditTable/EditTable.js +139 -150
  22. package/es/LmEditTable/components/DraggableContainer.d.ts +7 -0
  23. package/es/LmEditTable/components/DraggableContainer.js +32 -0
  24. package/es/LmEditTable/components/index.d.ts +11 -0
  25. package/es/LmEditTable/components/index.js +5 -0
  26. package/es/LmEditTable/sortableItem.d.ts +3 -2
  27. package/es/LmEditTable/sortableItem.js +15 -4
  28. package/es/LmEditTable/style/index.css +29 -0
  29. package/es/LmEditTable/style/variables.css +29 -0
  30. package/es/LmEditTable/util.d.ts +2 -0
  31. package/es/LmEditTable/util.js +47 -1
  32. package/es/LmEditTable/virtual/VirtualRow.d.ts +6 -0
  33. package/es/LmEditTable/virtual/VirtualRow.js +60 -0
  34. package/es/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  35. package/es/LmEditTable/virtual/VirtualRowBack.js +102 -0
  36. package/es/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  37. package/es/LmEditTable/virtual/VirtualTable.js +54 -0
  38. package/es/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  39. package/es/LmEditTable/virtual/VirtualWrapper.js +60 -0
  40. package/es/LmEditTable/virtual/context.d.ts +13 -0
  41. package/es/LmEditTable/virtual/context.js +54 -0
  42. package/es/LmEditTable/virtual/index.d.ts +4 -0
  43. package/es/LmEditTable/virtual/index.js +4 -0
  44. package/es/hooks/useEvent/index.js +1 -1
  45. package/es/styles/variables.css +29 -0
  46. package/lib/IconFont/index.js +1 -1
  47. package/lib/LmEditTable/DndContainer.d.ts +4 -3
  48. package/lib/LmEditTable/DndContainer.js +4 -3
  49. package/lib/LmEditTable/EditTable.d.ts +2 -0
  50. package/lib/LmEditTable/EditTable.js +135 -146
  51. package/lib/LmEditTable/components/DraggableContainer.d.ts +7 -0
  52. package/lib/LmEditTable/components/DraggableContainer.js +45 -0
  53. package/lib/LmEditTable/components/index.d.ts +11 -0
  54. package/lib/LmEditTable/components/index.js +21 -0
  55. package/lib/LmEditTable/sortableItem.d.ts +3 -2
  56. package/lib/LmEditTable/sortableItem.js +18 -5
  57. package/lib/LmEditTable/style/index.css +29 -0
  58. package/lib/LmEditTable/style/variables.css +29 -0
  59. package/lib/LmEditTable/util.d.ts +2 -0
  60. package/lib/LmEditTable/util.js +50 -0
  61. package/lib/LmEditTable/virtual/VirtualRow.d.ts +6 -0
  62. package/lib/LmEditTable/virtual/VirtualRow.js +73 -0
  63. package/lib/LmEditTable/virtual/VirtualRowBack.d.ts +6 -0
  64. package/lib/LmEditTable/virtual/VirtualRowBack.js +115 -0
  65. package/lib/LmEditTable/virtual/VirtualTable.d.ts +3 -0
  66. package/lib/LmEditTable/virtual/VirtualTable.js +71 -0
  67. package/lib/LmEditTable/virtual/VirtualWrapper.d.ts +3 -0
  68. package/lib/LmEditTable/virtual/VirtualWrapper.js +73 -0
  69. package/lib/LmEditTable/virtual/context.d.ts +13 -0
  70. package/lib/LmEditTable/virtual/context.js +64 -0
  71. package/lib/LmEditTable/virtual/index.d.ts +4 -0
  72. package/lib/LmEditTable/virtual/index.js +31 -0
  73. package/lib/hooks/useEvent/index.js +1 -1
  74. package/lib/styles/variables.css +29 -0
  75. package/package.json +1 -1
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _core = require("@dnd-kit/core");
13
13
 
@@ -45,5 +45,6 @@ var DndContainer = function DndContainer(_ref) {
45
45
  }, children);
46
46
  };
47
47
 
48
- var _default = DndContainer;
48
+ var _default = /*#__PURE__*/(0, _react.memo)(DndContainer);
49
+
49
50
  exports.default = _default;
@@ -36,9 +36,11 @@ interface ILmColumns extends TableColumnType<any> {
36
36
  export declare type TLmEditTable = {
37
37
  onChange?: (data: any[]) => void;
38
38
  columns: ILmColumns[];
39
+ virtual: boolean;
39
40
  } & ILmEditTable;
40
41
  declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<{
41
42
  onChange?: (data: any[]) => void;
42
43
  columns: ILmColumns[];
44
+ virtual: boolean;
43
45
  } & ILmEditTable & React.RefAttributes<unknown>>>;
44
46
  export default _default;
@@ -35,8 +35,6 @@ var _immer = require("immer");
35
35
 
36
36
  var _DndContainer = _interopRequireDefault(require("./DndContainer"));
37
37
 
38
- var _sortableBox = _interopRequireDefault(require("./sortableBox"));
39
-
40
38
  var _sortableBoxCol = _interopRequireDefault(require("./sortableBoxCol"));
41
39
 
42
40
  var _sortableItem = _interopRequireDefault(require("./sortableItem"));
@@ -49,8 +47,12 @@ var _UploadOss = _interopRequireDefault(require("../UploadOss"));
49
47
 
50
48
  var _util = require("./util");
51
49
 
50
+ var _components = require("./components");
51
+
52
52
  var _classnames = _interopRequireDefault(require("classnames"));
53
53
 
54
+ var _virtual = require("./virtual");
55
+
54
56
  var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P, generator) {
55
57
  function adopt(value) {
56
58
  return value instanceof P ? value : new P(function (resolve) {
@@ -105,7 +107,8 @@ var EditableContext = /*#__PURE__*/_react.default.createContext(null); // 表格
105
107
 
106
108
  var EditableRow = function EditableRow(_a) {
107
109
  var index = _a.index,
108
- props = __rest(_a, ["index"]);
110
+ virtual = _a.virtual,
111
+ props = __rest(_a, ["index", "virtual"]);
109
112
 
110
113
  var _Form$useForm = _linkmoreDesign.Form.useForm(),
111
114
  _Form$useForm2 = (0, _slicedToArray2.default)(_Form$useForm, 1),
@@ -116,7 +119,7 @@ var EditableRow = function EditableRow(_a) {
116
119
  component: false
117
120
  }, /*#__PURE__*/_react.default.createElement(EditableContext.Provider, {
118
121
  value: form
119
- }, /*#__PURE__*/_react.default.createElement("tr", Object.assign({}, props))));
122
+ }, virtual ? /*#__PURE__*/_react.default.createElement(_virtual.VirtualRow, Object.assign({}, props)) : /*#__PURE__*/_react.default.createElement("tr", Object.assign({}, props))));
120
123
  };
121
124
 
122
125
  var EditableSortRow = function EditableSortRow(_a) {
@@ -302,7 +305,7 @@ var Opetate = function Opetate(_ref) {
302
305
  }
303
306
  }), (options === null || options === void 0 ? void 0 : options.includes('add')) && (options === null || options === void 0 ? void 0 : options.includes('addInChildren')) ? /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Popover, {
304
307
  placement: "bottom",
305
- overlayClassName: 'lm_table_append_add_popover',
308
+ overlayClassName: "lm_table_append_add_popover",
306
309
  open: open,
307
310
  title: null,
308
311
  content: /*#__PURE__*/_react.default.createElement("ul", null, /*#__PURE__*/_react.default.createElement("li", {
@@ -333,14 +336,7 @@ var Opetate = function Opetate(_ref) {
333
336
  return handleAdd(record, (options === null || options === void 0 ? void 0 : options.includes('addInChildren')) ? true : false);
334
337
  }
335
338
  }));
336
- }; // const isValidValue = (verifyValue) => {
337
- // const toStringValue = JSON.stringify(verifyValue);
338
- // if (verifyValue === undefined || verifyValue === null || verifyValue === '' || toStringValue === '[]' || toStringValue === '{}') {
339
- // return false;
340
- // }
341
- // return true;
342
- // }
343
-
339
+ };
344
340
  /*
345
341
  表格单元格
346
342
  editEnum: 下拉框时的数据数组(非数组时是配置设置)
@@ -392,6 +388,12 @@ var EditableCell = function EditableCell(props) {
392
388
 
393
389
  var inputRef = (0, _react.useRef)(null);
394
390
  var form = (0, _react.useContext)(EditableContext);
391
+
392
+ var _useState5 = (0, _react.useState)(false),
393
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
394
+ hoverStatus = _useState6[0],
395
+ setHoverStatus = _useState6[1];
396
+
395
397
  (0, _react.useEffect)(function () {
396
398
  var _a;
397
399
 
@@ -402,13 +404,7 @@ var EditableCell = function EditableCell(props) {
402
404
 
403
405
  var toggleEdit = function toggleEdit() {
404
406
  setEditing(!editing); // form.setFieldsValue({ [dataIndex]: record[dataIndex] });
405
- }; // const checkCellRef = useRef(null)
406
- // const focusCapturedRef = useRef(false);
407
- // const curValue = useMemo(() => {
408
- // return record?.dataIndex
409
- // }, [record])
410
- // const curValueIsValid = isValidValue(curValue);
411
- // 校验保存
407
+ }; // 校验保存
412
408
 
413
409
 
414
410
  var save = function save(row) {
@@ -491,15 +487,15 @@ var EditableCell = function EditableCell(props) {
491
487
  /** 快捷刷子,把当前的所有列的值,刷成当前的选中的列 */
492
488
 
493
489
 
494
- var copyKey = function copyKey(e) {
490
+ var copyKey = function copyKey(e, type) {
495
491
  e === null || e === void 0 ? void 0 : e.stopPropagation();
496
492
  var dataIndex = col.dataIndex;
497
- handleCopy === null || handleCopy === void 0 ? void 0 : handleCopy(dataIndex, record[dataIndex]);
493
+ handleCopy === null || handleCopy === void 0 ? void 0 : handleCopy(dataIndex, record[dataIndex], type, props.rowIndex);
498
494
  };
499
495
 
500
496
  var Control = function Control(con) {
501
497
  var resultComponentProps = (0, _lodash.isFunction)(componentProps) ? componentProps === null || componentProps === void 0 ? void 0 : componentProps(record, col) : componentProps;
502
- var clearAttrComponentProps = (0, _lodash.omit)(resultComponentProps, ['optionOnly', 'isOnlyValue']);
498
+ var clearAttrComponentProps = (0, _lodash.omit)(resultComponentProps, ['optionOnly', 'isOnlyValue', 'quickcopy']);
503
499
 
504
500
  switch (con) {
505
501
  case 'input':
@@ -520,12 +516,6 @@ var EditableCell = function EditableCell(props) {
520
516
  noStyle: true
521
517
  }, /*#__PURE__*/_react.default.cloneElement(resultComponentProps.addonAfter, {
522
518
  onChange: handleFormItemChange
523
- })) : null,
524
- suffix: resultComponentProps.quickcopy ? /*#__PURE__*/_react.default.createElement("span", {
525
- className: 'lm_table_quickcopy'
526
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
527
- onClick: copyKey,
528
- type: 'lmweb-icon_m_brush'
529
519
  })) : null
530
520
  }));
531
521
 
@@ -608,7 +598,7 @@ var EditableCell = function EditableCell(props) {
608
598
 
609
599
  case 'switch':
610
600
  return /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Switch, Object.assign({
611
- size: 'small'
601
+ size: "small"
612
602
  }, clearAttrComponentProps, {
613
603
  onChange: handleFormItemChange
614
604
  }));
@@ -697,8 +687,7 @@ var EditableCell = function EditableCell(props) {
697
687
  }
698
688
 
699
689
  return childNode;
700
- }, [col, isEdit, editing, getLength]); // const [childNode, setChildNode] = useState(getMemoChildNode);
701
- // 出现死循环找我
690
+ }, [col, isEdit, editing, getLength]); // 出现死循环找我
702
691
 
703
692
  (0, _react.useEffect)(function () {
704
693
  var editable = col.editable,
@@ -706,22 +695,54 @@ var EditableCell = function EditableCell(props) {
706
695
 
707
696
  if (isEdit && editable) {
708
697
  form.setFieldsValue((0, _defineProperty2.default)({}, dataIndex, editable === 'date' ? (0, _moment.default)(record[dataIndex]) : record[dataIndex]));
709
- } // if (
710
- // (isEdit && editable && record[dataIndex]) ||
711
- // (isHoverEdit && editable && record[dataIndex])
712
- // ) {
713
- // form.setFieldsValue({
714
- // [dataIndex]: editable === 'date' ? moment(record[dataIndex]) : record[dataIndex],
715
- // })
716
- // }
717
-
698
+ }
718
699
  }, [record]);
700
+
701
+ var handleTdHover = function handleTdHover() {
702
+ setHoverStatus(true);
703
+ };
704
+
705
+ var handleTdMouseOut = function handleTdMouseOut() {
706
+ setHoverStatus(false);
707
+ };
708
+
719
709
  return /*#__PURE__*/_react.default.createElement("td", Object.assign({}, (0, _lodash.omit)(clearProps, ['dataIndex']), {
720
710
  className: (0, _classnames.default)(clearProps === null || clearProps === void 0 ? void 0 : clearProps.className, 'lm_custom_cell_td'),
711
+ onMouseEnter: componentProps.quickcopy ? handleTdHover : undefined,
712
+ onMouseLeave: componentProps.quickcopy ? handleTdMouseOut : undefined,
721
713
  key: "r".concat(rowIndex, "_c").concat(colIndex)
722
- }), getMemoChildNode);
714
+ }), hoverStatus && props.rowIndex > 0 && /*#__PURE__*/_react.default.createElement("span", {
715
+ className: 'quick_copy_warp quick_copy_up',
716
+ onClick: function onClick(e) {
717
+ return copyKey(e, 'up');
718
+ }
719
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
720
+ type: 'lmweb-icon_up'
721
+ })), getMemoChildNode, hoverStatus && props.rowIndex < props.getLength - 1 && /*#__PURE__*/_react.default.createElement("span", {
722
+ className: 'quick_copy_warp quick_copy_down',
723
+ onClick: function onClick(e) {
724
+ return copyKey(e, 'down');
725
+ }
726
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.IconFont, {
727
+ type: 'lmweb-icon_down'
728
+ })));
723
729
  };
730
+ /** true 不刷新, false 刷新 */
731
+
732
+
733
+ var MemoEditableCell = /*#__PURE__*/(0, _react.memo)(EditableCell, function (prev, next) {
734
+ var pickProps = ['record', 'colIndex'];
735
+ var p = (0, _lodash.pick)(prev, pickProps);
736
+ var n = (0, _lodash.pick)(next, pickProps); // console.log(prev, next, '22', checkMemoShouldUploadSpecialFun(prev, next), isEqual(p, n))
724
737
 
738
+ /** TODO: 在record中带有children,子列表数据修改之后,会导致父级的record对比不一样 */
739
+
740
+ if (!(0, _util.checkMemoShouldUploadSpecialFun)(prev, next)) {
741
+ return false;
742
+ }
743
+
744
+ return (0, _lodash.isEqual)(p, n);
745
+ });
725
746
  var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
726
747
  var defaultData = props.value,
727
748
  columns = props.columns,
@@ -739,6 +760,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
739
760
  _props$quickOpetateCl = props.quickOpetateClearAll,
740
761
  quickOpetateClearAll = _props$quickOpetateCl === void 0 ? true : _props$quickOpetateCl,
741
762
  rowSelection = props.rowSelection,
763
+ virtual = props.virtual,
742
764
  sortOpen = props.sortOpen,
743
765
  colSortOpen = props.colSortOpen,
744
766
  filterChange = props.filterChange,
@@ -747,7 +769,8 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
747
769
  recordCreatorProps = props.recordCreatorProps,
748
770
  _props$shouldUpdate = props.shouldUpdate,
749
771
  shouldUpdate = _props$shouldUpdate === void 0 ? false : _props$shouldUpdate,
750
- resetProps = __rest(props, ["value", "columns", "isEdit", "isAdd", "onChange", "rowKey", "rowHoverEdit", "isUseForm", "isHoverEdit", "useQuickOpetate", "quickOpetateClearAll", "rowSelection", "sortOpen", "colSortOpen", "filterChange", "size", "recordCreatorProps", "shouldUpdate"]); // const [dataSource, setDataSource] = useState([]);
772
+ resetProps = __rest(props // const [dataSource, setDataSource] = useState([]);
773
+ , ["value", "columns", "isEdit", "isAdd", "onChange", "rowKey", "rowHoverEdit", "isUseForm", "isHoverEdit", "useQuickOpetate", "quickOpetateClearAll", "rowSelection", "virtual", "sortOpen", "colSortOpen", "filterChange", "size", "recordCreatorProps", "shouldUpdate"]); // const [dataSource, setDataSource] = useState([]);
751
774
 
752
775
 
753
776
  var _useControllableValue = (0, _ahooks.useControllableValue)({
@@ -759,20 +782,15 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
759
782
  setDataSource = _useControllableValue2[1]; // const [count, setCount] = useState(0);
760
783
 
761
784
 
762
- var _useState5 = (0, _react.useState)({}),
763
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
764
- _valid = _useState6[0],
765
- setValid = _useState6[1];
766
-
767
- var _useState7 = (0, _react.useState)([]),
785
+ var _useState7 = (0, _react.useState)({}),
768
786
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
769
- localRowSelectList = _useState8[0],
770
- setLocalRowSelectList = _useState8[1];
787
+ _valid = _useState8[0],
788
+ setValid = _useState8[1];
771
789
 
772
790
  var _useState9 = (0, _react.useState)([]),
773
791
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
774
- sortEditTable = _useState10[0],
775
- setCallBackFalg = _useState10[1];
792
+ localRowSelectList = _useState10[0],
793
+ setLocalRowSelectList = _useState10[1];
776
794
  /** 当前展开的列 */
777
795
 
778
796
 
@@ -781,20 +799,10 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
781
799
  expandedRowKeys = _useState12[0],
782
800
  setExpandedRowKeys = _useState12[1];
783
801
 
784
- var dataSourceRef = (0, _react.useRef)([]);
785
- var sortDataSorceRef = (0, _react.useRef)([]);
786
- var deepDataSourceRef = (0, _react.useRef)([]);
787
-
788
- var onSortEnd = function onSortEnd(active, over) {
789
- var cloneArr = (0, _toConsumableArray2.default)(dataSourceRef.current);
790
- var oldIndex = cloneArr.findIndex(function (v) {
791
- return v[_rowKey] === active;
792
- });
793
- var newIndex = cloneArr.findIndex(function (v) {
794
- return v[_rowKey] === over;
795
- });
796
- setDataSource((0, _sortable.arrayMove)(cloneArr, oldIndex, newIndex));
797
- };
802
+ var dataSourceRef = (0, _react.useRef)(dataSource);
803
+ var deepDataSourceRef = (0, _react.useRef)((0, _util.deepDataSourcePreKeys)(dataSource, _rowKey));
804
+ dataSourceRef.current = dataSource;
805
+ deepDataSourceRef.current = (0, _util.deepDataSourcePreKeys)(dataSource, _rowKey);
798
806
 
799
807
  var onColSortEnd = function onColSortEnd(active, over) {
800
808
  var _a;
@@ -832,29 +840,9 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
832
840
  });
833
841
  setDataSource(res); // onChange?.(res)
834
842
  };
835
-
836
- (0, _react.useEffect)(function () {
837
- var _a;
838
-
839
- dataSourceRef.current = dataSource;
840
- deepDataSourceRef.current = (0, _util.deepDataSourcePreKeys)(dataSource, _rowKey);
841
-
842
- if (sortOpen) {
843
- var dataSourceKeys = dataSource === null || dataSource === void 0 ? void 0 : dataSource.map(function (item) {
844
- return item[_rowKey];
845
- }).join(',');
846
- var setCallBackFalgKeys = ((_a = sortDataSorceRef.current) === null || _a === void 0 ? void 0 : _a.map(function (item) {
847
- return item[_rowKey];
848
- }).join(',')) || '';
849
-
850
- if (dataSourceKeys !== setCallBackFalgKeys) {
851
- setCallBackFalg(dataSource);
852
- sortDataSorceRef.current = dataSource;
853
- }
854
- }
855
- }, [dataSource]);
856
843
  /** 本地缓存一个选择数据 */
857
844
 
845
+
858
846
  (0, _react.useEffect)(function () {
859
847
  if (rowSelection) {
860
848
  var selectedRowKeys = rowSelection.selectedRowKeys;
@@ -1061,10 +1049,12 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1061
1049
  setDataSource(res);
1062
1050
  };
1063
1051
 
1064
- var handleCopy = function handleCopy(key, value) {
1052
+ var handleCopy = function handleCopy(key, value, type, rowIndex) {
1065
1053
  var res = (0, _immer.produce)(dataSourceRef.current, function (draft) {
1066
- draft === null || draft === void 0 ? void 0 : draft.forEach(function (item) {
1067
- return item[key] = value;
1054
+ draft === null || draft === void 0 ? void 0 : draft.forEach(function (item, index) {
1055
+ if (type === 'up' && index < rowIndex || type === 'down' && index > rowIndex) {
1056
+ item[key] = value;
1057
+ }
1068
1058
  });
1069
1059
  });
1070
1060
  setDataSource(res);
@@ -1129,6 +1119,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1129
1119
  width: 48,
1130
1120
  maxWidth: 48,
1131
1121
  className: 'drag-visible',
1122
+ fixed: 'left',
1132
1123
  render: function render(_, record) {
1133
1124
  return /*#__PURE__*/_react.default.createElement(_DragHandle.default, {
1134
1125
  id: record[_rowKey] || record.id
@@ -1177,19 +1168,6 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1177
1168
  }
1178
1169
 
1179
1170
  var newCol = Object.assign(Object.assign({}, col), {
1180
- shouldCellUpdate: function shouldCellUpdate(record, prevRecord) {
1181
- var _a;
1182
-
1183
- var dataIndex = col.dataIndex,
1184
- editable = col.editable,
1185
- relevanceCols = col.relevanceCols;
1186
-
1187
- if ((col === null || col === void 0 ? void 0 : col.fixed) || hasDisableOptions && hasDisableOptions.includes(dataIndex) || ((_a = col.componentProps) === null || _a === void 0 ? void 0 : _a.options) || editable === 'render' || !!relevanceCols || !!shouldUpdate || !!record.children) {
1188
- return true;
1189
- }
1190
-
1191
- return record[dataIndex] !== prevRecord[dataIndex];
1192
- },
1193
1171
  onCell: function onCell(record, rowIndex) {
1194
1172
  return {
1195
1173
  getLength: dataSource.length,
@@ -1229,20 +1207,19 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1229
1207
  return mapColumns(col, index);
1230
1208
  });
1231
1209
  return res;
1232
- }, [columns, isAdd, sortOpen, useQuickOpetate, sortEditTable, dataSource, (0, _toConsumableArray2.default)(memoOptions)]);
1233
- var DraggableContainer = (0, _react.useCallback)(function (_a) {
1234
- var _b;
1210
+ }, [columns, isAdd, sortOpen, useQuickOpetate, dataSource, (0, _toConsumableArray2.default)(memoOptions)]);
1235
1211
 
1236
- var props = __rest(_a, []);
1212
+ var onSortEnd = function onSortEnd(active, over) {
1213
+ var cloneArr = (0, _toConsumableArray2.default)(dataSourceRef.current);
1214
+ var oldIndex = cloneArr.findIndex(function (v) {
1215
+ return v[_rowKey] === active;
1216
+ });
1217
+ var newIndex = cloneArr.findIndex(function (v) {
1218
+ return v[_rowKey] === over;
1219
+ });
1220
+ setDataSource((0, _sortable.arrayMove)(cloneArr, oldIndex, newIndex));
1221
+ };
1237
1222
 
1238
- return /*#__PURE__*/_react.default.createElement(_DndContainer.default, {
1239
- move: onSortEnd
1240
- }, /*#__PURE__*/_react.default.createElement(_sortableBox.default, {
1241
- items: (_b = dataSourceRef.current) === null || _b === void 0 ? void 0 : _b.map(function (item) {
1242
- return item[_rowKey];
1243
- })
1244
- }, /*#__PURE__*/_react.default.createElement("tbody", Object.assign({}, props))));
1245
- }, [sortEditTable]);
1246
1223
  var colDraggableContainer = (0, _react.useCallback)(function (_a) {
1247
1224
  var _b;
1248
1225
 
@@ -1260,34 +1237,6 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1260
1237
  }, child);
1261
1238
  }));
1262
1239
  }, [columns]);
1263
- var config = (0, _react.useMemo)(function () {
1264
- var component = {
1265
- body: Object.assign({
1266
- row: sortOpen ? EditableSortRow : EditableRow,
1267
- cell: EditableCell
1268
- }, sortOpen ? {
1269
- wrapper: DraggableContainer
1270
- } : {})
1271
- };
1272
-
1273
- if (colSortOpen) {
1274
- component['header'] = {
1275
- row: colDraggableContainer
1276
- };
1277
- }
1278
-
1279
- return Object.assign({
1280
- pagination: false,
1281
- tableLayout: 'fixed',
1282
- scroll: {
1283
- x: '100%'
1284
- },
1285
- rowKey: function rowKey(record) {
1286
- return record[_rowKey] || record.index || Math.random();
1287
- },
1288
- components: component
1289
- }, resetProps);
1290
- }, [resultColumns, dataSource, sortOpen, colSortOpen, size]);
1291
1240
  (0, _react.useImperativeHandle)(ref, function () {
1292
1241
  return {
1293
1242
  setRow: handleSave,
@@ -1299,6 +1248,46 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1299
1248
  var isShowAddAction = (0, _react.useMemo)(function () {
1300
1249
  return isEdit && isAdd || isHoverEdit && isAdd;
1301
1250
  }, [isEdit, isAdd, isHoverEdit]);
1251
+ var config = (0, _react.useRef)(Object.assign({
1252
+ pagination: false,
1253
+ tableLayout: 'fixed',
1254
+ scroll: {
1255
+ x: '100%'
1256
+ },
1257
+ rowKey: function rowKey(record) {
1258
+ return record[_rowKey] || record.index || Math.random();
1259
+ },
1260
+ components: {
1261
+ table: virtual ? _virtual.VirtualTable : null,
1262
+ body: Object.assign({
1263
+ row: function row(rowProps) {
1264
+ return sortOpen ? EditableSortRow(Object.assign(Object.assign({}, rowProps), {
1265
+ virtual: virtual
1266
+ })) : EditableRow(Object.assign(Object.assign({}, rowProps), {
1267
+ virtual: virtual
1268
+ }));
1269
+ },
1270
+ cell: MemoEditableCell
1271
+ }, sortOpen ? {
1272
+ wrapper: function wrapper(wrapperProps) {
1273
+ var _a;
1274
+
1275
+ return (0, _components.DraggableContainer)(Object.assign(Object.assign({}, wrapperProps), {
1276
+ virtual: virtual,
1277
+ keys: (_a = dataSourceRef.current) === null || _a === void 0 ? void 0 : _a.map(function (item) {
1278
+ return item[_rowKey];
1279
+ }),
1280
+ onSortEnd: onSortEnd
1281
+ }));
1282
+ }
1283
+ } : virtual ? {
1284
+ wrapper: _virtual.VirtualWrapper
1285
+ } : {}),
1286
+ header: {
1287
+ row: colSortOpen ? colDraggableContainer : null
1288
+ }
1289
+ }
1290
+ }, resetProps));
1302
1291
 
1303
1292
  if (colSortOpen) {
1304
1293
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -1309,7 +1298,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1309
1298
  items: columns.reduce(function (acc, item) {
1310
1299
  return [].concat((0, _toConsumableArray2.default)(acc), [item.dataIndex]);
1311
1300
  }, [])
1312
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config, {
1301
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config.current, {
1313
1302
  size: size || 'small',
1314
1303
  columns: resultColumns,
1315
1304
  rowClassName: "editable-row",
@@ -1343,7 +1332,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1343
1332
 
1344
1333
  return /*#__PURE__*/_react.default.createElement("div", {
1345
1334
  className: "lm_editTable_warpper"
1346
- }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config, {
1335
+ }, /*#__PURE__*/_react.default.createElement(_linkmoreDesign.Table, Object.assign({}, config.current, {
1347
1336
  size: size || 'small',
1348
1337
  columns: resultColumns,
1349
1338
  rowClassName: "editable-row",
@@ -0,0 +1,7 @@
1
+ declare const DraggableContainer: ({ keys, onSortEnd, virtual, ...props }: {
2
+ [x: string]: any;
3
+ keys: any;
4
+ onSortEnd: any;
5
+ virtual: any;
6
+ }) => JSX.Element;
7
+ export default DraggableContainer;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _DndContainer = _interopRequireDefault(require("../DndContainer"));
13
+
14
+ var _sortableBox = _interopRequireDefault(require("../sortableBox"));
15
+
16
+ var _virtual = require("../virtual");
17
+
18
+ var __rest = void 0 && (void 0).__rest || function (s, e) {
19
+ var t = {};
20
+
21
+ for (var p in s) {
22
+ if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
23
+ }
24
+
25
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
26
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
27
+ }
28
+ return t;
29
+ };
30
+
31
+ var DraggableContainer = function DraggableContainer(_a) {
32
+ var keys = _a.keys,
33
+ onSortEnd = _a.onSortEnd,
34
+ virtual = _a.virtual,
35
+ props = __rest(_a, ["keys", "onSortEnd", "virtual"]);
36
+
37
+ return /*#__PURE__*/_react.default.createElement(_DndContainer.default, {
38
+ move: onSortEnd
39
+ }, /*#__PURE__*/_react.default.createElement(_sortableBox.default, {
40
+ items: keys
41
+ }, virtual ? /*#__PURE__*/_react.default.createElement(_virtual.VirtualWrapper, Object.assign({}, props)) : /*#__PURE__*/_react.default.createElement("tbody", Object.assign({}, props))));
42
+ };
43
+
44
+ var _default = DraggableContainer;
45
+ exports.default = _default;
@@ -0,0 +1,11 @@
1
+ import DraggableContainer from './DraggableContainer';
2
+ export { DraggableContainer };
3
+ declare const _default: {
4
+ DraggableContainer: ({ keys, onSortEnd, virtual, ...props }: {
5
+ [x: string]: any;
6
+ keys: any;
7
+ onSortEnd: any;
8
+ virtual: any;
9
+ }) => JSX.Element;
10
+ };
11
+ export default _default;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "DraggableContainer", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _DraggableContainer.default;
12
+ }
13
+ });
14
+ exports.default = void 0;
15
+
16
+ var _DraggableContainer = _interopRequireDefault(require("./DraggableContainer"));
17
+
18
+ var _default = {
19
+ DraggableContainer: _DraggableContainer.default
20
+ };
21
+ exports.default = _default;
@@ -1,2 +1,3 @@
1
- declare const SortableItem: (props: any) => JSX.Element;
2
- export default SortableItem;
1
+ import React from 'react';
2
+ declare const _default: React.MemoExoticComponent<(props: any) => JSX.Element>;
3
+ export default _default;
@@ -1,18 +1,20 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _react = _interopRequireDefault(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _sortable = require("@dnd-kit/sortable");
13
13
 
14
14
  var _utilities = require("@dnd-kit/utilities");
15
15
 
16
+ var _virtual = require("./virtual");
17
+
16
18
  var __rest = void 0 && (void 0).__rest || function (s, e) {
17
19
  var t = {};
18
20
 
@@ -30,7 +32,8 @@ var SortableItem = function SortableItem(props) {
30
32
  var key = props['data-row-key'],
31
33
  children = props.children,
32
34
  className = props.className,
33
- resetField = __rest(props, ['data-row-key', "children", "className"]);
35
+ virtual = props.virtual,
36
+ resetField = __rest(props, ['data-row-key', "children", "className", "virtual"]);
34
37
 
35
38
  var _useSortable = (0, _sortable.useSortable)({
36
39
  id: key
@@ -44,12 +47,22 @@ var SortableItem = function SortableItem(props) {
44
47
  transform: _utilities.CSS.Transform.toString(transform),
45
48
  transition: transition
46
49
  };
47
- return /*#__PURE__*/_react.default.createElement("tr", Object.assign({}, resetField, {
50
+
51
+ if (!virtual) {
52
+ return /*#__PURE__*/_react.default.createElement("tr", Object.assign({}, resetField, {
53
+ ref: setNodeRef,
54
+ key: key,
55
+ style: style
56
+ }, attributes), children);
57
+ }
58
+
59
+ return /*#__PURE__*/_react.default.createElement(_virtual.VirtualRow, Object.assign({}, resetField, {
48
60
  ref: setNodeRef,
49
61
  key: key,
50
62
  style: style
51
63
  }, attributes), children);
52
64
  };
53
65
 
54
- var _default = SortableItem;
66
+ var _default = /*#__PURE__*/(0, _react.memo)(SortableItem);
67
+
55
68
  exports.default = _default;