es-grid-template 1.8.63 → 1.8.65

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 (143) hide show
  1. package/es/grid-component/ColumnsGroup/ColumnsGroup.js +4 -1
  2. package/es/grid-component/TempTable.js +2 -2
  3. package/es/grid-component/hooks/utils.d.ts +2 -8
  4. package/es/grid-component/hooks/utils.js +175 -144
  5. package/es/grid-component/index.d.ts +1 -1
  6. package/es/grid-component/index.js +0 -4
  7. package/es/grid-component/type.d.ts +8 -0
  8. package/es/table-component/InternalTable.js +1 -4
  9. package/es/table-component/TableContainer.js +5 -5
  10. package/es/table-component/TableContainerEdit.js +158 -29
  11. package/es/table-component/body/TableBodyCellEdit.js +69 -31
  12. package/es/table-component/hook/utils.d.ts +2 -0
  13. package/es/table-component/hook/utils.js +39 -2
  14. package/es/table-component/table/Grid.js +10 -7
  15. package/es/table-component/table/TableWrapper.js +0 -2
  16. package/es/table-component/type.d.ts +9 -0
  17. package/es/table-component/useContext.d.ts +3 -1
  18. package/es/table-virtuoso/ColumnsGroup/ColumnsGroup.d.ts +12 -0
  19. package/es/table-virtuoso/ColumnsGroup/ColumnsGroup.js +232 -0
  20. package/es/table-virtuoso/ColumnsGroup/index.d.ts +1 -0
  21. package/es/table-virtuoso/ColumnsGroup/index.js +1 -0
  22. package/es/{grid-component → table-virtuoso}/InternalTable.d.ts +2 -3
  23. package/es/table-virtuoso/InternalTable.js +413 -0
  24. package/es/table-virtuoso/body/TableBody.d.ts +14 -0
  25. package/es/table-virtuoso/body/TableBody.js +84 -0
  26. package/es/table-virtuoso/body/TableBodyCell.d.ts +14 -0
  27. package/es/table-virtuoso/body/TableBodyCell.js +466 -0
  28. package/es/table-virtuoso/body/TableBodyRow.d.ts +13 -0
  29. package/es/table-virtuoso/body/TableBodyRow.js +116 -0
  30. package/es/table-virtuoso/footer/TableFooterCell.d.ts +7 -0
  31. package/es/table-virtuoso/footer/TableFooterCell.js +54 -0
  32. package/es/table-virtuoso/header/TableHeadCell.d.ts +14 -0
  33. package/es/table-virtuoso/header/TableHeadCell.js +265 -0
  34. package/es/table-virtuoso/header/renderFilter.d.ts +20 -0
  35. package/es/table-virtuoso/header/renderFilter.js +289 -0
  36. package/es/table-virtuoso/hook/constant.d.ts +73 -0
  37. package/es/table-virtuoso/hook/constant.js +240 -0
  38. package/es/table-virtuoso/hook/convert.d.ts +1 -0
  39. package/es/table-virtuoso/hook/convert.js +28 -0
  40. package/es/table-virtuoso/hook/useColumns.d.ts +28 -0
  41. package/es/table-virtuoso/hook/useColumns.js +302 -0
  42. package/es/table-virtuoso/hook/useFilterOperator.d.ts +7 -0
  43. package/es/table-virtuoso/hook/useFilterOperator.js +33 -0
  44. package/es/table-virtuoso/hook/utils.d.ts +159 -0
  45. package/es/table-virtuoso/hook/utils.js +2263 -0
  46. package/es/table-virtuoso/index.d.ts +2 -0
  47. package/es/table-virtuoso/index.js +2 -0
  48. package/es/table-virtuoso/style.d.ts +22 -0
  49. package/es/table-virtuoso/style.js +11 -0
  50. package/es/table-virtuoso/style.scss +1440 -0
  51. package/es/table-virtuoso/table/Grid.d.ts +37 -0
  52. package/es/table-virtuoso/table/Grid.js +302 -0
  53. package/es/table-virtuoso/table/TableContainer.d.ts +49 -0
  54. package/es/table-virtuoso/table/TableContainer.js +305 -0
  55. package/es/table-virtuoso/table/TableWrapper.d.ts +20 -0
  56. package/es/table-virtuoso/table/TableWrapper.js +158 -0
  57. package/es/table-virtuoso/type.d.ts +0 -0
  58. package/es/table-virtuoso/type.js +785 -0
  59. package/es/table-virtuoso/useContext.d.ts +97 -0
  60. package/es/table-virtuoso/useContext.js +21 -0
  61. package/lib/grid-component/ColumnsGroup/ColumnsGroup.js +4 -1
  62. package/lib/grid-component/TempTable.js +2 -2
  63. package/lib/grid-component/hooks/utils.d.ts +2 -8
  64. package/lib/grid-component/hooks/utils.js +176 -152
  65. package/lib/grid-component/index.d.ts +1 -1
  66. package/lib/grid-component/index.js +0 -3
  67. package/lib/grid-component/type.d.ts +8 -0
  68. package/lib/table-component/InternalTable.js +1 -4
  69. package/lib/table-component/TableContainer.js +5 -5
  70. package/lib/table-component/TableContainerEdit.js +158 -29
  71. package/lib/table-component/body/TableBodyCellEdit.js +69 -31
  72. package/lib/table-component/hook/utils.d.ts +2 -0
  73. package/lib/table-component/hook/utils.js +45 -4
  74. package/lib/table-component/table/Grid.js +10 -7
  75. package/lib/table-component/table/TableWrapper.js +0 -2
  76. package/lib/table-component/type.d.ts +9 -0
  77. package/lib/table-component/useContext.d.ts +3 -1
  78. package/lib/table-virtuoso/ColumnsGroup/ColumnsGroup.d.ts +12 -0
  79. package/lib/table-virtuoso/ColumnsGroup/ColumnsGroup.js +243 -0
  80. package/lib/table-virtuoso/ColumnsGroup/index.d.ts +1 -0
  81. package/lib/table-virtuoso/ColumnsGroup/index.js +16 -0
  82. package/lib/{grid-component → table-virtuoso}/InternalTable.d.ts +2 -3
  83. package/lib/table-virtuoso/InternalTable.js +422 -0
  84. package/lib/table-virtuoso/body/TableBody.d.ts +14 -0
  85. package/lib/table-virtuoso/body/TableBody.js +95 -0
  86. package/lib/table-virtuoso/body/TableBodyCell.d.ts +14 -0
  87. package/lib/table-virtuoso/body/TableBodyCell.js +473 -0
  88. package/lib/table-virtuoso/body/TableBodyRow.d.ts +13 -0
  89. package/lib/table-virtuoso/body/TableBodyRow.js +124 -0
  90. package/lib/table-virtuoso/footer/TableFooterCell.d.ts +7 -0
  91. package/lib/table-virtuoso/footer/TableFooterCell.js +63 -0
  92. package/lib/table-virtuoso/header/TableHeadCell.d.ts +14 -0
  93. package/lib/table-virtuoso/header/TableHeadCell.js +274 -0
  94. package/lib/table-virtuoso/header/renderFilter.d.ts +20 -0
  95. package/lib/table-virtuoso/header/renderFilter.js +299 -0
  96. package/lib/table-virtuoso/hook/constant.d.ts +73 -0
  97. package/lib/table-virtuoso/hook/constant.js +247 -0
  98. package/lib/table-virtuoso/hook/convert.d.ts +1 -0
  99. package/lib/table-virtuoso/hook/convert.js +34 -0
  100. package/lib/table-virtuoso/hook/useColumns.d.ts +28 -0
  101. package/lib/table-virtuoso/hook/useColumns.js +315 -0
  102. package/lib/table-virtuoso/hook/useFilterOperator.d.ts +7 -0
  103. package/lib/table-virtuoso/hook/useFilterOperator.js +40 -0
  104. package/lib/table-virtuoso/hook/utils.d.ts +159 -0
  105. package/lib/table-virtuoso/hook/utils.js +2389 -0
  106. package/lib/table-virtuoso/index.d.ts +2 -0
  107. package/lib/table-virtuoso/index.js +9 -0
  108. package/lib/table-virtuoso/style.d.ts +22 -0
  109. package/lib/table-virtuoso/style.js +18 -0
  110. package/lib/table-virtuoso/style.scss +1440 -0
  111. package/lib/table-virtuoso/table/Grid.d.ts +37 -0
  112. package/lib/table-virtuoso/table/Grid.js +311 -0
  113. package/lib/table-virtuoso/table/TableContainer.d.ts +49 -0
  114. package/lib/table-virtuoso/table/TableContainer.js +313 -0
  115. package/lib/table-virtuoso/table/TableWrapper.d.ts +20 -0
  116. package/lib/table-virtuoso/table/TableWrapper.js +164 -0
  117. package/lib/table-virtuoso/type.d.ts +0 -0
  118. package/lib/table-virtuoso/type.js +786 -0
  119. package/lib/table-virtuoso/useContext.d.ts +97 -0
  120. package/lib/table-virtuoso/useContext.js +27 -0
  121. package/package.json +2 -1
  122. package/es/grid-component/ConvertColumnTable.d.ts +0 -7
  123. package/es/grid-component/ConvertColumnTable.js +0 -144
  124. package/es/grid-component/InternalTable.js +0 -1170
  125. package/es/grid-component/table/Grid.d.ts +0 -23
  126. package/es/grid-component/table/Grid.js +0 -49
  127. package/es/grid-component/table/GridEdit.d.ts +0 -23
  128. package/es/grid-component/table/GridEdit.js +0 -2726
  129. package/es/grid-component/table/Group.d.ts +0 -21
  130. package/es/grid-component/table/Group.js +0 -195
  131. package/es/grid-component/table/InfiniteTable.d.ts +0 -23
  132. package/es/grid-component/table/InfiniteTable.js +0 -101
  133. package/lib/grid-component/ConvertColumnTable.d.ts +0 -7
  134. package/lib/grid-component/ConvertColumnTable.js +0 -153
  135. package/lib/grid-component/InternalTable.js +0 -1178
  136. package/lib/grid-component/table/Grid.d.ts +0 -23
  137. package/lib/grid-component/table/Grid.js +0 -58
  138. package/lib/grid-component/table/GridEdit.d.ts +0 -23
  139. package/lib/grid-component/table/GridEdit.js +0 -2723
  140. package/lib/grid-component/table/Group.d.ts +0 -21
  141. package/lib/grid-component/table/Group.js +0 -204
  142. package/lib/grid-component/table/InfiniteTable.d.ts +0 -23
  143. package/lib/grid-component/table/InfiniteTable.js +0 -109
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _TableBodyCell = _interopRequireDefault(require("./TableBodyCell"));
10
+ var _reactTable = require("@tanstack/react-table");
11
+ var _react = _interopRequireDefault(require("react"));
12
+ var _useContext = require("../useContext");
13
+ var _classnames = _interopRequireDefault(require("classnames"));
14
+ // import type { VirtualItem, Virtualizer } from "@tanstack/react-virtual"
15
+
16
+ const TableBodyRow = ({
17
+ tableId,
18
+ table,
19
+ row,
20
+ virtualRow,
21
+ commandClick,
22
+ contextMenuItems,
23
+ onContextMenu,
24
+ ...rest
25
+ }) => {
26
+ const {
27
+ prefix,
28
+ recordDoubleClick,
29
+ focusedCell,
30
+ rowClassName,
31
+ onRowStyles,
32
+ groupSetting
33
+ } = _react.default.useContext(_useContext.TableContext);
34
+ const rowClass = typeof rowClassName === 'function' ? rowClassName(row.original, row.index, row.depth) : rowClassName;
35
+ const rowStyles = typeof onRowStyles === 'function' ? onRowStyles(row.original, row) : onRowStyles;
36
+ const visibleCells = row.getVisibleCells();
37
+ const allCells = row.getAllCells();
38
+ return /*#__PURE__*/_react.default.createElement("tr", (0, _extends2.default)({
39
+ key: row.id,
40
+ "data-row-key": row.id
41
+ }, rest, {
42
+ className: (0, _classnames.default)(`${prefix}-grid-row ${rowClass ?? ''}`, {
43
+ [`${prefix}-grid-row-selected`]: row.getIsSelected(),
44
+ [`${prefix}-grid-row-focus`]: row.id === focusedCell?.rowId,
45
+ [`${prefix}-grid-row-parent`]: row.subRows && row.subRows.length > 0
46
+ }),
47
+ style: {
48
+ ...rowStyles
49
+ },
50
+ onDoubleClick: e => {
51
+ recordDoubleClick?.({
52
+ e,
53
+ rowData: row.original,
54
+ rowIndex: row.index
55
+ });
56
+ },
57
+ onContextMenu: e => {
58
+ if (contextMenuItems && contextMenuItems.length) {
59
+ onContextMenu?.(row.original)(e);
60
+ }
61
+ }
62
+ }), visibleCells.map(cell => {
63
+ const nonGroupColumns = visibleCells.filter(col => col.column.id !== 'selection_column' && col.column.id !== '#');
64
+ const firstNonGroupColumn = nonGroupColumns[0];
65
+
66
+ // const colSpan = row.subRows && cell.column.id === firstNonGroupColumn?.id ? (groupSetting?.groupColumnSpan ?? 2)
67
+ const colSpan = row.subRows && row.subRows.length > 0 && cell.column.id === firstNonGroupColumn?.column.id ? 2 : row.subRows && nonGroupColumns[1].column.id === cell.column.id ? 0 : 1;
68
+ if (row.subRows && row.subRows.length > 0 && colSpan === 0) {
69
+ return null;
70
+ }
71
+
72
+ // if (groupAble && column.field === firstNonGroupColumn?.field && row.subRows) {
73
+ if (cell.column.id === firstNonGroupColumn.column.id && row.subRows && row.subRows.length > 0) {
74
+ const {
75
+ field
76
+ } = row.original ?? {};
77
+ const cellGroup = allCells.find(it => it.column.id === field);
78
+
79
+ // const header = allColumns.find((it) => it.id === field)
80
+
81
+ const headerContext = cellGroup && groupSetting?.showHeaderColumn !== false ? {
82
+ table,
83
+ column: cellGroup.column,
84
+ header: {
85
+ id: cellGroup.column.id,
86
+ column: cellGroup.column,
87
+ depth: 0,
88
+ index: 0,
89
+ subHeaders: []
90
+ }
91
+ } : undefined;
92
+ const cellValue = cellGroup ? cellGroup.getValue() : '';
93
+ const headertext = headerContext && cellGroup ? (0, _reactTable.flexRender)(cellGroup.column.columnDef.header, headerContext) : '';
94
+ const cellContent = cellGroup ? (0, _reactTable.flexRender)(cellGroup.column.columnDef.cell, cellGroup.getContext()) : '';
95
+ const groupValue = typeof groupSetting?.groupTemplate === 'function' ? groupSetting?.groupTemplate({
96
+ column: cellGroup?.column.columnDef.meta,
97
+ rowData: row.original,
98
+ value: cellValue
99
+ }) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, headertext, headertext ? ': ' : '', " ", cellContent);
100
+ return /*#__PURE__*/_react.default.createElement(_TableBodyCell.default, {
101
+ table: table,
102
+ tableId: tableId,
103
+ key: cell.id,
104
+ cell: cell,
105
+ commandClick: commandClick,
106
+ virtualRow: virtualRow,
107
+ isEditing: false,
108
+ colSpan: colSpan ?? 1,
109
+ groupValue: groupValue
110
+ });
111
+ }
112
+ return /*#__PURE__*/_react.default.createElement(_TableBodyCell.default, {
113
+ table: table,
114
+ tableId: tableId,
115
+ key: cell.id,
116
+ cell: cell,
117
+ commandClick: commandClick,
118
+ virtualRow: virtualRow,
119
+ isEditing: false,
120
+ colSpan: colSpan ?? 1
121
+ });
122
+ }));
123
+ };
124
+ var _default = exports.default = TableBodyRow;
@@ -0,0 +1,7 @@
1
+ import type { Column } from "@tanstack/react-table";
2
+ import React from "react";
3
+ interface TableFooterCellProps<T> {
4
+ column: Column<T, any>;
5
+ }
6
+ declare const TableFooterCell: <RecordType extends object>({ column }: TableFooterCellProps<RecordType>) => React.JSX.Element;
7
+ export default TableFooterCell;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _utils = require("../hook/utils");
10
+ var _useContext = require("../useContext");
11
+ var _classnames = _interopRequireDefault(require("classnames"));
12
+ var _hooks = require("../../grid-component/hooks");
13
+ var _reactNumericComponent = require("react-numeric-component");
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; }
16
+ const TableFooterCell = ({
17
+ column
18
+ }) => {
19
+ const {
20
+ prefix,
21
+ format,
22
+ dataSource
23
+ } = (0, _react.useContext)(_useContext.TableContext);
24
+ const col = column.columnDef.meta ?? {};
25
+ const colFormat = typeof col.format === 'function' ? col.format({}) : col.format;
26
+ const cellFormat = (0, _utils.getFormat)(colFormat, format);
27
+ const thousandSeparator = cellFormat?.thousandSeparator;
28
+ const decimalSeparator = cellFormat?.decimalSeparator;
29
+
30
+ // const dec = (col.format?.decimalScale || col.format?.decimalScale === 0) ? col.format?.decimalScale : format?.decimalScale
31
+ const dec = cellFormat?.decimalScale;
32
+
33
+ // const sumValue = col.type === 'number' ? sumDataByField(filterDataByColumns4(dataSource, filterStates) as any[], col?.key as string) : 0
34
+ const sumValue = col.type === 'number' ? (0, _hooks.sumByField)(dataSource, col?.field) : 0;
35
+ const value = !(0, _utils.isEmpty)(sumValue) ? dec || dec === 0 ? parseFloat(Number(sumValue).toFixed(dec)).toString() : sumValue.toString() : '0';
36
+ const cellValue = col.type === 'number' && col.isSummary !== false ? value : '';
37
+ const numberValue = Number(value);
38
+ const numericFormatProps = {
39
+ thousandSeparator: (0, _utils.checkThousandSeparator)(thousandSeparator, decimalSeparator),
40
+ decimalSeparator: (0, _utils.checkDecimalSeparator)(thousandSeparator, decimalSeparator),
41
+ allowNegative: cellFormat?.allowNegative ?? false,
42
+ prefix: cellFormat?.prefix,
43
+ suffix: cellFormat?.suffix,
44
+ decimalScale: dec,
45
+ fixedDecimalScale: cellFormat?.fixedDecimalScale ?? false
46
+ };
47
+ return /*#__PURE__*/_react.default.createElement("th", {
48
+ className: (0, _classnames.default)(`${prefix}-grid-cell`, {
49
+ // [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
50
+ // [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
51
+ // [`${prefix}-grid-cell-text-right`]: true
52
+ })
53
+ // key={column.id}
54
+ ,
55
+ style: {
56
+ // display: 'flex',
57
+ ...(0, _utils.getCommonPinningStyles)(column),
58
+ minWidth: column?.getSize(),
59
+ height: 40
60
+ }
61
+ }, column.id !== "id" && column.id !== "selection_column" ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, col.summaryTemplate ? col.summaryTemplate(numberValue, col.field) : (0, _reactNumericComponent.numericFormatter)(cellValue, numericFormatProps)) : '');
62
+ };
63
+ var _default = exports.default = TableFooterCell;
@@ -0,0 +1,14 @@
1
+ import type { Table } from '@tanstack/react-table';
2
+ import { type Header } from '@tanstack/react-table';
3
+ import React from 'react';
4
+ interface TableHeadCellProps<T> {
5
+ t?: any;
6
+ table: Table<T>;
7
+ header: Header<T, unknown>;
8
+ getPopupContainer?: (triggerNode: HTMLElement) => HTMLElement;
9
+ colSpan: any;
10
+ rowSpan: any;
11
+ rowIndex: number;
12
+ }
13
+ declare const TableHeadCell: <RecordType extends object>(props: TableHeadCellProps<RecordType>) => React.JSX.Element;
14
+ export default TableHeadCell;
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _reactTable = require("@tanstack/react-table");
9
+ var _react = _interopRequireWildcard(require("react"));
10
+ var _antd = require("antd");
11
+ var _becoxyIcons = require("becoxy-icons");
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _rcMasterUi = require("rc-master-ui");
14
+ var _constant = require("../hook/constant");
15
+ var _utils = require("../hook/utils");
16
+ var _renderFilter = require("./renderFilter");
17
+ var _server = _interopRequireDefault(require("react-dom/server"));
18
+ var _useContext = require("../useContext");
19
+ 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); }
20
+ 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; }
21
+ // import type { MenuProps } from 'rc-master-ui/es'
22
+
23
+ const TableHeadCell = props => {
24
+ const {
25
+ header,
26
+ getPopupContainer,
27
+ table,
28
+ colSpan,
29
+ rowSpan,
30
+ rowIndex
31
+ } = props;
32
+ const {
33
+ t,
34
+ prefix,
35
+ setSorterChange,
36
+ setFilterChange,
37
+ wrapSettings,
38
+ selectionSettings,
39
+ setIsSelectionChange,
40
+ id,
41
+ locale
42
+ } = (0, _react.useContext)(_useContext.TableContext);
43
+ const isPinned = header.column.getIsPinned();
44
+ const isLastLeftPinnedColumn = isPinned === 'left' && header.column.getIsLastColumn('left');
45
+ const isFirstRightPinnedColumn = isPinned === 'right' && header.column.getIsFirstColumn('right');
46
+ const [selectedKeys, setSelectedKeys] = _react.default.useState([]);
47
+ const [currentFilter, setCurrentFilter] = _react.default.useState({});
48
+ const column = header.column.columnDef;
49
+ const originalColumn = header.column.columnDef.meta ?? {};
50
+ const filterValue = header.column.getFilterValue() ?? [];
51
+ const operatorValue = header.column.getFilterOperator() ?? (0, _utils.getDefaultOperator)(column?.meta ?? {});
52
+ const {
53
+ filterIcon
54
+ } = header.column.columnDef.meta ?? {};
55
+ const filtered = (header.column.getFilterValue() ?? []).length > 0;
56
+ const cellContent = (0, _reactTable.flexRender)(header.column.columnDef.header, header.getContext());
57
+ const html = _server.default.renderToStaticMarkup( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, cellContent));
58
+ const hasValue = html.trim().length > 0;
59
+ _react.default.useEffect(() => {
60
+ setCurrentFilter(prev => ({
61
+ ...prev,
62
+ ope: operatorValue
63
+ }));
64
+ }, []);
65
+ _react.default.useEffect(() => {
66
+ setSelectedKeys(filterValue);
67
+ }, []);
68
+ const style = {
69
+ transition: 'width transform 0.2s ease-in-out',
70
+ whiteSpace: 'nowrap',
71
+ borderTopWidth: rowIndex > 0 ? 0 : undefined
72
+ };
73
+ const getDropdownTrigger = () => {
74
+ let iconFilter;
75
+ if (typeof filterIcon === 'function') {
76
+ iconFilter = filterIcon(filtered);
77
+ } else if (filterIcon) {
78
+ iconFilter = filterIcon;
79
+ } else {
80
+ iconFilter = /*#__PURE__*/_react.default.createElement(_becoxyIcons.FilterFill, {
81
+ style: {
82
+ color: filtered ? '#E3165B' : '#283046'
83
+ },
84
+ fontSize: 12
85
+ });
86
+ }
87
+ return /*#__PURE__*/_react.default.createElement("span", {
88
+ role: "button",
89
+ tabIndex: -1,
90
+ className: (0, _classnames.default)(`${prefix}-trigger`, {
91
+ active: filtered
92
+ }),
93
+ onClick: e => {
94
+ e.stopPropagation();
95
+ }
96
+ }, iconFilter);
97
+ };
98
+ const doFilter = type => {
99
+ if (type) {
100
+ header.column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
101
+ header.column.setFilterOperator?.(currentFilter.ope);
102
+ } else {
103
+ header.column.setFilterValue(undefined);
104
+ setSelectedKeys([]);
105
+ }
106
+ setFilterChange(true);
107
+ setTimeout(() => {
108
+ setFilterChange(false);
109
+ }, 10);
110
+ };
111
+ const mergedDropdownProps = (0, _utils.extendsObject)({
112
+ trigger: ['click'],
113
+ placement: 'bottomRight',
114
+ children: getDropdownTrigger(),
115
+ getPopupContainer
116
+ }, {
117
+ // open: visible,
118
+ // open: visible.visible && visible.column === header.column.id,
119
+ // onOpenChange: onVisibleChange,
120
+
121
+ destroyPopupOnHide: true,
122
+ dropdownRender: () => {
123
+ const type = (0, _utils.getTypeFilter)(originalColumn);
124
+
125
+ // const operatorValue = (header.column.getFilterOperator() ?? getDefaultOperator(originalColumn)) as string
126
+
127
+ const operatorOptions = ['Checkbox', 'Dropdown', 'DropTree', 'CheckboxDropdown'].includes(type) ? _constant.booleanOperator : !type || type === 'Text' ? _constant.stringOperator : _constant.numberOperator;
128
+ return /*#__PURE__*/_react.default.createElement("div", {
129
+ className: (0, _classnames.default)(`${prefix}-grid-filter-dropdown`, {}),
130
+ style: {}
131
+ }, /*#__PURE__*/_react.default.createElement("div", {
132
+ style: {
133
+ minWidth: 275,
134
+ padding: '8px'
135
+ }
136
+ }, column.meta?.showOperator !== false && column.meta?.typeFilter !== 'DateRange' && column.meta?.typeFilter !== 'NumberRange' && /*#__PURE__*/_react.default.createElement("div", {
137
+ className: 'mb-1'
138
+ }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Select, {
139
+ options: (0, _constant.translateOption)(operatorOptions, t),
140
+ style: {
141
+ width: '100%',
142
+ marginBottom: 8
143
+ }
144
+
145
+ // value={operatorValue}
146
+ ,
147
+ value: currentFilter.ope,
148
+ onChange: val => {
149
+ setCurrentFilter(prev => ({
150
+ ...prev,
151
+ ope: val
152
+ }));
153
+ // header.column.setFilterOperator(val)
154
+ }
155
+ })), /*#__PURE__*/_react.default.createElement("div", {
156
+ style: {
157
+ marginBottom: 8
158
+ }
159
+ }, (0, _renderFilter.renderFilter)({
160
+ column: column,
161
+ selectedKeys,
162
+ setSelectedKeys
163
+ })), /*#__PURE__*/_react.default.createElement(_antd.Space, {
164
+ style: {
165
+ justifyContent: 'end',
166
+ width: '100%'
167
+ }
168
+ }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
169
+ type: "primary",
170
+ onClick: () => {
171
+ doFilter(true);
172
+ },
173
+ size: "small",
174
+ style: {
175
+ width: 90
176
+ }
177
+ }, t ? t('Filter') : 'Filter'), /*#__PURE__*/_react.default.createElement(_antd.Button, {
178
+ type: "link",
179
+ size: "small",
180
+ onClick: () => {
181
+ setSelectedKeys([]);
182
+ doFilter(false);
183
+ }
184
+ }, t ? t('Clear') : 'Clear'))));
185
+ }
186
+ });
187
+ return /*#__PURE__*/_react.default.createElement("th", {
188
+ className: (0, _classnames.default)(`${prefix}-grid-cell`, {
189
+ [`${prefix}-grid-cell-ellipsis`]: !wrapSettings || !(wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')),
190
+ [`${prefix}-grid-cell-wrap`]: wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header'),
191
+ [`${prefix}-grid-cell-fix-left-last`]: isLastLeftPinnedColumn,
192
+ [`${prefix}-grid-cell-fix-right-first`]: isFirstRightPinnedColumn,
193
+ [`${prefix}-grid-cell-text-center`]: (originalColumn?.headerTextAlign ?? originalColumn?.textAlign) === 'center',
194
+ [`${prefix}-grid-cell-text-right`]: (originalColumn?.headerTextAlign ?? originalColumn.textAlign) === 'right'
195
+ }),
196
+ colSpan: colSpan,
197
+ rowSpan: rowSpan,
198
+ key: header.id,
199
+ style: {
200
+ width: header.getSize(),
201
+ ...(0, _utils.getCommonPinningHeaderStyles)(header.column),
202
+ ...style
203
+ },
204
+ "data-tooltip-id": `${id}-tooltip-content`,
205
+ "data-tooltip-html": !hasValue ? '' : _server.default.renderToStaticMarkup( /*#__PURE__*/_react.default.createElement("div", null, cellContent))
206
+ }, /*#__PURE__*/_react.default.createElement("div", {
207
+ className: (0, _classnames.default)('', {
208
+ [`${prefix}-grid-filter-column`]: header.column.id !== 'selection_column',
209
+ [`${prefix}-grid-selection-column`]: header.column.id === 'selection_column'
210
+ })
211
+ }, header.column.id === 'selection_column' && selectionSettings && selectionSettings.hideSelectAll !== false && selectionSettings.type !== 'single' && selectionSettings.mode !== 'radio' && /*#__PURE__*/_react.default.createElement(_rcMasterUi.Checkbox, {
212
+ checked: table.getIsAllRowsSelected(),
213
+ indeterminate: table.getIsSomeRowsSelected(),
214
+ onChange: e => {
215
+ setIsSelectionChange({
216
+ isChange: true,
217
+ type: 'all',
218
+ rowData: {},
219
+ rowsData: []
220
+ });
221
+ table.getToggleAllRowsSelectedHandler()(e);
222
+ }
223
+ }), header.column.id !== 'selection_column' && /*#__PURE__*/_react.default.createElement("span", {
224
+ className: "ui-rc-table-column-title",
225
+ style: {
226
+ flex: 1
227
+ }
228
+ }, /*#__PURE__*/_react.default.createElement("div", {
229
+ className: (0, _classnames.default)('', {
230
+ [`${prefix}-grid-cell-ellipsis`]: !wrapSettings || !(wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')),
231
+ [`${prefix}-grid-cell-text-wrap`]: wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')
232
+ })
233
+ }, cellContent)), !_constant.nonActionColumn.includes(header.column.id) && header.subHeaders.length < 2 && /*#__PURE__*/_react.default.createElement("span", {
234
+ className: "ui-rc-header-trigger"
235
+ }, header.column.getCanSort() && /*#__PURE__*/_react.default.createElement("div", {
236
+ style: {
237
+ marginInlineEnd: 6,
238
+ cursor: 'pointer'
239
+ },
240
+ onClick: e => {
241
+ setSorterChange(true);
242
+ const toggleSortingHandler = header.column.getToggleSortingHandler();
243
+ if (typeof toggleSortingHandler === 'function') {
244
+ toggleSortingHandler(e);
245
+ }
246
+ }
247
+ }, header.column.getIsSorted() ? header.column.getIsSorted() === 'asc' ? /*#__PURE__*/_react.default.createElement(_becoxyIcons.ArrowUp, {
248
+ fontSize: 15,
249
+ color: '#000',
250
+ "data-tooltip-id": `${id}-tooltip-content`,
251
+ "data-tooltip-content": locale?.triggerDesc ?? 'Click to sort descending'
252
+ }) : /*#__PURE__*/_react.default.createElement(_becoxyIcons.ArrowDown, {
253
+ fontSize: 15,
254
+ color: '#000',
255
+ "data-tooltip-id": `${id}-tooltip-content`,
256
+ "data-tooltip-content": locale?.cancelSort ?? 'Click to cancel sorting'
257
+ }) : /*#__PURE__*/_react.default.createElement(_becoxyIcons.SortCancel, {
258
+ "data-tooltip-id": `${id}-tooltip-content`,
259
+ "data-tooltip-content": locale?.triggerAsc ?? 'Click to sort ascending',
260
+ fontSize: 15,
261
+ style: {
262
+ display: 'flex'
263
+ },
264
+ className: (0, _classnames.default)(`ui-rc-table-column-sorter-cancel`, {
265
+ active: true
266
+ })
267
+ })), header.column.getCanFilter() && /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Dropdown, mergedDropdownProps)))), header.column.getCanResize() && /*#__PURE__*/_react.default.createElement("div", {
268
+ onDoubleClick: () => header.column.resetSize(),
269
+ onMouseDown: header.getResizeHandler(),
270
+ onTouchStart: header.getResizeHandler(),
271
+ className: `resizer ${header.column.getIsResizing() ? 'isResizing' : ''}`
272
+ }));
273
+ };
274
+ var _default = exports.default = TableHeadCell;
@@ -0,0 +1,20 @@
1
+ import type { ColumnDef } from "@tanstack/react-table";
2
+ import React from "react";
3
+ import type { IFormat } from "../../table-component/type";
4
+ type RenderFilterProps<RecordType> = {
5
+ column: ColumnDef<RecordType, unknown>;
6
+ selectedKeys: any[];
7
+ setSelectedKeys: (keys: any[]) => void;
8
+ t?: any;
9
+ locale?: any;
10
+ dataSourceFilter?: {
11
+ key: string;
12
+ data: any[];
13
+ }[];
14
+ format?: IFormat;
15
+ buddhistLocale?: any;
16
+ dateRangeLocale?: any;
17
+ doFilter?: (type: boolean) => void;
18
+ };
19
+ export declare const renderFilter: <RecordType>(args: RenderFilterProps<RecordType>) => React.JSX.Element;
20
+ export {};