shineout 3.9.6-beta.8 → 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 +48 -25
- 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 = [];
|
|
@@ -66897,29 +66923,26 @@ var useTableRow = function useTableRow(props) {
|
|
|
66897
66923
|
});
|
|
66898
66924
|
|
|
66899
66925
|
// 计算 rowSelectMergeStartData
|
|
66900
|
-
if (
|
|
66901
|
-
// checkbox
|
|
66902
|
-
|
|
66903
|
-
|
|
66904
|
-
var
|
|
66905
|
-
|
|
66906
|
-
|
|
66907
|
-
|
|
66908
|
-
|
|
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;
|
|
66909
66941
|
}
|
|
66910
|
-
|
|
66911
|
-
|
|
66912
|
-
|
|
66913
|
-
|
|
66914
|
-
// 如果当前行还没有被设置起始数据,说明它是一个新的合并组的起始
|
|
66915
|
-
if (context.rowSelectMergeStartData[_i] === undefined) {
|
|
66916
|
-
context.rowSelectMergeStartData[_i] = currentData;
|
|
66917
|
-
}
|
|
66918
|
-
// 检查当前行是否应该和下一行合并
|
|
66919
|
-
if (_i < data.length - 1 && checkCol.rowSpan(currentData, data[_i + 1])) {
|
|
66920
|
-
// 下一行应该指向当前行的起始数据
|
|
66921
|
-
context.rowSelectMergeStartData[_i + 1] = context.rowSelectMergeStartData[_i];
|
|
66922
|
-
}
|
|
66942
|
+
// 检查当前行是否应该和下一行合并
|
|
66943
|
+
if (_i < data.length - 1 && checkCol.rowSpan(currentData, data[_i + 1])) {
|
|
66944
|
+
// 下一行应该指向当前行的起始数据
|
|
66945
|
+
context.rowSelectMergeStartData[_i + 1] = context.rowSelectMergeStartData[_i];
|
|
66923
66946
|
}
|
|
66924
66947
|
}
|
|
66925
66948
|
} else {
|
|
@@ -66936,7 +66959,7 @@ var useTableRow = function useTableRow(props) {
|
|
|
66936
66959
|
}));
|
|
66937
66960
|
}
|
|
66938
66961
|
return rows;
|
|
66939
|
-
}, [props.columns, props.data, props.originData, props.rowSpanIndexArray, currentIndex]);
|
|
66962
|
+
}, [props.columns, props.data, props.originData, props.rowSpanIndexArray, currentIndex, checkboxRowSpanIndexArray]);
|
|
66940
66963
|
return {
|
|
66941
66964
|
rowData: rowData,
|
|
66942
66965
|
handleCellHover: handleCellHover,
|
|
@@ -74855,7 +74878,7 @@ var upload_interface = __webpack_require__(8821);
|
|
|
74855
74878
|
|
|
74856
74879
|
|
|
74857
74880
|
/* harmony default export */ var src_0 = ({
|
|
74858
|
-
version: '3.9.6-beta.
|
|
74881
|
+
version: '3.9.6-beta.9'
|
|
74859
74882
|
});
|
|
74860
74883
|
}();
|
|
74861
74884
|
/******/ return __webpack_exports__;
|