@kdcloudjs/table 1.1.5-canary.9 → 1.1.6-canary.1
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 +275 -119
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +7 -7
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/table/base/styles.js +1 -1
- package/es/table/common-views.js +1 -1
- package/es/table/pipeline/features/autoFill.js +128 -45
- package/es/table/pipeline/features/columnResizeWidth.d.ts +2 -0
- package/es/table/pipeline/features/columnResizeWidth.js +34 -23
- package/es/table/pipeline/features/multiSelect.js +15 -9
- package/es/table/pipeline/features/rangeSelection.js +3 -3
- package/es/table/pipeline/features/sort.js +4 -0
- package/es/table/pipeline/pipeline.js +3 -2
- package/lib/table/base/styles.js +1 -1
- package/lib/table/common-views.js +1 -1
- package/lib/table/pipeline/features/autoFill.js +129 -45
- package/lib/table/pipeline/features/columnResizeWidth.d.ts +2 -0
- package/lib/table/pipeline/features/columnResizeWidth.js +37 -23
- package/lib/table/pipeline/features/multiSelect.js +15 -10
- package/lib/table/pipeline/features/rangeSelection.js +3 -3
- package/lib/table/pipeline/features/sort.js +4 -0
- package/lib/table/pipeline/pipeline.js +3 -2
- package/package.json +1 -1
package/es/table/base/styles.js
CHANGED
|
@@ -103,7 +103,7 @@ export var defaultCSSVariables = {
|
|
|
103
103
|
'--row-height': '48px',
|
|
104
104
|
'--color': '#333',
|
|
105
105
|
'--bgcolor': 'white',
|
|
106
|
-
'--hover-bgcolor': 'var(--hover-color, #
|
|
106
|
+
'--hover-bgcolor': 'var(--hover-color, #f5f5f5)',
|
|
107
107
|
'--highlight-bgcolor': '#eee',
|
|
108
108
|
'--primary-color': '#5582F3',
|
|
109
109
|
'--primary-color-level1': 'rgb(242, 248, 255)',
|
package/es/table/common-views.js
CHANGED
|
@@ -67,4 +67,4 @@ export var icons = {
|
|
|
67
67
|
CaretRight: CaretRightIcon,
|
|
68
68
|
Info: InfoIcon
|
|
69
69
|
};
|
|
70
|
-
export var ContextMenuStyleWrap = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n &.", "{\n border: 1px solid #e9ecf1;\n border-radius: 2px;\n background-color: #Fff;\n box-shadow: 0px 0px 5px 0px rgb(154 154 154 / 50%);\n cursor: default;\n font-size:
|
|
70
|
+
export var ContextMenuStyleWrap = styled.div(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n &.", "{\n border: 1px solid #e9ecf1;\n border-radius: 2px;\n background-color: #Fff;\n box-shadow: 0px 0px 5px 0px rgb(154 154 154 / 50%);\n cursor: default;\n font-size: 12px;\n position:absolute;\n z-index: 1050;\n max-width: 600px;\n padding: 8px 0;\n }\n\n .", "{\n width:100%;\n display: table;\n }\n\n .", " .", "{\n display: table-row;\n color: #212121;\n }\n\n .", " .", "{\n background-color: var(--hover-bgcolor);\n }\n\n .", " .", " .", "{\n display: table-cell;\n padding: 8px 12px;\n max-width: 576px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n .", " .", ".", "{\n opacity: .5;\n }\n\n"])), MenuClasses.menu, MenuClasses.menuList, MenuClasses.menuList, MenuClasses.menuOption, MenuClasses.menuList, MenuClasses.menuOptionActive, MenuClasses.menuList, MenuClasses.menuOption, MenuClasses.menuOptionText, MenuClasses.menuList, MenuClasses.menuOption, MenuClasses.menuOptionDisable);
|
|
@@ -1,69 +1,152 @@
|
|
|
1
|
+
import _Symbol from "@babel/runtime-corejs3/core-js-stable/symbol";
|
|
2
|
+
import _Number$MAX_SAFE_INTEGER from "@babel/runtime-corejs3/core-js-stable/number/max-safe-integer";
|
|
1
3
|
import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
|
|
2
4
|
import _sliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/slice";
|
|
3
5
|
import _spliceInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/splice";
|
|
6
|
+
import _Map from "@babel/runtime-corejs3/core-js-stable/map";
|
|
4
7
|
import { getLeftNestedLockCount } from '../../base/calculations';
|
|
5
8
|
import { isLeafNode, makeRecursiveMapper } from '../../utils';
|
|
6
9
|
import { Classes } from '../../base/styles';
|
|
10
|
+
import { COLUMN_SIZE_KEY, RESIZED_COLUMN_KEY } from './columnResizeWidth';
|
|
7
11
|
export var FILL_COLUMN_CODE = '$_fill_column_&';
|
|
8
12
|
export var tableWidthKey = 'tableWidth';
|
|
9
|
-
|
|
13
|
+
|
|
14
|
+
var FLEX_COLUMN_COUNT = _Symbol('flexCount');
|
|
15
|
+
|
|
10
16
|
export var autoFillTableWidth = function autoFillTableWidth() {
|
|
11
17
|
return function (pipeline) {
|
|
12
|
-
var
|
|
13
|
-
var
|
|
18
|
+
var flexColumnResult = findFlexColumns(pipeline);
|
|
19
|
+
var flexCount = flexColumnResult.get(FLEX_COLUMN_COUNT);
|
|
20
|
+
|
|
21
|
+
if (flexCount) {
|
|
22
|
+
// 设置了flex宽度,flex列平分剩余宽度
|
|
23
|
+
var remainingWidth = getTableRemainingWidth(pipeline) || 0;
|
|
14
24
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
25
|
+
if (remainingWidth > 0) {
|
|
26
|
+
// 保存剩余的flex总和和剩余宽度总和宽度
|
|
27
|
+
var residualFlexCount = flexCount;
|
|
28
|
+
var residualFlexWidth = remainingWidth;
|
|
29
|
+
var columnSize = pipeline.getFeatureOptions(COLUMN_SIZE_KEY) || {};
|
|
30
|
+
pipeline.mapColumns(makeRecursiveMapper(function (col, recursiveFlatMapInfo) {
|
|
31
|
+
var isLeaf = recursiveFlatMapInfo.isLeaf;
|
|
18
32
|
|
|
19
|
-
|
|
20
|
-
|
|
33
|
+
if (isLeaf && isValidFlexColumn(col, pipeline)) {
|
|
34
|
+
var code = col.code,
|
|
35
|
+
_col$features = col.features,
|
|
36
|
+
features = _col$features === void 0 ? {} : _col$features;
|
|
37
|
+
var flex = features.flex,
|
|
38
|
+
_features$minWidth = features.minWidth,
|
|
39
|
+
minWidth = _features$minWidth === void 0 ? 0 : _features$minWidth,
|
|
40
|
+
_features$maxWidth = features.maxWidth,
|
|
41
|
+
maxWidth = _features$maxWidth === void 0 ? _Number$MAX_SAFE_INTEGER : _features$maxWidth;
|
|
42
|
+
var usedRemainingWidth = Math.floor(remainingWidth * flex / flexCount);
|
|
43
|
+
var preColWidth = col.width; // 如果当前已经是最后一个flex列,将剩余的宽度添加到该列,其他计算相应的列
|
|
44
|
+
|
|
45
|
+
col.width = clamp(minWidth, preColWidth + (residualFlexCount === flex ? residualFlexWidth : usedRemainingWidth), maxWidth);
|
|
46
|
+
residualFlexCount -= flex;
|
|
47
|
+
residualFlexWidth -= col.width - preColWidth;
|
|
48
|
+
columnSize[code] = col.width;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return col;
|
|
52
|
+
}));
|
|
53
|
+
pipeline.setFeatureOptions(COLUMN_SIZE_KEY, columnSize);
|
|
54
|
+
}
|
|
21
55
|
} else {
|
|
22
|
-
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
code
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
56
|
+
// 未设置了flex宽度,创建占位列
|
|
57
|
+
var columns = pipeline.getColumns();
|
|
58
|
+
|
|
59
|
+
var fillColumns = _findInstanceProperty(columns).call(columns, function (col) {
|
|
60
|
+
return col.code === FILL_COLUMN_CODE;
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
var width = getTableRemainingWidth(pipeline) || 0;
|
|
64
|
+
|
|
65
|
+
if (fillColumns) {
|
|
66
|
+
fillColumns.width = width;
|
|
67
|
+
} else {
|
|
68
|
+
var rightNestedLockCount = getLeftNestedLockCount(_sliceInstanceProperty(columns).call(columns).reverse());
|
|
69
|
+
var spliceIndex = columns.length - rightNestedLockCount;
|
|
70
|
+
var _fillColumns = {
|
|
71
|
+
name: '',
|
|
72
|
+
code: FILL_COLUMN_CODE,
|
|
73
|
+
width: width,
|
|
74
|
+
features: {
|
|
75
|
+
resizeable: false
|
|
76
|
+
},
|
|
77
|
+
getCellProps: function getCellProps(value, record, rowIndex) {
|
|
78
|
+
return {
|
|
79
|
+
className: Classes.emptyColCell
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
_spliceInstanceProperty(columns).call(columns, spliceIndex || columns.length, 0, _fillColumns);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
pipeline.columns(columns);
|
|
39
88
|
}
|
|
40
89
|
|
|
41
|
-
pipeline.columns(columns);
|
|
42
|
-
setAutoFillWidth(pipeline);
|
|
43
90
|
return pipeline;
|
|
91
|
+
|
|
92
|
+
function findFlexColumns(pipeline) {
|
|
93
|
+
var result = new _Map([[FLEX_COLUMN_COUNT, 0]]);
|
|
94
|
+
dfs(pipeline.getColumns(), result);
|
|
95
|
+
return result;
|
|
96
|
+
|
|
97
|
+
function dfs(columns, result) {
|
|
98
|
+
columns.forEach(function (col) {
|
|
99
|
+
if (isLeafNode(col)) {
|
|
100
|
+
if (isValidFlexColumn(col, pipeline)) {
|
|
101
|
+
result.set(FLEX_COLUMN_COUNT, result.get(FLEX_COLUMN_COUNT) + col.features.flex);
|
|
102
|
+
}
|
|
103
|
+
} else {
|
|
104
|
+
dfs(col.children, result);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
44
109
|
};
|
|
45
110
|
};
|
|
46
111
|
|
|
47
|
-
|
|
112
|
+
function getColumnWidthSum(pipeline) {
|
|
113
|
+
return dfs(pipeline.getColumns());
|
|
114
|
+
|
|
115
|
+
function dfs(columns) {
|
|
116
|
+
return columns.reduce(function (acc, col) {
|
|
117
|
+
var width = col.width,
|
|
118
|
+
code = col.code;
|
|
119
|
+
|
|
120
|
+
if (isLeafNode(col) && code !== FILL_COLUMN_CODE) {
|
|
121
|
+
var resizeColumn = pipeline.getFeatureOptions(COLUMN_SIZE_KEY);
|
|
122
|
+
return acc + (resizeColumn && resizeColumn[code]) || width;
|
|
123
|
+
} else {
|
|
124
|
+
return acc + dfs(col.children);
|
|
125
|
+
}
|
|
126
|
+
}, 0);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function getTableRemainingWidth(pipeline) {
|
|
48
131
|
var tableWidth = pipeline.getStateAtKey(tableWidthKey);
|
|
49
132
|
if (!tableWidth) return;
|
|
50
|
-
var
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
var resizeColumn = pipeline.getStateAtKey('columnResize');
|
|
57
|
-
columnWidthSum += resizeColumn && resizeColumn[code] || width;
|
|
58
|
-
}
|
|
133
|
+
var remainingWidth = Math.floor(tableWidth - getColumnWidthSum(pipeline));
|
|
134
|
+
return remainingWidth > 0 ? remainingWidth : 0;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
function isValidFlexColumn(col, pipeline) {
|
|
138
|
+
var _a;
|
|
59
139
|
|
|
60
|
-
|
|
61
|
-
}));
|
|
62
|
-
var fillColumnWidth = Math.floor(tableWidth - columnWidthSum);
|
|
63
|
-
fillColumnWidth = fillColumnWidth > 0 ? fillColumnWidth : 0;
|
|
64
|
-
var preWidth = pipeline.getStateAtKey(fillColumnWidthKey, 0);
|
|
140
|
+
var resizeColumn = pipeline.getFeatureOptions(RESIZED_COLUMN_KEY); // 拖拽列自动禁止flex
|
|
65
141
|
|
|
66
|
-
if (
|
|
67
|
-
|
|
142
|
+
if (resizeColumn === null || resizeColumn === void 0 ? void 0 : resizeColumn.has(col.code)) {
|
|
143
|
+
return false;
|
|
68
144
|
}
|
|
69
|
-
|
|
145
|
+
|
|
146
|
+
var flex = (_a = col.features) === null || _a === void 0 ? void 0 : _a.flex;
|
|
147
|
+
return typeof flex === 'number' && flex > 0;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function clamp(min, x, max) {
|
|
151
|
+
return Math.max(min, Math.min(max, x));
|
|
152
|
+
}
|
|
@@ -20,5 +20,7 @@ export interface ColumnResizeOptions {
|
|
|
20
20
|
onChangeSize?(nextSize: ColumnSize): void;
|
|
21
21
|
afterChangeSize?(nextSize: ColumnSize, changedColumnSize: ChangedColumnSize[]): void;
|
|
22
22
|
}
|
|
23
|
+
export declare const COLUMN_SIZE_KEY = "columnResize";
|
|
24
|
+
export declare const RESIZED_COLUMN_KEY = "resizedColumn";
|
|
23
25
|
export declare function columnResize(opts?: ColumnResizeOptions): (pipeline: TablePipeline) => TablePipeline;
|
|
24
26
|
export {};
|
|
@@ -3,8 +3,9 @@ import _taggedTemplateLiteral from "@babel/runtime-corejs3/helpers/taggedTemplat
|
|
|
3
3
|
|
|
4
4
|
var _templateObject, _templateObject2;
|
|
5
5
|
|
|
6
|
-
import
|
|
6
|
+
import _Set from "@babel/runtime-corejs3/core-js-stable/set";
|
|
7
7
|
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
|
8
|
+
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
8
9
|
import React from 'react';
|
|
9
10
|
import styled from 'styled-components';
|
|
10
11
|
import { fromEvent } from 'rxjs';
|
|
@@ -23,17 +24,19 @@ function disableSelect(event) {
|
|
|
23
24
|
event.preventDefault();
|
|
24
25
|
}
|
|
25
26
|
|
|
27
|
+
var stateKey = 'columnResize';
|
|
28
|
+
export var COLUMN_SIZE_KEY = 'columnResize';
|
|
29
|
+
export var RESIZED_COLUMN_KEY = 'resizedColumn';
|
|
26
30
|
export function columnResize() {
|
|
27
31
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
28
32
|
|
|
29
33
|
var _a, _b, _c;
|
|
30
34
|
|
|
31
|
-
var stateKey = 'columnResize';
|
|
32
35
|
var minSize = (_a = opts.minSize) !== null && _a !== void 0 ? _a : 60;
|
|
33
36
|
var fallbackSize = (_b = opts.fallbackSize) !== null && _b !== void 0 ? _b : 150;
|
|
34
37
|
var maxSize = (_c = opts.maxSize) !== null && _c !== void 0 ? _c : 1000;
|
|
35
38
|
return function columnResizeFeature(pipeline) {
|
|
36
|
-
var _a, _b
|
|
39
|
+
var _a, _b;
|
|
37
40
|
|
|
38
41
|
var columnSize = (_b = (_a = opts.columnSize) !== null && _a !== void 0 ? _a : pipeline.getStateAtKey(stateKey)) !== null && _b !== void 0 ? _b : {};
|
|
39
42
|
var leafColumns = collectNodes(pipeline.getColumns(), 'leaf-only');
|
|
@@ -48,15 +51,10 @@ export function columnResize() {
|
|
|
48
51
|
columnSize[code] = fallbackSize;
|
|
49
52
|
}
|
|
50
53
|
}
|
|
51
|
-
}); //
|
|
52
|
-
|
|
53
|
-
if (!pipeline.getStateAtKey(stateKey) || ((_c = pipeline.ref) === null || _c === void 0 ? void 0 : _c.current.lastOptColumnSize) !== opts.columnSize) {
|
|
54
|
-
pipeline.setStateAtKey(stateKey, columnSize);
|
|
55
|
-
}
|
|
54
|
+
}); // 实时存储一份最新的columnSize,与autoFill共用一份数据
|
|
55
|
+
// 存在state里可能存到取不到最新的
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
pipeline.ref.current.lastOptColumnSize = opts.columnSize;
|
|
59
|
-
}
|
|
57
|
+
pipeline.setFeatureOptions(COLUMN_SIZE_KEY, columnSize);
|
|
60
58
|
|
|
61
59
|
var onChangeSize = function onChangeSize(nextColumnSize) {
|
|
62
60
|
window.requestAnimationFrame(function () {
|
|
@@ -64,17 +62,13 @@ export function columnResize() {
|
|
|
64
62
|
|
|
65
63
|
pipeline.setStateAtKey(stateKey, nextColumnSize);
|
|
66
64
|
(_a = opts === null || opts === void 0 ? void 0 : opts.onChangeSize) === null || _a === void 0 ? void 0 : _a.call(opts, nextColumnSize);
|
|
67
|
-
|
|
68
|
-
if (opts.columnSize) {
|
|
69
|
-
if (pipeline.ref) {
|
|
70
|
-
pipeline.ref.current.lastOptColumnSize = nextColumnSize; // 这里记录由列宽拖拽导致的opts.columnSize变化,避免重复渲染
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
65
|
});
|
|
74
66
|
};
|
|
75
67
|
|
|
76
68
|
var handleDoubleClick = function handleDoubleClick(e, col) {
|
|
77
|
-
|
|
69
|
+
var _a;
|
|
70
|
+
|
|
71
|
+
(_a = opts.doubleClickCallback) === null || _a === void 0 ? void 0 : _a.call(opts, e, col);
|
|
78
72
|
};
|
|
79
73
|
|
|
80
74
|
var handleMouseDown = function handleMouseDown(e, col) {
|
|
@@ -82,7 +76,14 @@ export function columnResize() {
|
|
|
82
76
|
var changedColumnSize = {};
|
|
83
77
|
var startX = e.clientX;
|
|
84
78
|
var children = col.children,
|
|
85
|
-
code = col.code
|
|
79
|
+
code = col.code,
|
|
80
|
+
_col$features = col.features,
|
|
81
|
+
features = _col$features === void 0 ? {} : _col$features;
|
|
82
|
+
var minWidth = features.minWidth,
|
|
83
|
+
maxWidth = features.maxWidth;
|
|
84
|
+
var realMinSize = typeof minWidth === 'number' ? minWidth : minSize;
|
|
85
|
+
var realMaxSize = typeof maxWidth === 'number' ? maxWidth : maxSize;
|
|
86
|
+
var columnSize = pipeline.getFeatureOptions(COLUMN_SIZE_KEY);
|
|
86
87
|
var recordColumnSize = columnSize;
|
|
87
88
|
e.stopPropagation();
|
|
88
89
|
var nextSize$ = fromEvent(window, 'mousemove').pipe(op.takeUntil(fromEvent(window, 'mouseup')), op.map(function (e) {
|
|
@@ -105,17 +106,17 @@ export function columnResize() {
|
|
|
105
106
|
var currentDeltaWidth = Math.round(deltaSum * startSize / childrenWidthSum);
|
|
106
107
|
|
|
107
108
|
if (index < leafChildColumns.length - 1) {
|
|
108
|
-
nextColumnSize[code] = clamp(
|
|
109
|
+
nextColumnSize[code] = clamp(realMinSize, startSize + currentDeltaWidth, realMaxSize);
|
|
109
110
|
changedColumnSize[code] = nextColumnSize[code];
|
|
110
111
|
deltaRemaining -= currentDeltaWidth;
|
|
111
112
|
} else {
|
|
112
|
-
nextColumnSize[code] = clamp(
|
|
113
|
+
nextColumnSize[code] = clamp(realMinSize, startSize + deltaRemaining, realMaxSize);
|
|
113
114
|
changedColumnSize[code] = nextColumnSize[code];
|
|
114
115
|
}
|
|
115
116
|
});
|
|
116
117
|
} else {
|
|
117
118
|
var startSize = columnSize[code];
|
|
118
|
-
nextColumnSize[code] = clamp(
|
|
119
|
+
nextColumnSize[code] = clamp(realMinSize, startSize + deltaSum, realMaxSize);
|
|
119
120
|
changedColumnSize[code] = nextColumnSize[code];
|
|
120
121
|
}
|
|
121
122
|
|
|
@@ -123,7 +124,17 @@ export function columnResize() {
|
|
|
123
124
|
return nextColumnSize;
|
|
124
125
|
}));
|
|
125
126
|
nextSize$.subscribe({
|
|
126
|
-
next:
|
|
127
|
+
next: function next(nextColumnSize) {
|
|
128
|
+
onChangeSize(nextColumnSize); // 由于COLUMN_RESIZE_KEY记录的是全量的列宽,此处记录被改变过的列宽
|
|
129
|
+
|
|
130
|
+
var resizedColumnSet = pipeline.getFeatureOptions(RESIZED_COLUMN_KEY) || new _Set();
|
|
131
|
+
|
|
132
|
+
_Object$keys(changedColumnSize).forEach(function (code) {
|
|
133
|
+
resizedColumnSet.add(code, changedColumnSize[code]);
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
pipeline.setFeatureOptions(RESIZED_COLUMN_KEY, resizedColumnSet);
|
|
137
|
+
},
|
|
127
138
|
complete: function complete() {
|
|
128
139
|
var _context;
|
|
129
140
|
|
|
@@ -44,28 +44,34 @@ export function multiSelect() {
|
|
|
44
44
|
/** 所有有效的 keys(disable 状态为 false) */
|
|
45
45
|
|
|
46
46
|
var allKeys = [];
|
|
47
|
+
var set = new _Set(value);
|
|
48
|
+
var isAllChecked = set.size !== 0; // 当前不存在选中则默认为false
|
|
49
|
+
|
|
50
|
+
var isAnyChecked = false;
|
|
47
51
|
var flatDataSource = collectNodes(dataSource);
|
|
48
52
|
flatDataSource.forEach(function (row, rowIndex) {
|
|
49
53
|
var rowKey = internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
50
54
|
fullKeySet.add(rowKey); // 在 allKeys 中排除被禁用的 key
|
|
51
55
|
|
|
52
56
|
if (!isDisabled(row, rowIndex)) {
|
|
53
|
-
allKeys.push(rowKey);
|
|
57
|
+
allKeys.push(rowKey); // 存在一个非选中,则不再进行判断
|
|
58
|
+
|
|
59
|
+
if (isAllChecked) {
|
|
60
|
+
isAllChecked = set.has(rowKey);
|
|
61
|
+
} // 存在一个选中,则不再进行判断
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
if (!isAnyChecked) {
|
|
65
|
+
isAnyChecked = set.has(rowKey);
|
|
66
|
+
}
|
|
54
67
|
}
|
|
55
|
-
});
|
|
56
|
-
var set = new _Set(value); // todo: 暂使用hidden隐藏选择列 后续增加配置
|
|
68
|
+
}); // todo: 暂使用hidden隐藏选择列 后续增加配置
|
|
57
69
|
|
|
58
70
|
var hiddenSelectColumn = opts.checkboxColumn && opts.checkboxColumn.hidden === true;
|
|
59
71
|
|
|
60
72
|
if (!hiddenSelectColumn) {
|
|
61
73
|
var _context;
|
|
62
74
|
|
|
63
|
-
var isAllChecked = allKeys.length > 0 && allKeys.every(function (key) {
|
|
64
|
-
return set.has(key);
|
|
65
|
-
});
|
|
66
|
-
var isAnyChecked = allKeys.some(function (key) {
|
|
67
|
-
return set.has(key);
|
|
68
|
-
});
|
|
69
75
|
var defaultCheckboxColumnTitle = /*#__PURE__*/React.createElement(Checkbox, {
|
|
70
76
|
checked: isAllChecked,
|
|
71
77
|
indeterminate: !isAllChecked && isAnyChecked,
|
|
@@ -65,16 +65,16 @@ export function rangeSelection(opts) {
|
|
|
65
65
|
|
|
66
66
|
if (clickCell) {
|
|
67
67
|
if (event.shiftKey) {
|
|
68
|
-
var _lastClickCell = pipeline.
|
|
68
|
+
var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
|
|
69
69
|
|
|
70
70
|
if (_lastClickCell) {
|
|
71
71
|
setRangeSelection(_lastClickCell, clickCell);
|
|
72
72
|
} else {
|
|
73
73
|
// 第一次进来就按住shift键,这时候要记住点击的单元格
|
|
74
|
-
pipeline.
|
|
74
|
+
pipeline.setFeatureOptions(lastClickCellKey, clickCell);
|
|
75
75
|
}
|
|
76
76
|
} else {
|
|
77
|
-
pipeline.
|
|
77
|
+
pipeline.setFeatureOptions(lastClickCellKey, clickCell);
|
|
78
78
|
setRangeSelection(clickCell, clickCell);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
@@ -171,6 +171,10 @@ export function sort() {
|
|
|
171
171
|
return dataSource;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
+
if (sortMap.size === 0) {
|
|
175
|
+
return dataSource;
|
|
176
|
+
}
|
|
177
|
+
|
|
174
178
|
var sortColumnsMap = new _Map(_mapInstanceProperty(_context = _filterInstanceProperty(_context2 = collectNodes(columns, 'leaf-only')).call(_context2, function (col) {
|
|
175
179
|
var _a, _b;
|
|
176
180
|
|
|
@@ -300,8 +300,9 @@ export function useTablePipeline(ctx) {
|
|
|
300
300
|
state = _useState2[0],
|
|
301
301
|
setState = _useState2[1];
|
|
302
302
|
|
|
303
|
-
var ref = useRef({
|
|
304
|
-
|
|
303
|
+
var ref = useRef({
|
|
304
|
+
featureOptions: {}
|
|
305
|
+
});
|
|
305
306
|
return new TablePipeline({
|
|
306
307
|
state: state,
|
|
307
308
|
setState: setState,
|
package/lib/table/base/styles.js
CHANGED
|
@@ -128,7 +128,7 @@ var defaultCSSVariables = {
|
|
|
128
128
|
'--row-height': '48px',
|
|
129
129
|
'--color': '#333',
|
|
130
130
|
'--bgcolor': 'white',
|
|
131
|
-
'--hover-bgcolor': 'var(--hover-color, #
|
|
131
|
+
'--hover-bgcolor': 'var(--hover-color, #f5f5f5)',
|
|
132
132
|
'--highlight-bgcolor': '#eee',
|
|
133
133
|
'--primary-color': '#5582F3',
|
|
134
134
|
'--primary-color-level1': 'rgb(242, 248, 255)',
|
|
@@ -85,6 +85,6 @@ var icons = {
|
|
|
85
85
|
};
|
|
86
86
|
exports.icons = icons;
|
|
87
87
|
|
|
88
|
-
var ContextMenuStyleWrap = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n &.", "{\n border: 1px solid #e9ecf1;\n border-radius: 2px;\n background-color: #Fff;\n box-shadow: 0px 0px 5px 0px rgb(154 154 154 / 50%);\n cursor: default;\n font-size:
|
|
88
|
+
var ContextMenuStyleWrap = _styledComponents.default.div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n &.", "{\n border: 1px solid #e9ecf1;\n border-radius: 2px;\n background-color: #Fff;\n box-shadow: 0px 0px 5px 0px rgb(154 154 154 / 50%);\n cursor: default;\n font-size: 12px;\n position:absolute;\n z-index: 1050;\n max-width: 600px;\n padding: 8px 0;\n }\n\n .", "{\n width:100%;\n display: table;\n }\n\n .", " .", "{\n display: table-row;\n color: #212121;\n }\n\n .", " .", "{\n background-color: var(--hover-bgcolor);\n }\n\n .", " .", " .", "{\n display: table-cell;\n padding: 8px 12px;\n max-width: 576px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n line-height: 16px;\n }\n .", " .", ".", "{\n opacity: .5;\n }\n\n"])), _styles.MenuClasses.menu, _styles.MenuClasses.menuList, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOptionActive, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuOptionText, _styles.MenuClasses.menuList, _styles.MenuClasses.menuOption, _styles.MenuClasses.menuOptionDisable);
|
|
89
89
|
|
|
90
90
|
exports.ContextMenuStyleWrap = ContextMenuStyleWrap;
|