@kdcloudjs/table 1.2.1-canary.6 → 1.2.2-canary.3
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 +5480 -6087
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +18 -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 +36 -101
- package/es/_utils/hooks.js +21 -45
- 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 +81 -144
- 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 +11 -50
- 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 +25 -75
- package/es/table/base/colgroup.js +0 -1
- package/es/table/base/empty.js +6 -6
- package/es/table/base/globalStyleComponent.d.ts +4 -0
- package/es/table/base/globalStyleComponent.js +24 -0
- package/es/table/base/header.js +21 -76
- package/es/table/base/helpers/SpanManager.js +4 -11
- package/es/table/base/helpers/TableDOMUtils.js +9 -34
- package/es/table/base/helpers/__test__/SpanManager.test.js +2 -2
- package/es/table/base/helpers/__test__/TableDOMUtils.test.js +0 -1
- package/es/table/base/helpers/getRichVisibleRectsStream.js +13 -45
- package/es/table/base/helpers/rowHeightManager.js +0 -28
- package/es/table/base/html-table.js +17 -39
- package/es/table/base/loading.js +8 -10
- package/es/table/base/renderTemplates.js +42 -60
- package/es/table/base/styles.d.ts +10 -0
- package/es/table/base/styles.js +17 -16
- package/es/table/base/table.js +113 -201
- package/es/table/base/utils.js +17 -57
- package/es/table/common-views.js +0 -7
- package/es/table/interfaces.d.ts +38 -0
- package/es/table/internals.js +0 -13
- package/es/table/pipeline/const.d.ts +3 -0
- package/es/table/pipeline/const.js +3 -0
- package/es/table/pipeline/features/autoFill.js +11 -40
- package/es/table/pipeline/features/autoRowSpan.js +1 -14
- package/es/table/pipeline/features/colGroupExtendable.js +4 -19
- package/es/table/pipeline/features/columnDrag.js +41 -97
- package/es/table/pipeline/features/columnFilter.js +12 -51
- 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 +13 -39
- package/es/table/pipeline/features/contextMenu.js +22 -95
- package/es/table/pipeline/features/featureApi/RowDragApi.d.ts +15 -0
- package/es/table/pipeline/features/featureApi/RowDragApi.js +66 -0
- package/es/table/pipeline/features/featureApi/utils.d.ts +2 -0
- package/es/table/pipeline/features/featureApi/utils.js +10 -0
- package/es/table/pipeline/features/filter/DefaultFilterContent.js +14 -30
- package/es/table/pipeline/features/filter/DefaultFilterIcon.js +1 -1
- package/es/table/pipeline/features/filter/Filter.js +27 -51
- 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 +73 -152
- package/es/table/pipeline/features/rowDetail.js +4 -43
- package/es/table/pipeline/features/rowDrag.d.ts +10 -12
- package/es/table/pipeline/features/rowDrag.js +491 -236
- package/es/table/pipeline/features/rowGrouping.js +4 -37
- package/es/table/pipeline/features/singleSelect.js +0 -24
- package/es/table/pipeline/features/sort.js +38 -96
- package/es/table/pipeline/features/tips.js +4 -10
- package/es/table/pipeline/features/treeMode.d.ts +1 -0
- package/es/table/pipeline/features/treeMode.js +38 -57
- package/es/table/pipeline/features/treeSelect.js +2 -28
- package/es/table/pipeline/pipeline.d.ts +3 -0
- package/es/table/pipeline/pipeline.js +35 -54
- package/es/table/pivot/cross-table/buildCrossTable.js +21 -72
- package/es/table/pivot/cross-table/cross-table.js +23 -31
- package/es/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -57
- package/es/table/pivot/cross-tree-table/cross-tree-table.js +36 -61
- package/es/table/pivot/pivot-utils/buildDrillTree.js +10 -23
- package/es/table/pivot/pivot-utils/builders.js +34 -74
- package/es/table/pivot/pivot-utils/convert-utils.js +16 -42
- 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 +13 -35
- 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 +18 -42
- package/es/table/transforms/flatten.js +0 -3
- package/es/table/transforms/orderField.js +0 -3
- package/es/table/transforms/sort.js +42 -101
- package/es/table/transforms/tips.js +5 -10
- package/es/table/transforms/treeMode.js +36 -77
- package/es/table/transforms/visible.js +0 -2
- package/es/table/use/useResizeObserver.js +1 -4
- package/es/table/utils/applyTransforms.js +0 -1
- package/es/table/utils/browserType.js +12 -19
- package/es/table/utils/buildTree.js +7 -22
- package/es/table/utils/collectNodes.js +4 -13
- 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 +7 -43
- package/es/table/utils/getTreeDepth.js +4 -12
- package/es/table/utils/groupBy.js +4 -13
- package/es/table/utils/layeredFilter.js +0 -4
- package/es/table/utils/layeredSort.js +0 -5
- package/es/table/utils/makeRecursiveMapper.js +4 -15
- package/es/table/utils/mergeCellProps.js +6 -14
- package/es/table/utils/others.js +6 -19
- package/es/table/utils/proto.js +2 -30
- package/es/table/utils/smartCompare.js +4 -12
- package/es/table/utils/traverseColumn.js +5 -18
- package/es/table/utils/tree-data-helpers/StrictTreeDataHelper.js +8 -30
- package/es/table/utils/tree-data-helpers/TreeDataHelper.js +19 -74
- package/es/table/utils/uiDegrade.js +0 -5
- package/lib/_utils/arrayUtil.js +2 -8
- package/lib/_utils/devwarning.js +0 -5
- package/lib/_utils/formatUtil.js +36 -105
- package/lib/_utils/hooks.js +21 -56
- package/lib/_utils/index.js +2 -9
- 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 +3 -11
- package/lib/_utils/usePopper.js +86 -173
- package/lib/config-provider/ConfigContext.js +2 -6
- package/lib/config-provider/compDefaultProps.js +1 -3
- package/lib/config-provider/configProvider.js +6 -22
- package/lib/config-provider/defaultConfig.js +1 -7
- package/lib/config-provider/index.js +1 -8
- package/lib/index.js +2 -8
- package/lib/locale/index.js +3 -11
- package/lib/locale/locale.js +15 -71
- package/lib/locale/zh-CN.js +1 -2
- 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 +25 -86
- package/lib/table/base/colgroup.js +0 -5
- package/lib/table/base/empty.js +8 -20
- package/lib/table/base/globalStyleComponent.d.ts +4 -0
- package/lib/table/base/globalStyleComponent.js +35 -0
- package/lib/table/base/header.js +21 -86
- package/lib/table/base/helpers/SpanManager.js +6 -16
- package/lib/table/base/helpers/TableDOMUtils.js +9 -37
- 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 +15 -65
- package/lib/table/base/helpers/rowHeightManager.js +0 -33
- package/lib/table/base/html-table.js +17 -49
- package/lib/table/base/index.js +0 -2
- package/lib/table/base/loading.js +8 -14
- package/lib/table/base/renderTemplates.js +45 -76
- package/lib/table/base/styles.d.ts +10 -0
- package/lib/table/base/styles.js +24 -42
- package/lib/table/base/table.js +125 -245
- package/lib/table/base/utils.js +27 -109
- package/lib/table/common-views.js +4 -24
- package/lib/table/index.js +0 -13
- package/lib/table/interfaces.d.ts +38 -0
- package/lib/table/internals.js +2 -17
- package/lib/table/pipeline/const.d.ts +3 -0
- package/lib/table/pipeline/const.js +9 -0
- package/lib/table/pipeline/features/autoFill.js +14 -53
- 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 +6 -35
- package/lib/table/pipeline/features/columnDrag.js +41 -103
- package/lib/table/pipeline/features/columnFilter.js +12 -65
- 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 +18 -63
- package/lib/table/pipeline/features/contextMenu.js +24 -121
- package/lib/table/pipeline/features/featureApi/RowDragApi.d.ts +15 -0
- package/lib/table/pipeline/features/featureApi/RowDragApi.js +72 -0
- package/lib/table/pipeline/features/featureApi/utils.d.ts +2 -0
- package/lib/table/pipeline/features/featureApi/utils.js +17 -0
- package/lib/table/pipeline/features/filter/DefaultFilterContent.js +17 -52
- package/lib/table/pipeline/features/filter/DefaultFilterIcon.js +1 -4
- package/lib/table/pipeline/features/filter/Filter.js +30 -77
- package/lib/table/pipeline/features/filter/FilterPanel.js +14 -44
- package/lib/table/pipeline/features/filter/index.js +0 -5
- package/lib/table/pipeline/features/filter/util.js +2 -10
- package/lib/table/pipeline/features/footerDataSource.js +1 -12
- 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 +75 -173
- package/lib/table/pipeline/features/rowDetail.js +4 -67
- package/lib/table/pipeline/features/rowDrag.d.ts +10 -12
- package/lib/table/pipeline/features/rowDrag.js +494 -252
- package/lib/table/pipeline/features/rowGrouping.js +4 -57
- package/lib/table/pipeline/features/singleSelect.js +0 -34
- package/lib/table/pipeline/features/sort.js +37 -115
- package/lib/table/pipeline/features/tips.js +4 -19
- package/lib/table/pipeline/features/treeMode.d.ts +1 -0
- package/lib/table/pipeline/features/treeMode.js +40 -80
- package/lib/table/pipeline/features/treeSelect.js +2 -36
- package/lib/table/pipeline/index.js +2 -10
- package/lib/table/pipeline/pipeline.d.ts +3 -0
- package/lib/table/pipeline/pipeline.js +36 -65
- package/lib/table/pivot/cross-table/buildCrossTable.js +21 -83
- package/lib/table/pivot/cross-table/constants.js +1 -2
- package/lib/table/pivot/cross-table/cross-table.js +25 -42
- package/lib/table/pivot/cross-table/index.js +0 -4
- package/lib/table/pivot/cross-tree-table/buildCrossTreeTable.js +22 -70
- package/lib/table/pivot/cross-tree-table/cross-tree-table.js +37 -73
- 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 +34 -85
- package/lib/table/pivot/pivot-utils/convert-utils.js +16 -60
- 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 +15 -58
- 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 +20 -63
- 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 +44 -127
- package/lib/table/transforms/tips.js +5 -20
- package/lib/table/transforms/treeMode.js +38 -106
- package/lib/table/transforms/visible.js +0 -7
- package/lib/table/transforms/warnTransformsDeprecated.js +0 -4
- package/lib/table/use/useResizeObserver.js +2 -10
- package/lib/table/utils/applyTransforms.js +0 -2
- package/lib/table/utils/browserType.js +14 -23
- package/lib/table/utils/buildTree.js +7 -33
- package/lib/table/utils/collectNodes.js +4 -18
- package/lib/table/utils/console.js +2 -19
- package/lib/table/utils/copyToClipboard.js +1 -8
- package/lib/table/utils/element.js +14 -46
- package/lib/table/utils/exportTableAsExcel.js +7 -52
- package/lib/table/utils/getTreeDepth.js +4 -17
- package/lib/table/utils/groupBy.js +4 -17
- package/lib/table/utils/index.js +0 -22
- package/lib/table/utils/isGroupColumn.js +0 -3
- package/lib/table/utils/isLeafNode.js +0 -1
- package/lib/table/utils/keyCode.js +1 -2
- package/lib/table/utils/layeredFilter.js +0 -10
- package/lib/table/utils/layeredSort.js +0 -10
- package/lib/table/utils/makeRecursiveMapper.js +4 -24
- package/lib/table/utils/mergeCellProps.js +6 -18
- package/lib/table/utils/others.js +7 -36
- package/lib/table/utils/proto.js +3 -35
- package/lib/table/utils/selectColumn.js +2 -5
- package/lib/table/utils/smartCompare.js +4 -13
- package/lib/table/utils/traverseColumn.js +5 -25
- package/lib/table/utils/tree-data-helpers/StrictTreeDataHelper.js +10 -41
- package/lib/table/utils/tree-data-helpers/TreeDataHelper.js +21 -90
- package/lib/table/utils/uiDegrade.js +1 -8
- package/package.json +218 -218
|
@@ -14,23 +14,18 @@ export function multiSelect() {
|
|
|
14
14
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
15
15
|
return function multiSelectStep(pipeline) {
|
|
16
16
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
17
|
-
|
|
18
17
|
var stateKey = 'multiSelect';
|
|
19
18
|
var Checkbox = pipeline.ctx.components.Checkbox;
|
|
20
|
-
|
|
21
19
|
if (Checkbox == null) {
|
|
22
20
|
throw new Error('使用 multiSelect 之前需要设置 pipeline.ctx.components.Checkbox');
|
|
23
21
|
}
|
|
24
|
-
|
|
25
22
|
var primaryKey = pipeline.ensurePrimaryKey('multiSelect');
|
|
26
23
|
var isDisabled = (_a = opts.isDisabled) !== null && _a !== void 0 ? _a : always(false);
|
|
27
24
|
var clickArea = (_b = opts.clickArea) !== null && _b !== void 0 ? _b : 'checkbox';
|
|
28
25
|
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 : [];
|
|
29
26
|
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 : '';
|
|
30
|
-
|
|
31
27
|
var _onChange = function onChange(nextValue, key, keys, action) {
|
|
32
28
|
var _a;
|
|
33
|
-
|
|
34
29
|
(_a = opts.onChange) === null || _a === void 0 ? void 0 : _a.call(opts, nextValue, key, keys, action);
|
|
35
30
|
pipeline.setStateAtKey(stateKey, {
|
|
36
31
|
value: nextValue,
|
|
@@ -41,46 +36,38 @@ export function multiSelect() {
|
|
|
41
36
|
});
|
|
42
37
|
};
|
|
43
38
|
/** dataSource 中包含的所有 keys */
|
|
44
|
-
|
|
45
|
-
|
|
46
39
|
var fullKeySet = new _Set();
|
|
47
40
|
/** 所有有效的 keys(disable 状态为 false) */
|
|
48
|
-
|
|
49
41
|
var allKeys = [];
|
|
50
42
|
var set = new _Set(value);
|
|
51
43
|
var isAllChecked = set.size !== 0; // 当前不存在选中则默认为false
|
|
52
|
-
|
|
53
44
|
var isAnyChecked = false;
|
|
54
45
|
var flatDataSource = collectNodes(pipeline.getDataSource());
|
|
55
46
|
flatDataSource.forEach(function (row, rowIndex) {
|
|
56
47
|
var rowKey = internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
57
|
-
fullKeySet.add(rowKey);
|
|
58
|
-
|
|
48
|
+
fullKeySet.add(rowKey);
|
|
49
|
+
// 在 allKeys 中排除被禁用的 key
|
|
59
50
|
if (!isDisabled(row, rowIndex)) {
|
|
60
|
-
allKeys.push(rowKey);
|
|
61
|
-
|
|
51
|
+
allKeys.push(rowKey);
|
|
52
|
+
// 存在一个非选中,则不再进行判断
|
|
62
53
|
if (isAllChecked) {
|
|
63
54
|
isAllChecked = set.has(rowKey);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
|
|
55
|
+
}
|
|
56
|
+
// 存在一个选中,则不再进行判断
|
|
67
57
|
if (!isAnyChecked) {
|
|
68
58
|
isAnyChecked = set.has(rowKey);
|
|
69
59
|
}
|
|
70
60
|
}
|
|
71
|
-
});
|
|
72
|
-
|
|
61
|
+
});
|
|
62
|
+
// todo: 暂使用hidden隐藏选择列 后续增加配置
|
|
73
63
|
var hiddenSelectColumn = opts.checkboxColumn && opts.checkboxColumn.hidden === true;
|
|
74
|
-
|
|
75
64
|
if (!hiddenSelectColumn) {
|
|
76
65
|
var _context;
|
|
77
|
-
|
|
78
66
|
var defaultCheckboxColumnTitle = /*#__PURE__*/React.createElement(Checkbox, {
|
|
79
67
|
checked: isAllChecked,
|
|
80
68
|
indeterminate: !isAllChecked && isAnyChecked,
|
|
81
69
|
onChange: function onChange(_) {
|
|
82
70
|
var allKeys = pipeline.getFeatureOptions(allEnableKeys);
|
|
83
|
-
|
|
84
71
|
if (isAllChecked) {
|
|
85
72
|
_onChange(arrayUtils.diff(value, allKeys), '', allKeys, 'uncheck-all');
|
|
86
73
|
} else {
|
|
@@ -88,7 +75,6 @@ export function multiSelect() {
|
|
|
88
75
|
}
|
|
89
76
|
}
|
|
90
77
|
});
|
|
91
|
-
|
|
92
78
|
var checkboxColumn = _extends(_extends({
|
|
93
79
|
name: '是否选中',
|
|
94
80
|
title: defaultCheckboxColumnTitle,
|
|
@@ -97,13 +83,11 @@ export function multiSelect() {
|
|
|
97
83
|
}, opts.checkboxColumn), {
|
|
98
84
|
getCellProps: function getCellProps(value, row, rowIndex) {
|
|
99
85
|
var _a, _b;
|
|
100
|
-
|
|
101
86
|
var rowKey = internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
102
87
|
var checkboxCellProps = {};
|
|
103
88
|
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);
|
|
104
89
|
var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new _Set();
|
|
105
90
|
var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new _Set();
|
|
106
|
-
|
|
107
91
|
if (fullRowsSet.has(rowKey) && clickArea === 'cell') {
|
|
108
92
|
var prevChecked = selectValueSet.has(rowKey);
|
|
109
93
|
var disabled = isDisabled(row, rowIndex);
|
|
@@ -115,19 +99,16 @@ export function multiSelect() {
|
|
|
115
99
|
if (opts.stopClickEventPropagation) {
|
|
116
100
|
e.stopPropagation();
|
|
117
101
|
}
|
|
118
|
-
|
|
119
102
|
onCheckboxChange(prevChecked, rowKey, e.shiftKey);
|
|
120
103
|
}
|
|
121
104
|
};
|
|
122
105
|
}
|
|
123
|
-
|
|
124
106
|
return mergeCellProps(preCellProps, checkboxCellProps);
|
|
125
107
|
},
|
|
126
108
|
render: function render(_, row, rowIndex) {
|
|
127
109
|
if (row[pipeline.getFeatureOptions('footerRowMetaKey')]) {
|
|
128
110
|
return null;
|
|
129
111
|
}
|
|
130
|
-
|
|
131
112
|
var key = internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
132
113
|
var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new _Set();
|
|
133
114
|
var checked = selectValueSet.has(key);
|
|
@@ -135,18 +116,15 @@ export function multiSelect() {
|
|
|
135
116
|
checked: checked,
|
|
136
117
|
disabled: isDisabled(row, rowIndex),
|
|
137
118
|
onChange: clickArea === 'checkbox' ? function (arg1, arg2) {
|
|
138
|
-
var _a;
|
|
119
|
+
var _a;
|
|
120
|
+
// 这里要同时兼容 antd 和 fusion 的用法
|
|
139
121
|
// fusion: arg2?.nativeEvent
|
|
140
122
|
// antd: arg1.nativeEvent
|
|
141
|
-
|
|
142
|
-
|
|
143
123
|
var nativeEvent = (_a = arg2 === null || arg2 === void 0 ? void 0 : arg2.nativeEvent) !== null && _a !== void 0 ? _a : arg1.nativeEvent;
|
|
144
|
-
|
|
145
124
|
if (nativeEvent) {
|
|
146
125
|
if (opts.stopClickEventPropagation) {
|
|
147
126
|
nativeEvent.stopPropagation();
|
|
148
127
|
}
|
|
149
|
-
|
|
150
128
|
onCheckboxChange(checked, key, nativeEvent.shiftKey);
|
|
151
129
|
}
|
|
152
130
|
} : undefined
|
|
@@ -154,62 +132,49 @@ export function multiSelect() {
|
|
|
154
132
|
},
|
|
155
133
|
features: _extends(_extends({}, (_l = opts.checkboxColumn) === null || _l === void 0 ? void 0 : _l.features), _defineProperty({}, MULTI_SELECT_MARK_PROPNAME, true))
|
|
156
134
|
});
|
|
157
|
-
|
|
158
135
|
var nextColumns = _sliceInstanceProperty(_context = pipeline.getColumns()).call(_context);
|
|
159
|
-
|
|
160
136
|
var checkboxPlacement = (_m = opts.checkboxPlacement) !== null && _m !== void 0 ? _m : 'start';
|
|
161
|
-
|
|
162
137
|
if (checkboxPlacement === 'start') {
|
|
163
138
|
nextColumns.unshift(checkboxColumn);
|
|
164
139
|
} else {
|
|
165
140
|
nextColumns.push(checkboxColumn);
|
|
166
141
|
}
|
|
167
|
-
|
|
168
142
|
pipeline.columns(nextColumns);
|
|
169
143
|
}
|
|
170
|
-
|
|
171
144
|
pipeline.appendRowPropsGetter(function (row, rowIndex) {
|
|
172
145
|
var rowKey = internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
173
146
|
var fullRowsSet = pipeline.getFeatureOptions(fullRowsSetKey) || new _Set();
|
|
174
|
-
|
|
175
147
|
if (!fullRowsSet.has(rowKey)) {
|
|
176
148
|
// rowKey 不在 fullKeySet 中说明这一行是在 multiSelect 之后才生成的,multiSelect 不对之后生成的行进行处理
|
|
177
149
|
return;
|
|
178
150
|
}
|
|
179
|
-
|
|
180
151
|
var style = {};
|
|
181
152
|
var className;
|
|
182
153
|
var onClick;
|
|
183
154
|
var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new _Set();
|
|
184
155
|
var checked = selectValueSet.has(rowKey);
|
|
185
|
-
|
|
186
156
|
if (opts.highlightRowWhenSelected && checked) {
|
|
187
157
|
className = 'highlight';
|
|
188
158
|
}
|
|
189
|
-
|
|
190
159
|
if (clickArea === 'row') {
|
|
191
160
|
var disabled = isDisabled(row, rowIndex);
|
|
192
|
-
|
|
193
161
|
if (!disabled) {
|
|
194
162
|
style.cursor = 'pointer';
|
|
195
|
-
|
|
196
163
|
onClick = function onClick(e) {
|
|
197
164
|
if (opts.stopClickEventPropagation) {
|
|
198
165
|
e.stopPropagation();
|
|
199
166
|
}
|
|
200
|
-
|
|
201
167
|
onCheckboxChange(checked, rowKey, e.shiftKey);
|
|
202
168
|
};
|
|
203
169
|
}
|
|
204
170
|
}
|
|
205
|
-
|
|
206
171
|
return {
|
|
207
172
|
className: className,
|
|
208
173
|
style: style,
|
|
209
174
|
onClick: onClick
|
|
210
175
|
};
|
|
211
|
-
});
|
|
212
|
-
|
|
176
|
+
});
|
|
177
|
+
// 只保留一份到pipeline, 避免行数据过多时内容被握住
|
|
213
178
|
pipeline.setFeatureOptions(fullRowsSetKey, fullKeySet);
|
|
214
179
|
pipeline.setFeatureOptions(allEnableKeys, allKeys);
|
|
215
180
|
pipeline.setFeatureOptions(selectValueSetKey, set);
|
|
@@ -217,25 +182,18 @@ export function multiSelect() {
|
|
|
217
182
|
allKeys = null;
|
|
218
183
|
set = null;
|
|
219
184
|
return pipeline;
|
|
220
|
-
|
|
221
185
|
function onCheckboxChange(prevChecked, key, batch) {
|
|
222
186
|
var batchKeys = [key];
|
|
223
|
-
|
|
224
187
|
if (batch && lastKey) {
|
|
225
188
|
var _allKeys = pipeline.getFeatureOptions(allEnableKeys);
|
|
226
|
-
|
|
227
189
|
var lastIdx = _allKeys.indexOf(lastKey);
|
|
228
|
-
|
|
229
190
|
var cntIdx = _allKeys.indexOf(key);
|
|
230
|
-
|
|
231
191
|
var _ref = lastIdx < cntIdx ? [lastIdx, cntIdx] : [cntIdx, lastIdx],
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
192
|
+
_ref2 = _slicedToArray(_ref, 2),
|
|
193
|
+
start = _ref2[0],
|
|
194
|
+
end = _ref2[1];
|
|
236
195
|
batchKeys = _sliceInstanceProperty(_allKeys).call(_allKeys, start, end + 1);
|
|
237
196
|
}
|
|
238
|
-
|
|
239
197
|
if (prevChecked) {
|
|
240
198
|
_onChange(arrayUtils.diff(value, batchKeys), key, batchKeys, 'uncheck');
|
|
241
199
|
} else {
|