@aloudata/aloudata-design 2.15.9 → 2.15.11
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/dist/AldSelect/BaseSelect.js +2 -0
- package/dist/AldSelect/components/Suffix.d.ts +2 -1
- package/dist/AldSelect/components/Suffix.js +3 -2
- package/dist/AldSelect/index.js +7 -2
- package/dist/AldSelect/style/color.less +3 -1
- package/dist/AldSelect/style/index.less +0 -1
- package/dist/Checkbox/style/index.less +1 -4
- package/dist/ColorPicker/ComplexColorPicker/index.js +1 -1
- package/dist/ColorPicker/style/complex.less +43 -41
- package/dist/Input/style/status.less +2 -5
- package/dist/InputNumber/style/index.less +2 -2
- package/dist/InputSearch/index.d.ts +1 -0
- package/dist/InputSearch/index.js +36 -8
- package/dist/Table/hooks/useFixed.d.ts +1 -0
- package/dist/Table/hooks/useFixed.js +2 -1
- package/dist/Table/index.js +189 -38
- package/dist/Table/style/index.less +7 -0
- package/dist/ald.min.css +1 -1
- package/package.json +1 -1
package/dist/Table/index.js
CHANGED
|
@@ -27,7 +27,7 @@ import useScroll from "./hooks/useScroll";
|
|
|
27
27
|
var HEADER_HEIGHT = 41;
|
|
28
28
|
var FOOTER_HEIGHT = 52;
|
|
29
29
|
function Table(props, ref) {
|
|
30
|
-
var
|
|
30
|
+
var _classnames2, _classnames5, _classnames7;
|
|
31
31
|
var data = props.data,
|
|
32
32
|
bordered = props.bordered,
|
|
33
33
|
rowKey = props.rowKey,
|
|
@@ -129,35 +129,121 @@ function Table(props, ref) {
|
|
|
129
129
|
// 总列宽改变时,重新计算是否需要显示固定列的阴影
|
|
130
130
|
changeIsPing();
|
|
131
131
|
}, [changeIsPing, totalColumnsWidth]);
|
|
132
|
+
var renderHeaderCell = useCallback(function (header, index) {
|
|
133
|
+
// 选择行的列不能拖动宽度
|
|
134
|
+
var showResizer = columnSizing && !(!!rowSelectionInfo.isRowSelectionEnabled && index === 0);
|
|
135
|
+
var _getColumnFixedInfo = getColumnFixedInfo(index, true),
|
|
136
|
+
fixedClassName = _getColumnFixedInfo.className,
|
|
137
|
+
fixedStyle = _getColumnFixedInfo.style;
|
|
138
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
139
|
+
className: classnames(prefixCls('th'), fixedClassName),
|
|
140
|
+
style: _objectSpread({
|
|
141
|
+
width: header.getSize()
|
|
142
|
+
}, fixedStyle),
|
|
143
|
+
key: header.id
|
|
144
|
+
}, flexRender(header.column.columnDef.header, header.getContext()), showResizer && /*#__PURE__*/React.createElement("div", {
|
|
145
|
+
onMouseDown: header.getResizeHandler(),
|
|
146
|
+
onTouchStart: header.getResizeHandler(),
|
|
147
|
+
className: classnames(prefixCls('resizer'), _defineProperty({}, prefixCls('self-resizing'), header.column.getIsResizing()))
|
|
148
|
+
}));
|
|
149
|
+
}, [columnSizing, rowSelectionInfo, getColumnFixedInfo]);
|
|
150
|
+
var visibleColumns = tableInstance.getVisibleLeafColumns();
|
|
151
|
+
var columnVirtualizer = useVirtualizer({
|
|
152
|
+
count: tableColumns.length,
|
|
153
|
+
estimateSize: function estimateSize(index) {
|
|
154
|
+
return visibleColumns[index].getSize();
|
|
155
|
+
},
|
|
156
|
+
getScrollElement: function getScrollElement() {
|
|
157
|
+
return bodyRef.current;
|
|
158
|
+
},
|
|
159
|
+
horizontal: true,
|
|
160
|
+
overscan: 5
|
|
161
|
+
});
|
|
162
|
+
var virtualColumns = columnVirtualizer.getVirtualItems();
|
|
163
|
+
|
|
164
|
+
//different virtualization strategy for columns - instead of absolute and translateY, we add empty columns to the left and right
|
|
165
|
+
var virtualPaddingLeft;
|
|
166
|
+
var virtualPaddingRight;
|
|
167
|
+
if (columnVirtualizer && virtualColumns !== null && virtualColumns !== void 0 && virtualColumns.length) {
|
|
168
|
+
var _virtualColumns$0$sta, _virtualColumns$, _virtualColumns$end, _virtualColumns;
|
|
169
|
+
virtualPaddingLeft = (_virtualColumns$0$sta = (_virtualColumns$ = virtualColumns[0]) === null || _virtualColumns$ === void 0 ? void 0 : _virtualColumns$.start) !== null && _virtualColumns$0$sta !== void 0 ? _virtualColumns$0$sta : 0;
|
|
170
|
+
virtualPaddingRight = columnVirtualizer.getTotalSize() - ((_virtualColumns$end = (_virtualColumns = virtualColumns[virtualColumns.length - 1]) === null || _virtualColumns === void 0 ? void 0 : _virtualColumns.end) !== null && _virtualColumns$end !== void 0 ? _virtualColumns$end : 0);
|
|
171
|
+
}
|
|
132
172
|
var headerContent = /*#__PURE__*/React.createElement("div", {
|
|
133
|
-
className: classnames(prefixCls('header'), (
|
|
173
|
+
className: classnames(prefixCls('header'), (_classnames2 = {}, _defineProperty(_classnames2, prefixCls('overflow-x'), true), _defineProperty(_classnames2, prefixCls('sticky'), isStickyWork), _defineProperty(_classnames2, prefixCls('resizing'), tableInstance.getState().columnSizingInfo.isResizingColumn), _classnames2)),
|
|
134
174
|
ref: headerRef,
|
|
135
175
|
style: headerStyle
|
|
136
176
|
}, _.map(headerGroups, function (headerGroup) {
|
|
177
|
+
var allHeaderCells = headerGroup.headers;
|
|
178
|
+
var virtualColumns = columnVirtualizer.getVirtualItems();
|
|
179
|
+
var middleVirtualColumns = [];
|
|
180
|
+
// 将固定列单独拎出来,固定列不受列虚拟化影响,必须要渲染
|
|
181
|
+
var leftFixedColumns = [];
|
|
182
|
+
var rightFixedColumns = [];
|
|
183
|
+
var content = null;
|
|
184
|
+
if (virtual) {
|
|
185
|
+
_.forEach(allHeaderCells, function (header, index) {
|
|
186
|
+
var fixedInfo = getColumnFixedInfo(index);
|
|
187
|
+
if (fixedInfo.fixed === 'left') {
|
|
188
|
+
leftFixedColumns.push({
|
|
189
|
+
header: header,
|
|
190
|
+
index: index
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
if (fixedInfo.fixed === 'right') {
|
|
194
|
+
rightFixedColumns.push({
|
|
195
|
+
header: header,
|
|
196
|
+
index: index
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
_.forEach(virtualColumns, function (virtualColumn) {
|
|
201
|
+
var colIndex = virtualColumn.index;
|
|
202
|
+
var fixedInfo = getColumnFixedInfo(colIndex);
|
|
203
|
+
if (fixedInfo.fixed !== 'left' && fixedInfo.fixed !== 'right') {
|
|
204
|
+
middleVirtualColumns.push(virtualColumn);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
content = /*#__PURE__*/React.createElement(React.Fragment, null, virtualPaddingLeft ?
|
|
208
|
+
/*#__PURE__*/
|
|
209
|
+
//fake empty column to the left for virtualization scroll padding
|
|
210
|
+
React.createElement("div", {
|
|
211
|
+
className: prefixCls('virtual-padding-left'),
|
|
212
|
+
style: {
|
|
213
|
+
width: virtualPaddingLeft
|
|
214
|
+
}
|
|
215
|
+
}) : null, leftFixedColumns.map(function (_ref) {
|
|
216
|
+
var header = _ref.header,
|
|
217
|
+
index = _ref.index;
|
|
218
|
+
return renderHeaderCell(header, index);
|
|
219
|
+
}), _.map(middleVirtualColumns, function (virtualColumn) {
|
|
220
|
+
var header = allHeaderCells[virtualColumn.index];
|
|
221
|
+
return renderHeaderCell(header, virtualColumn.index);
|
|
222
|
+
}), rightFixedColumns.map(function (_ref2) {
|
|
223
|
+
var header = _ref2.header,
|
|
224
|
+
index = _ref2.index;
|
|
225
|
+
return renderHeaderCell(header, index);
|
|
226
|
+
}), virtualPaddingRight ?
|
|
227
|
+
/*#__PURE__*/
|
|
228
|
+
//fake empty column to the right for virtualization scroll padding
|
|
229
|
+
React.createElement("div", {
|
|
230
|
+
className: prefixCls('virtual-padding-right'),
|
|
231
|
+
style: {
|
|
232
|
+
width: virtualPaddingRight
|
|
233
|
+
}
|
|
234
|
+
}) : null);
|
|
235
|
+
} else {
|
|
236
|
+
content = _.map(allHeaderCells, function (header, index) {
|
|
237
|
+
return renderHeaderCell(header, index);
|
|
238
|
+
});
|
|
239
|
+
}
|
|
137
240
|
return /*#__PURE__*/React.createElement("div", {
|
|
138
241
|
className: prefixCls('tr'),
|
|
139
242
|
key: headerGroup.id,
|
|
140
243
|
style: {
|
|
141
244
|
width: totalColumnsWidth
|
|
142
245
|
}
|
|
143
|
-
},
|
|
144
|
-
// 选择行的列不能拖动宽度
|
|
145
|
-
var showResizer = columnSizing && !(!!rowSelectionInfo.isRowSelectionEnabled && index === 0);
|
|
146
|
-
var _getColumnFixedInfo = getColumnFixedInfo(index, true),
|
|
147
|
-
fixedClassName = _getColumnFixedInfo.className,
|
|
148
|
-
fixedStyle = _getColumnFixedInfo.style;
|
|
149
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
150
|
-
className: classnames(prefixCls('th'), fixedClassName),
|
|
151
|
-
style: _objectSpread({
|
|
152
|
-
width: header.getSize()
|
|
153
|
-
}, fixedStyle),
|
|
154
|
-
key: header.id
|
|
155
|
-
}, flexRender(header.column.columnDef.header, header.getContext()), showResizer && /*#__PURE__*/React.createElement("div", {
|
|
156
|
-
onMouseDown: header.getResizeHandler(),
|
|
157
|
-
onTouchStart: header.getResizeHandler(),
|
|
158
|
-
className: classnames(prefixCls('resizer'), _defineProperty({}, prefixCls('self-resizing'), header.column.getIsResizing()))
|
|
159
|
-
}));
|
|
160
|
-
}), y !== undefined && /*#__PURE__*/React.createElement("div", {
|
|
246
|
+
}, content, y !== undefined && /*#__PURE__*/React.createElement("div", {
|
|
161
247
|
className: prefixCls('header-scroll-placeholder'),
|
|
162
248
|
style: {
|
|
163
249
|
flexBasis: scrollbarWidth
|
|
@@ -201,6 +287,24 @@ function Table(props, ref) {
|
|
|
201
287
|
overscan: 5
|
|
202
288
|
});
|
|
203
289
|
var tableRows = virtual ? rowVirtualizer.getVirtualItems() : rows;
|
|
290
|
+
var renderBodyCell = useCallback(function (row, cell, colIndex) {
|
|
291
|
+
var _getColumnFixedInfo2 = getColumnFixedInfo(colIndex),
|
|
292
|
+
fixedClassName = _getColumnFixedInfo2.className,
|
|
293
|
+
fixedStyle = _getColumnFixedInfo2.style;
|
|
294
|
+
var tdContent = flexRender(cell.column.columnDef.cell, cell.getContext());
|
|
295
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
296
|
+
className: classnames(prefixCls('td'), fixedClassName),
|
|
297
|
+
key: cell.id,
|
|
298
|
+
style: _objectSpread({
|
|
299
|
+
width: cell.column.getSize()
|
|
300
|
+
}, fixedStyle)
|
|
301
|
+
}, expandableInfo.isExpandable && colIndex === 0 ? /*#__PURE__*/React.createElement(ExpandCell, {
|
|
302
|
+
expandableInfo: expandableInfo,
|
|
303
|
+
expandable: expandable,
|
|
304
|
+
data: row.original,
|
|
305
|
+
rowKey: rowKey
|
|
306
|
+
}, tdContent) : tdContent);
|
|
307
|
+
}, [expandableInfo, expandable, rowKey, getColumnFixedInfo]);
|
|
204
308
|
|
|
205
309
|
// 渲染 body
|
|
206
310
|
var bodyContent = /*#__PURE__*/React.createElement("div", {
|
|
@@ -221,6 +325,70 @@ function Table(props, ref) {
|
|
|
221
325
|
}))) : _.reduce(tableRows, function (rowList, rowData, rowIndex) {
|
|
222
326
|
var _classnames4;
|
|
223
327
|
var row = virtual ? rows[rowData.index] : rowData;
|
|
328
|
+
var allRowCells = row.getVisibleCells();
|
|
329
|
+
var content = null;
|
|
330
|
+
// 将固定列单独拎出来,固定列不受列虚拟化影响,必须要渲染
|
|
331
|
+
var leftFixedColumns = [];
|
|
332
|
+
var rightFixedColumns = [];
|
|
333
|
+
if (virtual) {
|
|
334
|
+
var _virtualColumns2 = columnVirtualizer.getVirtualItems();
|
|
335
|
+
var middleVirtualColumns = [];
|
|
336
|
+
_.forEach(allRowCells, function (cell, index) {
|
|
337
|
+
var fixedInfo = getColumnFixedInfo(index);
|
|
338
|
+
if (fixedInfo.fixed === 'left') {
|
|
339
|
+
leftFixedColumns.push({
|
|
340
|
+
cell: cell,
|
|
341
|
+
index: index
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
if (fixedInfo.fixed === 'right') {
|
|
345
|
+
rightFixedColumns.push({
|
|
346
|
+
cell: cell,
|
|
347
|
+
index: index
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
_.forEach(_virtualColumns2, function (virtualColumn) {
|
|
352
|
+
var colIndex = virtualColumn.index;
|
|
353
|
+
var fixedInfo = getColumnFixedInfo(colIndex);
|
|
354
|
+
if (fixedInfo.fixed !== 'left' && fixedInfo.fixed !== 'right') {
|
|
355
|
+
middleVirtualColumns.push(virtualColumn);
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
content = /*#__PURE__*/React.createElement(React.Fragment, null, virtualPaddingLeft ?
|
|
359
|
+
/*#__PURE__*/
|
|
360
|
+
//fake empty column to the left for virtualization scroll padding
|
|
361
|
+
React.createElement("div", {
|
|
362
|
+
className: prefixCls('virtual-padding-left'),
|
|
363
|
+
style: {
|
|
364
|
+
width: virtualPaddingLeft
|
|
365
|
+
}
|
|
366
|
+
}) : null, leftFixedColumns.map(function (_ref3) {
|
|
367
|
+
var cell = _ref3.cell,
|
|
368
|
+
index = _ref3.index;
|
|
369
|
+
return renderBodyCell(row, cell, index);
|
|
370
|
+
}), middleVirtualColumns.map(function (virtualColumn) {
|
|
371
|
+
var colIndex = virtualColumn.index;
|
|
372
|
+
var cell = allRowCells[colIndex];
|
|
373
|
+
return renderBodyCell(row, cell, colIndex);
|
|
374
|
+
}), rightFixedColumns.map(function (_ref4) {
|
|
375
|
+
var cell = _ref4.cell,
|
|
376
|
+
index = _ref4.index;
|
|
377
|
+
return renderBodyCell(row, cell, index);
|
|
378
|
+
}), virtualPaddingRight ?
|
|
379
|
+
/*#__PURE__*/
|
|
380
|
+
//fake empty column to the right for virtualization scroll padding
|
|
381
|
+
React.createElement("div", {
|
|
382
|
+
className: prefixCls('virtual-padding-right'),
|
|
383
|
+
style: {
|
|
384
|
+
width: virtualPaddingRight
|
|
385
|
+
}
|
|
386
|
+
}) : null);
|
|
387
|
+
} else {
|
|
388
|
+
content = allRowCells.map(function (cell, index) {
|
|
389
|
+
return renderBodyCell(row, cell, index);
|
|
390
|
+
});
|
|
391
|
+
}
|
|
224
392
|
var rowId = row.id;
|
|
225
393
|
var rowNode = /*#__PURE__*/React.createElement("div", {
|
|
226
394
|
key: rowId,
|
|
@@ -240,24 +408,7 @@ function Table(props, ref) {
|
|
|
240
408
|
position: 'absolute',
|
|
241
409
|
transform: "translateY(".concat(rowData.start, "px)")
|
|
242
410
|
} : {}
|
|
243
|
-
},
|
|
244
|
-
var _getColumnFixedInfo2 = getColumnFixedInfo(colIndex),
|
|
245
|
-
fixedClassName = _getColumnFixedInfo2.className,
|
|
246
|
-
fixedStyle = _getColumnFixedInfo2.style;
|
|
247
|
-
var tdContent = flexRender(cell.column.columnDef.cell, cell.getContext());
|
|
248
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
249
|
-
className: classnames(prefixCls('td'), fixedClassName),
|
|
250
|
-
key: cell.id,
|
|
251
|
-
style: _objectSpread({
|
|
252
|
-
width: cell.column.getSize()
|
|
253
|
-
}, fixedStyle)
|
|
254
|
-
}, expandableInfo.isExpandable && colIndex === 0 ? /*#__PURE__*/React.createElement(ExpandCell, {
|
|
255
|
-
expandableInfo: expandableInfo,
|
|
256
|
-
expandable: expandable,
|
|
257
|
-
data: row.original,
|
|
258
|
-
rowKey: rowKey
|
|
259
|
-
}, tdContent) : tdContent);
|
|
260
|
-
}));
|
|
411
|
+
}, content);
|
|
261
412
|
rowList.push(rowNode);
|
|
262
413
|
|
|
263
414
|
// 渲染额外展开的行
|