es-grid-template 0.0.7 → 0.0.8
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.
- package/es/CheckboxFilter.d.ts +1 -1
- package/es/CheckboxFilter.js +7 -10
- package/es/ColumnsChoose.d.ts +2 -3
- package/es/ColumnsChoose.js +65 -69
- package/es/FilterSearch.js +1 -1
- package/es/{GridTable.d.ts → InternalTable.d.ts} +2 -2
- package/es/InternalTable.js +185 -0
- package/es/LoadingSpinner.d.ts +3 -0
- package/es/LoadingSpinner.js +20 -0
- package/es/TableGrid.d.ts +10 -0
- package/es/{GridTable.js → TableGrid.js} +395 -267
- package/es/hooks/constant.js +1 -1
- package/es/hooks/utils.d.ts +2 -1
- package/es/hooks/utils.js +23 -3
- package/es/index.d.ts +2 -2
- package/es/index.js +2 -2
- package/es/styles.scss +287 -21
- package/es/type.d.ts +17 -5
- package/lib/CheckboxFilter.d.ts +1 -1
- package/lib/CheckboxFilter.js +11 -13
- package/lib/ColumnsChoose.d.ts +2 -3
- package/lib/ColumnsChoose.js +65 -69
- package/lib/FilterSearch.js +2 -2
- package/lib/{GridTable.d.ts → InternalTable.d.ts} +2 -2
- package/lib/InternalTable.js +194 -0
- package/lib/LoadingSpinner.d.ts +3 -0
- package/lib/LoadingSpinner.js +29 -0
- package/lib/TableGrid.d.ts +10 -0
- package/lib/{GridTable.js → TableGrid.js} +401 -274
- package/lib/hooks/constant.js +1 -1
- package/lib/hooks/utils.d.ts +2 -1
- package/lib/hooks/utils.js +26 -5
- package/lib/index.d.ts +2 -2
- package/lib/index.js +2 -2
- package/lib/styles.scss +287 -21
- package/lib/type.d.ts +17 -5
- package/package.json +6 -4
|
@@ -7,55 +7,38 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var _uiRc = require("ui-rc");
|
|
11
10
|
var _reactResizable = require("react-resizable");
|
|
12
11
|
var _antdStyle = require("antd-style");
|
|
13
12
|
var _reactNumericComponent = require("react-numeric-component");
|
|
14
13
|
var _icons = require("@ant-design/icons");
|
|
14
|
+
var _rcMasterUi = require("rc-master-ui");
|
|
15
15
|
var _dayjs = _interopRequireDefault(require("dayjs"));
|
|
16
16
|
require("dayjs/locale/es");
|
|
17
17
|
require("dayjs/locale/vi");
|
|
18
18
|
require("./styles.scss");
|
|
19
|
+
var _en_US = _interopRequireDefault(require("rc-master-ui/es/date-picker/locale/en_US"));
|
|
20
|
+
var _vi_VN = _interopRequireDefault(require("rc-master-ui/es/date-picker/locale/vi_VN"));
|
|
19
21
|
var _moment = _interopRequireDefault(require("moment"));
|
|
20
22
|
var _CheckboxFilter = _interopRequireDefault(require("./CheckboxFilter"));
|
|
21
23
|
var _ContextMenu = _interopRequireDefault(require("./ContextMenu"));
|
|
22
|
-
var _ColumnsChoose = require("./ColumnsChoose");
|
|
23
24
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
24
25
|
var _hooks = require("./hooks");
|
|
25
26
|
var _antd = require("antd");
|
|
26
27
|
var _useColumns = require("./hooks/useColumns");
|
|
28
|
+
var _customParseFormat = _interopRequireDefault(require("dayjs/plugin/customParseFormat"));
|
|
29
|
+
var _pagination = _interopRequireDefault(require("rc-master-ui/es/pagination"));
|
|
30
|
+
var _space = _interopRequireDefault(require("rc-master-ui/es/space"));
|
|
31
|
+
var _becoxyIcons = require("becoxy-icons");
|
|
32
|
+
var _LoadingSpinner = _interopRequireDefault(require("./LoadingSpinner"));
|
|
33
|
+
var _ColumnsChoose = require("./ColumnsChoose");
|
|
27
34
|
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); }
|
|
28
35
|
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; }
|
|
29
|
-
// import
|
|
30
|
-
|
|
31
|
-
// import {flatColumns} from "../../hooks/useColumns";
|
|
32
|
-
// import {
|
|
33
|
-
// checkDecimalSeparator,
|
|
34
|
-
// checkThousandSeparator,
|
|
35
|
-
// convertDateToDayjs,
|
|
36
|
-
// convertDayjsToDate,
|
|
37
|
-
// getTypeFilter,
|
|
38
|
-
// getDatepickerFormat,
|
|
39
|
-
// isColor,
|
|
40
|
-
// isEmpty,
|
|
41
|
-
// numberOperator,
|
|
42
|
-
// sumDataByField,
|
|
43
|
-
// translateOption
|
|
44
|
-
// } from "../hooks";
|
|
45
|
-
|
|
46
|
-
// import type {ColumnsType, ColumnType, GridTableProps} from "../../type";
|
|
47
|
-
|
|
48
|
-
// import en from 'antd/es/date-picker/locale/en_US'
|
|
49
|
-
|
|
50
|
-
// import vi from 'antd/es/date-picker/locale/vi_VN'
|
|
51
|
-
|
|
52
|
-
// import type {PickerLocale} from "antd/es/date-picker/generatePicker";
|
|
53
|
-
|
|
54
|
-
// import type {PickerLocale} from "ui-rc/dist/date-picker/generatePicker";
|
|
36
|
+
// import styled from "styled-components";
|
|
55
37
|
|
|
38
|
+
_dayjs.default.extend(_customParseFormat.default);
|
|
56
39
|
const {
|
|
57
40
|
RangePicker
|
|
58
|
-
} =
|
|
41
|
+
} = _rcMasterUi.DatePicker;
|
|
59
42
|
const convertFilters = filters => {
|
|
60
43
|
const result = [];
|
|
61
44
|
filters.forEach(({
|
|
@@ -65,25 +48,25 @@ const convertFilters = filters => {
|
|
|
65
48
|
operator
|
|
66
49
|
}) => {
|
|
67
50
|
if (!filteredKeys || filteredKeys.length === 0) return;
|
|
68
|
-
if (column
|
|
51
|
+
if (column?.typeFilter === "DateRange" && filteredKeys.length === 2) {
|
|
69
52
|
result.push({
|
|
70
53
|
key,
|
|
71
|
-
field: column
|
|
54
|
+
field: column?.dataIndex,
|
|
72
55
|
value: filteredKeys[0],
|
|
73
56
|
predicate: "and",
|
|
74
57
|
operator: "greaterthanorequal"
|
|
75
58
|
}, {
|
|
76
59
|
key,
|
|
77
|
-
field: column
|
|
60
|
+
field: column?.dataIndex,
|
|
78
61
|
value: filteredKeys[1],
|
|
79
62
|
predicate: "and",
|
|
80
63
|
operator: "lessthanorequal"
|
|
81
64
|
});
|
|
82
|
-
} else if (column
|
|
65
|
+
} else if (column?.typeFilter === 'Checkbox') {
|
|
83
66
|
filteredKeys.forEach(value => {
|
|
84
67
|
result.push({
|
|
85
68
|
key,
|
|
86
|
-
field: column
|
|
69
|
+
field: column?.dataIndex,
|
|
87
70
|
value,
|
|
88
71
|
predicate: "or",
|
|
89
72
|
operator
|
|
@@ -92,7 +75,7 @@ const convertFilters = filters => {
|
|
|
92
75
|
} else {
|
|
93
76
|
result.push({
|
|
94
77
|
key,
|
|
95
|
-
field: column
|
|
78
|
+
field: column?.dataIndex,
|
|
96
79
|
value: filteredKeys[0],
|
|
97
80
|
predicate: 'and',
|
|
98
81
|
operator
|
|
@@ -149,10 +132,13 @@ const useStyle = (0, _antdStyle.createStyles)(({
|
|
|
149
132
|
`
|
|
150
133
|
};
|
|
151
134
|
});
|
|
152
|
-
|
|
135
|
+
// type OnChange = NonNullable<TableProps<any>['onChange']>;
|
|
136
|
+
|
|
137
|
+
const TableGrid = props => {
|
|
153
138
|
const {
|
|
154
139
|
columns: defaultColumns,
|
|
155
140
|
dataSource,
|
|
141
|
+
title,
|
|
156
142
|
format,
|
|
157
143
|
virtual = true,
|
|
158
144
|
t,
|
|
@@ -169,23 +155,27 @@ const GridTable = props => {
|
|
|
169
155
|
rowSelection,
|
|
170
156
|
rowSelected,
|
|
171
157
|
rowKey = 'id',
|
|
158
|
+
pagination,
|
|
159
|
+
scroll,
|
|
160
|
+
onFilterClick,
|
|
161
|
+
dataSourceFilter: propDataSourceFilter,
|
|
162
|
+
loading,
|
|
163
|
+
setColumns,
|
|
164
|
+
// dataSourceFilter,
|
|
172
165
|
...rest
|
|
173
166
|
} = props;
|
|
174
167
|
const {
|
|
175
168
|
styles
|
|
176
169
|
} = useStyle();
|
|
170
|
+
const locale = lang && lang === 'en' ? _en_US.default : _vi_VN.default;
|
|
171
|
+
// const locale = vi
|
|
177
172
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
//
|
|
185
|
-
// }
|
|
186
|
-
// }
|
|
187
|
-
|
|
188
|
-
// console.log('buddhistLocale', buddhistLocale)
|
|
173
|
+
const buddhistLocale = {
|
|
174
|
+
...locale,
|
|
175
|
+
lang: {
|
|
176
|
+
...locale.lang
|
|
177
|
+
}
|
|
178
|
+
};
|
|
189
179
|
const clickRef = (0, _react.useRef)(null);
|
|
190
180
|
const searchInput = (0, _react.useRef)(null);
|
|
191
181
|
const menuRef = (0, _react.useRef)(null);
|
|
@@ -202,9 +192,11 @@ const GridTable = props => {
|
|
|
202
192
|
viewportWidth,
|
|
203
193
|
viewportHeight
|
|
204
194
|
});
|
|
205
|
-
// const [filters, setFilters] = React.useState<any[]>([])
|
|
206
|
-
|
|
207
195
|
const [selectedRowKeys, setSelectedRowKeys] = (0, _react.useState)(defaultSelected);
|
|
196
|
+
const [dataSourceFilter, setDataSourceFilter] = (0, _react.useState)(propDataSourceFilter ?? []);
|
|
197
|
+
_react.default.useEffect(() => {
|
|
198
|
+
setDataSourceFilter(propDataSourceFilter ?? []);
|
|
199
|
+
}, [propDataSourceFilter]);
|
|
208
200
|
const contextMenuItems = _react.default.useMemo(() => {
|
|
209
201
|
if (typeof contextMenuHidden === "function" && propContextMenuItems && selectedRowData) {
|
|
210
202
|
const hiddenItems = contextMenuHidden({
|
|
@@ -222,15 +214,15 @@ const GridTable = props => {
|
|
|
222
214
|
(0, _react.useLayoutEffect)(() => {
|
|
223
215
|
setMenuVisible(false);
|
|
224
216
|
}, []);
|
|
225
|
-
const handleSearch = (selectedKeys, confirm
|
|
226
|
-
// dataIndex: any
|
|
227
|
-
) => {
|
|
217
|
+
const handleSearch = (selectedKeys, confirm) => {
|
|
228
218
|
confirm();
|
|
229
219
|
};
|
|
230
220
|
const renderFilter = (column, selectedKeys, setSelectedKeys, confirm, visible, searchValue, setSearchValue) => {
|
|
231
221
|
const type = (0, _hooks.getTypeFilter)(column);
|
|
232
|
-
const dateFormat = (0, _hooks.getDatepickerFormat)(column
|
|
233
|
-
const dateRangeFormat = (0, _hooks.getDatepickerFormat)(column
|
|
222
|
+
const dateFormat = (0, _hooks.getDatepickerFormat)(column?.typeFilter ?? column?.type, column) ?? 'DD/MM/YYYY';
|
|
223
|
+
const dateRangeFormat = (0, _hooks.getDatepickerFormat)(column?.type, column) ?? 'DD/MM/YYYY';
|
|
224
|
+
const find = dataSourceFilter?.find(it => it.key === column?.key);
|
|
225
|
+
const options = find ? find.data : [];
|
|
234
226
|
switch (type) {
|
|
235
227
|
case 'Number':
|
|
236
228
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -242,7 +234,7 @@ const GridTable = props => {
|
|
|
242
234
|
// allowNegative={col.format && col.format.allowNegative === true}
|
|
243
235
|
,
|
|
244
236
|
allowNegative: true,
|
|
245
|
-
customInput:
|
|
237
|
+
customInput: _rcMasterUi.Input,
|
|
246
238
|
className: ' rounded-0 input-element form-control',
|
|
247
239
|
onValueChange: values => {
|
|
248
240
|
// onChangeValueFilter(type, values.floatValue)
|
|
@@ -262,7 +254,7 @@ const GridTable = props => {
|
|
|
262
254
|
// decimalSeparator={checkDecimalSeparator(thousandSeparator, decimalSeparator)}
|
|
263
255
|
,
|
|
264
256
|
allowNegative: true,
|
|
265
|
-
customInput:
|
|
257
|
+
customInput: _rcMasterUi.Input,
|
|
266
258
|
className: ' rounded-0 input-element form-control'
|
|
267
259
|
// onValueChange={(values: any) => {
|
|
268
260
|
// onChangeValueFilter(type, values.floatValue, 'min')
|
|
@@ -276,7 +268,7 @@ const GridTable = props => {
|
|
|
276
268
|
// decimalSeparator={checkDecimalSeparator(thousandSeparator, decimalSeparator)}
|
|
277
269
|
,
|
|
278
270
|
allowNegative: true,
|
|
279
|
-
customInput:
|
|
271
|
+
customInput: _rcMasterUi.Input,
|
|
280
272
|
className: ' rounded-0 input-element form-control',
|
|
281
273
|
onValueChange: () => {
|
|
282
274
|
// onChangeValueFilter(type, values.floatValue, 'max')
|
|
@@ -287,21 +279,20 @@ const GridTable = props => {
|
|
|
287
279
|
const dateValue = selectedKeys[0] ? (0, _hooks.convertDateToDayjs)(new Date(selectedKeys[0]), dateFormat) : null;
|
|
288
280
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
289
281
|
className: 'mb-1'
|
|
290
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
282
|
+
}, /*#__PURE__*/_react.default.createElement(_rcMasterUi.DatePicker, {
|
|
291
283
|
format: {
|
|
292
284
|
format: dateFormat,
|
|
293
285
|
type: 'mask'
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
,
|
|
286
|
+
},
|
|
287
|
+
locale: buddhistLocale,
|
|
297
288
|
style: {
|
|
298
289
|
width: '100%',
|
|
299
290
|
height: '100%'
|
|
300
291
|
},
|
|
301
292
|
value: dateValue,
|
|
302
293
|
defaultValue: dateValue,
|
|
303
|
-
placeholder: column
|
|
304
|
-
onChange: (
|
|
294
|
+
placeholder: column?.placeholder,
|
|
295
|
+
onChange: (date, dateString) => {
|
|
305
296
|
const newDateValue = dateString ? (0, _moment.default)((0, _hooks.convertDayjsToDate)(dateString, dateFormat)).format() : null;
|
|
306
297
|
setSelectedKeys(newDateValue ? [newDateValue] : []);
|
|
307
298
|
}
|
|
@@ -334,11 +325,136 @@ const GridTable = props => {
|
|
|
334
325
|
// popupClassName={'adv-popup-container'}
|
|
335
326
|
// getPopupContainer={() => menuRef.current}
|
|
336
327
|
}))));
|
|
328
|
+
case 'Week':
|
|
329
|
+
const weekValue = !(0, _hooks.isEmpty)(selectedKeys[0]) ? (0, _dayjs.default)(selectedKeys[0], dateFormat) : null;
|
|
330
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
331
|
+
className: 'mb-1'
|
|
332
|
+
}, /*#__PURE__*/_react.default.createElement(_rcMasterUi.DatePicker, {
|
|
333
|
+
format: {
|
|
334
|
+
format: dateFormat,
|
|
335
|
+
type: 'mask'
|
|
336
|
+
},
|
|
337
|
+
picker: 'week',
|
|
338
|
+
locale: buddhistLocale,
|
|
339
|
+
style: {
|
|
340
|
+
width: '100%',
|
|
341
|
+
height: '100%'
|
|
342
|
+
},
|
|
343
|
+
value: weekValue,
|
|
344
|
+
defaultValue: weekValue,
|
|
345
|
+
placeholder: column?.placeholder,
|
|
346
|
+
onChange: (date, dateString) => {
|
|
347
|
+
const newDateValue = dateString ?? null;
|
|
348
|
+
setSelectedKeys(newDateValue ? [newDateValue] : []);
|
|
349
|
+
}
|
|
350
|
+
}))));
|
|
351
|
+
case 'Month':
|
|
352
|
+
const monthValue = !(0, _hooks.isEmpty)(selectedKeys[0]) ? (0, _dayjs.default)(selectedKeys[0], dateFormat) : null;
|
|
353
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
354
|
+
className: 'mb-1'
|
|
355
|
+
}, /*#__PURE__*/_react.default.createElement(_rcMasterUi.DatePicker, {
|
|
356
|
+
format: {
|
|
357
|
+
format: dateFormat,
|
|
358
|
+
type: 'mask'
|
|
359
|
+
},
|
|
360
|
+
picker: 'month',
|
|
361
|
+
locale: buddhistLocale,
|
|
362
|
+
style: {
|
|
363
|
+
width: '100%',
|
|
364
|
+
height: '100%'
|
|
365
|
+
},
|
|
366
|
+
value: monthValue,
|
|
367
|
+
defaultValue: monthValue,
|
|
368
|
+
placeholder: column?.placeholder,
|
|
369
|
+
onChange: (date, dateString) => {
|
|
370
|
+
const newDateValue = dateString ?? null;
|
|
371
|
+
setSelectedKeys(newDateValue ? [newDateValue] : []);
|
|
372
|
+
}
|
|
373
|
+
})));
|
|
374
|
+
|
|
375
|
+
// case 'Quarter':
|
|
376
|
+
//
|
|
377
|
+
// // const monthValue = selectedKeys[0] ? convertDateToDayjs(new Date(selectedKeys[0]), dateFormat) : null
|
|
378
|
+
//
|
|
379
|
+
// const pickerFormat = getDatepickerFormat(getEditType(col) as IEditType, col)
|
|
380
|
+
// const pickerValue = !isEmpty(selectedKeys[0]) ? dayjs(selectedKeys[0], pickerFormat) : null
|
|
381
|
+
//
|
|
382
|
+
// return (
|
|
383
|
+
// <Fragment>
|
|
384
|
+
// <div>
|
|
385
|
+
//
|
|
386
|
+
//
|
|
387
|
+
// <div className={'mb-1'}>
|
|
388
|
+
//
|
|
389
|
+
// <DatePicker
|
|
390
|
+
// format={{
|
|
391
|
+
// format: dateFormat,
|
|
392
|
+
// type: 'mask'
|
|
393
|
+
// }}
|
|
394
|
+
// locale={buddhistLocale}
|
|
395
|
+
// style={{width: '100%', height: '100%'}}
|
|
396
|
+
// value={pickerValue}
|
|
397
|
+
// defaultValue={pickerValue}
|
|
398
|
+
// placeholder={column.placeholder}
|
|
399
|
+
// onChange={(date, dateString) => {
|
|
400
|
+
// const newDateValue = dateString ? moment(convertDayjsToDate(dateString as string, dateFormat)).format() : null
|
|
401
|
+
// setSelectedKeys(newDateValue ? [newDateValue] : [])
|
|
402
|
+
//
|
|
403
|
+
// }}
|
|
404
|
+
//
|
|
405
|
+
// />
|
|
406
|
+
// </div>
|
|
407
|
+
//
|
|
408
|
+
//
|
|
409
|
+
// </div>
|
|
410
|
+
// </Fragment>
|
|
411
|
+
// )
|
|
412
|
+
//
|
|
413
|
+
// case 'Year':
|
|
414
|
+
//
|
|
415
|
+
// // const monthValue = selectedKeys[0] ? convertDateToDayjs(new Date(selectedKeys[0]), dateFormat) : null
|
|
416
|
+
//
|
|
417
|
+
// const pickerFormat = getDatepickerFormat(getEditType(col) as IEditType, col)
|
|
418
|
+
// const pickerValue = !isEmpty(selectedKeys[0]) ? dayjs(selectedKeys[0], pickerFormat) : null
|
|
419
|
+
//
|
|
420
|
+
// return (
|
|
421
|
+
// <Fragment>
|
|
422
|
+
// <div>
|
|
423
|
+
//
|
|
424
|
+
//
|
|
425
|
+
// <div className={'mb-1'}>
|
|
426
|
+
//
|
|
427
|
+
// <DatePicker
|
|
428
|
+
// format={{
|
|
429
|
+
// format: dateFormat,
|
|
430
|
+
// type: 'mask'
|
|
431
|
+
// }}
|
|
432
|
+
// locale={buddhistLocale}
|
|
433
|
+
// style={{width: '100%', height: '100%'}}
|
|
434
|
+
// value={pickerValue}
|
|
435
|
+
// defaultValue={pickerValue}
|
|
436
|
+
// placeholder={column.placeholder}
|
|
437
|
+
// onChange={(date, dateString) => {
|
|
438
|
+
// const newDateValue = dateString ? moment(convertDayjsToDate(dateString as string, dateFormat)).format() : null
|
|
439
|
+
// setSelectedKeys(newDateValue ? [newDateValue] : [])
|
|
440
|
+
//
|
|
441
|
+
// }}
|
|
442
|
+
//
|
|
443
|
+
// />
|
|
444
|
+
// </div>
|
|
445
|
+
//
|
|
446
|
+
//
|
|
447
|
+
// </div>
|
|
448
|
+
// </Fragment>
|
|
449
|
+
// )
|
|
450
|
+
|
|
337
451
|
case 'Dropdown':
|
|
338
452
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
339
453
|
className: 'mb-1'
|
|
340
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
341
|
-
|
|
454
|
+
}, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Select
|
|
455
|
+
// options={translateOption(numberOperator, t)}
|
|
456
|
+
, {
|
|
457
|
+
options: options,
|
|
342
458
|
style: {
|
|
343
459
|
width: '100%',
|
|
344
460
|
marginBottom: 8
|
|
@@ -409,54 +525,17 @@ const GridTable = props => {
|
|
|
409
525
|
filterCheckall: 'Chọn tất cả'
|
|
410
526
|
},
|
|
411
527
|
selectedKeys: selectedKeys,
|
|
412
|
-
onSelect: setSelectedKeys
|
|
413
|
-
options
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
},
|
|
423
|
-
text: 'Black',
|
|
424
|
-
value: 'Black'
|
|
425
|
-
}, {
|
|
426
|
-
text: 'Category 1',
|
|
427
|
-
value: 'Category 1'
|
|
428
|
-
}, {
|
|
429
|
-
text: 'Yellow',
|
|
430
|
-
value: 'Yellow'
|
|
431
|
-
}, {
|
|
432
|
-
text: 'Pink',
|
|
433
|
-
value: 'Pink'
|
|
434
|
-
}, {
|
|
435
|
-
text: 'Category 2',
|
|
436
|
-
value: 'Category 666'
|
|
437
|
-
}, {
|
|
438
|
-
text: 'Category 2',
|
|
439
|
-
value: 'Category 555'
|
|
440
|
-
}, {
|
|
441
|
-
text: 'Category 2',
|
|
442
|
-
value: 'Category 55'
|
|
443
|
-
}, {
|
|
444
|
-
text: 'Category 2',
|
|
445
|
-
value: 'Category 44'
|
|
446
|
-
}, {
|
|
447
|
-
text: 'Category 2',
|
|
448
|
-
value: 'Category 33'
|
|
449
|
-
}, {
|
|
450
|
-
text: 'Category 2',
|
|
451
|
-
value: 'Category 22'
|
|
452
|
-
}, {
|
|
453
|
-
text: 'Category 2',
|
|
454
|
-
value: 'Category 11'
|
|
455
|
-
}
|
|
456
|
-
// {
|
|
457
|
-
// text: 'Submenu',
|
|
458
|
-
// value: 'Submenu',
|
|
459
|
-
// children: [
|
|
528
|
+
onSelect: setSelectedKeys
|
|
529
|
+
// options={
|
|
530
|
+
// [
|
|
531
|
+
// {
|
|
532
|
+
// text: 'Joe',
|
|
533
|
+
// value: 'Joe',
|
|
534
|
+
// },
|
|
535
|
+
// {
|
|
536
|
+
// text: 'Jim',
|
|
537
|
+
// value: 'Jim',
|
|
538
|
+
// },
|
|
460
539
|
// {
|
|
461
540
|
// text: 'Green',
|
|
462
541
|
// value: 'Green',
|
|
@@ -465,9 +544,65 @@ const GridTable = props => {
|
|
|
465
544
|
// text: 'Black',
|
|
466
545
|
// value: 'Black',
|
|
467
546
|
// },
|
|
468
|
-
//
|
|
469
|
-
//
|
|
470
|
-
|
|
547
|
+
// {
|
|
548
|
+
// text: 'Category 1',
|
|
549
|
+
// value: 'Category 1'
|
|
550
|
+
// },
|
|
551
|
+
// {
|
|
552
|
+
// text: 'Yellow',
|
|
553
|
+
// value: 'Yellow',
|
|
554
|
+
// },
|
|
555
|
+
// {
|
|
556
|
+
// text: 'Pink',
|
|
557
|
+
// value: 'Pink',
|
|
558
|
+
// },
|
|
559
|
+
// {
|
|
560
|
+
// text: 'Category 2',
|
|
561
|
+
// value: 'Category 666'
|
|
562
|
+
// },
|
|
563
|
+
// {
|
|
564
|
+
// text: 'Category 2',
|
|
565
|
+
// value: 'Category 555'
|
|
566
|
+
// },
|
|
567
|
+
// {
|
|
568
|
+
// text: 'Category 2',
|
|
569
|
+
// value: 'Category 55'
|
|
570
|
+
// },
|
|
571
|
+
// {
|
|
572
|
+
// text: 'Category 2',
|
|
573
|
+
// value: 'Category 44'
|
|
574
|
+
// },
|
|
575
|
+
// {
|
|
576
|
+
// text: 'Category 2',
|
|
577
|
+
// value: 'Category 33'
|
|
578
|
+
// },
|
|
579
|
+
// {
|
|
580
|
+
// text: 'Category 2',
|
|
581
|
+
// value: 'Category 22'
|
|
582
|
+
// },
|
|
583
|
+
// {
|
|
584
|
+
// text: 'Category 2',
|
|
585
|
+
// value: 'Category 11'
|
|
586
|
+
// }
|
|
587
|
+
// // {
|
|
588
|
+
// // text: 'Submenu',
|
|
589
|
+
// // value: 'Submenu',
|
|
590
|
+
// // children: [
|
|
591
|
+
// // {
|
|
592
|
+
// // text: 'Green',
|
|
593
|
+
// // value: 'Green',
|
|
594
|
+
// // },
|
|
595
|
+
// // {
|
|
596
|
+
// // text: 'Black',
|
|
597
|
+
// // value: 'Black',
|
|
598
|
+
// // },
|
|
599
|
+
// // ],
|
|
600
|
+
// // },
|
|
601
|
+
// ]
|
|
602
|
+
// }
|
|
603
|
+
,
|
|
604
|
+
|
|
605
|
+
options: options,
|
|
471
606
|
filterMultiple: true,
|
|
472
607
|
open: visible,
|
|
473
608
|
searchValue: searchValue,
|
|
@@ -477,9 +612,9 @@ const GridTable = props => {
|
|
|
477
612
|
default:
|
|
478
613
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
|
|
479
614
|
className: 'mb-1'
|
|
480
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
615
|
+
}, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Input, {
|
|
481
616
|
ref: searchInput,
|
|
482
|
-
placeholder: `Search ${column
|
|
617
|
+
placeholder: `Search ${column?.dataIndex}`,
|
|
483
618
|
value: selectedKeys[0],
|
|
484
619
|
onChange: e => setSelectedKeys(e.target.value ? [e.target.value] : []),
|
|
485
620
|
onPressEnter: () => handleSearch(selectedKeys, confirm),
|
|
@@ -487,12 +622,33 @@ const GridTable = props => {
|
|
|
487
622
|
}))));
|
|
488
623
|
}
|
|
489
624
|
};
|
|
625
|
+
const onFilterCallback = (key, data) => {
|
|
626
|
+
// console.log(key, data)
|
|
627
|
+
|
|
628
|
+
const find = dataSourceFilter.find(it => it.key === key);
|
|
629
|
+
if (find) {
|
|
630
|
+
const newData = (0, _hooks.updateArrayByKey)(dataSourceFilter, {
|
|
631
|
+
key,
|
|
632
|
+
data
|
|
633
|
+
}, 'key');
|
|
634
|
+
setDataSourceFilter(newData);
|
|
635
|
+
} else {
|
|
636
|
+
const newData = [...dataSourceFilter, {
|
|
637
|
+
key,
|
|
638
|
+
data
|
|
639
|
+
}];
|
|
640
|
+
setDataSourceFilter(newData);
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
// setDataSourceFilter([{key, data}])
|
|
644
|
+
};
|
|
645
|
+
|
|
646
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
490
647
|
const getColumnSearchProps = column => ({
|
|
491
648
|
filterDropdown: ({
|
|
492
649
|
setSelectedKeys,
|
|
493
650
|
selectedKeys,
|
|
494
651
|
confirm,
|
|
495
|
-
// clearFilters,
|
|
496
652
|
close,
|
|
497
653
|
setOperatorKey,
|
|
498
654
|
operatorKey,
|
|
@@ -500,16 +656,15 @@ const GridTable = props => {
|
|
|
500
656
|
searchValue,
|
|
501
657
|
setSearchValue
|
|
502
658
|
}) => {
|
|
503
|
-
// const typeFilter = getTypeFilter(columns as RcColumnType)
|
|
504
659
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
505
660
|
style: {
|
|
506
661
|
padding: 8,
|
|
507
662
|
minWidth: 275
|
|
508
663
|
},
|
|
509
664
|
onKeyDown: e => e.stopPropagation()
|
|
510
|
-
}, (column
|
|
665
|
+
}, (column?.showOperator !== false || column?.typeFilter !== 'DateRange' && column?.typeFilter !== 'NumberRange') && /*#__PURE__*/_react.default.createElement("div", {
|
|
511
666
|
className: 'mb-1'
|
|
512
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
667
|
+
}, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Select, {
|
|
513
668
|
options: (0, _hooks.translateOption)(_hooks.numberOperator, t),
|
|
514
669
|
style: {
|
|
515
670
|
width: '100%',
|
|
@@ -523,7 +678,7 @@ const GridTable = props => {
|
|
|
523
678
|
style: {
|
|
524
679
|
marginBottom: 8
|
|
525
680
|
}
|
|
526
|
-
}, renderFilter(column, selectedKeys, setSelectedKeys, confirm, visible, searchValue, setSearchValue)), /*#__PURE__*/_react.default.createElement(
|
|
681
|
+
}, renderFilter(column, selectedKeys, setSelectedKeys, confirm, visible, searchValue, setSearchValue)), /*#__PURE__*/_react.default.createElement(_space.default, {
|
|
527
682
|
style: {
|
|
528
683
|
justifyContent: 'end',
|
|
529
684
|
width: '100%'
|
|
@@ -549,50 +704,52 @@ const GridTable = props => {
|
|
|
549
704
|
}
|
|
550
705
|
}, "close")));
|
|
551
706
|
},
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
707
|
+
filterIcon: filtered => /*#__PURE__*/_react.default.createElement(_becoxyIcons.FilterFill, {
|
|
708
|
+
fontSize: 12,
|
|
709
|
+
onClick: () => {
|
|
710
|
+
console.log('onFilterClick', column);
|
|
711
|
+
onFilterClick?.(column, onFilterCallback);
|
|
712
|
+
},
|
|
713
|
+
style: {
|
|
714
|
+
color: filtered ? '#283046' : undefined
|
|
715
|
+
}
|
|
716
|
+
}),
|
|
560
717
|
filterDropdownProps: {
|
|
561
718
|
onOpenChange(open) {
|
|
562
719
|
if (open) {
|
|
563
720
|
setTimeout(() => searchInput.current?.select(), 100);
|
|
564
721
|
}
|
|
565
722
|
}
|
|
566
|
-
|
|
567
|
-
// trigger: ['hover']
|
|
568
723
|
}
|
|
569
724
|
});
|
|
725
|
+
|
|
726
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
570
727
|
const renderContent = column => value => {
|
|
571
728
|
switch (column?.type) {
|
|
572
729
|
case 'number':
|
|
573
|
-
const thousandSeparator = column
|
|
574
|
-
const decimalSeparator = column
|
|
575
|
-
const dec = column
|
|
730
|
+
const thousandSeparator = column?.format?.thousandSeparator ? column?.format?.thousandSeparator : format?.thousandSeparator;
|
|
731
|
+
const decimalSeparator = column?.format?.decimalSeparator ? column?.format?.decimalSeparator : format?.decimalSeparator;
|
|
732
|
+
const dec = column?.format?.decimalScale || column?.format?.decimalScale === 0 ? column?.format?.decimalScale : format?.decimalScale;
|
|
576
733
|
const content = !(0, _hooks.isEmpty)(value) ? dec || dec === 0 ? parseFloat(Number(value).toFixed(dec)).toString() : value.toString() : '0';
|
|
577
734
|
const numericFormatProps = {
|
|
578
735
|
thousandSeparator: (0, _hooks.checkThousandSeparator)(thousandSeparator, decimalSeparator),
|
|
579
736
|
decimalSeparator: (0, _hooks.checkDecimalSeparator)(thousandSeparator, decimalSeparator),
|
|
580
|
-
allowNegative: (column
|
|
581
|
-
prefix: column
|
|
582
|
-
suffix: column
|
|
583
|
-
decimalScale: column
|
|
584
|
-
fixedDecimalScale: (column
|
|
737
|
+
allowNegative: (column?.format?.allowNegative ? column?.format?.allowNegative : format?.allowNegative) ?? true,
|
|
738
|
+
prefix: column?.format?.prefix ? column?.format?.prefix : format?.prefix,
|
|
739
|
+
suffix: column?.format?.suffix ? column?.format?.suffix : format?.suffix,
|
|
740
|
+
decimalScale: column?.format?.decimalScale || column?.format?.decimalScale === 0 ? column?.format?.decimalScale : format?.decimalScale,
|
|
741
|
+
fixedDecimalScale: (column?.format?.fixedDecimalScale ? column?.format?.fixedDecimalScale : format?.fixedDecimalScale) ?? false
|
|
585
742
|
};
|
|
586
743
|
return !(0, _hooks.isEmpty)(content) ? (0, _reactNumericComponent.numericFormatter)(content, numericFormatProps) : '';
|
|
587
744
|
case 'date':
|
|
588
|
-
return value ? (0, _dayjs.default)(value).format(column
|
|
745
|
+
return value ? (0, _dayjs.default)(value).format(column?.format?.dateFormat ?? format?.dateFormat ?? 'DD/MM/YYYY') : '';
|
|
589
746
|
case 'time':
|
|
590
747
|
return value ? value : '';
|
|
591
748
|
case 'year':
|
|
592
749
|
const year = value ? (0, _moment.default)(value).format('yyyy') : '';
|
|
593
750
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, year);
|
|
594
751
|
case 'datetime':
|
|
595
|
-
return value ? (0, _moment.default)(value).format(column
|
|
752
|
+
return value ? (0, _moment.default)(value).format(column?.format?.datetimeFormat ?? format?.datetimeFormat ?? 'DD/MM/YYYY HH:mm') : '';
|
|
596
753
|
case 'boolean':
|
|
597
754
|
return value ? 'true' : 'false';
|
|
598
755
|
case 'color':
|
|
@@ -604,7 +761,7 @@ const GridTable = props => {
|
|
|
604
761
|
}
|
|
605
762
|
}) : '');
|
|
606
763
|
case 'checkbox':
|
|
607
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
764
|
+
return /*#__PURE__*/_react.default.createElement(_rcMasterUi.Input, {
|
|
608
765
|
checked: !!content,
|
|
609
766
|
readOnly: true,
|
|
610
767
|
type: "checkbox"
|
|
@@ -619,117 +776,45 @@ const GridTable = props => {
|
|
|
619
776
|
return value;
|
|
620
777
|
}
|
|
621
778
|
};
|
|
622
|
-
const
|
|
623
|
-
return
|
|
779
|
+
const addFilter = _react.default.useCallback(cols => {
|
|
780
|
+
return cols.map(column => {
|
|
624
781
|
// @ts-ignore
|
|
625
|
-
if (!column?.dataIndex && !column
|
|
782
|
+
if (!column?.dataIndex && !column?.key) {
|
|
626
783
|
return column;
|
|
627
784
|
}
|
|
628
785
|
// @ts-ignore
|
|
629
|
-
if (column?.children && column
|
|
786
|
+
if (column?.children && column?.children.length > 0) {
|
|
630
787
|
return {
|
|
631
788
|
...column,
|
|
632
789
|
// @ts-ignore
|
|
633
|
-
children:
|
|
790
|
+
children: addFilter(column?.children) // Xử lý đệ quy cho cấp con
|
|
634
791
|
};
|
|
635
792
|
}
|
|
636
793
|
// @ts-ignore
|
|
637
|
-
if (column?.dataIndex === 'index' || column
|
|
794
|
+
if (column?.dataIndex === 'index' || column?.allowFiltering === false) {
|
|
638
795
|
return {
|
|
639
796
|
...column
|
|
640
797
|
};
|
|
641
798
|
}
|
|
642
799
|
return {
|
|
643
800
|
...getColumnSearchProps(column),
|
|
801
|
+
onFilter: (value, record) => {
|
|
802
|
+
// @ts-ignore
|
|
803
|
+
return record[column?.dataIndex];
|
|
804
|
+
},
|
|
644
805
|
render: renderContent(column),
|
|
645
|
-
...column
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
const tmpColumns = (0, _react.useMemo)(() => {
|
|
650
|
-
// return addIsFilter(defaultColumns ?? [])
|
|
651
|
-
return addIsFilter(defaultColumns ? [_uiRc.Table.SELECTION_COLUMN, ...defaultColumns] : []);
|
|
652
|
-
}, [defaultColumns]);
|
|
653
|
-
const [columns, setColumns] = (0, _react.useState)(tmpColumns ?? []);
|
|
654
|
-
const handleResize = indexPath => (e, {
|
|
655
|
-
size
|
|
656
|
-
}) => {
|
|
657
|
-
const updateColumns = (cols, path) => {
|
|
658
|
-
const [currentIndex, ...restPath] = path;
|
|
659
|
-
return cols.map((col, idx) => {
|
|
660
|
-
if (idx === currentIndex) {
|
|
661
|
-
if (restPath.length === 0) {
|
|
662
|
-
// Cập nhật width của cột cuối cùng trong path
|
|
663
|
-
// return { ...col, width: size.width }
|
|
664
|
-
|
|
665
|
-
// Kiểm tra minWidth trước khi cập nhật width
|
|
666
|
-
if (col.minWidth && size.width < col.minWidth) {
|
|
667
|
-
e.preventDefault();
|
|
668
|
-
return col; // Không cập nhật nếu nhỏ hơn minWidth
|
|
669
|
-
}
|
|
670
|
-
|
|
671
|
-
// Kiểm tra minWidth trước khi cập nhật width
|
|
672
|
-
if (col.maxWidth && size.width > col.maxWidth) {
|
|
673
|
-
e.preventDefault();
|
|
674
|
-
return col; // Không cập nhật nếu nhỏ hơn minWidth
|
|
675
|
-
}
|
|
676
|
-
return {
|
|
677
|
-
...col,
|
|
678
|
-
width: size.width
|
|
679
|
-
};
|
|
680
|
-
} else if (col.children) {
|
|
681
|
-
// Tiếp tục cập nhật các cấp con
|
|
682
|
-
return {
|
|
683
|
-
...col,
|
|
684
|
-
children: updateColumns(col.children, restPath)
|
|
685
|
-
};
|
|
686
|
-
}
|
|
806
|
+
...column,
|
|
807
|
+
ellipsis: column?.ellipsis !== false,
|
|
808
|
+
sorter: () => {
|
|
809
|
+
// console.log('a, b, sortOrder', a, b, sortOrder)
|
|
687
810
|
}
|
|
688
|
-
// e.preventDefault()
|
|
689
|
-
return col;
|
|
690
|
-
});
|
|
691
|
-
};
|
|
692
|
-
setColumns(prevColumns => updateColumns(prevColumns, indexPath));
|
|
693
|
-
};
|
|
694
|
-
const addResizeHandlers = (cols, parentPath = []) => {
|
|
695
|
-
return cols.map((col, index) => {
|
|
696
|
-
const currentPath = [...parentPath, index];
|
|
697
|
-
if (!col?.dataIndex && !col.key) {
|
|
698
|
-
return col;
|
|
699
|
-
}
|
|
700
|
-
if (col.children) {
|
|
701
|
-
return {
|
|
702
|
-
...col,
|
|
703
|
-
ellipsis: col.ellipsis !== true,
|
|
704
|
-
children: addResizeHandlers(col.children, currentPath)
|
|
705
|
-
};
|
|
706
|
-
}
|
|
707
|
-
return {
|
|
708
|
-
...col,
|
|
709
|
-
ellipsis: col.ellipsis !== true,
|
|
710
|
-
onHeaderCell: () => ({
|
|
711
|
-
width: col.width,
|
|
712
|
-
onResize: handleResize(currentPath)
|
|
713
|
-
})
|
|
714
811
|
};
|
|
715
812
|
});
|
|
716
|
-
};
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
const resizableColumns = (0, _react.useMemo)(() => {
|
|
722
|
-
return addResizeHandlers(columns);
|
|
723
|
-
}, [columns]);
|
|
724
|
-
|
|
725
|
-
// const handleReset = (clearFilters: () => void) => {
|
|
726
|
-
// clearFilters()
|
|
727
|
-
// }
|
|
728
|
-
|
|
729
|
-
// const handleChangeOperator = (val: IFilterOperator) => {
|
|
730
|
-
// setOperator(val)
|
|
731
|
-
// }
|
|
732
|
-
|
|
813
|
+
}, [getColumnSearchProps, renderContent]);
|
|
814
|
+
const tmpColumns = (0, _react.useMemo)(() => {
|
|
815
|
+
// @ts-ignore
|
|
816
|
+
return addFilter(defaultColumns ?? []);
|
|
817
|
+
}, [addFilter, defaultColumns]);
|
|
733
818
|
const onContextMenu = data => event => {
|
|
734
819
|
event.preventDefault(); // Ngăn chặn menu mặc định của trình duyệt
|
|
735
820
|
|
|
@@ -827,7 +912,22 @@ const GridTable = props => {
|
|
|
827
912
|
}
|
|
828
913
|
}
|
|
829
914
|
};
|
|
830
|
-
|
|
915
|
+
const handleChange = sorter => {
|
|
916
|
+
console.log('Various parameters', sorter);
|
|
917
|
+
// setFilteredInfo(filters);
|
|
918
|
+
// setSortedInfo(sorter as Sorts);
|
|
919
|
+
};
|
|
920
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_antd.ConfigProvider, {
|
|
921
|
+
theme: {
|
|
922
|
+
components: {
|
|
923
|
+
Table: {
|
|
924
|
+
rowHoverBg: '#eb461912',
|
|
925
|
+
rowSelectedBg: '#eb4619',
|
|
926
|
+
rowSelectedHoverBg: '#eb4619'
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
}, /*#__PURE__*/_react.default.createElement(_ContextMenu.default, {
|
|
831
931
|
open: menuVisible,
|
|
832
932
|
pos: position,
|
|
833
933
|
setOpen: setMenuVisible,
|
|
@@ -835,7 +935,14 @@ const GridTable = props => {
|
|
|
835
935
|
contextMenuItems: contextMenuItems,
|
|
836
936
|
contextMenuClick: contextMenuClick,
|
|
837
937
|
rowData: selectedRowData
|
|
838
|
-
}), /*#__PURE__*/_react.default.createElement(
|
|
938
|
+
}), /*#__PURE__*/_react.default.createElement(_rcMasterUi.Table
|
|
939
|
+
// loading={defaultColumns && defaultColumns.length === 0}
|
|
940
|
+
// loading={true}
|
|
941
|
+
, (0, _extends2.default)({
|
|
942
|
+
loading: {
|
|
943
|
+
spinning: defaultColumns && defaultColumns.length === 0 || loading === true,
|
|
944
|
+
indicator: /*#__PURE__*/_react.default.createElement(_LoadingSpinner.default, null)
|
|
945
|
+
},
|
|
839
946
|
dataSource: dataSource
|
|
840
947
|
// className={styles.customTable}
|
|
841
948
|
,
|
|
@@ -843,19 +950,28 @@ const GridTable = props => {
|
|
|
843
950
|
'table-none-column-select': selectionSettings?.mode === undefined && selectionSettings?.type !== 'multiple'
|
|
844
951
|
}, styles.customTable),
|
|
845
952
|
bordered: true,
|
|
846
|
-
virtual: virtual
|
|
847
|
-
columns
|
|
953
|
+
virtual: virtual
|
|
954
|
+
// columns={resizableColumns as any}
|
|
955
|
+
,
|
|
956
|
+
columns: tmpColumns
|
|
957
|
+
// scroll={{ y: 550 }}
|
|
958
|
+
,
|
|
848
959
|
rowKey: rowKey,
|
|
849
960
|
rowHoverable: true,
|
|
850
961
|
components: {
|
|
851
962
|
header: {
|
|
852
963
|
cell: ResizableTitle
|
|
853
964
|
}
|
|
965
|
+
}
|
|
966
|
+
// scroll={scroll}
|
|
967
|
+
,
|
|
968
|
+
size: "small",
|
|
969
|
+
scroll: scroll ? scroll : {
|
|
970
|
+
y: 500
|
|
854
971
|
},
|
|
855
972
|
onRow: (data, index) => {
|
|
856
973
|
return {
|
|
857
974
|
onDoubleClick: handleRowDoubleClick(data, index),
|
|
858
|
-
// onClick: handleRowClick(data),
|
|
859
975
|
onClick: handleRowClick,
|
|
860
976
|
onContextMenu: onContextMenu(data)
|
|
861
977
|
};
|
|
@@ -865,6 +981,9 @@ const GridTable = props => {
|
|
|
865
981
|
// columnWidth: selectionSettings?.mode === 'checkbox' || selectionSettings?.mode === 'radio' || selectionSettings?.type === 'multiple' ? 50 : 0.000001,
|
|
866
982
|
columnWidth: !selectionSettings?.mode ? 0.0000001 : selectionSettings?.columnWidth ?? 50,
|
|
867
983
|
onChange: onSelectChange,
|
|
984
|
+
// onChange: (selectedRowKeys, selectedRows, info, selectedRow) => {
|
|
985
|
+
//
|
|
986
|
+
// },
|
|
868
987
|
// onSelect: (record, selected, selectedRows, nativeEvent)=> {
|
|
869
988
|
// // console.log(record, selected, selectedRows, nativeEvent)
|
|
870
989
|
// },
|
|
@@ -879,31 +998,9 @@ const GridTable = props => {
|
|
|
879
998
|
onScroll: () => {
|
|
880
999
|
setMenuVisible(false);
|
|
881
1000
|
},
|
|
882
|
-
|
|
883
|
-
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, "Header"), toolbarItems && /*#__PURE__*/_react.default.createElement("div", {
|
|
884
|
-
style: {
|
|
885
|
-
display: 'flex',
|
|
886
|
-
justifyContent: 'space-between'
|
|
887
|
-
}
|
|
888
|
-
}, /*#__PURE__*/_react.default.createElement(_uiRc.Toolbar, {
|
|
889
|
-
style: {
|
|
890
|
-
width: '100%'
|
|
891
|
-
},
|
|
892
|
-
items: toolbarItems,
|
|
893
|
-
mode: 'responsive'
|
|
894
|
-
// mode={'scroll'}
|
|
895
|
-
,
|
|
896
|
-
onClick: val => {
|
|
897
|
-
console.log(val);
|
|
898
|
-
}
|
|
899
|
-
}), showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
|
|
900
|
-
columns: columns,
|
|
901
|
-
setColumns: setColumns
|
|
902
|
-
}), /*#__PURE__*/_react.default.createElement("div", null)));
|
|
903
|
-
},
|
|
904
|
-
summary: () => /*#__PURE__*/_react.default.createElement(_uiRc.Table.Summary, {
|
|
1001
|
+
summary: () => /*#__PURE__*/_react.default.createElement(_rcMasterUi.Table.Summary, {
|
|
905
1002
|
fixed: true
|
|
906
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
1003
|
+
}, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Table.Summary.Row, null, (0, _useColumns.flatColumns)(tmpColumns).filter(col => col.hidden !== true).map((col, index) => {
|
|
907
1004
|
const thousandSeparator = col.format?.thousandSeparator ? col.format?.thousandSeparator : format?.thousandSeparator;
|
|
908
1005
|
const decimalSeparator = col.format?.decimalSeparator ? col.format?.decimalSeparator : format?.decimalSeparator;
|
|
909
1006
|
const dec = col.format?.decimalScale || col.format?.decimalScale === 0 ? col.format?.decimalScale : format?.decimalScale;
|
|
@@ -919,18 +1016,48 @@ const GridTable = props => {
|
|
|
919
1016
|
decimalScale: dec,
|
|
920
1017
|
fixedDecimalScale: (col.format?.fixedDecimalScale ? col.format?.fixedDecimalScale : format?.fixedDecimalScale) ?? false
|
|
921
1018
|
};
|
|
922
|
-
return (
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
key: index,
|
|
927
|
-
index: index
|
|
928
|
-
}, col.summaryTemplate ? col.summaryTemplate(cellValue, col.key) : (0, _reactNumericComponent.numericFormatter)(cellValue, numericFormatProps))
|
|
929
|
-
);
|
|
1019
|
+
return /*#__PURE__*/_react.default.createElement(_rcMasterUi.Table.Summary.Cell, {
|
|
1020
|
+
key: col.key,
|
|
1021
|
+
index: index
|
|
1022
|
+
}, col.summaryTemplate ? col.summaryTemplate(cellValue, col.key) : (0, _reactNumericComponent.numericFormatter)(cellValue, numericFormatProps));
|
|
930
1023
|
}))),
|
|
1024
|
+
pagination: pagination && pagination.onChange ? false : {
|
|
1025
|
+
showTotal: (total, range) => `${range[0]}-${range[1]} / ${total} items`,
|
|
1026
|
+
...pagination
|
|
1027
|
+
},
|
|
931
1028
|
onFilter: val => {
|
|
932
1029
|
onFilter?.(convertFilters(val));
|
|
1030
|
+
},
|
|
1031
|
+
onChange: (paging, filters, sorter) => handleChange(sorter),
|
|
1032
|
+
title: () => {
|
|
1033
|
+
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, title?.(dataSource)), (toolbarItems || showColumnChoose !== false) && /*#__PURE__*/_react.default.createElement("div", {
|
|
1034
|
+
style: {
|
|
1035
|
+
display: 'flex',
|
|
1036
|
+
justifyContent: 'space-between'
|
|
1037
|
+
}
|
|
1038
|
+
}, /*#__PURE__*/_react.default.createElement(_rcMasterUi.Toolbar, {
|
|
1039
|
+
style: {
|
|
1040
|
+
width: '100%'
|
|
1041
|
+
},
|
|
1042
|
+
items: toolbarItems ?? [],
|
|
1043
|
+
mode: 'responsive'
|
|
1044
|
+
// mode={'scroll'}
|
|
1045
|
+
,
|
|
1046
|
+
onClick: val => {
|
|
1047
|
+
console.log(val);
|
|
1048
|
+
}
|
|
1049
|
+
}), showColumnChoose && /*#__PURE__*/_react.default.createElement(_ColumnsChoose.ColumnsChoose, {
|
|
1050
|
+
columns: tmpColumns,
|
|
1051
|
+
setColumns: setColumns
|
|
1052
|
+
}), /*#__PURE__*/_react.default.createElement("div", null)));
|
|
933
1053
|
}
|
|
934
|
-
}))
|
|
1054
|
+
}, rest)), pagination && pagination.onChange && /*#__PURE__*/_react.default.createElement(_pagination.default
|
|
1055
|
+
// style={{padding: '0.75rem 1rem'}}
|
|
1056
|
+
, (0, _extends2.default)({
|
|
1057
|
+
showSizeChanger: true,
|
|
1058
|
+
responsive: true,
|
|
1059
|
+
size: 'small',
|
|
1060
|
+
showTotal: (total, range) => `${range[0]}-${range[1]} / ${total} items`
|
|
1061
|
+
}, pagination))));
|
|
935
1062
|
};
|
|
936
|
-
var _default = exports.default =
|
|
1063
|
+
var _default = exports.default = TableGrid;
|