@sheinx/base 3.7.0-beta.2 → 3.7.0-beta.20

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.
Files changed (249) hide show
  1. package/cjs/cascader/cascader.d.ts.map +1 -1
  2. package/cjs/cascader/cascader.js +4 -2
  3. package/cjs/cascader/cascader.type.d.ts +1 -1
  4. package/cjs/cascader/cascader.type.d.ts.map +1 -1
  5. package/cjs/form/form-flow.js +1 -1
  6. package/cjs/form/form-footer-context.d.ts +2 -1
  7. package/cjs/form/form-footer-context.d.ts.map +1 -1
  8. package/cjs/form/form.d.ts.map +1 -1
  9. package/cjs/form/form.js +4 -2
  10. package/cjs/icons/config.d.ts +2 -2
  11. package/cjs/icons/config.js +3 -3
  12. package/cjs/icons/icons.js +5 -1
  13. package/cjs/image/image.d.ts.map +1 -1
  14. package/cjs/image/image.js +3 -2
  15. package/cjs/index.d.ts +1 -0
  16. package/cjs/index.d.ts.map +1 -1
  17. package/cjs/index.js +12 -0
  18. package/cjs/modal/modal-content.d.ts.map +1 -1
  19. package/cjs/modal/modal-content.js +2 -0
  20. package/cjs/modal/modal-submit.d.ts.map +1 -1
  21. package/cjs/modal/modal-submit.js +10 -3
  22. package/cjs/modal/modal.d.ts.map +1 -1
  23. package/cjs/modal/modal.js +3 -0
  24. package/cjs/popover/popover.d.ts.map +1 -1
  25. package/cjs/popover/popover.js +29 -1
  26. package/cjs/select/list.d.ts.map +1 -1
  27. package/cjs/select/list.js +2 -1
  28. package/cjs/select/result-more.d.ts.map +1 -1
  29. package/cjs/select/result-more.js +5 -1
  30. package/cjs/select/result-more.type.d.ts +1 -0
  31. package/cjs/select/result-more.type.d.ts.map +1 -1
  32. package/cjs/select/result.d.ts.map +1 -1
  33. package/cjs/select/result.js +3 -2
  34. package/cjs/select/result.type.d.ts +1 -0
  35. package/cjs/select/result.type.d.ts.map +1 -1
  36. package/cjs/select/select.d.ts.map +1 -1
  37. package/cjs/select/select.js +5 -1
  38. package/cjs/select/select.type.d.ts +2 -1
  39. package/cjs/select/select.type.d.ts.map +1 -1
  40. package/cjs/skeleton/button.d.ts +8 -0
  41. package/cjs/skeleton/button.d.ts.map +1 -0
  42. package/cjs/skeleton/button.js +34 -0
  43. package/cjs/skeleton/image.d.ts +8 -0
  44. package/cjs/skeleton/image.d.ts.map +1 -0
  45. package/cjs/skeleton/image.js +27 -0
  46. package/cjs/skeleton/index.d.ts +3 -0
  47. package/cjs/skeleton/index.d.ts.map +1 -0
  48. package/cjs/skeleton/index.js +20 -0
  49. package/cjs/skeleton/skeleton.d.ts +5 -0
  50. package/cjs/skeleton/skeleton.d.ts.map +1 -0
  51. package/cjs/skeleton/skeleton.js +58 -0
  52. package/cjs/skeleton/skeleton.type.d.ts +125 -0
  53. package/cjs/skeleton/skeleton.type.d.ts.map +1 -0
  54. package/cjs/skeleton/skeleton.type.js +5 -0
  55. package/cjs/skeleton/text.d.ts +8 -0
  56. package/cjs/skeleton/text.d.ts.map +1 -0
  57. package/cjs/skeleton/text.js +53 -0
  58. package/cjs/sticky/sticky.d.ts.map +1 -1
  59. package/cjs/sticky/sticky.js +12 -3
  60. package/cjs/sticky/sticky.type.d.ts +2 -2
  61. package/cjs/sticky/sticky.type.d.ts.map +1 -1
  62. package/cjs/table/table.d.ts.map +1 -1
  63. package/cjs/table/table.js +160 -102
  64. package/cjs/table/table.type.d.ts +19 -4
  65. package/cjs/table/table.type.d.ts.map +1 -1
  66. package/cjs/table/tbody.d.ts +1 -1
  67. package/cjs/table/tbody.d.ts.map +1 -1
  68. package/cjs/table/tbody.js +17 -10
  69. package/cjs/table/tbody.type.d.ts +2 -2
  70. package/cjs/table/tbody.type.d.ts.map +1 -1
  71. package/cjs/table/td.d.ts +3 -3
  72. package/cjs/table/td.d.ts.map +1 -1
  73. package/cjs/table/td.js +24 -18
  74. package/cjs/table/tfoot.d.ts.map +1 -1
  75. package/cjs/table/tfoot.js +0 -10
  76. package/cjs/table/tfoot.type.d.ts +0 -1
  77. package/cjs/table/tfoot.type.d.ts.map +1 -1
  78. package/cjs/table/thead.d.ts.map +1 -1
  79. package/cjs/table/thead.js +7 -19
  80. package/cjs/table/thead.type.d.ts +0 -1
  81. package/cjs/table/thead.type.d.ts.map +1 -1
  82. package/cjs/table/tr.d.ts +2 -2
  83. package/cjs/table/tr.d.ts.map +1 -1
  84. package/cjs/table/tr.js +31 -27
  85. package/cjs/tabs/tabs-panel.js +4 -3
  86. package/cjs/tabs/tabs.d.ts.map +1 -1
  87. package/cjs/tabs/tabs.js +10 -1
  88. package/cjs/tabs/tabs.type.d.ts +6 -0
  89. package/cjs/tabs/tabs.type.d.ts.map +1 -1
  90. package/cjs/tooltip/tooltip.d.ts.map +1 -1
  91. package/cjs/tooltip/tooltip.js +21 -1
  92. package/cjs/transfer/transfer-list.type.d.ts +1 -1
  93. package/cjs/transfer/transfer-list.type.d.ts.map +1 -1
  94. package/cjs/transfer/transfer.d.ts.map +1 -1
  95. package/cjs/transfer/transfer.js +16 -2
  96. package/cjs/transfer/transfer.type.d.ts +1 -1
  97. package/cjs/transfer/transfer.type.d.ts.map +1 -1
  98. package/cjs/tree/tree-content.d.ts.map +1 -1
  99. package/cjs/tree/tree-content.js +2 -3
  100. package/cjs/tree/tree-content.type.d.ts +1 -2
  101. package/cjs/tree/tree-content.type.d.ts.map +1 -1
  102. package/cjs/tree/tree-list.type.d.ts +1 -2
  103. package/cjs/tree/tree-list.type.d.ts.map +1 -1
  104. package/cjs/tree/tree-node.type.d.ts +2 -4
  105. package/cjs/tree/tree-node.type.d.ts.map +1 -1
  106. package/cjs/tree/tree-root.type.d.ts +1 -2
  107. package/cjs/tree/tree-root.type.d.ts.map +1 -1
  108. package/cjs/tree/tree-virtual.d.ts.map +1 -1
  109. package/cjs/tree/tree-virtual.js +2 -1
  110. package/cjs/tree/tree.d.ts.map +1 -1
  111. package/cjs/tree/tree.js +4 -1
  112. package/cjs/tree/tree.type.d.ts +3 -3
  113. package/cjs/tree/tree.type.d.ts.map +1 -1
  114. package/cjs/tree-select/tree-select.d.ts.map +1 -1
  115. package/cjs/tree-select/tree-select.js +20 -6
  116. package/cjs/tree-select/tree-select.type.d.ts +25 -2
  117. package/cjs/tree-select/tree-select.type.d.ts.map +1 -1
  118. package/cjs/upload/upload.d.ts.map +1 -1
  119. package/cjs/upload/upload.js +2 -1
  120. package/cjs/virtual-scroll/scroll-table.d.ts +29 -0
  121. package/cjs/virtual-scroll/scroll-table.d.ts.map +1 -0
  122. package/cjs/virtual-scroll/scroll-table.js +156 -0
  123. package/cjs/virtual-scroll/scroll.d.ts.map +1 -1
  124. package/cjs/virtual-scroll/scroll.js +4 -4
  125. package/esm/cascader/cascader.d.ts.map +1 -1
  126. package/esm/cascader/cascader.js +4 -2
  127. package/esm/cascader/cascader.type.d.ts +1 -1
  128. package/esm/cascader/cascader.type.d.ts.map +1 -1
  129. package/esm/form/form-flow.js +1 -1
  130. package/esm/form/form-footer-context.d.ts +2 -1
  131. package/esm/form/form-footer-context.d.ts.map +1 -1
  132. package/esm/form/form.d.ts.map +1 -1
  133. package/esm/form/form.js +4 -2
  134. package/esm/icons/config.d.ts +2 -2
  135. package/esm/icons/config.js +3 -3
  136. package/esm/icons/icons.js +5 -1
  137. package/esm/image/image.d.ts.map +1 -1
  138. package/esm/image/image.js +3 -2
  139. package/esm/index.d.ts +1 -0
  140. package/esm/index.d.ts.map +1 -1
  141. package/esm/index.js +1 -0
  142. package/esm/modal/modal-content.d.ts.map +1 -1
  143. package/esm/modal/modal-content.js +2 -0
  144. package/esm/modal/modal-submit.d.ts.map +1 -1
  145. package/esm/modal/modal-submit.js +10 -3
  146. package/esm/modal/modal.d.ts.map +1 -1
  147. package/esm/modal/modal.js +3 -0
  148. package/esm/popover/popover.d.ts.map +1 -1
  149. package/esm/popover/popover.js +29 -1
  150. package/esm/select/list.d.ts.map +1 -1
  151. package/esm/select/list.js +2 -1
  152. package/esm/select/result-more.d.ts.map +1 -1
  153. package/esm/select/result-more.js +5 -1
  154. package/esm/select/result-more.type.d.ts +1 -0
  155. package/esm/select/result-more.type.d.ts.map +1 -1
  156. package/esm/select/result.d.ts.map +1 -1
  157. package/esm/select/result.js +3 -2
  158. package/esm/select/result.type.d.ts +1 -0
  159. package/esm/select/result.type.d.ts.map +1 -1
  160. package/esm/select/select.d.ts.map +1 -1
  161. package/esm/select/select.js +5 -1
  162. package/esm/select/select.type.d.ts +2 -1
  163. package/esm/select/select.type.d.ts.map +1 -1
  164. package/esm/skeleton/button.d.ts +8 -0
  165. package/esm/skeleton/button.d.ts.map +1 -0
  166. package/esm/skeleton/button.js +27 -0
  167. package/esm/skeleton/image.d.ts +8 -0
  168. package/esm/skeleton/image.d.ts.map +1 -0
  169. package/esm/skeleton/image.js +20 -0
  170. package/esm/skeleton/index.d.ts +3 -0
  171. package/esm/skeleton/index.d.ts.map +1 -0
  172. package/esm/skeleton/index.js +2 -0
  173. package/esm/skeleton/skeleton.d.ts +5 -0
  174. package/esm/skeleton/skeleton.d.ts.map +1 -0
  175. package/esm/skeleton/skeleton.js +52 -0
  176. package/esm/skeleton/skeleton.type.d.ts +125 -0
  177. package/esm/skeleton/skeleton.type.d.ts.map +1 -0
  178. package/esm/skeleton/skeleton.type.js +1 -0
  179. package/esm/skeleton/text.d.ts +8 -0
  180. package/esm/skeleton/text.d.ts.map +1 -0
  181. package/esm/skeleton/text.js +46 -0
  182. package/esm/sticky/sticky.d.ts.map +1 -1
  183. package/esm/sticky/sticky.js +13 -4
  184. package/esm/sticky/sticky.type.d.ts +2 -2
  185. package/esm/sticky/sticky.type.d.ts.map +1 -1
  186. package/esm/table/table.d.ts.map +1 -1
  187. package/esm/table/table.js +161 -103
  188. package/esm/table/table.type.d.ts +19 -4
  189. package/esm/table/table.type.d.ts.map +1 -1
  190. package/esm/table/tbody.d.ts +1 -1
  191. package/esm/table/tbody.d.ts.map +1 -1
  192. package/esm/table/tbody.js +18 -11
  193. package/esm/table/tbody.type.d.ts +2 -2
  194. package/esm/table/tbody.type.d.ts.map +1 -1
  195. package/esm/table/td.d.ts +3 -3
  196. package/esm/table/td.d.ts.map +1 -1
  197. package/esm/table/td.js +22 -18
  198. package/esm/table/tfoot.d.ts.map +1 -1
  199. package/esm/table/tfoot.js +0 -10
  200. package/esm/table/tfoot.type.d.ts +0 -1
  201. package/esm/table/tfoot.type.d.ts.map +1 -1
  202. package/esm/table/thead.d.ts.map +1 -1
  203. package/esm/table/thead.js +7 -19
  204. package/esm/table/thead.type.d.ts +0 -1
  205. package/esm/table/thead.type.d.ts.map +1 -1
  206. package/esm/table/tr.d.ts +2 -2
  207. package/esm/table/tr.d.ts.map +1 -1
  208. package/esm/table/tr.js +31 -27
  209. package/esm/tabs/tabs-panel.js +4 -3
  210. package/esm/tabs/tabs.d.ts.map +1 -1
  211. package/esm/tabs/tabs.js +10 -1
  212. package/esm/tabs/tabs.type.d.ts +6 -0
  213. package/esm/tabs/tabs.type.d.ts.map +1 -1
  214. package/esm/tooltip/tooltip.d.ts.map +1 -1
  215. package/esm/tooltip/tooltip.js +21 -1
  216. package/esm/transfer/transfer-list.type.d.ts +1 -1
  217. package/esm/transfer/transfer-list.type.d.ts.map +1 -1
  218. package/esm/transfer/transfer.d.ts.map +1 -1
  219. package/esm/transfer/transfer.js +16 -2
  220. package/esm/transfer/transfer.type.d.ts +1 -1
  221. package/esm/transfer/transfer.type.d.ts.map +1 -1
  222. package/esm/tree/tree-content.d.ts.map +1 -1
  223. package/esm/tree/tree-content.js +2 -3
  224. package/esm/tree/tree-content.type.d.ts +1 -2
  225. package/esm/tree/tree-content.type.d.ts.map +1 -1
  226. package/esm/tree/tree-list.type.d.ts +1 -2
  227. package/esm/tree/tree-list.type.d.ts.map +1 -1
  228. package/esm/tree/tree-node.type.d.ts +2 -4
  229. package/esm/tree/tree-node.type.d.ts.map +1 -1
  230. package/esm/tree/tree-root.type.d.ts +1 -2
  231. package/esm/tree/tree-root.type.d.ts.map +1 -1
  232. package/esm/tree/tree-virtual.d.ts.map +1 -1
  233. package/esm/tree/tree-virtual.js +2 -1
  234. package/esm/tree/tree.d.ts.map +1 -1
  235. package/esm/tree/tree.js +4 -1
  236. package/esm/tree/tree.type.d.ts +3 -3
  237. package/esm/tree/tree.type.d.ts.map +1 -1
  238. package/esm/tree-select/tree-select.d.ts.map +1 -1
  239. package/esm/tree-select/tree-select.js +20 -6
  240. package/esm/tree-select/tree-select.type.d.ts +25 -2
  241. package/esm/tree-select/tree-select.type.d.ts.map +1 -1
  242. package/esm/upload/upload.d.ts.map +1 -1
  243. package/esm/upload/upload.js +2 -1
  244. package/esm/virtual-scroll/scroll-table.d.ts +29 -0
  245. package/esm/virtual-scroll/scroll-table.d.ts.map +1 -0
  246. package/esm/virtual-scroll/scroll-table.js +149 -0
  247. package/esm/virtual-scroll/scroll.d.ts.map +1 -1
  248. package/esm/virtual-scroll/scroll.js +4 -4
  249. package/package.json +2 -2
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
- var _scroll = _interopRequireDefault(require("../virtual-scroll/scroll"));
8
+ var _scrollTable = _interopRequireDefault(require("../virtual-scroll/scroll-table"));
9
9
  var _classnames = _interopRequireDefault(require("classnames"));
10
10
  var _spin = _interopRequireDefault(require("../spin"));
11
11
  var _pagination = _interopRequireDefault(require("../pagination"));
@@ -27,27 +27,20 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
27
27
  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; }
28
28
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
29
29
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
30
- 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); }
31
30
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
32
31
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
33
32
  function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
34
33
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
35
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
+ 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
- var virtualScrollerStyle = {
39
- flex: 1,
40
- minWidth: 0,
41
- minHeight: 0,
42
- overflow: 'auto',
43
- width: '100%'
44
- };
45
- var scrollWrapperStyle = {
46
- flex: 1,
47
- minHeight: 0,
48
- minWidth: 0,
49
- display: 'flex'
50
- };
51
44
  var emptyRef = {
52
45
  current: null
53
46
  };
@@ -66,18 +59,14 @@ var _default = exports.default = function _default(props) {
66
59
  var theadRef = (0, _react.useRef)(null);
67
60
  var tfootRef = (0, _react.useRef)(null);
68
61
  var scrollRef = (0, _react.useRef)(null);
69
- var mirrorScrollRef = (0, _react.useRef)(null);
62
+ var headMirrorScrollRef = (0, _react.useRef)(null);
63
+ var bottomMirrorScrollRef = (0, _react.useRef)(null);
70
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];
71
69
  var browserScrollbarWidth = (0, _hooks.useScrollbarWidth)();
72
- var emptyStyle = _objectSpread(_objectSpread({}, virtualScrollerStyle), {}, {
73
- overflow: 'auto hidden',
74
- position: 'absolute',
75
- zIndex: 1,
76
- bottom: 0,
77
- left: 0,
78
- right: 0,
79
- height: browserScrollbarWidth
80
- });
81
70
  if (props.fixed) {
82
71
  devUseWarning.deprecated('fixed', 'virtual', 'Table');
83
72
  }
@@ -98,7 +87,9 @@ var _default = exports.default = function _default(props) {
98
87
  };
99
88
  };
100
89
  var _useRef = (0, _react.useRef)({
101
- emptyHeight: 0
90
+ emptyHeight: 0,
91
+ theadAndTfootHeight: 0,
92
+ scrollingTimer: null
102
93
  }),
103
94
  context = _useRef.current;
104
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');
@@ -147,7 +138,6 @@ var _default = exports.default = function _default(props) {
147
138
  floatRight = _useTableLayout.floatRight,
148
139
  width = _useTableLayout.width,
149
140
  shouldLastColAuto = _useTableLayout.shouldLastColAuto,
150
- maxScrollLeft = _useTableLayout.maxScrollLeft,
151
141
  scrollBarWidth = _useTableLayout.scrollBarWidth,
152
142
  scrollWidth = _useTableLayout.scrollWidth,
153
143
  resizeFlag = _useTableLayout.resizeFlag;
@@ -231,6 +221,16 @@ var _default = exports.default = function _default(props) {
231
221
  onChange: inputableData.onChange,
232
222
  disabled: props.disabled
233
223
  });
224
+ (0, _react.useEffect)(function () {
225
+ var _theadRef$current, _tfootRef$current;
226
+ var theadHeight = (theadRef === null || theadRef === void 0 || (_theadRef$current = theadRef.current) === null || _theadRef$current === void 0 ? void 0 : _theadRef$current.clientHeight) || 0;
227
+ var tfootHeight = ((_tfootRef$current = tfootRef.current) === null || _tfootRef$current === void 0 ? void 0 : _tfootRef$current.clientHeight) || 0;
228
+ if (props.sticky) {
229
+ context.theadAndTfootHeight = tfootHeight;
230
+ } else {
231
+ context.theadAndTfootHeight = theadHeight + tfootHeight;
232
+ }
233
+ }, [theadRef.current, tfootRef.current]);
234
234
  var virtualInfo = (0, _hooks.useTableVirtual)({
235
235
  disabled: !virtual,
236
236
  data: treeData,
@@ -241,27 +241,27 @@ var _default = exports.default = function _default(props) {
241
241
  scrollRef: scrollRef,
242
242
  innerRef: tbodyRef,
243
243
  scrollLeft: props.scrollLeft,
244
- isRtl: isRtl
244
+ isRtl: isRtl,
245
+ theadAndTfootHeight: context.theadAndTfootHeight
245
246
  });
246
-
247
- // handle head and foot scroll
248
- var handleHeaderWheel = (0, _hooks.usePersistFn)(function (e) {
249
- var scrollEl = scrollRef.current;
250
- if (!scrollEl) return;
251
- var max = scrollEl.scrollWidth - scrollEl.clientWidth;
252
- var scrollLeft = scrollEl.scrollLeft + e.deltaX;
253
- if (scrollLeft === scrollEl.scrollLeft) {
254
- return;
247
+ var syncHeaderScroll = (0, _hooks.usePersistFn)(function (left) {
248
+ var _theadRef$current2;
249
+ if (props.hideHeader || !props.sticky) return;
250
+ if (theadRef && theadRef !== null && theadRef !== void 0 && theadRef.current && theadRef !== null && theadRef !== void 0 && (_theadRef$current2 = theadRef.current) !== null && _theadRef$current2 !== void 0 && _theadRef$current2.parentElement) {
251
+ theadRef.current.parentElement.scrollLeft = left;
255
252
  }
256
- e.preventDefault();
257
- scrollEl.scrollLeft = Math.min(Math.max(scrollLeft, 0), max);
258
253
  });
254
+
255
+ // 简单表格的滚动事件
259
256
  var handleBodyScroll = (0, _hooks.usePersistFn)(function (e) {
260
257
  var target = e.currentTarget;
261
258
  if (!target) return;
262
259
  layoutFunc.checkFloat();
263
- if (mirrorScrollRef.current) {
264
- mirrorScrollRef.current.scrollLeft = target.scrollLeft;
260
+ if (headMirrorScrollRef.current) {
261
+ headMirrorScrollRef.current.scrollLeft = target.scrollLeft;
262
+ }
263
+ if (bottomMirrorScrollRef.current) {
264
+ bottomMirrorScrollRef.current.scrollLeft = target.scrollLeft;
265
265
  }
266
266
  if (props.onScroll && typeof props.onScroll === 'function') {
267
267
  var maxWidth = target.scrollWidth - target.clientWidth;
@@ -270,22 +270,36 @@ var _default = exports.default = function _default(props) {
270
270
  var y = Math.min(target.scrollTop / maxHeight, 1);
271
271
  props.onScroll(x, y, target.scrollLeft, target.scrollTop);
272
272
  }
273
+ syncHeaderScroll(target.scrollLeft);
273
274
  });
275
+
276
+ // 虚拟表格的滚动事件
274
277
  var handleVirtualScroll = (0, _hooks.usePersistFn)(function (info) {
275
278
  virtualInfo.handleScroll(info);
276
279
  layoutFunc.checkFloat();
277
- if (mirrorScrollRef.current) {
278
- mirrorScrollRef.current.scrollLeft = info.scrollLeft;
280
+ if (headMirrorScrollRef.current) {
281
+ headMirrorScrollRef.current.scrollLeft = info.scrollLeft;
282
+ }
283
+ if (bottomMirrorScrollRef.current) {
284
+ bottomMirrorScrollRef.current.scrollLeft = info.scrollLeft;
279
285
  }
280
286
  if (props.onScroll && typeof props.onScroll === 'function') {
281
287
  props.onScroll(info.x, info.y, info.scrollLeft, info.scrollTop);
282
288
  }
289
+ syncHeaderScroll(info.scrollLeft);
290
+ if (context.scrollingTimer) {
291
+ clearTimeout(context.scrollingTimer);
292
+ }
293
+ setScrolling(true);
294
+ context.scrollingTimer = setTimeout(function () {
295
+ setScrolling(false);
296
+ }, 100);
283
297
  });
284
298
  var renderEmpty = function renderEmpty() {
285
299
  var _props$data2;
286
300
  if (!((_props$data2 = props.data) !== null && _props$data2 !== void 0 && _props$data2.length) || filteredData !== undefined && filteredData.length === 0) {
287
301
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
288
- className: tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.emptyWrapper,
302
+ className: (0, _classnames.default)(tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.emptyWrapper, isScrollX && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.emptyNoBorder)),
289
303
  ref: function ref(el) {
290
304
  context.emptyHeight = (el === null || el === void 0 ? void 0 : el.clientHeight) || 0;
291
305
  },
@@ -304,6 +318,7 @@ var _default = exports.default = function _default(props) {
304
318
  shouldLastColAuto: !!shouldLastColAuto
305
319
  });
306
320
  var bodyCommonProps = {
321
+ virtual: props.virtual,
307
322
  hover: props.hover,
308
323
  disabled: props.disabled,
309
324
  rowClickAttr: props.rowClickAttr,
@@ -363,7 +378,6 @@ var _default = exports.default = function _default(props) {
363
378
  jssStyle: props.jssStyle,
364
379
  colgroup: colgroup
365
380
  };
366
- var fixRightNum = (isRtl ? -1 * maxScrollLeft : maxScrollLeft) - virtualInfo.innerLeft;
367
381
  var StickyWrapper = props.sticky ? _sticky.default : _react.default.Fragment;
368
382
  var sticky = _typeof(props.sticky) === 'object' ? props.sticky : {
369
383
  top: 0
@@ -376,8 +390,8 @@ var _default = exports.default = function _default(props) {
376
390
  parent: tableRef === null || tableRef === void 0 ? void 0 : tableRef.current
377
391
  };
378
392
  var isRenderVirtualTable = virtual || props.sticky || !((_props$data3 = props.data) !== null && _props$data3 !== void 0 && _props$data3.length);
379
- var headWrapperClass = (0, _classnames.default)(tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.headWrapper, isScrollY && scrollBarWidth && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.scrollY));
380
- var footWrapperClass = (0, _classnames.default)(tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.footWrapper, isScrollY && scrollBarWidth && (tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.scrollY));
393
+ var headWrapperClass = (0, _classnames.default)(tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.headWrapper, props.sticky && isScrollY && tableClasses.scrollY, props.sticky && !isScrollY && tableClasses.scrollX);
394
+ var footWrapperClass = (0, _classnames.default)(tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.footWrapper);
381
395
  var renderHeadMirrorScroller = function renderHeadMirrorScroller() {
382
396
  var _scrollRef$current, _scrollRef$current2, _scrollRef$current3;
383
397
  if (!props.showTopScrollbar) return null;
@@ -393,7 +407,7 @@ var _default = exports.default = function _default(props) {
393
407
  });
394
408
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(StickyWrapper, _objectSpread(_objectSpread({}, props.sticky ? scrollerStickyProps : {}), {}, {
395
409
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
396
- className: tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.headMirrorScroller,
410
+ className: tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.mirrorScroller,
397
411
  style: {
398
412
  height: browserScrollbarWidth,
399
413
  width: mirrorScrollRefWidth
@@ -404,7 +418,7 @@ var _default = exports.default = function _default(props) {
404
418
  scrollRef.current.scrollLeft = target.scrollLeft;
405
419
  }
406
420
  },
407
- ref: mirrorScrollRef,
421
+ ref: headMirrorScrollRef,
408
422
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
409
423
  style: {
410
424
  width: scrollRef === null || scrollRef === void 0 || (_scrollRef$current3 = scrollRef.current) === null || _scrollRef$current3 === void 0 ? void 0 : _scrollRef$current3.scrollWidth,
@@ -414,62 +428,97 @@ var _default = exports.default = function _default(props) {
414
428
  })
415
429
  }));
416
430
  };
417
- if (isRenderVirtualTable) {
418
- var _props$data4;
419
- var virtualCssVar = {
420
- '--virtual-fixed-left': "".concat(virtualInfo.innerLeft, "px"),
421
- '--virtual-fixed-right': fixRightNum > 0 ? "-".concat(fixRightNum, "px") : "".concat(fixRightNum, "px")
431
+ var renderBottomMirrorScroller = function renderBottomMirrorScroller() {
432
+ var _scrollRef$current4, _scrollRef$current5, _scrollRef$current6;
433
+ if (!props.showBottomScrollbar) return null;
434
+ var scrollRefWidth = (scrollRef === null || scrollRef === void 0 || (_scrollRef$current4 = scrollRef.current) === null || _scrollRef$current4 === void 0 ? void 0 : _scrollRef$current4.clientWidth) || 0;
435
+ var scrollRefScrollWidth = (scrollRef === null || scrollRef === void 0 || (_scrollRef$current5 = scrollRef.current) === null || _scrollRef$current5 === void 0 ? void 0 : _scrollRef$current5.scrollWidth) || 0;
436
+ var mirrorScrollRefWidth = scrollRefWidth + scrollBarWidth;
437
+ var showScroll = scrollRefScrollWidth > scrollRefWidth;
438
+ // 开启了双滚,但是没有滚动条,不显示
439
+ if (!scrollRefWidth || !mirrorScrollRefWidth || !showScroll) return null;
440
+ var options = props.showBottomScrollbar === true ? {} : props.showBottomScrollbar;
441
+ var scrollerStickyProps = {
442
+ bottom: options.bottom || 0,
443
+ zIndex: options.zIndex || _sticky.defaultZIndex + 1,
444
+ parent: tableRef === null || tableRef === void 0 ? void 0 : tableRef.current
422
445
  };
423
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
424
- children: [renderHeadMirrorScroller(), !props.hideHeader && /*#__PURE__*/(0, _jsxRuntime.jsx)(StickyWrapper, _objectSpread(_objectSpread({}, props.sticky ? stickyProps : {}), {}, {
446
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_sticky.default, _objectSpread(_objectSpread({}, scrollerStickyProps), {}, {
447
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
448
+ className: tableClasses === null || tableClasses === void 0 ? void 0 : tableClasses.mirrorScroller,
449
+ style: {
450
+ height: browserScrollbarWidth,
451
+ width: mirrorScrollRefWidth,
452
+ marginTop: -browserScrollbarWidth
453
+ },
454
+ onScroll: function onScroll(e) {
455
+ var target = e.currentTarget;
456
+ if (scrollRef !== null && scrollRef !== void 0 && scrollRef.current && scrollRef.current.scrollLeft !== target.scrollLeft) {
457
+ scrollRef.current.scrollLeft = target.scrollLeft;
458
+ }
459
+ },
460
+ ref: bottomMirrorScrollRef,
425
461
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
426
- className: headWrapperClass,
427
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
428
- style: _objectSpread({
429
- width: width,
430
- transform: "translate3d(-".concat(virtualInfo.innerLeft, "px, 0, 0)")
431
- }, virtualCssVar),
432
- ref: theadRef,
433
- children: [Group, /*#__PURE__*/(0, _jsxRuntime.jsx)(_thead.default, _objectSpread(_objectSpread({}, headCommonProps), {}, {
434
- virtual: true
435
- }))]
436
- })
462
+ style: {
463
+ width: scrollRef === null || scrollRef === void 0 || (_scrollRef$current6 = scrollRef.current) === null || _scrollRef$current6 === void 0 ? void 0 : _scrollRef$current6.scrollWidth,
464
+ height: 1
465
+ }
437
466
  })
438
- })), /*#__PURE__*/(0, _jsxRuntime.jsx)(_scroll.default, {
439
- style: scrollWrapperStyle,
440
- scrollerStyle: (_props$data4 = props.data) !== null && _props$data4 !== void 0 && _props$data4.length ? virtualScrollerStyle : emptyStyle,
467
+ })
468
+ }));
469
+ };
470
+ var $headTable = /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
471
+ className: headWrapperClass,
472
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
473
+ style: {
474
+ width: width
475
+ },
476
+ ref: theadRef,
477
+ children: [Group, /*#__PURE__*/(0, _jsxRuntime.jsx)(_thead.default, _objectSpread({}, headCommonProps))]
478
+ })
479
+ });
480
+ if (isRenderVirtualTable) {
481
+ var _props$data4;
482
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
483
+ children: [renderHeadMirrorScroller(), !props.hideHeader && props.sticky && /*#__PURE__*/(0, _jsxRuntime.jsx)(StickyWrapper, _objectSpread(_objectSpread({}, stickyProps), {}, {
484
+ children: $headTable
485
+ })), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_scrollTable.default, {
486
+ style: {
487
+ display: 'flex',
488
+ minWidth: 0,
489
+ minHeight: 0,
490
+ flex: 1
491
+ },
441
492
  wrapperRef: scrollRef,
442
493
  scrollWidth: width || 1,
443
494
  scrollHeight: virtual ? virtualInfo.scrollHeight : tbodyHeight,
444
495
  onScroll: handleVirtualScroll,
445
496
  defaultHeight: context.emptyHeight,
446
497
  isScrollY: isScrollY,
447
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
448
- style: _objectSpread({
498
+ isScrollX: isScrollX,
499
+ children: [!props.hideHeader && !props.sticky && $headTable, !!((_props$data4 = props.data) !== null && _props$data4 !== void 0 && _props$data4.length) && /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
500
+ style: {
449
501
  width: width,
450
- transform: virtualInfo.getTranslate()
451
- }, virtualCssVar),
502
+ transform: virtualInfo.translateStyle
503
+ },
452
504
  ref: tbodyRef,
453
505
  children: [Group, /*#__PURE__*/(0, _jsxRuntime.jsx)(_tbody.default, _objectSpread(_objectSpread({}, bodyCommonProps), {}, {
454
506
  currentIndex: virtualInfo.startIndex,
455
507
  data: virtualInfo.data,
456
508
  setRowHeight: virtualInfo.setRowHeight,
457
- virtual: true
458
- }))]
459
- })
460
- }), renderEmpty(), showFoot ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
461
- className: footWrapperClass,
462
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
463
- style: _objectSpread({
464
- width: width,
465
- transform: "translate3d(-".concat(virtualInfo.innerLeft, "px, 0, 0)")
466
- }, virtualCssVar),
467
- ref: tfootRef,
468
- children: [Group, /*#__PURE__*/(0, _jsxRuntime.jsx)(_tfoot.default, _objectSpread(_objectSpread({}, footCommonProps), {}, {
469
- virtual: true
509
+ scrolling: scrolling
470
510
  }))]
471
- })
472
- }) : null]
511
+ }), showFoot ? /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
512
+ className: footWrapperClass,
513
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("table", {
514
+ style: {
515
+ width: width
516
+ },
517
+ ref: tfootRef,
518
+ children: [Group, /*#__PURE__*/(0, _jsxRuntime.jsx)(_tfoot.default, _objectSpread({}, footCommonProps))]
519
+ })
520
+ }) : null, renderEmpty()]
521
+ }), renderBottomMirrorScroller()]
473
522
  });
474
523
  }
475
524
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
@@ -486,7 +535,7 @@ var _default = exports.default = function _default(props) {
486
535
  children: renderEmpty()
487
536
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_tbody.default, _objectSpread({}, bodyCommonProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_tfoot.default, _objectSpread({}, footCommonProps))]
488
537
  })
489
- })]
538
+ }), renderBottomMirrorScroller()]
490
539
  });
491
540
  };
492
541
  var renderLoading = function renderLoading() {
@@ -506,27 +555,36 @@ var _default = exports.default = function _default(props) {
506
555
  align: "right"
507
556
  }, pagination), paginationInfo));
508
557
  };
558
+
559
+ // handle head and foot scroll
560
+ var handleHeaderWheel = (0, _hooks.usePersistFn)(function (e) {
561
+ var _theadRef$current3;
562
+ var scrollEl = scrollRef.current;
563
+ if (!scrollEl) return;
564
+ if (!(theadRef !== null && theadRef !== void 0 && (_theadRef$current3 = theadRef.current) !== null && _theadRef$current3 !== void 0 && _theadRef$current3.parentElement)) return;
565
+ var max = scrollEl.scrollWidth - scrollEl.clientWidth;
566
+ var scrollLeft = scrollEl.scrollLeft + e.deltaX;
567
+ if (scrollLeft === scrollEl.scrollLeft) {
568
+ return;
569
+ }
570
+ e.preventDefault();
571
+ var left = Math.min(Math.max(scrollLeft, 0), max);
572
+ scrollEl.scrollLeft = left;
573
+ theadRef.current.parentElement.scrollLeft = left;
574
+ });
509
575
  (0, _react.useEffect)(function () {
510
576
  // 绑定 wheel 事件
511
- if (theadRef.current && theadRef.current.parentElement) {
577
+ if (props.sticky && theadRef.current && theadRef.current.parentElement) {
512
578
  theadRef.current.parentElement.addEventListener('wheel', handleHeaderWheel, {
513
579
  passive: false
514
580
  });
515
581
  }
516
- if (tfootRef.current && tfootRef.current.parentElement) {
517
- tfootRef.current.parentElement.addEventListener('wheel', handleHeaderWheel, {
518
- passive: false
519
- });
520
- }
521
582
  return function () {
522
- if (theadRef.current && theadRef.current.parentElement) {
583
+ if (props.sticky && theadRef.current && theadRef.current.parentElement) {
523
584
  theadRef.current.parentElement.removeEventListener('wheel', handleHeaderWheel);
524
585
  }
525
- if (tfootRef.current && tfootRef.current.parentElement) {
526
- tfootRef.current.parentElement.removeEventListener('wheel', handleHeaderWheel);
527
- }
528
586
  };
529
- }, [theadRef.current, isScrollY]);
587
+ }, [theadRef.current, props.sticky, isScrollY]);
530
588
  var getRenderIndexByData = function getRenderIndexByData(data) {
531
589
  var originKey = typeof data === 'string' ? data : _hooks.util.getKey(props.keygen, data);
532
590
  var index = treeData.findIndex(function (item) {
@@ -562,7 +620,7 @@ var _default = exports.default = function _default(props) {
562
620
  });
563
621
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
564
622
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("div", _objectSpread(_objectSpread({
565
- 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)),
623
+ className: (0, _classnames.default)(tableWrapperClass, _defineProperty(_defineProperty(_defineProperty({}, tableClasses.sticky, props.sticky), tableClasses.floatLeft, floatLeft), tableClasses.floatRight, floatRight)),
566
624
  style: _objectSpread({
567
625
  height: defaultHeight
568
626
  }, props.style)
@@ -18,6 +18,7 @@ import { RadioClasses } from '../radio/radio.type';
18
18
  import { PopoverClasses } from '../popover/popover.type';
19
19
  import { TreeClasses } from '../tree/tree.type';
20
20
  import { KeygenResult } from '@sheinx/hooks';
21
+ import { StickyProps } from '../sticky';
21
22
  export type ListDatum = ReturnType<typeof useListSelect<any, any>>;
22
23
  export type UseTreeResult = ReturnType<typeof useTableTree>;
23
24
  export interface TableClasses {
@@ -26,7 +27,6 @@ export interface TableClasses {
26
27
  small: string;
27
28
  large: string;
28
29
  default: string;
29
- scrollY: string;
30
30
  floatLeft: string;
31
31
  floatRight: string;
32
32
  bordered: string;
@@ -36,11 +36,14 @@ export interface TableClasses {
36
36
  simple: string;
37
37
  striped: string;
38
38
  loading: string;
39
- headMirrorScroller: string;
39
+ mirrorScroller: string;
40
40
  headWrapper: string;
41
41
  bodyWrapper: string;
42
42
  footWrapper: string;
43
43
  emptyWrapper: string;
44
+ emptyNoBorder: string;
45
+ scrollY: string;
46
+ scrollX: string;
44
47
  cellAlignLeft: string;
45
48
  cellAlignRight: string;
46
49
  cellAlignCenter: string;
@@ -202,9 +205,9 @@ export interface TableProps<DataItem, Value> extends Pick<CommonType, 'className
202
205
  fixed?: TableFix | 'auto';
203
206
  /**
204
207
  * @en Whether to use virtual list
205
- * @cn 是否使用虚拟列表
208
+ * @cn 是否使用虚拟列表,设置为 lazy 时,表示在滚动时不触发 rerender
206
209
  */
207
- virtual?: boolean;
210
+ virtual?: boolean | 'lazy';
208
211
  /**
209
212
  * @en The maximum number of rows for a single render. Table uses lazy render to optimize performance under large amounts of data. If your table displays more than 20 rows, you can change the value of rowsInView. Value of 0 render all data.
210
213
  * @cn 单次 render的 最大行数。Table 采用了 lazy render 的方式来优化在大量数据下的性能,如果你的表格显示的高度超出了20条,可以调整 rowsInView 的值。为 0 表示单次 render 所有数据。
@@ -333,6 +336,7 @@ export interface TableProps<DataItem, Value> extends Pick<CommonType, 'className
333
336
  sticky?: boolean | {
334
337
  top?: number;
335
338
  css?: boolean;
339
+ target?: Element | null;
336
340
  };
337
341
  /**
338
342
  * @en Whether to show the top scroller
@@ -341,6 +345,13 @@ export interface TableProps<DataItem, Value> extends Pick<CommonType, 'className
341
345
  * @version 3.4.0
342
346
  */
343
347
  showTopScrollbar?: boolean;
348
+ /**
349
+ * @en Whether to show the bottom scroller
350
+ * @cn 是否开启底部自定吸附的滚动条
351
+ * @default false
352
+ * @version 3.7.0
353
+ */
354
+ showBottomScrollbar?: boolean | BottomScrollbarOption;
344
355
  /**
345
356
  * @en Table instance (please use with caution: only fixed Table)
346
357
  * @cn Table 实例(请谨慎使用:仅虚拟列表支持)
@@ -352,6 +363,9 @@ export interface TableProps<DataItem, Value> extends Pick<CommonType, 'className
352
363
  */
353
364
  onRowSelect?: (rows: Value) => void;
354
365
  }
366
+ interface BottomScrollbarOption extends Pick<StickyProps, 'bottom'> {
367
+ zIndex?: number;
368
+ }
355
369
  export interface SorterInfo {
356
370
  order?: ColumnOrder;
357
371
  /**
@@ -389,4 +403,5 @@ export interface SummaryItem {
389
403
  * @title TableColumn
390
404
  */
391
405
  export type ColumnItem<DataItem> = TableColumnItem<DataItem>;
406
+ export {};
392
407
  //# sourceMappingURL=table.type.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"table.type.d.ts","sourceRoot":"","sources":["table.type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AACnE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;AAE5D,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAE5B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,EAAE,MAAM,CAAC;IAEhB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IAErB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IAErB,QAAQ,EAAE,MAAM,CAAC;IAEjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAElB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IAEnB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IAEpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IAErB,aAAa,EAAE,MAAM,CAAC;IACtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAE9B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IAEpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,MAAM,WAAW,QAAQ;IACvB,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACxD,oBAAoB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC;IAC5C,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACxD,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,YAAY,EAAE,CAAC,MAAM,EAAE;QAAC,SAAS,EAAE,YAAY,CAAC;QAAC,SAAS,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAA;KAAC,KAAK,IAAI,CAAC;IAC1I,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB,CAAC,QAAQ,EAAE,KAAK;IAC/C;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IACd;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;IACpC;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;IAC3F;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC;IACvF,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;CACjD;AAED,MAAM,WAAW,UAAU,CAAC,QAAQ,EAAE,KAAK,CACzC,SAAQ,IAAI,CAAC,UAAU,EAAE,WAAW,GAAG,OAAO,CAAC,EAC7C,cAAc,CAAC,QAAQ,CAAC,EACxB,gBAAgB,CAAC,QAAQ,EAAE,KAAK,CAAC;IACnC,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,YAAY,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,eAAe,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,YAAY,CAAC;QAC3B,IAAI,CAAC,EAAE,MAAM,WAAW,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,iBAAiB,CAAC;QACrC,MAAM,CAAC,EAAE,MAAM,aAAa,CAAC;QAC7B,KAAK,CAAC,EAAE,MAAM,YAAY,CAAC;QAC3B,KAAK,CAAC,EAAE,MAAM,YAAY,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,aAAa,CAAC;QAC7B,QAAQ,CAAC,EAAE,MAAM,eAAe,CAAC;QACjC,UAAU,CAAC,EAAE,MAAM,iBAAiB,CAAC;QACrC,UAAU,CAAC,EAAE,MAAM,iBAAiB,CAAC;QACrC,MAAM,CAAC,EAAE,MAAM,aAAa,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,cAAc,CAAA;QAC9B,IAAI,CAAC,EAAE,MAAM,WAAW,CAAC;KAC1B,CAAC;IACF;;;;OAIG;IACH,WAAW,CAAC,EAAE,CACZ,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;KAC5B,KACE,IAAI,CAAC;IACV;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrE;;;OAGG;IACH,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,SAAS,CAAC;IACpC;;OAEG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;IAC1B;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;IAChD;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC;IAC3C;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;IACrF;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACxE;;;;OAIG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB;;;;OAIG;IACH,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9D;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,EAAE,GAAG,WAAW,EAAE,CAAC;IAC1C;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,GAAG;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAEnD;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;OAEG;IACH,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEzC,MAAM,MAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,CAAC;AAE1C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,YAAY,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"table.type.d.ts","sourceRoot":"","sources":["table.type.ts"],"names":[],"mappings":"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"}
@@ -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,wBAwEE"}
1
+ {"version":3,"file":"tbody.d.ts","sourceRoot":"","sources":["tbody.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;gCAEnB,UAAU;AAAjC,wBAsFE"}
@@ -30,7 +30,6 @@ var _default = exports.default = function _default(props) {
30
30
  hover: hover
31
31
  }),
32
32
  rowData = _useTableRow.rowData,
33
- isCellHover = _useTableRow.isCellHover,
34
33
  handleCellHover = _useTableRow.handleCellHover,
35
34
  hoverIndex = _useTableRow.hoverIndex,
36
35
  rowSelectMergeStartData = _useTableRow.rowSelectMergeStartData;
@@ -38,9 +37,10 @@ var _default = exports.default = function _default(props) {
38
37
  return col.type === 'expand' || col.type === 'row-expand';
39
38
  });
40
39
  var renderRow = function renderRow(item, index) {
40
+ var _props$rowEvents;
41
41
  var rowIndex = index + currentIndex;
42
42
  var originKey = _hooks.util.getKey(props.keygen, item, rowIndex);
43
- var trRenderKey = props.loader ? originKey : "".concat(originKey, "-").concat(rowIndex);
43
+ var trRenderKey = props.loader || (_props$rowEvents = props.rowEvents) !== null && _props$rowEvents !== void 0 && _props$rowEvents.draggable ? originKey : "".concat(originKey, "-").concat(rowIndex);
44
44
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_tr.default, {
45
45
  originKey: originKey,
46
46
  row: rowData[index],
@@ -65,10 +65,8 @@ var _default = exports.default = function _default(props) {
65
65
  isEmptyTree: props.isEmptyTree,
66
66
  treeColumnsName: props.treeColumnsName,
67
67
  setRowHeight: props.setRowHeight,
68
- virtual: props.virtual,
69
68
  striped: props.striped,
70
69
  radio: props.radio,
71
- isCellHover: isCellHover,
72
70
  hover: hover,
73
71
  isSelect: props.datum.check(rowSelectMergeStartData[index]),
74
72
  handleCellHover: handleCellHover
@@ -82,12 +80,21 @@ var _default = exports.default = function _default(props) {
82
80
  bodyScrollWidth: props.bodyScrollWidth,
83
81
  resizeFlag: props.resizeFlag,
84
82
  treeCheckAll: props.treeCheckAll,
85
- onCellClick: props.onCellClick
83
+ onCellClick: props.onCellClick,
84
+ virtual: props.virtual,
85
+ scrolling: props.scrolling
86
86
  }, trRenderKey);
87
87
  };
88
- return /*#__PURE__*/(0, _jsxRuntime.jsx)("tbody", {
89
- children: (props.data || []).map(function (item, index) {
90
- return renderRow(item, index);
91
- })
92
- });
88
+ var $tbody = (0, _hooks.useComponentMemo)(function () {
89
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)("tbody", {
90
+ children: (props.data || []).map(function (item, index) {
91
+ return renderRow(item, index);
92
+ })
93
+ });
94
+ }, [props.data, currentIndex], props.virtual === 'lazy' ? function (prev, next) {
95
+ return prev.some(function (_, index) {
96
+ return !_hooks.util.shallowEqual(prev === null || prev === void 0 ? void 0 : prev[index], next === null || next === void 0 ? void 0 : next[index]);
97
+ }) || !props.scrolling;
98
+ } : undefined);
99
+ return $tbody;
93
100
  };
@@ -3,7 +3,7 @@ import { TableProps, ListDatum, UseTreeResult } from './table.type';
3
3
  import type { TableFormatColumn, OptionalToRequired } from '@sheinx/hooks';
4
4
  export type UseColumnsResult = ReturnType<typeof useTableColumns>;
5
5
  export type UseTableRowResult = ReturnType<typeof useTableRow>;
6
- export interface TbodyProps extends Pick<OptionalToRequired<TableProps<any, any>>, 'data' | 'jssStyle' | 'rowClassName' | 'expandKeys' | 'keygen' | 'treeEmptyExpand' | 'expandIcon' | 'treeExpandIcon' | 'loader' | 'striped' | 'radio' | 'onRowClick' | 'rowClickAttr' | 'rowEvents' | 'disabled' | 'hover' | 'treeCheckAll' | 'onCellClick'> {
6
+ export interface TbodyProps extends Pick<OptionalToRequired<TableProps<any, any>>, 'data' | 'jssStyle' | 'rowClassName' | 'expandKeys' | 'keygen' | 'treeEmptyExpand' | 'expandIcon' | 'treeExpandIcon' | 'loader' | 'striped' | 'radio' | 'onRowClick' | 'rowClickAttr' | 'rowEvents' | 'disabled' | 'hover' | 'treeCheckAll' | 'onCellClick' | 'virtual'> {
7
7
  columns: TableFormatColumn<any>[];
8
8
  data: any[];
9
9
  colgroup: (number | string | undefined)[];
@@ -16,8 +16,8 @@ export interface TbodyProps extends Pick<OptionalToRequired<TableProps<any, any>
16
16
  isEmptyTree: boolean | undefined;
17
17
  treeColumnsName: string | undefined;
18
18
  setRowHeight?: (index: number, height: number) => void;
19
- virtual?: boolean;
20
19
  bodyScrollWidth?: number;
21
20
  resizeFlag?: number;
21
+ scrolling?: boolean;
22
22
  }
23
23
  //# sourceMappingURL=tbody.type.d.ts.map