@kdcloudjs/table 1.2.2-canary.10 → 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.
- package/LICENSE +568 -568
- package/README.md +111 -111
- package/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.js +3306 -3341
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +11 -13
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/dist/kd-ui-complete.less +777 -777
- package/es/_utils/formatUtil.js +5 -1
- package/es/_utils/hooks.js +3 -3
- package/es/_utils/usePopper.js +13 -13
- package/es/locale/locale.js +7 -6
- package/es/style/color/colors.less +1 -1
- package/es/style/core/index.less +1 -1
- package/es/style/core/motion/other.less +27 -27
- package/es/style/core/motion/slide.less +53 -53
- package/es/style/core/motion.less +1 -1
- package/es/style/core/reset.less +185 -185
- package/es/style/index.less +1 -1
- package/es/style/mixins/index.less +18 -18
- package/es/style/mixins/overlay.less +21 -21
- package/es/style/mixins/reset.less +12 -12
- package/es/style/themes/default.less +445 -445
- package/es/table/base/BlankComponent.d.ts +11 -0
- package/es/table/base/BlankComponent.js +61 -0
- package/es/table/base/calculations.js +3 -3
- package/es/table/base/empty.js +2 -2
- package/es/table/base/globalStyleComponent.js +8 -6
- package/es/table/base/header.js +7 -5
- package/es/table/base/helpers/FastScrollManager.d.ts +96 -0
- package/es/table/base/helpers/FastScrollManager.js +167 -0
- package/es/table/base/helpers/SpanManager.js +2 -1
- package/es/table/base/helpers/TableDOMUtils.js +6 -5
- package/es/table/base/html-table.js +4 -3
- package/es/table/base/loading.js +2 -2
- package/es/table/base/renderTemplates.js +16 -16
- package/es/table/base/styles.js +1 -1
- package/es/table/base/table.d.ts +13 -0
- package/es/table/base/table.js +141 -84
- package/es/table/base/utils.js +3 -3
- package/es/table/pipeline/features/columnDrag.js +1 -0
- package/es/table/pipeline/features/columnFilter.js +3 -1
- package/es/table/pipeline/features/columnResizeWidth.js +2 -2
- package/es/table/pipeline/features/contextMenu.js +6 -4
- package/es/table/pipeline/features/featureApi/RowDragApi.js +2 -1
- package/es/table/pipeline/features/filter/DefaultFilterContent.js +5 -4
- package/es/table/pipeline/features/filter/Filter.js +3 -2
- package/es/table/pipeline/features/rangeSelection.js +10 -10
- package/es/table/pipeline/features/rowDetail.js +2 -2
- package/es/table/pipeline/features/rowDrag.js +2 -1
- package/es/table/pipeline/features/rowGrouping.js +2 -2
- package/es/table/pipeline/features/sort.js +7 -6
- package/es/table/pipeline/features/tips.js +4 -4
- package/es/table/pipeline/features/treeMode.js +5 -5
- package/es/table/pipeline/features/treeSelect.js +2 -2
- package/es/table/pipeline/pipeline.js +2 -1
- package/es/table/pivot/cross-table/buildCrossTable.js +8 -6
- package/es/table/pivot/cross-table/cross-table.js +3 -1
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +10 -8
- package/es/table/pivot/cross-tree-table/cross-tree-table.js +11 -8
- package/es/table/pivot/pivot-utils/builders.js +3 -3
- package/es/table/pivot/pivot-utils/convert-utils.js +3 -3
- package/es/table/style/index.less +1 -1
- package/es/table/transforms/autoWidth.js +3 -3
- package/es/table/transforms/columnResize.js +5 -3
- package/es/table/transforms/sort.js +8 -6
- package/es/table/transforms/tips.js +4 -4
- package/es/table/transforms/treeMode.js +8 -6
- package/es/table/utils/buildTree.js +3 -3
- package/es/table/utils/collectNodes.js +3 -3
- package/es/table/utils/exportTableAsExcel.js +3 -3
- package/es/table/utils/getTreeDepth.js +3 -3
- package/es/table/utils/groupBy.js +3 -3
- package/es/table/utils/makeRecursiveMapper.js +3 -3
- package/es/table/utils/mergeCellProps.js +1 -0
- package/es/table/utils/others.js +3 -3
- package/es/table/utils/traverseColumn.js +3 -3
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +8 -7
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +5 -4
- package/lib/_utils/arrayUtil.js +3 -2
- package/lib/_utils/formatUtil.js +5 -1
- package/lib/_utils/hooks.js +3 -3
- package/lib/_utils/index.js +3 -2
- package/lib/_utils/type.js +5 -3
- package/lib/_utils/usePopper.js +21 -18
- package/lib/config-provider/ConfigContext.js +2 -1
- package/lib/config-provider/compDefaultProps.js +2 -1
- package/lib/config-provider/configProvider.js +4 -3
- package/lib/config-provider/defaultConfig.js +2 -1
- package/lib/config-provider/index.js +2 -1
- package/lib/locale/index.js +4 -3
- package/lib/locale/locale.js +14 -10
- package/lib/locale/zh-CN.js +2 -1
- package/lib/style/color/colors.less +1 -1
- package/lib/style/components.less +1 -1
- package/lib/style/core/index.less +1 -1
- package/lib/style/core/motion/other.less +27 -27
- package/lib/style/core/motion/slide.less +53 -53
- package/lib/style/core/motion.less +1 -1
- package/lib/style/core/reset.less +185 -185
- package/lib/style/index.less +1 -1
- package/lib/style/mixins/index.less +18 -18
- package/lib/style/mixins/overlay.less +21 -21
- package/lib/style/mixins/reset.less +12 -12
- package/lib/style/themes/default.less +445 -445
- package/lib/table/base/BlankComponent.d.ts +11 -0
- package/lib/table/base/BlankComponent.js +75 -0
- package/lib/table/base/calculations.js +3 -3
- package/lib/table/base/empty.js +4 -4
- package/lib/table/base/globalStyleComponent.js +13 -10
- package/lib/table/base/header.js +7 -5
- package/lib/table/base/helpers/FastScrollManager.d.ts +96 -0
- package/lib/table/base/helpers/FastScrollManager.js +175 -0
- package/lib/table/base/helpers/SpanManager.js +5 -3
- package/lib/table/base/helpers/TableDOMUtils.js +9 -7
- package/lib/table/base/helpers/getRichVisibleRectsStream.js +2 -2
- package/lib/table/base/html-table.js +4 -3
- package/lib/table/base/loading.js +2 -2
- package/lib/table/base/renderTemplates.js +18 -18
- package/lib/table/base/styles.js +18 -10
- package/lib/table/base/table.d.ts +13 -0
- package/lib/table/base/table.js +152 -96
- package/lib/table/base/utils.js +20 -13
- package/lib/table/common-views.js +8 -4
- package/lib/table/internals.js +3 -2
- package/lib/table/pipeline/const.js +3 -2
- package/lib/table/pipeline/features/autoFill.js +6 -3
- package/lib/table/pipeline/features/colGroupExtendable.js +3 -2
- package/lib/table/pipeline/features/columnDrag.js +1 -0
- package/lib/table/pipeline/features/columnFilter.js +3 -1
- package/lib/table/pipeline/features/columnResizeWidth.js +10 -7
- package/lib/table/pipeline/features/contextMenu.js +8 -6
- package/lib/table/pipeline/features/featureApi/RowDragApi.js +5 -3
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +9 -7
- package/lib/table/pipeline/features/filter/Filter.js +7 -5
- package/lib/table/pipeline/features/filter/FilterPanel.js +4 -3
- package/lib/table/pipeline/features/filter/util.js +3 -2
- package/lib/table/pipeline/features/footerDataSource.js +2 -1
- package/lib/table/pipeline/features/rangeSelection.js +14 -12
- package/lib/table/pipeline/features/rowDetail.js +2 -2
- package/lib/table/pipeline/features/rowDrag.js +8 -4
- package/lib/table/pipeline/features/rowGrouping.js +2 -2
- package/lib/table/pipeline/features/sort.js +7 -6
- package/lib/table/pipeline/features/tips.js +4 -4
- package/lib/table/pipeline/features/treeMode.js +9 -7
- package/lib/table/pipeline/features/treeSelect.js +2 -2
- package/lib/table/pipeline/index.js +2 -2
- package/lib/table/pipeline/pipeline.js +4 -2
- package/lib/table/pivot/cross-table/buildCrossTable.js +8 -6
- package/lib/table/pivot/cross-table/constants.js +2 -1
- package/lib/table/pivot/cross-table/cross-table.js +6 -3
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +10 -8
- package/lib/table/pivot/cross-tree-table/cross-tree-table.js +13 -9
- package/lib/table/pivot/pivot-utils/builders.js +3 -3
- package/lib/table/pivot/pivot-utils/convert-utils.js +3 -3
- package/lib/table/style/index.less +1 -1
- package/lib/table/transforms/autoWidth.js +5 -5
- package/lib/table/transforms/columnResize.js +7 -5
- package/lib/table/transforms/sort.js +10 -8
- package/lib/table/transforms/tips.js +4 -4
- package/lib/table/transforms/treeMode.js +10 -8
- package/lib/table/use/useResizeObserver.js +2 -1
- package/lib/table/utils/browserType.js +4 -2
- package/lib/table/utils/buildTree.js +3 -3
- package/lib/table/utils/collectNodes.js +3 -3
- package/lib/table/utils/console.js +3 -2
- package/lib/table/utils/copyToClipboard.js +2 -1
- package/lib/table/utils/exportTableAsExcel.js +3 -3
- package/lib/table/utils/getTreeDepth.js +3 -3
- package/lib/table/utils/groupBy.js +3 -3
- package/lib/table/utils/keyCode.js +2 -1
- package/lib/table/utils/makeRecursiveMapper.js +3 -3
- package/lib/table/utils/mergeCellProps.js +1 -0
- package/lib/table/utils/others.js +5 -4
- package/lib/table/utils/proto.js +2 -1
- package/lib/table/utils/selectColumn.js +4 -2
- package/lib/table/utils/traverseColumn.js +3 -3
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +11 -9
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +8 -6
- package/package.json +218 -218
package/lib/table/base/table.js
CHANGED
|
@@ -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
|
-
|
|
47
|
-
function
|
|
48
|
-
function
|
|
49
|
-
function
|
|
50
|
-
function
|
|
51
|
-
function
|
|
52
|
-
function
|
|
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 =
|
|
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 =
|
|
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
|
-
},
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
}),
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
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,
|
|
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
|
|
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$
|
|
339
|
-
_this$
|
|
340
|
-
footerDataSource = _this$
|
|
341
|
-
getRowProps = _this$
|
|
342
|
-
primaryKey = _this$
|
|
343
|
-
stickyBottom = _this$
|
|
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$
|
|
409
|
-
hasStickyScroll = _this$
|
|
410
|
-
stickyBottom = _this$
|
|
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$
|
|
448
|
-
hasStickyScroll = _this$
|
|
449
|
-
stickyScrollHeight = _this$
|
|
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$
|
|
467
|
-
dataSource = _this$
|
|
468
|
-
className = _this$
|
|
469
|
-
style = _this$
|
|
470
|
-
hasHeader = _this$
|
|
471
|
-
useOuterBorder = _this$
|
|
472
|
-
isStickyHead = _this$
|
|
473
|
-
isStickyHeader = _this$
|
|
474
|
-
isStickyFooter = _this$
|
|
475
|
-
isLoading = _this$
|
|
476
|
-
getTableProps = _this$
|
|
477
|
-
footerDataSource = _this$
|
|
478
|
-
components = _this$
|
|
479
|
-
bordered = _this$
|
|
480
|
-
var artTableWrapperClassName = (0, _classnames.default)(_styles.Classes.artTableWrapper, (
|
|
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$
|
|
514
|
-
cssVariables = _this$
|
|
515
|
-
enableCSSVariables = _this$
|
|
516
|
-
bordered = _this$
|
|
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$
|
|
532
|
-
cssVariables = _this$
|
|
533
|
-
enableCSSVariables = _this$
|
|
534
|
-
bordered = _this$
|
|
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
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
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
|
|
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
|
-
|
|
581
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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(),
|
|
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 =
|
|
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(
|
|
618
|
-
var
|
|
619
|
-
horizontal =
|
|
620
|
-
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
|
-
}),
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
701
|
+
op.map(function (sizeAndOffset) {
|
|
653
702
|
var _a;
|
|
654
703
|
var offsetY = sizeAndOffset.offsetY,
|
|
655
704
|
maxRenderHeight = sizeAndOffset.maxRenderHeight;
|
|
656
|
-
var scrollDirection = offsetY -
|
|
657
|
-
|
|
658
|
-
var rowCount =
|
|
659
|
-
var vertical =
|
|
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 =
|
|
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(
|
|
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 =
|
|
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,
|
package/lib/table/base/utils.js
CHANGED
|
@@ -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(
|
|
40
|
-
function _interopRequireWildcard(
|
|
41
|
-
function _createForOfIteratorHelper(
|
|
42
|
-
function _unsupportedIterableToArray(
|
|
43
|
-
function _arrayLikeToArray(
|
|
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 =
|
|
46
|
-
|
|
47
|
-
var
|
|
48
|
-
|
|
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$ =
|
|
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
|
-
|
|
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 =
|
|
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 =
|
|
15
|
-
|
|
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 =
|
|
68
|
+
var icons = {
|
|
67
69
|
Loading: LoadingIcon,
|
|
68
70
|
CaretDown: CaretDownIcon,
|
|
69
71
|
CaretRight: CaretRightIcon,
|
|
70
72
|
Info: InfoIcon
|
|
71
73
|
};
|
|
72
|
-
|
|
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;
|