@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,33 +1,20 @@
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';
6
+ import { PickerProps } from '@hi-ui/picker';
5
7
  /**
6
8
  * TODO: What is Cascader
7
9
  * Trigger + MenuList + Search
8
10
  */
9
11
  export declare const Cascader: React.ForwardRefExoticComponent<CascaderProps & React.RefAttributes<HTMLDivElement | null>>;
10
- export interface CascaderProps extends Omit<HiBaseHTMLProps<'div'>, 'onChange' | 'onSelect'> {
12
+ export interface CascaderProps extends Omit<PickerProps, 'data' | 'onChange' | 'trigger'>, UseCascaderProps {
11
13
  /**
12
- * 设置选择项数据源
13
- */
14
- data: CascaderItem[];
15
- /**
16
- * 设置当前选中值
17
- */
18
- value?: React.ReactText;
19
- /**
20
- * 设置当前选中值默认值
14
+ * 将 check 子项拍平展示。暂不对外暴露
15
+ * @private
21
16
  */
22
- defaultValue?: React.ReactText;
23
- /**
24
- * 选中值改变时的回调
25
- */
26
- onChange?: (value: React.ReactText, targetOption?: CascaderItemEventData, optionPaths?: FlattedCascaderItem[]) => void;
27
- /**
28
- * 选中选项时触发,仅供内部使用
29
- */
30
- onSelect?: (value: React.ReactText, targetOption: CascaderItemEventData, optionPaths: FlattedCascaderItem[]) => void;
17
+ type?: 'flatted' | 'tree';
31
18
  /**
32
19
  * 次级菜单的展开方式
33
20
  */
@@ -40,34 +27,18 @@ export interface CascaderProps extends Omit<HiBaseHTMLProps<'div'>, 'onChange' |
40
27
  * 是否可清空
41
28
  */
42
29
  clearable?: boolean;
43
- /**
44
- * 是否禁止使用
45
- */
46
- disabled?: boolean;
47
30
  /**
48
31
  * 设置选项为空时展示的内容
49
32
  */
50
33
  emptyContent?: React.ReactNode;
51
- /**
52
- * 是否启用选择即改变功能
53
- */
54
- changeOnSelect?: boolean;
55
34
  /**
56
35
  * 自定义渲染节点的 title 内容
57
36
  */
58
- titleRender?: (item: CascaderItemEventData, flatted: boolean) => React.ReactNode;
37
+ render?: (item: CascaderItemEventData, keyword?: string) => React.ReactNode;
59
38
  /**
60
39
  * 自定义选择后触发器所展示的内容,只在 title 为字符串时有效
61
40
  */
62
- displayRender?: (checkedOption: FlattedCascaderItem, checkedOptions: FlattedCascaderItem[]) => React.ReactNode;
63
- /**
64
- * 将选项拍平展示,不支持 `onLoadChildren` 异步加载交互
65
- */
66
- flatted?: boolean;
67
- /**
68
- * 开启全量搜索,默认只对开启 checkable 的选项进行搜索,不向上查找路径
69
- */
70
- upMatch?: boolean;
41
+ displayRender?: (checkedOption: CascaderItemEventData, checkedOptionPaths: CascaderItemEventData[]) => React.ReactNode;
71
42
  /**
72
43
  * 触发器输入框占位符
73
44
  */
@@ -77,16 +48,19 @@ export interface CascaderProps extends Omit<HiBaseHTMLProps<'div'>, 'onChange' |
77
48
  */
78
49
  searchPlaceholder?: string;
79
50
  /**
80
- * 异步请求更新数据
51
+ * 自定义搜索过滤器,仅在 searchable 为 true 时有效
52
+ * 第一个参数为输入的关键字,
53
+ * 第二个为数据项,返回值为 true 时将出现在结果项
81
54
  */
82
- onLoadChildren?: (item: CascaderItemEventData) => Promise<CascaderItem[] | void> | void;
55
+ filterOption?: (keyword: string, item: CascaderItemEventData) => boolean;
83
56
  /**
84
57
  * 自定义控制 popper 行为
85
58
  */
86
- popper?: PopperProps;
87
- }
88
- export declare const CascaderSearch: React.ForwardRefExoticComponent<Pick<CascaderSearchProps, string | number> & React.RefAttributes<HTMLInputElement | null>>;
89
- export interface CascaderSearchProps extends HiBaseHTMLProps {
59
+ overlay?: PopperOverlayProps;
60
+ /**
61
+ * 设置展现形式
62
+ */
63
+ appearance?: HiBaseAppearanceEnum;
90
64
  }
91
65
  export declare const CascaderMenuList: React.ForwardRefExoticComponent<Pick<CascaderMenuListProps, string | number> & React.RefAttributes<HTMLDivElement | null>>;
92
66
  export interface CascaderMenuListProps extends HiBaseHTMLProps {