@sheinx/base 3.7.0-beta.7 → 3.7.0-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.
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["table.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;;AAe1C,wBAykBE"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["table.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAAgB,UAAU,EAAE,MAAM,cAAc,CAAC;;AAexD,wBAmoBE"}
@@ -33,6 +33,12 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
33
33
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
34
34
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
35
35
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
36
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
37
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
38
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
39
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
40
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
41
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
36
42
  var devUseWarning = _hooks.util.devUseWarning;
37
43
  var emptyArr = [];
38
44
  var emptyRef = {
@@ -56,6 +62,10 @@ var _default = exports.default = function _default(props) {
56
62
  var headMirrorScrollRef = (0, _react.useRef)(null);
57
63
  var bottomMirrorScrollRef = (0, _react.useRef)(null);
58
64
  var tableRef = (0, _react.useRef)(null);
65
+ var _useState = (0, _react.useState)(false),
66
+ _useState2 = _slicedToArray(_useState, 2),
67
+ scrolling = _useState2[0],
68
+ setScrolling = _useState2[1];
59
69
  var browserScrollbarWidth = (0, _hooks.useScrollbarWidth)();
60
70
  if (props.fixed) {
61
71
  devUseWarning.deprecated('fixed', 'virtual', 'Table');
@@ -78,7 +88,8 @@ var _default = exports.default = function _default(props) {
78
88
  };
79
89
  var _useRef = (0, _react.useRef)({
80
90
  emptyHeight: 0,
81
- theadAndTfootHeight: 0
91
+ theadAndTfootHeight: 0,
92
+ scrollingTimer: null
82
93
  }),
83
94
  context = _useRef.current;
84
95
  var virtual = ((_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.length) && props.rowsInView !== 0 && (!!props.virtual || props.fixed === 'both' || props.fixed === 'y' || props.fixed === 'auto');
@@ -227,6 +238,12 @@ var _default = exports.default = function _default(props) {
227
238
  isRtl: isRtl,
228
239
  theadAndTfootHeight: context.theadAndTfootHeight
229
240
  });
241
+ var syncHeaderScroll = (0, _hooks.usePersistFn)(function (left) {
242
+ var _theadRef$current2;
243
+ if (props.hideHeader || !props.sticky) return;
244
+ if (!(theadRef !== null && theadRef !== void 0 && (_theadRef$current2 = theadRef.current) !== null && _theadRef$current2 !== void 0 && _theadRef$current2.parentElement)) return;
245
+ theadRef.current.parentElement.scrollLeft = left;
246
+ });
230
247
 
231
248
  // 简单表格的滚动事件
232
249
  var handleBodyScroll = (0, _hooks.usePersistFn)(function (e) {
@@ -246,6 +263,7 @@ var _default = exports.default = function _default(props) {
246
263
  var y = Math.min(target.scrollTop / maxHeight, 1);
247
264
  props.onScroll(x, y, target.scrollLeft, target.scrollTop);
248
265
  }
266
+ syncHeaderScroll(target.scrollLeft);
249
267
  });
250
268
 
251
269
  // 虚拟表格的滚动事件
@@ -261,6 +279,14 @@ var _default = exports.default = function _default(props) {
261
279
  if (props.onScroll && typeof props.onScroll === 'function') {
262
280
  props.onScroll(info.x, info.y, info.scrollLeft, info.scrollTop);
263
281
  }
282
+ syncHeaderScroll(info.scrollLeft);
283
+ if (context.scrollingTimer) {
284
+ clearTimeout(context.scrollingTimer);
285
+ }
286
+ setScrolling(true);
287
+ context.scrollingTimer = setTimeout(function () {
288
+ setScrolling(false);
289
+ }, 100);
264
290
  });
265
291
  var renderEmpty = function renderEmpty() {
266
292
  var _props$data2;
@@ -435,30 +461,41 @@ var _default = exports.default = function _default(props) {
435
461
  })
436
462
  }));
437
463
  };
464
+ var $headTable = /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
465
+ style: {
466
+ width: width
467
+ },
468
+ ref: theadRef,
469
+ children: [Group, /*#__PURE__*/(0, _jsxRuntime.jsx)(_thead.default, _objectSpread({}, headCommonProps))]
470
+ });
438
471
  if (isRenderVirtualTable) {
439
- var _props$data4, _props$data5;
472
+ var _props$data4;
440
473
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
441
- children: [renderHeadMirrorScroller(), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_scrollTable.default, {
474
+ children: [renderHeadMirrorScroller(), !props.hideHeader && props.sticky && /*#__PURE__*/(0, _jsxRuntime.jsx)(StickyWrapper, _objectSpread(_objectSpread({}, stickyProps), {}, {
475
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
476
+ className: headWrapperClass,
477
+ style: {
478
+ overflow: 'hidden'
479
+ },
480
+ children: $headTable
481
+ })
482
+ })), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_scrollTable.default, {
483
+ style: {
484
+ display: 'flex',
485
+ minWidth: 0,
486
+ minHeight: 0,
487
+ flex: 1
488
+ },
442
489
  wrapperRef: scrollRef,
443
490
  scrollWidth: width || 1,
444
491
  scrollHeight: virtual ? virtualInfo.scrollHeight : tbodyHeight,
445
492
  onScroll: handleVirtualScroll,
446
493
  defaultHeight: context.emptyHeight,
447
494
  isScrollY: isScrollY,
448
- isEmptyContent: !((_props$data4 = props.data) !== null && _props$data4 !== void 0 && _props$data4.length),
449
- isHeaderSticky: stickyProps === null || stickyProps === void 0 ? void 0 : stickyProps.css,
450
- children: [!props.hideHeader && /*#__PURE__*/(0, _jsxRuntime.jsx)(StickyWrapper, _objectSpread(_objectSpread({}, props.sticky ? stickyProps : {}), {}, {
451
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
452
- className: headWrapperClass,
453
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
454
- style: {
455
- width: width
456
- },
457
- ref: theadRef,
458
- children: [Group, /*#__PURE__*/(0, _jsxRuntime.jsx)(_thead.default, _objectSpread({}, headCommonProps))]
459
- })
460
- })
461
- })), !!((_props$data5 = props.data) !== null && _props$data5 !== void 0 && _props$data5.length) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
495
+ children: [!props.hideHeader && !props.sticky && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
496
+ className: headWrapperClass,
497
+ children: $headTable
498
+ }), !!((_props$data4 = props.data) !== null && _props$data4 !== void 0 && _props$data4.length) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
462
499
  style: {
463
500
  width: width,
464
501
  transform: virtualInfo.translateStyle
@@ -467,7 +504,8 @@ var _default = exports.default = function _default(props) {
467
504
  children: [Group, /*#__PURE__*/(0, _jsxRuntime.jsx)(_tbody.default, _objectSpread(_objectSpread({}, bodyCommonProps), {}, {
468
505
  currentIndex: virtualInfo.startIndex,
469
506
  data: virtualInfo.data,
470
- setRowHeight: virtualInfo.setRowHeight
507
+ setRowHeight: virtualInfo.setRowHeight,
508
+ scrolling: scrolling
471
509
  }))]
472
510
  }), showFoot ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
473
511
  className: footWrapperClass,
@@ -516,6 +554,36 @@ var _default = exports.default = function _default(props) {
516
554
  align: "right"
517
555
  }, pagination), paginationInfo));
518
556
  };
557
+
558
+ // handle head and foot scroll
559
+ var handleHeaderWheel = (0, _hooks.usePersistFn)(function (e) {
560
+ var _theadRef$current3;
561
+ var scrollEl = scrollRef.current;
562
+ if (!scrollEl) return;
563
+ if (!(theadRef !== null && theadRef !== void 0 && (_theadRef$current3 = theadRef.current) !== null && _theadRef$current3 !== void 0 && _theadRef$current3.parentElement)) return;
564
+ var max = scrollEl.scrollWidth - scrollEl.clientWidth;
565
+ var scrollLeft = scrollEl.scrollLeft + e.deltaX;
566
+ if (scrollLeft === scrollEl.scrollLeft) {
567
+ return;
568
+ }
569
+ e.preventDefault();
570
+ var left = Math.min(Math.max(scrollLeft, 0), max);
571
+ scrollEl.scrollLeft = left;
572
+ theadRef.current.parentElement.scrollLeft = left;
573
+ });
574
+ (0, _react.useEffect)(function () {
575
+ // 绑定 wheel 事件
576
+ if (props.sticky && theadRef.current && theadRef.current.parentElement) {
577
+ theadRef.current.parentElement.addEventListener('wheel', handleHeaderWheel, {
578
+ passive: false
579
+ });
580
+ }
581
+ return function () {
582
+ if (props.sticky && theadRef.current && theadRef.current.parentElement) {
583
+ theadRef.current.parentElement.removeEventListener('wheel', handleHeaderWheel);
584
+ }
585
+ };
586
+ }, [theadRef.current, props.sticky, isScrollY]);
519
587
  var getRenderIndexByData = function getRenderIndexByData(data) {
520
588
  var originKey = typeof data === 'string' ? data : _hooks.util.getKey(props.keygen, data);
521
589
  var index = treeData.findIndex(function (item) {
@@ -551,7 +619,7 @@ var _default = exports.default = function _default(props) {
551
619
  });
552
620
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
553
621
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({
554
- className: (0, _classnames.default)(tableWrapperClass, floatLeft && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.floatLeft), floatRight && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.floatRight), props.sticky && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.sticky)),
622
+ className: (0, _classnames.default)(tableWrapperClass, _defineProperty(_defineProperty(_defineProperty({}, tableClasses.sticky, props.sticky), tableClasses.floatLeft, floatLeft), tableClasses.floatRight, floatRight)),
555
623
  style: _objectSpread({
556
624
  height: defaultHeight
557
625
  }, props.style)
@@ -1,4 +1,4 @@
1
1
  import { TbodyProps } from './tbody.type';
2
- declare const _default: (props: TbodyProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const _default: (props: TbodyProps) => import("react/jsx-runtime").JSX.Element | undefined;
3
3
  export default _default;
4
4
  //# sourceMappingURL=tbody.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tbody.d.ts","sourceRoot":"","sources":["tbody.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;gCAEnB,UAAU;AAAjC,wBAuEE"}
1
+ {"version":3,"file":"tbody.d.ts","sourceRoot":"","sources":["tbody.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;gCAEnB,UAAU;AAAjC,wBAoGE"}
@@ -9,6 +9,13 @@ var _hooks = require("@sheinx/hooks");
9
9
  var _tr = _interopRequireDefault(require("./tr"));
10
10
  var _jsxRuntime = require("react/jsx-runtime");
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
13
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
14
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
15
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
16
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
17
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
18
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
12
19
  var _default = exports.default = function _default(props) {
13
20
  var _props$columns = props.columns,
14
21
  columns = _props$columns === void 0 ? [] : _props$columns,
@@ -84,9 +91,23 @@ var _default = exports.default = function _default(props) {
84
91
  shouldCellUpdate: props.shouldCellUpdate
85
92
  }, trRenderKey);
86
93
  };
87
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("tbody", {
88
- children: (props.data || []).map(function (item, index) {
89
- return renderRow(item, index);
90
- })
91
- });
94
+ var externalDependencies = _typeof(props.shouldCellUpdate) === 'object' && props.shouldCellUpdate.dependencies ? props.shouldCellUpdate.dependencies : [];
95
+ var updateFn = _typeof(props.shouldCellUpdate) === 'object' && 'update' in props.shouldCellUpdate ? props.shouldCellUpdate.update : props.shouldCellUpdate;
96
+ var $tbody = (0, _hooks.useComponentMemo)(function () {
97
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("tbody", {
98
+ children: (props.data || []).map(function (item, index) {
99
+ return renderRow(item, index);
100
+ })
101
+ });
102
+ }, [props.data, currentIndex].concat(_toConsumableArray(externalDependencies)), updateFn ? function (prev, next) {
103
+ return prev.some(function (_, index) {
104
+ if (index === 0) {
105
+ return prev[index].some(function (item, idx) {
106
+ return updateFn(item, next[index][idx]);
107
+ });
108
+ }
109
+ return !_hooks.util.shallowEqual(prev[index], next[index]);
110
+ }) || !props.scrolling;
111
+ } : undefined);
112
+ return $tbody;
92
113
  };
@@ -18,5 +18,6 @@ export interface TbodyProps extends Pick<OptionalToRequired<TableProps<any, any>
18
18
  setRowHeight?: (index: number, height: number) => void;
19
19
  bodyScrollWidth?: number;
20
20
  resizeFlag?: number;
21
+ scrolling?: boolean;
21
22
  }
22
23
  //# sourceMappingURL=tbody.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tbody.type.d.ts","sourceRoot":"","sources":["tbody.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAE/D,MAAM,WAAW,UACf,SAAQ,IAAI,CACV,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EACtC,MAAM,GACN,UAAU,GACV,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,YAAY,GACZ,cAAc,GACd,WAAW,GACX,UAAU,GACV,OAAO,GACP,cAAc,GACd,aAAa,GACb,kBAAkB,CACrB;IACD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjD,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAClD,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"tbody.type.d.ts","sourceRoot":"","sources":["tbody.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAE/D,MAAM,WAAW,UACf,SAAQ,IAAI,CACV,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EACtC,MAAM,GACN,UAAU,GACV,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,YAAY,GACZ,cAAc,GACd,WAAW,GACX,UAAU,GACV,OAAO,GACP,cAAc,GACd,aAAa,GACb,kBAAkB,CACrB;IACD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjD,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAClD,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["tabs.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAe,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOnD,QAAA,MAAM,IAAI;YAAW,SAAS;;CA6Q7B,CAAC;AAIF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["tabs.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAe,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOnD,QAAA,MAAM,IAAI;YAAW,SAAS;;CAwR7B,CAAC;AAIF,eAAe,IAAI,CAAC"}
package/cjs/tabs/tabs.js CHANGED
@@ -12,7 +12,7 @@ var _tabsPanel = _interopRequireDefault(require("./tabs-panel"));
12
12
  var _tabsHeader = _interopRequireDefault(require("./tabs-header"));
13
13
  var _sticky = _interopRequireDefault(require("../sticky"));
14
14
  var _jsxRuntime = require("react/jsx-runtime");
15
- var _excluded = ["jssStyle", "align", "children", "shape", "position", "lazy", "autoFill", "hideSplit", "collapsible", "defaultCollapsed", "onChange", "extra", "border", "splitColor", "tabBarExtraContent", "background", "activeBackground", "inactiveBackground", "defaultActive", "tabBarStyle", "color", "sticky", "allowNonPanel", "className"];
15
+ var _excluded = ["jssStyle", "align", "children", "shape", "position", "lazy", "autoFill", "hideSplit", "collapsible", "defaultCollapsed", "onChange", "extra", "border", "splitColor", "tabBarExtraContent", "background", "activeBackground", "inactiveBackground", "defaultActive", "tabBarStyle", "color", "sticky", "allowNonPanel", "renderTabsHeader", "className"];
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -76,6 +76,7 @@ var Tabs = function Tabs(props) {
76
76
  color = props.color,
77
77
  sticky = props.sticky,
78
78
  allowNonPanel = props.allowNonPanel,
79
+ renderTabsHeader = props.renderTabsHeader,
79
80
  tabsClassName = props.className,
80
81
  rest = _objectWithoutProperties(props, _excluded);
81
82
  var shape = shapeProps && shapeProps !== 'bordered' ? shapeProps : 'card';
@@ -236,10 +237,18 @@ var Tabs = function Tabs(props) {
236
237
  className: (0, _classnames.default)(stickyClassName, sticky.className)
237
238
  });
238
239
  }
240
+ if (renderTabsHeader) {
241
+ return renderTabsHeader( /*#__PURE__*/(0, _jsxRuntime.jsx)(_sticky.default, _objectSpread(_objectSpread({}, stickyProps), {}, {
242
+ children: header
243
+ })), props);
244
+ }
239
245
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sticky.default, _objectSpread(_objectSpread({}, stickyProps), {}, {
240
246
  children: header
241
247
  }));
242
248
  }
249
+ if (renderTabsHeader) {
250
+ return renderTabsHeader(header, props);
251
+ }
243
252
  return header;
244
253
  };
245
254
  var renderTabs = function renderTabs() {
@@ -155,5 +155,11 @@ export interface TabsProps extends BaseTabsProps, Pick<CommonType, 'className' |
155
155
  * @version 3.5.3
156
156
  */
157
157
  allowNonPanel?: boolean;
158
+ /**
159
+ * @en Custom render header content
160
+ * @cn 自定义渲染 header 内容
161
+ * @version 3.7.0
162
+ */
163
+ renderTabsHeader?: (header: React.ReactNode, props: Omit<TabsProps, 'renderTabsHeader'>) => React.ReactNode;
158
164
  }
159
165
  //# sourceMappingURL=tabs.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.type.d.ts","sourceRoot":"","sources":["tabs.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabs.type.d.ts","sourceRoot":"","sources":["tabs.type.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  interface scrollProps {
3
+ style?: React.CSSProperties;
3
4
  scrollHeight: number;
4
5
  scrollWidth: number | string;
5
6
  height?: number | string;
@@ -21,8 +22,6 @@ interface scrollProps {
21
22
  childrenStyle?: React.CSSProperties;
22
23
  defaultHeight?: number;
23
24
  isScrollY?: boolean;
24
- isEmptyContent?: boolean;
25
- isHeaderSticky?: boolean;
26
25
  }
27
26
  declare const Scroll: (props: scrollProps) => import("react/jsx-runtime").JSX.Element;
28
27
  export default Scroll;
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-table.d.ts","sourceRoot":"","sources":["scroll-table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAI/C,UAAU,WAAW;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;IACX,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAWD,QAAA,MAAM,MAAM,UAAW,WAAW,4CA8HjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"scroll-table.d.ts","sourceRoot":"","sources":["scroll-table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAI/C,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;IACX,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAWD,QAAA,MAAM,MAAM,UAAW,WAAW,4CA2HjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -25,7 +25,6 @@ var extractHeightValue = function extractHeightValue(num) {
25
25
  return undefined;
26
26
  };
27
27
  var Scroll = function Scroll(props) {
28
- var _scrollRef$current, _scrollRef$current2;
29
28
  var containerRef = (0, _react.useRef)(null);
30
29
  var scrollRef = (0, _react.useRef)(null);
31
30
  var wrapperRef = (0, _hooks.useForkRef)(scrollRef, props.wrapperRef);
@@ -56,10 +55,7 @@ var Scroll = function Scroll(props) {
56
55
  flex: 1,
57
56
  minWidth: 0,
58
57
  minHeight: 0,
59
- // 原生css sticky机制根据最近的父元素的overflow来决定是否sticky
60
- // isHeaderSticky: 这种场景非内滚的时候,设置scroll元素的overflow为initial
61
- // isEmptyContent: 这种场景,把scroll元素的overflow设置为hidden,把overflow: auto转交给下面的container元素
62
- overflow: props.isEmptyContent ? 'hidden' : props.isHeaderSticky && (scrollRef === null || scrollRef === void 0 || (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollHeight) === (scrollRef === null || scrollRef === void 0 || (_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.clientHeight) ? 'initial' : 'auto',
58
+ overflow: 'auto',
63
59
  width: '100%'
64
60
  };
65
61
  var containerStyle = {
@@ -68,9 +64,7 @@ var Scroll = function Scroll(props) {
68
64
  display: 'flex',
69
65
  position: 'sticky',
70
66
  flexDirection: 'column',
71
- top: 0,
72
- // isEmptyContent: overflow设置为auto是为了让empty元素可以sticky left:0 生效
73
- overflow: props.isEmptyContent ? 'auto' : undefined
67
+ top: 0
74
68
  };
75
69
 
76
70
  // 当滚动容器的高度为 0 时,paddingTop 为 0,避免滚动条抖动现象
@@ -129,29 +123,33 @@ var Scroll = function Scroll(props) {
129
123
  scrollRef.current.scrollTop += scrollTop;
130
124
  }
131
125
  });
132
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", _objectSpread(_objectSpread({}, _hooks.util.getDataAttribute({
133
- role: 'scroll'
134
- })), {}, {
135
- style: scrollerStyle,
136
- onScroll: handleScroll,
137
- ref: wrapperRef,
138
- onMouseDown: function onMouseDown() {
139
- context.isMouseDown = true;
140
- },
141
- onMouseUp: function onMouseUp() {
142
- context.isMouseDown = false;
143
- },
144
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, _hooks.util.getDataAttribute({
145
- role: 'scroll-container'
126
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
127
+ className: props.className,
128
+ style: props.style,
129
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", _objectSpread(_objectSpread({}, _hooks.util.getDataAttribute({
130
+ role: 'scroll'
146
131
  })), {}, {
147
- style: containerStyle,
148
- ref: containerRef,
149
- onScroll: handleInnerScroll,
150
- children: props.children
151
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
152
- style: placeStyle,
153
- children: "\xA0"
154
- })]
155
- }));
132
+ style: scrollerStyle,
133
+ onScroll: handleScroll,
134
+ ref: wrapperRef,
135
+ onMouseDown: function onMouseDown() {
136
+ context.isMouseDown = true;
137
+ },
138
+ onMouseUp: function onMouseUp() {
139
+ context.isMouseDown = false;
140
+ },
141
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({}, _hooks.util.getDataAttribute({
142
+ role: 'scroll-container'
143
+ })), {}, {
144
+ style: containerStyle,
145
+ ref: containerRef,
146
+ onScroll: handleInnerScroll,
147
+ children: props.children
148
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
149
+ style: placeStyle,
150
+ children: "\xA0"
151
+ })]
152
+ }))
153
+ });
156
154
  };
157
155
  var _default = exports.default = Scroll;
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["table.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;;AAe1C,wBAykBE"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["table.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAAgB,UAAU,EAAE,MAAM,cAAc,CAAC;;AAexD,wBAmoBE"}
@@ -7,7 +7,13 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
7
7
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
8
8
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
9
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
10
- import React, { useEffect, useMemo, useRef } from 'react';
10
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
11
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
12
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
13
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
14
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
15
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
16
+ import React, { useEffect, useMemo, useRef, useState } from 'react';
11
17
  import Scroll from "../virtual-scroll/scroll-table";
12
18
  import classNames from 'classnames';
13
19
  import Spin from "../spin";
@@ -49,6 +55,10 @@ export default (function (props) {
49
55
  var headMirrorScrollRef = useRef(null);
50
56
  var bottomMirrorScrollRef = useRef(null);
51
57
  var tableRef = useRef(null);
58
+ var _useState = useState(false),
59
+ _useState2 = _slicedToArray(_useState, 2),
60
+ scrolling = _useState2[0],
61
+ setScrolling = _useState2[1];
52
62
  var browserScrollbarWidth = useScrollbarWidth();
53
63
  if (props.fixed) {
54
64
  devUseWarning.deprecated('fixed', 'virtual', 'Table');
@@ -71,7 +81,8 @@ export default (function (props) {
71
81
  };
72
82
  var _useRef = useRef({
73
83
  emptyHeight: 0,
74
- theadAndTfootHeight: 0
84
+ theadAndTfootHeight: 0,
85
+ scrollingTimer: null
75
86
  }),
76
87
  context = _useRef.current;
77
88
  var virtual = ((_props$data = props.data) === null || _props$data === void 0 ? void 0 : _props$data.length) && props.rowsInView !== 0 && (!!props.virtual || props.fixed === 'both' || props.fixed === 'y' || props.fixed === 'auto');
@@ -220,6 +231,12 @@ export default (function (props) {
220
231
  isRtl: isRtl,
221
232
  theadAndTfootHeight: context.theadAndTfootHeight
222
233
  });
234
+ var syncHeaderScroll = usePersistFn(function (left) {
235
+ var _theadRef$current2;
236
+ if (props.hideHeader || !props.sticky) return;
237
+ if (!(theadRef !== null && theadRef !== void 0 && (_theadRef$current2 = theadRef.current) !== null && _theadRef$current2 !== void 0 && _theadRef$current2.parentElement)) return;
238
+ theadRef.current.parentElement.scrollLeft = left;
239
+ });
223
240
 
224
241
  // 简单表格的滚动事件
225
242
  var handleBodyScroll = usePersistFn(function (e) {
@@ -239,6 +256,7 @@ export default (function (props) {
239
256
  var y = Math.min(target.scrollTop / maxHeight, 1);
240
257
  props.onScroll(x, y, target.scrollLeft, target.scrollTop);
241
258
  }
259
+ syncHeaderScroll(target.scrollLeft);
242
260
  });
243
261
 
244
262
  // 虚拟表格的滚动事件
@@ -254,6 +272,14 @@ export default (function (props) {
254
272
  if (props.onScroll && typeof props.onScroll === 'function') {
255
273
  props.onScroll(info.x, info.y, info.scrollLeft, info.scrollTop);
256
274
  }
275
+ syncHeaderScroll(info.scrollLeft);
276
+ if (context.scrollingTimer) {
277
+ clearTimeout(context.scrollingTimer);
278
+ }
279
+ setScrolling(true);
280
+ context.scrollingTimer = setTimeout(function () {
281
+ setScrolling(false);
282
+ }, 100);
257
283
  });
258
284
  var renderEmpty = function renderEmpty() {
259
285
  var _props$data2;
@@ -428,30 +454,41 @@ export default (function (props) {
428
454
  })
429
455
  }));
430
456
  };
457
+ var $headTable = /*#__PURE__*/_jsxs("table", {
458
+ style: {
459
+ width: width
460
+ },
461
+ ref: theadRef,
462
+ children: [Group, /*#__PURE__*/_jsx(Thead, _objectSpread({}, headCommonProps))]
463
+ });
431
464
  if (isRenderVirtualTable) {
432
- var _props$data4, _props$data5;
465
+ var _props$data4;
433
466
  return /*#__PURE__*/_jsxs(_Fragment, {
434
- children: [renderHeadMirrorScroller(), /*#__PURE__*/_jsxs(Scroll, {
467
+ children: [renderHeadMirrorScroller(), !props.hideHeader && props.sticky && /*#__PURE__*/_jsx(StickyWrapper, _objectSpread(_objectSpread({}, stickyProps), {}, {
468
+ children: /*#__PURE__*/_jsx("div", {
469
+ className: headWrapperClass,
470
+ style: {
471
+ overflow: 'hidden'
472
+ },
473
+ children: $headTable
474
+ })
475
+ })), /*#__PURE__*/_jsxs(Scroll, {
476
+ style: {
477
+ display: 'flex',
478
+ minWidth: 0,
479
+ minHeight: 0,
480
+ flex: 1
481
+ },
435
482
  wrapperRef: scrollRef,
436
483
  scrollWidth: width || 1,
437
484
  scrollHeight: virtual ? virtualInfo.scrollHeight : tbodyHeight,
438
485
  onScroll: handleVirtualScroll,
439
486
  defaultHeight: context.emptyHeight,
440
487
  isScrollY: isScrollY,
441
- isEmptyContent: !((_props$data4 = props.data) !== null && _props$data4 !== void 0 && _props$data4.length),
442
- isHeaderSticky: stickyProps === null || stickyProps === void 0 ? void 0 : stickyProps.css,
443
- children: [!props.hideHeader && /*#__PURE__*/_jsx(StickyWrapper, _objectSpread(_objectSpread({}, props.sticky ? stickyProps : {}), {}, {
444
- children: /*#__PURE__*/_jsx("div", {
445
- className: headWrapperClass,
446
- children: /*#__PURE__*/_jsxs("table", {
447
- style: {
448
- width: width
449
- },
450
- ref: theadRef,
451
- children: [Group, /*#__PURE__*/_jsx(Thead, _objectSpread({}, headCommonProps))]
452
- })
453
- })
454
- })), !!((_props$data5 = props.data) !== null && _props$data5 !== void 0 && _props$data5.length) && /*#__PURE__*/_jsxs("table", {
488
+ children: [!props.hideHeader && !props.sticky && /*#__PURE__*/_jsx("div", {
489
+ className: headWrapperClass,
490
+ children: $headTable
491
+ }), !!((_props$data4 = props.data) !== null && _props$data4 !== void 0 && _props$data4.length) && /*#__PURE__*/_jsxs("table", {
455
492
  style: {
456
493
  width: width,
457
494
  transform: virtualInfo.translateStyle
@@ -460,7 +497,8 @@ export default (function (props) {
460
497
  children: [Group, /*#__PURE__*/_jsx(Tbody, _objectSpread(_objectSpread({}, bodyCommonProps), {}, {
461
498
  currentIndex: virtualInfo.startIndex,
462
499
  data: virtualInfo.data,
463
- setRowHeight: virtualInfo.setRowHeight
500
+ setRowHeight: virtualInfo.setRowHeight,
501
+ scrolling: scrolling
464
502
  }))]
465
503
  }), showFoot ? /*#__PURE__*/_jsx("div", {
466
504
  className: footWrapperClass,
@@ -509,6 +547,36 @@ export default (function (props) {
509
547
  align: "right"
510
548
  }, pagination), paginationInfo));
511
549
  };
550
+
551
+ // handle head and foot scroll
552
+ var handleHeaderWheel = usePersistFn(function (e) {
553
+ var _theadRef$current3;
554
+ var scrollEl = scrollRef.current;
555
+ if (!scrollEl) return;
556
+ if (!(theadRef !== null && theadRef !== void 0 && (_theadRef$current3 = theadRef.current) !== null && _theadRef$current3 !== void 0 && _theadRef$current3.parentElement)) return;
557
+ var max = scrollEl.scrollWidth - scrollEl.clientWidth;
558
+ var scrollLeft = scrollEl.scrollLeft + e.deltaX;
559
+ if (scrollLeft === scrollEl.scrollLeft) {
560
+ return;
561
+ }
562
+ e.preventDefault();
563
+ var left = Math.min(Math.max(scrollLeft, 0), max);
564
+ scrollEl.scrollLeft = left;
565
+ theadRef.current.parentElement.scrollLeft = left;
566
+ });
567
+ useEffect(function () {
568
+ // 绑定 wheel 事件
569
+ if (props.sticky && theadRef.current && theadRef.current.parentElement) {
570
+ theadRef.current.parentElement.addEventListener('wheel', handleHeaderWheel, {
571
+ passive: false
572
+ });
573
+ }
574
+ return function () {
575
+ if (props.sticky && theadRef.current && theadRef.current.parentElement) {
576
+ theadRef.current.parentElement.removeEventListener('wheel', handleHeaderWheel);
577
+ }
578
+ };
579
+ }, [theadRef.current, props.sticky, isScrollY]);
512
580
  var getRenderIndexByData = function getRenderIndexByData(data) {
513
581
  var originKey = typeof data === 'string' ? data : util.getKey(props.keygen, data);
514
582
  var index = treeData.findIndex(function (item) {
@@ -544,7 +612,7 @@ export default (function (props) {
544
612
  });
545
613
  return /*#__PURE__*/_jsxs(_Fragment, {
546
614
  children: [/*#__PURE__*/_jsx("div", _objectSpread(_objectSpread({
547
- className: classNames(tableWrapperClass, floatLeft && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.floatLeft), floatRight && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.floatRight), props.sticky && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.sticky)),
615
+ className: classNames(tableWrapperClass, _defineProperty(_defineProperty(_defineProperty({}, tableClasses.sticky, props.sticky), tableClasses.floatLeft, floatLeft), tableClasses.floatRight, floatRight)),
548
616
  style: _objectSpread({
549
617
  height: defaultHeight
550
618
  }, props.style)
@@ -1,4 +1,4 @@
1
1
  import { TbodyProps } from './tbody.type';
2
- declare const _default: (props: TbodyProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const _default: (props: TbodyProps) => import("react/jsx-runtime").JSX.Element | undefined;
3
3
  export default _default;
4
4
  //# sourceMappingURL=tbody.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tbody.d.ts","sourceRoot":"","sources":["tbody.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;gCAEnB,UAAU;AAAjC,wBAuEE"}
1
+ {"version":3,"file":"tbody.d.ts","sourceRoot":"","sources":["tbody.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;gCAEnB,UAAU;AAAjC,wBAoGE"}
@@ -1,5 +1,12 @@
1
+ function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
5
+ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
6
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
7
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
1
8
  import React from 'react';
2
- import { useTableRow, useTableExpand, util } from '@sheinx/hooks';
9
+ import { useTableRow, useTableExpand, util, useComponentMemo } from '@sheinx/hooks';
3
10
  import Tr from "./tr";
4
11
  import { jsx as _jsx } from "react/jsx-runtime";
5
12
  export default (function (props) {
@@ -77,9 +84,23 @@ export default (function (props) {
77
84
  shouldCellUpdate: props.shouldCellUpdate
78
85
  }, trRenderKey);
79
86
  };
80
- return /*#__PURE__*/_jsx("tbody", {
81
- children: (props.data || []).map(function (item, index) {
82
- return renderRow(item, index);
83
- })
84
- });
87
+ var externalDependencies = _typeof(props.shouldCellUpdate) === 'object' && props.shouldCellUpdate.dependencies ? props.shouldCellUpdate.dependencies : [];
88
+ var updateFn = _typeof(props.shouldCellUpdate) === 'object' && 'update' in props.shouldCellUpdate ? props.shouldCellUpdate.update : props.shouldCellUpdate;
89
+ var $tbody = useComponentMemo(function () {
90
+ return /*#__PURE__*/_jsx("tbody", {
91
+ children: (props.data || []).map(function (item, index) {
92
+ return renderRow(item, index);
93
+ })
94
+ });
95
+ }, [props.data, currentIndex].concat(_toConsumableArray(externalDependencies)), updateFn ? function (prev, next) {
96
+ return prev.some(function (_, index) {
97
+ if (index === 0) {
98
+ return prev[index].some(function (item, idx) {
99
+ return updateFn(item, next[index][idx]);
100
+ });
101
+ }
102
+ return !util.shallowEqual(prev[index], next[index]);
103
+ }) || !props.scrolling;
104
+ } : undefined);
105
+ return $tbody;
85
106
  });
@@ -18,5 +18,6 @@ export interface TbodyProps extends Pick<OptionalToRequired<TableProps<any, any>
18
18
  setRowHeight?: (index: number, height: number) => void;
19
19
  bodyScrollWidth?: number;
20
20
  resizeFlag?: number;
21
+ scrolling?: boolean;
21
22
  }
22
23
  //# sourceMappingURL=tbody.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tbody.type.d.ts","sourceRoot":"","sources":["tbody.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAE/D,MAAM,WAAW,UACf,SAAQ,IAAI,CACV,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EACtC,MAAM,GACN,UAAU,GACV,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,YAAY,GACZ,cAAc,GACd,WAAW,GACX,UAAU,GACV,OAAO,GACP,cAAc,GACd,aAAa,GACb,kBAAkB,CACrB;IACD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjD,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAClD,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"tbody.type.d.ts","sourceRoot":"","sources":["tbody.type.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE3E,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAClE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC;AAE/D,MAAM,WAAW,UACf,SAAQ,IAAI,CACV,kBAAkB,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,EACtC,MAAM,GACN,UAAU,GACV,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,YAAY,GACZ,gBAAgB,GAChB,QAAQ,GACR,SAAS,GACT,OAAO,GACP,YAAY,GACZ,cAAc,GACd,WAAW,GACX,UAAU,GACV,OAAO,GACP,cAAc,GACd,aAAa,GACb,kBAAkB,CACrB;IACD,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;IAClC,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACjD,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAChC,eAAe,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAClD,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["tabs.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAe,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOnD,QAAA,MAAM,IAAI;YAAW,SAAS;;CA6Q7B,CAAC;AAIF,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["tabs.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAe,SAAS,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOnD,QAAA,MAAM,IAAI;YAAW,SAAS;;CAwR7B,CAAC;AAIF,eAAe,IAAI,CAAC"}
package/esm/tabs/tabs.js CHANGED
@@ -1,5 +1,5 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- var _excluded = ["jssStyle", "align", "children", "shape", "position", "lazy", "autoFill", "hideSplit", "collapsible", "defaultCollapsed", "onChange", "extra", "border", "splitColor", "tabBarExtraContent", "background", "activeBackground", "inactiveBackground", "defaultActive", "tabBarStyle", "color", "sticky", "allowNonPanel", "className"];
2
+ var _excluded = ["jssStyle", "align", "children", "shape", "position", "lazy", "autoFill", "hideSplit", "collapsible", "defaultCollapsed", "onChange", "extra", "border", "splitColor", "tabBarExtraContent", "background", "activeBackground", "inactiveBackground", "defaultActive", "tabBarStyle", "color", "sticky", "allowNonPanel", "renderTabsHeader", "className"];
3
3
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4
4
  function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
5
5
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
@@ -69,6 +69,7 @@ var Tabs = function Tabs(props) {
69
69
  color = props.color,
70
70
  sticky = props.sticky,
71
71
  allowNonPanel = props.allowNonPanel,
72
+ renderTabsHeader = props.renderTabsHeader,
72
73
  tabsClassName = props.className,
73
74
  rest = _objectWithoutProperties(props, _excluded);
74
75
  var shape = shapeProps && shapeProps !== 'bordered' ? shapeProps : 'card';
@@ -229,10 +230,18 @@ var Tabs = function Tabs(props) {
229
230
  className: classNames(stickyClassName, sticky.className)
230
231
  });
231
232
  }
233
+ if (renderTabsHeader) {
234
+ return renderTabsHeader( /*#__PURE__*/_jsx(Sticky, _objectSpread(_objectSpread({}, stickyProps), {}, {
235
+ children: header
236
+ })), props);
237
+ }
232
238
  return /*#__PURE__*/_jsx(Sticky, _objectSpread(_objectSpread({}, stickyProps), {}, {
233
239
  children: header
234
240
  }));
235
241
  }
242
+ if (renderTabsHeader) {
243
+ return renderTabsHeader(header, props);
244
+ }
236
245
  return header;
237
246
  };
238
247
  var renderTabs = function renderTabs() {
@@ -155,5 +155,11 @@ export interface TabsProps extends BaseTabsProps, Pick<CommonType, 'className' |
155
155
  * @version 3.5.3
156
156
  */
157
157
  allowNonPanel?: boolean;
158
+ /**
159
+ * @en Custom render header content
160
+ * @cn 自定义渲染 header 内容
161
+ * @version 3.7.0
162
+ */
163
+ renderTabsHeader?: (header: React.ReactNode, props: Omit<TabsProps, 'renderTabsHeader'>) => React.ReactNode;
158
164
  }
159
165
  //# sourceMappingURL=tabs.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.type.d.ts","sourceRoot":"","sources":["tabs.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tabs.type.d.ts","sourceRoot":"","sources":["tabs.type.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import React from 'react';
2
2
  interface scrollProps {
3
+ style?: React.CSSProperties;
3
4
  scrollHeight: number;
4
5
  scrollWidth: number | string;
5
6
  height?: number | string;
@@ -21,8 +22,6 @@ interface scrollProps {
21
22
  childrenStyle?: React.CSSProperties;
22
23
  defaultHeight?: number;
23
24
  isScrollY?: boolean;
24
- isEmptyContent?: boolean;
25
- isHeaderSticky?: boolean;
26
25
  }
27
26
  declare const Scroll: (props: scrollProps) => import("react/jsx-runtime").JSX.Element;
28
27
  export default Scroll;
@@ -1 +1 @@
1
- {"version":3,"file":"scroll-table.d.ts","sourceRoot":"","sources":["scroll-table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAI/C,UAAU,WAAW;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;IACX,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAWD,QAAA,MAAM,MAAM,UAAW,WAAW,4CA8HjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"scroll-table.d.ts","sourceRoot":"","sources":["scroll-table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0B,MAAM,OAAO,CAAC;AAI/C,UAAU,WAAW;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,EAAE,MAAM,CAAC;QACV,QAAQ,EAAE,OAAO,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;IACX,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAWD,QAAA,MAAM,MAAM,UAAW,WAAW,4CA2HjC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -18,7 +18,6 @@ var extractHeightValue = function extractHeightValue(num) {
18
18
  return undefined;
19
19
  };
20
20
  var Scroll = function Scroll(props) {
21
- var _scrollRef$current, _scrollRef$current2;
22
21
  var containerRef = useRef(null);
23
22
  var scrollRef = useRef(null);
24
23
  var wrapperRef = useForkRef(scrollRef, props.wrapperRef);
@@ -49,10 +48,7 @@ var Scroll = function Scroll(props) {
49
48
  flex: 1,
50
49
  minWidth: 0,
51
50
  minHeight: 0,
52
- // 原生css sticky机制根据最近的父元素的overflow来决定是否sticky
53
- // isHeaderSticky: 这种场景非内滚的时候,设置scroll元素的overflow为initial
54
- // isEmptyContent: 这种场景,把scroll元素的overflow设置为hidden,把overflow: auto转交给下面的container元素
55
- overflow: props.isEmptyContent ? 'hidden' : props.isHeaderSticky && (scrollRef === null || scrollRef === void 0 || (_scrollRef$current = scrollRef.current) === null || _scrollRef$current === void 0 ? void 0 : _scrollRef$current.scrollHeight) === (scrollRef === null || scrollRef === void 0 || (_scrollRef$current2 = scrollRef.current) === null || _scrollRef$current2 === void 0 ? void 0 : _scrollRef$current2.clientHeight) ? 'initial' : 'auto',
51
+ overflow: 'auto',
56
52
  width: '100%'
57
53
  };
58
54
  var containerStyle = {
@@ -61,9 +57,7 @@ var Scroll = function Scroll(props) {
61
57
  display: 'flex',
62
58
  position: 'sticky',
63
59
  flexDirection: 'column',
64
- top: 0,
65
- // isEmptyContent: overflow设置为auto是为了让empty元素可以sticky left:0 生效
66
- overflow: props.isEmptyContent ? 'auto' : undefined
60
+ top: 0
67
61
  };
68
62
 
69
63
  // 当滚动容器的高度为 0 时,paddingTop 为 0,避免滚动条抖动现象
@@ -122,29 +116,33 @@ var Scroll = function Scroll(props) {
122
116
  scrollRef.current.scrollTop += scrollTop;
123
117
  }
124
118
  });
125
- return /*#__PURE__*/_jsxs("div", _objectSpread(_objectSpread({}, util.getDataAttribute({
126
- role: 'scroll'
127
- })), {}, {
128
- style: scrollerStyle,
129
- onScroll: handleScroll,
130
- ref: wrapperRef,
131
- onMouseDown: function onMouseDown() {
132
- context.isMouseDown = true;
133
- },
134
- onMouseUp: function onMouseUp() {
135
- context.isMouseDown = false;
136
- },
137
- children: [/*#__PURE__*/_jsx("div", _objectSpread(_objectSpread({}, util.getDataAttribute({
138
- role: 'scroll-container'
119
+ return /*#__PURE__*/_jsx("div", {
120
+ className: props.className,
121
+ style: props.style,
122
+ children: /*#__PURE__*/_jsxs("div", _objectSpread(_objectSpread({}, util.getDataAttribute({
123
+ role: 'scroll'
139
124
  })), {}, {
140
- style: containerStyle,
141
- ref: containerRef,
142
- onScroll: handleInnerScroll,
143
- children: props.children
144
- })), /*#__PURE__*/_jsx("div", {
145
- style: placeStyle,
146
- children: "\xA0"
147
- })]
148
- }));
125
+ style: scrollerStyle,
126
+ onScroll: handleScroll,
127
+ ref: wrapperRef,
128
+ onMouseDown: function onMouseDown() {
129
+ context.isMouseDown = true;
130
+ },
131
+ onMouseUp: function onMouseUp() {
132
+ context.isMouseDown = false;
133
+ },
134
+ children: [/*#__PURE__*/_jsx("div", _objectSpread(_objectSpread({}, util.getDataAttribute({
135
+ role: 'scroll-container'
136
+ })), {}, {
137
+ style: containerStyle,
138
+ ref: containerRef,
139
+ onScroll: handleInnerScroll,
140
+ children: props.children
141
+ })), /*#__PURE__*/_jsx("div", {
142
+ style: placeStyle,
143
+ children: "\xA0"
144
+ })]
145
+ }))
146
+ });
149
147
  };
150
148
  export default Scroll;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sheinx/base",
3
- "version": "3.7.0-beta.7",
3
+ "version": "3.7.0-beta.9",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -10,7 +10,7 @@
10
10
  "module": "./esm/index.js",
11
11
  "typings": "./cjs/index.d.ts",
12
12
  "dependencies": {
13
- "@sheinx/hooks": "3.7.0-beta.7",
13
+ "@sheinx/hooks": "3.7.0-beta.9",
14
14
  "immer": "^10.0.0",
15
15
  "classnames": "^2.0.0",
16
16
  "@shined/reactive": "^0.1.3-alpha.0"