@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.
Files changed (321) hide show
  1. package/es/Button/style/index.css +374 -0
  2. package/es/Button/style/index.js +1 -1
  3. package/es/Dropdown/index.d.ts +1 -0
  4. package/es/Dropdown/style/index.css +178 -0
  5. package/es/Dropdown/style/index.js +1 -1
  6. package/es/Empty/style/index.css +162 -0
  7. package/es/Empty/style/index.js +1 -1
  8. package/es/Icon/iconfont/demo_index.html +49 -3
  9. package/es/Icon/iconfont/iconfont.css +11 -3
  10. package/es/Icon/iconfont/iconfont.js +5 -5
  11. package/es/Icon/iconfont/iconfont.json +14 -0
  12. package/es/Icon/iconfont/iconfont.ttf +0 -0
  13. package/es/Icon/iconfont/iconfont.woff +0 -0
  14. package/es/Icon/iconfont/iconfont.woff2 +0 -0
  15. package/es/Icon/index.css +8 -0
  16. package/es/Input/components/Group/index.d.ts +3 -1
  17. package/es/Input/components/Password/index.d.ts +1 -0
  18. package/es/Input/index.d.ts +1 -1
  19. package/es/Input/style/index.css +215 -0
  20. package/es/Input/style/index.js +1 -1
  21. package/es/Menu/Divider.d.ts +1 -0
  22. package/es/Menu/MenuItem.d.ts +7 -0
  23. package/es/Menu/index.d.ts +1 -0
  24. package/es/Menu/style/index.css +208 -0
  25. package/es/Menu/style/index.js +1 -1
  26. package/es/Navigator/style/index.css +328 -0
  27. package/es/Navigator/style/index.js +1 -1
  28. package/es/Select/Selector/index.js +1 -1
  29. package/es/Select/style/index.css +493 -0
  30. package/es/Select/style/index.js +1 -1
  31. package/es/Table/index.d.ts +1 -1
  32. package/es/Table/index.js +183 -48
  33. package/es/Table/interface.d.ts +26 -6
  34. package/es/Table/react-table-config.d.ts +122 -0
  35. package/es/Table/style/index.css +248 -0
  36. package/es/Table/style/index.js +1 -1
  37. package/es/Tabs/index.d.ts +1 -0
  38. package/es/Tabs/style/index.css +194 -0
  39. package/es/Tabs/style/index.js +1 -1
  40. package/es/Tooltip/style/index.css +154 -0
  41. package/es/Tooltip/style/index.js +1 -1
  42. package/es/index.d.ts +10 -0
  43. package/es/style/index.css +145 -0
  44. package/es/style/index.js +1 -1
  45. package/es/{Button/demo/disable/index.less → style/mixins/index.css} +0 -0
  46. package/es/style/themes/default/index.css +145 -0
  47. package/es/style/themes/default/themeColor.module.css +145 -0
  48. package/lib/Button/style/index.css +374 -0
  49. package/lib/Button/style/index.js +1 -1
  50. package/lib/Dropdown/index.d.ts +1 -0
  51. package/lib/Dropdown/style/index.css +178 -0
  52. package/lib/Dropdown/style/index.js +1 -1
  53. package/lib/Empty/style/index.css +162 -0
  54. package/lib/Empty/style/index.js +1 -1
  55. package/lib/Icon/iconfont/demo_index.html +49 -3
  56. package/lib/Icon/iconfont/iconfont.css +11 -3
  57. package/lib/Icon/iconfont/iconfont.js +5 -5
  58. package/lib/Icon/iconfont/iconfont.json +14 -0
  59. package/lib/Icon/iconfont/iconfont.ttf +0 -0
  60. package/lib/Icon/iconfont/iconfont.woff +0 -0
  61. package/lib/Icon/iconfont/iconfont.woff2 +0 -0
  62. package/lib/Icon/index.css +8 -0
  63. package/lib/Input/components/Group/index.d.ts +3 -1
  64. package/lib/Input/components/Password/index.d.ts +1 -0
  65. package/lib/Input/index.d.ts +1 -1
  66. package/lib/Input/style/index.css +215 -0
  67. package/lib/Input/style/index.js +1 -1
  68. package/lib/Menu/Divider.d.ts +1 -0
  69. package/lib/Menu/MenuItem.d.ts +7 -0
  70. package/lib/Menu/index.d.ts +1 -0
  71. package/lib/Menu/style/index.css +208 -0
  72. package/lib/Menu/style/index.js +1 -1
  73. package/lib/Navigator/style/index.css +328 -0
  74. package/lib/Navigator/style/index.js +1 -1
  75. package/lib/Select/Selector/index.js +1 -1
  76. package/lib/Select/style/index.css +493 -0
  77. package/lib/Select/style/index.js +1 -1
  78. package/lib/Table/index.d.ts +1 -1
  79. package/lib/Table/index.js +191 -54
  80. package/lib/Table/interface.d.ts +26 -6
  81. package/lib/Table/react-table-config.d.ts +122 -0
  82. package/lib/Table/style/index.css +248 -0
  83. package/lib/Table/style/index.js +1 -1
  84. package/lib/Tabs/index.d.ts +1 -0
  85. package/lib/Tabs/style/index.css +194 -0
  86. package/lib/Tabs/style/index.js +1 -1
  87. package/lib/Tooltip/style/index.css +154 -0
  88. package/lib/Tooltip/style/index.js +1 -1
  89. package/lib/index.d.ts +10 -0
  90. package/lib/style/index.css +145 -0
  91. package/lib/style/index.js +1 -1
  92. package/{es/Input/demo/allowClear/index.less → lib/style/mixins/index.css} +0 -0
  93. package/lib/style/themes/default/index.css +145 -0
  94. package/lib/style/themes/default/themeColor.module.css +145 -0
  95. package/package.json +1 -1
  96. package/es/Button/demo/Icon/index.d.ts +0 -3
  97. package/es/Button/demo/Icon/index.js +0 -67
  98. package/es/Button/demo/Icon/index.less +0 -6
  99. package/es/Button/demo/basic/index.d.ts +0 -4
  100. package/es/Button/demo/basic/index.js +0 -57
  101. package/es/Button/demo/basic/index.less +0 -6
  102. package/es/Button/demo/disable/index.d.ts +0 -3
  103. package/es/Button/demo/disable/index.js +0 -23
  104. package/es/Button/demo/href/index.d.ts +0 -2
  105. package/es/Button/demo/href/index.js +0 -17
  106. package/es/Button/demo/loading/index.d.ts +0 -3
  107. package/es/Button/demo/loading/index.js +0 -37
  108. package/es/Button/demo/loading/index.less +0 -6
  109. package/es/Button/style/index.less +0 -255
  110. package/es/Dropdown/demo/basic/index.d.ts +0 -4
  111. package/es/Dropdown/demo/basic/index.js +0 -18
  112. package/es/Dropdown/demo/button/index.d.ts +0 -3
  113. package/es/Dropdown/demo/button/index.js +0 -159
  114. package/es/Dropdown/demo/button/index.less +0 -9
  115. package/es/Dropdown/demo/placement/index.d.ts +0 -2
  116. package/es/Dropdown/demo/placement/index.js +0 -40
  117. package/es/Dropdown/demo/subMenu/index.d.ts +0 -2
  118. package/es/Dropdown/demo/subMenu/index.js +0 -42
  119. package/es/Dropdown/demo/trigger/index.d.ts +0 -2
  120. package/es/Dropdown/demo/trigger/index.js +0 -17
  121. package/es/Dropdown/style/index.less +0 -40
  122. package/es/Empty/style/index.less +0 -23
  123. package/es/Icon/index.less +0 -32
  124. package/es/Input/demo/allowClear/index.d.ts +0 -3
  125. package/es/Input/demo/allowClear/index.js +0 -11
  126. package/es/Input/demo/basic/index.d.ts +0 -4
  127. package/es/Input/demo/basic/index.js +0 -65
  128. package/es/Input/demo/basic/index.less +0 -14
  129. package/es/Input/demo/gourp/index.d.ts +0 -2
  130. package/es/Input/demo/gourp/index.js +0 -67
  131. package/es/Input/demo/password/index.d.ts +0 -3
  132. package/es/Input/demo/password/index.js +0 -21
  133. package/es/Input/demo/password/index.less +0 -0
  134. package/es/Input/demo/prefix/index.d.ts +0 -3
  135. package/es/Input/demo/prefix/index.js +0 -17
  136. package/es/Input/demo/prefix/index.less +0 -0
  137. package/es/Input/demo/showCount/index.d.ts +0 -3
  138. package/es/Input/demo/showCount/index.js +0 -17
  139. package/es/Input/demo/showCount/index.less +0 -0
  140. package/es/Input/demo/textArea/autoSize.d.ts +0 -2
  141. package/es/Input/demo/textArea/autoSize.js +0 -50
  142. package/es/Input/style/index.less +0 -65
  143. package/es/Menu/style/index.less +0 -37
  144. package/es/Navigator/demo/basic/index.d.ts +0 -4
  145. package/es/Navigator/demo/basic/index.js +0 -45
  146. package/es/Navigator/demo/basic/index.less +0 -3
  147. package/es/Navigator/demo/example/index.d.ts +0 -4
  148. package/es/Navigator/demo/example/index.js +0 -153
  149. package/es/Navigator/demo/example/index.less +0 -10
  150. package/es/Navigator/demo/logo.png +0 -0
  151. package/es/Navigator/demo/menuWithFooter/index.d.ts +0 -4
  152. package/es/Navigator/demo/menuWithFooter/index.js +0 -73
  153. package/es/Navigator/demo/menuWithFooter/index.less +0 -3
  154. package/es/Navigator/demo/subMenu/index.d.ts +0 -4
  155. package/es/Navigator/demo/subMenu/index.js +0 -71
  156. package/es/Navigator/demo/subMenu/index.less +0 -3
  157. package/es/Navigator/style/index.less +0 -224
  158. package/es/Select/demo/disabled/index.d.ts +0 -2
  159. package/es/Select/demo/disabled/index.js +0 -50
  160. package/es/Select/demo/multiple/index.d.ts +0 -2
  161. package/es/Select/demo/multiple/index.js +0 -140
  162. package/es/Select/demo/options/index.d.ts +0 -2
  163. package/es/Select/demo/options/index.js +0 -55
  164. package/es/Select/demo/single/index.d.ts +0 -3
  165. package/es/Select/demo/single/index.js +0 -89
  166. package/es/Select/demo/single/index.less +0 -5
  167. package/es/Select/style/index.less +0 -532
  168. package/es/Table/demo/basic/createData.d.ts +0 -9
  169. package/es/Table/demo/basic/createData.js +0 -18
  170. package/es/Table/demo/basic/index.d.ts +0 -2
  171. package/es/Table/demo/basic/index.js +0 -64
  172. package/es/Table/demo/editCell/index.d.ts +0 -2
  173. package/es/Table/demo/editCell/index.js +0 -39
  174. package/es/Table/demo/renderHeaderRight/index.d.ts +0 -2
  175. package/es/Table/demo/renderHeaderRight/index.js +0 -37
  176. package/es/Table/demo/rowSelect/index.d.ts +0 -2
  177. package/es/Table/demo/rowSelect/index.js +0 -40
  178. package/es/Table/demo/sort/index.d.ts +0 -2
  179. package/es/Table/demo/sort/index.js +0 -32
  180. package/es/Table/demo/virtualList/index.d.ts +0 -2
  181. package/es/Table/demo/virtualList/index.js +0 -88
  182. package/es/Table/style/index.less +0 -111
  183. package/es/Tabs/demo/adaptHeight/index.d.ts +0 -3
  184. package/es/Tabs/demo/adaptHeight/index.js +0 -19
  185. package/es/Tabs/demo/adaptHeight/index.less +0 -3
  186. package/es/Tabs/demo/basic/index.d.ts +0 -4
  187. package/es/Tabs/demo/basic/index.js +0 -44
  188. package/es/Tabs/demo/basic/index.less +0 -5
  189. package/es/Tabs/demo/horizontalScroll/index.d.ts +0 -3
  190. package/es/Tabs/demo/horizontalScroll/index.js +0 -30
  191. package/es/Tabs/demo/horizontalScroll/index.less +0 -3
  192. package/es/Tabs/style/index.less +0 -61
  193. package/es/Tooltip/demo/basic/index.d.ts +0 -2
  194. package/es/Tooltip/demo/basic/index.js +0 -7
  195. package/es/Tooltip/demo/overflow/index.d.ts +0 -2
  196. package/es/Tooltip/demo/overflow/index.js +0 -7
  197. package/es/Tooltip/demo/placement/index.d.ts +0 -6
  198. package/es/Tooltip/demo/placement/index.js +0 -70
  199. package/es/Tooltip/demo/placement/index.less +0 -7
  200. package/es/Tooltip/demo/trigger/index.d.ts +0 -3
  201. package/es/Tooltip/demo/trigger/index.js +0 -20
  202. package/es/Tooltip/demo/trigger/index.less +0 -5
  203. package/es/Tooltip/style/index.less +0 -14
  204. package/es/style/index.less +0 -3
  205. package/es/style/mixins/index.less +0 -0
  206. package/es/style/themes/default/index.less +0 -36
  207. package/es/style/themes/default/themeColor.module.less +0 -259
  208. package/lib/Button/demo/Icon/index.d.ts +0 -3
  209. package/lib/Button/demo/Icon/index.js +0 -82
  210. package/lib/Button/demo/Icon/index.less +0 -6
  211. package/lib/Button/demo/basic/index.d.ts +0 -4
  212. package/lib/Button/demo/basic/index.js +0 -73
  213. package/lib/Button/demo/basic/index.less +0 -6
  214. package/lib/Button/demo/disable/index.d.ts +0 -3
  215. package/lib/Button/demo/disable/index.js +0 -37
  216. package/lib/Button/demo/disable/index.less +0 -0
  217. package/lib/Button/demo/href/index.d.ts +0 -2
  218. package/lib/Button/demo/href/index.js +0 -30
  219. package/lib/Button/demo/loading/index.d.ts +0 -3
  220. package/lib/Button/demo/loading/index.js +0 -51
  221. package/lib/Button/demo/loading/index.less +0 -6
  222. package/lib/Button/style/index.less +0 -255
  223. package/lib/Dropdown/demo/basic/index.d.ts +0 -4
  224. package/lib/Dropdown/demo/basic/index.js +0 -35
  225. package/lib/Dropdown/demo/button/index.d.ts +0 -3
  226. package/lib/Dropdown/demo/button/index.js +0 -182
  227. package/lib/Dropdown/demo/button/index.less +0 -9
  228. package/lib/Dropdown/demo/placement/index.d.ts +0 -2
  229. package/lib/Dropdown/demo/placement/index.js +0 -56
  230. package/lib/Dropdown/demo/subMenu/index.d.ts +0 -2
  231. package/lib/Dropdown/demo/subMenu/index.js +0 -59
  232. package/lib/Dropdown/demo/trigger/index.d.ts +0 -2
  233. package/lib/Dropdown/demo/trigger/index.js +0 -32
  234. package/lib/Dropdown/style/index.less +0 -40
  235. package/lib/Empty/style/index.less +0 -23
  236. package/lib/Icon/index.less +0 -32
  237. package/lib/Input/demo/allowClear/index.d.ts +0 -3
  238. package/lib/Input/demo/allowClear/index.js +0 -25
  239. package/lib/Input/demo/allowClear/index.less +0 -0
  240. package/lib/Input/demo/basic/index.d.ts +0 -4
  241. package/lib/Input/demo/basic/index.js +0 -80
  242. package/lib/Input/demo/basic/index.less +0 -14
  243. package/lib/Input/demo/gourp/index.d.ts +0 -2
  244. package/lib/Input/demo/gourp/index.js +0 -81
  245. package/lib/Input/demo/password/index.d.ts +0 -3
  246. package/lib/Input/demo/password/index.js +0 -35
  247. package/lib/Input/demo/password/index.less +0 -0
  248. package/lib/Input/demo/prefix/index.d.ts +0 -3
  249. package/lib/Input/demo/prefix/index.js +0 -32
  250. package/lib/Input/demo/prefix/index.less +0 -0
  251. package/lib/Input/demo/showCount/index.d.ts +0 -3
  252. package/lib/Input/demo/showCount/index.js +0 -31
  253. package/lib/Input/demo/showCount/index.less +0 -0
  254. package/lib/Input/demo/textArea/autoSize.d.ts +0 -2
  255. package/lib/Input/demo/textArea/autoSize.js +0 -63
  256. package/lib/Input/style/index.less +0 -65
  257. package/lib/Menu/style/index.less +0 -37
  258. package/lib/Navigator/demo/basic/index.d.ts +0 -4
  259. package/lib/Navigator/demo/basic/index.js +0 -62
  260. package/lib/Navigator/demo/basic/index.less +0 -3
  261. package/lib/Navigator/demo/example/index.d.ts +0 -4
  262. package/lib/Navigator/demo/example/index.js +0 -179
  263. package/lib/Navigator/demo/example/index.less +0 -10
  264. package/lib/Navigator/demo/logo.png +0 -0
  265. package/lib/Navigator/demo/menuWithFooter/index.d.ts +0 -4
  266. package/lib/Navigator/demo/menuWithFooter/index.js +0 -92
  267. package/lib/Navigator/demo/menuWithFooter/index.less +0 -3
  268. package/lib/Navigator/demo/subMenu/index.d.ts +0 -4
  269. package/lib/Navigator/demo/subMenu/index.js +0 -88
  270. package/lib/Navigator/demo/subMenu/index.less +0 -3
  271. package/lib/Navigator/style/index.less +0 -224
  272. package/lib/Select/demo/disabled/index.d.ts +0 -2
  273. package/lib/Select/demo/disabled/index.js +0 -64
  274. package/lib/Select/demo/multiple/index.d.ts +0 -2
  275. package/lib/Select/demo/multiple/index.js +0 -154
  276. package/lib/Select/demo/options/index.d.ts +0 -2
  277. package/lib/Select/demo/options/index.js +0 -69
  278. package/lib/Select/demo/single/index.d.ts +0 -3
  279. package/lib/Select/demo/single/index.js +0 -103
  280. package/lib/Select/demo/single/index.less +0 -5
  281. package/lib/Select/style/index.less +0 -532
  282. package/lib/Table/demo/basic/createData.d.ts +0 -9
  283. package/lib/Table/demo/basic/createData.js +0 -23
  284. package/lib/Table/demo/basic/index.d.ts +0 -2
  285. package/lib/Table/demo/basic/index.js +0 -80
  286. package/lib/Table/demo/editCell/index.d.ts +0 -2
  287. package/lib/Table/demo/editCell/index.js +0 -54
  288. package/lib/Table/demo/renderHeaderRight/index.d.ts +0 -2
  289. package/lib/Table/demo/renderHeaderRight/index.js +0 -52
  290. package/lib/Table/demo/rowSelect/index.d.ts +0 -2
  291. package/lib/Table/demo/rowSelect/index.js +0 -55
  292. package/lib/Table/demo/sort/index.d.ts +0 -2
  293. package/lib/Table/demo/sort/index.js +0 -47
  294. package/lib/Table/demo/virtualList/index.d.ts +0 -2
  295. package/lib/Table/demo/virtualList/index.js +0 -103
  296. package/lib/Table/style/index.less +0 -111
  297. package/lib/Tabs/demo/adaptHeight/index.d.ts +0 -3
  298. package/lib/Tabs/demo/adaptHeight/index.js +0 -34
  299. package/lib/Tabs/demo/adaptHeight/index.less +0 -3
  300. package/lib/Tabs/demo/basic/index.d.ts +0 -4
  301. package/lib/Tabs/demo/basic/index.js +0 -67
  302. package/lib/Tabs/demo/basic/index.less +0 -5
  303. package/lib/Tabs/demo/horizontalScroll/index.d.ts +0 -3
  304. package/lib/Tabs/demo/horizontalScroll/index.js +0 -45
  305. package/lib/Tabs/demo/horizontalScroll/index.less +0 -3
  306. package/lib/Tabs/style/index.less +0 -61
  307. package/lib/Tooltip/demo/basic/index.d.ts +0 -2
  308. package/lib/Tooltip/demo/basic/index.js +0 -20
  309. package/lib/Tooltip/demo/overflow/index.d.ts +0 -2
  310. package/lib/Tooltip/demo/overflow/index.js +0 -20
  311. package/lib/Tooltip/demo/placement/index.d.ts +0 -6
  312. package/lib/Tooltip/demo/placement/index.js +0 -86
  313. package/lib/Tooltip/demo/placement/index.less +0 -7
  314. package/lib/Tooltip/demo/trigger/index.d.ts +0 -3
  315. package/lib/Tooltip/demo/trigger/index.js +0 -34
  316. package/lib/Tooltip/demo/trigger/index.less +0 -5
  317. package/lib/Tooltip/style/index.less +0 -14
  318. package/lib/style/index.less +0 -3
  319. package/lib/style/mixins/index.less +0 -0
  320. package/lib/style/themes/default/index.less +0 -36
  321. 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
- // @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
+ }