rsuite 5.55.1 → 5.57.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.
Files changed (223) hide show
  1. package/AutoComplete/styles/index.css +3 -3
  2. package/CHANGELOG.md +33 -0
  3. package/CascadeTree/package.json +7 -0
  4. package/CascadeTree/styles/index.css +273 -0
  5. package/CascadeTree/styles/index.less +77 -0
  6. package/CascadeTree/styles/search.less +45 -0
  7. package/Cascader/styles/index.css +190 -195
  8. package/Cascader/styles/index.less +1 -122
  9. package/CheckPicker/styles/index.css +142 -40
  10. package/CheckPicker/styles/index.less +1 -1
  11. package/CheckTree/styles/index.css +143 -41
  12. package/CheckTreePicker/styles/index.css +143 -41
  13. package/CheckTreePicker/styles/index.less +2 -2
  14. package/Checkbox/styles/index.css +159 -36
  15. package/Checkbox/styles/index.less +32 -13
  16. package/DatePicker/styles/index.css +3 -3
  17. package/DateRangePicker/styles/index.css +3 -3
  18. package/InputPicker/styles/index.css +3 -3
  19. package/MultiCascadeTree/package.json +7 -0
  20. package/MultiCascadeTree/styles/index.css +3701 -0
  21. package/MultiCascadeTree/styles/index.less +37 -0
  22. package/MultiCascader/styles/index.css +213 -108
  23. package/MultiCascader/styles/index.less +11 -31
  24. package/Pagination/styles/index.css +3 -3
  25. package/Radio/styles/index.css +133 -19
  26. package/Radio/styles/index.less +28 -12
  27. package/RadioGroup/styles/index.css +1 -1
  28. package/RadioGroup/styles/index.less +1 -1
  29. package/SelectPicker/styles/index.css +3 -3
  30. package/TagGroup/styles/index.css +1 -1
  31. package/TagGroup/styles/index.less +1 -1
  32. package/TagInput/styles/index.css +141 -39
  33. package/TagPicker/styles/index.css +141 -39
  34. package/cjs/@types/common.d.ts +12 -14
  35. package/cjs/CascadeTree/CascadeTree.d.ts +16 -0
  36. package/cjs/CascadeTree/CascadeTree.js +174 -0
  37. package/cjs/CascadeTree/SearchView.d.ts +17 -0
  38. package/cjs/CascadeTree/SearchView.js +106 -0
  39. package/cjs/CascadeTree/TreeView.d.ts +20 -0
  40. package/cjs/{Cascader → CascadeTree}/TreeView.js +42 -33
  41. package/cjs/CascadeTree/hooks/index.d.ts +3 -0
  42. package/cjs/CascadeTree/hooks/index.js +12 -0
  43. package/cjs/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  44. package/cjs/CascadeTree/hooks/usePaths.js +42 -0
  45. package/cjs/CascadeTree/hooks/useSearch.d.ts +17 -0
  46. package/cjs/CascadeTree/hooks/useSearch.js +59 -0
  47. package/cjs/CascadeTree/hooks/useSelect.d.ts +23 -0
  48. package/cjs/CascadeTree/hooks/useSelect.js +64 -0
  49. package/cjs/CascadeTree/index.d.ts +4 -0
  50. package/cjs/CascadeTree/index.js +9 -0
  51. package/cjs/CascadeTree/types.d.ts +66 -0
  52. package/cjs/CascadeTree/types.js +2 -0
  53. package/cjs/CascadeTree/utils.d.ts +32 -0
  54. package/cjs/CascadeTree/utils.js +66 -0
  55. package/cjs/Cascader/Cascader.d.ts +57 -26
  56. package/cjs/Cascader/Cascader.js +180 -247
  57. package/cjs/Cascader/useActive.d.ts +15 -0
  58. package/cjs/Cascader/useActive.js +43 -0
  59. package/cjs/Checkbox/Checkbox.d.ts +67 -25
  60. package/cjs/Checkbox/Checkbox.js +36 -26
  61. package/cjs/InlineEdit/InlineEdit.d.ts +1 -1
  62. package/cjs/InputPicker/InputPicker.js +2 -2
  63. package/cjs/InputPicker/InputPickerContext.d.ts +1 -1
  64. package/cjs/Loader/Loader.js +5 -4
  65. package/cjs/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  66. package/cjs/MultiCascadeTree/MultiCascadeTree.js +131 -0
  67. package/cjs/MultiCascadeTree/SearchView.d.ts +17 -0
  68. package/cjs/MultiCascadeTree/SearchView.js +117 -0
  69. package/cjs/MultiCascadeTree/TreeView.d.ts +22 -0
  70. package/cjs/{MultiCascader → MultiCascadeTree}/TreeView.js +22 -21
  71. package/cjs/MultiCascadeTree/hooks/index.d.ts +5 -0
  72. package/cjs/MultiCascadeTree/hooks/index.js +16 -0
  73. package/cjs/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  74. package/cjs/MultiCascadeTree/hooks/useCascadeValue.js +202 -0
  75. package/cjs/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  76. package/cjs/MultiCascadeTree/hooks/useColumnData.js +52 -0
  77. package/cjs/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  78. package/cjs/MultiCascadeTree/hooks/useFlattenData.js +33 -0
  79. package/cjs/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  80. package/cjs/MultiCascadeTree/hooks/useSearch.js +52 -0
  81. package/cjs/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  82. package/cjs/MultiCascadeTree/hooks/useSelect.js +83 -0
  83. package/cjs/MultiCascadeTree/index.d.ts +4 -0
  84. package/cjs/MultiCascadeTree/index.js +9 -0
  85. package/cjs/MultiCascadeTree/types.d.ts +26 -0
  86. package/cjs/MultiCascadeTree/types.js +2 -0
  87. package/cjs/MultiCascadeTree/utils.d.ts +37 -0
  88. package/cjs/MultiCascadeTree/utils.js +140 -0
  89. package/cjs/MultiCascader/MultiCascader.d.ts +57 -29
  90. package/cjs/MultiCascader/MultiCascader.js +175 -287
  91. package/cjs/Radio/Radio.d.ts +42 -16
  92. package/cjs/Radio/Radio.js +42 -37
  93. package/cjs/RadioGroup/RadioGroup.d.ts +1 -1
  94. package/cjs/RadioGroup/RadioGroup.js +3 -3
  95. package/cjs/TagPicker/index.js +1 -1
  96. package/cjs/Tree/Tree.d.ts +4 -4
  97. package/cjs/index.d.ts +6 -1
  98. package/cjs/index.js +8 -3
  99. package/cjs/internals/Picker/ListCheckItem.d.ts +2 -11
  100. package/cjs/internals/Picker/ListCheckItem.js +8 -6
  101. package/cjs/internals/Picker/PickerToggle.d.ts +4 -5
  102. package/cjs/toaster/ToastContainer.d.ts +9 -2
  103. package/cjs/toaster/index.d.ts +0 -1
  104. package/cjs/toaster/index.js +1 -3
  105. package/cjs/useToaster/index.d.ts +2 -0
  106. package/cjs/useToaster/index.js +9 -0
  107. package/cjs/{toaster → useToaster}/useToaster.d.ts +4 -4
  108. package/cjs/{toaster → useToaster}/useToaster.js +4 -4
  109. package/cjs/utils/index.d.ts +1 -0
  110. package/cjs/utils/index.js +5 -2
  111. package/dist/rsuite-no-reset-rtl.css +322 -124
  112. package/dist/rsuite-no-reset-rtl.min.css +1 -1
  113. package/dist/rsuite-no-reset-rtl.min.css.map +1 -1
  114. package/dist/rsuite-no-reset.css +322 -124
  115. package/dist/rsuite-no-reset.min.css +1 -1
  116. package/dist/rsuite-no-reset.min.css.map +1 -1
  117. package/dist/rsuite-rtl.css +322 -124
  118. package/dist/rsuite-rtl.min.css +1 -1
  119. package/dist/rsuite-rtl.min.css.map +1 -1
  120. package/dist/rsuite.css +322 -124
  121. package/dist/rsuite.js +248 -50
  122. package/dist/rsuite.js.map +1 -1
  123. package/dist/rsuite.min.css +1 -1
  124. package/dist/rsuite.min.css.map +1 -1
  125. package/dist/rsuite.min.js +1 -1
  126. package/dist/rsuite.min.js.map +1 -1
  127. package/esm/@types/common.d.ts +12 -14
  128. package/esm/CascadeTree/CascadeTree.d.ts +16 -0
  129. package/esm/CascadeTree/CascadeTree.js +167 -0
  130. package/esm/CascadeTree/SearchView.d.ts +17 -0
  131. package/esm/CascadeTree/SearchView.js +100 -0
  132. package/esm/CascadeTree/TreeView.d.ts +20 -0
  133. package/esm/{Cascader → CascadeTree}/TreeView.js +42 -33
  134. package/esm/CascadeTree/hooks/index.d.ts +3 -0
  135. package/esm/CascadeTree/hooks/index.js +4 -0
  136. package/esm/{Cascader/utils.d.ts → CascadeTree/hooks/usePaths.d.ts} +3 -25
  137. package/esm/CascadeTree/hooks/usePaths.js +36 -0
  138. package/esm/CascadeTree/hooks/useSearch.d.ts +17 -0
  139. package/esm/CascadeTree/hooks/useSearch.js +54 -0
  140. package/esm/CascadeTree/hooks/useSelect.d.ts +23 -0
  141. package/esm/CascadeTree/hooks/useSelect.js +59 -0
  142. package/esm/CascadeTree/index.d.ts +4 -0
  143. package/esm/CascadeTree/index.js +3 -0
  144. package/esm/CascadeTree/types.d.ts +66 -0
  145. package/esm/CascadeTree/types.js +1 -0
  146. package/esm/CascadeTree/utils.d.ts +32 -0
  147. package/esm/CascadeTree/utils.js +61 -0
  148. package/esm/Cascader/Cascader.d.ts +57 -26
  149. package/esm/Cascader/Cascader.js +167 -233
  150. package/esm/Cascader/useActive.d.ts +15 -0
  151. package/esm/Cascader/useActive.js +37 -0
  152. package/esm/Checkbox/Checkbox.d.ts +67 -25
  153. package/esm/Checkbox/Checkbox.js +38 -28
  154. package/esm/InlineEdit/InlineEdit.d.ts +1 -1
  155. package/esm/InputPicker/InputPicker.js +2 -2
  156. package/esm/InputPicker/InputPickerContext.d.ts +1 -1
  157. package/esm/Loader/Loader.js +6 -5
  158. package/esm/MultiCascadeTree/MultiCascadeTree.d.ts +9 -0
  159. package/esm/MultiCascadeTree/MultiCascadeTree.js +125 -0
  160. package/esm/MultiCascadeTree/SearchView.d.ts +17 -0
  161. package/esm/MultiCascadeTree/SearchView.js +111 -0
  162. package/esm/MultiCascadeTree/TreeView.d.ts +22 -0
  163. package/esm/{MultiCascader → MultiCascadeTree}/TreeView.js +22 -21
  164. package/esm/MultiCascadeTree/hooks/index.d.ts +5 -0
  165. package/esm/MultiCascadeTree/hooks/index.js +6 -0
  166. package/esm/MultiCascadeTree/hooks/useCascadeValue.d.ts +18 -0
  167. package/esm/MultiCascadeTree/hooks/useCascadeValue.js +197 -0
  168. package/esm/MultiCascadeTree/hooks/useColumnData.d.ts +16 -0
  169. package/esm/MultiCascadeTree/hooks/useColumnData.js +46 -0
  170. package/esm/MultiCascadeTree/hooks/useFlattenData.d.ts +9 -0
  171. package/esm/MultiCascadeTree/hooks/useFlattenData.js +28 -0
  172. package/esm/MultiCascadeTree/hooks/useSearch.d.ts +17 -0
  173. package/esm/MultiCascadeTree/hooks/useSearch.js +47 -0
  174. package/esm/MultiCascadeTree/hooks/useSelect.d.ts +19 -0
  175. package/esm/MultiCascadeTree/hooks/useSelect.js +77 -0
  176. package/esm/MultiCascadeTree/index.d.ts +4 -0
  177. package/esm/MultiCascadeTree/index.js +3 -0
  178. package/esm/MultiCascadeTree/types.d.ts +26 -0
  179. package/esm/MultiCascadeTree/types.js +1 -0
  180. package/esm/MultiCascadeTree/utils.d.ts +37 -0
  181. package/esm/MultiCascadeTree/utils.js +130 -0
  182. package/esm/MultiCascader/MultiCascader.d.ts +57 -29
  183. package/esm/MultiCascader/MultiCascader.js +168 -279
  184. package/esm/Radio/Radio.d.ts +42 -16
  185. package/esm/Radio/Radio.js +43 -38
  186. package/esm/RadioGroup/RadioGroup.d.ts +1 -1
  187. package/esm/RadioGroup/RadioGroup.js +5 -5
  188. package/esm/TagPicker/index.js +1 -1
  189. package/esm/Tree/Tree.d.ts +4 -4
  190. package/esm/index.d.ts +6 -1
  191. package/esm/index.js +5 -1
  192. package/esm/internals/Picker/ListCheckItem.d.ts +2 -11
  193. package/esm/internals/Picker/ListCheckItem.js +8 -6
  194. package/esm/internals/Picker/PickerToggle.d.ts +4 -5
  195. package/esm/toaster/ToastContainer.d.ts +9 -2
  196. package/esm/toaster/index.d.ts +0 -1
  197. package/esm/toaster/index.js +0 -1
  198. package/esm/useToaster/index.d.ts +2 -0
  199. package/esm/useToaster/index.js +3 -0
  200. package/esm/{toaster → useToaster}/useToaster.d.ts +4 -4
  201. package/esm/{toaster → useToaster}/useToaster.js +4 -4
  202. package/esm/utils/index.d.ts +1 -0
  203. package/esm/utils/index.js +2 -1
  204. package/internals/Picker/styles/index.less +1 -1
  205. package/package.json +1 -1
  206. package/styles/index.less +2 -0
  207. package/useToaster/package.json +7 -0
  208. package/useToaster/styles/index.css +239 -0
  209. package/useToaster/styles/index.less +1 -0
  210. package/cjs/Cascader/DropdownMenu.d.ts +0 -24
  211. package/cjs/Cascader/DropdownMenu.js +0 -175
  212. package/cjs/Cascader/TreeView.d.ts +0 -24
  213. package/cjs/Cascader/utils.js +0 -79
  214. package/cjs/MultiCascader/TreeView.d.ts +0 -25
  215. package/cjs/MultiCascader/utils.d.ts +0 -71
  216. package/cjs/MultiCascader/utils.js +0 -382
  217. package/esm/Cascader/DropdownMenu.d.ts +0 -24
  218. package/esm/Cascader/DropdownMenu.js +0 -168
  219. package/esm/Cascader/TreeView.d.ts +0 -24
  220. package/esm/Cascader/utils.js +0 -74
  221. package/esm/MultiCascader/TreeView.d.ts +0 -25
  222. package/esm/MultiCascader/utils.d.ts +0 -71
  223. package/esm/MultiCascader/utils.js +0 -369
@@ -1,21 +1,22 @@
1
1
  'use client';
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
- import React, { useState, useCallback } from 'react';
4
+ import React, { useCallback } from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import pick from 'lodash/pick';
7
7
  import omit from 'lodash/omit';
8
8
  import isFunction from 'lodash/isFunction';
9
9
  import isNil from 'lodash/isNil';
10
- import TreeView from './TreeView';
11
- import Checkbox from '../Checkbox';
12
- import { useCascadeValue, useColumnData, useFlattenData, isSomeChildChecked } from './utils';
13
- import { getNodeParents, findNodeOfTree } from '../utils/treeUtils';
14
- import { getColumnsAndPaths } from '../Cascader/utils';
15
- import { createChainedFunction, mergeRefs, getSafeRegExpString, useClassNames, useCustom, useUpdateEffect, useControlled, useEventCallback } from '../utils';
10
+ import { findNodeOfTree } from '../utils/treeUtils';
11
+ import { getColumnsAndPaths } from '../CascadeTree/utils';
12
+ import { createChainedFunction, mergeRefs, useClassNames, useCustom, useControlled, useEventCallback } from '../utils';
16
13
  import { PickerToggle, PickerPopup, SelectedElement, PickerToggleTrigger, usePickerClassName, usePickerRef, useToggleKeyDownEvent, useFocusItemValue, pickTriggerPropKeys, omitTriggerPropKeys, listPickerPropTypes } from '../internals/Picker';
17
- import SearchBox from '../internals/SearchBox';
14
+ import { deprecatePropTypeNew } from '../internals/propTypes';
15
+ import { useCascadeValue, useSearch, useSelect } from '../MultiCascadeTree/hooks';
16
+ import TreeView from '../MultiCascadeTree/TreeView';
17
+ import SearchView from '../MultiCascadeTree/SearchView';
18
18
  import { oneOf } from '../internals/propTypes';
19
+ import useActive from '../Cascader/useActive';
19
20
  var emptyArray = [];
20
21
 
21
22
  /**
@@ -26,23 +27,27 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
26
27
  var _selectedPaths;
27
28
  var _props$as = props.as,
28
29
  Component = _props$as === void 0 ? 'div' : _props$as,
29
- _props$data = props.data,
30
- data = _props$data === void 0 ? emptyArray : _props$data,
30
+ _props$appearance = props.appearance,
31
+ appearance = _props$appearance === void 0 ? 'default' : _props$appearance,
31
32
  _props$classPrefix = props.classPrefix,
32
33
  classPrefix = _props$classPrefix === void 0 ? 'picker' : _props$classPrefix,
33
34
  defaultValue = props.defaultValue,
34
- valueProp = props.value,
35
- _props$valueKey = props.valueKey,
36
- valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
37
- _props$labelKey = props.labelKey,
38
- labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
35
+ columnHeight = props.columnHeight,
36
+ columnWidth = props.columnWidth,
39
37
  _props$childrenKey = props.childrenKey,
40
38
  childrenKey = _props$childrenKey === void 0 ? 'children' : _props$childrenKey,
39
+ _props$cleanable = props.cleanable,
40
+ cleanable = _props$cleanable === void 0 ? true : _props$cleanable,
41
+ _props$data = props.data,
42
+ data = _props$data === void 0 ? emptyArray : _props$data,
41
43
  disabled = props.disabled,
42
44
  _props$disabledItemVa = props.disabledItemValues,
43
45
  disabledItemValues = _props$disabledItemVa === void 0 ? emptyArray : _props$disabledItemVa,
44
- _props$cleanable = props.cleanable,
45
- cleanable = _props$cleanable === void 0 ? true : _props$cleanable,
46
+ valueProp = props.value,
47
+ _props$valueKey = props.valueKey,
48
+ valueKey = _props$valueKey === void 0 ? 'value' : _props$valueKey,
49
+ _props$labelKey = props.labelKey,
50
+ labelKey = _props$labelKey === void 0 ? 'label' : _props$labelKey,
46
51
  overrideLocale = props.locale,
47
52
  toggleAs = props.toggleAs,
48
53
  style = props.style,
@@ -50,16 +55,11 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
50
55
  countable = _props$countable === void 0 ? true : _props$countable,
51
56
  _props$cascade = props.cascade,
52
57
  cascade = _props$cascade === void 0 ? true : _props$cascade,
53
- inline = props.inline,
54
58
  placeholder = props.placeholder,
55
59
  _props$placement = props.placement,
56
60
  placement = _props$placement === void 0 ? 'bottomStart' : _props$placement,
57
- _props$appearance = props.appearance,
58
- appearance = _props$appearance === void 0 ? 'default' : _props$appearance,
59
- menuWidth = props.menuWidth,
60
- menuHeight = props.menuHeight,
61
- menuClassName = props.menuClassName,
62
- menuStyle = props.menuStyle,
61
+ popupClassName = props.popupClassName,
62
+ popupStyle = props.popupStyle,
63
63
  _props$searchable = props.searchable,
64
64
  searchable = _props$searchable === void 0 ? true : _props$searchable,
65
65
  _props$uncheckableIte = props.uncheckableItemValues,
@@ -67,11 +67,10 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
67
67
  id = props.id,
68
68
  getChildren = props.getChildren,
69
69
  renderValue = props.renderValue,
70
- renderMenu = props.renderMenu,
71
- renderMenuItem = props.renderMenuItem,
72
70
  renderExtraFooter = props.renderExtraFooter,
73
- onEnter = props.onEnter,
74
- onExit = props.onExit,
71
+ renderColumn = props.renderColumn,
72
+ renderTreeNode = props.renderTreeNode,
73
+ onEntered = props.onEntered,
75
74
  onExited = props.onExited,
76
75
  onClean = props.onClean,
77
76
  onSearch = props.onSearch,
@@ -80,42 +79,13 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
80
79
  onOpen = props.onOpen,
81
80
  onClose = props.onClose,
82
81
  onCheck = props.onCheck,
83
- rest = _objectWithoutPropertiesLoose(props, ["as", "data", "classPrefix", "defaultValue", "value", "valueKey", "labelKey", "childrenKey", "disabled", "disabledItemValues", "cleanable", "locale", "toggleAs", "style", "countable", "cascade", "inline", "placeholder", "placement", "appearance", "menuWidth", "menuHeight", "menuClassName", "menuStyle", "searchable", "uncheckableItemValues", "id", "getChildren", "renderValue", "renderMenu", "renderMenuItem", "renderExtraFooter", "onEnter", "onExit", "onExited", "onClean", "onSearch", "onSelect", "onChange", "onOpen", "onClose", "onCheck"]);
84
- var itemKeys = {
85
- childrenKey: childrenKey,
86
- labelKey: labelKey,
87
- valueKey: valueKey
88
- };
89
- var _useState = useState(false),
90
- active = _useState[0],
91
- setActive = _useState[1];
92
- var _useFlattenData = useFlattenData(data, itemKeys),
93
- flattenData = _useFlattenData.flattenData,
94
- addFlattenData = _useFlattenData.addFlattenData;
95
- var _useControlled = useControlled(valueProp, defaultValue),
96
- controlledValue = _useControlled[0];
97
- var _useCascadeValue = useCascadeValue(_extends({}, itemKeys, {
98
- uncheckableItemValues: uncheckableItemValues,
99
- cascade: cascade,
100
- value: controlledValue
101
- }), flattenData),
102
- value = _useCascadeValue.value,
103
- setValue = _useCascadeValue.setValue,
104
- splitValue = _useCascadeValue.splitValue; // The columns displayed in the cascading panel.
105
- var _useColumnData = useColumnData(flattenData),
106
- columnData = _useColumnData.columnData,
107
- setColumnData = _useColumnData.setColumnData,
108
- addColumn = _useColumnData.addColumn,
109
- removeColumnByIndex = _useColumnData.removeColumnByIndex,
110
- enforceUpdateColumnData = _useColumnData.enforceUpdateColumnData;
111
- useUpdateEffect(function () {
112
- enforceUpdateColumnData(data);
113
- }, [data]);
114
-
115
- // The path after cascading data selection.
116
- var _useState2 = useState(),
117
- selectedPaths = _useState2[0],
118
- setSelectedPaths = _useState2[1];
82
+ DEPRECATED_menuClassName = props.menuClassName,
83
+ DEPRECATED_menuStyle = props.menuStyle,
84
+ DEPRECATED_menuWidth = props.menuWidth,
85
+ DEPRECATED_menuHeight = props.menuHeight,
86
+ DEPRECATED_renderMenu = props.renderMenu,
87
+ DEPRECATED_renderMenuItem = props.renderMenuItem,
88
+ rest = _objectWithoutPropertiesLoose(props, ["as", "appearance", "classPrefix", "defaultValue", "columnHeight", "columnWidth", "childrenKey", "cleanable", "data", "disabled", "disabledItemValues", "value", "valueKey", "labelKey", "locale", "toggleAs", "style", "countable", "cascade", "placeholder", "placement", "popupClassName", "popupStyle", "searchable", "uncheckableItemValues", "id", "getChildren", "renderValue", "renderExtraFooter", "renderColumn", "renderTreeNode", "onEntered", "onExited", "onClean", "onSearch", "onSelect", "onChange", "onOpen", "onClose", "onCheck", "menuClassName", "menuStyle", "menuWidth", "menuHeight", "renderMenu", "renderMenuItem"]);
119
89
  var _usePickerRef = usePickerRef(ref),
120
90
  trigger = _usePickerRef.trigger,
121
91
  root = _usePickerRef.root,
@@ -125,11 +95,67 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
125
95
  var _useCustom = useCustom('Picker', overrideLocale),
126
96
  locale = _useCustom.locale,
127
97
  rtl = _useCustom.rtl;
98
+ var _useClassNames = useClassNames(classPrefix),
99
+ prefix = _useClassNames.prefix,
100
+ merge = _useClassNames.merge;
101
+ var onSelectCallback = useCallback(function (node, cascadePaths, event) {
102
+ var _trigger$current, _trigger$current$upda;
103
+ onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
104
+ (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$upda = _trigger$current.updatePosition) === null || _trigger$current$upda === void 0 ? void 0 : _trigger$current$upda.call(_trigger$current);
105
+ }, [onSelect, trigger]);
106
+ var _useSelect = useSelect({
107
+ data: data,
108
+ childrenKey: childrenKey,
109
+ labelKey: labelKey,
110
+ valueKey: valueKey,
111
+ onSelect: onSelectCallback,
112
+ getChildren: getChildren
113
+ }),
114
+ selectedPaths = _useSelect.selectedPaths,
115
+ flattenData = _useSelect.flattenData,
116
+ columnData = _useSelect.columnData,
117
+ setColumnData = _useSelect.setColumnData,
118
+ setSelectedPaths = _useSelect.setSelectedPaths,
119
+ handleSelect = _useSelect.handleSelect;
120
+ var _useControlled = useControlled(valueProp, defaultValue),
121
+ controlledValue = _useControlled[0];
122
+ var itemKeys = {
123
+ childrenKey: childrenKey,
124
+ labelKey: labelKey,
125
+ valueKey: valueKey
126
+ };
127
+ var cascadeValueProps = _extends({}, itemKeys, {
128
+ uncheckableItemValues: uncheckableItemValues,
129
+ cascade: cascade,
130
+ value: controlledValue,
131
+ onCheck: onCheck,
132
+ onChange: onChange
133
+ });
134
+ var _useCascadeValue = useCascadeValue(cascadeValueProps, flattenData),
135
+ value = _useCascadeValue.value,
136
+ setValue = _useCascadeValue.setValue,
137
+ handleCheck = _useCascadeValue.handleCheck;
128
138
  var selectedItems = flattenData.filter(function (item) {
129
139
  return value.some(function (v) {
130
140
  return v === item[valueKey];
131
141
  });
132
142
  }) || [];
143
+ var onFocusItemCallback = useCallback(function (value) {
144
+ var _getColumnsAndPaths = getColumnsAndPaths(data, flattenData.find(function (item) {
145
+ return item[valueKey] === value;
146
+ }), {
147
+ getParent: function getParent() {
148
+ return undefined;
149
+ },
150
+ getChildren: function getChildren(item) {
151
+ return item[childrenKey];
152
+ }
153
+ }),
154
+ columns = _getColumnsAndPaths.columns,
155
+ path = _getColumnsAndPaths.path;
156
+ setColumnData(columns);
157
+ setSelectedPaths(path);
158
+ }, [childrenKey, data, flattenData, setColumnData, setSelectedPaths, valueKey]);
133
159
 
134
160
  // Used to hover the focuse item when trigger `onKeydown`
135
161
  var _useFocusItemValue = useFocusItemValue(selectedPaths === null || selectedPaths === void 0 ? void 0 : (_selectedPaths = selectedPaths[selectedPaths.length - 1]) === null || _selectedPaths === void 0 ? void 0 : _selectedPaths[valueKey], {
@@ -140,98 +166,44 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
140
166
  target: function target() {
141
167
  return overlay.current;
142
168
  },
143
- callback: useCallback(function (value) {
144
- var _getColumnsAndPaths = getColumnsAndPaths(data, flattenData.find(function (item) {
145
- return item[valueKey] === value;
146
- }), {
147
- getParent: function getParent() {
148
- return undefined;
149
- },
150
- getChildren: function getChildren(item) {
151
- return item[childrenKey];
152
- }
153
- }),
154
- columns = _getColumnsAndPaths.columns,
155
- path = _getColumnsAndPaths.path;
156
- setColumnData(columns);
157
- setSelectedPaths(path);
158
- }, [childrenKey, data, flattenData, setColumnData, valueKey])
169
+ callback: onFocusItemCallback
159
170
  }),
160
171
  focusItemValue = _useFocusItemValue.focusItemValue,
161
172
  setLayer = _useFocusItemValue.setLayer,
162
173
  setKeys = _useFocusItemValue.setKeys,
163
174
  onFocusItem = _useFocusItemValue.onKeyDown;
164
- /**
165
- * 1.Have a value and the value is valid.
166
- * 2.Regardless of whether the value is valid, as long as renderValue is set, it is judged to have a value.
167
- */
168
- var hasValue = selectedItems.length > 0 || Number(valueProp === null || valueProp === void 0 ? void 0 : valueProp.length) > 0 && isFunction(renderValue);
169
- var _useClassNames = useClassNames(classPrefix),
170
- prefix = _useClassNames.prefix,
171
- merge = _useClassNames.merge;
172
- var _useState3 = useState(''),
173
- searchKeyword = _useState3[0],
174
- setSearchKeyword = _useState3[1];
175
- var handleEntered = useEventCallback(function () {
176
- onOpen === null || onOpen === void 0 ? void 0 : onOpen();
177
- setActive(true);
178
- });
179
- var handleExited = useEventCallback(function () {
180
- setActive(false);
181
- setSearchKeyword('');
182
- });
183
- var handleSelect = useEventCallback(function (node, cascadePaths, event) {
184
- var _node$childrenKey, _node$childrenKey2, _trigger$current, _trigger$current$upda;
185
- setSelectedPaths(cascadePaths);
186
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(node, cascadePaths, event);
187
- var columnIndex = cascadePaths.length;
188
-
189
- // Lazy load node's children
190
- if (typeof getChildren === 'function' && ((_node$childrenKey = node[childrenKey]) === null || _node$childrenKey === void 0 ? void 0 : _node$childrenKey.length) === 0) {
191
- node.loading = true;
192
- var children = getChildren(node);
193
- if (children instanceof Promise) {
194
- children.then(function (data) {
195
- node.loading = false;
196
- node[childrenKey] = data;
197
- if (target.current || inline) {
198
- addFlattenData(data, node);
199
- addColumn(data, columnIndex);
200
- }
201
- });
202
- } else {
203
- node.loading = false;
204
- node[childrenKey] = children;
205
- addFlattenData(children, node);
206
- addColumn(children, columnIndex);
207
- }
208
- } else if ((_node$childrenKey2 = node[childrenKey]) !== null && _node$childrenKey2 !== void 0 && _node$childrenKey2.length) {
209
- addColumn(node[childrenKey], columnIndex);
210
- } else {
211
- // Removes subsequent columns of the current column when the clicked node is a leaf node.
212
- removeColumnByIndex(columnIndex);
213
- }
214
- (_trigger$current = trigger.current) === null || _trigger$current === void 0 ? void 0 : (_trigger$current$upda = _trigger$current.updatePosition) === null || _trigger$current$upda === void 0 ? void 0 : _trigger$current$upda.call(_trigger$current);
215
- });
216
- var handleCheck = useEventCallback(function (node, event, checked) {
217
- var nodeValue = node[valueKey];
218
- var nextValue = [];
219
- if (cascade) {
220
- nextValue = splitValue(node, checked, value).value;
221
- } else {
222
- nextValue = [].concat(value);
223
- if (checked) {
224
- nextValue.push(nodeValue);
225
- } else {
226
- nextValue = nextValue.filter(function (n) {
227
- return n !== nodeValue;
228
- });
229
- }
175
+ var onSearchCallback = function onSearchCallback(value, event) {
176
+ if (value) {
177
+ setLayer(0);
178
+ } else if (selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length) {
179
+ setLayer(selectedPaths.length - 1);
230
180
  }
231
- setValue(nextValue);
232
- onChange === null || onChange === void 0 ? void 0 : onChange(nextValue, event);
233
- onCheck === null || onCheck === void 0 ? void 0 : onCheck(nextValue, node, checked, event);
234
- });
181
+ setKeys([]);
182
+ onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
183
+ };
184
+ var _useSearch = useSearch({
185
+ labelKey: labelKey,
186
+ valueKey: valueKey,
187
+ childrenKey: childrenKey,
188
+ flattenedData: flattenData,
189
+ uncheckableItemValues: uncheckableItemValues,
190
+ onSearch: onSearchCallback
191
+ }),
192
+ items = _useSearch.items,
193
+ searchKeyword = _useSearch.searchKeyword,
194
+ setSearchKeyword = _useSearch.setSearchKeyword,
195
+ handleSearch = _useSearch.handleSearch;
196
+ var _useActive = useActive({
197
+ onOpen: onOpen,
198
+ onClose: onClose,
199
+ onEntered: onEntered,
200
+ onExited: onExited,
201
+ target: target,
202
+ setSearchKeyword: setSearchKeyword
203
+ }),
204
+ active = _useActive.active,
205
+ handleEntered = _useActive.handleEntered,
206
+ handleExited = _useActive.handleExited;
235
207
  var handleClean = useEventCallback(function (event) {
236
208
  if (disabled || !target.current) {
237
209
  return;
@@ -262,152 +234,67 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
262
234
  onMenuKeyDown: onFocusItem,
263
235
  onMenuPressEnter: handleMenuPressEnter
264
236
  }, rest));
265
- var handleSearch = useEventCallback(function (value, event) {
266
- setSearchKeyword(value);
267
- onSearch === null || onSearch === void 0 ? void 0 : onSearch(value, event);
268
- if (value) {
269
- setLayer(0);
270
- } else if (selectedPaths !== null && selectedPaths !== void 0 && selectedPaths.length) {
271
- setLayer(selectedPaths.length - 1);
272
- }
273
- setKeys([]);
274
- });
275
- var getSearchResult = function getSearchResult() {
276
- var items = [];
277
- var result = flattenData.filter(function (item) {
278
- if (uncheckableItemValues.some(function (value) {
279
- return item[valueKey] === value;
280
- })) {
281
- return false;
282
- }
283
- if (item[labelKey].match(new RegExp(getSafeRegExpString(searchKeyword), 'i'))) {
284
- return true;
285
- }
286
- return false;
287
- });
288
- for (var i = 0; i < result.length; i++) {
289
- items.push(result[i]);
290
-
291
- // A maximum of 100 search results are returned.
292
- if (i === 99) {
293
- return items;
294
- }
295
- }
296
- return items;
297
- };
298
- var renderSearchRow = function renderSearchRow(item, key) {
299
- var _extends2;
300
- var nodes = getNodeParents(item);
301
- var regx = new RegExp(getSafeRegExpString(searchKeyword), 'ig');
302
- var labelElements = [];
303
- var a = item[labelKey].split(regx);
304
- var b = item[labelKey].match(regx);
305
- for (var i = 0; i < a.length; i++) {
306
- labelElements.push(a[i]);
307
- if (b[i]) {
308
- labelElements.push( /*#__PURE__*/React.createElement("span", {
309
- key: i,
310
- className: prefix('cascader-search-match')
311
- }, b[i]));
312
- }
237
+ var renderCascadeColumn = function renderCascadeColumn(childNodes, column) {
238
+ var items = column.items,
239
+ parentItem = column.parentItem,
240
+ layer = column.layer;
241
+ if (typeof renderColumn === 'function') {
242
+ return renderColumn(childNodes, column);
243
+ } else if (typeof DEPRECATED_renderMenu === 'function') {
244
+ return DEPRECATED_renderMenu(items, childNodes, parentItem, layer);
313
245
  }
314
- nodes.push(_extends({}, item, (_extends2 = {}, _extends2[labelKey] = labelElements, _extends2)));
315
- var active = value.some(function (value) {
316
- if (cascade) {
317
- return nodes.some(function (node) {
318
- return node[valueKey] === value;
319
- });
320
- }
321
- return item[valueKey] === value;
322
- });
323
- var disabled = disabledItemValues.some(function (value) {
324
- return nodes.some(function (node) {
325
- return node[valueKey] === value;
326
- });
327
- });
328
- var itemClasses = prefix('cascader-row', {
329
- 'cascader-row-disabled': disabled,
330
- 'cascader-row-focus': item[valueKey] === focusItemValue
331
- });
332
- return /*#__PURE__*/React.createElement("div", {
333
- role: "treeitem",
334
- "aria-disabled": disabled,
335
- key: key,
336
- className: itemClasses,
337
- "data-key": item[valueKey]
338
- }, /*#__PURE__*/React.createElement(Checkbox, {
339
- disabled: disabled,
340
- checked: active,
341
- value: item[valueKey],
342
- indeterminate: cascade && !active && isSomeChildChecked(item, value, {
343
- valueKey: valueKey,
344
- childrenKey: childrenKey
345
- }),
346
- onChange: function onChange(_value, checked, event) {
347
- handleCheck(item, event, checked);
348
- }
349
- }, /*#__PURE__*/React.createElement("span", {
350
- className: prefix('cascader-cols')
351
- }, nodes.map(function (node, index) {
352
- return /*#__PURE__*/React.createElement("span", {
353
- key: "col-" + index,
354
- className: prefix('cascader-col')
355
- }, node[labelKey]);
356
- }))));
246
+ return childNodes;
357
247
  };
358
- var renderSearchResultPanel = function renderSearchResultPanel() {
359
- if (searchKeyword === '') {
360
- return null;
248
+ var renderCascadeTreeNode = function renderCascadeTreeNode(node, itemData) {
249
+ var render = typeof renderTreeNode === 'function' ? renderTreeNode : DEPRECATED_renderMenuItem;
250
+ if (typeof render === 'function') {
251
+ return render(node, itemData);
361
252
  }
362
- var items = getSearchResult();
363
- return /*#__PURE__*/React.createElement("div", {
364
- className: prefix('cascader-search-panel'),
365
- "data-layer": 0,
366
- role: "tree"
367
- }, items.length ? items.map(renderSearchRow) : /*#__PURE__*/React.createElement("div", {
368
- className: prefix('none')
369
- }, locale.noResultsText));
253
+ return node;
370
254
  };
371
255
  var renderTreeView = function renderTreeView(positionProps, speakerRef) {
372
256
  var _ref = positionProps || {},
373
257
  left = _ref.left,
374
258
  top = _ref.top,
375
259
  className = _ref.className;
376
- var styles = _extends({}, menuStyle, {
260
+ var styles = _extends({}, DEPRECATED_menuStyle, popupStyle, {
377
261
  left: left,
378
262
  top: top
379
263
  });
380
- var classes = merge(className, menuClassName, prefix('cascader-menu', 'multi-cascader-menu', {
381
- inline: inline
382
- }));
264
+ var classes = merge(className, DEPRECATED_menuClassName, popupClassName, prefix('popup-multi-cascader'));
383
265
  return /*#__PURE__*/React.createElement(PickerPopup, {
384
266
  ref: mergeRefs(overlay, speakerRef),
385
267
  className: classes,
386
268
  style: styles,
387
269
  target: trigger,
388
270
  onKeyDown: onPickerKeyDown
389
- }, searchable && /*#__PURE__*/React.createElement(SearchBox, {
390
- placeholder: locale === null || locale === void 0 ? void 0 : locale.searchPlaceholder,
391
- onChange: handleSearch,
392
- value: searchKeyword,
393
- inputRef: searchInput
394
- }), renderSearchResultPanel(), searchKeyword === '' && /*#__PURE__*/React.createElement(TreeView, {
271
+ }, searchable && /*#__PURE__*/React.createElement(SearchView, {
272
+ data: items,
273
+ value: value,
274
+ searchKeyword: searchKeyword,
275
+ valueKey: valueKey,
276
+ labelKey: labelKey,
277
+ childrenKey: childrenKey,
278
+ disabledItemValues: disabledItemValues,
279
+ onCheck: handleCheck,
280
+ onSearch: handleSearch
281
+ }), !searchKeyword && /*#__PURE__*/React.createElement(TreeView, {
395
282
  cascade: cascade,
396
- menuWidth: menuWidth,
397
- menuHeight: menuHeight,
283
+ columnWidth: columnWidth !== null && columnWidth !== void 0 ? columnWidth : DEPRECATED_menuWidth,
284
+ columnHeight: columnHeight !== null && columnHeight !== void 0 ? columnHeight : DEPRECATED_menuHeight,
285
+ classPrefix: "cascade-tree",
398
286
  uncheckableItemValues: uncheckableItemValues,
399
287
  disabledItemValues: disabledItemValues,
400
288
  valueKey: valueKey,
401
289
  labelKey: labelKey,
402
290
  childrenKey: childrenKey,
403
- classPrefix: 'picker-cascader-menu',
404
291
  cascadeData: columnData,
405
292
  cascadePaths: selectedPaths,
406
293
  value: value,
407
294
  onSelect: handleSelect,
408
295
  onCheck: handleCheck,
409
- renderMenu: renderMenu,
410
- renderMenuItem: renderMenuItem
296
+ renderColumn: renderCascadeColumn,
297
+ renderTreeNode: renderCascadeTreeNode
411
298
  }), renderExtraFooter === null || renderExtraFooter === void 0 ? void 0 : renderExtraFooter());
412
299
  };
413
300
  var selectedElement = placeholder;
@@ -423,6 +310,12 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
423
310
  locale: locale
424
311
  });
425
312
  }
313
+
314
+ /**
315
+ * 1.Have a value and the value is valid.
316
+ * 2.Regardless of whether the value is valid, as long as renderValue is set, it is judged to have a value.
317
+ */
318
+ var hasValue = selectedItems.length > 0 || Number(valueProp === null || valueProp === void 0 ? void 0 : valueProp.length) > 0 && isFunction(renderValue);
426
319
  if (hasValue && isFunction(renderValue)) {
427
320
  selectedElement = renderValue(value.length ? value : valueProp !== null && valueProp !== void 0 ? valueProp : [], selectedItems, selectedElement);
428
321
  // If renderValue returns null or undefined, hasValue is false.
@@ -440,9 +333,6 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
440
333
  })),
441
334
  classes = _usePickerClassName[0],
442
335
  usedClassNamePropKeys = _usePickerClassName[1];
443
- if (inline) {
444
- return renderTreeView();
445
- }
446
336
  return /*#__PURE__*/React.createElement(PickerToggleTrigger, {
447
337
  id: id,
448
338
  popupType: "tree",
@@ -450,9 +340,8 @@ var MultiCascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
450
340
  pickerProps: pick(props, pickTriggerPropKeys),
451
341
  ref: trigger,
452
342
  placement: placement,
453
- onEnter: createChainedFunction(handleEntered, onEnter),
454
- onExited: createChainedFunction(handleExited, onExited),
455
- onExit: createChainedFunction(onClose, onExit),
343
+ onEnter: handleEntered,
344
+ onExited: handleExited,
456
345
  speaker: renderTreeView
457
346
  }, /*#__PURE__*/React.createElement(Component, {
458
347
  className: classes,
@@ -479,16 +368,16 @@ MultiCascader.propTypes = _extends({}, listPickerPropTypes, {
479
368
  locale: PropTypes.any,
480
369
  appearance: oneOf(['default', 'subtle']),
481
370
  cascade: PropTypes.bool,
482
- inline: PropTypes.bool,
483
371
  countable: PropTypes.bool,
484
- menuWidth: PropTypes.number,
485
- menuHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
486
372
  uncheckableItemValues: PropTypes.array,
487
373
  searchable: PropTypes.bool,
488
- renderMenuItem: PropTypes.func,
489
- renderMenu: PropTypes.func,
490
374
  onSearch: PropTypes.func,
491
375
  onSelect: PropTypes.func,
492
- onCheck: PropTypes.func
376
+ onCheck: PropTypes.func,
377
+ inline: deprecatePropTypeNew(PropTypes.bool, 'Use `<MultiCascadeTree>` instead.'),
378
+ renderMenu: deprecatePropTypeNew(PropTypes.func, 'Use "renderColumn" property instead.'),
379
+ renderMenuItem: deprecatePropTypeNew(PropTypes.func, 'Use "renderTreeNode" property instead.'),
380
+ menuWidth: deprecatePropTypeNew(PropTypes.number, 'Use "columnWidth" property instead.'),
381
+ menuHeight: deprecatePropTypeNew(PropTypes.number, 'Use "columnHeight" property instead.')
493
382
  });
494
383
  export default MultiCascader;
@@ -1,32 +1,58 @@
1
1
  import React from 'react';
2
- import { WithAsProps } from '../@types/common';
2
+ import { WithAsProps, TypeAttributes } from '../@types/common';
3
3
  export declare type ValueType = string | number;
4
4
  export interface RadioProps<T = ValueType> extends WithAsProps, Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {
5
- /** HTML title */
6
- title?: string;
7
- /** The disable of component */
5
+ /**
6
+ * The color of the radio when checked
7
+ *
8
+ * @version 5.56.0
9
+ */
10
+ color?: TypeAttributes.Color;
11
+ /**
12
+ * The disable of component
13
+ */
8
14
  disabled?: boolean;
9
- /** Make the control readonly */
15
+ /**
16
+ * Make the control readonly
17
+ */
10
18
  readOnly?: boolean;
11
- /** Render the control as plain text */
19
+ /**
20
+ * Render the control as plain text
21
+ */
12
22
  plaintext?: boolean;
13
- /** Specifies whether the radio is selected */
23
+ /**
24
+ * Specifies whether the radio is selected
25
+ */
14
26
  checked?: boolean;
15
- /** Specifies the initial state: whether or not the radio is selected */
27
+ /**
28
+ * Specifies the initial state: whether or not the radio is selected
29
+ */
16
30
  defaultChecked?: boolean;
17
- /** Attributes applied to the input element. */
31
+ /**
32
+ * Attributes applied to the input element
33
+ */
18
34
  inputProps?: React.HTMLAttributes<HTMLInputElement>;
19
- /** Pass a ref to the input element */
35
+ /**
36
+ * Pass a ref to the input element
37
+ */
20
38
  inputRef?: React.Ref<HTMLInputElement>;
21
- /** Value, corresponding to the value of the Radiogroup, to determine whether the */
39
+ /**
40
+ * Value, corresponding to the value of the Radiogroup, to determine whether the
41
+ */
22
42
  value?: T;
23
- /** Name to use for form */
43
+ /**
44
+ * Name to use for form
45
+ */
24
46
  name?: string;
25
- /** Inline layout */
47
+ /**
48
+ * Inline layout.
49
+ *
50
+ * @private Used in RadioGroup
51
+ */
26
52
  inline?: boolean;
27
- /** Primary content */
28
- children?: React.ReactNode;
29
- /** Callback function with value changed */
53
+ /**
54
+ * Callback function with value changed
55
+ */
30
56
  onChange?: (value: T | undefined, checked: boolean, event: React.ChangeEvent<HTMLInputElement>) => void;
31
57
  }
32
58
  /**