@kdcloudjs/table 1.2.0-canary.6 → 1.2.0-canary.6-hotfix.2
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 +1877 -3363
- 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/kd-ui-complete.less +777 -777
- 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/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/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.d.ts +2 -1
- package/es/table/base/header.js +17 -68
- package/es/table/base/helpers/SpanManager.js +3 -9
- package/es/table/base/helpers/TableDOMUtils.js +3 -26
- 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 +11 -44
- package/es/table/base/helpers/rowHeightManager.js +0 -28
- package/es/table/base/html-table.js +15 -36
- package/es/table/base/loading.js +6 -8
- package/es/table/base/renderTemplates.js +50 -54
- package/es/table/base/styles.js +1 -10
- package/es/table/base/table.js +116 -189
- 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 -38
- 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 -95
- package/es/table/pipeline/features/columnFilter.js +11 -44
- 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/rowGrouping.js +2 -35
- package/es/table/pipeline/features/singleSelect.js +0 -24
- package/es/table/pipeline/features/sort.js +29 -79
- package/es/table/pipeline/features/tips.js +0 -6
- package/es/table/pipeline/features/treeMode.js +9 -43
- package/es/table/pipeline/features/treeSelect.js +0 -26
- package/es/table/pipeline/pipeline.js +9 -49
- 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/style/index.less +1 -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 -88
- 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/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/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/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/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.d.ts +2 -1
- package/lib/table/base/header.js +17 -78
- package/lib/table/base/helpers/SpanManager.js +3 -11
- package/lib/table/base/helpers/TableDOMUtils.js +1 -26
- 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 +11 -62
- package/lib/table/base/helpers/rowHeightManager.js +0 -33
- package/lib/table/base/html-table.js +15 -46
- package/lib/table/base/index.js +0 -2
- package/lib/table/base/loading.js +6 -12
- package/lib/table/base/renderTemplates.js +51 -68
- package/lib/table/base/styles.js +1 -22
- package/lib/table/base/table.js +116 -222
- 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 -45
- 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 -101
- package/lib/table/pipeline/features/columnFilter.js +11 -58
- 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 -22
- package/lib/table/pipeline/features/mergeCellHover.js +0 -5
- package/lib/table/pipeline/features/multiSelect.js +15 -70
- package/lib/table/pipeline/features/rangeSelection.js +63 -159
- package/lib/table/pipeline/features/rowDetail.js +2 -65
- package/lib/table/pipeline/features/rowGrouping.js +2 -55
- package/lib/table/pipeline/features/singleSelect.js +0 -33
- package/lib/table/pipeline/features/sort.js +29 -99
- package/lib/table/pipeline/features/tips.js +0 -15
- package/lib/table/pipeline/features/treeMode.js +9 -64
- package/lib/table/pipeline/features/treeSelect.js +0 -34
- package/lib/table/pipeline/index.js +0 -8
- package/lib/table/pipeline/pipeline.js +9 -58
- 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/style/index.less +1 -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 -112
- 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/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 -20
- 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/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/package.json +219 -218
|
@@ -1,96 +1,62 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _sliceInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/slice");
|
|
4
|
-
|
|
5
4
|
var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from");
|
|
6
|
-
|
|
7
5
|
var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol");
|
|
8
|
-
|
|
9
6
|
var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method");
|
|
10
|
-
|
|
11
7
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
12
|
-
|
|
13
8
|
Object.defineProperty(exports, "__esModule", {
|
|
14
9
|
value: true
|
|
15
10
|
});
|
|
16
11
|
exports.calculateRenderInfo = calculateRenderInfo;
|
|
17
12
|
exports.getLeftNestedLockCount = getLeftNestedLockCount;
|
|
18
|
-
|
|
19
13
|
var _flat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flat"));
|
|
20
|
-
|
|
21
14
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
22
|
-
|
|
23
15
|
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
24
|
-
|
|
25
16
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
26
|
-
|
|
27
17
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
28
|
-
|
|
29
18
|
var _map2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/map"));
|
|
30
|
-
|
|
31
19
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
|
|
32
|
-
|
|
33
20
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/typeof"));
|
|
34
|
-
|
|
35
21
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
36
|
-
|
|
37
22
|
var _utils = require("../utils");
|
|
38
|
-
|
|
39
23
|
var _utils2 = require("./utils");
|
|
40
|
-
|
|
41
24
|
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
|
-
|
|
43
25
|
function _unsupportedIterableToArray(o, minLen) { var _context10; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty2(_context10 = Object.prototype.toString.call(o)).call(_context10, 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); }
|
|
44
|
-
|
|
45
26
|
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; }
|
|
46
|
-
|
|
47
27
|
function resolveVirtualEnabled(virtualEnum, defaultValue) {
|
|
48
28
|
if (virtualEnum == null || virtualEnum === 'auto') {
|
|
49
29
|
return defaultValue;
|
|
50
30
|
}
|
|
51
|
-
|
|
52
31
|
return virtualEnum;
|
|
53
32
|
}
|
|
54
|
-
|
|
55
33
|
var lockColumnNeedSpecifiedWidthWarned = false;
|
|
56
|
-
|
|
57
34
|
function warnLockColumnNeedSpecifiedWidth(column) {
|
|
58
35
|
if (!lockColumnNeedSpecifiedWidthWarned) {
|
|
59
36
|
lockColumnNeedSpecifiedWidthWarned = true;
|
|
60
|
-
|
|
61
37
|
_utils.console.warn('lock=true 的列需要指定宽度', column);
|
|
62
38
|
}
|
|
63
39
|
}
|
|
64
|
-
|
|
65
40
|
var columnHiddenDeprecatedWarned = false;
|
|
66
|
-
|
|
67
41
|
function warnColumnHiddenDeprecated(column) {
|
|
68
42
|
if (!columnHiddenDeprecatedWarned) {
|
|
69
43
|
columnHiddenDeprecatedWarned = true;
|
|
70
|
-
|
|
71
44
|
_utils.console.warn('column.hidden 已经过时,如果需要隐藏该列,请将其从 columns 数组中移除', column);
|
|
72
45
|
}
|
|
73
46
|
}
|
|
74
47
|
/** 检查列配置 & 设置默认宽度 & 剔除隐藏的列 */
|
|
75
|
-
|
|
76
|
-
|
|
77
48
|
function processColumns(columns, defaultColumnWidth) {
|
|
78
49
|
if (columns == null || !Array.isArray(columns)) {
|
|
79
50
|
_utils.console.warn('<BaseTable /> props.columns 需要传入一个数组', columns);
|
|
80
|
-
|
|
81
51
|
columns = [];
|
|
82
52
|
}
|
|
83
|
-
|
|
84
53
|
function dfs(columns) {
|
|
85
54
|
var result = [];
|
|
86
|
-
|
|
87
55
|
var _iterator = _createForOfIteratorHelper(columns),
|
|
88
|
-
|
|
89
|
-
|
|
56
|
+
_step;
|
|
90
57
|
try {
|
|
91
58
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
92
59
|
var column = _step.value;
|
|
93
|
-
|
|
94
60
|
if (column.width == null) {
|
|
95
61
|
if (defaultColumnWidth != null) {
|
|
96
62
|
column = (0, _extends2.default)((0, _extends2.default)({}, column), {
|
|
@@ -100,7 +66,6 @@ function processColumns(columns, defaultColumnWidth) {
|
|
|
100
66
|
warnLockColumnNeedSpecifiedWidth(column);
|
|
101
67
|
}
|
|
102
68
|
}
|
|
103
|
-
|
|
104
69
|
if ((0, _utils.isLeafNode)(column)) {
|
|
105
70
|
if (column.hidden) {
|
|
106
71
|
// 被隐藏的列 会在这里被剔除
|
|
@@ -109,8 +74,8 @@ function processColumns(columns, defaultColumnWidth) {
|
|
|
109
74
|
result.push(column);
|
|
110
75
|
}
|
|
111
76
|
} else {
|
|
112
|
-
var nextChildren = dfs(column.children);
|
|
113
|
-
|
|
77
|
+
var nextChildren = dfs(column.children);
|
|
78
|
+
// 如果 nextChildren 为空,说明所有的子节点均被隐藏了,在这里隐藏父节点
|
|
114
79
|
if (nextChildren.length > 0) {
|
|
115
80
|
result.push((0, _extends2.default)((0, _extends2.default)({}, column), {
|
|
116
81
|
children: nextChildren
|
|
@@ -123,23 +88,17 @@ function processColumns(columns, defaultColumnWidth) {
|
|
|
123
88
|
} finally {
|
|
124
89
|
_iterator.f();
|
|
125
90
|
}
|
|
126
|
-
|
|
127
91
|
return result;
|
|
128
92
|
}
|
|
129
|
-
|
|
130
93
|
return dfs(columns);
|
|
131
94
|
}
|
|
132
|
-
|
|
133
95
|
function getLeftNestedLockCount(columns) {
|
|
134
96
|
var nestedCount = 0;
|
|
135
|
-
|
|
136
97
|
var _iterator2 = _createForOfIteratorHelper(columns),
|
|
137
|
-
|
|
138
|
-
|
|
98
|
+
_step2;
|
|
139
99
|
try {
|
|
140
100
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
141
101
|
var col = _step2.value;
|
|
142
|
-
|
|
143
102
|
if (isLock(col)) {
|
|
144
103
|
nestedCount += 1;
|
|
145
104
|
} else {
|
|
@@ -151,9 +110,7 @@ function getLeftNestedLockCount(columns) {
|
|
|
151
110
|
} finally {
|
|
152
111
|
_iterator2.f();
|
|
153
112
|
}
|
|
154
|
-
|
|
155
113
|
return nestedCount;
|
|
156
|
-
|
|
157
114
|
function isLock(col) {
|
|
158
115
|
if ((0, _utils.isLeafNode)(col)) {
|
|
159
116
|
return col.lock;
|
|
@@ -162,15 +119,12 @@ function getLeftNestedLockCount(columns) {
|
|
|
162
119
|
}
|
|
163
120
|
}
|
|
164
121
|
}
|
|
165
|
-
|
|
166
122
|
function getHorizontalRenderRange(_ref) {
|
|
167
123
|
var _context, _context2;
|
|
168
|
-
|
|
169
124
|
var offsetX = _ref.offsetX,
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
125
|
+
maxRenderWidth = _ref.maxRenderWidth,
|
|
126
|
+
flat = (0, _flat.default)(_ref),
|
|
127
|
+
useVirtual = _ref.useVirtual;
|
|
174
128
|
if (!useVirtual.horizontal) {
|
|
175
129
|
return {
|
|
176
130
|
leftIndex: 0,
|
|
@@ -179,30 +133,24 @@ function getHorizontalRenderRange(_ref) {
|
|
|
179
133
|
rightBlank: 0
|
|
180
134
|
};
|
|
181
135
|
}
|
|
182
|
-
|
|
183
136
|
var leftIndex = 0;
|
|
184
137
|
var centerCount = 0;
|
|
185
138
|
var leftBlank = 0;
|
|
186
139
|
var centerRenderWidth = 0;
|
|
187
140
|
var overscannedOffsetX = Math.max(0, offsetX - _utils2.OVERSCAN_SIZE);
|
|
188
|
-
|
|
189
141
|
while (leftIndex < flat.center.length) {
|
|
190
142
|
var col = flat.center[leftIndex];
|
|
191
|
-
|
|
192
143
|
if (col.width + leftBlank < overscannedOffsetX) {
|
|
193
144
|
leftIndex += 1;
|
|
194
145
|
leftBlank += col.width;
|
|
195
146
|
} else {
|
|
196
147
|
break;
|
|
197
148
|
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
|
|
149
|
+
}
|
|
150
|
+
// 考虑 over scan 之后,中间部分的列至少需要渲染的宽度
|
|
201
151
|
var minCenterRenderWidth = maxRenderWidth + (overscannedOffsetX - leftBlank) + 2 * _utils2.OVERSCAN_SIZE;
|
|
202
|
-
|
|
203
152
|
while (leftIndex + centerCount < flat.center.length) {
|
|
204
153
|
var _col = flat.center[leftIndex + centerCount];
|
|
205
|
-
|
|
206
154
|
if (centerRenderWidth < minCenterRenderWidth) {
|
|
207
155
|
centerRenderWidth += _col.width;
|
|
208
156
|
centerCount += 1;
|
|
@@ -210,7 +158,6 @@ function getHorizontalRenderRange(_ref) {
|
|
|
210
158
|
break;
|
|
211
159
|
}
|
|
212
160
|
}
|
|
213
|
-
|
|
214
161
|
var rightBlankCount = flat.center.length - leftIndex - centerCount;
|
|
215
162
|
var rightBlank = (0, _utils2.sum)((0, _map.default)(_context = (0, _slice.default)(_context2 = flat.center).call(_context2, flat.center.length - rightBlankCount)).call(_context, function (col) {
|
|
216
163
|
return col.width;
|
|
@@ -221,28 +168,25 @@ function getHorizontalRenderRange(_ref) {
|
|
|
221
168
|
rightIndex: leftIndex + centerCount,
|
|
222
169
|
rightBlank: rightBlank
|
|
223
170
|
};
|
|
224
|
-
}
|
|
171
|
+
}
|
|
172
|
+
// 一顿计算,将表格本次渲染所需要的数据都给算出来(代码写得有点乱,有较大优化空间)
|
|
225
173
|
// todo 可以考虑下将 header 部分的计算逻辑也放到这个文件中,目前应该有一些重复的计算逻辑
|
|
226
|
-
|
|
227
|
-
|
|
228
174
|
function calculateRenderInfo(table) {
|
|
229
175
|
var _context3, _context4, _context5, _context6, _context7, _context8, _context9;
|
|
230
|
-
|
|
231
176
|
var _table$state = table.state,
|
|
232
|
-
|
|
233
|
-
|
|
177
|
+
offsetX = _table$state.offsetX,
|
|
178
|
+
maxRenderWidth = _table$state.maxRenderWidth;
|
|
234
179
|
var _table$props = table.props,
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
180
|
+
useVirtualProp = _table$props.useVirtual,
|
|
181
|
+
columnsProp = _table$props.columns,
|
|
182
|
+
dataSourceProp = _table$props.dataSource,
|
|
183
|
+
defaultColumnWidth = _table$props.defaultColumnWidth;
|
|
239
184
|
var columns = processColumns(columnsProp, defaultColumnWidth);
|
|
240
185
|
var leftNestedLockCount = getLeftNestedLockCount(columns);
|
|
241
186
|
var fullFlat = (0, _utils.collectNodes)(columns, 'leaf-only');
|
|
242
187
|
var flat;
|
|
243
188
|
var nested;
|
|
244
189
|
var useVirtual;
|
|
245
|
-
|
|
246
190
|
if (leftNestedLockCount === columns.length) {
|
|
247
191
|
flat = {
|
|
248
192
|
left: [],
|
|
@@ -288,7 +232,6 @@ function calculateRenderInfo(table) {
|
|
|
288
232
|
center: centerNested
|
|
289
233
|
};
|
|
290
234
|
}
|
|
291
|
-
|
|
292
235
|
var horizontalRenderRange = getHorizontalRenderRange({
|
|
293
236
|
maxRenderWidth: maxRenderWidth,
|
|
294
237
|
offsetX: offsetX,
|
|
@@ -297,9 +240,9 @@ function calculateRenderInfo(table) {
|
|
|
297
240
|
});
|
|
298
241
|
var verticalRenderRange = table.getVerticalRenderRange(useVirtual);
|
|
299
242
|
var leftBlank = horizontalRenderRange.leftBlank,
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
243
|
+
leftIndex = horizontalRenderRange.leftIndex,
|
|
244
|
+
rightBlank = horizontalRenderRange.rightBlank,
|
|
245
|
+
rightIndex = horizontalRenderRange.rightIndex;
|
|
303
246
|
var unfilteredVisibleColumnDescriptors = (0, _concat.default)(_context3 = []).call(_context3, (0, _toConsumableArray2.default)((0, _map.default)(_context4 = flat.left).call(_context4, function (col, i) {
|
|
304
247
|
return {
|
|
305
248
|
type: 'normal',
|
|
@@ -327,7 +270,8 @@ function calculateRenderInfo(table) {
|
|
|
327
270
|
colIndex: flat.full.length - flat.right.length + i
|
|
328
271
|
};
|
|
329
272
|
})));
|
|
330
|
-
var visibleColumnDescriptors = (0, _filter.default)(unfilteredVisibleColumnDescriptors).call(unfilteredVisibleColumnDescriptors, Boolean);
|
|
273
|
+
var visibleColumnDescriptors = (0, _filter.default)(unfilteredVisibleColumnDescriptors).call(unfilteredVisibleColumnDescriptors, Boolean);
|
|
274
|
+
// const totalWidth = visibleColumnDescriptors.reduce((pre, cur) => {
|
|
331
275
|
// if (cur.type === 'blank') {
|
|
332
276
|
// return cur.width + pre
|
|
333
277
|
// } else {
|
|
@@ -341,26 +285,21 @@ function calculateRenderInfo(table) {
|
|
|
341
285
|
// width: `width: calc(100% - ${totalWidth}px)`
|
|
342
286
|
// } as VisibleColumnDescriptor)
|
|
343
287
|
// }
|
|
344
|
-
|
|
345
288
|
var fullFlatCount = flat.full.length;
|
|
346
289
|
var leftFlatCount = flat.left.length;
|
|
347
290
|
var rightFlatCount = flat.right.length;
|
|
348
291
|
var stickyLeftMap = new _map2.default();
|
|
349
292
|
var stickyLeft = 0;
|
|
350
|
-
|
|
351
293
|
for (var i = 0; i < leftFlatCount; i++) {
|
|
352
294
|
stickyLeftMap.set(i, stickyLeft);
|
|
353
295
|
stickyLeft += flat.full[i].width;
|
|
354
296
|
}
|
|
355
|
-
|
|
356
297
|
var stickyRightMap = new _map2.default();
|
|
357
298
|
var stickyRight = 0;
|
|
358
|
-
|
|
359
299
|
for (var _i = 0; _i < rightFlatCount; _i++) {
|
|
360
300
|
stickyRightMap.set(fullFlatCount - 1 - _i, stickyRight);
|
|
361
301
|
stickyRight += flat.full[fullFlatCount - 1 - _i].width;
|
|
362
302
|
}
|
|
363
|
-
|
|
364
303
|
var leftLockTotalWidth = (0, _utils2.sum)((0, _map.default)(_context8 = flat.left).call(_context8, function (col) {
|
|
365
304
|
return col.width;
|
|
366
305
|
}));
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.Colgroup = Colgroup;
|
|
9
|
-
|
|
10
8
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
11
|
-
|
|
12
9
|
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
14
10
|
function Colgroup(_ref) {
|
|
15
11
|
var descriptors = _ref.descriptors;
|
|
16
12
|
return /*#__PURE__*/_react.default.createElement("colgroup", null, (0, _map.default)(descriptors).call(descriptors, function (descriptor) {
|
|
@@ -22,7 +18,6 @@ function Colgroup(_ref) {
|
|
|
22
18
|
}
|
|
23
19
|
});
|
|
24
20
|
}
|
|
25
|
-
|
|
26
21
|
return /*#__PURE__*/_react.default.createElement("col", {
|
|
27
22
|
key: descriptor.colIndex,
|
|
28
23
|
style: {
|
package/lib/table/base/empty.js
CHANGED
|
@@ -1,30 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
-
|
|
5
4
|
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
6
|
-
|
|
7
5
|
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
8
|
-
|
|
9
6
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
10
|
-
|
|
11
7
|
Object.defineProperty(exports, "__esModule", {
|
|
12
8
|
value: true
|
|
13
9
|
});
|
|
14
10
|
exports.EmptyHtmlTable = EmptyHtmlTable;
|
|
15
|
-
|
|
16
11
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
-
|
|
18
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
|
|
20
13
|
var _colgroup = require("./colgroup");
|
|
21
|
-
|
|
22
14
|
var _styles = require("./styles");
|
|
23
|
-
|
|
24
15
|
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); }
|
|
25
|
-
|
|
26
16
|
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; }
|
|
27
|
-
|
|
28
17
|
var DefaultEmptyContent = /*#__PURE__*/_react.default.memo(function () {
|
|
29
18
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("img", {
|
|
30
19
|
alt: "empty-image",
|
|
@@ -34,13 +23,12 @@ var DefaultEmptyContent = /*#__PURE__*/_react.default.memo(function () {
|
|
|
34
23
|
className: "empty-tips"
|
|
35
24
|
}, "\u6CA1\u6709\u7B26\u5408\u67E5\u8BE2\u6761\u4EF6\u7684\u6570\u636E", /*#__PURE__*/_react.default.createElement("br", null), "\u8BF7\u4FEE\u6539\u6761\u4EF6\u540E\u91CD\u65B0\u67E5\u8BE2"));
|
|
36
25
|
});
|
|
37
|
-
|
|
38
26
|
function EmptyHtmlTable(_ref) {
|
|
39
27
|
var descriptors = _ref.descriptors,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
28
|
+
isLoading = _ref.isLoading,
|
|
29
|
+
emptyCellHeight = _ref.emptyCellHeight,
|
|
30
|
+
_ref$EmptyContent = _ref.EmptyContent,
|
|
31
|
+
EmptyContent = _ref$EmptyContent === void 0 ? DefaultEmptyContent : _ref$EmptyContent;
|
|
44
32
|
var show = !isLoading;
|
|
45
33
|
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("table", {
|
|
46
34
|
key: "table"
|
|
@@ -4,6 +4,7 @@ interface TableHeaderProps {
|
|
|
4
4
|
info: RenderInfo;
|
|
5
5
|
theaderPosition?: 'left' | 'center' | 'right';
|
|
6
6
|
rowCount?: number;
|
|
7
|
+
stickyRightOffset?: number;
|
|
7
8
|
}
|
|
8
|
-
export default function TableHeader({ info, theaderPosition, rowCount: _rowCount }: TableHeaderProps): JSX.Element;
|
|
9
|
+
export default function TableHeader({ info, theaderPosition, rowCount: _rowCount, stickyRightOffset }: TableHeaderProps): JSX.Element;
|
|
9
10
|
export {};
|
package/lib/table/base/header.js
CHANGED
|
@@ -1,76 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _sliceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/slice");
|
|
4
|
-
|
|
5
4
|
var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from");
|
|
6
|
-
|
|
7
5
|
var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol");
|
|
8
|
-
|
|
9
6
|
var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method");
|
|
10
|
-
|
|
11
7
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
12
|
-
|
|
13
8
|
Object.defineProperty(exports, "__esModule", {
|
|
14
9
|
value: true
|
|
15
10
|
});
|
|
16
11
|
exports.default = TableHeader;
|
|
17
|
-
|
|
18
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
19
|
-
|
|
20
13
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
21
|
-
|
|
22
14
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
|
|
23
|
-
|
|
24
15
|
var _flat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/flat"));
|
|
25
|
-
|
|
26
16
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
27
|
-
|
|
28
17
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
29
|
-
|
|
30
18
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
31
|
-
|
|
32
19
|
var _react = _interopRequireDefault(require("react"));
|
|
33
|
-
|
|
34
20
|
var _utils = require("../utils");
|
|
35
|
-
|
|
36
21
|
var _styles = require("./styles");
|
|
37
|
-
|
|
38
22
|
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; } } }; }
|
|
39
|
-
|
|
40
23
|
function _unsupportedIterableToArray(o, minLen) { var _context6; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context6 = Object.prototype.toString.call(o)).call(_context6, 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); }
|
|
41
|
-
|
|
42
24
|
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; }
|
|
43
|
-
|
|
44
25
|
function range(n) {
|
|
45
26
|
var array = [];
|
|
46
|
-
|
|
47
27
|
for (var i = 0; i < n; i++) {
|
|
48
28
|
array.push(i);
|
|
49
29
|
}
|
|
50
|
-
|
|
51
30
|
return array;
|
|
52
31
|
}
|
|
53
32
|
/** 根据当前横向虚拟滚动 对 nested.center 进行过滤,结果只保留当前视野内可见的那些列配置 */
|
|
54
|
-
|
|
55
|
-
|
|
56
33
|
function filterNestedCenter(centerNested, hoz, leftFlatCount) {
|
|
57
34
|
return dfs(centerNested, leftFlatCount).filtered;
|
|
58
|
-
|
|
59
35
|
function dfs(cols, startColIndex) {
|
|
60
36
|
var leafCount = 0;
|
|
61
37
|
var filtered = [];
|
|
62
|
-
|
|
63
38
|
var _iterator = _createForOfIteratorHelper(cols),
|
|
64
|
-
|
|
65
|
-
|
|
39
|
+
_step;
|
|
66
40
|
try {
|
|
67
41
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
68
42
|
var col = _step.value;
|
|
69
43
|
var colIndex = startColIndex + leafCount;
|
|
70
|
-
|
|
71
44
|
if ((0, _utils.isLeafNode)(col)) {
|
|
72
45
|
leafCount += 1;
|
|
73
|
-
|
|
74
46
|
if (leftFlatCount + hoz.leftIndex <= colIndex && colIndex < leftFlatCount + hoz.rightIndex) {
|
|
75
47
|
filtered.push({
|
|
76
48
|
colIndex: colIndex,
|
|
@@ -80,7 +52,6 @@ function filterNestedCenter(centerNested, hoz, leftFlatCount) {
|
|
|
80
52
|
} else {
|
|
81
53
|
var dfsRes = dfs(col.children, colIndex);
|
|
82
54
|
leafCount += dfsRes.leafCount;
|
|
83
|
-
|
|
84
55
|
if (dfsRes.filtered.length > 0) {
|
|
85
56
|
filtered.push({
|
|
86
57
|
colIndex: colIndex,
|
|
@@ -95,7 +66,6 @@ function filterNestedCenter(centerNested, hoz, leftFlatCount) {
|
|
|
95
66
|
} finally {
|
|
96
67
|
_iterator.f();
|
|
97
68
|
}
|
|
98
|
-
|
|
99
69
|
return {
|
|
100
70
|
filtered: filtered,
|
|
101
71
|
leafCount: leafCount
|
|
@@ -103,28 +73,21 @@ function filterNestedCenter(centerNested, hoz, leftFlatCount) {
|
|
|
103
73
|
}
|
|
104
74
|
}
|
|
105
75
|
/** 根据输入的 nested 列配置,算出相应的 leveled & flat 配置方便渲染 */
|
|
106
|
-
|
|
107
|
-
|
|
108
76
|
function calculateLeveledAndFlat(inputNested, rowCount) {
|
|
109
77
|
var leveled = [];
|
|
110
|
-
|
|
111
78
|
for (var depth = 0; depth < rowCount; depth++) {
|
|
112
79
|
leveled.push([]);
|
|
113
80
|
}
|
|
114
|
-
|
|
115
81
|
var flat = [];
|
|
116
82
|
dfs(inputNested, 0);
|
|
117
83
|
return {
|
|
118
84
|
flat: flat,
|
|
119
85
|
leveled: leveled
|
|
120
86
|
};
|
|
121
|
-
|
|
122
87
|
function dfs(input, depth) {
|
|
123
88
|
var leafCount = 0;
|
|
124
|
-
|
|
125
89
|
for (var i = 0; i < input.length; i++) {
|
|
126
90
|
var indexedCol = input[i];
|
|
127
|
-
|
|
128
91
|
if ((0, _utils.isLeafNode)(indexedCol)) {
|
|
129
92
|
leafCount += 1;
|
|
130
93
|
var wrapped = {
|
|
@@ -140,7 +103,6 @@ function calculateLeveledAndFlat(inputNested, rowCount) {
|
|
|
140
103
|
} else {
|
|
141
104
|
var dfsRes = dfs(indexedCol.children, depth + 1);
|
|
142
105
|
leafCount += dfsRes.leafCount;
|
|
143
|
-
|
|
144
106
|
if (dfsRes.leafCount > 0) {
|
|
145
107
|
leveled[depth].push({
|
|
146
108
|
type: 'normal',
|
|
@@ -153,26 +115,20 @@ function calculateLeveledAndFlat(inputNested, rowCount) {
|
|
|
153
115
|
}
|
|
154
116
|
}
|
|
155
117
|
}
|
|
156
|
-
|
|
157
118
|
return {
|
|
158
119
|
leafCount: leafCount
|
|
159
120
|
};
|
|
160
121
|
}
|
|
161
122
|
}
|
|
162
123
|
/** 包装列配置,附加上 colIndex 属性 */
|
|
163
|
-
|
|
164
|
-
|
|
165
124
|
function attachColIndex(inputNested, colIndexOffset) {
|
|
166
125
|
return dfs(inputNested, colIndexOffset).result;
|
|
167
|
-
|
|
168
126
|
function dfs(input, startColIndex) {
|
|
169
127
|
var result = [];
|
|
170
128
|
var leafCount = 0;
|
|
171
|
-
|
|
172
129
|
for (var i = 0; i < input.length; i++) {
|
|
173
130
|
var col = input[i];
|
|
174
131
|
var colIndex = startColIndex + leafCount;
|
|
175
|
-
|
|
176
132
|
if ((0, _utils.isLeafNode)(col)) {
|
|
177
133
|
leafCount += 1;
|
|
178
134
|
result.push({
|
|
@@ -182,7 +138,6 @@ function attachColIndex(inputNested, colIndexOffset) {
|
|
|
182
138
|
} else {
|
|
183
139
|
var sub = dfs(col.children, colIndex);
|
|
184
140
|
leafCount += sub.leafCount;
|
|
185
|
-
|
|
186
141
|
if (sub.leafCount > 0) {
|
|
187
142
|
result.push({
|
|
188
143
|
col: col,
|
|
@@ -192,7 +147,6 @@ function attachColIndex(inputNested, colIndexOffset) {
|
|
|
192
147
|
}
|
|
193
148
|
}
|
|
194
149
|
}
|
|
195
|
-
|
|
196
150
|
return {
|
|
197
151
|
result: result,
|
|
198
152
|
leafCount: leafCount
|
|
@@ -200,17 +154,13 @@ function attachColIndex(inputNested, colIndexOffset) {
|
|
|
200
154
|
}
|
|
201
155
|
}
|
|
202
156
|
/** 计算用于渲染表头的数据结构 */
|
|
203
|
-
|
|
204
|
-
|
|
205
157
|
function calculateHeaderRenderInfo(_ref, rowCount) {
|
|
206
158
|
var flat = (0, _flat.default)(_ref),
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
159
|
+
nested = _ref.nested,
|
|
160
|
+
hoz = _ref.horizontalRenderRange,
|
|
161
|
+
useVirtual = _ref.useVirtual;
|
|
211
162
|
if (useVirtual.header) {
|
|
212
163
|
var _context, _context2;
|
|
213
|
-
|
|
214
164
|
var leftPart = calculateLeveledAndFlat(attachColIndex(nested.left, 0), rowCount);
|
|
215
165
|
var filtered = filterNestedCenter(nested.center, hoz, flat.left.length);
|
|
216
166
|
var centerPart = calculateLeveledAndFlat(filtered, rowCount);
|
|
@@ -227,7 +177,6 @@ function calculateHeaderRenderInfo(_ref, rowCount) {
|
|
|
227
177
|
}], (0, _toConsumableArray2.default)((0, _flat.default)(rightPart))),
|
|
228
178
|
leveled: (0, _map.default)(_context2 = range(rowCount)).call(_context2, function (depth) {
|
|
229
179
|
var _context3;
|
|
230
|
-
|
|
231
180
|
return (0, _concat.default)(_context3 = []).call(_context3, (0, _toConsumableArray2.default)(leftPart.leveled[depth]), [{
|
|
232
181
|
type: 'blank',
|
|
233
182
|
width: hoz.leftBlank,
|
|
@@ -240,20 +189,18 @@ function calculateHeaderRenderInfo(_ref, rowCount) {
|
|
|
240
189
|
})
|
|
241
190
|
};
|
|
242
191
|
}
|
|
243
|
-
|
|
244
192
|
return calculateLeveledAndFlat(attachColIndex(nested.full, 0), rowCount);
|
|
245
193
|
}
|
|
246
|
-
|
|
247
194
|
function TableHeader(_ref2) {
|
|
248
195
|
var _context4, _context5;
|
|
249
|
-
|
|
250
196
|
var info = _ref2.info,
|
|
251
|
-
|
|
252
|
-
|
|
197
|
+
theaderPosition = _ref2.theaderPosition,
|
|
198
|
+
_rowCount = _ref2.rowCount,
|
|
199
|
+
stickyRightOffset = _ref2.stickyRightOffset;
|
|
253
200
|
var nested = info.nested,
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
201
|
+
flat = (0, _flat.default)(info),
|
|
202
|
+
stickyLeftMap = info.stickyLeftMap,
|
|
203
|
+
stickyRightMap = info.stickyRightMap;
|
|
257
204
|
var rowCount = _rowCount !== null && _rowCount !== void 0 ? _rowCount : (0, _utils.getTreeDepth)(nested.full) + 1;
|
|
258
205
|
var headerRenderInfo = calculateHeaderRenderInfo(info, rowCount);
|
|
259
206
|
var fullFlatCount = flat.full.length;
|
|
@@ -261,11 +208,9 @@ function TableHeader(_ref2) {
|
|
|
261
208
|
var rightFlatCount = flat.right.length;
|
|
262
209
|
var thead = (0, _map.default)(_context4 = headerRenderInfo.leveled).call(_context4, function (wrappedCols, level) {
|
|
263
210
|
var _cx2;
|
|
264
|
-
|
|
265
|
-
|
|
211
|
+
var _wrappedCols = (0, _concat.default)(wrappedCols).call(wrappedCols);
|
|
212
|
+
// 左中右区域渲染,分组列可能单独位于一个区域,此时其他区域也需要适配分组的高度
|
|
266
213
|
// rowspan 需要空白的列头去占位, 需要补充额外的空白列头
|
|
267
|
-
|
|
268
|
-
|
|
269
214
|
if (rowCount > 1 && ['left', 'right'].indexOf(theaderPosition) > -1) {
|
|
270
215
|
_wrappedCols.push({
|
|
271
216
|
type: 'blank',
|
|
@@ -274,30 +219,25 @@ function TableHeader(_ref2) {
|
|
|
274
219
|
isPlacehoder: true
|
|
275
220
|
});
|
|
276
221
|
}
|
|
277
|
-
|
|
278
222
|
var headerCells = (0, _map.default)(_wrappedCols).call(_wrappedCols, function (wrapped, index) {
|
|
279
223
|
var _a, _b, _c;
|
|
280
|
-
|
|
281
224
|
if (wrapped.type === 'normal') {
|
|
282
225
|
var _cx;
|
|
283
|
-
|
|
284
226
|
var colIndex = wrapped.colIndex,
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
227
|
+
colSpan = wrapped.colSpan,
|
|
228
|
+
isLeaf = wrapped.isLeaf,
|
|
229
|
+
col = wrapped.col;
|
|
288
230
|
var headerCellProps = (_a = col.headerCellProps) !== null && _a !== void 0 ? _a : {};
|
|
289
231
|
var positionStyle = {};
|
|
290
|
-
|
|
291
232
|
if (colIndex < leftFlatCount) {
|
|
292
233
|
positionStyle.position = 'sticky';
|
|
293
234
|
positionStyle.left = stickyLeftMap.get(colIndex);
|
|
294
235
|
} else if (colIndex >= fullFlatCount - rightFlatCount) {
|
|
295
236
|
positionStyle.position = 'sticky';
|
|
296
|
-
|
|
237
|
+
var stickyRightIndex = colSpan > 1 ? colIndex + colSpan - 1 : colIndex;
|
|
238
|
+
positionStyle.right = stickyRightMap.get(stickyRightIndex) + stickyRightOffset;
|
|
297
239
|
}
|
|
298
|
-
|
|
299
240
|
var justifyContent = col.align === 'right' ? 'flex-end' : col.align === 'center' ? 'center' : 'flex-start';
|
|
300
|
-
|
|
301
241
|
var cell = /*#__PURE__*/_react.default.createElement("th", (0, _extends2.default)({
|
|
302
242
|
key: colIndex
|
|
303
243
|
}, headerCellProps, {
|
|
@@ -315,7 +255,6 @@ function TableHeader(_ref2) {
|
|
|
315
255
|
justifyContent: justifyContent
|
|
316
256
|
}
|
|
317
257
|
}, (_c = col.title) !== null && _c !== void 0 ? _c : col.name));
|
|
318
|
-
|
|
319
258
|
return cell;
|
|
320
259
|
} else {
|
|
321
260
|
if (wrapped.width > 0) {
|