es-grid-template 1.8.64 → 1.8.66

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 (222) hide show
  1. package/es/grid-component/TempTable.d.ts +2 -2
  2. package/es/grid-component/TempTable.js +5 -5
  3. package/es/grid-component/hooks/index.js +0 -1
  4. package/es/grid-component/hooks/useLazyKVMap.d.ts +1 -1
  5. package/es/grid-component/hooks/useLazyKVMap.js +0 -4
  6. package/es/grid-component/hooks/utils.d.ts +1 -8
  7. package/es/grid-component/hooks/utils.js +176 -144
  8. package/es/grid-component/index.d.ts +1 -1
  9. package/es/grid-component/index.js +0 -4
  10. package/es/grid-component/styles.scss +1394 -1394
  11. package/es/grid-component/type.d.ts +0 -407
  12. package/es/grid-component/type.js +490 -1
  13. package/es/table-component/type.d.ts +10 -0
  14. package/es/{grid-component → table-virtuoso}/ColumnsGroup/ColumnsGroup.js +4 -3
  15. package/es/{grid-component → table-virtuoso}/InternalTable.d.ts +2 -3
  16. package/es/table-virtuoso/InternalTable.js +391 -0
  17. package/es/table-virtuoso/body/TableBodyCell.d.ts +14 -0
  18. package/es/table-virtuoso/body/TableBodyCell.js +457 -0
  19. package/es/table-virtuoso/body/TableBodyRow.d.ts +13 -0
  20. package/es/table-virtuoso/body/TableBodyRow.js +112 -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 +12 -0
  41. package/es/table-virtuoso/style.scss +1441 -0
  42. package/es/table-virtuoso/table/Grid.d.ts +37 -0
  43. package/es/table-virtuoso/table/Grid.js +298 -0
  44. package/es/table-virtuoso/table/TableContainer.d.ts +49 -0
  45. package/es/table-virtuoso/table/TableContainer.js +292 -0
  46. package/es/table-virtuoso/table/TableWrapper.d.ts +22 -0
  47. package/es/table-virtuoso/table/TableWrapper.js +161 -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/TempTable.d.ts +2 -2
  53. package/lib/grid-component/TempTable.js +5 -7
  54. package/lib/grid-component/hooks/useLazyKVMap.d.ts +1 -1
  55. package/lib/grid-component/hooks/useLazyKVMap.js +0 -3
  56. package/lib/grid-component/hooks/utils.d.ts +1 -8
  57. package/lib/grid-component/hooks/utils.js +179 -152
  58. package/lib/grid-component/index.d.ts +1 -1
  59. package/lib/grid-component/index.js +0 -3
  60. package/lib/grid-component/styles.scss +1394 -1394
  61. package/lib/grid-component/type.d.ts +0 -407
  62. package/lib/grid-component/type.js +490 -4
  63. package/lib/table-component/type.d.ts +10 -0
  64. package/lib/{grid-component → table-virtuoso}/ColumnsGroup/ColumnsGroup.js +4 -3
  65. package/lib/{grid-component → table-virtuoso}/InternalTable.d.ts +2 -3
  66. package/lib/table-virtuoso/InternalTable.js +400 -0
  67. package/lib/table-virtuoso/body/TableBodyCell.d.ts +14 -0
  68. package/lib/table-virtuoso/body/TableBodyCell.js +464 -0
  69. package/lib/table-virtuoso/body/TableBodyRow.d.ts +13 -0
  70. package/lib/table-virtuoso/body/TableBodyRow.js +119 -0
  71. package/lib/table-virtuoso/footer/TableFooterCell.d.ts +7 -0
  72. package/lib/table-virtuoso/footer/TableFooterCell.js +63 -0
  73. package/lib/table-virtuoso/header/TableHeadCell.d.ts +14 -0
  74. package/lib/table-virtuoso/header/TableHeadCell.js +274 -0
  75. package/lib/table-virtuoso/header/renderFilter.d.ts +20 -0
  76. package/lib/table-virtuoso/header/renderFilter.js +299 -0
  77. package/lib/table-virtuoso/hook/constant.d.ts +73 -0
  78. package/lib/table-virtuoso/hook/constant.js +247 -0
  79. package/lib/table-virtuoso/hook/convert.d.ts +1 -0
  80. package/lib/table-virtuoso/hook/convert.js +34 -0
  81. package/lib/table-virtuoso/hook/useColumns.d.ts +28 -0
  82. package/lib/table-virtuoso/hook/useColumns.js +315 -0
  83. package/lib/table-virtuoso/hook/useFilterOperator.d.ts +7 -0
  84. package/lib/table-virtuoso/hook/useFilterOperator.js +40 -0
  85. package/lib/table-virtuoso/hook/utils.d.ts +159 -0
  86. package/lib/table-virtuoso/hook/utils.js +2389 -0
  87. package/lib/table-virtuoso/index.d.ts +2 -0
  88. package/lib/table-virtuoso/index.js +9 -0
  89. package/lib/table-virtuoso/style.d.ts +22 -0
  90. package/lib/table-virtuoso/style.js +19 -0
  91. package/lib/table-virtuoso/style.scss +1441 -0
  92. package/lib/table-virtuoso/table/Grid.d.ts +37 -0
  93. package/lib/table-virtuoso/table/Grid.js +307 -0
  94. package/lib/table-virtuoso/table/TableContainer.d.ts +49 -0
  95. package/lib/table-virtuoso/table/TableContainer.js +300 -0
  96. package/lib/table-virtuoso/table/TableWrapper.d.ts +22 -0
  97. package/lib/table-virtuoso/table/TableWrapper.js +166 -0
  98. package/lib/table-virtuoso/type.d.ts +0 -0
  99. package/lib/table-virtuoso/type.js +786 -0
  100. package/lib/table-virtuoso/useContext.d.ts +97 -0
  101. package/lib/table-virtuoso/useContext.js +27 -0
  102. package/package.json +2 -1
  103. package/es/grid-component/AdvanceFilter.d.ts +0 -14
  104. package/es/grid-component/AdvanceFilter.js +0 -454
  105. package/es/grid-component/CheckboxFilter.d.ts +0 -20
  106. package/es/grid-component/CheckboxFilter.js +0 -244
  107. package/es/grid-component/CheckboxFilter2.d.ts +0 -20
  108. package/es/grid-component/CheckboxFilter2.js +0 -244
  109. package/es/grid-component/ColumnsChoose.d.ts +0 -10
  110. package/es/grid-component/ColumnsChoose.js +0 -230
  111. package/es/grid-component/Command.d.ts +0 -8
  112. package/es/grid-component/Command.js +0 -80
  113. package/es/grid-component/ContextMenu.d.ts +0 -20
  114. package/es/grid-component/ContextMenu.js +0 -130
  115. package/es/grid-component/ConvertColumnTable.d.ts +0 -7
  116. package/es/grid-component/ConvertColumnTable.js +0 -144
  117. package/es/grid-component/EditForm/EditForm.d.ts +0 -27
  118. package/es/grid-component/EditForm/EditForm.js +0 -394
  119. package/es/grid-component/EditForm/index.d.ts +0 -1
  120. package/es/grid-component/EditForm/index.js +0 -1
  121. package/es/grid-component/EditableCell.d.ts +0 -20
  122. package/es/grid-component/EditableCell.js +0 -1030
  123. package/es/grid-component/FilterSearch.d.ts +0 -12
  124. package/es/grid-component/FilterSearch.js +0 -33
  125. package/es/grid-component/GridStyle.d.ts +0 -8
  126. package/es/grid-component/GridStyle.js +0 -5
  127. package/es/grid-component/InternalTable.js +0 -1170
  128. package/es/grid-component/TableGrid.d.ts +0 -21
  129. package/es/grid-component/TableGrid.js +0 -493
  130. package/es/grid-component/async-select/index.d.ts +0 -11
  131. package/es/grid-component/async-select/index.js +0 -38
  132. package/es/grid-component/async-table-select/index.d.ts +0 -11
  133. package/es/grid-component/async-table-select/index.js +0 -40
  134. package/es/grid-component/checkbox-control/index.d.ts +0 -13
  135. package/es/grid-component/checkbox-control/index.js +0 -40
  136. package/es/grid-component/hooks/columns/index.d.ts +0 -10
  137. package/es/grid-component/hooks/columns/index.js +0 -503
  138. package/es/grid-component/hooks/content/ControlCheckbox.d.ts +0 -13
  139. package/es/grid-component/hooks/content/ControlCheckbox.js +0 -87
  140. package/es/grid-component/hooks/content/HeaderContent.d.ts +0 -14
  141. package/es/grid-component/hooks/content/HeaderContent.js +0 -44
  142. package/es/grid-component/hooks/content/TooltipContent.d.ts +0 -13
  143. package/es/grid-component/hooks/content/TooltipContent.js +0 -74
  144. package/es/grid-component/hooks/useColumns.d.ts +0 -19
  145. package/es/grid-component/hooks/useColumns.js +0 -317
  146. package/es/grid-component/number/index.d.ts +0 -10
  147. package/es/grid-component/number/index.js +0 -39
  148. package/es/grid-component/number-range/index.d.ts +0 -11
  149. package/es/grid-component/number-range/index.js +0 -63
  150. package/es/grid-component/table/Grid.d.ts +0 -23
  151. package/es/grid-component/table/Grid.js +0 -49
  152. package/es/grid-component/table/GridEdit.d.ts +0 -23
  153. package/es/grid-component/table/GridEdit.js +0 -2726
  154. package/es/grid-component/table/Group.d.ts +0 -21
  155. package/es/grid-component/table/Group.js +0 -195
  156. package/es/grid-component/table/InfiniteTable.d.ts +0 -23
  157. package/es/grid-component/table/InfiniteTable.js +0 -101
  158. package/es/grid-component/useContext.d.ts +0 -34
  159. package/es/grid-component/useContext.js +0 -8
  160. package/lib/grid-component/AdvanceFilter.d.ts +0 -14
  161. package/lib/grid-component/AdvanceFilter.js +0 -463
  162. package/lib/grid-component/CheckboxFilter.d.ts +0 -20
  163. package/lib/grid-component/CheckboxFilter.js +0 -253
  164. package/lib/grid-component/CheckboxFilter2.d.ts +0 -20
  165. package/lib/grid-component/CheckboxFilter2.js +0 -253
  166. package/lib/grid-component/ColumnsChoose.d.ts +0 -10
  167. package/lib/grid-component/ColumnsChoose.js +0 -240
  168. package/lib/grid-component/Command.d.ts +0 -8
  169. package/lib/grid-component/Command.js +0 -88
  170. package/lib/grid-component/ContextMenu.d.ts +0 -20
  171. package/lib/grid-component/ContextMenu.js +0 -140
  172. package/lib/grid-component/ConvertColumnTable.d.ts +0 -7
  173. package/lib/grid-component/ConvertColumnTable.js +0 -153
  174. package/lib/grid-component/EditForm/EditForm.d.ts +0 -27
  175. package/lib/grid-component/EditForm/EditForm.js +0 -404
  176. package/lib/grid-component/EditForm/index.d.ts +0 -1
  177. package/lib/grid-component/EditForm/index.js +0 -16
  178. package/lib/grid-component/EditableCell.d.ts +0 -20
  179. package/lib/grid-component/EditableCell.js +0 -1032
  180. package/lib/grid-component/FilterSearch.d.ts +0 -12
  181. package/lib/grid-component/FilterSearch.js +0 -42
  182. package/lib/grid-component/GridStyle.d.ts +0 -8
  183. package/lib/grid-component/GridStyle.js +0 -12
  184. package/lib/grid-component/InternalTable.js +0 -1178
  185. package/lib/grid-component/TableGrid.d.ts +0 -21
  186. package/lib/grid-component/TableGrid.js +0 -493
  187. package/lib/grid-component/async-select/index.d.ts +0 -11
  188. package/lib/grid-component/async-select/index.js +0 -47
  189. package/lib/grid-component/async-table-select/index.d.ts +0 -11
  190. package/lib/grid-component/async-table-select/index.js +0 -49
  191. package/lib/grid-component/checkbox-control/index.d.ts +0 -13
  192. package/lib/grid-component/checkbox-control/index.js +0 -48
  193. package/lib/grid-component/hooks/columns/index.d.ts +0 -10
  194. package/lib/grid-component/hooks/columns/index.js +0 -518
  195. package/lib/grid-component/hooks/content/ControlCheckbox.d.ts +0 -13
  196. package/lib/grid-component/hooks/content/ControlCheckbox.js +0 -95
  197. package/lib/grid-component/hooks/content/HeaderContent.d.ts +0 -14
  198. package/lib/grid-component/hooks/content/HeaderContent.js +0 -53
  199. package/lib/grid-component/hooks/content/TooltipContent.d.ts +0 -13
  200. package/lib/grid-component/hooks/content/TooltipContent.js +0 -81
  201. package/lib/grid-component/hooks/useColumns.d.ts +0 -19
  202. package/lib/grid-component/hooks/useColumns.js +0 -328
  203. package/lib/grid-component/number/index.d.ts +0 -10
  204. package/lib/grid-component/number/index.js +0 -47
  205. package/lib/grid-component/number-range/index.d.ts +0 -11
  206. package/lib/grid-component/number-range/index.js +0 -71
  207. package/lib/grid-component/table/Grid.d.ts +0 -23
  208. package/lib/grid-component/table/Grid.js +0 -58
  209. package/lib/grid-component/table/GridEdit.d.ts +0 -23
  210. package/lib/grid-component/table/GridEdit.js +0 -2723
  211. package/lib/grid-component/table/Group.d.ts +0 -21
  212. package/lib/grid-component/table/Group.js +0 -204
  213. package/lib/grid-component/table/InfiniteTable.d.ts +0 -23
  214. package/lib/grid-component/table/InfiniteTable.js +0 -109
  215. package/lib/grid-component/useContext.d.ts +0 -34
  216. package/lib/grid-component/useContext.js +0 -13
  217. /package/es/{grid-component → table-virtuoso}/ColumnsGroup/ColumnsGroup.d.ts +0 -0
  218. /package/es/{grid-component → table-virtuoso}/ColumnsGroup/index.d.ts +0 -0
  219. /package/es/{grid-component → table-virtuoso}/ColumnsGroup/index.js +0 -0
  220. /package/lib/{grid-component → table-virtuoso}/ColumnsGroup/ColumnsGroup.d.ts +0 -0
  221. /package/lib/{grid-component → table-virtuoso}/ColumnsGroup/index.d.ts +0 -0
  222. /package/lib/{grid-component → table-virtuoso}/ColumnsGroup/index.js +0 -0
@@ -0,0 +1,391 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import customParseFormat from 'dayjs/plugin/customParseFormat';
3
+ import React, { Fragment, useState } from 'react';
4
+ import 'react-resizable/css/styles.css';
5
+ import dayjs from 'dayjs';
6
+ import 'dayjs/locale/es';
7
+ import 'dayjs/locale/vi';
8
+ import { faker } from '@faker-js/faker';
9
+ import useMergedState from "rc-util/es/hooks/useMergedState";
10
+ import { getCoreRowModel, getExpandedRowModel, getGroupedRowModel, getPaginationRowModel, useReactTable } from '@tanstack/react-table';
11
+ import { addRowIdArray, convertFlatColumn1, convertToObj, convertToObjTrue, filterDataByColumns, findAllChildrenKeys2, flatColumns2, getAllRowKey, getDiffent2Array, getFixedFields, getInvisibleColumns, groupArrayByColumns, isTreeArray, removeKeys } from "./hook/utils";
12
+ import { convertToTanStackColumns } from "./hook/useColumns";
13
+ import { removeInvisibleColumns } from "../grid-component/hooks";
14
+ import Grid from "./table/Grid";
15
+ import { removeColumns } from "../table-component/hook/utils";
16
+ import { OperatorFeature } from "../table-component/features/operator";
17
+ dayjs.extend(customParseFormat);
18
+ export const SELECTION_COLUMN = {};
19
+ const InternalTable = props => {
20
+ const {
21
+ t,
22
+ columns: propsColumns,
23
+ // columns,
24
+ lang,
25
+ locale,
26
+ dataSource,
27
+ editAble,
28
+ format,
29
+ groupAble,
30
+ groupSetting,
31
+ groupColumns,
32
+ selectionSettings,
33
+ expandable,
34
+ onChooseColumns,
35
+ height,
36
+ pagination,
37
+ allowResizing,
38
+ infiniteScroll,
39
+ sortMultiple,
40
+ allowSortering,
41
+ allowFiltering,
42
+ ...rest
43
+ } = props;
44
+ const id = React.useMemo(() => {
45
+ return faker.string.alpha(20);
46
+ }, []);
47
+ const {
48
+ defaultExpandedRowKeys,
49
+ defaultExpandAllRows
50
+ } = expandable || {};
51
+ const rowKey = 'rowId';
52
+ const prefix = 'ui-rc';
53
+ const getWindowSize = () => {
54
+ const {
55
+ innerWidth,
56
+ innerHeight
57
+ } = window;
58
+ return {
59
+ innerWidth,
60
+ innerHeight
61
+ };
62
+ };
63
+ const [windowSize, setWindowSize] = useState(getWindowSize());
64
+ React.useEffect(() => {
65
+ const handleWindowResize = () => {
66
+ setWindowSize(getWindowSize());
67
+ };
68
+ window.addEventListener('resize', handleWindowResize);
69
+ return () => {
70
+ window.removeEventListener('resize', handleWindowResize);
71
+ };
72
+ }, []);
73
+ const [columnResizeMode] = React.useState('onChange');
74
+ const [columnResizeDirection] = React.useState('ltr');
75
+ const [rowSelection, setRowSelection] = React.useState({});
76
+
77
+ // const [grouping, setGrouping] = React.useState<GroupingState>([])
78
+
79
+ const [paginationState, setPagination] = React.useState({
80
+ pageIndex: pagination && pagination.currentPage ? pagination.currentPage - 1 : 0,
81
+ pageSize: pagination && pagination.pageSize ? pagination.pageSize : 20
82
+ });
83
+ const [columnSizing, setColumnSizing] = React.useState({});
84
+ const [columnSizingInfo, setColumnSizingInfo] = React.useState({});
85
+
86
+ // const [columnOrder, setColumnOrder] = React.useState<string[]>(() => columns.map(c => c.id!))
87
+
88
+ const [columnFilters, setColumnFilters] = React.useState([]);
89
+ const [operator, setOperator] = React.useState([]);
90
+ const [sorting, setSorting] = React.useState([]);
91
+ const [filterStates, setFilterState] = React.useState(null);
92
+ const [sorterStates, setSorterStates] = React.useState([]);
93
+ const [isFullScreen, setIsFullScreen] = React.useState(false);
94
+ const [columns, setColumns] = React.useState([]);
95
+ const [tableData, setTableData] = React.useState([]);
96
+ const [expanded, setExpanded] = React.useState({});
97
+
98
+ // const [visible, setVisible] = React.useState({visible: false, column: ''})
99
+
100
+ const [columnVisibility, setColumnVisibility] = React.useState({});
101
+ const originData = React.useMemo(() => {
102
+ return addRowIdArray(dataSource);
103
+ }, [dataSource]);
104
+ const isDataOriginTree = React.useMemo(() => {
105
+ return isTreeArray(originData);
106
+ }, [originData]);
107
+ React.useEffect(() => {
108
+ if (groupColumns && groupColumns.length > 0 && groupSetting?.client !== false && isDataOriginTree === false) {
109
+ const abc = groupArrayByColumns(originData, groupColumns);
110
+ const rs = filterDataByColumns(abc, filterStates, sorterStates, []);
111
+ setTableData(rs);
112
+ } else {
113
+ const rs = filterDataByColumns(originData, filterStates, sorterStates, []);
114
+ setTableData(rs);
115
+ }
116
+ }, [groupColumns, originData, filterStates, sorterStates, groupSetting?.client, isDataOriginTree]);
117
+ // }, [groupColumns, originData, filterStates, sorterStates, groupSetting?.client])
118
+
119
+ React.useEffect(() => {
120
+ // setColumns(updateWidthsByOther(propsColumns, columns))
121
+ setColumns(propsColumns);
122
+ }, [propsColumns]);
123
+ const mergedColumns = React.useMemo(() => {
124
+ return convertToTanStackColumns({
125
+ t,
126
+ columns,
127
+ format,
128
+ editAble
129
+ });
130
+ }, [t, columns, format, editAble]);
131
+ const isDataTree = React.useMemo(() => {
132
+ return isTreeArray(tableData);
133
+ }, [tableData]);
134
+ const columnPinning = React.useMemo(() => {
135
+ return {
136
+ left: getFixedFields(columns, 'left'),
137
+ right: getFixedFields(columns, 'right')
138
+ };
139
+ }, [columns]);
140
+
141
+ // ========================= Keys =========================
142
+ const [mergedFilterKeys, setMergedFilterKeys] = useMergedState(getAllRowKey(originData), {
143
+ value: undefined
144
+ });
145
+
146
+ // ========================= Keys =========================
147
+
148
+ const {
149
+ selectedRowKeys,
150
+ defaultSelectedRowKeys
151
+ } = selectionSettings ?? {};
152
+ const [mergedSelectedKeys] = useMergedState(selectedRowKeys || defaultSelectedRowKeys || [], {
153
+ value: selectedRowKeys
154
+ });
155
+
156
+ // const mergedData = React.useMemo(() => {
157
+
158
+ // return filterDataByColumns(tableData, filterStates, sorterStates, mergedFilterKeys)
159
+
160
+ // }, [tableData, filterStates, mergedFilterKeys, sorterStates])
161
+
162
+ // const columnVisibility = React.useMemo(() => {
163
+ // return getInvisibleColumns(columns)
164
+ // }, [columns])
165
+
166
+ React.useEffect(() => {
167
+ const a = getInvisibleColumns(columns);
168
+ const bcd = convertToObj(groupColumns);
169
+ setColumnVisibility({
170
+ ...a,
171
+ ...bcd
172
+ });
173
+ }, [columns, groupColumns]);
174
+ const [columnsHiddenKeys, setColumnsHiddenKeys] = useMergedState(undefined, {
175
+ value: undefined
176
+ });
177
+ const triggerChangeColumns = (cols, keys, type) => {
178
+ if (type === 'cellClick') {
179
+ setColumns(cols);
180
+ } else {
181
+ const aa = flatColumns2(columns).map(it => it.field);
182
+ const rsss = getDiffent2Array(aa, keys);
183
+ setColumnsHiddenKeys(rsss);
184
+ onChooseColumns?.({
185
+ showColumns: removeInvisibleColumns([...cols]),
186
+ columns: [...cols],
187
+ flattenColumns: convertFlatColumn1([...cols])
188
+ });
189
+ }
190
+ };
191
+ const table = useReactTable({
192
+ _features: [OperatorFeature],
193
+ data: tableData,
194
+ // data: mergedData,
195
+ columns: mergedColumns,
196
+ state: {
197
+ rowSelection,
198
+ expanded,
199
+ columnPinning,
200
+ columnVisibility: columnsHiddenKeys ? convertToObj(columnsHiddenKeys) : columnVisibility,
201
+ pagination: pagination && !infiniteScroll ? paginationState : undefined,
202
+ // grouping,
203
+ columnSizing,
204
+ // columnOrder,
205
+ columnFilters,
206
+ operator,
207
+ sorting,
208
+ columnSizingInfo
209
+ },
210
+ getCoreRowModel: getCoreRowModel(),
211
+ getRowId(originalRow) {
212
+ return originalRow.rowId;
213
+ },
214
+ getSubRows: row => row.children,
215
+ // --------------RowSelection -----------------
216
+ enableSubRowSelection: selectionSettings && selectionSettings.mode === 'checkbox' && selectionSettings.type !== 'single',
217
+ enableMultiRowSelection: selectionSettings && (selectionSettings.mode === 'checkbox' || selectionSettings.type !== 'single'),
218
+ enableRowSelection: row => {
219
+ if (selectionSettings?.getCheckboxProps) {
220
+ return !selectionSettings?.getCheckboxProps(row.original)?.disabled;
221
+ }
222
+ return true;
223
+ },
224
+ onRowSelectionChange: setRowSelection,
225
+ // --------------RowSelection END-----------------
226
+
227
+ // ColumnSizing
228
+ enableColumnResizing: allowResizing !== false,
229
+ columnResizeMode,
230
+ columnResizeDirection,
231
+ onColumnSizingChange: setColumnSizing,
232
+ onColumnSizingInfoChange: setColumnSizingInfo,
233
+ // ColumnSizing
234
+
235
+ // ColumnSorting
236
+ // getSortedRowModel: getSortedRowModel(),
237
+ onSortingChange: setSorting,
238
+ enableMultiSort: sortMultiple !== false,
239
+ isMultiSortEvent: () => sortMultiple === false ? false : true,
240
+ enableSorting: allowSortering !== false,
241
+ // ColumnSorting
242
+
243
+ enableFilters: allowFiltering !== false,
244
+ onColumnFiltersChange: setColumnFilters,
245
+ onColumnOperatorChange: setOperator,
246
+ // getFilteredRowModel: getFilteredRowModel(),
247
+
248
+ // onColumnOrderChange: setColumnOrder,
249
+
250
+ // onGroupingChange: setGrouping,
251
+ getGroupedRowModel: getGroupedRowModel(),
252
+ // onExpandedChange: setExpanded,
253
+ getExpandedRowModel: getExpandedRowModel(),
254
+ getPaginationRowModel: pagination && !infiniteScroll ? getPaginationRowModel() : undefined,
255
+ onPaginationChange: setPagination,
256
+ onColumnVisibilityChange: setColumnVisibility
257
+ // onColumnPinningChange,
258
+
259
+ // debugTable: true
260
+ });
261
+ React.useEffect(() => {
262
+ if (defaultExpandAllRows) {
263
+ const allKeys = findAllChildrenKeys2(tableData, rowKey, 'children');
264
+ setExpanded(convertToObjTrue(allKeys));
265
+ } else {
266
+ if (defaultExpandedRowKeys) {
267
+ setExpanded(convertToObjTrue(defaultExpandedRowKeys ?? []));
268
+ }
269
+ }
270
+ }, [defaultExpandAllRows, defaultExpandedRowKeys, tableData, table]);
271
+ const triggerGroupColumns = groupedColumns => {
272
+ // const abc = updateColumnsByGroup(columns, groupedColumns)
273
+
274
+ const bcd = convertToObj(groupedColumns);
275
+
276
+ // const a = getInvisibleColumns(columns)
277
+
278
+ const prev = groupColumns ?? [];
279
+ const bbb = prev.filter(item => !groupedColumns.includes(item));
280
+ const ccc = removeKeys(columnVisibility, bbb);
281
+ const rs = {
282
+ ...ccc,
283
+ ...bcd
284
+ };
285
+ setColumnVisibility(rs);
286
+
287
+ // table.setColumnVisibility(rs)
288
+
289
+ if (groupSetting) {
290
+ if (groupSetting.onGroup) {
291
+ groupSetting.onGroup({
292
+ columnGrouped: groupedColumns,
293
+ columns: removeColumns(columns, groupedColumns),
294
+ flattenColumns: flatColumns2(removeColumns(columns, groupedColumns))
295
+ });
296
+ }
297
+ if (groupSetting.client === false) {
298
+
299
+ // group server => không xử lý gì
300
+ } else {
301
+ // group client
302
+
303
+ table.resetRowSelection();
304
+ table.resetExpanded();
305
+ setRowSelection({});
306
+ setExpanded({});
307
+ }
308
+ }
309
+ };
310
+
311
+ // useEffect(() => {
312
+
313
+ // table.toggleAllRowsExpanded(true)
314
+
315
+ // }, [tableData ])
316
+
317
+ const triggerFilter = args => {
318
+ // table.resetRowSelection()
319
+ // table.resetExpanded()
320
+
321
+ // setRowSelection({})
322
+ setExpanded({});
323
+ setFilterState(args);
324
+
325
+ // const rs = filterDataByColumns(originData, args, sorterStates, [])
326
+
327
+ // const allKeys = findAllChildrenKeys2<RecordType>(rs, rowKey, 'children')
328
+
329
+ // setExpanded(convertToObjTrue(allKeys))
330
+
331
+ // setTableData(rs)
332
+ };
333
+ const triggerSorter = args => {
334
+ // table.resetRowSelection()
335
+ // table.resetExpanded()
336
+
337
+ // setRowSelection({})
338
+ // setExpanded({})
339
+
340
+ setSorterStates(args);
341
+
342
+ // const rs = filterDataByColumns(originData, filterStates, args, [])
343
+ // setTableData(rs)
344
+ };
345
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Grid, _extends({}, rest, {
346
+ t: t,
347
+ id: id,
348
+ table: table,
349
+ prefix: prefix,
350
+ originData: originData
351
+ // dataSource={mergedData}
352
+ ,
353
+ dataSource: tableData,
354
+ locale: locale,
355
+ format: format
356
+ // columns={convertColumns(mergedColumns)}
357
+ ,
358
+ columns: mergedColumns,
359
+ propsColumns: columns,
360
+ rowKey: rowKey,
361
+ groupSetting: groupSetting,
362
+ groupAble: groupAble,
363
+ groupColumns: groupColumns,
364
+ columnPinning: columnPinning,
365
+ columnHidden: columnsHiddenKeys ? convertToObj(columnsHiddenKeys) : columnVisibility,
366
+ triggerFilter: triggerFilter,
367
+ triggerSorter: triggerSorter,
368
+ setMergedFilterKeys: setMergedFilterKeys,
369
+ mergedFilterKeys: mergedFilterKeys,
370
+ editAble: isFullScreen ? false : editAble,
371
+ triggerChangeColumns: triggerChangeColumns,
372
+ triggerGroupColumns: triggerGroupColumns,
373
+ expanded: expanded,
374
+ setExpanded: setExpanded,
375
+ isFullScreen: isFullScreen,
376
+ setIsFullScreen: setIsFullScreen,
377
+ windowSize: windowSize,
378
+ height: height,
379
+ isDataTree: isDataTree,
380
+ selectionSettings: selectionSettings,
381
+ mergedSelectedKeys: mergedSelectedKeys,
382
+ expandable: expandable,
383
+ setColumns: setColumns,
384
+ columnFilters: columnFilters,
385
+ columnSizing: columnSizing,
386
+ columnSizingInfo: columnSizingInfo,
387
+ setColumnSizing: setColumnSizing,
388
+ rowSelection: rowSelection
389
+ })));
390
+ };
391
+ export default InternalTable;
@@ -0,0 +1,14 @@
1
+ import type { Cell, Table } from "@tanstack/react-table";
2
+ import type { CommandClick } from "../../table-component/type";
3
+ import React from "react";
4
+ import type { VirtualItem } from "@tanstack/react-virtual";
5
+ interface TableBodyCellProps<T> {
6
+ table: Table<T>;
7
+ tableId: string;
8
+ cell: Cell<T, unknown>;
9
+ commandClick?: (args: CommandClick<T>) => void;
10
+ virtualRow: VirtualItem;
11
+ [key: string]: any;
12
+ }
13
+ declare const TableBodyCell: <RecordType extends object>(props: TableBodyCellProps<RecordType>) => React.JSX.Element;
14
+ export default TableBodyCell;