shineout 3.10.2-beta.6 → 3.10.2-beta.8

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 CHANGED
@@ -545,5 +545,5 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
545
545
  // 此文件由脚本自动生成,请勿直接修改。
546
546
  // This file was generated automatically by a script. Please do not modify it directly.
547
547
  var _default = exports.default = {
548
- version: '3.10.2-beta.6'
548
+ version: '3.10.2-beta.8'
549
549
  };
package/dist/shineout.js CHANGED
@@ -13736,7 +13736,7 @@ var handleStyle = function handleStyle(style) {
13736
13736
  };
13737
13737
  /* harmony default export */ var jss_style_handleStyle = (handleStyle);
13738
13738
  ;// CONCATENATED MODULE: ../shineout-style/src/version.ts
13739
- /* harmony default export */ var version = ('3.10.2-beta.6');
13739
+ /* harmony default export */ var version = ('3.10.2-beta.8');
13740
13740
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
13741
13741
 
13742
13742
 
@@ -46686,6 +46686,10 @@ var useListSelectMultiple = function useListSelectMultiple(props) {
46686
46686
  if (checkedNum === validateNum) return true;
46687
46687
  return 'indeterminate';
46688
46688
  });
46689
+
46690
+ // TODO: Object.values(props) 作为 deps 是反模式,value/prediction 等变化都会使 datum 引用失效。
46691
+ // 精确依赖应为 [props.data](方法均为 usePersistFn,引用稳定)。
46692
+ // 待 Tbody/Tr 加 React.memo 后一起改,届时 datum 引用稳定才能真正减少 re-render。
46689
46693
  var func = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
46690
46694
  return {
46691
46695
  add: add,
@@ -58254,6 +58258,9 @@ var useListSelect = function useListSelect(props) {
58254
58258
  overwrite: true
58255
58259
  });
58256
58260
  });
58261
+
58262
+ // TODO: Object.values(props) 作为 deps 是反模式。精确依赖应为 [datum, multiple]。
58263
+ // 待 Tbody/Tr 加 React.memo 后一起改。
58257
58264
  var result = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
58258
58265
  if (!multiple) {
58259
58266
  return objectSpread2_default()(objectSpread2_default()({}, datum), {}, {
@@ -67819,6 +67826,7 @@ var useTableLayout = function useTableLayout(props) {
67819
67826
  }
67820
67827
 
67821
67828
  // 直接操作 DOM classList,不触发 React re-render
67829
+ // JSS 生成的 className 可能包含多个空格分隔的类名,classList.toggle 只接受单个 token
67822
67830
  var classes = floatClassRef.current;
67823
67831
  var el = (_props$tableElRef = props.tableElRef) === null || _props$tableElRef === void 0 ? void 0 : _props$tableElRef.current;
67824
67832
  if (!classes || !el) return;
@@ -67826,7 +67834,9 @@ var useTableLayout = function useTableLayout(props) {
67826
67834
  var l = left > min;
67827
67835
  if (l !== floatLeftRef.current) {
67828
67836
  floatLeftRef.current = l;
67829
- el.classList.toggle(classes.left, l);
67837
+ classes.left.forEach(function (cls) {
67838
+ return el.classList.toggle(cls, l);
67839
+ });
67830
67840
  }
67831
67841
  }
67832
67842
  if (hasFixedRight) {
@@ -67834,7 +67844,9 @@ var useTableLayout = function useTableLayout(props) {
67834
67844
  var r = max - left > 1;
67835
67845
  if (r !== floatRightRef.current) {
67836
67846
  floatRightRef.current = r;
67837
- el.classList.toggle(classes.right, r);
67847
+ classes.right.forEach(function (cls) {
67848
+ return el.classList.toggle(cls, r);
67849
+ });
67838
67850
  }
67839
67851
  }
67840
67852
  });
@@ -67960,10 +67972,11 @@ var useTableLayout = function useTableLayout(props) {
67960
67972
  }
67961
67973
 
67962
67974
  // 注册 float class name,由 table.tsx 初始化时调用
67975
+ // 预拆分空格分隔的类名,避免 checkFloat 高频路径重复 split
67963
67976
  var registerFloatClass = use_persist_fn(function (left, right) {
67964
67977
  floatClassRef.current = {
67965
- left: left,
67966
- right: right
67978
+ left: left.split(/\s+/).filter(Boolean),
67979
+ right: right.split(/\s+/).filter(Boolean)
67967
67980
  };
67968
67981
  });
67969
67982
  return {
@@ -68046,9 +68059,14 @@ var useTableFilter = function useTableFilter(props) {
68046
68059
 
68047
68060
  // 根据columns生成filterInfo
68048
68061
  (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useEffect)(function () {
68062
+ var _props$columns2;
68063
+ // 没有任何 filter 列时跳过,避免无谓的 setFilterInfo 触发 re-render
68064
+ if (!((_props$columns2 = props.columns) !== null && _props$columns2 !== void 0 && _props$columns2.some(function (col) {
68065
+ return col.filter;
68066
+ }))) return;
68049
68067
  setFilterInfo(function (prev) {
68050
- var _props$columns2;
68051
- var _filterInfo = props === null || props === void 0 || (_props$columns2 = props.columns) === null || _props$columns2 === void 0 ? void 0 : _props$columns2.reduce(function (acc, column, index) {
68068
+ var _props$columns3;
68069
+ var _filterInfo = props === null || props === void 0 || (_props$columns3 = props.columns) === null || _props$columns3 === void 0 ? void 0 : _props$columns3.reduce(function (acc, column, index) {
68052
68070
  var _prev$get2, _column$filter;
68053
68071
  if (!column.filter) return acc;
68054
68072
  var columnKey = typeof column.render === 'string' ? column.render : String(index);
@@ -68061,7 +68079,8 @@ var useTableFilter = function useTableFilter(props) {
68061
68079
  }, new Map());
68062
68080
  return _filterInfo || new Map();
68063
68081
  });
68064
- }, [props.columns]);
68082
+ }, [props.columns]); // eslint-disable-line react-hooks/exhaustive-deps
68083
+
68065
68084
  return {
68066
68085
  filterInfo: filterInfo,
68067
68086
  setFilterInfo: setFilterInfo,
@@ -80138,7 +80157,7 @@ var watermark_interface = __webpack_require__(6640);
80138
80157
 
80139
80158
 
80140
80159
  /* harmony default export */ var src_0 = ({
80141
- version: '3.10.2-beta.6'
80160
+ version: '3.10.2-beta.8'
80142
80161
  });
80143
80162
  }();
80144
80163
  /******/ return __webpack_exports__;