@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,4 +1,3 @@
1
1
  import './styles/index.scss';
2
2
  export * from './Cascader';
3
3
  export { Cascader as default } from './Cascader';
4
- export * from './CascaderPanel';
@@ -1,17 +1,17 @@
1
1
  import React from 'react';
2
- export interface CascaderItem {
2
+ export interface CascaderDataItem extends Record<string, any> {
3
3
  /**
4
4
  * 树节点唯一 id
5
5
  */
6
- id: React.ReactText;
6
+ id?: React.ReactText;
7
7
  /**
8
8
  * 树节点标题
9
9
  */
10
- title: React.ReactNode;
10
+ title?: React.ReactNode;
11
11
  /**
12
12
  * 该节点的子节点列表
13
13
  */
14
- children?: CascaderItem[];
14
+ children?: CascaderDataItem[];
15
15
  /**
16
16
  * 是否为叶子节点
17
17
  */
@@ -24,19 +24,23 @@ export interface CascaderItem {
24
24
  export interface FlattedCascaderItemWithChildren extends FlattedCascaderItem {
25
25
  children: FlattedCascaderItem[];
26
26
  }
27
- export interface FlattedCascaderItem extends Required<Omit<CascaderItem, 'children'>> {
27
+ export interface FlattedCascaderItem extends Required<Omit<CascaderDataItem, 'children'>> {
28
28
  /**
29
- * 该节点的子节点列表
29
+ * 树节点唯一 id
30
30
  */
31
- children?: FlattedCascaderItem[];
31
+ id: React.ReactText;
32
32
  /**
33
- * 该节点的所有祖先节点列表
33
+ * 树节点标题
34
+ */
35
+ title: React.ReactNode;
36
+ /**
37
+ * 该节点的子节点列表
34
38
  */
35
- ancestors?: FlattedCascaderItemWithChildren[];
39
+ children?: FlattedCascaderItem[];
36
40
  /**
37
41
  * 关联用户传入的原始节点
38
42
  */
39
- raw: CascaderItem;
43
+ raw: CascaderDataItem;
40
44
  /**
41
45
  * 该节点的层级,从 0(顶层)开始
42
46
  */
@@ -1,291 +1,63 @@
1
1
  import React from 'react';
2
- import { FlattedCascaderItem, CascaderItemRequiredProps, CascaderItemEventData } from './types';
3
- import { CascaderProps } from './Cascader';
4
- export declare const useCascader: ({ defaultValue, value: valueProp, onChange: onChangeProp, data, disabled, changeOnSelect, flatted: flattedProp, upMatch, expandTrigger, emptyContent, placeholder, searchPlaceholder, onSelect, titleRender, displayRender, onLoadChildren, ...rest }: UseCascaderProps) => {
5
- rootProps: {
6
- searchable?: boolean | undefined;
7
- clearable?: boolean | undefined;
8
- popper?: import("packages/ui/popper/lib/types").PopperProps | undefined;
9
- children?: React.ReactNode;
10
- id?: string | undefined;
11
- title?: string | undefined;
12
- slot?: string | undefined;
13
- style?: React.CSSProperties | undefined;
14
- key?: React.Key | null | undefined;
15
- defaultChecked?: boolean | undefined;
16
- suppressContentEditableWarning?: boolean | undefined;
17
- suppressHydrationWarning?: boolean | undefined;
18
- accessKey?: string | undefined;
19
- className?: string | undefined;
20
- contentEditable?: "inherit" | (boolean | "true" | "false") | undefined;
21
- contextMenu?: string | undefined;
22
- dir?: string | undefined;
23
- draggable?: (boolean | "true" | "false") | undefined;
24
- hidden?: boolean | undefined;
25
- lang?: string | undefined;
26
- spellCheck?: (boolean | "true" | "false") | undefined;
27
- tabIndex?: number | undefined;
28
- translate?: "yes" | "no" | undefined;
29
- radioGroup?: string | undefined;
30
- role?: (React.AriaRole & string) | undefined;
31
- about?: string | undefined;
32
- datatype?: string | undefined;
33
- inlist?: any;
34
- prefix?: string | undefined;
35
- property?: string | undefined;
36
- resource?: string | undefined;
37
- typeof?: string | undefined;
38
- vocab?: string | undefined;
39
- autoCapitalize?: string | undefined;
40
- autoCorrect?: string | undefined;
41
- autoSave?: string | undefined;
42
- color?: string | undefined;
43
- itemProp?: string | undefined;
44
- itemScope?: boolean | undefined;
45
- itemType?: string | undefined;
46
- itemID?: string | undefined;
47
- itemRef?: string | undefined;
48
- results?: number | undefined;
49
- security?: string | undefined;
50
- unselectable?: "on" | "off" | undefined;
51
- inputMode?: "text" | "none" | "search" | "tel" | "url" | "email" | "numeric" | "decimal" | undefined;
52
- is?: string | undefined;
53
- 'aria-activedescendant'?: string | undefined;
54
- 'aria-atomic'?: boolean | "true" | "false" | undefined;
55
- 'aria-autocomplete'?: "list" | "none" | "inline" | "both" | undefined;
56
- 'aria-busy'?: boolean | "true" | "false" | undefined;
57
- 'aria-checked'?: boolean | "true" | "false" | "mixed" | undefined;
58
- 'aria-colcount'?: number | undefined;
59
- 'aria-colindex'?: number | undefined;
60
- 'aria-colspan'?: number | undefined;
61
- 'aria-controls'?: string | undefined;
62
- 'aria-current'?: boolean | "time" | "true" | "false" | "page" | "step" | "location" | "date" | undefined;
63
- 'aria-describedby'?: string | undefined;
64
- 'aria-details'?: string | undefined;
65
- 'aria-disabled'?: boolean | "true" | "false" | undefined;
66
- 'aria-dropeffect'?: "link" | "none" | "copy" | "execute" | "move" | "popup" | undefined;
67
- 'aria-errormessage'?: string | undefined;
68
- 'aria-expanded'?: boolean | "true" | "false" | undefined;
69
- 'aria-flowto'?: string | undefined;
70
- 'aria-grabbed'?: boolean | "true" | "false" | undefined;
71
- 'aria-haspopup'?: boolean | "dialog" | "menu" | "grid" | "listbox" | "tree" | "true" | "false" | undefined;
72
- 'aria-hidden'?: boolean | "true" | "false" | undefined;
73
- 'aria-invalid'?: boolean | "true" | "false" | "grammar" | "spelling" | undefined;
74
- 'aria-keyshortcuts'?: string | undefined;
75
- 'aria-label'?: string | undefined;
76
- 'aria-labelledby'?: string | undefined;
77
- 'aria-level'?: number | undefined;
78
- 'aria-live'?: "off" | "assertive" | "polite" | undefined;
79
- 'aria-modal'?: boolean | "true" | "false" | undefined;
80
- 'aria-multiline'?: boolean | "true" | "false" | undefined;
81
- 'aria-multiselectable'?: boolean | "true" | "false" | undefined;
82
- 'aria-orientation'?: "horizontal" | "vertical" | undefined;
83
- 'aria-owns'?: string | undefined;
84
- 'aria-placeholder'?: string | undefined;
85
- 'aria-posinset'?: number | undefined;
86
- 'aria-pressed'?: boolean | "true" | "false" | "mixed" | undefined;
87
- 'aria-readonly'?: boolean | "true" | "false" | undefined;
88
- 'aria-relevant'?: "text" | "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text additions" | "text removals" | undefined;
89
- 'aria-required'?: boolean | "true" | "false" | undefined;
90
- 'aria-roledescription'?: string | undefined;
91
- 'aria-rowcount'?: number | undefined;
92
- 'aria-rowindex'?: number | undefined;
93
- 'aria-rowspan'?: number | undefined;
94
- 'aria-selected'?: boolean | "true" | "false" | undefined;
95
- 'aria-setsize'?: number | undefined;
96
- 'aria-sort'?: "none" | "ascending" | "descending" | "other" | undefined;
97
- 'aria-valuemax'?: number | undefined;
98
- 'aria-valuemin'?: number | undefined;
99
- 'aria-valuenow'?: number | undefined;
100
- 'aria-valuetext'?: string | undefined;
101
- dangerouslySetInnerHTML?: {
102
- __html: string;
103
- } | undefined;
104
- onCopy?: React.ClipboardEventHandler<HTMLDivElement> | undefined;
105
- onCopyCapture?: React.ClipboardEventHandler<HTMLDivElement> | undefined;
106
- onCut?: React.ClipboardEventHandler<HTMLDivElement> | undefined;
107
- onCutCapture?: React.ClipboardEventHandler<HTMLDivElement> | undefined;
108
- onPaste?: React.ClipboardEventHandler<HTMLDivElement> | undefined;
109
- onPasteCapture?: React.ClipboardEventHandler<HTMLDivElement> | undefined;
110
- onCompositionEnd?: React.CompositionEventHandler<HTMLDivElement> | undefined;
111
- onCompositionEndCapture?: React.CompositionEventHandler<HTMLDivElement> | undefined;
112
- onCompositionStart?: React.CompositionEventHandler<HTMLDivElement> | undefined;
113
- onCompositionStartCapture?: React.CompositionEventHandler<HTMLDivElement> | undefined;
114
- onCompositionUpdate?: React.CompositionEventHandler<HTMLDivElement> | undefined;
115
- onCompositionUpdateCapture?: React.CompositionEventHandler<HTMLDivElement> | undefined;
116
- onFocus?: React.FocusEventHandler<HTMLDivElement> | undefined;
117
- onFocusCapture?: React.FocusEventHandler<HTMLDivElement> | undefined;
118
- onBlur?: React.FocusEventHandler<HTMLDivElement> | undefined;
119
- onBlurCapture?: React.FocusEventHandler<HTMLDivElement> | undefined;
120
- onChangeCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
121
- onBeforeInput?: React.FormEventHandler<HTMLDivElement> | undefined;
122
- onBeforeInputCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
123
- onInput?: React.FormEventHandler<HTMLDivElement> | undefined;
124
- onInputCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
125
- onReset?: React.FormEventHandler<HTMLDivElement> | undefined;
126
- onResetCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
127
- onSubmit?: React.FormEventHandler<HTMLDivElement> | undefined;
128
- onSubmitCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
129
- onInvalid?: React.FormEventHandler<HTMLDivElement> | undefined;
130
- onInvalidCapture?: React.FormEventHandler<HTMLDivElement> | undefined;
131
- onLoad?: React.ReactEventHandler<HTMLDivElement> | undefined;
132
- onLoadCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
133
- onError?: React.ReactEventHandler<HTMLDivElement> | undefined;
134
- onErrorCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
135
- onKeyDown?: React.KeyboardEventHandler<HTMLDivElement> | undefined;
136
- onKeyDownCapture?: React.KeyboardEventHandler<HTMLDivElement> | undefined;
137
- onKeyPress?: React.KeyboardEventHandler<HTMLDivElement> | undefined;
138
- onKeyPressCapture?: React.KeyboardEventHandler<HTMLDivElement> | undefined;
139
- onKeyUp?: React.KeyboardEventHandler<HTMLDivElement> | undefined;
140
- onKeyUpCapture?: React.KeyboardEventHandler<HTMLDivElement> | undefined;
141
- onAbort?: React.ReactEventHandler<HTMLDivElement> | undefined;
142
- onAbortCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
143
- onCanPlay?: React.ReactEventHandler<HTMLDivElement> | undefined;
144
- onCanPlayCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
145
- onCanPlayThrough?: React.ReactEventHandler<HTMLDivElement> | undefined;
146
- onCanPlayThroughCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
147
- onDurationChange?: React.ReactEventHandler<HTMLDivElement> | undefined;
148
- onDurationChangeCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
149
- onEmptied?: React.ReactEventHandler<HTMLDivElement> | undefined;
150
- onEmptiedCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
151
- onEncrypted?: React.ReactEventHandler<HTMLDivElement> | undefined;
152
- onEncryptedCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
153
- onEnded?: React.ReactEventHandler<HTMLDivElement> | undefined;
154
- onEndedCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
155
- onLoadedData?: React.ReactEventHandler<HTMLDivElement> | undefined;
156
- onLoadedDataCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
157
- onLoadedMetadata?: React.ReactEventHandler<HTMLDivElement> | undefined;
158
- onLoadedMetadataCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
159
- onLoadStart?: React.ReactEventHandler<HTMLDivElement> | undefined;
160
- onLoadStartCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
161
- onPause?: React.ReactEventHandler<HTMLDivElement> | undefined;
162
- onPauseCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
163
- onPlay?: React.ReactEventHandler<HTMLDivElement> | undefined;
164
- onPlayCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
165
- onPlaying?: React.ReactEventHandler<HTMLDivElement> | undefined;
166
- onPlayingCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
167
- onProgress?: React.ReactEventHandler<HTMLDivElement> | undefined;
168
- onProgressCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
169
- onRateChange?: React.ReactEventHandler<HTMLDivElement> | undefined;
170
- onRateChangeCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
171
- onSeeked?: React.ReactEventHandler<HTMLDivElement> | undefined;
172
- onSeekedCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
173
- onSeeking?: React.ReactEventHandler<HTMLDivElement> | undefined;
174
- onSeekingCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
175
- onStalled?: React.ReactEventHandler<HTMLDivElement> | undefined;
176
- onStalledCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
177
- onSuspend?: React.ReactEventHandler<HTMLDivElement> | undefined;
178
- onSuspendCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
179
- onTimeUpdate?: React.ReactEventHandler<HTMLDivElement> | undefined;
180
- onTimeUpdateCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
181
- onVolumeChange?: React.ReactEventHandler<HTMLDivElement> | undefined;
182
- onVolumeChangeCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
183
- onWaiting?: React.ReactEventHandler<HTMLDivElement> | undefined;
184
- onWaitingCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
185
- onAuxClick?: React.MouseEventHandler<HTMLDivElement> | undefined;
186
- onAuxClickCapture?: React.MouseEventHandler<HTMLDivElement> | undefined;
187
- onClick?: React.MouseEventHandler<HTMLDivElement> | undefined;
188
- onClickCapture?: React.MouseEventHandler<HTMLDivElement> | undefined;
189
- onContextMenu?: React.MouseEventHandler<HTMLDivElement> | undefined;
190
- onContextMenuCapture?: React.MouseEventHandler<HTMLDivElement> | undefined;
191
- onDoubleClick?: React.MouseEventHandler<HTMLDivElement> | undefined;
192
- onDoubleClickCapture?: React.MouseEventHandler<HTMLDivElement> | undefined;
193
- onDrag?: React.DragEventHandler<HTMLDivElement> | undefined;
194
- onDragCapture?: React.DragEventHandler<HTMLDivElement> | undefined;
195
- onDragEnd?: React.DragEventHandler<HTMLDivElement> | undefined;
196
- onDragEndCapture?: React.DragEventHandler<HTMLDivElement> | undefined;
197
- onDragEnter?: React.DragEventHandler<HTMLDivElement> | undefined;
198
- onDragEnterCapture?: React.DragEventHandler<HTMLDivElement> | undefined;
199
- onDragExit?: React.DragEventHandler<HTMLDivElement> | undefined;
200
- onDragExitCapture?: React.DragEventHandler<HTMLDivElement> | undefined;
201
- onDragLeave?: React.DragEventHandler<HTMLDivElement> | undefined;
202
- onDragLeaveCapture?: React.DragEventHandler<HTMLDivElement> | undefined;
203
- onDragOver?: React.DragEventHandler<HTMLDivElement> | undefined;
204
- onDragOverCapture?: React.DragEventHandler<HTMLDivElement> | undefined;
205
- onDragStart?: React.DragEventHandler<HTMLDivElement> | undefined;
206
- onDragStartCapture?: React.DragEventHandler<HTMLDivElement> | undefined;
207
- onDrop?: React.DragEventHandler<HTMLDivElement> | undefined;
208
- onDropCapture?: React.DragEventHandler<HTMLDivElement> | undefined;
209
- onMouseDown?: React.MouseEventHandler<HTMLDivElement> | undefined;
210
- onMouseDownCapture?: React.MouseEventHandler<HTMLDivElement> | undefined;
211
- onMouseEnter?: React.MouseEventHandler<HTMLDivElement> | undefined;
212
- onMouseLeave?: React.MouseEventHandler<HTMLDivElement> | undefined;
213
- onMouseMove?: React.MouseEventHandler<HTMLDivElement> | undefined;
214
- onMouseMoveCapture?: React.MouseEventHandler<HTMLDivElement> | undefined;
215
- onMouseOut?: React.MouseEventHandler<HTMLDivElement> | undefined;
216
- onMouseOutCapture?: React.MouseEventHandler<HTMLDivElement> | undefined;
217
- onMouseOver?: React.MouseEventHandler<HTMLDivElement> | undefined;
218
- onMouseOverCapture?: React.MouseEventHandler<HTMLDivElement> | undefined;
219
- onMouseUp?: React.MouseEventHandler<HTMLDivElement> | undefined;
220
- onMouseUpCapture?: React.MouseEventHandler<HTMLDivElement> | undefined;
221
- onSelectCapture?: React.ReactEventHandler<HTMLDivElement> | undefined;
222
- onTouchCancel?: React.TouchEventHandler<HTMLDivElement> | undefined;
223
- onTouchCancelCapture?: React.TouchEventHandler<HTMLDivElement> | undefined;
224
- onTouchEnd?: React.TouchEventHandler<HTMLDivElement> | undefined;
225
- onTouchEndCapture?: React.TouchEventHandler<HTMLDivElement> | undefined;
226
- onTouchMove?: React.TouchEventHandler<HTMLDivElement> | undefined;
227
- onTouchMoveCapture?: React.TouchEventHandler<HTMLDivElement> | undefined;
228
- onTouchStart?: React.TouchEventHandler<HTMLDivElement> | undefined;
229
- onTouchStartCapture?: React.TouchEventHandler<HTMLDivElement> | undefined;
230
- onPointerDown?: React.PointerEventHandler<HTMLDivElement> | undefined;
231
- onPointerDownCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
232
- onPointerMove?: React.PointerEventHandler<HTMLDivElement> | undefined;
233
- onPointerMoveCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
234
- onPointerUp?: React.PointerEventHandler<HTMLDivElement> | undefined;
235
- onPointerUpCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
236
- onPointerCancel?: React.PointerEventHandler<HTMLDivElement> | undefined;
237
- onPointerCancelCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
238
- onPointerEnter?: React.PointerEventHandler<HTMLDivElement> | undefined;
239
- onPointerEnterCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
240
- onPointerLeave?: React.PointerEventHandler<HTMLDivElement> | undefined;
241
- onPointerLeaveCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
242
- onPointerOver?: React.PointerEventHandler<HTMLDivElement> | undefined;
243
- onPointerOverCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
244
- onPointerOut?: React.PointerEventHandler<HTMLDivElement> | undefined;
245
- onPointerOutCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
246
- onGotPointerCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
247
- onGotPointerCaptureCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
248
- onLostPointerCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
249
- onLostPointerCaptureCapture?: React.PointerEventHandler<HTMLDivElement> | undefined;
250
- onScroll?: React.UIEventHandler<HTMLDivElement> | undefined;
251
- onScrollCapture?: React.UIEventHandler<HTMLDivElement> | undefined;
252
- onWheel?: React.WheelEventHandler<HTMLDivElement> | undefined;
253
- onWheelCapture?: React.WheelEventHandler<HTMLDivElement> | undefined;
254
- onAnimationStart?: React.AnimationEventHandler<HTMLDivElement> | undefined;
255
- onAnimationStartCapture?: React.AnimationEventHandler<HTMLDivElement> | undefined;
256
- onAnimationEnd?: React.AnimationEventHandler<HTMLDivElement> | undefined;
257
- onAnimationEndCapture?: React.AnimationEventHandler<HTMLDivElement> | undefined;
258
- onAnimationIteration?: React.AnimationEventHandler<HTMLDivElement> | undefined;
259
- onAnimationIterationCapture?: React.AnimationEventHandler<HTMLDivElement> | undefined;
260
- onTransitionEnd?: React.TransitionEventHandler<HTMLDivElement> | undefined;
261
- onTransitionEndCapture?: React.TransitionEventHandler<HTMLDivElement> | undefined;
262
- prefixCls?: string | undefined;
263
- };
2
+ import type { HiBaseFieldNames } from '@hi-ui/core';
3
+ import { FlattedCascaderItem, CascaderItemRequiredProps, CascaderItemEventData, CascaderDataItem } from './types';
4
+ export declare const useCascader: ({ defaultValue, value: valueProp, onChange: onChangeProp, data, disabled, changeOnSelect, flatted, onSelect: onSelectProp, onLoadChildren, cascaderData: cascaderDataProp, setCascaderData: setCascaderDataProp, flattedData: flattedDataProp, fieldNames, ...rest }: UseCascaderProps) => {
5
+ rootProps: {};
264
6
  reset: () => void;
265
- flattedData: FlattedCascaderItem[];
266
- value: string | number;
267
- tryChangeValue: (newState: string | number, ...args: any[]) => void;
268
- getCascaderItemRequiredProps: ({ id, depth }: FlattedCascaderItem) => CascaderItemRequiredProps;
269
- expandTrigger: import("./types").ExpandTrigger;
7
+ flattedData: any;
8
+ value: React.ReactText[];
9
+ tryChangeValue: (stateOrFunction: React.SetStateAction<React.ReactText[]>, ...args: any[]) => void;
10
+ getItemRequiredProps: ({ id, depth }: FlattedCascaderItem) => CascaderItemRequiredProps;
270
11
  flatted: boolean;
271
12
  onItemClick: (node: CascaderItemEventData, onlyExpand?: any) => Promise<void>;
272
13
  onItemHover: (option: any) => void;
273
14
  changeOnSelect: boolean;
274
- onLoadChildren: ((item: CascaderItemEventData) => void | Promise<void | import("./types").CascaderItem[]>) | undefined;
275
- keyword: string;
15
+ onLoadChildren: ((item: CascaderItemEventData, idPaths: React.ReactText[]) => Promise<CascaderDataItem[] | void> | void) | undefined;
276
16
  disabled: boolean;
277
17
  menuList: FlattedCascaderItem[][];
278
- isEmpty: boolean;
279
- placeholder: string | undefined;
280
- displayRender: ((checkedOption: FlattedCascaderItem, checkedOptions: FlattedCascaderItem[]) => React.ReactNode) | undefined;
281
- titleRender: ((item: CascaderItemEventData, flatted: boolean) => React.ReactNode) | undefined;
282
- emptyContent: boolean | React.ReactChild | React.ReactFragment | React.ReactPortal | null;
283
- getSearchInputProps: () => {
284
- placeholder: string | undefined;
285
- value: string;
286
- onChange: (evt: React.ChangeEvent<HTMLInputElement>) => void;
287
- };
288
18
  };
289
- export interface UseCascaderProps extends CascaderProps {
19
+ export interface UseCascaderProps {
20
+ /**
21
+ * 设置 data 中 id, title, disabled, children 对应的 key
22
+ */
23
+ fieldNames?: HiBaseFieldNames;
24
+ /**
25
+ * 设置选择项数据源
26
+ */
27
+ data: CascaderDataItem[];
28
+ /**
29
+ * 设置当前选中值
30
+ */
31
+ value?: React.ReactText[];
32
+ /**
33
+ * 设置当前选中值默认值
34
+ */
35
+ defaultValue?: React.ReactText[];
36
+ /**
37
+ * 选中值改变时的回调
38
+ */
39
+ onChange?: (value: React.ReactText[]) => void;
40
+ /**
41
+ * 选中选项时触发,仅供内部使用。暂不对外暴露
42
+ * @private
43
+ */
44
+ onSelect?: (value: React.ReactText, targetOption: CascaderItemEventData, optionPaths: FlattedCascaderItem[]) => void;
45
+ /**
46
+ * 是否禁止使用
47
+ */
48
+ disabled?: boolean;
49
+ /**
50
+ * 是否启用选择即改变功能
51
+ */
52
+ changeOnSelect?: boolean;
53
+ /**
54
+ * 将选项拍平展示,不支持 `onLoadChildren` 异步加载交互。暂不对外暴露
55
+ * @private
56
+ */
57
+ flatted?: boolean;
58
+ /**
59
+ * 异步请求更新数据
60
+ */
61
+ onLoadChildren?: (item: CascaderItemEventData, idPaths: React.ReactText[]) => Promise<CascaderDataItem[] | void> | void;
290
62
  }
291
63
  export declare type UseCascaderReturn = ReturnType<typeof useCascader>;
@@ -1,13 +1,10 @@
1
1
  import React from 'react';
2
- import { CascaderItemRequiredProps, CascaderItemEventData, CascaderItem, FlattedCascaderItem } from '../types';
2
+ import type { HiBaseFieldNames } from '@hi-ui/core';
3
+ import { CascaderItemRequiredProps, CascaderItemEventData, CascaderDataItem, FlattedCascaderItem } from '../types';
3
4
  /**
4
5
  * 扁平化树数据结构,基于前序遍历
5
6
  */
6
- export declare const flattenTreeData: (treeData: CascaderItem[]) => FlattedCascaderItem[];
7
- /**
8
- * 获取自顶向下的祖先节点,包括自己
9
- */
10
- export declare const getTopDownAncestors: (node: FlattedCascaderItem) => FlattedCascaderItem[];
7
+ export declare const flattenTreeData: (treeData: CascaderDataItem[], fieldNames?: HiBaseFieldNames | undefined) => FlattedCascaderItem[];
11
8
  /**
12
9
  * 获取选中节点的节点路径,包含选中节点
13
10
  */
@@ -18,4 +15,4 @@ export declare const getActiveNodePaths: (flattedData: FlattedCascaderItem[], se
18
15
  export declare const getActiveMenus: (flattedData: FlattedCascaderItem[], selectedId?: React.ReactText | undefined) => FlattedCascaderItem[][];
19
16
  export declare const getFlattedMenus: (data: FlattedCascaderItem[], filter: (option: FlattedCascaderItem) => boolean) => FlattedCascaderItem[][];
20
17
  export declare const checkCanLoadChildren: (node: FlattedCascaderItem, onLoadChildren?: any) => any;
21
- export declare function getCascaderItemEventData(node: FlattedCascaderItem, requiredProps: CascaderItemRequiredProps): CascaderItemEventData;
18
+ export declare function getItemEventData(node: FlattedCascaderItem, requiredProps: CascaderItemRequiredProps): CascaderItemEventData;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hi-ui/cascader",
3
- "version": "4.0.0-alpha.6",
3
+ "version": "4.0.0-beta.0",
4
4
  "description": "A sub-package for @hi-ui/hiui.",
5
5
  "keywords": [],
6
6
  "author": "HIUI <mi-hiui@xiaomi.com>",
@@ -43,26 +43,32 @@
43
43
  "url": "https://github.com/XiaoMi/hiui/issues"
44
44
  },
45
45
  "dependencies": {
46
- "@hi-ui/classname": "^4.0.0-alpha.1",
47
- "@hi-ui/core": "^4.0.0-alpha.2",
48
- "@hi-ui/env": "^4.0.0-alpha.3",
49
- "@hi-ui/icons": "^4.0.0-alpha.8",
50
- "@hi-ui/input": "^4.0.0-alpha.10",
51
- "@hi-ui/popper": "^4.0.0-alpha.4",
52
- "@hi-ui/tree-utils": "^4.0.0-alpha.2",
53
- "@hi-ui/type-assertion": "^4.0.0-alpha.5",
54
- "@hi-ui/use-latest": "^4.0.0-alpha.2",
55
- "@hi-ui/use-toggle": "^4.0.0-alpha.4",
56
- "@hi-ui/use-uncontrolled-state": "^4.0.0-alpha.5"
46
+ "@hi-ui/classname": "^4.0.0-beta.0",
47
+ "@hi-ui/core": "^4.0.0-beta.0",
48
+ "@hi-ui/env": "^4.0.0-beta.0",
49
+ "@hi-ui/icons": "^4.0.0-beta.0",
50
+ "@hi-ui/input": "^4.0.0-beta.0",
51
+ "@hi-ui/locale-context": "^4.0.0-beta.0",
52
+ "@hi-ui/picker": "^4.0.0-beta.0",
53
+ "@hi-ui/popper": "^4.0.0-beta.0",
54
+ "@hi-ui/tree-utils": "^4.0.0-beta.0",
55
+ "@hi-ui/type-assertion": "^4.0.0-beta.0",
56
+ "@hi-ui/use-check-state": "^4.0.0-beta.0",
57
+ "@hi-ui/use-data-source": "^4.0.0-beta.0",
58
+ "@hi-ui/use-latest": "^4.0.0-beta.0",
59
+ "@hi-ui/use-search-mode": "^4.0.0-beta.0",
60
+ "@hi-ui/use-toggle": "^4.0.0-beta.0",
61
+ "@hi-ui/use-uncontrolled-state": "^4.0.0-beta.0",
62
+ "lodash": "^4.17.21"
57
63
  },
58
64
  "peerDependencies": {
59
- "react": "^17.0.1",
60
- "react-dom": "^17.0.1"
65
+ "react": ">=16.8.6",
66
+ "react-dom": ">=16.8.6"
61
67
  },
62
68
  "devDependencies": {
63
- "@hi-ui/hi-build": "^4.0.0-alpha.2",
69
+ "@hi-ui/hi-build": "^4.0.0-beta.0",
64
70
  "react": "^17.0.1",
65
71
  "react-dom": "^17.0.1"
66
72
  },
67
- "gitHead": "d2ea256c3b3726334a2091eba1de7321ed8d36e3"
73
+ "gitHead": "be106782f3ff72208ec6d4a2ec8acfe2a41fa1fe"
68
74
  }
@@ -1,81 +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
- var _typeof = require("@babel/runtime/helpers/typeof");
13
-
14
- Object.defineProperty(exports, '__esModule', {
15
- value: true
16
- });
17
-
18
- var tslib = require('tslib');
19
-
20
- var React = require('react');
21
-
22
- var classname = require('@hi-ui/classname');
23
-
24
- var env = require('@hi-ui/env');
25
-
26
- var context = require('./context.js');
27
-
28
- var useCascader = require('./use-cascader.js');
29
-
30
- var Cascader = require('./Cascader.js');
31
-
32
- function _interopDefaultLegacy(e) {
33
- return e && _typeof(e) === 'object' && 'default' in e ? e : {
34
- 'default': e
35
- };
36
- }
37
-
38
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
39
-
40
- var _role = 'cascader-panel';
41
-
42
- var _prefix = classname.getPrefixCls(_role);
43
- /**
44
- * TODO: What is CascaderPanel
45
- * MenuList + Search
46
- */
47
-
48
-
49
- var CascaderPanel = /*#__PURE__*/React.forwardRef(function (_a, ref) {
50
- var _a$prefixCls = _a.prefixCls,
51
- prefixCls = _a$prefixCls === void 0 ? _prefix : _a$prefixCls,
52
- _a$role = _a.role,
53
- role = _a$role === void 0 ? _role : _a$role,
54
- className = _a.className,
55
- _a$searchable = _a.searchable,
56
- searchable = _a$searchable === void 0 ? true : _a$searchable,
57
- rest = tslib.__rest(_a, ["prefixCls", "role", "className", "searchable"]);
58
-
59
- var _b = useCascader.useCascader(rest),
60
- rootProps = _b.rootProps,
61
- context$1 = tslib.__rest(_b, ["rootProps"]);
62
-
63
- var providedValue = React.useMemo(function () {
64
- return context$1;
65
- }, [context$1]);
66
- var cls = classname.cx(prefixCls, className, context$1.flatted && prefixCls + "--flatted", context$1.changeOnSelect && prefixCls + "--selectchange");
67
- return /*#__PURE__*/React__default['default'].createElement(context.CascaderProvider, {
68
- value: providedValue
69
- }, /*#__PURE__*/React__default['default'].createElement("div", Object.assign({
70
- ref: ref,
71
- role: role,
72
- className: cls
73
- }, rootProps), searchable ? /*#__PURE__*/React__default['default'].createElement(Cascader.CascaderSearch, null) : null, /*#__PURE__*/React__default['default'].createElement(Cascader.CascaderMenuList, null)));
74
- });
75
-
76
- if (env.__DEV__) {
77
- CascaderPanel.displayName = 'CascaderPanel';
78
- }
79
-
80
- exports.CascaderPanel = CascaderPanel;
81
- //# 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,sBAAAA,CAAaF,KAAbE,CAAhB;AAEA;;;;;;IAIaC,aAAa,gBAAGC,gBAAAA,CAC3B,UAACC,EAAD,EAA+EC,GAA/E;wBAAGC;MAAAA,sCAAYN;mBAASO;MAAAA,4BAAOR;MAAOS,eAAAA;yBAAWC;MAAAA,wCAAa;MAASC,wBAAtE,YAAA,QAAA,aAAA,cAAA;;MACOC,KAA4BC,uBAAAA,CAAYF,IAAZE;MAA1BC,SAAF,KAAA,CAAEA;MAAcC,SAAhB,oBAAA,YAAA;;MAEAC,aAAa,GAAGC,aAAAA,CAAQ;WAAMF;AAAP,GAAPE,EAAuB,CAACF,SAAD,CAAvBE;MAEhBC,GAAG,GAAGC,YAAAA,CACVZ,SADUY,EAEVV,SAFUU,EAGVJ,SAAO,CAACK,OAARL,IAAsBR,SAAtB,cAHUY,EAIVJ,SAAO,CAACM,cAARN,IAA6BR,SAA7B,mBAJUY;sBAQVG,yBAAAA,cAAAA,CAACC,wBAADD;AAAkBE,IAAAA,KAAK,EAAER;GAAzBM,eACEA,yBAAAA,cAAAA,MAAAA;AAAKhB,IAAAA,GAAG,EAAEA;AAAKE,IAAAA,IAAI,EAAEA;AAAMC,IAAAA,SAAS,EAAES;KAASJ,UAA/CQ,EACGZ,UAAU,gBAAGY,yBAAAA,cAAAA,CAACG,uBAADH,MAAAA,CAAH,GAAwB,IADrCA,eAEEA,yBAAAA,cAAAA,CAACI,yBAADJ,MAAAA,CAFFA,CADFA;AAdiC,CAAVlB;;AAyG7B,IAAIuB,WAAJ,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,cAAAA,CAASD,IAATC;MAAjCC,YAAP;MAAqBC,eAArB;;AAEAC,EAAAA,eAAAA,CAAU;AACRD,IAAAA,eAAe,CAACH,IAAD,CAAfG;AADO,GAATC,EAEG,CAACJ,IAAD,CAFHI;SAIO,CAACF,YAAD,EAAeC,eAAf;;;"}