@rainbow-oh/yee-c 0.8.12 → 0.8.14
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/dist/cjs/Pagination/style/index.less +4 -0
- package/dist/cjs/Spin/demo/types.js +1 -1
- package/dist/cjs/Spin/indicator.js +4 -2
- package/dist/cjs/Spin/style/index.less +2 -8
- package/dist/cjs/Table/col-group.d.ts +2 -2
- package/dist/cjs/Table/col-group.js +1 -1
- package/dist/cjs/Table/demo/sorter-callback.js +3 -2
- package/dist/cjs/Table/demo/sorter.js +3 -2
- package/dist/cjs/Table/hooks/useExpand.d.ts +2 -2
- package/dist/cjs/Table/hooks/useFilter.d.ts +8 -2
- package/dist/cjs/Table/hooks/useFilter.js +36 -22
- package/dist/cjs/Table/hooks/usePagination.js +8 -8
- package/dist/cjs/Table/hooks/useSelection.d.ts +3 -3
- package/dist/cjs/Table/hooks/useSelection.js +8 -9
- package/dist/cjs/Table/hooks/useSorter.d.ts +6 -3
- package/dist/cjs/Table/hooks/useSorter.js +193 -87
- package/dist/cjs/Table/interface.d.ts +10 -7
- package/dist/cjs/Table/table.js +51 -45
- package/dist/cjs/Table/tbody/index.js +13 -5
- package/dist/cjs/Table/tbody/lazy-row.js +6 -3
- package/dist/cjs/Table/tbody/row.js +5 -4
- package/dist/cjs/Table/theader/cell.js +4 -0
- package/dist/cjs/Table/theader/filter.js +52 -20
- package/dist/cjs/Table/util/index.js +5 -3
- package/dist/cjs/style/themes.css +1 -1
- package/dist/cjs/style/variables.css +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/Pagination/style/index.less +4 -0
- package/dist/esm/Spin/demo/types.js +6 -3
- package/dist/esm/Spin/indicator.js +4 -2
- package/dist/esm/Spin/style/index.less +2 -8
- package/dist/esm/Table/col-group.d.ts +2 -2
- package/dist/esm/Table/col-group.js +1 -1
- package/dist/esm/Table/demo/sorter-callback.js +3 -2
- package/dist/esm/Table/demo/sorter.js +3 -2
- package/dist/esm/Table/hooks/useExpand.d.ts +2 -2
- package/dist/esm/Table/hooks/useFilter.d.ts +8 -2
- package/dist/esm/Table/hooks/useFilter.js +52 -32
- package/dist/esm/Table/hooks/usePagination.js +8 -10
- package/dist/esm/Table/hooks/useSelection.d.ts +3 -3
- package/dist/esm/Table/hooks/useSelection.js +16 -11
- package/dist/esm/Table/hooks/useSorter.d.ts +6 -3
- package/dist/esm/Table/hooks/useSorter.js +218 -105
- package/dist/esm/Table/interface.d.ts +10 -7
- package/dist/esm/Table/table.js +42 -47
- package/dist/esm/Table/tbody/index.js +8 -5
- package/dist/esm/Table/tbody/lazy-row.js +7 -3
- package/dist/esm/Table/tbody/row.js +7 -6
- package/dist/esm/Table/theader/cell.js +7 -1
- package/dist/esm/Table/theader/filter.js +75 -27
- package/dist/esm/Table/util/index.js +6 -3
- package/dist/esm/style/themes.css +1 -1
- package/dist/esm/style/variables.css +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/umd/yee-c.min.css +1 -1
- package/dist/umd/yee-c.min.js +1 -1
- package/package.json +1 -1
- package/src/Pagination/style/index.less +4 -0
- package/src/Spin/demo/types.tsx +3 -3
- package/src/Spin/index.en-US.md +2 -8
- package/src/Spin/index.zh-CN.md +2 -8
- package/src/Spin/indicator.tsx +2 -0
- package/src/Spin/style/index.less +2 -8
- package/src/Table/col-group.tsx +1 -1
- package/src/Table/demo/sorter-callback.tsx +3 -2
- package/src/Table/demo/sorter.tsx +3 -2
- package/src/Table/hooks/useExpand.ts +3 -3
- package/src/Table/hooks/useFilter.ts +47 -23
- package/src/Table/hooks/usePagination.ts +9 -10
- package/src/Table/hooks/useSelection.ts +18 -20
- package/src/Table/hooks/useSorter.ts +236 -82
- package/src/Table/interface.ts +19 -7
- package/src/Table/table.tsx +54 -49
- package/src/Table/tbody/index.tsx +14 -5
- package/src/Table/tbody/lazy-row.tsx +6 -3
- package/src/Table/tbody/row.tsx +5 -4
- package/src/Table/theader/cell.tsx +10 -0
- package/src/Table/theader/filter.tsx +64 -22
- package/src/Table/util/index.ts +3 -1
- package/src/version.ts +1 -1
|
@@ -23,7 +23,7 @@ export interface ExpandableType {
|
|
|
23
23
|
/**
|
|
24
24
|
* Default expanded rows
|
|
25
25
|
*/
|
|
26
|
-
defaultExpandedRowKeys?:
|
|
26
|
+
defaultExpandedRowKeys?: SelectionKeyType[];
|
|
27
27
|
/**
|
|
28
28
|
* Expanded rows
|
|
29
29
|
*/
|
|
@@ -51,6 +51,7 @@ export interface ExpandableType {
|
|
|
51
51
|
expandedRowRender?: (record: object, index: number, page: Record<string, any>) => React.ReactNode;
|
|
52
52
|
}
|
|
53
53
|
export type SelectionKeyType = string | number;
|
|
54
|
+
export type FilterValue = string | number;
|
|
54
55
|
export type ColumnSemanticType = 'inner' | 'action';
|
|
55
56
|
export interface HeadCellProps extends Omit<WrapedColumnProps, 'title'> {
|
|
56
57
|
prefixCls?: string;
|
|
@@ -186,7 +187,7 @@ export interface ColumnProps {
|
|
|
186
187
|
/**
|
|
187
188
|
* Filter callback function
|
|
188
189
|
*/
|
|
189
|
-
onFilter?: (value:
|
|
190
|
+
onFilter?: (value: FilterValue, record: Record<string, any>) => boolean;
|
|
190
191
|
};
|
|
191
192
|
/**
|
|
192
193
|
* Sorter config
|
|
@@ -195,9 +196,10 @@ export interface ColumnProps {
|
|
|
195
196
|
/**
|
|
196
197
|
* Sort function
|
|
197
198
|
*/
|
|
198
|
-
sort?: () => number
|
|
199
|
+
sort?: (a: Record<string, unknown>, b: Record<string, unknown>) => number;
|
|
199
200
|
/**
|
|
200
|
-
*
|
|
201
|
+
* Enable multi-column sorting. A positive number limits the active
|
|
202
|
+
* sorters; when exceeded, the earliest activated sorter is removed.
|
|
201
203
|
*/
|
|
202
204
|
multiple?: boolean | number;
|
|
203
205
|
/**
|
|
@@ -359,6 +361,7 @@ export interface TableRowProps {
|
|
|
359
361
|
pageSize: number;
|
|
360
362
|
index: number;
|
|
361
363
|
record: Record<string, any>;
|
|
364
|
+
rowKeyValue: SelectionKeyType;
|
|
362
365
|
columns: ColumnProps[];
|
|
363
366
|
expandable?: ExpandableType;
|
|
364
367
|
expandedRowKeys?: Array<string | number>;
|
|
@@ -375,7 +378,7 @@ export interface TableRowProps {
|
|
|
375
378
|
record: Record<string, any>;
|
|
376
379
|
index: number;
|
|
377
380
|
}) => void;
|
|
378
|
-
onSelectionChange: (event: ChangeEvent<HTMLInputElement
|
|
381
|
+
onSelectionChange: (event: ChangeEvent<HTMLInputElement>, key: SelectionKeyType) => void;
|
|
379
382
|
}
|
|
380
383
|
type LazyLoadType = {
|
|
381
384
|
lazyLoadRows?: number;
|
|
@@ -389,7 +392,7 @@ export interface LazyRowProps extends TableRowProps {
|
|
|
389
392
|
};
|
|
390
393
|
lazyLoad?: boolean | LazyLoadType;
|
|
391
394
|
}
|
|
392
|
-
export interface TableBodyProps extends Omit<LazyRowProps, 'index' | 'record'> {
|
|
395
|
+
export interface TableBodyProps extends Omit<LazyRowProps, 'index' | 'record' | 'rowKeyValue'> {
|
|
393
396
|
pageData: Array<Record<string, any>>;
|
|
394
397
|
noData?: React.ReactNode;
|
|
395
398
|
}
|
|
@@ -542,7 +545,7 @@ export interface TableProps extends FooterProps, Omit<HeaderProps, 'pageData'>,
|
|
|
542
545
|
* Set the unique key for rows
|
|
543
546
|
* @default id
|
|
544
547
|
*/
|
|
545
|
-
rowKey?: string | ((record: Record<string, any>) =>
|
|
548
|
+
rowKey?: string | ((record: Record<string, any>) => SelectionKeyType);
|
|
546
549
|
/**
|
|
547
550
|
* Summary bar
|
|
548
551
|
*/
|
package/dist/esm/Table/table.js
CHANGED
|
@@ -93,10 +93,19 @@ var Table = /*#__PURE__*/React.forwardRef(function (baseprops, ref) {
|
|
|
93
93
|
|
|
94
94
|
// Filter
|
|
95
95
|
var _useFilter = useFilter({
|
|
96
|
-
data: dataSource
|
|
96
|
+
data: dataSource,
|
|
97
|
+
columns: wrapedColumns
|
|
97
98
|
}),
|
|
98
99
|
filteredData = _useFilter.data,
|
|
100
|
+
filterRecords = _useFilter.filterRecords,
|
|
99
101
|
onFilterInternal = _useFilter.onFilter;
|
|
102
|
+
var filters = useMemo(function () {
|
|
103
|
+
return Object.fromEntries(filterRecords.map(function (_ref) {
|
|
104
|
+
var dataIndex = _ref.dataIndex,
|
|
105
|
+
value = _ref.value;
|
|
106
|
+
return [dataIndex, value];
|
|
107
|
+
}));
|
|
108
|
+
}, [filterRecords]);
|
|
100
109
|
|
|
101
110
|
// Sort
|
|
102
111
|
var _useSorter = useSorter({
|
|
@@ -105,7 +114,7 @@ var Table = /*#__PURE__*/React.forwardRef(function (baseprops, ref) {
|
|
|
105
114
|
}),
|
|
106
115
|
sortedData = _useSorter.data,
|
|
107
116
|
sorters = _useSorter.sorters,
|
|
108
|
-
|
|
117
|
+
onSortInternal = _useSorter.onSort;
|
|
109
118
|
// Pagination
|
|
110
119
|
var _usePagination = usePagination({
|
|
111
120
|
data: sortedData,
|
|
@@ -114,8 +123,7 @@ var Table = /*#__PURE__*/React.forwardRef(function (baseprops, ref) {
|
|
|
114
123
|
onChange({
|
|
115
124
|
pagination: info,
|
|
116
125
|
sorter: sorters,
|
|
117
|
-
filters:
|
|
118
|
-
// TODO: Extract filter info from onFilterInternal
|
|
126
|
+
filters: filters,
|
|
119
127
|
currentDataSource: sortedData,
|
|
120
128
|
action: 'paginate'
|
|
121
129
|
});
|
|
@@ -125,6 +133,19 @@ var Table = /*#__PURE__*/React.forwardRef(function (baseprops, ref) {
|
|
|
125
133
|
current = _usePagination.current,
|
|
126
134
|
pageSize = _usePagination.pageSize,
|
|
127
135
|
pagination = _usePagination.pagination;
|
|
136
|
+
var handleSort = React.useCallback(function (dataIndex) {
|
|
137
|
+
var next = onSortInternal(dataIndex);
|
|
138
|
+
onChange === null || onChange === void 0 || onChange({
|
|
139
|
+
pagination: pagination === false ? undefined : {
|
|
140
|
+
current: current,
|
|
141
|
+
pageSize: pageSize
|
|
142
|
+
},
|
|
143
|
+
sorter: next.sorters,
|
|
144
|
+
filters: filters,
|
|
145
|
+
currentDataSource: next.data,
|
|
146
|
+
action: 'sort'
|
|
147
|
+
});
|
|
148
|
+
}, [onSortInternal, onChange, pagination, current, pageSize, filters]);
|
|
128
149
|
|
|
129
150
|
// Expanded row data
|
|
130
151
|
var _useExpand = useExpand(expandable, allKeys, getRowKey),
|
|
@@ -142,8 +163,8 @@ var Table = /*#__PURE__*/React.forwardRef(function (baseprops, ref) {
|
|
|
142
163
|
onCheckAll = _useSelection.onCheckAll,
|
|
143
164
|
onSelectionChange = _useSelection.onChange;
|
|
144
165
|
|
|
145
|
-
// Track
|
|
146
|
-
var
|
|
166
|
+
// Track filter changes to emit onChange after filtered data is recalculated
|
|
167
|
+
var prevFilterRecordsRef = useRef(filterRecords);
|
|
147
168
|
var contentWrapperRef = useRef(null);
|
|
148
169
|
var contentRef = useRef(null);
|
|
149
170
|
var _React$useState = React.useState({
|
|
@@ -168,47 +189,21 @@ var Table = /*#__PURE__*/React.forwardRef(function (baseprops, ref) {
|
|
|
168
189
|
return current.left === next.left && current.right === next.right ? current : next;
|
|
169
190
|
});
|
|
170
191
|
}, []);
|
|
171
|
-
|
|
172
|
-
// Wrap onFilter to trigger onChange
|
|
173
|
-
var onFilter = React.useCallback(function () {
|
|
174
|
-
onFilterInternal.apply(void 0, arguments);
|
|
175
|
-
// Trigger onChange for filter action
|
|
176
|
-
if (onChange) {
|
|
177
|
-
onChange({
|
|
178
|
-
pagination: pagination === false ? undefined : {
|
|
179
|
-
current: current,
|
|
180
|
-
pageSize: pageSize
|
|
181
|
-
},
|
|
182
|
-
sorter: sorters,
|
|
183
|
-
filters: undefined,
|
|
184
|
-
// TODO: Extract filter info from args
|
|
185
|
-
currentDataSource: filteredData,
|
|
186
|
-
action: 'filter'
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
}, [onChange, pagination, current, pageSize, sorters, filteredData, onFilterInternal]);
|
|
190
|
-
|
|
191
|
-
// Trigger onChange when sorter, pagination, or filter changes
|
|
192
192
|
useEffect(function () {
|
|
193
|
+
if (prevFilterRecordsRef.current === filterRecords) return;
|
|
194
|
+
prevFilterRecordsRef.current = filterRecords;
|
|
193
195
|
if (!onChange) return;
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
filters: undefined,
|
|
206
|
-
currentDataSource: sortedData,
|
|
207
|
-
action: 'sort'
|
|
208
|
-
});
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
}, [sorters, current, pageSize, pageData, sortedData, onChange]);
|
|
196
|
+
onChange({
|
|
197
|
+
pagination: pagination === false ? undefined : {
|
|
198
|
+
current: current,
|
|
199
|
+
pageSize: pageSize
|
|
200
|
+
},
|
|
201
|
+
sorter: sorters,
|
|
202
|
+
filters: filters,
|
|
203
|
+
currentDataSource: sortedData,
|
|
204
|
+
action: 'filter'
|
|
205
|
+
});
|
|
206
|
+
}, [filterRecords, filters, sortedData, pagination, current, pageSize, sorters, onChange]);
|
|
212
207
|
useEffect(function () {
|
|
213
208
|
updateHorizontalScroll();
|
|
214
209
|
var wrapper = contentWrapperRef.current;
|
|
@@ -246,9 +241,9 @@ var Table = /*#__PURE__*/React.forwardRef(function (baseprops, ref) {
|
|
|
246
241
|
headerRows: headerRows,
|
|
247
242
|
checkedAll: checkedAll,
|
|
248
243
|
sorters: sorters,
|
|
249
|
-
onSort:
|
|
244
|
+
onSort: handleSort,
|
|
250
245
|
onCheckAll: onCheckAll,
|
|
251
|
-
onInternalFilter:
|
|
246
|
+
onInternalFilter: onFilterInternal
|
|
252
247
|
}));
|
|
253
248
|
};
|
|
254
249
|
var renderTBody = function renderTBody() {
|
|
@@ -39,26 +39,29 @@ var TableBody = function TableBody(props) {
|
|
|
39
39
|
if (lazyLoad) {
|
|
40
40
|
return /*#__PURE__*/React.createElement(LazyRow, _extends({}, rest, {
|
|
41
41
|
pageData: pageData,
|
|
42
|
-
columns: columns
|
|
42
|
+
columns: columns,
|
|
43
|
+
resolveRowKey: resolveRowKey
|
|
43
44
|
}));
|
|
44
45
|
}
|
|
45
46
|
return pageData.map(function (record, index) {
|
|
47
|
+
var resolvedRowKey = resolveRowKey(record);
|
|
48
|
+
|
|
46
49
|
// 整行接管:由外部组件渲染 <tr> + 单元格(可放拖拽手柄等)
|
|
47
50
|
if (RowRenderer) {
|
|
48
|
-
var rk = resolveRowKey(record);
|
|
49
51
|
return /*#__PURE__*/React.createElement(RowRenderer, {
|
|
50
|
-
key:
|
|
52
|
+
key: resolvedRowKey !== null && resolvedRowKey !== void 0 ? resolvedRowKey : index,
|
|
51
53
|
record: record,
|
|
52
54
|
index: index,
|
|
53
55
|
columns: columns,
|
|
54
|
-
rowKey:
|
|
56
|
+
rowKey: resolvedRowKey
|
|
55
57
|
});
|
|
56
58
|
}
|
|
57
59
|
return /*#__PURE__*/React.createElement(TableRow, _extends({}, rest, {
|
|
58
60
|
columns: columns,
|
|
59
61
|
record: record,
|
|
62
|
+
rowKeyValue: resolvedRowKey,
|
|
60
63
|
index: index,
|
|
61
|
-
key: "row-".concat(
|
|
64
|
+
key: resolvedRowKey !== null && resolvedRowKey !== void 0 ? resolvedRowKey : "row-".concat(index)
|
|
62
65
|
}));
|
|
63
66
|
});
|
|
64
67
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["range", "pageData", "columns"];
|
|
1
|
+
var _excluded = ["range", "pageData", "columns", "resolveRowKey"];
|
|
2
2
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
3
3
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
4
4
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
@@ -17,6 +17,7 @@ var LazyRow = function LazyRow(props) {
|
|
|
17
17
|
var range = props.range,
|
|
18
18
|
pageData = props.pageData,
|
|
19
19
|
columns = props.columns,
|
|
20
|
+
resolveRowKey = props.resolveRowKey,
|
|
20
21
|
rest = _objectWithoutProperties(props, _excluded);
|
|
21
22
|
var start = range.start,
|
|
22
23
|
end = range.end;
|
|
@@ -25,11 +26,14 @@ var LazyRow = function LazyRow(props) {
|
|
|
25
26
|
var startBlank = createBlank(start, 'row-start');
|
|
26
27
|
result = result.concat(startBlank);
|
|
27
28
|
for (var i = start; i < (end > pl ? pl : end); i++) {
|
|
29
|
+
var record = pageData[i];
|
|
30
|
+
var rowKeyValue = resolveRowKey(record);
|
|
28
31
|
result.push( /*#__PURE__*/React.createElement(TableRow, _extends({}, rest, {
|
|
29
32
|
columns: columns,
|
|
30
|
-
record:
|
|
33
|
+
record: record,
|
|
34
|
+
rowKeyValue: rowKeyValue,
|
|
31
35
|
index: i,
|
|
32
|
-
key:
|
|
36
|
+
key: rowKeyValue !== null && rowKeyValue !== void 0 ? rowKeyValue : "row-".concat(i)
|
|
33
37
|
})));
|
|
34
38
|
}
|
|
35
39
|
var maxLength = end > pl ? 0 : pl - end;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
-
var _excluded = ["index", "record", "columns", "highlight", "stripe", "expandedKeyType", "expandedRowKeys", "selectedRowKeys", "expandable", "onExpand", "onRow", "rowClassName", "rowStyle", "onDoubleClick", "onSelectionChange"];
|
|
2
|
+
var _excluded = ["index", "record", "rowKeyValue", "columns", "highlight", "stripe", "expandedKeyType", "expandedRowKeys", "selectedRowKeys", "expandable", "onExpand", "onRow", "rowClassName", "rowStyle", "onDoubleClick", "onSelectionChange"];
|
|
3
3
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
4
4
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
5
5
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -20,6 +20,7 @@ import { TableCtx } from "../table";
|
|
|
20
20
|
var TableRow = function TableRow(props) {
|
|
21
21
|
var index = props.index,
|
|
22
22
|
record = props.record,
|
|
23
|
+
rowKeyValue = props.rowKeyValue,
|
|
23
24
|
columns = props.columns,
|
|
24
25
|
highlight = props.highlight,
|
|
25
26
|
stripe = props.stripe,
|
|
@@ -35,9 +36,8 @@ var TableRow = function TableRow(props) {
|
|
|
35
36
|
onSelectionChange = props.onSelectionChange,
|
|
36
37
|
rest = _objectWithoutProperties(props, _excluded);
|
|
37
38
|
var _useContext = useContext(TableCtx),
|
|
38
|
-
prefixCls = _useContext.prefixCls
|
|
39
|
-
|
|
40
|
-
var expanded = expandedRowKeys === null || expandedRowKeys === void 0 ? void 0 : expandedRowKeys.includes(expandedKeyType === 'index' ? index + 1 : record[rowKey]);
|
|
39
|
+
prefixCls = _useContext.prefixCls;
|
|
40
|
+
var expanded = expandedRowKeys === null || expandedRowKeys === void 0 ? void 0 : expandedRowKeys.includes(expandedKeyType === 'index' ? index + 1 : rowKeyValue);
|
|
41
41
|
var high = React.useMemo(function () {
|
|
42
42
|
if (typeof highlight === 'undefined') return false;
|
|
43
43
|
if (highlight === 'odd') {
|
|
@@ -59,7 +59,6 @@ var TableRow = function TableRow(props) {
|
|
|
59
59
|
var type = column.type,
|
|
60
60
|
colDisabled = column.disabled,
|
|
61
61
|
onCell = column.onCell;
|
|
62
|
-
var rowKeyValue = record[rowKey];
|
|
63
62
|
var props = (onCell === null || onCell === void 0 ? void 0 : onCell(record, index)) || {};
|
|
64
63
|
var checked = selectedRowKeys === null || selectedRowKeys === void 0 ? void 0 : selectedRowKeys.includes(rowKeyValue);
|
|
65
64
|
|
|
@@ -72,7 +71,9 @@ var TableRow = function TableRow(props) {
|
|
|
72
71
|
var commonProps = _objectSpread({
|
|
73
72
|
checked: checked,
|
|
74
73
|
value: rowKeyValue,
|
|
75
|
-
onChange:
|
|
74
|
+
onChange: function onChange(event) {
|
|
75
|
+
return onSelectionChange(event, rowKeyValue);
|
|
76
|
+
},
|
|
76
77
|
disabled: disabled
|
|
77
78
|
}, props);
|
|
78
79
|
if (type === 'checkbox') {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
1
|
var _excluded = ["fixed", "isFixedLeftLast", "isFixedRightFirst", "align", "title", "dataIndex", "sorter", "filter", "sorters", "className", "styles", "classNames", "showSorterTooltip", "tableActionBarShowOnHover", "internalFilters", "style", "width", "colSpan", "rowSpan", "onHeaderCell", "onSort", "onInternalFilter"];
|
|
3
2
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
3
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -6,6 +5,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
6
5
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
6
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
7
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
8
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
9
9
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
10
10
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
11
11
|
import clsx from 'clsx';
|
|
@@ -52,12 +52,18 @@ var HeadCell = function HeadCell(props) {
|
|
|
52
52
|
// Convert -1 to 2 for UI display (2 = descend)
|
|
53
53
|
var sortOrder = dataIndex && (sorters === null || sorters === void 0 ? void 0 : sorters[dataIndex]) || 0;
|
|
54
54
|
var displaySortOrder = sortOrder === -1 ? 2 : sortOrder;
|
|
55
|
+
var currentSortOrder = sortOrder === 1 ? 'ascend' : sortOrder === -1 ? 'descend' : null;
|
|
55
56
|
var handleSort = function handleSort() {
|
|
56
57
|
if (dataIndex && onSort) {
|
|
57
58
|
onSort(dataIndex, sorter);
|
|
58
59
|
}
|
|
59
60
|
};
|
|
60
61
|
var renderSort = function renderSort() {
|
|
62
|
+
if (_typeof(sorter) === 'object' && sorter.icon) {
|
|
63
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
64
|
+
className: "".concat(prefixCls, "-column-sorter")
|
|
65
|
+
}, sorter.icon(currentSortOrder));
|
|
66
|
+
}
|
|
61
67
|
var trigger = /*#__PURE__*/React.createElement("span", {
|
|
62
68
|
className: "".concat(prefixCls, "-column-sorter")
|
|
63
69
|
}, /*#__PURE__*/React.createElement(ArrowIcon, {
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
4
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
1
5
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
6
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
7
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -21,6 +25,15 @@ var getStrLower = function getStrLower(str) {
|
|
|
21
25
|
}
|
|
22
26
|
return str;
|
|
23
27
|
};
|
|
28
|
+
var areFilterValuesEqual = function areFilterValuesEqual(a, b) {
|
|
29
|
+
if (!Array.isArray(a) || !Array.isArray(b)) return a === b;
|
|
30
|
+
return a.length === b.length && a.every(function (value, index) {
|
|
31
|
+
return value === b[index];
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var hasFilterValue = function hasFilterValue(value) {
|
|
35
|
+
return Array.isArray(value) ? value.length > 0 : value !== '';
|
|
36
|
+
};
|
|
24
37
|
var HeaderFilter = /*#__PURE__*/React.memo(function (props) {
|
|
25
38
|
var filter = props.filter,
|
|
26
39
|
column = props.column,
|
|
@@ -32,19 +45,35 @@ var HeaderFilter = /*#__PURE__*/React.memo(function (props) {
|
|
|
32
45
|
locale = _useLocale.locale;
|
|
33
46
|
var tableLocale = locale.table;
|
|
34
47
|
var dataIndex = column.dataIndex;
|
|
48
|
+
var items = filter.items,
|
|
49
|
+
icon = filter.icon,
|
|
50
|
+
_filter$searchable = filter.searchable,
|
|
51
|
+
searchable = _filter$searchable === void 0 ? true : _filter$searchable,
|
|
52
|
+
_filter$filterMode = filter.filterMode,
|
|
53
|
+
filterMode = _filter$filterMode === void 0 ? 'menu' : _filter$filterMode,
|
|
54
|
+
filtered = filter.filtered,
|
|
55
|
+
_filter$filterOnClose = filter.filterOnClose,
|
|
56
|
+
filterOnClose = _filter$filterOnClose === void 0 ? true : _filter$filterOnClose,
|
|
57
|
+
render = filter.render;
|
|
35
58
|
var inputRef = useRef(null);
|
|
36
|
-
var
|
|
59
|
+
var initialValue = items ? [] : '';
|
|
60
|
+
var committedValueRef = useRef(initialValue);
|
|
61
|
+
var _useState = useState(initialValue),
|
|
37
62
|
_useState2 = _slicedToArray(_useState, 2),
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
var _useState3 = useState(
|
|
63
|
+
committedValue = _useState2[0],
|
|
64
|
+
setCommittedValue = _useState2[1];
|
|
65
|
+
var _useState3 = useState(false),
|
|
41
66
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
var _useState5 = useState(
|
|
67
|
+
open = _useState4[0],
|
|
68
|
+
setOpen = _useState4[1];
|
|
69
|
+
var _useState5 = useState([]),
|
|
45
70
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
46
|
-
|
|
47
|
-
|
|
71
|
+
selectNodes = _useState6[0],
|
|
72
|
+
setSelectNodes = _useState6[1];
|
|
73
|
+
var _useState7 = useState(''),
|
|
74
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
75
|
+
searchValue = _useState8[0],
|
|
76
|
+
setSearchValue = _useState8[1];
|
|
48
77
|
useEffect(function () {
|
|
49
78
|
if (!open) return;
|
|
50
79
|
var raf = requestAnimationFrame(function () {
|
|
@@ -65,31 +94,40 @@ var HeaderFilter = /*#__PURE__*/React.memo(function (props) {
|
|
|
65
94
|
// setSelectNodes(node);
|
|
66
95
|
// };
|
|
67
96
|
|
|
68
|
-
var
|
|
69
|
-
|
|
70
|
-
|
|
97
|
+
var getCurrentValue = function getCurrentValue(type) {
|
|
98
|
+
return type === 'search' ? searchValue : selectNodes;
|
|
99
|
+
};
|
|
100
|
+
var commitValue = function commitValue(value) {
|
|
101
|
+
var committed = Array.isArray(value) ? _toConsumableArray(value) : value;
|
|
102
|
+
committedValueRef.current = committed;
|
|
103
|
+
setCommittedValue(committed);
|
|
104
|
+
};
|
|
105
|
+
var applyFilter = function applyFilter(type) {
|
|
106
|
+
var value = getCurrentValue(type);
|
|
107
|
+
commitValue(value);
|
|
71
108
|
onInternalFilter({
|
|
72
109
|
dataIndex: dataIndex,
|
|
73
|
-
value:
|
|
110
|
+
value: value,
|
|
111
|
+
type: type,
|
|
74
112
|
column: column
|
|
75
113
|
});
|
|
76
114
|
};
|
|
77
|
-
var
|
|
115
|
+
var reset = function reset() {
|
|
116
|
+
var value = items ? [] : '';
|
|
117
|
+
setSearchValue('');
|
|
118
|
+
setSelectNodes([]);
|
|
119
|
+
commitValue(value);
|
|
78
120
|
onInternalFilter({
|
|
79
121
|
dataIndex: dataIndex,
|
|
80
|
-
value:
|
|
81
|
-
type: type,
|
|
122
|
+
value: value,
|
|
82
123
|
column: column
|
|
83
124
|
});
|
|
125
|
+
};
|
|
126
|
+
var ok = function ok(type) {
|
|
127
|
+
applyFilter(type);
|
|
84
128
|
setOpen(false);
|
|
85
129
|
};
|
|
86
130
|
var popup;
|
|
87
|
-
var items = filter.items,
|
|
88
|
-
icon = filter.icon,
|
|
89
|
-
_filter$searchable = filter.searchable,
|
|
90
|
-
searchable = _filter$searchable === void 0 ? true : _filter$searchable,
|
|
91
|
-
_filter$filterMode = filter.filterMode,
|
|
92
|
-
filterMode = _filter$filterMode === void 0 ? 'menu' : _filter$filterMode;
|
|
93
131
|
var searchInputNode = searchable ? /*#__PURE__*/React.createElement(Input, {
|
|
94
132
|
prefix: /*#__PURE__*/React.createElement(Search, {
|
|
95
133
|
size: 14,
|
|
@@ -105,7 +143,9 @@ var HeaderFilter = /*#__PURE__*/React.memo(function (props) {
|
|
|
105
143
|
size: "small",
|
|
106
144
|
ref: inputRef
|
|
107
145
|
}) : null;
|
|
108
|
-
if (
|
|
146
|
+
if (render) {
|
|
147
|
+
popup = render();
|
|
148
|
+
} else if (items) {
|
|
109
149
|
var dataSource = [];
|
|
110
150
|
var inputValue = getStrLower(searchValue);
|
|
111
151
|
var filteredItems = inputValue ? items.filter(function (item) {
|
|
@@ -176,11 +216,19 @@ var HeaderFilter = /*#__PURE__*/React.memo(function (props) {
|
|
|
176
216
|
} else {
|
|
177
217
|
return null;
|
|
178
218
|
}
|
|
179
|
-
var handleOpenChange = function handleOpenChange(
|
|
180
|
-
|
|
219
|
+
var handleOpenChange = function handleOpenChange(nextOpen) {
|
|
220
|
+
if (!nextOpen && open && filterOnClose && !render) {
|
|
221
|
+
var type = items ? 'filter' : 'search';
|
|
222
|
+
var value = getCurrentValue(type);
|
|
223
|
+
if (!areFilterValuesEqual(value, committedValueRef.current)) {
|
|
224
|
+
applyFilter(type);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
setOpen(nextOpen);
|
|
181
228
|
};
|
|
229
|
+
var isFiltered = filtered !== null && filtered !== void 0 ? filtered : hasFilterValue(committedValue);
|
|
182
230
|
var renderTrigger = function renderTrigger() {
|
|
183
|
-
var trigger = typeof icon === 'function' ? icon() : /*#__PURE__*/React.createElement(Button, {
|
|
231
|
+
var trigger = typeof icon === 'function' ? icon(isFiltered) : /*#__PURE__*/React.createElement(Button, {
|
|
184
232
|
icon: items ? /*#__PURE__*/React.createElement(ListFilter, {
|
|
185
233
|
size: 14,
|
|
186
234
|
strokeWidth: 1.5
|
|
@@ -188,7 +236,7 @@ var HeaderFilter = /*#__PURE__*/React.memo(function (props) {
|
|
|
188
236
|
size: 14,
|
|
189
237
|
strokeWidth: 1.5
|
|
190
238
|
}),
|
|
191
|
-
variant:
|
|
239
|
+
variant: isFiltered ? 'filled' : undefined,
|
|
192
240
|
type: "text",
|
|
193
241
|
size: "small"
|
|
194
242
|
});
|
|
@@ -10,11 +10,14 @@ export function handleColumns(columns) {
|
|
|
10
10
|
for (var i = 0; i < columns.length; i++) {
|
|
11
11
|
var col = columns[i] || {};
|
|
12
12
|
if (col.fixed === true || col.fixed === 'left') {
|
|
13
|
+
var _columns;
|
|
13
14
|
col.fixed = 'left';
|
|
14
15
|
col.style = _objectSpread(_objectSpread({}, col.style), {}, {
|
|
15
16
|
left: leftWidthCount
|
|
16
17
|
});
|
|
17
|
-
|
|
18
|
+
var nextFixed = (_columns = columns[i + 1]) === null || _columns === void 0 ? void 0 : _columns.fixed;
|
|
19
|
+
var nextIsFixedLeft = nextFixed === true || nextFixed === 'left';
|
|
20
|
+
if (!nextIsFixedLeft) {
|
|
18
21
|
col.isFixedLeftLast = true;
|
|
19
22
|
}
|
|
20
23
|
leftWidthCount = leftWidthCount + (col.width ? parseFloat(col.width) : 0);
|
|
@@ -23,11 +26,11 @@ export function handleColumns(columns) {
|
|
|
23
26
|
for (var j = columns.length - 1; j >= 0; j--) {
|
|
24
27
|
var _col = columns[j] || {};
|
|
25
28
|
if (_col.fixed === 'right') {
|
|
26
|
-
var
|
|
29
|
+
var _columns2;
|
|
27
30
|
_col.style = _objectSpread(_objectSpread({}, _col.style), {}, {
|
|
28
31
|
right: rightWidthCount
|
|
29
32
|
});
|
|
30
|
-
if (((
|
|
33
|
+
if (((_columns2 = columns[j - 1]) === null || _columns2 === void 0 ? void 0 : _columns2.fixed) !== 'right') {
|
|
31
34
|
_col.isFixedRightFirst = true;
|
|
32
35
|
}
|
|
33
36
|
rightWidthCount = rightWidthCount + (_col.width ? parseFloat(_col.width) : 0);
|
package/dist/esm/version.d.ts
CHANGED
package/dist/esm/version.js
CHANGED