@hi-ui/check-cascader 4.0.10-beta.0 → 4.2.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/CHANGELOG.md +17 -5
- package/lib/cjs/CheckCascader.js +13 -5
- package/lib/cjs/CheckCascaderMenu.js +2 -0
- package/lib/cjs/CheckCascaderMenuList.js +8 -4
- package/lib/cjs/styles/index.scss.js +2 -2
- package/lib/esm/CheckCascader.js +14 -6
- package/lib/esm/CheckCascaderMenu.js +2 -0
- package/lib/esm/CheckCascaderMenuList.js +7 -4
- package/lib/esm/styles/index.scss.js +2 -2
- package/lib/types/CheckCascader.d.ts +19 -2
- package/lib/types/CheckCascaderMenu.d.ts +1 -1
- package/lib/types/CheckCascaderMenuList.d.ts +4 -0
- package/package.json +7 -8
package/CHANGELOG.md
CHANGED
@@ -1,10 +1,22 @@
|
|
1
1
|
# @hi-ui/check-cascader
|
2
2
|
|
3
|
-
## 4.
|
3
|
+
## 4.2.0
|
4
|
+
|
5
|
+
### Minor Changes
|
6
|
+
|
7
|
+
- [#2606](https://github.com/XiaoMi/hiui/pull/2606) [`9be456ec0`](https://github.com/XiaoMi/hiui/commit/9be456ec092031eab5ab6097f8276cde0bd4721d) Thanks [@zyprepare](https://github.com/zyprepare)! - feat: 增加 renderExtraFooter 和 dropdownColumnRender api
|
8
|
+
|
9
|
+
- [#2602](https://github.com/XiaoMi/hiui/pull/2602) [`ad0d14abd`](https://github.com/XiaoMi/hiui/commit/ad0d14abdaf3ab2d5b79d649e7886ee90d1c941a) Thanks [@zyprepare](https://github.com/zyprepare)! - feat: add size api
|
10
|
+
|
11
|
+
## 4.1.0
|
12
|
+
|
13
|
+
### Minor Changes
|
14
|
+
|
15
|
+
- [#2531](https://github.com/XiaoMi/hiui/pull/2531) [`0a9d90ac5`](https://github.com/XiaoMi/hiui/commit/0a9d90ac53bdf66aa2b83b698b58d2cdeb98d912) Thanks [@zyprepare](https://github.com/zyprepare)! - feat: 增加 tagInputProps API,支持显示内容高度自适应
|
4
16
|
|
5
17
|
### Patch Changes
|
6
18
|
|
7
|
-
- Updated dependencies
|
8
|
-
- @hi-ui/
|
9
|
-
- @hi-ui/
|
10
|
-
- @hi-ui/
|
19
|
+
- Updated dependencies [[`bd5940eba`](https://github.com/XiaoMi/hiui/commit/bd5940eba7d7a80aa676f37bb804ea27544864d2), [`0a9d90ac5`](https://github.com/XiaoMi/hiui/commit/0a9d90ac53bdf66aa2b83b698b58d2cdeb98d912)]:
|
20
|
+
- @hi-ui/picker@4.1.1
|
21
|
+
- @hi-ui/popper@4.0.5
|
22
|
+
- @hi-ui/tag-input@4.0.6
|
package/lib/cjs/CheckCascader.js
CHANGED
@@ -63,7 +63,7 @@ var _prefix = classname.getPrefixCls('check-cascader');
|
|
63
63
|
|
64
64
|
var NOOP_ARRAY = [];
|
65
65
|
/**
|
66
|
-
*
|
66
|
+
* 多项级联选择器
|
67
67
|
*/
|
68
68
|
|
69
69
|
var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
@@ -99,7 +99,12 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
99
99
|
visible = _a.visible,
|
100
100
|
onOpen = _a.onOpen,
|
101
101
|
onClose = _a.onClose,
|
102
|
-
|
102
|
+
tagInputProps = _a.tagInputProps,
|
103
|
+
_a$size = _a.size,
|
104
|
+
size = _a$size === void 0 ? 'md' : _a$size,
|
105
|
+
renderExtraFooter = _a.renderExtraFooter,
|
106
|
+
dropdownColumnRender = _a.dropdownColumnRender,
|
107
|
+
rest = tslib.__rest(_a, ["prefixCls", "className", "defaultValue", "value", "onChange", "data", "placeholder", "clearable", "onSelect", "expandTrigger", "disabled", "emptyContent", "changeOnSelect", "render", "displayRender", "checkCascaded", "searchPlaceholder", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "onSearch", "overlayClassName", "type", "checkedMode", "visible", "onOpen", "onClose", "tagInputProps", "size", "renderExtraFooter", "dropdownColumnRender"]);
|
103
108
|
|
104
109
|
var i18n = core.useLocaleContext();
|
105
110
|
var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('checkCascader.placeholder') : placeholderProp;
|
@@ -241,8 +246,10 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
241
246
|
onClose: menuVisibleAction.off,
|
242
247
|
searchable: searchable,
|
243
248
|
scrollable: false,
|
249
|
+
footer: typeAssertion.isFunction(renderExtraFooter) && renderExtraFooter(),
|
244
250
|
onSearch: funcUtils.callAllFuncs(onSearchProp, onSearch),
|
245
|
-
trigger: /*#__PURE__*/React__default["default"].createElement(tagInput.TagInputMock, {
|
251
|
+
trigger: /*#__PURE__*/React__default["default"].createElement(tagInput.TagInputMock, Object.assign({}, tagInputProps, {
|
252
|
+
size: size,
|
246
253
|
clearable: clearable,
|
247
254
|
placeholder: placeholder,
|
248
255
|
// @ts-ignore
|
@@ -255,7 +262,7 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
255
262
|
onChange: proxyOnChange,
|
256
263
|
data: flattedData,
|
257
264
|
invalid: invalid
|
258
|
-
})
|
265
|
+
}))
|
259
266
|
}), typeAssertion.isArrayNonEmpty(selectProps.data) ? /*#__PURE__*/React__default["default"].createElement(CheckCascaderMenuList.CheckCascaderMenuList, {
|
260
267
|
disabled: disabled,
|
261
268
|
value: value,
|
@@ -272,7 +279,8 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
272
279
|
flattedData: selectProps.data,
|
273
280
|
data: cascaderData,
|
274
281
|
onChangeData: setCascaderData,
|
275
|
-
checkedMode: checkedMode
|
282
|
+
checkedMode: checkedMode,
|
283
|
+
dropdownColumnRender: dropdownColumnRender
|
276
284
|
}) : null);
|
277
285
|
});
|
278
286
|
|
@@ -49,6 +49,7 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
|
|
49
49
|
_ref$role = _ref.role,
|
50
50
|
role = _ref$role === void 0 ? _role : _ref$role,
|
51
51
|
className = _ref.className,
|
52
|
+
style = _ref.style,
|
52
53
|
menu = _ref.data,
|
53
54
|
getCascaderItemRequiredProps = _ref.getCascaderItemRequiredProps;
|
54
55
|
|
@@ -91,6 +92,7 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
|
|
91
92
|
var cls = classname.cx(prefixCls, className, isCheckableMenu && prefixCls + "--checkable");
|
92
93
|
return /*#__PURE__*/React__default["default"].createElement("ul", {
|
93
94
|
className: cls,
|
95
|
+
style: style,
|
94
96
|
role: role
|
95
97
|
}, menu.map(function (option) {
|
96
98
|
var _a;
|
@@ -37,6 +37,8 @@ var useSelect = require('./hooks/use-select.js');
|
|
37
37
|
|
38
38
|
var useAsyncSwitch = require('./hooks/use-async-switch.js');
|
39
39
|
|
40
|
+
var typeAssertion = require('@hi-ui/type-assertion');
|
41
|
+
|
40
42
|
function _interopDefaultLegacy(e) {
|
41
43
|
return e && _typeof(e) === 'object' && 'default' in e ? e : {
|
42
44
|
'default': e
|
@@ -72,10 +74,11 @@ var CheckCascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
72
74
|
onLoadChildren = _a.onLoadChildren,
|
73
75
|
onChange = _a.onChange,
|
74
76
|
titleRender = _a.titleRender,
|
77
|
+
dropdownColumnRender = _a.dropdownColumnRender,
|
75
78
|
flatted = _a.flatted,
|
76
79
|
_a$checkedMode = _a.checkedMode,
|
77
80
|
checkedMode = _a$checkedMode === void 0 ? 'ALL' : _a$checkedMode,
|
78
|
-
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "flattedData", "onChangeData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "onLoadChildren", "onChange", "onSelect", "titleRender", "flatted", "checkedMode"]);
|
81
|
+
rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "flattedData", "onChangeData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "onLoadChildren", "onChange", "onSelect", "titleRender", "dropdownColumnRender", "flatted", "checkedMode"]);
|
79
82
|
|
80
83
|
if (checkCascaded === false) {
|
81
84
|
checkedMode = 'SEPARATE';
|
@@ -122,7 +125,7 @@ var CheckCascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
122
125
|
onLoadChildren: onLoadChildren,
|
123
126
|
disabled: disabled
|
124
127
|
};
|
125
|
-
}, [
|
128
|
+
}, [expandTrigger, onOptionCheck, onItemExpand, flatted, changeOnSelect, titleRender, onLoadChildren, disabled]);
|
126
129
|
var menus = flatted ? index.getFlattedMenus(flattedData) : index.getActiveMenus(flattedData, selectedId);
|
127
130
|
var cls = classname.cx(prefixCls, className, flatted && prefixCls + "--flatted", changeOnSelect && prefixCls + "--selectchange");
|
128
131
|
return /*#__PURE__*/React__default["default"].createElement(context.CheckCascaderProvider, {
|
@@ -132,11 +135,12 @@ var CheckCascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
132
135
|
role: role,
|
133
136
|
className: cls
|
134
137
|
}, rest), menus.map(function (menu, menuIndex) {
|
135
|
-
|
138
|
+
var menuContent = /*#__PURE__*/React__default["default"].createElement(CheckCascaderMenu.CheckCascaderMenu, {
|
136
139
|
key: menuIndex,
|
137
140
|
data: menu,
|
138
141
|
getCascaderItemRequiredProps: getCascaderItemRequiredProps
|
139
|
-
})
|
142
|
+
});
|
143
|
+
return menu.length > 0 ? typeAssertion.isFunction(dropdownColumnRender) ? dropdownColumnRender(menuContent, menuIndex) : menuContent : null;
|
140
144
|
})));
|
141
145
|
});
|
142
146
|
|
@@ -12,9 +12,9 @@
|
|
12
12
|
Object.defineProperty(exports, '__esModule', {
|
13
13
|
value: true
|
14
14
|
});
|
15
|
-
var css_248z = "
|
15
|
+
var css_248z = "@charset \"UTF-8\";.hi-v4-check-cascader__popper .hi-v4-picker__body {padding-left: 0;padding-right: 0;overflow-y: hidden;}.hi-v4-check-cascader__popper .hi-v4-picker__loading, .hi-v4-check-cascader__popper .hi-v4-picker__empty {padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-8, 16px);}.hi-v4-check-cascader-panel {white-space: nowrap;-webkit-box-sizing: border-box;box-sizing: border-box;}.hi-v4-check-cascader-panel-search {-webkit-box-sizing: border-box;box-sizing: border-box;padding: 0 10px 10px;position: relative;}.hi-v4-check-cascader-panel-search .hi-v4-input__prefix {font-size: 16px;padding-left: 0;}.hi-v4-check-cascader-panel-search__empty {display: inline-block;margin-top: 20px;font-size: 14px;font-weight: 400;color: #999;line-height: 20px;}.hi-v4-check-cascader-menus {display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-sizing: border-box;box-sizing: border-box;overflow-x: auto;}.hi-v4-check-cascader-menus--flatted .hi-v4-check-cascader-menu {-ms-flex-preferred-size: 100%;flex-basis: 100%;}.hi-v4-check-cascader-menu {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;border: none;outline: none;font-size: var(--hi-v4-text-size-md, 0.875rem);vertical-align: middle;list-style: none;width: auto;box-sizing: border-box;-ms-flex-negative: 0;flex-shrink: 0;display: inline-block;min-width: 140px;max-height: 256px;overflow: auto;padding: 0 var(--hi-v4-spacing-4, 8px);border-right: var(--hi-v4-border-size-normal, 1px solid) var(--hi-v4-color-gray-200, #ebedf0);}.hi-v4-check-cascader-menu:last-of-type {border: none;}.hi-v4-check-cascader-menu--checkable .hi-v4-check-cascader-menu-checkbox + .title__text {padding-left: 8px;}.hi-v4-check-cascader-menu-item {width: 100%;padding: var(--hi-v4-spacing-1, 2px) 0;position: relative;cursor: pointer;display: -webkit-box;display: -ms-flexbox;display: flex;}.hi-v4-check-cascader-menu-checkbox {position: relative;}.hi-v4-check-cascader-menu-checkbox::after {right: 0;top: -8px;bottom: -8px;left: -8px;content: \"\";position: absolute;display: block;}.hi-v4-check-cascader-menu-option {padding: 0 var(--hi-v4-spacing-4, 8px);-webkit-box-sizing: border-box;box-sizing: border-box;height: var(--hi-v4-height-7, 28px);width: 100%;display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-align: center;-ms-flex-align: center;align-items: center;position: relative;-webkit-box-pack: justify;-ms-flex-pack: justify;justify-content: space-between;border-radius: var(--hi-v4-border-radius-md, 4px);}.hi-v4-check-cascader-menu-option:hover {background-color: var(--hi-v4-color-gray-100, #f2f4f7);}.hi-v4-check-cascader-menus--selectchange .hi-v4-check-cascader-menu-option:hover .hi-v4-checkbox__icon {border-color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-check-cascader-menu-option.hi-v4-check-cascader-menu-option--selected {background: var(--hi-v4-color-primary-50, var(--hi-v4-color-brandblue-50, #e2f3fe));color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-check-cascader-menu-option.hi-v4-check-cascader-menu-option--selected .hi-v4-check-cascader-menu-switcher {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-check-cascader-menu-option--focused {background-color: var(--hi-v4-color-primary-50, var(--hi-v4-color-brandblue-50, #e2f3fe));}.hi-v4-check-cascader-menu-option--disabled {cursor: not-allowed;color: var(--hi-v4-color-gray-500, #929aa6);background: transparent;}.hi-v4-check-cascader-menu-option--disabled .hi-v4-check-cascader-menu-switcher {color: var(--hi-v4-color-gray-400, #c9ced6);}.hi-v4-check-cascader-menu .title__text {-webkit-box-flex: 1;-ms-flex: 1 1;flex: 1 1;}.hi-v4-check-cascader-menu .title__text--cols {display: block;width: 100%;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;border: none;outline: none;font-size: var(--hi-v4-text-size-md, 0.875rem);vertical-align: middle;list-style: none;}.hi-v4-check-cascader-menu .title__text--col {display: inline-block;}.hi-v4-check-cascader-menu .title__text--col::after {content: \" / \";}.hi-v4-check-cascader-menu .title__text--col:last-child::after {content: none;}.hi-v4-check-cascader-menu .title__text--matched {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-check-cascader-menu-switcher {-ms-flex-negative: 0;flex-shrink: 0;font-size: 16px;color: var(--hi-v4-color-gray-500, #929aa6);}.hi-v4-check-cascader-menu-switcher--loading {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-tree--icon-loading {-webkit-animation-name: hi-rotate;animation-name: hi-rotate;-webkit-animation-duration: 2s;animation-duration: 2s;-webkit-animation-iteration-count: infinite;animation-iteration-count: infinite;}@-webkit-keyframes hi-rotate {from {-webkit-transform: rotate(0);transform: rotate(0);}to {-webkit-transform: rotate(360deg);transform: rotate(360deg);}}@keyframes hi-rotate {from {-webkit-transform: rotate(0);transform: rotate(0);}to {-webkit-transform: rotate(360deg);transform: rotate(360deg);}}";
|
16
16
|
|
17
|
-
var __styleInject__ = require('inject
|
17
|
+
var __styleInject__ = require('style-inject')["default"];
|
18
18
|
|
19
19
|
__styleInject__(css_248z);
|
20
20
|
|
package/lib/esm/CheckCascader.js
CHANGED
@@ -22,7 +22,7 @@ import { useTreeCustomSearch, useTreeUpMatchSearch, useSearchMode, matchStrategy
|
|
22
22
|
import { flattenTreeData } from './utils/index.js';
|
23
23
|
import { getTopDownAncestors, getNodeAncestorsWithMe } from '@hi-ui/tree-utils';
|
24
24
|
import { useLatestCallback } from '@hi-ui/use-latest';
|
25
|
-
import { isUndef, isArrayNonEmpty } from '@hi-ui/type-assertion';
|
25
|
+
import { isUndef, isFunction, isArrayNonEmpty } from '@hi-ui/type-assertion';
|
26
26
|
import { useLocaleContext } from '@hi-ui/core';
|
27
27
|
import { callAllFuncs } from '@hi-ui/func-utils';
|
28
28
|
|
@@ -30,7 +30,7 @@ var _prefix = getPrefixCls('check-cascader');
|
|
30
30
|
|
31
31
|
var NOOP_ARRAY = [];
|
32
32
|
/**
|
33
|
-
*
|
33
|
+
* 多项级联选择器
|
34
34
|
*/
|
35
35
|
|
36
36
|
var CheckCascader = /*#__PURE__*/forwardRef(function (_a, ref) {
|
@@ -66,7 +66,12 @@ var CheckCascader = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
66
66
|
visible = _a.visible,
|
67
67
|
onOpen = _a.onOpen,
|
68
68
|
onClose = _a.onClose,
|
69
|
-
|
69
|
+
tagInputProps = _a.tagInputProps,
|
70
|
+
_a$size = _a.size,
|
71
|
+
size = _a$size === void 0 ? 'md' : _a$size,
|
72
|
+
renderExtraFooter = _a.renderExtraFooter,
|
73
|
+
dropdownColumnRender = _a.dropdownColumnRender,
|
74
|
+
rest = __rest(_a, ["prefixCls", "className", "defaultValue", "value", "onChange", "data", "placeholder", "clearable", "onSelect", "expandTrigger", "disabled", "emptyContent", "changeOnSelect", "render", "displayRender", "checkCascaded", "searchPlaceholder", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "onSearch", "overlayClassName", "type", "checkedMode", "visible", "onOpen", "onClose", "tagInputProps", "size", "renderExtraFooter", "dropdownColumnRender"]);
|
70
75
|
|
71
76
|
var i18n = useLocaleContext();
|
72
77
|
var placeholder = isUndef(placeholderProp) ? i18n.get('checkCascader.placeholder') : placeholderProp;
|
@@ -208,8 +213,10 @@ var CheckCascader = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
208
213
|
onClose: menuVisibleAction.off,
|
209
214
|
searchable: searchable,
|
210
215
|
scrollable: false,
|
216
|
+
footer: isFunction(renderExtraFooter) && renderExtraFooter(),
|
211
217
|
onSearch: callAllFuncs(onSearchProp, onSearch),
|
212
|
-
trigger: /*#__PURE__*/React.createElement(TagInputMock, {
|
218
|
+
trigger: /*#__PURE__*/React.createElement(TagInputMock, Object.assign({}, tagInputProps, {
|
219
|
+
size: size,
|
213
220
|
clearable: clearable,
|
214
221
|
placeholder: placeholder,
|
215
222
|
// @ts-ignore
|
@@ -222,7 +229,7 @@ var CheckCascader = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
222
229
|
onChange: proxyOnChange,
|
223
230
|
data: flattedData,
|
224
231
|
invalid: invalid
|
225
|
-
})
|
232
|
+
}))
|
226
233
|
}), isArrayNonEmpty(selectProps.data) ? /*#__PURE__*/React.createElement(CheckCascaderMenuList, {
|
227
234
|
disabled: disabled,
|
228
235
|
value: value,
|
@@ -239,7 +246,8 @@ var CheckCascader = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
239
246
|
flattedData: selectProps.data,
|
240
247
|
data: cascaderData,
|
241
248
|
onChangeData: setCascaderData,
|
242
|
-
checkedMode: checkedMode
|
249
|
+
checkedMode: checkedMode,
|
250
|
+
dropdownColumnRender: dropdownColumnRender
|
243
251
|
}) : null);
|
244
252
|
});
|
245
253
|
|
@@ -24,6 +24,7 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
|
|
24
24
|
_ref$role = _ref.role,
|
25
25
|
role = _ref$role === void 0 ? _role : _ref$role,
|
26
26
|
className = _ref.className,
|
27
|
+
style = _ref.style,
|
27
28
|
menu = _ref.data,
|
28
29
|
getCascaderItemRequiredProps = _ref.getCascaderItemRequiredProps;
|
29
30
|
|
@@ -66,6 +67,7 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
|
|
66
67
|
var cls = cx(prefixCls, className, isCheckableMenu && prefixCls + "--checkable");
|
67
68
|
return /*#__PURE__*/React.createElement("ul", {
|
68
69
|
className: cls,
|
70
|
+
style: style,
|
69
71
|
role: role
|
70
72
|
}, menu.map(function (option) {
|
71
73
|
var _a;
|
@@ -18,6 +18,7 @@ import { getActiveMenuIds, getFlattedMenus, getActiveMenus } from './utils/index
|
|
18
18
|
import { useCheck } from './hooks/use-check.js';
|
19
19
|
import { useSelect } from './hooks/use-select.js';
|
20
20
|
import { useAsyncSwitch } from './hooks/use-async-switch.js';
|
21
|
+
import { isFunction } from '@hi-ui/type-assertion';
|
21
22
|
var _role = 'check-cascader-menus';
|
22
23
|
|
23
24
|
var _prefix = getPrefixCls(_role);
|
@@ -45,10 +46,11 @@ var CheckCascaderMenuList = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
45
46
|
onLoadChildren = _a.onLoadChildren,
|
46
47
|
onChange = _a.onChange,
|
47
48
|
titleRender = _a.titleRender,
|
49
|
+
dropdownColumnRender = _a.dropdownColumnRender,
|
48
50
|
flatted = _a.flatted,
|
49
51
|
_a$checkedMode = _a.checkedMode,
|
50
52
|
checkedMode = _a$checkedMode === void 0 ? 'ALL' : _a$checkedMode,
|
51
|
-
rest = __rest(_a, ["prefixCls", "role", "className", "children", "data", "flattedData", "onChangeData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "onLoadChildren", "onChange", "onSelect", "titleRender", "flatted", "checkedMode"]);
|
53
|
+
rest = __rest(_a, ["prefixCls", "role", "className", "children", "data", "flattedData", "onChangeData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "onLoadChildren", "onChange", "onSelect", "titleRender", "dropdownColumnRender", "flatted", "checkedMode"]);
|
52
54
|
|
53
55
|
if (checkCascaded === false) {
|
54
56
|
checkedMode = 'SEPARATE';
|
@@ -95,7 +97,7 @@ var CheckCascaderMenuList = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
95
97
|
onLoadChildren: onLoadChildren,
|
96
98
|
disabled: disabled
|
97
99
|
};
|
98
|
-
}, [
|
100
|
+
}, [expandTrigger, onOptionCheck, onItemExpand, flatted, changeOnSelect, titleRender, onLoadChildren, disabled]);
|
99
101
|
var menus = flatted ? getFlattedMenus(flattedData) : getActiveMenus(flattedData, selectedId);
|
100
102
|
var cls = cx(prefixCls, className, flatted && prefixCls + "--flatted", changeOnSelect && prefixCls + "--selectchange");
|
101
103
|
return /*#__PURE__*/React.createElement(CheckCascaderProvider, {
|
@@ -105,11 +107,12 @@ var CheckCascaderMenuList = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
105
107
|
role: role,
|
106
108
|
className: cls
|
107
109
|
}, rest), menus.map(function (menu, menuIndex) {
|
108
|
-
|
110
|
+
var menuContent = /*#__PURE__*/React.createElement(CheckCascaderMenu, {
|
109
111
|
key: menuIndex,
|
110
112
|
data: menu,
|
111
113
|
getCascaderItemRequiredProps: getCascaderItemRequiredProps
|
112
|
-
})
|
114
|
+
});
|
115
|
+
return menu.length > 0 ? isFunction(dropdownColumnRender) ? dropdownColumnRender(menuContent, menuIndex) : menuContent : null;
|
113
116
|
})));
|
114
117
|
});
|
115
118
|
|
@@ -7,8 +7,8 @@
|
|
7
7
|
* This source code is licensed under the MIT license found in the
|
8
8
|
* LICENSE file in the root directory of this source tree.
|
9
9
|
*/
|
10
|
-
import __styleInject__ from 'inject
|
11
|
-
var css_248z = "
|
10
|
+
import __styleInject__ from 'style-inject';
|
11
|
+
var css_248z = "@charset \"UTF-8\";.hi-v4-check-cascader__popper .hi-v4-picker__body {padding-left: 0;padding-right: 0;overflow-y: hidden;}.hi-v4-check-cascader__popper .hi-v4-picker__loading, .hi-v4-check-cascader__popper .hi-v4-picker__empty {padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-8, 16px);}.hi-v4-check-cascader-panel {white-space: nowrap;-webkit-box-sizing: border-box;box-sizing: border-box;}.hi-v4-check-cascader-panel-search {-webkit-box-sizing: border-box;box-sizing: border-box;padding: 0 10px 10px;position: relative;}.hi-v4-check-cascader-panel-search .hi-v4-input__prefix {font-size: 16px;padding-left: 0;}.hi-v4-check-cascader-panel-search__empty {display: inline-block;margin-top: 20px;font-size: 14px;font-weight: 400;color: #999;line-height: 20px;}.hi-v4-check-cascader-menus {display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-sizing: border-box;box-sizing: border-box;overflow-x: auto;}.hi-v4-check-cascader-menus--flatted .hi-v4-check-cascader-menu {-ms-flex-preferred-size: 100%;flex-basis: 100%;}.hi-v4-check-cascader-menu {-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;border: none;outline: none;font-size: var(--hi-v4-text-size-md, 0.875rem);vertical-align: middle;list-style: none;width: auto;box-sizing: border-box;-ms-flex-negative: 0;flex-shrink: 0;display: inline-block;min-width: 140px;max-height: 256px;overflow: auto;padding: 0 var(--hi-v4-spacing-4, 8px);border-right: var(--hi-v4-border-size-normal, 1px solid) var(--hi-v4-color-gray-200, #ebedf0);}.hi-v4-check-cascader-menu:last-of-type {border: none;}.hi-v4-check-cascader-menu--checkable .hi-v4-check-cascader-menu-checkbox + .title__text {padding-left: 8px;}.hi-v4-check-cascader-menu-item {width: 100%;padding: var(--hi-v4-spacing-1, 2px) 0;position: relative;cursor: pointer;display: -webkit-box;display: -ms-flexbox;display: flex;}.hi-v4-check-cascader-menu-checkbox {position: relative;}.hi-v4-check-cascader-menu-checkbox::after {right: 0;top: -8px;bottom: -8px;left: -8px;content: \"\";position: absolute;display: block;}.hi-v4-check-cascader-menu-option {padding: 0 var(--hi-v4-spacing-4, 8px);-webkit-box-sizing: border-box;box-sizing: border-box;height: var(--hi-v4-height-7, 28px);width: 100%;display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-align: center;-ms-flex-align: center;align-items: center;position: relative;-webkit-box-pack: justify;-ms-flex-pack: justify;justify-content: space-between;border-radius: var(--hi-v4-border-radius-md, 4px);}.hi-v4-check-cascader-menu-option:hover {background-color: var(--hi-v4-color-gray-100, #f2f4f7);}.hi-v4-check-cascader-menus--selectchange .hi-v4-check-cascader-menu-option:hover .hi-v4-checkbox__icon {border-color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-check-cascader-menu-option.hi-v4-check-cascader-menu-option--selected {background: var(--hi-v4-color-primary-50, var(--hi-v4-color-brandblue-50, #e2f3fe));color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-check-cascader-menu-option.hi-v4-check-cascader-menu-option--selected .hi-v4-check-cascader-menu-switcher {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-check-cascader-menu-option--focused {background-color: var(--hi-v4-color-primary-50, var(--hi-v4-color-brandblue-50, #e2f3fe));}.hi-v4-check-cascader-menu-option--disabled {cursor: not-allowed;color: var(--hi-v4-color-gray-500, #929aa6);background: transparent;}.hi-v4-check-cascader-menu-option--disabled .hi-v4-check-cascader-menu-switcher {color: var(--hi-v4-color-gray-400, #c9ced6);}.hi-v4-check-cascader-menu .title__text {-webkit-box-flex: 1;-ms-flex: 1 1;flex: 1 1;}.hi-v4-check-cascader-menu .title__text--cols {display: block;width: 100%;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0;padding: 0;border: none;outline: none;font-size: var(--hi-v4-text-size-md, 0.875rem);vertical-align: middle;list-style: none;}.hi-v4-check-cascader-menu .title__text--col {display: inline-block;}.hi-v4-check-cascader-menu .title__text--col::after {content: \" / \";}.hi-v4-check-cascader-menu .title__text--col:last-child::after {content: none;}.hi-v4-check-cascader-menu .title__text--matched {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-check-cascader-menu-switcher {-ms-flex-negative: 0;flex-shrink: 0;font-size: 16px;color: var(--hi-v4-color-gray-500, #929aa6);}.hi-v4-check-cascader-menu-switcher--loading {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa));}.hi-v4-tree--icon-loading {-webkit-animation-name: hi-rotate;animation-name: hi-rotate;-webkit-animation-duration: 2s;animation-duration: 2s;-webkit-animation-iteration-count: infinite;animation-iteration-count: infinite;}@-webkit-keyframes hi-rotate {from {-webkit-transform: rotate(0);transform: rotate(0);}to {-webkit-transform: rotate(360deg);transform: rotate(360deg);}}@keyframes hi-rotate {from {-webkit-transform: rotate(0);transform: rotate(0);}to {-webkit-transform: rotate(360deg);transform: rotate(360deg);}}";
|
12
12
|
|
13
13
|
__styleInject__(css_248z);
|
14
14
|
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { CheckCascaderDataItem, CheckCascaderExpandTriggerEnum, CheckCascaderItemEventData, FlattedCheckCascaderDataItem } from './types';
|
3
3
|
import { PickerProps } from '@hi-ui/picker';
|
4
|
-
import {
|
4
|
+
import { TagInputMockProps } from '@hi-ui/tag-input';
|
5
|
+
import { HiBaseAppearanceEnum, HiBaseSizeEnum } from '@hi-ui/core';
|
5
6
|
/**
|
6
|
-
*
|
7
|
+
* 多项级联选择器
|
7
8
|
*/
|
8
9
|
export declare const CheckCascader: React.ForwardRefExoticComponent<CheckCascaderProps & React.RefAttributes<HTMLDivElement | null>>;
|
9
10
|
export interface CheckCascaderProps extends Omit<PickerProps, 'trigger' | 'scrollable'> {
|
@@ -99,4 +100,20 @@ export interface CheckCascaderProps extends Omit<PickerProps, 'trigger' | 'scrol
|
|
99
100
|
* SEPARATE:父子完全独立受控
|
100
101
|
*/
|
101
102
|
checkedMode?: 'PARENT' | 'CHILD' | 'ALL' | 'SEPARATE';
|
103
|
+
/**
|
104
|
+
* TagInput 参数设置
|
105
|
+
*/
|
106
|
+
tagInputProps?: TagInputMockProps;
|
107
|
+
/**
|
108
|
+
* 设置尺寸
|
109
|
+
*/
|
110
|
+
size?: HiBaseSizeEnum;
|
111
|
+
/**
|
112
|
+
* 自定义下拉菜单底部渲染
|
113
|
+
*/
|
114
|
+
renderExtraFooter?: () => React.ReactNode;
|
115
|
+
/**
|
116
|
+
* 自定义下拉菜单每列渲染
|
117
|
+
*/
|
118
|
+
dropdownColumnRender?: (menu: React.ReactElement, level: number) => React.ReactNode;
|
102
119
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { FlattedCheckCascaderDataItem, CheckCascaderDataItemRequiredProps } from './types';
|
3
|
-
export declare const CheckCascaderMenu: ({ prefixCls, role, className, data: menu, getCascaderItemRequiredProps, }: CheckCascaderMenuProps) => JSX.Element;
|
3
|
+
export declare const CheckCascaderMenu: ({ prefixCls, role, className, style, data: menu, getCascaderItemRequiredProps, }: CheckCascaderMenuProps) => JSX.Element;
|
4
4
|
export interface CheckCascaderMenuProps {
|
5
5
|
/**
|
6
6
|
* 组件默认的选择器类
|
@@ -62,6 +62,10 @@ export interface CascaderMenusProps {
|
|
62
62
|
* 自定义渲染节点的 title 内容
|
63
63
|
*/
|
64
64
|
titleRender?: (item: CheckCascaderItemEventData) => React.ReactNode;
|
65
|
+
/**
|
66
|
+
* 自定义下拉菜单每列渲染
|
67
|
+
*/
|
68
|
+
dropdownColumnRender?: (menu: React.ReactElement, level: number) => React.ReactNode;
|
65
69
|
/**
|
66
70
|
* 多选数据交互时回填、回显模式
|
67
71
|
* PARENT: 当所有子节点被选中时将只保留父节点
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@hi-ui/check-cascader",
|
3
|
-
"version": "4.
|
3
|
+
"version": "4.2.0",
|
4
4
|
"description": "A sub-package for @hi-ui/hiui.",
|
5
5
|
"keywords": [],
|
6
6
|
"author": "HiUI <mi-hiui@xiaomi.com>",
|
@@ -51,10 +51,10 @@
|
|
51
51
|
"@hi-ui/func-utils": "^4.0.1",
|
52
52
|
"@hi-ui/icons": "^4.0.4",
|
53
53
|
"@hi-ui/input": "^4.0.6",
|
54
|
-
"@hi-ui/picker": "^4.
|
55
|
-
"@hi-ui/popper": "^4.0.
|
56
|
-
"@hi-ui/spinner": "^4.0.
|
57
|
-
"@hi-ui/tag-input": "^4.0.
|
54
|
+
"@hi-ui/picker": "^4.1.1",
|
55
|
+
"@hi-ui/popper": "^4.0.5",
|
56
|
+
"@hi-ui/spinner": "^4.0.4",
|
57
|
+
"@hi-ui/tag-input": "^4.0.6",
|
58
58
|
"@hi-ui/times": "^4.0.1",
|
59
59
|
"@hi-ui/tree-utils": "^4.0.2",
|
60
60
|
"@hi-ui/type-assertion": "^4.0.1",
|
@@ -63,7 +63,7 @@
|
|
63
63
|
"@hi-ui/use-latest": "^4.0.1",
|
64
64
|
"@hi-ui/use-merge-refs": "^4.0.1",
|
65
65
|
"@hi-ui/use-outside-click": "^4.0.1",
|
66
|
-
"@hi-ui/use-search-mode": "^4.0.
|
66
|
+
"@hi-ui/use-search-mode": "^4.0.6",
|
67
67
|
"@hi-ui/use-toggle": "^4.0.1",
|
68
68
|
"@hi-ui/use-uncontrolled-state": "^4.0.1"
|
69
69
|
},
|
@@ -74,8 +74,7 @@
|
|
74
74
|
},
|
75
75
|
"devDependencies": {
|
76
76
|
"@hi-ui/core": "^4.0.4",
|
77
|
-
"@hi-ui/core-css": "^4.
|
78
|
-
"@hi-ui/hi-build": "^4.0.1",
|
77
|
+
"@hi-ui/core-css": "^4.1.1",
|
79
78
|
"react": "^17.0.1",
|
80
79
|
"react-dom": "^17.0.1"
|
81
80
|
}
|