@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.
- package/es/Button/style/index.less +1 -1
- package/es/Input/components/Input/index.d.ts +10 -5
- package/es/Input/style/index.less +31 -2
- package/es/Navigator/components/Menu/index.js +2 -2
- package/es/Select/BaseSelect.js +0 -2
- package/es/Select/OptionsList/OptionItem/RenderLabelIcon.d.ts +1 -0
- package/es/Select/OptionsList/OptionItem/RenderLabelIcon.js +1 -0
- package/es/Select/OptionsList/index.js +12 -19
- package/es/Select/Selector/index.js +7 -5
- package/es/Select/interface.d.ts +3 -0
- package/es/Select/style/index.less +39 -7
- package/es/Table/index.d.ts +1 -1
- package/es/Table/index.js +78 -40
- package/es/Table/interface.d.ts +3 -1
- package/es/Table/style/index.less +3 -5
- package/es/Tabs/index.js +2 -1
- package/es/Tabs/style/index.less +8 -1
- package/lib/Button/style/index.less +1 -1
- package/lib/Input/components/Input/index.d.ts +10 -5
- package/lib/Input/style/index.less +31 -2
- package/lib/Navigator/components/Menu/index.js +2 -2
- package/lib/Select/BaseSelect.js +0 -2
- package/lib/Select/OptionsList/OptionItem/RenderLabelIcon.d.ts +1 -0
- package/lib/Select/OptionsList/OptionItem/RenderLabelIcon.js +2 -0
- package/lib/Select/OptionsList/index.js +11 -19
- package/lib/Select/Selector/index.js +7 -5
- package/lib/Select/interface.d.ts +3 -0
- package/lib/Select/style/index.less +39 -7
- package/lib/Table/index.d.ts +1 -1
- package/lib/Table/index.js +78 -40
- package/lib/Table/interface.d.ts +3 -1
- package/lib/Table/style/index.less +3 -5
- package/lib/Tabs/index.js +2 -1
- package/lib/Tabs/style/index.less +8 -1
- package/package.json +2 -1
package/lib/Table/index.js
CHANGED
|
@@ -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
|
|
249
|
+
var getSortBy = function getSortBy(id) {
|
|
231
250
|
var sortDirections = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['ascend', 'descend'];
|
|
232
|
-
var
|
|
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
|
-
|
|
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
|
|
280
|
+
var lastSortDirection = sortDirection.desc ? 'descend' : 'ascend';
|
|
245
281
|
|
|
246
282
|
var index = _lodash.default.findIndex(directions, function (item) {
|
|
247
|
-
return item ===
|
|
283
|
+
return item === lastSortDirection;
|
|
248
284
|
});
|
|
249
285
|
|
|
250
286
|
var nextIndex = index + 1;
|
|
251
|
-
|
|
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
|
-
|
|
272
|
-
|
|
273
|
-
|
|
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();
|
|
294
|
-
|
|
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(
|
|
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);
|
package/lib/Table/interface.d.ts
CHANGED
|
@@ -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:
|
|
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:
|
|
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:
|
|
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
|
@@ -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.
|
|
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",
|