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
@@ -1,21 +0,0 @@
1
- import React from 'react';
2
- import 'dayjs/locale/es';
3
- import 'dayjs/locale/vi';
4
- import type { ColumnsTable, GetRowKey, GridTableProps } from "./type";
5
- type GridProps<T> = GridTableProps<T> & {
6
- triggerChangeColumns?: (columns: ColumnsTable<T>, type: string) => void;
7
- triggerChangeData?: (newData: T[], type: string) => void;
8
- triggerFilter?: (queries: any) => void;
9
- triggerGroupColumns?: (groupedColumns: string[]) => void;
10
- tableRef: any;
11
- bottomToolbar?: () => React.ReactElement;
12
- getRowKey: GetRowKey<T>;
13
- rowSelection?: any;
14
- groupToolbar?: () => React.ReactNode;
15
- isFilter?: boolean;
16
- setIsFilter?: React.Dispatch<React.SetStateAction<boolean>>;
17
- handleFullScreen?: any;
18
- isFullScreen?: boolean;
19
- };
20
- declare const TableGrid: <RecordType extends object>(props: GridProps<RecordType>) => React.JSX.Element;
21
- export default TableGrid;
@@ -1,493 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import React, { Fragment } from 'react';
3
- import { createStyles } from 'antd-style';
4
- import { numericFormatter } from "react-numeric-component";
5
- import { Empty, Table, Toolbar } from "rc-master-ui";
6
- // import Table from "../../core/table"
7
-
8
- import 'dayjs/locale/es';
9
- import 'dayjs/locale/vi';
10
- import ContextMenu from "./ContextMenu";
11
- import classNames from "classnames";
12
- import { checkDecimalSeparator, checkThousandSeparator,
13
- // filterDataByColumns2,
14
- // filterDataByColumns3,
15
- filterDataByColumns4, getFormat,
16
- // convertFlatColumn,
17
- isEmpty, sumByField
18
- // newGuid,
19
- // removeColumns,
20
- // sumDataByField
21
- // updateArrayByKey
22
- } from "./hooks";
23
- // import {ConfigProvider} from "antd";
24
- import { flatColumns } from "./hooks/columns";
25
- import Pagination from "rc-master-ui/es/pagination";
26
- import ComponentSpinner from "./LoadingSpinner";
27
- import { ColumnsChoose } from "./ColumnsChoose";
28
- import useMergedState from "rc-util/es/hooks/useMergedState";
29
- import AdvanceFilter from "./AdvanceFilter";
30
- import { Tooltip } from "react-tooltip";
31
- import { Maximize, Minimize } from 'becoxy-icons';
32
- const useStyle = createStyles(({
33
- css
34
- }) => {
35
- const antCls = 'ui-rc';
36
- return {
37
- customTable: css`
38
- ${antCls}-table {
39
- ${antCls}-table-container {
40
- ${antCls}-table-body,
41
- ${antCls}-table-content {
42
- scrollbar-width: thin;
43
- scrollbar-color: #eaeaea transparent;
44
- scrollbar-gutter: stable;
45
- }
46
- }
47
- }
48
- `
49
- };
50
- });
51
- // type OnChange = NonNullable<TableProps<any>['onChange']>;
52
-
53
- const EMPTY_LIST = [];
54
- const TableGrid = props => {
55
- const {
56
- id,
57
- columns,
58
- tableRef,
59
- dataSource,
60
- locale,
61
- expandable,
62
- rowHoverable,
63
- title,
64
- format,
65
- virtualRow = true,
66
- t,
67
- lang,
68
- contextMenuOpen,
69
- className,
70
- contextMenuItems: propContextMenuItems,
71
- contextMenuHidden,
72
- contextMenuClick,
73
- recordDoubleClick,
74
- toolbarItems,
75
- showColumnChoose,
76
- showAdvanceFilter,
77
- // onFilter,
78
- triggerFilter,
79
- selectionSettings,
80
- rowSelection,
81
- rowSelected,
82
- rowKey = 'id',
83
- pagination,
84
- scroll,
85
- onFilterClick,
86
- dataSourceFilter: propDataSourceFilter,
87
- loading,
88
- triggerChangeColumns,
89
- triggerGroupColumns,
90
- summary,
91
- showToolbar,
92
- // onSorter,
93
- bottomToolbar,
94
- groupSetting,
95
- groupAble,
96
- getRowKey,
97
- groupColumns,
98
- groupToolbar,
99
- showEmptyText,
100
- // setIsFilter,
101
- actionTemplate,
102
- handleFullScreen,
103
- fullScreen,
104
- isFullScreen,
105
- ...rest
106
- } = props;
107
- const {
108
- styles
109
- } = useStyle();
110
- const {
111
- mode,
112
- type,
113
- checkboxOnly,
114
- hideSelectAll,
115
- columnWidth,
116
- selectedRowKeys,
117
- defaultSelectedRowKeys
118
- } = selectionSettings || {};
119
- const clickRef = React.useRef(null);
120
- const menuRef = React.useRef(null);
121
- const viewportWidth = window.innerWidth;
122
- const viewportHeight = window.innerHeight;
123
- const [menuVisible, setMenuVisible] = React.useState(false);
124
- const [selectedRowData, setSelectedRowData] = React.useState(null);
125
- const [position, setPosition] = React.useState({
126
- x: 0,
127
- y: 0,
128
- viewportWidth,
129
- viewportHeight
130
- });
131
-
132
- // const [filterStates, setFilterState] = React.useState<any>(null)
133
-
134
- // const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>(defaultSelected);
135
-
136
- // ========================= Keys =========================
137
- const [mergedSelectedKeys, setMergedSelectedKeys] = useMergedState(selectedRowKeys || defaultSelectedRowKeys || EMPTY_LIST, {
138
- value: selectedRowKeys
139
- });
140
-
141
- // Reset if rowSelection reset
142
-
143
- React.useEffect(() => {
144
- if (!selectionSettings) {
145
- setMergedSelectedKeys(EMPTY_LIST);
146
- }
147
- }, [!!selectionSettings]);
148
- const contextMenuItems = React.useMemo(() => {
149
- if (typeof contextMenuHidden === "function" && propContextMenuItems && selectedRowData) {
150
- const hiddenItems = contextMenuHidden({
151
- rowInfo: {
152
- rowData: selectedRowData
153
- }
154
- });
155
- return propContextMenuItems.filter(item => !hiddenItems.includes(item?.key));
156
- }
157
- if (contextMenuHidden && typeof contextMenuHidden !== 'function' && propContextMenuItems) {
158
- return propContextMenuItems.filter(item => !contextMenuHidden.includes(item?.key));
159
- }
160
- return propContextMenuItems;
161
- }, [propContextMenuItems, contextMenuHidden, selectedRowData]);
162
- React.useLayoutEffect(() => {
163
- setMenuVisible(false);
164
- }, []);
165
- const onContextMenu = data => event => {
166
- event.preventDefault(); // Ngăn chặn menu mặc định của trình duyệt
167
-
168
- setSelectedRowData(data);
169
- contextMenuOpen?.({
170
- rowInfo: {
171
- rowData: data
172
- },
173
- event
174
- });
175
- setMenuVisible(true);
176
-
177
- // Đợi DOM cập nhật và lấy kích thước menu
178
- setTimeout(() => {
179
- const menuElement = menuRef.current; // Lấy menu từ DOM
180
- const menuWidth = menuElement?.offsetWidth || 200; // Mặc định 200px nếu chưa render
181
- const menuHeight = menuElement?.offsetHeight; // Mặc định 450px nếu chưa render
182
-
183
- // Điều chỉnh vị trí menu
184
- let x = event.clientX;
185
- let y = event.clientY;
186
- if (x + menuWidth > viewportWidth) {
187
- x = x - menuWidth - 10; // Cách cạnh phải 10px
188
- }
189
- if (y + menuHeight > viewportHeight) {
190
- if (y < menuHeight) {
191
- y = 10;
192
- } else {
193
- y = y - 10 - menuHeight; // Cách cạnh dưới 10px
194
- }
195
- }
196
- setPosition(prevState => ({
197
- ...prevState,
198
- x,
199
- y
200
- }));
201
- }, 100);
202
- if (!menuVisible) {
203
- document.addEventListener(`click`, function onClickOutside(e) {
204
- const element = e.target;
205
- const menuContainer = document.querySelector(".popup-context-menu");
206
- const isInsideContainer = element.closest(".popup-context-menu") && menuContainer;
207
- if (isInsideContainer) {
208
- return;
209
- }
210
- setMenuVisible(false);
211
- document.removeEventListener(`click`, onClickOutside);
212
- });
213
- }
214
- };
215
- const handleRowClick = () => () => {
216
- // const key = getRowKey(record, index);
217
-
218
- if (checkboxOnly !== true) {
219
- if (type === 'single') {}
220
- }
221
- };
222
- const handleRowDoubleClick = (record, index) => e => {
223
- if (clickRef.current) {
224
- clearTimeout(clickRef.current);
225
- clickRef.current = null;
226
- }
227
- recordDoubleClick?.({
228
- e,
229
- rowIndex: index,
230
- rowData: record
231
- });
232
- };
233
- const onSelectChange = (keys, selectedRows, info, selectedRow) => {
234
- if (info.type === 'all') {
235
- setMergedSelectedKeys(keys);
236
- rowSelected?.({
237
- selected: selectedRows,
238
- type: 'rowSelected',
239
- rowData: {}
240
- });
241
- } else {
242
- if (selectionSettings?.type === 'multiple') {
243
- setMergedSelectedKeys(keys);
244
- rowSelected?.({
245
- selected: selectedRows,
246
- type: 'rowSelected',
247
- rowData: selectedRow
248
- });
249
- } else {
250
- const keySet = new Set(keys);
251
-
252
- // @ts-ignore
253
- if (!keySet.has(selectedRow[rowKey])) {
254
- setMergedSelectedKeys([]);
255
- rowSelected?.({
256
- selected: [],
257
- type: 'rowSelected',
258
- rowData: selectedRow
259
- });
260
- } else {
261
- // @ts-ignore
262
- setMergedSelectedKeys([selectedRow[rowKey]]);
263
- rowSelected?.({
264
- // @ts-ignore
265
- selected: [selectedRow],
266
- type: 'rowSelected',
267
- rowData: selectedRow
268
- });
269
- }
270
- }
271
- }
272
- };
273
-
274
- // const handleChange = (sorter: any) => {
275
- // onSorter?.(sorter)
276
- // }
277
-
278
- // const handleOnFilter = (queries: any) => {
279
- //
280
- // if (onFilter) {
281
- // onFilter?.(convertFilters(queries))
282
- // } else {
283
- // setFilterState(convertFilters(queries))
284
- // if (queries && queries.length > 0) {
285
- // // setIsFilter?.(true)
286
- // } else {
287
- // // setIsFilter?.(false)
288
- // }
289
- // }
290
- //
291
- // }
292
-
293
- return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(ContextMenu, {
294
- open: menuVisible,
295
- pos: position,
296
- setOpen: setMenuVisible,
297
- menuRef: menuRef,
298
- contextMenuItems: contextMenuItems,
299
- contextMenuClick: contextMenuClick,
300
- rowData: selectedRowData
301
- }), /*#__PURE__*/React.createElement(Table, _extends({
302
- ref: tableRef
303
- }, rest, {
304
- tableLayout: 'fixed',
305
- locale: {
306
- ...locale,
307
- emptyText: showEmptyText !== false ? /*#__PURE__*/React.createElement(Empty, {
308
- image: Empty.PRESENTED_IMAGE_SIMPLE,
309
- description: locale?.emptyText
310
- }) : /*#__PURE__*/React.createElement(React.Fragment, null)
311
- },
312
- loading: {
313
- spinning: columns && columns.length === 0 || loading === true,
314
- indicator: /*#__PURE__*/React.createElement(ComponentSpinner, null)
315
- }
316
- // dataSource={columns && columns.length > 0 ? filterDataByColumns3(dataSource, filterStates) : []}
317
-
318
- // dataSource={columns && columns.length > 0 ? filterDataByColumns4(dataSource, filterStates) : []}
319
- ,
320
- dataSource: dataSource,
321
- className: classNames(className, {
322
- 'table-none-column-select': selectionSettings?.mode === undefined && selectionSettings?.type !== 'multiple'
323
- }, styles.customTable),
324
- bordered: true,
325
- virtual: virtualRow,
326
- columns: columns,
327
- rowKey: rowKey,
328
- rowHoverable: rowHoverable,
329
- size: "small",
330
- scroll: scroll ? scroll : {
331
- y: 500
332
- }
333
-
334
- // scroll={{ x: 'max-content', y: 700 }}
335
- ,
336
-
337
- onRow: (data, index) => {
338
- return {
339
- onDoubleClick: handleRowDoubleClick(data, index),
340
- onClick: handleRowClick(),
341
- onContextMenu: onContextMenu(data)
342
- };
343
- },
344
- rowSelection: columns && columns.length === 0 ? undefined : {
345
- ...selectionSettings,
346
- // type: selectionSettings?.mode,
347
- type: mode,
348
- columnWidth: columnWidth ?? 50,
349
- onChange: onSelectChange,
350
- // selectedRowKeys: mode === 'checkbox' && type === 'single' ? selectedRowKeys : undefined,
351
- selectedRowKeys: mergedSelectedKeys,
352
- // defaultSelectedRowKeys: selectionSettings?.defaultSelectedRowKeys,
353
- defaultSelectedRowKeys,
354
- preserveSelectedRowKeys: true,
355
- hideSelectAll: !type || type === 'single' || mode === 'radio' ? true : hideSelectAll ?? type !== 'multiple'
356
- }
357
-
358
- // onFilter={(val: any) => {
359
- // handleOnFilter(val)
360
- // // triggerFilter?.(convertFilters(val))
361
- // // onFilter?.(convertFilters(val))
362
- //
363
- // }}
364
-
365
- // onChange={(paging, filters, sorter) => handleChange(sorter)}
366
- ,
367
-
368
- title: showToolbar !== false || fullScreen !== false ? () => {
369
- return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("div", null, title?.(dataSource)), /*#__PURE__*/React.createElement("div", {
370
- style: {
371
- display: 'flex',
372
- justifyContent: 'space-between',
373
- alignItems: 'center',
374
- gap: '.75rem'
375
- }
376
- }, groupAble && groupToolbar?.(), toolbarItems && toolbarItems?.length > 0 && /*#__PURE__*/React.createElement("div", {
377
- style: {
378
- flex: 1,
379
- overflow: 'hidden'
380
- }
381
- }, /*#__PURE__*/React.createElement(Toolbar
382
- // @ts-ignore
383
- // style={{width: pagination && pagination.onChange && pagination?.position && pagination?.position[0] === 'topRight' ? `calc(100% - 650px - ${groupAble ? 50 : 0}px` : `calc(100% - 25px - ${groupAble ? 50 : 0}px`}}
384
- , {
385
- items: (toolbarItems ?? []).filter(it => it.position !== 'Bottom'),
386
- mode: 'scroll'
387
- })), /*#__PURE__*/React.createElement("div", {
388
- style: {
389
- display: 'flex',
390
- justifyContent: 'space-between',
391
- alignItems: 'center',
392
- gap: '.75rem'
393
- }
394
- }, pagination && pagination.onChange && pagination?.position && pagination?.position[0] === 'topRight' && /*#__PURE__*/React.createElement(Pagination, _extends({
395
- showSizeChanger: true,
396
- responsive: true,
397
- size: 'small',
398
- rootClassName: 'top-pagination'
399
- // @ts-ignore
400
- ,
401
- showTotal: (total, range) => `${range[0]}-${range[1]} / ${total} ${t ? t(pagination?.locale?.items ?? 'items') : 'items'}`
402
- }, pagination)), typeof actionTemplate === 'function' ? actionTemplate() : actionTemplate, fullScreen !== false && (isFullScreen ? /*#__PURE__*/React.createElement(Minimize, {
403
- fontSize: 16,
404
- onClick: () => handleFullScreen?.(),
405
- "data-tooltip-id": "tooltip-icon",
406
- "data-tooltip-content": t ? t('Minimized') : 'Minimized'
407
- }) : /*#__PURE__*/React.createElement(Maximize, {
408
- fontSize: 16,
409
- onClick: () => handleFullScreen?.(),
410
- "data-tooltip-id": "tooltip-icon",
411
- "data-tooltip-content": t ? t('Full screen') : 'Full screen'
412
- })), showColumnChoose && /*#__PURE__*/React.createElement(ColumnsChoose, {
413
- columns: columns,
414
- t: t,
415
- columnsGroup: groupColumns,
416
- triggerChangeColumns: triggerChangeColumns
417
- }), showAdvanceFilter && /*#__PURE__*/React.createElement(AdvanceFilter, {
418
- columns: columns,
419
- t: t
420
- // columnsGroup={groupColumns}
421
- // triggerChangeColumns={triggerChangeColumns}
422
- }))));
423
- } : undefined,
424
- expandable: {
425
- ...expandable
426
- },
427
- summary: () => {
428
- if (typeof summary === 'function') {
429
- return summary(dataSource);
430
- }
431
- if (!summary) {
432
- return undefined;
433
- }
434
- return /*#__PURE__*/React.createElement(Table.Summary, {
435
- fixed: true
436
- }, /*#__PURE__*/React.createElement(Table.Summary.Row, null, flatColumns(!!mode ? [Table.SELECTION_COLUMN, ...columns] : [...columns]).filter(col => col.hidden !== true).map((col, index) => {
437
- // const cellFormat: IFormat | undefined = col.format ? typeof col.format === 'function' ? col.format({}) : col.format : format
438
-
439
- const colFormat = typeof col.format === 'function' ? col.format({}) : col.format;
440
- const cellFormat = getFormat(colFormat, format);
441
- const thousandSeparator = cellFormat?.thousandSeparator;
442
- const decimalSeparator = cellFormat?.decimalSeparator;
443
-
444
- // const dec = (col.format?.decimalScale || col.format?.decimalScale === 0) ? col.format?.decimalScale : format?.decimalScale
445
- const dec = cellFormat?.decimalScale;
446
-
447
- // const sumValue = col.type === 'number' ? sumDataByField(filterDataByColumns4(dataSource, filterStates) as any[], col?.key as string) : 0
448
- const sumValue = col.type === 'number' ? sumByField(filterDataByColumns4(dataSource, [], []), col?.field) : 0;
449
- const value = !isEmpty(sumValue) ? dec || dec === 0 ? parseFloat(Number(sumValue).toFixed(dec)).toString() : sumValue.toString() : '0';
450
- const cellValue = col.type === 'number' && col.isSummary !== false ? value : '';
451
- const numberValue = Number(value);
452
- const numericFormatProps = {
453
- thousandSeparator: checkThousandSeparator(thousandSeparator, decimalSeparator),
454
- decimalSeparator: checkDecimalSeparator(thousandSeparator, decimalSeparator),
455
- allowNegative: cellFormat?.allowNegative ?? false,
456
- prefix: cellFormat?.prefix,
457
- suffix: cellFormat?.suffix,
458
- decimalScale: dec,
459
- fixedDecimalScale: cellFormat?.fixedDecimalScale ?? false
460
- };
461
- return /*#__PURE__*/React.createElement(Table.Summary.Cell, {
462
- key: col.key,
463
- index: index,
464
- align: col.align ?? 'right',
465
- className: 'ui-rc-table-cell-ellipsis'
466
- }, col.summaryTemplate ? col.summaryTemplate(numberValue, col.key) : numericFormatter(cellValue, numericFormatProps));
467
- })));
468
- },
469
- pagination: !pagination || pagination && pagination?.onChange ? false : {
470
- showTotal: (total, range) => `${range[0]}-${range[1]} / ${total} items`,
471
- ...pagination
472
- }
473
- })), /*#__PURE__*/React.createElement("div", null), pagination && pagination.onChange && !pagination.position && /*#__PURE__*/React.createElement(Pagination
474
- // style={{padding: '0.75rem 1rem'}}
475
- , _extends({
476
- rootClassName: 'pagination-template',
477
- showSizeChanger: true,
478
- responsive: true,
479
- size: 'small'
480
- // @ts-ignore
481
- ,
482
- showTotal: (total, range) => `${range[0]}-${range[1]} / ${total} ${t ? t(pagination?.locale?.items ?? 'items') : 'items'}`
483
- }, pagination)), bottomToolbar?.(), /*#__PURE__*/React.createElement(Tooltip, {
484
- id: `${id}-tooltip-header`,
485
- style: {
486
- zIndex: 1999,
487
- maxWidth: 350
488
- }
489
- }), /*#__PURE__*/React.createElement(Tooltip, {
490
- id: "tooltip-icon"
491
- }));
492
- };
493
- export default TableGrid;
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import type { BaseOptionType, DefaultOptionType } from "rc-select/lib/Select";
3
- import type { SelectProps } from "rc-master-ui/es/select";
4
- import type { LoadOptionsArgs } from "../type";
5
- export interface DebounceSelectProps<OptionType extends BaseOptionType = DefaultOptionType> extends SelectProps {
6
- loadOptions?: (search: string, callback: (newOptions: OptionType[]) => void, args?: LoadOptionsArgs) => void;
7
- debounceTimeout?: number;
8
- defaultOptions?: OptionType[];
9
- rowData?: any;
10
- }
11
- export declare function AsyncSelect<OptionType extends BaseOptionType>({ loadOptions, debounceTimeout, defaultOptions, rowData, ...props }: DebounceSelectProps<OptionType>): React.JSX.Element;
@@ -1,38 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import React, { useEffect, useMemo, useState } from 'react';
3
- import debounce from 'lodash/debounce';
4
- import { Select } from "rc-master-ui";
5
- export function AsyncSelect({
6
- loadOptions,
7
- debounceTimeout = 500,
8
- defaultOptions,
9
- rowData,
10
- ...props
11
- }) {
12
- const [options, setOptions] = useState(defaultOptions ?? []);
13
- const debounceFetcher = useMemo(() => {
14
- const fetchOptions = value => {
15
- if (value.trim().length === 0) {
16
- setOptions(defaultOptions ?? []);
17
- return;
18
- }
19
- if (loadOptions) {
20
- loadOptions(value, newOptions => {
21
- setOptions(newOptions);
22
- }, {
23
- rowData
24
- });
25
- }
26
- };
27
- return debounce(fetchOptions, debounceTimeout);
28
- }, [loadOptions, debounceTimeout]);
29
- useEffect(() => {
30
- setOptions(defaultOptions ?? []);
31
- }, [defaultOptions]);
32
- return /*#__PURE__*/React.createElement(Select, _extends({}, props, {
33
- filterOption: loadOptions ? false : props?.filterOption,
34
- onSearch: debounceFetcher,
35
- onSelect: () => setOptions(defaultOptions ?? []),
36
- options: options
37
- }));
38
- }
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import type { BaseOptionType, DefaultOptionType } from "rc-select/lib/Select";
3
- import type { TableSelectProps } from "rc-master-ui/es/table-select";
4
- import type { LoadOptionsArgs } from "../type";
5
- export interface DebounceSelectProps<OptionType extends BaseOptionType = DefaultOptionType> extends TableSelectProps {
6
- loadOptions?: (search: string, callback: (newOptions: OptionType[]) => void, args?: LoadOptionsArgs) => void;
7
- debounceTimeout?: number;
8
- defaultOptions?: OptionType[];
9
- rowData?: any;
10
- }
11
- export declare function AsyncTableSelect<OptionType extends BaseOptionType>({ loadOptions, debounceTimeout, defaultOptions, columns, rowData, ...props }: DebounceSelectProps<OptionType>): React.JSX.Element;
@@ -1,40 +0,0 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import React, { useEffect, useMemo, useState } from 'react';
3
- import debounce from 'lodash/debounce';
4
- import { TableSelect } from "rc-master-ui";
5
- export function AsyncTableSelect({
6
- loadOptions,
7
- debounceTimeout = 500,
8
- defaultOptions,
9
- columns,
10
- rowData,
11
- ...props
12
- }) {
13
- const [options, setOptions] = useState(defaultOptions ?? []);
14
- const debounceFetcher = useMemo(() => {
15
- const fetchOptions = value => {
16
- if (value.trim().length === 0) {
17
- setOptions(defaultOptions ?? []);
18
- return;
19
- }
20
- if (loadOptions) {
21
- loadOptions(value, newOptions => {
22
- setOptions(newOptions);
23
- }, {
24
- rowData
25
- });
26
- }
27
- };
28
- return debounce(fetchOptions, debounceTimeout);
29
- }, [debounceTimeout, loadOptions, defaultOptions, rowData]);
30
- useEffect(() => {
31
- setOptions(defaultOptions ?? []);
32
- }, [defaultOptions]);
33
- return /*#__PURE__*/React.createElement(TableSelect, _extends({}, props, {
34
- filterOption: loadOptions ? false : props?.filterOption,
35
- onSearch: debounceFetcher,
36
- onSelect: () => setOptions(defaultOptions ?? []),
37
- options: options,
38
- columns: columns
39
- }));
40
- }
@@ -1,13 +0,0 @@
1
- import React from "react";
2
- type OptionType = {
3
- value: any;
4
- label: string;
5
- [key: string]: any;
6
- };
7
- type Props<T> = {
8
- options: T[];
9
- value: any[];
10
- onChange?: (value: any[]) => void;
11
- };
12
- declare const CheckboxControl: <T extends OptionType>(props: Props<T>) => React.JSX.Element;
13
- export default CheckboxControl;
@@ -1,40 +0,0 @@
1
- import React, { useMemo } from "react";
2
- import { Checkbox } from "rc-master-ui";
3
- const CheckboxControl = props => {
4
- const {
5
- options,
6
- value,
7
- onChange
8
- } = props;
9
- const selected = useMemo(() => {
10
- return value ? value : [];
11
- }, [value]);
12
- const list = useMemo(() => {
13
- return options ? options : [];
14
- }, [options]);
15
- const onChangeValue = val => {
16
- const findIndex = selected.findIndex(it => it === val);
17
- if (findIndex > -1) {
18
- const newVal = selected.filter(it => it !== val);
19
- onChange?.(newVal);
20
- } else {
21
- const newVal = [...selected, val];
22
- onChange?.(newVal);
23
- }
24
- };
25
- return /*#__PURE__*/React.createElement("div", {
26
- className: "d-flex flex-column gap-50",
27
- style: {}
28
- }, list.map((it, index) => {
29
- return /*#__PURE__*/React.createElement("div", {
30
- key: index,
31
- className: "d-flex align-items-center"
32
- }, /*#__PURE__*/React.createElement(Checkbox, {
33
- checked: selected.includes(it.value),
34
- type: "checkbox",
35
- className: "cursor-pointer me-50",
36
- onChange: () => onChangeValue(it.value)
37
- }), /*#__PURE__*/React.createElement("span", null, it.label));
38
- }));
39
- };
40
- export default CheckboxControl;
@@ -1,10 +0,0 @@
1
- import type { ColumnTable, IFormat } from "../../type";
2
- import React from "react";
3
- import type { TableLocale } from "rc-master-ui/lib/table/interface";
4
- import type { ColumnsTable } from "../../type";
5
- export declare function flatColumns<RecordType>(columns: ColumnsTable<RecordType>, parentKey?: string): ColumnsTable<RecordType>;
6
- export declare const flatColumns2: <RecordType>(columns: ColumnsTable<RecordType>) => ColumnsTable<RecordType>;
7
- export declare const getValueCell: <T>(column: ColumnTable<T>, value: any, record: T, rowIndex: number, colIndex: number, format?: IFormat) => any;
8
- export declare const renderValueCell: <T>(column: ColumnTable<T>, value: any, record: T, rowIndex: number, colIndex: number, format?: IFormat, editAble?: boolean) => any;
9
- export declare const renderContent: <T>(column: ColumnTable<T>, value: any, record: any, index: number, colIndex: number, editAble?: boolean, format?: IFormat, onClick?: any) => React.JSX.Element;
10
- export declare const renderFilter: <RecordType>(column: ColumnTable<RecordType>, selectedKeys: string[], setSelectedKeys: any, confirm: any, visible: boolean, searchValue: string, setSearchValue: any, dataSourceFilter: any[], buddhistLocale: any, locale?: TableLocale, t?: any, format?: IFormat, dateRangeLocale?: any) => React.JSX.Element;