@aloudata/aloudata-design 0.2.0-beta.16 → 0.2.0-beta.19

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 (35) hide show
  1. package/es/Button/style/index.less +1 -1
  2. package/es/Input/components/Input/index.d.ts +10 -5
  3. package/es/Input/style/index.less +31 -2
  4. package/es/Navigator/components/Menu/index.js +2 -2
  5. package/es/Select/BaseSelect.js +0 -2
  6. package/es/Select/OptionsList/OptionItem/RenderLabelIcon.d.ts +1 -0
  7. package/es/Select/OptionsList/OptionItem/RenderLabelIcon.js +1 -0
  8. package/es/Select/OptionsList/index.js +12 -19
  9. package/es/Select/Selector/index.js +7 -5
  10. package/es/Select/interface.d.ts +3 -0
  11. package/es/Select/style/index.less +39 -7
  12. package/es/Table/index.d.ts +1 -1
  13. package/es/Table/index.js +78 -40
  14. package/es/Table/interface.d.ts +3 -1
  15. package/es/Table/style/index.less +3 -5
  16. package/es/Tabs/index.js +2 -1
  17. package/es/Tabs/style/index.less +8 -1
  18. package/lib/Button/style/index.less +1 -1
  19. package/lib/Input/components/Input/index.d.ts +10 -5
  20. package/lib/Input/style/index.less +31 -2
  21. package/lib/Navigator/components/Menu/index.js +2 -2
  22. package/lib/Select/BaseSelect.js +0 -2
  23. package/lib/Select/OptionsList/OptionItem/RenderLabelIcon.d.ts +1 -0
  24. package/lib/Select/OptionsList/OptionItem/RenderLabelIcon.js +2 -0
  25. package/lib/Select/OptionsList/index.js +11 -19
  26. package/lib/Select/Selector/index.js +7 -5
  27. package/lib/Select/interface.d.ts +3 -0
  28. package/lib/Select/style/index.less +39 -7
  29. package/lib/Table/index.d.ts +1 -1
  30. package/lib/Table/index.js +78 -40
  31. package/lib/Table/interface.d.ts +3 -1
  32. package/lib/Table/style/index.less +3 -5
  33. package/lib/Tabs/index.js +2 -1
  34. package/lib/Tabs/style/index.less +8 -1
  35. package/package.json +2 -1
@@ -21,6 +21,8 @@ var _reactInfiniteScrollComponent = _interopRequireDefault(require("react-infini
21
21
 
22
22
  var _Empty = _interopRequireDefault(require("../Empty"));
23
23
 
24
+ var _rcResizeObserver = _interopRequireDefault(require("rc-resize-observer"));
25
+
24
26
  var _reactTable = require("react-table");
25
27
 
26
28
  var _excluded = ["style"],
@@ -79,7 +81,10 @@ function Table(_ref, ref) {
79
81
  _ref$onChange = _ref.onChange,
80
82
  onChange = _ref$onChange === void 0 ? function () {} : _ref$onChange,
81
83
  _ref$innerScroll = _ref.innerScroll,
82
- innerScroll = _ref$innerScroll === void 0 ? false : _ref$innerScroll;
84
+ innerScroll = _ref$innerScroll === void 0 ? false : _ref$innerScroll,
85
+ _ref$scrollThreshold = _ref.scrollThreshold,
86
+ scrollThreshold = _ref$scrollThreshold === void 0 ? '150px' : _ref$scrollThreshold,
87
+ rowKey = _ref.rowKey;
83
88
 
84
89
  var _React$useState = _react.default.useState(null),
85
90
  _React$useState2 = _slicedToArray(_React$useState, 2),
@@ -95,11 +100,18 @@ function Table(_ref, ref) {
95
100
  setTableClientWidth = _useState2[1];
96
101
 
97
102
  var RANDOM_ID = "INNER_SCROLL_ID_".concat(Math.random());
103
+
104
+ var _useState3 = (0, _react.useState)(DEFAULT_ROW_WIDTH),
105
+ _useState4 = _slicedToArray(_useState3, 2),
106
+ width = _useState4[0],
107
+ setWidth = _useState4[1]; // 如果页面整体宽度变化则重新计算
108
+
109
+
98
110
  (0, _react.useEffect)(function () {
99
111
  if (tableRef.current) {
100
112
  setTableClientWidth(tableRef.current.clientWidth);
101
113
  }
102
- }, []);
114
+ }, [width]);
103
115
  var initialColumnsWidthMap = (0, _react.useMemo)(function () {
104
116
  var map = new Map();
105
117
 
@@ -147,7 +159,12 @@ function Table(_ref, ref) {
147
159
  }
148
160
  });
149
161
  });
150
- }, [columns, sortable, initialColumnsWidthMap]);
162
+ }, [columns, sortable, initialColumnsWidthMap]); // 默认排序的对象
163
+
164
+ var defaultSortObject = {
165
+ id: newColumns[ARRAY_FIRST_INDEX].accessor,
166
+ desc: newColumns[ARRAY_FIRST_INDEX].sortOrder && newColumns[ARRAY_FIRST_INDEX].sortOrder === 'descend' ? true : false
167
+ }; // 如果支持排序 但是没有默认排序 则默认按第一列倒叙排序
151
168
 
152
169
  var getInitialSortDirection = function getInitialSortDirection() {
153
170
  if (defaultSort && defaultSort.id) {
@@ -155,10 +172,7 @@ function Table(_ref, ref) {
155
172
  }
156
173
 
157
174
  if (sortable) {
158
- return {
159
- id: newColumns[ARRAY_FIRST_INDEX].accessor,
160
- desc: false
161
- };
175
+ return defaultSortObject;
162
176
  }
163
177
 
164
178
  return {
@@ -193,6 +207,9 @@ function Table(_ref, ref) {
193
207
  data: data,
194
208
  disableMultiSort: true,
195
209
  disableSortBy: !sortable,
210
+ getRowId: typeof rowKey === 'string' ? function () {
211
+ return rowKey;
212
+ } : rowKey,
196
213
  initialState: {
197
214
  sortBy: getInitSortBy()
198
215
  }
@@ -225,41 +242,65 @@ function Table(_ref, ref) {
225
242
  }, "\u5171\u8BA1", total || len, "\u6761"), /*#__PURE__*/_react.default.createElement("div", {
226
243
  className: (0, _classnames7.default)("".concat(prefixCls, "-header-right"))
227
244
  }, renderHeaderRight ? renderHeaderRight() : null));
228
- };
245
+ }; // 排序的方向 倒叙{ id: 'xx', desc: true }、正序{ id: 'xx', desc: false }、无序 { id: '', desc: undefined }
246
+ // 获取排序方向以及排序的id
247
+
229
248
 
230
- var getNextSortDesc = function getNextSortDesc(currentDesc) {
249
+ var getSortBy = function getSortBy(id) {
231
250
  var sortDirections = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['ascend', 'descend'];
232
- var sortOrder = arguments.length > 2 ? arguments[2] : undefined;
251
+ var // 如果传了sortDirections,则使用传入的,否则使用默认的
252
+ sortOrder = arguments.length > 2 ? arguments[2] : undefined;
253
+ var res = {
254
+ id: id,
255
+ desc: undefined // 给个默认的排序
256
+
257
+ };
258
+ var isSameCol = sortDirection.id === id;
233
259
  var descMap = new Map([['ascend', false], ['descend', true]]);
234
- var directions = allSortDirections || sortDirections;
260
+ var directions = allSortDirections || sortDirections; // 如果不是同一列 则返回默认排序 或者排序顺序的第一个
261
+
262
+ if (!isSameCol) {
263
+ if (sortOrder === 'ascend' || sortOrder === 'descend') {
264
+ res.desc = descMap.get(sortOrder);
265
+ } else {
266
+ res.desc = sortOrder ? sortOrder : descMap.get(directions[ARRAY_FIRST_INDEX]);
267
+ }
268
+
269
+ return res;
270
+ } // 如果是同一列
271
+ // 如果列给了默认的sortOrder则不在变化
272
+
235
273
 
236
274
  if (sortOrder === 'ascend' || sortOrder === 'descend') {
237
- return descMap.get(sortOrder);
238
- }
275
+ res.desc = descMap.get(sortOrder);
276
+ return res;
277
+ } // 在所有方向上 往后取一个
239
278
 
240
- if (typeof currentDesc === 'undefined') {
241
- return descMap.get(directions[ARRAY_FIRST_INDEX]);
242
- }
243
279
 
244
- var direction = currentDesc ? 'descend' : 'ascend';
280
+ var lastSortDirection = sortDirection.desc ? 'descend' : 'ascend';
245
281
 
246
282
  var index = _lodash.default.findIndex(directions, function (item) {
247
- return item === direction;
283
+ return item === lastSortDirection;
248
284
  });
249
285
 
250
286
  var nextIndex = index + 1;
251
- return descMap.get(directions[nextIndex]);
287
+ res.desc = descMap.get(directions[nextIndex]); // 如果没有排序方向,则返回默认排序对象
288
+
289
+ if (res.desc === undefined) {
290
+ res.id = '';
291
+ }
292
+
293
+ return res;
252
294
  };
253
295
 
254
296
  var getHeaderProps = function getHeaderProps(column) {
255
297
  // @ts-ignore
256
298
  var id = column.id,
257
- isSortedDesc = column.isSortedDesc,
258
299
  canSort = column.canSort,
259
300
  sorter = column.sorter,
260
301
  sortOrder = column.sortOrder,
261
302
  sortDirections = column.sortDirections;
262
- var toggleProps = column.getSortByToggleProps();
303
+ var toggleProps = column.getSortByToggleProps(); // 仅在Table设置sortable时,所有列的canSort为true,此时为前端排序
263
304
 
264
305
  if (canSort) {
265
306
  // client sort
@@ -268,19 +309,16 @@ function Table(_ref, ref) {
268
309
  e.stopPropagation();
269
310
 
270
311
  if (typeof toggleProps.onClick === 'function') {
271
- // toggleProps.onClick(e);
272
- var desc = getNextSortDesc(isSortedDesc, sortDirections, sortOrder);
273
- var sortBy = {
274
- id: typeof desc === 'undefined' ? '' : id,
275
- desc: desc
276
- };
277
- setSortBy(typeof desc === 'undefined' ? [] : [sortBy]);
312
+ var sortBy = getSortBy(id, sortDirections, sortOrder);
313
+ setSortBy(sortBy.desc === undefined ? [defaultSortObject] : [sortBy]); // 客户端排序时 需要重新设置排序
314
+
278
315
  setSortDirection(sortBy);
279
316
  onChange(sortBy);
280
317
  }
281
318
  }
282
319
  });
283
- }
320
+ } // 当列设置sorter属性时,则为服务端排序
321
+
284
322
 
285
323
  if (sorter) {
286
324
  // server sort
@@ -290,14 +328,8 @@ function Table(_ref, ref) {
290
328
  }
291
329
  })), {}, {
292
330
  onClick: function onClick(e) {
293
- e.stopPropagation(); // 需要触发onChange
294
- // debugger;
295
-
296
- var desc = getNextSortDesc(sortDirection.desc, sortDirections, sortOrder);
297
- var sortBy = {
298
- id: typeof desc === 'boolean' ? id : '',
299
- desc: desc
300
- };
331
+ e.stopPropagation();
332
+ var sortBy = getSortBy(id, sortDirections, sortOrder);
301
333
  setSortDirection(sortBy);
302
334
  onChange(sortBy);
303
335
  }
@@ -394,11 +426,17 @@ function Table(_ref, ref) {
394
426
  next: loadMore,
395
427
  hasMore: !!hasNextPage,
396
428
  loader: LoadingNode,
397
- scrollableTarget: RANDOM_ID
429
+ scrollableTarget: RANDOM_ID,
430
+ scrollThreshold: scrollThreshold
398
431
  }, renderRowList()) : renderRowList());
399
432
  };
400
433
 
401
- return /*#__PURE__*/_react.default.createElement("div", {
434
+ return /*#__PURE__*/_react.default.createElement(_rcResizeObserver.default, {
435
+ onResize: function onResize(_ref4) {
436
+ var domWidth = _ref4.width;
437
+ setWidth(domWidth);
438
+ }
439
+ }, /*#__PURE__*/_react.default.createElement("div", {
402
440
  className: prefixCls,
403
441
  ref: tableRef
404
442
  }, showHeader && renderHeader(data.length), /*#__PURE__*/_react.default.createElement("div", _objectSpread(_objectSpread({}, getTableProps()), {}, {
@@ -439,7 +477,7 @@ function Table(_ref, ref) {
439
477
  style: {
440
478
  width: totalColumnsWidth
441
479
  }
442
- }), renderTableBody())));
480
+ }), renderTableBody()))));
443
481
  }
444
482
 
445
483
  var _default = /*#__PURE__*/_react.default.forwardRef(Table);
@@ -8,7 +8,7 @@ export interface ISort<T> {
8
8
  export interface IColumn<T extends object> {
9
9
  title: string | null;
10
10
  dataIndex: string;
11
- render?: (value: any, row: Record<string, T>, index: number) => React.ReactNode;
11
+ render?: (value: any, row: any, index: number) => React.ReactNode;
12
12
  width?: number;
13
13
  minWidth?: number;
14
14
  sorter?: boolean | 'string' | 'number' | 'basic' | 'datetime' | 'alphanumeric' | ((rowA: Row<T>, rowB: Row<T>, columnId: IdType<T>, desc?: boolean) => number);
@@ -34,4 +34,6 @@ export interface ITableProps<T extends object> {
34
34
  showHeader?: boolean;
35
35
  innerScroll?: boolean;
36
36
  ref?: React.RefObject<unknown>;
37
+ scrollThreshold?: string | number;
38
+ rowKey?: string | ((row: T) => string);
37
39
  }
@@ -26,14 +26,13 @@
26
26
  &-cell {
27
27
  flex-grow: 1;
28
28
  height: unset;
29
- min-height: @table-row-height;
30
29
  color: @NL0;
31
- line-height: @table-row-height;
30
+ line-height: 16px;
32
31
  text-align: left;
33
32
  border-bottom: 1px solid @NL95;
34
33
  word-break: break-all;
35
- display: flex;
36
- padding: 0 12px;
34
+ display: flex !important; // 目前都让表格先居左、居中处理,所以这里需要强制设置为flex
35
+ padding: 11.5px 12px;
37
36
  align-items: center;
38
37
 
39
38
  &-content {
@@ -126,7 +125,6 @@
126
125
  align-items: center;
127
126
  justify-content: space-between;
128
127
  margin-bottom: 24px;
129
- padding: 0 10px;
130
128
 
131
129
  &-left {
132
130
  color: @NL0;
package/lib/Tabs/index.js CHANGED
@@ -50,7 +50,8 @@ function Tabs(props) {
50
50
  }),
51
51
  tabBarGutter: 24,
52
52
  className: (0, _classnames.default)('ald-tabs', className, {
53
- 'ald-adapt-height': adaptHeight
53
+ 'ald-adapt-height': adaptHeight,
54
+ 'ald-tabs-default': size !== 'large'
54
55
  })
55
56
  }, tabsProps));
56
57
  }
@@ -1,6 +1,6 @@
1
1
  @import '../../style/index.less';
2
2
 
3
- .ald-tabs {
3
+ .ant-tabs.ald-tabs {
4
4
  &.ant-tabs {
5
5
  color: @NL30;
6
6
  }
@@ -30,6 +30,13 @@
30
30
  }
31
31
  }
32
32
 
33
+ &.ald-tabs-default {
34
+ .ant-tabs-tab {
35
+ font-size: 14px;
36
+ line-height: 20px;
37
+ }
38
+ }
39
+
33
40
  .ant-tabs-nav-more {
34
41
  margin: 0 !important;
35
42
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aloudata/aloudata-design",
3
- "version": "0.2.0-beta.16",
3
+ "version": "0.2.0-beta.19",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "docs:build": "dumi build",
@@ -55,6 +55,7 @@
55
55
  "lodash": "^4.17.21",
56
56
  "rc-menu": "^9.3.2",
57
57
  "rc-overflow": "^1.2.3",
58
+ "rc-resize-observer": "^1.2.0",
58
59
  "rc-trigger": "^5.2.10",
59
60
  "rc-virtual-list": "^3.4.2",
60
61
  "react-infinite-scroll-component": "^6.1.0",