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,37 @@
1
+ import type { ColumnDef, ColumnFiltersState, ColumnPinningState, ColumnSizingInfoState, ColumnSizingState, ExpandedState, Table, VisibilityState } from '@tanstack/react-table';
2
+ import type { ColumnsTable, Sorter, TableProps } from '../../table-component/type';
3
+ import type { Dispatch, Key, SetStateAction } from 'react';
4
+ import React from 'react';
5
+ type Props<T> = Omit<TableProps<T>, 'columns'> & {
6
+ id: string;
7
+ table: Table<T>;
8
+ rowKey: string;
9
+ prefix: string;
10
+ columns: ColumnDef<T>[];
11
+ propsColumns: ColumnsTable<T>;
12
+ setColumns: Dispatch<SetStateAction<ColumnsTable<T>>>;
13
+ columnHidden: VisibilityState;
14
+ expanded: ExpandedState;
15
+ setExpanded: any;
16
+ columnPinning: ColumnPinningState;
17
+ originData: T[];
18
+ mergedFilterKeys: any;
19
+ setMergedFilterKeys: any;
20
+ isFullScreen: boolean;
21
+ setIsFullScreen: Dispatch<SetStateAction<boolean>>;
22
+ triggerFilter: (args: any) => void;
23
+ triggerSorter: (args: Sorter[]) => void;
24
+ onContextMenu?: (data: T) => (event: any) => void;
25
+ triggerChangeColumns?: (args: any, keys: any, type: string) => void;
26
+ triggerGroupColumns?: (groupedColumns: string[]) => void;
27
+ windowSize: any;
28
+ isDataTree: boolean;
29
+ mergedSelectedKeys: Key[];
30
+ setColumnSizing: Dispatch<SetStateAction<any>>;
31
+ columnSizingInfo: ColumnSizingInfoState;
32
+ columnSizing: ColumnSizingState;
33
+ columnFilters: ColumnFiltersState;
34
+ setColumnOrder?: Dispatch<SetStateAction<string[]>>;
35
+ };
36
+ declare const Grid: <RecordType extends object>(props: Props<RecordType>) => React.JSX.Element;
37
+ export default Grid;
@@ -0,0 +1,307 @@
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 _antd = require("antd");
10
+ var _faker = require("@faker-js/faker");
11
+ var _core = require("@dnd-kit/core");
12
+ var _modifiers = require("@dnd-kit/modifiers");
13
+ var _sortable = require("@dnd-kit/sortable");
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _utils = require("../hook/utils");
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+ var _TableContainer = _interopRequireDefault(require("./TableContainer"));
18
+ var _style = require("../style");
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
+ const Grid = props => {
22
+ const {
23
+ theme,
24
+ t,
25
+ id,
26
+ prefix,
27
+ dataSource,
28
+ originData,
29
+ columns,
30
+ propsColumns,
31
+ setColumns,
32
+ pagination,
33
+ expanded,
34
+ setExpanded,
35
+ columnHidden,
36
+ columnPinning,
37
+ selectionSettings,
38
+ rowSelected,
39
+ sortMultiple,
40
+ triggerSorter,
41
+ triggerFilter,
42
+ setMergedFilterKeys,
43
+ onSorter,
44
+ onFilter,
45
+ allowFiltering,
46
+ allowSortering,
47
+ // groupColumns,
48
+ // height= 700,
49
+ height,
50
+ minHeight,
51
+ editAble,
52
+ triggerChangeColumns,
53
+ infiniteScroll,
54
+ mergedSelectedKeys,
55
+ allowResizing,
56
+ windowSize,
57
+ table,
58
+ columnSizing,
59
+ columnSizingInfo,
60
+ setColumnSizing,
61
+ columnFilters,
62
+ setColumnOrder,
63
+ rowSelection,
64
+ ...rest
65
+ } = props;
66
+
67
+ // const [columnResizeMode] = React.useState<ColumnResizeMode>('onChange')
68
+
69
+ // const [columnResizeDirection] = React.useState<ColumnResizeDirection>('ltr')
70
+
71
+ // const [paginationState, setPagination] = React.useState<PaginationState>({
72
+ // pageIndex: pagination && pagination.currentPage ? pagination.currentPage - 1 : 0,
73
+ // pageSize: pagination && pagination.pageSize ? pagination.pageSize : 20
74
+ // })
75
+
76
+ // const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({})
77
+
78
+ // const [grouping, setGrouping] = React.useState<GroupingState>([])
79
+
80
+ // const [columnSizing, setColumnSizing] = React.useState<ColumnSizingState>({})
81
+ // const [columnSizingInfo, setColumnSizingInfo] = React.useState<ColumnSizingInfoState>({} as ColumnSizingInfoState)
82
+
83
+ // const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])
84
+
85
+ // const [operator, setOperator] = React.useState<ColumnOperatorState>([])
86
+ // const [sorting, setSorting] = React.useState<SortingState>([])
87
+
88
+ // const [columnOrder, setColumnOrder] = React.useState<string[]>(() => columns.map(c => c.id!))
89
+
90
+ const [isSelectionChange, setIsSelectionChange] = _react.default.useState({
91
+ isChange: false,
92
+ type: '',
93
+ rowData: {},
94
+ rowsData: []
95
+ });
96
+ const [sorterChange, setSorterChange] = _react.default.useState(false);
97
+ const [filterChange, setFilterChange] = _react.default.useState(false);
98
+ const [isFullScreen, setIsFullScreen] = _react.default.useState(false);
99
+
100
+ // React.useEffect(() => {
101
+
102
+ // const isEqual = isObjEqual(convertToObjTrue(mergedSelectedKeys), rowSelection)
103
+
104
+ // if (!isEqual) {
105
+
106
+ // setRowSelection(convertToObjTrue(mergedSelectedKeys))
107
+ // }
108
+
109
+ // }, [mergedSelectedKeys])
110
+
111
+ _react.default.useEffect(() => {
112
+ if (isSelectionChange.isChange) {
113
+ const aa = table.getState().rowSelection;
114
+ const ids = Object.keys(aa);
115
+ const ssss = (0, _utils.filterByIds)(ids, isSelectionChange.rowsData ?? []); // lấy rowsData của trang hiện tại
116
+
117
+ const rs = ssss.map(it => it.original);
118
+ rowSelected?.({
119
+ type: isSelectionChange.type,
120
+ rowData: isSelectionChange.rowData,
121
+ selected: rs
122
+ });
123
+ }
124
+ }, [isSelectionChange, rowSelection, table.getState().rowSelection]);
125
+ _react.default.useEffect(() => {
126
+ if (sorterChange) {
127
+ const aa = table.getState().sorting;
128
+ const rs = aa.map(it => {
129
+ return {
130
+ columnKey: it.id,
131
+ field: it.id,
132
+ order: it.desc ? 'descend' : 'ascend'
133
+ };
134
+ });
135
+ if (onSorter) {
136
+ onSorter?.(rs);
137
+ } else {
138
+ triggerSorter(rs);
139
+ }
140
+ setSorterChange(false);
141
+ }
142
+ }, [onSorter, sorterChange, table, triggerSorter]);
143
+ _react.default.useEffect(() => {
144
+ if (filterChange) {
145
+ const operatorState = table.getState().operator;
146
+ const merged = columnFilters.map(filter => {
147
+ const match = operatorState.find(op => op.id === filter.id);
148
+ const col = table.getVisibleFlatColumns().find(it => it.id === filter.id)?.columnDef.meta;
149
+ return {
150
+ field: filter.id,
151
+ key: filter.id,
152
+ column: col,
153
+ filteredKeys: filter.value,
154
+ operator: match ? match.operator : undefined
155
+ };
156
+ });
157
+ if (onFilter) {
158
+ onFilter?.((0, _utils.convertFilters)(merged));
159
+ } else {
160
+ triggerFilter((0, _utils.convertFilters)(merged));
161
+ const b = (0, _utils.filterDataByColumns)(originData, (0, _utils.convertFilters)(merged), [], []);
162
+ setMergedFilterKeys((0, _utils.getAllRowKey)(b));
163
+ }
164
+ }
165
+ }, [filterChange, onFilter, originData, setMergedFilterKeys, table, triggerFilter, columnFilters]);
166
+
167
+ // reorder columns after drag & drop
168
+ function handleDragEnd(event) {
169
+ const {
170
+ active,
171
+ over
172
+ } = event;
173
+ if (active && over && active.id !== over.id) {
174
+ setColumnOrder?.(cols => {
175
+ const oldIndex = cols.indexOf(active.id);
176
+ const newIndex = cols.indexOf(over.id);
177
+ return (0, _sortable.arrayMove)(cols, oldIndex, newIndex); //this is just a splice util
178
+ });
179
+ }
180
+ }
181
+ const sensors = (0, _core.useSensors)((0, _core.useSensor)(_core.MouseSensor, {}), (0, _core.useSensor)(_core.TouchSensor, {}), (0, _core.useSensor)(_core.KeyboardSensor, {}));
182
+ const ContainerComponent = _TableContainer.default;
183
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_style.GridStyle, {
184
+ $prefix: prefix,
185
+ $theme: {
186
+ theme: theme?.theme,
187
+ ...theme
188
+ },
189
+ className: (0, _classnames.default)(`${prefix}-grid`, {
190
+ [`${prefix}-grid-light`]: !theme || theme.theme === 'light',
191
+ [`${prefix}-grid-dark`]: theme?.theme === 'dark'
192
+ }),
193
+ style: {
194
+ minHeight: minHeight ?? undefined,
195
+ maxHeight: height ?? undefined,
196
+ backgroundColor: theme?.backgroundColor ?? undefined
197
+ }
198
+ }, /*#__PURE__*/_react.default.createElement(_core.DndContext, {
199
+ collisionDetection: _core.closestCenter,
200
+ modifiers: [_modifiers.restrictToHorizontalAxis],
201
+ onDragEnd: handleDragEnd,
202
+ sensors: sensors
203
+ }, /*#__PURE__*/_react.default.createElement(ContainerComponent, (0, _extends2.default)({}, rest, {
204
+ id: id,
205
+ t: t,
206
+ windowSize: windowSize,
207
+ table: table,
208
+ editAble: editAble,
209
+ dataSource: dataSource,
210
+ originData: originData,
211
+ prefix: prefix,
212
+ selectionSettings: selectionSettings,
213
+ isSelectionChange: isSelectionChange,
214
+ setIsSelectionChange: setIsSelectionChange,
215
+ setSorterChange: setSorterChange,
216
+ setFilterChange: setFilterChange,
217
+ height: height ?? minHeight ?? 700,
218
+ minHeight: minHeight,
219
+ pagination: pagination,
220
+ columns: columns,
221
+ propsColumns: propsColumns,
222
+ triggerChangeColumns: triggerChangeColumns,
223
+ columnHidden: columnHidden,
224
+ setExpanded: setExpanded,
225
+ expanded: expanded,
226
+ infiniteScroll: infiniteScroll,
227
+ setMergedFilterKeys: setMergedFilterKeys,
228
+ setColumnSizing: setColumnSizing,
229
+ setColumns: setColumns,
230
+ columnSizing: columnSizing,
231
+ columnSizingInfo: columnSizingInfo,
232
+ isFullScreen: isFullScreen,
233
+ setIsFullScreen: setIsFullScreen
234
+ })))), /*#__PURE__*/_react.default.createElement(_antd.Modal, {
235
+ open: isFullScreen,
236
+ footer: null,
237
+ centered: true,
238
+ closable: true,
239
+ width: '100%',
240
+ style: {
241
+ maxWidth: '100%',
242
+ height: '100%'
243
+ },
244
+ onCancel: () => setIsFullScreen(false),
245
+ styles: {
246
+ content: {
247
+ height: '100vh',
248
+ borderRadius: 0,
249
+ padding: '15px 10px'
250
+ },
251
+ wrapper: {
252
+ zIndex: 1050
253
+ }
254
+ },
255
+ destroyOnClose: true
256
+ }, /*#__PURE__*/_react.default.createElement("div", {
257
+ style: {
258
+ paddingTop: 40
259
+ }
260
+ }, /*#__PURE__*/_react.default.createElement("div", {
261
+ className: (0, _classnames.default)(`${prefix}-grid`, {
262
+ [`${prefix}-grid-light`]: !theme || theme.theme === 'light',
263
+ [`${prefix}-grid-dark`]: theme?.theme === 'dark'
264
+ }),
265
+ style: {
266
+ // minHeight: minHeight ?? undefined,
267
+ maxHeight: windowSize.innerHeight - 70
268
+ }
269
+ }, /*#__PURE__*/_react.default.createElement(_core.DndContext, {
270
+ collisionDetection: _core.closestCenter,
271
+ modifiers: [_modifiers.restrictToHorizontalAxis],
272
+ onDragEnd: handleDragEnd,
273
+ sensors: sensors
274
+ }, /*#__PURE__*/_react.default.createElement(ContainerComponent, (0, _extends2.default)({}, rest, {
275
+ id: _faker.faker.string.alpha(20),
276
+ t: t,
277
+ table: table,
278
+ editAble: editAble,
279
+ dataSource: dataSource,
280
+ originData: originData,
281
+ prefix: prefix,
282
+ selectionSettings: selectionSettings,
283
+ isSelectionChange: isSelectionChange,
284
+ setIsSelectionChange: setIsSelectionChange,
285
+ setSorterChange: setSorterChange,
286
+ setFilterChange: setFilterChange,
287
+ height: windowSize.innerHeight - 70,
288
+ minHeight: minHeight,
289
+ pagination: pagination,
290
+ columns: columns,
291
+ windowSize: windowSize,
292
+ propsColumns: propsColumns,
293
+ triggerChangeColumns: triggerChangeColumns,
294
+ columnHidden: columnHidden,
295
+ setExpanded: setExpanded,
296
+ expanded: expanded,
297
+ infiniteScroll: infiniteScroll,
298
+ setMergedFilterKeys: setMergedFilterKeys,
299
+ setColumns: setColumns,
300
+ isFullScreen: isFullScreen,
301
+ setIsFullScreen: setIsFullScreen,
302
+ setColumnSizing: setColumnSizing,
303
+ columnSizing: columnSizing,
304
+ columnSizingInfo: columnSizingInfo
305
+ })))))));
306
+ };
307
+ var _default = exports.default = Grid;
@@ -0,0 +1,49 @@
1
+ import type { Dispatch, SetStateAction } from 'react';
2
+ import React from 'react';
3
+ import type { ColumnDef, ColumnSizingInfoState, ColumnSizingState, Table } from '@tanstack/react-table';
4
+ import type { ColumnsTable, TableProps } from '../../table-component/type';
5
+ type TableContainerProps<T> = Omit<TableProps<T>, 'columns'> & {
6
+ table: Table<T>;
7
+ prefix: string;
8
+ id: string;
9
+ rowKey: any;
10
+ originData: T[];
11
+ isSelectionChange?: {
12
+ isChange: boolean;
13
+ type: string;
14
+ rowData: T;
15
+ rowsData: T[];
16
+ };
17
+ setIsSelectionChange: Dispatch<SetStateAction<{
18
+ isChange: boolean;
19
+ type: string;
20
+ rowData: T;
21
+ rowsData: T[];
22
+ }>>;
23
+ setSorterChange: Dispatch<SetStateAction<boolean>>;
24
+ setFilterChange: Dispatch<SetStateAction<boolean>>;
25
+ onContextMenu?: (data: T) => (event: any) => void;
26
+ windowSize: {
27
+ innerHeight: number;
28
+ innerWidth: number;
29
+ };
30
+ triggerPaste?: (pastedRows: T[], pastedColumnsArray: string[], newData: T[], copyRows: T[]) => void;
31
+ mergedFilterKeys?: any;
32
+ setMergedFilterKeys?: any;
33
+ setExpanded?: any;
34
+ expanded?: any;
35
+ columns: ColumnDef<T>[];
36
+ propsColumns: ColumnsTable;
37
+ triggerChangeColumns: any;
38
+ columnHidden: any;
39
+ isFullScreen: boolean;
40
+ setIsFullScreen: Dispatch<SetStateAction<boolean>>;
41
+ isDataTree: boolean;
42
+ setColumnSizing: Dispatch<SetStateAction<any>>;
43
+ setColumns: Dispatch<SetStateAction<any>>;
44
+ columnSizingInfo: ColumnSizingInfoState;
45
+ columnSizing: ColumnSizingState;
46
+ triggerGroupColumns?: (groupedColumns: string[]) => void;
47
+ };
48
+ declare const TableContainer: <RecordType extends object>(props: TableContainerProps<RecordType>) => React.JSX.Element;
49
+ export default TableContainer;
@@ -0,0 +1,300 @@
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 _react = _interopRequireDefault(require("react"));
10
+ var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _pagination = _interopRequireDefault(require("rc-master-ui/es/pagination"));
12
+ var _rcMasterUi = require("rc-master-ui");
13
+ var _becoxyIcons = require("becoxy-icons");
14
+ var _reactNumericComponent = require("react-numeric-component");
15
+ var _TableWrapper = _interopRequireDefault(require("./TableWrapper"));
16
+ var _ColumnsChoose = require("../../table-component/ColumnsChoose");
17
+ var _utils = require("../hook/utils");
18
+ var _useContext = require("../useContext");
19
+ var _utils2 = require("../../table-component/hook/utils");
20
+ var _ColumnsGroup = require("../ColumnsGroup");
21
+ // import type { Dispatch, SetStateAction } from 'react'
22
+
23
+ // import { ColumnsGroup } from '../../grid-component/ColumnsGroup';
24
+
25
+ const TableContainer = props => {
26
+ const {
27
+ t,
28
+ table,
29
+ id,
30
+ prefix,
31
+ commandClick,
32
+ editAble,
33
+ rowKey,
34
+ format,
35
+ dataSource,
36
+ originData,
37
+ expandable,
38
+ wrapSettings,
39
+ recordDoubleClick,
40
+ // triggerFilter,
41
+ selectionSettings,
42
+ isSelectionChange,
43
+ setIsSelectionChange,
44
+ onContextMenu,
45
+ // contextMenuItems,
46
+ setSorterChange,
47
+ setFilterChange,
48
+ height,
49
+ minHeight,
50
+ showToolbar,
51
+ toolbarItems,
52
+ actionTemplate,
53
+ pagination,
54
+ fullScreen,
55
+ showColumnChoose,
56
+ // summary,
57
+ locale,
58
+ groupColumns,
59
+ columns,
60
+ propsColumns,
61
+ triggerChangeColumns,
62
+ triggerGroupColumns,
63
+ columnHidden,
64
+ expanded,
65
+ setExpanded,
66
+ // showEmptyText,
67
+ infiniteScroll,
68
+ // next,
69
+ // loading,
70
+ windowSize,
71
+ // contextMenuOpen,
72
+ // contextMenuClick,
73
+ // contextMenuHidden,
74
+ isFullScreen,
75
+ setIsFullScreen,
76
+ isDataTree,
77
+ // setColumns,
78
+ // columnSizing,
79
+ // columnSizingInfo,
80
+ rowClassName,
81
+ onRowStyles,
82
+ onRowFooterStyles,
83
+ onRowHeaderStyles,
84
+ title,
85
+ groupSetting
86
+ } = props;
87
+ const tableContainerRef = _react.default.useRef(null);
88
+ const containerRef = _react.default.useRef(null);
89
+ const bottomToolbarRef = _react.default.useRef(null);
90
+ const topToolbarRef = _react.default.useRef(null);
91
+ const [tableHeight, settableHeight] = _react.default.useState(0);
92
+ _react.default.useEffect(() => {
93
+ // const totalHeight = minHeight ?? height
94
+ const totalHeight = (0, _utils.getTableHeight)(height, minHeight);
95
+ if (totalHeight) {
96
+ const topHeight = topToolbarRef.current ? topToolbarRef.current.offsetHeight : 0;
97
+ const bottomHeight = bottomToolbarRef.current ? bottomToolbarRef.current.offsetHeight : 0;
98
+ settableHeight(totalHeight - topHeight - bottomHeight);
99
+ }
100
+ }, [id, height, editAble, minHeight]);
101
+ _react.default.useEffect(() => {
102
+ const handleClickOutside = () => {
103
+
104
+ // setFocusedCell(undefined)
105
+ // setIsSelectionChange((prev) => (
106
+ // {
107
+ // ...prev,
108
+ // isChange: false
109
+ // }
110
+ // ))
111
+ };
112
+ document.addEventListener('mousedown', handleClickOutside);
113
+ return () => {
114
+ document.removeEventListener('mousedown', handleClickOutside);
115
+ };
116
+ }, []);
117
+ const triggerCommandClick = args => {
118
+ // const { id: idCommand, rowId, rowData, index } = args
119
+
120
+ // const tmpData = [...dataSource]
121
+
122
+ if (commandClick) {
123
+ commandClick({
124
+ ...args,
125
+ rows: originData
126
+ });
127
+ }
128
+ };
129
+ const handleOnGroup = value => {
130
+ triggerGroupColumns?.(value);
131
+ };
132
+ const handleCollapseAllGroup = () => {
133
+ setExpanded({});
134
+ };
135
+ const handleExpandAllGroup = () => {
136
+ const allKeys = (0, _utils.findAllChildrenKeys2)(dataSource, rowKey, 'children');
137
+ setExpanded((0, _utils.convertToObjTrue)(allKeys));
138
+ };
139
+ const groupToolbar = () => {
140
+ return /*#__PURE__*/_react.default.createElement("div", {
141
+ style: {
142
+ display: 'flex',
143
+ gap: '10px',
144
+ marginRight: 10
145
+ }
146
+ }, groupSetting?.showGroupIcon !== false && /*#__PURE__*/_react.default.createElement(_ColumnsGroup.ColumnsGroup, {
147
+ t: t
148
+ // defaultGroupColumns={['name']}
149
+ ,
150
+ unClearableLevel: groupSetting?.unClearableLevel
151
+ // unClearableLevel={2}
152
+ ,
153
+ columns: propsColumns ? (0, _utils2.flatColumns2)(propsColumns) : [],
154
+ columnsGrouped: groupColumns,
155
+ onSubmit: handleOnGroup
156
+ }), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !(0, _utils.isObjEmpty)(expanded) ? /*#__PURE__*/_react.default.createElement(_becoxyIcons.Collapse2, {
157
+ fontSize: 16,
158
+ color: '#555555',
159
+ onClick: handleCollapseAllGroup
160
+ }) : /*#__PURE__*/_react.default.createElement(_becoxyIcons.Expand2, {
161
+ fontSize: 16,
162
+ color: '#555555',
163
+ onClick: handleExpandAllGroup
164
+ })));
165
+ };
166
+ return /*#__PURE__*/_react.default.createElement("div", {
167
+ ref: containerRef,
168
+ id: id
169
+ }, (showToolbar !== false || fullScreen !== false || title) && /*#__PURE__*/_react.default.createElement("div", {
170
+ ref: topToolbarRef,
171
+ className: (0, _classnames.default)(`${prefix}-grid-top-toolbar`, {})
172
+ }, /*#__PURE__*/_react.default.createElement("div", {
173
+ style: {
174
+ textAlign: 'center'
175
+ }
176
+ }, typeof title === 'function' ? title?.(originData) : title), /*#__PURE__*/_react.default.createElement("div", {
177
+ style: {
178
+ display: 'flex',
179
+ justifyContent: 'space-between',
180
+ alignItems: 'center',
181
+ gap: '.75rem'
182
+ }
183
+ }, groupToolbar(), /*#__PURE__*/_react.default.createElement("div", {
184
+ style: {
185
+ flex: 1,
186
+ overflow: 'hidden'
187
+ }
188
+ }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Toolbar, {
189
+ items: (toolbarItems ?? []).filter(it => it.position !== 'Bottom'),
190
+ mode: 'scroll'
191
+ })), /*#__PURE__*/_react.default.createElement("div", {
192
+ style: {
193
+ display: 'flex',
194
+ justifyContent: 'space-between',
195
+ alignItems: 'center',
196
+ gap: '.75rem'
197
+ }
198
+ }, pagination && pagination.onChange && pagination?.position && pagination?.position[0] === 'topRight' && /*#__PURE__*/_react.default.createElement(_pagination.default, (0, _extends2.default)({
199
+ showSizeChanger: true,
200
+ responsive: true,
201
+ size: 'small',
202
+ rootClassName: 'top-pagination',
203
+ showTotal: (totalItems, range) =>
204
+ // @ts-ignore
205
+ `${range[0]}-${range[1]} / ${totalItems} ${t ? t(pagination?.locale?.items ?? 'items') : 'items'}`
206
+ }, pagination)), typeof actionTemplate === 'function' ? actionTemplate() : actionTemplate, fullScreen !== false && (isFullScreen ? /*#__PURE__*/_react.default.createElement(_becoxyIcons.Minimize, {
207
+ fontSize: 16,
208
+ onClick: () => {
209
+ setIsFullScreen(!isFullScreen);
210
+ },
211
+ "data-tooltip-id": `${id}-tooltip-content`,
212
+ "data-tooltip-content": t ? t('Minimized') : 'Minimized'
213
+ }) : /*#__PURE__*/_react.default.createElement(_becoxyIcons.Maximize, {
214
+ fontSize: 16,
215
+ onClick: () => {
216
+ setIsFullScreen(!isFullScreen);
217
+ },
218
+ "data-tooltip-id": `${id}-tooltip-content`,
219
+ "data-tooltip-content": t ? t('Full screen') : 'Full screen'
220
+ })), showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
221
+ columnHidden: columnHidden,
222
+ columns: columns,
223
+ originColumns: propsColumns,
224
+ t: t,
225
+ columnsGroup: groupColumns,
226
+ triggerChangeColumns: triggerChangeColumns
227
+ })))), /*#__PURE__*/_react.default.createElement(_useContext.TableContext.Provider, {
228
+ value: {
229
+ t,
230
+ locale,
231
+ prefix,
232
+ id,
233
+ rowKey,
234
+ format,
235
+ expandable,
236
+ expanded,
237
+ setExpanded,
238
+ dataSource,
239
+ originData,
240
+ wrapSettings,
241
+ recordDoubleClick,
242
+ selectionSettings,
243
+ isSelectionChange,
244
+ setIsSelectionChange,
245
+ onContextMenu,
246
+ setSorterChange,
247
+ setFilterChange,
248
+ windowSize,
249
+ isDataTree,
250
+ rowClassName,
251
+ onRowStyles,
252
+ onRowFooterStyles,
253
+ onRowHeaderStyles,
254
+ table,
255
+ pagination,
256
+ groupSetting
257
+ }
258
+ }, /*#__PURE__*/_react.default.createElement(_TableWrapper.default, {
259
+ tableContainerRef: tableContainerRef,
260
+ prefix: prefix,
261
+ id: id,
262
+ height: tableHeight,
263
+ minHeight: minHeight,
264
+ dataSource: dataSource,
265
+ table: table,
266
+ columns: columns,
267
+ commandClick: triggerCommandClick
268
+ })), /*#__PURE__*/_react.default.createElement("div", {
269
+ ref: bottomToolbarRef
270
+ }, pagination && !infiniteScroll && /*#__PURE__*/_react.default.createElement(_pagination.default
271
+ // style={{padding: '0.75rem 1rem'}}
272
+ , (0, _extends2.default)({
273
+ pageSizeOptions: [20, 50, 100, 1000, 10000]
274
+ }, pagination, {
275
+ rootClassName: 'pagination-template',
276
+ showSizeChanger: true,
277
+ responsive: true,
278
+ size: 'small',
279
+ total: pagination.total,
280
+ pageSize: pagination.onChange ? pagination.pageSize : table.getState().pagination.pageSize,
281
+ showTotal: (totalItems, range) => `${(0, _reactNumericComponent.numericFormatter)((range[0] ?? 0).toString(), {
282
+ thousandSeparator: '.'
283
+ })}-${(0, _reactNumericComponent.numericFormatter)((range[1] ?? 0).toString(), {
284
+ thousandSeparator: '.'
285
+ })} / ${(0, _reactNumericComponent.numericFormatter)((totalItems ?? 0).toString(), {
286
+ thousandSeparator: '.'
287
+ })} items`,
288
+ onChange: (page, pageSize1) => {
289
+ if (pagination.onChange) {
290
+ pagination.onChange(page, pageSize1);
291
+ table.setPageIndex(page - 1);
292
+ table.setPageSize(pageSize1);
293
+ } else {
294
+ table.setPageIndex(page - 1);
295
+ table.setPageSize(pageSize1);
296
+ }
297
+ }
298
+ }))));
299
+ };
300
+ var _default = exports.default = TableContainer;