@kdcloudjs/table 1.2.0-canary.15 → 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 +2051 -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 +1 -10
- package/es/table/base/table.js +96 -179
- 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 +65 -143
- 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 +1 -22
- package/lib/table/base/table.js +96 -212
- 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 +65 -160
- 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
|
@@ -1,49 +1,40 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
|
|
2
2
|
import _extends from "@babel/runtime-corejs3/helpers/extends";
|
|
3
3
|
import _toConsumableArray from "@babel/runtime-corejs3/helpers/toConsumableArray";
|
|
4
|
-
|
|
5
4
|
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; } } }; }
|
|
6
|
-
|
|
7
5
|
function _unsupportedIterableToArray(o, minLen) { var _context4; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context4 = Object.prototype.toString.call(o)).call(_context4, 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); }
|
|
8
|
-
|
|
9
6
|
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; }
|
|
10
|
-
|
|
11
7
|
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
|
12
8
|
import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
|
|
13
9
|
import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
|
|
14
10
|
import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
|
|
15
11
|
import _Symbol from "@babel/runtime-corejs3/core-js-stable/symbol";
|
|
16
12
|
import _getIteratorMethod from "@babel/runtime-corejs3/core-js/get-iterator-method";
|
|
17
|
-
|
|
18
13
|
var __rest = this && this.__rest || function (s, e) {
|
|
19
14
|
var t = {};
|
|
20
|
-
|
|
21
15
|
for (var p in s) {
|
|
22
16
|
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
23
17
|
}
|
|
24
|
-
|
|
25
18
|
if (s != null && typeof _Object$getOwnPropertySymbols === "function") for (var i = 0, p = _Object$getOwnPropertySymbols(s); i < p.length; i++) {
|
|
26
19
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
27
20
|
}
|
|
28
21
|
return t;
|
|
29
22
|
};
|
|
30
|
-
|
|
31
23
|
import { noop } from 'rxjs';
|
|
32
24
|
import { features, TablePipeline } from '../../pipeline';
|
|
33
25
|
import { isLeafNode as standardIsLeafNode } from '../../utils';
|
|
34
26
|
import { ROW_KEY } from '../cross-table';
|
|
35
27
|
export default function buildCrossTreeTable(options) {
|
|
36
28
|
var _a, _b;
|
|
37
|
-
|
|
38
29
|
var primaryColumn = options.primaryColumn,
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
30
|
+
openKeys = options.openKeys,
|
|
31
|
+
onChangeOpenKeys = options.onChangeOpenKeys,
|
|
32
|
+
indentSize = options.indentSize,
|
|
33
|
+
_options$isLeafNode = options.isLeafNode,
|
|
34
|
+
isLeafNodeOpt = _options$isLeafNode === void 0 ? standardIsLeafNode : _options$isLeafNode;
|
|
35
|
+
// 有的时候 leftTree/topTree 是通过 node.children 传入的
|
|
44
36
|
// 此时 leftTree/topTree 等于 null 和等于空数组是等价的
|
|
45
37
|
// 故在这里兼容 leftTree/topTree 为空的情况
|
|
46
|
-
|
|
47
38
|
var leftTree = (_a = options.leftTree) !== null && _a !== void 0 ? _a : [];
|
|
48
39
|
var topTree = (_b = options.topTree) !== null && _b !== void 0 ? _b : [];
|
|
49
40
|
var pipeline = new TablePipeline({
|
|
@@ -71,10 +62,8 @@ export default function buildCrossTreeTable(options) {
|
|
|
71
62
|
columns: pipeline.getColumns()
|
|
72
63
|
};
|
|
73
64
|
/** 获取表格的列配置 */
|
|
74
|
-
|
|
75
65
|
function getColumns() {
|
|
76
66
|
var _context;
|
|
77
|
-
|
|
78
67
|
return _concatInstanceProperty(_context = [_extends(_extends({}, primaryColumn), {
|
|
79
68
|
getValue: function getValue(row) {
|
|
80
69
|
return row.node.value;
|
|
@@ -88,35 +77,28 @@ export default function buildCrossTreeTable(options) {
|
|
|
88
77
|
if (primaryColumn.render) {
|
|
89
78
|
return primaryColumn.render(row.node, row.nodes.length - 1);
|
|
90
79
|
}
|
|
91
|
-
|
|
92
80
|
return value;
|
|
93
81
|
}
|
|
94
82
|
})]).call(_context, _toConsumableArray(getDataPartColumns()));
|
|
95
83
|
/** 获取表格数据部分的列配置 */
|
|
96
|
-
|
|
97
84
|
function getDataPartColumns() {
|
|
98
85
|
return dfs(topTree, {
|
|
99
86
|
depth: 0
|
|
100
87
|
});
|
|
101
|
-
|
|
102
88
|
function dfs(nodes, ctx) {
|
|
103
89
|
var result = [];
|
|
104
|
-
|
|
105
90
|
var _iterator = _createForOfIteratorHelper(nodes),
|
|
106
|
-
|
|
107
|
-
|
|
91
|
+
_step;
|
|
108
92
|
try {
|
|
109
93
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
110
94
|
var node = _step.value;
|
|
111
|
-
|
|
112
95
|
if (standardIsLeafNode(node)) {
|
|
113
96
|
result.push(getDataColumn(node, ctx.depth));
|
|
114
97
|
} else {
|
|
115
98
|
var key = node.key,
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
99
|
+
value = node.value,
|
|
100
|
+
children = node.children,
|
|
101
|
+
others = __rest(node, ["key", "value", "children"]);
|
|
120
102
|
result.push(_extends(_extends({}, others), {
|
|
121
103
|
name: value,
|
|
122
104
|
children: dfs(children, {
|
|
@@ -130,23 +112,19 @@ export default function buildCrossTreeTable(options) {
|
|
|
130
112
|
} finally {
|
|
131
113
|
_iterator.f();
|
|
132
114
|
}
|
|
133
|
-
|
|
134
115
|
return result;
|
|
135
116
|
}
|
|
136
117
|
}
|
|
137
|
-
|
|
138
118
|
function getDataColumn(topNode, topDepth) {
|
|
139
119
|
var columnGetValue = function columnGetValue(row) {
|
|
140
120
|
var leftDepth = row.nodes.length - 1;
|
|
141
121
|
var leftNode = row.node;
|
|
142
122
|
return options.getValue(leftNode, topNode, leftDepth, topDepth);
|
|
143
123
|
};
|
|
144
|
-
|
|
145
124
|
var key = topNode.key,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
125
|
+
value = topNode.value,
|
|
126
|
+
children = topNode.children,
|
|
127
|
+
others = __rest(topNode, ["key", "value", "children"]);
|
|
150
128
|
return _extends(_extends({}, others), {
|
|
151
129
|
getValue: columnGetValue,
|
|
152
130
|
name: value,
|
|
@@ -157,7 +135,6 @@ export default function buildCrossTreeTable(options) {
|
|
|
157
135
|
var leftNode = row.node;
|
|
158
136
|
return options.render(value, leftNode, topNode, leftDepth, topDepth);
|
|
159
137
|
}
|
|
160
|
-
|
|
161
138
|
return value;
|
|
162
139
|
},
|
|
163
140
|
getCellProps: function getCellProps(value, row) {
|
|
@@ -170,36 +147,27 @@ export default function buildCrossTreeTable(options) {
|
|
|
170
147
|
});
|
|
171
148
|
}
|
|
172
149
|
}
|
|
173
|
-
|
|
174
150
|
function getDataSource() {
|
|
175
151
|
return dfs(leftTree, {
|
|
176
152
|
nodes: []
|
|
177
153
|
});
|
|
178
|
-
|
|
179
154
|
function dfs(nodes, ctx) {
|
|
180
155
|
var result = [];
|
|
181
|
-
|
|
182
156
|
var _iterator2 = _createForOfIteratorHelper(nodes),
|
|
183
|
-
|
|
184
|
-
|
|
157
|
+
_step2;
|
|
185
158
|
try {
|
|
186
159
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
187
160
|
var node = _step2.value;
|
|
188
|
-
|
|
189
161
|
if (node.hidden) {
|
|
190
162
|
// 跳过被隐藏的节点
|
|
191
163
|
continue;
|
|
192
164
|
}
|
|
193
|
-
|
|
194
165
|
if (standardIsLeafNode(node)) {
|
|
195
166
|
var _context2, _result$push;
|
|
196
|
-
|
|
197
167
|
result.push((_result$push = {}, _defineProperty(_result$push, ROW_KEY, node.key), _defineProperty(_result$push, "node", node), _defineProperty(_result$push, "nodes", _concatInstanceProperty(_context2 = []).call(_context2, _toConsumableArray(ctx.nodes), [node])), _result$push));
|
|
198
168
|
} else {
|
|
199
169
|
var _context3, _result$push2;
|
|
200
|
-
|
|
201
170
|
var _nodes = _concatInstanceProperty(_context3 = []).call(_context3, _toConsumableArray(ctx.nodes), [node]);
|
|
202
|
-
|
|
203
171
|
ctx.nodes.push(node);
|
|
204
172
|
var children = dfs(node.children, ctx);
|
|
205
173
|
result.push((_result$push2 = {}, _defineProperty(_result$push2, ROW_KEY, node.key), _defineProperty(_result$push2, "node", node), _defineProperty(_result$push2, "nodes", _nodes), _defineProperty(_result$push2, "children", children), _result$push2));
|
|
@@ -211,7 +179,6 @@ export default function buildCrossTreeTable(options) {
|
|
|
211
179
|
} finally {
|
|
212
180
|
_iterator2.f();
|
|
213
181
|
}
|
|
214
|
-
|
|
215
182
|
return result;
|
|
216
183
|
}
|
|
217
184
|
}
|
|
@@ -5,97 +5,78 @@ import _createClass from "@babel/runtime-corejs3/helpers/createClass";
|
|
|
5
5
|
import _inherits from "@babel/runtime-corejs3/helpers/inherits";
|
|
6
6
|
import _possibleConstructorReturn from "@babel/runtime-corejs3/helpers/possibleConstructorReturn";
|
|
7
7
|
import _getPrototypeOf from "@babel/runtime-corejs3/helpers/getPrototypeOf";
|
|
8
|
-
|
|
9
8
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
10
|
-
|
|
11
9
|
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; } }
|
|
12
|
-
|
|
13
10
|
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
|
14
|
-
|
|
15
11
|
var __rest = this && this.__rest || function (s, e) {
|
|
16
12
|
var t = {};
|
|
17
|
-
|
|
18
13
|
for (var p in s) {
|
|
19
14
|
if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
20
15
|
}
|
|
21
|
-
|
|
22
16
|
if (s != null && typeof _Object$getOwnPropertySymbols === "function") for (var i = 0, p = _Object$getOwnPropertySymbols(s); i < p.length; i++) {
|
|
23
17
|
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
|
|
24
18
|
}
|
|
25
19
|
return t;
|
|
26
20
|
};
|
|
27
|
-
|
|
28
21
|
import React from 'react';
|
|
29
22
|
import { noop } from 'rxjs';
|
|
30
23
|
import { Table } from '../../base';
|
|
31
24
|
import { ROW_KEY } from '../cross-table';
|
|
32
25
|
import buildCrossTreeTable from './buildCrossTreeTable';
|
|
33
|
-
|
|
34
26
|
var CrossTreeTable = /*#__PURE__*/function (_React$Component) {
|
|
35
27
|
_inherits(CrossTreeTable, _React$Component);
|
|
36
|
-
|
|
37
28
|
var _super = _createSuper(CrossTreeTable);
|
|
38
|
-
|
|
39
29
|
function CrossTreeTable(props) {
|
|
40
30
|
var _this;
|
|
41
|
-
|
|
42
31
|
_classCallCheck(this, CrossTreeTable);
|
|
43
|
-
|
|
44
32
|
_this = _super.call(this, props);
|
|
45
|
-
|
|
46
33
|
_this.onChangeOpenKeys = function (nextOpenKeys) {
|
|
47
34
|
_this.props.onChangeOpenKeys(nextOpenKeys);
|
|
48
|
-
|
|
49
35
|
if (!('openKeys' in _this.props)) {
|
|
50
36
|
_this.setState({
|
|
51
37
|
openKeys: nextOpenKeys
|
|
52
38
|
});
|
|
53
39
|
}
|
|
54
40
|
};
|
|
55
|
-
|
|
56
41
|
_this.state = {
|
|
57
42
|
openKeys: props.defaultOpenKeys
|
|
58
43
|
};
|
|
59
44
|
return _this;
|
|
60
45
|
}
|
|
61
|
-
|
|
62
46
|
_createClass(CrossTreeTable, [{
|
|
63
47
|
key: "render",
|
|
64
48
|
value: function render() {
|
|
65
49
|
var _a = this.props,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
50
|
+
_a$BaseTableComponent = _a.BaseTableComponent,
|
|
51
|
+
BaseTableComponent = _a$BaseTableComponent === void 0 ? Table : _a$BaseTableComponent,
|
|
52
|
+
leftTree = _a.leftTree,
|
|
53
|
+
topTree = _a.topTree,
|
|
54
|
+
getValue = _a.getValue,
|
|
55
|
+
getCellProps = _a.getCellProps,
|
|
56
|
+
primaryColumn = _a.primaryColumn,
|
|
57
|
+
render = _a.render,
|
|
58
|
+
openKeysProp = _a.openKeys,
|
|
59
|
+
defaultOpenKeys = _a.defaultOpenKeys,
|
|
60
|
+
onChangeOpenKeys = _a.onChangeOpenKeys,
|
|
61
|
+
indentSize = _a.indentSize,
|
|
62
|
+
isLeafNode = _a.isLeafNode,
|
|
63
|
+
baseTableRef = _a.baseTableRef,
|
|
64
|
+
others = __rest(_a, ["BaseTableComponent", "leftTree", "topTree", "getValue", "getCellProps", "primaryColumn", "render", "openKeys", "defaultOpenKeys", "onChangeOpenKeys", "indentSize", "isLeafNode", "baseTableRef"]);
|
|
82
65
|
var openKeys = openKeysProp !== null && openKeysProp !== void 0 ? openKeysProp : this.state.openKeys;
|
|
83
|
-
|
|
84
66
|
var _buildCrossTreeTable = buildCrossTreeTable({
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
67
|
+
leftTree: leftTree,
|
|
68
|
+
topTree: topTree,
|
|
69
|
+
getValue: getValue,
|
|
70
|
+
getCellProps: getCellProps,
|
|
71
|
+
render: render,
|
|
72
|
+
primaryColumn: primaryColumn,
|
|
73
|
+
openKeys: openKeys,
|
|
74
|
+
onChangeOpenKeys: this.onChangeOpenKeys,
|
|
75
|
+
indentSize: indentSize,
|
|
76
|
+
isLeafNode: isLeafNode
|
|
77
|
+
}),
|
|
78
|
+
dataSource = _buildCrossTreeTable.dataSource,
|
|
79
|
+
columns = _buildCrossTreeTable.columns;
|
|
99
80
|
return /*#__PURE__*/React.createElement(BaseTableComponent, _extends({
|
|
100
81
|
ref: baseTableRef
|
|
101
82
|
}, others, {
|
|
@@ -112,14 +93,11 @@ var CrossTreeTable = /*#__PURE__*/function (_React$Component) {
|
|
|
112
93
|
openKeys: nextProps.openKeys
|
|
113
94
|
};
|
|
114
95
|
}
|
|
115
|
-
|
|
116
96
|
return null;
|
|
117
97
|
}
|
|
118
98
|
}]);
|
|
119
|
-
|
|
120
99
|
return CrossTreeTable;
|
|
121
100
|
}(React.Component);
|
|
122
|
-
|
|
123
101
|
export { CrossTreeTable as default };
|
|
124
102
|
CrossTreeTable.defaultProps = {
|
|
125
103
|
defaultOpenKeys: [],
|
|
@@ -4,25 +4,22 @@ import { groupBy } from '../../utils';
|
|
|
4
4
|
import { always } from '../../utils/others';
|
|
5
5
|
import simpleEncode from './simpleEncode';
|
|
6
6
|
/** 根据指定的 code 序列计算下钻树 */
|
|
7
|
-
|
|
8
7
|
export default function buildDrillTree(data, codes) {
|
|
9
8
|
var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
9
|
+
_ref$encode = _ref.encode,
|
|
10
|
+
encode = _ref$encode === void 0 ? simpleEncode : _ref$encode,
|
|
11
|
+
_ref$totalValue = _ref.totalValue,
|
|
12
|
+
totalValue = _ref$totalValue === void 0 ? '总计' : _ref$totalValue,
|
|
13
|
+
_ref$includeTopWrappe = _ref.includeTopWrapper,
|
|
14
|
+
includeTopWrapper = _ref$includeTopWrappe === void 0 ? false : _ref$includeTopWrappe,
|
|
15
|
+
_ref$isExpand = _ref.isExpand,
|
|
16
|
+
isExpand = _ref$isExpand === void 0 ? always(true) : _ref$isExpand,
|
|
17
|
+
_ref$enforceExpandTot = _ref.enforceExpandTotalNode,
|
|
18
|
+
enforceExpandTotalNode = _ref$enforceExpandTot === void 0 ? true : _ref$enforceExpandTot;
|
|
21
19
|
var emptyPath = [];
|
|
22
20
|
var totalKey = encode(emptyPath);
|
|
23
21
|
var array;
|
|
24
22
|
var hasChild = false;
|
|
25
|
-
|
|
26
23
|
if (codes.length === 0) {
|
|
27
24
|
array = [];
|
|
28
25
|
} else if (!enforceExpandTotalNode && !isExpand(totalKey)) {
|
|
@@ -31,7 +28,6 @@ export default function buildDrillTree(data, codes) {
|
|
|
31
28
|
} else {
|
|
32
29
|
array = dfs(data, []);
|
|
33
30
|
}
|
|
34
|
-
|
|
35
31
|
if (includeTopWrapper) {
|
|
36
32
|
var rootNode = {
|
|
37
33
|
key: totalKey,
|
|
@@ -39,14 +35,11 @@ export default function buildDrillTree(data, codes) {
|
|
|
39
35
|
path: emptyPath,
|
|
40
36
|
children: array
|
|
41
37
|
};
|
|
42
|
-
|
|
43
38
|
if (hasChild) {
|
|
44
39
|
rootNode.hasChild = hasChild;
|
|
45
40
|
}
|
|
46
|
-
|
|
47
41
|
return [rootNode];
|
|
48
42
|
}
|
|
49
|
-
|
|
50
43
|
if (includeTopWrapper) {
|
|
51
44
|
return [{
|
|
52
45
|
key: totalKey,
|
|
@@ -55,9 +48,7 @@ export default function buildDrillTree(data, codes) {
|
|
|
55
48
|
children: array
|
|
56
49
|
}];
|
|
57
50
|
}
|
|
58
|
-
|
|
59
51
|
return array;
|
|
60
|
-
|
|
61
52
|
function dfs(slice, path) {
|
|
62
53
|
var depth = path.length;
|
|
63
54
|
var array = [];
|
|
@@ -65,7 +56,6 @@ export default function buildDrillTree(data, codes) {
|
|
|
65
56
|
var groups = groupBy(slice, function (row) {
|
|
66
57
|
return row[code];
|
|
67
58
|
});
|
|
68
|
-
|
|
69
59
|
for (var _i = 0, _Object$keys = _Object$keys2(groups); _i < _Object$keys.length; _i++) {
|
|
70
60
|
var groupKey = _Object$keys[_i];
|
|
71
61
|
path.push(groupKey);
|
|
@@ -76,7 +66,6 @@ export default function buildDrillTree(data, codes) {
|
|
|
76
66
|
};
|
|
77
67
|
array.push(node);
|
|
78
68
|
var group = groups[groupKey];
|
|
79
|
-
|
|
80
69
|
if (group.length > 0 && depth < codes.length - 1) {
|
|
81
70
|
if (isExpand(node.key)) {
|
|
82
71
|
node.children = dfs(group, path);
|
|
@@ -84,10 +73,8 @@ export default function buildDrillTree(data, codes) {
|
|
|
84
73
|
node.hasChild = true;
|
|
85
74
|
}
|
|
86
75
|
}
|
|
87
|
-
|
|
88
76
|
path.pop();
|
|
89
77
|
}
|
|
90
|
-
|
|
91
78
|
return array;
|
|
92
79
|
}
|
|
93
80
|
}
|
|
@@ -3,13 +3,9 @@ import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
|
|
|
3
3
|
import _Symbol from "@babel/runtime-corejs3/core-js-stable/symbol";
|
|
4
4
|
import _getIteratorMethod from "@babel/runtime-corejs3/core-js/get-iterator-method";
|
|
5
5
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/slicedToArray";
|
|
6
|
-
|
|
7
6
|
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; } } }; }
|
|
8
|
-
|
|
9
7
|
function _unsupportedIterableToArray(o, minLen) { var _context5; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context5 = Object.prototype.toString.call(o)).call(_context5, 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); }
|
|
10
|
-
|
|
11
8
|
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; }
|
|
12
|
-
|
|
13
9
|
import _Set from "@babel/runtime-corejs3/core-js-stable/set";
|
|
14
10
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
15
11
|
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
|
@@ -18,54 +14,46 @@ import { groupBy, isLeafNode } from '../../utils';
|
|
|
18
14
|
import { always, fromEntries } from '../../utils/others';
|
|
19
15
|
import buildDrillTree from './buildDrillTree';
|
|
20
16
|
import simpleEncode from './simpleEncode';
|
|
21
|
-
|
|
22
17
|
function fallbackAggregate(slice) {
|
|
23
18
|
return slice.length === 1 ? slice[0] : {};
|
|
24
19
|
}
|
|
25
20
|
/** 根据表格左侧与上方的下钻树,从全量明细数据中计算对应的数据立方 */
|
|
26
|
-
|
|
27
|
-
|
|
28
21
|
export function buildRecordMatrix(_ref) {
|
|
29
22
|
var data = _ref.data,
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
23
|
+
leftCodes = _ref.leftCodes,
|
|
24
|
+
topCodes = _ref.topCodes,
|
|
25
|
+
_ref$aggregate = _ref.aggregate,
|
|
26
|
+
aggregate = _ref$aggregate === void 0 ? fallbackAggregate : _ref$aggregate,
|
|
27
|
+
_ref$encode = _ref.encode,
|
|
28
|
+
encode = _ref$encode === void 0 ? simpleEncode : _ref$encode,
|
|
29
|
+
_ref$isLeftExpand = _ref.isLeftExpand,
|
|
30
|
+
isLeftExpand = _ref$isLeftExpand === void 0 ? always(true) : _ref$isLeftExpand,
|
|
31
|
+
_ref$isTopExpand = _ref.isTopExpand,
|
|
32
|
+
isTopExpand = _ref$isTopExpand === void 0 ? always(true) : _ref$isTopExpand,
|
|
33
|
+
prebuiltLeftTree = _ref.prebuiltLeftTree,
|
|
34
|
+
prebuiltTopTree = _ref.prebuiltTopTree;
|
|
42
35
|
var ctx = {
|
|
43
36
|
peculiarity: new _Set()
|
|
44
37
|
};
|
|
45
|
-
|
|
46
38
|
var _ref2 = prebuiltLeftTree !== null && prebuiltLeftTree !== void 0 ? prebuiltLeftTree : buildDrillTree(data, leftCodes, {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
39
|
+
encode: encode,
|
|
40
|
+
includeTopWrapper: true,
|
|
41
|
+
isExpand: isLeftExpand
|
|
42
|
+
}),
|
|
43
|
+
_ref3 = _slicedToArray(_ref2, 1),
|
|
44
|
+
leftRootDrillNode = _ref3[0];
|
|
54
45
|
var _ref4 = prebuiltTopTree !== null && prebuiltTopTree !== void 0 ? prebuiltTopTree : buildDrillTree(data, topCodes, {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
46
|
+
encode: encode,
|
|
47
|
+
includeTopWrapper: true,
|
|
48
|
+
isExpand: isTopExpand
|
|
49
|
+
}),
|
|
50
|
+
_ref5 = _slicedToArray(_ref4, 1),
|
|
51
|
+
topRootDrillNode = _ref5[0];
|
|
62
52
|
var transientMatrixRow = buildByLeft(ctx, data, leftRootDrillNode, 0);
|
|
63
53
|
return makeMatrix(transientMatrixRow);
|
|
64
|
-
|
|
65
54
|
function buildByLeft(ctx, slice, drillNode, depth) {
|
|
66
55
|
var children = null;
|
|
67
56
|
var col;
|
|
68
|
-
|
|
69
57
|
if (isLeafNode(drillNode)) {
|
|
70
58
|
col = buildByTop(ctx, slice, topRootDrillNode, 0);
|
|
71
59
|
} else {
|
|
@@ -75,15 +63,12 @@ export function buildRecordMatrix(_ref) {
|
|
|
75
63
|
return dwdRow[code];
|
|
76
64
|
});
|
|
77
65
|
ctx.peculiarity.add(code);
|
|
78
|
-
|
|
79
66
|
var _iterator = _createForOfIteratorHelper(drillNode.children),
|
|
80
|
-
|
|
81
|
-
|
|
67
|
+
_step;
|
|
82
68
|
try {
|
|
83
69
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
84
70
|
var child = _step.value;
|
|
85
71
|
var group = groups[child.value];
|
|
86
|
-
|
|
87
72
|
if (group) {
|
|
88
73
|
children.push(buildByLeft(ctx, group, child, depth + 1));
|
|
89
74
|
}
|
|
@@ -93,24 +78,20 @@ export function buildRecordMatrix(_ref) {
|
|
|
93
78
|
} finally {
|
|
94
79
|
_iterator.f();
|
|
95
80
|
}
|
|
96
|
-
|
|
97
81
|
ctx.peculiarity.delete(code);
|
|
98
82
|
col = mergeColsByTopTree(ctx, _mapInstanceProperty(children).call(children, function (child) {
|
|
99
83
|
return child.col;
|
|
100
84
|
}));
|
|
101
85
|
}
|
|
102
|
-
|
|
103
86
|
return {
|
|
104
87
|
leftKey: drillNode.key,
|
|
105
88
|
children: children,
|
|
106
89
|
col: col
|
|
107
90
|
};
|
|
108
91
|
}
|
|
109
|
-
|
|
110
92
|
function buildByTop(ctx, slice, drillNode, depth) {
|
|
111
93
|
var children = null;
|
|
112
94
|
var record;
|
|
113
|
-
|
|
114
95
|
if (isLeafNode(drillNode)) {
|
|
115
96
|
record = aggregate(slice, ctx);
|
|
116
97
|
} else {
|
|
@@ -120,15 +101,12 @@ export function buildRecordMatrix(_ref) {
|
|
|
120
101
|
return dwdRow[code];
|
|
121
102
|
});
|
|
122
103
|
ctx.peculiarity.add(code);
|
|
123
|
-
|
|
124
104
|
var _iterator2 = _createForOfIteratorHelper(drillNode.children),
|
|
125
|
-
|
|
126
|
-
|
|
105
|
+
_step2;
|
|
127
106
|
try {
|
|
128
107
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
129
108
|
var child = _step2.value;
|
|
130
109
|
var group = groups[child.value];
|
|
131
|
-
|
|
132
110
|
if (group) {
|
|
133
111
|
children.push(buildByTop(ctx, group, child, depth + 1));
|
|
134
112
|
}
|
|
@@ -138,13 +116,11 @@ export function buildRecordMatrix(_ref) {
|
|
|
138
116
|
} finally {
|
|
139
117
|
_iterator2.f();
|
|
140
118
|
}
|
|
141
|
-
|
|
142
119
|
ctx.peculiarity.delete(code);
|
|
143
120
|
record = aggregate(_mapInstanceProperty(children).call(children, function (child) {
|
|
144
121
|
return child.record;
|
|
145
122
|
}), ctx);
|
|
146
123
|
}
|
|
147
|
-
|
|
148
124
|
return {
|
|
149
125
|
topKey: drillNode.key,
|
|
150
126
|
topValue: drillNode.value,
|
|
@@ -152,45 +128,35 @@ export function buildRecordMatrix(_ref) {
|
|
|
152
128
|
record: record
|
|
153
129
|
};
|
|
154
130
|
}
|
|
155
|
-
|
|
156
131
|
function mergeColsByTopTree(ctx, colsToMerge) {
|
|
157
132
|
return dfs(ctx, colsToMerge, topRootDrillNode, 0);
|
|
158
|
-
|
|
159
133
|
function dfs(ctx, cols, topDrillNode, depth) {
|
|
160
134
|
var children = null;
|
|
161
135
|
var record = aggregate(_mapInstanceProperty(cols).call(cols, function (c) {
|
|
162
136
|
return c.record;
|
|
163
137
|
}), ctx);
|
|
164
|
-
|
|
165
138
|
if (!isLeafNode(topDrillNode)) {
|
|
166
139
|
var _context, _context3;
|
|
167
|
-
|
|
168
140
|
var topCode = topCodes[depth];
|
|
169
141
|
ctx.peculiarity.add(topCode);
|
|
170
142
|
var drillChildDict = fromEntries(_mapInstanceProperty(_context = topDrillNode.children).call(_context, function (child) {
|
|
171
143
|
return [child.value, child];
|
|
172
144
|
}));
|
|
173
|
-
|
|
174
145
|
var colChildDictArray = _mapInstanceProperty(cols).call(cols, function (col) {
|
|
175
146
|
var _context2;
|
|
176
|
-
|
|
177
147
|
return fromEntries(_mapInstanceProperty(_context2 = col.children).call(_context2, function (child) {
|
|
178
148
|
return [child.topValue, child];
|
|
179
149
|
}));
|
|
180
150
|
});
|
|
181
|
-
|
|
182
151
|
children = _mapInstanceProperty(_context3 = topDrillNode.children).call(_context3, function (item) {
|
|
183
152
|
var _context4;
|
|
184
|
-
|
|
185
153
|
var childCols = _filterInstanceProperty(_context4 = _mapInstanceProperty(colChildDictArray).call(colChildDictArray, function (colChildDict) {
|
|
186
154
|
return colChildDict[item.value];
|
|
187
155
|
})).call(_context4, Boolean);
|
|
188
|
-
|
|
189
156
|
return dfs(ctx, childCols, drillChildDict[item.value], depth + 1);
|
|
190
157
|
});
|
|
191
158
|
ctx.peculiarity.delete(topCode);
|
|
192
159
|
}
|
|
193
|
-
|
|
194
160
|
return {
|
|
195
161
|
topKey: topDrillNode.key,
|
|
196
162
|
topValue: topDrillNode.value,
|
|
@@ -199,27 +165,22 @@ export function buildRecordMatrix(_ref) {
|
|
|
199
165
|
};
|
|
200
166
|
}
|
|
201
167
|
}
|
|
202
|
-
|
|
203
168
|
function makeMatrix(rootRow) {
|
|
204
169
|
var result = new _Map();
|
|
205
170
|
dfsRow(result, rootRow);
|
|
206
171
|
return result;
|
|
207
|
-
|
|
208
172
|
function dfsRow(matrix, row) {
|
|
209
173
|
var subMap = new _Map();
|
|
210
174
|
matrix.set(row.leftKey, subMap);
|
|
211
175
|
dfsCol(subMap, row.col);
|
|
212
|
-
|
|
213
176
|
if (!isLeafNode(row)) {
|
|
214
177
|
row.children.forEach(function (childRow) {
|
|
215
178
|
dfsRow(matrix, childRow);
|
|
216
179
|
});
|
|
217
180
|
}
|
|
218
181
|
}
|
|
219
|
-
|
|
220
182
|
function dfsCol(subMap, col) {
|
|
221
183
|
subMap.set(col.topKey, col.record);
|
|
222
|
-
|
|
223
184
|
if (!isLeafNode(col)) {
|
|
224
185
|
col.children.forEach(function (childCol) {
|
|
225
186
|
dfsCol(subMap, childCol);
|
|
@@ -230,14 +191,13 @@ export function buildRecordMatrix(_ref) {
|
|
|
230
191
|
}
|
|
231
192
|
/** buildRecordMatrix 的简化版本,只能处理一个维度序列,返回一个 Map。
|
|
232
193
|
* 相当于只处理 matrix 的第一行(汇总行) */
|
|
233
|
-
|
|
234
194
|
export function buildRecordMap(_ref6) {
|
|
235
195
|
var codes = _ref6.codes,
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
196
|
+
_ref6$encode = _ref6.encode,
|
|
197
|
+
encode = _ref6$encode === void 0 ? simpleEncode : _ref6$encode,
|
|
198
|
+
data = _ref6.data,
|
|
199
|
+
aggregate = _ref6.aggregate,
|
|
200
|
+
isExpand = _ref6.isExpand;
|
|
241
201
|
var matrix = buildRecordMatrix({
|
|
242
202
|
data: data,
|
|
243
203
|
leftCodes: [],
|