shineout 3.9.6-beta.1 → 3.9.6-beta.3

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
@@ -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.1'
525
+ version: '3.9.6-beta.3'
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.1');
12404
+ /* harmony default export */ var version = ('3.9.6-beta.3');
12405
12405
  ;// CONCATENATED MODULE: ../shineout-style/src/jss-style/index.tsx
12406
12406
 
12407
12407
 
@@ -60925,6 +60925,21 @@ var MenuItem = function MenuItem(props) {
60925
60925
  }),
60926
60926
  shouldHideChildren = _useCollapseAnimation.shouldHide,
60927
60927
  shouldKeepOpen = _useCollapseAnimation.shouldKeepOpen;
60928
+
60929
+ // 合并自定义属性:优先级 getItemProps > dataItem 中的 data-* 属性
60930
+ var customAttributes = (0,external_root_React_commonjs2_react_commonjs_react_amd_react_.useMemo)(function () {
60931
+ var _props$getItemProps;
60932
+ // 1. 从 dataItem 中提取 data-* 和 aria-* 属性(方案2)
60933
+ var dataAttrs = extractProps(props.dataItem, 'data-attr');
60934
+
60935
+ // 2. 通过 getItemProps 函数生成自定义属性(方案1,优先级更高)
60936
+ var fnAttrs = ((_props$getItemProps = props.getItemProps) === null || _props$getItemProps === void 0 ? void 0 : _props$getItemProps.call(props, props.dataItem, {
60937
+ level: props.level,
60938
+ hasChildren: expandAble,
60939
+ index: props.index
60940
+ })) || {};
60941
+ return objectSpread2_default()(objectSpread2_default()({}, dataAttrs), fnAttrs);
60942
+ }, [props.dataItem, props.getItemProps, props.level, props.index, expandAble]);
60928
60943
  var renderChildren = function renderChildren() {
60929
60944
  var _items;
60930
60945
  var items = children;
@@ -61043,7 +61058,7 @@ var MenuItem = function MenuItem(props) {
61043
61058
  }));
61044
61059
  }
61045
61060
  if (props.frontCaret) {
61046
- return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
61061
+ return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", objectSpread2_default()(objectSpread2_default()({}, expandAble ? customAttributes : undefined), {}, {
61047
61062
  className: classnames_default()(classes === null || classes === void 0 ? void 0 : classes.itemContent, classes === null || classes === void 0 ? void 0 : classes.itemContentFront),
61048
61063
  onClick: handleItemClick,
61049
61064
  children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
@@ -61058,9 +61073,9 @@ var MenuItem = function MenuItem(props) {
61058
61073
  children: frontCaretType === 'hollow' ? icons_config.menu.CollapseArrow : icons_config.menu.FrontSolidArrowDown
61059
61074
  })
61060
61075
  }), title]
61061
- });
61076
+ }));
61062
61077
  } else {
61063
- return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
61078
+ return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", objectSpread2_default()(objectSpread2_default()({}, expandAble ? customAttributes : undefined), {}, {
61064
61079
  className: classnames_default()(classes === null || classes === void 0 ? void 0 : classes.itemContent, classes === null || classes === void 0 ? void 0 : classes.itemContentBack),
61065
61080
  onClick: handleItemClick,
61066
61081
  children: [title, expandAble && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
@@ -61075,17 +61090,17 @@ var MenuItem = function MenuItem(props) {
61075
61090
  children: icons_config.menu.CollapseArrow
61076
61091
  })
61077
61092
  })]
61078
- });
61093
+ }));
61079
61094
  }
61080
61095
  };
61081
- return /*#__PURE__*/(0,jsx_runtime.jsxs)("li", {
61096
+ return /*#__PURE__*/(0,jsx_runtime.jsxs)("li", objectSpread2_default()(objectSpread2_default()({}, expandAble ? undefined : customAttributes), {}, {
61082
61097
  className: classnames_default()(classes === null || classes === void 0 ? void 0 : classes.item, isDisabled && (classes === null || classes === void 0 ? void 0 : classes.itemDisabled), isInPath && (classes === null || classes === void 0 ? void 0 : classes.itemInPath), (isOpen || popOpen || shouldKeepOpen) && (classes === null || classes === void 0 ? void 0 : classes.itemOpen), shouldKeepOpen && (classes === null || classes === void 0 ? void 0 : classes.itemClosing), isChecked && (classes === null || classes === void 0 ? void 0 : classes.itemActive), expandAble && (classes === null || classes === void 0 ? void 0 : classes.itemHasChildren)),
61083
61098
  onMouseEnter: handleMouseEnter,
61084
61099
  onMouseLeave: handleMouseLeave,
61085
61100
  dir: config.direction,
61086
61101
  ref: liRef,
61087
61102
  children: [renderItem(), renderChildren()]
61088
- });
61103
+ }));
61089
61104
  };
61090
61105
  /* harmony default export */ var menu_item = (MenuItem);
61091
61106
  ;// CONCATENATED MODULE: ../base/src/menu/menu.tsx
@@ -61222,7 +61237,8 @@ var Menu = function Menu(props) {
61222
61237
  theme: theme,
61223
61238
  renderIcon: props.renderIcon,
61224
61239
  collapse: collapse,
61225
- isEdgeItem: false
61240
+ isEdgeItem: false,
61241
+ getItemProps: props.getItemProps
61226
61242
  }, key);
61227
61243
  })
61228
61244
  })
@@ -67856,8 +67872,11 @@ function Table(props) {
67856
67872
  if (props.onScroll && typeof props.onScroll === 'function') {
67857
67873
  var maxWidth = target.scrollWidth - target.clientWidth;
67858
67874
  var maxHeight = target.scrollHeight - target.clientHeight;
67859
- var x = Math.min(target.scrollLeft / maxWidth, 1);
67860
- var y = Math.min(target.scrollTop / maxHeight, 1);
67875
+ // 浏览器缩放时,scrollHeight/clientHeight 的取整方式不同,导致 scrollTop 最大值可能无法达到 maxHeight
67876
+ // 例如:缩放到 80% 时,scrollTop 可能是 1981.25,而 maxHeight 是 1982
67877
+ // 因此需要容错 1px 误差,当 scrollTop >= maxHeight - 1 时认为已滚动到底
67878
+ var x = maxWidth > 0 ? maxWidth - target.scrollLeft < 1 ? 1 : Math.min(target.scrollLeft / maxWidth, 1) : 0;
67879
+ var y = maxHeight > 0 ? maxHeight - target.scrollTop < 1 ? 1 : Math.min(target.scrollTop / maxHeight, 1) : 0;
67861
67880
  props.onScroll(x, y, target.scrollLeft, target.scrollTop);
67862
67881
  }
67863
67882
  syncHeaderScroll(target.scrollLeft);
@@ -74802,7 +74821,7 @@ var upload_interface = __webpack_require__(8821);
74802
74821
 
74803
74822
 
74804
74823
  /* harmony default export */ var src_0 = ({
74805
- version: '3.9.6-beta.1'
74824
+ version: '3.9.6-beta.3'
74806
74825
  });
74807
74826
  }();
74808
74827
  /******/ return __webpack_exports__;