@aloudata/aloudata-design 0.2.0-beta.13 → 0.2.0-beta.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/es/Table/index.d.ts +3 -3
- package/es/Table/index.js +130 -96
- package/es/Table/interface.d.ts +3 -1
- package/es/Table/style/index.less +37 -9
- package/lib/Table/index.d.ts +3 -3
- package/lib/Table/index.js +138 -103
- package/lib/Table/interface.d.ts +3 -1
- 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,28 +55,64 @@ 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), {}, {
|
|
115
|
+
width: initialColumnsWidthMap.columnMap.get(column.dataIndex) || initialColumnsWidthMap.averageWidth,
|
|
82
116
|
Header: column.title,
|
|
83
117
|
disableSortBy: !sortable || typeof column.sorter === 'boolean',
|
|
84
118
|
accessor: column.dataIndex,
|
|
@@ -89,7 +123,7 @@ function Table(_ref) {
|
|
|
89
123
|
}
|
|
90
124
|
});
|
|
91
125
|
});
|
|
92
|
-
}, [columns, sortable]);
|
|
126
|
+
}, [columns, sortable, initialColumnsWidthMap]);
|
|
93
127
|
|
|
94
128
|
var getInitialSortDirection = function getInitialSortDirection() {
|
|
95
129
|
if (defaultSort && defaultSort.id) {
|
|
@@ -144,7 +178,8 @@ function Table(_ref) {
|
|
|
144
178
|
headerGroups = _useTable.headerGroups,
|
|
145
179
|
rows = _useTable.rows,
|
|
146
180
|
prepareRow = _useTable.prepareRow,
|
|
147
|
-
setSortBy = _useTable.setSortBy
|
|
181
|
+
setSortBy = _useTable.setSortBy,
|
|
182
|
+
totalColumnsWidth = _useTable.totalColumnsWidth;
|
|
148
183
|
|
|
149
184
|
var theadRowWidthRef = React.useRef(DEFAULT_ROW_WIDTH);
|
|
150
185
|
var prefixCls = usePrefixCls('block-table');
|
|
@@ -156,48 +191,6 @@ function Table(_ref) {
|
|
|
156
191
|
setSelectedRowId(row.id);
|
|
157
192
|
onRowSelected(row.original);
|
|
158
193
|
}, [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
194
|
|
|
202
195
|
var renderHeader = function renderHeader(len) {
|
|
203
196
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -289,8 +282,8 @@ function Table(_ref) {
|
|
|
289
282
|
return column.getHeaderProps();
|
|
290
283
|
};
|
|
291
284
|
|
|
292
|
-
var SortIcons = function SortIcons(
|
|
293
|
-
var id =
|
|
285
|
+
var SortIcons = function SortIcons(_ref3) {
|
|
286
|
+
var id = _ref3.id;
|
|
294
287
|
var currentSortId = sortDirection.id,
|
|
295
288
|
desc = sortDirection.desc;
|
|
296
289
|
|
|
@@ -309,45 +302,79 @@ function Table(_ref) {
|
|
|
309
302
|
});
|
|
310
303
|
};
|
|
311
304
|
|
|
305
|
+
var scrollToTop = function scrollToTop() {
|
|
306
|
+
var INITIAL_OFFSET_TOP = 0;
|
|
307
|
+
|
|
308
|
+
if (tableBodyListRef && tableBodyListRef.current) {
|
|
309
|
+
tableBodyListRef.current.scrollTop = INITIAL_OFFSET_TOP;
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
React.useImperativeHandle(ref, function () {
|
|
314
|
+
return {
|
|
315
|
+
backToTop: function backToTop() {
|
|
316
|
+
scrollToTop();
|
|
317
|
+
}
|
|
318
|
+
};
|
|
319
|
+
});
|
|
320
|
+
var LoadingNode = /*#__PURE__*/React.createElement("div", {
|
|
321
|
+
className: classnames("".concat(prefixCls, "-loading"))
|
|
322
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
323
|
+
type: "waiting",
|
|
324
|
+
size: 16
|
|
325
|
+
}), "Loading");
|
|
326
|
+
|
|
312
327
|
var renderTableBody = function renderTableBody() {
|
|
328
|
+
if (loading && !rows.length) {
|
|
329
|
+
return LoadingNode;
|
|
330
|
+
}
|
|
331
|
+
|
|
313
332
|
if (!loading && !rows.length) {
|
|
314
333
|
return /*#__PURE__*/React.createElement(Empty, {
|
|
315
334
|
description: "\u5F53\u524D\u65E0\u6570\u636E"
|
|
316
335
|
});
|
|
317
336
|
}
|
|
318
337
|
|
|
319
|
-
|
|
320
|
-
return
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
return /*#__PURE__*/React.createElement(
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
338
|
+
var renderRowList = function renderRowList() {
|
|
339
|
+
return data.map(function (item, index) {
|
|
340
|
+
var row = rows[index];
|
|
341
|
+
prepareRow(row);
|
|
342
|
+
|
|
343
|
+
var _row$getRowProps = row.getRowProps(),
|
|
344
|
+
rowStyle = _row$getRowProps.style,
|
|
345
|
+
rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
|
|
346
|
+
|
|
347
|
+
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, rowProps), {}, {
|
|
348
|
+
style: _objectSpread({}, rowStyle),
|
|
349
|
+
className: classnames("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
|
|
350
|
+
onClick: function onClick() {
|
|
351
|
+
return onRowClick(row);
|
|
352
|
+
},
|
|
353
|
+
key: row.id
|
|
354
|
+
}), row.cells.map(function (cell) {
|
|
355
|
+
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, cell.getCellProps()), {}, {
|
|
356
|
+
className: classnames("".concat(prefixCls, "-cell"))
|
|
357
|
+
}), cell.render('Cell'));
|
|
358
|
+
}));
|
|
337
359
|
});
|
|
338
|
-
}
|
|
360
|
+
};
|
|
339
361
|
|
|
340
|
-
return /*#__PURE__*/React.createElement(
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
362
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
363
|
+
className: classnames("".concat(prefixCls, "-list"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
|
|
364
|
+
id: RANDOM_ID,
|
|
365
|
+
ref: tableBodyListRef
|
|
366
|
+
}, innerScroll && loadMore ? /*#__PURE__*/React.createElement(InfiniteScroll, {
|
|
367
|
+
dataLength: rows.length,
|
|
368
|
+
next: loadMore,
|
|
369
|
+
hasMore: !!hasNextPage,
|
|
370
|
+
loader: LoadingNode,
|
|
371
|
+
scrollableTarget: RANDOM_ID
|
|
372
|
+
}, renderRowList()) : renderRowList());
|
|
347
373
|
};
|
|
348
374
|
|
|
349
375
|
return /*#__PURE__*/React.createElement("div", {
|
|
350
|
-
className: prefixCls
|
|
376
|
+
className: prefixCls,
|
|
377
|
+
ref: tableRef
|
|
351
378
|
}, showHeader && renderHeader(data.length), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
|
|
352
379
|
className: classnames("".concat(prefixCls, "-table-wrap"), _defineProperty({}, "".concat(prefixCls, "-column-resizable"), resizeColumn))
|
|
353
380
|
}), /*#__PURE__*/React.createElement("div", {
|
|
@@ -365,21 +392,28 @@ function Table(_ref) {
|
|
|
365
392
|
className: "".concat(prefixCls, "-row")
|
|
366
393
|
}), headerGroup.headers.map(function (column) {
|
|
367
394
|
var barPorps = resizeColumn ? column.getResizerProps() : {};
|
|
368
|
-
return /*#__PURE__*/React.createElement("div",
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
}, getHeaderProps(column)), {}, {
|
|
395
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
396
|
+
className: classnames(_defineProperty({}, "".concat(prefixCls, "-cell-sorting"), column.id === sortDirection.id), "".concat(prefixCls, "-cell")),
|
|
397
|
+
style: getHeaderProps(column).style,
|
|
372
398
|
key: column.id
|
|
373
|
-
}
|
|
374
|
-
className:
|
|
375
|
-
})),
|
|
399
|
+
}, /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({
|
|
400
|
+
className: "".concat(prefixCls, "-cell-content")
|
|
401
|
+
}, getHeaderProps(column)), {}, {
|
|
402
|
+
style: {
|
|
403
|
+
width: '100%'
|
|
404
|
+
}
|
|
405
|
+
}), column.render('Header'), /*#__PURE__*/React.createElement(SortIcons, {
|
|
376
406
|
id: column.id
|
|
377
|
-
}))
|
|
407
|
+
})), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, barPorps), {}, {
|
|
408
|
+
className: classnames(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
|
|
409
|
+
})));
|
|
378
410
|
}));
|
|
379
411
|
})), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, getTableBodyProps()), {}, {
|
|
380
|
-
className: classnames("".concat(prefixCls, "-tbody")),
|
|
381
|
-
|
|
412
|
+
className: classnames("".concat(prefixCls, "-tbody"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
|
|
413
|
+
style: {
|
|
414
|
+
width: totalColumnsWidth
|
|
415
|
+
}
|
|
382
416
|
}), renderTableBody())));
|
|
383
417
|
}
|
|
384
418
|
|
|
385
|
-
export default Table;
|
|
419
|
+
export default /*#__PURE__*/React.forwardRef(Table);
|
package/es/Table/interface.d.ts
CHANGED
|
@@ -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,28 +77,64 @@ 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), {}, {
|
|
137
|
+
width: initialColumnsWidthMap.columnMap.get(column.dataIndex) || initialColumnsWidthMap.averageWidth,
|
|
105
138
|
Header: column.title,
|
|
106
139
|
disableSortBy: !sortable || typeof column.sorter === 'boolean',
|
|
107
140
|
accessor: column.dataIndex,
|
|
@@ -112,7 +145,7 @@ function Table(_ref) {
|
|
|
112
145
|
}
|
|
113
146
|
});
|
|
114
147
|
});
|
|
115
|
-
}, [columns, sortable]);
|
|
148
|
+
}, [columns, sortable, initialColumnsWidthMap]);
|
|
116
149
|
|
|
117
150
|
var getInitialSortDirection = function getInitialSortDirection() {
|
|
118
151
|
if (defaultSort && defaultSort.id) {
|
|
@@ -167,7 +200,8 @@ function Table(_ref) {
|
|
|
167
200
|
headerGroups = _useTable.headerGroups,
|
|
168
201
|
rows = _useTable.rows,
|
|
169
202
|
prepareRow = _useTable.prepareRow,
|
|
170
|
-
setSortBy = _useTable.setSortBy
|
|
203
|
+
setSortBy = _useTable.setSortBy,
|
|
204
|
+
totalColumnsWidth = _useTable.totalColumnsWidth;
|
|
171
205
|
|
|
172
206
|
var theadRowWidthRef = _react.default.useRef(DEFAULT_ROW_WIDTH);
|
|
173
207
|
|
|
@@ -180,56 +214,14 @@ function Table(_ref) {
|
|
|
180
214
|
setSelectedRowId(row.id);
|
|
181
215
|
onRowSelected(row.original);
|
|
182
216
|
}, [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
217
|
|
|
226
218
|
var renderHeader = function renderHeader(len) {
|
|
227
219
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
228
|
-
className: (0,
|
|
220
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-header"))
|
|
229
221
|
}, renderHeaderLeft ? renderHeaderLeft() : /*#__PURE__*/_react.default.createElement("span", {
|
|
230
|
-
className: (0,
|
|
222
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-header-left"))
|
|
231
223
|
}, "\u5171\u8BA1", total || len, "\u6761"), /*#__PURE__*/_react.default.createElement("div", {
|
|
232
|
-
className: (0,
|
|
224
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-header-right"))
|
|
233
225
|
}, renderHeaderRight ? renderHeaderRight() : null));
|
|
234
226
|
};
|
|
235
227
|
|
|
@@ -313,8 +305,8 @@ function Table(_ref) {
|
|
|
313
305
|
return column.getHeaderProps();
|
|
314
306
|
};
|
|
315
307
|
|
|
316
|
-
var SortIcons = function SortIcons(
|
|
317
|
-
var id =
|
|
308
|
+
var SortIcons = function SortIcons(_ref3) {
|
|
309
|
+
var id = _ref3.id;
|
|
318
310
|
var currentSortId = sortDirection.id,
|
|
319
311
|
desc = sortDirection.desc;
|
|
320
312
|
|
|
@@ -333,47 +325,82 @@ function Table(_ref) {
|
|
|
333
325
|
});
|
|
334
326
|
};
|
|
335
327
|
|
|
328
|
+
var scrollToTop = function scrollToTop() {
|
|
329
|
+
var INITIAL_OFFSET_TOP = 0;
|
|
330
|
+
|
|
331
|
+
if (tableBodyListRef && tableBodyListRef.current) {
|
|
332
|
+
tableBodyListRef.current.scrollTop = INITIAL_OFFSET_TOP;
|
|
333
|
+
}
|
|
334
|
+
};
|
|
335
|
+
|
|
336
|
+
_react.default.useImperativeHandle(ref, function () {
|
|
337
|
+
return {
|
|
338
|
+
backToTop: function backToTop() {
|
|
339
|
+
scrollToTop();
|
|
340
|
+
}
|
|
341
|
+
};
|
|
342
|
+
});
|
|
343
|
+
|
|
344
|
+
var LoadingNode = /*#__PURE__*/_react.default.createElement("div", {
|
|
345
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-loading"))
|
|
346
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
347
|
+
type: "waiting",
|
|
348
|
+
size: 16
|
|
349
|
+
}), "Loading");
|
|
350
|
+
|
|
336
351
|
var renderTableBody = function renderTableBody() {
|
|
352
|
+
if (loading && !rows.length) {
|
|
353
|
+
return LoadingNode;
|
|
354
|
+
}
|
|
355
|
+
|
|
337
356
|
if (!loading && !rows.length) {
|
|
338
357
|
return /*#__PURE__*/_react.default.createElement(_Empty.default, {
|
|
339
358
|
description: "\u5F53\u524D\u65E0\u6570\u636E"
|
|
340
359
|
});
|
|
341
360
|
}
|
|
342
361
|
|
|
343
|
-
|
|
344
|
-
return
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
362
|
+
var renderRowList = function renderRowList() {
|
|
363
|
+
return data.map(function (item, index) {
|
|
364
|
+
var row = rows[index];
|
|
365
|
+
prepareRow(row);
|
|
366
|
+
|
|
367
|
+
var _row$getRowProps = row.getRowProps(),
|
|
368
|
+
rowStyle = _row$getRowProps.style,
|
|
369
|
+
rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
|
|
370
|
+
|
|
371
|
+
return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, rowProps), {}, {
|
|
372
|
+
style: _objectSpread({}, rowStyle),
|
|
373
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
|
|
374
|
+
onClick: function onClick() {
|
|
375
|
+
return onRowClick(row);
|
|
376
|
+
},
|
|
377
|
+
key: row.id
|
|
378
|
+
}), row.cells.map(function (cell) {
|
|
379
|
+
return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, cell.getCellProps()), {}, {
|
|
380
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-cell"))
|
|
381
|
+
}), cell.render('Cell'));
|
|
382
|
+
}));
|
|
361
383
|
});
|
|
362
|
-
}
|
|
384
|
+
};
|
|
363
385
|
|
|
364
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
386
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
387
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-list"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
|
|
388
|
+
id: RANDOM_ID,
|
|
389
|
+
ref: tableBodyListRef
|
|
390
|
+
}, innerScroll && loadMore ? /*#__PURE__*/_react.default.createElement(_reactInfiniteScrollComponent.default, {
|
|
391
|
+
dataLength: rows.length,
|
|
392
|
+
next: loadMore,
|
|
393
|
+
hasMore: !!hasNextPage,
|
|
394
|
+
loader: LoadingNode,
|
|
395
|
+
scrollableTarget: RANDOM_ID
|
|
396
|
+
}, renderRowList()) : renderRowList());
|
|
371
397
|
};
|
|
372
398
|
|
|
373
399
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
374
|
-
className: prefixCls
|
|
400
|
+
className: prefixCls,
|
|
401
|
+
ref: tableRef
|
|
375
402
|
}, showHeader && renderHeader(data.length), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
|
|
376
|
-
className: (0,
|
|
403
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-table-wrap"), _defineProperty({}, "".concat(prefixCls, "-column-resizable"), resizeColumn))
|
|
377
404
|
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
378
405
|
className: "".concat(prefixCls, "-thead")
|
|
379
406
|
}, headerGroups.map(function (headerGroup) {
|
|
@@ -389,22 +416,30 @@ function Table(_ref) {
|
|
|
389
416
|
className: "".concat(prefixCls, "-row")
|
|
390
417
|
}), headerGroup.headers.map(function (column) {
|
|
391
418
|
var barPorps = resizeColumn ? column.getResizerProps() : {};
|
|
392
|
-
return /*#__PURE__*/_react.default.createElement("div",
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
}, getHeaderProps(column)), {}, {
|
|
419
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
420
|
+
className: (0, _classnames7.default)(_defineProperty({}, "".concat(prefixCls, "-cell-sorting"), column.id === sortDirection.id), "".concat(prefixCls, "-cell")),
|
|
421
|
+
style: getHeaderProps(column).style,
|
|
396
422
|
key: column.id
|
|
397
|
-
}
|
|
398
|
-
className:
|
|
399
|
-
})),
|
|
423
|
+
}, /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({
|
|
424
|
+
className: "".concat(prefixCls, "-cell-content")
|
|
425
|
+
}, getHeaderProps(column)), {}, {
|
|
426
|
+
style: {
|
|
427
|
+
width: '100%'
|
|
428
|
+
}
|
|
429
|
+
}), column.render('Header'), /*#__PURE__*/_react.default.createElement(SortIcons, {
|
|
400
430
|
id: column.id
|
|
401
|
-
}))
|
|
431
|
+
})), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, barPorps), {}, {
|
|
432
|
+
className: (0, _classnames7.default)(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
|
|
433
|
+
})));
|
|
402
434
|
}));
|
|
403
435
|
})), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, getTableBodyProps()), {}, {
|
|
404
|
-
className: (0,
|
|
405
|
-
|
|
436
|
+
className: (0, _classnames7.default)("".concat(prefixCls, "-tbody"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
|
|
437
|
+
style: {
|
|
438
|
+
width: totalColumnsWidth
|
|
439
|
+
}
|
|
406
440
|
}), renderTableBody())));
|
|
407
441
|
}
|
|
408
442
|
|
|
409
|
-
var _default = Table;
|
|
443
|
+
var _default = /*#__PURE__*/_react.default.forwardRef(Table);
|
|
444
|
+
|
|
410
445
|
exports.default = _default;
|
package/lib/Table/interface.d.ts
CHANGED
|
@@ -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.14",
|
|
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"
|