@aloudata/aloudata-design 0.2.0-beta.11 → 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.
@@ -1,4 +1,4 @@
1
- import { ReactElement } from 'react';
1
+ import React from 'react';
2
2
  import { ITableProps } from './interface';
3
- declare function Table<T extends Record<string, unknown>>({ columns, data, total, renderHeaderLeft, renderHeaderRight, onRowSelected, loadMore, hasNextPage, loading, sortable, defaultSort, resizeColumn, sortDirections: allSortDirections, showHeader, onChange, }: ITableProps<T>): ReactElement;
4
- export default Table;
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
@@ -24,31 +24,28 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
24
24
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
25
25
 
26
26
  /// <reference types ='./react-table-config' />
27
- import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
28
- import { useTable, useBlockLayout, useRowSelect, useSortBy, useResizeColumns } from 'react-table';
29
- import usePrefixCls from '../_utils/hooks/usePrefixCls';
30
- import { FixedSizeList } from 'react-window';
31
- import InfiniteLoader from 'react-window-infinite-loader';
27
+ import _ from 'lodash';
32
28
  import classnames from 'classnames';
33
29
  import Icon from '../Icon';
30
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
31
+ import usePrefixCls from '../_utils/hooks/usePrefixCls';
32
+ import InfiniteScroll from 'react-infinite-scroll-component';
34
33
  import Empty from '../Empty';
35
- import _ from 'lodash';
36
- var DEFAULT_ROW_HEIGHT = 40;
34
+ import { useTable, useBlockLayout, useRowSelect, useSortBy, useResizeColumns } from 'react-table';
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,
45
43
  renderHeaderLeft = _ref.renderHeaderLeft,
46
44
  renderHeaderRight = _ref.renderHeaderRight,
47
45
  onRowSelected = _ref.onRowSelected,
48
- _ref$loadMore = _ref.loadMore,
49
- loadMore = _ref$loadMore === void 0 ? function () {} : _ref$loadMore,
50
- hasNextPage = _ref.hasNextPage,
46
+ loadMore = _ref.loadMore,
51
47
  loading = _ref.loading,
48
+ hasNextPage = _ref.hasNextPage,
52
49
  _ref$sortable = _ref.sortable,
53
50
  sortable = _ref$sortable === void 0 ? false : _ref$sortable,
54
51
  defaultSort = _ref.defaultSort,
@@ -58,28 +55,64 @@ function Table(_ref) {
58
55
  _ref$showHeader = _ref.showHeader,
59
56
  showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
60
57
  _ref$onChange = _ref.onChange,
61
- 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;
62
61
 
63
62
  var _React$useState = React.useState(null),
64
63
  _React$useState2 = _slicedToArray(_React$useState, 2),
65
64
  selectedRowId = _React$useState2[0],
66
65
  setSelectedRowId = _React$useState2[1];
67
66
 
68
- var tableBodyRef = useRef(null);
67
+ var tableBodyListRef = useRef(null);
68
+ var tableRef = useRef(null);
69
69
 
70
70
  var _useState = useState(DEFAULT_BODY_HEIGHT),
71
71
  _useState2 = _slicedToArray(_useState, 2),
72
- bodyClientHeight = _useState2[0],
73
- setBodyClientHeight = _useState2[1];
72
+ tableClientWidth = _useState2[0],
73
+ setTableClientWidth = _useState2[1];
74
74
 
75
+ var RANDOM_ID = "INNER_SCROLL_ID_".concat(Math.random());
75
76
  useEffect(function () {
76
- if (tableBodyRef.current) {
77
- setBodyClientHeight(tableBodyRef.current.clientHeight);
77
+ if (tableRef.current) {
78
+ setTableClientWidth(tableRef.current.clientWidth);
78
79
  }
79
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]);
80
112
  var newColumns = useMemo(function () {
81
113
  return columns.map(function (column) {
82
114
  return _objectSpread(_objectSpread({}, column), {}, {
115
+ width: initialColumnsWidthMap.columnMap.get(column.dataIndex) || initialColumnsWidthMap.averageWidth,
83
116
  Header: column.title,
84
117
  disableSortBy: !sortable || typeof column.sorter === 'boolean',
85
118
  accessor: column.dataIndex,
@@ -90,7 +123,7 @@ function Table(_ref) {
90
123
  }
91
124
  });
92
125
  });
93
- }, [columns, sortable]);
126
+ }, [columns, sortable, initialColumnsWidthMap]);
94
127
 
95
128
  var getInitialSortDirection = function getInitialSortDirection() {
96
129
  if (defaultSort && defaultSort.id) {
@@ -115,13 +148,29 @@ function Table(_ref) {
115
148
  sortDirection = _React$useState4[0],
116
149
  setSortDirection = _React$useState4[1];
117
150
 
151
+ var getInitSortBy = function getInitSortBy() {
152
+ if (!(sortDirection === null || sortDirection === void 0 ? void 0 : sortDirection.id)) {
153
+ return [];
154
+ }
155
+
156
+ var sortColumn = newColumns.find(function (column) {
157
+ return column.accessor === sortDirection.id;
158
+ });
159
+
160
+ if (sortColumn === null || sortColumn === void 0 ? void 0 : sortColumn.sorter) {
161
+ return [];
162
+ }
163
+
164
+ return [sortDirection];
165
+ };
166
+
118
167
  var _useTable = useTable({
119
168
  columns: newColumns,
120
169
  data: data,
121
170
  disableMultiSort: true,
122
171
  disableSortBy: !sortable,
123
172
  initialState: {
124
- sortBy: sortDirection.id ? [sortDirection] : []
173
+ sortBy: getInitSortBy()
125
174
  }
126
175
  }, useBlockLayout, useSortBy, useRowSelect, useResizeColumns),
127
176
  getTableProps = _useTable.getTableProps,
@@ -129,7 +178,8 @@ function Table(_ref) {
129
178
  headerGroups = _useTable.headerGroups,
130
179
  rows = _useTable.rows,
131
180
  prepareRow = _useTable.prepareRow,
132
- setSortBy = _useTable.setSortBy;
181
+ setSortBy = _useTable.setSortBy,
182
+ totalColumnsWidth = _useTable.totalColumnsWidth;
133
183
 
134
184
  var theadRowWidthRef = React.useRef(DEFAULT_ROW_WIDTH);
135
185
  var prefixCls = usePrefixCls('block-table');
@@ -141,48 +191,6 @@ function Table(_ref) {
141
191
  setSelectedRowId(row.id);
142
192
  onRowSelected(row.original);
143
193
  }, [onRowSelected]);
144
- var itemCount = hasNextPage ? data.length + 1 : data.length;
145
- var loadMoreItems = loading ? function () {} : loadMore;
146
-
147
- var isItemLoaded = function isItemLoaded(index) {
148
- return !hasNextPage || index < data.length;
149
- };
150
-
151
- var RenderRow = function RenderRow(_ref3) {
152
- var index = _ref3.index,
153
- style = _ref3.style;
154
-
155
- if (!isItemLoaded(index)) {
156
- return /*#__PURE__*/React.createElement("div", {
157
- style: style,
158
- className: classnames("".concat(prefixCls, "-loading"))
159
- }, /*#__PURE__*/React.createElement(Icon, {
160
- type: "waiting",
161
- size: 16
162
- }), "Loading");
163
- }
164
-
165
- var row = rows[index];
166
- prepareRow(row);
167
-
168
- var _row$getRowProps = row.getRowProps(),
169
- rowStyle = _row$getRowProps.style,
170
- rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
171
-
172
- return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, rowProps), {}, {
173
- style: _objectSpread(_objectSpread(_objectSpread({}, style), rowStyle), {}, {
174
- width: resizeColumn ? style === null || style === void 0 ? void 0 : style.width : '100%'
175
- }),
176
- className: classnames("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
177
- onClick: function onClick() {
178
- return onRowClick(row);
179
- }
180
- }), row.cells.map(function (cell) {
181
- return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, cell.getCellProps()), {}, {
182
- className: classnames("".concat(prefixCls, "-cell"))
183
- }), cell.render('Cell'));
184
- }));
185
- };
186
194
 
187
195
  var renderHeader = function renderHeader(len) {
188
196
  return /*#__PURE__*/React.createElement("div", {
@@ -274,8 +282,8 @@ function Table(_ref) {
274
282
  return column.getHeaderProps();
275
283
  };
276
284
 
277
- var SortIcons = function SortIcons(_ref4) {
278
- var id = _ref4.id;
285
+ var SortIcons = function SortIcons(_ref3) {
286
+ var id = _ref3.id;
279
287
  var currentSortId = sortDirection.id,
280
288
  desc = sortDirection.desc;
281
289
 
@@ -294,44 +302,79 @@ function Table(_ref) {
294
302
  });
295
303
  };
296
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
+
297
327
  var renderTableBody = function renderTableBody() {
328
+ if (loading && !rows.length) {
329
+ return LoadingNode;
330
+ }
331
+
298
332
  if (!loading && !rows.length) {
299
333
  return /*#__PURE__*/React.createElement(Empty, {
300
334
  description: "\u5F53\u524D\u65E0\u6570\u636E"
301
335
  });
302
336
  }
303
337
 
304
- if (loadMoreItems) {
305
- return /*#__PURE__*/React.createElement(InfiniteLoader, {
306
- isItemLoaded: isItemLoaded,
307
- itemCount: itemCount,
308
- loadMoreItems: loadMoreItems
309
- }, function (_ref5) {
310
- var onItemsRendered = _ref5.onItemsRendered,
311
- ref = _ref5.ref;
312
- return /*#__PURE__*/React.createElement(FixedSizeList, {
313
- itemCount: itemCount,
314
- onItemsRendered: onItemsRendered,
315
- height: bodyClientHeight,
316
- itemSize: DEFAULT_ROW_HEIGHT,
317
- width: resizeColumn ? theadRowWidthRef.current : '100%',
318
- ref: ref,
319
- className: "".concat(prefixCls, "-list")
320
- }, RenderRow);
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
+ }));
321
359
  });
322
- }
360
+ };
323
361
 
324
- return /*#__PURE__*/React.createElement(FixedSizeList, {
325
- itemCount: itemCount,
326
- height: bodyClientHeight,
327
- itemSize: DEFAULT_ROW_HEIGHT,
328
- width: resizeColumn ? theadRowWidthRef.current : '100%',
329
- className: "".concat(prefixCls, "-list")
330
- }, RenderRow);
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());
331
373
  };
332
374
 
333
375
  return /*#__PURE__*/React.createElement("div", {
334
- className: prefixCls
376
+ className: prefixCls,
377
+ ref: tableRef
335
378
  }, showHeader && renderHeader(data.length), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
336
379
  className: classnames("".concat(prefixCls, "-table-wrap"), _defineProperty({}, "".concat(prefixCls, "-column-resizable"), resizeColumn))
337
380
  }), /*#__PURE__*/React.createElement("div", {
@@ -349,21 +392,28 @@ function Table(_ref) {
349
392
  className: "".concat(prefixCls, "-row")
350
393
  }), headerGroup.headers.map(function (column) {
351
394
  var barPorps = resizeColumn ? column.getResizerProps() : {};
352
- return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({
353
- // {...column.getHeaderProps(column.getSortByToggleProps())}
354
- className: classnames(_defineProperty({}, "".concat(prefixCls, "-cell-sorting"), column.id === sortDirection.id), "".concat(prefixCls, "-cell"))
355
- }, 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,
356
398
  key: column.id
357
- }), column.render('Header'), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, barPorps), {}, {
358
- className: classnames(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
359
- })), /*#__PURE__*/React.createElement(SortIcons, {
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, {
360
406
  id: column.id
361
- }));
407
+ })), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, barPorps), {}, {
408
+ className: classnames(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
409
+ })));
362
410
  }));
363
411
  })), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, getTableBodyProps()), {}, {
364
- className: classnames("".concat(prefixCls, "-tbody")),
365
- ref: tableBodyRef
412
+ className: classnames("".concat(prefixCls, "-tbody"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
413
+ style: {
414
+ width: totalColumnsWidth
415
+ }
366
416
  }), renderTableBody())));
367
417
  }
368
418
 
369
- export default Table;
419
+ export default /*#__PURE__*/React.forwardRef(Table);
@@ -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?: (startIndex: number, stopIndex: number) => void | Promise<void>;
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: @table-row-height;
24
- padding: 0 12px;
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: 1px;
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
- &-list {
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;
@@ -1,4 +1,4 @@
1
- import { ReactElement } from 'react';
1
+ import React from 'react';
2
2
  import { ITableProps } from './interface';
3
- declare function Table<T extends Record<string, unknown>>({ columns, data, total, renderHeaderLeft, renderHeaderRight, onRowSelected, loadMore, hasNextPage, loading, sortable, defaultSort, resizeColumn, sortDirections: allSortDirections, showHeader, onChange, }: ITableProps<T>): ReactElement;
4
- export default Table;
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;
@@ -7,33 +7,31 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- var _reactTable = require("react-table");
10
+ var _lodash = _interopRequireDefault(require("lodash"));
13
11
 
14
- var _usePrefixCls = _interopRequireDefault(require("../_utils/hooks/usePrefixCls"));
12
+ var _classnames7 = _interopRequireDefault(require("classnames"));
15
13
 
16
- var _reactWindow = require("react-window");
14
+ var _Icon = _interopRequireDefault(require("../Icon"));
17
15
 
18
- var _reactWindowInfiniteLoader = _interopRequireDefault(require("react-window-infinite-loader"));
16
+ var _react = _interopRequireWildcard(require("react"));
19
17
 
20
- var _classnames5 = _interopRequireDefault(require("classnames"));
18
+ var _usePrefixCls = _interopRequireDefault(require("../_utils/hooks/usePrefixCls"));
21
19
 
22
- var _Icon = _interopRequireDefault(require("../Icon"));
20
+ var _reactInfiniteScrollComponent = _interopRequireDefault(require("react-infinite-scroll-component"));
23
21
 
24
22
  var _Empty = _interopRequireDefault(require("../Empty"));
25
23
 
26
- var _lodash = _interopRequireDefault(require("lodash"));
24
+ var _reactTable = require("react-table");
27
25
 
28
26
  var _excluded = ["style"],
29
27
  _excluded2 = ["style"];
30
28
 
31
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
-
33
29
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
34
30
 
35
31
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
36
32
 
33
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
+
37
35
  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; }
38
36
 
39
37
  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; }
@@ -56,22 +54,20 @@ 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,
68
65
  renderHeaderLeft = _ref.renderHeaderLeft,
69
66
  renderHeaderRight = _ref.renderHeaderRight,
70
67
  onRowSelected = _ref.onRowSelected,
71
- _ref$loadMore = _ref.loadMore,
72
- loadMore = _ref$loadMore === void 0 ? function () {} : _ref$loadMore,
73
- hasNextPage = _ref.hasNextPage,
68
+ loadMore = _ref.loadMore,
74
69
  loading = _ref.loading,
70
+ hasNextPage = _ref.hasNextPage,
75
71
  _ref$sortable = _ref.sortable,
76
72
  sortable = _ref$sortable === void 0 ? false : _ref$sortable,
77
73
  defaultSort = _ref.defaultSort,
@@ -81,28 +77,64 @@ function Table(_ref) {
81
77
  _ref$showHeader = _ref.showHeader,
82
78
  showHeader = _ref$showHeader === void 0 ? true : _ref$showHeader,
83
79
  _ref$onChange = _ref.onChange,
84
- 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;
85
83
 
86
84
  var _React$useState = _react.default.useState(null),
87
85
  _React$useState2 = _slicedToArray(_React$useState, 2),
88
86
  selectedRowId = _React$useState2[0],
89
87
  setSelectedRowId = _React$useState2[1];
90
88
 
91
- var tableBodyRef = (0, _react.useRef)(null);
89
+ var tableBodyListRef = (0, _react.useRef)(null);
90
+ var tableRef = (0, _react.useRef)(null);
92
91
 
93
92
  var _useState = (0, _react.useState)(DEFAULT_BODY_HEIGHT),
94
93
  _useState2 = _slicedToArray(_useState, 2),
95
- bodyClientHeight = _useState2[0],
96
- setBodyClientHeight = _useState2[1];
94
+ tableClientWidth = _useState2[0],
95
+ setTableClientWidth = _useState2[1];
97
96
 
97
+ var RANDOM_ID = "INNER_SCROLL_ID_".concat(Math.random());
98
98
  (0, _react.useEffect)(function () {
99
- if (tableBodyRef.current) {
100
- setBodyClientHeight(tableBodyRef.current.clientHeight);
99
+ if (tableRef.current) {
100
+ setTableClientWidth(tableRef.current.clientWidth);
101
101
  }
102
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]);
103
134
  var newColumns = (0, _react.useMemo)(function () {
104
135
  return columns.map(function (column) {
105
136
  return _objectSpread(_objectSpread({}, column), {}, {
137
+ width: initialColumnsWidthMap.columnMap.get(column.dataIndex) || initialColumnsWidthMap.averageWidth,
106
138
  Header: column.title,
107
139
  disableSortBy: !sortable || typeof column.sorter === 'boolean',
108
140
  accessor: column.dataIndex,
@@ -113,7 +145,7 @@ function Table(_ref) {
113
145
  }
114
146
  });
115
147
  });
116
- }, [columns, sortable]);
148
+ }, [columns, sortable, initialColumnsWidthMap]);
117
149
 
118
150
  var getInitialSortDirection = function getInitialSortDirection() {
119
151
  if (defaultSort && defaultSort.id) {
@@ -138,13 +170,29 @@ function Table(_ref) {
138
170
  sortDirection = _React$useState4[0],
139
171
  setSortDirection = _React$useState4[1];
140
172
 
173
+ var getInitSortBy = function getInitSortBy() {
174
+ if (!(sortDirection === null || sortDirection === void 0 ? void 0 : sortDirection.id)) {
175
+ return [];
176
+ }
177
+
178
+ var sortColumn = newColumns.find(function (column) {
179
+ return column.accessor === sortDirection.id;
180
+ });
181
+
182
+ if (sortColumn === null || sortColumn === void 0 ? void 0 : sortColumn.sorter) {
183
+ return [];
184
+ }
185
+
186
+ return [sortDirection];
187
+ };
188
+
141
189
  var _useTable = (0, _reactTable.useTable)({
142
190
  columns: newColumns,
143
191
  data: data,
144
192
  disableMultiSort: true,
145
193
  disableSortBy: !sortable,
146
194
  initialState: {
147
- sortBy: sortDirection.id ? [sortDirection] : []
195
+ sortBy: getInitSortBy()
148
196
  }
149
197
  }, _reactTable.useBlockLayout, _reactTable.useSortBy, _reactTable.useRowSelect, _reactTable.useResizeColumns),
150
198
  getTableProps = _useTable.getTableProps,
@@ -152,7 +200,8 @@ function Table(_ref) {
152
200
  headerGroups = _useTable.headerGroups,
153
201
  rows = _useTable.rows,
154
202
  prepareRow = _useTable.prepareRow,
155
- setSortBy = _useTable.setSortBy;
203
+ setSortBy = _useTable.setSortBy,
204
+ totalColumnsWidth = _useTable.totalColumnsWidth;
156
205
 
157
206
  var theadRowWidthRef = _react.default.useRef(DEFAULT_ROW_WIDTH);
158
207
 
@@ -165,56 +214,14 @@ function Table(_ref) {
165
214
  setSelectedRowId(row.id);
166
215
  onRowSelected(row.original);
167
216
  }, [onRowSelected]);
168
- var itemCount = hasNextPage ? data.length + 1 : data.length;
169
- var loadMoreItems = loading ? function () {} : loadMore;
170
-
171
- var isItemLoaded = function isItemLoaded(index) {
172
- return !hasNextPage || index < data.length;
173
- };
174
-
175
- var RenderRow = function RenderRow(_ref3) {
176
- var index = _ref3.index,
177
- style = _ref3.style;
178
-
179
- if (!isItemLoaded(index)) {
180
- return /*#__PURE__*/_react.default.createElement("div", {
181
- style: style,
182
- className: (0, _classnames5.default)("".concat(prefixCls, "-loading"))
183
- }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
184
- type: "waiting",
185
- size: 16
186
- }), "Loading");
187
- }
188
-
189
- var row = rows[index];
190
- prepareRow(row);
191
-
192
- var _row$getRowProps = row.getRowProps(),
193
- rowStyle = _row$getRowProps.style,
194
- rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
195
-
196
- return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, rowProps), {}, {
197
- style: _objectSpread(_objectSpread(_objectSpread({}, style), rowStyle), {}, {
198
- width: resizeColumn ? style === null || style === void 0 ? void 0 : style.width : '100%'
199
- }),
200
- className: (0, _classnames5.default)("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
201
- onClick: function onClick() {
202
- return onRowClick(row);
203
- }
204
- }), row.cells.map(function (cell) {
205
- return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, cell.getCellProps()), {}, {
206
- className: (0, _classnames5.default)("".concat(prefixCls, "-cell"))
207
- }), cell.render('Cell'));
208
- }));
209
- };
210
217
 
211
218
  var renderHeader = function renderHeader(len) {
212
219
  return /*#__PURE__*/_react.default.createElement("div", {
213
- className: (0, _classnames5.default)("".concat(prefixCls, "-header"))
220
+ className: (0, _classnames7.default)("".concat(prefixCls, "-header"))
214
221
  }, renderHeaderLeft ? renderHeaderLeft() : /*#__PURE__*/_react.default.createElement("span", {
215
- className: (0, _classnames5.default)("".concat(prefixCls, "-header-left"))
222
+ className: (0, _classnames7.default)("".concat(prefixCls, "-header-left"))
216
223
  }, "\u5171\u8BA1", total || len, "\u6761"), /*#__PURE__*/_react.default.createElement("div", {
217
- className: (0, _classnames5.default)("".concat(prefixCls, "-header-right"))
224
+ className: (0, _classnames7.default)("".concat(prefixCls, "-header-right"))
218
225
  }, renderHeaderRight ? renderHeaderRight() : null));
219
226
  };
220
227
 
@@ -298,8 +305,8 @@ function Table(_ref) {
298
305
  return column.getHeaderProps();
299
306
  };
300
307
 
301
- var SortIcons = function SortIcons(_ref4) {
302
- var id = _ref4.id;
308
+ var SortIcons = function SortIcons(_ref3) {
309
+ var id = _ref3.id;
303
310
  var currentSortId = sortDirection.id,
304
311
  desc = sortDirection.desc;
305
312
 
@@ -318,46 +325,82 @@ function Table(_ref) {
318
325
  });
319
326
  };
320
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
+
321
351
  var renderTableBody = function renderTableBody() {
352
+ if (loading && !rows.length) {
353
+ return LoadingNode;
354
+ }
355
+
322
356
  if (!loading && !rows.length) {
323
357
  return /*#__PURE__*/_react.default.createElement(_Empty.default, {
324
358
  description: "\u5F53\u524D\u65E0\u6570\u636E"
325
359
  });
326
360
  }
327
361
 
328
- if (loadMoreItems) {
329
- return /*#__PURE__*/_react.default.createElement(_reactWindowInfiniteLoader.default, {
330
- isItemLoaded: isItemLoaded,
331
- itemCount: itemCount,
332
- loadMoreItems: loadMoreItems
333
- }, function (_ref5) {
334
- var onItemsRendered = _ref5.onItemsRendered,
335
- ref = _ref5.ref;
336
- return /*#__PURE__*/_react.default.createElement(_reactWindow.FixedSizeList, {
337
- itemCount: itemCount,
338
- onItemsRendered: onItemsRendered,
339
- height: bodyClientHeight,
340
- itemSize: DEFAULT_ROW_HEIGHT,
341
- width: resizeColumn ? theadRowWidthRef.current : '100%',
342
- ref: ref,
343
- className: "".concat(prefixCls, "-list")
344
- }, RenderRow);
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
+ }));
345
383
  });
346
- }
384
+ };
347
385
 
348
- return /*#__PURE__*/_react.default.createElement(_reactWindow.FixedSizeList, {
349
- itemCount: itemCount,
350
- height: bodyClientHeight,
351
- itemSize: DEFAULT_ROW_HEIGHT,
352
- width: resizeColumn ? theadRowWidthRef.current : '100%',
353
- className: "".concat(prefixCls, "-list")
354
- }, RenderRow);
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());
355
397
  };
356
398
 
357
399
  return /*#__PURE__*/_react.default.createElement("div", {
358
- className: prefixCls
400
+ className: prefixCls,
401
+ ref: tableRef
359
402
  }, showHeader && renderHeader(data.length), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
360
- className: (0, _classnames5.default)("".concat(prefixCls, "-table-wrap"), _defineProperty({}, "".concat(prefixCls, "-column-resizable"), resizeColumn))
403
+ className: (0, _classnames7.default)("".concat(prefixCls, "-table-wrap"), _defineProperty({}, "".concat(prefixCls, "-column-resizable"), resizeColumn))
361
404
  }), /*#__PURE__*/_react.default.createElement("div", {
362
405
  className: "".concat(prefixCls, "-thead")
363
406
  }, headerGroups.map(function (headerGroup) {
@@ -373,22 +416,30 @@ function Table(_ref) {
373
416
  className: "".concat(prefixCls, "-row")
374
417
  }), headerGroup.headers.map(function (column) {
375
418
  var barPorps = resizeColumn ? column.getResizerProps() : {};
376
- return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({
377
- // {...column.getHeaderProps(column.getSortByToggleProps())}
378
- className: (0, _classnames5.default)(_defineProperty({}, "".concat(prefixCls, "-cell-sorting"), column.id === sortDirection.id), "".concat(prefixCls, "-cell"))
379
- }, 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,
380
422
  key: column.id
381
- }), column.render('Header'), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, barPorps), {}, {
382
- className: (0, _classnames5.default)(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
383
- })), /*#__PURE__*/_react.default.createElement(SortIcons, {
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, {
384
430
  id: column.id
385
- }));
431
+ })), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, barPorps), {}, {
432
+ className: (0, _classnames7.default)(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
433
+ })));
386
434
  }));
387
435
  })), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, getTableBodyProps()), {}, {
388
- className: (0, _classnames5.default)("".concat(prefixCls, "-tbody")),
389
- ref: tableBodyRef
436
+ className: (0, _classnames7.default)("".concat(prefixCls, "-tbody"), _defineProperty({}, "".concat(prefixCls, "-innerScroll"), innerScroll)),
437
+ style: {
438
+ width: totalColumnsWidth
439
+ }
390
440
  }), renderTableBody())));
391
441
  }
392
442
 
393
- var _default = Table;
443
+ var _default = /*#__PURE__*/_react.default.forwardRef(Table);
444
+
394
445
  exports.default = _default;
@@ -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?: (startIndex: number, stopIndex: number) => void | Promise<void>;
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: @table-row-height;
24
- padding: 0 12px;
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: 1px;
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
- &-list {
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.11",
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"