@kdcloudjs/table 1.1.5-canary.9 → 1.1.6-0
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 +295 -121
- 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/base/table.js +2 -2
- package/es/table/common-views.js +1 -1
- package/es/table/pipeline/features/autoFill.js +146 -45
- package/es/table/pipeline/features/columnResizeWidth.d.ts +3 -0
- package/es/table/pipeline/features/columnResizeWidth.js +36 -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/base/table.js +2 -2
- package/lib/table/common-views.js +1 -1
- package/lib/table/pipeline/features/autoFill.js +146 -46
- package/lib/table/pipeline/features/columnResizeWidth.d.ts +3 -0
- package/lib/table/pipeline/features/columnResizeWidth.js +40 -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 +3 -3
|
@@ -7,81 +7,181 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.tableWidthKey = exports.autoFillTableWidth = exports.FILL_COLUMN_CODE = void 0;
|
|
9
9
|
|
|
10
|
+
var _symbol = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/symbol"));
|
|
11
|
+
|
|
12
|
+
var _maxSafeInteger = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/number/max-safe-integer"));
|
|
13
|
+
|
|
10
14
|
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
11
15
|
|
|
12
16
|
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
13
17
|
|
|
14
18
|
var _splice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/splice"));
|
|
15
19
|
|
|
20
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/map"));
|
|
21
|
+
|
|
22
|
+
var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
|
|
23
|
+
|
|
16
24
|
var _calculations = require("../../base/calculations");
|
|
17
25
|
|
|
18
26
|
var _utils = require("../../utils");
|
|
19
27
|
|
|
20
28
|
var _styles = require("../../base/styles");
|
|
21
29
|
|
|
30
|
+
var _columnResizeWidth = require("./columnResizeWidth");
|
|
31
|
+
|
|
22
32
|
var FILL_COLUMN_CODE = '$_fill_column_&';
|
|
23
33
|
exports.FILL_COLUMN_CODE = FILL_COLUMN_CODE;
|
|
24
34
|
var tableWidthKey = 'tableWidth';
|
|
25
35
|
exports.tableWidthKey = tableWidthKey;
|
|
26
|
-
var
|
|
36
|
+
var FLEX_COLUMN_COUNT = (0, _symbol.default)('flexCount');
|
|
27
37
|
|
|
28
38
|
var autoFillTableWidth = function autoFillTableWidth() {
|
|
29
39
|
return function (pipeline) {
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
var flexColumnResult = findFlexColumns(pipeline);
|
|
41
|
+
var flexCount = flexColumnResult.get(FLEX_COLUMN_COUNT);
|
|
42
|
+
|
|
43
|
+
if (flexCount) {
|
|
44
|
+
// 设置了flex宽度,flex列平分剩余宽度
|
|
45
|
+
var remainingWidth = getTableRemainingWidth(pipeline) || 0;
|
|
46
|
+
|
|
47
|
+
if (remainingWidth > 0) {
|
|
48
|
+
// 保存剩余的flex总和和剩余宽度总和宽度
|
|
49
|
+
var residualFlexCount = flexCount;
|
|
50
|
+
var residualFlexWidth = remainingWidth;
|
|
51
|
+
var columnSize = pipeline.getFeatureOptions(_columnResizeWidth.COLUMN_SIZE_KEY) || {};
|
|
52
|
+
pipeline.mapColumns((0, _utils.makeRecursiveMapper)(function (col, recursiveFlatMapInfo) {
|
|
53
|
+
var isLeaf = recursiveFlatMapInfo.isLeaf;
|
|
54
|
+
|
|
55
|
+
if (isLeaf && isValidFlexColumn(col, pipeline)) {
|
|
56
|
+
var code = col.code,
|
|
57
|
+
_col$features = col.features,
|
|
58
|
+
features = _col$features === void 0 ? {} : _col$features;
|
|
59
|
+
var flex = features.flex,
|
|
60
|
+
_features$minWidth = features.minWidth,
|
|
61
|
+
minWidth = _features$minWidth === void 0 ? 0 : _features$minWidth,
|
|
62
|
+
_features$maxWidth = features.maxWidth,
|
|
63
|
+
maxWidth = _features$maxWidth === void 0 ? _maxSafeInteger.default : _features$maxWidth;
|
|
64
|
+
var usedRemainingWidth = Math.floor(remainingWidth * flex / flexCount);
|
|
65
|
+
var preColWidth = col.width; // 如果当前已经是最后一个flex列,将剩余的宽度添加到该列,其他计算相应的列
|
|
66
|
+
|
|
67
|
+
col.width = clamp(minWidth, preColWidth + (residualFlexCount === flex ? residualFlexWidth : usedRemainingWidth), maxWidth);
|
|
68
|
+
residualFlexCount -= flex;
|
|
69
|
+
residualFlexWidth -= col.width - preColWidth;
|
|
70
|
+
columnSize[code] = col.width;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return col;
|
|
74
|
+
}));
|
|
75
|
+
pipeline.setFeatureOptions(_columnResizeWidth.COLUMN_SIZE_KEY, columnSize);
|
|
76
|
+
}
|
|
38
77
|
} else {
|
|
39
|
-
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
78
|
+
// 未设置了flex宽度,创建占位列
|
|
79
|
+
var columns = pipeline.getColumns();
|
|
80
|
+
var fillColumns = (0, _find.default)(columns).call(columns, function (col) {
|
|
81
|
+
return col.code === FILL_COLUMN_CODE;
|
|
82
|
+
});
|
|
83
|
+
var width = getTableRemainingWidth(pipeline) || 0;
|
|
84
|
+
|
|
85
|
+
if (fillColumns) {
|
|
86
|
+
fillColumns.width = width;
|
|
87
|
+
} else {
|
|
88
|
+
var rightNestedLockCount = (0, _calculations.getLeftNestedLockCount)((0, _slice.default)(columns).call(columns).reverse());
|
|
89
|
+
var spliceIndex = columns.length - rightNestedLockCount;
|
|
90
|
+
var _fillColumns = {
|
|
91
|
+
name: '',
|
|
92
|
+
code: FILL_COLUMN_CODE,
|
|
93
|
+
width: width,
|
|
94
|
+
features: {
|
|
95
|
+
resizeable: false
|
|
96
|
+
},
|
|
97
|
+
getCellProps: function getCellProps(value, record, rowIndex) {
|
|
98
|
+
return {
|
|
99
|
+
className: _styles.Classes.emptyColCell
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
(0, _splice.default)(columns).call(columns, spliceIndex || columns.length, 0, _fillColumns);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
pipeline.columns(columns);
|
|
55
107
|
}
|
|
56
108
|
|
|
57
|
-
pipeline.columns(columns);
|
|
58
|
-
setAutoFillWidth(pipeline);
|
|
59
109
|
return pipeline;
|
|
110
|
+
|
|
111
|
+
function findFlexColumns(pipeline) {
|
|
112
|
+
var result = new _map.default([[FLEX_COLUMN_COUNT, 0]]);
|
|
113
|
+
dfs(pipeline.getColumns(), result);
|
|
114
|
+
return result;
|
|
115
|
+
|
|
116
|
+
function dfs(columns, result) {
|
|
117
|
+
columns.forEach(function (col) {
|
|
118
|
+
if ((0, _utils.isLeafNode)(col)) {
|
|
119
|
+
if (isValidFlexColumn(col, pipeline)) {
|
|
120
|
+
result.set(FLEX_COLUMN_COUNT, result.get(FLEX_COLUMN_COUNT) + col.features.flex);
|
|
121
|
+
}
|
|
122
|
+
} else {
|
|
123
|
+
dfs(col.children, result);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
}
|
|
60
128
|
};
|
|
61
129
|
};
|
|
62
130
|
|
|
63
131
|
exports.autoFillTableWidth = autoFillTableWidth;
|
|
64
132
|
|
|
65
|
-
|
|
133
|
+
function getColumnWidthSum(pipeline) {
|
|
134
|
+
return dfs(pipeline.getColumns());
|
|
135
|
+
|
|
136
|
+
function dfs(columns) {
|
|
137
|
+
return columns.reduce(function (acc, col) {
|
|
138
|
+
var width = col.width,
|
|
139
|
+
code = col.code;
|
|
140
|
+
|
|
141
|
+
if ((0, _utils.isLeafNode)(col) && code !== FILL_COLUMN_CODE) {
|
|
142
|
+
var resizeColumn = pipeline.getFeatureOptions(_columnResizeWidth.COLUMN_SIZE_KEY);
|
|
143
|
+
return acc + (resizeColumn && resizeColumn[code] || width);
|
|
144
|
+
} else {
|
|
145
|
+
return acc + dfs(col.children);
|
|
146
|
+
}
|
|
147
|
+
}, 0);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
function getTableRemainingWidth(pipeline) {
|
|
66
152
|
var tableWidth = pipeline.getStateAtKey(tableWidthKey);
|
|
67
153
|
if (!tableWidth) return;
|
|
68
|
-
var
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
154
|
+
var remainingWidth = Math.floor(tableWidth - getColumnWidthSum(pipeline));
|
|
155
|
+
return remainingWidth > 0 ? remainingWidth : 0;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
function isAfterLastResizeCol(column, pipeline) {
|
|
159
|
+
var _context, _context2;
|
|
160
|
+
|
|
161
|
+
var lastResizedColumnCode = pipeline.getFeatureOptions(_columnResizeWidth.LAST_RESIZED_COLUMN_KEY);
|
|
162
|
+
if (lastResizedColumnCode === undefined) return true;
|
|
163
|
+
var lastResizedColumnIndex = (0, _findIndex.default)(_context = pipeline.getColumns()).call(_context, function (col) {
|
|
164
|
+
return col.code === lastResizedColumnCode;
|
|
165
|
+
});
|
|
166
|
+
var colIndex = (0, _findIndex.default)(_context2 = pipeline.getColumns()).call(_context2, function (col) {
|
|
167
|
+
return col.code === column.code;
|
|
168
|
+
});
|
|
169
|
+
return colIndex > lastResizedColumnIndex;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
function isValidFlexColumn(col, pipeline) {
|
|
173
|
+
var _a;
|
|
174
|
+
|
|
175
|
+
var resizeColumn = pipeline.getFeatureOptions(_columnResizeWidth.RESIZED_COLUMN_KEY); // 拖拽列自动禁止flex
|
|
176
|
+
|
|
177
|
+
if (resizeColumn === null || resizeColumn === void 0 ? void 0 : resizeColumn.has(col.code)) {
|
|
178
|
+
return false;
|
|
179
|
+
}
|
|
77
180
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
fillColumnWidth = fillColumnWidth > 0 ? fillColumnWidth : 0;
|
|
82
|
-
var preWidth = pipeline.getStateAtKey(fillColumnWidthKey, 0);
|
|
181
|
+
var flex = (_a = col.features) === null || _a === void 0 ? void 0 : _a.flex;
|
|
182
|
+
return typeof flex === 'number' && flex > 0 && isAfterLastResizeCol(col, pipeline);
|
|
183
|
+
}
|
|
83
184
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
};
|
|
185
|
+
function clamp(min, x, max) {
|
|
186
|
+
return Math.max(min, Math.min(max, x));
|
|
187
|
+
}
|
|
@@ -20,5 +20,8 @@ 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";
|
|
25
|
+
export declare const LAST_RESIZED_COLUMN_KEY = "lastResizedColumn";
|
|
23
26
|
export declare function columnResize(opts?: ColumnResizeOptions): (pipeline: TablePipeline) => TablePipeline;
|
|
24
27
|
export {};
|
|
@@ -11,12 +11,15 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", {
|
|
12
12
|
value: true
|
|
13
13
|
});
|
|
14
|
+
exports.RESIZED_COLUMN_KEY = exports.LAST_RESIZED_COLUMN_KEY = exports.COLUMN_SIZE_KEY = void 0;
|
|
14
15
|
exports.columnResize = columnResize;
|
|
15
16
|
|
|
16
|
-
var
|
|
17
|
+
var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
|
|
17
18
|
|
|
18
19
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/keys"));
|
|
19
20
|
|
|
21
|
+
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
22
|
+
|
|
20
23
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
21
24
|
|
|
22
25
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/taggedTemplateLiteral"));
|
|
@@ -53,17 +56,24 @@ function disableSelect(event) {
|
|
|
53
56
|
event.preventDefault();
|
|
54
57
|
}
|
|
55
58
|
|
|
59
|
+
var stateKey = 'columnResize';
|
|
60
|
+
var COLUMN_SIZE_KEY = 'columnResize';
|
|
61
|
+
exports.COLUMN_SIZE_KEY = COLUMN_SIZE_KEY;
|
|
62
|
+
var RESIZED_COLUMN_KEY = 'resizedColumn';
|
|
63
|
+
exports.RESIZED_COLUMN_KEY = RESIZED_COLUMN_KEY;
|
|
64
|
+
var LAST_RESIZED_COLUMN_KEY = 'lastResizedColumn';
|
|
65
|
+
exports.LAST_RESIZED_COLUMN_KEY = LAST_RESIZED_COLUMN_KEY;
|
|
66
|
+
|
|
56
67
|
function columnResize() {
|
|
57
68
|
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
58
69
|
|
|
59
70
|
var _a, _b, _c;
|
|
60
71
|
|
|
61
|
-
var stateKey = 'columnResize';
|
|
62
72
|
var minSize = (_a = opts.minSize) !== null && _a !== void 0 ? _a : 60;
|
|
63
73
|
var fallbackSize = (_b = opts.fallbackSize) !== null && _b !== void 0 ? _b : 150;
|
|
64
74
|
var maxSize = (_c = opts.maxSize) !== null && _c !== void 0 ? _c : 1000;
|
|
65
75
|
return function columnResizeFeature(pipeline) {
|
|
66
|
-
var _a, _b
|
|
76
|
+
var _a, _b;
|
|
67
77
|
|
|
68
78
|
var columnSize = (_b = (_a = opts.columnSize) !== null && _a !== void 0 ? _a : pipeline.getStateAtKey(stateKey)) !== null && _b !== void 0 ? _b : {};
|
|
69
79
|
var leafColumns = (0, _utils.collectNodes)(pipeline.getColumns(), 'leaf-only');
|
|
@@ -78,15 +88,10 @@ function columnResize() {
|
|
|
78
88
|
columnSize[code] = fallbackSize;
|
|
79
89
|
}
|
|
80
90
|
}
|
|
81
|
-
}); //
|
|
82
|
-
|
|
83
|
-
if (!pipeline.getStateAtKey(stateKey) || ((_c = pipeline.ref) === null || _c === void 0 ? void 0 : _c.current.lastOptColumnSize) !== opts.columnSize) {
|
|
84
|
-
pipeline.setStateAtKey(stateKey, columnSize);
|
|
85
|
-
}
|
|
91
|
+
}); // 实时存储一份最新的columnSize,与autoFill共用一份数据
|
|
92
|
+
// 存在state里可能存到取不到最新的
|
|
86
93
|
|
|
87
|
-
|
|
88
|
-
pipeline.ref.current.lastOptColumnSize = opts.columnSize;
|
|
89
|
-
}
|
|
94
|
+
pipeline.setFeatureOptions(COLUMN_SIZE_KEY, columnSize);
|
|
90
95
|
|
|
91
96
|
var onChangeSize = function onChangeSize(nextColumnSize) {
|
|
92
97
|
window.requestAnimationFrame(function () {
|
|
@@ -94,17 +99,13 @@ function columnResize() {
|
|
|
94
99
|
|
|
95
100
|
pipeline.setStateAtKey(stateKey, nextColumnSize);
|
|
96
101
|
(_a = opts === null || opts === void 0 ? void 0 : opts.onChangeSize) === null || _a === void 0 ? void 0 : _a.call(opts, nextColumnSize);
|
|
97
|
-
|
|
98
|
-
if (opts.columnSize) {
|
|
99
|
-
if (pipeline.ref) {
|
|
100
|
-
pipeline.ref.current.lastOptColumnSize = nextColumnSize; // 这里记录由列宽拖拽导致的opts.columnSize变化,避免重复渲染
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
102
|
});
|
|
104
103
|
};
|
|
105
104
|
|
|
106
105
|
var handleDoubleClick = function handleDoubleClick(e, col) {
|
|
107
|
-
|
|
106
|
+
var _a;
|
|
107
|
+
|
|
108
|
+
(_a = opts.doubleClickCallback) === null || _a === void 0 ? void 0 : _a.call(opts, e, col);
|
|
108
109
|
};
|
|
109
110
|
|
|
110
111
|
var handleMouseDown = function handleMouseDown(e, col) {
|
|
@@ -112,7 +113,14 @@ function columnResize() {
|
|
|
112
113
|
var changedColumnSize = {};
|
|
113
114
|
var startX = e.clientX;
|
|
114
115
|
var children = col.children,
|
|
115
|
-
code = col.code
|
|
116
|
+
code = col.code,
|
|
117
|
+
_col$features = col.features,
|
|
118
|
+
features = _col$features === void 0 ? {} : _col$features;
|
|
119
|
+
var minWidth = features.minWidth,
|
|
120
|
+
maxWidth = features.maxWidth;
|
|
121
|
+
var realMinSize = typeof minWidth === 'number' ? minWidth : minSize;
|
|
122
|
+
var realMaxSize = typeof maxWidth === 'number' ? maxWidth : maxSize;
|
|
123
|
+
var columnSize = pipeline.getFeatureOptions(COLUMN_SIZE_KEY);
|
|
116
124
|
var recordColumnSize = columnSize;
|
|
117
125
|
e.stopPropagation();
|
|
118
126
|
var nextSize$ = (0, _rxjs.fromEvent)(window, 'mousemove').pipe(op.takeUntil((0, _rxjs.fromEvent)(window, 'mouseup')), op.map(function (e) {
|
|
@@ -133,17 +141,17 @@ function columnResize() {
|
|
|
133
141
|
var currentDeltaWidth = Math.round(deltaSum * startSize / childrenWidthSum);
|
|
134
142
|
|
|
135
143
|
if (index < leafChildColumns.length - 1) {
|
|
136
|
-
nextColumnSize[code] = clamp(
|
|
144
|
+
nextColumnSize[code] = clamp(realMinSize, startSize + currentDeltaWidth, realMaxSize);
|
|
137
145
|
changedColumnSize[code] = nextColumnSize[code];
|
|
138
146
|
deltaRemaining -= currentDeltaWidth;
|
|
139
147
|
} else {
|
|
140
|
-
nextColumnSize[code] = clamp(
|
|
148
|
+
nextColumnSize[code] = clamp(realMinSize, startSize + deltaRemaining, realMaxSize);
|
|
141
149
|
changedColumnSize[code] = nextColumnSize[code];
|
|
142
150
|
}
|
|
143
151
|
});
|
|
144
152
|
} else {
|
|
145
153
|
var startSize = columnSize[code];
|
|
146
|
-
nextColumnSize[code] = clamp(
|
|
154
|
+
nextColumnSize[code] = clamp(realMinSize, startSize + deltaSum, realMaxSize);
|
|
147
155
|
changedColumnSize[code] = nextColumnSize[code];
|
|
148
156
|
}
|
|
149
157
|
|
|
@@ -151,7 +159,16 @@ function columnResize() {
|
|
|
151
159
|
return nextColumnSize;
|
|
152
160
|
}));
|
|
153
161
|
nextSize$.subscribe({
|
|
154
|
-
next:
|
|
162
|
+
next: function next(nextColumnSize) {
|
|
163
|
+
onChangeSize(nextColumnSize); // 由于COLUMN_RESIZE_KEY记录的是全量的列宽,此处记录被改变过的列宽
|
|
164
|
+
|
|
165
|
+
var resizedColumnSet = pipeline.getFeatureOptions(RESIZED_COLUMN_KEY) || new _set.default();
|
|
166
|
+
(0, _keys.default)(changedColumnSize).forEach(function (code) {
|
|
167
|
+
resizedColumnSet.add(code, changedColumnSize[code]);
|
|
168
|
+
});
|
|
169
|
+
pipeline.setFeatureOptions(RESIZED_COLUMN_KEY, resizedColumnSet);
|
|
170
|
+
pipeline.setFeatureOptions(LAST_RESIZED_COLUMN_KEY, code);
|
|
171
|
+
},
|
|
155
172
|
complete: function complete() {
|
|
156
173
|
var _context;
|
|
157
174
|
|
|
@@ -61,6 +61,10 @@ function multiSelect() {
|
|
|
61
61
|
/** 所有有效的 keys(disable 状态为 false) */
|
|
62
62
|
|
|
63
63
|
var allKeys = [];
|
|
64
|
+
var set = new _set.default(value);
|
|
65
|
+
var isAllChecked = set.size !== 0; // 当前不存在选中则默认为false
|
|
66
|
+
|
|
67
|
+
var isAnyChecked = false;
|
|
64
68
|
var flatDataSource = (0, _utils.collectNodes)(dataSource);
|
|
65
69
|
flatDataSource.forEach(function (row, rowIndex) {
|
|
66
70
|
var rowKey = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
@@ -68,23 +72,24 @@ function multiSelect() {
|
|
|
68
72
|
fullKeySet.add(rowKey); // 在 allKeys 中排除被禁用的 key
|
|
69
73
|
|
|
70
74
|
if (!isDisabled(row, rowIndex)) {
|
|
71
|
-
allKeys.push(rowKey);
|
|
75
|
+
allKeys.push(rowKey); // 存在一个非选中,则不再进行判断
|
|
76
|
+
|
|
77
|
+
if (isAllChecked) {
|
|
78
|
+
isAllChecked = set.has(rowKey);
|
|
79
|
+
} // 存在一个选中,则不再进行判断
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
if (!isAnyChecked) {
|
|
83
|
+
isAnyChecked = set.has(rowKey);
|
|
84
|
+
}
|
|
72
85
|
}
|
|
73
|
-
});
|
|
74
|
-
var set = new _set.default(value); // todo: 暂使用hidden隐藏选择列 后续增加配置
|
|
86
|
+
}); // todo: 暂使用hidden隐藏选择列 后续增加配置
|
|
75
87
|
|
|
76
88
|
var hiddenSelectColumn = opts.checkboxColumn && opts.checkboxColumn.hidden === true;
|
|
77
89
|
|
|
78
90
|
if (!hiddenSelectColumn) {
|
|
79
91
|
var _context;
|
|
80
92
|
|
|
81
|
-
var isAllChecked = allKeys.length > 0 && allKeys.every(function (key) {
|
|
82
|
-
return set.has(key);
|
|
83
|
-
});
|
|
84
|
-
var isAnyChecked = allKeys.some(function (key) {
|
|
85
|
-
return set.has(key);
|
|
86
|
-
});
|
|
87
|
-
|
|
88
93
|
var defaultCheckboxColumnTitle = /*#__PURE__*/_react.default.createElement(Checkbox, {
|
|
89
94
|
checked: isAllChecked,
|
|
90
95
|
indeterminate: !isAllChecked && isAnyChecked,
|
|
@@ -93,16 +93,16 @@ function rangeSelection(opts) {
|
|
|
93
93
|
|
|
94
94
|
if (clickCell) {
|
|
95
95
|
if (event.shiftKey) {
|
|
96
|
-
var _lastClickCell = pipeline.
|
|
96
|
+
var _lastClickCell = pipeline.getFeatureOptions(lastClickCellKey);
|
|
97
97
|
|
|
98
98
|
if (_lastClickCell) {
|
|
99
99
|
setRangeSelection(_lastClickCell, clickCell);
|
|
100
100
|
} else {
|
|
101
101
|
// 第一次进来就按住shift键,这时候要记住点击的单元格
|
|
102
|
-
pipeline.
|
|
102
|
+
pipeline.setFeatureOptions(lastClickCellKey, clickCell);
|
|
103
103
|
}
|
|
104
104
|
} else {
|
|
105
|
-
pipeline.
|
|
105
|
+
pipeline.setFeatureOptions(lastClickCellKey, clickCell);
|
|
106
106
|
setRangeSelection(clickCell, clickCell);
|
|
107
107
|
}
|
|
108
108
|
}
|
|
@@ -198,6 +198,10 @@ function sort() {
|
|
|
198
198
|
return dataSource;
|
|
199
199
|
}
|
|
200
200
|
|
|
201
|
+
if (sortMap.size === 0) {
|
|
202
|
+
return dataSource;
|
|
203
|
+
}
|
|
204
|
+
|
|
201
205
|
var sortColumnsMap = new _map.default((0, _map2.default)(_context = (0, _filter.default)(_context2 = (0, _utils.collectNodes)(columns, 'leaf-only')).call(_context2, function (col) {
|
|
202
206
|
var _a, _b;
|
|
203
207
|
|
|
@@ -318,8 +318,9 @@ function useTablePipeline(ctx) {
|
|
|
318
318
|
state = _useState2[0],
|
|
319
319
|
setState = _useState2[1];
|
|
320
320
|
|
|
321
|
-
var ref = (0, _react.useRef)({
|
|
322
|
-
|
|
321
|
+
var ref = (0, _react.useRef)({
|
|
322
|
+
featureOptions: {}
|
|
323
|
+
});
|
|
323
324
|
return new TablePipeline({
|
|
324
325
|
state: state,
|
|
325
326
|
setState: setState,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kdcloudjs/table",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6-0",
|
|
4
4
|
"description": "金蝶 react table 组件",
|
|
5
5
|
"title": "table",
|
|
6
6
|
"keywords": [
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"test:update": "jest --config .jest.js --cache=false -u",
|
|
55
55
|
"test:ci": "jest --config .jest.js --coverage --ci --update-snapshot",
|
|
56
56
|
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s --skip-unstable",
|
|
57
|
-
"pub": "npm run
|
|
58
|
-
"pub:
|
|
57
|
+
"pub": "npm run build && cross-env PUB_ENV=pub np --no-cleanup --no-tests",
|
|
58
|
+
"pub:beta": "npm run test:all && npm run build && cross-env PUB_ENV=pub np --no-cleanup --anyBranch --no-tests --tag=beta",
|
|
59
59
|
"new": "node scripts/create-component.js",
|
|
60
60
|
"kd-ui": "npm install @kingdee-ui/kui --registry http://npm.kingdee.com/"
|
|
61
61
|
},
|