@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,53 +1,37 @@
|
|
|
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.multiSelect = multiSelect;
|
|
9
|
-
|
|
10
8
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
11
|
-
|
|
12
9
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
13
|
-
|
|
14
10
|
var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
|
|
15
|
-
|
|
16
11
|
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
17
|
-
|
|
18
12
|
var _react = _interopRequireDefault(require("react"));
|
|
19
|
-
|
|
20
13
|
var _internals = require("../../internals");
|
|
21
|
-
|
|
22
14
|
var _others = require("../../utils/others");
|
|
23
|
-
|
|
24
15
|
var _utils = require("../../utils");
|
|
25
|
-
|
|
26
16
|
var fullRowsSetKey = 'fullRowsSetKey';
|
|
27
17
|
var allEnableKeys = 'allEnableKeys';
|
|
28
18
|
var selectValueSetKey = 'selectValueSetKey';
|
|
29
|
-
|
|
30
19
|
function multiSelect() {
|
|
31
20
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
32
21
|
return function multiSelectStep(pipeline) {
|
|
33
22
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
34
|
-
|
|
35
23
|
var stateKey = 'multiSelect';
|
|
36
24
|
var Checkbox = pipeline.ctx.components.Checkbox;
|
|
37
|
-
|
|
38
25
|
if (Checkbox == null) {
|
|
39
26
|
throw new Error('使用 multiSelect 之前需要设置 pipeline.ctx.components.Checkbox');
|
|
40
27
|
}
|
|
41
|
-
|
|
42
28
|
var primaryKey = pipeline.ensurePrimaryKey('multiSelect');
|
|
43
29
|
var isDisabled = (_a = opts.isDisabled) !== null && _a !== void 0 ? _a : (0, _others.always)(false);
|
|
44
30
|
var clickArea = (_b = opts.clickArea) !== null && _b !== void 0 ? _b : 'checkbox';
|
|
45
31
|
var value = (_f = (_e = (_c = opts.value) !== null && _c !== void 0 ? _c : (_d = pipeline.getStateAtKey(stateKey)) === null || _d === void 0 ? void 0 : _d.value) !== null && _e !== void 0 ? _e : opts.defaultValue) !== null && _f !== void 0 ? _f : [];
|
|
46
32
|
var lastKey = (_k = (_j = (_g = opts.lastKey) !== null && _g !== void 0 ? _g : (_h = pipeline.getStateAtKey(stateKey)) === null || _h === void 0 ? void 0 : _h.lastKey) !== null && _j !== void 0 ? _j : opts.defaultLastKey) !== null && _k !== void 0 ? _k : '';
|
|
47
|
-
|
|
48
33
|
var _onChange = function onChange(nextValue, key, keys, action) {
|
|
49
34
|
var _a;
|
|
50
|
-
|
|
51
35
|
(_a = opts.onChange) === null || _a === void 0 ? void 0 : _a.call(opts, nextValue, key, keys, action);
|
|
52
36
|
pipeline.setStateAtKey(stateKey, {
|
|
53
37
|
value: nextValue,
|
|
@@ -58,47 +42,38 @@ function multiSelect() {
|
|
|
58
42
|
});
|
|
59
43
|
};
|
|
60
44
|
/** dataSource 中包含的所有 keys */
|
|
61
|
-
|
|
62
|
-
|
|
63
45
|
var fullKeySet = new _set.default();
|
|
64
46
|
/** 所有有效的 keys(disable 状态为 false) */
|
|
65
|
-
|
|
66
47
|
var allKeys = [];
|
|
67
48
|
var set = new _set.default(value);
|
|
68
49
|
var isAllChecked = set.size !== 0; // 当前不存在选中则默认为false
|
|
69
|
-
|
|
70
50
|
var isAnyChecked = false;
|
|
71
51
|
var flatDataSource = (0, _utils.collectNodes)(pipeline.getDataSource());
|
|
72
52
|
flatDataSource.forEach(function (row, rowIndex) {
|
|
73
53
|
var rowKey = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
54
|
+
fullKeySet.add(rowKey);
|
|
55
|
+
// 在 allKeys 中排除被禁用的 key
|
|
77
56
|
if (!isDisabled(row, rowIndex)) {
|
|
78
|
-
allKeys.push(rowKey);
|
|
79
|
-
|
|
57
|
+
allKeys.push(rowKey);
|
|
58
|
+
// 存在一个非选中,则不再进行判断
|
|
80
59
|
if (isAllChecked) {
|
|
81
60
|
isAllChecked = set.has(rowKey);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
61
|
+
}
|
|
62
|
+
// 存在一个选中,则不再进行判断
|
|
85
63
|
if (!isAnyChecked) {
|
|
86
64
|
isAnyChecked = set.has(rowKey);
|
|
87
65
|
}
|
|
88
66
|
}
|
|
89
|
-
});
|
|
90
|
-
|
|
67
|
+
});
|
|
68
|
+
// todo: 暂使用hidden隐藏选择列 后续增加配置
|
|
91
69
|
var hiddenSelectColumn = opts.checkboxColumn && opts.checkboxColumn.hidden === true;
|
|
92
|
-
|
|
93
70
|
if (!hiddenSelectColumn) {
|
|
94
71
|
var _context;
|
|
95
|
-
|
|
96
72
|
var defaultCheckboxColumnTitle = /*#__PURE__*/_react.default.createElement(Checkbox, {
|
|
97
73
|
checked: isAllChecked,
|
|
98
74
|
indeterminate: !isAllChecked && isAnyChecked,
|
|
99
75
|
onChange: function onChange(_) {
|
|
100
76
|
var allKeys = pipeline.getFeatureOptions(allEnableKeys);
|
|
101
|
-
|
|
102
77
|
if (isAllChecked) {
|
|
103
78
|
_onChange(_others.arrayUtils.diff(value, allKeys), '', allKeys, 'uncheck-all');
|
|
104
79
|
} else {
|
|
@@ -106,7 +81,6 @@ function multiSelect() {
|
|
|
106
81
|
}
|
|
107
82
|
}
|
|
108
83
|
});
|
|
109
|
-
|
|
110
84
|
var checkboxColumn = (0, _extends2.default)((0, _extends2.default)({
|
|
111
85
|
name: '是否选中',
|
|
112
86
|
title: defaultCheckboxColumnTitle,
|
|
@@ -115,14 +89,11 @@ function multiSelect() {
|
|
|
115
89
|
}, opts.checkboxColumn), {
|
|
116
90
|
getCellProps: function getCellProps(value, row, rowIndex) {
|
|
117
91
|
var _a, _b;
|
|
118
|
-
|
|
119
92
|
var rowKey = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
120
|
-
|
|
121
93
|
var checkboxCellProps = {};
|
|
122
94
|
var preCellProps = (_b = (_a = opts.checkboxColumn) === null || _a === void 0 ? void 0 : _a.getCellProps) === null || _b === void 0 ? void 0 : _b.call(_a, value, row, rowIndex);
|
|
123
95
|
var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new _set.default();
|
|
124
96
|
var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new _set.default();
|
|
125
|
-
|
|
126
97
|
if (fullRowsSet.has(rowKey) && clickArea === 'cell') {
|
|
127
98
|
var prevChecked = selectValueSet.has(rowKey);
|
|
128
99
|
var disabled = isDisabled(row, rowIndex);
|
|
@@ -134,39 +105,32 @@ function multiSelect() {
|
|
|
134
105
|
if (opts.stopClickEventPropagation) {
|
|
135
106
|
e.stopPropagation();
|
|
136
107
|
}
|
|
137
|
-
|
|
138
108
|
onCheckboxChange(prevChecked, rowKey, e.shiftKey);
|
|
139
109
|
}
|
|
140
110
|
};
|
|
141
111
|
}
|
|
142
|
-
|
|
143
112
|
return (0, _utils.mergeCellProps)(preCellProps, checkboxCellProps);
|
|
144
113
|
},
|
|
145
114
|
render: function render(_, row, rowIndex) {
|
|
146
115
|
if (row[pipeline.getFeatureOptions('footerRowMetaKey')]) {
|
|
147
116
|
return null;
|
|
148
117
|
}
|
|
149
|
-
|
|
150
118
|
var key = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
151
|
-
|
|
152
119
|
var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new _set.default();
|
|
153
120
|
var checked = selectValueSet.has(key);
|
|
154
121
|
return /*#__PURE__*/_react.default.createElement(Checkbox, {
|
|
155
122
|
checked: checked,
|
|
156
123
|
disabled: isDisabled(row, rowIndex),
|
|
157
124
|
onChange: clickArea === 'checkbox' ? function (arg1, arg2) {
|
|
158
|
-
var _a;
|
|
125
|
+
var _a;
|
|
126
|
+
// 这里要同时兼容 antd 和 fusion 的用法
|
|
159
127
|
// fusion: arg2?.nativeEvent
|
|
160
128
|
// antd: arg1.nativeEvent
|
|
161
|
-
|
|
162
|
-
|
|
163
129
|
var nativeEvent = (_a = arg2 === null || arg2 === void 0 ? void 0 : arg2.nativeEvent) !== null && _a !== void 0 ? _a : arg1.nativeEvent;
|
|
164
|
-
|
|
165
130
|
if (nativeEvent) {
|
|
166
131
|
if (opts.stopClickEventPropagation) {
|
|
167
132
|
nativeEvent.stopPropagation();
|
|
168
133
|
}
|
|
169
|
-
|
|
170
134
|
onCheckboxChange(checked, key, nativeEvent.shiftKey);
|
|
171
135
|
}
|
|
172
136
|
} : undefined
|
|
@@ -175,59 +139,47 @@ function multiSelect() {
|
|
|
175
139
|
});
|
|
176
140
|
var nextColumns = (0, _slice.default)(_context = pipeline.getColumns()).call(_context);
|
|
177
141
|
var checkboxPlacement = (_l = opts.checkboxPlacement) !== null && _l !== void 0 ? _l : 'start';
|
|
178
|
-
|
|
179
142
|
if (checkboxPlacement === 'start') {
|
|
180
143
|
nextColumns.unshift(checkboxColumn);
|
|
181
144
|
} else {
|
|
182
145
|
nextColumns.push(checkboxColumn);
|
|
183
146
|
}
|
|
184
|
-
|
|
185
147
|
pipeline.columns(nextColumns);
|
|
186
148
|
}
|
|
187
|
-
|
|
188
149
|
pipeline.appendRowPropsGetter(function (row, rowIndex) {
|
|
189
150
|
var rowKey = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
190
|
-
|
|
191
151
|
var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new _set.default();
|
|
192
|
-
|
|
193
152
|
if (!fullRowsSet.has(rowKey)) {
|
|
194
153
|
// rowKey 不在 fullKeySet 中说明这一行是在 multiSelect 之后才生成的,multiSelect 不对之后生成的行进行处理
|
|
195
154
|
return;
|
|
196
155
|
}
|
|
197
|
-
|
|
198
156
|
var style = {};
|
|
199
157
|
var className;
|
|
200
158
|
var onClick;
|
|
201
159
|
var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new _set.default();
|
|
202
160
|
var checked = selectValueSet.has(rowKey);
|
|
203
|
-
|
|
204
161
|
if (opts.highlightRowWhenSelected && checked) {
|
|
205
162
|
className = 'highlight';
|
|
206
163
|
}
|
|
207
|
-
|
|
208
164
|
if (clickArea === 'row') {
|
|
209
165
|
var disabled = isDisabled(row, rowIndex);
|
|
210
|
-
|
|
211
166
|
if (!disabled) {
|
|
212
167
|
style.cursor = 'pointer';
|
|
213
|
-
|
|
214
168
|
onClick = function onClick(e) {
|
|
215
169
|
if (opts.stopClickEventPropagation) {
|
|
216
170
|
e.stopPropagation();
|
|
217
171
|
}
|
|
218
|
-
|
|
219
172
|
onCheckboxChange(checked, rowKey, e.shiftKey);
|
|
220
173
|
};
|
|
221
174
|
}
|
|
222
175
|
}
|
|
223
|
-
|
|
224
176
|
return {
|
|
225
177
|
className: className,
|
|
226
178
|
style: style,
|
|
227
179
|
onClick: onClick
|
|
228
180
|
};
|
|
229
|
-
});
|
|
230
|
-
|
|
181
|
+
});
|
|
182
|
+
// 只保留一份到pipeline, 避免行数据过多时内容被握住
|
|
231
183
|
pipeline.setFeatureOptions(fullRowsSetKey, fullKeySet);
|
|
232
184
|
pipeline.setFeatureOptions(allEnableKeys, allKeys);
|
|
233
185
|
pipeline.setFeatureOptions(selectValueSetKey, set);
|
|
@@ -235,25 +187,18 @@ function multiSelect() {
|
|
|
235
187
|
allKeys = null;
|
|
236
188
|
set = null;
|
|
237
189
|
return pipeline;
|
|
238
|
-
|
|
239
190
|
function onCheckboxChange(prevChecked, key, batch) {
|
|
240
191
|
var batchKeys = [key];
|
|
241
|
-
|
|
242
192
|
if (batch && lastKey) {
|
|
243
193
|
var _allKeys = pipeline.getFeatureOptions(allEnableKeys);
|
|
244
|
-
|
|
245
194
|
var lastIdx = _allKeys.indexOf(lastKey);
|
|
246
|
-
|
|
247
195
|
var cntIdx = _allKeys.indexOf(key);
|
|
248
|
-
|
|
249
196
|
var _ref = lastIdx < cntIdx ? [lastIdx, cntIdx] : [cntIdx, lastIdx],
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
197
|
+
_ref2 = (0, _slicedToArray2.default)(_ref, 2),
|
|
198
|
+
start = _ref2[0],
|
|
199
|
+
end = _ref2[1];
|
|
254
200
|
batchKeys = (0, _slice.default)(_allKeys).call(_allKeys, start, end + 1);
|
|
255
201
|
}
|
|
256
|
-
|
|
257
202
|
if (prevChecked) {
|
|
258
203
|
_onChange(_others.arrayUtils.diff(value, batchKeys), key, batchKeys, 'uncheck');
|
|
259
204
|
} else {
|