es-grid-template 1.7.25 → 1.7.27

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 (47) hide show
  1. package/es/table-component/InternalTable.js +69 -4
  2. package/es/table-component/TableContainer.js +7 -6
  3. package/es/table-component/TableContainerEdit.d.ts +2 -0
  4. package/es/table-component/TableContainerEdit.js +30 -19
  5. package/es/table-component/body/TableBody.d.ts +3 -2
  6. package/es/table-component/body/TableBody.js +51 -5
  7. package/es/table-component/body/TableBodyCell.js +3 -1
  8. package/es/table-component/body/TableBodyCellEdit.js +30 -20
  9. package/es/table-component/footer/TableFooterCell.js +3 -2
  10. package/es/table-component/header/TableHead.d.ts +1 -1
  11. package/es/table-component/header/TableHead.js +42 -6
  12. package/es/table-component/header/TableHeadCell.d.ts +2 -0
  13. package/es/table-component/header/TableHeadCell.js +16 -47
  14. package/es/table-component/header/TableHeadRow.d.ts +3 -4
  15. package/es/table-component/header/TableHeadRow.js +52 -41
  16. package/es/table-component/hook/convert.d.ts +1 -0
  17. package/es/table-component/hook/convert.js +28 -0
  18. package/es/table-component/hook/useColumns.js +1 -0
  19. package/es/table-component/hook/utils.js +8 -10
  20. package/es/table-component/style.scss +64 -56
  21. package/es/table-component/table/Grid.d.ts +2 -0
  22. package/es/table-component/table/Grid.js +6 -4
  23. package/es/table-component/type.d.ts +7 -2
  24. package/lib/table-component/InternalTable.js +69 -4
  25. package/lib/table-component/TableContainer.js +7 -6
  26. package/lib/table-component/TableContainerEdit.d.ts +2 -0
  27. package/lib/table-component/TableContainerEdit.js +30 -19
  28. package/lib/table-component/body/TableBody.d.ts +3 -2
  29. package/lib/table-component/body/TableBody.js +53 -5
  30. package/lib/table-component/body/TableBodyCell.js +3 -1
  31. package/lib/table-component/body/TableBodyCellEdit.js +30 -20
  32. package/lib/table-component/footer/TableFooterCell.js +3 -2
  33. package/lib/table-component/header/TableHead.d.ts +1 -1
  34. package/lib/table-component/header/TableHead.js +42 -6
  35. package/lib/table-component/header/TableHeadCell.d.ts +2 -0
  36. package/lib/table-component/header/TableHeadCell.js +16 -47
  37. package/lib/table-component/header/TableHeadRow.d.ts +3 -4
  38. package/lib/table-component/header/TableHeadRow.js +52 -41
  39. package/lib/table-component/hook/convert.d.ts +1 -0
  40. package/lib/table-component/hook/convert.js +34 -0
  41. package/lib/table-component/hook/useColumns.js +1 -0
  42. package/lib/table-component/hook/utils.js +8 -10
  43. package/lib/table-component/style.scss +64 -56
  44. package/lib/table-component/table/Grid.d.ts +2 -0
  45. package/lib/table-component/table/Grid.js +6 -4
  46. package/lib/table-component/type.d.ts +7 -2
  47. package/package.json +1 -1
@@ -20,6 +20,8 @@ var _reactTooltip = require("react-tooltip");
20
20
  var _ContextMenu = _interopRequireDefault(require("./ContextMenu"));
21
21
  var _utils = require("./hook/utils");
22
22
  var _useColumns = require("./hook/useColumns");
23
+ var _convert = require("./hook/convert");
24
+ var _antd = require("antd");
23
25
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
24
26
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
25
27
  // import en from "rc-master-ui/es/date-picker/locale/en_US"
@@ -72,6 +74,7 @@ const InternalTable = props => {
72
74
  contextMenuHidden,
73
75
  contextMenuClick,
74
76
  contextMenuOpen,
77
+ height,
75
78
  ...rest
76
79
  } = props;
77
80
  const id = _react.default.useMemo(() => {
@@ -126,6 +129,7 @@ const InternalTable = props => {
126
129
 
127
130
  const [filterStates, setFilterState] = _react.default.useState(null);
128
131
  const [sorterStates, setSorterStates] = _react.default.useState([]);
132
+ const [isFullScreen, setIsFullScreen] = _react.default.useState(false);
129
133
  const [expanded, setExpanded] = _react.default.useState({});
130
134
  const convertData = _react.default.useMemo(() => {
131
135
  if (groupAble && groupSetting && groupSetting.client !== false) {
@@ -146,7 +150,6 @@ const InternalTable = props => {
146
150
 
147
151
  // return convertToTanStackColumns<RecordType>(columns, expanded, setExpanded, expandable)
148
152
  }, [t, columns, format, editAble]);
149
- console.log('mergedColumns', mergedColumns);
150
153
  const columnPinning = _react.default.useMemo(() => {
151
154
  return {
152
155
  left: (0, _utils.getFixedFields)(columns, 'left'),
@@ -277,7 +280,7 @@ const InternalTable = props => {
277
280
  format: format
278
281
  // columns={columns111 as any}
279
282
  ,
280
- columns: mergedColumns,
283
+ columns: (0, _convert.convertColumns)(mergedColumns),
281
284
  propsColumns: columns,
282
285
  rowKey: rowKey,
283
286
  groupSetting: groupSetting,
@@ -294,8 +297,70 @@ const InternalTable = props => {
294
297
  contextMenuItems: contextMenuItems,
295
298
  editAble: editAble,
296
299
  triggerChangeColumns: triggerChangeColumns,
297
- setExpanded: setExpanded
298
- })), menuVisible && /*#__PURE__*/_react.default.createElement(_ContextMenu.default, {
300
+ setExpanded: setExpanded,
301
+ isFullScreen: isFullScreen,
302
+ setIsFullScreen: setIsFullScreen
303
+ })), /*#__PURE__*/_react.default.createElement(_antd.Modal, {
304
+ open: isFullScreen,
305
+ footer: null,
306
+ centered: true,
307
+ closable: true,
308
+ width: '100%',
309
+ style: {
310
+ maxWidth: '100%',
311
+ height: '100%'
312
+ },
313
+ onClose: () => setIsFullScreen(false),
314
+ onCancel: () => setIsFullScreen(false)
315
+
316
+ // destroyOnClose
317
+ ,
318
+ styles: {
319
+ content: {
320
+ height: '100vh',
321
+ borderRadius: 0,
322
+ padding: '15px 10px'
323
+ },
324
+ wrapper: {
325
+ zIndex: 1050
326
+ }
327
+ }
328
+ }, /*#__PURE__*/_react.default.createElement("div", {
329
+ style: {
330
+ paddingTop: 40
331
+ }
332
+ }, /*#__PURE__*/_react.default.createElement(_Grid.default, (0, _extends2.default)({}, rest, {
333
+ t: t,
334
+ id: isFullScreen ? _faker.faker.string.alpha(20) : id,
335
+ prefix: prefix,
336
+ originData: convertData,
337
+ dataSource: mergedData,
338
+ locale: locale,
339
+ format: format
340
+ // columns={columns111 as any}
341
+ ,
342
+ columns: (0, _convert.convertColumns)(mergedColumns),
343
+ propsColumns: columns,
344
+ rowKey: rowKey,
345
+ groupSetting: groupSetting,
346
+ groupAble: groupAble,
347
+ groupColumns: groupColumns,
348
+ columnPinning: columnPinning,
349
+ columnHidden: columnsHiddenKeys ? (0, _utils.convertToObj)(columnsHiddenKeys) : columnVisibility,
350
+ triggerFilter: setFilterState,
351
+ triggerSorter: setSorterStates,
352
+ setMergedFilterKeys: setMergedFilterKeys,
353
+ mergedFilterKeys: mergedFilterKeys,
354
+ expanded: expanded,
355
+ onContextMenu: onContextMenu,
356
+ contextMenuItems: contextMenuItems,
357
+ editAble: editAble,
358
+ triggerChangeColumns: triggerChangeColumns,
359
+ setExpanded: setExpanded,
360
+ isFullScreen: isFullScreen,
361
+ setIsFullScreen: setIsFullScreen,
362
+ height: windowSize.innerHeight - 70
363
+ })))), menuVisible && /*#__PURE__*/_react.default.createElement(_ContextMenu.default, {
299
364
  open: menuVisible,
300
365
  pos: position,
301
366
  setOpen: setMenuVisible,
@@ -60,7 +60,8 @@ const TableContainer = props => {
60
60
  triggerChangeColumns,
61
61
  columnHidden,
62
62
  expanded,
63
- setExpanded
63
+ setExpanded,
64
+ showEmptyText
64
65
  } = props;
65
66
  const tableContainerRef = _react.default.useRef(null);
66
67
  const containerRef = _react.default.useRef(null);
@@ -167,7 +168,8 @@ const TableContainer = props => {
167
168
  //our scrollable table container
168
169
  position: 'relative',
169
170
  //needed for sticky header
170
- height: tableHeight ?? '500px' //should be a fixed height
171
+ // height: tableHeight ?? '500px' //should be a fixed height
172
+ maxHeight: tableHeight //should be a fixed height
171
173
  // minWidth: table.getTotalSize()
172
174
  }
173
175
  }, /*#__PURE__*/_react.default.createElement(_useContext.TableContext.Provider, {
@@ -215,10 +217,9 @@ const TableContainer = props => {
215
217
  fixedRightColumns: fixedRightColumns,
216
218
  commandClick: commandClick,
217
219
  editAble: editAble,
218
- contextMenuItems: contextMenuItems
219
- }), summary && /*#__PURE__*/_react.default.createElement(_TableFooter.default
220
- // tableContainerRef={tableContainerRef}
221
- , {
220
+ contextMenuItems: contextMenuItems,
221
+ showEmptyText: showEmptyText
222
+ }), summary && /*#__PURE__*/_react.default.createElement(_TableFooter.default, {
222
223
  columnVirtualizer: columnVirtualizer,
223
224
  table: table,
224
225
  virtualPaddingLeft: virtualPaddingLeft,
@@ -26,6 +26,8 @@ type TableContainerProps<T> = Omit<TableProps<T>, 'columns'> & {
26
26
  columns: ColumnDef<T>[];
27
27
  triggerChangeColumns: any;
28
28
  columnHidden: any;
29
+ isFullScreen: boolean;
30
+ setIsFullScreen: Dispatch<SetStateAction<boolean>>;
29
31
  };
30
32
  declare const TableContainerEdit: <RecordType extends object>(props: TableContainerProps<RecordType>) => React.JSX.Element;
31
33
  export default TableContainerEdit;
@@ -108,8 +108,14 @@ const TableContainerEdit = props => {
108
108
  columns,
109
109
  propsColumns,
110
110
  triggerChangeColumns,
111
- columnHidden
111
+ columnHidden,
112
+ showEmptyText,
113
+ isFullScreen,
114
+ setIsFullScreen
112
115
  } = props;
116
+
117
+ // console.log('setIsFullScreen', setIsFullScreen)
118
+
113
119
  const containerRef = _react.default.useRef(null);
114
120
  const bottomToolbarRef = _react.default.useRef(null);
115
121
  const topToolbarRef = _react.default.useRef(null);
@@ -214,7 +220,7 @@ const TableContainerEdit = props => {
214
220
  const [endPasteCell, setEndPasteCell] = _react.default.useState(undefined);
215
221
  const [isSelecting, setIsSelecting] = _react.default.useState(false);
216
222
  const [isPasting, setIsPasting] = _react.default.useState(false);
217
- const [isFullScreen] = _react.default.useState(false);
223
+ // const [isFullScreen] = React.useState(false);
218
224
  const [tableHeight, settableHeight] = _react.default.useState(0);
219
225
  const rowsFocus = _react.default.useMemo(() => {
220
226
  return startCell && endCell ? (0, _utils.getRowIdsBetween)(table, startCell.rowId, endCell.rowId) : [];
@@ -1117,7 +1123,7 @@ const TableContainerEdit = props => {
1117
1123
  alignItems: 'center',
1118
1124
  gap: '.75rem'
1119
1125
  }
1120
- }, toolbarItems && toolbarItems?.length > 0 && /*#__PURE__*/_react.default.createElement("div", {
1126
+ }, /*#__PURE__*/_react.default.createElement("div", {
1121
1127
  style: {
1122
1128
  flex: 1,
1123
1129
  overflow: 'hidden'
@@ -1125,18 +1131,6 @@ const TableContainerEdit = props => {
1125
1131
  }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Toolbar, {
1126
1132
  items: (toolbarItems ?? []).filter(it => it.position !== 'Bottom'),
1127
1133
  mode: 'scroll'
1128
- })), fullScreen !== false && (isFullScreen ? /*#__PURE__*/_react.default.createElement(_becoxyIcons.Minimize, {
1129
- fontSize: 16
1130
- // onClick={() => handleFullScreen?.()}
1131
- ,
1132
- "data-tooltip-id": "tooltip-icon",
1133
- "data-tooltip-content": t ? t('Minimized') : 'Minimized'
1134
- }) : /*#__PURE__*/_react.default.createElement(_becoxyIcons.Maximize, {
1135
- fontSize: 16
1136
- // onClick={() => handleFullScreen?.()}
1137
- ,
1138
- "data-tooltip-id": "tooltip-icon",
1139
- "data-tooltip-content": t ? t('Full screen') : 'Full screen'
1140
1134
  })), /*#__PURE__*/_react.default.createElement("div", {
1141
1135
  style: {
1142
1136
  display: 'flex',
@@ -1152,7 +1146,21 @@ const TableContainerEdit = props => {
1152
1146
  showTotal: (total, range) =>
1153
1147
  // @ts-ignore
1154
1148
  `${range[0]}-${range[1]} / ${total} ${t ? t(pagination?.locale?.items ?? 'items') : 'items'}`
1155
- }, pagination)), typeof actionTemplate === 'function' ? actionTemplate() : actionTemplate, showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
1149
+ }, pagination)), typeof actionTemplate === 'function' ? actionTemplate() : actionTemplate, fullScreen !== false && (isFullScreen ? /*#__PURE__*/_react.default.createElement(_becoxyIcons.Minimize, {
1150
+ fontSize: 16,
1151
+ onClick: () => {
1152
+ setIsFullScreen(!isFullScreen);
1153
+ },
1154
+ "data-tooltip-id": `${id}-tooltip-content`,
1155
+ "data-tooltip-content": t ? t('Minimized') : 'Minimized'
1156
+ }) : /*#__PURE__*/_react.default.createElement(_becoxyIcons.Maximize, {
1157
+ fontSize: 16,
1158
+ onClick: () => {
1159
+ setIsFullScreen(!isFullScreen);
1160
+ },
1161
+ "data-tooltip-id": `${id}-tooltip-content`,
1162
+ "data-tooltip-content": t ? t('Full screen') : 'Full screen'
1163
+ })), showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
1156
1164
  columns: columns,
1157
1165
  originColumns: propsColumns,
1158
1166
  t: t,
@@ -1173,7 +1181,8 @@ const TableContainerEdit = props => {
1173
1181
  //our scrollable table container
1174
1182
  position: 'relative',
1175
1183
  //needed for sticky header
1176
- height: tableHeight //should be a fixed height
1184
+ // height: tableHeight, //should be a fixed height
1185
+ maxHeight: tableHeight //should be a fixed height
1177
1186
  }
1178
1187
  }, /*#__PURE__*/_react.default.createElement(_useContext.TableContext.Provider, {
1179
1188
  value: {
@@ -1231,7 +1240,8 @@ const TableContainerEdit = props => {
1231
1240
  // className={`${prefix}-grid-container`}
1232
1241
  style: {
1233
1242
  display: 'grid',
1234
- minWidth: table.getTotalSize()
1243
+ // minWidth: table.getTotalSize()
1244
+ width: table.getTotalSize()
1235
1245
  }
1236
1246
  }, /*#__PURE__*/_react.default.createElement(_TableHead.default, {
1237
1247
  tableContainerRef: tableContainerRef,
@@ -1252,7 +1262,8 @@ const TableContainerEdit = props => {
1252
1262
  fixedRightColumns: fixedRightColumns,
1253
1263
  commandClick: commandClick,
1254
1264
  editAble: editAble,
1255
- contextMenuItems: contextMenuItems
1265
+ contextMenuItems: contextMenuItems,
1266
+ showEmptyText: showEmptyText
1256
1267
  }), summary && /*#__PURE__*/_react.default.createElement(_TableFooter.default, {
1257
1268
  columnVirtualizer: columnVirtualizer,
1258
1269
  table: table,
@@ -1,4 +1,4 @@
1
- import type { Column, Table } from "@tanstack/react-table";
1
+ import { type Column, type Table } from "@tanstack/react-table";
2
2
  import type { Virtualizer } from "@tanstack/react-virtual";
3
3
  import type { CommandClick } from "../type";
4
4
  import React from "react";
@@ -13,7 +13,8 @@ interface TableBodyProps<T> {
13
13
  commandClick?: (args: CommandClick) => void;
14
14
  editAble?: boolean;
15
15
  tableId: string;
16
+ showEmptyText?: boolean;
16
17
  [key: string]: any;
17
18
  }
18
- declare const TableBody: <RecordType extends object>({ columnVirtualizer, table, tableContainerRef, virtualPaddingLeft, virtualPaddingRight, fixedLeftColumns, fixedRightColumns, tableId, ...rest }: TableBodyProps<RecordType>) => React.JSX.Element;
19
+ declare const TableBody: <RecordType extends object>({ columnVirtualizer, table, tableContainerRef, virtualPaddingLeft, virtualPaddingRight, fixedLeftColumns, fixedRightColumns, tableId, showEmptyText, ...rest }: TableBodyProps<RecordType>) => React.JSX.Element;
19
20
  export default TableBody;
@@ -8,8 +8,11 @@ exports.default = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _TableBodyRow = _interopRequireDefault(require("./TableBodyRow"));
10
10
  var _reactVirtual = require("@tanstack/react-virtual");
11
- var _react = _interopRequireDefault(require("react"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
12
  var _useContext = require("../useContext");
13
+ var _rcMasterUi = require("rc-master-ui");
14
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
15
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
13
16
  // import type { Dispatch, SetStateAction } from "react";
14
17
 
15
18
  const TableBody = ({
@@ -21,6 +24,7 @@ const TableBody = ({
21
24
  fixedLeftColumns,
22
25
  fixedRightColumns,
23
26
  tableId,
27
+ showEmptyText,
24
28
  ...rest
25
29
  }) => {
26
30
  const {
@@ -28,7 +32,8 @@ const TableBody = ({
28
32
  } = table.getRowModel();
29
33
  const {
30
34
  editingKey,
31
- prefix
35
+ prefix,
36
+ locale
32
37
  } = _react.default.useContext(_useContext.TableContext);
33
38
 
34
39
  //dynamic row height virtualization - alternatively you could use a simpler fixed row height strategy without the need for `measureElement`
@@ -46,13 +51,56 @@ const TableBody = ({
46
51
  className: `${prefix}-grid-tbody`,
47
52
  style: {
48
53
  display: 'grid',
49
- height: `${rowVirtualizer.getTotalSize()}px`,
54
+ // height: `${rowVirtualizer.getTotalSize()}px`, //tells scrollbar how big the table is
55
+ height: showEmptyText && rows.length === 0 ? `140px` : `${rowVirtualizer.getTotalSize()}px`,
50
56
  //tells scrollbar how big the table is
51
57
  position: 'relative' //needed for absolute positioning of rows
52
58
  }
53
- }, virtualRows.map(virtualRow => {
59
+ }, showEmptyText && rows.length === 0 ? /*#__PURE__*/_react.default.createElement("tr", {
60
+ style: {
61
+ // transform: `translateY(${virtualRow.start}px)`, //this should always be a `style` as it changes on scroll
62
+ }
63
+ }, /*#__PURE__*/_react.default.createElement("td", {
64
+ // colSpan={30}
65
+ style: {
66
+ position: "sticky",
67
+ left: 0,
68
+ width: tableContainerRef.current?.clientWidth,
69
+ overflow: 'hidden'
70
+ }
71
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Empty, {
72
+ image: _rcMasterUi.Empty.PRESENTED_IMAGE_SIMPLE,
73
+ description: locale?.emptyText
74
+ })))) : /*#__PURE__*/_react.default.createElement(_react.Fragment, null, virtualRows.map(virtualRow => {
54
75
  const row = rows[virtualRow.index];
55
76
  const isEditing = row.id === editingKey;
77
+
78
+ // return (
79
+ // <tr key={row.id}>
80
+ // {row.getVisibleCells().map((cell) => (
81
+ // <td
82
+ // key={cell.id}
83
+ // style={{
84
+ // padding: '12px',
85
+ // whiteSpace: 'nowrap',
86
+ // fontSize: '0.875rem',
87
+ // color: '#6b7280',
88
+ // border: '1px solid #e5e7eb',
89
+ // width: cell.column.getSize(),
90
+ // maxWidth: cell.column.getSize(),
91
+ // overflow: "hidden",
92
+ // ...getCommonPinningStyles(cell.column)
93
+ // }}>
94
+
95
+ // {cell.column.id}
96
+
97
+ // {/* {flexRender(cell.column.columnDef.cell, cell.getContext())} */}
98
+
99
+ // </td>
100
+ // ))}
101
+ // </tr>
102
+ // )
103
+
56
104
  return /*#__PURE__*/_react.default.createElement(_TableBodyRow.default, (0, _extends2.default)({}, rest, {
57
105
  table: table,
58
106
  tableId: tableId,
@@ -67,6 +115,6 @@ const TableBody = ({
67
115
  fixedRightColumns: fixedRightColumns,
68
116
  isEditing: isEditing
69
117
  }));
70
- }));
118
+ })));
71
119
  };
72
120
  var _default = exports.default = TableBody;
@@ -107,11 +107,12 @@ const TableBodyCell = props => {
107
107
  selectionSettings,
108
108
  id
109
109
  } = (0, _react.useContext)(_useContext.TableContext);
110
+ const columnMeta = cell.column.columnDef.meta ?? {};
110
111
  const parrents = cell.row.getParentRows();
111
112
  const isPinned = cell.column.getIsPinned();
112
113
  const isLastLeftPinnedColumn = isPinned === "left" && cell.column.getIsLastColumn("left");
113
114
  const isFirstRightPinnedColumn = isPinned === "right" && cell.column.getIsFirstColumn("right");
114
- const cellContent = (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext());
115
+ const cellContent = columnMeta.type === 'checkbox' ? '' : (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext());
115
116
  const html = _server.default.renderToStaticMarkup( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, cellContent));
116
117
  const hasValue = html.trim().length > 0;
117
118
  return /*#__PURE__*/_react.default.createElement("td", {
@@ -124,6 +125,7 @@ const TableBodyCell = props => {
124
125
  style: {
125
126
  display: 'flex',
126
127
  width: cell.column.getSize(),
128
+ // border: '1px solid #e5e7eb',
127
129
  ...(0, _utils.getCommonPinningStyles)(cell.column)
128
130
  },
129
131
  "data-tooltip-id": `${id}-tooltip-content`,
@@ -8,6 +8,7 @@ exports.default = void 0;
8
8
  var _reactTable = require("@tanstack/react-table");
9
9
  var _space = _interopRequireDefault(require("rc-master-ui/es/space"));
10
10
  var _Command = _interopRequireDefault(require("../components/command/Command"));
11
+ var _server = _interopRequireDefault(require("react-dom/server"));
11
12
  var _utils = require("../hook/utils");
12
13
  var _Checkbox = _interopRequireDefault(require("rc-master-ui/lib/checkbox/Checkbox"));
13
14
  var _classnames = _interopRequireDefault(require("classnames"));
@@ -15,8 +16,6 @@ var _react = _interopRequireDefault(require("react"));
15
16
  var _useContext = require("../useContext");
16
17
  var _EditableCell = _interopRequireDefault(require("./EditableCell"));
17
18
  var _constant = require("../hook/constant");
18
- // import ReactDOMServer from 'react-dom/server'
19
-
20
19
  // import { nonActionColumn } from "../hook/constant";
21
20
 
22
21
  // import type { Dispatch, SetStateAction } from "react";
@@ -132,14 +131,11 @@ const TableBodyCellEdit = props => {
132
131
  const expandIconColumnIndex = expandable?.expandIconColumnIndex ?? 0;
133
132
  const record = cell.row.original;
134
133
  const columnMeta = cell.column.columnDef.meta ?? {};
135
-
136
- // const cellContent = columnMeta.type === 'checkbox' ? '' : flexRender(cell.column.columnDef.cell, cell.getContext());
137
- // const html = ReactDOMServer.renderToStaticMarkup(<>{cellContent}</>);
138
- // const hasValue = html.trim().length > 0;
139
-
134
+ const cellContent = columnMeta.type === 'checkbox' ? '' : (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext());
135
+ const html = _server.default.renderToStaticMarkup( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, cellContent));
136
+ const hasValue = html.trim().length > 0;
140
137
  const rowError = dataErrors ? dataErrors.find(it => it.id === cell.row.id) : undefined;
141
- // const message = rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : undefined
142
-
138
+ const message = rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : undefined;
143
139
  const canEdit = (0, _utils.isEditable)(cell.column.columnDef.meta, record);
144
140
  // const allRows = table.getRowModel().rows;
145
141
  const allRows = table.getRowModel().flatRows;
@@ -192,7 +188,9 @@ const TableBodyCellEdit = props => {
192
188
  className: (0, _classnames.default)(`${prefix}-grid-cell`, {
193
189
  [`${prefix}-grid-cell-ellipsis`]: true,
194
190
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
195
- [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn
191
+ [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
192
+ [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
193
+ [`${prefix}-grid-cell-text-right`]: columnMeta?.headerTextAlign === 'right'
196
194
  }),
197
195
  style: {
198
196
  display: 'flex',
@@ -244,7 +242,9 @@ const TableBodyCellEdit = props => {
244
242
  className: (0, _classnames.default)(`${prefix}-grid-cell`, {
245
243
  [`${prefix}-grid-cell-ellipsis`]: true,
246
244
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
247
- [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn
245
+ [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
246
+ [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
247
+ [`${prefix}-grid-cell-text-right`]: columnMeta?.headerTextAlign === 'right'
248
248
  }),
249
249
  style: {
250
250
  display: 'flex',
@@ -264,7 +264,9 @@ const TableBodyCellEdit = props => {
264
264
  className: (0, _classnames.default)(`${prefix}-grid-cell cell-editable111 `, {
265
265
  [`${prefix}-grid-cell-ellipsis`]: true,
266
266
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
267
- [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn
267
+ [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
268
+ [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
269
+ [`${prefix}-grid-cell-text-right`]: columnMeta?.headerTextAlign === 'right'
268
270
  }),
269
271
  style: {
270
272
  display: 'flex',
@@ -746,11 +748,9 @@ const TableBodyCellEdit = props => {
746
748
  "data-col-index": colIndex,
747
749
  "data-row-index": rowNumber,
748
750
  "data-col-key": cell.column.id,
749
- "data-row-key": cell.row.id
750
- // data-tooltip-id={`${id}-tooltip-content`}
751
- // data-tooltip-html={!isEditing && !hasValue && !message ? undefined : ReactDOMServer.renderToStaticMarkup(<>{rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : cellContent}</>)}
752
- ,
753
-
751
+ "data-row-key": cell.row.id,
752
+ "data-tooltip-id": `${id}-tooltip-content`,
753
+ "data-tooltip-html": !isEditing && !hasValue && !message ? undefined : _server.default.renderToStaticMarkup( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, rowError && rowError[cell.column.id]?.field === cell.column.id ? rowError[cell.column.id].message : cellContent)),
754
754
  className: (0, _classnames.default)(`${prefix}-grid-cell cell-editable `, {
755
755
  [`${prefix}-grid-cell-ellipsis`]: true,
756
756
  'cell-editing': isEditing,
@@ -766,7 +766,9 @@ const TableBodyCellEdit = props => {
766
766
  'cell-paste-border-top': isInRangePaste && isTopPaste && (pasteRangeState.endRowIndex ?? 0) < (endRowIndex ?? 0),
767
767
  'cell-paste-border-left': isInRangePaste && isLeftPaste,
768
768
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
769
- [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn
769
+ [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
770
+ [`${prefix}-grid-cell-text-center`]: columnMeta?.headerTextAlign === 'center',
771
+ [`${prefix}-grid-cell-text-right`]: columnMeta?.headerTextAlign === 'right' || columnMeta.type === 'number'
770
772
  }),
771
773
  style: {
772
774
  display: 'flex',
@@ -887,7 +889,9 @@ const TableBodyCellEdit = props => {
887
889
  record: record
888
890
  // rowKey={rowKey}
889
891
  }) : /*#__PURE__*/_react.default.createElement("div", {
890
- className: "ui-rc_cell-content"
892
+ className: (0, _classnames.default)('ui-rc_cell-content', {
893
+ 'select-cell': ['select', 'selectTable', 'asyncSelect'].includes((0, _utils.getEditType)(columnMeta, record))
894
+ })
891
895
  }, cell.column.getIndex() === expandIconColumnIndex && /*#__PURE__*/_react.default.createElement("div", {
892
896
  className: "ui-rc-table-row-expand-trigger",
893
897
  style: {
@@ -921,7 +925,13 @@ const TableBodyCellEdit = props => {
921
925
  className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-collapsed"
922
926
  })) : /*#__PURE__*/_react.default.createElement("span", {
923
927
  className: "ui-rc-table-row-expand-icon ui-rc-table-row-expand-icon-spaced"
924
- }))), (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext())), !isSelecting && !isEditing && cell.row.id === endCell?.rowId && cell.column.getIndex() === rangeState?.endColIndex && /*#__PURE__*/_react.default.createElement("div", {
928
+ }))), (0, _reactTable.flexRender)(cell.column.columnDef.cell, cell.getContext()), (editType === 'select' || editType === 'selectTable' || editType === 'asyncSelect' || editType === 'treeSelect') && canEdit && /*#__PURE__*/_react.default.createElement("span", {
929
+ className: 'caret-down',
930
+ onClick: e => {
931
+ handleEdit(e);
932
+ // setEditingKey?.(cell.row.id)
933
+ }
934
+ })), !isSelecting && !isEditing && cell.row.id === endCell?.rowId && cell.column.getIndex() === rangeState?.endColIndex && /*#__PURE__*/_react.default.createElement("div", {
925
935
  className: 'dragging-point',
926
936
  onMouseDown: e => {
927
937
  e.preventDefault();
@@ -61,7 +61,8 @@ const TableFooterCell = ({
61
61
  // [`${prefix}-grid-cell-ellipsis`]:!wrapSettings || !(wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')),
62
62
  // [`${prefix}-grid-cell-wrap`]: wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header'),
63
63
  [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
64
- [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn
64
+ [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
65
+ [`${prefix}-grid-cell-text-right`]: true
65
66
  }),
66
67
  key: header.id,
67
68
  colSpan: header.colSpan,
@@ -71,6 +72,6 @@ const TableFooterCell = ({
71
72
  width: header?.getSize() ?? header.column.getSize(),
72
73
  backgroundColor: "#fafafa"
73
74
  }
74
- }, header.column.id !== "id" && header.column.id !== "selection_column" ? /*#__PURE__*/_react.default.createElement("span", null, col.summaryTemplate ? col.summaryTemplate(numberValue, col.field) : (0, _reactNumericComponent.numericFormatter)(cellValue, numericFormatProps)) : '');
75
+ }, header.column.id !== "id" && header.column.id !== "selection_column" ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, col.summaryTemplate ? col.summaryTemplate(numberValue, col.field) : (0, _reactNumericComponent.numericFormatter)(cellValue, numericFormatProps)) : '');
75
76
  };
76
77
  var _default = exports.default = TableFooterCell;
@@ -1,4 +1,4 @@
1
- import type { Column, Table } from '@tanstack/react-table';
1
+ import { type Column, type Table } from '@tanstack/react-table';
2
2
  import { type Virtualizer } from '@tanstack/react-virtual';
3
3
  import React from 'react';
4
4
  interface TableHeadProps<T> {
@@ -5,10 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = void 0;
8
+ var _reactTable = require("@tanstack/react-table");
8
9
  var _reactVirtual = require("@tanstack/react-virtual");
9
10
  var _react = _interopRequireWildcard(require("react"));
10
11
  var _useContext = require("../useContext");
11
12
  var _TableHeadRow = _interopRequireDefault(require("./TableHeadRow"));
13
+ var _utils = require("../hook/utils");
12
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
15
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
16
  const TableHead = ({
@@ -32,7 +34,8 @@ const TableHead = ({
32
34
  measureElement: typeof window !== 'undefined' && navigator.userAgent.indexOf('Firefox') === -1 ? element => element?.getBoundingClientRect().height : undefined,
33
35
  overscan: 5
34
36
  });
35
- const virtualRows = rowVirtualizer.getVirtualItems();
37
+
38
+ // const virtualRows = rowVirtualizer.getVirtualItems()
36
39
 
37
40
  // const columnSizingState = table.getState().columnSizing
38
41
 
@@ -45,13 +48,12 @@ const TableHead = ({
45
48
  return /*#__PURE__*/_react.default.createElement("thead", {
46
49
  className: `${prefix}-grid-thead`,
47
50
  style: {
48
- display: 'grid',
51
+ // display: 'grid',
49
52
  position: 'sticky',
50
53
  top: 0,
51
54
  zIndex: 1
52
55
  }
53
- }, virtualRows.map(virtualRow => {
54
- const headerGroup = table.getHeaderGroups()[virtualRow.index];
56
+ }, table.getHeaderGroups().map(headerGroup => {
55
57
  return /*#__PURE__*/_react.default.createElement(_TableHeadRow.default, {
56
58
  table: table,
57
59
  columnVirtualizer: columnVirtualizer,
@@ -61,9 +63,43 @@ const TableHead = ({
61
63
  virtualPaddingLeft: virtualPaddingLeft,
62
64
  virtualPaddingRight: virtualPaddingRight,
63
65
  fixedLeftColumns: fixedLeftColumns,
64
- fixedRightColumns: fixedRightColumns,
65
- rowHeaderVirtual: virtualRow
66
+ fixedRightColumns: fixedRightColumns
67
+ // rowHeaderVirtual={virtualRow}
66
68
  });
69
+ return /*#__PURE__*/_react.default.createElement("tr", {
70
+ key: headerGroup.id
71
+ }, headerGroup.headers.map(header => {
72
+ const columnRelativeDepth = header.depth - header.column.depth;
73
+ if (columnRelativeDepth > 1) {
74
+ return null;
75
+ }
76
+ let rowSpan = 1;
77
+ if (header.isPlaceholder) {
78
+ const leafs = header.getLeafHeaders();
79
+ rowSpan = leafs[leafs.length - 1].depth - header.depth;
80
+ }
81
+ return /*#__PURE__*/_react.default.createElement("th", {
82
+ key: header.id,
83
+ colSpan: header.colSpan,
84
+ rowSpan: rowSpan,
85
+ style: {
86
+ padding: '12px',
87
+ textAlign: 'left',
88
+ fontSize: '0.75rem',
89
+ fontWeight: 'medium',
90
+ color: '#6b7280',
91
+ textTransform: 'uppercase',
92
+ letterSpacing: '0.05em',
93
+ // backgroundColor: '#f9fafb',
94
+ // border: '1px solid #e5e7eb',
95
+ width: header.getSize(),
96
+ minWidth: header.getSize(),
97
+ maxWidth: header.getSize(),
98
+ // overflow: 'hidden',
99
+ ...(0, _utils.getCommonPinningStyles)(header.column)
100
+ }
101
+ }, (0, _reactTable.flexRender)(header.column.columnDef.header, header.getContext()));
102
+ }));
67
103
  }));
68
104
  };
69
105
  var _default = exports.default = TableHead;
@@ -9,6 +9,8 @@ interface TableHeadCellProps<T> {
9
9
  getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
10
10
  columnVirtualizer: Virtualizer<HTMLDivElement, HTMLTableCellElement>;
11
11
  rowHeaderVirtualizer: Virtualizer<HTMLDivElement, HTMLTableRowElement>;
12
+ colSpan: any;
13
+ rowSpan: any;
12
14
  }
13
15
  declare const TableHeadCell: <RecordType extends object>(props: TableHeadCellProps<RecordType>) => React.JSX.Element;
14
16
  export default TableHeadCell;