@sheinx/base 3.7.0-beta.7 → 3.7.0-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.
@@ -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,wBAunBE"}
@@ -227,6 +227,12 @@ var _default = exports.default = function _default(props) {
227
227
  isRtl: isRtl,
228
228
  theadAndTfootHeight: context.theadAndTfootHeight
229
229
  });
230
+ var syncHeaderScroll = (0, _hooks.usePersistFn)(function (left) {
231
+ var _theadRef$current2;
232
+ if (props.hideHeader || !props.sticky) return;
233
+ if (!(theadRef !== null && theadRef !== void 0 && (_theadRef$current2 = theadRef.current) !== null && _theadRef$current2 !== void 0 && _theadRef$current2.parentElement)) return;
234
+ theadRef.current.parentElement.scrollLeft = left;
235
+ });
230
236
 
231
237
  // 简单表格的滚动事件
232
238
  var handleBodyScroll = (0, _hooks.usePersistFn)(function (e) {
@@ -246,6 +252,7 @@ var _default = exports.default = function _default(props) {
246
252
  var y = Math.min(target.scrollTop / maxHeight, 1);
247
253
  props.onScroll(x, y, target.scrollLeft, target.scrollTop);
248
254
  }
255
+ syncHeaderScroll(target.scrollLeft);
249
256
  });
250
257
 
251
258
  // 虚拟表格的滚动事件
@@ -261,6 +268,7 @@ var _default = exports.default = function _default(props) {
261
268
  if (props.onScroll && typeof props.onScroll === 'function') {
262
269
  props.onScroll(info.x, info.y, info.scrollLeft, info.scrollTop);
263
270
  }
271
+ syncHeaderScroll(info.scrollLeft);
264
272
  });
265
273
  var renderEmpty = function renderEmpty() {
266
274
  var _props$data2;
@@ -435,30 +443,41 @@ var _default = exports.default = function _default(props) {
435
443
  })
436
444
  }));
437
445
  };
446
+ var $headTable = /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
447
+ style: {
448
+ width: width
449
+ },
450
+ ref: theadRef,
451
+ children: [Group, /*#__PURE__*/(0, _jsxRuntime.jsx)(_thead.default, _objectSpread({}, headCommonProps))]
452
+ });
438
453
  if (isRenderVirtualTable) {
439
- var _props$data4, _props$data5;
454
+ var _props$data4;
440
455
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
441
- children: [renderHeadMirrorScroller(), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_scrollTable.default, {
456
+ children: [renderHeadMirrorScroller(), !props.hideHeader && props.sticky && /*#__PURE__*/(0, _jsxRuntime.jsx)(StickyWrapper, _objectSpread(_objectSpread({}, stickyProps), {}, {
457
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
458
+ className: headWrapperClass,
459
+ style: {
460
+ overflow: 'hidden'
461
+ },
462
+ children: $headTable
463
+ })
464
+ })), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_scrollTable.default, {
465
+ style: {
466
+ display: 'flex',
467
+ minWidth: 0,
468
+ minHeight: 0,
469
+ flex: 1
470
+ },
442
471
  wrapperRef: scrollRef,
443
472
  scrollWidth: width || 1,
444
473
  scrollHeight: virtual ? virtualInfo.scrollHeight : tbodyHeight,
445
474
  onScroll: handleVirtualScroll,
446
475
  defaultHeight: context.emptyHeight,
447
476
  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", {
477
+ children: [!props.hideHeader && !props.sticky && /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
478
+ className: headWrapperClass,
479
+ children: $headTable
480
+ }), !!((_props$data4 = props.data) !== null && _props$data4 !== void 0 && _props$data4.length) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
462
481
  style: {
463
482
  width: width,
464
483
  transform: virtualInfo.translateStyle
@@ -516,6 +535,36 @@ var _default = exports.default = function _default(props) {
516
535
  align: "right"
517
536
  }, pagination), paginationInfo));
518
537
  };
538
+
539
+ // handle head and foot scroll
540
+ var handleHeaderWheel = (0, _hooks.usePersistFn)(function (e) {
541
+ var _theadRef$current3;
542
+ var scrollEl = scrollRef.current;
543
+ if (!scrollEl) return;
544
+ if (!(theadRef !== null && theadRef !== void 0 && (_theadRef$current3 = theadRef.current) !== null && _theadRef$current3 !== void 0 && _theadRef$current3.parentElement)) return;
545
+ var max = scrollEl.scrollWidth - scrollEl.clientWidth;
546
+ var scrollLeft = scrollEl.scrollLeft + e.deltaX;
547
+ if (scrollLeft === scrollEl.scrollLeft) {
548
+ return;
549
+ }
550
+ e.preventDefault();
551
+ var left = Math.min(Math.max(scrollLeft, 0), max);
552
+ scrollEl.scrollLeft = left;
553
+ theadRef.current.parentElement.scrollLeft = left;
554
+ });
555
+ (0, _react.useEffect)(function () {
556
+ // 绑定 wheel 事件
557
+ if (props.sticky && theadRef.current && theadRef.current.parentElement) {
558
+ theadRef.current.parentElement.addEventListener('wheel', handleHeaderWheel, {
559
+ passive: false
560
+ });
561
+ }
562
+ return function () {
563
+ if (props.sticky && theadRef.current && theadRef.current.parentElement) {
564
+ theadRef.current.parentElement.removeEventListener('wheel', handleHeaderWheel);
565
+ }
566
+ };
567
+ }, [theadRef.current, props.sticky, isScrollY]);
519
568
  var getRenderIndexByData = function getRenderIndexByData(data) {
520
569
  var originKey = typeof data === 'string' ? data : _hooks.util.getKey(props.keygen, data);
521
570
  var index = treeData.findIndex(function (item) {
@@ -551,7 +600,7 @@ var _default = exports.default = function _default(props) {
551
600
  });
552
601
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
553
602
  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)),
603
+ className: (0, _classnames.default)(tableWrapperClass, _defineProperty(_defineProperty(_defineProperty({}, tableClasses.sticky, props.sticky), tableClasses.floatLeft, floatLeft), tableClasses.floatRight, floatRight)),
555
604
  style: _objectSpread({
556
605
  height: defaultHeight
557
606
  }, props.style)
@@ -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":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IAEd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAC7F,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,UAAU,GACV,aAAa,GACb,WAAW,GACX,cAAc,CAAC;AAEnB,MAAM,WAAW,SAAU,SAAQ,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC;IACvF,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,WAAW,CAAC;QACxB,MAAM,EAAE,MAAM,aAAa,CAAC;KAC7B,CAAC;IACF;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAErC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAE5B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CACjB,MAAM,EAAE,KAAK,CAAC,SAAS,EACvB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,KACvC,KAAK,CAAC,SAAS,CAAC;CACtB"}
@@ -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,wBAunBE"}
@@ -220,6 +220,12 @@ export default (function (props) {
220
220
  isRtl: isRtl,
221
221
  theadAndTfootHeight: context.theadAndTfootHeight
222
222
  });
223
+ var syncHeaderScroll = usePersistFn(function (left) {
224
+ var _theadRef$current2;
225
+ if (props.hideHeader || !props.sticky) return;
226
+ if (!(theadRef !== null && theadRef !== void 0 && (_theadRef$current2 = theadRef.current) !== null && _theadRef$current2 !== void 0 && _theadRef$current2.parentElement)) return;
227
+ theadRef.current.parentElement.scrollLeft = left;
228
+ });
223
229
 
224
230
  // 简单表格的滚动事件
225
231
  var handleBodyScroll = usePersistFn(function (e) {
@@ -239,6 +245,7 @@ export default (function (props) {
239
245
  var y = Math.min(target.scrollTop / maxHeight, 1);
240
246
  props.onScroll(x, y, target.scrollLeft, target.scrollTop);
241
247
  }
248
+ syncHeaderScroll(target.scrollLeft);
242
249
  });
243
250
 
244
251
  // 虚拟表格的滚动事件
@@ -254,6 +261,7 @@ export default (function (props) {
254
261
  if (props.onScroll && typeof props.onScroll === 'function') {
255
262
  props.onScroll(info.x, info.y, info.scrollLeft, info.scrollTop);
256
263
  }
264
+ syncHeaderScroll(info.scrollLeft);
257
265
  });
258
266
  var renderEmpty = function renderEmpty() {
259
267
  var _props$data2;
@@ -428,30 +436,41 @@ export default (function (props) {
428
436
  })
429
437
  }));
430
438
  };
439
+ var $headTable = /*#__PURE__*/_jsxs("table", {
440
+ style: {
441
+ width: width
442
+ },
443
+ ref: theadRef,
444
+ children: [Group, /*#__PURE__*/_jsx(Thead, _objectSpread({}, headCommonProps))]
445
+ });
431
446
  if (isRenderVirtualTable) {
432
- var _props$data4, _props$data5;
447
+ var _props$data4;
433
448
  return /*#__PURE__*/_jsxs(_Fragment, {
434
- children: [renderHeadMirrorScroller(), /*#__PURE__*/_jsxs(Scroll, {
449
+ children: [renderHeadMirrorScroller(), !props.hideHeader && props.sticky && /*#__PURE__*/_jsx(StickyWrapper, _objectSpread(_objectSpread({}, stickyProps), {}, {
450
+ children: /*#__PURE__*/_jsx("div", {
451
+ className: headWrapperClass,
452
+ style: {
453
+ overflow: 'hidden'
454
+ },
455
+ children: $headTable
456
+ })
457
+ })), /*#__PURE__*/_jsxs(Scroll, {
458
+ style: {
459
+ display: 'flex',
460
+ minWidth: 0,
461
+ minHeight: 0,
462
+ flex: 1
463
+ },
435
464
  wrapperRef: scrollRef,
436
465
  scrollWidth: width || 1,
437
466
  scrollHeight: virtual ? virtualInfo.scrollHeight : tbodyHeight,
438
467
  onScroll: handleVirtualScroll,
439
468
  defaultHeight: context.emptyHeight,
440
469
  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", {
470
+ children: [!props.hideHeader && !props.sticky && /*#__PURE__*/_jsx("div", {
471
+ className: headWrapperClass,
472
+ children: $headTable
473
+ }), !!((_props$data4 = props.data) !== null && _props$data4 !== void 0 && _props$data4.length) && /*#__PURE__*/_jsxs("table", {
455
474
  style: {
456
475
  width: width,
457
476
  transform: virtualInfo.translateStyle
@@ -509,6 +528,36 @@ export default (function (props) {
509
528
  align: "right"
510
529
  }, pagination), paginationInfo));
511
530
  };
531
+
532
+ // handle head and foot scroll
533
+ var handleHeaderWheel = usePersistFn(function (e) {
534
+ var _theadRef$current3;
535
+ var scrollEl = scrollRef.current;
536
+ if (!scrollEl) return;
537
+ if (!(theadRef !== null && theadRef !== void 0 && (_theadRef$current3 = theadRef.current) !== null && _theadRef$current3 !== void 0 && _theadRef$current3.parentElement)) return;
538
+ var max = scrollEl.scrollWidth - scrollEl.clientWidth;
539
+ var scrollLeft = scrollEl.scrollLeft + e.deltaX;
540
+ if (scrollLeft === scrollEl.scrollLeft) {
541
+ return;
542
+ }
543
+ e.preventDefault();
544
+ var left = Math.min(Math.max(scrollLeft, 0), max);
545
+ scrollEl.scrollLeft = left;
546
+ theadRef.current.parentElement.scrollLeft = left;
547
+ });
548
+ useEffect(function () {
549
+ // 绑定 wheel 事件
550
+ if (props.sticky && theadRef.current && theadRef.current.parentElement) {
551
+ theadRef.current.parentElement.addEventListener('wheel', handleHeaderWheel, {
552
+ passive: false
553
+ });
554
+ }
555
+ return function () {
556
+ if (props.sticky && theadRef.current && theadRef.current.parentElement) {
557
+ theadRef.current.parentElement.removeEventListener('wheel', handleHeaderWheel);
558
+ }
559
+ };
560
+ }, [theadRef.current, props.sticky, isScrollY]);
512
561
  var getRenderIndexByData = function getRenderIndexByData(data) {
513
562
  var originKey = typeof data === 'string' ? data : util.getKey(props.keygen, data);
514
563
  var index = treeData.findIndex(function (item) {
@@ -544,7 +593,7 @@ export default (function (props) {
544
593
  });
545
594
  return /*#__PURE__*/_jsxs(_Fragment, {
546
595
  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)),
596
+ className: classNames(tableWrapperClass, _defineProperty(_defineProperty(_defineProperty({}, tableClasses.sticky, props.sticky), tableClasses.floatLeft, floatLeft), tableClasses.floatRight, floatRight)),
548
597
  style: _objectSpread({
549
598
  height: defaultHeight
550
599
  }, props.style)
@@ -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":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IAEd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,eAAe,GAAG,gBAAgB,CAAC;AAC7F,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,UAAU,GACV,aAAa,GACb,WAAW,GACX,cAAc,CAAC;AAEnB,MAAM,WAAW,SAAU,SAAQ,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC;IACvF,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,WAAW,CAAC;QACxB,MAAM,EAAE,MAAM,aAAa,CAAC;KAC7B,CAAC;IACF;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,kBAAkB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAErC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,WAAW,CAAC;IACxC;;;OAGG;IACH,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAE5B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAClC;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC1C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,CACjB,MAAM,EAAE,KAAK,CAAC,SAAS,EACvB,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,kBAAkB,CAAC,KACvC,KAAK,CAAC,SAAS,CAAC;CACtB"}
@@ -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.8",
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.8",
14
14
  "immer": "^10.0.0",
15
15
  "classnames": "^2.0.0",
16
16
  "@shined/reactive": "^0.1.3-alpha.0"