es-grid-template 1.9.73 → 1.9.75

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.
@@ -169,7 +169,6 @@ const Grid = /*#__PURE__*/React.forwardRef((props, ref) => {
169
169
 
170
170
  // setColumns(cols)
171
171
  } else {
172
- console.log('setColumns');
173
172
  setColumns(cols);
174
173
  // pipeline.columns(cols)
175
174
 
@@ -13,7 +13,7 @@ getDefaultValue, getRowIdsBetween3, getRowIndexMap, getSelectedCellMatrix1, getV
13
13
  // getVisibleFields,
14
14
  groupArrayByColumns, isDateValue, isEditable, isEmpty, isFormattedNumber, isTreeArray, newGuid, parseExcelClipboard, revertConvertFilters,
15
15
  // sortByType,
16
- sumFields, unFlattenData, updateArrayByKey
16
+ sumFields, unFlattenData, updateArrayByKey, updateOrInsert
17
17
  // updateOrInsert
18
18
  } from "../table-component/hook/utils";
19
19
  import { CustomProvider, ConfigProvider, Modal, Button, Dropdown, Typography } from 'rc-master-ui';
@@ -26,7 +26,7 @@ import { restrictToVerticalAxis } from "@dnd-kit/modifiers";
26
26
  import { arrayMove } from "@dnd-kit/sortable";
27
27
  import { useForm } from "react-hook-form";
28
28
  import { yupResolver } from "@hookform/resolvers/yup";
29
- import { filterDataByColumns1, sortByType, updateOrInsert } from "./utils/utility";
29
+ import { buildParentMap, filterDataByColumns1, sortByType } from "./utils/utility";
30
30
  import { stateKeyEndCell, stateKeyFocusedCell, stateKeyIsEditing, stateKeyStartCell } from "./utils/constants";
31
31
  import classNames from "classnames";
32
32
  import { getEditType, getFormat, getToolbarTemplate } from "../grid-component/hooks";
@@ -85,6 +85,7 @@ const InternalTable = props => {
85
85
  headerData,
86
86
  format,
87
87
  onCellClick,
88
+ commandClick,
88
89
  ...rest
89
90
  } = props;
90
91
  const tableRef = useRef(null);
@@ -149,6 +150,9 @@ const InternalTable = props => {
149
150
  }
150
151
  return addRowIdArray(dataSource);
151
152
  }, [dataSource, groupAble, groupColumns, groupSetting]);
153
+ const dataFlatten = React.useMemo(() => {
154
+ return flattenArray(convertData);
155
+ }, [convertData]);
152
156
  const isDataTree = React.useMemo(() => {
153
157
  return isTreeArray(convertData);
154
158
  }, [convertData]);
@@ -161,8 +165,8 @@ const InternalTable = props => {
161
165
  return rss;
162
166
  }, [convertData, filterState, ignoreAccents, sortState, onFilter, onSorter, defaultFilter, defaultSorter]);
163
167
  const rowIndexMap = React.useMemo(() => {
164
- return getRowIndexMap(convertData);
165
- }, [convertData]);
168
+ return getRowIndexMap(dataFlatten);
169
+ }, [dataFlatten]);
166
170
  const footerData = React.useMemo(() => {
167
171
  if (!summary) {
168
172
  return undefined;
@@ -236,7 +240,8 @@ const InternalTable = props => {
236
240
  }, [onDataChange]);
237
241
  const triggerPaste = React.useCallback((pastedRows, pastedColumnsArray, newData, copyRows) => {
238
242
  const handlePasteCallback = callbackData => {
239
- const rsFilterData = updateOrInsert(convertData, flattenArray(callbackData));
243
+ // const rsFilterData = updateOrInsert(convertData as any, flattenArray(callbackData))
244
+ const rsFilterData = updateOrInsert(flattenArray([...convertData]), flattenArray([...callbackData]));
240
245
  const rs = unFlattenData(rsFilterData);
241
246
  triggerChangeData(rs, {
242
247
  type: 'OnPaste'
@@ -557,6 +562,7 @@ const InternalTable = props => {
557
562
  groupColumns,
558
563
  mode: sortMultiple !== false ? 'multiple' : 'single',
559
564
  dataSource: convertData,
565
+ dataFlatten: dataFlatten,
560
566
  rowIndexMap,
561
567
  columnResizeMode: 'onChange',
562
568
  disableUserSelectWhenResizing: true,
@@ -623,7 +629,9 @@ const InternalTable = props => {
623
629
  // }
624
630
 
625
631
  // reorder rows after drag & drop
626
-
632
+ const parentMap = React.useMemo(() => {
633
+ return buildParentMap(convertData);
634
+ }, [convertData]);
627
635
  const isEditing = React.useMemo(() => {
628
636
  return pipeline.getStateAtKey(stateKeyIsEditing);
629
637
  }, [pipeline]);
@@ -726,9 +734,9 @@ const InternalTable = props => {
726
734
  };
727
735
  }, [tableId, pipeline, editAble, headerEditAble, endCell, startCell]);
728
736
  const rowsFocus = React.useMemo(() => {
729
- const selectRowIds = startCell && endCell ? getRowIdsBetween3(convertData, rowIndexMap, startCell.rowId, endCell.rowId) : [];
737
+ const selectRowIds = startCell && endCell ? getRowIdsBetween3(dataFlatten, rowIndexMap, startCell.rowId, endCell.rowId) : [];
730
738
  return selectRowIds;
731
- }, [convertData, endCell, rowIndexMap, startCell]);
739
+ }, [dataFlatten, endCell, rowIndexMap, startCell]);
732
740
  function handleDragEnd(event) {
733
741
  const {
734
742
  active,
@@ -827,7 +835,7 @@ const InternalTable = props => {
827
835
  // không tính tree
828
836
 
829
837
  // Cập nhật data mới
830
- const newData = flattenArray(convertData);
838
+ const newData = dataFlatten;
831
839
  const focusedCell = pipeline.getStateAtKey(stateKeyFocusedCell);
832
840
  const duplicatedItem = newData.find(it => it.rowId === focusedCell?.rowId);
833
841
  const duplicatedItems = [{
@@ -842,11 +850,11 @@ const InternalTable = props => {
842
850
  // const insertAfter = Math.max(...rowsFocus)
843
851
  const insertAfter = newData.findIndex(it => it[rowKey] === focusedCell?.rowId);
844
852
  const rsFilter = [...newData.slice(0, insertAfter + 1), ...duplicatedItems, ...newData.slice(insertAfter + 1)];
845
- const rs = updateOrInsert(convertData, rsFilter);
853
+ const rs = updateOrInsert(dataFlatten, rsFilter);
846
854
  triggerChangeData?.(rs, {
847
855
  type: 'DUPLICATE'
848
856
  });
849
- }, [convertData, pipeline, triggerChangeData]);
857
+ }, [dataFlatten, pipeline, triggerChangeData]);
850
858
 
851
859
  // thêm n dòng bên trên
852
860
  const handleInsertBefore = React.useCallback((item, n) => {
@@ -1070,8 +1078,8 @@ const InternalTable = props => {
1070
1078
  if (!startCell || !endCell) {
1071
1079
  return;
1072
1080
  }
1073
- const allRows = dataSource;
1074
- const rowIds = getRowIdsBetween3(convertData, rowIndexMap, startCell?.rowId ?? '', endCell?.rowId ?? '');
1081
+ const allRows = pipeline.getDataSource();
1082
+ const rowIds = getRowIdsBetween3(dataFlatten, rowIndexMap, startCell?.rowId ?? '', endCell?.rowId ?? '');
1075
1083
  const colIds = getColIdsBetween1(leafColumns, startCell?.colId ?? '', endCell?.colId ?? '');
1076
1084
  const dataToCopy = [];
1077
1085
  rowIds.forEach(rowId => {
@@ -1088,14 +1096,14 @@ const InternalTable = props => {
1088
1096
  // Convert to TSV string
1089
1097
  const tsv = dataToCopy.map(row => row.join('\t')).join('\n');
1090
1098
  copy(tsv).then(() => {}).catch(() => {});
1091
- }, [startCell, endCell, dataSource, convertData, rowIndexMap, leafColumns, copy]);
1099
+ }, [startCell, endCell, pipeline, dataFlatten, rowIndexMap, leafColumns, copy]);
1092
1100
  React.useEffect(() => {
1093
1101
  const handleKeyDown = e => {
1094
- if (e.ctrlKey && e.key === 'c' && startCell && endCell && !isEditing) {
1095
- e.preventDefault();
1102
+ if (e.ctrlKey && e.key === 'c' && startCell && endCell && !isEditing.editing) {
1103
+ // e.preventDefault();
1096
1104
  copySelectionToClipboard();
1097
1105
  }
1098
- if (e.ctrlKey && e.key === 'x' && startCell && endCell && !isEditing) {
1106
+ if (e.ctrlKey && e.key === 'x' && startCell && endCell && !isEditing.editing) {
1099
1107
  e.preventDefault();
1100
1108
  if (startCell && endCell) {
1101
1109
  const tmpData = flattenArray(convertData);
@@ -1147,7 +1155,8 @@ const InternalTable = props => {
1147
1155
  };
1148
1156
  document.addEventListener('keydown', handleKeyDown);
1149
1157
  return () => document.removeEventListener('keydown', handleKeyDown);
1150
- }, [startCell, endCell, copySelectionToClipboard, isEditing, convertData, triggerChangeData, leafColumns, rangeState?.rowRange, rangeState?.colRange]);
1158
+ }, [startCell, endCell, copySelectionToClipboard, isEditing, convertData, triggerChangeData, leafColumns, rangeState?.rowRange, rangeState?.colRange, handleCellChange]);
1159
+
1151
1160
  // }, [startCell, endCell, copySelectionToClipboard, isEditing, convertData, triggerChangeData, leafColumns, handleCellChange, rangeState?.rowRange, rangeState?.colRange]);
1152
1161
 
1153
1162
  // Copy
@@ -1159,7 +1168,9 @@ const InternalTable = props => {
1159
1168
  return;
1160
1169
  }
1161
1170
  const rows = pasteData.slice(0, onCellPaste?.maxRowsPaste ?? 200);
1162
- const allRows = convertData;
1171
+
1172
+ // const allRows = convertData
1173
+ const allRows = dataFlatten;
1163
1174
  const allCols = collectNodes(pipeline.getColumns(), 'leaf-only');
1164
1175
  const startRowIdx = rowIndexMap.get(startCell.rowId);
1165
1176
  const startColIdx = allCols.findIndex(c => c.field === startCell.colId);
@@ -1171,7 +1182,7 @@ const InternalTable = props => {
1171
1182
  const row = recordIndex ? allRows[recordIndex] : {};
1172
1183
  if (!row.parentId) {
1173
1184
  // Cập nhật data mới
1174
- const newData = flattenArray(convertData);
1185
+ const newData = dataFlatten;
1175
1186
 
1176
1187
  // Lấy vị trí bắt đầu
1177
1188
 
@@ -1256,12 +1267,14 @@ const InternalTable = props => {
1256
1267
  pastedRows.push(newData[targetRow]);
1257
1268
  });
1258
1269
  const pastedColumnsArray = Array.from(pastedColumns) ?? [];
1259
- const rsFilterData = updateOrInsert(convertData, newData);
1270
+ const rsFilterData = updateOrInsert(dataFlatten, newData);
1260
1271
  const rs = unFlattenData(rsFilterData);
1261
1272
  triggerPaste?.(pastedRows, pastedColumnsArray, rs, []);
1262
1273
  } else {
1263
1274
  // const parent = findItemByKey(convertData, rowKey as any, record.parentId)
1264
- const parent = row.getParentRow()?.original;
1275
+ // const parent: any = row.getParentRow()?.original
1276
+
1277
+ const parent = parentMap.get(row.rowId);
1265
1278
 
1266
1279
  // Cập nhật childData mới
1267
1280
  const childData = parent?.children ? [...parent.children] : [];
@@ -1289,11 +1302,14 @@ const InternalTable = props => {
1289
1302
  // Không vượt quá số cột
1290
1303
  return;
1291
1304
  }
1292
- const columnTarget = allCols[targetCol];
1293
- const columnOri = columnTarget.columnDef.meta ?? {};
1305
+
1306
+ // const columnTarget = allCols[targetCol]
1307
+
1308
+ // const columnOri: any = columnTarget.columnDef.meta ?? {}
1309
+ const columnOri = allCols[targetCol];
1294
1310
  const isEdit = typeof columnOri?.editEnable === 'function' ? columnOri.editEnable(childData[targetRow]) : columnOri.editEnable;
1295
1311
  if (isEdit) {
1296
- const columnKey = allCols[targetCol].id;
1312
+ const columnKey = allCols[targetCol].field;
1297
1313
  if (columnOri.type === 'number') {
1298
1314
  if (cellValue.trim() === '') {
1299
1315
  childData[targetRow] = {
@@ -1352,7 +1368,7 @@ const InternalTable = props => {
1352
1368
  const newDataSource = updateArrayByKey(convertData, newRowData, rowKey);
1353
1369
  triggerPaste?.(pastedRows, pastedColumnsArray, newDataSource, []);
1354
1370
  }
1355
- }, [convertData, defaultValue, format, onCellPaste?.maxRowsPaste, pipeline, rowIndexMap, startCell, triggerPaste]);
1371
+ }, [startCell, onCellPaste?.maxRowsPaste, dataFlatten, pipeline, rowIndexMap, triggerPaste, defaultValue, format, parentMap, convertData]);
1356
1372
  const handlePasteToTable = React.useCallback((pasteData, e) => {
1357
1373
  if (!startCell) return;
1358
1374
  const rowsPasted = parseExcelClipboard(e);
@@ -1383,7 +1399,7 @@ const InternalTable = props => {
1383
1399
  }, [handlePasted, onCellPaste?.maxRowsPaste, startCell]);
1384
1400
  React.useEffect(() => {
1385
1401
  const handlePaste = e => {
1386
- if (startCell && !isEditing) {
1402
+ if (startCell && !isEditing.editing) {
1387
1403
  e.preventDefault(); // Chặn hành vi mặc định
1388
1404
  const clipboardText = e.clipboardData?.getData('text/plain') ?? '';
1389
1405
  handlePasteToTable(clipboardText, e);
@@ -1905,6 +1921,128 @@ const InternalTable = props => {
1905
1921
  }
1906
1922
  return toolbarItems.filter(it => it.position !== 'Bottom' && it.fixedRight);
1907
1923
  }, [toolbarItems]);
1924
+ const triggerCommandClick = args => {
1925
+ const {
1926
+ id: idCommand,
1927
+ rowId,
1928
+ rowData,
1929
+ index
1930
+ } = args;
1931
+ const tmpData = [...dataSource];
1932
+ if (idCommand === 'DELETE') {
1933
+ // bật modal confirm
1934
+ if (commandSettings && commandSettings.confirmDialog) {
1935
+ MySwal.fire({
1936
+ title: t ? t('Confirm') : 'Confirm',
1937
+ text: t ? t('Do you want to delete item?') : 'Do you want to delete item?',
1938
+ // icon: 'warning',
1939
+ allowOutsideClick: false,
1940
+ showCancelButton: true,
1941
+ confirmButtonText: t ? t('Delete') : 'Delete',
1942
+ cancelButtonText: t ? t('Cancel') : 'Cancel',
1943
+ customClass: {
1944
+ confirmButton: 'be-button btn-primary',
1945
+ cancelButton: 'be-button btn-danger ms-1'
1946
+ },
1947
+ buttonsStyling: false
1948
+ }).then(async result => {
1949
+ if (result.value) {
1950
+ if (!commandSettings || commandSettings && commandSettings.client !== false) {
1951
+ // client
1952
+
1953
+ // kiểm tra dòng hiện tại có parent
1954
+
1955
+ let newData = [];
1956
+ if (rowData?.parentId) {
1957
+ const parent = findItemByKey(tmpData, rowKey, rowData.parentId);
1958
+ const childData = parent?.children ? [...parent.children] : [];
1959
+ const findIndex = childData.findIndex(obj => obj[rowKey] === rowData[rowKey]);
1960
+ childData.splice(Number(findIndex), 1);
1961
+ const newRowData = {
1962
+ ...parent,
1963
+ children: childData
1964
+ };
1965
+ // const newDataSource = updateArrayByKey(tmpData, newRowData, rowKey as string)
1966
+ newData = updateArrayByKey(tmpData, newRowData, rowKey);
1967
+ } else {
1968
+ tmpData.splice(Number(index), 1);
1969
+ newData = [...tmpData];
1970
+ }
1971
+ if (commandClick) {
1972
+ commandClick({
1973
+ id: idCommand,
1974
+ rowId: rowData.rowId,
1975
+ rowData,
1976
+ index,
1977
+ rows: [...newData]
1978
+ });
1979
+ }
1980
+ } else {
1981
+ // server ~~ không làm gì
1982
+ if (commandClick) {
1983
+ commandClick({
1984
+ id: idCommand,
1985
+ rowId: rowData.rowId,
1986
+ rowData,
1987
+ index,
1988
+ rows: [...convertData]
1989
+ });
1990
+ }
1991
+ }
1992
+ } else if (result.dismiss === MySwal.DismissReason.cancel) {}
1993
+ });
1994
+ } else {
1995
+ // -------------------
1996
+
1997
+ if (!commandSettings || commandSettings && commandSettings.client !== false) {
1998
+ // client
1999
+
2000
+ let newData2 = [];
2001
+ if (rowData?.parentId) {
2002
+ const parent = findItemByKey(convertData, rowKey, rowData.parentId);
2003
+ const childData = parent?.children ? [...parent.children] : [];
2004
+ const findIndex = childData.findIndex(obj => obj[rowKey] === rowData[rowKey]);
2005
+ childData.splice(Number(findIndex), 1);
2006
+ const newRowData = {
2007
+ ...parent,
2008
+ children: childData
2009
+ };
2010
+ newData2 = updateArrayByKey(tmpData, newRowData, rowKey);
2011
+ } else {
2012
+ tmpData.splice(Number(index), 1);
2013
+ newData2 = [...tmpData];
2014
+ }
2015
+ if (commandClick) {
2016
+ commandClick({
2017
+ id: idCommand,
2018
+ rowId,
2019
+ rowData,
2020
+ index,
2021
+ rows: [...newData2]
2022
+ });
2023
+ }
2024
+ } else {
2025
+ // server
2026
+ if (commandClick) {
2027
+ commandClick({
2028
+ id: idCommand,
2029
+ rowId,
2030
+ rowData,
2031
+ index,
2032
+ rows: [...convertData]
2033
+ });
2034
+ }
2035
+ }
2036
+ }
2037
+ } else {
2038
+ if (commandClick) {
2039
+ commandClick({
2040
+ ...args,
2041
+ rows: convertData
2042
+ });
2043
+ }
2044
+ }
2045
+ };
1908
2046
  return /*#__PURE__*/React.createElement(ConfigProvider, {
1909
2047
  locale: language,
1910
2048
  theme: {
@@ -2000,7 +2138,8 @@ const InternalTable = props => {
2000
2138
  toolbarItemTopRight: toolbarItemTopRight,
2001
2139
  toolbarItemsTop: toolbarItemsTop,
2002
2140
  toolbarItemsBottom: toolbarItemsBottom,
2003
- isDataTree: isDataTree
2141
+ isDataTree: isDataTree,
2142
+ commandClick: triggerCommandClick
2004
2143
  })), /*#__PURE__*/React.createElement(Modal, {
2005
2144
  open: isFullScreen,
2006
2145
  footer: null,
@@ -2058,7 +2197,8 @@ const InternalTable = props => {
2058
2197
  defaultFilter: defaultFilter,
2059
2198
  defaultSorter: defaultSorter,
2060
2199
  dataRowIds: dataIds,
2061
- editAble: editAble
2200
+ editAble: editAble,
2201
+ commandClick: triggerCommandClick
2062
2202
  }))))))));
2063
2203
  };
2064
2204
  export default InternalTable;
@@ -72,7 +72,7 @@ export function HtmlTable({
72
72
  hoz: hoz,
73
73
  id: id,
74
74
  originData: originData,
75
- commandClick: undefined,
75
+ commandClick: commandClick,
76
76
  format: format
77
77
  });
78
78
  })));
@@ -23,6 +23,7 @@ export declare const Classes: {
23
23
  readonly tableCell: "ui-rc-grid-table-cell";
24
24
  readonly gridCell: "ui-rc-grid-cell";
25
25
  readonly cellSelected: "ui-rc-grid-cell-selected";
26
+ readonly cellIndexSelected: "ui-rc-grid-cell-index-selected";
26
27
  readonly cellEllipsis: "ui-rc-grid-cell-ellipsis";
27
28
  readonly cellWrap: "ui-rc-grid-cell-wrap";
28
29
  readonly cellTextCenter: "ui-rc-grid-cell-text-center";
@@ -29,6 +29,7 @@ export const Classes = {
29
29
  tableCell: `${prefix}table-cell`,
30
30
  gridCell: `${prefix}cell`,
31
31
  cellSelected: `${prefix}cell-selected`,
32
+ cellIndexSelected: `${prefix}cell-index-selected`,
32
33
  cellEllipsis: `${prefix}cell-ellipsis`,
33
34
  cellWrap: `${prefix}cell-wrap`,
34
35
  cellTextCenter: `${prefix}cell-text-center`,
@@ -67,7 +68,7 @@ export const StyleTableContainer = styled.div.withConfig({
67
68
  export const StyledArtTableWrapper = styled.div.withConfig({
68
69
  displayName: "StyledArtTableWrapper",
69
70
  componentId: "es-grid-template__sc-ipj1ht-1"
70
- })(["box-sizing:border-box;*{box-sizing:border-box;}cursor:default;color:var(--color);font-size:var(--font-size);line-height:var(--line-height);position:relative;overflow-anchor:none;&::-webkit-scrollbar{}&::-webkit-scrollbar-track{}&::-webkit-scrollbar-thumb{}&::-webkit-scrollbar-thumb:hover{}&.dark{&::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.3);}&::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.5);}}&.", "{border-left:var(--cell-border-vertical);border-right:var(--cell-border-vertical);border-top:var(--cell-border-vertical);border-bottom:0;&.has-footer{border-bottom:0;.", "{td{}}}&.has-vertical-scroll{border-bottom:var(--cell-border-vertical);th.first{border-left:0;}td.first{border-left:0;}&.has-footer{border-bottom:var(--cell-border-vertical);}.", "{tr.last{td{border-bottom:0;}}}.", "{tr.last{td{border-bottom:0;}}}+ .ui-rc-grid-bottom{border-top:0;}&:not(.has-footer){+ .ui-rc-grid-bottom{border-top:var(--cell-border-vertical);}}}&:not(.has-vertical-scroll){border-left:0;border-right:0;}&:not(.has-header){border-top:0;}}&.use-outer-border{}.no-scrollbar{scrollbar-width:none;::-webkit-scrollbar{}}.", "{overflow-x:auto;overflow-y:hidden;background:var(--header-bgcolor);.ui-rc-table-column-title{flex:1;min-width:0;text-align:start;}.", "{font-weight:500;.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}.", "{width:100%;white-space:normal;word-break:break-word;}.", "{text-align:center;}.", "{text-align:right;}}}.", "{.", "{td{background:var(--row-odd-bgcolor);}}.", "{td{background:var(--row-even-bgcolor);}}.", "{td{background:var(--row-parent-bgcolor);font-weight:500;}}.", "{&.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;.expansion-cell{.expansion-content{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}}&.", "{width:100%;white-space:normal;word-break:break-word;}&.", "{text-align:center;}&.", "{text-align:right;}}}.", "{background:var(--footer-bgcolor);}.", ",.", "{overflow-x:auto;overflow-y:hidden;}&.sticky-header .", "{position:sticky;top:0;z-index:", ";}&.sticky-footer .", "{position:sticky;bottom:0;z-index:", ";}.", "{tr{td.cell-edit{&.lock-left,&.lock-right{}}td.first{&.lock-left{border-bottom-width:1px;}}}tr.ui-rc-grid-table-row{td.cell-edit.cell-border-bottom{}}}table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;display:table;margin:0;padding:0;}tr:not(.no-hover):hover > td{background:var(--hover-bgcolor);color:var(--hover-color);}tr:not(.no-highlight).highlight > td{}th{font-weight:normal;text-align:left;padding:var(--cell-padding);height:var(--header-row-height);color:var(--header-color);background:var(--header-bgcolor);border:none;border-right:var(--header-cell-border-vertical);border-bottom:var(--header-cell-border-horizontal);&.", "{background-color:#fcf5f2;}&.cell-border-bottom{border-bottom:var(--cell-border-select);}&.cell-border-right{border-right:var(--cell-border-select);}&.cell-border-left{position:relative;}&.cell-border-top{position:relative;}&.cell-border-left::before{content:'';position:absolute;top:0;left:0;height:102%;width:1px;border-left:var(--cell-border-select);pointer-events:none;z-index:1;}&.cell-border-top::after{content:'';position:absolute;top:0px;left:0;height:1px;width:100%;border-top:var(--cell-border-select);pointer-events:none;z-index:1;}&.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,.ui-rc-input{height:100% !important;&:focus-visible{outline:none;}}.ui-rc-color-picker-trigger{width:100%;border-radius:0;.ui-rc-color-picker-color-block{width:100%;}}textarea.ui-rc-input{line-height:1.8;height:100%;max-height:calc(var(--row-height) - 1px) !important;min-height:calc(var(--row-height) - 1px) !important;}input.be-cell-editing,.ant-picker,.ui-rc-picker,.ui-rc-select-selector,.ui-rc-table-select-selector{padding-inline:7px;}.#{$prefix}-checkbox-wrapper{.#{$prefix}-checkbox{background-color:red;}.#{$prefix}-checkbox-input{&:focus-visible{outline:none;}}}.ant-input,.ant-picker,.ui-rc-picker{border-radius:0;}.ant-color-picker-trigger{height:100%;border-radius:0;.ant-color-picker-color-block{height:100%;width:100%;}}.#{$prefix}-table-select-single .#{$prefix}-table-select-selector,.#{$prefix}-select-single .#{$prefix}-select-selector,.ui-rc-table-select-selector{border-radius:0 !important;}.#{$prefix}-table-select-single:not( .#{$prefix}-table-select-customize-input ){.#{$prefix}-table-select-selector{.#{$prefix}-table-select-selection-search-input{height:auto;}}}}textarea.ui-rc-input{line-height:1.8;max-height:calc(var(--header-row-height) - 1px) !important;min-height:calc(var(--header-row-height) - 1px) !important;}}tr.first th{}th.first{border-left:var(--header-cell-border-vertical);}td{padding:var(--cell-padding);background:var(--bgcolor);height:var(--row-height);border:none;border-right:var(--cell-border-vertical);border-bottom:var(--cell-border-horizontal);outline:none;&.cell-edit{user-select:none;&:has(.dragging-point){position:relative;}.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:var(--border-color-select);bottom:0;right:0;}}&.disable{background-color:#f0f0f0;}}&.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,.ui-rc-input{height:100% !important;&:focus-visible{outline:none;}}.ui-rc-color-picker-trigger{width:100%;border-radius:0;.ui-rc-color-picker-color-block{width:100%;}}textarea.ui-rc-input{line-height:1.8;height:100%;max-height:calc(var(--row-height) - 1px) !important;min-height:calc(var(--row-height) - 1px) !important;}input.be-cell-editing,.ant-picker,.ui-rc-picker,.ui-rc-select-selector,.ui-rc-table-select-selector{padding-inline:7px;}.#{$prefix}-checkbox-wrapper{.#{$prefix}-checkbox{background-color:red;}.#{$prefix}-checkbox-input{&:focus-visible{outline:none;}}}.ant-input,.ant-picker,.ui-rc-picker{border-radius:0;}.ant-color-picker-trigger{height:100%;border-radius:0;.ant-color-picker-color-block{height:100%;width:100%;}}.#{$prefix}-table-select-single .#{$prefix}-table-select-selector,.#{$prefix}-select-single .#{$prefix}-select-selector,.ui-rc-table-select-selector{border-radius:0 !important;}.#{$prefix}-table-select-single:not( .#{$prefix}-table-select-customize-input ){.#{$prefix}-table-select-selector{.#{$prefix}-table-select-selection-search-input{height:auto;}}}}.abccccc{box-shadow:0 -1px 0 0 var(--border-color),0 1px 0 0 var(--border-color),-1px 0 0 0 var(--border-color),1px 0 0 0 var(--border-color);}&.", "{background-color:#fcf5f2;}&.cell-border-bottom{border-bottom:var(--cell-border-select);}&.cell-border-right{border-right:var(--cell-border-select);}&.cell-border-left{position:relative;}&.cell-border-top{position:relative;}&.cell-border-left::before{content:'';position:absolute;top:0;left:0;height:102%;width:1px;border-left:var(--cell-border-select);pointer-events:none;z-index:1;}&.cell-border-top::after{content:'';position:absolute;top:0px;left:0;height:1px;width:100%;border-top:var(--cell-border-select);pointer-events:none;z-index:1;}&.cell-paste-border-top{position:relative;&::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{position:relative;&::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;}}td.first{border-left:var(--cell-border-vertical);}tr.first td{border-top:var(--cell-border-horizontal);}tr td.last,tr th.last{border-right:var(--cell-border-horizontal);}&.has-header tbody tr.first td{border-top:none;}&.has-footer tbody tr.last td{border-bottom:none;}&.has-footer tfoot tr > td{background:var(--footer-bgcolor);color:var(--footer-color);}&.has-footer tfoot tr:not(.no-hover):hover > td{background:var(--footer-bgcolor);}.lock-left,.lock-right{z-index:", ";}.resize-handle{width:6px;height:100%;position:absolute;top:0;right:0;cursor:col-resize;background-color:transparent;border-right:2px solid transparent;}.", "{position:absolute;top:0;bottom:0;z-index:", ";pointer-events:none;overflow:hidden;.", "{height:100%;}.", "{margin-right:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-right:var(--cell-border-vertical);}}.", "{margin-left:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-left:var(--cell-border-vertical);}}}.", "{pointer-events:none;color:#99a3b3;font-size:12px;text-align:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);.empty-image{width:50px;height:50px;}.empty-tips{margin-top:16px;line-height:1.5;}}.", "{overflow:auto;position:sticky;bottom:0;z-index:", ";margin-top:-17px;}.ui-rc-grid-loading-wrapper{}.ui-rc-grid-table{}.art-loading-content-wrapper{height:100%;}.", "{height:1px;visibility:hidden;}.", "{position:relative;height:100%;.", "{position:absolute;inset:0;pointer-events:none;}.", "{position:sticky;z-index:", ";transform:translateY(-50%);}}"], Classes.tableWrapper, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableHeader, Classes.tableHeaderCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableBody, Classes.tableRowOdd, Classes.tableRowEven, Classes.tableRowParent, Classes.tableCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Classes.tableBody, Classes.cellSelected, Classes.cellSelected, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator);
71
+ })(["box-sizing:border-box;*{box-sizing:border-box;}cursor:default;color:var(--color);font-size:var(--font-size);line-height:var(--line-height);position:relative;overflow-anchor:none;&::-webkit-scrollbar{}&::-webkit-scrollbar-track{}&::-webkit-scrollbar-thumb{}&::-webkit-scrollbar-thumb:hover{}&.dark{&::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.3);}&::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,0.5);}}&.", "{border-left:var(--cell-border-vertical);border-right:var(--cell-border-vertical);border-top:var(--cell-border-vertical);border-bottom:0;&.has-footer{border-bottom:0;.", "{td{}}}&.has-vertical-scroll{border-bottom:var(--cell-border-vertical);th.first{border-left:0;}td.first{border-left:0;}&.has-footer{border-bottom:var(--cell-border-vertical);}.", "{tr.last{td{border-bottom:0;}}}.", "{tr.last{td{border-bottom:0;}}}+ .ui-rc-grid-bottom{border-top:0;}&:not(.has-footer){+ .ui-rc-grid-bottom{border-top:var(--cell-border-vertical);}}}&:not(.has-vertical-scroll){border-left:0;border-right:0;}&:not(.has-header){border-top:0;}}&.use-outer-border{}.no-scrollbar{scrollbar-width:none;::-webkit-scrollbar{}}.", "{overflow-x:auto;overflow-y:hidden;background:var(--header-bgcolor);.ui-rc-table-column-title{flex:1;min-width:0;text-align:start;}.", "{font-weight:500;.ui-rc-header-trigger{padding-left:6px;display:flex;align-items:center;.ui-rc-table-column-sorter-cancel{opacity:0;}}&:hover{.ui-rc-header-trigger{.ui-rc-table-column-sorter-cancel{opacity:1;}}}.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}.", "{width:100%;white-space:normal;word-break:break-word;}.", "{text-align:center;}.", "{text-align:right;}}}.", "{.", "{td{background:var(--row-odd-bgcolor);}}.", "{td{background:var(--row-even-bgcolor);}}.", "{td{background:var(--row-parent-bgcolor);font-weight:500;}}.", "{&.", "{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;.expansion-cell{.expansion-content{width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all;}}}&.", "{width:100%;white-space:normal;word-break:break-word;}&.", "{text-align:center;}&.", "{text-align:right;}}}.", "{background:var(--footer-bgcolor);}.", ",.", "{overflow-x:auto;overflow-y:hidden;}&.sticky-header .", "{position:sticky;top:0;z-index:", ";}&.sticky-footer .", "{position:sticky;bottom:0;z-index:", ";}.", "{tr{td{&.lock-left,&.lock-right{border-bottom-width:0;box-shadow:0 -1px 0 0 var(--border-color),0 0px 0 0 var(--border-color),0px 0 0 0 var(--border-color);}}}tr{td.cell-edit{&.lock-left,&.lock-right{box-shadow:0 -1px 0 0 var(--border-color),0 0px 0 0 var(--border-color),-1px 0 0 0 var(--border-color);}}td.first{&.lock-left{border-bottom-width:1px;}}}tr.ui-rc-grid-table-row{td.cell-edit.cell-border-bottom{}}}table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;display:table;margin:0;padding:0;}tr:not(.no-hover):hover > td{background:var(--hover-bgcolor);color:var(--hover-color);}tr:not(.no-highlight).highlight > td{}th{font-weight:normal;text-align:left;padding:var(--cell-padding);height:var(--header-row-height);color:var(--header-color);background:var(--header-bgcolor);border:none;border-right:var(--header-cell-border-vertical);border-bottom:var(--header-cell-border-horizontal);&.", "{background-color:#fcf5f2;}&.cell-border-bottom{border-bottom:var(--cell-border-select);}&.cell-border-right{border-right:var(--cell-border-select);}&.cell-border-left{position:relative;}&.cell-border-top{position:relative;}&.cell-border-left::before{content:'';position:absolute;top:0;left:0;height:102%;width:1px;border-left:var(--cell-border-select);pointer-events:none;z-index:1;}&.cell-border-top::after{content:'';position:absolute;top:0px;left:0;height:1px;width:100%;border-top:var(--cell-border-select);pointer-events:none;z-index:1;}&.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,.ui-rc-input{height:100% !important;&:focus-visible{outline:none;}}.ui-rc-color-picker-trigger{width:100%;border-radius:0;.ui-rc-color-picker-color-block{width:100%;}}textarea.ui-rc-input{line-height:1.8;height:100%;max-height:calc(var(--row-height) - 1px) !important;min-height:calc(var(--row-height) - 1px) !important;}input.be-cell-editing,.ant-picker,.ui-rc-picker,.ui-rc-select-selector,.ui-rc-table-select-selector{padding-inline:7px;}.#{$prefix}-checkbox-wrapper{.#{$prefix}-checkbox{background-color:red;}.#{$prefix}-checkbox-input{&:focus-visible{outline:none;}}}.ant-input,.ant-picker,.ui-rc-picker{border-radius:0;}.ant-color-picker-trigger{height:100%;border-radius:0;.ant-color-picker-color-block{height:100%;width:100%;}}.#{$prefix}-table-select-single .#{$prefix}-table-select-selector,.#{$prefix}-select-single .#{$prefix}-select-selector,.ui-rc-table-select-selector{border-radius:0 !important;}.#{$prefix}-table-select-single:not( .#{$prefix}-table-select-customize-input ){.#{$prefix}-table-select-selector{.#{$prefix}-table-select-selection-search-input{height:auto;}}}}textarea.ui-rc-input{line-height:1.8;max-height:calc(var(--header-row-height) - 1px) !important;min-height:calc(var(--header-row-height) - 1px) !important;}}tr.first th{}th.first{border-left:var(--header-cell-border-vertical);}td{padding:var(--cell-padding);background:var(--bgcolor);height:var(--row-height);border:none;border-right:var(--cell-border-vertical);border-bottom:var(--cell-border-horizontal);outline:none;&.", "{background-color:var(--border-color-select);color:#ffffff;}&.cell-edit{user-select:none;&:has(.dragging-point){position:relative;}.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:var(--border-color-select);bottom:0;right:0;}}&.disable{background-color:#f0f0f0;}}&.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,.ui-rc-input{height:100% !important;&:focus-visible{outline:none;}}.ui-rc-color-picker-trigger{width:100%;border-radius:0;.ui-rc-color-picker-color-block{width:100%;}}textarea.ui-rc-input{line-height:1.8;height:100%;max-height:calc(var(--row-height) - 1px) !important;min-height:calc(var(--row-height) - 1px) !important;}input.be-cell-editing,.ant-picker,.ui-rc-picker,.ui-rc-select-selector,.ui-rc-table-select-selector{padding-inline:7px;}.#{$prefix}-checkbox-wrapper{.#{$prefix}-checkbox{background-color:red;}.#{$prefix}-checkbox-input{&:focus-visible{outline:none;}}}.ant-input,.ant-picker,.ui-rc-picker{border-radius:0;}.ant-color-picker-trigger{height:100%;border-radius:0;.ant-color-picker-color-block{height:100%;width:100%;}}.#{$prefix}-table-select-single .#{$prefix}-table-select-selector,.#{$prefix}-select-single .#{$prefix}-select-selector,.ui-rc-table-select-selector{border-radius:0 !important;}.#{$prefix}-table-select-single:not( .#{$prefix}-table-select-customize-input ){.#{$prefix}-table-select-selector{.#{$prefix}-table-select-selection-search-input{height:auto;}}}}.abccccc{box-shadow:0 -1px 0 0 var(--border-color),0 1px 0 0 var(--border-color),-1px 0 0 0 var(--border-color),1px 0 0 0 var(--border-color);}&.", "{background-color:#fcf5f2;}&.cell-border-bottom{border-bottom:var(--cell-border-select);}&.cell-border-right{border-right:var(--cell-border-select);}&.cell-border-left{position:relative;}&.cell-border-top{position:relative;}&.cell-border-left::before{content:'';position:absolute;top:0;left:0;height:102%;width:1px;border-left:var(--cell-border-select);pointer-events:none;z-index:1;}&.cell-border-top::after{content:'';position:absolute;top:0px;left:0;height:1px;width:100%;border-top:var(--cell-border-select);pointer-events:none;z-index:1;}&.cell-paste-border-top{position:relative;&::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{position:relative;&::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;}}td.first{border-left:var(--cell-border-vertical);}tr.first td{border-top:var(--cell-border-horizontal);}tr td.last,tr th.last{border-right:var(--cell-border-horizontal);}&.has-header tbody tr.first td{border-top:none;}&.has-footer tbody tr.last td{border-bottom:none;}&.has-footer tfoot tr > td{background:var(--footer-bgcolor);color:var(--footer-color);}&.has-footer tfoot tr:not(.no-hover):hover > td{background:var(--footer-bgcolor);}.lock-left,.lock-right{z-index:", ";}.resize-handle{width:6px;height:100%;position:absolute;top:0;right:0;cursor:col-resize;background-color:transparent;border-right:2px solid transparent;}.", "{position:absolute;top:0;bottom:0;z-index:", ";pointer-events:none;overflow:hidden;.", "{height:100%;}.", "{margin-right:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-right:var(--cell-border-vertical);}}.", "{margin-left:", "px;box-shadow:none;&.show-shadow{box-shadow:var(--lock-shadow);border-left:var(--cell-border-vertical);}}}.", "{pointer-events:none;color:#99a3b3;font-size:12px;text-align:center;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);.empty-image{width:50px;height:50px;}.empty-tips{margin-top:16px;line-height:1.5;}}.", "{overflow:auto;position:sticky;bottom:0;z-index:", ";margin-top:-17px;}.ui-rc-grid-loading-wrapper{}.ui-rc-grid-table{}.art-loading-content-wrapper{height:100%;}.", "{height:1px;visibility:hidden;}.", "{position:relative;height:100%;.", "{position:absolute;inset:0;pointer-events:none;}.", "{position:sticky;z-index:", ";transform:translateY(-50%);}}"], Classes.tableWrapper, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableHeader, Classes.tableHeaderCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableBody, Classes.tableRowOdd, Classes.tableRowEven, Classes.tableRowParent, Classes.tableCell, Classes.cellEllipsis, Classes.cellWrap, Classes.cellTextCenter, Classes.cellTextRight, Classes.tableFooter, Classes.tableBody, Classes.tableFooter, Classes.tableHeader, Z.header, Classes.tableFooter, Z.footer, Classes.tableBody, Classes.cellSelected, Classes.cellIndexSelected, Classes.cellSelected, Z.lock, Classes.lockShadowMask, Z.lockShadow, Classes.lockShadow, Classes.leftLockShadow, LOCK_SHADOW_PADDING, Classes.rightLockShadow, LOCK_SHADOW_PADDING, Classes.emptyWrapper, Classes.stickyScroll, Z.scrollItem, Classes.stickyScrollItem, Classes.loadingWrapper, Classes.loadingIndicatorWrapper, Classes.loadingIndicator, Z.loadingIndicator);
71
72
 
72
73
  // type StyleTableContainerProps = {
73
74
 
@@ -15,6 +15,7 @@ export interface ColumnFeatureOptions {
15
15
  groupColumns?: any[];
16
16
  isDataTree?: boolean;
17
17
  dataSource: any[];
18
+ dataFlatten: any[];
18
19
  rowIndexMap: any;
19
20
  /** Uncontrolled usage: default column widths array */
20
21
  defaultSizes?: number[];