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,1178 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = exports.SELECTION_COLUMN = void 0;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
- var _react = _interopRequireWildcard(require("react"));
10
- require("react-resizable/css/styles.css");
11
- var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
12
- var _hooks = require("./hooks");
13
- var _server = _interopRequireDefault(require("react-dom/server"));
14
- var _dayjs = _interopRequireDefault(require("dayjs"));
15
- require("dayjs/locale/es");
16
- require("dayjs/locale/vi");
17
- var _en_US = _interopRequireDefault(require("rc-master-ui/es/date-picker/locale/en_US"));
18
- var _vi_VN = _interopRequireDefault(require("rc-master-ui/es/date-picker/locale/vi_VN"));
19
- var _en_US2 = _interopRequireDefault(require("rc-master-ui/es/locales/en_US"));
20
- var _vi_VN2 = _interopRequireDefault(require("rc-master-ui/es/locales/vi_VN"));
21
- require("./styles.scss");
22
- var _columns = require("./hooks/columns");
23
- var _Group = _interopRequireDefault(require("./table/Group"));
24
- var _sweetalert = _interopRequireDefault(require("sweetalert2"));
25
- var _sweetalert2ReactContent = _interopRequireDefault(require("sweetalert2-react-content"));
26
- var _reactTooltip = require("react-tooltip");
27
- var _classnames = _interopRequireDefault(require("classnames"));
28
- var _HeaderContent = _interopRequireDefault(require("./hooks/content/HeaderContent"));
29
- var _becoxyIcons = require("becoxy-icons");
30
- var _rcMasterUi = require("rc-master-ui");
31
- var _antd = require("antd");
32
- var _icons = require("@ant-design/icons");
33
- var _modifiers = require("@dnd-kit/modifiers");
34
- var _core = require("@dnd-kit/core");
35
- var _sortable = require("@dnd-kit/sortable");
36
- var _reactResizable = require("react-resizable");
37
- var _faker = require("@faker-js/faker");
38
- var _useMergedState = _interopRequireDefault(require("rc-util/lib/hooks/useMergedState"));
39
- var _reactNumericComponent = require("react-numeric-component");
40
- 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); }
41
- 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; }
42
- // import GridEdit from "./table/GridEdit"
43
- // import InfiniteTable from "./table/InfiniteTable";
44
-
45
- // import Grid from "./table/Grid"
46
-
47
- // import useColumns from "./hooks/useColumns";
48
-
49
- // import 'rc-master-ui/es/date-range-picker/styles/index.less'
50
- // import 'rc-master-ui/assets/index.css'
51
-
52
- // import {CSS} from "@dnd-kit/utilities";
53
-
54
- // import Modal from 'antd/es/modal/Modal'
55
-
56
- _dayjs.default.extend(_customParseFormat.default);
57
- const MySwal = (0, _sweetalert2ReactContent.default)(_sweetalert.default);
58
- const ASCEND = 'ascend';
59
- const DESCEND = 'descend';
60
- const SELECTION_COLUMN = exports.SELECTION_COLUMN = {};
61
- const dragActiveStyle = (dragState, id) => {
62
- const {
63
- active,
64
- over,
65
- direction
66
- } = dragState;
67
- // drag active style
68
- let style = {};
69
- if (active && active === id) {
70
- style = {
71
- backgroundColor: '#c0c0c0',
72
- opacity: 0.3
73
- };
74
- } else if (over && id === over && active !== over) {
75
- style = direction === 'right' ? {
76
- borderRight: '1px dashed gray'
77
- } : {
78
- borderLeft: '1px dashed gray'
79
- };
80
- }
81
- return style;
82
- };
83
- const DragIndexContext = /*#__PURE__*/(0, _react.createContext)({
84
- active: -1,
85
- over: -1
86
- });
87
- const ResizableTitle = props => {
88
- const {
89
- onResize,
90
- width,
91
- ...restProps
92
- } = props;
93
- const dragState = (0, _react.useContext)(DragIndexContext);
94
- const style = {
95
- ...props.style,
96
- borderBottom: '1px solid #e0e0e0',
97
- // cursor: 'move',
98
- // ...(isDragging ? { position: 'relative', zIndex: 9999, userSelect: 'none' } : {}),
99
- ...dragActiveStyle(dragState, props.id)
100
- };
101
- if (!width) {
102
- return /*#__PURE__*/_react.default.createElement("th", restProps);
103
- }
104
- return (
105
- /*#__PURE__*/
106
- // @ts-ignore
107
- _react.default.createElement(_reactResizable.Resizable, {
108
- width: width,
109
- height: 0,
110
- handle: /*#__PURE__*/_react.default.createElement("span", {
111
- className: "rc-resizable-handle",
112
- onClick: e => {
113
- e.stopPropagation();
114
- }
115
- }),
116
- onResize: onResize,
117
- draggableOpts: {
118
- enableUserSelectHack: false
119
- }
120
- }, /*#__PURE__*/_react.default.createElement("th", (0, _extends2.default)({}, restProps, {
121
- style: style
122
- })))
123
- );
124
- };
125
-
126
- // const TableBodyCell = (props: any) => {
127
- // const dragState = useContext<DragIndexState>(DragIndexContext)
128
- // return <div {...props} style={{ ...props.style, ...dragActiveStyle(dragState, props.id) }} />
129
- // }
130
-
131
- const SortableHeaderCell = ({
132
- children,
133
- columnKey
134
- }) => {
135
- const {
136
- attributes,
137
- listeners,
138
- setNodeRef,
139
- isDragging
140
- } = (0, _sortable.useSortable)({
141
- id: columnKey
142
- });
143
- const style = {
144
- // ...props.style,
145
- cursor: 'move',
146
- ...(isDragging ? {
147
- position: 'relative',
148
- zIndex: 9999,
149
- userSelect: 'none'
150
- } : {})
151
- // ...dragActiveStyle(dragState, props.id),
152
- };
153
- return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({
154
- ref: setNodeRef,
155
- style: style
156
- }, attributes, listeners), children);
157
- };
158
- const InternalTable = props => {
159
- const {
160
- t,
161
- id: tableId,
162
- // columns,
163
- columns: propsColumns,
164
- lang,
165
- locale,
166
- dataSource,
167
- dataSourceFilter: propDataSourceFilter,
168
- // onFilterClick,
169
- // onFilter,
170
- editAble,
171
- // rowKey: propRowKey,
172
- format,
173
- onDataChange,
174
- sortMultiple,
175
- // expandable,
176
- // @ts-ignore
177
- onCellPaste,
178
- clickHeaderToSort = true,
179
- // components,
180
- onChooseColumns,
181
- groupAble,
182
- groupSetting,
183
- groupColumns,
184
- commandClick,
185
- commandSettings,
186
- pagination,
187
- height: propsHeight,
188
- summary,
189
- // infiniteScroll,
190
- wrapSettings,
191
- onFilter,
192
- onSorter,
193
- // defaultSorter,
194
- toolbarItems,
195
- allowSortering,
196
- allowFiltering,
197
- ...rest
198
- } = props;
199
- const theadRef = _react.default.useRef(null);
200
- const id = _react.default.useMemo(() => {
201
- return tableId ?? _faker.faker.string.alpha(20);
202
- // return tableId ?? newGuid()
203
- }, [tableId]);
204
-
205
- // const rowKey = React.useMemo(() => {
206
- // return propRowKey ?? 'rowId'
207
- // }, [propRowKey])
208
-
209
- const rowKey = 'rowId';
210
- const getWindowSize = () => {
211
- const {
212
- innerWidth,
213
- innerHeight
214
- } = window;
215
- return {
216
- innerWidth,
217
- innerHeight
218
- };
219
- };
220
- const [windowSize, setWindowSize] = (0, _react.useState)(getWindowSize());
221
- _react.default.useEffect(() => {
222
- const handleWindowResize = () => {
223
- setWindowSize(getWindowSize());
224
- };
225
- window.addEventListener("resize", handleWindowResize);
226
- return () => {
227
- window.removeEventListener("resize", handleWindowResize);
228
- };
229
- }, []);
230
- const [scrollHeight, setHeight] = (0, _react.useState)(0);
231
- const [scrollHeight1, setHeight1] = (0, _react.useState)(0);
232
-
233
- // const [isModalOpen, setIsModalOpen] = useState(false)
234
-
235
- const local = lang && lang === 'en' ? _en_US.default : _vi_VN.default;
236
- const dateRangeLocale = lang && lang === 'en' ? _en_US2.default : _vi_VN2.default;
237
- const buddhistLocale = {
238
- ...local,
239
- lang: {
240
- ...local.lang
241
- }
242
- };
243
-
244
- // const [filterStates, setFilterState] = React.useState<any>(null)
245
- // const [isFilter, setIsFilter] = React.useState<boolean>(false);
246
- // const [cellTooltip, seCellTooltip] = React.useState<any>(undefined);
247
-
248
- const [dragIndex, setDragIndex] = (0, _react.useState)({
249
- active: -1,
250
- over: -1
251
- });
252
- // const [tooltipContent, setTooltipContent] = useState<any>('')
253
-
254
- const [filterStates, setFilterState] = _react.default.useState(null);
255
- const [isFullScreen, setIsFullScreen] = _react.default.useState(false);
256
- const [isOpenTooltip, setIsOpenTooltip] = _react.default.useState(false);
257
- const mergedData = _react.default.useMemo(() => {
258
- if (groupSetting && groupSetting.client !== false) {
259
- return (0, _hooks.groupArrayByColumns)(dataSource, groupColumns);
260
- }
261
- return (0, _hooks.addRowIdArray)(dataSource);
262
- }, [dataSource, groupColumns, groupSetting?.client]);
263
-
264
- // ========================= Keys =========================
265
- const [mergedFilterKeys, setMergedFilterKeys] = (0, _useMergedState.default)((0, _hooks.getAllRowKey)(mergedData), {
266
- value: undefined
267
- });
268
- const [columns, setColumns] = _react.default.useState([]);
269
- _react.default.useEffect(() => {
270
- const totalHeight = propsHeight;
271
- if (totalHeight) {
272
- const table = document.querySelector(`#${id}`);
273
- const title = table?.querySelector(`.ui-rc-table-title`);
274
- const tableScrollRight = table?.querySelector(`.ui-rc-table-ping-right`);
275
- const paginationE = table?.querySelector(`.ui-rc-pagination`);
276
- const toolbar = table?.querySelector(`.ui-rc-toolbar-bottom`);
277
- const summaryE = table?.querySelector(`.ui-rc-table-summary`);
278
- const hhh = (totalHeight ?? 0) - (title ? title.offsetHeight : 0) - (theadRef ? theadRef.current.clientHeight : 0) - (paginationE ? paginationE.offsetHeight : 0) - (toolbar ? toolbar.offsetHeight : 0) - (summaryE ? 40 : 0) - (tableScrollRight ? 10 : 0);
279
- setHeight(hhh > 0 ? hhh : 0);
280
- }
281
- }, [id, propsHeight, summary, theadRef, columns]);
282
- _react.default.useEffect(() => {
283
- // const totalHeight = isFullScreen ? windowSize.innerHeight - 50 : propsHeight
284
- const totalHeight = windowSize.innerHeight - 60;
285
- if (totalHeight && isFullScreen) {
286
- const table = document.querySelector(`#${id}`);
287
- const title = table?.querySelector(`.ui-rc-table-title`);
288
- const header = table?.querySelector(`.ui-rc-table-header`);
289
- const paginationE = table?.querySelector(`.ui-rc-pagination`);
290
- const toolbar = table?.querySelector(`.ui-rc-toolbar-bottom`);
291
- const summaryE = table?.querySelector(`.ui-rc-table-summary`);
292
- const scrollbar = table?.querySelector(`.ui-rc-table-tbody-virtual-scrollbar.ui-rc-table-tbody-virtual-scrollbar-horizontal`);
293
- const hhh = (totalHeight ?? 0) - (title ? title.offsetHeight : 0) - (header ? header.offsetHeight : 0) - (paginationE ? paginationE.offsetHeight : 0) - (toolbar ? toolbar.offsetHeight : 0) - (summaryE ? summaryE.offsetHeight : 0) - (scrollbar ? scrollbar.offsetHeight : 0);
294
- setHeight1(hhh > 0 ? hhh : 0);
295
- }
296
- }, [id, isFullScreen, windowSize.innerHeight, toolbarItems]);
297
- const tableRef = _react.default.useRef(null);
298
- _react.default.useEffect(() => {
299
- setColumns(propsColumns);
300
- }, [propsColumns]);
301
- const handleOnFilter = queries => {
302
- if (onFilter) {
303
- onFilter?.((0, _hooks.convertFilters)(queries));
304
- } else {
305
- setFilterState((0, _hooks.convertFilters)(queries));
306
- const b = (0, _hooks.filterDataByColumns4)(mergedData, (0, _hooks.convertFilters)(queries), []);
307
- setMergedFilterKeys((0, _hooks.getAllRowKey)(b));
308
- if (queries && queries.length > 0) {
309
- // setIsFilter?.(true)
310
- } else {
311
- // setIsFilter?.(false)
312
- }
313
- }
314
- };
315
- const handleResize = column => (e, {
316
- size
317
- }) => {
318
- const newColumn = {
319
- ...column,
320
- width: size.width
321
- };
322
- const newColumns = (0, _hooks.updateArrayByKey)(columns, newColumn, 'field');
323
- setColumns(newColumns);
324
- };
325
-
326
- // ============================ RowKey ============================
327
- const getRowKey = _react.default.useMemo(() => {
328
- if (typeof rowKey === 'function') {
329
- return rowKey;
330
- }
331
- // @ts-ignore
332
- return record => record?.[rowKey];
333
- }, [rowKey]);
334
- const firstNonGroupColumn = (0, _columns.flatColumns2)(columns).find(col => col.field && col.field !== '#' && !groupColumns?.includes(col.field) && col.hidden !== true);
335
- const nonGroupColumns = (0, _columns.flatColumns2)(columns).filter(col => col.field && col.field !== '#' && !groupColumns?.includes(col.field) && col.hidden !== true);
336
- const getColumnSearchProps = (0, _react.useCallback)(column => ({
337
- filterDropdown: ({
338
- setSelectedKeys,
339
- selectedKeys,
340
- confirm,
341
- setOperatorKey,
342
- operatorKey,
343
- visible,
344
- searchValue,
345
- setSearchValue
346
- }) => {
347
- const type = (0, _hooks.getTypeFilter)(column);
348
- // const operatorOptions = type === ('Checkbox' || 'Dropdown' || 'DropTree' || 'CheckboxDropdown') ? booleanOperator : (!type || type === 'Text' ? stringOperator : numberOperator)
349
-
350
- const operatorOptions = ['Checkbox', 'Dropdown', 'DropTree', 'CheckboxDropdown'].includes(type) ? _hooks.booleanOperator : !type || type === 'Text' ? _hooks.stringOperator : _hooks.numberOperator;
351
- return /*#__PURE__*/_react.default.createElement("div", {
352
- style: {
353
- padding: 8,
354
- minWidth: 275
355
- },
356
- onKeyDown: e => e.stopPropagation()
357
- }, column?.showOperator !== false && column?.typeFilter !== 'DateRange' && column?.typeFilter !== 'NumberRange' && /*#__PURE__*/_react.default.createElement("div", {
358
- className: 'mb-1'
359
- }, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Select, {
360
- options: (0, _hooks.translateOption)(operatorOptions, t),
361
- style: {
362
- width: '100%',
363
- marginBottom: 8
364
- },
365
- value: operatorKey,
366
- onChange: val => {
367
- setOperatorKey(val);
368
- }
369
- })), /*#__PURE__*/_react.default.createElement("div", {
370
- style: {
371
- marginBottom: 8
372
- }
373
- }, (0, _columns.renderFilter)(column, selectedKeys, setSelectedKeys, confirm, visible, searchValue, setSearchValue, propDataSourceFilter ?? [], buddhistLocale, locale, t, format, dateRangeLocale)), /*#__PURE__*/_react.default.createElement(_antd.Space, {
374
- style: {
375
- justifyContent: 'end',
376
- width: '100%'
377
- }
378
- }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
379
- type: "primary",
380
- onClick: () => {
381
- // confirm({closeDropdown: false})
382
- const typeFilter = (0, _hooks.getTypeFilter)(column);
383
- if ((!typeFilter || typeFilter === 'Text') && (0, _hooks.isNullOrUndefined)(selectedKeys[0])) {
384
- setSelectedKeys(['']);
385
- }
386
- confirm();
387
- // handleSearch(selectedKeys as string[], confirm)
388
- },
389
- icon: /*#__PURE__*/_react.default.createElement(_icons.SearchOutlined, null),
390
- size: "small",
391
- style: {
392
- width: 90
393
- }
394
- }, t ? t('Filter') : 'Filter'), /*#__PURE__*/_react.default.createElement(_antd.Button, {
395
- type: "link",
396
- size: "small",
397
- onClick: () => {
398
- // setSearchValue('')
399
- setSelectedKeys([]);
400
- confirm();
401
- // handleSearch()
402
- // close()
403
- }
404
- }, t ? t("Clear") : 'Clear')));
405
- },
406
- filterIcon: filtered => /*#__PURE__*/_react.default.createElement(_becoxyIcons.FilterFill, {
407
- fontSize: 12
408
- // onClick={() => {
409
- // onFilterClick?.(column, onFilterCallback)
410
- // }}
411
- ,
412
- style: {
413
- color: filtered ? '#E3165B' : '#283046'
414
- }
415
- }),
416
- filterDropdownProps: {
417
- onOpenChange(open) {
418
- if (open) {
419
- // setTimeout(() => searchInput.current?.select(), 100)
420
- }
421
- }
422
- }
423
- }), [t, propDataSourceFilter, buddhistLocale, locale, format, dateRangeLocale]);
424
- const convertColumns = _react.default.useMemo(() => {
425
- return (0, _columns.flatColumns2)(columns).map((column, colIndex) => {
426
- if (column === SELECTION_COLUMN) {
427
- return SELECTION_COLUMN;
428
- }
429
- const transformedColumn = {
430
- ...column,
431
- dataIndex: column.field ?? column.dataIndex,
432
- key: column.field ?? column.key,
433
- // title: () => (<HeaderContent column={{...column} as any} t={t}/>),
434
- title:
435
- /*#__PURE__*/
436
- // <SortableHeaderCell columnKey={column.field}>
437
- _react.default.createElement(_HeaderContent.default, {
438
- column: {
439
- ...column
440
- },
441
- t: t,
442
- id: id,
443
- wrapSettings: wrapSettings
444
- })
445
- // </SortableHeaderCell>
446
- ,
447
- // ellipsis: editAble || column.ellipsis !== false && wrapSettings && wrapSettings.wrapMode !== 'Content' && wrapSettings.wrapMode !== 'Both',
448
- // ellipsis: column.ellipsis !== false || (wrapSettings && wrapSettings.wrapMode !== 'Content' && wrapSettings.wrapMode !== 'Both'),
449
- ellipsis: false,
450
- align: column.textAlign ?? column.align,
451
- fixed: column.fixedType ?? column.fixed,
452
- isSummary: column.isSummary ?? column.haveSum,
453
- hidden: column.hidden ?? column.visible === false
454
- };
455
- const headerTooltip = t ? t?.(column.headerTooltip ?? column.columnGroupText ?? column.headerText) : column.headerTooltip ?? column.columnGroupText ?? column.headerText;
456
- if (transformedColumn.field === '#') {
457
- return {
458
- ...transformedColumn,
459
- title: () => /*#__PURE__*/_react.default.createElement(_HeaderContent.default, {
460
- column: {
461
- ...column
462
- },
463
- t: t,
464
- id: id,
465
- wrapSettings: wrapSettings
466
- }),
467
- onCell: data => ({
468
- // className: 'cell-number',
469
- className: (0, _classnames.default)('cell-number', {
470
- 'cell-group': groupColumns && data.children
471
- })
472
- }),
473
- render: (val, record) => {
474
- const tmpData = (0, _hooks.filterDataByColumns4)(mergedData, filterStates, mergedFilterKeys);
475
- if (pagination && pagination.onChange && pagination.currentPage && pagination.pageSize) {
476
- return (0, _hooks.findItemPath)(tmpData, record, rowKey, pagination.currentPage, pagination.pageSize);
477
- }
478
- return (0, _hooks.findItemPath)(tmpData, record, rowKey);
479
- }
480
- };
481
- }
482
- if (transformedColumn.field === 'command') {
483
- return {
484
- ...transformedColumn,
485
- title: () => /*#__PURE__*/_react.default.createElement(_HeaderContent.default, {
486
- column: {
487
- ...column
488
- },
489
- t: t,
490
- id: id,
491
- wrapSettings: wrapSettings
492
- }),
493
- onCell: data => ({
494
- // className: 'cell-number',
495
- className: (0, _classnames.default)('', {
496
- 'cell-group': groupColumns && data.children
497
- }),
498
- style: {
499
- padding: '2px 8px'
500
- }
501
- })
502
- };
503
- }
504
- return {
505
- ...transformedColumn,
506
- ...(transformedColumn.allowFiltering === false || allowFiltering === false ? {} : {
507
- ...getColumnSearchProps(column)
508
- }),
509
- sorter: column.sorter === false || allowSortering === false ? undefined : {
510
- // @ts-ignore
511
- compare: (a, b) => onSorter ? a : a[column.field] - b[column.field],
512
- multiple: sortMultiple ? colIndex : undefined
513
- },
514
- // @ts-ignore
515
- // sorter: (a, b) => a[column.field] - b[column.field],
516
-
517
- sortIcon: args => {
518
- const {
519
- sortOrder
520
- } = args;
521
- return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, !sortOrder && /*#__PURE__*/_react.default.createElement(_becoxyIcons.SortCancel, {
522
- fontSize: 15,
523
- style: {
524
- display: 'flex',
525
- opacity: 0,
526
- marginLeft: 4
527
- },
528
- className: (0, _classnames.default)(`ui-rc-table-column-sorter-up`, {
529
- active: true
530
- })
531
- }), sortOrder === ASCEND && /*#__PURE__*/_react.default.createElement("span", {
532
- className: (0, _classnames.default)(`ui-rc-table-column-sorter-up`, {
533
- active: sortOrder === ASCEND
534
- }),
535
- style: {
536
- display: 'flex',
537
- marginLeft: 4
538
- }
539
- }, /*#__PURE__*/_react.default.createElement(_becoxyIcons.ArrowUp, {
540
- fontSize: 15,
541
- color: '#000'
542
- })), sortOrder === DESCEND && /*#__PURE__*/_react.default.createElement("span", {
543
- className: (0, _classnames.default)(`ui-rc-table-column-sorter-up`, {
544
- active: sortOrder === DESCEND
545
- }),
546
- style: {
547
- display: 'flex',
548
- marginLeft: 4
549
- }
550
- }, /*#__PURE__*/_react.default.createElement(_becoxyIcons.ArrowDown, {
551
- fontSize: 15,
552
- color: '#000'
553
- })));
554
- },
555
- onHeaderCell: () => ({
556
- id: `${column.field}`,
557
- // width: column.width,
558
-
559
- 'data-tooltip-id': `${id}-tooltip-header`,
560
- 'data-tooltip-content': headerTooltip,
561
- onResize: handleResize?.(column),
562
- className: (0, _classnames.default)('', {
563
- 'head-align-center': column.headerTextAlign === 'center',
564
- 'head-align-right': column.headerTextAlign === 'right',
565
- 'ui-rc-table-cell-ellipsis': !wrapSettings || !!(wrapSettings && wrapSettings.wrapMode === 'Content'),
566
- // mặc định = true
567
- 'ui-rc-table-cell-wrap': wrapSettings && (wrapSettings.wrapMode === 'Both' || wrapSettings.wrapMode === 'Header')
568
- })
569
- }),
570
- onCell: (data, index) => {
571
- const tooltipContent = isOpenTooltip === false ? '' : column?.tooltipDescription ? typeof column.tooltipDescription === 'function' ? column.tooltipDescription({
572
- value: data[column.field ?? ''],
573
- record: data
574
- }) : column.tooltipDescription : column.template && typeof column.template !== 'function' ? column.template : data[column.field ?? ''];
575
- return {
576
- id: `${column.field}`,
577
- colSpan: groupColumns && data.children && column.field === firstNonGroupColumn?.field ? groupSetting?.groupColumnSpan ?? 2 : groupColumns && data.children && nonGroupColumns[1].field === column.field ? 0 : 1,
578
- // 'z-index': data?.children && column.field === firstNonGroupColumn?.field ? 11 : undefined,
579
- ...transformedColumn?.onCell?.(data, index),
580
- className: (0, _classnames.default)(transformedColumn?.onCell?.(data, index).className ?? '', {
581
- 'cell-group': groupColumns && data.children,
582
- 'cell-group-fixed': groupColumns && data.children && column.field === firstNonGroupColumn?.field,
583
- 'ui-rc-table-cell-ellipsis': !wrapSettings || wrapSettings && (wrapSettings.wrapMode === 'Header' || wrapSettings.wrapMode !== 'Both'),
584
- // mặc định = true
585
- 'ui-rc-table-cell-wrap': wrapSettings && (wrapSettings.wrapMode === 'Content' || wrapSettings.wrapMode === 'Both')
586
- }),
587
- 'data-tooltip-id': `${id}-tooltip-cell-content`,
588
- "data-tooltip-html": _server.default.renderToStaticMarkup( /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, tooltipContent)),
589
- onMouseEnter: e => {
590
- if (e.target.firstChild?.clientWidth <= e.target.firstChild?.scrollWidth) {
591
- if (e.target.firstChild?.clientWidth < e.target.firstChild?.scrollWidth) {
592
- setIsOpenTooltip(true);
593
- } else {
594
- setIsOpenTooltip(false);
595
- }
596
- } else {
597
- if (e.target.clientWidth < e.target.scrollWidth) {
598
- setIsOpenTooltip(true);
599
- } else {
600
- setIsOpenTooltip(false);
601
- }
602
- }
603
- }
604
- };
605
- },
606
- render: (value, record, rowIndex) => {
607
- const colFormat = typeof column.format === 'function' ? column.format(record) : column.format;
608
- const cellFormat = (0, _hooks.getFormat)(colFormat, format);
609
- if (groupAble && groupSetting && groupSetting.hiddenColumnGroup === false) {
610
- if (record.children) {
611
- return (0, _columns.renderContent)(column, value, record, rowIndex, colIndex, false, cellFormat);
612
- }
613
- if (groupColumns?.includes(column.field)) {
614
- return '';
615
- }
616
- return (0, _columns.renderContent)(column, value, record, rowIndex, colIndex, false, cellFormat);
617
- }
618
- if (groupAble && column.field === firstNonGroupColumn?.field && record.children) {
619
- const currentGroupColumn = (0, _columns.flatColumns2)(columns).find(it => it.field === record.field);
620
- if (currentGroupColumn?.template) {
621
- return (0, _columns.renderContent)(currentGroupColumn, record[record.field], record, rowIndex, colIndex, false, cellFormat);
622
- }
623
- return /*#__PURE__*/_react.default.createElement("span", null, currentGroupColumn?.headerText, ": ", (0, _columns.renderContent)(currentGroupColumn, record[record.field], record, rowIndex, colIndex, false, cellFormat));
624
- }
625
- if (groupAble && record.children && column.sumGroup === true && column.type === 'number') {
626
- const thousandSeparator = cellFormat?.thousandSeparator;
627
- const decimalSeparator = cellFormat?.decimalSeparator;
628
- const dec = cellFormat?.decimalScale;
629
- const numericFormatProps = {
630
- thousandSeparator: (0, _hooks.checkThousandSeparator)(thousandSeparator, decimalSeparator),
631
- decimalSeparator: (0, _hooks.checkDecimalSeparator)(thousandSeparator, decimalSeparator),
632
- allowNegative: cellFormat?.allowNegative ?? true,
633
- prefix: cellFormat?.prefix,
634
- suffix: cellFormat?.suffix,
635
- decimalScale: dec,
636
- fixedDecimalScale: cellFormat?.fixedDecimalScale ?? false
637
- };
638
- const sumValue = (0, _hooks.sumByField)((0, _hooks.filterDataByColumns4)(record.children, [], []), column?.field);
639
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (0, _reactNumericComponent.numericFormatter)(sumValue.toString(), numericFormatProps));
640
- }
641
- return (0, _columns.renderContent)(column, value, record, rowIndex, colIndex, false, cellFormat);
642
- },
643
- // defaultSortOrder: 'ascend',
644
-
645
- hidden: groupSetting && groupSetting.hiddenColumnGroup === false ? transformedColumn.hidden : groupAble && groupColumns && groupColumns.includes(column.field) ? true : transformedColumn.hidden
646
- };
647
- });
648
- }, [columns, t, id, wrapSettings, editAble, getColumnSearchProps, groupSetting, groupAble, groupColumns, mergedData, filterStates, mergedFilterKeys, pagination, handleResize, firstNonGroupColumn?.field, nonGroupColumns, format]);
649
- const transformColumns = _react.default.useCallback(cols => {
650
- return cols.map(column => {
651
- const find = convertColumns.find(it => it.field === column.field);
652
- if (column === SELECTION_COLUMN) {
653
- return SELECTION_COLUMN;
654
- }
655
- const tmpColumn = {
656
- ...column,
657
- dataIndex: column.field ?? column.dataIndex,
658
- key: column.field ?? column.key,
659
- title: /*#__PURE__*/_react.default.createElement(SortableHeaderCell, {
660
- columnKey: column.field
661
- }, /*#__PURE__*/_react.default.createElement(_HeaderContent.default, {
662
- column: {
663
- ...column
664
- },
665
- t: t,
666
- id: id,
667
- wrapSettings: wrapSettings
668
- })),
669
- ellipsis: false,
670
- // ellipsis: editAble || column.ellipsis !== false && wrapSettings && wrapSettings.wrapMode !== 'Content' && wrapSettings.wrapMode !== 'Both',
671
-
672
- align: column.textAlign ?? column.align,
673
- fixed: column.fixedType ?? column.fixed,
674
- isSummary: column.isSummary ?? column.haveSum,
675
- hidden: column.hidden ?? column.visible === false
676
- // defaultSortOrder: 'ascend'
677
- };
678
-
679
- // Xử lý đệ quy cho children
680
- if (column.children?.length) {
681
- return {
682
- ...column,
683
- ...tmpColumn,
684
- children: transformColumns(column.children)
685
- };
686
- }
687
- if (find) {
688
- return {
689
- ...find
690
- };
691
- }
692
- if (!find) {
693
- return {
694
- ...column,
695
- ...tmpColumn
696
- };
697
- }
698
- });
699
- }, [convertColumns, editAble, id, t, wrapSettings]);
700
- const mergedColumns = _react.default.useMemo(() => {
701
- return transformColumns(columns);
702
- }, [columns, transformColumns]);
703
- const sensors = (0, _core.useSensors)((0, _core.useSensor)(_core.PointerSensor, {
704
- activationConstraint: {
705
- distance: 1
706
- }
707
- }));
708
- const triggerChangeColumns = (newColumns, type) => {
709
- setColumns(newColumns);
710
- if (tableRef.current && type === 'columnChoose') {
711
- tableRef.current.scrollTo({
712
- left: 0.1,
713
- behavior: "smooth"
714
- });
715
- }
716
- onChooseColumns?.({
717
- showColumns: (0, _hooks.removeInvisibleColumns)([...newColumns]),
718
- columns: [...newColumns],
719
- flattenColumns: (0, _hooks.convertFlatColumn)([...newColumns])
720
- });
721
- };
722
- const onDragEnd = ({
723
- active,
724
- over
725
- }) => {
726
- if (active.id !== over?.id) {
727
- const targetColumn = (0, _columns.flatColumns2)(columns).find(it => it.field === over?.id);
728
- const activeIndex = (0, _columns.flatColumns2)(columns).findIndex(i => i.field === active?.id);
729
- const overIndex = (0, _columns.flatColumns2)(columns).findIndex(i => i.field === over?.id);
730
- const rs = (0, _sortable.arrayMove)(columns, activeIndex, overIndex);
731
- triggerChangeColumns(rs, targetColumn && targetColumn.fixed === 'left' ? 'columnChoose' : '');
732
- }
733
- setDragIndex({
734
- active: -1,
735
- over: -1
736
- });
737
- };
738
- const onDragOver = ({
739
- active,
740
- over
741
- }) => {
742
- const activeIndex = columns.findIndex(i => i.field === active.id);
743
- const overIndex = columns.findIndex(i => i.field === over?.id);
744
- setDragIndex({
745
- active: active.id,
746
- over: over?.id,
747
- direction: overIndex > activeIndex ? 'right' : 'left'
748
- });
749
- };
750
- const triggerGroupColumns = groupedColumns => {
751
- setColumns((0, _hooks.updateColumnsByGroup)(mergedColumns, groupedColumns));
752
- if (groupSetting) {
753
- if (groupSetting.client === false) {
754
-
755
- // setIsTree(true)
756
-
757
- // setGroupOpen([])
758
-
759
- // const dt = ungroupArray(dataSource)
760
-
761
- // const rs = groupArrayByColumns2(dt, [...value])
762
-
763
- // setResource([...rs])
764
-
765
- // if (groupSetting.onGroup) {
766
- // groupSetting.onGroup({
767
- // columnGrouped: value,
768
- // columns: removeColumns(columns as any, value),
769
- // flattenColumns: convertFlatColumn(removeColumns(columns as any, value)) as any
770
- //
771
- // })
772
- // }
773
- } else {
774
- if (groupSetting.onGroup) {
775
- groupSetting.onGroup({
776
- columnGrouped: groupedColumns,
777
- columns: (0, _hooks.removeColumns)(columns, groupedColumns),
778
- flattenColumns: (0, _columns.flatColumns2)((0, _hooks.removeColumns)(columns, groupedColumns))
779
- });
780
- }
781
- }
782
- }
783
- };
784
- const triggerChangeData = newData => {
785
- // setIsManualUpdate(true)
786
- // setData(newData)
787
- // setMergedData(newData)
788
- onDataChange?.(newData);
789
- // onDataChange?.(removeFieldRecursive(newData, 'isFilterState'))
790
- };
791
- const triggerCommandClick = args => {
792
- const {
793
- id: idCommand,
794
- rowId,
795
- rowData,
796
- index
797
- } = args;
798
-
799
- // const tmpData = [...mergedData]
800
- const tmpData = (0, _hooks.filterDataByColumns4)(mergedData, filterStates, mergedFilterKeys);
801
- if (idCommand === 'DELETE') {
802
- // bật modal confirm
803
- if (commandSettings && commandSettings.confirmDialog) {
804
- MySwal.fire({
805
- title: t ? t('Confirm') : 'Confirm',
806
- text: t ? t('Do you want to delete item?') : 'Do you want to delete item?',
807
- // icon: 'warning',
808
- allowOutsideClick: false,
809
- showCancelButton: true,
810
- confirmButtonText: t ? t('Delete') : 'Delete',
811
- cancelButtonText: t ? t('Cancel') : 'Cancel',
812
- customClass: {
813
- confirmButton: 'be-button btn-primary',
814
- cancelButton: 'be-button btn-danger ms-1'
815
- },
816
- buttonsStyling: false
817
- }).then(async result => {
818
- if (result.value) {
819
- if (!commandSettings || commandSettings && commandSettings.client !== false) {
820
- // client
821
-
822
- // kiểm tra dòng hiện tại có parent
823
-
824
- let newData = [];
825
- if (rowData?.parentId) {
826
- const parent = (0, _hooks.findItemByKey)(tmpData, rowKey, rowData.parentId);
827
- const childData = parent?.children ? [...parent.children] : [];
828
- const findIndex = childData.findIndex(obj => obj[rowKey] === rowData[rowKey]);
829
- childData.splice(Number(findIndex), 1);
830
- const newRowData = {
831
- ...parent,
832
- children: childData
833
- };
834
- // const newDataSource = updateArrayByKey(tmpData, newRowData, rowKey as string)
835
- newData = (0, _hooks.updateArrayByKey)(tmpData, newRowData, rowKey);
836
- } else {
837
- tmpData.splice(Number(index), 1);
838
- newData = [...tmpData];
839
- }
840
- if (commandClick) {
841
- commandClick({
842
- id: idCommand,
843
- rowId: rowData.rowId,
844
- rowData,
845
- index,
846
- // rows: [...tmpData]
847
- rows: [...newData]
848
- });
849
- }
850
- } else {
851
- // server ~~ không làm gì
852
- if (commandClick) {
853
- commandClick({
854
- id: idCommand,
855
- rowId: rowData.rowId,
856
- rowData,
857
- index,
858
- rows: [...mergedData]
859
- });
860
- }
861
- }
862
- } else if (result.dismiss === MySwal.DismissReason.cancel) {}
863
- });
864
- } else {
865
- // -------------------
866
-
867
- if (!commandSettings || commandSettings && commandSettings.client !== false) {
868
- // client
869
-
870
- let newData2 = [];
871
- if (rowData?.parentId) {
872
- const parent = (0, _hooks.findItemByKey)(mergedData, rowKey, rowData.parentId);
873
- const childData = parent?.children ? [...parent.children] : [];
874
- const findIndex = childData.findIndex(obj => obj[rowKey] === rowData[rowKey]);
875
- childData.splice(Number(findIndex), 1);
876
- const newRowData = {
877
- ...parent,
878
- children: childData
879
- };
880
- newData2 = (0, _hooks.updateArrayByKey)(tmpData, newRowData, rowKey);
881
- } else {
882
- tmpData.splice(Number(index), 1);
883
- newData2 = [...tmpData];
884
- }
885
- if (commandClick) {
886
- commandClick({
887
- id: idCommand,
888
- rowId,
889
- rowData,
890
- index,
891
- rows: [...newData2]
892
- });
893
- }
894
- } else {
895
- // server
896
- if (commandClick) {
897
- commandClick({
898
- id: idCommand,
899
- rowId,
900
- rowData,
901
- index,
902
- rows: [...mergedData]
903
- });
904
- }
905
- }
906
- }
907
- } else {
908
- if (commandClick) {
909
- commandClick(args);
910
- }
911
- }
912
- };
913
- const triggerPaste = (pastedRows, pastedColumnsArray, newData, copyRows) => {
914
- const handlePasteCallback = callbackData => {
915
- // const newDataUpdate = updateData(mergedData, callbackData, rowKey as any)
916
-
917
- const rsFilterData = (0, _hooks.updateOrInsert)((0, _hooks.flattenArray)([...mergedData]), callbackData);
918
- const rs = (0, _hooks.unFlattenData)(rsFilterData);
919
- triggerChangeData(rs);
920
-
921
- // onCellPaste?.dataChange?.(newDataUpdate)
922
- };
923
- if (onCellPaste && onCellPaste.onPasted) {
924
- if (onCellPaste.onPasted.length > 1) {
925
- // có callback
926
- onCellPaste.onPasted({
927
- pasteData: pastedRows,
928
- copyRows,
929
- type: 'onPaste',
930
- data: mergedData,
931
- pastedColumns: pastedColumnsArray
932
- }, handlePasteCallback);
933
- } else {
934
- // không có callback
935
- onCellPaste.onPasted({
936
- pasteData: pastedRows,
937
- type: 'onPaste',
938
- copyRows,
939
- data: mergedData,
940
- pastedColumns: pastedColumnsArray
941
- }, handlePasteCallback);
942
- triggerChangeData(newData);
943
-
944
- // onCellPaste.dataChange?.(newData)
945
- }
946
- } else {
947
- triggerChangeData(newData);
948
- }
949
- };
950
- const handleChange = (paging, filters, sorter) => {
951
- onSorter?.(sorter);
952
- };
953
-
954
- // const fullScreenChange = (state: boolean) => {
955
-
956
- // setIsFullScreen(state)
957
-
958
- // }
959
-
960
- const handleFullScreen = () => {
961
- setIsFullScreen(!isFullScreen);
962
- };
963
- const CustomThead = headerProps => {
964
- const {
965
- children,
966
- className
967
- } = headerProps;
968
- return /*#__PURE__*/_react.default.createElement("thead", {
969
- ref: theadRef,
970
- className: className
971
- }, children);
972
- };
973
- return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.DndContext, {
974
- sensors: sensors,
975
- modifiers: [_modifiers.restrictToHorizontalAxis],
976
- onDragEnd: onDragEnd,
977
- onDragOver: onDragOver,
978
- collisionDetection: _core.closestCenter
979
- }, /*#__PURE__*/_react.default.createElement(_sortable.SortableContext, {
980
- items: columns.map(i => i.field),
981
- strategy: _sortable.horizontalListSortingStrategy
982
- }, /*#__PURE__*/_react.default.createElement(DragIndexContext.Provider, {
983
- value: dragIndex
984
- }, /*#__PURE__*/_react.default.createElement(_Group.default, (0, _extends2.default)({}, rest, {
985
- t: t,
986
- id: id,
987
- locale: locale,
988
- tableRef: tableRef
989
- // dataSource={mergedData}
990
- ,
991
- originData: mergedData
992
- // dataSource={filterStates && filterStates.length ? filterData : mergedData}
993
- ,
994
- dataSource: (0, _hooks.filterDataByColumns4)(mergedData, filterStates, mergedFilterKeys),
995
- format: format,
996
- columns: mergedColumns
997
-
998
- // showSorterTooltip={false}
999
- ,
1000
- showSorterTooltip: {
1001
- target: 'sorter-icon'
1002
- },
1003
- triggerChangeColumns: triggerChangeColumns,
1004
- triggerChangeData: triggerChangeData,
1005
- triggerGroupColumns: triggerGroupColumns,
1006
- rowKey: rowKey,
1007
- getRowKey: getRowKey,
1008
- triggerPaste: triggerPaste,
1009
- clickHeaderToSort: clickHeaderToSort,
1010
- groupSetting: groupSetting,
1011
- groupAble: groupAble,
1012
- groupColumns: groupColumns,
1013
- commandClick: triggerCommandClick,
1014
- summary: summary,
1015
- pagination: pagination,
1016
- scroll: scrollHeight - (summary ? 1 : 1) < 0 ? {
1017
- y: 500
1018
- } : {
1019
- y: scrollHeight - (summary ? 1 : 1)
1020
- } // scroll height auto, không quá 600
1021
- ,
1022
- height: propsHeight,
1023
- scrollHeight: scrollHeight,
1024
- toolbarItems: toolbarItems,
1025
- components: {
1026
- header: {
1027
- cell: ResizableTitle,
1028
- wrapper: CustomThead
1029
- }
1030
- },
1031
- onFilter: val => {
1032
- handleOnFilter(val);
1033
- },
1034
- setMergedFilterKeys: setMergedFilterKeys,
1035
- mergedFilterKeys: mergedFilterKeys,
1036
- wrapSettings: wrapSettings,
1037
- onChange: handleChange,
1038
- handleFullScreen: handleFullScreen,
1039
- isFullScreen: isFullScreen
1040
- })))), /*#__PURE__*/_react.default.createElement(_core.DragOverlay, {
1041
- style: {
1042
- minWidth: 100,
1043
- width: columns[columns.findIndex(i => i.field === dragIndex.active)]?.width
1044
- }
1045
- }, /*#__PURE__*/_react.default.createElement("th", {
1046
- style: {
1047
- backgroundColor: '#f0f0f0',
1048
- padding: 6,
1049
- borderRadius: 6,
1050
- fontWeight: 500
1051
- }
1052
- }, columns[columns.findIndex(i => i.field === dragIndex.active)]?.headerText))), /*#__PURE__*/_react.default.createElement(_antd.Modal, {
1053
- open: isFullScreen,
1054
- footer: null,
1055
- centered: true,
1056
- closable: true,
1057
- width: '100%',
1058
- style: {
1059
- maxWidth: '100%',
1060
- height: '100%'
1061
- },
1062
- onClose: () => setIsFullScreen(false),
1063
- onCancel: () => setIsFullScreen(false)
1064
-
1065
- // destroyOnClose
1066
- ,
1067
- styles: {
1068
- content: {
1069
- height: '100vh',
1070
- borderRadius: 0
1071
- },
1072
- wrapper: {
1073
- zIndex: 1060
1074
- }
1075
- }
1076
- }, /*#__PURE__*/_react.default.createElement("div", {
1077
- style: {
1078
- paddingTop: 20
1079
- }
1080
- }, /*#__PURE__*/_react.default.createElement(_core.DndContext, {
1081
- sensors: sensors,
1082
- modifiers: [_modifiers.restrictToHorizontalAxis],
1083
- onDragEnd: onDragEnd,
1084
- onDragOver: onDragOver,
1085
- collisionDetection: _core.closestCenter
1086
- }, /*#__PURE__*/_react.default.createElement(_sortable.SortableContext, {
1087
- items: columns.map(i => i.field),
1088
- strategy: _sortable.horizontalListSortingStrategy
1089
- }, /*#__PURE__*/_react.default.createElement(DragIndexContext.Provider, {
1090
- value: dragIndex
1091
- }, /*#__PURE__*/_react.default.createElement(_Group.default, (0, _extends2.default)({}, rest, {
1092
- t: t,
1093
- id: _faker.faker.string.alpha(20),
1094
- locale: locale,
1095
- tableRef: tableRef
1096
- // dataSource={mergedData}
1097
- ,
1098
- originData: mergedData
1099
- // dataSource={filterStates && filterStates.length ? filterData : mergedData}
1100
- ,
1101
- dataSource: (0, _hooks.filterDataByColumns4)(mergedData, filterStates, mergedFilterKeys),
1102
- format: format,
1103
- columns: mergedColumns,
1104
- showSorterTooltip: {
1105
- target: 'sorter-icon'
1106
- },
1107
- triggerChangeColumns: triggerChangeColumns,
1108
- triggerChangeData: triggerChangeData,
1109
- triggerGroupColumns: triggerGroupColumns,
1110
- rowKey: rowKey,
1111
- getRowKey: getRowKey,
1112
- triggerPaste: triggerPaste,
1113
- clickHeaderToSort: clickHeaderToSort,
1114
- groupSetting: groupSetting,
1115
- groupAble: groupAble,
1116
- groupColumns: groupColumns,
1117
- commandClick: triggerCommandClick,
1118
- summary: summary,
1119
- pagination: pagination,
1120
- toolbarItems: toolbarItems,
1121
- scroll: scrollHeight1 - (summary ? 1 : 1) < 0 ? {
1122
- y: 500
1123
- } : {
1124
- y: scrollHeight1 - (summary ? 1 : 1)
1125
- } // scroll height auto, không quá 600
1126
- ,
1127
-
1128
- height: windowSize.innerHeight - 35,
1129
- scrollHeight: scrollHeight1,
1130
- components: {
1131
- header: {
1132
- cell: ResizableTitle
1133
- }
1134
- // body: { cell: TableBodyCell }
1135
- }
1136
- // setTooltipContent={setTooltipContent}
1137
- ,
1138
-
1139
- onFilter: val => {
1140
- handleOnFilter(val);
1141
- // triggerFilter?.(convertFilters(val))
1142
- // onFilter?.(convertFilters(val))
1143
- },
1144
- setMergedFilterKeys: setMergedFilterKeys,
1145
- mergedFilterKeys: mergedFilterKeys,
1146
- wrapSettings: wrapSettings,
1147
- onChange: handleChange,
1148
- handleFullScreen: handleFullScreen,
1149
- isFullScreen: isFullScreen
1150
-
1151
- // onChange={(paging, filters, sorter) => {
1152
- // handleChange(sorter)
1153
- // }}
1154
- })))), /*#__PURE__*/_react.default.createElement(_core.DragOverlay, {
1155
- style: {
1156
- minWidth: 100,
1157
- width: columns[columns.findIndex(i => i.field === dragIndex.active)]?.width
1158
- }
1159
- }, /*#__PURE__*/_react.default.createElement("th", {
1160
- style: {
1161
- backgroundColor: '#f0f0f0',
1162
- padding: 6,
1163
- borderRadius: 6,
1164
- fontWeight: 500
1165
- }
1166
- }, columns[columns.findIndex(i => i.field === dragIndex.active)]?.headerText))))), /*#__PURE__*/_react.default.createElement(_reactTooltip.Tooltip, {
1167
- id: `${id}-tooltip-form-error`,
1168
- style: {
1169
- zIndex: 1999
1170
- }
1171
- }), /*#__PURE__*/_react.default.createElement(_reactTooltip.Tooltip, {
1172
- id: `${id}-tooltip-cell-content`,
1173
- style: {
1174
- zIndex: 1999
1175
- }
1176
- }));
1177
- };
1178
- var _default = exports.default = InternalTable;