@hi-ui/cascader 4.2.0 → 4.3.1

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 CHANGED
@@ -1,5 +1,19 @@
1
1
  # @hi-ui/cascader
2
2
 
3
+ ## 4.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2994](https://github.com/XiaoMi/hiui/pull/2994) [`4d6b26507`](https://github.com/XiaoMi/hiui/commit/4d6b26507479030686d5da65e1bec8b353b80bfa) Thanks [@zyprepare](https://github.com/zyprepare)! - fix: 修复 keyword 设置后数据没有过滤的问题
8
+
9
+ ## 4.3.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#2921](https://github.com/XiaoMi/hiui/pull/2921) [`c6d9225c5`](https://github.com/XiaoMi/hiui/commit/c6d9225c5f09484344159e31af93f7ae147566bb) Thanks [@yang-x20](https://github.com/yang-x20)! - feat: 新增自定义触发器
14
+
15
+ - [#2824](https://github.com/XiaoMi/hiui/pull/2824) [`912c60b7b`](https://github.com/XiaoMi/hiui/commit/912c60b7b0f19a8386ec1de30fe6440e3963f288) Thanks [@xiamiao1121](https://github.com/xiamiao1121)! - feat: 支持前置后置内容
16
+
3
17
  ## 4.2.0
4
18
 
5
19
  ### Minor Changes
@@ -67,6 +67,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
67
67
  invalid = props.invalid,
68
68
  filterOption = props.filterOption,
69
69
  searchableProp = props.searchable,
70
+ keywordProp = props.keyword,
70
71
  onSearchProp = props.onSearch,
71
72
  titleRender = props.render,
72
73
  overlayClassName = props.overlayClassName,
@@ -77,13 +78,16 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
77
78
  visible = props.visible,
78
79
  _props$size = props.size,
79
80
  size = _props$size === void 0 ? 'md' : _props$size,
81
+ prefix = props.prefix,
82
+ suffix = props.suffix,
80
83
  onOpen = props.onOpen,
81
84
  onClose = props.onClose,
82
85
  renderExtraFooter = props.renderExtraFooter,
83
86
  dropdownColumnRender = props.dropdownColumnRender,
84
87
  _props$closeOnSelect = props.closeOnSelect,
85
88
  closeOnSelect = _props$closeOnSelect === void 0 ? true : _props$closeOnSelect,
86
- rest = tslib.__rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "onSearch", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "onOpen", "onClose", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect"]);
89
+ customRender = props.customRender,
90
+ rest = tslib.__rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "keyword", "onSearch", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "prefix", "suffix", "onOpen", "onClose", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect", "customRender"]);
87
91
  var i18n = core.useLocaleContext();
88
92
  var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('cascader.placeholder') : placeholderProp;
89
93
  var _useUncontrolledToggl = useToggle.useUncontrolledToggle({
@@ -141,6 +145,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
141
145
 
142
146
  var _useSearchMode = useSearchMode.useSearchMode({
143
147
  searchable: searchableProp,
148
+ keyword: keywordProp,
144
149
  strategies: [customSearchStrategy, upMatchSearchStrategy]
145
150
  }),
146
151
  stateInSearch = _useSearchMode.state,
@@ -237,13 +242,15 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
237
242
  searchable: searchable,
238
243
  scrollable: false,
239
244
  footer: typeAssertion.isFunction(renderExtraFooter) && renderExtraFooter(),
245
+ keyword: keywordProp,
240
246
  onSearch: funcUtils.callAllFuncs(onSearchProp, onSearch),
241
- trigger: /*#__PURE__*/React__default["default"].createElement(input.MockInput, {
247
+ trigger: customRender ? typeof customRender === 'function' ? customRender(selectedItem) : customRender : ( /*#__PURE__*/React__default["default"].createElement(input.MockInput, {
242
248
  size: size,
243
249
  clearable: clearable,
244
250
  placeholder: placeholder,
245
251
  displayRender: displayRender,
246
- suffix: menuVisible ? /*#__PURE__*/React__default["default"].createElement(icons.UpOutlined, null) : /*#__PURE__*/React__default["default"].createElement(icons.DownOutlined, null),
252
+ prefix: prefix,
253
+ suffix: [menuVisible ? /*#__PURE__*/React__default["default"].createElement(icons.UpOutlined, null) : /*#__PURE__*/React__default["default"].createElement(icons.DownOutlined, null), suffix],
247
254
  focused: menuVisible,
248
255
  value: value[value.length - 1],
249
256
  onChange: function onChange() {
@@ -252,7 +259,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
252
259
  data: mergedData,
253
260
  invalid: invalid,
254
261
  appearance: appearance
255
- })
262
+ }))
256
263
  }), typeAssertion.isArrayNonEmpty(showData) ? /*#__PURE__*/React__default["default"].createElement(CascaderMenuList.CascaderMenuList, null) : null));
257
264
  });
258
265
  if (env.__DEV__) {
@@ -54,6 +54,7 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
54
54
  invalid = props.invalid,
55
55
  filterOption = props.filterOption,
56
56
  searchableProp = props.searchable,
57
+ keywordProp = props.keyword,
57
58
  onSearchProp = props.onSearch,
58
59
  titleRender = props.render,
59
60
  overlayClassName = props.overlayClassName,
@@ -64,13 +65,16 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
64
65
  visible = props.visible,
65
66
  _props$size = props.size,
66
67
  size = _props$size === void 0 ? 'md' : _props$size,
68
+ prefix = props.prefix,
69
+ suffix = props.suffix,
67
70
  onOpen = props.onOpen,
68
71
  onClose = props.onClose,
69
72
  renderExtraFooter = props.renderExtraFooter,
70
73
  dropdownColumnRender = props.dropdownColumnRender,
71
74
  _props$closeOnSelect = props.closeOnSelect,
72
75
  closeOnSelect = _props$closeOnSelect === void 0 ? true : _props$closeOnSelect,
73
- rest = __rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "onSearch", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "onOpen", "onClose", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect"]);
76
+ customRender = props.customRender,
77
+ rest = __rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "keyword", "onSearch", "render", "overlayClassName", "data", "flattedSearchResult", "visible", "size", "prefix", "suffix", "onOpen", "onClose", "renderExtraFooter", "dropdownColumnRender", "closeOnSelect", "customRender"]);
74
78
  var i18n = useLocaleContext();
75
79
  var placeholder = isUndef(placeholderProp) ? i18n.get('cascader.placeholder') : placeholderProp;
76
80
  var _useUncontrolledToggl = useUncontrolledToggle({
@@ -128,6 +132,7 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
128
132
 
129
133
  var _useSearchMode = useSearchMode({
130
134
  searchable: searchableProp,
135
+ keyword: keywordProp,
131
136
  strategies: [customSearchStrategy, upMatchSearchStrategy]
132
137
  }),
133
138
  stateInSearch = _useSearchMode.state,
@@ -224,13 +229,15 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
224
229
  searchable: searchable,
225
230
  scrollable: false,
226
231
  footer: isFunction(renderExtraFooter) && renderExtraFooter(),
232
+ keyword: keywordProp,
227
233
  onSearch: callAllFuncs(onSearchProp, onSearch),
228
- trigger: /*#__PURE__*/React.createElement(MockInput, {
234
+ trigger: customRender ? typeof customRender === 'function' ? customRender(selectedItem) : customRender : ( /*#__PURE__*/React.createElement(MockInput, {
229
235
  size: size,
230
236
  clearable: clearable,
231
237
  placeholder: placeholder,
232
238
  displayRender: displayRender,
233
- suffix: menuVisible ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null),
239
+ prefix: prefix,
240
+ suffix: [menuVisible ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null), suffix],
234
241
  focused: menuVisible,
235
242
  value: value[value.length - 1],
236
243
  onChange: function onChange() {
@@ -239,7 +246,7 @@ var Cascader = /*#__PURE__*/forwardRef(function (props, ref) {
239
246
  data: mergedData,
240
247
  invalid: invalid,
241
248
  appearance: appearance
242
- })
249
+ }))
243
250
  }), isArrayNonEmpty(showData) ? /*#__PURE__*/React.createElement(CascaderMenuList, null) : null));
244
251
  });
245
252
  if (__DEV__) {
@@ -77,4 +77,16 @@ export interface CascaderProps extends Omit<PickerProps, 'data' | 'onChange' | '
77
77
  * 设置尺寸
78
78
  */
79
79
  size?: HiBaseSizeEnum;
80
+ /**
81
+ * 选择框前置内容
82
+ */
83
+ prefix?: React.ReactNode;
84
+ /**
85
+ * 选择框后置内容
86
+ */
87
+ suffix?: React.ReactNode;
88
+ /**
89
+ * 自定义触发器
90
+ */
91
+ customRender?: React.ReactNode | ((selectedItem: CascaderItemEventData | null) => React.ReactNode);
80
92
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/cascader",
3
- "version": "4.2.0",
3
+ "version": "4.3.1",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HiUI <mi-hiui@xiaomi.com>",