@aloudata/aloudata-design 0.2.0-beta.1 → 0.2.0-beta.4

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.
Files changed (243) hide show
  1. package/es/Dropdown/index.d.ts +1 -0
  2. package/es/Icon/iconfont/demo_index.html +49 -3
  3. package/es/Icon/iconfont/iconfont.css +11 -3
  4. package/es/Icon/iconfont/iconfont.js +5 -5
  5. package/es/Icon/iconfont/iconfont.json +14 -0
  6. package/es/Icon/iconfont/iconfont.ttf +0 -0
  7. package/es/Icon/iconfont/iconfont.woff +0 -0
  8. package/es/Icon/iconfont/iconfont.woff2 +0 -0
  9. package/es/Icon/index.less +2 -2
  10. package/es/Input/components/Group/index.d.ts +3 -1
  11. package/es/Input/components/Password/index.d.ts +4 -2
  12. package/es/Input/components/Password/index.js +1 -1
  13. package/es/Input/index.d.ts +1 -1
  14. package/es/Menu/Divider.d.ts +1 -0
  15. package/es/Menu/MenuItem.d.ts +7 -0
  16. package/es/Menu/index.d.ts +1 -0
  17. package/es/Navigator/style/index.less +13 -9
  18. package/es/Table/index.d.ts +1 -1
  19. package/es/Table/index.js +183 -48
  20. package/es/Table/interface.d.ts +26 -6
  21. package/es/Table/react-table-config.d.ts +122 -0
  22. package/es/Table/style/index.less +39 -9
  23. package/es/Tabs/index.d.ts +1 -0
  24. package/es/index.d.ts +10 -0
  25. package/lib/Dropdown/index.d.ts +1 -0
  26. package/lib/Icon/iconfont/demo_index.html +49 -3
  27. package/lib/Icon/iconfont/iconfont.css +11 -3
  28. package/lib/Icon/iconfont/iconfont.js +5 -5
  29. package/lib/Icon/iconfont/iconfont.json +14 -0
  30. package/lib/Icon/iconfont/iconfont.ttf +0 -0
  31. package/lib/Icon/iconfont/iconfont.woff +0 -0
  32. package/lib/Icon/iconfont/iconfont.woff2 +0 -0
  33. package/lib/Icon/index.less +2 -2
  34. package/lib/Input/components/Group/index.d.ts +3 -1
  35. package/lib/Input/components/Password/index.d.ts +4 -2
  36. package/lib/Input/components/Password/index.js +2 -2
  37. package/lib/Input/index.d.ts +1 -1
  38. package/lib/Menu/Divider.d.ts +1 -0
  39. package/lib/Menu/MenuItem.d.ts +7 -0
  40. package/lib/Menu/index.d.ts +1 -0
  41. package/lib/Navigator/style/index.less +13 -9
  42. package/lib/Table/index.d.ts +1 -1
  43. package/lib/Table/index.js +191 -54
  44. package/lib/Table/interface.d.ts +26 -6
  45. package/lib/Table/react-table-config.d.ts +122 -0
  46. package/lib/Table/style/index.less +39 -9
  47. package/lib/Tabs/index.d.ts +1 -0
  48. package/lib/index.d.ts +10 -0
  49. package/package.json +1 -1
  50. package/es/Button/demo/Icon/index.d.ts +0 -3
  51. package/es/Button/demo/Icon/index.js +0 -67
  52. package/es/Button/demo/Icon/index.less +0 -6
  53. package/es/Button/demo/basic/index.d.ts +0 -4
  54. package/es/Button/demo/basic/index.js +0 -57
  55. package/es/Button/demo/basic/index.less +0 -6
  56. package/es/Button/demo/disable/index.d.ts +0 -3
  57. package/es/Button/demo/disable/index.js +0 -23
  58. package/es/Button/demo/disable/index.less +0 -0
  59. package/es/Button/demo/href/index.d.ts +0 -2
  60. package/es/Button/demo/href/index.js +0 -17
  61. package/es/Button/demo/loading/index.d.ts +0 -3
  62. package/es/Button/demo/loading/index.js +0 -37
  63. package/es/Button/demo/loading/index.less +0 -6
  64. package/es/Dropdown/demo/basic/index.d.ts +0 -4
  65. package/es/Dropdown/demo/basic/index.js +0 -18
  66. package/es/Dropdown/demo/button/index.d.ts +0 -3
  67. package/es/Dropdown/demo/button/index.js +0 -159
  68. package/es/Dropdown/demo/button/index.less +0 -9
  69. package/es/Dropdown/demo/placement/index.d.ts +0 -2
  70. package/es/Dropdown/demo/placement/index.js +0 -40
  71. package/es/Dropdown/demo/subMenu/index.d.ts +0 -2
  72. package/es/Dropdown/demo/subMenu/index.js +0 -42
  73. package/es/Dropdown/demo/trigger/index.d.ts +0 -2
  74. package/es/Dropdown/demo/trigger/index.js +0 -17
  75. package/es/Input/demo/allowClear/index.d.ts +0 -3
  76. package/es/Input/demo/allowClear/index.js +0 -11
  77. package/es/Input/demo/allowClear/index.less +0 -0
  78. package/es/Input/demo/basic/index.d.ts +0 -4
  79. package/es/Input/demo/basic/index.js +0 -65
  80. package/es/Input/demo/basic/index.less +0 -6
  81. package/es/Input/demo/gourp/index.d.ts +0 -2
  82. package/es/Input/demo/gourp/index.js +0 -67
  83. package/es/Input/demo/password/index.d.ts +0 -3
  84. package/es/Input/demo/password/index.js +0 -21
  85. package/es/Input/demo/password/index.less +0 -0
  86. package/es/Input/demo/prefix/index.d.ts +0 -3
  87. package/es/Input/demo/prefix/index.js +0 -17
  88. package/es/Input/demo/prefix/index.less +0 -0
  89. package/es/Input/demo/showCount/index.d.ts +0 -3
  90. package/es/Input/demo/showCount/index.js +0 -17
  91. package/es/Input/demo/showCount/index.less +0 -0
  92. package/es/Input/demo/textArea/autoSize.d.ts +0 -2
  93. package/es/Input/demo/textArea/autoSize.js +0 -50
  94. package/es/Navigator/demo/basic/index.d.ts +0 -4
  95. package/es/Navigator/demo/basic/index.js +0 -45
  96. package/es/Navigator/demo/basic/index.less +0 -3
  97. package/es/Navigator/demo/example/index.d.ts +0 -4
  98. package/es/Navigator/demo/example/index.js +0 -153
  99. package/es/Navigator/demo/example/index.less +0 -10
  100. package/es/Navigator/demo/logo.png +0 -0
  101. package/es/Navigator/demo/menuWithFooter/index.d.ts +0 -4
  102. package/es/Navigator/demo/menuWithFooter/index.js +0 -73
  103. package/es/Navigator/demo/menuWithFooter/index.less +0 -3
  104. package/es/Navigator/demo/subMenu/index.d.ts +0 -4
  105. package/es/Navigator/demo/subMenu/index.js +0 -71
  106. package/es/Navigator/demo/subMenu/index.less +0 -3
  107. package/es/Select/demo/disabled/index.d.ts +0 -2
  108. package/es/Select/demo/disabled/index.js +0 -50
  109. package/es/Select/demo/multiple/index.d.ts +0 -2
  110. package/es/Select/demo/multiple/index.js +0 -140
  111. package/es/Select/demo/options/index.d.ts +0 -2
  112. package/es/Select/demo/options/index.js +0 -55
  113. package/es/Select/demo/single/index.d.ts +0 -3
  114. package/es/Select/demo/single/index.js +0 -89
  115. package/es/Select/demo/single/index.less +0 -5
  116. package/es/Table/demo/basic/createData.d.ts +0 -9
  117. package/es/Table/demo/basic/createData.js +0 -18
  118. package/es/Table/demo/basic/index.d.ts +0 -2
  119. package/es/Table/demo/basic/index.js +0 -64
  120. package/es/Table/demo/editCell/index.d.ts +0 -2
  121. package/es/Table/demo/editCell/index.js +0 -39
  122. package/es/Table/demo/renderHeaderRight/index.d.ts +0 -2
  123. package/es/Table/demo/renderHeaderRight/index.js +0 -37
  124. package/es/Table/demo/rowSelect/index.d.ts +0 -2
  125. package/es/Table/demo/rowSelect/index.js +0 -40
  126. package/es/Table/demo/virtualList/index.d.ts +0 -2
  127. package/es/Table/demo/virtualList/index.js +0 -88
  128. package/es/Tabs/demo/adaptHeight/index.d.ts +0 -3
  129. package/es/Tabs/demo/adaptHeight/index.js +0 -19
  130. package/es/Tabs/demo/adaptHeight/index.less +0 -3
  131. package/es/Tabs/demo/basic/index.d.ts +0 -4
  132. package/es/Tabs/demo/basic/index.js +0 -44
  133. package/es/Tabs/demo/basic/index.less +0 -5
  134. package/es/Tabs/demo/horizontalScroll/index.d.ts +0 -3
  135. package/es/Tabs/demo/horizontalScroll/index.js +0 -30
  136. package/es/Tabs/demo/horizontalScroll/index.less +0 -3
  137. package/es/Tooltip/demo/basic/index.d.ts +0 -2
  138. package/es/Tooltip/demo/basic/index.js +0 -7
  139. package/es/Tooltip/demo/overflow/index.d.ts +0 -2
  140. package/es/Tooltip/demo/overflow/index.js +0 -7
  141. package/es/Tooltip/demo/placement/index.d.ts +0 -6
  142. package/es/Tooltip/demo/placement/index.js +0 -70
  143. package/es/Tooltip/demo/placement/index.less +0 -7
  144. package/es/Tooltip/demo/trigger/index.d.ts +0 -3
  145. package/es/Tooltip/demo/trigger/index.js +0 -20
  146. package/es/Tooltip/demo/trigger/index.less +0 -5
  147. package/lib/Button/demo/Icon/index.d.ts +0 -3
  148. package/lib/Button/demo/Icon/index.js +0 -82
  149. package/lib/Button/demo/Icon/index.less +0 -6
  150. package/lib/Button/demo/basic/index.d.ts +0 -4
  151. package/lib/Button/demo/basic/index.js +0 -73
  152. package/lib/Button/demo/basic/index.less +0 -6
  153. package/lib/Button/demo/disable/index.d.ts +0 -3
  154. package/lib/Button/demo/disable/index.js +0 -37
  155. package/lib/Button/demo/disable/index.less +0 -0
  156. package/lib/Button/demo/href/index.d.ts +0 -2
  157. package/lib/Button/demo/href/index.js +0 -30
  158. package/lib/Button/demo/loading/index.d.ts +0 -3
  159. package/lib/Button/demo/loading/index.js +0 -51
  160. package/lib/Button/demo/loading/index.less +0 -6
  161. package/lib/Dropdown/demo/basic/index.d.ts +0 -4
  162. package/lib/Dropdown/demo/basic/index.js +0 -35
  163. package/lib/Dropdown/demo/button/index.d.ts +0 -3
  164. package/lib/Dropdown/demo/button/index.js +0 -182
  165. package/lib/Dropdown/demo/button/index.less +0 -9
  166. package/lib/Dropdown/demo/placement/index.d.ts +0 -2
  167. package/lib/Dropdown/demo/placement/index.js +0 -56
  168. package/lib/Dropdown/demo/subMenu/index.d.ts +0 -2
  169. package/lib/Dropdown/demo/subMenu/index.js +0 -59
  170. package/lib/Dropdown/demo/trigger/index.d.ts +0 -2
  171. package/lib/Dropdown/demo/trigger/index.js +0 -32
  172. package/lib/Input/demo/allowClear/index.d.ts +0 -3
  173. package/lib/Input/demo/allowClear/index.js +0 -25
  174. package/lib/Input/demo/allowClear/index.less +0 -0
  175. package/lib/Input/demo/basic/index.d.ts +0 -4
  176. package/lib/Input/demo/basic/index.js +0 -80
  177. package/lib/Input/demo/basic/index.less +0 -6
  178. package/lib/Input/demo/gourp/index.d.ts +0 -2
  179. package/lib/Input/demo/gourp/index.js +0 -81
  180. package/lib/Input/demo/password/index.d.ts +0 -3
  181. package/lib/Input/demo/password/index.js +0 -35
  182. package/lib/Input/demo/password/index.less +0 -0
  183. package/lib/Input/demo/prefix/index.d.ts +0 -3
  184. package/lib/Input/demo/prefix/index.js +0 -32
  185. package/lib/Input/demo/prefix/index.less +0 -0
  186. package/lib/Input/demo/showCount/index.d.ts +0 -3
  187. package/lib/Input/demo/showCount/index.js +0 -31
  188. package/lib/Input/demo/showCount/index.less +0 -0
  189. package/lib/Input/demo/textArea/autoSize.d.ts +0 -2
  190. package/lib/Input/demo/textArea/autoSize.js +0 -63
  191. package/lib/Navigator/demo/basic/index.d.ts +0 -4
  192. package/lib/Navigator/demo/basic/index.js +0 -62
  193. package/lib/Navigator/demo/basic/index.less +0 -3
  194. package/lib/Navigator/demo/example/index.d.ts +0 -4
  195. package/lib/Navigator/demo/example/index.js +0 -179
  196. package/lib/Navigator/demo/example/index.less +0 -10
  197. package/lib/Navigator/demo/logo.png +0 -0
  198. package/lib/Navigator/demo/menuWithFooter/index.d.ts +0 -4
  199. package/lib/Navigator/demo/menuWithFooter/index.js +0 -92
  200. package/lib/Navigator/demo/menuWithFooter/index.less +0 -3
  201. package/lib/Navigator/demo/subMenu/index.d.ts +0 -4
  202. package/lib/Navigator/demo/subMenu/index.js +0 -88
  203. package/lib/Navigator/demo/subMenu/index.less +0 -3
  204. package/lib/Select/demo/disabled/index.d.ts +0 -2
  205. package/lib/Select/demo/disabled/index.js +0 -64
  206. package/lib/Select/demo/multiple/index.d.ts +0 -2
  207. package/lib/Select/demo/multiple/index.js +0 -154
  208. package/lib/Select/demo/options/index.d.ts +0 -2
  209. package/lib/Select/demo/options/index.js +0 -69
  210. package/lib/Select/demo/single/index.d.ts +0 -3
  211. package/lib/Select/demo/single/index.js +0 -103
  212. package/lib/Select/demo/single/index.less +0 -5
  213. package/lib/Table/demo/basic/createData.d.ts +0 -9
  214. package/lib/Table/demo/basic/createData.js +0 -23
  215. package/lib/Table/demo/basic/index.d.ts +0 -2
  216. package/lib/Table/demo/basic/index.js +0 -80
  217. package/lib/Table/demo/editCell/index.d.ts +0 -2
  218. package/lib/Table/demo/editCell/index.js +0 -54
  219. package/lib/Table/demo/renderHeaderRight/index.d.ts +0 -2
  220. package/lib/Table/demo/renderHeaderRight/index.js +0 -52
  221. package/lib/Table/demo/rowSelect/index.d.ts +0 -2
  222. package/lib/Table/demo/rowSelect/index.js +0 -55
  223. package/lib/Table/demo/virtualList/index.d.ts +0 -2
  224. package/lib/Table/demo/virtualList/index.js +0 -103
  225. package/lib/Tabs/demo/adaptHeight/index.d.ts +0 -3
  226. package/lib/Tabs/demo/adaptHeight/index.js +0 -34
  227. package/lib/Tabs/demo/adaptHeight/index.less +0 -3
  228. package/lib/Tabs/demo/basic/index.d.ts +0 -4
  229. package/lib/Tabs/demo/basic/index.js +0 -67
  230. package/lib/Tabs/demo/basic/index.less +0 -5
  231. package/lib/Tabs/demo/horizontalScroll/index.d.ts +0 -3
  232. package/lib/Tabs/demo/horizontalScroll/index.js +0 -45
  233. package/lib/Tabs/demo/horizontalScroll/index.less +0 -3
  234. package/lib/Tooltip/demo/basic/index.d.ts +0 -2
  235. package/lib/Tooltip/demo/basic/index.js +0 -20
  236. package/lib/Tooltip/demo/overflow/index.d.ts +0 -2
  237. package/lib/Tooltip/demo/overflow/index.js +0 -20
  238. package/lib/Tooltip/demo/placement/index.d.ts +0 -6
  239. package/lib/Tooltip/demo/placement/index.js +0 -86
  240. package/lib/Tooltip/demo/placement/index.less +0 -7
  241. package/lib/Tooltip/demo/trigger/index.d.ts +0 -3
  242. package/lib/Tooltip/demo/trigger/index.js +0 -34
  243. package/lib/Tooltip/demo/trigger/index.less +0 -5
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
- // @ts-nocheck
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
- // @ts-ignore
53
- if (column.Cell) {
54
- return _objectSpread(_objectSpread({}, column), {}, {
55
- // @ts-ignore
56
- Cell: function Cell(instance) {
57
- // eslint-disable-next-line
58
- return column.Cell(instance.row.original);
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
- }, useBlockLayout, useRowSelect),
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$useState = React.useState(null),
78
- _React$useState2 = _slicedToArray(_React$useState, 2),
79
- selectedRowId = _React$useState2[0],
80
- setSelectedRowId = _React$useState2[1];
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 prefixCls = usePrefixCls('blockTable');
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
- } // @ts-ignore
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(_ref2) {
111
- var index = _ref2.index,
112
- style = _ref2.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
- display: rowStyle === null || rowStyle === void 0 ? void 0 : rowStyle.display
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()), /*#__PURE__*/React.createElement("div", {
159
- className: classnames("".concat(prefixCls, "-thead"))
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
- display: style === null || style === void 0 ? void 0 : style.display
168
- },
169
- className: classnames("".concat(prefixCls, "-row"))
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
- return /*#__PURE__*/React.createElement("div", _objectSpread(_objectSpread({}, column.getHeaderProps()), {}, {
172
- className: classnames("".concat(prefixCls, "-cell"))
173
- }), /*#__PURE__*/React.createElement("div", {
174
- className: classnames("".concat(prefixCls, "-dragBar"))
175
- }), column.render('Header'));
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 (_ref3) {
187
- var onItemsRendered = _ref3.onItemsRendered,
188
- ref = _ref3.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: "100%",
329
+ width: resizeColumn ? theadRowWidthRef.current : '100%',
195
330
  ref: ref,
196
- className: classnames("".concat(prefixCls, "-list"))
331
+ className: "".concat(prefixCls, "-list")
197
332
  }, RenderRow);
198
333
  }))));
199
334
  }
@@ -1,14 +1,34 @@
1
1
  /// <reference types="react" />
2
- import { Column } from 'react-table';
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: Column<T>[];
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: boolean;
11
- loading: boolean;
12
- renderHeaderLeft: () => React.ReactNode;
13
- renderHeaderRight: () => React.ReactNode;
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
+ }
@@ -3,29 +3,35 @@
3
3
  @ald-prefix:ant;
4
4
  @ald-iconfont-css-prefix:anticon;
5
5
  @table-row-height:40px;
6
- .@{ald-prefix}-blockTable {
6
+ .@{ald-prefix}-block-table {
7
+ overflow: hidden;
8
+
7
9
  &-thead {
8
- .@{ald-prefix}-blockTable-cell {
10
+ .@{ald-prefix}-block-table-cell {
9
11
  position: relative;
10
12
  color: @NL50;
13
+
14
+ &-sorting {
15
+ color: @B40;
16
+ }
11
17
  // border: 1px solid red;
12
18
 
13
- .@{ald-prefix}-blockTable-dragBar {
19
+ .@{ald-prefix}-block-table-bar {
14
20
  display: inline-block;
15
21
  background: blue;
16
22
  width: 1px;
17
23
  height: 12px;
18
24
  position: absolute;
19
25
  top: 50%;
20
- left: 0;
26
+ right: 0;
21
27
  transform: translateY(-50%);
22
28
  z-index: 1;
23
29
  touch-action: none;
24
30
  background-color: @NL95;
25
31
  }
26
32
 
27
- &:first-child {
28
- .@{ald-prefix}-blockTable-dragBar {
33
+ &:last-child {
34
+ .@{ald-prefix}-block-table-bar {
29
35
  display: none;
30
36
  }
31
37
  }
@@ -39,7 +45,7 @@
39
45
  overflow-y: scroll;
40
46
  overflow-y: overlay;
41
47
  }
42
- .@{ald-prefix}-blockTable-row {
48
+ .@{ald-prefix}-block-table-row {
43
49
  &:hover {
44
50
  background-color: @NL97;
45
51
  }
@@ -53,7 +59,7 @@
53
59
  }
54
60
 
55
61
  &:last-of-type {
56
- .@{ald-prefix}-blockTable-cell {
62
+ .@{ald-prefix}-block-table-cell {
57
63
  border-bottom: 1px solid transparent;
58
64
  }
59
65
  }
@@ -108,4 +114,28 @@
108
114
  &-list {
109
115
  overflow: overlay !important;
110
116
  }
111
- }
117
+
118
+ &-sortIcon {
119
+ margin-left: 4px;
120
+ margin-top: -2px;
121
+ }
122
+
123
+ &-column-resizable {
124
+ overflow: overlay;
125
+ .@{ald-prefix}-block-table {
126
+ &-cell {
127
+ flex: none;
128
+ }
129
+
130
+ &-thead {
131
+ &::-webkit-scrollbar {
132
+ display: none;
133
+ }
134
+ }
135
+
136
+ &-tbody {
137
+ overflow: initial;
138
+ }
139
+ }
140
+ }
141
+ }
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  import './style';
3
+ export declare type TabsSize = 'default' | 'large';
3
4
  export interface ITabsProps {
4
5
  /**
5
6
  * @description 大小
package/es/index.d.ts CHANGED
@@ -1,10 +1,20 @@
1
1
  /// <reference path="../typings.d.ts" />
2
2
  export { default as Button } from './Button';
3
+ export type { IButtonProps as ButtonProps, Size, ButtonType } from './Button';
3
4
  export { default as Dropdown } from './Dropdown';
5
+ export type { ActionType, IDropdownProps as DropdownProps, PlacementType } from './Dropdown';
6
+ export { MenuClickEventHandler } from 'rc-menu/lib/interface';
4
7
  export { default as Menu } from './Menu';
8
+ export type { IMenuProps as MenuProps } from './Menu';
5
9
  export { default as Input } from './Input';
10
+ export type { IInputProps as InputProps, TSize } from './Input';
6
11
  export { default as Tabs } from './Tabs';
12
+ export type { ITabsProps as TabsProps, TabsSize } from './Tabs';
7
13
  export { default as Tooltip } from './Tooltip';
14
+ export type { ITooltipProps as TooltipProps, ActionType as TooltipActionType } from './Tooltip';
8
15
  export { default as Select } from './Select';
16
+ export type { ISelectProps as SelectProps, IOption } from './Select/interface';
9
17
  export { default as Table } from './Table';
18
+ export type { ISort, TSortOrder, ITableProps, IColumn } from './Table/interface';
10
19
  export { default as Navigator } from './Navigator';
20
+ export type { INavigatorProps as NavigatorProps, IMenuItem as NavigatorMenu } from './Navigator';
@@ -2,6 +2,7 @@ import React, { ReactElement } from 'react';
2
2
  import DropdownButton from './Button';
3
3
  import './style';
4
4
  export declare type ActionType = 'hover' | 'click' | 'contextMenu';
5
+ export declare type PlacementType = 'bottomLeft' | 'bottomCenter' | 'bottomRight' | 'topLeft' | 'topCenter' | 'topRight';
5
6
  export interface IDropdownProps {
6
7
  /**
7
8
  * @description 关闭后是否销毁Dropdown