@kdcloudjs/table 1.2.1-canary.6 → 1.2.1-canary.7-hotfix.1
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/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.css.map +0 -0
- package/dist/@kdcloudjs/table.js +1755 -3334
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +16 -16
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/dist/default-theme.js +0 -0
- package/dist/kd-ui-complete.less +0 -0
- package/dist/kd-ui.less +0 -0
- package/dist/theme.js +0 -0
- package/es/_utils/arrayUtil.js +0 -3
- package/es/_utils/devwarning.js +0 -1
- package/es/_utils/formatUtil.js +35 -96
- package/es/_utils/hooks.js +18 -42
- package/es/_utils/index.js +0 -2
- package/es/_utils/numberUtil.js +32 -55
- package/es/_utils/omit.js +0 -2
- package/es/_utils/type.js +0 -2
- package/es/_utils/usePopper.js +74 -137
- package/es/config-provider/compDefaultProps.js +0 -1
- package/es/config-provider/configProvider.js +2 -7
- package/es/config-provider/defaultConfig.js +0 -1
- package/es/index.js +0 -2
- package/es/locale/locale.js +5 -43
- package/es/table/base/calculations.js +22 -72
- package/es/table/base/colgroup.js +0 -1
- package/es/table/base/empty.js +4 -4
- package/es/table/base/header.js +16 -69
- package/es/table/base/helpers/SpanManager.js +3 -9
- package/es/table/base/helpers/TableDOMUtils.js +4 -28
- package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
- package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
- package/es/table/base/helpers/getRichVisibleRectsStream.js +13 -45
- package/es/table/base/helpers/rowHeightManager.js +0 -28
- package/es/table/base/html-table.js +14 -35
- package/es/table/base/loading.js +6 -8
- package/es/table/base/renderTemplates.js +26 -44
- package/es/table/base/styles.js +0 -9
- package/es/table/base/table.js +95 -181
- package/es/table/base/utils.js +14 -54
- package/es/table/common-views.js +0 -7
- package/es/table/internals.js +0 -13
- package/es/table/pipeline/features/autoFill.js +11 -40
- package/es/table/pipeline/features/autoRowSpan.js +1 -14
- package/es/table/pipeline/features/colGroupExtendable.js +4 -19
- package/es/table/pipeline/features/columnDrag.js +41 -96
- package/es/table/pipeline/features/columnFilter.js +11 -48
- package/es/table/pipeline/features/columnHover.js +1 -7
- package/es/table/pipeline/features/columnRangeHover.js +1 -8
- package/es/table/pipeline/features/columnResizeWidth.js +11 -37
- package/es/table/pipeline/features/contextMenu.js +18 -89
- package/es/table/pipeline/features/filter/DefaultFilterContent.js +10 -25
- package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
- package/es/table/pipeline/features/filter/Filter.js +25 -48
- package/es/table/pipeline/features/filter/FilterPanel.js +11 -25
- package/es/table/pipeline/features/filter/util.js +0 -4
- package/es/table/pipeline/features/footerDataSource.js +0 -3
- package/es/table/pipeline/features/mergeCellHover.js +0 -1
- package/es/table/pipeline/features/multiSelect.js +15 -57
- package/es/table/pipeline/features/rangeSelection.js +63 -142
- package/es/table/pipeline/features/rowDetail.js +2 -41
- package/es/table/pipeline/features/rowDrag.js +38 -76
- package/es/table/pipeline/features/rowGrouping.js +2 -35
- package/es/table/pipeline/features/singleSelect.js +0 -24
- package/es/table/pipeline/features/sort.js +32 -89
- package/es/table/pipeline/features/tips.js +0 -6
- package/es/table/pipeline/features/treeMode.js +14 -46
- package/es/table/pipeline/features/treeSelect.js +0 -26
- package/es/table/pipeline/pipeline.js +11 -51
- package/es/table/pivot/cross-table/buildCrossTable.js +15 -64
- package/es/table/pivot/cross-table/cross-table.js +22 -28
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -47
- package/es/table/pivot/cross-tree-table/cross-tree-table.js +28 -50
- package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
- package/es/table/pivot/pivot-utils/builders.js +31 -71
- package/es/table/pivot/pivot-utils/convert-utils.js +13 -39
- package/es/table/pivot/pivot-utils/simpleEncode.js +0 -1
- package/es/table/transforms/autoRowSpan.js +1 -15
- package/es/table/transforms/autoWidth.js +10 -32
- package/es/table/transforms/buildTree.js +1 -2
- package/es/table/transforms/columnHover.js +9 -15
- package/es/table/transforms/columnRangeHover.js +12 -19
- package/es/table/transforms/columnResize.js +15 -37
- package/es/table/transforms/flatten.js +0 -3
- package/es/table/transforms/orderField.js +0 -3
- package/es/table/transforms/sort.js +36 -93
- package/es/table/transforms/tips.js +1 -6
- package/es/table/transforms/treeMode.js +30 -69
- package/es/table/transforms/visible.js +0 -2
- package/es/table/use/useResizeObserver.js +1 -4
- package/es/table/utils/applyTransforms.js +0 -1
- package/es/table/utils/browserType.js +12 -19
- package/es/table/utils/buildTree.js +4 -19
- package/es/table/utils/collectNodes.js +1 -10
- package/es/table/utils/console.js +0 -14
- package/es/table/utils/copyToClipboard.js +0 -4
- package/es/table/utils/element.js +14 -41
- package/es/table/utils/exportTableAsExcel.js +4 -40
- package/es/table/utils/getTreeDepth.js +1 -9
- package/es/table/utils/groupBy.js +1 -10
- package/es/table/utils/layeredFilter.js +0 -4
- package/es/table/utils/layeredSort.js +0 -5
- package/es/table/utils/makeRecursiveMapper.js +1 -12
- package/es/table/utils/mergeCellProps.js +6 -13
- package/es/table/utils/others.js +3 -16
- package/es/table/utils/proto.js +2 -30
- package/es/table/utils/smartCompare.js +4 -12
- package/es/table/utils/traverseColumn.js +2 -15
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -22
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +15 -69
- package/es/table/utils/uiDegrade.js +0 -5
- package/lib/_utils/arrayUtil.js +0 -5
- package/lib/_utils/devwarning.js +0 -5
- package/lib/_utils/formatUtil.js +35 -100
- package/lib/_utils/hooks.js +18 -53
- package/lib/_utils/index.js +0 -6
- package/lib/_utils/numberUtil.js +32 -63
- package/lib/_utils/omit.js +0 -5
- package/lib/_utils/react-children.js +0 -5
- package/lib/_utils/type.js +0 -6
- package/lib/_utils/usePopper.js +74 -158
- package/lib/config-provider/ConfigContext.js +1 -4
- package/lib/config-provider/compDefaultProps.js +0 -1
- package/lib/config-provider/configProvider.js +3 -18
- package/lib/config-provider/defaultConfig.js +0 -5
- package/lib/config-provider/index.js +0 -6
- package/lib/index.js +2 -8
- package/lib/locale/index.js +0 -7
- package/lib/locale/locale.js +5 -57
- package/lib/table/base/calculations.js +22 -83
- package/lib/table/base/colgroup.js +0 -5
- package/lib/table/base/empty.js +4 -16
- package/lib/table/base/header.js +16 -79
- package/lib/table/base/helpers/SpanManager.js +3 -11
- package/lib/table/base/helpers/TableDOMUtils.js +2 -28
- package/lib/table/base/helpers/__test__/SpanManager.test.js +2 -4
- package/lib/table/base/helpers/__test__/TableDOMUtils.test.js +0 -5
- package/lib/table/base/helpers/__test__/rowHeightManager.test.js +0 -1
- package/lib/table/base/helpers/getRichVisibleRectsStream.js +13 -63
- package/lib/table/base/helpers/rowHeightManager.js +0 -33
- package/lib/table/base/html-table.js +14 -45
- package/lib/table/base/index.js +0 -2
- package/lib/table/base/loading.js +6 -12
- package/lib/table/base/renderTemplates.js +27 -58
- package/lib/table/base/styles.js +0 -21
- package/lib/table/base/table.js +95 -214
- package/lib/table/base/utils.js +14 -89
- package/lib/table/common-views.js +0 -16
- package/lib/table/index.js +0 -13
- package/lib/table/internals.js +0 -14
- package/lib/table/pipeline/features/autoFill.js +11 -47
- package/lib/table/pipeline/features/autoRowSpan.js +1 -19
- package/lib/table/pipeline/features/buildTree.js +0 -2
- package/lib/table/pipeline/features/colGroupExtendable.js +4 -32
- package/lib/table/pipeline/features/columnDrag.js +41 -102
- package/lib/table/pipeline/features/columnFilter.js +11 -62
- package/lib/table/pipeline/features/columnHover.js +1 -11
- package/lib/table/pipeline/features/columnRangeHover.js +1 -13
- package/lib/table/pipeline/features/columnResizeWidth.js +11 -53
- package/lib/table/pipeline/features/contextMenu.js +18 -113
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +10 -43
- package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
- package/lib/table/pipeline/features/filter/Filter.js +25 -70
- package/lib/table/pipeline/features/filter/FilterPanel.js +11 -40
- package/lib/table/pipeline/features/filter/index.js +0 -5
- package/lib/table/pipeline/features/filter/util.js +0 -7
- package/lib/table/pipeline/features/footerDataSource.js +0 -10
- package/lib/table/pipeline/features/index.js +0 -23
- package/lib/table/pipeline/features/mergeCellHover.js +0 -5
- package/lib/table/pipeline/features/multiSelect.js +15 -71
- package/lib/table/pipeline/features/rangeSelection.js +63 -159
- package/lib/table/pipeline/features/rowDetail.js +2 -65
- package/lib/table/pipeline/features/rowDrag.js +38 -87
- package/lib/table/pipeline/features/rowGrouping.js +2 -55
- package/lib/table/pipeline/features/singleSelect.js +0 -34
- package/lib/table/pipeline/features/sort.js +31 -108
- package/lib/table/pipeline/features/tips.js +0 -15
- package/lib/table/pipeline/features/treeMode.js +14 -67
- package/lib/table/pipeline/features/treeSelect.js +0 -34
- package/lib/table/pipeline/index.js +0 -8
- package/lib/table/pipeline/pipeline.js +11 -60
- package/lib/table/pivot/cross-table/buildCrossTable.js +15 -75
- package/lib/table/pivot/cross-table/cross-table.js +22 -36
- package/lib/table/pivot/cross-table/index.js +0 -4
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +14 -60
- package/lib/table/pivot/cross-tree-table/cross-tree-table.js +28 -60
- package/lib/table/pivot/cross-tree-table/index.js +0 -3
- package/lib/table/pivot/pivot-utils/buildDrillTree.js +10 -29
- package/lib/table/pivot/pivot-utils/builders.js +31 -82
- package/lib/table/pivot/pivot-utils/convert-utils.js +13 -57
- package/lib/table/pivot/pivot-utils/index.js +0 -7
- package/lib/table/pivot/pivot-utils/simpleEncode.js +0 -2
- package/lib/table/style/css.js +0 -1
- package/lib/table/style/index.js +0 -1
- package/lib/table/transforms/autoRowSpan.js +1 -21
- package/lib/table/transforms/autoWidth.js +10 -53
- package/lib/table/transforms/buildTree.js +1 -4
- package/lib/table/transforms/columnHover.js +9 -22
- package/lib/table/transforms/columnRangeHover.js +12 -27
- package/lib/table/transforms/columnResize.js +15 -56
- package/lib/table/transforms/flatten.js +0 -5
- package/lib/table/transforms/index.js +0 -12
- package/lib/table/transforms/orderField.js +0 -7
- package/lib/table/transforms/sort.js +36 -117
- package/lib/table/transforms/tips.js +1 -16
- package/lib/table/transforms/treeMode.js +30 -96
- package/lib/table/transforms/visible.js +0 -7
- package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
- package/lib/table/use/useResizeObserver.js +1 -8
- package/lib/table/utils/applyTransforms.js +0 -2
- package/lib/table/utils/browserType.js +12 -19
- package/lib/table/utils/buildTree.js +4 -30
- package/lib/table/utils/collectNodes.js +1 -15
- package/lib/table/utils/console.js +0 -16
- package/lib/table/utils/copyToClipboard.js +0 -6
- package/lib/table/utils/element.js +14 -46
- package/lib/table/utils/exportTableAsExcel.js +4 -49
- package/lib/table/utils/getTreeDepth.js +1 -14
- package/lib/table/utils/groupBy.js +1 -14
- package/lib/table/utils/index.js +0 -22
- package/lib/table/utils/isGroupColumn.js +0 -3
- package/lib/table/utils/isLeafNode.js +0 -1
- package/lib/table/utils/layeredFilter.js +0 -10
- package/lib/table/utils/layeredSort.js +0 -10
- package/lib/table/utils/makeRecursiveMapper.js +1 -21
- package/lib/table/utils/mergeCellProps.js +6 -17
- package/lib/table/utils/others.js +3 -31
- package/lib/table/utils/proto.js +2 -33
- package/lib/table/utils/selectColumn.js +0 -1
- package/lib/table/utils/smartCompare.js +4 -13
- package/lib/table/utils/traverseColumn.js +2 -22
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +1 -30
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +15 -82
- package/lib/table/utils/uiDegrade.js +1 -8
- package/package.json +2 -1
- package/lib/style/color/colors.less +0 -2
- package/lib/style/core/index.less +0 -2
- package/lib/style/core/motion/other.less +0 -28
- package/lib/style/core/motion/slide.less +0 -53
- package/lib/style/core/motion.less +0 -2
- package/lib/style/core/reset.less +0 -186
- package/lib/style/index.css +0 -410
- package/lib/style/index.less +0 -2
- package/lib/style/mixins/index.less +0 -19
- package/lib/style/mixins/overlay.less +0 -22
- package/lib/style/mixins/reset.less +0 -13
- package/lib/style/themes/default.less +0 -445
- package/lib/style/themes/index.less +0 -1
- package/lib/table/style/index.css +0 -0
- package/lib/table/style/index.less +0 -1
package/lib/table/base/table.js
CHANGED
|
@@ -1,166 +1,107 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
-
|
|
5
4
|
var _Reflect$construct = require("@babel/runtime-corejs3/core-js-stable/reflect/construct");
|
|
6
|
-
|
|
7
5
|
var _sliceInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/slice");
|
|
8
|
-
|
|
9
6
|
var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from");
|
|
10
|
-
|
|
11
7
|
var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol");
|
|
12
|
-
|
|
13
8
|
var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method");
|
|
14
|
-
|
|
15
9
|
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
16
|
-
|
|
17
10
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
18
|
-
|
|
19
11
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
20
|
-
|
|
21
12
|
Object.defineProperty(exports, "__esModule", {
|
|
22
13
|
value: true
|
|
23
14
|
});
|
|
24
15
|
exports.BaseTable = void 0;
|
|
25
|
-
|
|
26
16
|
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
27
|
-
|
|
28
17
|
var _flat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flat"));
|
|
29
|
-
|
|
30
18
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
31
|
-
|
|
32
19
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
33
|
-
|
|
34
20
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
35
|
-
|
|
36
21
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
37
|
-
|
|
38
22
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
|
|
39
|
-
|
|
40
23
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
|
|
41
|
-
|
|
42
24
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/inherits"));
|
|
43
|
-
|
|
44
25
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/possibleConstructorReturn"));
|
|
45
|
-
|
|
46
26
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/getPrototypeOf"));
|
|
47
|
-
|
|
48
27
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
49
|
-
|
|
50
28
|
var _react = _interopRequireDefault(require("react"));
|
|
51
|
-
|
|
52
29
|
var _rxjs = require("rxjs");
|
|
53
|
-
|
|
54
30
|
var op = _interopRequireWildcard(require("rxjs/operators"));
|
|
55
|
-
|
|
56
31
|
var _calculations = require("./calculations");
|
|
57
|
-
|
|
58
32
|
var _empty = require("./empty");
|
|
59
|
-
|
|
60
33
|
var _header = _interopRequireDefault(require("./header"));
|
|
61
|
-
|
|
62
34
|
var _getRichVisibleRectsStream = require("./helpers/getRichVisibleRectsStream");
|
|
63
|
-
|
|
64
35
|
var _rowHeightManager = require("./helpers/rowHeightManager");
|
|
65
|
-
|
|
66
36
|
var _TableDOMUtils = require("./helpers/TableDOMUtils");
|
|
67
|
-
|
|
68
37
|
var _htmlTable = require("./html-table");
|
|
69
|
-
|
|
70
38
|
var _loading = _interopRequireDefault(require("./loading"));
|
|
71
|
-
|
|
72
39
|
var _styles = require("./styles");
|
|
73
|
-
|
|
74
40
|
var _utils = require("./utils");
|
|
75
|
-
|
|
76
41
|
var _utils2 = require("../utils");
|
|
77
|
-
|
|
78
42
|
var _renderTemplates = _interopRequireDefault(require("./renderTemplates"));
|
|
79
|
-
|
|
80
43
|
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); }
|
|
81
|
-
|
|
82
44
|
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; }
|
|
83
|
-
|
|
84
45
|
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; } } }; }
|
|
85
|
-
|
|
86
46
|
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); }
|
|
87
|
-
|
|
88
47
|
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; }
|
|
89
|
-
|
|
90
48
|
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); }; }
|
|
91
|
-
|
|
92
49
|
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; } }
|
|
93
|
-
|
|
94
50
|
var propsDotEmptyContentDeprecatedWarned = false;
|
|
95
|
-
|
|
96
51
|
function warnPropsDotEmptyContentIsDeprecated() {
|
|
97
52
|
if (!propsDotEmptyContentDeprecatedWarned) {
|
|
98
53
|
propsDotEmptyContentDeprecatedWarned = true;
|
|
99
|
-
|
|
100
54
|
_utils2.console.warn('BaseTable props.emptyContent 已经过时,请使用 props.components.EmptyContent 来自定义数据为空时的表格表现');
|
|
101
55
|
}
|
|
102
56
|
}
|
|
103
|
-
|
|
104
57
|
var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
105
58
|
(0, _inherits2.default)(BaseTable, _React$Component);
|
|
106
|
-
|
|
107
59
|
var _super = _createSuper(BaseTable);
|
|
108
|
-
|
|
109
60
|
function BaseTable(props) {
|
|
110
61
|
var _this;
|
|
111
|
-
|
|
112
62
|
(0, _classCallCheck2.default)(this, BaseTable);
|
|
113
63
|
_this = _super.call(this, props);
|
|
114
64
|
_this.rowHeightManager = (0, _rowHeightManager.makeRowHeightManager)(_this.props.dataSource.length, _this.props.estimatedRowHeight);
|
|
115
65
|
_this.artTableWrapperRef = /*#__PURE__*/_react.default.createRef();
|
|
116
66
|
_this.hasScrollY = false;
|
|
117
67
|
_this.offsetY = 0;
|
|
118
|
-
|
|
119
68
|
_this.handleRowMouseEnter = function (e) {
|
|
120
69
|
var nodeList = _this.domHelper.getRowNodeListByEvent(e);
|
|
121
|
-
|
|
122
70
|
nodeList && nodeList.forEach(function (node) {
|
|
123
71
|
node.classList.add('row-hover');
|
|
124
72
|
});
|
|
125
73
|
};
|
|
126
|
-
|
|
127
74
|
_this.handleRowMouseLeave = function (e) {
|
|
128
75
|
var nodeList = _this.domHelper.getRowNodeListByEvent(e);
|
|
129
|
-
|
|
130
76
|
nodeList && nodeList.forEach(function (node) {
|
|
131
77
|
node.classList.remove('row-hover');
|
|
132
78
|
});
|
|
133
79
|
};
|
|
134
|
-
|
|
135
80
|
_this.renderTableBody = function (info) {
|
|
136
81
|
// console.log('render body')
|
|
137
82
|
var _this$props = _this.props,
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
var tableBodyClassName = (0, _classnames.default)(_styles.Classes.tableBody, _styles.Classes.horizontalScrollContainer);
|
|
145
|
-
|
|
83
|
+
dataSource = _this$props.dataSource,
|
|
84
|
+
getRowProps = _this$props.getRowProps,
|
|
85
|
+
primaryKey = _this$props.primaryKey,
|
|
86
|
+
isLoading = _this$props.isLoading,
|
|
87
|
+
emptyCellHeight = _this$props.emptyCellHeight,
|
|
88
|
+
footerDataSource = _this$props.footerDataSource;
|
|
89
|
+
var tableBodyClassName = (0, _classnames.default)(_styles.Classes.tableBody, _styles.Classes.horizontalScrollContainer);
|
|
90
|
+
// 低版本Edge浏览器下也会出现双滚动条,这里设置overflow: 'hidden',先去掉edge的方向键控制滚动条的功能
|
|
146
91
|
var virtualStyle = _utils2.browserType.isIE || _utils2.browserType.isEdge ? {
|
|
147
92
|
overflow: 'hidden'
|
|
148
93
|
} : {};
|
|
149
|
-
|
|
150
94
|
if (dataSource.length === 0) {
|
|
151
95
|
var _this$props2 = _this.props,
|
|
152
|
-
|
|
153
|
-
|
|
96
|
+
components = _this$props2.components,
|
|
97
|
+
emptyContent = _this$props2.emptyContent;
|
|
154
98
|
var EmptyContent = components.EmptyContent;
|
|
155
|
-
|
|
156
99
|
if (EmptyContent == null && emptyContent != null) {
|
|
157
100
|
warnPropsDotEmptyContentIsDeprecated();
|
|
158
|
-
|
|
159
101
|
EmptyContent = function EmptyContent() {
|
|
160
102
|
return emptyContent;
|
|
161
103
|
};
|
|
162
104
|
}
|
|
163
|
-
|
|
164
105
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
165
106
|
className: (0, _classnames.default)(tableBodyClassName, 'empty')
|
|
166
107
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -174,14 +115,12 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
174
115
|
emptyCellHeight: emptyCellHeight
|
|
175
116
|
})));
|
|
176
117
|
}
|
|
177
|
-
|
|
178
118
|
var _info$verticalRenderR = info.verticalRenderRange,
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
119
|
+
topIndex = _info$verticalRenderR.topIndex,
|
|
120
|
+
bottomBlank = _info$verticalRenderR.bottomBlank,
|
|
121
|
+
topBlank = _info$verticalRenderR.topBlank,
|
|
122
|
+
bottomIndex = _info$verticalRenderR.bottomIndex;
|
|
183
123
|
var renderBody = (0, _renderTemplates.default)('body');
|
|
184
|
-
|
|
185
124
|
if (typeof renderBody === 'function') {
|
|
186
125
|
return renderBody(info, _this.props, {
|
|
187
126
|
rowProps: {
|
|
@@ -190,7 +129,6 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
190
129
|
}
|
|
191
130
|
});
|
|
192
131
|
}
|
|
193
|
-
|
|
194
132
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
195
133
|
className: tableBodyClassName
|
|
196
134
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -223,7 +161,6 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
223
161
|
}
|
|
224
162
|
})));
|
|
225
163
|
};
|
|
226
|
-
|
|
227
164
|
_this.state = {
|
|
228
165
|
hasScroll: true,
|
|
229
166
|
hasScrollY: true,
|
|
@@ -239,44 +176,36 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
239
176
|
return _this;
|
|
240
177
|
}
|
|
241
178
|
/** @deprecated BaseTable.getDoms() 已经过时,请勿调用 */
|
|
242
|
-
|
|
243
|
-
|
|
244
179
|
(0, _createClass2.default)(BaseTable, [{
|
|
245
180
|
key: "getDoms",
|
|
246
181
|
value: function getDoms() {
|
|
247
182
|
_utils2.console.warn('[kd-table] BaseTable.getDoms() 已经过时');
|
|
248
|
-
|
|
249
183
|
return this.domHelper;
|
|
250
184
|
}
|
|
251
185
|
/** 自定义滚动条宽度为table宽度,使滚动条滑块宽度相同 */
|
|
252
|
-
|
|
253
186
|
}, {
|
|
254
187
|
key: "updateStickyScroll",
|
|
255
188
|
value: function updateStickyScroll() {
|
|
256
189
|
var _a, _b;
|
|
257
|
-
|
|
258
190
|
var _this$domHelper = this.domHelper,
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
191
|
+
stickyScroll = _this$domHelper.stickyScroll,
|
|
192
|
+
artTable = _this$domHelper.artTable,
|
|
193
|
+
stickyScrollItem = _this$domHelper.stickyScrollItem;
|
|
262
194
|
var _lastHasScrollY = this.hasScrollY;
|
|
263
|
-
|
|
264
195
|
if (!artTable) {
|
|
265
196
|
return;
|
|
266
197
|
}
|
|
267
|
-
|
|
268
198
|
var tableBodyHtmlTable = this.domHelper.getTableBodyHtmlTable();
|
|
269
199
|
var innerTableWidth = tableBodyHtmlTable.offsetWidth;
|
|
270
200
|
var artTableWidth = artTable.offsetWidth;
|
|
271
|
-
var artTableHeight = artTable.offsetHeight;
|
|
272
|
-
|
|
201
|
+
var artTableHeight = artTable.offsetHeight;
|
|
202
|
+
// 表格隐藏后,不需要对表格的滚动条做额外的逻辑处理
|
|
273
203
|
if (artTableWidth === 0 && artTableHeight === 0) return;
|
|
274
204
|
var stickyScrollHeightProp = this.props.stickyScrollHeight;
|
|
275
|
-
var stickyScrollHeight = stickyScrollHeightProp === 'auto' ? this.getScrollBarWidth() : stickyScrollHeightProp;
|
|
205
|
+
var stickyScrollHeight = stickyScrollHeightProp === 'auto' ? this.getScrollBarWidth() : stickyScrollHeightProp;
|
|
206
|
+
// stickyScroll.style.marginTop = `-${stickyScrollHeight + 1}px`
|
|
276
207
|
// 设置滚动条高度
|
|
277
|
-
|
|
278
208
|
stickyScroll.style.height = "".concat(stickyScrollHeight, "px");
|
|
279
|
-
|
|
280
209
|
if (artTableWidth >= innerTableWidth) {
|
|
281
210
|
if (this.state.hasScroll) {
|
|
282
211
|
this.setState({
|
|
@@ -291,7 +220,6 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
291
220
|
});
|
|
292
221
|
}
|
|
293
222
|
}
|
|
294
|
-
|
|
295
223
|
if (this.domHelper.virtual.offsetHeight > this.domHelper.tableBody.offsetHeight) {
|
|
296
224
|
// if (!this.state.hasScroll) {
|
|
297
225
|
// this.setState({
|
|
@@ -306,34 +234,30 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
306
234
|
// })
|
|
307
235
|
this.hasScrollY = false;
|
|
308
236
|
}
|
|
309
|
-
|
|
310
237
|
if (_lastHasScrollY !== this.hasScrollY) {
|
|
311
238
|
(_b = (_a = this.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, this.domHelper.tableBody.clientWidth);
|
|
312
239
|
}
|
|
313
|
-
|
|
314
240
|
var _this$lastInfo = this.lastInfo,
|
|
315
|
-
|
|
316
|
-
|
|
241
|
+
leftLockTotalWidth = _this$lastInfo.leftLockTotalWidth,
|
|
242
|
+
rightLockTotalWidth = _this$lastInfo.rightLockTotalWidth;
|
|
317
243
|
var lockTotalWidth = leftLockTotalWidth + rightLockTotalWidth;
|
|
318
|
-
var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
|
|
319
|
-
|
|
244
|
+
var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
|
|
245
|
+
// 设置子节点宽度
|
|
320
246
|
stickyScrollItem.style.width = "".concat(innerTableWidth - lockTotalWidth + stickyRightOffset, "px");
|
|
321
247
|
}
|
|
322
248
|
}, {
|
|
323
249
|
key: "renderTableHeader",
|
|
324
250
|
value: function renderTableHeader(info) {
|
|
325
251
|
var _this$props3 = this.props,
|
|
326
|
-
|
|
327
|
-
|
|
252
|
+
stickyTop = _this$props3.stickyTop,
|
|
253
|
+
hasHeader = _this$props3.hasHeader;
|
|
328
254
|
var renderHeader = (0, _renderTemplates.default)('header');
|
|
329
255
|
var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
|
|
330
|
-
|
|
331
256
|
if (typeof renderHeader === 'function') {
|
|
332
257
|
return renderHeader(info, this.props, {
|
|
333
258
|
stickyRightOffset: stickyRightOffset
|
|
334
259
|
});
|
|
335
260
|
}
|
|
336
|
-
|
|
337
261
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
338
262
|
className: (0, _classnames.default)(_styles.Classes.tableHeader, 'no-scrollbar'),
|
|
339
263
|
style: {
|
|
@@ -367,29 +291,23 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
367
291
|
this.syncHorizontalScroll(this.domHelper.virtual.scrollLeft);
|
|
368
292
|
}
|
|
369
293
|
/** 同步横向滚动偏移量 */
|
|
370
|
-
|
|
371
294
|
}, {
|
|
372
295
|
key: "syncHorizontalScroll",
|
|
373
296
|
value: function syncHorizontalScroll(x) {
|
|
374
297
|
this.updateOffsetX(x);
|
|
375
298
|
var flat = (0, _flat.default)(this.lastInfo);
|
|
376
299
|
var leftLockShadow = this.domHelper.getLeftLockShadow();
|
|
377
|
-
|
|
378
300
|
if (leftLockShadow) {
|
|
379
301
|
var shouldShowLeftLockShadow = flat.left.length > 0 && this.state.needRenderLock && x > 0;
|
|
380
|
-
|
|
381
302
|
if (shouldShowLeftLockShadow) {
|
|
382
303
|
leftLockShadow.classList.add('show-shadow');
|
|
383
304
|
} else {
|
|
384
305
|
leftLockShadow.classList.remove('show-shadow');
|
|
385
306
|
}
|
|
386
307
|
}
|
|
387
|
-
|
|
388
308
|
var rightLockShadow = this.domHelper.getRightLockShadow();
|
|
389
|
-
|
|
390
309
|
if (rightLockShadow) {
|
|
391
310
|
var shouldShowRightLockShadow = flat.right.length > 0 && this.state.needRenderLock && x < this.domHelper.virtual.scrollWidth - this.domHelper.virtual.clientWidth;
|
|
392
|
-
|
|
393
311
|
if (shouldShowRightLockShadow) {
|
|
394
312
|
rightLockShadow.classList.add('show-shadow');
|
|
395
313
|
} else {
|
|
@@ -402,10 +320,9 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
402
320
|
value: function getVerticalRenderRange(useVirtual) {
|
|
403
321
|
var dataSource = this.props.dataSource;
|
|
404
322
|
var _this$state = this.state,
|
|
405
|
-
|
|
406
|
-
|
|
323
|
+
offsetY = _this$state.offsetY,
|
|
324
|
+
maxRenderHeight = _this$state.maxRenderHeight;
|
|
407
325
|
var rowCount = dataSource.length;
|
|
408
|
-
|
|
409
326
|
if (useVirtual.vertical) {
|
|
410
327
|
return this.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, rowCount);
|
|
411
328
|
} else {
|
|
@@ -417,14 +334,13 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
417
334
|
value: function renderTableFooter(info) {
|
|
418
335
|
// console.log('render footer')
|
|
419
336
|
var _this$props4 = this.props,
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
337
|
+
_this$props4$footerDa = _this$props4.footerDataSource,
|
|
338
|
+
footerDataSource = _this$props4$footerDa === void 0 ? [] : _this$props4$footerDa,
|
|
339
|
+
getRowProps = _this$props4.getRowProps,
|
|
340
|
+
primaryKey = _this$props4.primaryKey,
|
|
341
|
+
stickyBottom = _this$props4.stickyBottom;
|
|
425
342
|
var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
|
|
426
343
|
var renderFooter = (0, _renderTemplates.default)('footer');
|
|
427
|
-
|
|
428
344
|
if (typeof renderFooter === 'function') {
|
|
429
345
|
return renderFooter(info, this.props, {
|
|
430
346
|
rowProps: {
|
|
@@ -434,7 +350,6 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
434
350
|
stickyRightOffset: stickyRightOffset
|
|
435
351
|
});
|
|
436
352
|
}
|
|
437
|
-
|
|
438
353
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
439
354
|
className: (0, _classnames.default)(_styles.Classes.tableFooter, _styles.Classes.horizontalScrollContainer),
|
|
440
355
|
style: {
|
|
@@ -464,8 +379,8 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
464
379
|
}, {
|
|
465
380
|
key: "renderLockShadows",
|
|
466
381
|
value: function renderLockShadows(info) {
|
|
467
|
-
var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
|
|
468
|
-
|
|
382
|
+
var stickyRightOffset = this.hasScrollY ? this.getScrollBarWidth() : 0;
|
|
383
|
+
// console.log('render LockShadows')
|
|
469
384
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
470
385
|
className: _styles.Classes.lockShadowMask,
|
|
471
386
|
style: {
|
|
@@ -489,8 +404,8 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
489
404
|
value: function renderStickyScroll(info) {
|
|
490
405
|
// console.log('render stickyscroll')
|
|
491
406
|
var _this$props5 = this.props,
|
|
492
|
-
|
|
493
|
-
|
|
407
|
+
hasStickyScroll = _this$props5.hasStickyScroll,
|
|
408
|
+
stickyBottom = _this$props5.stickyBottom;
|
|
494
409
|
var hasScroll = this.state.hasScroll;
|
|
495
410
|
var isScroll = hasStickyScroll && hasScroll;
|
|
496
411
|
var stickyScrollContainerStyle = this.getStickyScrollContainerStyle();
|
|
@@ -528,8 +443,8 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
528
443
|
key: "getStickyScrollContainerStyle",
|
|
529
444
|
value: function getStickyScrollContainerStyle() {
|
|
530
445
|
var _this$props6 = this.props,
|
|
531
|
-
|
|
532
|
-
|
|
446
|
+
hasStickyScroll = _this$props6.hasStickyScroll,
|
|
447
|
+
stickyScrollHeight = _this$props6.stickyScrollHeight;
|
|
533
448
|
var hasScroll = this.state.hasScroll;
|
|
534
449
|
var isScroll = hasStickyScroll && hasScroll;
|
|
535
450
|
var height = stickyScrollHeight === 'auto' ? this.getScrollBarWidth() : stickyScrollHeight;
|
|
@@ -544,24 +459,23 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
544
459
|
key: "render",
|
|
545
460
|
value: function render() {
|
|
546
461
|
var _cx;
|
|
547
|
-
|
|
548
462
|
// console.log('render table')
|
|
549
463
|
var info = (0, _calculations.calculateRenderInfo)(this);
|
|
550
464
|
this.lastInfo = info;
|
|
551
465
|
var _this$props7 = this.props,
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
466
|
+
dataSource = _this$props7.dataSource,
|
|
467
|
+
className = _this$props7.className,
|
|
468
|
+
style = _this$props7.style,
|
|
469
|
+
hasHeader = _this$props7.hasHeader,
|
|
470
|
+
useOuterBorder = _this$props7.useOuterBorder,
|
|
471
|
+
isStickyHead = _this$props7.isStickyHead,
|
|
472
|
+
isStickyHeader = _this$props7.isStickyHeader,
|
|
473
|
+
isStickyFooter = _this$props7.isStickyFooter,
|
|
474
|
+
isLoading = _this$props7.isLoading,
|
|
475
|
+
getTableProps = _this$props7.getTableProps,
|
|
476
|
+
footerDataSource = _this$props7.footerDataSource,
|
|
477
|
+
components = _this$props7.components,
|
|
478
|
+
bordered = _this$props7.bordered;
|
|
565
479
|
var artTableWrapperClassName = (0, _classnames.default)(_styles.Classes.artTableWrapper, (_cx = {
|
|
566
480
|
'use-outer-border': useOuterBorder,
|
|
567
481
|
empty: dataSource.length === 0,
|
|
@@ -588,18 +502,17 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
588
502
|
key: "componentDidMount",
|
|
589
503
|
value: function componentDidMount() {
|
|
590
504
|
var _a, _b, _c, _d, _e, _f;
|
|
591
|
-
|
|
592
505
|
this.rootSubscription = new _rxjs.Subscription();
|
|
593
506
|
this.resizeSubject = new _rxjs.Subject();
|
|
594
507
|
this.updateDOMHelper();
|
|
595
508
|
this.props$ = new _rxjs.BehaviorSubject(this.props);
|
|
596
509
|
this.initSubscriptions();
|
|
597
|
-
this.didMountOrUpdate();
|
|
598
|
-
|
|
510
|
+
this.didMountOrUpdate();
|
|
511
|
+
// console.log('did mount end')
|
|
599
512
|
var _this$props8 = this.props,
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
513
|
+
cssVariables = _this$props8.cssVariables,
|
|
514
|
+
enableCSSVariables = _this$props8.enableCSSVariables,
|
|
515
|
+
bordered = _this$props8.bordered;
|
|
603
516
|
(0, _utils.cssPolifill)({
|
|
604
517
|
variables: cssVariables || {},
|
|
605
518
|
enableCSSVariables: enableCSSVariables,
|
|
@@ -612,14 +525,12 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
612
525
|
}, {
|
|
613
526
|
key: "componentDidUpdate",
|
|
614
527
|
value: function componentDidUpdate(prevProps, prevState) {
|
|
615
|
-
var _a;
|
|
616
|
-
|
|
617
|
-
|
|
528
|
+
var _a;
|
|
529
|
+
// console.log('did update start')
|
|
618
530
|
var _this$props9 = this.props,
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
531
|
+
cssVariables = _this$props9.cssVariables,
|
|
532
|
+
enableCSSVariables = _this$props9.enableCSSVariables,
|
|
533
|
+
bordered = _this$props9.bordered;
|
|
623
534
|
if (!(0, _utils.shallowEqual)(prevProps === null || prevProps === void 0 ? void 0 : prevProps.cssVariables, (_a = this.props) === null || _a === void 0 ? void 0 : _a.cssVariables)) {
|
|
624
535
|
(0, _utils.cssPolifill)({
|
|
625
536
|
variables: cssVariables || {},
|
|
@@ -627,10 +538,10 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
627
538
|
bordered: bordered
|
|
628
539
|
});
|
|
629
540
|
}
|
|
630
|
-
|
|
631
541
|
this.updateDOMHelper();
|
|
632
542
|
this.props$.next(this.props);
|
|
633
|
-
this.didMountOrUpdate(prevProps, prevState);
|
|
543
|
+
this.didMountOrUpdate(prevProps, prevState);
|
|
544
|
+
// console.log('did update end')
|
|
634
545
|
}
|
|
635
546
|
}, {
|
|
636
547
|
key: "didMountOrUpdate",
|
|
@@ -649,11 +560,9 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
649
560
|
this.domHelper.stickyScroll.scrollLeft = 0;
|
|
650
561
|
}
|
|
651
562
|
}
|
|
652
|
-
|
|
653
563
|
if (prevProps != null) {
|
|
654
564
|
var prevHasFooter = prevProps.footerDataSource.length > 0;
|
|
655
565
|
var currentHasFooter = this.props.footerDataSource.length > 0;
|
|
656
|
-
|
|
657
566
|
if (!prevHasFooter && currentHasFooter) {
|
|
658
567
|
(0, _utils.getTableScrollFooterDOM)(this.domHelper).scrollLeft = this.domHelper.virtual.scrollLeft;
|
|
659
568
|
}
|
|
@@ -663,64 +572,55 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
663
572
|
key: "initSubscriptions",
|
|
664
573
|
value: function initSubscriptions() {
|
|
665
574
|
var _this2 = this;
|
|
666
|
-
|
|
667
575
|
var _this$domHelper2 = this.domHelper,
|
|
668
|
-
|
|
669
|
-
|
|
576
|
+
virtual = _this$domHelper2.virtual,
|
|
577
|
+
stickyScroll = _this$domHelper2.stickyScroll;
|
|
670
578
|
this.rootSubscription.add(_utils.throttledWindowResize$.subscribe(function () {
|
|
671
579
|
_this2.updateStickyScroll();
|
|
672
|
-
|
|
673
580
|
_this2.adjustNeedRenderLock();
|
|
674
581
|
}));
|
|
675
582
|
this.resizeSubject.pipe(op.debounceTime(100)).subscribe(function () {
|
|
676
583
|
var _a, _b;
|
|
677
|
-
|
|
678
584
|
(_b = (_a = _this2.props).setTableWidth) === null || _b === void 0 ? void 0 : _b.call(_a, _this2.domHelper.tableBody.clientWidth);
|
|
679
585
|
});
|
|
680
|
-
|
|
681
586
|
var handleTableWrapperResize = function handleTableWrapperResize() {
|
|
682
587
|
_this2.resizeSubject.next();
|
|
683
588
|
};
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
589
|
+
this.resizeObserver = (0, _utils.addResizeObserver)(this.domHelper.artTableWrapper, handleTableWrapperResize);
|
|
590
|
+
// 滚动同步
|
|
687
591
|
this.rootSubscription.add((0, _utils.syncScrollLeft)([(0, _utils.getTableScrollHeaderDOM)(this.domHelper), virtual, (0, _utils.getTableScrollFooterDOM)(this.domHelper), stickyScroll], function (scrollLeft) {
|
|
688
592
|
_this2.syncHorizontalScroll(scrollLeft);
|
|
689
593
|
}));
|
|
690
|
-
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());
|
|
691
|
-
|
|
594
|
+
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());
|
|
595
|
+
// 每当可见部分发生变化的时候,调整 loading icon 的未知(如果 loading icon 存在的话)
|
|
692
596
|
this.rootSubscription.add((0, _rxjs.combineLatest)([richVisibleRects$.pipe(op.map(function (p) {
|
|
693
597
|
return p.clipRect;
|
|
694
598
|
}), op.distinctUntilChanged(_utils.shallowEqual)), this.props$.pipe(op.startWith(null), op.pairwise(), op.filter(function (_ref) {
|
|
695
599
|
var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
600
|
+
prevProps = _ref2[0],
|
|
601
|
+
props = _ref2[1];
|
|
699
602
|
return prevProps == null || !prevProps.isLoading && props.isLoading;
|
|
700
603
|
}))]).subscribe(function (_ref3) {
|
|
701
604
|
var _ref4 = (0, _slicedToArray2.default)(_ref3, 1),
|
|
702
|
-
|
|
703
|
-
|
|
605
|
+
clipRect = _ref4[0];
|
|
704
606
|
var loadingIndicator = _this2.domHelper.getLoadingIndicator();
|
|
705
|
-
|
|
706
607
|
if (!loadingIndicator) {
|
|
707
608
|
return;
|
|
708
609
|
}
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
610
|
+
var height = clipRect.bottom - clipRect.top;
|
|
611
|
+
// fixme 这里的定位在有些特殊情况下可能会出错 see #132
|
|
712
612
|
loadingIndicator.style.top = "".concat(height / 2, "px");
|
|
713
613
|
loadingIndicator.style.marginTop = "".concat(height / 2, "px");
|
|
714
|
-
}));
|
|
715
|
-
|
|
614
|
+
}));
|
|
615
|
+
// 每当可见部分发生变化的时候,如果开启了虚拟滚动,则重新触发 render
|
|
716
616
|
this.rootSubscription.add(richVisibleRects$.pipe(op.filter(function () {
|
|
717
617
|
var _this2$lastInfo$useVi = _this2.lastInfo.useVirtual,
|
|
718
|
-
|
|
719
|
-
|
|
618
|
+
horizontal = _this2$lastInfo$useVi.horizontal,
|
|
619
|
+
vertical = _this2$lastInfo$useVi.vertical;
|
|
720
620
|
return horizontal || vertical;
|
|
721
621
|
}), op.map(function (_ref5) {
|
|
722
622
|
var clipRect = _ref5.clipRect,
|
|
723
|
-
|
|
623
|
+
offsetY = _ref5.offsetY;
|
|
724
624
|
return {
|
|
725
625
|
maxRenderHeight: clipRect.bottom - clipRect.top,
|
|
726
626
|
maxRenderWidth: clipRect.right - clipRect.left,
|
|
@@ -730,16 +630,15 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
730
630
|
// 如果表格区域被隐藏, 不需要触发组件重渲染
|
|
731
631
|
if (y.maxRenderHeight === 0 && y.maxRenderWidth === 0) {
|
|
732
632
|
return true;
|
|
733
|
-
}
|
|
734
|
-
|
|
735
|
-
|
|
633
|
+
}
|
|
634
|
+
// 因为 overscan 的存在,滚动较小的距离时不需要触发组件重渲染
|
|
736
635
|
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;
|
|
737
636
|
})).subscribe(function (sizeAndOffset) {
|
|
738
637
|
_this2.setState(sizeAndOffset);
|
|
739
638
|
}));
|
|
740
639
|
this.rootSubscription.add(richVisibleRects$.pipe(op.map(function (_ref6) {
|
|
741
640
|
var clipRect = _ref6.clipRect,
|
|
742
|
-
|
|
641
|
+
offsetY = _ref6.offsetY;
|
|
743
642
|
return {
|
|
744
643
|
maxRenderHeight: clipRect.bottom - clipRect.top,
|
|
745
644
|
maxRenderWidth: clipRect.right - clipRect.left,
|
|
@@ -747,20 +646,18 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
747
646
|
};
|
|
748
647
|
}), op.distinctUntilChanged(function (x, y) {
|
|
749
648
|
return x.offsetY - y.offsetY === 0;
|
|
750
|
-
}),
|
|
649
|
+
}),
|
|
650
|
+
// 计算得到当前行索引对应的数据块,blocks改成数组的形式,兼容快速拖动可视区域出现两个数据块的情况
|
|
751
651
|
op.map(function (sizeAndOffset) {
|
|
752
652
|
var _a;
|
|
753
|
-
|
|
754
653
|
var offsetY = sizeAndOffset.offsetY,
|
|
755
|
-
|
|
654
|
+
maxRenderHeight = sizeAndOffset.maxRenderHeight;
|
|
756
655
|
var scrollDirection = offsetY - _this2.offsetY >= 0 ? 'down' : 'up';
|
|
757
656
|
_this2.offsetY = offsetY;
|
|
758
657
|
var rowCount = _this2.props.dataSource.length;
|
|
759
|
-
|
|
760
658
|
var vertical = _this2.rowHeightManager.getRenderRange(offsetY, maxRenderHeight, rowCount);
|
|
761
|
-
|
|
762
659
|
var topIndex = vertical.topIndex,
|
|
763
|
-
|
|
660
|
+
bottomIndex = vertical.bottomIndex;
|
|
764
661
|
var blockSize = ((_a = _this2.props.scrollLoad) === null || _a === void 0 ? void 0 : _a.blockSize) || 200;
|
|
765
662
|
var topBlockStartIndex = Math.floor(Math.max(topIndex - 1, 0) / blockSize) * blockSize;
|
|
766
663
|
var bottomBlockStartIndex = Math.floor((bottomIndex + 1) / blockSize) * blockSize;
|
|
@@ -772,10 +669,10 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
772
669
|
return event$.pipe(op.map(function (startIndex) {
|
|
773
670
|
return startIndex;
|
|
774
671
|
}));
|
|
775
|
-
}),
|
|
672
|
+
}),
|
|
673
|
+
// 过滤掉重复掉值
|
|
776
674
|
op.distinctUntilChanged()).subscribe(function (startIndex) {
|
|
777
675
|
var _a;
|
|
778
|
-
|
|
779
676
|
(_a = _this2.props.scrollLoad) === null || _a === void 0 ? void 0 : _a.callback(startIndex);
|
|
780
677
|
}));
|
|
781
678
|
}
|
|
@@ -783,13 +680,11 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
783
680
|
key: "componentWillUnmount",
|
|
784
681
|
value: function componentWillUnmount() {
|
|
785
682
|
var _a;
|
|
786
|
-
|
|
787
683
|
(_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
788
684
|
this.rootSubscription.unsubscribe();
|
|
789
685
|
this.resizeSubject.unsubscribe();
|
|
790
686
|
}
|
|
791
687
|
/** 更新 DOM 节点的引用,方便其他方法直接操作 DOM */
|
|
792
|
-
|
|
793
688
|
}, {
|
|
794
689
|
key: "updateDOMHelper",
|
|
795
690
|
value: function updateDOMHelper() {
|
|
@@ -799,51 +694,42 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
799
694
|
key: "updateRowHeightManager",
|
|
800
695
|
value: function updateRowHeightManager() {
|
|
801
696
|
var _a;
|
|
802
|
-
|
|
803
697
|
var virtualTop = this.domHelper.getVirtualTop();
|
|
804
698
|
var virtualTopHeight = (_a = virtualTop === null || virtualTop === void 0 ? void 0 : virtualTop.clientHeight) !== null && _a !== void 0 ? _a : 0;
|
|
805
699
|
var maxTrRowIndex = -1;
|
|
806
700
|
var maxTrBottom = -1;
|
|
807
701
|
var zeroHeightRowCount = 0;
|
|
808
|
-
|
|
809
702
|
var _iterator = _createForOfIteratorHelper(this.domHelper.getTableRows()),
|
|
810
|
-
|
|
811
|
-
|
|
703
|
+
_step;
|
|
812
704
|
try {
|
|
813
705
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
814
706
|
var tr = _step.value;
|
|
815
707
|
var rowIndex = Number(tr.dataset.rowindex);
|
|
816
|
-
|
|
817
708
|
if (isNaN(rowIndex)) {
|
|
818
709
|
continue;
|
|
819
710
|
}
|
|
820
|
-
|
|
821
711
|
maxTrRowIndex = Math.max(maxTrRowIndex, rowIndex);
|
|
822
712
|
var offset = tr.offsetTop + virtualTopHeight;
|
|
823
713
|
var size = tr.offsetHeight;
|
|
824
|
-
|
|
825
714
|
if (size === 0) {
|
|
826
715
|
zeroHeightRowCount += 1;
|
|
827
716
|
} else {
|
|
828
717
|
// 渲染出来的行高度为0,说明是display=none情况,行高不存在该种异常情况,不保存当前的高度
|
|
829
718
|
this.rowHeightManager.updateRow(rowIndex, offset, size);
|
|
830
719
|
}
|
|
831
|
-
|
|
832
720
|
maxTrBottom = Math.max(maxTrBottom, offset + size);
|
|
833
|
-
}
|
|
721
|
+
}
|
|
722
|
+
// 当 estimatedRowHeight 过大时,可能出现「渲染行数过少,无法覆盖可视范围」的情况
|
|
834
723
|
// 出现这种情况时,我们判断「下一次渲染能够渲染更多行」是否满足,满足的话就直接调用 forceUpdate
|
|
835
724
|
// zeroHeightRowCount === 0 用于确保当前没有 display=none 的情况
|
|
836
|
-
|
|
837
725
|
} catch (err) {
|
|
838
726
|
_iterator.e(err);
|
|
839
727
|
} finally {
|
|
840
728
|
_iterator.f();
|
|
841
729
|
}
|
|
842
|
-
|
|
843
730
|
if (maxTrRowIndex !== -1 && zeroHeightRowCount === 0) {
|
|
844
731
|
if (maxTrBottom < this.state.offsetY + this.state.maxRenderHeight) {
|
|
845
732
|
var vertical = this.getVerticalRenderRange(this.lastInfo.useVirtual);
|
|
846
|
-
|
|
847
733
|
if (vertical.bottomIndex - 1 > maxTrRowIndex) {
|
|
848
734
|
this.forceUpdate();
|
|
849
735
|
}
|
|
@@ -851,23 +737,19 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
851
737
|
}
|
|
852
738
|
}
|
|
853
739
|
/** 计算表格所有列的渲染宽度之和,判断表格是否需要渲染锁列 */
|
|
854
|
-
|
|
855
740
|
}, {
|
|
856
741
|
key: "adjustNeedRenderLock",
|
|
857
742
|
value: function adjustNeedRenderLock() {
|
|
858
743
|
var needRenderLock = this.state.needRenderLock;
|
|
859
744
|
var _this$lastInfo2 = this.lastInfo,
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
745
|
+
flat = (0, _flat.default)(_this$lastInfo2),
|
|
746
|
+
hasLockColumn = _this$lastInfo2.hasLockColumn;
|
|
863
747
|
if (hasLockColumn) {
|
|
864
748
|
var _context;
|
|
865
|
-
|
|
866
749
|
var sumOfColWidth = (0, _utils.sum)((0, _map.default)(_context = flat.full).call(_context, function (col) {
|
|
867
750
|
return col.width;
|
|
868
751
|
}));
|
|
869
752
|
var nextNeedRenderLock = sumOfColWidth > this.domHelper.artTable.clientWidth;
|
|
870
|
-
|
|
871
753
|
if (needRenderLock !== nextNeedRenderLock) {
|
|
872
754
|
this.setState({
|
|
873
755
|
needRenderLock: nextNeedRenderLock
|
|
@@ -884,7 +766,6 @@ var BaseTable = /*#__PURE__*/function (_React$Component) {
|
|
|
884
766
|
}]);
|
|
885
767
|
return BaseTable;
|
|
886
768
|
}(_react.default.Component);
|
|
887
|
-
|
|
888
769
|
exports.BaseTable = BaseTable;
|
|
889
770
|
BaseTable.defaultProps = {
|
|
890
771
|
hasHeader: true,
|