linkmore-design 1.1.12 → 1.1.13-alpha.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 (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 +471 -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 +37 -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 +40 -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
@@ -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,55 @@ 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))
737
+ // console.log(prev, next, '-sss')
724
738
 
739
+ /** TODO: 在record中带有children,子列表数据修改之后,会导致父级的record对比不一样 */
740
+
741
+ if (!(0, _util.checkMemoShouldUploadSpecialFun)(prev, next)) {
742
+ return false;
743
+ }
744
+
745
+ return (0, _lodash.isEqual)(p, n);
746
+ });
725
747
  var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
726
748
  var defaultData = props.value,
727
749
  columns = props.columns,
@@ -739,6 +761,7 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
739
761
  _props$quickOpetateCl = props.quickOpetateClearAll,
740
762
  quickOpetateClearAll = _props$quickOpetateCl === void 0 ? true : _props$quickOpetateCl,
741
763
  rowSelection = props.rowSelection,
764
+ virtual = props.virtual,
742
765
  sortOpen = props.sortOpen,
743
766
  colSortOpen = props.colSortOpen,
744
767
  filterChange = props.filterChange,
@@ -747,7 +770,8 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
747
770
  recordCreatorProps = props.recordCreatorProps,
748
771
  _props$shouldUpdate = props.shouldUpdate,
749
772
  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([]);
773
+ resetProps = __rest(props // const [dataSource, setDataSource] = useState([]);
774
+ , ["value", "columns", "isEdit", "isAdd", "onChange", "rowKey", "rowHoverEdit", "isUseForm", "isHoverEdit", "useQuickOpetate", "quickOpetateClearAll", "rowSelection", "virtual", "sortOpen", "colSortOpen", "filterChange", "size", "recordCreatorProps", "shouldUpdate"]); // const [dataSource, setDataSource] = useState([]);
751
775
 
752
776
 
753
777
  var _useControllableValue = (0, _ahooks.useControllableValue)({
@@ -759,20 +783,15 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
759
783
  setDataSource = _useControllableValue2[1]; // const [count, setCount] = useState(0);
760
784
 
761
785
 
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)([]),
786
+ var _useState7 = (0, _react.useState)({}),
768
787
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
769
- localRowSelectList = _useState8[0],
770
- setLocalRowSelectList = _useState8[1];
788
+ _valid = _useState8[0],
789
+ setValid = _useState8[1];
771
790
 
772
791
  var _useState9 = (0, _react.useState)([]),
773
792
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
774
- sortEditTable = _useState10[0],
775
- setCallBackFalg = _useState10[1];
793
+ localRowSelectList = _useState10[0],
794
+ setLocalRowSelectList = _useState10[1];
776
795
  /** 当前展开的列 */
777
796
 
778
797
 
@@ -781,20 +800,10 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
781
800
  expandedRowKeys = _useState12[0],
782
801
  setExpandedRowKeys = _useState12[1];
783
802
 
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
- };
803
+ var dataSourceRef = (0, _react.useRef)(dataSource);
804
+ var deepDataSourceRef = (0, _react.useRef)((0, _util.deepDataSourcePreKeys)(dataSource, _rowKey));
805
+ dataSourceRef.current = dataSource;
806
+ deepDataSourceRef.current = (0, _util.deepDataSourcePreKeys)(dataSource, _rowKey);
798
807
 
799
808
  var onColSortEnd = function onColSortEnd(active, over) {
800
809
  var _a;
@@ -832,29 +841,9 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
832
841
  });
833
842
  setDataSource(res); // onChange?.(res)
834
843
  };
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
844
  /** 本地缓存一个选择数据 */
857
845
 
846
+
858
847
  (0, _react.useEffect)(function () {
859
848
  if (rowSelection) {
860
849
  var selectedRowKeys = rowSelection.selectedRowKeys;
@@ -1061,10 +1050,12 @@ var EditTable = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
1061
1050
  setDataSource(res);
1062
1051
  };
1063
1052
 
1064
- var handleCopy = function handleCopy(key, value) {
1053
+ var handleCopy = function handleCopy(key, value, type, rowIndex) {
1065
1054
  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;
1055
+ draft === null || draft === void 0 ? void 0 : draft.forEach(function (item, index) {
1056
+ if (type === 'up' && index < rowIndex || type === 'down' && index > rowIndex) {
1057
+ item[key] = value;
1058
+ }
1068
1059
  });
1069
1060
  });
1070
1061
  setDataSource(res);
@@ -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;
@@ -549,6 +549,9 @@ p {
549
549
  letter-spacing: 0px;
550
550
  color: var(--color-85);
551
551
  }
552
+ .lm_editTable_warpper .lm_custom_cell_td {
553
+ position: relative;
554
+ }
552
555
  .lm_editTable_warpper .lm_custom_cell_td .ant-form-item-control-input-content {
553
556
  display: flex;
554
557
  flex-direction: row;
@@ -560,6 +563,32 @@ p {
560
563
  .lm_editTable_warpper .lm_custom_cell_td .ant-table-row-expand-icon {
561
564
  margin-top: 6px;
562
565
  }
566
+ .lm_editTable_warpper .lm_custom_cell_td .quick_copy_warp {
567
+ font-size: 8px;
568
+ position: absolute;
569
+ left: calc(50% - 10px);
570
+ z-index: 100;
571
+ width: 20px;
572
+ height: 10px;
573
+ background-color: var(--color-6);
574
+ display: flex;
575
+ align-items: center;
576
+ justify-content: center;
577
+ color: #D8D8D8;
578
+ }
579
+ .lm_editTable_warpper .lm_custom_cell_td .quick_copy_warp:hover {
580
+ cursor: pointer;
581
+ background-color: var(--primary-color);
582
+ color: #fff;
583
+ }
584
+ .lm_editTable_warpper .lm_custom_cell_td .quick_copy_up {
585
+ top: -4px;
586
+ left: calc(50% - 10px);
587
+ }
588
+ .lm_editTable_warpper .lm_custom_cell_td .quick_copy_down {
589
+ bottom: -6px;
590
+ left: calc(50% - 10px);
591
+ }
563
592
  .lm_editTable_warpper .lm_editTable_cell_edit {
564
593
  height: 40px;
565
594
  padding: 8px 8px !important;