@aloudata/aloudata-design 0.2.0-beta.2 → 0.2.0-beta.5
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/Button/style/index.css +374 -0
- package/es/Button/style/index.js +1 -1
- package/es/Dropdown/index.d.ts +1 -0
- package/es/Dropdown/style/index.css +178 -0
- package/es/Dropdown/style/index.js +1 -1
- package/es/Empty/style/index.css +162 -0
- package/es/Empty/style/index.js +1 -1
- package/es/Icon/iconfont/demo_index.html +49 -3
- package/es/Icon/iconfont/iconfont.css +11 -3
- package/es/Icon/iconfont/iconfont.js +5 -5
- package/es/Icon/iconfont/iconfont.json +14 -0
- package/es/Icon/iconfont/iconfont.ttf +0 -0
- package/es/Icon/iconfont/iconfont.woff +0 -0
- package/es/Icon/iconfont/iconfont.woff2 +0 -0
- package/es/Icon/index.css +8 -0
- package/es/Input/components/Group/index.d.ts +3 -1
- package/es/Input/components/Password/index.d.ts +1 -0
- package/es/Input/index.d.ts +1 -1
- package/es/Input/style/index.css +215 -0
- package/es/Input/style/index.js +1 -1
- package/es/Menu/Divider.d.ts +1 -0
- package/es/Menu/MenuItem.d.ts +7 -0
- package/es/Menu/index.d.ts +1 -0
- package/es/Menu/style/index.css +208 -0
- package/es/Menu/style/index.js +1 -1
- package/es/Navigator/style/index.css +328 -0
- package/es/Navigator/style/index.js +1 -1
- package/es/Select/Selector/index.js +1 -1
- package/es/Select/style/index.css +493 -0
- package/es/Select/style/index.js +1 -1
- package/es/Table/index.d.ts +1 -1
- package/es/Table/index.js +183 -48
- package/es/Table/interface.d.ts +26 -6
- package/es/Table/react-table-config.d.ts +122 -0
- package/es/Table/style/index.css +248 -0
- package/es/Table/style/index.js +1 -1
- package/es/Tabs/index.d.ts +1 -0
- package/es/Tabs/style/index.css +194 -0
- package/es/Tabs/style/index.js +1 -1
- package/es/Tooltip/style/index.css +154 -0
- package/es/Tooltip/style/index.js +1 -1
- package/es/index.d.ts +10 -0
- package/es/style/index.css +145 -0
- package/es/style/index.js +1 -1
- package/es/{Button/demo/disable/index.less → style/mixins/index.css} +0 -0
- package/es/style/themes/default/index.css +145 -0
- package/es/style/themes/default/themeColor.module.css +145 -0
- package/lib/Button/style/index.css +374 -0
- package/lib/Button/style/index.js +1 -1
- package/lib/Dropdown/index.d.ts +1 -0
- package/lib/Dropdown/style/index.css +178 -0
- package/lib/Dropdown/style/index.js +1 -1
- package/lib/Empty/style/index.css +162 -0
- package/lib/Empty/style/index.js +1 -1
- package/lib/Icon/iconfont/demo_index.html +49 -3
- package/lib/Icon/iconfont/iconfont.css +11 -3
- package/lib/Icon/iconfont/iconfont.js +5 -5
- package/lib/Icon/iconfont/iconfont.json +14 -0
- package/lib/Icon/iconfont/iconfont.ttf +0 -0
- package/lib/Icon/iconfont/iconfont.woff +0 -0
- package/lib/Icon/iconfont/iconfont.woff2 +0 -0
- package/lib/Icon/index.css +8 -0
- package/lib/Input/components/Group/index.d.ts +3 -1
- package/lib/Input/components/Password/index.d.ts +1 -0
- package/lib/Input/index.d.ts +1 -1
- package/lib/Input/style/index.css +215 -0
- package/lib/Input/style/index.js +1 -1
- package/lib/Menu/Divider.d.ts +1 -0
- package/lib/Menu/MenuItem.d.ts +7 -0
- package/lib/Menu/index.d.ts +1 -0
- package/lib/Menu/style/index.css +208 -0
- package/lib/Menu/style/index.js +1 -1
- package/lib/Navigator/style/index.css +328 -0
- package/lib/Navigator/style/index.js +1 -1
- package/lib/Select/Selector/index.js +1 -1
- package/lib/Select/style/index.css +493 -0
- package/lib/Select/style/index.js +1 -1
- package/lib/Table/index.d.ts +1 -1
- package/lib/Table/index.js +191 -54
- package/lib/Table/interface.d.ts +26 -6
- package/lib/Table/react-table-config.d.ts +122 -0
- package/lib/Table/style/index.css +248 -0
- package/lib/Table/style/index.js +1 -1
- package/lib/Tabs/index.d.ts +1 -0
- package/lib/Tabs/style/index.css +194 -0
- package/lib/Tabs/style/index.js +1 -1
- package/lib/Tooltip/style/index.css +154 -0
- package/lib/Tooltip/style/index.js +1 -1
- package/lib/index.d.ts +10 -0
- package/lib/style/index.css +145 -0
- package/lib/style/index.js +1 -1
- package/{es/Input/demo/allowClear/index.less → lib/style/mixins/index.css} +0 -0
- package/lib/style/themes/default/index.css +145 -0
- package/lib/style/themes/default/themeColor.module.css +145 -0
- package/package.json +1 -1
- package/es/Button/demo/Icon/index.d.ts +0 -3
- package/es/Button/demo/Icon/index.js +0 -67
- package/es/Button/demo/Icon/index.less +0 -6
- package/es/Button/demo/basic/index.d.ts +0 -4
- package/es/Button/demo/basic/index.js +0 -57
- package/es/Button/demo/basic/index.less +0 -6
- package/es/Button/demo/disable/index.d.ts +0 -3
- package/es/Button/demo/disable/index.js +0 -23
- package/es/Button/demo/href/index.d.ts +0 -2
- package/es/Button/demo/href/index.js +0 -17
- package/es/Button/demo/loading/index.d.ts +0 -3
- package/es/Button/demo/loading/index.js +0 -37
- package/es/Button/demo/loading/index.less +0 -6
- package/es/Button/style/index.less +0 -255
- package/es/Dropdown/demo/basic/index.d.ts +0 -4
- package/es/Dropdown/demo/basic/index.js +0 -18
- package/es/Dropdown/demo/button/index.d.ts +0 -3
- package/es/Dropdown/demo/button/index.js +0 -159
- package/es/Dropdown/demo/button/index.less +0 -9
- package/es/Dropdown/demo/placement/index.d.ts +0 -2
- package/es/Dropdown/demo/placement/index.js +0 -40
- package/es/Dropdown/demo/subMenu/index.d.ts +0 -2
- package/es/Dropdown/demo/subMenu/index.js +0 -42
- package/es/Dropdown/demo/trigger/index.d.ts +0 -2
- package/es/Dropdown/demo/trigger/index.js +0 -17
- package/es/Dropdown/style/index.less +0 -40
- package/es/Empty/style/index.less +0 -23
- package/es/Icon/index.less +0 -32
- package/es/Input/demo/allowClear/index.d.ts +0 -3
- package/es/Input/demo/allowClear/index.js +0 -11
- package/es/Input/demo/basic/index.d.ts +0 -4
- package/es/Input/demo/basic/index.js +0 -65
- package/es/Input/demo/basic/index.less +0 -14
- package/es/Input/demo/gourp/index.d.ts +0 -2
- package/es/Input/demo/gourp/index.js +0 -67
- package/es/Input/demo/password/index.d.ts +0 -3
- package/es/Input/demo/password/index.js +0 -21
- package/es/Input/demo/password/index.less +0 -0
- package/es/Input/demo/prefix/index.d.ts +0 -3
- package/es/Input/demo/prefix/index.js +0 -17
- package/es/Input/demo/prefix/index.less +0 -0
- package/es/Input/demo/showCount/index.d.ts +0 -3
- package/es/Input/demo/showCount/index.js +0 -17
- package/es/Input/demo/showCount/index.less +0 -0
- package/es/Input/demo/textArea/autoSize.d.ts +0 -2
- package/es/Input/demo/textArea/autoSize.js +0 -50
- package/es/Input/style/index.less +0 -65
- package/es/Menu/style/index.less +0 -37
- package/es/Navigator/demo/basic/index.d.ts +0 -4
- package/es/Navigator/demo/basic/index.js +0 -45
- package/es/Navigator/demo/basic/index.less +0 -3
- package/es/Navigator/demo/example/index.d.ts +0 -4
- package/es/Navigator/demo/example/index.js +0 -153
- package/es/Navigator/demo/example/index.less +0 -10
- package/es/Navigator/demo/logo.png +0 -0
- package/es/Navigator/demo/menuWithFooter/index.d.ts +0 -4
- package/es/Navigator/demo/menuWithFooter/index.js +0 -73
- package/es/Navigator/demo/menuWithFooter/index.less +0 -3
- package/es/Navigator/demo/subMenu/index.d.ts +0 -4
- package/es/Navigator/demo/subMenu/index.js +0 -71
- package/es/Navigator/demo/subMenu/index.less +0 -3
- package/es/Navigator/style/index.less +0 -224
- package/es/Select/demo/disabled/index.d.ts +0 -2
- package/es/Select/demo/disabled/index.js +0 -50
- package/es/Select/demo/multiple/index.d.ts +0 -2
- package/es/Select/demo/multiple/index.js +0 -140
- package/es/Select/demo/options/index.d.ts +0 -2
- package/es/Select/demo/options/index.js +0 -55
- package/es/Select/demo/single/index.d.ts +0 -3
- package/es/Select/demo/single/index.js +0 -89
- package/es/Select/demo/single/index.less +0 -5
- package/es/Select/style/index.less +0 -532
- package/es/Table/demo/basic/createData.d.ts +0 -9
- package/es/Table/demo/basic/createData.js +0 -18
- package/es/Table/demo/basic/index.d.ts +0 -2
- package/es/Table/demo/basic/index.js +0 -64
- package/es/Table/demo/editCell/index.d.ts +0 -2
- package/es/Table/demo/editCell/index.js +0 -39
- package/es/Table/demo/renderHeaderRight/index.d.ts +0 -2
- package/es/Table/demo/renderHeaderRight/index.js +0 -37
- package/es/Table/demo/rowSelect/index.d.ts +0 -2
- package/es/Table/demo/rowSelect/index.js +0 -40
- package/es/Table/demo/sort/index.d.ts +0 -2
- package/es/Table/demo/sort/index.js +0 -32
- package/es/Table/demo/virtualList/index.d.ts +0 -2
- package/es/Table/demo/virtualList/index.js +0 -88
- package/es/Table/style/index.less +0 -111
- package/es/Tabs/demo/adaptHeight/index.d.ts +0 -3
- package/es/Tabs/demo/adaptHeight/index.js +0 -19
- package/es/Tabs/demo/adaptHeight/index.less +0 -3
- package/es/Tabs/demo/basic/index.d.ts +0 -4
- package/es/Tabs/demo/basic/index.js +0 -44
- package/es/Tabs/demo/basic/index.less +0 -5
- package/es/Tabs/demo/horizontalScroll/index.d.ts +0 -3
- package/es/Tabs/demo/horizontalScroll/index.js +0 -30
- package/es/Tabs/demo/horizontalScroll/index.less +0 -3
- package/es/Tabs/style/index.less +0 -61
- package/es/Tooltip/demo/basic/index.d.ts +0 -2
- package/es/Tooltip/demo/basic/index.js +0 -7
- package/es/Tooltip/demo/overflow/index.d.ts +0 -2
- package/es/Tooltip/demo/overflow/index.js +0 -7
- package/es/Tooltip/demo/placement/index.d.ts +0 -6
- package/es/Tooltip/demo/placement/index.js +0 -70
- package/es/Tooltip/demo/placement/index.less +0 -7
- package/es/Tooltip/demo/trigger/index.d.ts +0 -3
- package/es/Tooltip/demo/trigger/index.js +0 -20
- package/es/Tooltip/demo/trigger/index.less +0 -5
- package/es/Tooltip/style/index.less +0 -14
- package/es/style/index.less +0 -3
- package/es/style/mixins/index.less +0 -0
- package/es/style/themes/default/index.less +0 -36
- package/es/style/themes/default/themeColor.module.less +0 -259
- package/lib/Button/demo/Icon/index.d.ts +0 -3
- package/lib/Button/demo/Icon/index.js +0 -82
- package/lib/Button/demo/Icon/index.less +0 -6
- package/lib/Button/demo/basic/index.d.ts +0 -4
- package/lib/Button/demo/basic/index.js +0 -73
- package/lib/Button/demo/basic/index.less +0 -6
- package/lib/Button/demo/disable/index.d.ts +0 -3
- package/lib/Button/demo/disable/index.js +0 -37
- package/lib/Button/demo/disable/index.less +0 -0
- package/lib/Button/demo/href/index.d.ts +0 -2
- package/lib/Button/demo/href/index.js +0 -30
- package/lib/Button/demo/loading/index.d.ts +0 -3
- package/lib/Button/demo/loading/index.js +0 -51
- package/lib/Button/demo/loading/index.less +0 -6
- package/lib/Button/style/index.less +0 -255
- package/lib/Dropdown/demo/basic/index.d.ts +0 -4
- package/lib/Dropdown/demo/basic/index.js +0 -35
- package/lib/Dropdown/demo/button/index.d.ts +0 -3
- package/lib/Dropdown/demo/button/index.js +0 -182
- package/lib/Dropdown/demo/button/index.less +0 -9
- package/lib/Dropdown/demo/placement/index.d.ts +0 -2
- package/lib/Dropdown/demo/placement/index.js +0 -56
- package/lib/Dropdown/demo/subMenu/index.d.ts +0 -2
- package/lib/Dropdown/demo/subMenu/index.js +0 -59
- package/lib/Dropdown/demo/trigger/index.d.ts +0 -2
- package/lib/Dropdown/demo/trigger/index.js +0 -32
- package/lib/Dropdown/style/index.less +0 -40
- package/lib/Empty/style/index.less +0 -23
- package/lib/Icon/index.less +0 -32
- package/lib/Input/demo/allowClear/index.d.ts +0 -3
- package/lib/Input/demo/allowClear/index.js +0 -25
- package/lib/Input/demo/allowClear/index.less +0 -0
- package/lib/Input/demo/basic/index.d.ts +0 -4
- package/lib/Input/demo/basic/index.js +0 -80
- package/lib/Input/demo/basic/index.less +0 -14
- package/lib/Input/demo/gourp/index.d.ts +0 -2
- package/lib/Input/demo/gourp/index.js +0 -81
- package/lib/Input/demo/password/index.d.ts +0 -3
- package/lib/Input/demo/password/index.js +0 -35
- package/lib/Input/demo/password/index.less +0 -0
- package/lib/Input/demo/prefix/index.d.ts +0 -3
- package/lib/Input/demo/prefix/index.js +0 -32
- package/lib/Input/demo/prefix/index.less +0 -0
- package/lib/Input/demo/showCount/index.d.ts +0 -3
- package/lib/Input/demo/showCount/index.js +0 -31
- package/lib/Input/demo/showCount/index.less +0 -0
- package/lib/Input/demo/textArea/autoSize.d.ts +0 -2
- package/lib/Input/demo/textArea/autoSize.js +0 -63
- package/lib/Input/style/index.less +0 -65
- package/lib/Menu/style/index.less +0 -37
- package/lib/Navigator/demo/basic/index.d.ts +0 -4
- package/lib/Navigator/demo/basic/index.js +0 -62
- package/lib/Navigator/demo/basic/index.less +0 -3
- package/lib/Navigator/demo/example/index.d.ts +0 -4
- package/lib/Navigator/demo/example/index.js +0 -179
- package/lib/Navigator/demo/example/index.less +0 -10
- package/lib/Navigator/demo/logo.png +0 -0
- package/lib/Navigator/demo/menuWithFooter/index.d.ts +0 -4
- package/lib/Navigator/demo/menuWithFooter/index.js +0 -92
- package/lib/Navigator/demo/menuWithFooter/index.less +0 -3
- package/lib/Navigator/demo/subMenu/index.d.ts +0 -4
- package/lib/Navigator/demo/subMenu/index.js +0 -88
- package/lib/Navigator/demo/subMenu/index.less +0 -3
- package/lib/Navigator/style/index.less +0 -224
- package/lib/Select/demo/disabled/index.d.ts +0 -2
- package/lib/Select/demo/disabled/index.js +0 -64
- package/lib/Select/demo/multiple/index.d.ts +0 -2
- package/lib/Select/demo/multiple/index.js +0 -154
- package/lib/Select/demo/options/index.d.ts +0 -2
- package/lib/Select/demo/options/index.js +0 -69
- package/lib/Select/demo/single/index.d.ts +0 -3
- package/lib/Select/demo/single/index.js +0 -103
- package/lib/Select/demo/single/index.less +0 -5
- package/lib/Select/style/index.less +0 -532
- package/lib/Table/demo/basic/createData.d.ts +0 -9
- package/lib/Table/demo/basic/createData.js +0 -23
- package/lib/Table/demo/basic/index.d.ts +0 -2
- package/lib/Table/demo/basic/index.js +0 -80
- package/lib/Table/demo/editCell/index.d.ts +0 -2
- package/lib/Table/demo/editCell/index.js +0 -54
- package/lib/Table/demo/renderHeaderRight/index.d.ts +0 -2
- package/lib/Table/demo/renderHeaderRight/index.js +0 -52
- package/lib/Table/demo/rowSelect/index.d.ts +0 -2
- package/lib/Table/demo/rowSelect/index.js +0 -55
- package/lib/Table/demo/sort/index.d.ts +0 -2
- package/lib/Table/demo/sort/index.js +0 -47
- package/lib/Table/demo/virtualList/index.d.ts +0 -2
- package/lib/Table/demo/virtualList/index.js +0 -103
- package/lib/Table/style/index.less +0 -111
- package/lib/Tabs/demo/adaptHeight/index.d.ts +0 -3
- package/lib/Tabs/demo/adaptHeight/index.js +0 -34
- package/lib/Tabs/demo/adaptHeight/index.less +0 -3
- package/lib/Tabs/demo/basic/index.d.ts +0 -4
- package/lib/Tabs/demo/basic/index.js +0 -67
- package/lib/Tabs/demo/basic/index.less +0 -5
- package/lib/Tabs/demo/horizontalScroll/index.d.ts +0 -3
- package/lib/Tabs/demo/horizontalScroll/index.js +0 -45
- package/lib/Tabs/demo/horizontalScroll/index.less +0 -3
- package/lib/Tabs/style/index.less +0 -61
- package/lib/Tooltip/demo/basic/index.d.ts +0 -2
- package/lib/Tooltip/demo/basic/index.js +0 -20
- package/lib/Tooltip/demo/overflow/index.d.ts +0 -2
- package/lib/Tooltip/demo/overflow/index.js +0 -20
- package/lib/Tooltip/demo/placement/index.d.ts +0 -6
- package/lib/Tooltip/demo/placement/index.js +0 -86
- package/lib/Tooltip/demo/placement/index.less +0 -7
- package/lib/Tooltip/demo/trigger/index.d.ts +0 -3
- package/lib/Tooltip/demo/trigger/index.js +0 -34
- package/lib/Tooltip/demo/trigger/index.less +0 -5
- package/lib/Tooltip/style/index.less +0 -14
- package/lib/style/index.less +0 -3
- package/lib/style/mixins/index.less +0 -0
- package/lib/style/themes/default/index.less +0 -36
- package/lib/style/themes/default/themeColor.module.less +0 -259
package/es/Table/index.js
CHANGED
|
@@ -23,9 +23,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
23
23
|
|
|
24
24
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
/// <reference types ='./react-table-config' />
|
|
27
27
|
import React, { useCallback, useMemo } from 'react';
|
|
28
|
-
import { useTable, useBlockLayout, useRowSelect } from 'react-table';
|
|
28
|
+
import { useTable, useBlockLayout, useRowSelect, useSortBy, useResizeColumns } from 'react-table';
|
|
29
29
|
import usePrefixCls from '../_utils/hooks/usePrefixCls';
|
|
30
30
|
import { FixedSizeList } from 'react-window';
|
|
31
31
|
import InfiniteLoader from 'react-window-infinite-loader';
|
|
@@ -33,7 +33,10 @@ import classnames from 'classnames';
|
|
|
33
33
|
import './style';
|
|
34
34
|
import Icon from '../Icon';
|
|
35
35
|
import Empty from '../Empty';
|
|
36
|
+
import _ from 'lodash';
|
|
36
37
|
var DEFAULT_ROW_HEIGHT = 40;
|
|
38
|
+
var ARRAY_FIRST_INDEX = 0;
|
|
39
|
+
var DEFAULT_ROW_WIDTH = 0;
|
|
37
40
|
|
|
38
41
|
function Table(_ref) {
|
|
39
42
|
var columns = _ref.columns,
|
|
@@ -46,40 +49,64 @@ function Table(_ref) {
|
|
|
46
49
|
_ref$loadMore = _ref.loadMore,
|
|
47
50
|
loadMore = _ref$loadMore === void 0 ? function () {} : _ref$loadMore,
|
|
48
51
|
hasNextPage = _ref.hasNextPage,
|
|
49
|
-
loading = _ref.loading
|
|
52
|
+
loading = _ref.loading,
|
|
53
|
+
_ref$sortable = _ref.sortable,
|
|
54
|
+
sortable = _ref$sortable === void 0 ? false : _ref$sortable,
|
|
55
|
+
defaultSort = _ref.defaultSort,
|
|
56
|
+
_ref$resizeColumn = _ref.resizeColumn,
|
|
57
|
+
resizeColumn = _ref$resizeColumn === void 0 ? false : _ref$resizeColumn,
|
|
58
|
+
allSortDirections = _ref.sortDirections,
|
|
59
|
+
_ref$onChange = _ref.onChange,
|
|
60
|
+
onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange;
|
|
50
61
|
var newColumns = useMemo(function () {
|
|
51
62
|
return columns.map(function (column) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return column;
|
|
63
|
+
return _objectSpread(_objectSpread({}, column), {}, {
|
|
64
|
+
Header: column.title,
|
|
65
|
+
disableSortBy: !sortable || typeof column.sorter === 'boolean',
|
|
66
|
+
accessor: column.dataIndex,
|
|
67
|
+
Cell: function Cell(_ref2) {
|
|
68
|
+
var row = _ref2.row,
|
|
69
|
+
value = _ref2.value;
|
|
70
|
+
return typeof column.render === 'function' ? column.render(value, row.original, row.index) : value;
|
|
71
|
+
}
|
|
72
|
+
});
|
|
64
73
|
});
|
|
65
|
-
}, [columns]);
|
|
74
|
+
}, [columns, sortable]);
|
|
75
|
+
|
|
76
|
+
var _React$useState = React.useState({
|
|
77
|
+
id: (defaultSort === null || defaultSort === void 0 ? void 0 : defaultSort.id) || sortable ? newColumns[ARRAY_FIRST_INDEX].dataIndex : '',
|
|
78
|
+
desc: (defaultSort === null || defaultSort === void 0 ? void 0 : defaultSort.desc) || false
|
|
79
|
+
}),
|
|
80
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
81
|
+
sortDirection = _React$useState2[0],
|
|
82
|
+
setSortDirection = _React$useState2[1];
|
|
66
83
|
|
|
67
84
|
var _useTable = useTable({
|
|
68
85
|
columns: newColumns,
|
|
69
|
-
data: data
|
|
70
|
-
|
|
86
|
+
data: data,
|
|
87
|
+
disableMultiSort: true,
|
|
88
|
+
disableSortBy: !sortable,
|
|
89
|
+
initialState: {
|
|
90
|
+
sortBy: [{
|
|
91
|
+
id: sortDirection.id,
|
|
92
|
+
desc: sortDirection.desc
|
|
93
|
+
}]
|
|
94
|
+
}
|
|
95
|
+
}, useBlockLayout, useSortBy, useRowSelect, useResizeColumns),
|
|
71
96
|
getTableProps = _useTable.getTableProps,
|
|
72
97
|
getTableBodyProps = _useTable.getTableBodyProps,
|
|
73
98
|
headerGroups = _useTable.headerGroups,
|
|
74
99
|
rows = _useTable.rows,
|
|
75
|
-
prepareRow = _useTable.prepareRow
|
|
100
|
+
prepareRow = _useTable.prepareRow,
|
|
101
|
+
setSortBy = _useTable.setSortBy;
|
|
76
102
|
|
|
77
|
-
var _React$
|
|
78
|
-
_React$
|
|
79
|
-
selectedRowId = _React$
|
|
80
|
-
setSelectedRowId = _React$
|
|
103
|
+
var _React$useState3 = React.useState(null),
|
|
104
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
105
|
+
selectedRowId = _React$useState4[0],
|
|
106
|
+
setSelectedRowId = _React$useState4[1];
|
|
81
107
|
|
|
82
|
-
var
|
|
108
|
+
var theadRowWidthRef = React.useRef(DEFAULT_ROW_WIDTH);
|
|
109
|
+
var prefixCls = usePrefixCls('block-table');
|
|
83
110
|
|
|
84
111
|
function getTbodyStyle() {
|
|
85
112
|
if (scrollY) {
|
|
@@ -94,8 +121,7 @@ function Table(_ref) {
|
|
|
94
121
|
var onRowClick = useCallback(function (row) {
|
|
95
122
|
if (!onRowSelected) {
|
|
96
123
|
return;
|
|
97
|
-
}
|
|
98
|
-
|
|
124
|
+
}
|
|
99
125
|
|
|
100
126
|
setSelectedRowId(row.id);
|
|
101
127
|
onRowSelected(row.original);
|
|
@@ -107,9 +133,9 @@ function Table(_ref) {
|
|
|
107
133
|
return !hasNextPage || index < data.length;
|
|
108
134
|
};
|
|
109
135
|
|
|
110
|
-
var RenderRow = function RenderRow(
|
|
111
|
-
var index =
|
|
112
|
-
style =
|
|
136
|
+
var RenderRow = function RenderRow(_ref3) {
|
|
137
|
+
var index = _ref3.index,
|
|
138
|
+
style = _ref3.style;
|
|
113
139
|
|
|
114
140
|
if (!isItemLoaded(index)) {
|
|
115
141
|
return /*#__PURE__*/React.createElement("div", {
|
|
@@ -129,8 +155,8 @@ function Table(_ref) {
|
|
|
129
155
|
rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
|
|
130
156
|
|
|
131
157
|
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, rowProps), {}, {
|
|
132
|
-
style: _objectSpread(_objectSpread({}, style), {}, {
|
|
133
|
-
|
|
158
|
+
style: _objectSpread(_objectSpread(_objectSpread({}, style), rowStyle), {}, {
|
|
159
|
+
width: resizeColumn ? style === null || style === void 0 ? void 0 : style.width : '100%'
|
|
134
160
|
}),
|
|
135
161
|
className: classnames("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
|
|
136
162
|
onClick: function onClick() {
|
|
@@ -148,31 +174,140 @@ function Table(_ref) {
|
|
|
148
174
|
className: classnames("".concat(prefixCls, "-header"))
|
|
149
175
|
}, renderHeaderLeft ? renderHeaderLeft() : /*#__PURE__*/React.createElement("span", {
|
|
150
176
|
className: classnames("".concat(prefixCls, "-header-left"))
|
|
151
|
-
}, "\u5171", total || len, "\u6761"), /*#__PURE__*/React.createElement("div", {
|
|
177
|
+
}, "\u5171\u8BA1", total || len, "\u6761"), /*#__PURE__*/React.createElement("div", {
|
|
152
178
|
className: classnames("".concat(prefixCls, "-header-right"))
|
|
153
179
|
}, renderHeaderRight ? renderHeaderRight() : null));
|
|
154
180
|
};
|
|
155
181
|
|
|
182
|
+
var getNextSortDesc = function getNextSortDesc(currentDesc) {
|
|
183
|
+
var sortDirections = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['ascend', 'descend'];
|
|
184
|
+
var sortOrder = arguments.length > 2 ? arguments[2] : undefined;
|
|
185
|
+
var descMap = new Map([['ascend', false], ['descend', true]]);
|
|
186
|
+
var directions = allSortDirections || sortDirections;
|
|
187
|
+
|
|
188
|
+
if (sortOrder === 'ascend' || sortOrder === 'descend') {
|
|
189
|
+
return descMap.get(sortOrder);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
if (typeof currentDesc === 'undefined') {
|
|
193
|
+
return descMap.get(directions[ARRAY_FIRST_INDEX]);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
var direction = currentDesc ? 'descend' : 'ascend';
|
|
197
|
+
|
|
198
|
+
var index = _.findIndex(directions, function (item) {
|
|
199
|
+
return item === direction;
|
|
200
|
+
});
|
|
201
|
+
|
|
202
|
+
var nextIndex = index + 1;
|
|
203
|
+
return descMap.get(directions[nextIndex]);
|
|
204
|
+
};
|
|
205
|
+
|
|
206
|
+
var getHeaderProps = function getHeaderProps(column) {
|
|
207
|
+
// @ts-ignore
|
|
208
|
+
var id = column.id,
|
|
209
|
+
isSortedDesc = column.isSortedDesc,
|
|
210
|
+
canSort = column.canSort,
|
|
211
|
+
sorter = column.sorter,
|
|
212
|
+
sortOrder = column.sortOrder,
|
|
213
|
+
sortDirections = column.sortDirections;
|
|
214
|
+
var toggleProps = column.getSortByToggleProps();
|
|
215
|
+
|
|
216
|
+
if (canSort) {
|
|
217
|
+
// client sort
|
|
218
|
+
return _objectSpread(_objectSpread({}, column.getHeaderProps(_objectSpread({}, toggleProps))), {}, {
|
|
219
|
+
onClick: function onClick(e) {
|
|
220
|
+
e.stopPropagation();
|
|
221
|
+
|
|
222
|
+
if (typeof toggleProps.onClick === 'function') {
|
|
223
|
+
// toggleProps.onClick(e);
|
|
224
|
+
var desc = getNextSortDesc(isSortedDesc, sortDirections, sortOrder);
|
|
225
|
+
var sortBy = {
|
|
226
|
+
id: typeof desc === 'undefined' ? '' : id,
|
|
227
|
+
desc: desc
|
|
228
|
+
};
|
|
229
|
+
setSortBy([sortBy]);
|
|
230
|
+
setSortDirection(sortBy);
|
|
231
|
+
onChange(sortBy);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
if (sorter) {
|
|
238
|
+
// server sort
|
|
239
|
+
return _objectSpread(_objectSpread({}, column.getHeaderProps({
|
|
240
|
+
style: {
|
|
241
|
+
cursor: 'pointer'
|
|
242
|
+
}
|
|
243
|
+
})), {}, {
|
|
244
|
+
onClick: function onClick(e) {
|
|
245
|
+
e.stopPropagation(); // 需要触发onChange
|
|
246
|
+
// debugger;
|
|
247
|
+
|
|
248
|
+
var desc = getNextSortDesc(sortDirection.desc, sortDirections, sortOrder);
|
|
249
|
+
var sortBy = {
|
|
250
|
+
id: typeof desc === 'boolean' ? id : '',
|
|
251
|
+
desc: desc
|
|
252
|
+
};
|
|
253
|
+
setSortDirection(sortBy);
|
|
254
|
+
onChange(sortBy);
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
return column.getHeaderProps();
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
var SortIcons = function SortIcons(_ref4) {
|
|
263
|
+
var id = _ref4.id;
|
|
264
|
+
var currentSortId = sortDirection.id,
|
|
265
|
+
desc = sortDirection.desc;
|
|
266
|
+
|
|
267
|
+
if (id !== currentSortId || !sortable) {
|
|
268
|
+
return null;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
return desc ? /*#__PURE__*/React.createElement(Icon, {
|
|
272
|
+
className: "".concat(prefixCls, "-sortIcon"),
|
|
273
|
+
type: "sort_descending",
|
|
274
|
+
size: 12
|
|
275
|
+
}) : /*#__PURE__*/React.createElement(Icon, {
|
|
276
|
+
className: "".concat(prefixCls, "-sortIcon"),
|
|
277
|
+
type: "sort_ascending",
|
|
278
|
+
size: 12
|
|
279
|
+
});
|
|
280
|
+
};
|
|
281
|
+
|
|
156
282
|
return /*#__PURE__*/React.createElement("div", {
|
|
157
283
|
className: prefixCls
|
|
158
|
-
}, renderHeader(data.length), /*#__PURE__*/React.createElement("div", _objectSpread({}, getTableProps()),
|
|
159
|
-
className: classnames("".concat(prefixCls, "-
|
|
284
|
+
}, renderHeader(data.length), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
|
|
285
|
+
className: classnames(_defineProperty({}, "".concat(prefixCls, "-column-resizable"), resizeColumn))
|
|
286
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
287
|
+
className: "".concat(prefixCls, "-thead")
|
|
160
288
|
}, headerGroups.map(function (headerGroup) {
|
|
161
289
|
var _headerGroup$getHeade = headerGroup.getHeaderGroupProps(),
|
|
162
290
|
style = _headerGroup$getHeade.style,
|
|
163
291
|
headerGroupProps = _objectWithoutProperties(_headerGroup$getHeade, _excluded2);
|
|
164
292
|
|
|
293
|
+
theadRowWidthRef.current = (style === null || style === void 0 ? void 0 : style.width) || DEFAULT_ROW_WIDTH;
|
|
165
294
|
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, headerGroupProps), {}, {
|
|
166
|
-
style: {
|
|
167
|
-
|
|
168
|
-
},
|
|
169
|
-
className:
|
|
295
|
+
style: _objectSpread(_objectSpread({}, style), {}, {
|
|
296
|
+
width: resizeColumn ? style === null || style === void 0 ? void 0 : style.width : '100%'
|
|
297
|
+
}),
|
|
298
|
+
className: "".concat(prefixCls, "-row")
|
|
170
299
|
}), headerGroup.headers.map(function (column) {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
className: classnames("".concat(prefixCls, "-
|
|
175
|
-
}
|
|
300
|
+
var barPorps = resizeColumn ? column.getResizerProps() : {};
|
|
301
|
+
return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({
|
|
302
|
+
// {...column.getHeaderProps(column.getSortByToggleProps())}
|
|
303
|
+
className: classnames(_defineProperty({}, "".concat(prefixCls, "-cell-sorting"), column.id === sortDirection.id), "".concat(prefixCls, "-cell"))
|
|
304
|
+
}, getHeaderProps(column)), {}, {
|
|
305
|
+
key: column.id
|
|
306
|
+
}), column.render('Header'), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, barPorps), {}, {
|
|
307
|
+
className: classnames(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
|
|
308
|
+
})), /*#__PURE__*/React.createElement(SortIcons, {
|
|
309
|
+
id: column.id
|
|
310
|
+
}));
|
|
176
311
|
}));
|
|
177
312
|
})), /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, getTableBodyProps()), {}, {
|
|
178
313
|
className: classnames("".concat(prefixCls, "-tbody"), _defineProperty({}, "".concat(prefixCls, "-tbody-scroll"), !loadMoreItems)),
|
|
@@ -183,17 +318,17 @@ function Table(_ref) {
|
|
|
183
318
|
isItemLoaded: isItemLoaded,
|
|
184
319
|
itemCount: itemCount,
|
|
185
320
|
loadMoreItems: loadMoreItems
|
|
186
|
-
}, function (
|
|
187
|
-
var onItemsRendered =
|
|
188
|
-
ref =
|
|
321
|
+
}, function (_ref5) {
|
|
322
|
+
var onItemsRendered = _ref5.onItemsRendered,
|
|
323
|
+
ref = _ref5.ref;
|
|
189
324
|
return /*#__PURE__*/React.createElement(FixedSizeList, {
|
|
190
325
|
itemCount: itemCount,
|
|
191
326
|
onItemsRendered: onItemsRendered,
|
|
192
327
|
height: scrollY || data.length * DEFAULT_ROW_HEIGHT,
|
|
193
328
|
itemSize: DEFAULT_ROW_HEIGHT,
|
|
194
|
-
width:
|
|
329
|
+
width: resizeColumn ? theadRowWidthRef.current : '100%',
|
|
195
330
|
ref: ref,
|
|
196
|
-
className:
|
|
331
|
+
className: "".concat(prefixCls, "-list")
|
|
197
332
|
}, RenderRow);
|
|
198
333
|
}))));
|
|
199
334
|
}
|
package/es/Table/interface.d.ts
CHANGED
|
@@ -1,14 +1,34 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import {
|
|
2
|
+
import { Row, IdType } from 'react-table';
|
|
3
|
+
export declare type TSortOrder = 'ascend' | 'descend' | false;
|
|
4
|
+
export interface ISort<T> {
|
|
5
|
+
id: IdType<T>;
|
|
6
|
+
desc?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface IColumn<T extends object> {
|
|
9
|
+
title: string;
|
|
10
|
+
dataIndex: string;
|
|
11
|
+
render?: (value: unknown, row: Record<string, T>, index: number) => React.ReactNode;
|
|
12
|
+
width?: number;
|
|
13
|
+
minWidth?: number;
|
|
14
|
+
sorter?: boolean | 'string' | 'number' | 'basic' | 'datetime' | 'alphanumeric' | ((rowA: Row<T>, rowB: Row<T>, columnId: IdType<T>, desc?: boolean) => number);
|
|
15
|
+
sortOrder?: TSortOrder;
|
|
16
|
+
sortDirections?: Array<'ascend' | 'descend'>;
|
|
17
|
+
}
|
|
3
18
|
export interface ITableProps<T extends object> {
|
|
4
|
-
columns:
|
|
19
|
+
columns: IColumn<T>[];
|
|
5
20
|
data: T[];
|
|
6
21
|
total?: number;
|
|
7
22
|
scrollY?: number;
|
|
8
23
|
onRowSelected?: (row: T) => void;
|
|
9
24
|
loadMore?: (startIndex: number, stopIndex: number) => void | Promise<void>;
|
|
10
|
-
hasNextPage
|
|
11
|
-
loading
|
|
12
|
-
renderHeaderLeft
|
|
13
|
-
renderHeaderRight
|
|
25
|
+
hasNextPage?: boolean;
|
|
26
|
+
loading?: boolean;
|
|
27
|
+
renderHeaderLeft?: () => React.ReactNode;
|
|
28
|
+
renderHeaderRight?: () => React.ReactNode;
|
|
29
|
+
sortable?: boolean;
|
|
30
|
+
onChange?: (sort: ISort<T>) => void;
|
|
31
|
+
defaultSort?: ISort<T>;
|
|
32
|
+
sortDirections?: Array<'ascend' | 'descend'>;
|
|
33
|
+
resizeColumn?: boolean;
|
|
14
34
|
}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
+
import {
|
|
3
|
+
UseColumnOrderInstanceProps,
|
|
4
|
+
UseColumnOrderState,
|
|
5
|
+
UseExpandedHooks,
|
|
6
|
+
UseExpandedInstanceProps,
|
|
7
|
+
UseExpandedOptions,
|
|
8
|
+
UseExpandedRowProps,
|
|
9
|
+
UseExpandedState,
|
|
10
|
+
UseFiltersColumnOptions,
|
|
11
|
+
UseFiltersColumnProps,
|
|
12
|
+
UseFiltersInstanceProps,
|
|
13
|
+
UseFiltersOptions,
|
|
14
|
+
UseFiltersState,
|
|
15
|
+
UseGlobalFiltersColumnOptions,
|
|
16
|
+
UseGlobalFiltersInstanceProps,
|
|
17
|
+
UseGlobalFiltersOptions,
|
|
18
|
+
UseGlobalFiltersState,
|
|
19
|
+
UseGroupByCellProps,
|
|
20
|
+
UseGroupByColumnOptions,
|
|
21
|
+
UseGroupByColumnProps,
|
|
22
|
+
UseGroupByHooks,
|
|
23
|
+
UseGroupByInstanceProps,
|
|
24
|
+
UseGroupByOptions,
|
|
25
|
+
UseGroupByRowProps,
|
|
26
|
+
UseGroupByState,
|
|
27
|
+
UsePaginationInstanceProps,
|
|
28
|
+
UsePaginationOptions,
|
|
29
|
+
UsePaginationState,
|
|
30
|
+
UseResizeColumnsColumnOptions,
|
|
31
|
+
UseResizeColumnsColumnProps,
|
|
32
|
+
UseResizeColumnsOptions,
|
|
33
|
+
UseResizeColumnsState,
|
|
34
|
+
UseRowSelectHooks,
|
|
35
|
+
UseRowSelectInstanceProps,
|
|
36
|
+
UseRowSelectOptions,
|
|
37
|
+
UseRowSelectRowProps,
|
|
38
|
+
UseRowSelectState,
|
|
39
|
+
UseRowStateCellProps,
|
|
40
|
+
UseRowStateInstanceProps,
|
|
41
|
+
UseRowStateOptions,
|
|
42
|
+
UseRowStateRowProps,
|
|
43
|
+
UseRowStateState,
|
|
44
|
+
UseSortByColumnOptions,
|
|
45
|
+
UseSortByColumnProps,
|
|
46
|
+
UseSortByHooks,
|
|
47
|
+
UseSortByInstanceProps,
|
|
48
|
+
UseSortByOptions,
|
|
49
|
+
UseSortByState
|
|
50
|
+
} from 'react-table';
|
|
51
|
+
|
|
52
|
+
declare module 'react-table' {
|
|
53
|
+
// take this file as-is, or comment out the sections that don't apply to your plugin configuration
|
|
54
|
+
|
|
55
|
+
export interface TableOptions<D extends Record<string, unknown>>
|
|
56
|
+
extends UseExpandedOptions<D>,
|
|
57
|
+
UseFiltersOptions<D>,
|
|
58
|
+
UseGlobalFiltersOptions<D>,
|
|
59
|
+
UseGroupByOptions<D>,
|
|
60
|
+
UsePaginationOptions<D>,
|
|
61
|
+
UseResizeColumnsOptions<D>,
|
|
62
|
+
UseRowSelectOptions<D>,
|
|
63
|
+
UseRowStateOptions<D>,
|
|
64
|
+
UseSortByOptions<D>,
|
|
65
|
+
// note that having Record here allows you to add anything to the options, this matches the spirit of the
|
|
66
|
+
// underlying js library, but might be cleaner if it's replaced by a more specific type that matches your
|
|
67
|
+
// feature set, this is a safe default.
|
|
68
|
+
Record<string, unknown> {}
|
|
69
|
+
|
|
70
|
+
export interface Hooks<D extends Record<string, unknown> = Record<string, unknown>>
|
|
71
|
+
extends UseExpandedHooks<D>,
|
|
72
|
+
UseGroupByHooks<D>,
|
|
73
|
+
UseRowSelectHooks<D>,
|
|
74
|
+
UseSortByHooks<D> {}
|
|
75
|
+
|
|
76
|
+
export interface TableInstance<D extends Record<string, unknown> = Record<string, unknown>>
|
|
77
|
+
extends UseColumnOrderInstanceProps<D>,
|
|
78
|
+
UseExpandedInstanceProps<D>,
|
|
79
|
+
UseFiltersInstanceProps<D>,
|
|
80
|
+
UseGlobalFiltersInstanceProps<D>,
|
|
81
|
+
UseGroupByInstanceProps<D>,
|
|
82
|
+
UsePaginationInstanceProps<D>,
|
|
83
|
+
UseRowSelectInstanceProps<D>,
|
|
84
|
+
UseRowStateInstanceProps<D>,
|
|
85
|
+
UseSortByInstanceProps<D> {}
|
|
86
|
+
|
|
87
|
+
export interface TableState<D extends Record<string, unknown> = Record<string, unknown>>
|
|
88
|
+
extends UseColumnOrderState<D>,
|
|
89
|
+
UseExpandedState<D>,
|
|
90
|
+
UseFiltersState<D>,
|
|
91
|
+
UseGlobalFiltersState<D>,
|
|
92
|
+
UseGroupByState<D>,
|
|
93
|
+
UsePaginationState<D>,
|
|
94
|
+
UseResizeColumnsState<D>,
|
|
95
|
+
UseRowSelectState<D>,
|
|
96
|
+
UseRowStateState<D>,
|
|
97
|
+
UseSortByState<D> {}
|
|
98
|
+
|
|
99
|
+
export interface ColumnInterface<D extends Record<string, unknown> = Record<string, unknown>>
|
|
100
|
+
extends UseFiltersColumnOptions<D>,
|
|
101
|
+
UseGlobalFiltersColumnOptions<D>,
|
|
102
|
+
UseGroupByColumnOptions<D>,
|
|
103
|
+
UseResizeColumnsColumnOptions<D>,
|
|
104
|
+
UseSortByColumnOptions<D> {}
|
|
105
|
+
|
|
106
|
+
export interface ColumnInstance<D extends Record<string, unknown> = Record<string, unknown>>
|
|
107
|
+
extends UseFiltersColumnProps<D>,
|
|
108
|
+
UseGroupByColumnProps<D>,
|
|
109
|
+
UseResizeColumnsColumnProps<D>,
|
|
110
|
+
UseSortByColumnProps<D> {}
|
|
111
|
+
|
|
112
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
113
|
+
export interface Cell<D extends Record<string, unknown> = Record<string, unknown>, V = unknown>
|
|
114
|
+
extends UseGroupByCellProps<D>,
|
|
115
|
+
UseRowStateCellProps<D> {}
|
|
116
|
+
|
|
117
|
+
export interface Row<D extends Record<string, unknown> = Record<string, unknown>>
|
|
118
|
+
extends UseExpandedRowProps<D>,
|
|
119
|
+
UseGroupByRowProps<D>,
|
|
120
|
+
UseRowSelectRowProps<D>,
|
|
121
|
+
UseRowStateRowProps<D> {}
|
|
122
|
+
}
|