@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.
@@ -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: 16,
77
- isExtend: curState[col.code]
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 (!e.currentTarget.contains(e.target)) {
113
- return;
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.currentTarget.contains(e.target) && e.keyCode === KeyCode.ESC) {
125
- setShowPanel(false);
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: 16,
95
- isExtend: curState[col.code]
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 (!e.currentTarget.contains(e.target)) {
147
- return;
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.currentTarget.contains(e.target) && e.keyCode === _keyCode.default.ESC) {
159
- setShowPanel(false);
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kdcloudjs/table",
3
- "version": "1.1.5-canary.2",
3
+ "version": "1.1.5-canary.3",
4
4
  "description": "金蝶 react table 组件",
5
5
  "title": "table",
6
6
  "keywords": [