@hi-ui/check-cascader 4.0.0-beta.9 → 4.0.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.
Files changed (65) hide show
  1. package/lib/cjs/CheckCascader.js +67 -67
  2. package/lib/cjs/CheckCascaderMenu.js +14 -13
  3. package/lib/cjs/{CheckCascaderMenus.js → CheckCascaderMenuList.js} +19 -25
  4. package/lib/cjs/context.js +1 -2
  5. package/lib/cjs/hooks/use-async-switch.js +5 -6
  6. package/lib/cjs/hooks/{use-cache.js → use-cache/lib/esm/index.js} +12 -6
  7. package/lib/cjs/hooks/use-check.js +16 -7
  8. package/lib/cjs/hooks/use-select.js +1 -2
  9. package/lib/cjs/icons/index.js +4 -5
  10. package/lib/cjs/index.js +1 -2
  11. package/lib/cjs/styles/index.scss.js +3 -4
  12. package/lib/cjs/utils/index.js +177 -68
  13. package/lib/esm/CheckCascader.js +55 -52
  14. package/lib/esm/CheckCascaderMenu.js +4 -4
  15. package/lib/esm/{CheckCascaderMenus.js → CheckCascaderMenuList.js} +16 -22
  16. package/lib/esm/context.js +1 -2
  17. package/lib/esm/hooks/use-async-switch.js +1 -2
  18. package/lib/esm/hooks/{use-cache.js → use-cache/lib/esm/index.js} +12 -6
  19. package/lib/esm/hooks/use-check.js +15 -7
  20. package/lib/esm/hooks/use-select.js +1 -2
  21. package/lib/esm/icons/index.js +1 -2
  22. package/lib/esm/index.js +1 -2
  23. package/lib/esm/styles/index.scss.js +4 -6
  24. package/lib/esm/utils/index.js +175 -70
  25. package/lib/types/CheckCascader.d.ts +14 -12
  26. package/lib/types/CheckCascaderMenu.d.ts +4 -4
  27. package/lib/types/{CheckCascaderMenus.d.ts → CheckCascaderMenuList.d.ts} +18 -10
  28. package/lib/types/context.d.ts +4 -4
  29. package/lib/types/hooks/index.d.ts +0 -2
  30. package/lib/types/hooks/use-async-switch.d.ts +2 -2
  31. package/lib/types/hooks/use-check.d.ts +2 -2
  32. package/lib/types/index.d.ts +1 -0
  33. package/lib/types/types.d.ts +13 -22
  34. package/lib/types/utils/index.d.ts +17 -10
  35. package/package.json +29 -27
  36. package/lib/cjs/CheckCascader.js.map +0 -1
  37. package/lib/cjs/CheckCascaderMenu.js.map +0 -1
  38. package/lib/cjs/CheckCascaderMenus.js.map +0 -1
  39. package/lib/cjs/context.js.map +0 -1
  40. package/lib/cjs/hooks/use-async-switch.js.map +0 -1
  41. package/lib/cjs/hooks/use-cache.js.map +0 -1
  42. package/lib/cjs/hooks/use-check.js.map +0 -1
  43. package/lib/cjs/hooks/use-search.js +0 -40
  44. package/lib/cjs/hooks/use-search.js.map +0 -1
  45. package/lib/cjs/hooks/use-select.js.map +0 -1
  46. package/lib/cjs/icons/index.js.map +0 -1
  47. package/lib/cjs/index.js.map +0 -1
  48. package/lib/cjs/styles/index.scss.js.map +0 -1
  49. package/lib/cjs/utils/index.js.map +0 -1
  50. package/lib/esm/CheckCascader.js.map +0 -1
  51. package/lib/esm/CheckCascaderMenu.js.map +0 -1
  52. package/lib/esm/CheckCascaderMenus.js.map +0 -1
  53. package/lib/esm/context.js.map +0 -1
  54. package/lib/esm/hooks/use-async-switch.js.map +0 -1
  55. package/lib/esm/hooks/use-cache.js.map +0 -1
  56. package/lib/esm/hooks/use-check.js.map +0 -1
  57. package/lib/esm/hooks/use-search.js +0 -31
  58. package/lib/esm/hooks/use-search.js.map +0 -1
  59. package/lib/esm/hooks/use-select.js.map +0 -1
  60. package/lib/esm/icons/index.js.map +0 -1
  61. package/lib/esm/index.js.map +0 -1
  62. package/lib/esm/styles/index.scss.js.map +0 -1
  63. package/lib/esm/utils/index.js.map +0 -1
  64. package/lib/types/hooks/use-cache.d.ts +0 -8
  65. package/lib/types/hooks/use-search.d.ts +0 -13
@@ -2,7 +2,7 @@
2
2
  * @hi-ui/check-cascader
3
3
  * https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
4
4
  *
5
- * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
@@ -29,33 +29,27 @@ var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
29
29
 
30
30
  var icons = require('@hi-ui/icons');
31
31
 
32
- var useSearch = require('./hooks/use-search.js');
33
-
34
- require('@hi-ui/use-check');
35
-
36
- var useCache = require('./hooks/use-cache.js');
37
-
38
- require('@babel/runtime/regenerator');
39
-
40
- var useLatest = require('@hi-ui/use-latest');
41
-
42
- var treeUtils = require('@hi-ui/tree-utils');
32
+ var index = require('./hooks/use-cache/lib/esm/index.js');
43
33
 
44
34
  var picker = require('@hi-ui/picker');
45
35
 
46
36
  var tagInput = require('@hi-ui/tag-input');
47
37
 
48
- var arrayUtils = require('@hi-ui/array-utils');
49
-
50
- var CheckCascaderMenus = require('./CheckCascaderMenus.js');
38
+ var CheckCascaderMenuList = require('./CheckCascaderMenuList.js');
51
39
 
52
40
  var useSearchMode = require('@hi-ui/use-search-mode');
53
41
 
54
- var index = require('./utils/index.js');
42
+ var index$1 = require('./utils/index.js');
43
+
44
+ var treeUtils = require('@hi-ui/tree-utils');
45
+
46
+ var useLatest = require('@hi-ui/use-latest');
55
47
 
56
48
  var typeAssertion = require('@hi-ui/type-assertion');
57
49
 
58
- var localeContext = require('@hi-ui/locale-context');
50
+ var core = require('@hi-ui/core');
51
+
52
+ var funcUtils = require('@hi-ui/func-utils');
59
53
 
60
54
  function _interopDefaultLegacy(e) {
61
55
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
@@ -86,7 +80,8 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
86
80
  clearable = _a.clearable,
87
81
  onSelect = _a.onSelect,
88
82
  expandTrigger = _a.expandTrigger,
89
- disabled = _a.disabled,
83
+ _a$disabled = _a.disabled,
84
+ disabled = _a$disabled === void 0 ? false : _a$disabled,
90
85
  changeOnSelect = _a.changeOnSelect,
91
86
  titleRender = _a.render,
92
87
  displayRender = _a.displayRender,
@@ -96,56 +91,70 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
96
91
  invalid = _a.invalid,
97
92
  filterOption = _a.filterOption,
98
93
  searchableProp = _a.searchable,
94
+ onSearchProp = _a.onSearch,
99
95
  overlayClassName = _a.overlayClassName,
100
96
  _a$type = _a.type,
101
97
  type = _a$type === void 0 ? 'tree' : _a$type,
102
- rest = tslib.__rest(_a, ["prefixCls", "className", "defaultValue", "value", "onChange", "data", "placeholder", "clearable", "onSelect", "expandTrigger", "disabled", "emptyContent", "changeOnSelect", "render", "displayRender", "checkCascaded", "searchPlaceholder", "onLoadChildren", "wrap", "appearance", "invalid", "filterOption", "searchable", "overlayClassName", "type"]);
98
+ checkedMode = _a.checkedMode,
99
+ visible = _a.visible,
100
+ onOpen = _a.onOpen,
101
+ onClose = _a.onClose,
102
+ 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"]);
103
103
 
104
- var i18n = localeContext.useLocaleContext();
104
+ var i18n = core.useLocaleContext();
105
105
  var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('checkCascader.placeholder') : placeholderProp;
106
106
  var flatted = type === 'flatted';
107
107
 
108
- var _useToggle = useToggle.useToggle(),
109
- menuVisible = _useToggle[0],
110
- menuVisibleAction = _useToggle[1];
108
+ var _useUncontrolledToggl = useToggle.useUncontrolledToggle({
109
+ visible: visible,
110
+ disabled: disabled,
111
+ onOpen: onOpen,
112
+ onClose: onClose
113
+ }),
114
+ menuVisible = _useUncontrolledToggl[0],
115
+ menuVisibleAction = _useUncontrolledToggl[1];
111
116
 
112
- var _useCache = useCache.useCache(data),
117
+ var _useCache = index.useCache(data),
113
118
  cascaderData = _useCache[0],
114
119
  setCascaderData = _useCache[1];
115
120
 
116
121
  var flattedData = React.useMemo(function () {
117
- return index.flattenTreeData(cascaderData);
122
+ return index$1.flattenTreeData(cascaderData);
118
123
  }, [cascaderData]);
119
124
 
120
125
  var _useUncontrolledState = useUncontrolledState.useUncontrolledState(defaultValue, valueProp, onChange),
121
126
  _value = _useUncontrolledState[0],
122
- tryChangeValue = _useUncontrolledState[1];
127
+ tryChangeValue = _useUncontrolledState[1]; // 内部实现使用尾部 id
128
+
123
129
 
124
130
  var value = _value.map(function (path) {
125
131
  return path[path.length - 1];
126
132
  });
127
133
 
128
- var flattedDataLatestRef = useLatest.useLatestRef(flattedData);
129
134
  var proxyOnChange = useLatest.useLatestCallback(function (value, item, shouldChecked) {
130
- var flattedItems = flattedDataLatestRef.current;
131
- var itemsPaths = flattedItems.filter(function (item) {
132
- return value.includes(item.id);
133
- }).map(function (item) {
134
- return treeUtils.getTopDownAncestors(item).map(function (_ref) {
135
- var id = _ref.id;
136
- return id;
135
+ var flattedItems = flattedData;
136
+ var itemsPaths = value.map(function (lastId) {
137
+ var item = flattedItems.find(function (item) {
138
+ return item.id === lastId;
137
139
  });
138
- }); // TODO: 找到所有 id 的祖先节点路径
139
140
 
140
- tryChangeValue(itemsPaths); // 包括所有全选的数据,包括全选
141
+ if (item) {
142
+ return treeUtils.getTopDownAncestors(item).map(function (_ref) {
143
+ var id = _ref.id;
144
+ return id;
145
+ });
146
+ } // 对于传入的数据未匹配到,保持不变吐出去
147
+
141
148
 
142
- if (shouldChecked) {
143
- // TODO:as useCheckList
144
- setSelectedItems(function (prev) {
145
- return [].concat(prev, [item]);
149
+ var idPaths = _value.find(function (item) {
150
+ return item[item.length - 1] === lastId;
146
151
  });
147
- }
148
- }); // ************************** 异步搜索 ************************* //
152
+
153
+ return idPaths || [lastId];
154
+ });
155
+ tryChangeValue(itemsPaths);
156
+ }); // ************************** 搜索 ************************* //
157
+ // 无法做异步搜索,因为下拉菜单不能合并(因为树形数据,不知道是第几级)
149
158
 
150
159
  var customSearchStrategy = useSearchMode.useTreeCustomSearch({
151
160
  data: flattedData,
@@ -181,50 +190,40 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
181
190
 
182
191
  var highlight = !!searchValue && searchMode === 'upMatch';
183
192
  var found = false;
184
- var ret = highlight ? /*#__PURE__*/React__default['default'].createElement("span", {
193
+ var ret = highlight ? /*#__PURE__*/React__default["default"].createElement("span", {
185
194
  className: classname.cx("title__text", "title__text--cols")
186
195
  }, treeUtils.getNodeAncestorsWithMe(node).map(function (item) {
187
196
  var title = item.title,
188
197
  id = item.id;
189
- var raw = /*#__PURE__*/React__default['default'].createElement("span", {
198
+ var raw = /*#__PURE__*/React__default["default"].createElement("span", {
190
199
  className: "title__text--col",
191
200
  key: id
192
201
  }, title);
193
202
  if (typeof title !== 'string') return raw;
194
203
  if (found) return raw;
195
- var index = useSearch.matchStrategy(title, searchValue);
204
+ var index = useSearchMode.matchStrategy(title, searchValue);
196
205
  if (index === -1) return raw;
197
206
  found = true;
198
207
  var resultLength = searchValue.length;
199
208
  var beforeStr = title.substr(0, index);
200
209
  var resultStr = title.substr(index, searchValue.length);
201
210
  var afterStr = title.substr(index + resultLength);
202
- return /*#__PURE__*/React__default['default'].createElement("span", {
211
+ return /*#__PURE__*/React__default["default"].createElement("span", {
203
212
  className: "title__text--col",
204
213
  key: id
205
- }, beforeStr, /*#__PURE__*/React__default['default'].createElement("span", {
214
+ }, beforeStr, /*#__PURE__*/React__default["default"].createElement("span", {
206
215
  className: "title__text--matched"
207
216
  }, resultStr), afterStr);
208
217
  }).reverse()) : true;
209
218
  return ret;
210
- }, [titleRender, searchValue, searchMode]); // 搜索时临时选中缓存数据
211
-
212
- var _useState = React.useState([]),
213
- selectedItems = _useState[0],
214
- setSelectedItems = _useState[1];
215
-
219
+ }, [titleRender, searchValue, searchMode]);
216
220
  var shouldUseSearch = !!searchValue;
217
221
  var selectProps = {
218
222
  data: shouldUseSearch ? stateInSearch.data : flattedData,
219
223
  titleRender: proxyTitleRender
220
- }; // 下拉菜单不能合并(因为树形数据,不知道是第几级)
221
-
222
- var mergedData = React.useMemo(function () {
223
- var nextData = selectedItems.concat(flattedData);
224
- return arrayUtils.uniqBy(nextData, 'id');
225
- }, [selectedItems, flattedData]);
224
+ };
226
225
  var cls = classname.cx(prefixCls, className, prefixCls + "--" + (menuVisible ? 'open' : 'closed'));
227
- return /*#__PURE__*/React__default['default'].createElement(picker.Picker, Object.assign({
226
+ return /*#__PURE__*/React__default["default"].createElement(picker.Picker, Object.assign({
228
227
  ref: ref,
229
228
  className: cls,
230
229
  overlayClassName: classname.cx(prefixCls + "__popper", overlayClassName)
@@ -241,22 +240,23 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
241
240
  disabled: disabled,
242
241
  onClose: menuVisibleAction.off,
243
242
  searchable: searchable,
244
- onSearch: onSearch,
245
- trigger: /*#__PURE__*/React__default['default'].createElement(tagInput.TagInputMock, {
243
+ scrollable: false,
244
+ onSearch: funcUtils.callAllFuncs(onSearchProp, onSearch),
245
+ trigger: /*#__PURE__*/React__default["default"].createElement(tagInput.TagInputMock, {
246
246
  clearable: clearable,
247
247
  placeholder: placeholder,
248
248
  // @ts-ignore
249
249
  displayRender: displayRender,
250
- suffix: menuVisible ? /*#__PURE__*/React__default['default'].createElement(icons.UpOutlined, null) : /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, null),
250
+ suffix: menuVisible ? /*#__PURE__*/React__default["default"].createElement(icons.UpOutlined, null) : /*#__PURE__*/React__default["default"].createElement(icons.DownOutlined, null),
251
251
  focused: menuVisible,
252
252
  appearance: appearance,
253
253
  value: value,
254
254
  // @ts-ignore
255
255
  onChange: proxyOnChange,
256
- data: mergedData,
256
+ data: flattedData,
257
257
  invalid: invalid
258
258
  })
259
- }), typeAssertion.isArrayNonEmpty(selectProps.data) ? /*#__PURE__*/React__default['default'].createElement(CheckCascaderMenus.CheckCascaderMenus, {
259
+ }), typeAssertion.isArrayNonEmpty(selectProps.data) ? /*#__PURE__*/React__default["default"].createElement(CheckCascaderMenuList.CheckCascaderMenuList, {
260
260
  disabled: disabled,
261
261
  value: value,
262
262
  // @ts-ignore
@@ -271,7 +271,8 @@ var CheckCascader = /*#__PURE__*/React.forwardRef(function (_a, ref) {
271
271
  // @ts-ignore
272
272
  flattedData: selectProps.data,
273
273
  data: cascaderData,
274
- onChangeData: setCascaderData
274
+ onChangeData: setCascaderData,
275
+ checkedMode: checkedMode
275
276
  }) : null);
276
277
  });
277
278
 
@@ -280,4 +281,3 @@ if (env.__DEV__) {
280
281
  }
281
282
 
282
283
  exports.CheckCascader = CheckCascader;
283
- //# sourceMappingURL=CheckCascader.js.map
@@ -2,7 +2,7 @@
2
2
  * @hi-ui/check-cascader
3
3
  * https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
4
4
  *
5
- * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
@@ -27,6 +27,8 @@ var context = require('./context.js');
27
27
 
28
28
  var index = require('./utils/index.js');
29
29
 
30
+ var treeUtils = require('@hi-ui/tree-utils');
31
+
30
32
  function _interopDefaultLegacy(e) {
31
33
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
32
34
  'default': e
@@ -71,14 +73,14 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
71
73
  return title;
72
74
  }
73
75
 
74
- return flatted ? /*#__PURE__*/React__default['default'].createElement("span", {
76
+ return flatted ? /*#__PURE__*/React__default["default"].createElement("span", {
75
77
  className: classname.cx("title__text", "title__text--cols")
76
- }, index.getNodeAncestors(option).reverse().map(function (item, index) {
77
- return /*#__PURE__*/React__default['default'].createElement("span", {
78
+ }, treeUtils.getNodeAncestorsWithMe(option).reverse().map(function (item, index) {
79
+ return /*#__PURE__*/React__default["default"].createElement("span", {
78
80
  className: "title__text--col",
79
81
  key: item.id
80
82
  }, item.title);
81
- })) : /*#__PURE__*/React__default['default'].createElement("span", {
83
+ })) : /*#__PURE__*/React__default["default"].createElement("span", {
82
84
  className: "title__text"
83
85
  }, option.title);
84
86
  }, [titleRender, flatted]);
@@ -87,7 +89,7 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
87
89
  return checkable;
88
90
  });
89
91
  var cls = classname.cx(prefixCls, className, isCheckableMenu && prefixCls + "--checkable");
90
- return /*#__PURE__*/React__default['default'].createElement("ul", {
92
+ return /*#__PURE__*/React__default["default"].createElement("ul", {
91
93
  className: cls,
92
94
  role: role
93
95
  }, menu.map(function (option) {
@@ -103,11 +105,11 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
103
105
  // 如果存在子节点,则可以展现选择态
104
106
  // 不存在子节点,如不是可勾选item,则可以展现勾选态
105
107
  selected && (((_a = option.children) === null || _a === void 0 ? void 0 : _a.length) || !option.checkable) && prefixCls + "-option--selected", loading && prefixCls + "-option--loading", disabled && prefixCls + "-option--disabled");
106
- return /*#__PURE__*/React__default['default'].createElement("li", {
108
+ return /*#__PURE__*/React__default["default"].createElement("li", {
107
109
  role: "menu-item",
108
110
  className: prefixCls + "-item",
109
111
  key: option.id
110
- }, /*#__PURE__*/React__default['default'].createElement("div", {
112
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
111
113
  className: optionCls,
112
114
  onClick: function onClick(evt) {
113
115
  if (disabled) return;
@@ -122,7 +124,7 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
122
124
  onSelect === null || onSelect === void 0 ? void 0 : onSelect(eventOption);
123
125
  }
124
126
  }
125
- }, option.checkable ? /*#__PURE__*/React__default['default'].createElement(Checkbox__default['default'], {
127
+ }, option.checkable ? /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
126
128
  className: prefixCls + "-checkbox",
127
129
  indeterminate: semiChecked,
128
130
  checked: checked,
@@ -146,7 +148,7 @@ var CheckCascaderMenu = function CheckCascaderMenu(_ref) {
146
148
 
147
149
  var renderSuffix = function renderSuffix(prefixCls, node, loading, onLoadChildren) {
148
150
  if (loading) {
149
- return /*#__PURE__*/React__default['default'].createElement("span", {
151
+ return /*#__PURE__*/React__default["default"].createElement("span", {
150
152
  className: classname.cx(prefixCls + "-switcher", prefixCls + "-switcher--loading")
151
153
  }, index$1.defaultLoadingIcon);
152
154
  }
@@ -155,7 +157,7 @@ var renderSuffix = function renderSuffix(prefixCls, node, loading, onLoadChildre
155
157
  var canLoadChildren = onLoadChildren && !node.children && !node.isLeaf;
156
158
 
157
159
  if (hasChildren || canLoadChildren) {
158
- return /*#__PURE__*/React__default['default'].createElement("span", {
160
+ return /*#__PURE__*/React__default["default"].createElement("span", {
159
161
  className: classname.cx(prefixCls + "-switcher"),
160
162
  style: {
161
163
  transform: "rotate(-90deg)"
@@ -163,10 +165,9 @@ var renderSuffix = function renderSuffix(prefixCls, node, loading, onLoadChildre
163
165
  }, index$1.defaultSuffixIcon);
164
166
  }
165
167
 
166
- return /*#__PURE__*/React__default['default'].createElement("span", {
168
+ return /*#__PURE__*/React__default["default"].createElement("span", {
167
169
  className: classname.cx(prefixCls + "-switcher", prefixCls + "-switcher--noop")
168
170
  }, index$1.defaultLeafIcon);
169
171
  };
170
172
 
171
173
  exports.CheckCascaderMenu = CheckCascaderMenu;
172
- //# sourceMappingURL=CheckCascaderMenu.js.map
@@ -2,7 +2,7 @@
2
2
  * @hi-ui/check-cascader
3
3
  * https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
4
4
  *
5
- * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
@@ -50,11 +50,7 @@ var _role = 'check-cascader-menus';
50
50
  var _prefix = classname.getPrefixCls(_role);
51
51
 
52
52
  var NOOP_ARRAY = [];
53
- /**
54
- * TODO: What is CheckCascaderMenus
55
- */
56
-
57
- var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
53
+ var CheckCascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
58
54
  var _a$prefixCls = _a.prefixCls,
59
55
  prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
60
56
  _a$role = _a.role,
@@ -77,7 +73,13 @@ var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
77
73
  onChange = _a.onChange,
78
74
  titleRender = _a.titleRender,
79
75
  flatted = _a.flatted,
80
- rest = tslib.__rest(_a, ["prefixCls", "role", "className", "children", "data", "flattedData", "onChangeData", "value", "defaultValue", "disabled", "expandTrigger", "changeOnSelect", "checkCascaded", "onLoadChildren", "onChange", "onSelect", "titleRender", "flatted"]);
76
+ _a$checkedMode = _a.checkedMode,
77
+ 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"]);
79
+
80
+ if (checkCascaded === false) {
81
+ checkedMode = 'SEPARATE';
82
+ }
81
83
 
82
84
  var _useSelect = useSelect.useSelect(disabled),
83
85
  selectedId = _useSelect[0],
@@ -89,17 +91,10 @@ var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
89
91
  isLoadingId = _useAsyncSwitch[0],
90
92
  onItemExpand = _useAsyncSwitch[1];
91
93
 
92
- var _useCheck = useCheck.useCheck(checkCascaded, disabled, flattedData, defaultValue, valueProp, function (_ref, target, shouldChecked) {
93
- var checkedIds = _ref.checkedIds,
94
- semiCheckedIds = _ref.semiCheckedIds; // @ts-ignore
94
+ var _useCheck = useCheck.useCheck(checkedMode, disabled, flattedData, defaultValue, valueProp, function (_ref, target, shouldChecked) {
95
+ var checkedIds = _ref.checkedIds; // @ts-ignore
95
96
 
96
- onChange === null || onChange === void 0 ? void 0 : onChange(checkedIds, {
97
- trigger: 'checkbox',
98
- target: target,
99
- shouldChecked: shouldChecked,
100
- semiCheckedIds: semiCheckedIds // checkedItems: fFindNodesByIds(flattedData, checkedIds),
101
-
102
- });
97
+ onChange === null || onChange === void 0 ? void 0 : onChange(checkedIds, target, shouldChecked);
103
98
  }),
104
99
  onOptionCheck = _useCheck[0],
105
100
  isCheckedId = _useCheck[1],
@@ -112,8 +107,8 @@ var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
112
107
  selected: flatted ? selectedId === id : selectedIds[depth] === id,
113
108
  checked: isCheckedId(id),
114
109
  loading: isLoadingId(id),
115
- semiChecked: isSemiCheckedId(id),
116
- focused: false
110
+ semiChecked: isSemiCheckedId(id) // focused: false,
111
+
117
112
  };
118
113
  });
119
114
  var providedValue = React.useMemo(function () {
@@ -130,14 +125,14 @@ var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
130
125
  }, [changeOnSelect, expandTrigger, onOptionCheck, onItemExpand, flatted, titleRender, onLoadChildren, disabled]);
131
126
  var menus = flatted ? index.getFlattedMenus(flattedData) : index.getActiveMenus(flattedData, selectedId);
132
127
  var cls = classname.cx(prefixCls, className, flatted && prefixCls + "--flatted", changeOnSelect && prefixCls + "--selectchange");
133
- return /*#__PURE__*/React__default['default'].createElement(context.CheckCascaderProvider, {
128
+ return /*#__PURE__*/React__default["default"].createElement(context.CheckCascaderProvider, {
134
129
  value: providedValue
135
- }, /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
130
+ }, /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
136
131
  ref: ref,
137
132
  role: role,
138
133
  className: cls
139
134
  }, rest), menus.map(function (menu, menuIndex) {
140
- return menu.length > 0 ? /*#__PURE__*/React__default['default'].createElement(CheckCascaderMenu.CheckCascaderMenu, {
135
+ return menu.length > 0 ? /*#__PURE__*/React__default["default"].createElement(CheckCascaderMenu.CheckCascaderMenu, {
141
136
  key: menuIndex,
142
137
  data: menu,
143
138
  getCascaderItemRequiredProps: getCascaderItemRequiredProps
@@ -146,8 +141,7 @@ var CheckCascaderMenus = /*#__PURE__*/React.forwardRef(function (_a, ref) {
146
141
  });
147
142
 
148
143
  if (env.__DEV__) {
149
- CheckCascaderMenus.displayName = 'CheckCascaderMenus';
144
+ CheckCascaderMenuList.displayName = 'CheckCascaderMenuList';
150
145
  }
151
146
 
152
- exports.CheckCascaderMenus = CheckCascaderMenus;
153
- //# sourceMappingURL=CheckCascaderMenus.js.map
147
+ exports.CheckCascaderMenuList = CheckCascaderMenuList;
@@ -2,7 +2,7 @@
2
2
  * @hi-ui/check-cascader
3
3
  * https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
4
4
  *
5
- * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
@@ -30,4 +30,3 @@ var useCheckCascaderContext = function useCheckCascaderContext() {
30
30
 
31
31
  exports.CheckCascaderProvider = CheckCascaderProvider;
32
32
  exports.useCheckCascaderContext = useCheckCascaderContext;
33
- //# sourceMappingURL=context.js.map
@@ -2,7 +2,7 @@
2
2
  * @hi-ui/check-cascader
3
3
  * https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
4
4
  *
5
- * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
@@ -41,9 +41,9 @@ var useAsyncSwitch = function useAsyncSwitch(setCascaderData, onExpand, onLoadCh
41
41
 
42
42
 
43
43
  var loadChildren = React.useCallback(function (node) {
44
- return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
44
+ return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
45
45
  var childrenNodes;
46
- return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
46
+ return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
47
47
  while (1) {
48
48
  switch (_context.prev = _context.next) {
49
49
  case 0:
@@ -82,9 +82,9 @@ var useAsyncSwitch = function useAsyncSwitch(setCascaderData, onExpand, onLoadCh
82
82
  }, [onLoadChildren, setCascaderData]);
83
83
  var onExpandLatest = useLatest.useLatestCallback(onExpand);
84
84
  var onNodeSwitch = React.useCallback(function (node) {
85
- return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee2() {
85
+ return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2() {
86
86
  var id, children, isLeaf;
87
- return _regeneratorRuntime__default['default'].wrap(function _callee2$(_context2) {
87
+ return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
88
88
  while (1) {
89
89
  switch (_context2.prev = _context2.next) {
90
90
  case 0:
@@ -168,4 +168,3 @@ var useList = function useList(initialValue) {
168
168
  };
169
169
 
170
170
  exports.useAsyncSwitch = useAsyncSwitch;
171
- //# sourceMappingURL=use-async-switch.js.map
@@ -2,7 +2,7 @@
2
2
  * @hi-ui/check-cascader
3
3
  * https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
4
4
  *
5
- * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
@@ -14,11 +14,18 @@ Object.defineProperty(exports, '__esModule', {
14
14
  });
15
15
 
16
16
  var React = require('react');
17
- /**
18
- * 一个缓存数据的 hook
17
+ /** @LICENSE
18
+ * @hi-ui/use-cache
19
+ * https://github.com/XiaoMi/hiui/tree/master/packages/hooks/use-cache#readme
19
20
  *
20
- * @param data
21
- * @returns
21
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
22
+ *
23
+ * This source code is licensed under the MIT license found in the
24
+ * LICENSE file in the root directory of this source tree.
25
+ */
26
+
27
+ /**
28
+ * A hook using for data cache that compatible with the controlled and uncontrolled modes coexist.
22
29
  */
23
30
 
24
31
 
@@ -34,4 +41,3 @@ var useCache = function useCache(data) {
34
41
  };
35
42
 
36
43
  exports.useCache = useCache;
37
- //# sourceMappingURL=use-cache.js.map
@@ -2,7 +2,7 @@
2
2
  * @hi-ui/check-cascader
3
3
  * https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
4
4
  *
5
- * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
@@ -13,32 +13,42 @@ Object.defineProperty(exports, '__esModule', {
13
13
  value: true
14
14
  });
15
15
 
16
+ var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
17
+
16
18
  var useCheck$1 = require('@hi-ui/use-check');
17
19
 
18
- var useUncontrolledState = require('@hi-ui/use-uncontrolled-state');
20
+ var index = require('../utils/index.js');
19
21
 
20
22
  var NOOP_ARRAY = [];
21
23
 
22
- var useCheck = function useCheck(cascaded, disabled, flattedData, defaultCheckedIds, checkedIdsProp, onCheck) {
24
+ var useCheck = function useCheck(checkedMode, disabled, flattedData, defaultCheckedIds, checkedIdsProp, onCheck) {
23
25
  if (defaultCheckedIds === void 0) {
24
26
  defaultCheckedIds = NOOP_ARRAY;
25
27
  }
26
28
 
27
29
  var _useUncontrolledState = useUncontrolledState.useUncontrolledState(defaultCheckedIds, checkedIdsProp, function (checkedIds, checkedNode, shouldChecked, semiCheckedIds) {
30
+ // 出口数据处理
28
31
  onCheck === null || onCheck === void 0 ? void 0 : onCheck({
29
32
  checkedIds: checkedIds,
30
33
  semiCheckedIds: semiCheckedIds
31
34
  }, checkedNode, shouldChecked);
32
35
  }),
33
36
  checkedIds = _useUncontrolledState[0],
34
- trySetCheckedIds = _useUncontrolledState[1];
37
+ trySetCheckedIds = _useUncontrolledState[1]; // 入口数据处理
38
+
35
39
 
40
+ var parsedCheckedIds = index.parseCheckDataDirty(checkedMode, checkedIds, flattedData, allowCheck);
41
+ var cascaded = checkedMode !== 'SEPARATE';
36
42
  return useCheck$1.useCascadeCheck({
37
43
  cascaded: cascaded,
38
44
  disabled: disabled,
39
45
  flattedData: flattedData,
40
- checkedIds: checkedIds,
41
- onCheck: trySetCheckedIds,
46
+ checkedIds: parsedCheckedIds,
47
+ onCheck: function onCheck(checkedIds, checkedNode, shouldChecked, semiCheckedIds) {
48
+ // 出口数据处理
49
+ var processedIds = index.processCheckedIds(checkedMode, checkedIds, flattedData, allowCheck);
50
+ trySetCheckedIds(processedIds, checkedNode, shouldChecked, semiCheckedIds);
51
+ },
42
52
  allowCheck: allowCheck
43
53
  });
44
54
  };
@@ -52,4 +62,3 @@ var allowCheck = function allowCheck(targetItem) {
52
62
  };
53
63
 
54
64
  exports.useCheck = useCheck;
55
- //# sourceMappingURL=use-check.js.map
@@ -2,7 +2,7 @@
2
2
  * @hi-ui/check-cascader
3
3
  * https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
4
4
  *
5
- * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
@@ -35,4 +35,3 @@ var useSelect = function useSelect(disabled) {
35
35
  };
36
36
 
37
37
  exports.useSelect = useSelect;
38
- //# sourceMappingURL=use-select.js.map
@@ -2,7 +2,7 @@
2
2
  * @hi-ui/check-cascader
3
3
  * https://github.com/XiaoMi/hiui/tree/master/packages/ui/check-cascader#readme
4
4
  *
5
- * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
5
+ * Copyright (c) HiUI <mi-hiui@xiaomi.com>.
6
6
  *
7
7
  * This source code is licensed under the MIT license found in the
8
8
  * LICENSE file in the root directory of this source tree.
@@ -29,15 +29,14 @@ function _interopDefaultLegacy(e) {
29
29
 
30
30
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
31
31
 
32
- var defaultSuffixIcon = /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, null);
33
- var defaultLeafIcon = /*#__PURE__*/React__default['default'].createElement("span", {
32
+ var defaultSuffixIcon = /*#__PURE__*/React__default["default"].createElement(icons.DownOutlined, null);
33
+ var defaultLeafIcon = /*#__PURE__*/React__default["default"].createElement("span", {
34
34
  style: {
35
35
  display: 'inline-block',
36
36
  width: 16
37
37
  }
38
38
  });
39
- var defaultLoadingIcon = /*#__PURE__*/React__default['default'].createElement(spinner.Spinner, null);
39
+ var defaultLoadingIcon = /*#__PURE__*/React__default["default"].createElement(spinner.Spinner, null);
40
40
  exports.defaultLeafIcon = defaultLeafIcon;
41
41
  exports.defaultLoadingIcon = defaultLoadingIcon;
42
42
  exports.defaultSuffixIcon = defaultSuffixIcon;
43
- //# sourceMappingURL=index.js.map