@hi-ui/cascader 4.0.0-alpha.26 → 4.0.0-alpha.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 (54) hide show
  1. package/README.md +42 -46
  2. package/lib/cjs/Cascader.js +103 -146
  3. package/lib/cjs/Cascader.js.map +1 -1
  4. package/lib/cjs/context.js.map +1 -1
  5. package/lib/cjs/hooks/use-async-switch.js +10 -34
  6. package/lib/cjs/hooks/use-async-switch.js.map +1 -1
  7. package/lib/cjs/hooks/use-select.js +3 -1
  8. package/lib/cjs/hooks/use-select.js.map +1 -1
  9. package/lib/cjs/index.js +0 -4
  10. package/lib/cjs/index.js.map +1 -1
  11. package/lib/cjs/styles/index.scss.js +1 -1
  12. package/lib/cjs/use-cascader.js +31 -72
  13. package/lib/cjs/use-cascader.js.map +1 -1
  14. package/lib/cjs/utils/index.js +35 -27
  15. package/lib/cjs/utils/index.js.map +1 -1
  16. package/lib/esm/Cascader.js +109 -147
  17. package/lib/esm/Cascader.js.map +1 -1
  18. package/lib/esm/context.js.map +1 -1
  19. package/lib/esm/hooks/use-async-switch.js +11 -36
  20. package/lib/esm/hooks/use-async-switch.js.map +1 -1
  21. package/lib/esm/hooks/use-select.js +2 -1
  22. package/lib/esm/hooks/use-select.js.map +1 -1
  23. package/lib/esm/index.js +1 -2
  24. package/lib/esm/index.js.map +1 -1
  25. package/lib/esm/styles/index.scss.js +1 -1
  26. package/lib/esm/use-cascader.js +28 -68
  27. package/lib/esm/use-cascader.js.map +1 -1
  28. package/lib/esm/utils/index.js +33 -25
  29. package/lib/esm/utils/index.js.map +1 -1
  30. package/lib/types/Cascader.d.ts +13 -61
  31. package/lib/types/context.d.ts +27 -588
  32. package/lib/types/hooks/index.d.ts +0 -2
  33. package/lib/types/hooks/use-async-switch.d.ts +1 -1
  34. package/lib/types/hooks/use-select.d.ts +1 -1
  35. package/lib/types/index.d.ts +0 -1
  36. package/lib/types/types.d.ts +11 -7
  37. package/lib/types/use-cascader.d.ts +53 -295
  38. package/lib/types/utils/index.d.ts +3 -6
  39. package/package.json +16 -15
  40. package/lib/cjs/CascaderPanel.js +0 -81
  41. package/lib/cjs/CascaderPanel.js.map +0 -1
  42. package/lib/cjs/hooks/use-cache.js +0 -37
  43. package/lib/cjs/hooks/use-cache.js.map +0 -1
  44. package/lib/cjs/hooks/use-search.js +0 -116
  45. package/lib/cjs/hooks/use-search.js.map +0 -1
  46. package/lib/esm/CascaderPanel.js +0 -58
  47. package/lib/esm/CascaderPanel.js.map +0 -1
  48. package/lib/esm/hooks/use-cache.js +0 -30
  49. package/lib/esm/hooks/use-cache.js.map +0 -1
  50. package/lib/esm/hooks/use-search.js +0 -107
  51. package/lib/esm/hooks/use-search.js.map +0 -1
  52. package/lib/types/CascaderPanel.d.ts +0 -142
  53. package/lib/types/hooks/use-cache.d.ts +0 -8
  54. package/lib/types/hooks/use-search.d.ts +0 -9
@@ -7,7 +7,7 @@
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.
9
9
  */
10
- 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-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 min-height: 160px;\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";
10
+ 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-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";
11
11
 
12
12
  var __styleInject__ = require('style-inject/dist/style-inject.es.js')["default"];
13
13
 
@@ -10,13 +10,12 @@
10
10
  import { __rest } from 'tslib';
11
11
  import { useMemo, useCallback } from 'react';
12
12
  import { useUncontrolledState } from '@hi-ui/use-uncontrolled-state';
13
+ import { useCache } from './hooks/use-cache/lib/esm/index.js';
13
14
  import { flattenTreeData, getActiveNodePaths, checkCanLoadChildren, getFlattedMenus, getActiveMenus } from './utils/index.js';
14
- import { useSearch } from './hooks/use-search.js';
15
15
  import { useSelect } from './hooks/use-select.js';
16
- import { useCache } from './hooks/use-cache.js';
17
16
  import { useAsyncSwitch } from './hooks/use-async-switch.js';
18
17
  var NOOP_ARRAY = [];
19
- var NOOP_VALUE = '';
18
+ var NOOP_VALUE = [];
20
19
 
21
20
  var useCascader = function useCascader(_a) {
22
21
  var _a$defaultValue = _a.defaultValue,
@@ -30,25 +29,14 @@ var useCascader = function useCascader(_a) {
30
29
  _a$changeOnSelect = _a.changeOnSelect,
31
30
  changeOnSelect = _a$changeOnSelect === void 0 ? false : _a$changeOnSelect,
32
31
  _a$flatted = _a.flatted,
33
- flattedProp = _a$flatted === void 0 ? false : _a$flatted,
34
- _a$upMatch = _a.upMatch,
35
- upMatch = _a$upMatch === void 0 ? false : _a$upMatch,
36
- _a$expandTrigger = _a.expandTrigger,
37
- expandTrigger = _a$expandTrigger === void 0 ? 'click' : _a$expandTrigger,
38
- _a$emptyContent = _a.emptyContent,
39
- emptyContent = _a$emptyContent === void 0 ? '无匹配选项' : _a$emptyContent,
40
- placeholder = _a.placeholder,
41
- searchPlaceholder = _a.searchPlaceholder,
42
- onSelect = _a.onSelect,
43
- titleRender = _a.titleRender,
44
- displayRender = _a.displayRender,
32
+ flatted = _a$flatted === void 0 ? false : _a$flatted,
33
+ onSelectProp = _a.onSelect,
45
34
  onLoadChildren = _a.onLoadChildren,
46
35
  cascaderDataProp = _a.cascaderData,
47
36
  setCascaderDataProp = _a.setCascaderData,
48
37
  flattedDataProp = _a.flattedData,
49
- matchedItemsProp = _a.matchedItems,
50
- inSearchProp = _a.inSearch,
51
- rest = __rest(_a, ["defaultValue", "value", "onChange", "data", "disabled", "changeOnSelect", "flatted", "upMatch", "expandTrigger", "emptyContent", "placeholder", "searchPlaceholder", "onSelect", "titleRender", "displayRender", "onLoadChildren", "cascaderData", "setCascaderData", "flattedData", "matchedItems", "inSearch"]);
38
+ fieldNames = _a.fieldNames,
39
+ rest = __rest(_a, ["defaultValue", "value", "onChange", "data", "disabled", "changeOnSelect", "flatted", "onSelect", "onLoadChildren", "cascaderData", "setCascaderData", "flattedData", "fieldNames"]);
52
40
 
53
41
  var _useCache = useCache(data),
54
42
  cacheData = _useCache[0],
@@ -57,27 +45,31 @@ var useCascader = function useCascader(_a) {
57
45
  var cascaderData = cascaderDataProp !== null && cascaderDataProp !== void 0 ? cascaderDataProp : cacheData;
58
46
  var setCascaderData = setCascaderDataProp !== null && setCascaderDataProp !== void 0 ? setCascaderDataProp : setCacheData;
59
47
  var flattedData = useMemo(function () {
60
- return flattedDataProp !== null && flattedDataProp !== void 0 ? flattedDataProp : flattenTreeData(cascaderData);
61
- }, [cascaderData, flattedDataProp]);
48
+ return flattedDataProp !== null && flattedDataProp !== void 0 ? flattedDataProp : flattenTreeData(cascaderData, fieldNames);
49
+ }, [cascaderData, flattedDataProp, fieldNames]);
62
50
 
63
51
  var _useUncontrolledState = useUncontrolledState(defaultValue, valueProp, onChangeProp),
64
52
  value = _useUncontrolledState[0],
65
53
  tryChangeValue = _useUncontrolledState[1];
66
54
 
67
- var proxyTryChangeValue = useCallback(function (value, item, itemPaths) {
68
- tryChangeValue(value, item, itemPaths);
69
- onSelect === null || onSelect === void 0 ? void 0 : onSelect(value, item, itemPaths);
70
- }, [tryChangeValue, onSelect]); // 单击选中某项
55
+ var onSelect = function onSelect(value, item, itemPaths) {
56
+ tryChangeValue(itemPaths.map(function (_ref) {
57
+ var id = _ref.id;
58
+ return id;
59
+ }));
60
+ onSelectProp === null || onSelectProp === void 0 ? void 0 : onSelectProp(value, item, itemPaths);
61
+ }; // 单击选中某项
62
+
71
63
 
72
- var _useSelect = useSelect(disabled, proxyTryChangeValue, changeOnSelect, onLoadChildren),
64
+ var _useSelect = useSelect(disabled, onSelect, changeOnSelect, onLoadChildren),
73
65
  selectedId = _useSelect[0],
74
66
  onOptionSelect = _useSelect[1],
75
67
  setSelectedId = _useSelect[2]; // 选中 id 路径
76
68
 
77
69
 
78
70
  var selectedIds = useMemo(function () {
79
- return getActiveNodePaths(flattedData, selectedId).map(function (_ref) {
80
- var id = _ref.id;
71
+ return getActiveNodePaths(flattedData, selectedId).map(function (_ref2) {
72
+ var id = _ref2.id;
81
73
  return id;
82
74
  });
83
75
  }, [flattedData, selectedId]); // 存在异步加载数据的情况时,单击选中时需要控制异步加载状态
@@ -93,28 +85,12 @@ var useCascader = function useCascader(_a) {
93
85
  var isCanLoadChildren = useCallback(function (option) {
94
86
  return checkCanLoadChildren(option, onLoadChildren);
95
87
  }, [onLoadChildren]);
96
-
97
- var _useSearch = useSearch(flattedData, upMatch, isCanLoadChildren),
98
- inSearchInner = _useSearch[0],
99
- matchedItemsInner = _useSearch[1],
100
- inputProps = _useSearch[2],
101
- isEmpty = _useSearch[3],
102
- resetSearch = _useSearch[4];
103
-
104
- var inSearch = inSearchProp !== null && inSearchProp !== void 0 ? inSearchProp : inSearchInner;
105
- var matchedItems = matchedItemsProp !== null && matchedItemsProp !== void 0 ? matchedItemsProp : matchedItemsInner;
106
88
  var menuList = useMemo(function () {
107
- if (inSearch) {
108
- return [matchedItems];
109
- }
110
-
111
- return flattedProp ? getFlattedMenus(flattedData, isCanLoadChildren) : getActiveMenus(flattedData, selectedId);
112
- }, [inSearch, flattedProp, matchedItems, flattedData, selectedId, isCanLoadChildren]); // 搜索的结果列表也采用 flatted 模式进行展示
113
-
114
- var flatted = flattedProp || inSearch;
115
- var getCascaderItemRequiredProps = useCallback(function (_ref2) {
116
- var id = _ref2.id,
117
- depth = _ref2.depth;
89
+ return flatted ? getFlattedMenus(flattedData, isCanLoadChildren) : getActiveMenus(flattedData, selectedId);
90
+ }, [flatted, flattedData, selectedId, isCanLoadChildren]);
91
+ var getItemRequiredProps = useCallback(function (_ref3) {
92
+ var id = _ref3.id,
93
+ depth = _ref3.depth;
118
94
  return {
119
95
  selected: flatted ? selectedId === id : selectedIds[depth] === id,
120
96
  loading: isLoadingId(id),
@@ -122,39 +98,23 @@ var useCascader = function useCascader(_a) {
122
98
  focused: false
123
99
  };
124
100
  }, [flatted, selectedId, selectedIds, isLoadingId]);
125
- var getSearchInputProps = useCallback(function () {
126
- return {
127
- placeholder: searchPlaceholder,
128
- value: inputProps.value,
129
- onChange: inputProps.onChange
130
- };
131
- }, [searchPlaceholder, inputProps]);
132
101
  var reset = useCallback(function () {
133
- resetSearch();
134
- setSelectedId(value);
135
- }, [setSelectedId, value, resetSearch]);
102
+ setSelectedId(value[value.length - 1]);
103
+ }, [setSelectedId, value]);
136
104
  return {
137
105
  rootProps: rest,
138
106
  reset: reset,
139
107
  flattedData: flattedData,
140
108
  value: value,
141
109
  tryChangeValue: tryChangeValue,
142
- getCascaderItemRequiredProps: getCascaderItemRequiredProps,
143
- expandTrigger: expandTrigger,
110
+ getItemRequiredProps: getItemRequiredProps,
144
111
  flatted: flatted,
145
112
  onItemClick: onItemExpand,
146
113
  onItemHover: onItemHover,
147
114
  changeOnSelect: changeOnSelect,
148
115
  onLoadChildren: onLoadChildren,
149
- keyword: inputProps.value,
150
116
  disabled: disabled,
151
- menuList: menuList,
152
- isEmpty: isEmpty,
153
- placeholder: placeholder,
154
- displayRender: displayRender,
155
- titleRender: titleRender,
156
- emptyContent: emptyContent,
157
- getSearchInputProps: getSearchInputProps
117
+ menuList: menuList
158
118
  };
159
119
  };
160
120
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-cascader.js","sources":["../../src/use-cascader.ts"],"sourcesContent":[null],"names":["NOOP_ARRAY","NOOP_VALUE","useCascader","_a","defaultValue","valueProp","value","onChangeProp","onChange","data","disabled","changeOnSelect","flatted","flattedProp","upMatch","expandTrigger","emptyContent","placeholder","searchPlaceholder","onSelect","titleRender","displayRender","onLoadChildren","cascaderDataProp","cascaderData","setCascaderDataProp","setCascaderData","flattedDataProp","flattedData","matchedItemsProp","matchedItems","inSearchProp","inSearch","rest","useCache","cacheData","setCacheData","useMemo","flattenTreeData","useUncontrolledState","tryChangeValue","proxyTryChangeValue","useCallback","item","itemPaths","useSelect","selectedId","onOptionSelect","setSelectedId","selectedIds","getActiveNodePaths","map","id","useAsyncSwitch","isLoadingId","onItemExpand","onItemHover","option","isCanLoadChildren","checkCanLoadChildren","useSearch","inSearchInner","matchedItemsInner","inputProps","isEmpty","resetSearch","menuList","getFlattedMenus","getActiveMenus","getCascaderItemRequiredProps","depth","selected","loading","focused","getSearchInputProps","reset","rootProps","onItemClick","keyword"],"mappings":";;;;;;;;;;;;;;;;;AAcA,IAAMA,UAAU,GAAG,EAAnB;AACA,IAAMC,UAAU,GAAG,EAAnB;;IAEaC,WAAW,GAAG,SAAdA,WAAc,CAACC,EAAD;2BACzBC;MAAAA,4CAAeH;MACRI,eAAPC;MACUC,kBAAVC;mBACAC;MAAAA,4BAAOT;uBACPU;MAAAA,oCAAW;6BACXC;MAAAA,gDAAiB;sBACjBC;MAASC,sCAAc;sBACvBC;MAAAA,kCAAU;4BACVC;MAAAA,8CAAgB;2BAChBC;MAAAA,4CAAe;MACfC,iBAAAA;MACAC,uBAAAA;MACAC,cAAAA;MACAC,iBAAAA;MACAC,mBAAAA;MACAC,oBAAAA;MAEcC,sBAAdC;MAEiBC,yBAAjBC;MAEaC,qBAAbC;MAEcC,sBAAdC;MAEUC,kBAAVC;MACGC,kBA3BuB,eAAA,SAAA,YAAA,QAAA,YAAA,kBAAA,WAAA,WAAA,iBAAA,gBAAA,eAAA,qBAAA,YAAA,eAAA,iBAAA,kBAAA,gBAAA,mBAAA,eAAA,gBAAA,YAAA;;kBA6BQC,QAAQ,CAACzB,IAAD;MAAnC0B,SAAP;MAAkBC,YAAlB;;MACMZ,YAAY,GAAGD,gBAAgB,SAAhBA,IAAAA,gBAAgB,WAAhBA,GAAAA,gBAAAA,GAAoBY;MACnCT,eAAe,GAAGD,mBAAmB,SAAnBA,IAAAA,mBAAmB,WAAnBA,GAAAA,mBAAAA,GAAuBW;MAEzCR,WAAW,GAAGS,OAAO,CAAC;WAAMV,eAAe,SAAfA,IAAAA,eAAe,WAAfA,GAAAA,eAAAA,GAAmBW,eAAe,CAACd,YAAD;AAAzC,GAAA,EAAyD,CAClFA,YADkF,EAElFG,eAFkF,CAAzD;;8BAKKY,oBAAoB,CAACnC,YAAD,EAAeC,SAAf,EAA0BE,YAA1B;MAA7CD,KAAP;MAAckC,cAAd;;MAEMC,mBAAmB,GAAGC,WAAW,CACrC,UAACpC,KAAD,EAAyBqC,IAAzB,EAAsDC,SAAtD;AACEJ,IAAAA,cAAc,CAAClC,KAAD,EAAQqC,IAAR,EAAcC,SAAd,CAAdJ;AACArB,IAAAA,QAAQ,SAARA,IAAAA,QAAQ,WAARA,SAAAA,GAAAA,QAAQ,CAAGb,KAAH,EAAUqC,IAAV,EAAgBC,SAAhB,CAARzB;AAHmC,GAAA,EAKrC,CAACqB,cAAD,EAAiBrB,QAAjB,CALqC;;mBASa0B,SAAS,CAC3DnC,QAD2D,EAE3D+B,mBAF2D,EAG3D9B,cAH2D,EAI3DW,cAJ2D;MAAtDwB,UAAP;MAAmBC,cAAnB;MAAmCC,aAAnC;;;MAQMC,WAAW,GAAGZ,OAAO,CACzB;WAAMa,kBAAkB,CAACtB,WAAD,EAAckB,UAAd,CAAlBI,CAA4CC,GAA5CD,CAAgD,cAAA;UAAGE,EAAH,QAAGA;aAASA;AAA5D,KAAAF;AADmB,GAAA,EAEzB,CAACtB,WAAD,EAAckB,UAAd,CAFyB;;wBAMSO,cAAc,CAChD3B,eADgD,EAEhDqB,cAFgD,EAGhDzB,cAHgD;MAA3CgC,WAAP;MAAoBC,YAApB;;MAMMC,WAAW,GAAGd,WAAW,CAC7B,UAACe,MAAD;;AAEEF,IAAAA,YAAY,CAACE,MAAD,EAAS,IAAT,CAAZF;AAH2B,GAAA,EAK7B,CAACA,YAAD,CAL6B;MAQzBG,iBAAiB,GAAGhB,WAAW,CACnC,UAACe,MAAD;WACSE,oBAAoB,CAACF,MAAD,EAASnC,cAAT;AAFM,GAAA,EAInC,CAACA,cAAD,CAJmC;;mBAOwCsC,SAAS,CACpFhC,WADoF,EAEpFd,OAFoF,EAGpF4C,iBAHoF;MAA/EG,aAAP;MAAsBC,iBAAtB;MAAyCC,UAAzC;MAAqDC,OAArD;MAA8DC,WAA9D;;MAKMjC,QAAQ,GAAGD,YAAY,SAAZA,IAAAA,YAAY,WAAZA,GAAAA,YAAAA,GAAgB8B;MAC3B/B,YAAY,GAAGD,gBAAgB,SAAhBA,IAAAA,gBAAgB,WAAhBA,GAAAA,gBAAAA,GAAoBiC;MAEnCI,QAAQ,GAAG7B,OAAO,CAAC;QACnBL,UAAU;aACL,CAACF,YAAD;;;WAEFjB,WAAW,GACdsD,eAAe,CAACvC,WAAD,EAAc8B,iBAAd,CADD,GAEdU,cAAc,CAACxC,WAAD,EAAckB,UAAd;AANI,GAAA,EAOrB,CAACd,QAAD,EAAWnB,WAAX,EAAwBiB,YAAxB,EAAsCF,WAAtC,EAAmDkB,UAAnD,EAA+DY,iBAA/D,CAPqB;;MAUlB9C,OAAO,GAAGC,WAAW,IAAImB;MAEzBqC,4BAA4B,GAAG3B,WAAW,CAC9C,eAAA;QAAGU,WAAAA;QAAIkB,cAAAA;WACE;AACLC,MAAAA,QAAQ,EAAE3D,OAAO,GAAGkC,UAAU,KAAKM,EAAlB,GAAuBH,WAAW,CAACqB,KAAD,CAAXrB,KAAuBG,EAD1D;AAELoB,MAAAA,OAAO,EAAElB,WAAW,CAACF,EAAD,CAFf;;AAILqB,MAAAA,OAAO,EAAE;AAJJ;AAFqC,GAAA,EAS9C,CAAC7D,OAAD,EAAUkC,UAAV,EAAsBG,WAAtB,EAAmCK,WAAnC,CAT8C;MAY1CoB,mBAAmB,GAAGhC,WAAW,CACrC;WAAO;AACLzB,MAAAA,WAAW,EAAEC,iBADR;AAELZ,MAAAA,KAAK,EAAEyD,UAAU,CAACzD,KAFb;AAGLE,MAAAA,QAAQ,EAAEuD,UAAU,CAACvD;AAHhB;AAD8B,GAAA,EAMrC,CAACU,iBAAD,EAAoB6C,UAApB,CANqC;MASjCY,KAAK,GAAGjC,WAAW,CAAC;AACxBuB,IAAAA,WAAW;AACXjB,IAAAA,aAAa,CAAC1C,KAAD,CAAb0C;AAFuB,GAAA,EAGtB,CAACA,aAAD,EAAgB1C,KAAhB,EAAuB2D,WAAvB,CAHsB;SAKlB;AACLW,IAAAA,SAAS,EAAE3C,IADN;AAEL0C,IAAAA,KAAK,EAALA,KAFK;AAGL/C,IAAAA,WAAW,EAAXA,WAHK;AAILtB,IAAAA,KAAK,EAALA,KAJK;AAKLkC,IAAAA,cAAc,EAAdA,cALK;AAML6B,IAAAA,4BAA4B,EAA5BA,4BANK;AAOLtD,IAAAA,aAAa,EAAbA,aAPK;AAQLH,IAAAA,OAAO,EAAPA,OARK;AASLiE,IAAAA,WAAW,EAAEtB,YATR;AAULC,IAAAA,WAAW,EAAXA,WAVK;AAWL7C,IAAAA,cAAc,EAAdA,cAXK;AAYLW,IAAAA,cAAc,EAAdA,cAZK;AAaLwD,IAAAA,OAAO,EAAEf,UAAU,CAACzD,KAbf;AAcLI,IAAAA,QAAQ,EAARA,QAdK;AAeLwD,IAAAA,QAAQ,EAARA,QAfK;AAgBLF,IAAAA,OAAO,EAAPA,OAhBK;AAiBL/C,IAAAA,WAAW,EAAXA,WAjBK;AAkBLI,IAAAA,aAAa,EAAbA,aAlBK;AAmBLD,IAAAA,WAAW,EAAXA,WAnBK;AAoBLJ,IAAAA,YAAY,EAAZA,YApBK;AAqBL0D,IAAAA,mBAAmB,EAAnBA;AArBK;;;"}
1
+ {"version":3,"file":"use-cascader.js","sources":["../../src/use-cascader.ts"],"sourcesContent":[null],"names":["NOOP_ARRAY","NOOP_VALUE","useCascader","_a","defaultValue","valueProp","value","onChangeProp","onChange","data","disabled","changeOnSelect","flatted","onSelectProp","onSelect","onLoadChildren","cascaderDataProp","cascaderData","setCascaderDataProp","setCascaderData","flattedDataProp","flattedData","fieldNames","rest","useCache","cacheData","setCacheData","useMemo","flattenTreeData","useUncontrolledState","tryChangeValue","item","itemPaths","map","id","useSelect","selectedId","onOptionSelect","setSelectedId","selectedIds","getActiveNodePaths","useAsyncSwitch","isLoadingId","onItemExpand","onItemHover","useCallback","option","isCanLoadChildren","checkCanLoadChildren","menuList","getFlattedMenus","getActiveMenus","getItemRequiredProps","depth","selected","loading","focused","reset","length","rootProps","onItemClick"],"mappings":"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"}
@@ -7,33 +7,41 @@
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.
9
9
  */
10
- import { flattenTree, getNodeAncestorsWithMe } from '@hi-ui/tree-utils';
10
+ import { baseFlattenTree, getTopDownAncestors } from '@hi-ui/tree-utils';
11
+ import { isArrayNonEmpty } from '@hi-ui/type-assertion';
11
12
  /**
12
13
  * 扁平化树数据结构,基于前序遍历
13
14
  */
14
15
 
15
- var flattenTreeData = function flattenTreeData(treeData) {
16
- return flattenTree(treeData, function (node) {
17
- var flattedNode = node;
18
- var _node$raw = node.raw,
19
- title = _node$raw.title,
20
- _node$raw$isLeaf = _node$raw.isLeaf,
21
- isLeaf = _node$raw$isLeaf === void 0 ? false : _node$raw$isLeaf,
22
- _node$raw$disabled = _node$raw.disabled,
23
- disabled = _node$raw$disabled === void 0 ? false : _node$raw$disabled;
24
- flattedNode.title = title;
25
- flattedNode.isLeaf = isLeaf;
26
- flattedNode.disabled = disabled;
27
- return flattedNode;
28
- });
29
- };
30
- /**
31
- * 获取自顶向下的祖先节点,包括自己
32
- */
16
+ var flattenTreeData = function flattenTreeData(treeData, fieldNames) {
17
+ /**
18
+ * 转换对象
19
+ */
20
+ var getKeyFields = function getKeyFields(node, key) {
21
+ if (fieldNames) {
22
+ return node[fieldNames[key] || key];
23
+ }
24
+
25
+ return node[key];
26
+ };
33
27
 
28
+ return baseFlattenTree({
29
+ tree: treeData,
30
+ childrenFieldName: function childrenFieldName(node) {
31
+ return getKeyFields(node, 'children');
32
+ },
33
+ transform: function transform(node) {
34
+ var _a, _b;
34
35
 
35
- var getTopDownAncestors = function getTopDownAncestors(node) {
36
- return getNodeAncestorsWithMe(node).reverse();
36
+ var flattedNode = node;
37
+ var raw = node.raw;
38
+ flattedNode.id = getKeyFields(raw, 'id');
39
+ flattedNode.title = getKeyFields(raw, 'title');
40
+ flattedNode.disabled = (_a = getKeyFields(raw, 'disabled')) !== null && _a !== void 0 ? _a : false;
41
+ flattedNode.isLeaf = (_b = getKeyFields(raw, 'isLeaf')) !== null && _b !== void 0 ? _b : false;
42
+ return flattedNode;
43
+ }
44
+ });
37
45
  };
38
46
  /**
39
47
  * 获取选中节点的节点路径,包含选中节点
@@ -86,13 +94,13 @@ var getFlattedMenus = function getFlattedMenus(data, filter) {
86
94
  };
87
95
 
88
96
  var checkCanLoadChildren = function checkCanLoadChildren(node, onLoadChildren) {
89
- var hasChildren = node.children && node.children.length > 0;
90
- return hasChildren || onLoadChildren && !node.children && !node.isLeaf;
97
+ var hasChildren = isArrayNonEmpty(node.children);
98
+ return hasChildren || onLoadChildren && !node.isLeaf && !node.children;
91
99
  };
92
100
 
93
- function getCascaderItemEventData(node, requiredProps) {
101
+ function getItemEventData(node, requiredProps) {
94
102
  return Object.assign(Object.assign({}, node), requiredProps);
95
103
  }
96
104
 
97
- export { checkCanLoadChildren, flattenTreeData, getActiveMenus, getActiveNodePaths, getCascaderItemEventData, getFlattedMenus, getTopDownAncestors };
105
+ export { checkCanLoadChildren, flattenTreeData, getActiveMenus, getActiveNodePaths, getFlattedMenus, getItemEventData };
98
106
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/utils/index.ts"],"sourcesContent":[null],"names":["flattenTreeData","treeData","flattenTree","node","flattedNode","raw","title","isLeaf","disabled","getTopDownAncestors","getNodeAncestorsWithMe","reverse","getActiveNodePaths","flattedData","selectedId","length","selectedOption","find","id","getActiveMenus","root","parent","menu","children","push","getFlattedMenus","data","filter","item","checkCanLoadChildren","onLoadChildren","hasChildren","getCascaderItemEventData","requiredProps"],"mappings":";;;;;;;;;;AASA;;;;IAGaA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,QAAD;SACtBC,WAAW,CAAeD,QAAf,EAAyB,UAACE,IAAD;QACnCC,WAAW,GAAwBD;oBACWA,IAAI,CAACE;QAAjDC,KAAR,aAAQA;qCAAOC;QAAAA,MAAf,iCAAwB;uCAAOC;QAAAA,QAA/B,mCAA0C;AAC1CJ,IAAAA,WAAW,CAACE,KAAZF,GAAoBE,KAApBF;AACAA,IAAAA,WAAW,CAACG,MAAZH,GAAqBG,MAArBH;AACAA,IAAAA,WAAW,CAACI,QAAZJ,GAAuBI,QAAvBJ;WACOA;AANS,GAAA;;AAUpB;;;;;IAGaK,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACN,IAAD;SAC1BO,sBAAsB,CAACP,IAAD,CAAtBO,CAA6BC,OAA7BD;;AAGT;;;;;IAGaE,kBAAkB,GAAG,SAArBA,kBAAqB,CAChCC,WADgC,EAEhCC,UAFgC;MAI5BD,WAAW,CAACE,MAAZF,KAAuB,GAAG,OAAO,EAAP;MAExBG,cAAc,GAAGH,WAAW,CAACI,IAAZJ,CAAiB,cAAA;QAAGK,EAAH,QAAGA;WAASJ,UAAU,KAAKI;AAA5C,GAAAL;MACnB,CAACG,gBAAgB,OAAO,EAAP;SAEdP,mBAAmB,CAACO,cAAD;;AAG5B;;;;;IAGaG,cAAc,GAAG,SAAjBA,cAAiB,CAC5BN,WAD4B,EAE5BC,UAF4B;MAIxBD,WAAW,CAACE,MAAZF,KAAuB,GAAG,OAAO,EAAP;MAExBO,IAAI,GAAGP,WAAW,CAAC,CAAD,CAAXA,CAAeQ;MACxBC,IAAI,GAA4B,CAACF,IAAK,CAACG,QAAP;MAEhC,OAAOT,UAAP,KAAsB,aAAa,OAAOQ,IAAP;MAEnCN,cAAc,GAAGH,WAAW,CAACI,IAAZJ,CAAiB,eAAA;QAAGK,EAAH,SAAGA;WAASJ,UAAU,KAAKI;AAA5C,GAAAL;MACjB,CAACG,gBAAgB,OAAOM,IAAP;;MAEjBN,cAAc,CAACO,UAAU;AAC3BD,IAAAA,IAAI,GAAG,CAACN,cAAc,CAACO,QAAhB,CAAPD;AADF,SAEO;AACLA,IAAAA,IAAI,GAAG,EAAPA;;;SAGKN,cAAc,CAACK,QAAQ;AAC5BC,IAAAA,IAAI,CAACE,IAALF,CAAUN,cAAc,CAACK,MAAfL,CAAsBO,QAAhCD;AACAN,IAAAA,cAAc,GAAGA,cAAc,CAACK,MAAhCL;;;SAGKM,IAAI,CAACX,OAALW;;;IAGIG,eAAe,GAAG,SAAlBA,eAAkB,CAC7BC,IAD6B,EAE7BC,MAF6B;SAItB,CAACD,IAAI,CAACC,MAALD,CAAY,UAACE,IAAD;WAAU,CAACD,MAAM,CAACC,IAAD;AAA7B,GAAAF,CAAD;;;IAGIG,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAC1B,IAAD,EAA4B2B,cAA5B;MAC5BC,WAAW,GAAG5B,IAAI,CAACoB,QAALpB,IAAiBA,IAAI,CAACoB,QAALpB,CAAcY,MAAdZ,GAAuB;SACrD4B,WAAW,IAAKD,cAAc,IAAI,CAAC3B,IAAI,CAACoB,QAAxBO,IAAoC,CAAC3B,IAAI,CAACI;;;SAGnDyB,yBACd7B,MACA8B;yCAGK9B,OACA8B;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/utils/index.ts"],"sourcesContent":[null],"names":["flattenTreeData","treeData","fieldNames","getKeyFields","node","key","baseFlattenTree","tree","childrenFieldName","transform","flattedNode","raw","id","title","disabled","isLeaf","getActiveNodePaths","flattedData","selectedId","length","selectedOption","find","getTopDownAncestors","getActiveMenus","root","parent","menu","children","push","reverse","getFlattedMenus","data","filter","item","checkCanLoadChildren","onLoadChildren","hasChildren","isArrayNonEmpty","getItemEventData","requiredProps"],"mappings":"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"}
@@ -1,36 +1,15 @@
1
1
  import React from 'react';
2
- import type { HiBaseHTMLProps } from '@hi-ui/core';
3
- import { PopperProps } from '@hi-ui/popper';
4
- import { CascaderItem, ExpandTrigger, FlattedCascaderItem, CascaderItemEventData } from './types';
2
+ import type { HiBaseHTMLProps, HiBaseAppearanceEnum } from '@hi-ui/core';
3
+ import { UseCascaderProps } from './use-cascader';
4
+ import type { PopperOverlayProps } from '@hi-ui/popper';
5
+ import { ExpandTrigger, FlattedCascaderItem, CascaderItemEventData } from './types';
5
6
  import { PickerProps } from '@hi-ui/picker';
6
- import { UseDataSource } from '@hi-ui/use-data-source';
7
7
  /**
8
8
  * TODO: What is Cascader
9
9
  * Trigger + MenuList + Search
10
10
  */
11
11
  export declare const Cascader: React.ForwardRefExoticComponent<CascaderProps & React.RefAttributes<HTMLDivElement | null>>;
12
- export interface CascaderProps extends Omit<PickerProps, 'data' | 'onChange' | 'trigger'> {
13
- /**
14
- * 设置选择项数据源
15
- */
16
- data: CascaderItem[];
17
- /**
18
- * 设置当前选中值
19
- */
20
- value?: React.ReactText;
21
- /**
22
- * 设置当前选中值默认值
23
- */
24
- defaultValue?: React.ReactText;
25
- /**
26
- * 选中值改变时的回调
27
- */
28
- onChange?: (value: React.ReactText, targetOption?: CascaderItemEventData, optionPaths?: FlattedCascaderItem[]) => void;
29
- /**
30
- * 选中选项时触发,仅供内部使用
31
- * @private
32
- */
33
- onSelect?: (value: React.ReactText, targetOption: CascaderItemEventData, optionPaths: FlattedCascaderItem[]) => void;
12
+ export interface CascaderProps extends Omit<PickerProps, 'data' | 'onChange' | 'trigger'>, UseCascaderProps {
34
13
  /**
35
14
  * 次级菜单的展开方式
36
15
  */
@@ -43,34 +22,18 @@ export interface CascaderProps extends Omit<PickerProps, 'data' | 'onChange' | '
43
22
  * 是否可清空
44
23
  */
45
24
  clearable?: boolean;
46
- /**
47
- * 是否禁止使用
48
- */
49
- disabled?: boolean;
50
25
  /**
51
26
  * 设置选项为空时展示的内容
52
27
  */
53
28
  emptyContent?: React.ReactNode;
54
- /**
55
- * 是否启用选择即改变功能
56
- */
57
- changeOnSelect?: boolean;
58
29
  /**
59
30
  * 自定义渲染节点的 title 内容
60
31
  */
61
- titleRender?: (item: CascaderItemEventData, flatted: boolean) => React.ReactNode;
32
+ render?: (item: CascaderItemEventData, keyword?: string) => React.ReactNode;
62
33
  /**
63
34
  * 自定义选择后触发器所展示的内容,只在 title 为字符串时有效
64
35
  */
65
- displayRender?: (checkedOption: FlattedCascaderItem, checkedOptionPaths: FlattedCascaderItem[]) => React.ReactNode;
66
- /**
67
- * 将选项拍平展示,不支持 `onLoadChildren` 异步加载交互
68
- */
69
- flatted?: boolean;
70
- /**
71
- * 开启全量搜索,默认只对开启 checkable 的选项进行搜索,不向上查找路径
72
- */
73
- upMatch?: boolean;
36
+ displayRender?: (checkedOption: CascaderItemEventData, checkedOptionPaths: CascaderItemEventData[]) => React.ReactNode;
74
37
  /**
75
38
  * 触发器输入框占位符
76
39
  */
@@ -79,18 +42,6 @@ export interface CascaderProps extends Omit<PickerProps, 'data' | 'onChange' | '
79
42
  * 搜索输入框占位符
80
43
  */
81
44
  searchPlaceholder?: string;
82
- /**
83
- * 异步请求更新数据
84
- */
85
- onLoadChildren?: (item: CascaderItemEventData) => Promise<CascaderItem[] | void> | void;
86
- /**
87
- * 自定义控制 popper 行为
88
- */
89
- popper?: PopperProps;
90
- /**
91
- * 设置展现形式
92
- */
93
- appearance?: 'outline' | 'unset' | 'filled';
94
45
  /**
95
46
  * 自定义搜索过滤器,仅在 searchable 为 true 时有效
96
47
  * 第一个参数为输入的关键字,
@@ -98,12 +49,13 @@ export interface CascaderProps extends Omit<PickerProps, 'data' | 'onChange' | '
98
49
  */
99
50
  filterOption?: (keyword: string, item: CascaderItemEventData) => boolean;
100
51
  /**
101
- * 异步加载数据
52
+ * 自定义控制 popper 行为
53
+ */
54
+ overlay?: PopperOverlayProps;
55
+ /**
56
+ * 设置展现形式
102
57
  */
103
- dataSource?: UseDataSource<CascaderItemEventData>;
104
- }
105
- export declare const CascaderSearch: React.ForwardRefExoticComponent<Pick<CascaderSearchProps, string | number> & React.RefAttributes<HTMLInputElement | null>>;
106
- export interface CascaderSearchProps extends HiBaseHTMLProps {
58
+ appearance?: HiBaseAppearanceEnum;
107
59
  }
108
60
  export declare const CascaderMenuList: React.ForwardRefExoticComponent<Pick<CascaderMenuListProps, string | number> & React.RefAttributes<HTMLDivElement | null>>;
109
61
  export interface CascaderMenuListProps extends HiBaseHTMLProps {