es-grid-template 1.3.1 → 1.3.2

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 (39) hide show
  1. package/es/grid-component/CheckboxFilter.js +4 -0
  2. package/es/grid-component/CheckboxFilter2.d.ts +20 -0
  3. package/es/grid-component/CheckboxFilter2.js +248 -0
  4. package/es/grid-component/ContextMenu.js +1 -0
  5. package/es/grid-component/InternalTable.js +37 -3
  6. package/es/grid-component/TableGrid.d.ts +3 -0
  7. package/es/grid-component/TableGrid.js +69 -7
  8. package/es/grid-component/hooks/columns/index.js +14 -45
  9. package/es/grid-component/hooks/content/HeaderContent.js +54 -58
  10. package/es/grid-component/hooks/useColumns.js +22 -8
  11. package/es/grid-component/hooks/utils.d.ts +8 -0
  12. package/es/grid-component/hooks/utils.js +257 -1
  13. package/es/grid-component/number-range/index.d.ts +10 -0
  14. package/es/grid-component/number-range/index.js +59 -0
  15. package/es/grid-component/table/Grid.d.ts +3 -0
  16. package/es/grid-component/table/GridEdit.js +281 -62
  17. package/es/grid-component/table/Group.d.ts +1 -0
  18. package/es/grid-component/table/Group.js +1 -1
  19. package/es/grid-component/type.d.ts +2 -1
  20. package/lib/grid-component/CheckboxFilter.js +4 -0
  21. package/lib/grid-component/CheckboxFilter2.d.ts +20 -0
  22. package/lib/grid-component/CheckboxFilter2.js +257 -0
  23. package/lib/grid-component/ContextMenu.js +1 -0
  24. package/lib/grid-component/InternalTable.js +31 -2
  25. package/lib/grid-component/TableGrid.d.ts +3 -0
  26. package/lib/grid-component/TableGrid.js +67 -7
  27. package/lib/grid-component/hooks/columns/index.js +14 -45
  28. package/lib/grid-component/hooks/content/HeaderContent.js +53 -55
  29. package/lib/grid-component/hooks/useColumns.js +22 -8
  30. package/lib/grid-component/hooks/utils.d.ts +8 -0
  31. package/lib/grid-component/hooks/utils.js +270 -3
  32. package/lib/grid-component/number-range/index.d.ts +10 -0
  33. package/lib/grid-component/number-range/index.js +67 -0
  34. package/lib/grid-component/table/Grid.d.ts +3 -0
  35. package/lib/grid-component/table/GridEdit.js +281 -62
  36. package/lib/grid-component/table/Group.d.ts +1 -0
  37. package/lib/grid-component/table/Group.js +1 -1
  38. package/lib/grid-component/type.d.ts +2 -1
  39. package/package.json +109 -108
@@ -0,0 +1,257 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var React = _interopRequireWildcard(require("react"));
9
+ var _classnames = _interopRequireDefault(require("classnames"));
10
+ var _FilterSearch = _interopRequireDefault(require("./FilterSearch"));
11
+ var _rcMasterUi = require("rc-master-ui");
12
+ var _antd = require("antd");
13
+ var _useFilter = require("rc-master-ui/es/table/hooks/useFilter");
14
+ 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); }
15
+ 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; }
16
+ // import Tree from "rc-master-ui/es/tree";
17
+
18
+ function searchValueMatched(searchValue, text) {
19
+ if (typeof text === 'string' || typeof text === 'number') {
20
+ return text?.toString().toLowerCase().includes(searchValue.trim().toLowerCase());
21
+ }
22
+ return false;
23
+ }
24
+ function renderFilterItems({
25
+ filters,
26
+ prefixCls,
27
+ filteredKeys,
28
+ filterMultiple,
29
+ searchValue,
30
+ filterSearch
31
+ }) {
32
+ return filters.map((filter, index) => {
33
+ const key = String(filter.value);
34
+ if (filter.children) {
35
+ return {
36
+ key: key || index,
37
+ label: filter.text,
38
+ popupClassName: `${prefixCls}-dropdown-submenu`,
39
+ children: renderFilterItems({
40
+ filters: filter.children,
41
+ prefixCls,
42
+ filteredKeys,
43
+ filterMultiple,
44
+ searchValue,
45
+ filterSearch
46
+ })
47
+ };
48
+ }
49
+ const Component = filterMultiple ? _rcMasterUi.Checkbox : _rcMasterUi.Radio;
50
+ const item = {
51
+ key: filter.value !== undefined ? key : index,
52
+ label: /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Component, {
53
+ checked: filteredKeys.includes(key)
54
+ }), /*#__PURE__*/React.createElement("span", null, filter.text))
55
+ };
56
+ if (searchValue.trim()) {
57
+ if (typeof filterSearch === 'function') {
58
+ return filterSearch(searchValue, filter) ? item : null;
59
+ }
60
+ return searchValueMatched(searchValue, filter.text) ? item : null;
61
+ }
62
+ return item;
63
+ });
64
+ }
65
+ function hasSubMenu(filters) {
66
+ return filters.some(({
67
+ children
68
+ }) => children);
69
+ }
70
+ const CheckboxFilter = props => {
71
+ const {
72
+ // column,
73
+ filterSearch = true,
74
+ tablePrefixCls = 'ui-rc-table',
75
+ prefixCls = 'ui-rc-table-filter',
76
+ dropdownPrefixCls = 'ui-rc-dropdown',
77
+ filterMultiple,
78
+ selectedKeys,
79
+ locale,
80
+ options,
81
+ filterMode = 'tree',
82
+ // open,
83
+ searchValue,
84
+ showFilter,
85
+ setSearchValue,
86
+ onSelect
87
+ } = props;
88
+
89
+ // const [searchValue, setSearchValue] = React.useState('');
90
+
91
+ console.log('options', options);
92
+ const [openKeys, setOpenKeys] = React.useState([]);
93
+
94
+ // clear search value after close filter dropdown
95
+ // React.useEffect(() => {
96
+ // // if (visible) {
97
+ // setSearchValue('');
98
+ // // }
99
+ // }, [open]);
100
+
101
+ const onOpenChange = keys => {
102
+ setOpenKeys(keys);
103
+ };
104
+ const items = renderFilterItems({
105
+ // filters: column.filters || [],
106
+ filters: options || [],
107
+ filterSearch,
108
+ prefixCls,
109
+ filteredKeys: selectedKeys ?? [],
110
+ filterMultiple,
111
+ searchValue
112
+ });
113
+ const dropdownMenuClass = (0, _classnames.default)({
114
+ // [`${dropdownPrefixCls}-menu-without-submenu`]: !hasSubMenu(column.filters || []),
115
+ [`${dropdownPrefixCls}-menu-without-submenu`]: !hasSubMenu(options || [])
116
+ });
117
+ const empty = /*#__PURE__*/React.createElement(_rcMasterUi.Empty, {
118
+ image: _rcMasterUi.Empty.PRESENTED_IMAGE_SIMPLE,
119
+ description: locale?.filterEmptyText,
120
+ imageStyle: {
121
+ height: 24
122
+ },
123
+ style: {
124
+ margin: 0,
125
+ padding: '16px 0'
126
+ }
127
+ });
128
+ const isEmpty = items.every(item => item === null);
129
+ const onSearch = e => {
130
+ const {
131
+ value
132
+ } = e.target;
133
+ setSearchValue(value);
134
+ };
135
+
136
+ // if ((column.filters || []).length === 0) {
137
+ // return empty;
138
+ // }
139
+
140
+ const getTreeData = ({
141
+ filters
142
+ }) => (filters || []).map((filter, index) => {
143
+ const key = String(filter.value);
144
+ const item = {
145
+ title: filter.text,
146
+ key: filter.value !== undefined ? key : String(index)
147
+ };
148
+ if (filter.children) {
149
+ item.children = getTreeData({
150
+ filters: filter.children
151
+ });
152
+ }
153
+ return item;
154
+ });
155
+ const getFilterData = node => ({
156
+ ...node,
157
+ text: node.title,
158
+ value: node.key,
159
+ children: node.children?.map(item => getFilterData(item)) || []
160
+ });
161
+ const onCheckAll = e => {
162
+ if (e.target.checked) {
163
+ const allFilterKeys = (0, _useFilter.flattenKeys)(options).map(key => String(key));
164
+
165
+ // setFilteredKeysSync(allFilterKeys);
166
+ onSelect?.(allFilterKeys);
167
+ } else {
168
+ onSelect?.([]);
169
+ // setFilteredKeysSync([]);
170
+ }
171
+ };
172
+ const onCheck = (keys, {
173
+ node,
174
+ checked
175
+ }) => {
176
+ if (!filterMultiple) {
177
+ // onSelectKeys({ selectedKeys: checked && node.key ? [node.key] : [] });
178
+ onSelect?.(checked && node.key ? [node.key] : []);
179
+ } else {
180
+ // onSelectKeys({ selectedKeys: keys });
181
+ onSelect?.(keys);
182
+ }
183
+ };
184
+ console.log('getTreeData({ filters: options })', getTreeData({
185
+ filters: options
186
+ }));
187
+ if (filterMode === 'tree') {
188
+ return /*#__PURE__*/React.createElement(React.Fragment, null, showFilter && /*#__PURE__*/React.createElement(_FilterSearch.default, {
189
+ filterSearch: filterSearch,
190
+ value: searchValue,
191
+ onChange: onSearch,
192
+ tablePrefixCls: tablePrefixCls,
193
+ locale: locale
194
+ }), /*#__PURE__*/React.createElement("div", {
195
+ className: `${tablePrefixCls}-filter-dropdown-tree`
196
+ }, filterMultiple && options.length > 0 ? /*#__PURE__*/React.createElement(_rcMasterUi.Checkbox
197
+ // checked={selectedKeys.length === flattenKeys(column.filters).length}
198
+ , {
199
+ checked: selectedKeys.length === (0, _useFilter.flattenKeys)(options).length
200
+ // indeterminate={
201
+ // selectedKeys.length > 0 &&
202
+ // selectedKeys.length < flattenKeys(column.filters).length
203
+ // }
204
+ ,
205
+
206
+ indeterminate: selectedKeys.length > 0 && selectedKeys.length < (0, _useFilter.flattenKeys)(options).length,
207
+ className: `${tablePrefixCls}-filter-dropdown-checkall`,
208
+ onChange: onCheckAll
209
+ }, locale?.filterCheckall) : /*#__PURE__*/React.createElement(_rcMasterUi.Empty, null), /*#__PURE__*/React.createElement(_antd.Tree, {
210
+ checkable: true,
211
+ selectable: false,
212
+ blockNode: true,
213
+ multiple: filterMultiple,
214
+ checkStrictly: !filterMultiple,
215
+ className: `${dropdownPrefixCls}-menu`,
216
+ onCheck: onCheck,
217
+ checkedKeys: selectedKeys,
218
+ selectedKeys: selectedKeys,
219
+ showIcon: false
220
+ // treeData={getTreeData({ filters: column.filters })}
221
+ ,
222
+ treeData: getTreeData({
223
+ filters: options
224
+ }),
225
+ autoExpandParent: true,
226
+ defaultExpandAll: true,
227
+ filterTreeNode: searchValue.trim() ? node => {
228
+ if (typeof filterSearch === 'function') {
229
+ // @ts-ignore
230
+ return filterSearch(searchValue, getFilterData(node));
231
+ }
232
+ return searchValueMatched(searchValue, node.title);
233
+ } : undefined
234
+ })));
235
+ }
236
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_FilterSearch.default, {
237
+ filterSearch: filterSearch,
238
+ value: searchValue,
239
+ onChange: onSearch,
240
+ tablePrefixCls: tablePrefixCls,
241
+ locale: locale
242
+ }), isEmpty ? empty : /*#__PURE__*/React.createElement(_rcMasterUi.Menu, {
243
+ selectable: true,
244
+ multiple: filterMultiple,
245
+ prefixCls: `${dropdownPrefixCls}-menu`,
246
+ className: dropdownMenuClass,
247
+ onSelect: onSelect,
248
+ onDeselect: onSelect,
249
+ selectedKeys: selectedKeys
250
+ // getPopupContainer={getPopupContainer}
251
+ ,
252
+ openKeys: openKeys,
253
+ onOpenChange: onOpenChange,
254
+ items: items
255
+ }));
256
+ };
257
+ var _default = exports.default = CheckboxFilter;
@@ -93,6 +93,7 @@ const ContextMenu = props => {
93
93
  React.createElement(_antd.Dropdown, {
94
94
  placement: 'topRight',
95
95
  open: open,
96
+ overlayClassName: 'be-popup-container',
96
97
  overlayStyle: {
97
98
  left: `${pos.x}px`,
98
99
  top: `${pos.y}px`
@@ -68,7 +68,8 @@ const InternalTable = props => {
68
68
  dataSource,
69
69
  allowResizing,
70
70
  dataSourceFilter: propDataSourceFilter,
71
- onFilterClick,
71
+ // onFilterClick,
72
+ // onFilter,
72
73
  editAble,
73
74
  rowKey: propRowKey,
74
75
  format,
@@ -97,8 +98,15 @@ const InternalTable = props => {
97
98
  ...local.lang
98
99
  }
99
100
  };
101
+
102
+ // const [filterStates, setFilterState] = React.useState<any>(null)
103
+ // const [isFilter, setIsFilter] = React.useState<boolean>(false);
104
+
100
105
  const mergerdData = _react.default.useMemo(() => {
106
+ // return filterDataByColumns2(addRowIdArray(dataSource), filterStates)
107
+ // return filterDataByColumns3(addRowIdArray(dataSource), filterStates)
101
108
  return (0, _hooks.addRowIdArray)(dataSource);
109
+ // return dataSource
102
110
  }, [dataSource]);
103
111
  const [columns, setColumns] = _react.default.useState([]);
104
112
  const tableRef = _react.default.useRef(null);
@@ -143,7 +151,8 @@ const InternalTable = props => {
143
151
  locale,
144
152
  t,
145
153
  rowKey,
146
- dataSource: mergerdData,
154
+ // dataSource: mergerdData,
155
+ dataSource,
147
156
  buddhistLocale,
148
157
  dataSourceFilter: propDataSourceFilter,
149
158
  format,
@@ -211,7 +220,22 @@ const InternalTable = props => {
211
220
  // setData(newData)
212
221
  // setMergedData(newData)
213
222
  onDataChange?.(newData);
223
+ // onDataChange?.(removeFieldRecursive(newData, 'isFilterState'))
214
224
  };
225
+
226
+ // const triggerFilter = (queries: any) => {
227
+ // console.log('queries', queries)
228
+ // // console.log('data', dataSource)
229
+ // setFilterState(queries)
230
+ //
231
+ // if (queries && queries.length > 0) {
232
+ // setIsFilter(true)
233
+ // } else {
234
+ // setIsFilter(false)
235
+ // }
236
+ //
237
+ // }
238
+
215
239
  const triggerCommandClick = args => {
216
240
  const {
217
241
  id,
@@ -370,6 +394,7 @@ const InternalTable = props => {
370
394
  locale: locale,
371
395
  tableRef: tableRef,
372
396
  dataSource: mergerdData
397
+ // dataSource={dataSource}
373
398
  // components={components}
374
399
  ,
375
400
  components: {
@@ -395,6 +420,10 @@ const InternalTable = props => {
395
420
  groupAble: groupAble,
396
421
  groupColumns: groupColumns,
397
422
  commandClick: triggerCommandClick
423
+ // triggerFilter={triggerFilter}
424
+ // isFilter={isFilter}
425
+ // setIsFilter={setIsFilter}
426
+ // onScroll={onScroll}
398
427
  }));
399
428
  };
400
429
  var _default = exports.default = InternalTable;
@@ -5,12 +5,15 @@ import type { ColumnsTable, GetRowKey, GridTableProps } from "./type";
5
5
  type GridProps<T> = GridTableProps<T> & {
6
6
  triggerChangeColumns?: (columns: ColumnsTable<T>, type: string) => void;
7
7
  triggerChangeData?: (newData: T[], type: string) => void;
8
+ triggerFilter?: (queries: any) => void;
8
9
  triggerGroupColumns?: (groupedColumns: string[]) => void;
9
10
  tableRef: any;
10
11
  bottomToolbar?: () => React.ReactElement;
11
12
  getRowKey: GetRowKey<T>;
12
13
  rowSelection?: any;
13
14
  groupToolbar?: () => React.ReactNode;
15
+ isFilter?: boolean;
16
+ setIsFilter?: React.Dispatch<React.SetStateAction<boolean>>;
14
17
  };
15
18
  declare const TableGrid: <RecordType extends object>(props: GridProps<RecordType>) => React.JSX.Element;
16
19
  export default TableGrid;
@@ -21,6 +21,7 @@ var _LoadingSpinner = _interopRequireDefault(require("./LoadingSpinner"));
21
21
  var _ColumnsChoose = require("./ColumnsChoose");
22
22
  var _useMergedState = _interopRequireDefault(require("rc-util/lib/hooks/useMergedState"));
23
23
  var _AdvanceFilter = _interopRequireDefault(require("./AdvanceFilter"));
24
+ var _reactTooltip = require("react-tooltip");
24
25
  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); }
25
26
  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; }
26
27
  // import {ConfigProvider} from "antd";
@@ -48,6 +49,40 @@ const convertFilters = filters => {
48
49
  predicate: "and",
49
50
  operator: "lessthanorequal"
50
51
  });
52
+ } else if (column?.typeFilter === "NumberRange") {
53
+ if ((filteredKeys[0] || filteredKeys[0] === 0) && !filteredKeys[1]) {
54
+ result.push({
55
+ key,
56
+ field: column?.dataIndex,
57
+ value: filteredKeys[0],
58
+ predicate: "and",
59
+ operator: "greaterthanorequal"
60
+ });
61
+ }
62
+ if ((filteredKeys[1] || filteredKeys[1] === 0) && !filteredKeys[0]) {
63
+ result.push({
64
+ key,
65
+ field: column?.dataIndex,
66
+ value: filteredKeys[1],
67
+ predicate: "and",
68
+ operator: "lessthanorequal"
69
+ });
70
+ }
71
+ if ((filteredKeys[0] || filteredKeys[0] === 0) && (filteredKeys[1] || filteredKeys[1] === 0)) {
72
+ result.push({
73
+ key,
74
+ field: column?.dataIndex,
75
+ value: filteredKeys[0],
76
+ predicate: "and",
77
+ operator: "greaterthanorequal"
78
+ }, {
79
+ key,
80
+ field: column?.dataIndex,
81
+ value: filteredKeys[1],
82
+ predicate: "and",
83
+ operator: "lessthanorequal"
84
+ });
85
+ }
51
86
  } else if (column?.typeFilter === 'Checkbox') {
52
87
  filteredKeys.forEach(value => {
53
88
  result.push({
@@ -115,6 +150,7 @@ const TableGrid = props => {
115
150
  showColumnChoose,
116
151
  showAdvanceFilter,
117
152
  onFilter,
153
+ triggerFilter,
118
154
  selectionSettings,
119
155
  rowSelection,
120
156
  rowSelected,
@@ -136,6 +172,7 @@ const TableGrid = props => {
136
172
  groupColumns,
137
173
  groupToolbar,
138
174
  showEmptyText,
175
+ setIsFilter,
139
176
  ...rest
140
177
  } = props;
141
178
  const {
@@ -162,6 +199,7 @@ const TableGrid = props => {
162
199
  viewportWidth,
163
200
  viewportHeight
164
201
  });
202
+ const [filterStates, setFilterState] = _react.default.useState(null);
165
203
 
166
204
  // const [selectedRowKeys, setSelectedRowKeys] = useState<React.Key[]>(defaultSelected);
167
205
 
@@ -298,6 +336,18 @@ const TableGrid = props => {
298
336
  const handleChange = sorter => {
299
337
  onSorter?.(sorter);
300
338
  };
339
+ const handleOnFilter = queries => {
340
+ if (onFilter) {
341
+ onFilter?.(convertFilters(queries));
342
+ } else {
343
+ setFilterState(convertFilters(queries));
344
+ if (queries && queries.length > 0) {
345
+ setIsFilter?.(true);
346
+ } else {
347
+ setIsFilter?.(false);
348
+ }
349
+ }
350
+ };
301
351
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_ContextMenu.default, {
302
352
  open: menuVisible,
303
353
  pos: position,
@@ -309,7 +359,9 @@ const TableGrid = props => {
309
359
  }), /*#__PURE__*/_react.default.createElement(_rcMasterUi.Table, (0, _extends2.default)({
310
360
  ref: tableRef
311
361
  }, rest, {
362
+ tableLayout: 'fixed'
312
363
  // id={newGuid()}
364
+ ,
313
365
  locale: {
314
366
  ...locale,
315
367
  emptyText: showEmptyText !== false ? /*#__PURE__*/_react.default.createElement(_rcMasterUi.Empty, {
@@ -321,7 +373,8 @@ const TableGrid = props => {
321
373
  spinning: columns && columns.length === 0 || loading === true,
322
374
  indicator: /*#__PURE__*/_react.default.createElement(_LoadingSpinner.default, null)
323
375
  },
324
- dataSource: columns && columns.length > 0 && loading !== true ? dataSource : []
376
+ dataSource: columns && columns.length > 0 && loading !== true ? (0, _hooks.filterDataByColumns3)(dataSource, filterStates) : []
377
+ // dataSource={columns && columns.length > 0 && loading !== true ? dataSource : []}
325
378
  // className={styles.customTable}
326
379
  ,
327
380
  className: (0, _classnames.default)(className, {
@@ -356,10 +409,13 @@ const TableGrid = props => {
356
409
  // checkStrictly: false,
357
410
 
358
411
  hideSelectAll: !type || type === 'single' || selectionSettings?.mode === 'radio' ? true : hideSelectAll ?? type !== 'multiple'
359
- },
360
- onScroll: () => {
361
- setMenuVisible(false);
362
- },
412
+ }
413
+
414
+ // onScroll={() => {
415
+ // setMenuVisible(false)
416
+ // }}
417
+ ,
418
+
363
419
  summary: () => {
364
420
  if (typeof summary === 'function') {
365
421
  return summary(dataSource);
@@ -398,7 +454,9 @@ const TableGrid = props => {
398
454
  ...pagination
399
455
  },
400
456
  onFilter: val => {
401
- onFilter?.(convertFilters(val));
457
+ handleOnFilter(val);
458
+ // triggerFilter?.(convertFilters(val))
459
+ // onFilter?.(convertFilters(val))
402
460
  },
403
461
  onChange: (paging, filters, sorter) => handleChange(sorter),
404
462
  title: showToolbar === false ? undefined : () => {
@@ -460,6 +518,8 @@ const TableGrid = props => {
460
518
  // @ts-ignore
461
519
  ,
462
520
  showTotal: (total, range) => `${range[0]}-${range[1]} / ${total} ${t ? t(pagination?.locale?.items ?? 'items') : 'items'}`
463
- }, pagination)), bottomToolbar?.());
521
+ }, pagination)), bottomToolbar?.(), /*#__PURE__*/_react.default.createElement(_reactTooltip.Tooltip, {
522
+ id: "tooltip-header"
523
+ }));
464
524
  };
465
525
  var _default = exports.default = TableGrid;
@@ -15,6 +15,7 @@ var _react = _interopRequireWildcard(require("react"));
15
15
  var _rcMasterUi = require("rc-master-ui");
16
16
  var _CheckboxFilter = _interopRequireDefault(require("../../CheckboxFilter"));
17
17
  var _useSelection = require("rc-master-ui/es/table/hooks/useSelection");
18
+ var _numberRange = _interopRequireDefault(require("../../number-range"));
18
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
19
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
21
  const {
@@ -144,11 +145,6 @@ const renderFilter = (column, selectedKeys, setSelectedKeys, confirm, visible, s
144
145
  const dateRangeFormat = (0, _utils.getDatepickerFormat)(column?.type, column) ?? 'DD/MM/YYYY';
145
146
  const find = dataSourceFilter?.find(it => it.key === column?.field);
146
147
  const options = find ? find.data : [];
147
-
148
- // console.log('dataSourceFilter', dataSourceFilter)
149
- // console.log('options', options)
150
- // console.log('column', column)
151
-
152
148
  switch (type) {
153
149
  case 'Number':
154
150
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
@@ -168,39 +164,15 @@ const renderFilter = (column, selectedKeys, setSelectedKeys, confirm, visible, s
168
164
  }
169
165
  }))));
170
166
  case 'NumberRange':
171
- return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
172
- className: 'mb-1 d-flex flex-column gap-1'
173
- }, /*#__PURE__*/_react.default.createElement("div", {
174
- style: {
175
- marginBottom: 8
167
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_numberRange.default, {
168
+ t: t,
169
+ min: selectedKeys[0],
170
+ max: selectedKeys[1],
171
+ onChange: vals => {
172
+ console.log('NumberRange', vals);
173
+ setSelectedKeys(vals);
176
174
  }
177
- }, /*#__PURE__*/_react.default.createElement(_reactNumericComponent.NumericFormat, {
178
- value: selectedKeys[0]
179
- // thousandSeparator={checkThousandSeparator(thousandSeparator, decimalSeparator)}
180
- // decimalSeparator={checkDecimalSeparator(thousandSeparator, decimalSeparator)}
181
- ,
182
- allowNegative: true,
183
- customInput: _rcMasterUi.Input,
184
- className: ' rounded-0 input-element form-control'
185
- // onValueChange={(values: any) => {
186
- // onChangeValueFilter(type, values.floatValue, 'min')
187
- // }}
188
- ,
189
- placeholder: t ? t('Min') : 'Min',
190
- autoFocus: true
191
- })), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_reactNumericComponent.NumericFormat, {
192
- value: selectedKeys[1]
193
- // thousandSeparator={checkThousandSeparator(thousandSeparator, decimalSeparator)}
194
- // decimalSeparator={checkDecimalSeparator(thousandSeparator, decimalSeparator)}
195
- ,
196
- allowNegative: true,
197
- customInput: _rcMasterUi.Input,
198
- className: ' rounded-0 input-element form-control',
199
- onValueChange: () => {
200
- // onChangeValueFilter(type, values.floatValue, 'max')
201
- },
202
- placeholder: t ? t('Max') : 'Max'
203
- })))));
175
+ })));
204
176
  case 'Date':
205
177
  const dateValue = selectedKeys[0] ? (0, _utils.convertDateToDayjs)(new Date(selectedKeys[0]), dateFormat) : null;
206
178
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
@@ -451,16 +423,13 @@ const renderFilter = (column, selectedKeys, setSelectedKeys, confirm, visible, s
451
423
  case 'Checkbox':
452
424
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
453
425
  className: 'mb-1'
454
- }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_CheckboxFilter.default
455
- // locale={{
456
- // filterTitle: 'Chọn tất cả',
457
- // filterCheckall: 'Chọn tất cả'
458
- // }}
459
- , {
426
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_CheckboxFilter.default, {
460
427
  locale: locale,
461
428
  selectedKeys: selectedKeys,
462
- onSelect: setSelectedKeys,
463
- options: options,
429
+ onSelect: setSelectedKeys
430
+ // options={options}
431
+ ,
432
+ options: column.source ? column.source : options ?? [],
464
433
  filterMultiple: true,
465
434
  open: visible,
466
435
  searchValue: searchValue,