@kdcloudjs/table 1.2.2-canary.11 → 1.2.2-canary.11-hotfix.0

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 (180) hide show
  1. package/LICENSE +568 -568
  2. package/README.md +111 -111
  3. package/dist/@kdcloudjs/table.css +1 -1
  4. package/dist/@kdcloudjs/table.js +3305 -3340
  5. package/dist/@kdcloudjs/table.js.map +1 -1
  6. package/dist/@kdcloudjs/table.min.css +1 -1
  7. package/dist/@kdcloudjs/table.min.js +11 -13
  8. package/dist/@kdcloudjs/table.min.js.map +1 -1
  9. package/dist/kd-ui-complete.less +777 -777
  10. package/es/_utils/formatUtil.js +5 -1
  11. package/es/_utils/hooks.js +3 -3
  12. package/es/_utils/usePopper.js +13 -13
  13. package/es/locale/locale.js +7 -6
  14. package/es/style/color/colors.less +1 -1
  15. package/es/style/core/index.less +1 -1
  16. package/es/style/core/motion/other.less +27 -27
  17. package/es/style/core/motion/slide.less +53 -53
  18. package/es/style/core/motion.less +1 -1
  19. package/es/style/core/reset.less +185 -185
  20. package/es/style/index.less +1 -1
  21. package/es/style/mixins/index.less +18 -18
  22. package/es/style/mixins/overlay.less +21 -21
  23. package/es/style/mixins/reset.less +12 -12
  24. package/es/style/themes/default.less +445 -445
  25. package/es/table/base/BlankComponent.d.ts +11 -0
  26. package/es/table/base/BlankComponent.js +61 -0
  27. package/es/table/base/calculations.js +3 -3
  28. package/es/table/base/empty.js +2 -2
  29. package/es/table/base/globalStyleComponent.js +8 -6
  30. package/es/table/base/header.js +7 -5
  31. package/es/table/base/helpers/FastScrollManager.d.ts +96 -0
  32. package/es/table/base/helpers/FastScrollManager.js +167 -0
  33. package/es/table/base/helpers/SpanManager.js +2 -1
  34. package/es/table/base/helpers/TableDOMUtils.js +6 -5
  35. package/es/table/base/html-table.js +4 -3
  36. package/es/table/base/loading.js +2 -2
  37. package/es/table/base/renderTemplates.js +16 -16
  38. package/es/table/base/table.d.ts +13 -0
  39. package/es/table/base/table.js +141 -84
  40. package/es/table/base/utils.js +3 -3
  41. package/es/table/pipeline/features/columnDrag.js +1 -0
  42. package/es/table/pipeline/features/columnFilter.js +3 -1
  43. package/es/table/pipeline/features/columnResizeWidth.js +2 -2
  44. package/es/table/pipeline/features/contextMenu.js +6 -4
  45. package/es/table/pipeline/features/featureApi/RowDragApi.js +2 -1
  46. package/es/table/pipeline/features/filter/DefaultFilterContent.js +5 -4
  47. package/es/table/pipeline/features/filter/Filter.js +3 -2
  48. package/es/table/pipeline/features/rangeSelection.js +10 -10
  49. package/es/table/pipeline/features/rowDetail.js +2 -2
  50. package/es/table/pipeline/features/rowDrag.js +2 -1
  51. package/es/table/pipeline/features/rowGrouping.js +2 -2
  52. package/es/table/pipeline/features/sort.js +7 -6
  53. package/es/table/pipeline/features/tips.js +4 -4
  54. package/es/table/pipeline/features/treeMode.js +5 -5
  55. package/es/table/pipeline/features/treeSelect.js +2 -2
  56. package/es/table/pipeline/pipeline.js +2 -1
  57. package/es/table/pivot/cross-table/buildCrossTable.js +8 -6
  58. package/es/table/pivot/cross-table/cross-table.js +3 -1
  59. package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +10 -8
  60. package/es/table/pivot/cross-tree-table/cross-tree-table.js +11 -8
  61. package/es/table/pivot/pivot-utils/builders.js +3 -3
  62. package/es/table/pivot/pivot-utils/convert-utils.js +3 -3
  63. package/es/table/style/index.less +1 -1
  64. package/es/table/transforms/autoWidth.js +3 -3
  65. package/es/table/transforms/columnResize.js +5 -3
  66. package/es/table/transforms/sort.js +8 -6
  67. package/es/table/transforms/tips.js +4 -4
  68. package/es/table/transforms/treeMode.js +8 -6
  69. package/es/table/utils/buildTree.js +3 -3
  70. package/es/table/utils/collectNodes.js +3 -3
  71. package/es/table/utils/exportTableAsExcel.js +3 -3
  72. package/es/table/utils/getTreeDepth.js +3 -3
  73. package/es/table/utils/groupBy.js +3 -3
  74. package/es/table/utils/makeRecursiveMapper.js +3 -3
  75. package/es/table/utils/mergeCellProps.js +1 -0
  76. package/es/table/utils/others.js +3 -3
  77. package/es/table/utils/traverseColumn.js +3 -3
  78. package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +8 -7
  79. package/es/table/utils/tree-data-helpers/TreeDataHelper.js +5 -4
  80. package/lib/_utils/arrayUtil.js +3 -2
  81. package/lib/_utils/formatUtil.js +5 -1
  82. package/lib/_utils/hooks.js +3 -3
  83. package/lib/_utils/index.js +3 -2
  84. package/lib/_utils/type.js +5 -3
  85. package/lib/_utils/usePopper.js +21 -18
  86. package/lib/config-provider/ConfigContext.js +2 -1
  87. package/lib/config-provider/compDefaultProps.js +2 -1
  88. package/lib/config-provider/configProvider.js +4 -3
  89. package/lib/config-provider/defaultConfig.js +2 -1
  90. package/lib/config-provider/index.js +2 -1
  91. package/lib/locale/index.js +4 -3
  92. package/lib/locale/locale.js +14 -10
  93. package/lib/locale/zh-CN.js +2 -1
  94. package/lib/style/color/colors.less +1 -1
  95. package/lib/style/components.less +1 -1
  96. package/lib/style/core/index.less +1 -1
  97. package/lib/style/core/motion/other.less +27 -27
  98. package/lib/style/core/motion/slide.less +53 -53
  99. package/lib/style/core/motion.less +1 -1
  100. package/lib/style/core/reset.less +185 -185
  101. package/lib/style/index.less +1 -1
  102. package/lib/style/mixins/index.less +18 -18
  103. package/lib/style/mixins/overlay.less +21 -21
  104. package/lib/style/mixins/reset.less +12 -12
  105. package/lib/style/themes/default.less +445 -445
  106. package/lib/table/base/BlankComponent.d.ts +11 -0
  107. package/lib/table/base/BlankComponent.js +75 -0
  108. package/lib/table/base/calculations.js +3 -3
  109. package/lib/table/base/empty.js +4 -4
  110. package/lib/table/base/globalStyleComponent.js +13 -10
  111. package/lib/table/base/header.js +7 -5
  112. package/lib/table/base/helpers/FastScrollManager.d.ts +96 -0
  113. package/lib/table/base/helpers/FastScrollManager.js +175 -0
  114. package/lib/table/base/helpers/SpanManager.js +5 -3
  115. package/lib/table/base/helpers/TableDOMUtils.js +9 -7
  116. package/lib/table/base/helpers/getRichVisibleRectsStream.js +2 -2
  117. package/lib/table/base/html-table.js +4 -3
  118. package/lib/table/base/loading.js +2 -2
  119. package/lib/table/base/renderTemplates.js +18 -18
  120. package/lib/table/base/styles.js +18 -10
  121. package/lib/table/base/table.d.ts +13 -0
  122. package/lib/table/base/table.js +152 -96
  123. package/lib/table/base/utils.js +20 -13
  124. package/lib/table/common-views.js +8 -4
  125. package/lib/table/internals.js +3 -2
  126. package/lib/table/pipeline/const.js +3 -2
  127. package/lib/table/pipeline/features/autoFill.js +6 -3
  128. package/lib/table/pipeline/features/colGroupExtendable.js +3 -2
  129. package/lib/table/pipeline/features/columnDrag.js +1 -0
  130. package/lib/table/pipeline/features/columnFilter.js +3 -1
  131. package/lib/table/pipeline/features/columnResizeWidth.js +10 -7
  132. package/lib/table/pipeline/features/contextMenu.js +8 -6
  133. package/lib/table/pipeline/features/featureApi/RowDragApi.js +5 -3
  134. package/lib/table/pipeline/features/filter/DefaultFilterContent.js +9 -7
  135. package/lib/table/pipeline/features/filter/Filter.js +7 -5
  136. package/lib/table/pipeline/features/filter/FilterPanel.js +4 -3
  137. package/lib/table/pipeline/features/filter/util.js +3 -2
  138. package/lib/table/pipeline/features/footerDataSource.js +2 -1
  139. package/lib/table/pipeline/features/rangeSelection.js +14 -12
  140. package/lib/table/pipeline/features/rowDetail.js +2 -2
  141. package/lib/table/pipeline/features/rowDrag.js +8 -4
  142. package/lib/table/pipeline/features/rowGrouping.js +2 -2
  143. package/lib/table/pipeline/features/sort.js +7 -6
  144. package/lib/table/pipeline/features/tips.js +4 -4
  145. package/lib/table/pipeline/features/treeMode.js +9 -7
  146. package/lib/table/pipeline/features/treeSelect.js +2 -2
  147. package/lib/table/pipeline/index.js +2 -2
  148. package/lib/table/pipeline/pipeline.js +4 -2
  149. package/lib/table/pivot/cross-table/buildCrossTable.js +8 -6
  150. package/lib/table/pivot/cross-table/constants.js +2 -1
  151. package/lib/table/pivot/cross-table/cross-table.js +6 -3
  152. package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +10 -8
  153. package/lib/table/pivot/cross-tree-table/cross-tree-table.js +13 -9
  154. package/lib/table/pivot/pivot-utils/builders.js +3 -3
  155. package/lib/table/pivot/pivot-utils/convert-utils.js +3 -3
  156. package/lib/table/style/index.less +1 -1
  157. package/lib/table/transforms/autoWidth.js +5 -5
  158. package/lib/table/transforms/columnResize.js +7 -5
  159. package/lib/table/transforms/sort.js +10 -8
  160. package/lib/table/transforms/tips.js +4 -4
  161. package/lib/table/transforms/treeMode.js +10 -8
  162. package/lib/table/use/useResizeObserver.js +2 -1
  163. package/lib/table/utils/browserType.js +4 -2
  164. package/lib/table/utils/buildTree.js +3 -3
  165. package/lib/table/utils/collectNodes.js +3 -3
  166. package/lib/table/utils/console.js +3 -2
  167. package/lib/table/utils/copyToClipboard.js +2 -1
  168. package/lib/table/utils/exportTableAsExcel.js +3 -3
  169. package/lib/table/utils/getTreeDepth.js +3 -3
  170. package/lib/table/utils/groupBy.js +3 -3
  171. package/lib/table/utils/keyCode.js +2 -1
  172. package/lib/table/utils/makeRecursiveMapper.js +3 -3
  173. package/lib/table/utils/mergeCellProps.js +1 -0
  174. package/lib/table/utils/others.js +5 -4
  175. package/lib/table/utils/proto.js +2 -1
  176. package/lib/table/utils/selectColumn.js +4 -2
  177. package/lib/table/utils/traverseColumn.js +3 -3
  178. package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +11 -9
  179. package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +8 -6
  180. package/package.json +218 -218
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
- var _mapInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/map");
5
- var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
4
  var _Reflect$construct = require("@babel/runtime-corejs3/core-js-stable/reflect/construct");
7
5
  var _sliceInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/slice");
8
6
  var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from");
@@ -23,9 +21,9 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/e
23
21
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
24
22
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
25
23
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
24
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits"));
26
25
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn"));
27
26
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf"));
28
- var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits"));
29
27
  var _classnames = _interopRequireDefault(require("classnames"));
30
28
  var _react = _interopRequireDefault(require("react"));
31
29
  var _rxjs = require("rxjs");
@@ -36,6 +34,7 @@ var _header = _interopRequireDefault(require("./header"));
36
34
  var _getRichVisibleRectsStream = require("./helpers/getRichVisibleRectsStream");
37
35
  var _rowHeightManager = require("./helpers/rowHeightManager");
38
36
  var _TableDOMUtils = require("./helpers/TableDOMUtils");
37
+ var _FastScrollManager = require("./helpers/FastScrollManager");
39
38
  var _htmlTable = require("./html-table");
40
39
  var _loading = _interopRequireDefault(require("./loading"));
41
40
  var _styles = require("./styles");
@@ -43,13 +42,14 @@ var _globalStyleComponent = _interopRequireDefault(require("./globalStyleCompone
43
42
  var _utils = require("./utils");
44
43
  var _utils2 = require("../utils");
45
44
  var _renderTemplates = _interopRequireDefault(require("./renderTemplates"));
46
- 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); }
47
- 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 && {}.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; }
48
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof _Symbol && _getIteratorMethod(r) || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
49
- function _unsupportedIterableToArray(r, a) { if (r) { var _context2; if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = _sliceInstanceProperty2(_context2 = {}.toString.call(r)).call(_context2, 8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? _Array$from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
50
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
51
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
52
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
45
+ var _BlankComponent = require("./BlankComponent");
46
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
47
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
48
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
49
+ function _unsupportedIterableToArray(o, minLen) { var _context2; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty2(_context2 = Object.prototype.toString.call(o)).call(_context2, 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); }
50
+ 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; }
51
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
52
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
53
53
  var propsDotEmptyContentDeprecatedWarned = false;
54
54
  function warnPropsDotEmptyContentIsDeprecated() {
55
55
  if (!propsDotEmptyContentDeprecatedWarned) {
@@ -57,15 +57,20 @@ function warnPropsDotEmptyContentIsDeprecated() {
57
57
  _utils2.console.warn('BaseTable props.emptyContent 已经过时,请使用 props.components.EmptyContent 来自定义数据为空时的表格表现');
58
58
  }
59
59
  }
60
- var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
60
+ var BaseTable = /*#__PURE__*/function (_React$Component) {
61
+ (0, _inherits2.default)(BaseTable, _React$Component);
62
+ var _super = _createSuper(BaseTable);
61
63
  function BaseTable(props) {
62
64
  var _this;
63
65
  (0, _classCallCheck2.default)(this, BaseTable);
64
- _this = _callSuper(this, BaseTable, [props]);
66
+ _this = _super.call(this, props);
65
67
  _this.rowHeightManager = (0, _rowHeightManager.makeRowHeightManager)(_this.props.dataSource.length, _this.props.estimatedRowHeight);
66
68
  _this.artTableWrapperRef = /*#__PURE__*/_react.default.createRef();
67
69
  _this.hasScrollY = false;
68
70
  _this.offsetY = 0;
71
+ // Blank组件的引用,用于快速滚动时直接更新
72
+ _this.topBlankRef = /*#__PURE__*/_react.default.createRef();
73
+ _this.bottomBlankRef = /*#__PURE__*/_react.default.createRef();
69
74
  _this.handleRowMouseEnter = function (e) {
70
75
  var nodeList = _this.domHelper.getRowNodeListByEvent(e);
71
76
  nodeList && nodeList.forEach(function (node) {
@@ -85,8 +90,7 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
85
90
  getRowProps = _this$props.getRowProps,
86
91
  primaryKey = _this$props.primaryKey,
87
92
  isLoading = _this$props.isLoading,
88
- emptyCellHeight = _this$props.emptyCellHeight,
89
- footerDataSource = _this$props.footerDataSource;
93
+ emptyCellHeight = _this$props.emptyCellHeight;
90
94
  var tableBodyClassName = (0, _classnames.default)(_styles.Classes.tableBody, _styles.Classes.horizontalScrollContainer);
91
95
  // 低版本Edge浏览器下也会出现双滚动条,这里设置overflow: 'hidden',先去掉edge的方向键控制滚动条的功能
92
96
  var virtualStyle = _utils2.browserType.isIE || _utils2.browserType.isEdge ? {
@@ -136,13 +140,10 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
136
140
  className: _styles.Classes.virtual,
137
141
  tabIndex: -1,
138
142
  style: virtualStyle
139
- }, topBlank > 0 && (/*#__PURE__*/_react.default.createElement("div", {
140
- key: "top-blank",
141
- className: (0, _classnames.default)(_styles.Classes.virtualBlank, 'top'),
142
- style: {
143
- height: topBlank
144
- }
145
- })), /*#__PURE__*/_react.default.createElement(_htmlTable.HtmlTable, {
143
+ }, /*#__PURE__*/_react.default.createElement(_BlankComponent.TopBlank, {
144
+ ref: _this.topBlankRef,
145
+ height: topBlank
146
+ }), /*#__PURE__*/_react.default.createElement(_htmlTable.HtmlTable, {
146
147
  tbodyHtmlTag: "tbody",
147
148
  getRowProps: getRowProps,
148
149
  primaryKey: primaryKey,
@@ -154,13 +155,10 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
154
155
  limit: bottomIndex,
155
156
  last: dataSource.length - 1
156
157
  }
157
- }), bottomBlank > 0 && (/*#__PURE__*/_react.default.createElement("div", {
158
- key: "bottom-blank",
159
- className: (0, _classnames.default)(_styles.Classes.virtualBlank, 'bottom'),
160
- style: {
161
- height: bottomBlank
162
- }
163
- }))));
158
+ }), /*#__PURE__*/_react.default.createElement(_BlankComponent.BottomBlank, {
159
+ ref: _this.bottomBlankRef,
160
+ height: bottomBlank
161
+ })));
164
162
  };
165
163
  _this.state = {
166
164
  hasScroll: true,
@@ -174,11 +172,30 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
174
172
  maxRenderHeight: 600,
175
173
  maxRenderWidth: 800
176
174
  };
175
+ // 初始化快速滚动管理器
176
+ var fastScrollCallbacks = {
177
+ onFastScrollStart: function onFastScrollStart(renderData) {
178
+ _this.setState({
179
+ previousRenderData: renderData
180
+ });
181
+ },
182
+ onFastScrollEnd: function onFastScrollEnd(scrollData) {
183
+ _this.setState({
184
+ previousRenderData: undefined,
185
+ offsetY: scrollData.offsetY,
186
+ maxRenderHeight: scrollData.maxRenderHeight,
187
+ maxRenderWidth: scrollData.maxRenderWidth
188
+ });
189
+ },
190
+ getCurrentRenderRange: function getCurrentRenderRange(offsetY, maxRenderHeight, dataLength) {
191
+ return _this.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, dataLength);
192
+ }
193
+ };
194
+ _this.fastScrollManager = new _FastScrollManager.FastScrollManager(fastScrollCallbacks);
177
195
  return _this;
178
196
  }
179
197
  /** @deprecated BaseTable.getDoms() 已经过时,请勿调用 */
180
- (0, _inherits2.default)(BaseTable, _React$Component);
181
- return (0, _createClass2.default)(BaseTable, [{
198
+ (0, _createClass2.default)(BaseTable, [{
182
199
  key: "getDoms",
183
200
  value: function getDoms() {
184
201
  _utils2.console.warn('[kd-table] BaseTable.getDoms() 已经过时');
@@ -320,11 +337,18 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
320
337
  }, {
321
338
  key: "getVerticalRenderRange",
322
339
  value: function getVerticalRenderRange(useVirtual) {
323
- var dataSource = this.props.dataSource;
340
+ var _this$props4 = this.props,
341
+ dataSource = _this$props4.dataSource,
342
+ isLowPerformance = _this$props4.isLowPerformance;
324
343
  var _this$state = this.state,
325
344
  offsetY = _this$state.offsetY,
326
- maxRenderHeight = _this$state.maxRenderHeight;
345
+ maxRenderHeight = _this$state.maxRenderHeight,
346
+ previousRenderData = _this$state.previousRenderData;
327
347
  var rowCount = dataSource.length;
348
+ // 只有在启用快速滚动时才使用 FastScrollManager 的判断
349
+ if (isLowPerformance && this.fastScrollManager.getIsFastScrolling() && (previousRenderData === null || previousRenderData === void 0 ? void 0 : previousRenderData.verticalRenderRange)) {
350
+ return previousRenderData.verticalRenderRange;
351
+ }
328
352
  if (useVirtual.vertical) {
329
353
  return this.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, rowCount);
330
354
  } else {
@@ -335,12 +359,12 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
335
359
  key: "renderTableFooter",
336
360
  value: function renderTableFooter(info) {
337
361
  // console.log('render footer')
338
- var _this$props4 = this.props,
339
- _this$props4$footerDa = _this$props4.footerDataSource,
340
- footerDataSource = _this$props4$footerDa === void 0 ? [] : _this$props4$footerDa,
341
- getRowProps = _this$props4.getRowProps,
342
- primaryKey = _this$props4.primaryKey,
343
- stickyBottom = _this$props4.stickyBottom;
362
+ var _this$props5 = this.props,
363
+ _this$props5$footerDa = _this$props5.footerDataSource,
364
+ footerDataSource = _this$props5$footerDa === void 0 ? [] : _this$props5$footerDa,
365
+ getRowProps = _this$props5.getRowProps,
366
+ primaryKey = _this$props5.primaryKey,
367
+ stickyBottom = _this$props5.stickyBottom;
344
368
  var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
345
369
  var renderFooter = (0, _renderTemplates.default)('footer');
346
370
  if (typeof renderFooter === 'function') {
@@ -405,9 +429,9 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
405
429
  key: "renderStickyScroll",
406
430
  value: function renderStickyScroll(info) {
407
431
  // console.log('render stickyscroll')
408
- var _this$props5 = this.props,
409
- hasStickyScroll = _this$props5.hasStickyScroll,
410
- stickyBottom = _this$props5.stickyBottom;
432
+ var _this$props6 = this.props,
433
+ hasStickyScroll = _this$props6.hasStickyScroll,
434
+ stickyBottom = _this$props6.stickyBottom;
411
435
  var hasScroll = this.state.hasScroll;
412
436
  var isScroll = hasStickyScroll && hasScroll;
413
437
  var stickyScrollContainerStyle = this.getStickyScrollContainerStyle();
@@ -444,9 +468,9 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
444
468
  }, {
445
469
  key: "getStickyScrollContainerStyle",
446
470
  value: function getStickyScrollContainerStyle() {
447
- var _this$props6 = this.props,
448
- hasStickyScroll = _this$props6.hasStickyScroll,
449
- stickyScrollHeight = _this$props6.stickyScrollHeight;
471
+ var _this$props7 = this.props,
472
+ hasStickyScroll = _this$props7.hasStickyScroll,
473
+ stickyScrollHeight = _this$props7.stickyScrollHeight;
450
474
  var hasScroll = this.state.hasScroll;
451
475
  var isScroll = hasStickyScroll && hasScroll;
452
476
  var height = stickyScrollHeight === 'auto' ? this.getScrollBarWidth() : stickyScrollHeight;
@@ -460,24 +484,25 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
460
484
  }, {
461
485
  key: "render",
462
486
  value: function render() {
487
+ var _cx;
463
488
  // console.log('render table')
464
489
  var info = (0, _calculations.calculateRenderInfo)(this);
465
490
  this.lastInfo = info;
466
- var _this$props7 = this.props,
467
- dataSource = _this$props7.dataSource,
468
- className = _this$props7.className,
469
- style = _this$props7.style,
470
- hasHeader = _this$props7.hasHeader,
471
- useOuterBorder = _this$props7.useOuterBorder,
472
- isStickyHead = _this$props7.isStickyHead,
473
- isStickyHeader = _this$props7.isStickyHeader,
474
- isStickyFooter = _this$props7.isStickyFooter,
475
- isLoading = _this$props7.isLoading,
476
- getTableProps = _this$props7.getTableProps,
477
- footerDataSource = _this$props7.footerDataSource,
478
- components = _this$props7.components,
479
- bordered = _this$props7.bordered;
480
- var artTableWrapperClassName = (0, _classnames.default)(_styles.Classes.artTableWrapper, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({
491
+ var _this$props8 = this.props,
492
+ dataSource = _this$props8.dataSource,
493
+ className = _this$props8.className,
494
+ style = _this$props8.style,
495
+ hasHeader = _this$props8.hasHeader,
496
+ useOuterBorder = _this$props8.useOuterBorder,
497
+ isStickyHead = _this$props8.isStickyHead,
498
+ isStickyHeader = _this$props8.isStickyHeader,
499
+ isStickyFooter = _this$props8.isStickyFooter,
500
+ isLoading = _this$props8.isLoading,
501
+ getTableProps = _this$props8.getTableProps,
502
+ footerDataSource = _this$props8.footerDataSource,
503
+ components = _this$props8.components,
504
+ bordered = _this$props8.bordered;
505
+ var artTableWrapperClassName = (0, _classnames.default)(_styles.Classes.artTableWrapper, (_cx = {
481
506
  'use-outer-border': useOuterBorder,
482
507
  empty: dataSource.length === 0,
483
508
  lock: info.hasLockColumn,
@@ -485,7 +510,7 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
485
510
  'sticky-header': isStickyHeader !== null && isStickyHeader !== void 0 ? isStickyHeader : isStickyHead,
486
511
  'has-footer': footerDataSource.length > 0,
487
512
  'sticky-footer': isStickyFooter
488
- }, _styles.Classes.artTableBordered, bordered), 'ie-polyfill-wrapper', _utils2.browserType.isIE), 'sticky-polyfill-wrapper', (0, _utils2.isStickyUIDegrade)()), className);
513
+ }, (0, _defineProperty2.default)(_cx, _styles.Classes.artTableBordered, bordered), (0, _defineProperty2.default)(_cx, 'ie-polyfill-wrapper', _utils2.browserType.isIE), (0, _defineProperty2.default)(_cx, 'sticky-polyfill-wrapper', (0, _utils2.isStickyUIDegrade)()), _cx), className);
489
514
  var artTableWrapperProps = (0, _defineProperty2.default)({
490
515
  className: artTableWrapperClassName,
491
516
  style: style
@@ -510,10 +535,10 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
510
535
  this.initSubscriptions();
511
536
  this.didMountOrUpdate();
512
537
  // console.log('did mount end')
513
- var _this$props8 = this.props,
514
- cssVariables = _this$props8.cssVariables,
515
- enableCSSVariables = _this$props8.enableCSSVariables,
516
- bordered = _this$props8.bordered;
538
+ var _this$props9 = this.props,
539
+ cssVariables = _this$props9.cssVariables,
540
+ enableCSSVariables = _this$props9.enableCSSVariables,
541
+ bordered = _this$props9.bordered;
517
542
  (0, _utils.cssPolifill)({
518
543
  variables: cssVariables || {},
519
544
  enableCSSVariables: enableCSSVariables,
@@ -528,10 +553,10 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
528
553
  value: function componentDidUpdate(prevProps, prevState) {
529
554
  var _a;
530
555
  // console.log('did update start')
531
- var _this$props9 = this.props,
532
- cssVariables = _this$props9.cssVariables,
533
- enableCSSVariables = _this$props9.enableCSSVariables,
534
- bordered = _this$props9.bordered;
556
+ var _this$props10 = this.props,
557
+ cssVariables = _this$props10.cssVariables,
558
+ enableCSSVariables = _this$props10.enableCSSVariables,
559
+ bordered = _this$props10.bordered;
535
560
  if (!(0, _utils.shallowEqual)(prevProps === null || prevProps === void 0 ? void 0 : prevProps.cssVariables, (_a = this.props) === null || _a === void 0 ? void 0 : _a.cssVariables)) {
536
561
  (0, _utils.cssPolifill)({
537
562
  variables: cssVariables || {},
@@ -547,10 +572,13 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
547
572
  }, {
548
573
  key: "didMountOrUpdate",
549
574
  value: function didMountOrUpdate(prevProps, prevState) {
550
- this.syncHorizontalScrollFromTableBody();
551
- this.updateStickyScroll();
552
- this.adjustNeedRenderLock();
553
- this.updateRowHeightManager();
575
+ var _this2 = this;
576
+ window.requestAnimationFrame(function () {
577
+ _this2.syncHorizontalScrollFromTableBody();
578
+ _this2.updateStickyScroll();
579
+ _this2.adjustNeedRenderLock();
580
+ _this2.updateRowHeightManager();
581
+ });
554
582
  this.updateScrollLeftWhenLayoutChanged(prevProps, prevState);
555
583
  }
556
584
  }, {
@@ -572,31 +600,31 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
572
600
  }, {
573
601
  key: "initSubscriptions",
574
602
  value: function initSubscriptions() {
575
- var _this2 = this;
603
+ var _this3 = this;
576
604
  var _this$domHelper2 = this.domHelper,
577
605
  virtual = _this$domHelper2.virtual,
578
606
  stickyScroll = _this$domHelper2.stickyScroll;
579
607
  this.rootSubscription.add(_utils.throttledWindowResize$.subscribe(function () {
580
- _this2.updateStickyScroll();
581
- _this2.adjustNeedRenderLock();
608
+ _this3.updateStickyScroll();
609
+ _this3.adjustNeedRenderLock();
582
610
  }));
583
611
  this.resizeSubject.pipe(op.debounceTime(100)).subscribe(function () {
584
612
  var _a, _b;
585
- (_b = (_a = _this2.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, _this2.domHelper.tableBody.clientWidth);
613
+ (_b = (_a = _this3.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, _this3.domHelper.tableBody.clientWidth);
586
614
  });
587
615
  var handleTableWrapperResize = function handleTableWrapperResize() {
588
- _this2.resizeSubject.next();
616
+ _this3.resizeSubject.next();
589
617
  };
590
618
  this.resizeObserver = (0, _utils.addResizeObserver)(this.domHelper.artTableWrapper, handleTableWrapperResize);
591
619
  // 滚动同步
592
620
  this.rootSubscription.add((0, _utils.syncScrollLeft)([(0, _utils.getTableScrollHeaderDOM)(this.domHelper), virtual, (0, _utils.getTableScrollFooterDOM)(this.domHelper), stickyScroll], function (scrollLeft) {
593
- _this2.syncHorizontalScroll(scrollLeft);
621
+ _this3.syncHorizontalScroll(scrollLeft);
594
622
  }));
595
623
  var richVisibleRects$ = (0, _getRichVisibleRectsStream.getRichVisibleRectsStream)(this.domHelper.virtual, this.props$.pipe(op.skip(1), op.mapTo('structure-may-change')), this.props.virtualDebugLabel).pipe(op.shareReplay());
596
624
  // 每当可见部分发生变化的时候,调整 loading icon 的未知(如果 loading icon 存在的话)
597
- this.rootSubscription.add((0, _rxjs.combineLatest)([richVisibleRects$.pipe(_mapInstanceProperty2(op).call(op, function (p) {
625
+ this.rootSubscription.add((0, _rxjs.combineLatest)([richVisibleRects$.pipe(op.map(function (p) {
598
626
  return p.clipRect;
599
- }), op.distinctUntilChanged(_utils.shallowEqual)), this.props$.pipe(op.startWith(null), op.pairwise(), _filterInstanceProperty(op).call(op, function (_ref) {
627
+ }), op.distinctUntilChanged(_utils.shallowEqual)), this.props$.pipe(op.startWith(null), op.pairwise(), op.filter(function (_ref) {
600
628
  var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
601
629
  prevProps = _ref2[0],
602
630
  props = _ref2[1];
@@ -604,7 +632,7 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
604
632
  }))]).subscribe(function (_ref3) {
605
633
  var _ref4 = (0, _slicedToArray2.default)(_ref3, 1),
606
634
  clipRect = _ref4[0];
607
- var loadingIndicator = _this2.domHelper.getLoadingIndicator();
635
+ var loadingIndicator = _this3.domHelper.getLoadingIndicator();
608
636
  if (!loadingIndicator) {
609
637
  return;
610
638
  }
@@ -614,12 +642,12 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
614
642
  loadingIndicator.style.marginTop = "".concat(height / 2, "px");
615
643
  }));
616
644
  // 每当可见部分发生变化的时候,如果开启了虚拟滚动,则重新触发 render
617
- this.rootSubscription.add(richVisibleRects$.pipe(_filterInstanceProperty(op).call(op, function () {
618
- var _this2$lastInfo$useVi = _this2.lastInfo.useVirtual,
619
- horizontal = _this2$lastInfo$useVi.horizontal,
620
- vertical = _this2$lastInfo$useVi.vertical;
645
+ this.rootSubscription.add(richVisibleRects$.pipe(op.filter(function () {
646
+ var _this3$lastInfo$useVi = _this3.lastInfo.useVirtual,
647
+ horizontal = _this3$lastInfo$useVi.horizontal,
648
+ vertical = _this3$lastInfo$useVi.vertical;
621
649
  return horizontal || vertical;
622
- }), _mapInstanceProperty2(op).call(op, function (_ref5) {
650
+ }), op.map(function (_ref5) {
623
651
  var clipRect = _ref5.clipRect,
624
652
  offsetY = _ref5.offsetY;
625
653
  return {
@@ -634,10 +662,31 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
634
662
  }
635
663
  // 因为 overscan 的存在,滚动较小的距离时不需要触发组件重渲染
636
664
  return Math.abs(x.maxRenderWidth - y.maxRenderWidth) < _utils.OVERSCAN_SIZE / 2 && Math.abs(x.maxRenderHeight - y.maxRenderHeight) < _utils.OVERSCAN_SIZE / 2 && Math.abs(x.offsetY - y.offsetY) < _utils.OVERSCAN_SIZE / 2;
665
+ }),
666
+ // 快速滚动检测和处理
667
+ op.tap(function (sizeAndOffset) {
668
+ // 只有在启用快速滚动时才使用 FastScrollManager 处理滚动事件
669
+ if (_this3.props.isLowPerformance) {
670
+ _this3.fastScrollManager.handleScrollEvent(sizeAndOffset, {
671
+ offsetY: _this3.state.offsetY,
672
+ maxRenderHeight: _this3.state.maxRenderHeight,
673
+ maxRenderWidth: _this3.state.maxRenderWidth
674
+ }, _this3.props.dataSource.length, _this3.domHelper.virtual.scrollHeight);
675
+ }
637
676
  })).subscribe(function (sizeAndOffset) {
638
- _this2.setState(sizeAndOffset);
677
+ var _a, _b;
678
+ // 正常滚动时也需要实时更新 blank 高度,确保缓慢滚动时的视觉连续性
679
+ var currentRange = _this3.rowHeightManager.getRenderRange(sizeAndOffset.offsetY, sizeAndOffset.maxRenderHeight, _this3.props.dataSource.length);
680
+ // 直接更新 DOM,避免等待下次渲染
681
+ (_a = _this3.topBlankRef.current) === null || _a === void 0 ? void 0 : _a.updateHeight(currentRange.topBlank);
682
+ (_b = _this3.bottomBlankRef.current) === null || _b === void 0 ? void 0 : _b.updateHeight(currentRange.bottomBlank);
683
+ // 只有在启用快速滚动时才检查快速滚动状态
684
+ if (_this3.props.isLowPerformance && _this3.fastScrollManager.getIsFastScrolling()) {
685
+ return;
686
+ }
687
+ _this3.setState(sizeAndOffset);
639
688
  }));
640
- this.rootSubscription.add(richVisibleRects$.pipe(_mapInstanceProperty2(op).call(op, function (_ref6) {
689
+ this.rootSubscription.add(richVisibleRects$.pipe(op.map(function (_ref6) {
641
690
  var clipRect = _ref6.clipRect,
642
691
  offsetY = _ref6.offsetY;
643
692
  return {
@@ -649,17 +698,17 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
649
698
  return x.offsetY - y.offsetY === 0;
650
699
  }),
651
700
  // 计算得到当前行索引对应的数据块,blocks改成数组的形式,兼容快速拖动可视区域出现两个数据块的情况
652
- _mapInstanceProperty2(op).call(op, function (sizeAndOffset) {
701
+ op.map(function (sizeAndOffset) {
653
702
  var _a;
654
703
  var offsetY = sizeAndOffset.offsetY,
655
704
  maxRenderHeight = sizeAndOffset.maxRenderHeight;
656
- var scrollDirection = offsetY - _this2.offsetY >= 0 ? 'down' : 'up';
657
- _this2.offsetY = offsetY;
658
- var rowCount = _this2.props.dataSource.length;
659
- var vertical = _this2.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, rowCount);
705
+ var scrollDirection = offsetY - _this3.offsetY >= 0 ? 'down' : 'up';
706
+ _this3.offsetY = offsetY;
707
+ var rowCount = _this3.props.dataSource.length;
708
+ var vertical = _this3.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, rowCount);
660
709
  var topIndex = vertical.topIndex,
661
710
  bottomIndex = vertical.bottomIndex;
662
- var blockSize = ((_a = _this2.props.scrollLoad) === null || _a === void 0 ? void 0 : _a.blockSize) || 200;
711
+ var blockSize = ((_a = _this3.props.scrollLoad) === null || _a === void 0 ? void 0 : _a.blockSize) || 200;
663
712
  var topBlockStartIndex = Math.floor(Math.max(topIndex - 1, 0) / blockSize) * blockSize;
664
713
  var bottomBlockStartIndex = Math.floor((bottomIndex + 1) / blockSize) * blockSize;
665
714
  return scrollDirection === 'down' ? [topBlockStartIndex, bottomBlockStartIndex] : [bottomBlockStartIndex, topBlockStartIndex];
@@ -667,14 +716,14 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
667
716
  return x[0] === y[0] && x[1] === y[1];
668
717
  }), op.switchMap(function (startIndexs) {
669
718
  var event$ = (0, _rxjs.from)(startIndexs);
670
- return event$.pipe(_mapInstanceProperty2(op).call(op, function (startIndex) {
719
+ return event$.pipe(op.map(function (startIndex) {
671
720
  return startIndex;
672
721
  }));
673
722
  }),
674
723
  // 过滤掉重复掉值
675
724
  op.distinctUntilChanged()).subscribe(function (startIndex) {
676
725
  var _a;
677
- (_a = _this2.props.scrollLoad) === null || _a === void 0 ? void 0 : _a.callback(startIndex);
726
+ (_a = _this3.props.scrollLoad) === null || _a === void 0 ? void 0 : _a.callback(startIndex);
678
727
  }));
679
728
  }
680
729
  }, {
@@ -684,6 +733,10 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
684
733
  (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
685
734
  this.rootSubscription.unsubscribe();
686
735
  this.resizeSubject.unsubscribe();
736
+ // 只有在启用快速滚动时才清理快速滚动管理器
737
+ if (this.props.isLowPerformance) {
738
+ this.fastScrollManager.cleanup();
739
+ }
687
740
  }
688
741
  /** 更新 DOM 节点的引用,方便其他方法直接操作 DOM */
689
742
  }, {
@@ -765,7 +818,9 @@ var BaseTable = exports.BaseTable = /*#__PURE__*/function (_React$Component) {
765
818
  }
766
819
  }
767
820
  }]);
821
+ return BaseTable;
768
822
  }(_react.default.Component);
823
+ exports.BaseTable = BaseTable;
769
824
  BaseTable.defaultProps = {
770
825
  hasHeader: true,
771
826
  isStickyHeader: true,
@@ -777,6 +832,7 @@ BaseTable.defaultProps = {
777
832
  stickyScrollHeight: 'auto',
778
833
  useVirtual: 'auto',
779
834
  estimatedRowHeight: 48,
835
+ isLowPerformance: false,
780
836
  isLoading: false,
781
837
  components: {},
782
838
  getTableProps: _rxjs.noop,
@@ -36,16 +36,20 @@ var _mergeCellProps = _interopRequireDefault(require("../utils/mergeCellProps"))
36
36
  var _utils = require("../utils");
37
37
  var _styles = require("./styles");
38
38
  var _element = require("../utils/element");
39
- 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); }
40
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(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 && {}.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; }
41
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof _Symbol && _getIteratorMethod(r) || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }
42
- function _unsupportedIterableToArray(r, a) { if (r) { var _context; if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = _sliceInstanceProperty(_context = {}.toString.call(r)).call(_context, 8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? _Array$from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
43
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
39
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
40
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
42
+ function _unsupportedIterableToArray(o, minLen) { var _context; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context = Object.prototype.toString.call(o)).call(_context, 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); }
43
+ 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; }
44
44
  /** styled-components 类库的版本,ali-react-table 同时支持 v3 和 v5 */
45
- var STYLED_VERSION = exports.STYLED_VERSION = styledComponents.createGlobalStyle != null ? 'v5' : 'v3';
46
- var STYLED_REF_PROP = exports.STYLED_REF_PROP = STYLED_VERSION === 'v3' ? 'innerRef' : 'ref';
47
- var OVERSCAN_SIZE = exports.OVERSCAN_SIZE = 100;
48
- var AUTO_VIRTUAL_THRESHOLD = exports.AUTO_VIRTUAL_THRESHOLD = 100;
45
+ var STYLED_VERSION = styledComponents.createGlobalStyle != null ? 'v5' : 'v3';
46
+ exports.STYLED_VERSION = STYLED_VERSION;
47
+ var STYLED_REF_PROP = STYLED_VERSION === 'v3' ? 'innerRef' : 'ref';
48
+ exports.STYLED_REF_PROP = STYLED_REF_PROP;
49
+ var OVERSCAN_SIZE = 100;
50
+ exports.OVERSCAN_SIZE = OVERSCAN_SIZE;
51
+ var AUTO_VIRTUAL_THRESHOLD = 100;
52
+ exports.AUTO_VIRTUAL_THRESHOLD = AUTO_VIRTUAL_THRESHOLD;
49
53
  function sum(arr) {
50
54
  var result = 0;
51
55
  arr.forEach(function (x) {
@@ -54,7 +58,7 @@ function sum(arr) {
54
58
  return result;
55
59
  }
56
60
  // 使用 defer 避免过早引用 window,导致在 SSR 场景下报错
57
- var throttledWindowResize$ = exports.throttledWindowResize$ = (0, _rxjs.defer)(function () {
61
+ var throttledWindowResize$ = (0, _rxjs.defer)(function () {
58
62
  return (0, _rxjs.fromEvent)(window, 'resize', {
59
63
  passive: true
60
64
  }).pipe((0, _operators.throttleTime)(150, _rxjs.asyncScheduler, {
@@ -62,7 +66,8 @@ var throttledWindowResize$ = exports.throttledWindowResize$ = (0, _rxjs.defer)(f
62
66
  trailing: true
63
67
  }));
64
68
  });
65
- var addResizeObserver = exports.addResizeObserver = function addResizeObserver(element, handler) {
69
+ exports.throttledWindowResize$ = throttledWindowResize$;
70
+ var addResizeObserver = function addResizeObserver(element, handler) {
66
71
  var measure = function measure(entries) {
67
72
  if (!entries[0] || !entries[0].contentRect) {
68
73
  return;
@@ -79,6 +84,7 @@ var addResizeObserver = exports.addResizeObserver = function addResizeObserver(e
79
84
  return resizeObserver;
80
85
  };
81
86
  /** 获取默认的滚动条大小 */
87
+ exports.addResizeObserver = addResizeObserver;
82
88
  function getScrollbarSizeImpl() {
83
89
  var scrollDiv = document.createElement('div');
84
90
  scrollDiv.style.position = 'absolute';
@@ -205,7 +211,7 @@ function getTableScrollHeaderDOM(domHelper) {
205
211
  function getTableScrollFooterDOM(domHelper) {
206
212
  return (0, _utils.isStickyUIDegrade)() ? domHelper.tableFooterMain : domHelper.tableFooter;
207
213
  }
208
- var cssPolifill = exports.cssPolifill = function cssPolifill(_ref) {
214
+ var cssPolifill = function cssPolifill(_ref) {
209
215
  var variables = _ref.variables,
210
216
  enableCSSVariables = _ref.enableCSSVariables,
211
217
  bordered = _ref.bordered;
@@ -227,4 +233,5 @@ var cssPolifill = exports.cssPolifill = function cssPolifill(_ref) {
227
233
  watch: true,
228
234
  silent: true
229
235
  });
230
- };
236
+ };
237
+ exports.cssPolifill = cssPolifill;
@@ -11,10 +11,12 @@ var _react = _interopRequireDefault(require("react"));
11
11
  var _styledComponents = _interopRequireDefault(require("styled-components"));
12
12
  var _styles = require("./base/styles");
13
13
  var _templateObject, _templateObject2, _templateObject3;
14
- var InlineFlexCell = exports.InlineFlexCell = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n align-items: center;\n"])));
15
- var ExpansionCell = exports.ExpansionCell = (0, _styledComponents.default)(function (props) {
14
+ var InlineFlexCell = _styledComponents.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n align-items: center;\n"])));
15
+ exports.InlineFlexCell = InlineFlexCell;
16
+ var ExpansionCell = (0, _styledComponents.default)(function (props) {
16
17
  return /*#__PURE__*/_react.default.createElement(InlineFlexCell, (0, _extends2.default)({}, props));
17
18
  })(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n &.", " {\n cursor: default;\n }\n\n .expansion-icon {\n fill: #999;\n flex: 0 0 16px;\n transition: transform 200ms;\n\n &.", " {\n transform-origin: center center;\n transform: rotate(90deg);\n }\n }\n"])), _styles.Classes.leaf, _styles.Classes.expanded);
19
+ exports.ExpansionCell = ExpansionCell;
18
20
  function CaretDownIcon(props) {
19
21
  return /*#__PURE__*/_react.default.createElement("svg", (0, _extends2.default)({
20
22
  focusable: "false",
@@ -63,10 +65,12 @@ function LoadingIcon(props) {
63
65
  d: "M512 74.667c-17.067 0-32 14.933-32 32V256c0 17.067 14.933 32 32 32s32-14.933 32-32V106.667c0-17.067-14.933-32-32-32zm181.333 288c8.534 0 17.067-2.134 23.467-8.534L821.333 249.6c12.8-12.8 12.8-32 0-44.8-12.8-12.8-32-12.8-44.8 0L672 309.333c-12.8 12.8-12.8 32 0 44.8 4.267 6.4 12.8 8.534 21.333 8.534zm224 117.333H768c-17.067 0-32 14.933-32 32s14.933 32 32 32h149.333c17.067 0 32-14.933 32-32s-14.933-32-32-32zM714.667 669.867c-12.8-12.8-32-12.8-44.8 0s-12.8 32 0 44.8L774.4 819.2c6.4 6.4 14.933 8.533 23.467 8.533s17.066-2.133 23.466-8.533c12.8-12.8 12.8-32 0-44.8L714.667 669.867zM512 736c-17.067 0-32 14.933-32 32v149.333c0 17.067 14.933 32 32 32s32-14.933 32-32V768c0-17.067-14.933-32-32-32zm-202.667-66.133L204.8 774.4c-12.8 12.8-12.8 32 0 44.8 6.4 6.4 14.933 8.533 23.467 8.533s17.066-2.133 23.466-8.533l104.534-104.533c12.8-12.8 12.8-32 0-44.8s-36.267-12.8-46.934 0zM288 512c0-17.067-14.933-32-32-32H106.667c-17.067 0-32 14.933-32 32s14.933 32 32 32H256c17.067 0 32-14.933 32-32zm-40.533-309.333c-12.8-12.8-32-12.8-44.8 0-12.8 12.8-12.8 32 0 44.8L307.2 352c6.4 6.4 14.933 8.533 23.467 8.533s17.066-2.133 23.466-8.533c12.8-12.8 12.8-32 0-44.8L247.467 202.667z"
64
66
  }));
65
67
  }
66
- var icons = exports.icons = {
68
+ var icons = {
67
69
  Loading: LoadingIcon,
68
70
  CaretDown: CaretDownIcon,
69
71
  CaretRight: CaretRightIcon,
70
72
  Info: InfoIcon
71
73
  };
72
- var ContextMenuStyleWrap = exports.ContextMenuStyleWrap = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n &.", "{\n border: 1px solid #e9ecf1;\n border-radius: 2px;\n background-color: #Fff;\n box-shadow: 0px 0px 5px 0px rgb(154 154 154 / 50%);\n cursor: default;\n font-size: 12px;\n position:absolute;\n z-index: 1050;\n max-width: 600px;\n padding: 8px 0;\n }\n\n .", "{\n width:100%;\n display: table;\n }\n\n .", " .", "{\n display: table-row;\n color: #212121;\n }\n\n .", " .", "{\n background-color: var(--hover-bgcolor);\n }\n\n .", " .", " .", "{\n display: table-cell;\n padding: 8px 12px;\n max-width: 576px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n .", " .", ".", "{\n opacity: .5;\n }\n\n"])), _styles.MenuClasses.menu, _styles.MenuClasses.menuList, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOptionActive, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuOptionText, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuOptionDisable);
74
+ exports.icons = icons;
75
+ var ContextMenuStyleWrap = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n &.", "{\n border: 1px solid #e9ecf1;\n border-radius: 2px;\n background-color: #Fff;\n box-shadow: 0px 0px 5px 0px rgb(154 154 154 / 50%);\n cursor: default;\n font-size: 12px;\n position:absolute;\n z-index: 1050;\n max-width: 600px;\n padding: 8px 0;\n }\n\n .", "{\n width:100%;\n display: table;\n }\n\n .", " .", "{\n display: table-row;\n color: #212121;\n }\n\n .", " .", "{\n background-color: var(--hover-bgcolor);\n }\n\n .", " .", " .", "{\n display: table-cell;\n padding: 8px 12px;\n max-width: 576px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n .", " .", ".", "{\n opacity: .5;\n }\n\n"])), _styles.MenuClasses.menu, _styles.MenuClasses.menuList, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOptionActive, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuOptionText, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuOptionDisable);
76
+ exports.ContextMenuStyleWrap = ContextMenuStyleWrap;