@hi-ui/cascader 4.0.0-beta.3 → 4.0.0-beta.30

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 (50) hide show
  1. package/lib/cjs/Cascader.js +19 -145
  2. package/lib/cjs/CascaderMenuList.js +171 -0
  3. package/lib/cjs/context.js +0 -1
  4. package/lib/cjs/hooks/use-async-switch.js +4 -5
  5. package/lib/cjs/hooks/use-cache/lib/esm/index.js +0 -1
  6. package/lib/cjs/hooks/use-select.js +0 -1
  7. package/lib/cjs/icons/index.js +3 -4
  8. package/lib/cjs/index.js +0 -3
  9. package/lib/cjs/styles/index.scss.js +2 -3
  10. package/lib/cjs/use-cascader.js +0 -1
  11. package/lib/cjs/utils/index.js +0 -1
  12. package/lib/esm/Cascader.js +8 -133
  13. package/lib/esm/CascaderMenuList.js +145 -0
  14. package/lib/esm/context.js +0 -1
  15. package/lib/esm/hooks/use-async-switch.js +0 -1
  16. package/lib/esm/hooks/use-cache/lib/esm/index.js +0 -1
  17. package/lib/esm/hooks/use-select.js +0 -1
  18. package/lib/esm/icons/index.js +0 -1
  19. package/lib/esm/index.js +1 -2
  20. package/lib/esm/styles/index.scss.js +3 -5
  21. package/lib/esm/use-cascader.js +0 -1
  22. package/lib/esm/utils/index.js +0 -1
  23. package/lib/types/Cascader.d.ts +3 -13
  24. package/lib/types/CascaderMenuList.d.ts +13 -0
  25. package/lib/types/context.d.ts +7 -7
  26. package/lib/types/hooks/use-select.d.ts +2 -2
  27. package/lib/types/types.d.ts +14 -14
  28. package/lib/types/use-cascader.d.ts +6 -7
  29. package/lib/types/utils/index.d.ts +7 -7
  30. package/package.json +21 -20
  31. package/lib/cjs/Cascader.js.map +0 -1
  32. package/lib/cjs/context.js.map +0 -1
  33. package/lib/cjs/hooks/use-async-switch.js.map +0 -1
  34. package/lib/cjs/hooks/use-cache/lib/esm/index.js.map +0 -1
  35. package/lib/cjs/hooks/use-select.js.map +0 -1
  36. package/lib/cjs/icons/index.js.map +0 -1
  37. package/lib/cjs/index.js.map +0 -1
  38. package/lib/cjs/styles/index.scss.js.map +0 -1
  39. package/lib/cjs/use-cascader.js.map +0 -1
  40. package/lib/cjs/utils/index.js.map +0 -1
  41. package/lib/esm/Cascader.js.map +0 -1
  42. package/lib/esm/context.js.map +0 -1
  43. package/lib/esm/hooks/use-async-switch.js.map +0 -1
  44. package/lib/esm/hooks/use-cache/lib/esm/index.js.map +0 -1
  45. package/lib/esm/hooks/use-select.js.map +0 -1
  46. package/lib/esm/icons/index.js.map +0 -1
  47. package/lib/esm/index.js.map +0 -1
  48. package/lib/esm/styles/index.scss.js.map +0 -1
  49. package/lib/esm/use-cascader.js.map +0 -1
  50. package/lib/esm/utils/index.js.map +0 -1
@@ -31,8 +31,6 @@ var input = require('@hi-ui/input');
31
31
 
32
32
  var icons = require('@hi-ui/icons');
33
33
 
34
- var index$2 = require('./icons/index.js');
35
-
36
34
  var index$1 = require('./utils/index.js');
37
35
 
38
36
  var context = require('./context.js');
@@ -45,12 +43,16 @@ var picker = require('@hi-ui/picker');
45
43
 
46
44
  var useSearchMode = require('@hi-ui/use-search-mode');
47
45
 
48
- var lodash = require('lodash');
46
+ var arrayUtils = require('@hi-ui/array-utils');
49
47
 
50
48
  var index = require('./hooks/use-cache/lib/esm/index.js');
51
49
 
52
50
  var localeContext = require('@hi-ui/locale-context');
53
51
 
52
+ var funcUtils = require('@hi-ui/func-utils');
53
+
54
+ var CascaderMenuList = require('./CascaderMenuList.js');
55
+
54
56
  function _interopDefaultLegacy(e) {
55
57
  return e && _typeof(e) === 'object' && 'default' in e ? e : {
56
58
  'default': e
@@ -88,13 +90,14 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
88
90
  invalid = props.invalid,
89
91
  filterOption = props.filterOption,
90
92
  searchableProp = props.searchable,
93
+ onSearchProp = props.onSearch,
91
94
  titleRender = props.render,
92
95
  overlayClassName = props.overlayClassName,
93
96
  _props$data = props.data,
94
97
  data = _props$data === void 0 ? NOOP_ARRAY : _props$data,
95
98
  onOpen = props.onOpen,
96
99
  onClose = props.onClose,
97
- rest = tslib.__rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "render", "overlayClassName", "data", "onOpen", "onClose"]);
100
+ rest = tslib.__rest(props, ["prefixCls", "className", "placeholder", "disabled", "clearable", "type", "fieldNames", "expandTrigger", "displayRender", "onSelect", "onLoadChildren", "appearance", "invalid", "filterOption", "searchable", "onSearch", "render", "overlayClassName", "data", "onOpen", "onClose"]);
98
101
 
99
102
  var i18n = localeContext.useLocaleContext();
100
103
  var placeholder = typeAssertion.isUndef(placeholderProp) ? i18n.get('cascader.placeholder') : placeholderProp;
@@ -184,7 +187,7 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
184
187
 
185
188
  return acc;
186
189
  }, []);
187
- return /*#__PURE__*/React__default['default'].createElement("span", {
190
+ return /*#__PURE__*/React__default["default"].createElement("span", {
188
191
  className: "title__text"
189
192
  }, mergedTitle);
190
193
  };
@@ -228,19 +231,19 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
228
231
  var mergedData = React.useMemo(function () {
229
232
  if (selectedItem) {
230
233
  var nextData = [selectedItem].concat(flattedData);
231
- return lodash.uniqBy(nextData, 'id');
234
+ return arrayUtils.uniqBy(nextData, 'id');
232
235
  }
233
236
 
234
237
  return flattedData;
235
238
  }, [selectedItem, flattedData]);
236
239
  var cls = classname.cx(prefixCls, className, prefixCls + "--" + (menuVisible ? 'open' : 'closed'));
237
- return /*#__PURE__*/React__default['default'].createElement(context.CascaderProvider, {
240
+ return /*#__PURE__*/React__default["default"].createElement(context.CascaderProvider, {
238
241
  value: Object.assign(Object.assign({}, context$1), {
239
242
  expandTrigger: expandTrigger,
240
243
  titleRender: proxyTitleRender,
241
244
  menuList: showData
242
245
  })
243
- }, /*#__PURE__*/React__default['default'].createElement(picker.Picker, Object.assign({
246
+ }, /*#__PURE__*/React__default["default"].createElement(picker.Picker, Object.assign({
244
247
  ref: ref,
245
248
  className: cls,
246
249
  overlayClassName: classname.cx(prefixCls + "__popper", overlayClassName)
@@ -254,12 +257,12 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
254
257
  onOpen: menuVisibleAction.on,
255
258
  onClose: menuVisibleAction.off,
256
259
  searchable: searchable,
257
- onSearch: onSearch,
258
- trigger: /*#__PURE__*/React__default['default'].createElement(input.MockInput, {
260
+ onSearch: funcUtils.callAllFuncs(onSearchProp, onSearch),
261
+ trigger: /*#__PURE__*/React__default["default"].createElement(input.MockInput, {
259
262
  clearable: clearable,
260
263
  placeholder: placeholder,
261
264
  displayRender: displayRender,
262
- suffix: menuVisible ? /*#__PURE__*/React__default['default'].createElement(icons.UpOutlined, null) : /*#__PURE__*/React__default['default'].createElement(icons.DownOutlined, null),
265
+ suffix: menuVisible ? /*#__PURE__*/React__default["default"].createElement(icons.UpOutlined, null) : /*#__PURE__*/React__default["default"].createElement(icons.DownOutlined, null),
263
266
  focused: menuVisible,
264
267
  value: value[value.length - 1],
265
268
  onChange: function onChange() {
@@ -269,139 +272,13 @@ var Cascader = /*#__PURE__*/React.forwardRef(function (props, ref) {
269
272
  invalid: invalid,
270
273
  appearance: appearance
271
274
  })
272
- }), typeAssertion.isArrayNonEmpty(showData) ? /*#__PURE__*/React__default['default'].createElement(CascaderMenuList, null) : null));
275
+ }), typeAssertion.isArrayNonEmpty(showData) ? /*#__PURE__*/React__default["default"].createElement(CascaderMenuList.CascaderMenuList, null) : null));
273
276
  });
274
277
 
275
278
  if (env.__DEV__) {
276
279
  Cascader.displayName = 'Cascader';
277
280
  }
278
281
 
279
- var menuListPrefix = classname.getPrefixCls('cascader-menu-list');
280
- var CascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
281
- var _a$prefixCls = _a.prefixCls,
282
- prefixCls = _a$prefixCls === void 0 ? menuListPrefix : _a$prefixCls,
283
- className = _a.className,
284
- rest = tslib.__rest(_a, ["prefixCls", "className"]);
285
-
286
- var _useCascaderContext = context.useCascaderContext(),
287
- flatted = _useCascaderContext.flatted,
288
- menuList = _useCascaderContext.menuList;
289
-
290
- var cls = classname.cx(prefixCls, className, flatted && prefixCls + "--flatted");
291
- return /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
292
- ref: ref,
293
- className: cls
294
- }, rest), menuList.map(function (menu, menuIndex) {
295
- // @ts-ignore
296
- return typeAssertion.isArrayNonEmpty(menu) ? /*#__PURE__*/React__default['default'].createElement(CascaderMenu, {
297
- key: menuIndex,
298
- data: menu
299
- }) : null;
300
- }));
301
- });
302
-
303
- if (env.__DEV__) {
304
- CascaderMenuList.displayName = 'CascaderMenuList';
305
- }
306
-
307
- var menuPrefix = classname.getPrefixCls('cascader-menu');
308
-
309
- var CascaderMenu = function CascaderMenu(_ref2) {
310
- var _ref2$prefixCls = _ref2.prefixCls,
311
- prefixCls = _ref2$prefixCls === void 0 ? menuPrefix : _ref2$prefixCls,
312
- _ref2$role = _ref2.role,
313
- role = _ref2$role === void 0 ? 'menu' : _ref2$role,
314
- className = _ref2.className,
315
- menu = _ref2.data;
316
-
317
- var _useCascaderContext2 = context.useCascaderContext(),
318
- flatted = _useCascaderContext2.flatted,
319
- disabledContext = _useCascaderContext2.disabled,
320
- expandTrigger = _useCascaderContext2.expandTrigger,
321
- onItemClick = _useCascaderContext2.onItemClick,
322
- onItemHover = _useCascaderContext2.onItemHover,
323
- titleRender = _useCascaderContext2.titleRender,
324
- onLoadChildren = _useCascaderContext2.onLoadChildren,
325
- getItemRequiredProps = _useCascaderContext2.getItemRequiredProps;
326
-
327
- var cls = classname.cx(prefixCls, className);
328
- return /*#__PURE__*/React__default['default'].createElement("ul", {
329
- className: cls,
330
- role: role
331
- }, menu.map(function (option) {
332
- var eventOption = index$1.getItemEventData(option, getItemRequiredProps(option));
333
- var selected = eventOption.selected,
334
- loading = eventOption.loading;
335
- var disabled = disabledContext || option.disabled;
336
- var optionCls = classname.cx(prefixCls + "-option", loading && prefixCls + "-option--loading", disabled && prefixCls + "-option--disabled", selected && prefixCls + "-option--selected");
337
- return /*#__PURE__*/React__default['default'].createElement("li", {
338
- key: option.id,
339
- role: "menu-item",
340
- className: prefixCls + "-item"
341
- }, /*#__PURE__*/React__default['default'].createElement("div", {
342
- className: optionCls,
343
- onClick: function onClick() {
344
- if (disabled) return;
345
- onItemClick(eventOption);
346
- },
347
- onMouseEnter: function onMouseEnter() {
348
- if (disabled) return;
349
-
350
- if (expandTrigger === 'hover') {
351
- onItemHover(eventOption);
352
- }
353
- }
354
- }, flatted ? renderFlattedTitle(eventOption, titleRender) : /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, renderDefaultTitle(eventOption, titleRender), renderSuffix(prefixCls, option, loading, onLoadChildren))));
355
- }));
356
- };
357
- /**
358
- * 渲染菜单子项的展开提示图标
359
- */
360
-
361
-
362
- var renderSuffix = function renderSuffix(prefixCls, item, loading, onLoadChildren) {
363
- if (loading) {
364
- return /*#__PURE__*/React__default['default'].createElement("span", {
365
- className: classname.cx(prefixCls + "-switcher", prefixCls + "-switcher--loading")
366
- }, index$2.defaultLoadingIcon);
367
- }
368
-
369
- var canLoadChildren = index$1.checkCanLoadChildren(item, onLoadChildren);
370
-
371
- if (canLoadChildren) {
372
- return /*#__PURE__*/React__default['default'].createElement("span", {
373
- className: classname.cx(prefixCls + "-switcher", prefixCls + "-switcher--arrow")
374
- }, index$2.defaultSuffixIcon);
375
- }
376
-
377
- return /*#__PURE__*/React__default['default'].createElement("span", {
378
- className: classname.cx(prefixCls + "-switcher", prefixCls + "-switcher--noop")
379
- }, index$2.defaultLeafIcon);
380
- };
381
-
382
- var renderFlattedTitle = function renderFlattedTitle(option, titleRender) {
383
- // 如果 titleRender 返回 `true`,则使用默认 title
384
- var title = titleRender ? titleRender(option) : true;
385
- if (title !== true) return title;
386
- return /*#__PURE__*/React__default['default'].createElement("span", {
387
- className: "title__text title__text--cols"
388
- }, treeUtils.getTopDownAncestors(option).map(function (item) {
389
- return /*#__PURE__*/React__default['default'].createElement("span", {
390
- key: item.id,
391
- className: "title__text--col"
392
- }, item.title);
393
- }));
394
- };
395
-
396
- var renderDefaultTitle = function renderDefaultTitle(option, titleRender) {
397
- // 如果 titleRender 返回 `true`,则使用默认 title
398
- var title = titleRender ? titleRender(option) : true;
399
- if (title !== true) return title;
400
- return /*#__PURE__*/React__default['default'].createElement("span", {
401
- className: "title__text"
402
- }, option.title);
403
- };
404
-
405
282
  var renderHighlightTitle = function renderHighlightTitle(keyword, option, titleRender) {
406
283
  // 如果 titleRender 返回 `true`,则使用默认 title
407
284
  var title = titleRender ? titleRender(option, keyword) : true;
@@ -413,12 +290,12 @@ var renderHighlightTitle = function renderHighlightTitle(keyword, option, titleR
413
290
  }
414
291
 
415
292
  var found = false;
416
- return /*#__PURE__*/React__default['default'].createElement("span", {
293
+ return /*#__PURE__*/React__default["default"].createElement("span", {
417
294
  className: classname.cx("title__text", "title__text--cols")
418
295
  }, treeUtils.getNodeAncestorsWithMe(option).map(function (item) {
419
296
  var title = item.title,
420
297
  id = item.id;
421
- var raw = /*#__PURE__*/React__default['default'].createElement("span", {
298
+ var raw = /*#__PURE__*/React__default["default"].createElement("span", {
422
299
  className: "title__text--col",
423
300
  key: id
424
301
  }, title);
@@ -429,16 +306,13 @@ var renderHighlightTitle = function renderHighlightTitle(keyword, option, titleR
429
306
  found = true;
430
307
  var beforeStr = title.substr(0, index);
431
308
  var afterStr = title.substr(index + keyword.length);
432
- return /*#__PURE__*/React__default['default'].createElement("span", {
309
+ return /*#__PURE__*/React__default["default"].createElement("span", {
433
310
  key: id,
434
311
  className: "title__text--col"
435
- }, beforeStr, /*#__PURE__*/React__default['default'].createElement("span", {
312
+ }, beforeStr, /*#__PURE__*/React__default["default"].createElement("span", {
436
313
  className: "title__text--matched"
437
314
  }, keyword), afterStr);
438
315
  }).reverse());
439
316
  };
440
317
 
441
318
  exports.Cascader = Cascader;
442
- exports.CascaderMenu = CascaderMenu;
443
- exports.CascaderMenuList = CascaderMenuList;
444
- //# sourceMappingURL=Cascader.js.map
@@ -0,0 +1,171 @@
1
+ /** @LICENSE
2
+ * @hi-ui/cascader
3
+ * https://github.com/XiaoMi/hiui/tree/master/packages/ui/cascader#readme
4
+ *
5
+ * Copyright (c) HIUI <mi-hiui@xiaomi.com>.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ 'use strict';
11
+
12
+ var _typeof = require("@babel/runtime/helpers/typeof");
13
+
14
+ Object.defineProperty(exports, '__esModule', {
15
+ value: true
16
+ });
17
+
18
+ var tslib = require('tslib');
19
+
20
+ var React = require('react');
21
+
22
+ var classname = require('@hi-ui/classname');
23
+
24
+ var env = require('@hi-ui/env');
25
+
26
+ var index$1 = require('./icons/index.js');
27
+
28
+ var index = require('./utils/index.js');
29
+
30
+ var context = require('./context.js');
31
+
32
+ var treeUtils = require('@hi-ui/tree-utils');
33
+
34
+ var typeAssertion = require('@hi-ui/type-assertion');
35
+
36
+ function _interopDefaultLegacy(e) {
37
+ return e && _typeof(e) === 'object' && 'default' in e ? e : {
38
+ 'default': e
39
+ };
40
+ }
41
+
42
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
43
+
44
+ var menuListPrefix = classname.getPrefixCls('cascader-menu-list');
45
+ var CascaderMenuList = /*#__PURE__*/React.forwardRef(function (_a, ref) {
46
+ var _a$prefixCls = _a.prefixCls,
47
+ prefixCls = _a$prefixCls === void 0 ? menuListPrefix : _a$prefixCls,
48
+ className = _a.className,
49
+ rest = tslib.__rest(_a, ["prefixCls", "className"]);
50
+
51
+ var _useCascaderContext = context.useCascaderContext(),
52
+ flatted = _useCascaderContext.flatted,
53
+ menuList = _useCascaderContext.menuList;
54
+
55
+ var cls = classname.cx(prefixCls, className, flatted && prefixCls + "--flatted");
56
+ return /*#__PURE__*/React__default["default"].createElement("div", Object.assign({
57
+ ref: ref,
58
+ className: cls
59
+ }, rest), menuList.map(function (menu, menuIndex) {
60
+ // @ts-ignore
61
+ return typeAssertion.isArrayNonEmpty(menu) ? /*#__PURE__*/React__default["default"].createElement(CascaderMenu, {
62
+ key: menuIndex,
63
+ data: menu
64
+ }) : null;
65
+ }));
66
+ });
67
+
68
+ if (env.__DEV__) {
69
+ CascaderMenuList.displayName = 'CascaderMenuList';
70
+ }
71
+
72
+ var menuPrefix = classname.getPrefixCls('cascader-menu');
73
+
74
+ var CascaderMenu = function CascaderMenu(_ref) {
75
+ var _ref$prefixCls = _ref.prefixCls,
76
+ prefixCls = _ref$prefixCls === void 0 ? menuPrefix : _ref$prefixCls,
77
+ _ref$role = _ref.role,
78
+ role = _ref$role === void 0 ? 'menu' : _ref$role,
79
+ className = _ref.className,
80
+ menu = _ref.data;
81
+
82
+ var _useCascaderContext2 = context.useCascaderContext(),
83
+ flatted = _useCascaderContext2.flatted,
84
+ disabledContext = _useCascaderContext2.disabled,
85
+ expandTrigger = _useCascaderContext2.expandTrigger,
86
+ onItemClick = _useCascaderContext2.onItemClick,
87
+ onItemHover = _useCascaderContext2.onItemHover,
88
+ titleRender = _useCascaderContext2.titleRender,
89
+ onLoadChildren = _useCascaderContext2.onLoadChildren,
90
+ getItemRequiredProps = _useCascaderContext2.getItemRequiredProps;
91
+
92
+ var cls = classname.cx(prefixCls, className);
93
+ return /*#__PURE__*/React__default["default"].createElement("ul", {
94
+ className: cls,
95
+ role: role
96
+ }, menu.map(function (option) {
97
+ var eventOption = index.getItemEventData(option, getItemRequiredProps(option));
98
+ var selected = eventOption.selected,
99
+ loading = eventOption.loading;
100
+ var disabled = disabledContext || option.disabled;
101
+ var optionCls = classname.cx(prefixCls + "-option", loading && prefixCls + "-option--loading", disabled && prefixCls + "-option--disabled", selected && prefixCls + "-option--selected");
102
+ return /*#__PURE__*/React__default["default"].createElement("li", {
103
+ key: option.id,
104
+ role: "menu-item",
105
+ className: prefixCls + "-item"
106
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
107
+ className: optionCls,
108
+ onClick: function onClick() {
109
+ if (disabled) return;
110
+ onItemClick(eventOption);
111
+ },
112
+ onMouseEnter: function onMouseEnter() {
113
+ if (disabled) return;
114
+
115
+ if (expandTrigger === 'hover') {
116
+ onItemHover(eventOption);
117
+ }
118
+ }
119
+ }, flatted ? renderFlattedTitle(eventOption, titleRender) : /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, renderDefaultTitle(eventOption, titleRender), renderSuffix(prefixCls, option, loading, onLoadChildren))));
120
+ }));
121
+ };
122
+ /**
123
+ * 渲染菜单子项的展开提示图标
124
+ */
125
+
126
+
127
+ var renderSuffix = function renderSuffix(prefixCls, item, loading, onLoadChildren) {
128
+ if (loading) {
129
+ return /*#__PURE__*/React__default["default"].createElement("span", {
130
+ className: classname.cx(prefixCls + "-switcher", prefixCls + "-switcher--loading")
131
+ }, index$1.defaultLoadingIcon);
132
+ }
133
+
134
+ var canLoadChildren = index.checkCanLoadChildren(item, onLoadChildren);
135
+
136
+ if (canLoadChildren) {
137
+ return /*#__PURE__*/React__default["default"].createElement("span", {
138
+ className: classname.cx(prefixCls + "-switcher", prefixCls + "-switcher--arrow")
139
+ }, index$1.defaultSuffixIcon);
140
+ }
141
+
142
+ return /*#__PURE__*/React__default["default"].createElement("span", {
143
+ className: classname.cx(prefixCls + "-switcher", prefixCls + "-switcher--noop")
144
+ }, index$1.defaultLeafIcon);
145
+ };
146
+
147
+ var renderFlattedTitle = function renderFlattedTitle(option, titleRender) {
148
+ // 如果 titleRender 返回 `true`,则使用默认 title
149
+ var title = titleRender ? titleRender(option) : true;
150
+ if (title !== true) return title;
151
+ return /*#__PURE__*/React__default["default"].createElement("span", {
152
+ className: "title__text title__text--cols"
153
+ }, treeUtils.getTopDownAncestors(option).map(function (item) {
154
+ return /*#__PURE__*/React__default["default"].createElement("span", {
155
+ key: item.id,
156
+ className: "title__text--col"
157
+ }, item.title);
158
+ }));
159
+ };
160
+
161
+ var renderDefaultTitle = function renderDefaultTitle(option, titleRender) {
162
+ // 如果 titleRender 返回 `true`,则使用默认 title
163
+ var title = titleRender ? titleRender(option) : true;
164
+ if (title !== true) return title;
165
+ return /*#__PURE__*/React__default["default"].createElement("span", {
166
+ className: "title__text"
167
+ }, option.title);
168
+ };
169
+
170
+ exports.CascaderMenu = CascaderMenu;
171
+ exports.CascaderMenuList = CascaderMenuList;
@@ -30,4 +30,3 @@ var useCascaderContext = function useCascaderContext() {
30
30
 
31
31
  exports.CascaderProvider = CascaderProvider;
32
32
  exports.useCascaderContext = useCascaderContext;
33
- //# sourceMappingURL=context.js.map
@@ -39,9 +39,9 @@ var useAsyncSwitch = function useAsyncSwitch(setCascaderData, onExpand, onLoadCh
39
39
  var onLoadChildrenLatest = useLatest.useLatestCallback(onLoadChildren); // 加载节点
40
40
 
41
41
  var loadChildren = React.useCallback(function (node) {
42
- return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default['default'].mark(function _callee() {
42
+ return tslib.__awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee() {
43
43
  var childrenNodes;
44
- return _regeneratorRuntime__default['default'].wrap(function _callee$(_context) {
44
+ return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
45
45
  while (1) {
46
46
  switch (_context.prev = _context.next) {
47
47
  case 0:
@@ -82,9 +82,9 @@ var useAsyncSwitch = function useAsyncSwitch(setCascaderData, onExpand, onLoadCh
82
82
  onlyExpand = false;
83
83
  }
84
84
 
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:
@@ -140,4 +140,3 @@ var useAsyncSwitch = function useAsyncSwitch(setCascaderData, onExpand, onLoadCh
140
140
  };
141
141
 
142
142
  exports.useAsyncSwitch = useAsyncSwitch;
143
- //# sourceMappingURL=use-async-switch.js.map
@@ -41,4 +41,3 @@ var useCache = function useCache(data) {
41
41
  };
42
42
 
43
43
  exports.useCache = useCache;
44
- //# sourceMappingURL=index.js.map
@@ -65,4 +65,3 @@ var useSelect = function useSelect(disabled, onSelect, changeOnSelect, onLoadChi
65
65
  };
66
66
 
67
67
  exports.useSelect = useSelect;
68
- //# sourceMappingURL=use-select.js.map
@@ -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
package/lib/cjs/index.js CHANGED
@@ -18,7 +18,4 @@ require('./styles/index.scss.js');
18
18
  var Cascader = require('./Cascader.js');
19
19
 
20
20
  exports.Cascader = Cascader.Cascader;
21
- exports.CascaderMenu = Cascader.CascaderMenu;
22
- exports.CascaderMenuList = Cascader.CascaderMenuList;
23
21
  exports["default"] = Cascader.Cascader;
24
- //# sourceMappingURL=index.js.map
@@ -12,11 +12,10 @@
12
12
  Object.defineProperty(exports, '__esModule', {
13
13
  value: true
14
14
  });
15
- var css_248z = "@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n@use 'sass:map';\n.hi-v4-cascader__popper .hi-v4-picker__body {\n padding-left: 0;\n padding-right: 0; }\n.hi-v4-cascader__popper .hi-v4-picker__loading, .hi-v4-cascader__popper .hi-v4-picker__empty {\n padding: 10px 16px;\n padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-8, 16px); }\n.hi-v4-cascader-panel {\n white-space: nowrap;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n color: #1f2733;\n color: var(--hi-v4-color-gray-700, #1f2733); }\n.hi-v4-cascader-search {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n padding: 0 10px 10px;\n position: relative; }\n.hi-v4-cascader-search .hi-v4-input__prefix {\n font-size: 16px;\n padding-left: 0; }\n.hi-v4-cascader-search__empty {\n display: inline-block;\n margin-top: 20px;\n font-size: 14px;\n font-weight: 400;\n color: #999;\n line-height: 20px; }\n.hi-v4-cascader-menu-list {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n overflow-x: auto; }\n.hi-v4-cascader-menu-list--flatted .hi-v4-cascader-menu {\n -ms-flex-preferred-size: 100%;\n flex-basis: 100%; }\n.hi-v4-cascader-menu {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: none;\n outline: none;\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n vertical-align: middle;\n list-style: none;\n width: auto;\n box-sizing: border-box;\n -ms-flex-negative: 0;\n flex-shrink: 0;\n display: inline-block;\n min-width: 140px;\n max-height: 260px;\n overflow: auto;\n padding: 4px 8px;\n border-right: 1px solid #ebedf0;\n border-right: var(--hi-v4-border-size-normal, 1px solid) var(--hi-v4-color-gray-200, #ebedf0); }\n.hi-v4-cascader-menu:last-of-type {\n border: none; }\n.hi-v4-cascader-menu-item {\n width: 100%;\n padding: 4px 0;\n padding: var(--hi-v4-spacing-2, 4px) 0;\n position: relative;\n cursor: pointer;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex; }\n.hi-v4-cascader-menu-option {\n padding: 0 8px;\n padding: 0 var(--hi-v4-spacing-4, 8px);\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n height: 32px;\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n position: relative;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n border-radius: 4px;\n border-radius: var(--hi-v4-border-radius-normal, 4px); }\n.hi-v4-cascader-menu-option:hover {\n background-color: #f2f4f7;\n background-color: var(--hi-v4-color-gray-100, #f2f4f7); }\n.hi-v4-cascader-menu-option.hi-v4-cascader-menu-option--selected {\n background-color: #e2f3fe;\n background-color: var(--hi-v4-color-brandblue-50, #e2f3fe);\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-cascader-menu-option.hi-v4-cascader-menu-option--selected .hi-v4-cascader-menu-switcher {\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-cascader-menu-option--focused {\n background-color: #e2f3fe;\n background-color: var(--hi-v4-color-brandblue-50, #e2f3fe); }\n.hi-v4-cascader-menu-option--checked {\n font-weight: 700; }\n.hi-v4-cascader-menu-option.hi-v4-cascader-menu-option--disabled {\n cursor: not-allowed;\n color: #929aa6;\n color: var(--hi-v4-color-gray-500, #929aa6);\n background: transparent; }\n.hi-v4-cascader-menu-option.hi-v4-cascader-menu-option--disabled .hi-v4-cascader-menu-switcher {\n color: #c9ced6;\n color: var(--hi-v4-color-gray-400, #c9ced6); }\n.hi-v4-cascader-menu .title__text {\n -webkit-box-flex: 1;\n -ms-flex: 1 1;\n flex: 1 1; }\n.hi-v4-cascader-menu .title__text--cols {\n display: block;\n width: 100%;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: none;\n outline: none;\n font-size: 0.875rem;\n font-size: var(--hi-v4-text-size-normal, 0.875rem);\n vertical-align: middle;\n list-style: none; }\n.hi-v4-cascader-menu .title__text--col {\n display: inline-block; }\n.hi-v4-cascader-menu .title__text--col::after {\n content: '\\00a0/\\00a0'; }\n.hi-v4-cascader-menu .title__text--col:last-child::after {\n content: none; }\n.hi-v4-cascader-menu .title__text--matched {\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-cascader-menu-switcher {\n -ms-flex-negative: 0;\n flex-shrink: 0;\n font-size: 16px;\n color: #929aa6;\n color: var(--hi-v4-color-gray-500, #929aa6); }\n.hi-v4-cascader-menu-switcher--loading {\n color: #237ffa;\n color: var(--hi-v4-color-brandblue-500, #237ffa); }\n.hi-v4-cascader-menu-switcher--arrow {\n -webkit-transform: rotate(-90deg);\n transform: rotate(-90deg); }\n.hi-v4-cascader__icon--loading {\n display: inline-block;\n width: 1em;\n height: 1em;\n stroke: none;\n cursor: default;\n fill: currentColor; }\n.hi-v4-cascader__icon--loading svg {\n -webkit-animation-name: hi-rotate;\n animation-name: hi-rotate;\n -webkit-animation-duration: 2s;\n animation-duration: 2s;\n -webkit-animation-iteration-count: infinite;\n animation-iteration-count: infinite; }\n@-webkit-keyframes rotate {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n@keyframes rotate {\n to {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n";
15
+ var css_248z = ".hi-v4-cascader__popper .hi-v4-picker__body {padding-left: 0;padding-right: 0;overflow-y: hidden; }.hi-v4-cascader__popper .hi-v4-picker__loading, .hi-v4-cascader__popper .hi-v4-picker__empty {padding: var(--hi-v4-spacing-5, 10px) var(--hi-v4-spacing-8, 16px); }.hi-v4-cascader-panel {white-space: nowrap;-webkit-box-sizing: border-box;box-sizing: border-box;font-size: var(--hi-v4-text-size-md, 0.875rem);color: var(--hi-v4-color-gray-700, #1f2733); }.hi-v4-cascader-search {-webkit-box-sizing: border-box;box-sizing: border-box;padding: 0 10px 10px;position: relative; }.hi-v4-cascader-search .hi-v4-input__prefix {font-size: 16px;padding-left: 0; }.hi-v4-cascader-search__empty {display: inline-block;margin-top: 20px;font-size: 14px;font-weight: 400;color: #999;line-height: 20px; }.hi-v4-cascader-menu-list {display: -webkit-box;display: -ms-flexbox;display: flex;-webkit-box-sizing: border-box;box-sizing: border-box;overflow-x: auto; }.hi-v4-cascader-menu-list--flatted .hi-v4-cascader-menu {-ms-flex-preferred-size: 100%;flex-basis: 100%; }.hi-v4-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: 260px;overflow: auto;padding: 4px 8px;border-right: var(--hi-v4-border-size-normal, 1px solid) var(--hi-v4-color-gray-200, #ebedf0); }.hi-v4-cascader-menu:last-of-type {border: none; }.hi-v4-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-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-cascader-menu-option:hover {background-color: var(--hi-v4-color-gray-100, #f2f4f7); }.hi-v4-cascader-menu-option.hi-v4-cascader-menu-option--selected {background-color: 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-cascader-menu-option.hi-v4-cascader-menu-option--selected .hi-v4-cascader-menu-switcher {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa)); }.hi-v4-cascader-menu-option--focused {background-color: var(--hi-v4-color-primary-50, var(--hi-v4-color-brandblue-50, #e2f3fe)); }.hi-v4-cascader-menu-option--checked {font-weight: 700; }.hi-v4-cascader-menu-option.hi-v4-cascader-menu-option--disabled {cursor: not-allowed;color: var(--hi-v4-color-gray-500, #929aa6);background: transparent; }.hi-v4-cascader-menu-option.hi-v4-cascader-menu-option--disabled .hi-v4-cascader-menu-switcher {color: var(--hi-v4-color-gray-400, #c9ced6); }.hi-v4-cascader-menu .title__text {-webkit-box-flex: 1;-ms-flex: 1 1;flex: 1 1; }.hi-v4-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-cascader-menu .title__text--col {display: inline-block; }.hi-v4-cascader-menu .title__text--col::after {content: '\\00a0/\\00a0'; }.hi-v4-cascader-menu .title__text--col:last-child::after {content: none; }.hi-v4-cascader-menu .title__text--matched {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa)); }.hi-v4-cascader-menu-switcher {-ms-flex-negative: 0;flex-shrink: 0;font-size: 16px;color: var(--hi-v4-color-gray-500, #929aa6); }.hi-v4-cascader-menu-switcher--loading {color: var(--hi-v4-color-primary-500, var(--hi-v4-color-brandblue-500, #237ffa)); }.hi-v4-cascader-menu-switcher--arrow {-webkit-transform: rotate(-90deg);transform: rotate(-90deg); }.hi-v4-cascader__icon--loading {display: inline-block;width: 1em;height: 1em;stroke: none;cursor: default;fill: currentColor; }.hi-v4-cascader__icon--loading svg {-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 rotate {to {-webkit-transform: rotate(360deg);transform: rotate(360deg); } }@keyframes rotate {to {-webkit-transform: rotate(360deg);transform: rotate(360deg); } }";
16
16
 
17
- var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
17
+ var __styleInject__ = require('inject-head-style')["default"];
18
18
 
19
19
  __styleInject__(css_248z);
20
20
 
21
21
  exports["default"] = css_248z;
22
- //# sourceMappingURL=index.scss.js.map
@@ -132,4 +132,3 @@ var useCascader = function useCascader(_a) {
132
132
  };
133
133
 
134
134
  exports.useCascader = useCascader;
135
- //# sourceMappingURL=use-cascader.js.map
@@ -116,4 +116,3 @@ exports.getActiveMenus = getActiveMenus;
116
116
  exports.getActiveNodePaths = getActiveNodePaths;
117
117
  exports.getFlattedMenus = getFlattedMenus;
118
118
  exports.getItemEventData = getItemEventData;
119
- //# sourceMappingURL=index.js.map