es-grid-template 1.3.0 → 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.
- package/assets/index.css +16 -0
- package/assets/index.scss +37 -3
- package/es/grid-component/CheckboxFilter.js +4 -0
- package/es/grid-component/CheckboxFilter2.d.ts +20 -0
- package/es/grid-component/CheckboxFilter2.js +248 -0
- package/es/grid-component/ColumnsGroup/ColumnsGroup.js +4 -4
- package/es/grid-component/ContextMenu.js +1 -0
- package/es/grid-component/ConvertColumnTable.js +1 -0
- package/es/grid-component/EditableCell.js +11 -8
- package/es/grid-component/InternalTable.js +47 -11
- package/es/grid-component/TableGrid.d.ts +3 -0
- package/es/grid-component/TableGrid.js +71 -7
- package/es/grid-component/hooks/columns/index.js +14 -45
- package/es/grid-component/hooks/content/HeaderContent.js +54 -58
- package/es/grid-component/hooks/useColumns.d.ts +4 -2
- package/es/grid-component/hooks/useColumns.js +32 -13
- package/es/grid-component/hooks/utils.d.ts +9 -0
- package/es/grid-component/hooks/utils.js +278 -1
- package/es/grid-component/number-range/index.d.ts +10 -0
- package/es/grid-component/number-range/index.js +59 -0
- package/es/grid-component/styles.scss +24 -0
- package/es/grid-component/table/Grid.d.ts +3 -0
- package/es/grid-component/table/GridEdit.js +360 -106
- package/es/grid-component/table/Group.d.ts +1 -0
- package/es/grid-component/table/Group.js +1 -1
- package/es/grid-component/type.d.ts +2 -1
- package/lib/grid-component/CheckboxFilter.js +4 -0
- package/lib/grid-component/CheckboxFilter2.d.ts +20 -0
- package/lib/grid-component/CheckboxFilter2.js +257 -0
- package/lib/grid-component/ColumnsGroup/ColumnsGroup.js +4 -4
- package/lib/grid-component/ContextMenu.js +1 -0
- package/lib/grid-component/ConvertColumnTable.js +1 -0
- package/lib/grid-component/EditableCell.js +11 -8
- package/lib/grid-component/InternalTable.js +41 -10
- package/lib/grid-component/TableGrid.d.ts +3 -0
- package/lib/grid-component/TableGrid.js +68 -7
- package/lib/grid-component/hooks/columns/index.js +14 -45
- package/lib/grid-component/hooks/content/HeaderContent.js +53 -55
- package/lib/grid-component/hooks/useColumns.d.ts +4 -2
- package/lib/grid-component/hooks/useColumns.js +31 -12
- package/lib/grid-component/hooks/utils.d.ts +9 -0
- package/lib/grid-component/hooks/utils.js +293 -4
- package/lib/grid-component/number-range/index.d.ts +10 -0
- package/lib/grid-component/number-range/index.js +67 -0
- package/lib/grid-component/styles.scss +24 -0
- package/lib/grid-component/table/Grid.d.ts +3 -0
- package/lib/grid-component/table/GridEdit.js +358 -104
- package/lib/grid-component/table/Group.d.ts +1 -0
- package/lib/grid-component/table/Group.js +1 -1
- package/lib/grid-component/type.d.ts +2 -1
- package/package.json +109 -108
|
@@ -8,6 +8,7 @@ type Props<T> = GridTableProps<T> & {
|
|
|
8
8
|
getRowKey: GetRowKey<T>;
|
|
9
9
|
triggerGroupColumns?: (groupedColumns: string[]) => void;
|
|
10
10
|
triggerPaste?: (pastedRows: T[], pastedColumnsArray: string[], newData: T[]) => void;
|
|
11
|
+
triggerFilter?: (queries: any) => void;
|
|
11
12
|
};
|
|
12
13
|
declare const Group: <RecordType extends object>(props: Props<RecordType>) => React.JSX.Element;
|
|
13
14
|
export default Group;
|
|
@@ -67,7 +67,7 @@ const Group = props => {
|
|
|
67
67
|
gap: '10px',
|
|
68
68
|
marginRight: 10
|
|
69
69
|
}
|
|
70
|
-
}, /*#__PURE__*/React.createElement(ColumnsGroup, {
|
|
70
|
+
}, groupSetting?.showGroupIcon !== false && /*#__PURE__*/React.createElement(ColumnsGroup, {
|
|
71
71
|
t: t
|
|
72
72
|
// defaultGroupColumns={['name']}
|
|
73
73
|
,
|
|
@@ -18,7 +18,7 @@ export type ToolbarItem = Omit<RcToolbarItem, 'position' | 'align'> & {
|
|
|
18
18
|
align?: ITextAlign;
|
|
19
19
|
onClick?: (args: any) => void;
|
|
20
20
|
};
|
|
21
|
-
export type ContextMenuItem = ItemType
|
|
21
|
+
export type ContextMenuItem = ItemType;
|
|
22
22
|
export type ITemplateColumn = {
|
|
23
23
|
value: any;
|
|
24
24
|
column: any;
|
|
@@ -218,6 +218,7 @@ export type IGroupSetting = {
|
|
|
218
218
|
client?: boolean;
|
|
219
219
|
onGroup?: (props: IOnGroup) => void;
|
|
220
220
|
hiddenColumnGroup?: boolean;
|
|
221
|
+
showGroupIcon?: boolean;
|
|
221
222
|
unClearableLevel?: 1 | 2 | 3 | undefined;
|
|
222
223
|
};
|
|
223
224
|
type IOnGroup = {
|
|
@@ -88,6 +88,7 @@ const CheckboxFilter = props => {
|
|
|
88
88
|
|
|
89
89
|
// const [searchValue, setSearchValue] = React.useState('');
|
|
90
90
|
|
|
91
|
+
console.log('options', options);
|
|
91
92
|
const [openKeys, setOpenKeys] = React.useState([]);
|
|
92
93
|
|
|
93
94
|
// clear search value after close filter dropdown
|
|
@@ -180,6 +181,9 @@ const CheckboxFilter = props => {
|
|
|
180
181
|
onSelect?.(keys);
|
|
181
182
|
}
|
|
182
183
|
};
|
|
184
|
+
console.log('getTreeData({ filters: options })', getTreeData({
|
|
185
|
+
filters: options
|
|
186
|
+
}));
|
|
183
187
|
if (filterMode === 'tree') {
|
|
184
188
|
return /*#__PURE__*/React.createElement(React.Fragment, null, showFilter && /*#__PURE__*/React.createElement(_FilterSearch.default, {
|
|
185
189
|
filterSearch: filterSearch,
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { TableLocale } from "rc-master-ui/es/table/interface";
|
|
3
|
+
type Props = {
|
|
4
|
+
options: any[];
|
|
5
|
+
filterSearch?: boolean;
|
|
6
|
+
open?: boolean;
|
|
7
|
+
tablePrefixCls?: string;
|
|
8
|
+
prefixCls?: string;
|
|
9
|
+
dropdownPrefixCls?: string;
|
|
10
|
+
filterMultiple: boolean;
|
|
11
|
+
showFilter?: boolean;
|
|
12
|
+
onSelect?: (value: any) => void;
|
|
13
|
+
selectedKeys: string[];
|
|
14
|
+
locale?: TableLocale;
|
|
15
|
+
filterMode?: 'menu' | 'tree';
|
|
16
|
+
searchValue: string;
|
|
17
|
+
setSearchValue: (value: any) => void;
|
|
18
|
+
};
|
|
19
|
+
declare const CheckboxFilter: (props: Props) => React.JSX.Element;
|
|
20
|
+
export default CheckboxFilter;
|
|
@@ -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;
|
|
@@ -43,7 +43,7 @@ const ColumnsGroup = props => {
|
|
|
43
43
|
return rsCol.map(it => ({
|
|
44
44
|
...it,
|
|
45
45
|
value: it.field,
|
|
46
|
-
label: t ? t(it
|
|
46
|
+
label: t ? t(it?.columnGroupText ?? it?.headerText) : it?.columnGroupText ?? it?.headerText
|
|
47
47
|
}));
|
|
48
48
|
}, [rsCol, t]);
|
|
49
49
|
|
|
@@ -146,7 +146,7 @@ const ColumnsGroup = props => {
|
|
|
146
146
|
,
|
|
147
147
|
labelRender: labelProps => {
|
|
148
148
|
const it = columns.find(col => col.field === labelProps.value);
|
|
149
|
-
return t ? t(it
|
|
149
|
+
return t ? t(it?.columnGroupText ?? it?.headerText) : it?.columnGroupText ?? it?.headerText;
|
|
150
150
|
}
|
|
151
151
|
// hideSelectedOptions
|
|
152
152
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -175,7 +175,7 @@ const ColumnsGroup = props => {
|
|
|
175
175
|
,
|
|
176
176
|
labelRender: labelProps => {
|
|
177
177
|
const it = columns.find(col => col.field === labelProps.value);
|
|
178
|
-
return t ? t(it
|
|
178
|
+
return t ? t(it?.columnGroupText ?? it?.headerText) : it?.columnGroupText ?? it?.headerText;
|
|
179
179
|
}
|
|
180
180
|
})), /*#__PURE__*/_react.default.createElement("div", {
|
|
181
181
|
className: 'mb-1',
|
|
@@ -202,7 +202,7 @@ const ColumnsGroup = props => {
|
|
|
202
202
|
,
|
|
203
203
|
labelRender: labelProps => {
|
|
204
204
|
const it = columns.find(col => col.field === labelProps.value);
|
|
205
|
-
return t ? t(it
|
|
205
|
+
return t ? t(it?.columnGroupText ?? it?.headerText) : it?.columnGroupText ?? it?.headerText;
|
|
206
206
|
}
|
|
207
207
|
}))), /*#__PURE__*/_react.default.createElement(BoxAction, {
|
|
208
208
|
className: 'px-1'
|
|
@@ -126,7 +126,7 @@ const EditableCell = props => {
|
|
|
126
126
|
});
|
|
127
127
|
}
|
|
128
128
|
},
|
|
129
|
-
placeholder: column.placeholder,
|
|
129
|
+
placeholder: t ? t(column.placeholder ?? 'Select') : column.placeholder ?? 'Select',
|
|
130
130
|
disabled: (0, _hooks.isDisable)(column, record) ?? false,
|
|
131
131
|
maxDate: maxDate,
|
|
132
132
|
minDate: minDate
|
|
@@ -166,7 +166,7 @@ const EditableCell = props => {
|
|
|
166
166
|
},
|
|
167
167
|
showTime: true,
|
|
168
168
|
value: date,
|
|
169
|
-
placeholder: column.placeholder,
|
|
169
|
+
placeholder: t ? t(column.placeholder ?? 'Select') : column.placeholder ?? 'Select',
|
|
170
170
|
disabled: (0, _hooks.isDisable)(column, record) ?? false,
|
|
171
171
|
maxDate: maxDate,
|
|
172
172
|
minDate: minDate,
|
|
@@ -217,7 +217,7 @@ const EditableCell = props => {
|
|
|
217
217
|
height: '100%'
|
|
218
218
|
},
|
|
219
219
|
picker: editType,
|
|
220
|
-
placeholder: column.placeholder,
|
|
220
|
+
placeholder: t ? t(column.placeholder ?? 'Select') : column.placeholder ?? 'Select',
|
|
221
221
|
disabled: (0, _hooks.isDisable)(column, record) ?? false,
|
|
222
222
|
maxDate: maxDateValue1,
|
|
223
223
|
minDate: minDateValue1,
|
|
@@ -234,7 +234,7 @@ const EditableCell = props => {
|
|
|
234
234
|
height: '100%'
|
|
235
235
|
},
|
|
236
236
|
picker: editType,
|
|
237
|
-
placeholder: column.placeholder,
|
|
237
|
+
placeholder: t ? t(column.placeholder ?? 'Select') : column.placeholder ?? 'Select',
|
|
238
238
|
disabled: (0, _hooks.isDisable)(column, record) ?? false,
|
|
239
239
|
maxDate: maxWeekValue,
|
|
240
240
|
minDate: minWeekValue,
|
|
@@ -254,6 +254,7 @@ const EditableCell = props => {
|
|
|
254
254
|
format: timeFormat,
|
|
255
255
|
type: 'mask'
|
|
256
256
|
},
|
|
257
|
+
placeholder: t ? t(column.placeholder ?? 'Select') : column.placeholder ?? 'Select',
|
|
257
258
|
maxDate: maxTime,
|
|
258
259
|
minDate: minTime,
|
|
259
260
|
disabled: (0, _hooks.isDisable)(column, record) ?? false,
|
|
@@ -327,7 +328,7 @@ const EditableCell = props => {
|
|
|
327
328
|
defaultOpen: column.field === cellEditing?.column.field
|
|
328
329
|
// autoFocus={true}
|
|
329
330
|
,
|
|
330
|
-
placeholder: t ? t('Select') : 'Select',
|
|
331
|
+
placeholder: t ? t(column.placeholder ?? 'Select') : column.placeholder ?? 'Select',
|
|
331
332
|
allowClear: column.isClearable ?? false,
|
|
332
333
|
maxTagCount: 'responsive',
|
|
333
334
|
rowKey: keySelect,
|
|
@@ -407,7 +408,7 @@ const EditableCell = props => {
|
|
|
407
408
|
width: '100%',
|
|
408
409
|
height: '100%'
|
|
409
410
|
},
|
|
410
|
-
placeholder: t ? t('Select') : 'Select',
|
|
411
|
+
placeholder: t ? t(column.placeholder ?? 'Select') : column.placeholder ?? 'Select',
|
|
411
412
|
allowClear: column.isClearable ?? false,
|
|
412
413
|
maxTagCount: 'responsive',
|
|
413
414
|
popupMatchSelectWidth: menuWidth ? menuWidth + 10 : undefined,
|
|
@@ -461,7 +462,7 @@ const EditableCell = props => {
|
|
|
461
462
|
width: '100%',
|
|
462
463
|
height: '100%'
|
|
463
464
|
},
|
|
464
|
-
placeholder: t ? t('Select') : 'Select',
|
|
465
|
+
placeholder: t ? t(column.placeholder ?? 'Select') : column.placeholder ?? 'Select',
|
|
465
466
|
allowClear: column.isClearable ?? false,
|
|
466
467
|
maxTagCount: 'responsive',
|
|
467
468
|
popupMatchSelectWidth: menuWidth ? menuWidth + 10 : undefined,
|
|
@@ -531,7 +532,7 @@ const EditableCell = props => {
|
|
|
531
532
|
overflow: 'auto'
|
|
532
533
|
},
|
|
533
534
|
treeData: newTreeData,
|
|
534
|
-
placeholder: t ? t('Select') : 'Select',
|
|
535
|
+
placeholder: t ? t(column.placeholder ?? 'Select') : column.placeholder ?? 'Select',
|
|
535
536
|
treeDefaultExpandAll: true,
|
|
536
537
|
defaultOpen: column.field === cellEditing?.column.field
|
|
537
538
|
// autoFocus={true}
|
|
@@ -745,6 +746,7 @@ const EditableCell = props => {
|
|
|
745
746
|
customInput: _antd.Input
|
|
746
747
|
// valueIsNumericString={true}
|
|
747
748
|
,
|
|
749
|
+
placeholder: t ? t(column.placeholder ?? 'Enter') : column.placeholder ?? 'Enter',
|
|
748
750
|
autoComplete: 'off',
|
|
749
751
|
className: (0, _classnames.default)('be-cell-editing rounded-0 input-element', {
|
|
750
752
|
'is-invalid': isInvalid,
|
|
@@ -788,6 +790,7 @@ const EditableCell = props => {
|
|
|
788
790
|
,
|
|
789
791
|
disabled: (0, _hooks.isDisable)(column, record) ?? false,
|
|
790
792
|
className: (0, _classnames.default)('be-cell-editing rounded-0 input-element'),
|
|
793
|
+
placeholder: t ? t(column.placeholder ?? 'Enter') : column.placeholder ?? 'Enter',
|
|
791
794
|
value: !(0, _hooks.isNullOrUndefined)(value) ? value : '',
|
|
792
795
|
onBlur: () => {
|
|
793
796
|
const formState = getValues();
|
|
@@ -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);
|
|
@@ -130,9 +138,21 @@ const InternalTable = props => {
|
|
|
130
138
|
const newColumns = (0, _hooks.updateArrayByKey)(columns, newColumn, 'field');
|
|
131
139
|
setColumns(newColumns);
|
|
132
140
|
};
|
|
141
|
+
|
|
142
|
+
// ============================ RowKey ============================
|
|
143
|
+
const getRowKey = _react.default.useMemo(() => {
|
|
144
|
+
if (typeof rowKey === 'function') {
|
|
145
|
+
return rowKey;
|
|
146
|
+
}
|
|
147
|
+
// @ts-ignore
|
|
148
|
+
return record => record?.[rowKey];
|
|
149
|
+
}, [rowKey]);
|
|
133
150
|
const [transformSelectionColumns] = (0, _useColumns.default)({
|
|
134
151
|
locale,
|
|
135
152
|
t,
|
|
153
|
+
rowKey,
|
|
154
|
+
// dataSource: mergerdData,
|
|
155
|
+
dataSource,
|
|
136
156
|
buddhistLocale,
|
|
137
157
|
dataSourceFilter: propDataSourceFilter,
|
|
138
158
|
format,
|
|
@@ -146,15 +166,6 @@ const InternalTable = props => {
|
|
|
146
166
|
return transformSelectionColumns(columns);
|
|
147
167
|
}, [columns, transformSelectionColumns]);
|
|
148
168
|
|
|
149
|
-
// ============================ RowKey ============================
|
|
150
|
-
const getRowKey = _react.default.useMemo(() => {
|
|
151
|
-
if (typeof rowKey === 'function') {
|
|
152
|
-
return rowKey;
|
|
153
|
-
}
|
|
154
|
-
// @ts-ignore
|
|
155
|
-
return record => record?.[rowKey];
|
|
156
|
-
}, [rowKey]);
|
|
157
|
-
|
|
158
169
|
// const triggerChangeColumns = (newColumns: ColumnsTable<RecordType>) => {
|
|
159
170
|
const triggerChangeColumns = (newColumns, type) => {
|
|
160
171
|
setColumns(newColumns);
|
|
@@ -209,7 +220,22 @@ const InternalTable = props => {
|
|
|
209
220
|
// setData(newData)
|
|
210
221
|
// setMergedData(newData)
|
|
211
222
|
onDataChange?.(newData);
|
|
223
|
+
// onDataChange?.(removeFieldRecursive(newData, 'isFilterState'))
|
|
212
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
|
+
|
|
213
239
|
const triggerCommandClick = args => {
|
|
214
240
|
const {
|
|
215
241
|
id,
|
|
@@ -368,6 +394,7 @@ const InternalTable = props => {
|
|
|
368
394
|
locale: locale,
|
|
369
395
|
tableRef: tableRef,
|
|
370
396
|
dataSource: mergerdData
|
|
397
|
+
// dataSource={dataSource}
|
|
371
398
|
// components={components}
|
|
372
399
|
,
|
|
373
400
|
components: {
|
|
@@ -393,6 +420,10 @@ const InternalTable = props => {
|
|
|
393
420
|
groupAble: groupAble,
|
|
394
421
|
groupColumns: groupColumns,
|
|
395
422
|
commandClick: triggerCommandClick
|
|
423
|
+
// triggerFilter={triggerFilter}
|
|
424
|
+
// isFilter={isFilter}
|
|
425
|
+
// setIsFilter={setIsFilter}
|
|
426
|
+
// onScroll={onScroll}
|
|
396
427
|
}));
|
|
397
428
|
};
|
|
398
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;
|