@hi-ui/cascader 4.0.0-alpha.28 → 4.0.0-alpha.29

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 (52) hide show
  1. package/README.md +21 -20
  2. package/lib/cjs/Cascader.js +86 -135
  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 +6 -33
  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 +28 -70
  13. package/lib/cjs/use-cascader.js.map +1 -1
  14. package/lib/cjs/utils/index.js +5 -12
  15. package/lib/cjs/utils/index.js.map +1 -1
  16. package/lib/esm/Cascader.js +91 -135
  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 +6 -34
  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 +24 -65
  27. package/lib/esm/use-cascader.js.map +1 -1
  28. package/lib/esm/utils/index.js +5 -12
  29. package/lib/esm/utils/index.js.map +1 -1
  30. package/lib/types/Cascader.d.ts +8 -56
  31. package/lib/types/context.d.ts +25 -586
  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/index.d.ts +0 -1
  35. package/lib/types/use-cascader.d.ts +47 -294
  36. package/lib/types/utils/index.d.ts +0 -4
  37. package/package.json +13 -12
  38. package/lib/cjs/CascaderPanel.js +0 -81
  39. package/lib/cjs/CascaderPanel.js.map +0 -1
  40. package/lib/cjs/hooks/use-cache.js +0 -37
  41. package/lib/cjs/hooks/use-cache.js.map +0 -1
  42. package/lib/cjs/hooks/use-search.js +0 -116
  43. package/lib/cjs/hooks/use-search.js.map +0 -1
  44. package/lib/esm/CascaderPanel.js +0 -58
  45. package/lib/esm/CascaderPanel.js.map +0 -1
  46. package/lib/esm/hooks/use-cache.js +0 -30
  47. package/lib/esm/hooks/use-cache.js.map +0 -1
  48. package/lib/esm/hooks/use-search.js +0 -107
  49. package/lib/esm/hooks/use-search.js.map +0 -1
  50. package/lib/types/CascaderPanel.d.ts +0 -142
  51. package/lib/types/hooks/use-cache.d.ts +0 -8
  52. package/lib/types/hooks/use-search.d.ts +0 -9
@@ -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,13 @@ 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
+ rest = __rest(_a, ["defaultValue", "value", "onChange", "data", "disabled", "changeOnSelect", "flatted", "onSelect", "onLoadChildren", "cascaderData", "setCascaderData", "flattedData"]);
52
39
 
53
40
  var _useCache = useCache(data),
54
41
  cacheData = _useCache[0],
@@ -64,20 +51,24 @@ var useCascader = function useCascader(_a) {
64
51
  value = _useUncontrolledState[0],
65
52
  tryChangeValue = _useUncontrolledState[1];
66
53
 
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]); // 单击选中某项
54
+ var onSelect = function onSelect(value, item, itemPaths) {
55
+ tryChangeValue(itemPaths.map(function (_ref) {
56
+ var id = _ref.id;
57
+ return id;
58
+ }));
59
+ onSelectProp === null || onSelectProp === void 0 ? void 0 : onSelectProp(value, item, itemPaths);
60
+ }; // 单击选中某项
61
+
71
62
 
72
- var _useSelect = useSelect(disabled, proxyTryChangeValue, changeOnSelect, onLoadChildren),
63
+ var _useSelect = useSelect(disabled, onSelect, changeOnSelect, onLoadChildren),
73
64
  selectedId = _useSelect[0],
74
65
  onOptionSelect = _useSelect[1],
75
66
  setSelectedId = _useSelect[2]; // 选中 id 路径
76
67
 
77
68
 
78
69
  var selectedIds = useMemo(function () {
79
- return getActiveNodePaths(flattedData, selectedId).map(function (_ref) {
80
- var id = _ref.id;
70
+ return getActiveNodePaths(flattedData, selectedId).map(function (_ref2) {
71
+ var id = _ref2.id;
81
72
  return id;
82
73
  });
83
74
  }, [flattedData, selectedId]); // 存在异步加载数据的情况时,单击选中时需要控制异步加载状态
@@ -93,28 +84,12 @@ var useCascader = function useCascader(_a) {
93
84
  var isCanLoadChildren = useCallback(function (option) {
94
85
  return checkCanLoadChildren(option, onLoadChildren);
95
86
  }, [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
87
  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;
88
+ return flatted ? getFlattedMenus(flattedData, isCanLoadChildren) : getActiveMenus(flattedData, selectedId);
89
+ }, [flatted, flattedData, selectedId, isCanLoadChildren]);
90
+ var getCascaderItemRequiredProps = useCallback(function (_ref3) {
91
+ var id = _ref3.id,
92
+ depth = _ref3.depth;
118
93
  return {
119
94
  selected: flatted ? selectedId === id : selectedIds[depth] === id,
120
95
  loading: isLoadingId(id),
@@ -122,17 +97,9 @@ var useCascader = function useCascader(_a) {
122
97
  focused: false
123
98
  };
124
99
  }, [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
100
  var reset = useCallback(function () {
133
- resetSearch();
134
- setSelectedId(value);
135
- }, [setSelectedId, value, resetSearch]);
101
+ setSelectedId(value[value.length - 1]);
102
+ }, [setSelectedId, value]);
136
103
  return {
137
104
  rootProps: rest,
138
105
  reset: reset,
@@ -140,21 +107,13 @@ var useCascader = function useCascader(_a) {
140
107
  value: value,
141
108
  tryChangeValue: tryChangeValue,
142
109
  getCascaderItemRequiredProps: getCascaderItemRequiredProps,
143
- expandTrigger: expandTrigger,
144
110
  flatted: flatted,
145
111
  onItemClick: onItemExpand,
146
112
  onItemHover: onItemHover,
147
113
  changeOnSelect: changeOnSelect,
148
114
  onLoadChildren: onLoadChildren,
149
- keyword: inputProps.value,
150
115
  disabled: disabled,
151
- menuList: menuList,
152
- isEmpty: isEmpty,
153
- placeholder: placeholder,
154
- displayRender: displayRender,
155
- titleRender: titleRender,
156
- emptyContent: emptyContent,
157
- getSearchInputProps: getSearchInputProps
116
+ menuList: menuList
158
117
  };
159
118
  };
160
119
 
@@ -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":"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"}
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","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","getCascaderItemRequiredProps","depth","selected","loading","focused","reset","length","rootProps","onItemClick"],"mappings":"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"}
@@ -7,7 +7,8 @@
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 { flattenTree, getTopDownAncestors } from '@hi-ui/tree-utils';
11
+ import { isArrayNonEmpty } from '@hi-ui/type-assertion';
11
12
  /**
12
13
  * 扁平化树数据结构,基于前序遍历
13
14
  */
@@ -27,14 +28,6 @@ var flattenTreeData = function flattenTreeData(treeData) {
27
28
  return flattedNode;
28
29
  });
29
30
  };
30
- /**
31
- * 获取自顶向下的祖先节点,包括自己
32
- */
33
-
34
-
35
- var getTopDownAncestors = function getTopDownAncestors(node) {
36
- return getNodeAncestorsWithMe(node).reverse();
37
- };
38
31
  /**
39
32
  * 获取选中节点的节点路径,包含选中节点
40
33
  */
@@ -86,13 +79,13 @@ var getFlattedMenus = function getFlattedMenus(data, filter) {
86
79
  };
87
80
 
88
81
  var checkCanLoadChildren = function checkCanLoadChildren(node, onLoadChildren) {
89
- var hasChildren = node.children && node.children.length > 0;
90
- return hasChildren || onLoadChildren && !node.children && !node.isLeaf;
82
+ var hasChildren = isArrayNonEmpty(node.children);
83
+ return hasChildren || onLoadChildren && !node.isLeaf && !node.children;
91
84
  };
92
85
 
93
86
  function getCascaderItemEventData(node, requiredProps) {
94
87
  return Object.assign(Object.assign({}, node), requiredProps);
95
88
  }
96
89
 
97
- export { checkCanLoadChildren, flattenTreeData, getActiveMenus, getActiveNodePaths, getCascaderItemEventData, getFlattedMenus, getTopDownAncestors };
90
+ export { checkCanLoadChildren, flattenTreeData, getActiveMenus, getActiveNodePaths, getCascaderItemEventData, getFlattedMenus };
98
91
  //# 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","flattenTree","node","flattedNode","raw","title","isLeaf","disabled","getActiveNodePaths","flattedData","selectedId","length","selectedOption","find","id","getTopDownAncestors","getActiveMenus","root","parent","menu","children","push","reverse","getFlattedMenus","data","filter","item","checkCanLoadChildren","onLoadChildren","hasChildren","isArrayNonEmpty","getCascaderItemEventData","requiredProps"],"mappings":";;;;;;;;;;;AAUA;;;;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,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;SAEdG,mBAAmB,CAACH,cAAD;;AAG5B;;;;;IAGaI,cAAc,GAAG,SAAjBA,cAAiB,CAC5BP,WAD4B,EAE5BC,UAF4B;MAIxBD,WAAW,CAACE,MAAZF,KAAuB,GAAG,OAAO,EAAP;MAExBQ,IAAI,GAAGR,WAAW,CAAC,CAAD,CAAXA,CAAeS;MACxBC,IAAI,GAA4B,CAACF,IAAK,CAACG,QAAP;MAEhC,OAAOV,UAAP,KAAsB,aAAa,OAAOS,IAAP;MAEnCP,cAAc,GAAGH,WAAW,CAACI,IAAZJ,CAAiB,eAAA;QAAGK,EAAH,SAAGA;WAASJ,UAAU,KAAKI;AAA5C,GAAAL;MACjB,CAACG,gBAAgB,OAAOO,IAAP;;MAEjBP,cAAc,CAACQ,UAAU;AAC3BD,IAAAA,IAAI,GAAG,CAACP,cAAc,CAACQ,QAAhB,CAAPD;AADF,SAEO;AACLA,IAAAA,IAAI,GAAG,EAAPA;;;SAGKP,cAAc,CAACM,QAAQ;AAC5BC,IAAAA,IAAI,CAACE,IAALF,CAAUP,cAAc,CAACM,MAAfN,CAAsBQ,QAAhCD;AACAP,IAAAA,cAAc,GAAGA,cAAc,CAACM,MAAhCN;;;SAGKO,IAAI,CAACG,OAALH;;;IAGII,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,CAACzB,IAAD,EAA4B0B,cAA5B;MAC5BC,WAAW,GAAGC,eAAe,CAAC5B,IAAI,CAACkB,QAAN;SAC5BS,WAAW,IAAKD,cAAc,IAAI,CAAC1B,IAAI,CAACI,MAAxBsB,IAAkC,CAAC1B,IAAI,CAACkB;;;SAGjDW,yBACd7B,MACA8B;yCAGK9B,OACA8B;;;"}
@@ -1,36 +1,15 @@
1
1
  import React from 'react';
2
2
  import type { HiBaseHTMLProps } from '@hi-ui/core';
3
+ import { UseCascaderProps } from './use-cascader';
3
4
  import { PopperProps } from '@hi-ui/popper';
4
- import { CascaderItem, ExpandTrigger, FlattedCascaderItem, CascaderItemEventData } from './types';
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
+ titleRender?: (item: CascaderItemEventData) => React.ReactNode;
62
33
  /**
63
34
  * 自定义选择后触发器所展示的内容,只在 title 为字符串时有效
64
35
  */
65
36
  displayRender?: (checkedOption: FlattedCascaderItem, checkedOptionPaths: FlattedCascaderItem[]) => React.ReactNode;
66
- /**
67
- * 将选项拍平展示,不支持 `onLoadChildren` 异步加载交互
68
- */
69
- flatted?: boolean;
70
- /**
71
- * 开启全量搜索,默认只对开启 checkable 的选项进行搜索,不向上查找路径
72
- */
73
- upMatch?: boolean;
74
37
  /**
75
38
  * 触发器输入框占位符
76
39
  */
@@ -80,9 +43,11 @@ export interface CascaderProps extends Omit<PickerProps, 'data' | 'onChange' | '
80
43
  */
81
44
  searchPlaceholder?: string;
82
45
  /**
83
- * 异步请求更新数据
46
+ * 自定义搜索过滤器,仅在 searchable 为 true 时有效
47
+ * 第一个参数为输入的关键字,
48
+ * 第二个为数据项,返回值为 true 时将出现在结果项
84
49
  */
85
- onLoadChildren?: (item: CascaderItemEventData) => Promise<CascaderItem[] | void> | void;
50
+ filterOption?: (keyword: string, item: CascaderItemEventData) => boolean;
86
51
  /**
87
52
  * 自定义控制 popper 行为
88
53
  */
@@ -91,19 +56,6 @@ export interface CascaderProps extends Omit<PickerProps, 'data' | 'onChange' | '
91
56
  * 设置展现形式
92
57
  */
93
58
  appearance?: 'outline' | 'unset' | 'filled';
94
- /**
95
- * 自定义搜索过滤器,仅在 searchable 为 true 时有效
96
- * 第一个参数为输入的关键字,
97
- * 第二个为数据项,返回值为 true 时将出现在结果项
98
- */
99
- filterOption?: (keyword: string, item: CascaderItemEventData) => boolean;
100
- /**
101
- * 异步加载数据
102
- */
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 {
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 {