es-grid-template 1.8.64 → 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 (125) 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 +7 -0
  8. package/es/table-component/type.d.ts +8 -0
  9. package/es/table-virtuoso/ColumnsGroup/ColumnsGroup.d.ts +12 -0
  10. package/es/table-virtuoso/ColumnsGroup/ColumnsGroup.js +232 -0
  11. package/es/table-virtuoso/ColumnsGroup/index.d.ts +1 -0
  12. package/es/table-virtuoso/ColumnsGroup/index.js +1 -0
  13. package/es/{grid-component → table-virtuoso}/InternalTable.d.ts +2 -3
  14. package/es/table-virtuoso/InternalTable.js +413 -0
  15. package/es/table-virtuoso/body/TableBody.d.ts +14 -0
  16. package/es/table-virtuoso/body/TableBody.js +84 -0
  17. package/es/table-virtuoso/body/TableBodyCell.d.ts +14 -0
  18. package/es/table-virtuoso/body/TableBodyCell.js +466 -0
  19. package/es/table-virtuoso/body/TableBodyRow.d.ts +13 -0
  20. package/es/table-virtuoso/body/TableBodyRow.js +116 -0
  21. package/es/table-virtuoso/footer/TableFooterCell.d.ts +7 -0
  22. package/es/table-virtuoso/footer/TableFooterCell.js +54 -0
  23. package/es/table-virtuoso/header/TableHeadCell.d.ts +14 -0
  24. package/es/table-virtuoso/header/TableHeadCell.js +265 -0
  25. package/es/table-virtuoso/header/renderFilter.d.ts +20 -0
  26. package/es/table-virtuoso/header/renderFilter.js +289 -0
  27. package/es/table-virtuoso/hook/constant.d.ts +73 -0
  28. package/es/table-virtuoso/hook/constant.js +240 -0
  29. package/es/table-virtuoso/hook/convert.d.ts +1 -0
  30. package/es/table-virtuoso/hook/convert.js +28 -0
  31. package/es/table-virtuoso/hook/useColumns.d.ts +28 -0
  32. package/es/table-virtuoso/hook/useColumns.js +302 -0
  33. package/es/table-virtuoso/hook/useFilterOperator.d.ts +7 -0
  34. package/es/table-virtuoso/hook/useFilterOperator.js +33 -0
  35. package/es/table-virtuoso/hook/utils.d.ts +159 -0
  36. package/es/table-virtuoso/hook/utils.js +2263 -0
  37. package/es/table-virtuoso/index.d.ts +2 -0
  38. package/es/table-virtuoso/index.js +2 -0
  39. package/es/table-virtuoso/style.d.ts +22 -0
  40. package/es/table-virtuoso/style.js +11 -0
  41. package/es/table-virtuoso/style.scss +1440 -0
  42. package/es/table-virtuoso/table/Grid.d.ts +37 -0
  43. package/es/table-virtuoso/table/Grid.js +302 -0
  44. package/es/table-virtuoso/table/TableContainer.d.ts +49 -0
  45. package/es/table-virtuoso/table/TableContainer.js +305 -0
  46. package/es/table-virtuoso/table/TableWrapper.d.ts +20 -0
  47. package/es/table-virtuoso/table/TableWrapper.js +158 -0
  48. package/es/table-virtuoso/type.d.ts +0 -0
  49. package/es/table-virtuoso/type.js +785 -0
  50. package/es/table-virtuoso/useContext.d.ts +97 -0
  51. package/es/table-virtuoso/useContext.js +21 -0
  52. package/lib/grid-component/ColumnsGroup/ColumnsGroup.js +4 -1
  53. package/lib/grid-component/TempTable.js +2 -2
  54. package/lib/grid-component/hooks/utils.d.ts +2 -8
  55. package/lib/grid-component/hooks/utils.js +176 -152
  56. package/lib/grid-component/index.d.ts +1 -1
  57. package/lib/grid-component/index.js +0 -3
  58. package/lib/grid-component/type.d.ts +7 -0
  59. package/lib/table-component/type.d.ts +8 -0
  60. package/lib/table-virtuoso/ColumnsGroup/ColumnsGroup.d.ts +12 -0
  61. package/lib/table-virtuoso/ColumnsGroup/ColumnsGroup.js +243 -0
  62. package/lib/table-virtuoso/ColumnsGroup/index.d.ts +1 -0
  63. package/lib/table-virtuoso/ColumnsGroup/index.js +16 -0
  64. package/lib/{grid-component → table-virtuoso}/InternalTable.d.ts +2 -3
  65. package/lib/table-virtuoso/InternalTable.js +422 -0
  66. package/lib/table-virtuoso/body/TableBody.d.ts +14 -0
  67. package/lib/table-virtuoso/body/TableBody.js +95 -0
  68. package/lib/table-virtuoso/body/TableBodyCell.d.ts +14 -0
  69. package/lib/table-virtuoso/body/TableBodyCell.js +473 -0
  70. package/lib/table-virtuoso/body/TableBodyRow.d.ts +13 -0
  71. package/lib/table-virtuoso/body/TableBodyRow.js +124 -0
  72. package/lib/table-virtuoso/footer/TableFooterCell.d.ts +7 -0
  73. package/lib/table-virtuoso/footer/TableFooterCell.js +63 -0
  74. package/lib/table-virtuoso/header/TableHeadCell.d.ts +14 -0
  75. package/lib/table-virtuoso/header/TableHeadCell.js +274 -0
  76. package/lib/table-virtuoso/header/renderFilter.d.ts +20 -0
  77. package/lib/table-virtuoso/header/renderFilter.js +299 -0
  78. package/lib/table-virtuoso/hook/constant.d.ts +73 -0
  79. package/lib/table-virtuoso/hook/constant.js +247 -0
  80. package/lib/table-virtuoso/hook/convert.d.ts +1 -0
  81. package/lib/table-virtuoso/hook/convert.js +34 -0
  82. package/lib/table-virtuoso/hook/useColumns.d.ts +28 -0
  83. package/lib/table-virtuoso/hook/useColumns.js +315 -0
  84. package/lib/table-virtuoso/hook/useFilterOperator.d.ts +7 -0
  85. package/lib/table-virtuoso/hook/useFilterOperator.js +40 -0
  86. package/lib/table-virtuoso/hook/utils.d.ts +159 -0
  87. package/lib/table-virtuoso/hook/utils.js +2389 -0
  88. package/lib/table-virtuoso/index.d.ts +2 -0
  89. package/lib/table-virtuoso/index.js +9 -0
  90. package/lib/table-virtuoso/style.d.ts +22 -0
  91. package/lib/table-virtuoso/style.js +18 -0
  92. package/lib/table-virtuoso/style.scss +1440 -0
  93. package/lib/table-virtuoso/table/Grid.d.ts +37 -0
  94. package/lib/table-virtuoso/table/Grid.js +311 -0
  95. package/lib/table-virtuoso/table/TableContainer.d.ts +49 -0
  96. package/lib/table-virtuoso/table/TableContainer.js +313 -0
  97. package/lib/table-virtuoso/table/TableWrapper.d.ts +20 -0
  98. package/lib/table-virtuoso/table/TableWrapper.js +164 -0
  99. package/lib/table-virtuoso/type.d.ts +0 -0
  100. package/lib/table-virtuoso/type.js +786 -0
  101. package/lib/table-virtuoso/useContext.d.ts +97 -0
  102. package/lib/table-virtuoso/useContext.js +27 -0
  103. package/package.json +2 -1
  104. package/es/grid-component/ConvertColumnTable.d.ts +0 -7
  105. package/es/grid-component/ConvertColumnTable.js +0 -144
  106. package/es/grid-component/InternalTable.js +0 -1170
  107. package/es/grid-component/table/Grid.d.ts +0 -23
  108. package/es/grid-component/table/Grid.js +0 -49
  109. package/es/grid-component/table/GridEdit.d.ts +0 -23
  110. package/es/grid-component/table/GridEdit.js +0 -2726
  111. package/es/grid-component/table/Group.d.ts +0 -21
  112. package/es/grid-component/table/Group.js +0 -195
  113. package/es/grid-component/table/InfiniteTable.d.ts +0 -23
  114. package/es/grid-component/table/InfiniteTable.js +0 -101
  115. package/lib/grid-component/ConvertColumnTable.d.ts +0 -7
  116. package/lib/grid-component/ConvertColumnTable.js +0 -153
  117. package/lib/grid-component/InternalTable.js +0 -1178
  118. package/lib/grid-component/table/Grid.d.ts +0 -23
  119. package/lib/grid-component/table/Grid.js +0 -58
  120. package/lib/grid-component/table/GridEdit.d.ts +0 -23
  121. package/lib/grid-component/table/GridEdit.js +0 -2723
  122. package/lib/grid-component/table/Group.d.ts +0 -21
  123. package/lib/grid-component/table/Group.js +0 -204
  124. package/lib/grid-component/table/InfiniteTable.d.ts +0 -23
  125. 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 {};