@kdcloudjs/table 1.2.2-canary.17 → 1.2.2-canary.18
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 +105 -48
- package/dist/@kdcloudjs/table.js.map +1 -1
- package/dist/@kdcloudjs/table.min.css +1 -1
- package/dist/@kdcloudjs/table.min.js +2 -2
- package/dist/@kdcloudjs/table.min.js.map +1 -1
- package/es/table/base/header.js +11 -7
- package/es/table/base/renderTemplates.js +1 -3
- package/es/table/base/styles.js +8 -4
- package/es/table/base/table.d.ts +1 -0
- package/es/table/base/table.js +6 -3
- package/es/table/interfaces.d.ts +19 -0
- package/es/table/pipeline/features/multiSelect.d.ts +3 -1
- package/es/table/pipeline/features/multiSelect.js +38 -15
- package/es/table/pipeline/features/singleSelect.d.ts +3 -1
- package/es/table/pipeline/features/singleSelect.js +35 -11
- package/es/table/utils/getTreeDepth.js +4 -1
- package/lib/table/base/header.js +11 -7
- package/lib/table/base/renderTemplates.js +1 -3
- package/lib/table/base/styles.js +8 -4
- package/lib/table/base/table.d.ts +1 -0
- package/lib/table/base/table.js +6 -3
- package/lib/table/interfaces.d.ts +19 -0
- package/lib/table/pipeline/features/multiSelect.d.ts +3 -1
- package/lib/table/pipeline/features/multiSelect.js +38 -15
- package/lib/table/pipeline/features/singleSelect.d.ts +3 -1
- package/lib/table/pipeline/features/singleSelect.js +35 -11
- package/lib/table/utils/getTreeDepth.js +4 -1
- package/package.json +1 -1
- package/CHANGELOG.md +0 -0
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArtColumn, selectRenderProps } from '../../interfaces';
|
|
2
3
|
import { TablePipeline } from '../pipeline';
|
|
3
4
|
export interface MultiSelectFeatureOptions {
|
|
4
5
|
/** 非受控用法:默认选中的值 */
|
|
@@ -23,5 +24,6 @@ export interface MultiSelectFeatureOptions {
|
|
|
23
24
|
clickArea?: 'checkbox' | 'cell' | 'row';
|
|
24
25
|
/** 是否对触发 onChange 的 click 事件调用 event.stopPropagation() */
|
|
25
26
|
stopClickEventPropagation?: boolean;
|
|
27
|
+
customRender?: (ctx: selectRenderProps) => React.ReactNode;
|
|
26
28
|
}
|
|
27
29
|
export declare function multiSelect(opts?: MultiSelectFeatureOptions): (pipeline: TablePipeline) => TablePipeline;
|
|
@@ -119,23 +119,46 @@ function multiSelect() {
|
|
|
119
119
|
var key = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
120
120
|
var selectValueSet = pipeline.getFeatureOptions(selectValueSetKey) || new _set.default();
|
|
121
121
|
var checked = selectValueSet.has(key);
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
if (opts.stopClickEventPropagation) {
|
|
133
|
-
nativeEvent.stopPropagation();
|
|
134
|
-
}
|
|
135
|
-
onCheckboxChange(checked, key, nativeEvent.shiftKey);
|
|
122
|
+
var disabled = isDisabled(row, rowIndex);
|
|
123
|
+
var defaultOnChange = clickArea === 'checkbox' ? function (arg1, arg2) {
|
|
124
|
+
var _a;
|
|
125
|
+
// 这里要同时兼容 antd 和 fusion 的用法
|
|
126
|
+
// fusion: arg2?.nativeEvent
|
|
127
|
+
// antd: arg1.nativeEvent
|
|
128
|
+
var nativeEvent = (_a = arg2 === null || arg2 === void 0 ? void 0 : arg2.nativeEvent) !== null && _a !== void 0 ? _a : arg1.nativeEvent;
|
|
129
|
+
if (nativeEvent) {
|
|
130
|
+
if (opts.stopClickEventPropagation) {
|
|
131
|
+
nativeEvent.stopPropagation();
|
|
136
132
|
}
|
|
137
|
-
|
|
133
|
+
onCheckboxChange(checked, key, nativeEvent.shiftKey);
|
|
134
|
+
}
|
|
135
|
+
} : undefined;
|
|
136
|
+
var defaultElement = /*#__PURE__*/_react.default.createElement(Checkbox, {
|
|
137
|
+
checked: checked,
|
|
138
|
+
disabled: disabled,
|
|
139
|
+
onChange: defaultOnChange
|
|
138
140
|
});
|
|
141
|
+
var ctx = {
|
|
142
|
+
type: 'multi',
|
|
143
|
+
row: row,
|
|
144
|
+
rowIndex: rowIndex,
|
|
145
|
+
rowKey: key,
|
|
146
|
+
checked: checked,
|
|
147
|
+
disabled: disabled,
|
|
148
|
+
defaultElement: defaultElement,
|
|
149
|
+
actions: {
|
|
150
|
+
select: function select() {
|
|
151
|
+
if (!checked) onCheckboxChange(false, key, false);
|
|
152
|
+
},
|
|
153
|
+
toggle: function toggle(batch) {
|
|
154
|
+
return onCheckboxChange(checked, key, !!batch);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
if (opts.customRender) {
|
|
159
|
+
return opts.customRender(ctx);
|
|
160
|
+
}
|
|
161
|
+
return defaultElement;
|
|
139
162
|
},
|
|
140
163
|
features: (0, _extends3.default)((0, _extends3.default)({}, (_l = opts.checkboxColumn) === null || _l === void 0 ? void 0 : _l.features), (0, _defineProperty2.default)({}, _utils.MULTI_SELECT_MARK_PROPNAME, true))
|
|
141
164
|
});
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { ArtColumn, selectRenderProps } from '../../interfaces';
|
|
2
3
|
import { TablePipeline } from '../pipeline';
|
|
3
4
|
export interface SingleSelectFeatureOptions {
|
|
4
5
|
/** 是否高亮被选中的行 */
|
|
@@ -19,5 +20,6 @@ export interface SingleSelectFeatureOptions {
|
|
|
19
20
|
radioPlacement?: 'start' | 'end';
|
|
20
21
|
/** 是否对触发 onChange 的 click 事件调用 event.stopPropagation() */
|
|
21
22
|
stopClickEventPropagation?: boolean;
|
|
23
|
+
customRender?: (ctx: selectRenderProps) => React.ReactNode;
|
|
22
24
|
}
|
|
23
25
|
export declare function singleSelect(opts?: SingleSelectFeatureOptions): (pipeline: TablePipeline) => TablePipeline;
|
|
@@ -61,18 +61,42 @@ function singleSelect() {
|
|
|
61
61
|
return null;
|
|
62
62
|
}
|
|
63
63
|
var rowKey = _internals.internals.safeGetRowKey(primaryKey, row, rowIndex);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
64
|
+
var checked = value === rowKey;
|
|
65
|
+
var disabled = isDisabled(row, rowIndex);
|
|
66
|
+
var defaultOnChange = clickArea === 'radio' ? function (arg1, arg2) {
|
|
67
|
+
var _a;
|
|
68
|
+
var nativeEvent = (_a = arg2 === null || arg2 === void 0 ? void 0 : arg2.nativeEvent) !== null && _a !== void 0 ? _a : arg1 === null || arg1 === void 0 ? void 0 : arg1.nativeEvent;
|
|
69
|
+
if (nativeEvent && opts.stopClickEventPropagation) {
|
|
70
|
+
nativeEvent.stopPropagation();
|
|
71
|
+
}
|
|
72
|
+
onChange(rowKey);
|
|
73
|
+
} : undefined;
|
|
74
|
+
var defaultElement = /*#__PURE__*/_react.default.createElement(Radio, {
|
|
75
|
+
checked: checked,
|
|
76
|
+
disabled: disabled,
|
|
77
|
+
onChange: defaultOnChange
|
|
75
78
|
});
|
|
79
|
+
var ctx = {
|
|
80
|
+
type: 'single',
|
|
81
|
+
row: row,
|
|
82
|
+
rowIndex: rowIndex,
|
|
83
|
+
rowKey: rowKey,
|
|
84
|
+
checked: checked,
|
|
85
|
+
disabled: disabled,
|
|
86
|
+
defaultElement: defaultElement,
|
|
87
|
+
actions: {
|
|
88
|
+
select: function select() {
|
|
89
|
+
return onChange(rowKey);
|
|
90
|
+
},
|
|
91
|
+
toggle: function toggle() {
|
|
92
|
+
return onChange(rowKey);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
if (opts.customRender) {
|
|
97
|
+
return opts.customRender(ctx);
|
|
98
|
+
}
|
|
99
|
+
return defaultElement;
|
|
76
100
|
},
|
|
77
101
|
features: (0, _extends3.default)((0, _extends3.default)({}, (_e = opts.radioColumn) === null || _e === void 0 ? void 0 : _e.features), (0, _defineProperty2.default)({}, _utils.SINGLE_SELECT_MARK_PROPNAME, true))
|
|
78
102
|
});
|
|
@@ -19,12 +19,15 @@ function getTreeDepth(nodes) {
|
|
|
19
19
|
dfs(nodes, 0);
|
|
20
20
|
return maxDepth;
|
|
21
21
|
function dfs(columns, depth) {
|
|
22
|
+
var _a;
|
|
22
23
|
var _iterator = _createForOfIteratorHelper(columns),
|
|
23
24
|
_step;
|
|
24
25
|
try {
|
|
25
26
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
26
27
|
var column = _step.value;
|
|
27
|
-
|
|
28
|
+
var isHeaderMerge = ((_a = column) === null || _a === void 0 ? void 0 : _a.isHeaderMerge) === true;
|
|
29
|
+
// 当列配置了 isHeaderMerge 时,将其视作“可视叶子”,不再深入子层计算深度
|
|
30
|
+
if ((0, _isLeafNode.default)(column) || isHeaderMerge) {
|
|
28
31
|
maxDepth = Math.max(maxDepth, depth);
|
|
29
32
|
} else {
|
|
30
33
|
dfs(column.children, depth + 1);
|
package/package.json
CHANGED
package/CHANGELOG.md
DELETED
|
File without changes
|