shineout 3.9.6-beta.7 → 3.9.6-beta.9
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/cjs/index.js +1 -1
- package/dist/shineout.js +74 -41
- package/dist/shineout.js.map +1 -1
- package/dist/shineout.min.js +1 -1
- package/dist/shineout.min.js.map +1 -1
- package/esm/index.js +1 -1
- package/package.json +5 -5
package/cjs/index.js
CHANGED
|
@@ -522,5 +522,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
522
522
|
// 此文件由脚本自动生成,请勿直接修改。
|
|
523
523
|
// This file was generated automatically by a script. Please do not modify it directly.
|
|
524
524
|
var _default = exports.default = {
|
|
525
|
-
version: '3.9.6-beta.
|
|
525
|
+
version: '3.9.6-beta.9'
|
|
526
526
|
};
|
package/dist/shineout.js
CHANGED
|
@@ -12401,7 +12401,7 @@ var handleStyle = function handleStyle(style) {
|
|
|
12401
12401
|
};
|
|
12402
12402
|
/* harmony default export */ var jss_style_handleStyle = (handleStyle);
|
|
12403
12403
|
;// CONCATENATED MODULE: ../shineout-style/src/version.ts
|
|
12404
|
-
/* harmony default export */ var version = ('3.9.6-beta.
|
|
12404
|
+
/* harmony default export */ var version = ('3.9.6-beta.9');
|
|
12405
12405
|
;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
|
|
12406
12406
|
|
|
12407
12407
|
|
|
@@ -66887,6 +66887,32 @@ var useTableRow = function useTableRow(props) {
|
|
|
66887
66887
|
}
|
|
66888
66888
|
setHoverIndex(hoverIndex);
|
|
66889
66889
|
});
|
|
66890
|
+
|
|
66891
|
+
// 为虚拟滚动场景预计算 checkbox 列的 rowSpan 索引数组(缓存以提升性能)
|
|
66892
|
+
var checkboxRowSpanIndexArray = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
|
|
66893
|
+
var columns = props.columns || [];
|
|
66894
|
+
var checkCol = columns.find(function (col) {
|
|
66895
|
+
return col.type === 'checkbox';
|
|
66896
|
+
});
|
|
66897
|
+
|
|
66898
|
+
// 只在虚拟滚动 + checkbox 有 rowSpan 时才需要计算
|
|
66899
|
+
if (!(checkCol !== null && checkCol !== void 0 && checkCol.rowSpan) || !props.rowSpanIndexArray || !props.originData) {
|
|
66900
|
+
return null;
|
|
66901
|
+
}
|
|
66902
|
+
var originData = props.originData;
|
|
66903
|
+
var indexArray = [];
|
|
66904
|
+
for (var i = 0; i < originData.length; i++) {
|
|
66905
|
+
if (indexArray[i] === undefined) {
|
|
66906
|
+
indexArray[i] = i;
|
|
66907
|
+
}
|
|
66908
|
+
// 检查当前行是否应该和下一行合并
|
|
66909
|
+
if (i < originData.length - 1 && checkCol.rowSpan(originData[i], originData[i + 1])) {
|
|
66910
|
+
// 下一行应该指向当前行的起始索引
|
|
66911
|
+
indexArray[i + 1] = indexArray[i];
|
|
66912
|
+
}
|
|
66913
|
+
}
|
|
66914
|
+
return indexArray;
|
|
66915
|
+
}, [props.columns, props.originData, props.rowSpanIndexArray]);
|
|
66890
66916
|
var rowData = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
|
|
66891
66917
|
var rows = [];
|
|
66892
66918
|
context.rowSelectMergeStartData = [];
|
|
@@ -66895,28 +66921,45 @@ var useTableRow = function useTableRow(props) {
|
|
|
66895
66921
|
var checkCol = columns.find(function (col) {
|
|
66896
66922
|
return col.type === 'checkbox';
|
|
66897
66923
|
});
|
|
66898
|
-
|
|
66899
|
-
|
|
66900
|
-
|
|
66924
|
+
|
|
66925
|
+
// 计算 rowSelectMergeStartData
|
|
66926
|
+
if (checkboxRowSpanIndexArray && props.originData) {
|
|
66927
|
+
// 虚拟滚动 + checkbox 有 rowSpan:使用预计算的 checkbox 专属索引数组
|
|
66928
|
+
var originData = props.originData;
|
|
66929
|
+
for (var i = 0; i < data.length; i++) {
|
|
66930
|
+
var globalIndex = currentIndex + i;
|
|
66931
|
+
var startIndex = checkboxRowSpanIndexArray[globalIndex];
|
|
66932
|
+
context.rowSelectMergeStartData[i] = originData[startIndex] || data[i];
|
|
66933
|
+
}
|
|
66934
|
+
} else if (checkCol !== null && checkCol !== void 0 && checkCol.rowSpan) {
|
|
66935
|
+
// 非虚拟滚动 + checkbox 有 rowSpan:基于当前数据计算
|
|
66936
|
+
for (var _i = 0; _i < data.length; _i++) {
|
|
66937
|
+
var currentData = data[_i];
|
|
66938
|
+
// 如果当前行还没有被设置起始数据,说明它是一个新的合并组的起始
|
|
66939
|
+
if (context.rowSelectMergeStartData[_i] === undefined) {
|
|
66940
|
+
context.rowSelectMergeStartData[_i] = currentData;
|
|
66941
|
+
}
|
|
66942
|
+
// 检查当前行是否应该和下一行合并
|
|
66943
|
+
if (_i < data.length - 1 && checkCol.rowSpan(currentData, data[_i + 1])) {
|
|
66944
|
+
// 下一行应该指向当前行的起始数据
|
|
66945
|
+
context.rowSelectMergeStartData[_i + 1] = context.rowSelectMergeStartData[_i];
|
|
66946
|
+
}
|
|
66947
|
+
}
|
|
66948
|
+
} else {
|
|
66949
|
+
// checkbox 列无 rowSpan,每行都是自己的起始数据
|
|
66950
|
+
for (var _i2 = 0; _i2 < data.length; _i2++) {
|
|
66951
|
+
context.rowSelectMergeStartData[_i2] = data[_i2];
|
|
66952
|
+
}
|
|
66953
|
+
}
|
|
66954
|
+
for (var _i3 = data.length - 1; _i3 >= 0; _i3--) {
|
|
66955
|
+
var d = data[_i3];
|
|
66956
|
+
rows.unshift(use_table_row_format(columns, d, rows[0], currentIndex + _i3).map(function (col) {
|
|
66901
66957
|
delete col.content;
|
|
66902
66958
|
return col;
|
|
66903
66959
|
}));
|
|
66904
|
-
{
|
|
66905
|
-
//记录合并行合并到的数据需要从0 开始
|
|
66906
|
-
var i0 = data.length - 1 - i;
|
|
66907
|
-
var d0 = data[i0];
|
|
66908
|
-
context.rowSelectMergeStartData[i0] = d0;
|
|
66909
|
-
if (i0 > 0 && checkCol && typeof checkCol.rowSpan === 'function') {
|
|
66910
|
-
var beforeData = data[i0 - 1];
|
|
66911
|
-
if (beforeData !== null && checkCol.rowSpan(beforeData, d0)) {
|
|
66912
|
-
var _context$rowSelectMer;
|
|
66913
|
-
context.rowSelectMergeStartData[i0] = (_context$rowSelectMer = context.rowSelectMergeStartData[i0 - 1]) !== null && _context$rowSelectMer !== void 0 ? _context$rowSelectMer : beforeData;
|
|
66914
|
-
}
|
|
66915
|
-
}
|
|
66916
|
-
}
|
|
66917
66960
|
}
|
|
66918
66961
|
return rows;
|
|
66919
|
-
}, [props.columns, props.data]);
|
|
66962
|
+
}, [props.columns, props.data, props.originData, props.rowSpanIndexArray, currentIndex, checkboxRowSpanIndexArray]);
|
|
66920
66963
|
return {
|
|
66921
66964
|
rowData: rowData,
|
|
66922
66965
|
handleCellHover: handleCellHover,
|
|
@@ -67161,7 +67204,8 @@ var Tr = function Tr(props) {
|
|
|
67161
67204
|
return expandInstance;
|
|
67162
67205
|
}
|
|
67163
67206
|
if (col.type === 'checkbox') {
|
|
67164
|
-
|
|
67207
|
+
// 对于合并行,使用合并起始数据进行选择操作
|
|
67208
|
+
var selectData = props.rowSelectMergeStartData || data;
|
|
67165
67209
|
var instance = /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
67166
67210
|
className: tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.iconWrapper,
|
|
67167
67211
|
children: props.radio ? /*#__PURE__*/(0,jsx_runtime.jsx)(base_src_radio_radio, {
|
|
@@ -67379,7 +67423,9 @@ var Tr = function Tr(props) {
|
|
|
67379
67423
|
columns: props.columns,
|
|
67380
67424
|
data: props.data,
|
|
67381
67425
|
currentIndex: currentRowIndex,
|
|
67382
|
-
hover: hover
|
|
67426
|
+
hover: hover,
|
|
67427
|
+
originData: props.originData,
|
|
67428
|
+
rowSpanIndexArray: props.rowSpanIndexArray
|
|
67383
67429
|
}),
|
|
67384
67430
|
rowData = _useTableRow.rowData,
|
|
67385
67431
|
handleCellHover = _useTableRow.handleCellHover,
|
|
@@ -67393,17 +67439,6 @@ var Tr = function Tr(props) {
|
|
|
67393
67439
|
var rowIndex = index + currentRowIndex;
|
|
67394
67440
|
var originKey = getKey(props.keygen, item, rowIndex);
|
|
67395
67441
|
var trRenderKey = props.loader || (_props$rowEvents = props.rowEvents) !== null && _props$rowEvents !== void 0 && _props$rowEvents.draggable ? originKey : "".concat(originKey, "-").concat(rowIndex);
|
|
67396
|
-
|
|
67397
|
-
// 在虚拟列表模式下,使用 virtualRowSpanInfo 来获取正确的选择数据
|
|
67398
|
-
var selectData = item;
|
|
67399
|
-
if (props.virtualRowSpanInfo && props.fullData) {
|
|
67400
|
-
// rowSpanIndexArray[rowIndex] 表示第 rowIndex 行所属合并组的起始行索引
|
|
67401
|
-
var selectIndex = props.virtualRowSpanInfo.rowSpanIndexArray[rowIndex];
|
|
67402
|
-
selectData = props.fullData[selectIndex];
|
|
67403
|
-
} else {
|
|
67404
|
-
// 非虚拟列表模式使用原有逻辑
|
|
67405
|
-
selectData = rowSelectMergeStartData[index];
|
|
67406
|
-
}
|
|
67407
67442
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(tr, {
|
|
67408
67443
|
originKey: originKey,
|
|
67409
67444
|
row: rowData[index],
|
|
@@ -67431,11 +67466,9 @@ var Tr = function Tr(props) {
|
|
|
67431
67466
|
striped: props.striped,
|
|
67432
67467
|
radio: props.radio,
|
|
67433
67468
|
hover: hover,
|
|
67434
|
-
isSelect: props.datum.check(
|
|
67435
|
-
|
|
67436
|
-
handleCellHover: handleCellHover
|
|
67437
|
-
// to update
|
|
67438
|
-
,
|
|
67469
|
+
isSelect: props.datum.check(rowSelectMergeStartData[index]),
|
|
67470
|
+
rowSelectMergeStartData: rowSelectMergeStartData[index],
|
|
67471
|
+
handleCellHover: handleCellHover,
|
|
67439
67472
|
hoverIndex: hoverIndex,
|
|
67440
67473
|
rowClickAttr: props.rowClickAttr,
|
|
67441
67474
|
onRowClick: props.onRowClick,
|
|
@@ -68137,7 +68170,7 @@ function Table(props) {
|
|
|
68137
68170
|
})
|
|
68138
68171
|
}));
|
|
68139
68172
|
if (isRenderVirtualTable) {
|
|
68140
|
-
var _props$data3;
|
|
68173
|
+
var _props$data3, _virtualInfo$rowSpanI;
|
|
68141
68174
|
var showStickyHeader = !props.hideHeader && props.sticky;
|
|
68142
68175
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
68143
68176
|
children: [renderHeadMirrorScroller(), showStickyHeader && /*#__PURE__*/(0,jsx_runtime.jsx)(StickyWrapper, objectSpread2_default()(objectSpread2_default()({}, stickyProps), {}, {
|
|
@@ -68168,10 +68201,10 @@ function Table(props) {
|
|
|
68168
68201
|
currentRowIndex: virtualInfo.startIndex,
|
|
68169
68202
|
currentColIndex: currentColIndex,
|
|
68170
68203
|
data: virtualInfo.data,
|
|
68204
|
+
originData: treeData,
|
|
68205
|
+
rowSpanIndexArray: (_virtualInfo$rowSpanI = virtualInfo.rowSpanInfo) === null || _virtualInfo$rowSpanI === void 0 ? void 0 : _virtualInfo$rowSpanI.rowSpanIndexArray,
|
|
68171
68206
|
setRowHeight: virtualInfo.setRowHeight,
|
|
68172
|
-
scrolling: scrolling
|
|
68173
|
-
virtualRowSpanInfo: virtualInfo.rowSpanInfo,
|
|
68174
|
-
fullData: treeData
|
|
68207
|
+
scrolling: scrolling
|
|
68175
68208
|
}))]
|
|
68176
68209
|
}), showFoot ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
68177
68210
|
className: footWrapperClass,
|
|
@@ -74845,7 +74878,7 @@ var upload_interface = __webpack_require__(8821);
|
|
|
74845
74878
|
|
|
74846
74879
|
|
|
74847
74880
|
/* harmony default export */ var src_0 = ({
|
|
74848
|
-
version: '3.9.6-beta.
|
|
74881
|
+
version: '3.9.6-beta.9'
|
|
74849
74882
|
});
|
|
74850
74883
|
}();
|
|
74851
74884
|
/******/ return __webpack_exports__;
|