@hi-ui/cascader 4.0.0-alpha.6 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +108 -7
  2. package/lib/cjs/Cascader.js +222 -134
  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-cache.js → use-cache/lib/esm/index.js} +12 -5
  8. package/lib/cjs/hooks/use-cache/lib/esm/index.js.map +1 -0
  9. package/lib/cjs/hooks/use-select.js +3 -1
  10. package/lib/cjs/hooks/use-select.js.map +1 -1
  11. package/lib/cjs/icons/index.js +20 -34
  12. package/lib/cjs/icons/index.js.map +1 -1
  13. package/lib/cjs/index.js +0 -4
  14. package/lib/cjs/index.js.map +1 -1
  15. package/lib/cjs/styles/index.scss.js +1 -1
  16. package/lib/cjs/use-cascader.js +40 -72
  17. package/lib/cjs/use-cascader.js.map +1 -1
  18. package/lib/cjs/utils/index.js +35 -27
  19. package/lib/cjs/utils/index.js.map +1 -1
  20. package/lib/esm/Cascader.js +216 -127
  21. package/lib/esm/Cascader.js.map +1 -1
  22. package/lib/esm/context.js.map +1 -1
  23. package/lib/esm/hooks/use-async-switch.js +11 -36
  24. package/lib/esm/hooks/use-async-switch.js.map +1 -1
  25. package/lib/esm/hooks/{use-cache.js → use-cache/lib/esm/index.js} +12 -5
  26. package/lib/esm/hooks/use-cache/lib/esm/index.js.map +1 -0
  27. package/lib/esm/hooks/use-select.js +2 -1
  28. package/lib/esm/hooks/use-select.js.map +1 -1
  29. package/lib/esm/icons/index.js +20 -34
  30. package/lib/esm/icons/index.js.map +1 -1
  31. package/lib/esm/index.js +1 -2
  32. package/lib/esm/index.js.map +1 -1
  33. package/lib/esm/styles/index.scss.js +1 -1
  34. package/lib/esm/use-cascader.js +35 -66
  35. package/lib/esm/use-cascader.js.map +1 -1
  36. package/lib/esm/utils/index.js +33 -25
  37. package/lib/esm/utils/index.js.map +1 -1
  38. package/lib/types/Cascader.d.ts +20 -46
  39. package/lib/types/context.d.ts +25 -558
  40. package/lib/types/hooks/index.d.ts +0 -2
  41. package/lib/types/hooks/use-async-switch.d.ts +2 -2
  42. package/lib/types/hooks/use-select.d.ts +1 -1
  43. package/lib/types/index.d.ts +0 -1
  44. package/lib/types/types.d.ts +14 -10
  45. package/lib/types/use-cascader.d.ts +52 -280
  46. package/lib/types/utils/index.d.ts +4 -7
  47. package/package.json +22 -16
  48. package/lib/cjs/CascaderPanel.js +0 -81
  49. package/lib/cjs/CascaderPanel.js.map +0 -1
  50. package/lib/cjs/hooks/use-cache.js.map +0 -1
  51. package/lib/cjs/hooks/use-search.js +0 -116
  52. package/lib/cjs/hooks/use-search.js.map +0 -1
  53. package/lib/esm/CascaderPanel.js +0 -58
  54. package/lib/esm/CascaderPanel.js.map +0 -1
  55. package/lib/esm/hooks/use-cache.js.map +0 -1
  56. package/lib/esm/hooks/use-search.js +0 -107
  57. package/lib/esm/hooks/use-search.js.map +0 -1
  58. package/lib/types/CascaderPanel.d.ts +0 -142
  59. package/lib/types/hooks/use-cache.d.ts +0 -8
  60. package/lib/types/hooks/use-search.d.ts +0 -9
@@ -1,116 +0,0 @@
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
- Object.defineProperty(exports, '__esModule', {
13
- value: true
14
- });
15
-
16
- var React = require('react');
17
-
18
- var useLatest = require('@hi-ui/use-latest');
19
-
20
- var env = require('@hi-ui/env');
21
- /**
22
- * 支持搜索功能的 hook
23
- */
24
-
25
-
26
- var useSearch = function useSearch(flattedData, upMatch, filter) {
27
- var _useState = React.useState(''),
28
- searchValue = _useState[0],
29
- setSearchValue = _useState[1];
30
-
31
- var _useState2 = React.useState([]),
32
- matchedNodes = _useState2[0],
33
- setMatchedNodes = _useState2[1];
34
-
35
- var flattedDataRef = useLatest.useLatestRef(flattedData);
36
- var handleChange = React.useCallback(function (evt) {
37
- var nextSearchValue = evt.target.value;
38
- setSearchValue(nextSearchValue); // 匹配到搜索的节点,将这些节点进行展开显示,其它均隐藏
39
-
40
- var matchedNodes = upMatch ? getMatchedUpMatchNodes(flattedDataRef.current, nextSearchValue, filter) : getMatchedNodes(flattedDataRef.current, nextSearchValue, filter);
41
- setMatchedNodes(matchedNodes);
42
- }, [upMatch, flattedDataRef]);
43
- var inputProps = React.useMemo(function () {
44
- return {
45
- value: searchValue,
46
- onChange: handleChange
47
- };
48
- }, [searchValue, handleChange]);
49
- var resetSearch = React.useCallback(function () {
50
- setSearchValue('');
51
- }, []);
52
- var isSearch = !!searchValue;
53
- var isEmpty = isSearch && matchedNodes.length === 0;
54
- return [isSearch, matchedNodes, inputProps, isEmpty, resetSearch];
55
- };
56
- /**
57
- * 从 value 中 找到指定的 options(逐层查找)
58
- */
59
-
60
-
61
- var getMatchedNodes = function getMatchedNodes(flattedData, searchValue, filter) {
62
- if (!searchValue) return [];
63
- return flattedData.filter(function (node) {
64
- var _a, _b;
65
-
66
- if (typeof node.title !== 'string') {
67
- if (env.__DEV__) {
68
- console.info('WARNING: The `option.title` should be `string` when searchable is enabled.');
69
- }
70
-
71
- return false;
72
- }
73
-
74
- if (filter(node)) return false; // 匹配策略:`String.include`
75
-
76
- return (_b = (_a = node.title).includes) === null || _b === void 0 ? void 0 : _b.call(_a, searchValue);
77
- });
78
- };
79
- /**
80
- * 从 value 中 找到指定的 options(逐层并向上查找)
81
- */
82
-
83
-
84
- var getMatchedUpMatchNodes = function getMatchedUpMatchNodes(flattedData, searchValue, filter) {
85
- if (!searchValue) return [];
86
- var visitedResultSet = new Set();
87
- return flattedData.filter(function (node) {
88
- var _a, _b;
89
-
90
- if (filter(node)) return false;
91
-
92
- while (node.parent) {
93
- if (visitedResultSet.has(node.id)) {
94
- return true;
95
- }
96
-
97
- if (typeof node.title === 'string') {
98
- if ((_b = (_a = node.title).includes) === null || _b === void 0 ? void 0 : _b.call(_a, searchValue)) {
99
- visitedResultSet.add(node.id);
100
- return true;
101
- }
102
- } else {
103
- if (env.__DEV__) {
104
- console.info('WARNING: The `option.title` should be `string` when searchable is enabled.');
105
- }
106
- }
107
-
108
- node = node.parent;
109
- }
110
-
111
- return false;
112
- });
113
- };
114
-
115
- exports.useSearch = useSearch;
116
- //# sourceMappingURL=use-search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-search.js","sources":["../../../src/hooks/use-search.ts"],"sourcesContent":[null],"names":["useSearch","flattedData","upMatch","filter","useState","searchValue","setSearchValue","matchedNodes","setMatchedNodes","flattedDataRef","useLatestRef","handleChange","useCallback","evt","nextSearchValue","target","value","getMatchedUpMatchNodes","current","getMatchedNodes","inputProps","useMemo","onChange","resetSearch","isSearch","isEmpty","length","node","title","__DEV__","console","info","includes","visitedResultSet","Set","parent","has","id","add"],"mappings":";;;;;;;;;;;;;;;;;;;;AAKA;;;;;IAGaA,SAAS,GAAG,SAAZA,SAAY,CACvBC,WADuB,EAEvBC,OAFuB,EAGvBC,MAHuB;kBAKeC,cAAAA,CAAS,EAATA;MAA/BC,WAAP;MAAoBC,cAApB;;mBACwCF,cAAAA,CAAgC,EAAhCA;MAAjCG,YAAP;MAAqBC,eAArB;;MAEMC,cAAc,GAAGC,sBAAAA,CAAaT,WAAbS;MAEjBC,YAAY,GAAGC,iBAAAA,CACnB,UAACC,GAAD;QACQC,eAAe,GAAGD,GAAG,CAACE,MAAJF,CAAWG;AAEnCV,IAAAA,cAAc,CAACQ,eAAD,CAAdR;;QAGMC,YAAY,GAAGL,OAAO,GACxBe,sBAAsB,CAACR,cAAc,CAACS,OAAhB,EAAyBJ,eAAzB,EAA0CX,MAA1C,CADE,GAExBgB,eAAe,CAACV,cAAc,CAACS,OAAhB,EAAyBJ,eAAzB,EAA0CX,MAA1C;AAEnBK,IAAAA,eAAe,CAACD,YAAD,CAAfC;AAX4B,GAAXI,EAanB,CAACV,OAAD,EAAUO,cAAV,CAbmBG;MAgBfQ,UAAU,GAAGC,aAAAA,CACjB;WAAO;AACLL,MAAAA,KAAK,EAAEX,WADF;AAELiB,MAAAA,QAAQ,EAAEX;AAFL;AADiB,GAAPU,EAKjB,CAAChB,WAAD,EAAcM,YAAd,CALiBU;MAQbE,WAAW,GAAGX,iBAAAA,CAAY;AAC9BN,IAAAA,cAAc,CAAC,EAAD,CAAdA;AAD6B,GAAXM,EAEjB,EAFiBA;MAIdY,QAAQ,GAAG,CAAC,CAACnB;MACboB,OAAO,GAAGD,QAAQ,IAAIjB,YAAY,CAACmB,MAAbnB,KAAwB;SAE7C,CAACiB,QAAD,EAAWjB,YAAX,EAAyBa,UAAzB,EAAqCK,OAArC,EAA8CF,WAA9C;;AAGT;;;;;AAGA,IAAMJ,eAAe,GAAG,SAAlBA,eAAkB,CACtBlB,WADsB,EAEtBI,WAFsB,EAGtBF,MAHsB;MAKlB,CAACE,aAAa,OAAO,EAAP;SAEXJ,WAAW,CAACE,MAAZF,CAAmB,UAAC0B,IAAD;;;QACpB,OAAOA,IAAI,CAACC,KAAZ,KAAsB,UAAU;UAC9BC,aAAS;AACXC,QAAAA,OAAO,CAACC,IAARD,CAAa,4EAAbA;;;aAEK;;;QAGL3B,MAAM,CAACwB,IAAD,GAAQ,OAAO,KAAP;;WAGX,MAAA,MAAAA,IAAI,CAACC,KAAL,EAAWI,QAAX,UAAA,iBAAA,SAAA,eAAsB3B;AAXxB,GAAAJ;AAPT,CAAA;AAsBA;;;;;AAGA,IAAMgB,sBAAsB,GAAG,SAAzBA,sBAAyB,CAC7BhB,WAD6B,EAE7BI,WAF6B,EAG7BF,MAH6B;MAKzB,CAACE,aAAa,OAAO,EAAP;MAEZ4B,gBAAgB,GAAG,IAAIC,GAAJ;SAElBjC,WAAW,CAACE,MAAZF,CAAmB,UAAC0B,IAAD;;;QACpBxB,MAAM,CAACwB,IAAD,GAAQ,OAAO,KAAP;;WAEXA,IAAI,CAACQ,QAAQ;UACdF,gBAAgB,CAACG,GAAjBH,CAAqBN,IAAI,CAACU,EAA1BJ,GAA+B;eAC1B;;;UAGL,OAAON,IAAI,CAACC,KAAZ,KAAsB,UAAU;YAC9B,MAAA,MAAAD,IAAI,CAACC,KAAL,EAAWI,QAAX,UAAA,iBAAA,SAAA,eAAsB3B,cAAc;AACtC4B,UAAAA,gBAAgB,CAACK,GAAjBL,CAAqBN,IAAI,CAACU,EAA1BJ;iBACO;;AAHX,aAKO;YACDJ,aAAS;AACXC,UAAAA,OAAO,CAACC,IAARD,CAAa,4EAAbA;;;;AAIJH,MAAAA,IAAI,GAAGA,IAAI,CAACQ,MAAZR;;;WAEK;AArBF,GAAA1B;AATT,CAAA;;"}
@@ -1,58 +0,0 @@
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
- import { __rest } from 'tslib';
11
- import React, { forwardRef, useMemo } from 'react';
12
- import { getPrefixCls, cx } from '@hi-ui/classname';
13
- import { __DEV__ } from '@hi-ui/env';
14
- import { CascaderProvider } from './context.js';
15
- import { useCascader } from './use-cascader.js';
16
- import { CascaderSearch, CascaderMenuList } from './Cascader.js';
17
- var _role = 'cascader-panel';
18
-
19
- var _prefix = getPrefixCls(_role);
20
- /**
21
- * TODO: What is CascaderPanel
22
- * MenuList + Search
23
- */
24
-
25
-
26
- var CascaderPanel = /*#__PURE__*/forwardRef(function (_a, ref) {
27
- var _a$prefixCls = _a.prefixCls,
28
- prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
29
- _a$role = _a.role,
30
- role = _a$role === void 0 ? _role : _a$role,
31
- className = _a.className,
32
- _a$searchable = _a.searchable,
33
- searchable = _a$searchable === void 0 ? true : _a$searchable,
34
- rest = __rest(_a, ["prefixCls", "role", "className", "searchable"]);
35
-
36
- var _b = useCascader(rest),
37
- rootProps = _b.rootProps,
38
- context = __rest(_b, ["rootProps"]);
39
-
40
- var providedValue = useMemo(function () {
41
- return context;
42
- }, [context]);
43
- var cls = cx(prefixCls, className, context.flatted && prefixCls + "--flatted", context.changeOnSelect && prefixCls + "--selectchange");
44
- return /*#__PURE__*/React.createElement(CascaderProvider, {
45
- value: providedValue
46
- }, /*#__PURE__*/React.createElement("div", Object.assign({
47
- ref: ref,
48
- role: role,
49
- className: cls
50
- }, rootProps), searchable ? /*#__PURE__*/React.createElement(CascaderSearch, null) : null, /*#__PURE__*/React.createElement(CascaderMenuList, null)));
51
- });
52
-
53
- if (__DEV__) {
54
- CascaderPanel.displayName = 'CascaderPanel';
55
- }
56
-
57
- export { CascaderPanel };
58
- //# sourceMappingURL=CascaderPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CascaderPanel.js","sources":["../../src/CascaderPanel.tsx"],"sourcesContent":[null],"names":["_role","_prefix","getPrefixCls","CascaderPanel","forwardRef","_a","ref","prefixCls","role","className","searchable","rest","_b","useCascader","rootProps","context","providedValue","useMemo","cls","cx","flatted","changeOnSelect","React","CascaderProvider","value","CascaderSearch","CascaderMenuList","__DEV__","displayName"],"mappings":";;;;;;;;;;;;;;;;AASA,IAAMA,KAAK,GAAG,gBAAd;;AACA,IAAMC,OAAO,GAAGC,YAAY,CAACF,KAAD,CAA5B;AAEA;;;;;;IAIaG,aAAa,gBAAGC,UAAU,CACrC,UAACC,EAAD,EAA+EC,GAA/E;wBAAGC;MAAAA,sCAAYN;mBAASO;MAAAA,4BAAOR;MAAOS,eAAAA;yBAAWC;MAAAA,wCAAa;MAASC,kBAAtE,YAAA,QAAA,aAAA,cAAA;;MACOC,KAA4BC,WAAW,CAACF,IAAD;MAArCG,SAAF,KAAA,CAAEA;MAAcC,OAAhB,cAAA,YAAA;;MAEAC,aAAa,GAAGC,OAAO,CAAC;WAAMF;AAAP,GAAA,EAAgB,CAACA,OAAD,CAAhB;MAEvBG,GAAG,GAAGC,EAAE,CACZZ,SADY,EAEZE,SAFY,EAGZM,OAAO,CAACK,OAARL,IAAsBR,SAAtB,cAHY,EAIZQ,OAAO,CAACM,cAARN,IAA6BR,SAA7B,mBAJY;sBAQZe,mBAAAA,CAACC,gBAADD;AAAkBE,IAAAA,KAAK,EAAER;GAAzBM,eACEA,mBAAAA,MAAAA;AAAKhB,IAAAA,GAAG,EAAEA;AAAKE,IAAAA,IAAI,EAAEA;AAAMC,IAAAA,SAAS,EAAES;KAASJ,UAA/CQ,EACGZ,UAAU,gBAAGY,mBAAAA,CAACG,cAADH,MAAAA,CAAH,GAAwB,IADrCA,eAEEA,mBAAAA,CAACI,gBAADJ,MAAAA,CAFFA,CADFA;AAdiC,CAAA;;AAyGvC,IAAIK,OAAJ,EAAa;AACXxB,EAAAA,aAAa,CAACyB,WAAdzB,GAA4B,eAA5BA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-cache.js","sources":["../../../src/hooks/use-cache.ts"],"sourcesContent":[null],"names":["useCache","data","useState","internalData","setInternalData","useEffect"],"mappings":";;;;;;;;;;AAEA;;;;;;;IAMaA,QAAQ,GAAG,SAAXA,QAAW,CAAIC,IAAJ;kBACkBC,QAAQ,CAACD,IAAD;MAAzCE,YAAP;MAAqBC,eAArB;;AAEAC,EAAAA,SAAS,CAAC;AACRD,IAAAA,eAAe,CAACH,IAAD,CAAfG;AADO,GAAA,EAEN,CAACH,IAAD,CAFM,CAATI;SAIO,CAACF,YAAD,EAAeC,eAAf;;;"}
@@ -1,107 +0,0 @@
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
- import { useState, useCallback, useMemo } from 'react';
11
- import { useLatestRef } from '@hi-ui/use-latest';
12
- import { __DEV__ } from '@hi-ui/env';
13
- /**
14
- * 支持搜索功能的 hook
15
- */
16
-
17
- var useSearch = function useSearch(flattedData, upMatch, filter) {
18
- var _useState = useState(''),
19
- searchValue = _useState[0],
20
- setSearchValue = _useState[1];
21
-
22
- var _useState2 = useState([]),
23
- matchedNodes = _useState2[0],
24
- setMatchedNodes = _useState2[1];
25
-
26
- var flattedDataRef = useLatestRef(flattedData);
27
- var handleChange = useCallback(function (evt) {
28
- var nextSearchValue = evt.target.value;
29
- setSearchValue(nextSearchValue); // 匹配到搜索的节点,将这些节点进行展开显示,其它均隐藏
30
-
31
- var matchedNodes = upMatch ? getMatchedUpMatchNodes(flattedDataRef.current, nextSearchValue, filter) : getMatchedNodes(flattedDataRef.current, nextSearchValue, filter);
32
- setMatchedNodes(matchedNodes);
33
- }, [upMatch, flattedDataRef]);
34
- var inputProps = useMemo(function () {
35
- return {
36
- value: searchValue,
37
- onChange: handleChange
38
- };
39
- }, [searchValue, handleChange]);
40
- var resetSearch = useCallback(function () {
41
- setSearchValue('');
42
- }, []);
43
- var isSearch = !!searchValue;
44
- var isEmpty = isSearch && matchedNodes.length === 0;
45
- return [isSearch, matchedNodes, inputProps, isEmpty, resetSearch];
46
- };
47
- /**
48
- * 从 value 中 找到指定的 options(逐层查找)
49
- */
50
-
51
-
52
- var getMatchedNodes = function getMatchedNodes(flattedData, searchValue, filter) {
53
- if (!searchValue) return [];
54
- return flattedData.filter(function (node) {
55
- var _a, _b;
56
-
57
- if (typeof node.title !== 'string') {
58
- if (__DEV__) {
59
- console.info('WARNING: The `option.title` should be `string` when searchable is enabled.');
60
- }
61
-
62
- return false;
63
- }
64
-
65
- if (filter(node)) return false; // 匹配策略:`String.include`
66
-
67
- return (_b = (_a = node.title).includes) === null || _b === void 0 ? void 0 : _b.call(_a, searchValue);
68
- });
69
- };
70
- /**
71
- * 从 value 中 找到指定的 options(逐层并向上查找)
72
- */
73
-
74
-
75
- var getMatchedUpMatchNodes = function getMatchedUpMatchNodes(flattedData, searchValue, filter) {
76
- if (!searchValue) return [];
77
- var visitedResultSet = new Set();
78
- return flattedData.filter(function (node) {
79
- var _a, _b;
80
-
81
- if (filter(node)) return false;
82
-
83
- while (node.parent) {
84
- if (visitedResultSet.has(node.id)) {
85
- return true;
86
- }
87
-
88
- if (typeof node.title === 'string') {
89
- if ((_b = (_a = node.title).includes) === null || _b === void 0 ? void 0 : _b.call(_a, searchValue)) {
90
- visitedResultSet.add(node.id);
91
- return true;
92
- }
93
- } else {
94
- if (__DEV__) {
95
- console.info('WARNING: The `option.title` should be `string` when searchable is enabled.');
96
- }
97
- }
98
-
99
- node = node.parent;
100
- }
101
-
102
- return false;
103
- });
104
- };
105
-
106
- export { useSearch };
107
- //# sourceMappingURL=use-search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-search.js","sources":["../../../src/hooks/use-search.ts"],"sourcesContent":[null],"names":["useSearch","flattedData","upMatch","filter","useState","searchValue","setSearchValue","matchedNodes","setMatchedNodes","flattedDataRef","useLatestRef","handleChange","useCallback","evt","nextSearchValue","target","value","getMatchedUpMatchNodes","current","getMatchedNodes","inputProps","useMemo","onChange","resetSearch","isSearch","isEmpty","length","node","title","__DEV__","console","info","includes","visitedResultSet","Set","parent","has","id","add"],"mappings":";;;;;;;;;;;;AAKA;;;;IAGaA,SAAS,GAAG,SAAZA,SAAY,CACvBC,WADuB,EAEvBC,OAFuB,EAGvBC,MAHuB;kBAKeC,QAAQ,CAAC,EAAD;MAAvCC,WAAP;MAAoBC,cAApB;;mBACwCF,QAAQ,CAAwB,EAAxB;MAAzCG,YAAP;MAAqBC,eAArB;;MAEMC,cAAc,GAAGC,YAAY,CAACT,WAAD;MAE7BU,YAAY,GAAGC,WAAW,CAC9B,UAACC,GAAD;QACQC,eAAe,GAAGD,GAAG,CAACE,MAAJF,CAAWG;AAEnCV,IAAAA,cAAc,CAACQ,eAAD,CAAdR;;QAGMC,YAAY,GAAGL,OAAO,GACxBe,sBAAsB,CAACR,cAAc,CAACS,OAAhB,EAAyBJ,eAAzB,EAA0CX,MAA1C,CADE,GAExBgB,eAAe,CAACV,cAAc,CAACS,OAAhB,EAAyBJ,eAAzB,EAA0CX,MAA1C;AAEnBK,IAAAA,eAAe,CAACD,YAAD,CAAfC;AAX4B,GAAA,EAa9B,CAACN,OAAD,EAAUO,cAAV,CAb8B;MAgB1BW,UAAU,GAAGC,OAAO,CACxB;WAAO;AACLL,MAAAA,KAAK,EAAEX,WADF;AAELiB,MAAAA,QAAQ,EAAEX;AAFL;AADiB,GAAA,EAKxB,CAACN,WAAD,EAAcM,YAAd,CALwB;MAQpBY,WAAW,GAAGX,WAAW,CAAC;AAC9BN,IAAAA,cAAc,CAAC,EAAD,CAAdA;AAD6B,GAAA,EAE5B,EAF4B;MAIzBkB,QAAQ,GAAG,CAAC,CAACnB;MACboB,OAAO,GAAGD,QAAQ,IAAIjB,YAAY,CAACmB,MAAbnB,KAAwB;SAE7C,CAACiB,QAAD,EAAWjB,YAAX,EAAyBa,UAAzB,EAAqCK,OAArC,EAA8CF,WAA9C;;AAGT;;;;;AAGA,IAAMJ,eAAe,GAAG,SAAlBA,eAAkB,CACtBlB,WADsB,EAEtBI,WAFsB,EAGtBF,MAHsB;MAKlB,CAACE,aAAa,OAAO,EAAP;SAEXJ,WAAW,CAACE,MAAZF,CAAmB,UAAC0B,IAAD;;;QACpB,OAAOA,IAAI,CAACC,KAAZ,KAAsB,UAAU;UAC9BC,SAAS;AACXC,QAAAA,OAAO,CAACC,IAARD,CAAa,4EAAbA;;;aAEK;;;QAGL3B,MAAM,CAACwB,IAAD,GAAQ,OAAO,KAAP;;WAGX,MAAA,MAAAA,IAAI,CAACC,KAAL,EAAWI,QAAX,UAAA,iBAAA,SAAA,eAAsB3B;AAXxB,GAAAJ;AAPT,CAAA;AAsBA;;;;;AAGA,IAAMgB,sBAAsB,GAAG,SAAzBA,sBAAyB,CAC7BhB,WAD6B,EAE7BI,WAF6B,EAG7BF,MAH6B;MAKzB,CAACE,aAAa,OAAO,EAAP;MAEZ4B,gBAAgB,GAAG,IAAIC,GAAJ;SAElBjC,WAAW,CAACE,MAAZF,CAAmB,UAAC0B,IAAD;;;QACpBxB,MAAM,CAACwB,IAAD,GAAQ,OAAO,KAAP;;WAEXA,IAAI,CAACQ,QAAQ;UACdF,gBAAgB,CAACG,GAAjBH,CAAqBN,IAAI,CAACU,EAA1BJ,GAA+B;eAC1B;;;UAGL,OAAON,IAAI,CAACC,KAAZ,KAAsB,UAAU;YAC9B,MAAA,MAAAD,IAAI,CAACC,KAAL,EAAWI,QAAX,UAAA,iBAAA,SAAA,eAAsB3B,cAAc;AACtC4B,UAAAA,gBAAgB,CAACK,GAAjBL,CAAqBN,IAAI,CAACU,EAA1BJ;iBACO;;AAHX,aAKO;YACDJ,SAAS;AACXC,UAAAA,OAAO,CAACC,IAARD,CAAa,4EAAbA;;;;AAIJH,MAAAA,IAAI,GAAGA,IAAI,CAACQ,MAAZR;;;WAEK;AArBF,GAAA1B;AATT,CAAA;;"}
@@ -1,142 +0,0 @@
1
- import React from 'react';
2
- import { CascaderItem, ExpandTrigger, CascaderItemEventData, FlattedCascaderItem } from './types';
3
- import { HiBaseHTMLProps } from '@hi-ui/core';
4
- /**
5
- * TODO: What is CascaderPanel
6
- * MenuList + Search
7
- */
8
- export declare const CascaderPanel: React.ForwardRefExoticComponent<Omit<Pick<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "key" | keyof React.HTMLAttributes<HTMLDivElement>>, "disabled" | "defaultValue" | "data" | "onChange" | "onSelect" | "value" | "changeOnSelect" | "flatted" | "upMatch" | "expandTrigger" | "emptyContent" | "searchPlaceholder" | "titleRender" | "displayRender" | "onLoadChildren" | "searchable"> & {
9
- prefixCls?: string | undefined;
10
- role?: string | undefined;
11
- } & {
12
- /**
13
- * 设置选择项数据源
14
- */
15
- data: CascaderItem[];
16
- /**
17
- * 设置当前选中值
18
- */
19
- value?: React.ReactText | undefined;
20
- /**
21
- * 设置当前选中值默认值
22
- */
23
- defaultValue?: React.ReactText | undefined;
24
- /**
25
- * 选中值改变时的回调
26
- */
27
- onChange?: ((value: React.ReactText, targetOption?: CascaderItemEventData | undefined, optionPaths?: FlattedCascaderItem[] | undefined) => void) | undefined;
28
- /**
29
- * 选中选项时触发,仅供内部使用
30
- */
31
- onSelect?: ((value: React.ReactText, targetOption: CascaderItemEventData, optionPaths: FlattedCascaderItem[]) => void) | undefined;
32
- /**
33
- * 次级菜单的展开方式
34
- */
35
- expandTrigger?: ExpandTrigger | undefined;
36
- /**
37
- * 是否可搜索(仅在 title 为字符串时支持)
38
- */
39
- searchable?: boolean | undefined;
40
- /**
41
- * 是否禁止使用
42
- */
43
- disabled?: boolean | undefined;
44
- /**
45
- * 设置选项为空时展示的内容
46
- */
47
- emptyContent?: React.ReactNode;
48
- /**
49
- * 是否启用选择即改变功能
50
- */
51
- changeOnSelect?: boolean | undefined;
52
- /**
53
- * 自定义渲染节点的 title 内容
54
- */
55
- titleRender?: ((item: CascaderItemEventData, flatted: boolean) => React.ReactNode) | undefined;
56
- /**
57
- * 自定义选择后触发器所展示的内容,只在 title 为字符串时有效
58
- */
59
- displayRender?: ((checkedOption: FlattedCascaderItem, checkedOptions: FlattedCascaderItem[]) => React.ReactNode) | undefined;
60
- /**
61
- * 将 check 子项拍平展示
62
- */
63
- flatted?: boolean | undefined;
64
- /**
65
- * 开启全量搜索,默认只对开启 checkable 的选项进行搜索,不向上查找路径
66
- */
67
- upMatch?: boolean | undefined;
68
- /**
69
- * 搜索输入框占位符
70
- */
71
- searchPlaceholder?: string | undefined;
72
- /**
73
- * 异步请求更新数据
74
- */
75
- onLoadChildren?: ((item: CascaderItemEventData) => Promise<CascaderItem[] | void> | void) | undefined;
76
- } & React.RefAttributes<HTMLDivElement | null>>;
77
- export declare type CascaderPanelProps = HiBaseHTMLProps<'div', {
78
- /**
79
- * 设置选择项数据源
80
- */
81
- data: CascaderItem[];
82
- /**
83
- * 设置当前选中值
84
- */
85
- value?: React.ReactText;
86
- /**
87
- * 设置当前选中值默认值
88
- */
89
- defaultValue?: React.ReactText;
90
- /**
91
- * 选中值改变时的回调
92
- */
93
- onChange?: (value: React.ReactText, targetOption?: CascaderItemEventData, optionPaths?: FlattedCascaderItem[]) => void;
94
- /**
95
- * 选中选项时触发,仅供内部使用
96
- */
97
- onSelect?: (value: React.ReactText, targetOption: CascaderItemEventData, optionPaths: FlattedCascaderItem[]) => void;
98
- /**
99
- * 次级菜单的展开方式
100
- */
101
- expandTrigger?: ExpandTrigger;
102
- /**
103
- * 是否可搜索(仅在 title 为字符串时支持)
104
- */
105
- searchable?: boolean;
106
- /**
107
- * 是否禁止使用
108
- */
109
- disabled?: boolean;
110
- /**
111
- * 设置选项为空时展示的内容
112
- */
113
- emptyContent?: React.ReactNode;
114
- /**
115
- * 是否启用选择即改变功能
116
- */
117
- changeOnSelect?: boolean;
118
- /**
119
- * 自定义渲染节点的 title 内容
120
- */
121
- titleRender?: (item: CascaderItemEventData, flatted: boolean) => React.ReactNode;
122
- /**
123
- * 自定义选择后触发器所展示的内容,只在 title 为字符串时有效
124
- */
125
- displayRender?: (checkedOption: FlattedCascaderItem, checkedOptions: FlattedCascaderItem[]) => React.ReactNode;
126
- /**
127
- * 将 check 子项拍平展示
128
- */
129
- flatted?: boolean;
130
- /**
131
- * 开启全量搜索,默认只对开启 checkable 的选项进行搜索,不向上查找路径
132
- */
133
- upMatch?: boolean;
134
- /**
135
- * 搜索输入框占位符
136
- */
137
- searchPlaceholder?: string;
138
- /**
139
- * 异步请求更新数据
140
- */
141
- onLoadChildren?: (item: CascaderItemEventData) => Promise<CascaderItem[] | void> | void;
142
- }>;
@@ -1,8 +0,0 @@
1
- /// <reference types="react" />
2
- /**
3
- * 一个缓存数据的 hook
4
- *
5
- * @param data
6
- * @returns
7
- */
8
- export declare const useCache: <T>(data: T) => readonly [T, import("react").Dispatch<import("react").SetStateAction<T>>];
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- import { FlattedCascaderItem } from '../types';
3
- /**
4
- * 支持搜索功能的 hook
5
- */
6
- export declare const useSearch: (flattedData: FlattedCascaderItem[], upMatch: boolean, filter: (option: FlattedCascaderItem) => boolean) => readonly [boolean, FlattedCascaderItem[], {
7
- value: string;
8
- onChange: (evt: React.ChangeEvent<HTMLInputElement>) => void;
9
- }, boolean, () => void];