@hi-ui/check-cascader 4.1.0 → 4.2.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/check-cascader
2
2
 
3
+ ## 4.2.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#2612](https://github.com/XiaoMi/hiui/pull/2612) [`832360b54`](https://github.com/XiaoMi/hiui/commit/832360b54231983148858b12707087c6b6fbac87) Thanks [@zyprepare](https://github.com/zyprepare)! - fix: 修改下拉菜单高度为 32px
8
+
9
+ ## 4.2.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#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
14
+
15
+ - [#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
16
+
3
17
  ## 4.1.0
4
18
 
5
19
  ### Minor Changes
@@ -100,7 +100,11 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
100
100
  onOpen = _a.onOpen,
101
101
  onClose = _a.onClose,
102
102
  tagInputProps = _a.tagInputProps,
103
- 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"]);
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"]);
104
108
 
105
109
  var i18n = core.useLocaleContext();
106
110
  var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('checkCascader.placeholder') : placeholderProp;
@@ -242,8 +246,10 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
242
246
  onClose: menuVisibleAction.off,
243
247
  searchable: searchable,
244
248
  scrollable: false,
249
+ footer: typeAssertion.isFunction(renderExtraFooter) && renderExtraFooter(),
245
250
  onSearch: funcUtils.callAllFuncs(onSearchProp, onSearch),
246
251
  trigger: /*#__PURE__*/React__default["default"].createElement(tagInput.TagInputMock, Object.assign({}, tagInputProps, {
252
+ size: size,
247
253
  clearable: clearable,
248
254
  placeholder: placeholder,
249
255
  // @ts-ignore
@@ -273,7 +279,8 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
273
279
  flattedData: selectProps.data,
274
280
  data: cascaderData,
275
281
  onChangeData: setCascaderData,
276
- checkedMode: checkedMode
282
+ checkedMode: checkedMode,
283
+ dropdownColumnRender: dropdownColumnRender
277
284
  }) : null);
278
285
  });
279
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
- }, [changeOnSelect, expandTrigger, onOptionCheck, onItemExpand, flatted, titleRender, onLoadChildren, disabled]);
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
- return menu.length > 0 ? /*#__PURE__*/React__default["default"].createElement(CheckCascaderMenu.CheckCascaderMenu, {
138
+ var menuContent = /*#__PURE__*/React__default["default"].createElement(CheckCascaderMenu.CheckCascaderMenu, {
136
139
  key: menuIndex,
137
140
  data: menu,
138
141
  getCascaderItemRequiredProps: getCascaderItemRequiredProps
139
- }) : null;
142
+ });
143
+ return menu.length > 0 ? typeAssertion.isFunction(dropdownColumnRender) ? dropdownColumnRender(menuContent, menuIndex) : menuContent : null;
140
144
  })));
141
145
  });
142
146
 
@@ -12,7 +12,7 @@
12
12
  Object.defineProperty(exports, '__esModule', {
13
13
  value: true
14
14
  });
15
- var css_248z = ".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-2, 4px) 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: 32px;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: '\\00a0/\\00a0'; }.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); } }";
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%;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: var(--hi-v4-spacing-1, 2px) var(--hi-v4-spacing-3, 6px);-webkit-box-sizing: border-box;box-sizing: border-box;height: var(--hi-v4-height-8, 32px);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
17
  var __styleInject__ = require('style-inject')["default"];
18
18
 
@@ -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
 
@@ -67,7 +67,11 @@ var CheckCascader = /*#__PURE__*/forwardRef(function (_a, ref) {
67
67
  onOpen = _a.onOpen,
68
68
  onClose = _a.onClose,
69
69
  tagInputProps = _a.tagInputProps,
70
- 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"]);
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"]);
71
75
 
72
76
  var i18n = useLocaleContext();
73
77
  var placeholder = isUndef(placeholderProp) ? i18n.get('checkCascader.placeholder') : placeholderProp;
@@ -209,8 +213,10 @@ var CheckCascader = /*#__PURE__*/forwardRef(function (_a, ref) {
209
213
  onClose: menuVisibleAction.off,
210
214
  searchable: searchable,
211
215
  scrollable: false,
216
+ footer: isFunction(renderExtraFooter) && renderExtraFooter(),
212
217
  onSearch: callAllFuncs(onSearchProp, onSearch),
213
218
  trigger: /*#__PURE__*/React.createElement(TagInputMock, Object.assign({}, tagInputProps, {
219
+ size: size,
214
220
  clearable: clearable,
215
221
  placeholder: placeholder,
216
222
  // @ts-ignore
@@ -240,7 +246,8 @@ var CheckCascader = /*#__PURE__*/forwardRef(function (_a, ref) {
240
246
  flattedData: selectProps.data,
241
247
  data: cascaderData,
242
248
  onChangeData: setCascaderData,
243
- checkedMode: checkedMode
249
+ checkedMode: checkedMode,
250
+ dropdownColumnRender: dropdownColumnRender
244
251
  }) : null);
245
252
  });
246
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
- }, [changeOnSelect, expandTrigger, onOptionCheck, onItemExpand, flatted, titleRender, onLoadChildren, disabled]);
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
- return menu.length > 0 ? /*#__PURE__*/React.createElement(CheckCascaderMenu, {
110
+ var menuContent = /*#__PURE__*/React.createElement(CheckCascaderMenu, {
109
111
  key: menuIndex,
110
112
  data: menu,
111
113
  getCascaderItemRequiredProps: getCascaderItemRequiredProps
112
- }) : null;
114
+ });
115
+ return menu.length > 0 ? isFunction(dropdownColumnRender) ? dropdownColumnRender(menuContent, menuIndex) : menuContent : null;
113
116
  })));
114
117
  });
115
118
 
@@ -8,7 +8,7 @@
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
  import __styleInject__ from 'style-inject';
11
- var css_248z = ".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-2, 4px) 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: 32px;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: '\\00a0/\\00a0'; }.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); } }";
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%;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: var(--hi-v4-spacing-1, 2px) var(--hi-v4-spacing-3, 6px);-webkit-box-sizing: border-box;box-sizing: border-box;height: var(--hi-v4-height-8, 32px);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
 
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { CheckCascaderDataItem, CheckCascaderExpandTriggerEnum, CheckCascaderItemEventData, FlattedCheckCascaderDataItem } from './types';
3
3
  import { PickerProps } from '@hi-ui/picker';
4
4
  import { TagInputMockProps } from '@hi-ui/tag-input';
5
- import { HiBaseAppearanceEnum } from '@hi-ui/core';
5
+ import { HiBaseAppearanceEnum, HiBaseSizeEnum } from '@hi-ui/core';
6
6
  /**
7
7
  * 多项级联选择器
8
8
  */
@@ -104,4 +104,16 @@ export interface CheckCascaderProps extends Omit<PickerProps, 'trigger' | 'scrol
104
104
  * TagInput 参数设置
105
105
  */
106
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;
107
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.1.0",
3
+ "version": "4.2.1",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HiUI <mi-hiui@xiaomi.com>",
@@ -74,7 +74,7 @@
74
74
  },
75
75
  "devDependencies": {
76
76
  "@hi-ui/core": "^4.0.4",
77
- "@hi-ui/core-css": "^4.0.1",
77
+ "@hi-ui/core-css": "^4.1.1",
78
78
  "react": "^17.0.1",
79
79
  "react-dom": "^17.0.1"
80
80
  }