@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
@@ -17,7 +17,7 @@ var _reactWindow = require("react-window");
17
17
 
18
18
  var _reactWindowInfiniteLoader = _interopRequireDefault(require("react-window-infinite-loader"));
19
19
 
20
- var _classnames3 = _interopRequireDefault(require("classnames"));
20
+ var _classnames6 = _interopRequireDefault(require("classnames"));
21
21
 
22
22
  require("./style");
23
23
 
@@ -25,6 +25,8 @@ var _Icon = _interopRequireDefault(require("../Icon"));
25
25
 
26
26
  var _Empty = _interopRequireDefault(require("../Empty"));
27
27
 
28
+ var _lodash = _interopRequireDefault(require("lodash"));
29
+
28
30
  var _excluded = ["style"],
29
31
  _excluded2 = ["style"];
30
32
 
@@ -57,6 +59,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
57
59
  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; }
58
60
 
59
61
  var DEFAULT_ROW_HEIGHT = 40;
62
+ var ARRAY_FIRST_INDEX = 0;
63
+ var DEFAULT_ROW_WIDTH = 0;
60
64
 
61
65
  function Table(_ref) {
62
66
  var columns = _ref.columns,
@@ -69,40 +73,65 @@ function Table(_ref) {
69
73
  _ref$loadMore = _ref.loadMore,
70
74
  loadMore = _ref$loadMore === void 0 ? function () {} : _ref$loadMore,
71
75
  hasNextPage = _ref.hasNextPage,
72
- loading = _ref.loading;
76
+ loading = _ref.loading,
77
+ _ref$sortable = _ref.sortable,
78
+ sortable = _ref$sortable === void 0 ? false : _ref$sortable,
79
+ defaultSort = _ref.defaultSort,
80
+ _ref$resizeColumn = _ref.resizeColumn,
81
+ resizeColumn = _ref$resizeColumn === void 0 ? false : _ref$resizeColumn,
82
+ allSortDirections = _ref.sortDirections,
83
+ _ref$onChange = _ref.onChange,
84
+ onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange;
73
85
  var newColumns = (0, _react.useMemo)(function () {
74
86
  return columns.map(function (column) {
75
- // @ts-ignore
76
- if (column.Cell) {
77
- return _objectSpread(_objectSpread({}, column), {}, {
78
- // @ts-ignore
79
- Cell: function Cell(instance) {
80
- // eslint-disable-next-line
81
- return column.Cell(instance.row.original);
82
- }
83
- });
84
- }
85
-
86
- return column;
87
+ return _objectSpread(_objectSpread({}, column), {}, {
88
+ Header: column.title,
89
+ disableSortBy: !sortable || typeof column.sorter === 'boolean',
90
+ accessor: column.dataIndex,
91
+ Cell: function Cell(_ref2) {
92
+ var row = _ref2.row,
93
+ value = _ref2.value;
94
+ return typeof column.render === 'function' ? column.render(value, row.original, row.index) : value;
95
+ }
96
+ });
87
97
  });
88
- }, [columns]);
98
+ }, [columns, sortable]);
99
+
100
+ var _React$useState = _react.default.useState({
101
+ id: (defaultSort === null || defaultSort === void 0 ? void 0 : defaultSort.id) || sortable ? newColumns[ARRAY_FIRST_INDEX].dataIndex : '',
102
+ desc: (defaultSort === null || defaultSort === void 0 ? void 0 : defaultSort.desc) || false
103
+ }),
104
+ _React$useState2 = _slicedToArray(_React$useState, 2),
105
+ sortDirection = _React$useState2[0],
106
+ setSortDirection = _React$useState2[1];
89
107
 
90
108
  var _useTable = (0, _reactTable.useTable)({
91
109
  columns: newColumns,
92
- data: data
93
- }, _reactTable.useBlockLayout, _reactTable.useRowSelect),
110
+ data: data,
111
+ disableMultiSort: true,
112
+ disableSortBy: !sortable,
113
+ initialState: {
114
+ sortBy: [{
115
+ id: sortDirection.id,
116
+ desc: sortDirection.desc
117
+ }]
118
+ }
119
+ }, _reactTable.useBlockLayout, _reactTable.useSortBy, _reactTable.useRowSelect, _reactTable.useResizeColumns),
94
120
  getTableProps = _useTable.getTableProps,
95
121
  getTableBodyProps = _useTable.getTableBodyProps,
96
122
  headerGroups = _useTable.headerGroups,
97
123
  rows = _useTable.rows,
98
- prepareRow = _useTable.prepareRow;
124
+ prepareRow = _useTable.prepareRow,
125
+ setSortBy = _useTable.setSortBy;
99
126
 
100
- var _React$useState = _react.default.useState(null),
101
- _React$useState2 = _slicedToArray(_React$useState, 2),
102
- selectedRowId = _React$useState2[0],
103
- setSelectedRowId = _React$useState2[1];
127
+ var _React$useState3 = _react.default.useState(null),
128
+ _React$useState4 = _slicedToArray(_React$useState3, 2),
129
+ selectedRowId = _React$useState4[0],
130
+ setSelectedRowId = _React$useState4[1];
104
131
 
105
- var prefixCls = (0, _usePrefixCls.default)('blockTable');
132
+ var theadRowWidthRef = _react.default.useRef(DEFAULT_ROW_WIDTH);
133
+
134
+ var prefixCls = (0, _usePrefixCls.default)('block-table');
106
135
 
107
136
  function getTbodyStyle() {
108
137
  if (scrollY) {
@@ -117,8 +146,7 @@ function Table(_ref) {
117
146
  var onRowClick = (0, _react.useCallback)(function (row) {
118
147
  if (!onRowSelected) {
119
148
  return;
120
- } // @ts-ignore
121
-
149
+ }
122
150
 
123
151
  setSelectedRowId(row.id);
124
152
  onRowSelected(row.original);
@@ -130,14 +158,14 @@ function Table(_ref) {
130
158
  return !hasNextPage || index < data.length;
131
159
  };
132
160
 
133
- var RenderRow = function RenderRow(_ref2) {
134
- var index = _ref2.index,
135
- style = _ref2.style;
161
+ var RenderRow = function RenderRow(_ref3) {
162
+ var index = _ref3.index,
163
+ style = _ref3.style;
136
164
 
137
165
  if (!isItemLoaded(index)) {
138
166
  return /*#__PURE__*/_react.default.createElement("div", {
139
167
  style: style,
140
- className: (0, _classnames3.default)("".concat(prefixCls, "-loading"))
168
+ className: (0, _classnames6.default)("".concat(prefixCls, "-loading"))
141
169
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
142
170
  type: "waiting",
143
171
  size: 16
@@ -152,53 +180,162 @@ function Table(_ref) {
152
180
  rowProps = _objectWithoutProperties(_row$getRowProps, _excluded);
153
181
 
154
182
  return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, rowProps), {}, {
155
- style: _objectSpread(_objectSpread({}, style), {}, {
156
- display: rowStyle === null || rowStyle === void 0 ? void 0 : rowStyle.display
183
+ style: _objectSpread(_objectSpread(_objectSpread({}, style), rowStyle), {}, {
184
+ width: resizeColumn ? style === null || style === void 0 ? void 0 : style.width : '100%'
157
185
  }),
158
- className: (0, _classnames3.default)("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
186
+ className: (0, _classnames6.default)("".concat(prefixCls, "-row"), _defineProperty({}, "".concat(prefixCls, "-row-selected"), row.id === selectedRowId)),
159
187
  onClick: function onClick() {
160
188
  return onRowClick(row);
161
189
  }
162
190
  }), row.cells.map(function (cell) {
163
191
  return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, cell.getCellProps()), {}, {
164
- className: (0, _classnames3.default)("".concat(prefixCls, "-cell"))
192
+ className: (0, _classnames6.default)("".concat(prefixCls, "-cell"))
165
193
  }), cell.render('Cell'));
166
194
  }));
167
195
  };
168
196
 
169
197
  var renderHeader = function renderHeader(len) {
170
198
  return /*#__PURE__*/_react.default.createElement("div", {
171
- className: (0, _classnames3.default)("".concat(prefixCls, "-header"))
199
+ className: (0, _classnames6.default)("".concat(prefixCls, "-header"))
172
200
  }, renderHeaderLeft ? renderHeaderLeft() : /*#__PURE__*/_react.default.createElement("span", {
173
- className: (0, _classnames3.default)("".concat(prefixCls, "-header-left"))
174
- }, "\u5171", total || len, "\u6761"), /*#__PURE__*/_react.default.createElement("div", {
175
- className: (0, _classnames3.default)("".concat(prefixCls, "-header-right"))
201
+ className: (0, _classnames6.default)("".concat(prefixCls, "-header-left"))
202
+ }, "\u5171\u8BA1", total || len, "\u6761"), /*#__PURE__*/_react.default.createElement("div", {
203
+ className: (0, _classnames6.default)("".concat(prefixCls, "-header-right"))
176
204
  }, renderHeaderRight ? renderHeaderRight() : null));
177
205
  };
178
206
 
207
+ var getNextSortDesc = function getNextSortDesc(currentDesc) {
208
+ var sortDirections = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['ascend', 'descend'];
209
+ var sortOrder = arguments.length > 2 ? arguments[2] : undefined;
210
+ var descMap = new Map([['ascend', false], ['descend', true]]);
211
+ var directions = allSortDirections || sortDirections;
212
+
213
+ if (sortOrder === 'ascend' || sortOrder === 'descend') {
214
+ return descMap.get(sortOrder);
215
+ }
216
+
217
+ if (typeof currentDesc === 'undefined') {
218
+ return descMap.get(directions[ARRAY_FIRST_INDEX]);
219
+ }
220
+
221
+ var direction = currentDesc ? 'descend' : 'ascend';
222
+
223
+ var index = _lodash.default.findIndex(directions, function (item) {
224
+ return item === direction;
225
+ });
226
+
227
+ var nextIndex = index + 1;
228
+ return descMap.get(directions[nextIndex]);
229
+ };
230
+
231
+ var getHeaderProps = function getHeaderProps(column) {
232
+ // @ts-ignore
233
+ var id = column.id,
234
+ isSortedDesc = column.isSortedDesc,
235
+ canSort = column.canSort,
236
+ sorter = column.sorter,
237
+ sortOrder = column.sortOrder,
238
+ sortDirections = column.sortDirections;
239
+ var toggleProps = column.getSortByToggleProps();
240
+
241
+ if (canSort) {
242
+ // client sort
243
+ return _objectSpread(_objectSpread({}, column.getHeaderProps(_objectSpread({}, toggleProps))), {}, {
244
+ onClick: function onClick(e) {
245
+ e.stopPropagation();
246
+
247
+ if (typeof toggleProps.onClick === 'function') {
248
+ // toggleProps.onClick(e);
249
+ var desc = getNextSortDesc(isSortedDesc, sortDirections, sortOrder);
250
+ var sortBy = {
251
+ id: typeof desc === 'undefined' ? '' : id,
252
+ desc: desc
253
+ };
254
+ setSortBy([sortBy]);
255
+ setSortDirection(sortBy);
256
+ onChange(sortBy);
257
+ }
258
+ }
259
+ });
260
+ }
261
+
262
+ if (sorter) {
263
+ // server sort
264
+ return _objectSpread(_objectSpread({}, column.getHeaderProps({
265
+ style: {
266
+ cursor: 'pointer'
267
+ }
268
+ })), {}, {
269
+ onClick: function onClick(e) {
270
+ e.stopPropagation(); // 需要触发onChange
271
+ // debugger;
272
+
273
+ var desc = getNextSortDesc(sortDirection.desc, sortDirections, sortOrder);
274
+ var sortBy = {
275
+ id: typeof desc === 'boolean' ? id : '',
276
+ desc: desc
277
+ };
278
+ setSortDirection(sortBy);
279
+ onChange(sortBy);
280
+ }
281
+ });
282
+ }
283
+
284
+ return column.getHeaderProps();
285
+ };
286
+
287
+ var SortIcons = function SortIcons(_ref4) {
288
+ var id = _ref4.id;
289
+ var currentSortId = sortDirection.id,
290
+ desc = sortDirection.desc;
291
+
292
+ if (id !== currentSortId || !sortable) {
293
+ return null;
294
+ }
295
+
296
+ return desc ? /*#__PURE__*/_react.default.createElement(_Icon.default, {
297
+ className: "".concat(prefixCls, "-sortIcon"),
298
+ type: "sort_descending",
299
+ size: 12
300
+ }) : /*#__PURE__*/_react.default.createElement(_Icon.default, {
301
+ className: "".concat(prefixCls, "-sortIcon"),
302
+ type: "sort_ascending",
303
+ size: 12
304
+ });
305
+ };
306
+
179
307
  return /*#__PURE__*/_react.default.createElement("div", {
180
308
  className: prefixCls
181
- }, renderHeader(data.length), /*#__PURE__*/_react.default.createElement("div", _objectSpread({}, getTableProps()), /*#__PURE__*/_react.default.createElement("div", {
182
- className: (0, _classnames3.default)("".concat(prefixCls, "-thead"))
309
+ }, renderHeader(data.length), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
310
+ className: (0, _classnames6.default)(_defineProperty({}, "".concat(prefixCls, "-column-resizable"), resizeColumn))
311
+ }), /*#__PURE__*/_react.default.createElement("div", {
312
+ className: "".concat(prefixCls, "-thead")
183
313
  }, headerGroups.map(function (headerGroup) {
184
314
  var _headerGroup$getHeade = headerGroup.getHeaderGroupProps(),
185
315
  style = _headerGroup$getHeade.style,
186
316
  headerGroupProps = _objectWithoutProperties(_headerGroup$getHeade, _excluded2);
187
317
 
318
+ theadRowWidthRef.current = (style === null || style === void 0 ? void 0 : style.width) || DEFAULT_ROW_WIDTH;
188
319
  return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, headerGroupProps), {}, {
189
- style: {
190
- display: style === null || style === void 0 ? void 0 : style.display
191
- },
192
- className: (0, _classnames3.default)("".concat(prefixCls, "-row"))
320
+ style: _objectSpread(_objectSpread({}, style), {}, {
321
+ width: resizeColumn ? style === null || style === void 0 ? void 0 : style.width : '100%'
322
+ }),
323
+ className: "".concat(prefixCls, "-row")
193
324
  }), headerGroup.headers.map(function (column) {
194
- return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, column.getHeaderProps()), {}, {
195
- className: (0, _classnames3.default)("".concat(prefixCls, "-cell"))
196
- }), /*#__PURE__*/_react.default.createElement("div", {
197
- className: (0, _classnames3.default)("".concat(prefixCls, "-dragBar"))
198
- }), column.render('Header'));
325
+ var barPorps = resizeColumn ? column.getResizerProps() : {};
326
+ return /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({
327
+ // {...column.getHeaderProps(column.getSortByToggleProps())}
328
+ className: (0, _classnames6.default)(_defineProperty({}, "".concat(prefixCls, "-cell-sorting"), column.id === sortDirection.id), "".concat(prefixCls, "-cell"))
329
+ }, getHeaderProps(column)), {}, {
330
+ key: column.id
331
+ }), column.render('Header'), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, barPorps), {}, {
332
+ className: (0, _classnames6.default)(_defineProperty({}, "".concat(prefixCls, "-dragBar"), resizeColumn), "".concat(prefixCls, "-bar"))
333
+ })), /*#__PURE__*/_react.default.createElement(SortIcons, {
334
+ id: column.id
335
+ }));
199
336
  }));
200
337
  })), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, getTableBodyProps()), {}, {
201
- className: (0, _classnames3.default)("".concat(prefixCls, "-tbody"), _defineProperty({}, "".concat(prefixCls, "-tbody-scroll"), !loadMoreItems)),
338
+ className: (0, _classnames6.default)("".concat(prefixCls, "-tbody"), _defineProperty({}, "".concat(prefixCls, "-tbody-scroll"), !loadMoreItems)),
202
339
  style: getTbodyStyle()
203
340
  }), !loading && !rows.length && /*#__PURE__*/_react.default.createElement(_Empty.default, {
204
341
  description: "\u5F53\u524D\u65E0\u6570\u636E"
@@ -206,17 +343,17 @@ function Table(_ref) {
206
343
  isItemLoaded: isItemLoaded,
207
344
  itemCount: itemCount,
208
345
  loadMoreItems: loadMoreItems
209
- }, function (_ref3) {
210
- var onItemsRendered = _ref3.onItemsRendered,
211
- ref = _ref3.ref;
346
+ }, function (_ref5) {
347
+ var onItemsRendered = _ref5.onItemsRendered,
348
+ ref = _ref5.ref;
212
349
  return /*#__PURE__*/_react.default.createElement(_reactWindow.FixedSizeList, {
213
350
  itemCount: itemCount,
214
351
  onItemsRendered: onItemsRendered,
215
352
  height: scrollY || data.length * DEFAULT_ROW_HEIGHT,
216
353
  itemSize: DEFAULT_ROW_HEIGHT,
217
- width: "100%",
354
+ width: resizeColumn ? theadRowWidthRef.current : '100%',
218
355
  ref: ref,
219
- className: (0, _classnames3.default)("".concat(prefixCls, "-list"))
356
+ className: "".concat(prefixCls, "-list")
220
357
  }, RenderRow);
221
358
  }))));
222
359
  }
@@ -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/lib/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';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aloudata/aloudata-design",
3
- "version": "0.2.0-beta.1",
3
+ "version": "0.2.0-beta.4",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "docs:build": "dumi build",
@@ -1,3 +0,0 @@
1
- import './index.less';
2
- declare const _default: () => JSX.Element;
3
- export default _default;