es-grid-template 1.8.81 → 1.8.82

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.
@@ -130,7 +130,7 @@ export type ColumnTemplate<RecordType> = {
130
130
  export type GetRowKey<RecordType> = (record: RecordType, index?: number) => Key;
131
131
  export type ColumnTable<RecordType = AnyObject> = {
132
132
  field: string;
133
- fieldOrigin?: string;
133
+ fieldOriginal?: string;
134
134
  width?: number;
135
135
  maxWidth?: number;
136
136
  minWidth?: number;
@@ -286,6 +286,7 @@ const TableContainer = props => {
286
286
  "data-tooltip-content": tableLocal?.fullScreen || 'Full screen',
287
287
  className: "toolbar-icon"
288
288
  })), showColumnChoose && /*#__PURE__*/React.createElement(ColumnsChoose, {
289
+ table: table,
289
290
  id: id,
290
291
  tableLocal: tableLocal,
291
292
  columnHidden: columnHidden,
@@ -1931,6 +1931,7 @@ const TableContainerEdit = props => {
1931
1931
  "data-tooltip-id": `${id}-tooltip-content`,
1932
1932
  "data-tooltip-content": tableLocal?.fullScreen || 'Full screen'
1933
1933
  })), showColumnChoose && /*#__PURE__*/React.createElement(ColumnsChoose, {
1934
+ table: table,
1934
1935
  id: id,
1935
1936
  tableLocal: tableLocal,
1936
1937
  columns: columns,
@@ -159,7 +159,7 @@ export declare const removeColumns: <RecordType>(columns: ColumnTable<RecordType
159
159
  export declare const fixColumnsLeft: <RecordType>(columns: ColumnTable<RecordType>[], fixedFields: string[]) => {
160
160
  fixed: string;
161
161
  field: string;
162
- fieldOrigin?: string;
162
+ fieldOriginal?: string;
163
163
  width?: number;
164
164
  maxWidth?: number;
165
165
  minWidth?: number;
@@ -1,8 +1,9 @@
1
1
  import React from "react";
2
2
  import type { ColumnsTable, ColumnTable, GridTableLocale, Locale } from "./../grid-component/type";
3
- import type { ColumnDef } from "@tanstack/react-table";
3
+ import type { ColumnDef, Table } from "@tanstack/react-table";
4
4
  export type IColumnsChoose<RecordType> = {
5
5
  id: string;
6
+ table: Table<RecordType>;
6
7
  columns: ColumnDef<RecordType>[];
7
8
  originColumns: ColumnTable[];
8
9
  columnsGroup?: string[];
@@ -4,11 +4,15 @@ import styled from "styled-components";
4
4
  import { Button, Input, Popover } from "antd";
5
5
  import Tree from "rc-master-ui/es/tree";
6
6
  import SearchOutlined from "@ant-design/icons/SearchOutlined";
7
- import { convertColumnsToTreeData, getVisibleColumnKeys1, updateColumns1 } from "./hook/utils";
7
+ import { convertColumnsToTreeData, updateColumns1 } from "./hook/utils";
8
8
  import { Settings } from "becoxy-icons";
9
+ const CustomStyle = styled.div.withConfig({
10
+ displayName: "CustomStyle",
11
+ componentId: "es-grid-template__sc-jfujqh-0"
12
+ })([".columns-choose-tree{.ui-rc-tree-treenode{.ui-rc-tree-checkbox{align-self:flex-start;margin-top:5px !important;}}}"]);
9
13
  const BoxAction = styled.div.withConfig({
10
14
  displayName: "BoxAction",
11
- componentId: "es-grid-template__sc-jfujqh-0"
15
+ componentId: "es-grid-template__sc-jfujqh-1"
12
16
  })(["border-top:1px solid #c4c4c4;padding-top:.75rem;display:flex;justify-content:end;gap:10px;.btn-action{background:none !important;border:none !important;&.btn-action-submit{color:#df4318;&:disabled{background-color:#f0f0f0 !important;}&:hover{color:#df4318 !important;}}&:hover{background-color:#f0f0f0 !important;}}"]);
13
17
  export const ColumnsChoose = props => {
14
18
  const {
@@ -19,18 +23,21 @@ export const ColumnsChoose = props => {
19
23
  // triggerChangeKeys,
20
24
  t,
21
25
  id,
26
+ table,
22
27
  columnsGroup,
23
28
  locale,
24
29
  tableLocal
25
30
  } = props;
31
+ const isClickRef = React.useRef(false);
26
32
  const treeColumns = React.useMemo(() => {
27
33
  return convertColumnsToTreeData(propsColumns, columnsGroup);
28
34
  }, [propsColumns, columnsGroup]);
29
35
  const defaultSelectedKeys = React.useMemo(() => {
30
- const defaultColumns = originColumns.filter(it => it.field && it.showInColumnChoose !== false && !columnsGroup?.includes(it.field));
36
+ const colsVisiables = table.getVisibleFlatColumns().filter(it => it.columnDef?.meta?.showInColumnChoose !== false);
37
+ const colsKeys = colsVisiables.map(it => it.id);
31
38
  const aa = Object.keys(columnHidden);
32
- return getVisibleColumnKeys1(defaultColumns).filter(it => !aa.includes(it));
33
- }, [columnHidden, columnsGroup, originColumns]);
39
+ return colsKeys.filter(it => !aa.includes(it) && !columnsGroup?.includes(it));
40
+ }, [columnHidden, columnsGroup, table]);
34
41
  const [mergedSelectedKeys, setMergedSelectedKeys] = useMergedState(defaultSelectedKeys && defaultSelectedKeys.length ? defaultSelectedKeys : undefined, {
35
42
  value: undefined
36
43
  });
@@ -113,11 +120,15 @@ export const ColumnsChoose = props => {
113
120
  const onCheck = keys => {
114
121
  // setSelectedKeys(keys)
115
122
  // setIsManualUpdate(true)
123
+
124
+ isClickRef.current = true;
116
125
  setMergedSelectedKeys(keys);
117
126
  };
118
127
  const handleAccept = () => {
119
- const rs1 = updateColumns1(originColumns, mergedSelectedKeys ?? []);
120
- triggerChangeColumns?.(rs1, mergedSelectedKeys ?? [], 'columnChoose');
128
+ if (isClickRef.current) {
129
+ const rs1 = updateColumns1(originColumns, mergedSelectedKeys ?? []);
130
+ triggerChangeColumns?.(rs1, mergedSelectedKeys ?? [], 'columnChoose');
131
+ }
121
132
  hide();
122
133
  };
123
134
  const handleCancel = () => {
@@ -126,7 +137,7 @@ export const ColumnsChoose = props => {
126
137
  };
127
138
  return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Popover, {
128
139
  placement: 'bottomLeft',
129
- content: /*#__PURE__*/React.createElement("div", {
140
+ content: /*#__PURE__*/React.createElement(CustomStyle, {
130
141
  style: {
131
142
  minWidth: 250,
132
143
  maxWidth: 320
@@ -139,6 +150,7 @@ export const ColumnsChoose = props => {
139
150
  prefix: /*#__PURE__*/React.createElement(SearchOutlined, null),
140
151
  onChange: onChange
141
152
  }), /*#__PURE__*/React.createElement(Tree, {
153
+ className: "columns-choose-tree",
142
154
  onExpand: onExpand
143
155
  // expandedKeys={expandedKeys}
144
156
  ,
@@ -173,7 +185,7 @@ export const ColumnsChoose = props => {
173
185
  multiple: true
174
186
  // checkedKeys={selectedKeys}
175
187
  ,
176
- checkedKeys: mergedSelectedKeys || defaultSelectedKeys
188
+ checkedKeys: mergedSelectedKeys ?? defaultSelectedKeys
177
189
 
178
190
  // defaultCheckedKeys={selectedKeys}
179
191
  ,
@@ -151,6 +151,7 @@ const InternalTable = props => {
151
151
  if (type === 'cellClick') {
152
152
  setColumns(cols);
153
153
  } else {
154
+ setColumns(cols);
154
155
  const aa = flatColumns2(columns).map(it => it.field);
155
156
  const rsss = getDiffent2Array(aa, keys);
156
157
  setColumnsHiddenKeys(rsss);
@@ -254,6 +254,7 @@ const TableContainer = props => {
254
254
  "data-tooltip-content": locale?.table?.fullScreen || tableLocal?.fullScreen || 'Full screen'
255
255
  })), showColumnChoose && /*#__PURE__*/React.createElement(ColumnsChoose, {
256
256
  id: id,
257
+ table: table,
257
258
  locale: locale,
258
259
  tableLocal: tableLocal,
259
260
  columnHidden: columnHidden,
@@ -1672,6 +1672,7 @@ const TableContainerEdit = props => {
1672
1672
  "data-tooltip-id": `${id}-tooltip-content`,
1673
1673
  "data-tooltip-content": locale?.table?.fullScreen || tableLocal?.fullScreen || 'Full screen'
1674
1674
  })), showColumnChoose && /*#__PURE__*/React.createElement(ColumnsChoose, {
1675
+ table: table,
1675
1676
  columns: columns,
1676
1677
  originColumns: propsColumns,
1677
1678
  t: t,
@@ -41,6 +41,7 @@ const TableHeadCell2 = props => {
41
41
  rowKey
42
42
  } = useContext(TableContext);
43
43
  const [tableLocal] = useLocale('Table');
44
+ const visibleCols = table.getVisibleFlatColumns();
44
45
  const expandIconColumnIndex = expandable?.expandIconColumnIndex ?? 0;
45
46
  const {
46
47
  showExpandAll
@@ -54,8 +55,10 @@ const TableHeadCell2 = props => {
54
55
  filterIcon
55
56
  } = column.columnDef.meta ?? {};
56
57
  const originalColumn = column.columnDef.meta ?? {};
58
+ const fieldOriginalKey = originalColumn?.fieldOriginal;
59
+ const fieldOriginal = fieldOriginalKey ? visibleCols.find(it => it.id === fieldOriginalKey) : undefined;
57
60
  const cellStyles = typeof originalColumn.onCellHeaderStyles === 'function' ? originalColumn.onCellHeaderStyles(header) : originalColumn.onCellHeaderStyles;
58
- const filtered = (column.getFilterValue() ?? []).length > 0;
61
+ const filtered = ((fieldOriginal ? fieldOriginal.getFilterValue() : column.getFilterValue()) ?? []).length > 0;
59
62
  const cellContent = flexRender(column.columnDef.header, header.getContext());
60
63
  const html = ReactDOMServer.renderToStaticMarkup( /*#__PURE__*/React.createElement(React.Fragment, null, cellContent));
61
64
  const hasValue = html.trim().length > 0;
@@ -96,9 +99,14 @@ const TableHeadCell2 = props => {
96
99
  if (info.source === 'trigger') {
97
100
  if (newVisible) {
98
101
  const filterValue = column.getFilterValue() ?? [];
102
+ const filterValueOrigin = fieldOriginal ? fieldOriginal.getFilterValue() ?? [] : undefined;
99
103
  const operatorValue = column.getFilterOperator() ?? getDefaultOperator(column.columnDef?.meta ?? {});
100
- setSelectedKeys(filterValue);
101
- column.setFilterOperator?.(operatorValue);
104
+ setSelectedKeys(filterValueOrigin ?? filterValue);
105
+ if (fieldOriginal) {
106
+ fieldOriginal.setFilterOperator?.(operatorValue);
107
+ } else {
108
+ column.setFilterOperator?.(operatorValue);
109
+ }
102
110
  setTimeout(() => {
103
111
  const inputFilter = document.querySelector('.filter-input');
104
112
  if (inputFilter) {
@@ -111,9 +119,19 @@ const TableHeadCell2 = props => {
111
119
  };
112
120
  const doFilter = type => {
113
121
  if (type) {
114
- column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
122
+ if (fieldOriginal) {
123
+ fieldOriginal.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
124
+ } else {
125
+ column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
126
+ }
127
+
128
+ // column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? (selectedKeys.length === 0 ? [''] : selectedKeys) : selectedKeys)
115
129
  } else {
116
- column.setFilterValue(undefined);
130
+ if (fieldOriginal) {
131
+ fieldOriginal.setFilterValue(undefined);
132
+ } else {
133
+ column.setFilterValue(undefined);
134
+ }
117
135
  setSelectedKeys([]);
118
136
  }
119
137
  setFilterChange(true);
@@ -166,6 +184,7 @@ const TableHeadCell2 = props => {
166
184
  }
167
185
  }, renderFilter({
168
186
  t,
187
+ // column: fieldOriginal ? fieldOriginal.columnDef : column.columnDef,
169
188
  column: column.columnDef,
170
189
  selectedKeys,
171
190
  setSelectedKeys,
@@ -1922,7 +1922,9 @@ export function convertColumnsToTreeData(columns, groupColumns) {
1922
1922
  // Điều kiện filter:
1923
1923
  // - Nếu meta.showInColumnChoose = false => loại bỏ
1924
1924
  // - Nếu không nằm trong groupColumns và không phải column group => loại bỏ
1925
+ // if (meta.showInColumnChoose === false || col.id === "selection_column") return false
1925
1926
  if (meta.showInColumnChoose === false) return false;
1927
+ // if (inGroup && !('columns' in col && Array.isArray((col as any).columns))) {
1926
1928
  if (inGroup && !('columns' in col && Array.isArray(col.columns))) {
1927
1929
  return false;
1928
1930
  }
@@ -212,6 +212,7 @@ const TableContainer = props => {
212
212
  "data-tooltip-id": `${id}-tooltip-content`,
213
213
  "data-tooltip-content": t ? t('Full screen') : 'Full screen'
214
214
  })), showColumnChoose && /*#__PURE__*/React.createElement(ColumnsChoose, {
215
+ table: table,
215
216
  id: id,
216
217
  tableLocal: tableLocal,
217
218
  columnHidden: columnHidden,
@@ -130,7 +130,7 @@ export type ColumnTemplate<RecordType> = {
130
130
  export type GetRowKey<RecordType> = (record: RecordType, index?: number) => Key;
131
131
  export type ColumnTable<RecordType = AnyObject> = {
132
132
  field: string;
133
- fieldOrigin?: string;
133
+ fieldOriginal?: string;
134
134
  width?: number;
135
135
  maxWidth?: number;
136
136
  minWidth?: number;
@@ -294,6 +294,7 @@ const TableContainer = props => {
294
294
  "data-tooltip-content": tableLocal?.fullScreen || 'Full screen',
295
295
  className: "toolbar-icon"
296
296
  })), showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
297
+ table: table,
297
298
  id: id,
298
299
  tableLocal: tableLocal,
299
300
  columnHidden: columnHidden,
@@ -1939,6 +1939,7 @@ const TableContainerEdit = props => {
1939
1939
  "data-tooltip-id": `${id}-tooltip-content`,
1940
1940
  "data-tooltip-content": tableLocal?.fullScreen || 'Full screen'
1941
1941
  })), showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
1942
+ table: table,
1942
1943
  id: id,
1943
1944
  tableLocal: tableLocal,
1944
1945
  columns: columns,
@@ -159,7 +159,7 @@ export declare const removeColumns: <RecordType>(columns: ColumnTable<RecordType
159
159
  export declare const fixColumnsLeft: <RecordType>(columns: ColumnTable<RecordType>[], fixedFields: string[]) => {
160
160
  fixed: string;
161
161
  field: string;
162
- fieldOrigin?: string;
162
+ fieldOriginal?: string;
163
163
  width?: number;
164
164
  maxWidth?: number;
165
165
  minWidth?: number;
@@ -1,8 +1,9 @@
1
1
  import React from "react";
2
2
  import type { ColumnsTable, ColumnTable, GridTableLocale, Locale } from "./../grid-component/type";
3
- import type { ColumnDef } from "@tanstack/react-table";
3
+ import type { ColumnDef, Table } from "@tanstack/react-table";
4
4
  export type IColumnsChoose<RecordType> = {
5
5
  id: string;
6
+ table: Table<RecordType>;
6
7
  columns: ColumnDef<RecordType>[];
7
8
  originColumns: ColumnTable[];
8
9
  columnsGroup?: string[];
@@ -15,9 +15,13 @@ var _utils = require("./hook/utils");
15
15
  var _becoxyIcons = require("becoxy-icons");
16
16
  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); }
17
17
  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; }
18
+ const CustomStyle = _styledComponents.default.div.withConfig({
19
+ displayName: "CustomStyle",
20
+ componentId: "es-grid-template__sc-jfujqh-0"
21
+ })([".columns-choose-tree{.ui-rc-tree-treenode{.ui-rc-tree-checkbox{align-self:flex-start;margin-top:5px !important;}}}"]);
18
22
  const BoxAction = _styledComponents.default.div.withConfig({
19
23
  displayName: "BoxAction",
20
- componentId: "es-grid-template__sc-jfujqh-0"
24
+ componentId: "es-grid-template__sc-jfujqh-1"
21
25
  })(["border-top:1px solid #c4c4c4;padding-top:.75rem;display:flex;justify-content:end;gap:10px;.btn-action{background:none !important;border:none !important;&.btn-action-submit{color:#df4318;&:disabled{background-color:#f0f0f0 !important;}&:hover{color:#df4318 !important;}}&:hover{background-color:#f0f0f0 !important;}}"]);
22
26
  const ColumnsChoose = props => {
23
27
  const {
@@ -28,18 +32,21 @@ const ColumnsChoose = props => {
28
32
  // triggerChangeKeys,
29
33
  t,
30
34
  id,
35
+ table,
31
36
  columnsGroup,
32
37
  locale,
33
38
  tableLocal
34
39
  } = props;
40
+ const isClickRef = _react.default.useRef(false);
35
41
  const treeColumns = _react.default.useMemo(() => {
36
42
  return (0, _utils.convertColumnsToTreeData)(propsColumns, columnsGroup);
37
43
  }, [propsColumns, columnsGroup]);
38
44
  const defaultSelectedKeys = _react.default.useMemo(() => {
39
- const defaultColumns = originColumns.filter(it => it.field && it.showInColumnChoose !== false && !columnsGroup?.includes(it.field));
45
+ const colsVisiables = table.getVisibleFlatColumns().filter(it => it.columnDef?.meta?.showInColumnChoose !== false);
46
+ const colsKeys = colsVisiables.map(it => it.id);
40
47
  const aa = Object.keys(columnHidden);
41
- return (0, _utils.getVisibleColumnKeys1)(defaultColumns).filter(it => !aa.includes(it));
42
- }, [columnHidden, columnsGroup, originColumns]);
48
+ return colsKeys.filter(it => !aa.includes(it) && !columnsGroup?.includes(it));
49
+ }, [columnHidden, columnsGroup, table]);
43
50
  const [mergedSelectedKeys, setMergedSelectedKeys] = (0, _useMergedState.default)(defaultSelectedKeys && defaultSelectedKeys.length ? defaultSelectedKeys : undefined, {
44
51
  value: undefined
45
52
  });
@@ -122,11 +129,15 @@ const ColumnsChoose = props => {
122
129
  const onCheck = keys => {
123
130
  // setSelectedKeys(keys)
124
131
  // setIsManualUpdate(true)
132
+
133
+ isClickRef.current = true;
125
134
  setMergedSelectedKeys(keys);
126
135
  };
127
136
  const handleAccept = () => {
128
- const rs1 = (0, _utils.updateColumns1)(originColumns, mergedSelectedKeys ?? []);
129
- triggerChangeColumns?.(rs1, mergedSelectedKeys ?? [], 'columnChoose');
137
+ if (isClickRef.current) {
138
+ const rs1 = (0, _utils.updateColumns1)(originColumns, mergedSelectedKeys ?? []);
139
+ triggerChangeColumns?.(rs1, mergedSelectedKeys ?? [], 'columnChoose');
140
+ }
130
141
  hide();
131
142
  };
132
143
  const handleCancel = () => {
@@ -135,7 +146,7 @@ const ColumnsChoose = props => {
135
146
  };
136
147
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_antd.Popover, {
137
148
  placement: 'bottomLeft',
138
- content: /*#__PURE__*/_react.default.createElement("div", {
149
+ content: /*#__PURE__*/_react.default.createElement(CustomStyle, {
139
150
  style: {
140
151
  minWidth: 250,
141
152
  maxWidth: 320
@@ -148,6 +159,7 @@ const ColumnsChoose = props => {
148
159
  prefix: /*#__PURE__*/_react.default.createElement(_SearchOutlined.default, null),
149
160
  onChange: onChange
150
161
  }), /*#__PURE__*/_react.default.createElement(_tree.default, {
162
+ className: "columns-choose-tree",
151
163
  onExpand: onExpand
152
164
  // expandedKeys={expandedKeys}
153
165
  ,
@@ -182,7 +194,7 @@ const ColumnsChoose = props => {
182
194
  multiple: true
183
195
  // checkedKeys={selectedKeys}
184
196
  ,
185
- checkedKeys: mergedSelectedKeys || defaultSelectedKeys
197
+ checkedKeys: mergedSelectedKeys ?? defaultSelectedKeys
186
198
 
187
199
  // defaultCheckedKeys={selectedKeys}
188
200
  ,
@@ -160,6 +160,7 @@ const InternalTable = props => {
160
160
  if (type === 'cellClick') {
161
161
  setColumns(cols);
162
162
  } else {
163
+ setColumns(cols);
163
164
  const aa = (0, _utils.flatColumns2)(columns).map(it => it.field);
164
165
  const rsss = (0, _utils.getDiffent2Array)(aa, keys);
165
166
  setColumnsHiddenKeys(rsss);
@@ -261,6 +261,7 @@ const TableContainer = props => {
261
261
  "data-tooltip-content": locale?.table?.fullScreen || tableLocal?.fullScreen || 'Full screen'
262
262
  })), showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
263
263
  id: id,
264
+ table: table,
264
265
  locale: locale,
265
266
  tableLocal: tableLocal,
266
267
  columnHidden: columnHidden,
@@ -1679,6 +1679,7 @@ const TableContainerEdit = props => {
1679
1679
  "data-tooltip-id": `${id}-tooltip-content`,
1680
1680
  "data-tooltip-content": locale?.table?.fullScreen || tableLocal?.fullScreen || 'Full screen'
1681
1681
  })), showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
1682
+ table: table,
1682
1683
  columns: columns,
1683
1684
  originColumns: propsColumns,
1684
1685
  t: t,
@@ -50,6 +50,7 @@ const TableHeadCell2 = props => {
50
50
  rowKey
51
51
  } = (0, _react.useContext)(_useContext.TableContext);
52
52
  const [tableLocal] = (0, _locale.useLocale)('Table');
53
+ const visibleCols = table.getVisibleFlatColumns();
53
54
  const expandIconColumnIndex = expandable?.expandIconColumnIndex ?? 0;
54
55
  const {
55
56
  showExpandAll
@@ -63,8 +64,10 @@ const TableHeadCell2 = props => {
63
64
  filterIcon
64
65
  } = column.columnDef.meta ?? {};
65
66
  const originalColumn = column.columnDef.meta ?? {};
67
+ const fieldOriginalKey = originalColumn?.fieldOriginal;
68
+ const fieldOriginal = fieldOriginalKey ? visibleCols.find(it => it.id === fieldOriginalKey) : undefined;
66
69
  const cellStyles = typeof originalColumn.onCellHeaderStyles === 'function' ? originalColumn.onCellHeaderStyles(header) : originalColumn.onCellHeaderStyles;
67
- const filtered = (column.getFilterValue() ?? []).length > 0;
70
+ const filtered = ((fieldOriginal ? fieldOriginal.getFilterValue() : column.getFilterValue()) ?? []).length > 0;
68
71
  const cellContent = (0, _reactTable.flexRender)(column.columnDef.header, header.getContext());
69
72
  const html = _server.default.renderToStaticMarkup( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, cellContent));
70
73
  const hasValue = html.trim().length > 0;
@@ -105,9 +108,14 @@ const TableHeadCell2 = props => {
105
108
  if (info.source === 'trigger') {
106
109
  if (newVisible) {
107
110
  const filterValue = column.getFilterValue() ?? [];
111
+ const filterValueOrigin = fieldOriginal ? fieldOriginal.getFilterValue() ?? [] : undefined;
108
112
  const operatorValue = column.getFilterOperator() ?? (0, _utils.getDefaultOperator)(column.columnDef?.meta ?? {});
109
- setSelectedKeys(filterValue);
110
- column.setFilterOperator?.(operatorValue);
113
+ setSelectedKeys(filterValueOrigin ?? filterValue);
114
+ if (fieldOriginal) {
115
+ fieldOriginal.setFilterOperator?.(operatorValue);
116
+ } else {
117
+ column.setFilterOperator?.(operatorValue);
118
+ }
111
119
  setTimeout(() => {
112
120
  const inputFilter = document.querySelector('.filter-input');
113
121
  if (inputFilter) {
@@ -120,9 +128,19 @@ const TableHeadCell2 = props => {
120
128
  };
121
129
  const doFilter = type => {
122
130
  if (type) {
123
- column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
131
+ if (fieldOriginal) {
132
+ fieldOriginal.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
133
+ } else {
134
+ column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? selectedKeys.length === 0 ? [''] : selectedKeys : selectedKeys);
135
+ }
136
+
137
+ // column.setFilterValue(!originalColumn.typeFilter || originalColumn.typeFilter === 'Text' ? (selectedKeys.length === 0 ? [''] : selectedKeys) : selectedKeys)
124
138
  } else {
125
- column.setFilterValue(undefined);
139
+ if (fieldOriginal) {
140
+ fieldOriginal.setFilterValue(undefined);
141
+ } else {
142
+ column.setFilterValue(undefined);
143
+ }
126
144
  setSelectedKeys([]);
127
145
  }
128
146
  setFilterChange(true);
@@ -175,6 +193,7 @@ const TableHeadCell2 = props => {
175
193
  }
176
194
  }, (0, _renderFilter.renderFilter)({
177
195
  t,
196
+ // column: fieldOriginal ? fieldOriginal.columnDef : column.columnDef,
178
197
  column: column.columnDef,
179
198
  selectedKeys,
180
199
  setSelectedKeys,
@@ -2041,7 +2041,9 @@ function convertColumnsToTreeData(columns, groupColumns) {
2041
2041
  // Điều kiện filter:
2042
2042
  // - Nếu meta.showInColumnChoose = false => loại bỏ
2043
2043
  // - Nếu không nằm trong groupColumns và không phải column group => loại bỏ
2044
+ // if (meta.showInColumnChoose === false || col.id === "selection_column") return false
2044
2045
  if (meta.showInColumnChoose === false) return false;
2046
+ // if (inGroup && !('columns' in col && Array.isArray((col as any).columns))) {
2045
2047
  if (inGroup && !('columns' in col && Array.isArray(col.columns))) {
2046
2048
  return false;
2047
2049
  }
@@ -220,6 +220,7 @@ const TableContainer = props => {
220
220
  "data-tooltip-id": `${id}-tooltip-content`,
221
221
  "data-tooltip-content": t ? t('Full screen') : 'Full screen'
222
222
  })), showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
223
+ table: table,
223
224
  id: id,
224
225
  tableLocal: tableLocal,
225
226
  columnHidden: columnHidden,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "es-grid-template",
3
- "version": "1.8.81",
3
+ "version": "1.8.82",
4
4
  "description": "es-grid-template",
5
5
  "keywords": [
6
6
  "react",