@kdcloudjs/table 1.1.5-canary.2 → 1.1.5-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/dist/@kdcloudjs/table.css +1 -1
- package/dist/@kdcloudjs/table.js +19 -10
- 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/pipeline/features/colGroupExtendable.d.ts +2 -0
- package/es/table/pipeline/features/colGroupExtendable.js +5 -3
- package/es/table/pipeline/features/columnFilter.d.ts +2 -0
- package/es/table/pipeline/features/columnFilter.js +2 -0
- package/es/table/pipeline/features/filter/Filter.d.ts +2 -1
- package/es/table/pipeline/features/filter/Filter.js +11 -6
- package/lib/table/pipeline/features/colGroupExtendable.d.ts +2 -0
- package/lib/table/pipeline/features/colGroupExtendable.js +5 -3
- package/lib/table/pipeline/features/columnFilter.d.ts +2 -0
- package/lib/table/pipeline/features/columnFilter.js +2 -0
- package/lib/table/pipeline/features/filter/Filter.d.ts +2 -1
- package/lib/table/pipeline/features/filter/Filter.js +11 -6
- package/package.json +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { TablePipeline } from "../pipeline";
|
|
2
|
+
import { ReactNode } from 'react';
|
|
2
3
|
export interface colGroupExtendOption {
|
|
3
4
|
onChangeExtendStatus?({}: any, {}: any): void;
|
|
4
5
|
extendStatus?: {};
|
|
6
|
+
extendIcon?: ReactNode | ((extendStatus: boolean) => ReactNode);
|
|
5
7
|
}
|
|
6
8
|
export declare const colGroupExtendable: (opts?: colGroupExtendOption) => (pipeline: TablePipeline) => TablePipeline;
|
|
@@ -60,11 +60,13 @@ export var colGroupExtendable = function colGroupExtendable() {
|
|
|
60
60
|
var addIcon = function addIcon(col) {
|
|
61
61
|
var result = _extends({}, col);
|
|
62
62
|
|
|
63
|
+
var curColState = curState[col.code];
|
|
64
|
+
var displaycolExtendIcon = typeof opts.extendIcon === 'function' ? opts.extendIcon(curColState) : opts.extendIcon;
|
|
63
65
|
var addIconNode = /*#__PURE__*/React.createElement(React.Fragment, null, internals.safeRenderHeader(_extends({}, col)), /*#__PURE__*/React.createElement(ExtendIconStyle, {
|
|
64
66
|
onClick: function onClick() {
|
|
65
67
|
toggle(col);
|
|
66
68
|
}
|
|
67
|
-
}, /*#__PURE__*/React.createElement(ExpandIcon, {
|
|
69
|
+
}, displaycolExtendIcon || /*#__PURE__*/React.createElement(ExpandIcon, {
|
|
68
70
|
style: {
|
|
69
71
|
userSelect: 'none',
|
|
70
72
|
marginLeft: 2,
|
|
@@ -73,8 +75,8 @@ export var colGroupExtendable = function colGroupExtendable() {
|
|
|
73
75
|
verticalAlign: 'middle'
|
|
74
76
|
},
|
|
75
77
|
className: cx(_defineProperty({}, Classes.tableExtendIcon, true)),
|
|
76
|
-
size:
|
|
77
|
-
isExtend:
|
|
78
|
+
size: 14,
|
|
79
|
+
isExtend: curColState
|
|
78
80
|
})));
|
|
79
81
|
result.title = addIconNode;
|
|
80
82
|
return result;
|
|
@@ -16,6 +16,8 @@ export interface FilterFeatureOptions {
|
|
|
16
16
|
filterIcon?: ReactNode | ((filtered: boolean) => ReactNode);
|
|
17
17
|
/** 是否对触发弹出过滤面板 的 click 事件调用 event.stopPropagation() */
|
|
18
18
|
stopClickEventPropagation?: boolean;
|
|
19
|
+
/** 是否对按ESC键时关闭面板的 keydown 事件调用 event.stopPropagation() */
|
|
20
|
+
stopESCKeyDownEventPropagation?: boolean;
|
|
19
21
|
/** 是否隐藏过滤弹出菜单header区域 */
|
|
20
22
|
hideFilterPopupHeader?: boolean;
|
|
21
23
|
}
|
|
@@ -29,6 +29,7 @@ export function filter() {
|
|
|
29
29
|
mode = opts.mode,
|
|
30
30
|
filterIcon = opts.filterIcon,
|
|
31
31
|
stopClickEventPropagation = opts.stopClickEventPropagation,
|
|
32
|
+
stopESCKeyDownEventPropagation = opts.stopESCKeyDownEventPropagation,
|
|
32
33
|
hideFilterPopupHeader = opts.hideFilterPopupHeader;
|
|
33
34
|
var inputFilters = (_b = (_a = filters !== null && filters !== void 0 ? filters : pipeline.getStateAtKey(stateKey)) !== null && _a !== void 0 ? _a : defaultFilters) !== null && _b !== void 0 ? _b : [];
|
|
34
35
|
inputFilters = mode === 'single' ? _sliceInstanceProperty(inputFilters).call(inputFilters, 0, 1) : inputFilters;
|
|
@@ -93,6 +94,7 @@ export function filter() {
|
|
|
93
94
|
isFilterActive: filterActive,
|
|
94
95
|
className: cx((_cx = {}, _defineProperty(_cx, Classes.tableFilterTrigger, true), _defineProperty(_cx, "active", filterActive), _cx)),
|
|
95
96
|
stopClickEventPropagation: stopClickEventPropagation,
|
|
97
|
+
stopESCKeyDownEventPropagation: stopESCKeyDownEventPropagation,
|
|
96
98
|
hideFilterPopupHeader: hideFilterPopupHeader
|
|
97
99
|
})]); // result.headerCellProps = mergeCellProps(col.headerCellProps, {
|
|
98
100
|
// style: {
|
|
@@ -12,7 +12,8 @@ interface FilterProps {
|
|
|
12
12
|
setFilter: CustomeFilterPanelProps['setFilter'];
|
|
13
13
|
onClick?: (e: React.MouseEvent) => any;
|
|
14
14
|
stopClickEventPropagation?: boolean;
|
|
15
|
+
stopESCKeyDownEventPropagation?: boolean;
|
|
15
16
|
hideFilterPopupHeader?: boolean;
|
|
16
17
|
}
|
|
17
|
-
declare function Filter({ size, style, className, FilterPanelContent, filterIcon, setFilter, setFilterModel, filterModel, isFilterActive, stopClickEventPropagation, hideFilterPopupHeader }: FilterProps): JSX.Element;
|
|
18
|
+
declare function Filter({ size, style, className, FilterPanelContent, filterIcon, setFilter, setFilterModel, filterModel, isFilterActive, stopClickEventPropagation, stopESCKeyDownEventPropagation, hideFilterPopupHeader }: FilterProps): JSX.Element;
|
|
18
19
|
export default Filter;
|
|
@@ -74,6 +74,7 @@ function Filter(_ref2) {
|
|
|
74
74
|
filterModel = _ref2.filterModel,
|
|
75
75
|
isFilterActive = _ref2.isFilterActive,
|
|
76
76
|
stopClickEventPropagation = _ref2.stopClickEventPropagation,
|
|
77
|
+
stopESCKeyDownEventPropagation = _ref2.stopESCKeyDownEventPropagation,
|
|
77
78
|
hideFilterPopupHeader = _ref2.hideFilterPopupHeader;
|
|
78
79
|
|
|
79
80
|
var _React$useState3 = React.useState(false),
|
|
@@ -109,20 +110,24 @@ function Filter(_ref2) {
|
|
|
109
110
|
var handleIconClick = function handleIconClick(e) {
|
|
110
111
|
// 只有当icon区域点击会触发面板展开
|
|
111
112
|
// 防止 createPortal 区域的点击触发该事件
|
|
112
|
-
if (
|
|
113
|
-
|
|
113
|
+
if (e.currentTarget.contains(e.target)) {
|
|
114
|
+
setShowPanel(true);
|
|
114
115
|
}
|
|
115
116
|
|
|
116
117
|
if (stopClickEventPropagation) {
|
|
117
118
|
e.stopPropagation();
|
|
118
119
|
}
|
|
119
|
-
|
|
120
|
-
setShowPanel(true);
|
|
121
120
|
};
|
|
122
121
|
|
|
123
122
|
var handleKeyDown = function handleKeyDown(e) {
|
|
124
|
-
if (e.
|
|
125
|
-
|
|
123
|
+
if (e.keyCode === KeyCode.ESC) {
|
|
124
|
+
if (e.currentTarget.contains(e.target)) {
|
|
125
|
+
setShowPanel(false);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (stopESCKeyDownEventPropagation) {
|
|
129
|
+
e.stopPropagation();
|
|
130
|
+
}
|
|
126
131
|
}
|
|
127
132
|
};
|
|
128
133
|
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { TablePipeline } from "../pipeline";
|
|
2
|
+
import { ReactNode } from 'react';
|
|
2
3
|
export interface colGroupExtendOption {
|
|
3
4
|
onChangeExtendStatus?({}: any, {}: any): void;
|
|
4
5
|
extendStatus?: {};
|
|
6
|
+
extendIcon?: ReactNode | ((extendStatus: boolean) => ReactNode);
|
|
5
7
|
}
|
|
6
8
|
export declare const colGroupExtendable: (opts?: colGroupExtendOption) => (pipeline: TablePipeline) => TablePipeline;
|
|
@@ -77,12 +77,14 @@ var colGroupExtendable = function colGroupExtendable() {
|
|
|
77
77
|
|
|
78
78
|
var addIcon = function addIcon(col) {
|
|
79
79
|
var result = (0, _extends2.default)({}, col);
|
|
80
|
+
var curColState = curState[col.code];
|
|
81
|
+
var displaycolExtendIcon = typeof opts.extendIcon === 'function' ? opts.extendIcon(curColState) : opts.extendIcon;
|
|
80
82
|
|
|
81
83
|
var addIconNode = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, _internals.internals.safeRenderHeader((0, _extends2.default)({}, col)), /*#__PURE__*/_react.default.createElement(ExtendIconStyle, {
|
|
82
84
|
onClick: function onClick() {
|
|
83
85
|
toggle(col);
|
|
84
86
|
}
|
|
85
|
-
}, /*#__PURE__*/_react.default.createElement(ExpandIcon, {
|
|
87
|
+
}, displaycolExtendIcon || /*#__PURE__*/_react.default.createElement(ExpandIcon, {
|
|
86
88
|
style: {
|
|
87
89
|
userSelect: 'none',
|
|
88
90
|
marginLeft: 2,
|
|
@@ -91,8 +93,8 @@ var colGroupExtendable = function colGroupExtendable() {
|
|
|
91
93
|
verticalAlign: 'middle'
|
|
92
94
|
},
|
|
93
95
|
className: (0, _classnames.default)((0, _defineProperty2.default)({}, _styles.Classes.tableExtendIcon, true)),
|
|
94
|
-
size:
|
|
95
|
-
isExtend:
|
|
96
|
+
size: 14,
|
|
97
|
+
isExtend: curColState
|
|
96
98
|
})));
|
|
97
99
|
|
|
98
100
|
result.title = addIconNode;
|
|
@@ -16,6 +16,8 @@ export interface FilterFeatureOptions {
|
|
|
16
16
|
filterIcon?: ReactNode | ((filtered: boolean) => ReactNode);
|
|
17
17
|
/** 是否对触发弹出过滤面板 的 click 事件调用 event.stopPropagation() */
|
|
18
18
|
stopClickEventPropagation?: boolean;
|
|
19
|
+
/** 是否对按ESC键时关闭面板的 keydown 事件调用 event.stopPropagation() */
|
|
20
|
+
stopESCKeyDownEventPropagation?: boolean;
|
|
19
21
|
/** 是否隐藏过滤弹出菜单header区域 */
|
|
20
22
|
hideFilterPopupHeader?: boolean;
|
|
21
23
|
}
|
|
@@ -55,6 +55,7 @@ function filter() {
|
|
|
55
55
|
mode = opts.mode,
|
|
56
56
|
filterIcon = opts.filterIcon,
|
|
57
57
|
stopClickEventPropagation = opts.stopClickEventPropagation,
|
|
58
|
+
stopESCKeyDownEventPropagation = opts.stopESCKeyDownEventPropagation,
|
|
58
59
|
hideFilterPopupHeader = opts.hideFilterPopupHeader;
|
|
59
60
|
var inputFilters = (_b = (_a = filters !== null && filters !== void 0 ? filters : pipeline.getStateAtKey(stateKey)) !== null && _a !== void 0 ? _a : defaultFilters) !== null && _b !== void 0 ? _b : [];
|
|
60
61
|
inputFilters = mode === 'single' ? (0, _slice.default)(inputFilters).call(inputFilters, 0, 1) : inputFilters;
|
|
@@ -116,6 +117,7 @@ function filter() {
|
|
|
116
117
|
isFilterActive: filterActive,
|
|
117
118
|
className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, _styles.Classes.tableFilterTrigger, true), (0, _defineProperty2.default)(_cx, "active", filterActive), _cx)),
|
|
118
119
|
stopClickEventPropagation: stopClickEventPropagation,
|
|
120
|
+
stopESCKeyDownEventPropagation: stopESCKeyDownEventPropagation,
|
|
119
121
|
hideFilterPopupHeader: hideFilterPopupHeader
|
|
120
122
|
})]); // result.headerCellProps = mergeCellProps(col.headerCellProps, {
|
|
121
123
|
// style: {
|
|
@@ -12,7 +12,8 @@ interface FilterProps {
|
|
|
12
12
|
setFilter: CustomeFilterPanelProps['setFilter'];
|
|
13
13
|
onClick?: (e: React.MouseEvent) => any;
|
|
14
14
|
stopClickEventPropagation?: boolean;
|
|
15
|
+
stopESCKeyDownEventPropagation?: boolean;
|
|
15
16
|
hideFilterPopupHeader?: boolean;
|
|
16
17
|
}
|
|
17
|
-
declare function Filter({ size, style, className, FilterPanelContent, filterIcon, setFilter, setFilterModel, filterModel, isFilterActive, stopClickEventPropagation, hideFilterPopupHeader }: FilterProps): JSX.Element;
|
|
18
|
+
declare function Filter({ size, style, className, FilterPanelContent, filterIcon, setFilter, setFilterModel, filterModel, isFilterActive, stopClickEventPropagation, stopESCKeyDownEventPropagation, hideFilterPopupHeader }: FilterProps): JSX.Element;
|
|
18
19
|
export default Filter;
|
|
@@ -107,6 +107,7 @@ function Filter(_ref2) {
|
|
|
107
107
|
filterModel = _ref2.filterModel,
|
|
108
108
|
isFilterActive = _ref2.isFilterActive,
|
|
109
109
|
stopClickEventPropagation = _ref2.stopClickEventPropagation,
|
|
110
|
+
stopESCKeyDownEventPropagation = _ref2.stopESCKeyDownEventPropagation,
|
|
110
111
|
hideFilterPopupHeader = _ref2.hideFilterPopupHeader;
|
|
111
112
|
|
|
112
113
|
var _React$useState3 = _react.default.useState(false),
|
|
@@ -143,20 +144,24 @@ function Filter(_ref2) {
|
|
|
143
144
|
var handleIconClick = function handleIconClick(e) {
|
|
144
145
|
// 只有当icon区域点击会触发面板展开
|
|
145
146
|
// 防止 createPortal 区域的点击触发该事件
|
|
146
|
-
if (
|
|
147
|
-
|
|
147
|
+
if (e.currentTarget.contains(e.target)) {
|
|
148
|
+
setShowPanel(true);
|
|
148
149
|
}
|
|
149
150
|
|
|
150
151
|
if (stopClickEventPropagation) {
|
|
151
152
|
e.stopPropagation();
|
|
152
153
|
}
|
|
153
|
-
|
|
154
|
-
setShowPanel(true);
|
|
155
154
|
};
|
|
156
155
|
|
|
157
156
|
var handleKeyDown = function handleKeyDown(e) {
|
|
158
|
-
if (e.
|
|
159
|
-
|
|
157
|
+
if (e.keyCode === _keyCode.default.ESC) {
|
|
158
|
+
if (e.currentTarget.contains(e.target)) {
|
|
159
|
+
setShowPanel(false);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if (stopESCKeyDownEventPropagation) {
|
|
163
|
+
e.stopPropagation();
|
|
164
|
+
}
|
|
160
165
|
}
|
|
161
166
|
};
|
|
162
167
|
|