@hi-ui/cascader 5.0.0-experimental.1 → 5.0.0-experimental.2
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 +24 -0
- package/lib/cjs/Cascader.js +41 -4
- package/lib/cjs/CascaderMenuList.js +18 -8
- package/lib/esm/Cascader.js +41 -4
- package/lib/esm/CascaderMenuList.js +18 -8
- package/lib/types/Cascader.d.ts +7 -2
- package/lib/types/context.d.ts +4 -0
- package/package.json +13 -12
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
# @hi-ui/cascader
|
|
2
2
|
|
|
3
|
+
## 5.0.0-experimental.2
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 59cef699f: feat: 组件语义化样式改造,增加 styles 和 classNames 属性 (5.0)
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- eb17c4697: style: 修复 UI/样式问题 (5.0)
|
|
12
|
+
- Updated dependencies [7f204c892]
|
|
13
|
+
- Updated dependencies [eb17c4697]
|
|
14
|
+
- Updated dependencies [eb17c4697]
|
|
15
|
+
- Updated dependencies [c407744fe]
|
|
16
|
+
- Updated dependencies [59cef699f]
|
|
17
|
+
- @hi-ui/icons@5.0.0-experimental.1
|
|
18
|
+
- @hi-ui/core@5.0.0-experimental.1
|
|
19
|
+
- @hi-ui/highlighter@5.0.0-experimental.1
|
|
20
|
+
- @hi-ui/input@5.0.0-experimental.2
|
|
21
|
+
- @hi-ui/picker@5.0.0-experimental.2
|
|
22
|
+
- @hi-ui/popper@5.0.0-experimental.1
|
|
23
|
+
- @hi-ui/virtual-list@5.0.0-experimental.1
|
|
24
|
+
- @hi-ui/use-merge-semantic@5.0.0-experimental.0
|
|
25
|
+
- @hi-ui/spinner@5.0.0-experimental.1
|
|
26
|
+
|
|
3
27
|
## 5.0.0-experimental.1
|
|
4
28
|
|
|
5
29
|
### Patch Changes
|
package/lib/cjs/Cascader.js
CHANGED
|
@@ -31,6 +31,7 @@ var arrayUtils = require('@hi-ui/array-utils');
|
|
|
31
31
|
var index = require('./hooks/use-cache/lib/esm/index.js');
|
|
32
32
|
var core = require('@hi-ui/core');
|
|
33
33
|
var funcUtils = require('@hi-ui/func-utils');
|
|
34
|
+
var useMergeSemantic = require('@hi-ui/use-merge-semantic');
|
|
34
35
|
var CascaderMenuList = require('./CascaderMenuList.js');
|
|
35
36
|
var Highlighter = require('@hi-ui/highlighter');
|
|
36
37
|
function _interopDefaultCompat(e) {
|
|
@@ -96,11 +97,30 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
96
97
|
showIndicator = _props$showIndicator === void 0 ? true : _props$showIndicator,
|
|
97
98
|
renderExtraHeader = props.renderExtraHeader,
|
|
98
99
|
changeOnSelect = props.changeOnSelect,
|
|
99
|
-
|
|
100
|
+
classNamesProp = props.classNames,
|
|
101
|
+
stylesProp = props.styles,
|
|
102
|
+
rest = tslib.__rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "keyword", "onSearch", "clearSearchOnClosed", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "prefix", "suffix", "onOpen", "onClose", "onClear", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect", "customRender", "label", "virtual", "onItemClick", "showIndicator", "renderExtraHeader", "changeOnSelect", "classNames", "styles"]);
|
|
100
103
|
var _useGlobalContext = core.useGlobalContext(),
|
|
101
|
-
globalSize = _useGlobalContext.size
|
|
104
|
+
globalSize = _useGlobalContext.size,
|
|
105
|
+
cascaderConfig = _useGlobalContext.cascader;
|
|
102
106
|
var size = (_a = sizeProp !== null && sizeProp !== void 0 ? sizeProp : globalSize) !== null && _a !== void 0 ? _a : 'md';
|
|
103
107
|
var i18n = core.useLocaleContext();
|
|
108
|
+
var _useMergeSemantic = useMergeSemantic.useMergeSemantic({
|
|
109
|
+
classNamesList: [cascaderConfig === null || cascaderConfig === void 0 ? void 0 : cascaderConfig.classNames, classNamesProp],
|
|
110
|
+
stylesList: [cascaderConfig === null || cascaderConfig === void 0 ? void 0 : cascaderConfig.styles, stylesProp],
|
|
111
|
+
info: {
|
|
112
|
+
props: Object.assign(Object.assign({}, rest), {
|
|
113
|
+
disabled: disabled,
|
|
114
|
+
searchable: searchableProp,
|
|
115
|
+
visible: visible,
|
|
116
|
+
size: size,
|
|
117
|
+
appearance: appearance,
|
|
118
|
+
expandTrigger: expandTrigger
|
|
119
|
+
})
|
|
120
|
+
}
|
|
121
|
+
}),
|
|
122
|
+
classNames = _useMergeSemantic.classNames,
|
|
123
|
+
styles = _useMergeSemantic.styles;
|
|
104
124
|
var pickerInnerRef = React.useRef(null);
|
|
105
125
|
var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('cascader.placeholder') : placeholderProp;
|
|
106
126
|
var _useUncontrolledToggl = useToggle.useUncontrolledToggle({
|
|
@@ -254,6 +274,19 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
254
274
|
clear();
|
|
255
275
|
}
|
|
256
276
|
}, [value, clear]);
|
|
277
|
+
var pickerSemanticKeys = ['root', 'container', 'panel', 'header', 'search', 'body', 'footer', 'loading', 'empty', 'creator'];
|
|
278
|
+
var pickerClassNames = pickerSemanticKeys.reduce(function (acc, key) {
|
|
279
|
+
if ((classNames === null || classNames === void 0 ? void 0 : classNames[key]) !== undefined) {
|
|
280
|
+
acc[key] = classNames[key];
|
|
281
|
+
}
|
|
282
|
+
return acc;
|
|
283
|
+
}, {});
|
|
284
|
+
var pickerStyles = pickerSemanticKeys.reduce(function (acc, key) {
|
|
285
|
+
if (styles === null || styles === void 0 ? void 0 : styles[key]) {
|
|
286
|
+
acc[key] = styles[key];
|
|
287
|
+
}
|
|
288
|
+
return acc;
|
|
289
|
+
}, {});
|
|
257
290
|
return /*#__PURE__*/React__default["default"].createElement(context.CascaderProvider, {
|
|
258
291
|
value: Object.assign(Object.assign({}, context$1), {
|
|
259
292
|
expandTrigger: expandTrigger,
|
|
@@ -261,13 +294,17 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
261
294
|
menuList: showData,
|
|
262
295
|
dropdownColumnRender: dropdownColumnRender,
|
|
263
296
|
virtual: virtual,
|
|
264
|
-
onItemClickProp: onItemClickProp
|
|
297
|
+
onItemClickProp: onItemClickProp,
|
|
298
|
+
classNames: classNames,
|
|
299
|
+
styles: styles
|
|
265
300
|
})
|
|
266
301
|
}, /*#__PURE__*/React__default["default"].createElement(picker.Picker, Object.assign({
|
|
267
302
|
ref: ref,
|
|
268
303
|
innerRef: pickerInnerRef,
|
|
269
304
|
className: cls,
|
|
270
|
-
overlayClassName: classname.cx(prefixCls + "__popper", overlayClassName)
|
|
305
|
+
overlayClassName: classname.cx(prefixCls + "__popper", overlayClassName),
|
|
306
|
+
classNames: pickerClassNames,
|
|
307
|
+
styles: pickerStyles
|
|
271
308
|
}, rootProps, {
|
|
272
309
|
// 这种展现形式宽度是不固定的,关掉宽度匹配策略
|
|
273
310
|
overlay: Object.assign({
|
|
@@ -39,11 +39,15 @@ var CascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
|
|
|
39
39
|
var _useCascaderContext = context.useCascaderContext(),
|
|
40
40
|
flatted = _useCascaderContext.flatted,
|
|
41
41
|
menuList = _useCascaderContext.menuList,
|
|
42
|
-
dropdownColumnRender = _useCascaderContext.dropdownColumnRender
|
|
43
|
-
|
|
42
|
+
dropdownColumnRender = _useCascaderContext.dropdownColumnRender,
|
|
43
|
+
classNames = _useCascaderContext.classNames,
|
|
44
|
+
styles = _useCascaderContext.styles;
|
|
45
|
+
var cls = classname.cx(prefixCls, className, classNames === null || classNames === void 0 ? void 0 : classNames.menuList, flatted && prefixCls + "--flatted");
|
|
46
|
+
var rootStyle = styles === null || styles === void 0 ? void 0 : styles.menuList;
|
|
44
47
|
return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
|
|
45
48
|
ref: ref,
|
|
46
|
-
className: cls
|
|
49
|
+
className: cls,
|
|
50
|
+
style: rootStyle
|
|
47
51
|
}, rest), menuList.map(function (menu, menuIndex) {
|
|
48
52
|
return typeAssertion.isArrayNonEmpty(menu) ? typeAssertion.isFunction(dropdownColumnRender) ? dropdownColumnRender( /*#__PURE__*/React__default["default"].createElement(CascaderMenu, {
|
|
49
53
|
key: menuIndex,
|
|
@@ -67,8 +71,11 @@ var CascaderMenu = function CascaderMenu(_ref) {
|
|
|
67
71
|
style = _ref.style,
|
|
68
72
|
menu = _ref.data;
|
|
69
73
|
var _useCascaderContext2 = context.useCascaderContext(),
|
|
70
|
-
virtual = _useCascaderContext2.virtual
|
|
71
|
-
|
|
74
|
+
virtual = _useCascaderContext2.virtual,
|
|
75
|
+
classNames = _useCascaderContext2.classNames,
|
|
76
|
+
styles = _useCascaderContext2.styles;
|
|
77
|
+
var cls = classname.cx(prefixCls, className, classNames === null || classNames === void 0 ? void 0 : classNames.menu);
|
|
78
|
+
var menuStyle = Object.assign(Object.assign({}, style), styles === null || styles === void 0 ? void 0 : styles.menu);
|
|
72
79
|
var virtualListProps = {
|
|
73
80
|
virtual: virtual,
|
|
74
81
|
data: menu,
|
|
@@ -77,7 +84,7 @@ var CascaderMenu = function CascaderMenu(_ref) {
|
|
|
77
84
|
};
|
|
78
85
|
return /*#__PURE__*/React__default["default"].createElement("ul", {
|
|
79
86
|
className: cls,
|
|
80
|
-
style:
|
|
87
|
+
style: menuStyle,
|
|
81
88
|
role: role
|
|
82
89
|
}, typeAssertion.isArrayNonEmpty(menu) ? virtual ? ( /*#__PURE__*/React__default["default"].createElement(VirtualList__default["default"], Object.assign({
|
|
83
90
|
itemKey: 'id',
|
|
@@ -108,13 +115,15 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
|
|
|
108
115
|
onItemHover = _useCascaderContext3.onItemHover,
|
|
109
116
|
titleRender = _useCascaderContext3.titleRender,
|
|
110
117
|
onLoadChildren = _useCascaderContext3.onLoadChildren,
|
|
111
|
-
getItemRequiredProps = _useCascaderContext3.getItemRequiredProps
|
|
118
|
+
getItemRequiredProps = _useCascaderContext3.getItemRequiredProps,
|
|
119
|
+
classNames = _useCascaderContext3.classNames,
|
|
120
|
+
styles = _useCascaderContext3.styles;
|
|
112
121
|
var eventOption = index.getItemEventData(option, getItemRequiredProps(option));
|
|
113
122
|
var selected = eventOption.selected,
|
|
114
123
|
loading = eventOption.loading,
|
|
115
124
|
active = eventOption.active;
|
|
116
125
|
var disabled = disabledContext || option.disabled;
|
|
117
|
-
var optionCls = classname.cx(prefixCls + "-option", active && prefixCls + "-option--active", loading && prefixCls + "-option--loading", disabled && prefixCls + "-option--disabled", selected && prefixCls + "-option--selected");
|
|
126
|
+
var optionCls = classname.cx(prefixCls + "-option", active && prefixCls + "-option--active", loading && prefixCls + "-option--loading", disabled && prefixCls + "-option--disabled", selected && prefixCls + "-option--selected", classNames === null || classNames === void 0 ? void 0 : classNames.option);
|
|
118
127
|
return /*#__PURE__*/React__default["default"].createElement("li", {
|
|
119
128
|
ref: ref,
|
|
120
129
|
key: option.id,
|
|
@@ -123,6 +132,7 @@ var MenuItem = /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
|
|
|
123
132
|
title: typeof option.title === 'string' ? option.title : undefined
|
|
124
133
|
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
125
134
|
className: optionCls,
|
|
135
|
+
style: styles === null || styles === void 0 ? void 0 : styles.option,
|
|
126
136
|
onClick: function onClick(evt) {
|
|
127
137
|
if (disabled) return;
|
|
128
138
|
onItemClick(eventOption);
|
package/lib/esm/Cascader.js
CHANGED
|
@@ -25,6 +25,7 @@ import { uniqBy } from '@hi-ui/array-utils';
|
|
|
25
25
|
import { useCache } from './hooks/use-cache/lib/esm/index.js';
|
|
26
26
|
import { useGlobalContext, useLocaleContext } from '@hi-ui/core';
|
|
27
27
|
import { callAllFuncs } from '@hi-ui/func-utils';
|
|
28
|
+
import { useMergeSemantic } from '@hi-ui/use-merge-semantic';
|
|
28
29
|
import { CascaderMenuList } from './CascaderMenuList.js';
|
|
29
30
|
import Highlighter from '@hi-ui/highlighter';
|
|
30
31
|
var _prefix = getPrefixCls('cascader');
|
|
@@ -83,11 +84,30 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
83
84
|
showIndicator = _props$showIndicator === void 0 ? true : _props$showIndicator,
|
|
84
85
|
renderExtraHeader = props.renderExtraHeader,
|
|
85
86
|
changeOnSelect = props.changeOnSelect,
|
|
86
|
-
|
|
87
|
+
classNamesProp = props.classNames,
|
|
88
|
+
stylesProp = props.styles,
|
|
89
|
+
rest = __rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "keyword", "onSearch", "clearSearchOnClosed", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "prefix", "suffix", "onOpen", "onClose", "onClear", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect", "customRender", "label", "virtual", "onItemClick", "showIndicator", "renderExtraHeader", "changeOnSelect", "classNames", "styles"]);
|
|
87
90
|
var _useGlobalContext = useGlobalContext(),
|
|
88
|
-
globalSize = _useGlobalContext.size
|
|
91
|
+
globalSize = _useGlobalContext.size,
|
|
92
|
+
cascaderConfig = _useGlobalContext.cascader;
|
|
89
93
|
var size = (_a = sizeProp !== null && sizeProp !== void 0 ? sizeProp : globalSize) !== null && _a !== void 0 ? _a : 'md';
|
|
90
94
|
var i18n = useLocaleContext();
|
|
95
|
+
var _useMergeSemantic = useMergeSemantic({
|
|
96
|
+
classNamesList: [cascaderConfig === null || cascaderConfig === void 0 ? void 0 : cascaderConfig.classNames, classNamesProp],
|
|
97
|
+
stylesList: [cascaderConfig === null || cascaderConfig === void 0 ? void 0 : cascaderConfig.styles, stylesProp],
|
|
98
|
+
info: {
|
|
99
|
+
props: Object.assign(Object.assign({}, rest), {
|
|
100
|
+
disabled: disabled,
|
|
101
|
+
searchable: searchableProp,
|
|
102
|
+
visible: visible,
|
|
103
|
+
size: size,
|
|
104
|
+
appearance: appearance,
|
|
105
|
+
expandTrigger: expandTrigger
|
|
106
|
+
})
|
|
107
|
+
}
|
|
108
|
+
}),
|
|
109
|
+
classNames = _useMergeSemantic.classNames,
|
|
110
|
+
styles = _useMergeSemantic.styles;
|
|
91
111
|
var pickerInnerRef = useRef(null);
|
|
92
112
|
var placeholder = isUndef(placeholderProp) ? i18n.get('cascader.placeholder') : placeholderProp;
|
|
93
113
|
var _useUncontrolledToggl = useUncontrolledToggle({
|
|
@@ -241,6 +261,19 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
241
261
|
clear();
|
|
242
262
|
}
|
|
243
263
|
}, [value, clear]);
|
|
264
|
+
var pickerSemanticKeys = ['root', 'container', 'panel', 'header', 'search', 'body', 'footer', 'loading', 'empty', 'creator'];
|
|
265
|
+
var pickerClassNames = pickerSemanticKeys.reduce(function (acc, key) {
|
|
266
|
+
if ((classNames === null || classNames === void 0 ? void 0 : classNames[key]) !== undefined) {
|
|
267
|
+
acc[key] = classNames[key];
|
|
268
|
+
}
|
|
269
|
+
return acc;
|
|
270
|
+
}, {});
|
|
271
|
+
var pickerStyles = pickerSemanticKeys.reduce(function (acc, key) {
|
|
272
|
+
if (styles === null || styles === void 0 ? void 0 : styles[key]) {
|
|
273
|
+
acc[key] = styles[key];
|
|
274
|
+
}
|
|
275
|
+
return acc;
|
|
276
|
+
}, {});
|
|
244
277
|
return /*#__PURE__*/React.createElement(CascaderProvider, {
|
|
245
278
|
value: Object.assign(Object.assign({}, context), {
|
|
246
279
|
expandTrigger: expandTrigger,
|
|
@@ -248,13 +281,17 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
248
281
|
menuList: showData,
|
|
249
282
|
dropdownColumnRender: dropdownColumnRender,
|
|
250
283
|
virtual: virtual,
|
|
251
|
-
onItemClickProp: onItemClickProp
|
|
284
|
+
onItemClickProp: onItemClickProp,
|
|
285
|
+
classNames: classNames,
|
|
286
|
+
styles: styles
|
|
252
287
|
})
|
|
253
288
|
}, /*#__PURE__*/React.createElement(Picker, Object.assign({
|
|
254
289
|
ref: ref,
|
|
255
290
|
innerRef: pickerInnerRef,
|
|
256
291
|
className: cls,
|
|
257
|
-
overlayClassName: cx(prefixCls + "__popper", overlayClassName)
|
|
292
|
+
overlayClassName: cx(prefixCls + "__popper", overlayClassName),
|
|
293
|
+
classNames: pickerClassNames,
|
|
294
|
+
styles: pickerStyles
|
|
258
295
|
}, rootProps, {
|
|
259
296
|
// 这种展现形式宽度是不固定的,关掉宽度匹配策略
|
|
260
297
|
overlay: Object.assign({
|
|
@@ -26,11 +26,15 @@ var CascaderMenuList = /*#__PURE__*/forwardRef(function (_a, ref) {
|
|
|
26
26
|
var _useCascaderContext = useCascaderContext(),
|
|
27
27
|
flatted = _useCascaderContext.flatted,
|
|
28
28
|
menuList = _useCascaderContext.menuList,
|
|
29
|
-
dropdownColumnRender = _useCascaderContext.dropdownColumnRender
|
|
30
|
-
|
|
29
|
+
dropdownColumnRender = _useCascaderContext.dropdownColumnRender,
|
|
30
|
+
classNames = _useCascaderContext.classNames,
|
|
31
|
+
styles = _useCascaderContext.styles;
|
|
32
|
+
var cls = cx(prefixCls, className, classNames === null || classNames === void 0 ? void 0 : classNames.menuList, flatted && prefixCls + "--flatted");
|
|
33
|
+
var rootStyle = styles === null || styles === void 0 ? void 0 : styles.menuList;
|
|
31
34
|
return /*#__PURE__*/React.createElement("div", Object.assign({
|
|
32
35
|
ref: ref,
|
|
33
|
-
className: cls
|
|
36
|
+
className: cls,
|
|
37
|
+
style: rootStyle
|
|
34
38
|
}, rest), menuList.map(function (menu, menuIndex) {
|
|
35
39
|
return isArrayNonEmpty(menu) ? isFunction(dropdownColumnRender) ? dropdownColumnRender( /*#__PURE__*/React.createElement(CascaderMenu, {
|
|
36
40
|
key: menuIndex,
|
|
@@ -54,8 +58,11 @@ var CascaderMenu = function CascaderMenu(_ref) {
|
|
|
54
58
|
style = _ref.style,
|
|
55
59
|
menu = _ref.data;
|
|
56
60
|
var _useCascaderContext2 = useCascaderContext(),
|
|
57
|
-
virtual = _useCascaderContext2.virtual
|
|
58
|
-
|
|
61
|
+
virtual = _useCascaderContext2.virtual,
|
|
62
|
+
classNames = _useCascaderContext2.classNames,
|
|
63
|
+
styles = _useCascaderContext2.styles;
|
|
64
|
+
var cls = cx(prefixCls, className, classNames === null || classNames === void 0 ? void 0 : classNames.menu);
|
|
65
|
+
var menuStyle = Object.assign(Object.assign({}, style), styles === null || styles === void 0 ? void 0 : styles.menu);
|
|
59
66
|
var virtualListProps = {
|
|
60
67
|
virtual: virtual,
|
|
61
68
|
data: menu,
|
|
@@ -64,7 +71,7 @@ var CascaderMenu = function CascaderMenu(_ref) {
|
|
|
64
71
|
};
|
|
65
72
|
return /*#__PURE__*/React.createElement("ul", {
|
|
66
73
|
className: cls,
|
|
67
|
-
style:
|
|
74
|
+
style: menuStyle,
|
|
68
75
|
role: role
|
|
69
76
|
}, isArrayNonEmpty(menu) ? virtual ? ( /*#__PURE__*/React.createElement(VirtualList, Object.assign({
|
|
70
77
|
itemKey: 'id',
|
|
@@ -95,13 +102,15 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref2, ref) {
|
|
|
95
102
|
onItemHover = _useCascaderContext3.onItemHover,
|
|
96
103
|
titleRender = _useCascaderContext3.titleRender,
|
|
97
104
|
onLoadChildren = _useCascaderContext3.onLoadChildren,
|
|
98
|
-
getItemRequiredProps = _useCascaderContext3.getItemRequiredProps
|
|
105
|
+
getItemRequiredProps = _useCascaderContext3.getItemRequiredProps,
|
|
106
|
+
classNames = _useCascaderContext3.classNames,
|
|
107
|
+
styles = _useCascaderContext3.styles;
|
|
99
108
|
var eventOption = getItemEventData(option, getItemRequiredProps(option));
|
|
100
109
|
var selected = eventOption.selected,
|
|
101
110
|
loading = eventOption.loading,
|
|
102
111
|
active = eventOption.active;
|
|
103
112
|
var disabled = disabledContext || option.disabled;
|
|
104
|
-
var optionCls = cx(prefixCls + "-option", active && prefixCls + "-option--active", loading && prefixCls + "-option--loading", disabled && prefixCls + "-option--disabled", selected && prefixCls + "-option--selected");
|
|
113
|
+
var optionCls = cx(prefixCls + "-option", active && prefixCls + "-option--active", loading && prefixCls + "-option--loading", disabled && prefixCls + "-option--disabled", selected && prefixCls + "-option--selected", classNames === null || classNames === void 0 ? void 0 : classNames.option);
|
|
105
114
|
return /*#__PURE__*/React.createElement("li", {
|
|
106
115
|
ref: ref,
|
|
107
116
|
key: option.id,
|
|
@@ -110,6 +119,7 @@ var MenuItem = /*#__PURE__*/forwardRef(function (_ref2, ref) {
|
|
|
110
119
|
title: typeof option.title === 'string' ? option.title : undefined
|
|
111
120
|
}, /*#__PURE__*/React.createElement("div", {
|
|
112
121
|
className: optionCls,
|
|
122
|
+
style: styles === null || styles === void 0 ? void 0 : styles.option,
|
|
113
123
|
onClick: function onClick(evt) {
|
|
114
124
|
if (disabled) return;
|
|
115
125
|
onItemClick(eventOption);
|
package/lib/types/Cascader.d.ts
CHANGED
|
@@ -3,13 +3,18 @@ import type { HiBaseSizeEnum } from '@hi-ui/core';
|
|
|
3
3
|
import { UseCascaderProps } from './use-cascader';
|
|
4
4
|
import type { PopperOverlayProps } from '@hi-ui/popper';
|
|
5
5
|
import { CascaderExpandTriggerEnum, CascaderItemEventData, CascaderAppearanceEnum } from './types';
|
|
6
|
-
import { PickerProps } from '@hi-ui/picker';
|
|
6
|
+
import { PickerProps, PickerSemanticName } from '@hi-ui/picker';
|
|
7
|
+
import type { ComponentSemantic, SemanticClassNamesType, SemanticStylesType } from '@hi-ui/use-merge-semantic';
|
|
7
8
|
/**
|
|
8
9
|
* 级联选择器
|
|
9
10
|
* Trigger + MenuList + Search
|
|
10
11
|
*/
|
|
11
12
|
export declare const Cascader: React.ForwardRefExoticComponent<CascaderProps & React.RefAttributes<HTMLDivElement | null>>;
|
|
12
|
-
export
|
|
13
|
+
export type CascaderSemanticName = PickerSemanticName | 'menuList' | 'menu' | 'option';
|
|
14
|
+
export type CascaderSemanticClassNames = SemanticClassNamesType<CascaderProps, CascaderSemanticName>;
|
|
15
|
+
export type CascaderSemanticStyles = SemanticStylesType<CascaderProps, CascaderSemanticName>;
|
|
16
|
+
export type CascaderSemantic = ComponentSemantic<CascaderSemanticClassNames, CascaderSemanticStyles>;
|
|
17
|
+
export interface CascaderProps extends Omit<PickerProps, 'data' | 'onChange' | 'trigger' | 'scrollable' | 'header' | 'footer' | 'classNames' | 'styles'>, UseCascaderProps, CascaderSemantic {
|
|
13
18
|
/**
|
|
14
19
|
* 将 check 子项拍平展示。暂不对外暴露
|
|
15
20
|
* @private
|
package/lib/types/context.d.ts
CHANGED
|
@@ -23,6 +23,8 @@ export declare const CascaderProvider: React.Provider<(Omit<{
|
|
|
23
23
|
dropdownColumnRender?: (menu: React.ReactElement, level: number) => React.ReactNode;
|
|
24
24
|
virtual?: boolean;
|
|
25
25
|
onItemClickProp?: (event: React.MouseEvent<HTMLDivElement>, option: CascaderItemEventData) => void;
|
|
26
|
+
classNames?: Partial<Record<string, string>>;
|
|
27
|
+
styles?: Partial<Record<string, React.CSSProperties>>;
|
|
26
28
|
}) | null>;
|
|
27
29
|
export declare const useCascaderContext: () => Omit<{
|
|
28
30
|
rootProps: {
|
|
@@ -47,4 +49,6 @@ export declare const useCascaderContext: () => Omit<{
|
|
|
47
49
|
dropdownColumnRender?: (menu: React.ReactElement, level: number) => React.ReactNode;
|
|
48
50
|
virtual?: boolean;
|
|
49
51
|
onItemClickProp?: (event: React.MouseEvent<HTMLDivElement>, option: CascaderItemEventData) => void;
|
|
52
|
+
classNames?: Partial<Record<string, string>>;
|
|
53
|
+
styles?: Partial<Record<string, React.CSSProperties>>;
|
|
50
54
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hi-ui/cascader",
|
|
3
|
-
"version": "5.0.0-experimental.
|
|
3
|
+
"version": "5.0.0-experimental.2",
|
|
4
4
|
"description": "A sub-package for @hi-ui/hiui.",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"author": "HiUI <mi-hiui@xiaomi.com>",
|
|
@@ -48,12 +48,12 @@
|
|
|
48
48
|
"@hi-ui/classname": "^5.0.0-experimental.0",
|
|
49
49
|
"@hi-ui/env": "^5.0.0-experimental.0",
|
|
50
50
|
"@hi-ui/func-utils": "^5.0.0-experimental.0",
|
|
51
|
-
"@hi-ui/highlighter": "^5.0.0-experimental.
|
|
52
|
-
"@hi-ui/icons": "^5.0.0-experimental.
|
|
53
|
-
"@hi-ui/input": "^5.0.0-experimental.
|
|
54
|
-
"@hi-ui/picker": "^5.0.0-experimental.
|
|
55
|
-
"@hi-ui/popper": "^5.0.0-experimental.
|
|
56
|
-
"@hi-ui/spinner": "^5.0.0-experimental.
|
|
51
|
+
"@hi-ui/highlighter": "^5.0.0-experimental.1",
|
|
52
|
+
"@hi-ui/icons": "^5.0.0-experimental.1",
|
|
53
|
+
"@hi-ui/input": "^5.0.0-experimental.2",
|
|
54
|
+
"@hi-ui/picker": "^5.0.0-experimental.2",
|
|
55
|
+
"@hi-ui/popper": "^5.0.0-experimental.1",
|
|
56
|
+
"@hi-ui/spinner": "^5.0.0-experimental.1",
|
|
57
57
|
"@hi-ui/tree-utils": "^5.0.0-experimental.0",
|
|
58
58
|
"@hi-ui/type-assertion": "^5.0.0-experimental.0",
|
|
59
59
|
"@hi-ui/use-check-state": "^5.0.0-experimental.0",
|
|
@@ -62,17 +62,18 @@
|
|
|
62
62
|
"@hi-ui/use-search-mode": "^5.0.0-experimental.0",
|
|
63
63
|
"@hi-ui/use-toggle": "^5.0.0-experimental.0",
|
|
64
64
|
"@hi-ui/use-uncontrolled-state": "^5.0.0-experimental.0",
|
|
65
|
-
"@hi-ui/virtual-list": "^5.0.0-experimental.
|
|
66
|
-
"scroll-into-view-if-needed": "^3.1.0"
|
|
65
|
+
"@hi-ui/virtual-list": "^5.0.0-experimental.1",
|
|
66
|
+
"scroll-into-view-if-needed": "^3.1.0",
|
|
67
|
+
"@hi-ui/use-merge-semantic": "^5.0.0-experimental.0"
|
|
67
68
|
},
|
|
68
69
|
"peerDependencies": {
|
|
69
|
-
"@hi-ui/core": ">=5.0.0-experimental.
|
|
70
|
+
"@hi-ui/core": ">=5.0.0-experimental.1",
|
|
70
71
|
"react": ">=16.8.6",
|
|
71
72
|
"react-dom": ">=16.8.6"
|
|
72
73
|
},
|
|
73
74
|
"devDependencies": {
|
|
74
|
-
"@hi-ui/core": "^5.0.0-experimental.
|
|
75
|
-
"@hi-ui/core-css": "^5.0.0-experimental.
|
|
75
|
+
"@hi-ui/core": "^5.0.0-experimental.1",
|
|
76
|
+
"@hi-ui/core-css": "^5.0.0-experimental.2",
|
|
76
77
|
"react": "^17.0.1",
|
|
77
78
|
"react-dom": "^17.0.1"
|
|
78
79
|
}
|