@kdcloudjs/table 1.2.0-canary.16 → 1.2.0-canary.16-hotfix
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.js +2047 -3489
- 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/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 +14 -67
- package/es/table/base/helpers/SpanManager.js +3 -9
- package/es/table/base/helpers/TableDOMUtils.js +4 -27
- 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 +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.d.ts +1 -0
- package/es/table/pipeline/features/columnDrag.js +236 -303
- 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 +51 -42
- 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 +36 -71
- 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 +31 -83
- package/es/table/pipeline/features/tips.js +0 -6
- package/es/table/pipeline/features/treeMode.js +9 -44
- package/es/table/pipeline/features/treeSelect.js +0 -26
- package/es/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
- package/es/table/pipeline/features/utils/touchEventUtils.js +65 -0
- 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 -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/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 +14 -77
- package/lib/table/base/helpers/SpanManager.js +3 -11
- package/lib/table/base/helpers/TableDOMUtils.js +2 -27
- 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 +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.d.ts +1 -0
- package/lib/table/pipeline/features/columnDrag.js +236 -309
- 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 +51 -58
- 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 +36 -81
- 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 -103
- package/lib/table/pipeline/features/tips.js +0 -15
- package/lib/table/pipeline/features/treeMode.js +9 -65
- package/lib/table/pipeline/features/treeSelect.js +0 -34
- package/lib/table/pipeline/features/utils/touchEventUtils.d.ts +15 -0
- package/lib/table/pipeline/features/utils/touchEventUtils.js +76 -0
- 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 -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 -21
- 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/package.json +2 -1
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,17 @@ 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;
|
|
253
199
|
var nested = info.nested,
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
200
|
+
flat = (0, _flat.default)(info),
|
|
201
|
+
stickyLeftMap = info.stickyLeftMap,
|
|
202
|
+
stickyRightMap = info.stickyRightMap;
|
|
257
203
|
var rowCount = _rowCount !== null && _rowCount !== void 0 ? _rowCount : (0, _utils.getTreeDepth)(nested.full) + 1;
|
|
258
204
|
var headerRenderInfo = calculateHeaderRenderInfo(info, rowCount);
|
|
259
205
|
var fullFlatCount = flat.full.length;
|
|
@@ -261,11 +207,9 @@ function TableHeader(_ref2) {
|
|
|
261
207
|
var rightFlatCount = flat.right.length;
|
|
262
208
|
var thead = (0, _map.default)(_context4 = headerRenderInfo.leveled).call(_context4, function (wrappedCols, level) {
|
|
263
209
|
var _cx2;
|
|
264
|
-
|
|
265
|
-
|
|
210
|
+
var _wrappedCols = (0, _concat.default)(wrappedCols).call(wrappedCols);
|
|
211
|
+
// 左中右区域渲染,分组列可能单独位于一个区域,此时其他区域也需要适配分组的高度
|
|
266
212
|
// rowspan 需要空白的列头去占位, 需要补充额外的空白列头
|
|
267
|
-
|
|
268
|
-
|
|
269
213
|
if (rowCount > 1 && ['left', 'right'].indexOf(theaderPosition) > -1) {
|
|
270
214
|
_wrappedCols.push({
|
|
271
215
|
type: 'blank',
|
|
@@ -274,20 +218,16 @@ function TableHeader(_ref2) {
|
|
|
274
218
|
isPlacehoder: true
|
|
275
219
|
});
|
|
276
220
|
}
|
|
277
|
-
|
|
278
221
|
var headerCells = (0, _map.default)(_wrappedCols).call(_wrappedCols, function (wrapped, index) {
|
|
279
222
|
var _a, _b, _c;
|
|
280
|
-
|
|
281
223
|
if (wrapped.type === 'normal') {
|
|
282
224
|
var _cx;
|
|
283
|
-
|
|
284
225
|
var colIndex = wrapped.colIndex,
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
226
|
+
colSpan = wrapped.colSpan,
|
|
227
|
+
isLeaf = wrapped.isLeaf,
|
|
228
|
+
col = wrapped.col;
|
|
288
229
|
var headerCellProps = (_a = col.headerCellProps) !== null && _a !== void 0 ? _a : {};
|
|
289
230
|
var positionStyle = {};
|
|
290
|
-
|
|
291
231
|
if (colIndex < leftFlatCount) {
|
|
292
232
|
positionStyle.position = 'sticky';
|
|
293
233
|
positionStyle.left = stickyLeftMap.get(colIndex);
|
|
@@ -295,9 +235,7 @@ function TableHeader(_ref2) {
|
|
|
295
235
|
positionStyle.position = 'sticky';
|
|
296
236
|
positionStyle.right = stickyRightMap.get(colIndex);
|
|
297
237
|
}
|
|
298
|
-
|
|
299
238
|
var justifyContent = col.align === 'right' ? 'flex-end' : col.align === 'center' ? 'center' : 'flex-start';
|
|
300
|
-
|
|
301
239
|
var cell = /*#__PURE__*/_react.default.createElement("th", (0, _extends2.default)({
|
|
302
240
|
key: colIndex
|
|
303
241
|
}, headerCellProps, {
|
|
@@ -315,7 +253,6 @@ function TableHeader(_ref2) {
|
|
|
315
253
|
justifyContent: justifyContent
|
|
316
254
|
}
|
|
317
255
|
}, (_c = col.title) !== null && _c !== void 0 ? _c : col.name));
|
|
318
|
-
|
|
319
256
|
return cell;
|
|
320
257
|
} else {
|
|
321
258
|
if (wrapped.width > 0) {
|
|
@@ -1,18 +1,13 @@
|
|
|
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.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
|
11
|
-
|
|
12
9
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
|
|
15
|
-
|
|
16
11
|
/** 在表格的单元格的渲染过程中,先渲染的单元格的 colSpan/rowSpan 会影响到后续单元格是否被渲染
|
|
17
12
|
* `SpanManager` 会在内部维护一份状态来记录最近渲染单元格的 colSpan/rowSpan,
|
|
18
13
|
* 方便后续的单元格快速判断 "是否需要跳过渲染" */
|
|
@@ -21,15 +16,14 @@ var SpanManager = /*#__PURE__*/function () {
|
|
|
21
16
|
(0, _classCallCheck2.default)(this, SpanManager);
|
|
22
17
|
this.rects = [];
|
|
23
18
|
}
|
|
24
|
-
|
|
25
19
|
(0, _createClass2.default)(SpanManager, [{
|
|
26
20
|
key: "testSkip",
|
|
27
21
|
value: function testSkip(rowIndex, colIndex) {
|
|
28
22
|
return this.rects.some(function (_ref) {
|
|
29
23
|
var left = _ref.left,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
24
|
+
right = _ref.right,
|
|
25
|
+
top = _ref.top,
|
|
26
|
+
bottom = _ref.bottom;
|
|
33
27
|
return left <= colIndex && colIndex < right && top <= rowIndex && rowIndex < bottom;
|
|
34
28
|
});
|
|
35
29
|
}
|
|
@@ -37,7 +31,6 @@ var SpanManager = /*#__PURE__*/function () {
|
|
|
37
31
|
key: "stripUpwards",
|
|
38
32
|
value: function stripUpwards(rowIndex) {
|
|
39
33
|
var _context;
|
|
40
|
-
|
|
41
34
|
this.rects = (0, _filter.default)(_context = this.rects).call(_context, function (rect) {
|
|
42
35
|
return rect.bottom > rowIndex;
|
|
43
36
|
});
|
|
@@ -55,5 +48,4 @@ var SpanManager = /*#__PURE__*/function () {
|
|
|
55
48
|
}]);
|
|
56
49
|
return SpanManager;
|
|
57
50
|
}();
|
|
58
|
-
|
|
59
51
|
exports.default = SpanManager;
|
|
@@ -1,24 +1,16 @@
|
|
|
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.TableDOMHelper = void 0;
|
|
9
|
-
|
|
10
8
|
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
11
|
-
|
|
12
9
|
var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
|
|
13
|
-
|
|
14
10
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
15
|
-
|
|
16
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/classCallCheck"));
|
|
17
|
-
|
|
18
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/createClass"));
|
|
19
|
-
|
|
20
13
|
var _styles = require("../styles");
|
|
21
|
-
|
|
22
14
|
// 表格 DOM 结构
|
|
23
15
|
// div.art-table-wrapper
|
|
24
16
|
// └── div.art-loading-wrapper
|
|
@@ -59,36 +51,27 @@ var _styles = require("../styles");
|
|
|
59
51
|
var TableDOMHelper = /*#__PURE__*/function () {
|
|
60
52
|
function TableDOMHelper(artTableWrapper) {
|
|
61
53
|
var _this = this,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
54
|
+
_context2,
|
|
55
|
+
_context3;
|
|
65
56
|
(0, _classCallCheck2.default)(this, TableDOMHelper);
|
|
66
|
-
|
|
67
57
|
this.getRowNodeListByEvent = function (e) {
|
|
68
58
|
var nodeList = null;
|
|
69
59
|
var rowIndex = e.currentTarget.dataset.rowindex;
|
|
70
|
-
|
|
71
60
|
if (rowIndex !== undefined) {
|
|
72
61
|
var targetParent = _this.tableBody.contains(e.currentTarget) ? _this.tableBody : _this.tableFooter;
|
|
73
62
|
nodeList = targetParent.querySelectorAll("tr[data-rowindex=\"".concat(rowIndex, "\"]"));
|
|
74
63
|
}
|
|
75
|
-
|
|
76
64
|
return nodeList;
|
|
77
65
|
};
|
|
78
|
-
|
|
79
66
|
this.getInRangeRowByCellEvent = function (e) {
|
|
80
67
|
var _context;
|
|
81
|
-
|
|
82
68
|
var _a;
|
|
83
|
-
|
|
84
69
|
var getParentNode = function getParentNode(ele, target) {
|
|
85
70
|
if (ele.parentNode.nodeName === target) {
|
|
86
71
|
return ele.parentNode;
|
|
87
72
|
}
|
|
88
|
-
|
|
89
73
|
return getParentNode(ele.parentNode, target);
|
|
90
74
|
};
|
|
91
|
-
|
|
92
75
|
e = e instanceof Array ? e[0] : e;
|
|
93
76
|
var curCell = e === null || e === void 0 ? void 0 : e.currentTarget;
|
|
94
77
|
var curRow = getParentNode(curCell, 'TR');
|
|
@@ -96,7 +79,6 @@ var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
96
79
|
var rows = (_a = getParentNode(curCell, 'TABLE')) === null || _a === void 0 ? void 0 : _a.rows;
|
|
97
80
|
return (0, _slice.default)(_context = (0, _from.default)(rows)).call(_context, curRow.rowIndex, curRow.rowIndex + curRowSpan);
|
|
98
81
|
};
|
|
99
|
-
|
|
100
82
|
this.artTableWrapper = artTableWrapper;
|
|
101
83
|
this.artTable = artTableWrapper.querySelector(".".concat(_styles.Classes.artTable));
|
|
102
84
|
this.tableHeader = this.artTable.querySelector(".".concat(_styles.Classes.tableHeader));
|
|
@@ -110,7 +92,6 @@ var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
110
92
|
this.stickyScroll = artTableWrapper.querySelector(stickyScrollSelector);
|
|
111
93
|
this.stickyScrollItem = this.stickyScroll.querySelector(".".concat(_styles.Classes.stickyScrollItem));
|
|
112
94
|
}
|
|
113
|
-
|
|
114
95
|
(0, _createClass2.default)(TableDOMHelper, [{
|
|
115
96
|
key: "getVirtualTop",
|
|
116
97
|
value: function getVirtualTop() {
|
|
@@ -120,7 +101,6 @@ var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
120
101
|
key: "getTableRows",
|
|
121
102
|
value: function getTableRows() {
|
|
122
103
|
var _context4;
|
|
123
|
-
|
|
124
104
|
var tbody = this.artTable.querySelector((0, _concat.default)(_context4 = ".".concat(_styles.Classes.tableBody, " .")).call(_context4, _styles.Classes.virtual, " table tbody"));
|
|
125
105
|
return tbody.childNodes;
|
|
126
106
|
}
|
|
@@ -128,14 +108,12 @@ var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
128
108
|
key: "getTableBodyHtmlTable",
|
|
129
109
|
value: function getTableBodyHtmlTable() {
|
|
130
110
|
var _context5;
|
|
131
|
-
|
|
132
111
|
return this.artTable.querySelector((0, _concat.default)(_context5 = ".".concat(_styles.Classes.tableBody, " .")).call(_context5, _styles.Classes.virtual, " table"));
|
|
133
112
|
}
|
|
134
113
|
}, {
|
|
135
114
|
key: "getLeftLockShadow",
|
|
136
115
|
value: function getLeftLockShadow() {
|
|
137
116
|
var _context6;
|
|
138
|
-
|
|
139
117
|
var selector = (0, _concat.default)(_context6 = ".".concat(_styles.Classes.lockShadowMask, " .")).call(_context6, _styles.Classes.leftLockShadow);
|
|
140
118
|
var allLeftLockShadow = this.artTable.querySelectorAll(selector);
|
|
141
119
|
return allLeftLockShadow[allLeftLockShadow.length - 1]; // 当table-body、table-footer嵌套多层表格时,需要查找最后一个,否则会查找到嵌套表格的
|
|
@@ -144,7 +122,6 @@ var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
144
122
|
key: "getRightLockShadow",
|
|
145
123
|
value: function getRightLockShadow() {
|
|
146
124
|
var _context7;
|
|
147
|
-
|
|
148
125
|
var selector = (0, _concat.default)(_context7 = ".".concat(_styles.Classes.lockShadowMask, " .")).call(_context7, _styles.Classes.rightLockShadow);
|
|
149
126
|
var allRightLockShadow = this.artTable.querySelectorAll(selector);
|
|
150
127
|
return allRightLockShadow[allRightLockShadow.length - 1]; // 当table-body、table-footer嵌套多层表格时,需要查找最后一个,否则会查找到嵌套表格的
|
|
@@ -158,7 +135,6 @@ var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
158
135
|
key: "getRowTop",
|
|
159
136
|
value: function getRowTop(rowIndex) {
|
|
160
137
|
var _context8, _context9;
|
|
161
|
-
|
|
162
138
|
if (rowIndex === 0) return 0;
|
|
163
139
|
var selector = (0, _concat.default)(_context8 = (0, _concat.default)(_context9 = ".".concat(_styles.Classes.tableBody, " .")).call(_context9, _styles.Classes.tableRow, "[data-rowindex=\"")).call(_context8, rowIndex, "\"]");
|
|
164
140
|
var row = this.artTable.querySelector(selector);
|
|
@@ -169,5 +145,4 @@ var TableDOMHelper = /*#__PURE__*/function () {
|
|
|
169
145
|
}]);
|
|
170
146
|
return TableDOMHelper;
|
|
171
147
|
}();
|
|
172
|
-
|
|
173
148
|
exports.TableDOMHelper = TableDOMHelper;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _SpanManager = _interopRequireDefault(require("../SpanManager"));
|
|
6
|
-
|
|
7
5
|
var NAME = 'SpanManager';
|
|
8
6
|
describe("".concat(NAME), function () {
|
|
9
7
|
var spanManager = new _SpanManager.default();
|
|
@@ -13,8 +11,8 @@ describe("".concat(NAME), function () {
|
|
|
13
11
|
});
|
|
14
12
|
it('test skip', function () {
|
|
15
13
|
// 第二行,第一列跳过渲染
|
|
16
|
-
expect(spanManager.testSkip(1, 0)).toBe(true);
|
|
17
|
-
|
|
14
|
+
expect(spanManager.testSkip(1, 0)).toBe(true);
|
|
15
|
+
// 第四行,第一列不跳过渲染
|
|
18
16
|
expect(spanManager.testSkip(3, 0)).toBe(false);
|
|
19
17
|
});
|
|
20
18
|
it('strip upwards span info', function () {
|
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
6
|
-
|
|
7
5
|
var _styles = require("../../styles");
|
|
8
|
-
|
|
9
6
|
var _TableDOMUtils = require("../TableDOMUtils");
|
|
10
|
-
|
|
11
7
|
var NAME = 'TableDOMUtils';
|
|
12
8
|
describe("".concat(NAME), function () {
|
|
13
9
|
var tableDOMHelper;
|
|
14
10
|
var container;
|
|
15
11
|
beforeAll(function () {
|
|
16
12
|
var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9, _context10, _context11, _context12, _context13, _context14, _context15, _context16, _context17;
|
|
17
|
-
|
|
18
13
|
container = document.createElement('div');
|
|
19
14
|
container.innerHTML = (0, _concat.default)(_context = (0, _concat.default)(_context2 = (0, _concat.default)(_context3 = (0, _concat.default)(_context4 = (0, _concat.default)(_context5 = (0, _concat.default)(_context6 = (0, _concat.default)(_context7 = (0, _concat.default)(_context8 = (0, _concat.default)(_context9 = (0, _concat.default)(_context10 = (0, _concat.default)(_context11 = (0, _concat.default)(_context12 = (0, _concat.default)(_context13 = (0, _concat.default)(_context14 = (0, _concat.default)(_context15 = (0, _concat.default)(_context16 = (0, _concat.default)(_context17 = "<div class='".concat(_styles.Classes.artTableWrapper, "'>\n <div class='")).call(_context17, _styles.Classes.loadingWrapper, "'>\n <div class='")).call(_context16, _styles.Classes.loadingIndicatorWrapper, "'>\n <div class='")).call(_context15, _styles.Classes.loadingIndicator, "'></div>\n </div> \n <div class='")).call(_context14, _styles.Classes.loadingContentWrapper, "'>\n <div class='")).call(_context13, _styles.Classes.artTable, "'>\n <div class='")).call(_context12, _styles.Classes.tableHeader, "'>\n \n </div>\n <div class='")).call(_context11, _styles.Classes.tableBody, "'>\n <div class='")).call(_context10, _styles.Classes.virtual, "'>\n <div class='")).call(_context9, _styles.Classes.virtualBlank, " top'></div>\n <table></table>\n <div class='")).call(_context8, _styles.Classes.virtualBlank, " bottom'></div>\n </div> \n </div>\n <div class='")).call(_context7, _styles.Classes.tableFooter, "'>\n </div>\n <div class='")).call(_context6, _styles.Classes.lockShadowMask, "'>\n <div class='")).call(_context5, _styles.Classes.leftLockShadow, "'></div>\n </div>\n <div class='")).call(_context4, _styles.Classes.lockShadowMask, "'>\n <div class='")).call(_context3, _styles.Classes.rightLockShadow, "'></div>\n </div>\n </div>\n <div class='")).call(_context2, _styles.Classes.stickyScroll, "'>\n <div class='")).call(_context, _styles.Classes.stickyScrollItem, "'></div>\n </div>\n </div> \n </div> \n </div>");
|
|
20
15
|
tableDOMHelper = new _TableDOMUtils.TableDOMHelper(container.querySelector(".".concat(_styles.Classes.artTableWrapper)));
|