@qsxy/element-plus-react 1.0.2 → 1.0.3

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 (216) hide show
  1. package/dist/Alert/Alert.d.ts +7 -0
  2. package/dist/Alert/Alert.js +98 -0
  3. package/dist/Alert/index.d.ts +2 -0
  4. package/dist/Alert/index.js +1 -0
  5. package/dist/Alert/typings.d.ts +45 -0
  6. package/dist/Alert/typings.js +1 -0
  7. package/dist/Card/Card.js +5 -3
  8. package/dist/Cascader/useCascader.d.ts +0 -14
  9. package/dist/Cascader/useCascader.js +33 -32
  10. package/dist/Checkbox/Checkbox.js +3 -2
  11. package/dist/ConfigProvider/ConfigProvider.js +2 -24
  12. package/dist/ConfigProvider/ConfigProviderContext.js +1 -1
  13. package/dist/ConfigProvider/typings.d.ts +1 -1
  14. package/dist/Container/Main.d.ts +1 -1
  15. package/dist/Container/typings.d.ts +1 -1
  16. package/dist/Dialog/Dialog.js +5 -12
  17. package/dist/Input/Input.js +68 -43
  18. package/dist/Input/TextArea.js +1 -1
  19. package/dist/Input/typings.d.ts +42 -1
  20. package/dist/Input/utils.d.ts +1 -0
  21. package/dist/Input/utils.js +5 -1
  22. package/dist/InputNumber/InputNumber.js +351 -141
  23. package/dist/InputNumber/typings.d.ts +15 -1
  24. package/dist/Loading/Loading.js +5 -2
  25. package/dist/Menu/Menu.js +25 -1
  26. package/dist/Menu/MenuItem.js +4 -2
  27. package/dist/Menu/SubMenu.js +2 -2
  28. package/dist/Menu/SubMenuCollapseTransition.js +14 -9
  29. package/dist/Menu/typings.d.ts +2 -1
  30. package/dist/Message/Message.js +51 -23
  31. package/dist/Message/index.js +8 -10
  32. package/dist/Message/typings.d.ts +8 -5
  33. package/dist/MessageBox/MessageBox.js +52 -30
  34. package/dist/MessageBox/index.d.ts +2 -1
  35. package/dist/MessageBox/index.js +4 -2
  36. package/dist/MessageBox/typings.d.ts +3 -0
  37. package/dist/Notification/Notification.js +26 -19
  38. package/dist/Select/SelectContext.d.ts +2 -1
  39. package/dist/Select/SelectContext.js +2 -1
  40. package/dist/Select/SelectCore.js +13 -7
  41. package/dist/Select/SelectDropdown.js +23 -15
  42. package/dist/Select/index.d.ts +1 -1
  43. package/dist/Select/typings.d.ts +13 -9
  44. package/dist/Select/useSelect.d.ts +13 -10
  45. package/dist/Select/useSelect.js +34 -26
  46. package/dist/Space/Space.d.ts +4 -0
  47. package/dist/Space/Space.js +128 -0
  48. package/dist/Space/SpaceItem.d.ts +7 -0
  49. package/dist/Space/SpaceItem.js +14 -0
  50. package/dist/Space/index.d.ts +3 -0
  51. package/dist/Space/index.js +2 -0
  52. package/dist/Space/typings.d.ts +26 -0
  53. package/dist/Space/typings.js +1 -0
  54. package/dist/Space/useSpace.d.ts +7 -0
  55. package/dist/Space/useSpace.js +104 -0
  56. package/dist/Statistic/Statistic.d.ts +4 -0
  57. package/dist/Statistic/Statistic.js +92 -0
  58. package/dist/Statistic/index.d.ts +2 -0
  59. package/dist/Statistic/index.js +1 -0
  60. package/dist/Statistic/typings.d.ts +28 -0
  61. package/dist/Statistic/typings.js +1 -0
  62. package/dist/Switch/Switch.js +2 -2
  63. package/dist/Table/Table.js +3 -0
  64. package/dist/Table/typings.d.ts +2 -0
  65. package/dist/Tag/typings.d.ts +1 -1
  66. package/dist/Text/Text.d.ts +4 -0
  67. package/dist/Text/Text.js +84 -0
  68. package/dist/Text/index.d.ts +2 -0
  69. package/dist/Text/index.js +1 -0
  70. package/dist/Text/typings.d.ts +15 -0
  71. package/dist/Text/typings.js +1 -0
  72. package/dist/Tree/CollapseTransition.d.ts +7 -0
  73. package/dist/Tree/CollapseTransition.js +60 -0
  74. package/dist/Tree/Tree.d.ts +3 -140
  75. package/dist/Tree/Tree.js +350 -77
  76. package/dist/Tree/TreeContext.d.ts +9 -0
  77. package/dist/Tree/TreeContext.js +14 -0
  78. package/dist/Tree/TreeNode.d.ts +5 -3
  79. package/dist/Tree/TreeNode.js +321 -331
  80. package/dist/Tree/TreeNodeContent.d.ts +9 -0
  81. package/dist/Tree/TreeNodeContent.js +22 -0
  82. package/dist/Tree/index.d.ts +3 -8
  83. package/dist/Tree/index.js +1 -4
  84. package/dist/Tree/model/node.d.ts +62 -0
  85. package/dist/Tree/model/node.js +601 -0
  86. package/dist/Tree/model/tree-store.d.ts +52 -0
  87. package/dist/Tree/model/tree-store.js +510 -0
  88. package/dist/Tree/model/useDragNode.d.ts +30 -0
  89. package/dist/Tree/model/useDragNode.js +293 -0
  90. package/dist/Tree/model/useKeydown.d.ts +0 -0
  91. package/dist/Tree/model/useKeydown.js +104 -0
  92. package/dist/Tree/model/useNodeExpandEventBroadcast.d.ts +15 -0
  93. package/dist/Tree/model/useNodeExpandEventBroadcast.js +54 -0
  94. package/dist/Tree/model/util.d.ts +7 -0
  95. package/dist/Tree/model/util.js +24 -0
  96. package/dist/Tree/typings.d.ts +225 -114
  97. package/dist/TreeSelect/TreeSelect.d.ts +2 -10
  98. package/dist/TreeSelect/TreeSelect.js +90 -566
  99. package/dist/TreeSelect/TreeSelectOption.d.ts +6 -0
  100. package/dist/TreeSelect/TreeSelectOption.js +62 -0
  101. package/dist/TreeSelect/cacheOptions.d.ts +9 -0
  102. package/dist/TreeSelect/cacheOptions.js +22 -0
  103. package/dist/TreeSelect/index.d.ts +0 -1
  104. package/dist/TreeSelect/typings.d.ts +11 -63
  105. package/dist/TreeSelect/useSelect.d.ts +125 -0
  106. package/dist/TreeSelect/useSelect.js +104 -0
  107. package/dist/TreeSelect/useTree.d.ts +130 -0
  108. package/dist/TreeSelect/useTree.js +285 -0
  109. package/dist/TreeSelect/utils.d.ts +10 -0
  110. package/dist/TreeSelect/utils.js +38 -0
  111. package/dist/Upload/UploadContent.js +2 -0
  112. package/dist/Upload/ajax.js +3 -0
  113. package/dist/Upload/typings.d.ts +4 -0
  114. package/dist/Util/aria.js +12 -12
  115. package/dist/Util/base.d.ts +5 -0
  116. package/dist/Util/base.js +140 -1
  117. package/dist/config/Constants.d.ts +3 -0
  118. package/dist/config/Constants.js +8 -0
  119. package/dist/hooks/index.d.ts +1 -0
  120. package/dist/hooks/index.js +1 -0
  121. package/dist/hooks/popperPropsUtils.js +1 -1
  122. package/dist/hooks/treePropsUtils.d.ts +3 -3
  123. package/dist/hooks/treePropsUtils.js +2 -2
  124. package/dist/hooks/useConfigProvider.d.ts +27 -0
  125. package/dist/hooks/useConfigProvider.js +78 -0
  126. package/dist/hooks/useResizeObserver.js +6 -6
  127. package/dist/index.css +1 -1
  128. package/dist/index.d.ts +18 -11
  129. package/dist/index.js +11 -5
  130. package/package.json +1 -1
  131. package/theme-chalk/alert.scss +115 -0
  132. package/theme-chalk/aside.scss +8 -8
  133. package/theme-chalk/button-group.scss +80 -80
  134. package/theme-chalk/button.scss +304 -304
  135. package/theme-chalk/calendar/date-table.scss +164 -164
  136. package/theme-chalk/checkbox.scss +34 -0
  137. package/theme-chalk/color/index.scss +20 -20
  138. package/theme-chalk/common/transition.scss +142 -142
  139. package/theme-chalk/container.scss +14 -14
  140. package/theme-chalk/dark/css-vars.scss +39 -39
  141. package/theme-chalk/dark/var.scss +225 -225
  142. package/theme-chalk/date-picker.scss +12 -12
  143. package/theme-chalk/drawer.scss +1 -0
  144. package/theme-chalk/footer.scss +12 -12
  145. package/theme-chalk/header.scss +12 -12
  146. package/theme-chalk/index.scss +4 -0
  147. package/theme-chalk/input/input-range.scss +2 -1
  148. package/theme-chalk/input/input.scss +439 -424
  149. package/theme-chalk/input-number.bak +172 -0
  150. package/theme-chalk/input-number.scss +192 -172
  151. package/theme-chalk/link.scss +87 -87
  152. package/theme-chalk/main.scss +14 -14
  153. package/theme-chalk/menu.scss +353 -353
  154. package/theme-chalk/message.scss +104 -178
  155. package/theme-chalk/mixins/_button.scss +224 -224
  156. package/theme-chalk/mixins/_col.scss +33 -33
  157. package/theme-chalk/mixins/_var.scss +67 -67
  158. package/theme-chalk/mixins/config.scss +5 -5
  159. package/theme-chalk/mixins/function.scss +99 -99
  160. package/theme-chalk/mixins/mixins.scss +240 -240
  161. package/theme-chalk/mixins/utils.scss +39 -39
  162. package/theme-chalk/notification.bak +156 -0
  163. package/theme-chalk/notification.scss +109 -156
  164. package/theme-chalk/popper.scss +104 -104
  165. package/theme-chalk/radio-button.scss +169 -169
  166. package/theme-chalk/select/index.scss +278 -272
  167. package/theme-chalk/space.scss +20 -0
  168. package/theme-chalk/statistic.scss +35 -0
  169. package/theme-chalk/switch.scss +300 -300
  170. package/theme-chalk/tag.scss +181 -181
  171. package/theme-chalk/text.scss +48 -0
  172. package/theme-chalk/transition.scss +34 -4
  173. package/theme-chalk/tree-select.scss +41 -25
  174. package/theme-chalk/tree.scss +136 -0
  175. package/theme-chalk/var.scss +83 -83
  176. package/dist/Input/Input.1.d.ts +0 -16
  177. package/dist/Input/Input.1.js +0 -376
  178. package/dist/Tree/DirectoryTree.d.ts +0 -15
  179. package/dist/Tree/DirectoryTree.js +0 -183
  180. package/dist/Tree/DropIndicator.d.ts +0 -8
  181. package/dist/Tree/DropIndicator.js +0 -34
  182. package/dist/Tree/Indent.d.ts +0 -9
  183. package/dist/Tree/Indent.js +0 -25
  184. package/dist/Tree/MotionTreeNode.d.ts +0 -14
  185. package/dist/Tree/MotionTreeNode.js +0 -125
  186. package/dist/Tree/NodeList.d.ts +0 -50
  187. package/dist/Tree/NodeList.js +0 -301
  188. package/dist/Tree/RCTree.d.ts +0 -248
  189. package/dist/Tree/RCTree.js +0 -1216
  190. package/dist/Tree/contextTypes.d.ts +0 -69
  191. package/dist/Tree/contextTypes.js +0 -9
  192. package/dist/Tree/typings.tsx--bak +0 -245
  193. package/dist/Tree/useUnmount.d.ts +0 -5
  194. package/dist/Tree/useUnmount.js +0 -34
  195. package/dist/Tree/util.d.ts +0 -51
  196. package/dist/Tree/util.js +0 -303
  197. package/dist/Tree/utils/conductUtil.d.ts +0 -17
  198. package/dist/Tree/utils/conductUtil.js +0 -209
  199. package/dist/Tree/utils/dictUtil.d.ts +0 -13
  200. package/dist/Tree/utils/dictUtil.js +0 -75
  201. package/dist/Tree/utils/diffUtil.d.ts +0 -7
  202. package/dist/Tree/utils/diffUtil.js +0 -48
  203. package/dist/Tree/utils/dropIndicator.d.ts +0 -11
  204. package/dist/Tree/utils/dropIndicator.js +0 -36
  205. package/dist/Tree/utils/iconUtil.d.ts +0 -5
  206. package/dist/Tree/utils/iconUtil.js +0 -62
  207. package/dist/Tree/utils/keyUtil.d.ts +0 -2
  208. package/dist/Tree/utils/keyUtil.js +0 -3
  209. package/dist/Tree/utils/motion.d.ts +0 -10
  210. package/dist/Tree/utils/motion.js +0 -54
  211. package/dist/Tree/utils/pickAttrs.d.ts +0 -11
  212. package/dist/Tree/utils/pickAttrs.js +0 -51
  213. package/dist/Tree/utils/treeUtil.d.ts +0 -86
  214. package/dist/Tree/utils/treeUtil.js +0 -364
  215. package/dist/TreeSelect/Utils.d.ts +0 -3
  216. package/dist/TreeSelect/Utils.js +0 -20
@@ -1,122 +1,233 @@
1
- import React from 'react';
2
- export type { ScrollTo } from 'rc-virtual-list/lib/List';
3
- export interface TreeNodeProps<TreeDataType extends BasicDataNode = DataNode> {
4
- eventKey?: Key;
5
- prefixCls?: string;
6
- className?: string;
7
- style?: React.CSSProperties;
8
- id?: string;
9
- expanded?: boolean;
10
- selected?: boolean;
1
+ import React, { RefObject } from 'react';
2
+ import { IconName } from '../Icon';
3
+ import { BaseProps, NativeProps } from '../types/common';
4
+ import Node from './model/node';
5
+ import TreeStore from './model/tree-store';
6
+ import { DragOptions } from './model/useDragNode';
7
+ export type TreeRef = {
8
+ /** 过滤所有树节点,过滤后的节点将被隐藏 */
9
+ filter: (value: any) => void;
10
+ /** */
11
+ getNodeKey: (node: any) => any;
12
+ /** 根据 data 或者 key 拿到 Tree 组件中的 node */
13
+ getNode: (data: TreeKey | TreeNodeData | Node) => Node;
14
+ /** 如果节点可以被选中,(showCheckbox 为 true), 本方法将返回当前选中节点的数组 */
15
+ getCheckedNodes: (leafOnly?: boolean, includeHalfChecked?: boolean) => TreeNodeData[];
16
+ /** 如果节点可以被选中,(showCheckbox 为 true), 本方法将返回当前选中节点的 key 数组 */
17
+ getCheckedKeys: (leafOnly?: boolean) => TreeKey[];
18
+ /** 如果节点可以被选中,(showCheckbox 为 true), 本方法将返回当前半选节点的数组 */
19
+ getHalfCheckedNodes: () => TreeNodeData[];
20
+ /** 如果节点可以被选中,(showCheckbox 为 true), 本方法将返回当前半选节点的 key 数组 */
21
+ getHalfCheckedKeys: () => TreeKey[];
22
+ /** 获取当前被选中的节点数据 */
23
+ getCurrentNode: () => TreeNodeData;
24
+ /** 获取当前被选中的节点 key */
25
+ getCurrentKey: () => any;
26
+ /** 设置节点为选中状态,使用此方法必须设置 nodeKey 属性 */
27
+ setCurrentNode: (node: Node, shouldAutoExpandParent?: boolean) => void;
28
+ /** 通过 key 设置某个节点的当前选中状态,使用此方法必须设置 nodeKey 属性 */
29
+ setCurrentKey: (key?: any, shouldAutoExpandParent?: boolean) => void;
30
+ /** 删除 Tree 中的一个节点,使用此方法必须设置 nodeKey 属性 */
31
+ remove: (data: TreeNodeData | Node) => void;
32
+ /** 为 Tree 中的一个节点追加一个子节点 */
33
+ append: (data: TreeNodeData, parentNode: TreeNodeData | TreeKey | Node) => void;
34
+ /** 在 Tree 中给定节点前插入一个节点 */
35
+ insertBefore: (data: TreeNodeData, refNode: TreeKey | TreeNodeData | Node) => void;
36
+ /** 在 Tree 中给定节点后插入一个节点 */
37
+ insertAfter: (data: TreeNodeData, refNode: TreeKey | TreeNodeData | Node) => void;
38
+ /** 为节点设置新数据,只有当设置 nodeKey 属性的时候才可用 */
39
+ updateKeyChildren: (key: TreeKey, data: TreeData) => void;
40
+ /** 设置目前勾选的节点,使用此方法必须提前设置 nodeKey 属性 */
41
+ setCheckedNodes: (nodes: Node[], leafOnly?: boolean) => void;
42
+ /** 设置目前选中的节点,使用此方法必须设置 nodeKey 属性 */
43
+ setCheckedKeys: (keys: TreeKey[], leafOnly?: boolean) => void;
44
+ /** 设置节点是否被选中, 使用此方法必须设置 nodeKey 属性 */
45
+ setChecked: (data: TreeKey | TreeNodeData, checked: boolean, deep: boolean) => void;
46
+ store: TreeStore;
47
+ };
48
+ export type TreeNodeRef = {
49
+ handleExpandIconClick: () => void;
50
+ };
51
+ export type TreeData = TreeNodeData[];
52
+ export type TreeKey = string | number;
53
+ export interface FakeNode {
54
+ data: TreeNodeData;
55
+ }
56
+ export type TreeNodeData = Record<string, any>;
57
+ export interface TreeNodeLoadedDefaultProps {
11
58
  checked?: boolean;
12
- loaded?: boolean;
13
- loading?: boolean;
14
- halfChecked?: boolean;
15
- title?: React.ReactNode | ((data: TreeDataType) => React.ReactNode);
16
- dragOver?: boolean;
17
- dragOverGapTop?: boolean;
18
- dragOverGapBottom?: boolean;
19
- pos?: string;
20
- domRef?: React.Ref<HTMLDivElement>;
21
- /** New added in Tree for easy data access */
22
- data?: TreeDataType;
23
- isStart?: boolean[];
24
- isEnd?: boolean[];
25
- active?: boolean;
26
- onMouseMove?: React.MouseEventHandler<HTMLDivElement>;
27
- isLeaf?: boolean;
28
- checkable?: boolean;
29
- selectable?: boolean;
30
- disabled?: boolean;
31
- disableCheckbox?: boolean;
32
- icon?: IconType;
33
- switcherIcon?: IconType;
34
- children?: React.ReactNode;
35
59
  }
36
- /** For fieldNames, we provides a abstract interface */
37
- export interface BasicDataNode {
38
- checkable?: boolean;
39
- disabled?: boolean;
40
- disableCheckbox?: boolean;
41
- icon?: IconType;
42
- isLeaf?: boolean;
43
- selectable?: boolean;
44
- switcherIcon?: IconType;
45
- /** Set style of TreeNode. This is not recommend if you don't have any force requirement */
46
- className?: string;
47
- style?: React.CSSProperties;
60
+ export interface TreeNodeChildState {
61
+ all: boolean;
62
+ none: boolean;
63
+ allWithoutDisable: boolean;
64
+ half: boolean;
65
+ isEffectivelyChecked: boolean;
48
66
  }
49
- /** Provide a wrap type define for developer to wrap with customize fieldNames data type */
50
- export type FieldDataNode<T, ChildFieldName extends string = 'children'> = BasicDataNode & T & Partial<Record<ChildFieldName, FieldDataNode<T, ChildFieldName>[]>>;
51
- export type Key = React.Key;
52
- /**
53
- * Typescript not support `bigint` as index type yet.
54
- * We use this to mark the `bigint` type is for `Key` usage.
55
- * It's safe to remove this when typescript fix:
56
- * https://github.com/microsoft/TypeScript/issues/50217
57
- */
58
- export type SafeKey = Exclude<Key, bigint>;
59
- export type KeyEntities<DateType extends BasicDataNode = any> = Record<SafeKey, DataEntity<DateType>>;
60
- export type DataNode = FieldDataNode<{
61
- key: Key;
62
- title?: React.ReactNode | ((data: DataNode) => React.ReactNode);
63
- }>;
64
- export type EventDataNode<TreeDataType> = {
65
- key: Key;
66
- expanded: boolean;
67
- selected: boolean;
68
- checked: boolean;
69
- loaded: boolean;
70
- loading: boolean;
71
- halfChecked: boolean;
72
- dragOver: boolean;
73
- dragOverGapTop: boolean;
74
- dragOverGapBottom: boolean;
75
- pos: string;
76
- active: boolean;
77
- } & TreeDataType & BasicDataNode;
78
- export type IconType = React.ReactNode | ((props: TreeNodeProps) => React.ReactNode);
79
- export type NodeElement = React.ReactElement<TreeNodeProps> & {
80
- selectHandle?: HTMLSpanElement;
81
- type: {
82
- isTreeNode: boolean;
83
- };
84
- };
85
- export type NodeInstance<TreeDataType extends BasicDataNode = DataNode> = React.Component<TreeNodeProps<TreeDataType>> & {
86
- selectHandle?: HTMLSpanElement;
87
- };
88
- export interface Entity {
89
- node: NodeElement;
90
- index: number;
91
- key: Key;
92
- pos: string;
93
- parent?: Entity;
94
- children?: Entity[];
67
+ export interface TreeNodeOptions {
68
+ data: TreeNodeData;
69
+ store: TreeStore;
70
+ parent?: Node;
95
71
  }
96
- export interface DataEntity<TreeDataType extends BasicDataNode = DataNode> extends Omit<Entity, 'node' | 'parent' | 'children'> {
97
- node: TreeDataType;
98
- nodes: TreeDataType[];
99
- parent?: DataEntity<TreeDataType>;
100
- children?: DataEntity<TreeDataType>[];
101
- level: number;
72
+ export interface TreeStoreNodesMap {
73
+ [key: string]: Node;
102
74
  }
103
- export interface FlattenNode<TreeDataType extends BasicDataNode = DataNode> {
104
- parent: FlattenNode<TreeDataType> | null;
105
- children: FlattenNode<TreeDataType>[];
106
- pos: string;
107
- data: TreeDataType;
108
- title: React.ReactNode;
109
- key: Key;
110
- isStart: boolean[];
111
- isEnd: boolean[];
75
+ export interface TreeStoreOptions {
76
+ key?: TreeKey;
77
+ data: TreeData;
78
+ lazy: boolean;
79
+ props: TreeOptionProps;
80
+ load?: LoadFunction;
81
+ currentNodeKey?: TreeKey;
82
+ checkStrictly: boolean;
83
+ checkDescendants: boolean;
84
+ defaultCheckedKeys?: TreeKey[];
85
+ defaultExpandedKeys?: TreeKey[];
86
+ autoExpandParent: boolean;
87
+ defaultExpandAll: boolean;
88
+ filterNodeMethod?: FilterNodeMethodFunction;
89
+ forceUpdate?: () => void;
112
90
  }
113
- export type GetKey<RecordType> = (record: RecordType, index?: number) => Key;
114
- export type GetCheckDisabled<RecordType> = (record: RecordType) => boolean;
115
- export type Direction = 'ltr' | 'rtl' | undefined;
116
- export interface FieldNames {
117
- title?: string;
118
- /** @private Internal usage for `rc-tree-select`, safe to remove if no need */
119
- _title?: string[];
120
- key?: string;
91
+ export interface TreeOptionProps {
121
92
  children?: string;
93
+ label?: string | ((data: TreeNodeData, node: Node) => string);
94
+ disabled?: string | ((data: TreeNodeData, node: Node) => boolean);
95
+ isLeaf?: string | ((data: TreeNodeData, node: Node) => boolean);
96
+ class?: (data: TreeNodeData, node: Node) => string | {
97
+ [key: string]: boolean;
98
+ };
99
+ }
100
+ export type RenderContentFunction = (context: RenderContentContext) => React.ReactElement | React.ReactElement[];
101
+ export interface RenderContentContext {
102
+ _self?: any;
103
+ node?: Node;
104
+ data?: TreeNodeData;
105
+ store?: TreeStore;
122
106
  }
107
+ export type AllowDragFunction = (node: Node) => boolean;
108
+ export type AllowDropType = 'inner' | 'prev' | 'next';
109
+ export type AllowDropFunction = (draggingNode: Node, dropNode: Node, type: AllowDropType) => boolean;
110
+ export type LoadFunction = (rootNode: Node, loadedCallback: (data: TreeData) => void, stopLoading: () => void) => void;
111
+ export type FilterValue = any;
112
+ export type FilterNodeMethodFunction = (value: FilterValue, data: TreeNodeData, child: Node) => boolean;
113
+ export interface TreeProps extends TreeEvents, BaseProps, NativeProps {
114
+ /** 展示数据 */
115
+ data?: TreeData;
116
+ /** 内容为空的时候展示的文本 */
117
+ emptyText?: string;
118
+ /** 是否在第一次展开某个树节点后才渲染其子节点 */
119
+ renderAfterExpand?: boolean;
120
+ /** 每个树节点用来作为唯一标识的属性,整棵树应该是唯一的 */
121
+ nodeKey?: string;
122
+ /** 在显示复选框的情况下,是否严格的遵循父子不互相关联的做法 */
123
+ checkStrictly?: boolean;
124
+ /** 是否在点击节点的时候展开或者收缩节点, 默认值为 true,如果为 false,则只有点箭头图标的时候才会展开或者收缩节点。 */
125
+ expandOnClickNode?: boolean;
126
+ /** 是否默认展开所有节点 */
127
+ defaultExpandAll?: boolean;
128
+ /** 是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点 */
129
+ checkOnClickNode?: boolean;
130
+ /** 点击叶节点(最后一个子节点)时是否选中或取消选中节点 */
131
+ checkOnClickLeaf?: boolean;
132
+ /** */
133
+ checkDescendants?: boolean;
134
+ /** 展开子节点的时候是否自动展开父节点 */
135
+ autoExpandParent?: boolean;
136
+ /** 默认勾选的节点的 key 的数组 */
137
+ defaultCheckedKeys?: TreeKey[];
138
+ /** 默认展开的节点的 key 的数组 */
139
+ defaultExpandedKeys?: TreeKey[];
140
+ /** 当前选中的节点 */
141
+ currentNodeKey?: TreeKey;
142
+ /** 树节点的内容区的渲染 Function */
143
+ renderContent?: RenderContentFunction;
144
+ /** 节点是否可被选择 */
145
+ showCheckbox?: boolean;
146
+ /** 是否开启拖拽节点功能 */
147
+ draggable?: boolean;
148
+ /** 判断节点能否被拖拽 如果返回 false ,节点不能被拖动 */
149
+ allowDrag?: AllowDragFunction;
150
+ /** 拖拽时判定目标节点能否成为拖动目标位置。 如果返回 false ,拖动节点不能被拖放到目标节点。 type 参数有三种情况:'prev'、'inner' 和 'next',分别表示放置在目标节点前、插入至目标节点和放置在目标节点后 */
151
+ allowDrop?: AllowDropFunction;
152
+ /** 配置选项 */
153
+ props?: TreeOptionProps;
154
+ /** 是否懒加载子节点,需与 load 方法结合使用 */
155
+ lazy?: boolean;
156
+ /** 是否高亮当前选中节点 */
157
+ highlightCurrent?: boolean;
158
+ /** 加载子树数据的方法,仅当 lazy 属性为true 时生效 */
159
+ load?: LoadFunction;
160
+ /** 对树节点进行筛选时执行的方法, 返回 false 则表示这个节点会被隐藏 */
161
+ filterNodeMethod?: FilterNodeMethodFunction;
162
+ /** 是否每次只打开一个同级树节点展开 */
163
+ accordion?: boolean;
164
+ /** 相邻级节点间的水平缩进,单位为像素 */
165
+ indent?: number;
166
+ /** 自定义树节点图标组件 */
167
+ icon?: IconName;
168
+ /** 当数据为空时自定义的内容 */
169
+ renderEmpty?: () => React.ReactNode;
170
+ }
171
+ export interface TreeEvents {
172
+ /** 当节点被点击的时候触发 四个参数:对应于节点点击的节点对象,TreeNode 的 node 属性, TreeNode和事件对象 */
173
+ onNodeClick?: (nodeData: TreeNodeData, node: Node, instance: RefObject<TreeNodeRef>, e: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
174
+ /** 当某一节点被鼠标右键点击时会触发该事件 共四个参数,依次为:event、传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身。 */
175
+ onNodeContextmenu?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>, nodeData: TreeNodeData, node: Node, instance: RefObject<TreeNodeRef>) => void;
176
+ /** 当复选框被点击的时候触发 共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点本身是否被选中、节点的子树中是否有被选中的节点 */
177
+ onCheckChange?: (nodeData: TreeNodeData, checked: boolean, indeterminate: boolean) => void;
178
+ /** 点击节点复选框之后触发 共两个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、树目前的选中状态对象,包含 checkedNodes、checkedKeys、halfCheckedNodes、halfCheckedKeys 四个属性 */
179
+ onCheck?: (nodeData: TreeNodeData, checkedInfo: CheckedInfo) => void;
180
+ /** 当前选中节点变化时触发的事件 共两个参数,依次为:当前节点的数据,当前节点的 Node 对象 */
181
+ onCurrentChange?: (nodeData: TreeNodeData, node: Node) => void;
182
+ /** 节点被展开时触发的事件 共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身 */
183
+ onNodeExpand?: (nodeData: TreeNodeData, node: Node, instance: RefObject<TreeNodeRef>) => void;
184
+ /** 节点被关闭时触发的事件 共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身 */
185
+ onNodeCollapse?: (nodeData: TreeNodeData, node: Node, instance: RefObject<TreeNodeRef>) => void;
186
+ /** 节点开始拖拽时触发的事件 共两个参数,依次为:被拖拽节点对应的 Node、event */
187
+ onNodeDragStart?: (draggingNode: Node, event: React.DragEvent<HTMLDivElement>) => void;
188
+ /** 拖拽进入其他节点时触发的事件 共三个参数,依次为:被拖拽节点对应的 Node、所进入节点对应的 Node、event */
189
+ onNodeDragEnter?: (draggingNode: Node, dropNode: Node, event: React.DragEvent<HTMLDivElement>) => void;
190
+ /** 拖拽离开某个节点时触发的事件 共三个参数,依次为:被拖拽节点对应的 Node、所离开节点对应的 Node、event */
191
+ onNodeDragLeave?: (draggingNode: Node, dropNode: Node, event: React.DragEvent<HTMLDivElement>) => void;
192
+ /** 在拖拽节点时触发的事件(类似浏览器的 mouseover 事件) 共三个参数,依次为:被拖拽节点对应的 Node、当前进入节点对应的 Node、event */
193
+ onNodeDragOver?: (draggingNode: Node, dropNode: Node, event: React.DragEvent<HTMLDivElement>) => void;
194
+ /** 拖拽结束,即释放鼠标时触发的事件 共三个参数,依次为:被拖拽节点对应的 Node、当前进入节点对应的 Node、event */
195
+ onNodeDragEnd?: (draggingNode: Node, dropNode: Node, dropType: NodeDropType, event: React.DragEvent<HTMLDivElement>) => void;
196
+ /** 拖拽开始时触发的事件 共两个参数,依次为:被拖拽节点对应的 Node、event */
197
+ onNodeDrop?: (draggingNode: Node, dropNode: Node, dropType: NodeDropType, event: React.DragEvent<HTMLDivElement>) => void;
198
+ }
199
+ export type NodeDropType = 'before' | 'after' | 'inner' | 'none';
200
+ export type { DragEvents } from './model/useDragNode';
201
+ export interface CheckedInfo {
202
+ checkedKeys: TreeKey[];
203
+ checkedNodes: TreeData;
204
+ halfCheckedKeys: TreeKey[];
205
+ halfCheckedNodes: TreeData;
206
+ }
207
+ export interface TreeNodeProps {
208
+ node: Node;
209
+ props: TreeOptionProps;
210
+ accordion: boolean;
211
+ renderContent: RenderContentFunction;
212
+ renderAfterExpand: boolean;
213
+ showCheckbox: boolean;
214
+ onNodeExpand: (nodeData: TreeNodeData, node: Node, instance: RefObject<TreeNodeRef>) => void;
215
+ }
216
+ interface NodeMap {
217
+ treeNodeExpand(node?: Node): void;
218
+ children: Set<NodeMap>;
219
+ }
220
+ export type TreeContextProps = {
221
+ props: TreeProps;
222
+ store: TreeStore;
223
+ root: Node;
224
+ forceUpdate: () => void;
225
+ };
226
+ export type TreeNodeExpandContextProps = {
227
+ parentNodeMap: RefObject<NodeMap>;
228
+ };
229
+ export type DragEventsContextProps = {
230
+ treeNodeDragStart: (options: DragOptions) => void;
231
+ treeNodeDragOver: (options: DragOptions) => void;
232
+ treeNodeDragEnd: (event: React.DragEvent<HTMLDivElement>) => void;
233
+ };
@@ -1,12 +1,4 @@
1
- import React, { RefObject } from 'react';
1
+ import React from 'react';
2
2
  import { TreeSelectProps, TreeSelectRef } from './typings';
3
- declare const ForwardTreeSelect: <RecordType extends object = any>(props: TreeSelectProps<RecordType> & {
4
- ref?: RefObject<TreeSelectRef>;
5
- }) => React.ReactElement;
6
- type InternalDirectoryTreeType = typeof ForwardTreeSelect;
7
- interface DirectoryTreeSelectInterface extends InternalDirectoryTreeType {
8
- displayName?: string;
9
- defaultProps?: Partial<TreeSelectProps<any>>;
10
- }
11
- declare const TreeSelect: DirectoryTreeSelectInterface;
3
+ declare const TreeSelect: React.ForwardRefExoticComponent<TreeSelectProps & React.RefAttributes<TreeSelectRef>>;
12
4
  export default TreeSelect;