es-grid-template 1.9.27 → 1.9.29

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.
@@ -11,4 +11,4 @@ const colorDark = "#e6e4f3e6";
11
11
  export const GridStyle = styled.div.withConfig({
12
12
  displayName: "GridStyle",
13
13
  componentId: "es-grid-template__sc-rs980s-0"
14
- })(["&.", "-grid{color:", ";font-size:13px;background-color:", ";table{table-layout:fixed;border-collapse:separate;border-spacing:0;}.", "-grid-container{border:1px solid ", ";.", "-grid-thead{&:has(.resizer.isResizing){.", "-grid-cell{touch-action:none;user-select:none;}}.", "-grid-cell{background-color:#ffffff;&:has(.resizer.isResizing){touch-action:none;user-select:none;}.resizer{cursor:col-resize;height:100%;position:absolute;right:0;top:0;touch-action:none;user-select:none;width:5px;}}}tbody{.", "-grid-row{&.", "-grid-row-parent{.", "-grid-cell{font-weight:600;background-color:#f5f5f5;}}}}.", "-grid-tfoot{z-index:3 !important;.ui-rc-grid-footer-row{.ui-rc-grid-cell{border-top:1px solid ", ";border-bottom:1px solid ", ";font-weight:500;}}}.", "-grid-cell{padding:7px 8px;.class-content:has(*){background:lightblue;}.class-content:not(:has(*)){background:lightgreen;}&.", "-grid-cell-text-center{text-align:center;justify-content:center;}&.", "-grid-cell-text-righ{text-align:right;justify-content:flex-end;}}.", "-grid-cell:not(:has(*)){&.", "-grid-cell-text-center{text-align:center;justify-content:center;}&.", "-grid-cell-text-right{text-align:right;justify-content:flex-end;}&.", "-grid-cell-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}}&.", "-grid-light{.", "-grid-container{.", "-grid-thead{z-index:3 !important;background-color:", ";font-weight:500;.", "-grid-cell{font-weight:inherit;color:", ";background-color:#ffffff;border-inline-end:1px solid ", ";border-bottom:1px solid ", ";&.ui-rc-grid-cell-ellipsis{.ui-rc-table-column-title,.", "-grid-cell-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}&.ui-rc-grid-cell-wrap{.ui-rc-table-column-title,.", "-grid-cell-text-wrap{white-space:normal;word-break:break-word;overflow:hidden;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "-grid-filter-column{display:flex;justify-content:space-between;width:100%;align-items:center;position:relative;}.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}.resizer{cursor:col-resize;height:100%;position:absolute;right:0;top:0;touch-action:none;user-select:none;width:5px;}.resizer.isResizing{opacity:1;}}}.", "-grid-tbody{.", "-grid-row{background-color:", ";color:", ";}}tbody{background-color:", ";color:", ";.", "-grid-row{&.ui-rc-grid-row-selected{.", "-grid-cell{background-color:", ";}}}.", "-grid-cell{outline:none;background-color:#ffffff;border-inline-end:1px solid ", ";border-bottom:1px solid ", ";&.ui-rc-grid-cell-selected{background-color:", " !important;}&.disable{background-color:#f0f0f0;}&.cell-editable{user-select:none;&.cell-border-top{&::after{content:\"\";position:absolute;top:0px;left:0;height:1px;width:100%;border-top:1px solid ", ";pointer-events:none;z-index:1;}}&.cell-border-bottom{border-bottom:1px solid ", ";}&.cell-border-left{&::before{content:\"\";position:absolute;top:0;left:0;height:102%;width:1px;border-left:1px solid ", ";pointer-events:none;z-index:1;}}&.cell-border-right{border-inline-end:1px solid ", ";}&.cell-paste-border-top{&::after{content:\"\";position:absolute;top:0px;left:0;height:1px;width:100%;border-top:1px dashed #949494;pointer-events:none;z-index:1;}&.ui-rc-grid-cell-fix-left-last{&::after{left:-100%;}}&.ui-rc-grid-cell-fix-right-first{&::after{left:100%;}}}&.cell-paste-border-bottom{border-bottom:1px dashed #949494;}&.cell-paste-border-left{&::before{content:\"\";position:absolute;top:0;left:0;height:102%;width:1px;border-left:1px dashed #949494;pointer-events:none;z-index:1;}}&.cell-paste-border-right{border-inline-end:1px dashed #949494;}.dragging-point{width:6px;height:6px;position:absolute;cursor:crosshair;right:0px;bottom:0px;&.hidden{display:none;}.dot-point{position:absolute;width:6px;height:6px;border-radius:0px;background-color:", ";bottom:0;right:0;}}}&.cell-editing{padding:0;&:focus-visible{outline:none;}.ant-form-item,.ant-row.ant-form-item-row,.ant-col.ant-form-item-control,.ant-form-item-control-input,.ant-form-item-control-input-content,.ant-input{height:100% !important;&:focus-visible{outline:none;}}textarea.ant-input{line-height:1.8;height:36px !important;min-height:36px !important;}input.be-cell-editing,.ant-picker,.ui-rc-select-selector,.ui-rc-table-select-selector{padding-inline:7px;}.", "-checkbox-wrapper{.", "-checkbox{background-color:red;}.", "-checkbox-input{&:focus-visible{outline:none;}}}.ant-input,.ant-picker{border-radius:0;}.ant-color-picker-trigger{height:100%;border-radius:0;.ant-color-picker-color-block{height:100%;width:100%;}}.", "-table-select-single .", "-table-select-selector,.", "-select-single .", "-select-selector,.ui-rc-table-select-selector{border-radius:0 !important;}.", "-table-select-single:not(.", "-table-select-customize-input){.", "-table-select-selector{.", "-table-select-selection-search-input{height:auto;}}}}}}.", "-grid-tfoot{.", "-grid-footer-row{border-bottom-width:1px;border-bottom-color:", ";border-bottom-style:solid;border-top-width:1px;border-top-color:", ";border-top-style:solid;background-color:#fafafa;}.", "-grid-cell{background-color:inherit;border-inline-end:1px solid ", ";}}}}&.", "-grid-dark{background-color:", ";color:", ";.", "-grid-container{border-color:", ";&::after{border-right-color:", ";}}}}"], props => props.$prefix, color, BgColor, props => props.$prefix, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => props.$prefix, props => `${props.$theme.color ? props.$theme.color : color}`, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => props.$prefix, props => props.$prefix, rowSelectedBg, props => props.$prefix, tableBorderColor, tableBorderColor, cellSelectedBg, borderSelectedColor, borderSelectedColor, borderSelectedColor, borderSelectedColor, borderSelectedColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, tableBorderColor, props => props.$prefix, BgColorDark, colorDark, props => props.$prefix, tableBorderColorDark, tableBorderColorDark);
14
+ })(["&.", "-grid{color:", ";font-size:13px;background-color:", ";table{table-layout:fixed;border-collapse:separate;border-spacing:0;}.", "-grid-container{border:1px solid ", ";.", "-grid-thead{&:has(.resizer.isResizing){.", "-grid-cell{touch-action:none;user-select:none;}}.", "-grid-cell{background-color:#ffffff;&:has(.resizer.isResizing){touch-action:none;user-select:none;}.resizer{cursor:col-resize;height:100%;position:absolute;right:0;top:0;touch-action:none;user-select:none;width:5px;}}}tbody{.", "-grid-row{&.", "-grid-row-parent{.", "-grid-cell{font-weight:600;background-color:#f5f5f5;}}}}.", "-grid-tfoot{z-index:3 !important;.ui-rc-grid-footer-row{.ui-rc-grid-cell{border-top:1px solid ", ";border-bottom:1px solid ", ";font-weight:500;}}}.", "-grid-cell{padding:5px 8px;.class-content:has(*){background:lightblue;}.class-content:not(:has(*)){background:lightgreen;}&.", "-grid-cell-text-center{text-align:center;justify-content:center;}&.", "-grid-cell-text-righ{text-align:right;justify-content:flex-end;}}.", "-grid-cell:not(:has(*)){&.", "-grid-cell-text-center{text-align:center;justify-content:center;}&.", "-grid-cell-text-right{text-align:right;justify-content:flex-end;}&.", "-grid-cell-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}}&.", "-grid-light{.", "-grid-container{.", "-grid-thead{z-index:3 !important;background-color:", ";font-weight:500;.", "-grid-cell{font-weight:inherit;color:", ";background-color:#ffffff;border-inline-end:1px solid ", ";border-bottom:1px solid ", ";&.ui-rc-grid-cell-ellipsis{.ui-rc-table-column-title,.", "-grid-cell-ellipsis{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}&.ui-rc-grid-cell-wrap{.ui-rc-table-column-title,.", "-grid-cell-text-wrap{white-space:normal;word-break:break-word;overflow:hidden;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "-grid-filter-column{display:flex;justify-content:space-between;width:100%;align-items:center;position:relative;}.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}.resizer{cursor:col-resize;height:100%;position:absolute;right:0;top:0;touch-action:none;user-select:none;width:5px;}.resizer.isResizing{opacity:1;}}}.", "-grid-tbody{.", "-grid-row{background-color:", ";color:", ";}}tbody{background-color:", ";color:", ";.", "-grid-row{&.ui-rc-grid-row-selected{.", "-grid-cell{background-color:", ";}}}.", "-grid-cell{outline:none;background-color:#ffffff;border-inline-end:1px solid ", ";border-bottom:1px solid ", ";&.ui-rc-grid-cell-selected{background-color:", " !important;}&.disable{background-color:#f0f0f0;}&.cell-editable{user-select:none;&.cell-border-top{&::after{content:\"\";position:absolute;top:0px;left:0;height:1px;width:100%;border-top:1px solid ", ";pointer-events:none;z-index:1;}}&.cell-border-bottom{border-bottom:1px solid ", ";}&.cell-border-left{&::before{content:\"\";position:absolute;top:0;left:0;height:102%;width:1px;border-left:1px solid ", ";pointer-events:none;z-index:1;}}&.cell-border-right{border-inline-end:1px solid ", ";}&.cell-paste-border-top{&::after{content:\"\";position:absolute;top:0px;left:0;height:1px;width:100%;border-top:1px dashed #949494;pointer-events:none;z-index:1;}&.ui-rc-grid-cell-fix-left-last{&::after{left:-100%;}}&.ui-rc-grid-cell-fix-right-first{&::after{left:100%;}}}&.cell-paste-border-bottom{border-bottom:1px dashed #949494;}&.cell-paste-border-left{&::before{content:\"\";position:absolute;top:0;left:0;height:102%;width:1px;border-left:1px dashed #949494;pointer-events:none;z-index:1;}}&.cell-paste-border-right{border-inline-end:1px dashed #949494;}.dragging-point{width:6px;height:6px;position:absolute;cursor:crosshair;right:0px;bottom:0px;&.hidden{display:none;}.dot-point{position:absolute;width:6px;height:6px;border-radius:0px;background-color:", ";bottom:0;right:0;}}}&.cell-editing{padding:0;&:focus-visible{outline:none;}.ant-form-item,.ant-row.ant-form-item-row,.ant-col.ant-form-item-control,.ant-form-item-control-input,.ant-form-item-control-input-content,.ant-input{height:100% !important;&:focus-visible{outline:none;}}textarea.ant-input{line-height:1.8;height:36px !important;min-height:36px !important;}input.be-cell-editing,.ant-picker,.ui-rc-select-selector,.ui-rc-table-select-selector{padding-inline:7px;}.", "-checkbox-wrapper{.", "-checkbox{background-color:red;}.", "-checkbox-input{&:focus-visible{outline:none;}}}.ant-input,.ant-picker{border-radius:0;}.ant-color-picker-trigger{height:100%;border-radius:0;.ant-color-picker-color-block{height:100%;width:100%;}}.", "-table-select-single .", "-table-select-selector,.", "-select-single .", "-select-selector,.ui-rc-table-select-selector{border-radius:0 !important;}.", "-table-select-single:not(.", "-table-select-customize-input){.", "-table-select-selector{.", "-table-select-selection-search-input{height:auto;}}}}}}.", "-grid-tfoot{.", "-grid-footer-row{border-bottom-width:1px;border-bottom-color:", ";border-bottom-style:solid;border-top-width:1px;border-top-color:", ";border-top-style:solid;background-color:#fafafa;}.", "-grid-cell{background-color:inherit;border-inline-end:1px solid ", ";}}}}&.", "-grid-dark{background-color:", ";color:", ";.", "-grid-container{border-color:", ";&::after{border-right-color:", ";}}}}"], props => props.$prefix, color, BgColor, props => props.$prefix, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => props.$prefix, props => `${props.$theme.color ? props.$theme.color : color}`, tableBorderColor, tableBorderColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => `${props.$theme.backgroundColor ? props.$theme.backgroundColor : BgColor}`, props => `${props.$theme.color ? props.$theme.color : color}`, props => props.$prefix, props => props.$prefix, rowSelectedBg, props => props.$prefix, tableBorderColor, tableBorderColor, cellSelectedBg, borderSelectedColor, borderSelectedColor, borderSelectedColor, borderSelectedColor, borderSelectedColor, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, props => props.$prefix, tableBorderColor, tableBorderColor, props => props.$prefix, tableBorderColor, props => props.$prefix, BgColorDark, colorDark, props => props.$prefix, tableBorderColorDark, tableBorderColorDark);
@@ -124,7 +124,9 @@ const TableWrapper = props => {
124
124
  }
125
125
  }, /*#__PURE__*/React.createElement(TableVirtuoso, {
126
126
  data: table.getRowModel().rows,
127
- totalCount: rows.length,
127
+ totalCount: rows.length
128
+ // isScrolling={}
129
+ ,
128
130
  components: {
129
131
  Table: ({
130
132
  style,
@@ -491,7 +491,10 @@ export type TableProps<RecordType = AnyObject> = {
491
491
  /** Cho phép chỉnh sửa dữ liệu */
492
492
  editAble?: boolean;
493
493
  /** Callback khi data thay đổi */
494
- onDataChange?: (data: RecordType[]) => void;
494
+ onDataChange?: (data: RecordType[], args?: {
495
+ type: string;
496
+ row?: number;
497
+ }) => void;
495
498
  /** Giá trị mặc định khi thêm mới */
496
499
  defaultValue?: AnyObject | (() => AnyObject);
497
500
  /** Callback xử lý paste dữ liệu */
@@ -176,7 +176,37 @@ const InternalTable = props => {
176
176
  }
177
177
  };
178
178
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_rcMasterUi.ConfigProvider, {
179
- locale: language
179
+ locale: language,
180
+ theme: {
181
+ token: {
182
+ colorPrimary: '#eb4619',
183
+ colorLink: '#eb4619'
184
+ },
185
+ components: {
186
+ Input: {
187
+ activeBorderColor: '#1677ff',
188
+ hoverBorderColor: '#1677ff'
189
+ },
190
+ Button: {
191
+ colorLink: '#eb4619',
192
+ colorLinkHover: '#eb4619'
193
+ },
194
+ Select: {
195
+ activeBorderColor: '#1677ff',
196
+ hoverBorderColor: '#1677ff'
197
+ // colorPrimary: '#eb4619',
198
+ // colorBgBase: 'red'
199
+ },
200
+ DatePicker: {
201
+ colorPrimary: '#eb4619',
202
+ activeBorderColor: '#1677ff',
203
+ hoverBorderColor: '#1677ff'
204
+ },
205
+ Pagination: {
206
+ fontSize: 12
207
+ }
208
+ }
209
+ }
180
210
  }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.CustomProvider, {
181
211
  locale: languages
182
212
  }, /*#__PURE__*/_react.default.createElement(_Grid.default, (0, _extends2.default)({}, rest, {
@@ -12,6 +12,8 @@ var _utils = require("./hook/utils");
12
12
  var _reactVirtual = require("@tanstack/react-virtual");
13
13
  var _reactHookForm = require("react-hook-form");
14
14
  var _antd = require("antd");
15
+ var _button = _interopRequireDefault(require("rc-master-ui/es/button"));
16
+ var _dropdown = _interopRequireDefault(require("rc-master-ui/es/dropdown"));
15
17
  var _pagination = _interopRequireDefault(require("rc-master-ui/es/pagination"));
16
18
  var _reactNumericComponent = require("react-numeric-component");
17
19
  var _useContext = require("./useContext");
@@ -81,19 +83,15 @@ const TableContainerEdit = props => {
81
83
  expandable,
82
84
  wrapSettings,
83
85
  recordDoubleClick,
84
- // triggerFilter,
85
86
  selectionSettings,
86
87
  isSelectionChange,
87
88
  setIsSelectionChange,
88
- // onContextMenu,
89
89
  contextMenuItems,
90
90
  setSorterChange,
91
91
  setFilterChange,
92
92
  defaultFilter,
93
93
  onCellPaste,
94
- // triggerPaste,
95
94
  validate,
96
- // triggerChangeData,
97
95
  onCellChange,
98
96
  onDataChange,
99
97
  defaultValue,
@@ -291,14 +289,16 @@ const TableContainerEdit = props => {
291
289
 
292
290
  copy(tsv).then(() => {}).catch(() => {});
293
291
  }, [startCell, endCell, table]);
294
- const triggerChangeData = _react.default.useCallback(newData => {
295
- onDataChange?.(newData);
292
+ const triggerChangeData = _react.default.useCallback((newData, args) => {
293
+ onDataChange?.(newData, args);
296
294
  }, [onDataChange, dataSource]);
297
295
  const triggerPaste = _react.default.useCallback((pastedRows, pastedColumnsArray, newData, copyRows) => {
298
296
  const handlePasteCallback = callbackData => {
299
297
  const rsFilterData = (0, _utils.updateOrInsert)((0, _utils.flattenArray)([...originData]), (0, _utils.flattenArray)([...callbackData]));
300
298
  const rs = (0, _utils.unFlattenData)(rsFilterData);
301
- triggerChangeData(rs);
299
+ triggerChangeData(rs, {
300
+ type: 'OnPaste'
301
+ });
302
302
  };
303
303
  if (onCellPaste && onCellPaste.onPasted) {
304
304
  if (onCellPaste.onPasted.length > 1) {
@@ -319,10 +319,14 @@ const TableContainerEdit = props => {
319
319
  data: originData,
320
320
  pastedColumns: pastedColumnsArray
321
321
  }, handlePasteCallback);
322
- triggerChangeData(newData);
322
+ triggerChangeData(newData, {
323
+ type: 'OnPaste'
324
+ });
323
325
  }
324
326
  } else {
325
- triggerChangeData(newData);
327
+ triggerChangeData(newData, {
328
+ type: 'OnPaste'
329
+ });
326
330
  }
327
331
  }, [onCellPaste, originData, triggerChangeData]);
328
332
  const handlePasted = _react.default.useCallback(pasteData => {
@@ -750,7 +754,9 @@ const TableContainerEdit = props => {
750
754
  const index = (0, _utils.flattenData)(childrenColumnName, newData).findIndex(item => formData[rowKey] === item[rowKey]);
751
755
  const rs = (0, _utils.updateArrayByKey)(newData, row, rowKey);
752
756
  if (index > -1) {
753
- triggerChangeData?.(rs);
757
+ triggerChangeData?.(rs, {
758
+ type: 'CellChange'
759
+ });
754
760
  }
755
761
  } catch (errInfo) {
756
762
  console.log('Validate Failed:', errInfo);
@@ -770,7 +776,9 @@ const TableContainerEdit = props => {
770
776
  const index = (0, _utils.flattenData)(childrenColumnName, newData).findIndex(item => formData[rowKey] === item[rowKey]);
771
777
  const rs = (0, _utils.updateArrayByKey)(newData, row, rowKey);
772
778
  if (index > -1) {
773
- triggerChangeData?.(rs);
779
+ triggerChangeData?.(rs, {
780
+ type: 'CellChange'
781
+ });
774
782
  }
775
783
  } catch (errInfo) {
776
784
  console.log('Validate Failed:', errInfo);
@@ -970,7 +978,9 @@ const TableContainerEdit = props => {
970
978
  const rs = (0, _utils.updateOrInsert)(originData, rsFilter);
971
979
  // const rs2 = mergeWithFilter(originData, rsFilter)
972
980
 
973
- triggerChangeData?.(rs);
981
+ triggerChangeData?.(rs, {
982
+ type: 'DUPLICATE'
983
+ });
974
984
  }, [dataSource, focusedCell, originData, rowKey, table, triggerChangeData]);
975
985
 
976
986
  // thêm n dòng bên trên
@@ -1006,7 +1016,10 @@ const TableContainerEdit = props => {
1006
1016
  setMergedFilterKeys?.(rs);
1007
1017
  const index = newData.findIndex(obj => obj[rowKey] === record[rowKey]);
1008
1018
  newData.splice(index, 0, ...newRows);
1009
- triggerChangeData?.(newData);
1019
+ triggerChangeData?.(newData, {
1020
+ type: 'INSERT_BEFORE',
1021
+ row: n
1022
+ });
1010
1023
  } else {
1011
1024
  const newData = [...originData];
1012
1025
  const parent = (0, _utils.findItemByKey)(newData, rowKey, record.parentId);
@@ -1032,7 +1045,10 @@ const TableContainerEdit = props => {
1032
1045
  children: childData
1033
1046
  };
1034
1047
  const newDataSource = (0, _utils.updateArrayByKey)(newData, newRowData, rowKey);
1035
- triggerChangeData?.(newDataSource);
1048
+ triggerChangeData?.(newDataSource, {
1049
+ type: 'INSERT_BEFORE',
1050
+ row: n
1051
+ });
1036
1052
  }
1037
1053
  }
1038
1054
  }, [defaultValue, focusedCell, mergedFilterKeys, originData, rowKey, rowsFocus, setMergedFilterKeys, table, triggerChangeData]);
@@ -1070,7 +1086,10 @@ const TableContainerEdit = props => {
1070
1086
  setMergedFilterKeys?.(rs);
1071
1087
  const index = newData.findIndex(obj => obj[rowKey] === record[rowKey]);
1072
1088
  newData.splice(index + 1, 0, ...newRows);
1073
- triggerChangeData?.(newData);
1089
+ triggerChangeData?.(newData, {
1090
+ type: 'INSERT_AFTER',
1091
+ row: n
1092
+ });
1074
1093
  } else {
1075
1094
  const newData = [...originData];
1076
1095
  const parent = (0, _utils.findItemByKey)(newData, rowKey, record.parentId);
@@ -1099,7 +1118,10 @@ const TableContainerEdit = props => {
1099
1118
  children: childData
1100
1119
  };
1101
1120
  const newDataSource = (0, _utils.updateArrayByKey)(newData, newRowData, rowKey);
1102
- triggerChangeData?.(newDataSource);
1121
+ triggerChangeData?.(newDataSource, {
1122
+ type: 'INSERT_AFTER',
1123
+ row: n
1124
+ });
1103
1125
  }
1104
1126
  }
1105
1127
  }, [defaultValue, table, focusedCell?.rowId, originData, mergedFilterKeys, setMergedFilterKeys, triggerChangeData, rowKey]);
@@ -1137,7 +1159,9 @@ const TableContainerEdit = props => {
1137
1159
  const rs = mergedFilterKeys ? [...mergedFilterKeys, rowId] : [rowId];
1138
1160
  setMergedFilterKeys?.(rs);
1139
1161
  const newDataSource = (0, _utils.updateArrayByKey)(newData, newElement, rowKey);
1140
- triggerChangeData?.(newDataSource);
1162
+ triggerChangeData?.(newDataSource, {
1163
+ type: 'INSERT_CHILDREN'
1164
+ });
1141
1165
  }
1142
1166
  setTimeout(() => {
1143
1167
  const row = table.getRowModel().rows.find(it => it.id === focusedCell?.rowId);
@@ -1180,12 +1204,18 @@ const TableContainerEdit = props => {
1180
1204
  buttonsStyling: false
1181
1205
  }).then(async result => {
1182
1206
  if (result.value) {
1183
- triggerChangeData?.([...newDaa]);
1207
+ triggerChangeData?.([...newDaa], {
1208
+ type: 'DELETE_ROWS',
1209
+ row: rowsFocus.length
1210
+ });
1184
1211
  } else if (result.dismiss === MySwal.DismissReason.cancel) {}
1185
1212
  });
1186
1213
  } else {
1187
1214
  // không hiện dialog
1188
- triggerChangeData?.([...newDaa]);
1215
+ triggerChangeData?.([...newDaa], {
1216
+ type: 'DELETE_ROWS',
1217
+ row: rowsFocus.length
1218
+ });
1189
1219
  }
1190
1220
  }
1191
1221
  }, [commandSettings, originData, rowKey, rowsFocus, t, triggerChangeData]);
@@ -1211,11 +1241,15 @@ const TableContainerEdit = props => {
1211
1241
  buttonsStyling: false
1212
1242
  }).then(async result => {
1213
1243
  if (result.value) {
1214
- triggerChangeData?.([]);
1244
+ triggerChangeData?.([], {
1245
+ type: 'DELETE'
1246
+ });
1215
1247
  } else if (result.dismiss === MySwal.DismissReason.cancel) {}
1216
1248
  });
1217
1249
  } else {
1218
- triggerChangeData?.([]);
1250
+ triggerChangeData?.([], {
1251
+ type: 'DELETE'
1252
+ });
1219
1253
  }
1220
1254
  }
1221
1255
  }, [commandSettings, t, triggerChangeData]);
@@ -1261,7 +1295,9 @@ const TableContainerEdit = props => {
1261
1295
  return updatedRow;
1262
1296
  });
1263
1297
  const newData = (0, _utils.unFlattenData)(rs);
1264
- triggerChangeData?.([...newData]);
1298
+ triggerChangeData?.([...newData], {
1299
+ type: 'DELETE_CONTENT'
1300
+ });
1265
1301
  }
1266
1302
  };
1267
1303
  const toolbarItemsBottom = _react.default.useMemo(() => {
@@ -1275,7 +1311,7 @@ const TableContainerEdit = props => {
1275
1311
  template: () => {
1276
1312
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, item.key === 'ADD' && /*#__PURE__*/_react.default.createElement("div", {
1277
1313
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1278
- }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_antd.Button, {
1314
+ }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_button.default, {
1279
1315
  style: {
1280
1316
  color: '#28c76f',
1281
1317
  borderColor: '#28c76f'
@@ -1283,7 +1319,7 @@ const TableContainerEdit = props => {
1283
1319
  variant: 'outlined',
1284
1320
  onClick: () => handleAddMulti(item, 1),
1285
1321
  className: "d-flex toolbar-button"
1286
- }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Add item') : 'Add item')) : /*#__PURE__*/_react.default.createElement(_antd.Dropdown.Button, {
1322
+ }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Add item') : 'Add item')) : /*#__PURE__*/_react.default.createElement(_dropdown.default.Button, {
1287
1323
  overlayClassName: 'be-popup-container',
1288
1324
  trigger: ['click'],
1289
1325
  style: {
@@ -1311,7 +1347,7 @@ const TableContainerEdit = props => {
1311
1347
  template: () => {
1312
1348
  return /*#__PURE__*/_react.default.createElement("div", {
1313
1349
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1314
- }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
1350
+ }, /*#__PURE__*/_react.default.createElement(_button.default, {
1315
1351
  style: {
1316
1352
  color: '#eb4619',
1317
1353
  borderColor: '#eb4619'
@@ -1336,7 +1372,7 @@ const TableContainerEdit = props => {
1336
1372
  template: () => {
1337
1373
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, item.key === 'ADD' && /*#__PURE__*/_react.default.createElement("div", {
1338
1374
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1339
- }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_antd.Button, {
1375
+ }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_button.default, {
1340
1376
  style: {
1341
1377
  color: '#28c76f',
1342
1378
  borderColor: '#28c76f'
@@ -1344,7 +1380,7 @@ const TableContainerEdit = props => {
1344
1380
  variant: 'outlined',
1345
1381
  onClick: () => handleAddMulti(item, 1),
1346
1382
  className: "d-flex toolbar-button"
1347
- }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Add item') : 'Add item')) : /*#__PURE__*/_react.default.createElement(_antd.Dropdown.Button, {
1383
+ }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Add item') : 'Add item')) : /*#__PURE__*/_react.default.createElement(_dropdown.default.Button, {
1348
1384
  title: "",
1349
1385
  overlayClassName: 'be-popup-container',
1350
1386
  style: {
@@ -1372,7 +1408,7 @@ const TableContainerEdit = props => {
1372
1408
  template: () => {
1373
1409
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, item.key === 'DUPLICATE' && item.visible !== false && rowsFocus.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
1374
1410
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1375
- }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
1411
+ }, /*#__PURE__*/_react.default.createElement(_button.default, {
1376
1412
  style: {
1377
1413
  color: '#28c76f',
1378
1414
  borderColor: '#28c76f'
@@ -1391,7 +1427,7 @@ const TableContainerEdit = props => {
1391
1427
  template: () => {
1392
1428
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
1393
1429
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1394
- }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_antd.Button, {
1430
+ }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_button.default, {
1395
1431
  style: {
1396
1432
  color: '#28c76f',
1397
1433
  borderColor: '#28c76f'
@@ -1399,7 +1435,7 @@ const TableContainerEdit = props => {
1399
1435
  variant: 'outlined',
1400
1436
  onClick: () => handleInsertBefore(item, 1),
1401
1437
  className: "d-flex toolbar-button"
1402
- }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Insert item before') : 'Insert item before')) : /*#__PURE__*/_react.default.createElement(_antd.Dropdown.Button, {
1438
+ }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Insert item before') : 'Insert item before')) : /*#__PURE__*/_react.default.createElement(_dropdown.default.Button, {
1403
1439
  overlayClassName: 'be-popup-container',
1404
1440
  style: {
1405
1441
  color: '#28c76f',
@@ -1426,7 +1462,7 @@ const TableContainerEdit = props => {
1426
1462
  template: () => {
1427
1463
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
1428
1464
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1429
- }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_antd.Button, {
1465
+ }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_button.default, {
1430
1466
  style: {
1431
1467
  color: '#28c76f',
1432
1468
  borderColor: '#28c76f'
@@ -1434,7 +1470,7 @@ const TableContainerEdit = props => {
1434
1470
  variant: 'outlined',
1435
1471
  onClick: () => handleInsertAfter(item, 1),
1436
1472
  className: "d-flex toolbar-button"
1437
- }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Insert item after') : 'Insert item after')) : /*#__PURE__*/_react.default.createElement(_antd.Dropdown.Button, {
1473
+ }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Insert item after') : 'Insert item after')) : /*#__PURE__*/_react.default.createElement(_dropdown.default.Button, {
1438
1474
  overlayClassName: 'be-popup-container',
1439
1475
  style: {
1440
1476
  color: '#28c76f',
@@ -1461,7 +1497,7 @@ const TableContainerEdit = props => {
1461
1497
  template: () => {
1462
1498
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
1463
1499
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1464
- }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
1500
+ }, /*#__PURE__*/_react.default.createElement(_button.default, {
1465
1501
  style: {
1466
1502
  color: '#28c76f',
1467
1503
  borderColor: '#28c76f'
@@ -1480,7 +1516,7 @@ const TableContainerEdit = props => {
1480
1516
  template: () => {
1481
1517
  return /*#__PURE__*/_react.default.createElement("div", {
1482
1518
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1483
- }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
1519
+ }, /*#__PURE__*/_react.default.createElement(_button.default, {
1484
1520
  style: {
1485
1521
  color: '#eb4619',
1486
1522
  borderColor: '#eb4619'
@@ -1499,7 +1535,7 @@ const TableContainerEdit = props => {
1499
1535
  template: () => {
1500
1536
  return /*#__PURE__*/_react.default.createElement("div", {
1501
1537
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1502
- }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
1538
+ }, /*#__PURE__*/_react.default.createElement(_button.default, {
1503
1539
  style: {
1504
1540
  color: '#eb4619',
1505
1541
  borderColor: '#eb4619'
@@ -1527,7 +1563,7 @@ const TableContainerEdit = props => {
1527
1563
  template: () => {
1528
1564
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, item.key === 'ADD' && /*#__PURE__*/_react.default.createElement("div", {
1529
1565
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1530
- }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_antd.Button, {
1566
+ }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_button.default, {
1531
1567
  style: {
1532
1568
  color: '#28c76f',
1533
1569
  borderColor: '#28c76f'
@@ -1535,7 +1571,7 @@ const TableContainerEdit = props => {
1535
1571
  variant: 'outlined',
1536
1572
  onClick: () => handleAddMulti(item, 1),
1537
1573
  className: "d-flex toolbar-button"
1538
- }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Add item') : 'Add item')) : /*#__PURE__*/_react.default.createElement(_antd.Dropdown.Button, {
1574
+ }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Add item') : 'Add item')) : /*#__PURE__*/_react.default.createElement(_dropdown.default.Button, {
1539
1575
  overlayClassName: 'be-popup-container',
1540
1576
  trigger: ['click'],
1541
1577
  style: {
@@ -1563,7 +1599,7 @@ const TableContainerEdit = props => {
1563
1599
  template: () => {
1564
1600
  return /*#__PURE__*/_react.default.createElement("div", {
1565
1601
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1566
- }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
1602
+ }, /*#__PURE__*/_react.default.createElement(_button.default, {
1567
1603
  style: {
1568
1604
  color: '#eb4619',
1569
1605
  borderColor: '#eb4619'
@@ -1588,7 +1624,7 @@ const TableContainerEdit = props => {
1588
1624
  template: () => {
1589
1625
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, item.key === 'ADD' && /*#__PURE__*/_react.default.createElement("div", {
1590
1626
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1591
- }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_antd.Button, {
1627
+ }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_button.default, {
1592
1628
  style: {
1593
1629
  color: '#28c76f',
1594
1630
  borderColor: '#28c76f'
@@ -1596,7 +1632,7 @@ const TableContainerEdit = props => {
1596
1632
  variant: 'outlined',
1597
1633
  onClick: () => handleAddMulti(item, 1),
1598
1634
  className: "d-flex toolbar-button"
1599
- }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Add item') : 'Add item')) : /*#__PURE__*/_react.default.createElement(_antd.Dropdown.Button, {
1635
+ }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Add item') : 'Add item')) : /*#__PURE__*/_react.default.createElement(_dropdown.default.Button, {
1600
1636
  title: "",
1601
1637
  overlayClassName: 'be-popup-container',
1602
1638
  style: {
@@ -1624,7 +1660,7 @@ const TableContainerEdit = props => {
1624
1660
  template: () => {
1625
1661
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, item.key === 'DUPLICATE' && item.visible !== false && rowsFocus.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
1626
1662
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1627
- }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
1663
+ }, /*#__PURE__*/_react.default.createElement(_button.default, {
1628
1664
  style: {
1629
1665
  color: '#28c76f',
1630
1666
  borderColor: '#28c76f'
@@ -1643,7 +1679,7 @@ const TableContainerEdit = props => {
1643
1679
  template: () => {
1644
1680
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
1645
1681
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1646
- }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_antd.Button, {
1682
+ }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_button.default, {
1647
1683
  style: {
1648
1684
  color: '#28c76f',
1649
1685
  borderColor: '#28c76f'
@@ -1651,7 +1687,7 @@ const TableContainerEdit = props => {
1651
1687
  variant: 'outlined',
1652
1688
  onClick: () => handleInsertBefore(item, 1),
1653
1689
  className: "d-flex toolbar-button"
1654
- }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Insert item before') : 'Insert item before')) : /*#__PURE__*/_react.default.createElement(_antd.Dropdown.Button, {
1690
+ }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Insert item before') : 'Insert item before')) : /*#__PURE__*/_react.default.createElement(_dropdown.default.Button, {
1655
1691
  overlayClassName: 'be-popup-container',
1656
1692
  style: {
1657
1693
  color: '#28c76f',
@@ -1678,7 +1714,7 @@ const TableContainerEdit = props => {
1678
1714
  template: () => {
1679
1715
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
1680
1716
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1681
- }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_antd.Button, {
1717
+ }, item?.hasMenu === false ? /*#__PURE__*/_react.default.createElement(_button.default, {
1682
1718
  style: {
1683
1719
  color: '#28c76f',
1684
1720
  borderColor: '#28c76f'
@@ -1686,7 +1722,7 @@ const TableContainerEdit = props => {
1686
1722
  variant: 'outlined',
1687
1723
  onClick: () => handleInsertAfter(item, 1),
1688
1724
  className: "d-flex toolbar-button"
1689
- }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Insert item after') : 'Insert item after')) : /*#__PURE__*/_react.default.createElement(_antd.Dropdown.Button, {
1725
+ }, item.template ? (0, _hooks.getToolbarTemplate)(item.template) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, item.label ? t ? t(item.label) : item.label : t ? t('Insert item after') : 'Insert item after')) : /*#__PURE__*/_react.default.createElement(_dropdown.default.Button, {
1690
1726
  overlayClassName: 'be-popup-container',
1691
1727
  style: {
1692
1728
  color: '#28c76f',
@@ -1713,7 +1749,7 @@ const TableContainerEdit = props => {
1713
1749
  template: () => {
1714
1750
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
1715
1751
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1716
- }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
1752
+ }, /*#__PURE__*/_react.default.createElement(_button.default, {
1717
1753
  style: {
1718
1754
  color: '#28c76f',
1719
1755
  borderColor: '#28c76f'
@@ -1732,7 +1768,7 @@ const TableContainerEdit = props => {
1732
1768
  template: () => {
1733
1769
  return /*#__PURE__*/_react.default.createElement("div", {
1734
1770
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1735
- }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
1771
+ }, /*#__PURE__*/_react.default.createElement(_button.default, {
1736
1772
  style: {
1737
1773
  color: '#eb4619',
1738
1774
  borderColor: '#eb4619'
@@ -1751,7 +1787,7 @@ const TableContainerEdit = props => {
1751
1787
  template: () => {
1752
1788
  return /*#__PURE__*/_react.default.createElement("div", {
1753
1789
  className: (0, _classnames.default)(`be-toolbar-item`, item?.className)
1754
- }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
1790
+ }, /*#__PURE__*/_react.default.createElement(_button.default, {
1755
1791
  style: {
1756
1792
  color: '#eb4619',
1757
1793
  borderColor: '#eb4619'
@@ -184,8 +184,53 @@ const EditableCell = props => {
184
184
  placeholder: t && column.placeholder ? t(column.placeholder) : undefined,
185
185
  disabled: (0, _utils.isDisable)(column, record) ?? false,
186
186
  maxDate: maxDate,
187
- minDate: minDate,
188
- onChange: (newDate, dateString) => {
187
+ minDate: minDate
188
+ // mode="date"
189
+
190
+ // onChange={(newDate, dateString) => {
191
+
192
+ // const newDateValue = dateString ? moment(convertDayjsToDate(dateString as string, dateFormat)).format() : null
193
+
194
+ // onChange(newDateValue)
195
+
196
+ // setTimeout(() => {
197
+ // // @ts-ignore
198
+ // dateTimePickerRef.current?.focus()
199
+ // }, 0)
200
+
201
+ // }}
202
+
203
+ // onBlur={() => {
204
+ // const formState = getValues()
205
+ // const itemState = getValues(dataIndex)
206
+ // // @ts-ignore
207
+ // const prevState = record[dataIndex]
208
+ // const newState = itemState
209
+
210
+ // if (prevState !== newState) {
211
+ // handleCellChange?.({
212
+ // key: key as any,
213
+ // field: column.field ?? column.field as any,
214
+ // record: formState,
215
+ // prevState,
216
+ // newState,
217
+ // option: newState,
218
+ // indexCol,
219
+ // indexRow,
220
+ // type: 'blur'
221
+ // })
222
+ // }
223
+ // }}
224
+ ,
225
+
226
+ popupClassName: 'be-popup-container',
227
+ status: isInvalid ? 'error' : undefined,
228
+ "data-tooltip-content": message,
229
+ "data-tooltip-id": `${id}-tooltip-error`,
230
+ autoFocus: column.field === startCell?.colId,
231
+ defaultOpen: column.field === startCell?.colId,
232
+ needConfirm: false,
233
+ onCalendarChange: (newDate, dateString) => {
189
234
  const newDateValue = dateString ? (0, _moment.default)((0, _utils.convertDayjsToDate)(dateString, dateFormat)).format() : null;
190
235
  onChange(newDateValue);
191
236
  setTimeout(() => {
@@ -193,32 +238,28 @@ const EditableCell = props => {
193
238
  dateTimePickerRef.current?.focus();
194
239
  }, 0);
195
240
  },
196
- onBlur: () => {
197
- const formState = getValues();
198
- const itemState = getValues(dataIndex);
199
- // @ts-ignore
200
- const prevState = record[dataIndex];
201
- const newState = itemState;
202
- if (prevState !== newState) {
203
- handleCellChange?.({
204
- key: key,
205
- field: column.field ?? column.field,
206
- record: formState,
207
- prevState,
208
- newState,
209
- option: newState,
210
- indexCol,
211
- indexRow,
212
- type: 'blur'
213
- });
241
+ onOpenChange: open => {
242
+ if (!open) {
243
+ const formState = getValues();
244
+ const itemState = getValues(dataIndex);
245
+ // @ts-ignore
246
+ const prevState = record[dataIndex];
247
+ const newState = itemState;
248
+ if (prevState !== newState) {
249
+ handleCellChange?.({
250
+ key: key,
251
+ field: column.field ?? column.field,
252
+ record: formState,
253
+ prevState,
254
+ newState,
255
+ option: newState,
256
+ indexCol,
257
+ indexRow,
258
+ type: 'blur'
259
+ });
260
+ }
214
261
  }
215
- },
216
- popupClassName: 'be-popup-container',
217
- status: isInvalid ? 'error' : undefined,
218
- "data-tooltip-content": message,
219
- "data-tooltip-id": `${id}-tooltip-error`,
220
- autoFocus: column.field === startCell?.colId,
221
- defaultOpen: column.field === startCell?.colId
262
+ }
222
263
  });
223
264
  case 'month':
224
265
  case 'quarter':