@aloudata/aloudata-design 0.2.0-beta.13 → 0.2.0-beta.16
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/Table/index.d.ts +3 -3
- package/es/Table/index.js +133 -97
- package/es/Table/interface.d.ts +4 -2
- package/es/Table/style/index.less +37 -9
- package/lib/Table/index.d.ts +3 -3
- package/lib/Table/index.js +141 -104
- package/lib/Table/interface.d.ts +4 -2
- package/lib/Table/style/index.less +37 -9
- package/package.json +2 -1
package/es/Table/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { ITableProps } from './interface';
|
|
3
|
-
declare
|
|
4
|
-
export default
|
|
3
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<ITableProps<Record<string, unknown>>, "onChange" | "loading" | "data" | "columns" | "total" | "renderHeaderLeft" | "renderHeaderRight" | "onRowSelected" | "loadMore" | "hasNextPage" | "sortable" | "defaultSort" | "resizeColumn" | "sortDirections" | "showHeader" | "innerScroll"> & React.RefAttributes<unknown>>;
|
|
4
|
+
export default _default;
|
package/es/Table/index.js
CHANGED
|
@@ -26,19 +26,17 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
26
26
|
/// <reference types ='./react-table-config' />
|
|
27
27
|
import _ from 'lodash';
|
|
28
28
|
import classnames from 'classnames';
|
|
29
|
-
import Empty from '../Empty';
|
|
30
29
|
import Icon from '../Icon';
|
|
31
|
-
import InfiniteLoader from 'react-window-infinite-loader';
|
|
32
30
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
33
31
|
import usePrefixCls from '../_utils/hooks/usePrefixCls';
|
|
34
|
-
import
|
|
32
|
+
import InfiniteScroll from 'react-infinite-scroll-component';
|
|
33
|
+
import Empty from '../Empty';
|
|
35
34
|
import { useTable, useBlockLayout, useRowSelect, useSortBy, useResizeColumns } from 'react-table';
|
|
36
|
-
var DEFAULT_ROW_HEIGHT = 40;
|
|
37
35
|
var ARRAY_FIRST_INDEX = 0;
|
|
38
36
|
var DEFAULT_ROW_WIDTH = 0;
|
|
39
37
|
var DEFAULT_BODY_HEIGHT = 0;
|
|
40
38
|
|
|
41
|
-
function Table(_ref) {
|
|
39
|
+
function Table(_ref, ref) {
|
|
42
40
|
var columns = _ref.columns,
|
|
43
41
|
data = _ref.data,
|
|
44
42
|
total = _ref.total,
|
|
@@ -46,8 +44,8 @@ function Table(_ref) {
|
|
|
46
44
|
renderHeaderRight = _ref.renderHeaderRight,
|
|
47
45
|
onRowSelected = _ref.onRowSelected,
|
|
48
46
|
loadMore = _ref.loadMore,
|
|
49
|
-
hasNextPage = _ref.hasNextPage,
|
|
50
47
|
loading = _ref.loading,
|
|
48
|
+
hasNextPage = _ref.hasNextPage,
|
|
51
49
|
_ref$sortable = _ref.sortable,
|
|
52
50
|
sortable = _ref$sortable === void 0 ? false : _ref$sortable,
|
|
53
51
|
defaultSort = _ref.defaultSort,
|
|
@@ -57,29 +55,67 @@ function Table(_ref) {
|
|
|
57
55
|
_ref$showHeader = _ref.showHeader,
|
|
58
56
|
showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
|
|
59
57
|
_ref$onChange = _ref.onChange,
|
|
60
|
-
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange
|
|
58
|
+
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
|
|
59
|
+
_ref$innerScroll = _ref.innerScroll,
|
|
60
|
+
innerScroll = _ref$innerScroll === void 0 ? false : _ref$innerScroll;
|
|
61
61
|
|
|
62
62
|
var _React$useState = React.useState(null),
|
|
63
63
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
64
64
|
selectedRowId = _React$useState2[0],
|
|
65
65
|
setSelectedRowId = _React$useState2[1];
|
|
66
66
|
|
|
67
|
-
var
|
|
67
|
+
var tableBodyListRef = useRef(null);
|
|
68
|
+
var tableRef = useRef(null);
|
|
68
69
|
|
|
69
70
|
var _useState = useState(DEFAULT_BODY_HEIGHT),
|
|
70
71
|
_useState2 = _slicedToArray(_useState, 2),
|
|
71
|
-
|
|
72
|
-
|
|
72
|
+
tableClientWidth = _useState2[0],
|
|
73
|
+
setTableClientWidth = _useState2[1];
|
|
73
74
|
|
|
75
|
+
var RANDOM_ID = "INNER_SCROLL_ID_".concat(Math.random());
|
|
74
76
|
useEffect(function () {
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
+
if (tableRef.current) {
|
|
78
|
+
setTableClientWidth(tableRef.current.clientWidth);
|
|
77
79
|
}
|
|
78
80
|
}, []);
|
|
81
|
+
var initialColumnsWidthMap = useMemo(function () {
|
|
82
|
+
var map = new Map();
|
|
83
|
+
|
|
84
|
+
if (tableClientWidth !== DEFAULT_BODY_HEIGHT) {
|
|
85
|
+
var noGivenColumns = 0;
|
|
86
|
+
var givenColumnsTotalWidth = 0;
|
|
87
|
+
columns.forEach(function (column) {
|
|
88
|
+
if (column.width) {
|
|
89
|
+
map.set(column.dataIndex, column.width);
|
|
90
|
+
givenColumnsTotalWidth += column.width;
|
|
91
|
+
} else {
|
|
92
|
+
noGivenColumns += 1;
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
var averageWidth = (tableClientWidth - givenColumnsTotalWidth) / noGivenColumns;
|
|
96
|
+
return {
|
|
97
|
+
columnMap: map,
|
|
98
|
+
averageWidth: averageWidth
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
columns.forEach(function (column) {
|
|
103
|
+
if (column.width) {
|
|
104
|
+
map.set(column.dataIndex, column.width);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
return {
|
|
108
|
+
columnMap: map,
|
|
109
|
+
averageWidth: DEFAULT_ROW_WIDTH
|
|
110
|
+
};
|
|
111
|
+
}, [columns, tableClientWidth]);
|
|
79
112
|
var newColumns = useMemo(function () {
|
|
80
113
|
return columns.map(function (column) {
|
|
81
114
|
return _objectSpread(_objectSpread({}, column), {}, {
|
|
82
|
-
|
|
115
|
+
width: initialColumnsWidthMap.columnMap.get(column.dataIndex) || initialColumnsWidthMap.averageWidth,
|
|
116
|
+
Header: column.title ? column.title : function () {
|
|
117
|
+
return null;
|
|
118
|
+
},
|
|
83
119
|
disableSortBy: !sortable || typeof column.sorter === 'boolean',
|
|
84
120
|
accessor: column.dataIndex,
|
|
85
121
|
Cell: function Cell(_ref2) {
|
|
@@ -89,7 +125,7 @@ function Table(_ref) {
|
|
|
89
125
|
}
|
|
90
126
|
});
|
|
91
127
|
});
|
|
92
|
-
}, [columns, sortable]);
|
|
128
|
+
}, [columns, sortable, initialColumnsWidthMap]);
|
|
93
129
|
|
|
94
130
|
var getInitialSortDirection = function getInitialSortDirection() {
|
|
95
131
|
if (defaultSort && defaultSort.id) {
|
|
@@ -144,7 +180,8 @@ function Table(_ref) {
|
|
|
144
180
|
headerGroups = _useTable.headerGroups,
|
|
145
181
|
rows = _useTable.rows,
|
|
146
182
|
prepareRow = _useTable.prepareRow,
|
|
147
|
-
setSortBy = _useTable.setSortBy
|
|
183
|
+
setSortBy = _useTable.setSortBy,
|
|
184
|
+
totalColumnsWidth = _useTable.totalColumnsWidth;
|
|
148
185
|
|
|
149
186
|
var theadRowWidthRef = React.useRef(DEFAULT_ROW_WIDTH);
|
|
150
187
|
var prefixCls = usePrefixCls('block-table');
|
|
@@ -156,48 +193,6 @@ function Table(_ref) {
|
|
|
156
193
|
setSelectedRowId(row.id);
|
|
157
194
|
onRowSelected(row.original);
|
|
158
195
|
}, [onRowSelected]);
|
|
159
|
-
var itemCount = hasNextPage ? data.length + 1 : data.length;
|
|
160
|
-
var loadMoreItems = loading ? function () {} : loadMore;
|
|
161
|
-
|
|
162
|
-
var isItemLoaded = function isItemLoaded(index) {
|
|
163
|
-
return !hasNextPage || index < data.length;
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
var RenderRow = function RenderRow(_ref3) {
|
|
167
|
-
var index = _ref3.index,
|
|
168
|
-
style = _ref3.style;
|
|
169
|
-
|
|
170
|
-
if (!isItemLoaded(index)) {
|
|
171
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
172
|
-
style: style,
|
|
173
|
-
className: classnames("".concat(prefixCls, "-loading"))
|
|
174
|
-
}, /*#__PURE__*/React.createElement(Icon, {
|
|
175
|
-
type: "waiting",
|
|
176
|
-
size: 16
|
|
177
|
-
}), "Loading");
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
var row = rows[index];
|
|
181
|
-
prepareRow(row);
|
|
182
|
-
|
|
183
|
-
var _row$getRowProps = row.getRowProps(),
|
|
184
|
-
rowStyle = _row$getRowProps.style,
|
|
185
|
-
rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
|
|
186
|
-
|
|
187
|
-
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, rowProps), {}, {
|
|
188
|
-
style: _objectSpread(_objectSpread(_objectSpread({}, style), rowStyle), {}, {
|
|
189
|
-
width: resizeColumn ? style === null || style === void 0 ? void 0 : style.width : '100%'
|
|
190
|
-
}),
|
|
191
|
-
className: classnames("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
|
|
192
|
-
onClick: function onClick() {
|
|
193
|
-
return onRowClick(row);
|
|
194
|
-
}
|
|
195
|
-
}), row.cells.map(function (cell) {
|
|
196
|
-
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, cell.getCellProps()), {}, {
|
|
197
|
-
className: classnames("".concat(prefixCls, "-cell"))
|
|
198
|
-
}), cell.render('Cell'));
|
|
199
|
-
}));
|
|
200
|
-
};
|
|
201
196
|
|
|
202
197
|
var renderHeader = function renderHeader(len) {
|
|
203
198
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -289,8 +284,8 @@ function Table(_ref) {
|
|
|
289
284
|
return column.getHeaderProps();
|
|
290
285
|
};
|
|
291
286
|
|
|
292
|
-
var SortIcons = function SortIcons(
|
|
293
|
-
var id =
|
|
287
|
+
var SortIcons = function SortIcons(_ref3) {
|
|
288
|
+
var id = _ref3.id;
|
|
294
289
|
var currentSortId = sortDirection.id,
|
|
295
290
|
desc = sortDirection.desc;
|
|
296
291
|
|
|
@@ -309,45 +304,79 @@ function Table(_ref) {
|
|
|
309
304
|
});
|
|
310
305
|
};
|
|
311
306
|
|
|
307
|
+
var scrollToTop = function scrollToTop() {
|
|
308
|
+
var INITIAL_OFFSET_TOP = 0;
|
|
309
|
+
|
|
310
|
+
if (tableBodyListRef && tableBodyListRef.current) {
|
|
311
|
+
tableBodyListRef.current.scrollTop = INITIAL_OFFSET_TOP;
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
|
|
315
|
+
React.useImperativeHandle(ref, function () {
|
|
316
|
+
return {
|
|
317
|
+
backToTop: function backToTop() {
|
|
318
|
+
scrollToTop();
|
|
319
|
+
}
|
|
320
|
+
};
|
|
321
|
+
});
|
|
322
|
+
var LoadingNode = /*#__PURE__*/React.createElement("div", {
|
|
323
|
+
className: classnames("".concat(prefixCls, "-loading"))
|
|
324
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
325
|
+
type: "waiting",
|
|
326
|
+
size: 16
|
|
327
|
+
}), "Loading");
|
|
328
|
+
|
|
312
329
|
var renderTableBody = function renderTableBody() {
|
|
330
|
+
if (loading && !rows.length) {
|
|
331
|
+
return LoadingNode;
|
|
332
|
+
}
|
|
333
|
+
|
|
313
334
|
if (!loading && !rows.length) {
|
|
314
335
|
return /*#__PURE__*/React.createElement(Empty, {
|
|
315
336
|
description: "\u5F53\u524D\u65E0\u6570\u636E"
|
|
316
337
|
});
|
|
317
338
|
}
|
|
318
339
|
|
|
319
|
-
|
|
320
|
-
return
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
return /*#__PURE__*/React.createElement(
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
340
|
+
var renderRowList = function renderRowList() {
|
|
341
|
+
return data.map(function (item, index) {
|
|
342
|
+
var row = rows[index];
|
|
343
|
+
prepareRow(row);
|
|
344
|
+
|
|
345
|
+
var _row$getRowProps = row.getRowProps(),
|
|
346
|
+
rowStyle = _row$getRowProps.style,
|
|
347
|
+
rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
|
|
348
|
+
|
|
349
|
+
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, rowProps), {}, {
|
|
350
|
+
style: _objectSpread({}, rowStyle),
|
|
351
|
+
className: classnames("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
|
|
352
|
+
onClick: function onClick() {
|
|
353
|
+
return onRowClick(row);
|
|
354
|
+
},
|
|
355
|
+
key: row.id
|
|
356
|
+
}), row.cells.map(function (cell) {
|
|
357
|
+
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, cell.getCellProps()), {}, {
|
|
358
|
+
className: classnames("".concat(prefixCls, "-cell"))
|
|
359
|
+
}), cell.render('Cell'));
|
|
360
|
+
}));
|
|
337
361
|
});
|
|
338
|
-
}
|
|
362
|
+
};
|
|
339
363
|
|
|
340
|
-
return /*#__PURE__*/React.createElement(
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
364
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
365
|
+
className: classnames("".concat(prefixCls, "-list"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
|
|
366
|
+
id: RANDOM_ID,
|
|
367
|
+
ref: tableBodyListRef
|
|
368
|
+
}, innerScroll ? /*#__PURE__*/React.createElement(InfiniteScroll, {
|
|
369
|
+
dataLength: rows.length,
|
|
370
|
+
next: loadMore,
|
|
371
|
+
hasMore: !!hasNextPage,
|
|
372
|
+
loader: LoadingNode,
|
|
373
|
+
scrollableTarget: RANDOM_ID
|
|
374
|
+
}, renderRowList()) : renderRowList());
|
|
347
375
|
};
|
|
348
376
|
|
|
349
377
|
return /*#__PURE__*/React.createElement("div", {
|
|
350
|
-
className: prefixCls
|
|
378
|
+
className: prefixCls,
|
|
379
|
+
ref: tableRef
|
|
351
380
|
}, showHeader && renderHeader(data.length), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
|
|
352
381
|
className: classnames("".concat(prefixCls, "-table-wrap"), _defineProperty({}, "".concat(prefixCls, "-column-resizable"), resizeColumn))
|
|
353
382
|
}), /*#__PURE__*/React.createElement("div", {
|
|
@@ -365,21 +394,28 @@ function Table(_ref) {
|
|
|
365
394
|
className: "".concat(prefixCls, "-row")
|
|
366
395
|
}), headerGroup.headers.map(function (column) {
|
|
367
396
|
var barPorps = resizeColumn ? column.getResizerProps() : {};
|
|
368
|
-
return /*#__PURE__*/React.createElement("div",
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
}, getHeaderProps(column)), {}, {
|
|
397
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
398
|
+
className: classnames(_defineProperty({}, "".concat(prefixCls, "-cell-sorting"), column.id === sortDirection.id), "".concat(prefixCls, "-cell")),
|
|
399
|
+
style: getHeaderProps(column).style,
|
|
372
400
|
key: column.id
|
|
373
|
-
}
|
|
374
|
-
className:
|
|
375
|
-
})),
|
|
401
|
+
}, /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({
|
|
402
|
+
className: "".concat(prefixCls, "-cell-content")
|
|
403
|
+
}, getHeaderProps(column)), {}, {
|
|
404
|
+
style: {
|
|
405
|
+
width: '100%'
|
|
406
|
+
}
|
|
407
|
+
}), column.render('Header'), /*#__PURE__*/React.createElement(SortIcons, {
|
|
376
408
|
id: column.id
|
|
377
|
-
}))
|
|
409
|
+
})), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, barPorps), {}, {
|
|
410
|
+
className: classnames(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
|
|
411
|
+
})));
|
|
378
412
|
}));
|
|
379
413
|
})), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, getTableBodyProps()), {}, {
|
|
380
|
-
className: classnames("".concat(prefixCls, "-tbody")),
|
|
381
|
-
|
|
414
|
+
className: classnames("".concat(prefixCls, "-tbody"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
|
|
415
|
+
style: {
|
|
416
|
+
width: totalColumnsWidth
|
|
417
|
+
}
|
|
382
418
|
}), renderTableBody())));
|
|
383
419
|
}
|
|
384
420
|
|
|
385
|
-
export default Table;
|
|
421
|
+
export default /*#__PURE__*/React.forwardRef(Table);
|
package/es/Table/interface.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export interface ISort<T> {
|
|
|
6
6
|
desc?: boolean;
|
|
7
7
|
}
|
|
8
8
|
export interface IColumn<T extends object> {
|
|
9
|
-
title: string;
|
|
9
|
+
title: string | null;
|
|
10
10
|
dataIndex: string;
|
|
11
11
|
render?: (value: any, row: Record<string, T>, index: number) => React.ReactNode;
|
|
12
12
|
width?: number;
|
|
@@ -21,7 +21,7 @@ export interface ITableProps<T extends object> {
|
|
|
21
21
|
data: T[];
|
|
22
22
|
total?: number;
|
|
23
23
|
onRowSelected?: (row: T) => void;
|
|
24
|
-
loadMore?: (
|
|
24
|
+
loadMore?: () => void | Promise<void>;
|
|
25
25
|
hasNextPage?: boolean;
|
|
26
26
|
loading?: boolean;
|
|
27
27
|
renderHeaderLeft?: () => React.ReactNode;
|
|
@@ -32,4 +32,6 @@ export interface ITableProps<T extends object> {
|
|
|
32
32
|
sortDirections?: Array<'ascend' | 'descend'>;
|
|
33
33
|
resizeColumn?: boolean;
|
|
34
34
|
showHeader?: boolean;
|
|
35
|
+
innerScroll?: boolean;
|
|
36
|
+
ref?: React.RefObject<unknown>;
|
|
35
37
|
}
|
|
@@ -12,23 +12,33 @@
|
|
|
12
12
|
overflow: hidden;
|
|
13
13
|
user-select: none;
|
|
14
14
|
|
|
15
|
+
&-page-loading {
|
|
16
|
+
opacity: 0;
|
|
17
|
+
}
|
|
18
|
+
|
|
15
19
|
&-table-wrap {
|
|
16
20
|
display: flex;
|
|
17
21
|
flex: 1;
|
|
18
22
|
flex-direction: column;
|
|
23
|
+
overflow: hidden;
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
&-cell {
|
|
22
27
|
flex-grow: 1;
|
|
23
|
-
height:
|
|
24
|
-
|
|
25
|
-
overflow: hidden;
|
|
28
|
+
height: unset;
|
|
29
|
+
min-height: @table-row-height;
|
|
26
30
|
color: @NL0;
|
|
27
31
|
line-height: @table-row-height;
|
|
28
|
-
white-space: nowrap;
|
|
29
32
|
text-align: left;
|
|
30
|
-
text-overflow: ellipsis;
|
|
31
33
|
border-bottom: 1px solid @NL95;
|
|
34
|
+
word-break: break-all;
|
|
35
|
+
display: flex;
|
|
36
|
+
padding: 0 12px;
|
|
37
|
+
align-items: center;
|
|
38
|
+
|
|
39
|
+
&-content {
|
|
40
|
+
flex: 1;
|
|
41
|
+
}
|
|
32
42
|
}
|
|
33
43
|
|
|
34
44
|
&-row {
|
|
@@ -51,12 +61,19 @@
|
|
|
51
61
|
right: 0;
|
|
52
62
|
z-index: 1;
|
|
53
63
|
display: inline-block;
|
|
54
|
-
width:
|
|
64
|
+
width: 12px;
|
|
55
65
|
height: 12px;
|
|
56
|
-
background: blue;
|
|
57
|
-
background-color: @NL95;
|
|
58
66
|
transform: translateY(-50%);
|
|
59
67
|
touch-action: none;
|
|
68
|
+
padding-left: 5px;
|
|
69
|
+
|
|
70
|
+
&::after {
|
|
71
|
+
display: block;
|
|
72
|
+
height: 100%;
|
|
73
|
+
width: 1px;
|
|
74
|
+
content: '';
|
|
75
|
+
background-color: @NL95;
|
|
76
|
+
}
|
|
60
77
|
}
|
|
61
78
|
|
|
62
79
|
&:last-child {
|
|
@@ -73,6 +90,8 @@
|
|
|
73
90
|
|
|
74
91
|
.ant-empty {
|
|
75
92
|
padding-top: 80px;
|
|
93
|
+
display: flex;
|
|
94
|
+
justify-content: center;
|
|
76
95
|
}
|
|
77
96
|
|
|
78
97
|
.ant-block-table-row {
|
|
@@ -125,9 +144,18 @@
|
|
|
125
144
|
}
|
|
126
145
|
}
|
|
127
146
|
|
|
128
|
-
|
|
147
|
+
/* stylelint-disable-next-line selector-class-pattern */
|
|
148
|
+
&-list&-innerScroll {
|
|
149
|
+
height: 100%;
|
|
129
150
|
overflow: overlay !important;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// 当出现多行的时候 会顶出一个滚动条 通过复写三方库的样式覆盖
|
|
154
|
+
&-list&-canNotInnerScroll {
|
|
155
|
+
overflow: hidden !important;
|
|
156
|
+
}
|
|
130
157
|
|
|
158
|
+
&-list {
|
|
131
159
|
&::-webkit-scrollbar-thumb {
|
|
132
160
|
background: @NL90;
|
|
133
161
|
background-clip: padding-box;
|
package/lib/Table/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { ITableProps } from './interface';
|
|
3
|
-
declare
|
|
4
|
-
export default
|
|
3
|
+
declare const _default: React.ForwardRefExoticComponent<Pick<ITableProps<Record<string, unknown>>, "onChange" | "loading" | "data" | "columns" | "total" | "renderHeaderLeft" | "renderHeaderRight" | "onRowSelected" | "loadMore" | "hasNextPage" | "sortable" | "defaultSort" | "resizeColumn" | "sortDirections" | "showHeader" | "innerScroll"> & React.RefAttributes<unknown>>;
|
|
4
|
+
export default _default;
|
package/lib/Table/index.js
CHANGED
|
@@ -9,19 +9,17 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
11
11
|
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
var _Empty = _interopRequireDefault(require("../Empty"));
|
|
12
|
+
var _classnames7 = _interopRequireDefault(require("classnames"));
|
|
15
13
|
|
|
16
14
|
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
17
15
|
|
|
18
|
-
var _reactWindowInfiniteLoader = _interopRequireDefault(require("react-window-infinite-loader"));
|
|
19
|
-
|
|
20
16
|
var _react = _interopRequireWildcard(require("react"));
|
|
21
17
|
|
|
22
18
|
var _usePrefixCls = _interopRequireDefault(require("../_utils/hooks/usePrefixCls"));
|
|
23
19
|
|
|
24
|
-
var
|
|
20
|
+
var _reactInfiniteScrollComponent = _interopRequireDefault(require("react-infinite-scroll-component"));
|
|
21
|
+
|
|
22
|
+
var _Empty = _interopRequireDefault(require("../Empty"));
|
|
25
23
|
|
|
26
24
|
var _reactTable = require("react-table");
|
|
27
25
|
|
|
@@ -56,12 +54,11 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
|
56
54
|
|
|
57
55
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
58
56
|
|
|
59
|
-
var DEFAULT_ROW_HEIGHT = 40;
|
|
60
57
|
var ARRAY_FIRST_INDEX = 0;
|
|
61
58
|
var DEFAULT_ROW_WIDTH = 0;
|
|
62
59
|
var DEFAULT_BODY_HEIGHT = 0;
|
|
63
60
|
|
|
64
|
-
function Table(_ref) {
|
|
61
|
+
function Table(_ref, ref) {
|
|
65
62
|
var columns = _ref.columns,
|
|
66
63
|
data = _ref.data,
|
|
67
64
|
total = _ref.total,
|
|
@@ -69,8 +66,8 @@ function Table(_ref) {
|
|
|
69
66
|
renderHeaderRight = _ref.renderHeaderRight,
|
|
70
67
|
onRowSelected = _ref.onRowSelected,
|
|
71
68
|
loadMore = _ref.loadMore,
|
|
72
|
-
hasNextPage = _ref.hasNextPage,
|
|
73
69
|
loading = _ref.loading,
|
|
70
|
+
hasNextPage = _ref.hasNextPage,
|
|
74
71
|
_ref$sortable = _ref.sortable,
|
|
75
72
|
sortable = _ref$sortable === void 0 ? false : _ref$sortable,
|
|
76
73
|
defaultSort = _ref.defaultSort,
|
|
@@ -80,29 +77,67 @@ function Table(_ref) {
|
|
|
80
77
|
_ref$showHeader = _ref.showHeader,
|
|
81
78
|
showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
|
|
82
79
|
_ref$onChange = _ref.onChange,
|
|
83
|
-
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange
|
|
80
|
+
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
|
|
81
|
+
_ref$innerScroll = _ref.innerScroll,
|
|
82
|
+
innerScroll = _ref$innerScroll === void 0 ? false : _ref$innerScroll;
|
|
84
83
|
|
|
85
84
|
var _React$useState = _react.default.useState(null),
|
|
86
85
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
87
86
|
selectedRowId = _React$useState2[0],
|
|
88
87
|
setSelectedRowId = _React$useState2[1];
|
|
89
88
|
|
|
90
|
-
var
|
|
89
|
+
var tableBodyListRef = (0, _react.useRef)(null);
|
|
90
|
+
var tableRef = (0, _react.useRef)(null);
|
|
91
91
|
|
|
92
92
|
var _useState = (0, _react.useState)(DEFAULT_BODY_HEIGHT),
|
|
93
93
|
_useState2 = _slicedToArray(_useState, 2),
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
tableClientWidth = _useState2[0],
|
|
95
|
+
setTableClientWidth = _useState2[1];
|
|
96
96
|
|
|
97
|
+
var RANDOM_ID = "INNER_SCROLL_ID_".concat(Math.random());
|
|
97
98
|
(0, _react.useEffect)(function () {
|
|
98
|
-
if (
|
|
99
|
-
|
|
99
|
+
if (tableRef.current) {
|
|
100
|
+
setTableClientWidth(tableRef.current.clientWidth);
|
|
100
101
|
}
|
|
101
102
|
}, []);
|
|
103
|
+
var initialColumnsWidthMap = (0, _react.useMemo)(function () {
|
|
104
|
+
var map = new Map();
|
|
105
|
+
|
|
106
|
+
if (tableClientWidth !== DEFAULT_BODY_HEIGHT) {
|
|
107
|
+
var noGivenColumns = 0;
|
|
108
|
+
var givenColumnsTotalWidth = 0;
|
|
109
|
+
columns.forEach(function (column) {
|
|
110
|
+
if (column.width) {
|
|
111
|
+
map.set(column.dataIndex, column.width);
|
|
112
|
+
givenColumnsTotalWidth += column.width;
|
|
113
|
+
} else {
|
|
114
|
+
noGivenColumns += 1;
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
var averageWidth = (tableClientWidth - givenColumnsTotalWidth) / noGivenColumns;
|
|
118
|
+
return {
|
|
119
|
+
columnMap: map,
|
|
120
|
+
averageWidth: averageWidth
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
columns.forEach(function (column) {
|
|
125
|
+
if (column.width) {
|
|
126
|
+
map.set(column.dataIndex, column.width);
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
return {
|
|
130
|
+
columnMap: map,
|
|
131
|
+
averageWidth: DEFAULT_ROW_WIDTH
|
|
132
|
+
};
|
|
133
|
+
}, [columns, tableClientWidth]);
|
|
102
134
|
var newColumns = (0, _react.useMemo)(function () {
|
|
103
135
|
return columns.map(function (column) {
|
|
104
136
|
return _objectSpread(_objectSpread({}, column), {}, {
|
|
105
|
-
|
|
137
|
+
width: initialColumnsWidthMap.columnMap.get(column.dataIndex) || initialColumnsWidthMap.averageWidth,
|
|
138
|
+
Header: column.title ? column.title : function () {
|
|
139
|
+
return null;
|
|
140
|
+
},
|
|
106
141
|
disableSortBy: !sortable || typeof column.sorter === 'boolean',
|
|
107
142
|
accessor: column.dataIndex,
|
|
108
143
|
Cell: function Cell(_ref2) {
|
|
@@ -112,7 +147,7 @@ function Table(_ref) {
|
|
|
112
147
|
}
|
|
113
148
|
});
|
|
114
149
|
});
|
|
115
|
-
}, [columns, sortable]);
|
|
150
|
+
}, [columns, sortable, initialColumnsWidthMap]);
|
|
116
151
|
|
|
117
152
|
var getInitialSortDirection = function getInitialSortDirection() {
|
|
118
153
|
if (defaultSort && defaultSort.id) {
|
|
@@ -167,7 +202,8 @@ function Table(_ref) {
|
|
|
167
202
|
headerGroups = _useTable.headerGroups,
|
|
168
203
|
rows = _useTable.rows,
|
|
169
204
|
prepareRow = _useTable.prepareRow,
|
|
170
|
-
setSortBy = _useTable.setSortBy
|
|
205
|
+
setSortBy = _useTable.setSortBy,
|
|
206
|
+
totalColumnsWidth = _useTable.totalColumnsWidth;
|
|
171
207
|
|
|
172
208
|
var theadRowWidthRef = _react.default.useRef(DEFAULT_ROW_WIDTH);
|
|
173
209
|
|
|
@@ -180,56 +216,14 @@ function Table(_ref) {
|
|
|
180
216
|
setSelectedRowId(row.id);
|
|
181
217
|
onRowSelected(row.original);
|
|
182
218
|
}, [onRowSelected]);
|
|
183
|
-
var itemCount = hasNextPage ? data.length + 1 : data.length;
|
|
184
|
-
var loadMoreItems = loading ? function () {} : loadMore;
|
|
185
|
-
|
|
186
|
-
var isItemLoaded = function isItemLoaded(index) {
|
|
187
|
-
return !hasNextPage || index < data.length;
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
var RenderRow = function RenderRow(_ref3) {
|
|
191
|
-
var index = _ref3.index,
|
|
192
|
-
style = _ref3.style;
|
|
193
|
-
|
|
194
|
-
if (!isItemLoaded(index)) {
|
|
195
|
-
return /*#__PURE__*/_react.default.createElement("div", {
|
|
196
|
-
style: style,
|
|
197
|
-
className: (0, _classnames5.default)("".concat(prefixCls, "-loading"))
|
|
198
|
-
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
199
|
-
type: "waiting",
|
|
200
|
-
size: 16
|
|
201
|
-
}), "Loading");
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
var row = rows[index];
|
|
205
|
-
prepareRow(row);
|
|
206
|
-
|
|
207
|
-
var _row$getRowProps = row.getRowProps(),
|
|
208
|
-
rowStyle = _row$getRowProps.style,
|
|
209
|
-
rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
|
|
210
|
-
|
|
211
|
-
return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, rowProps), {}, {
|
|
212
|
-
style: _objectSpread(_objectSpread(_objectSpread({}, style), rowStyle), {}, {
|
|
213
|
-
width: resizeColumn ? style === null || style === void 0 ? void 0 : style.width : '100%'
|
|
214
|
-
}),
|
|
215
|
-
className: (0, _classnames5.default)("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
|
|
216
|
-
onClick: function onClick() {
|
|
217
|
-
return onRowClick(row);
|
|
218
|
-
}
|
|
219
|
-
}), row.cells.map(function (cell) {
|
|
220
|
-
return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, cell.getCellProps()), {}, {
|
|
221
|
-
className: (0, _classnames5.default)("".concat(prefixCls, "-cell"))
|
|
222
|
-
}), cell.render('Cell'));
|
|
223
|
-
}));
|
|
224
|
-
};
|
|
225
219
|
|
|
226
220
|
var renderHeader = function renderHeader(len) {
|
|
227
221
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
228
|
-
className: (0,
|
|
222
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-header"))
|
|
229
223
|
}, renderHeaderLeft ? renderHeaderLeft() : /*#__PURE__*/_react.default.createElement("span", {
|
|
230
|
-
className: (0,
|
|
224
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-header-left"))
|
|
231
225
|
}, "\u5171\u8BA1", total || len, "\u6761"), /*#__PURE__*/_react.default.createElement("div", {
|
|
232
|
-
className: (0,
|
|
226
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-header-right"))
|
|
233
227
|
}, renderHeaderRight ? renderHeaderRight() : null));
|
|
234
228
|
};
|
|
235
229
|
|
|
@@ -313,8 +307,8 @@ function Table(_ref) {
|
|
|
313
307
|
return column.getHeaderProps();
|
|
314
308
|
};
|
|
315
309
|
|
|
316
|
-
var SortIcons = function SortIcons(
|
|
317
|
-
var id =
|
|
310
|
+
var SortIcons = function SortIcons(_ref3) {
|
|
311
|
+
var id = _ref3.id;
|
|
318
312
|
var currentSortId = sortDirection.id,
|
|
319
313
|
desc = sortDirection.desc;
|
|
320
314
|
|
|
@@ -333,47 +327,82 @@ function Table(_ref) {
|
|
|
333
327
|
});
|
|
334
328
|
};
|
|
335
329
|
|
|
330
|
+
var scrollToTop = function scrollToTop() {
|
|
331
|
+
var INITIAL_OFFSET_TOP = 0;
|
|
332
|
+
|
|
333
|
+
if (tableBodyListRef && tableBodyListRef.current) {
|
|
334
|
+
tableBodyListRef.current.scrollTop = INITIAL_OFFSET_TOP;
|
|
335
|
+
}
|
|
336
|
+
};
|
|
337
|
+
|
|
338
|
+
_react.default.useImperativeHandle(ref, function () {
|
|
339
|
+
return {
|
|
340
|
+
backToTop: function backToTop() {
|
|
341
|
+
scrollToTop();
|
|
342
|
+
}
|
|
343
|
+
};
|
|
344
|
+
});
|
|
345
|
+
|
|
346
|
+
var LoadingNode = /*#__PURE__*/_react.default.createElement("div", {
|
|
347
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-loading"))
|
|
348
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
349
|
+
type: "waiting",
|
|
350
|
+
size: 16
|
|
351
|
+
}), "Loading");
|
|
352
|
+
|
|
336
353
|
var renderTableBody = function renderTableBody() {
|
|
354
|
+
if (loading && !rows.length) {
|
|
355
|
+
return LoadingNode;
|
|
356
|
+
}
|
|
357
|
+
|
|
337
358
|
if (!loading && !rows.length) {
|
|
338
359
|
return /*#__PURE__*/_react.default.createElement(_Empty.default, {
|
|
339
360
|
description: "\u5F53\u524D\u65E0\u6570\u636E"
|
|
340
361
|
});
|
|
341
362
|
}
|
|
342
363
|
|
|
343
|
-
|
|
344
|
-
return
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
364
|
+
var renderRowList = function renderRowList() {
|
|
365
|
+
return data.map(function (item, index) {
|
|
366
|
+
var row = rows[index];
|
|
367
|
+
prepareRow(row);
|
|
368
|
+
|
|
369
|
+
var _row$getRowProps = row.getRowProps(),
|
|
370
|
+
rowStyle = _row$getRowProps.style,
|
|
371
|
+
rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
|
|
372
|
+
|
|
373
|
+
return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, rowProps), {}, {
|
|
374
|
+
style: _objectSpread({}, rowStyle),
|
|
375
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
|
|
376
|
+
onClick: function onClick() {
|
|
377
|
+
return onRowClick(row);
|
|
378
|
+
},
|
|
379
|
+
key: row.id
|
|
380
|
+
}), row.cells.map(function (cell) {
|
|
381
|
+
return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, cell.getCellProps()), {}, {
|
|
382
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-cell"))
|
|
383
|
+
}), cell.render('Cell'));
|
|
384
|
+
}));
|
|
361
385
|
});
|
|
362
|
-
}
|
|
386
|
+
};
|
|
363
387
|
|
|
364
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
388
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
389
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-list"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
|
|
390
|
+
id: RANDOM_ID,
|
|
391
|
+
ref: tableBodyListRef
|
|
392
|
+
}, innerScroll ? /*#__PURE__*/_react.default.createElement(_reactInfiniteScrollComponent.default, {
|
|
393
|
+
dataLength: rows.length,
|
|
394
|
+
next: loadMore,
|
|
395
|
+
hasMore: !!hasNextPage,
|
|
396
|
+
loader: LoadingNode,
|
|
397
|
+
scrollableTarget: RANDOM_ID
|
|
398
|
+
}, renderRowList()) : renderRowList());
|
|
371
399
|
};
|
|
372
400
|
|
|
373
401
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
374
|
-
className: prefixCls
|
|
402
|
+
className: prefixCls,
|
|
403
|
+
ref: tableRef
|
|
375
404
|
}, showHeader && renderHeader(data.length), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
|
|
376
|
-
className: (0,
|
|
405
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-table-wrap"), _defineProperty({}, "".concat(prefixCls, "-column-resizable"), resizeColumn))
|
|
377
406
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
378
407
|
className: "".concat(prefixCls, "-thead")
|
|
379
408
|
}, headerGroups.map(function (headerGroup) {
|
|
@@ -389,22 +418,30 @@ function Table(_ref) {
|
|
|
389
418
|
className: "".concat(prefixCls, "-row")
|
|
390
419
|
}), headerGroup.headers.map(function (column) {
|
|
391
420
|
var barPorps = resizeColumn ? column.getResizerProps() : {};
|
|
392
|
-
return /*#__PURE__*/_react.default.createElement("div",
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
}, getHeaderProps(column)), {}, {
|
|
421
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
422
|
+
className: (0, _classnames7.default)(_defineProperty({}, "".concat(prefixCls, "-cell-sorting"), column.id === sortDirection.id), "".concat(prefixCls, "-cell")),
|
|
423
|
+
style: getHeaderProps(column).style,
|
|
396
424
|
key: column.id
|
|
397
|
-
}
|
|
398
|
-
className:
|
|
399
|
-
})),
|
|
425
|
+
}, /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({
|
|
426
|
+
className: "".concat(prefixCls, "-cell-content")
|
|
427
|
+
}, getHeaderProps(column)), {}, {
|
|
428
|
+
style: {
|
|
429
|
+
width: '100%'
|
|
430
|
+
}
|
|
431
|
+
}), column.render('Header'), /*#__PURE__*/_react.default.createElement(SortIcons, {
|
|
400
432
|
id: column.id
|
|
401
|
-
}))
|
|
433
|
+
})), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, barPorps), {}, {
|
|
434
|
+
className: (0, _classnames7.default)(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
|
|
435
|
+
})));
|
|
402
436
|
}));
|
|
403
437
|
})), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, getTableBodyProps()), {}, {
|
|
404
|
-
className: (0,
|
|
405
|
-
|
|
438
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-tbody"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
|
|
439
|
+
style: {
|
|
440
|
+
width: totalColumnsWidth
|
|
441
|
+
}
|
|
406
442
|
}), renderTableBody())));
|
|
407
443
|
}
|
|
408
444
|
|
|
409
|
-
var _default = Table;
|
|
445
|
+
var _default = /*#__PURE__*/_react.default.forwardRef(Table);
|
|
446
|
+
|
|
410
447
|
exports.default = _default;
|
package/lib/Table/interface.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ export interface ISort<T> {
|
|
|
6
6
|
desc?: boolean;
|
|
7
7
|
}
|
|
8
8
|
export interface IColumn<T extends object> {
|
|
9
|
-
title: string;
|
|
9
|
+
title: string | null;
|
|
10
10
|
dataIndex: string;
|
|
11
11
|
render?: (value: any, row: Record<string, T>, index: number) => React.ReactNode;
|
|
12
12
|
width?: number;
|
|
@@ -21,7 +21,7 @@ export interface ITableProps<T extends object> {
|
|
|
21
21
|
data: T[];
|
|
22
22
|
total?: number;
|
|
23
23
|
onRowSelected?: (row: T) => void;
|
|
24
|
-
loadMore?: (
|
|
24
|
+
loadMore?: () => void | Promise<void>;
|
|
25
25
|
hasNextPage?: boolean;
|
|
26
26
|
loading?: boolean;
|
|
27
27
|
renderHeaderLeft?: () => React.ReactNode;
|
|
@@ -32,4 +32,6 @@ export interface ITableProps<T extends object> {
|
|
|
32
32
|
sortDirections?: Array<'ascend' | 'descend'>;
|
|
33
33
|
resizeColumn?: boolean;
|
|
34
34
|
showHeader?: boolean;
|
|
35
|
+
innerScroll?: boolean;
|
|
36
|
+
ref?: React.RefObject<unknown>;
|
|
35
37
|
}
|
|
@@ -12,23 +12,33 @@
|
|
|
12
12
|
overflow: hidden;
|
|
13
13
|
user-select: none;
|
|
14
14
|
|
|
15
|
+
&-page-loading {
|
|
16
|
+
opacity: 0;
|
|
17
|
+
}
|
|
18
|
+
|
|
15
19
|
&-table-wrap {
|
|
16
20
|
display: flex;
|
|
17
21
|
flex: 1;
|
|
18
22
|
flex-direction: column;
|
|
23
|
+
overflow: hidden;
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
&-cell {
|
|
22
27
|
flex-grow: 1;
|
|
23
|
-
height:
|
|
24
|
-
|
|
25
|
-
overflow: hidden;
|
|
28
|
+
height: unset;
|
|
29
|
+
min-height: @table-row-height;
|
|
26
30
|
color: @NL0;
|
|
27
31
|
line-height: @table-row-height;
|
|
28
|
-
white-space: nowrap;
|
|
29
32
|
text-align: left;
|
|
30
|
-
text-overflow: ellipsis;
|
|
31
33
|
border-bottom: 1px solid @NL95;
|
|
34
|
+
word-break: break-all;
|
|
35
|
+
display: flex;
|
|
36
|
+
padding: 0 12px;
|
|
37
|
+
align-items: center;
|
|
38
|
+
|
|
39
|
+
&-content {
|
|
40
|
+
flex: 1;
|
|
41
|
+
}
|
|
32
42
|
}
|
|
33
43
|
|
|
34
44
|
&-row {
|
|
@@ -51,12 +61,19 @@
|
|
|
51
61
|
right: 0;
|
|
52
62
|
z-index: 1;
|
|
53
63
|
display: inline-block;
|
|
54
|
-
width:
|
|
64
|
+
width: 12px;
|
|
55
65
|
height: 12px;
|
|
56
|
-
background: blue;
|
|
57
|
-
background-color: @NL95;
|
|
58
66
|
transform: translateY(-50%);
|
|
59
67
|
touch-action: none;
|
|
68
|
+
padding-left: 5px;
|
|
69
|
+
|
|
70
|
+
&::after {
|
|
71
|
+
display: block;
|
|
72
|
+
height: 100%;
|
|
73
|
+
width: 1px;
|
|
74
|
+
content: '';
|
|
75
|
+
background-color: @NL95;
|
|
76
|
+
}
|
|
60
77
|
}
|
|
61
78
|
|
|
62
79
|
&:last-child {
|
|
@@ -73,6 +90,8 @@
|
|
|
73
90
|
|
|
74
91
|
.ant-empty {
|
|
75
92
|
padding-top: 80px;
|
|
93
|
+
display: flex;
|
|
94
|
+
justify-content: center;
|
|
76
95
|
}
|
|
77
96
|
|
|
78
97
|
.ant-block-table-row {
|
|
@@ -125,9 +144,18 @@
|
|
|
125
144
|
}
|
|
126
145
|
}
|
|
127
146
|
|
|
128
|
-
|
|
147
|
+
/* stylelint-disable-next-line selector-class-pattern */
|
|
148
|
+
&-list&-innerScroll {
|
|
149
|
+
height: 100%;
|
|
129
150
|
overflow: overlay !important;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// 当出现多行的时候 会顶出一个滚动条 通过复写三方库的样式覆盖
|
|
154
|
+
&-list&-canNotInnerScroll {
|
|
155
|
+
overflow: hidden !important;
|
|
156
|
+
}
|
|
130
157
|
|
|
158
|
+
&-list {
|
|
131
159
|
&::-webkit-scrollbar-thumb {
|
|
132
160
|
background: @NL90;
|
|
133
161
|
background-clip: padding-box;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aloudata/aloudata-design",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.16",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"start": "dumi dev",
|
|
6
6
|
"docs:build": "dumi build",
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"rc-overflow": "^1.2.3",
|
|
58
58
|
"rc-trigger": "^5.2.10",
|
|
59
59
|
"rc-virtual-list": "^3.4.2",
|
|
60
|
+
"react-infinite-scroll-component": "^6.1.0",
|
|
60
61
|
"react-table": "^7.7.0",
|
|
61
62
|
"react-window": "^1.8.6",
|
|
62
63
|
"react-window-infinite-loader": "^1.0.7"
|