4ad619557faf7f46e5b4e806af109e68d9f23e810217233ec221e372d7a986ca926e5772f3728664c61c39b22f4c136995b5f7c35bd9aac4c52f96b981b89f 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. import type { InjectionKey, Ref, SetupContext } from 'vue';
  2. import type { AllowDragFunction, AllowDropFunction, FakeNode, NodeDropType } from '../tree.type';
  3. import type TreeStore from './tree-store';
  4. import type Node from './node';
  5. interface TreeNode {
  6. node: Node;
  7. $el?: HTMLElement;
  8. }
  9. interface DragOptions {
  10. event: DragEvent;
  11. treeNode: TreeNode;
  12. }
  13. interface Props {
  14. props: {
  15. allowDrag?: AllowDragFunction;
  16. allowDrop?: AllowDropFunction;
  17. };
  18. ctx: SetupContext<string[]>;
  19. el$: Ref<HTMLElement | null>;
  20. dropIndicator$: Ref<HTMLElement | null>;
  21. store: Ref<TreeStore>;
  22. }
  23. export interface DragEvents {
  24. treeNodeDragStart: (options: DragOptions) => void;
  25. treeNodeDragOver: (options: DragOptions) => void;
  26. treeNodeDragEnd: (event: DragEvent) => void;
  27. }
  28. export declare const dragEventsKey: InjectionKey<DragEvents>;
  29. export declare function useDragNodeHandler({ props, ctx, el$, dropIndicator$, store, }: Props): {
  30. dragState: Ref<{
  31. allowDrop: boolean;
  32. dropType: NodeDropType | null;
  33. draggingNode: {
  34. node: {
  35. id: number;
  36. text: string | null;
  37. checked: boolean;
  38. indeterminate: boolean;
  39. data: import("../tree.type").TreeNodeData;
  40. expanded: boolean;
  41. parent: any | null;
  42. visible: boolean;
  43. isCurrent: boolean;
  44. store: {
  45. currentNode: any | null;
  46. currentNodeKey: import("../tree.type").TreeKey | null;
  47. nodesMap: import("../tree.type").TreeStoreNodesMap;
  48. root: any;
  49. data: import("../tree.type").TreeNodeData[];
  50. lazy: boolean;
  51. load?: import("../tree.type").LoadFunction | undefined;
  52. filterNodeMethod?: import("../tree.type").FilterNodeMethodFunction | undefined;
  53. key: import("../tree.type").TreeKey;
  54. defaultCheckedKeys?: import("../tree.type").TreeKey[] | undefined;
  55. checkStrictly: boolean;
  56. defaultExpandedKeys?: import("../tree.type").TreeKey[] | undefined;
  57. autoExpandParent: boolean;
  58. defaultExpandAll: boolean;
  59. checkDescendants: boolean;
  60. props: {
  61. children?: string | undefined;
  62. label?: (string | ((data: import("../tree.type").TreeNodeData, node: Node) => string)) | undefined;
  63. disabled?: (string | ((data: import("../tree.type").TreeNodeData, node: Node) => boolean)) | undefined;
  64. isLeaf?: (string | ((data: import("../tree.type").TreeNodeData, node: Node) => boolean)) | undefined;
  65. class?: ((data: import("../tree.type").TreeNodeData, node: Node) => string | {
  66. [key: string]: boolean;
  67. }) | undefined;
  68. };
  69. initialize: () => void;
  70. filter: (value: import("../tree.type").FilterValue) => void;
  71. setData: (newVal: import("../tree.type").TreeData) => void;
  72. getNode: (data: import("../tree.type").TreeKey | import("../tree.type").TreeNodeData | Node) => Node;
  73. insertBefore: (data: import("../tree.type").TreeNodeData, refData: import("../tree.type").TreeKey | import("../tree.type").TreeNodeData | Node) => void;
  74. insertAfter: (data: import("../tree.type").TreeNodeData, refData: import("../tree.type").TreeKey | import("../tree.type").TreeNodeData | Node) => void;
  75. remove: (data: import("../tree.type").TreeNodeData | Node) => void;
  76. append: (data: import("../tree.type").TreeNodeData, parentData: import("../tree.type").TreeNodeData | import("../tree.type").TreeKey | Node) => void;
  77. _initDefaultCheckedNodes: () => void;
  78. _initDefaultCheckedNode: (node: Node) => void;
  79. setDefaultCheckedKey: (newVal: import("../tree.type").TreeKey[]) => void;
  80. registerNode: (node: Node) => void;
  81. deregisterNode: (node: Node) => void;
  82. getCheckedNodes: (leafOnly?: boolean, includeHalfChecked?: boolean) => import("../tree.type").TreeNodeData[];
  83. getCheckedKeys: (leafOnly?: boolean) => import("../tree.type").TreeKey[];
  84. getHalfCheckedNodes: () => import("../tree.type").TreeNodeData[];
  85. getHalfCheckedKeys: () => import("../tree.type").TreeKey[];
  86. _getAllNodes: () => Node[];
  87. updateChildren: (key: import("../tree.type").TreeKey, data: import("../tree.type").TreeData) => void;
  88. _setCheckedKeys: (key: import("../tree.type").TreeKey, leafOnly: boolean | undefined, checkedKeys: {
  89. [key: string]: boolean;
  90. }) => void;
  91. setCheckedNodes: (array: Node[], leafOnly?: boolean) => void;
  92. setCheckedKeys: (keys: import("../tree.type").TreeKey[], leafOnly?: boolean) => void;
  93. setDefaultExpandedKeys: (keys: import("../tree.type").TreeKey[]) => void;
  94. setChecked: (data: import("../tree.type").TreeKey | import("../tree.type").TreeNodeData, checked: boolean, deep: boolean) => void;
  95. getCurrentNode: () => Node | null;
  96. setCurrentNode: (currentNode: Node) => void;
  97. setUserCurrentNode: (node: Node, shouldAutoExpandParent?: boolean) => void;
  98. setCurrentNodeKey: (key: import("../tree.type").TreeKey | null, shouldAutoExpandParent?: boolean) => void;
  99. };
  100. isLeafByUser: boolean | undefined;
  101. isLeaf: boolean | undefined;
  102. canFocus: boolean;
  103. level: number;
  104. loaded: boolean;
  105. childNodes: any[];
  106. loading: boolean;
  107. initialize: () => void;
  108. setData: (data: import("../tree.type").TreeNodeData) => void;
  109. readonly label: string;
  110. readonly key: import("../tree.type").TreeKey | null | undefined;
  111. readonly disabled: boolean;
  112. readonly nextSibling: any | null;
  113. readonly previousSibling: any | null;
  114. contains: (target: Node, deep?: boolean) => boolean;
  115. remove: () => void;
  116. insertChild: (child?: FakeNode | Node, index?: number, batch?: boolean) => void;
  117. insertBefore: (child: FakeNode | Node, ref: Node) => void;
  118. insertAfter: (child: FakeNode | Node, ref: Node) => void;
  119. removeChild: (child: Node) => void;
  120. removeChildByData: (data: import("../tree.type").TreeNodeData | null) => void;
  121. expand: (callback?: (() => void) | null, expandParent?: boolean) => void;
  122. doCreateChildren: (array: import("../tree.type").TreeNodeData[], defaultProps?: import("../tree.type").TreeNodeLoadedDefaultProps) => void;
  123. collapse: () => void;
  124. shouldLoadData: () => boolean;
  125. updateLeafState: () => void;
  126. setChecked: (value?: boolean | string, deep?: boolean, recursion?: boolean, passValue?: boolean) => void;
  127. getChildren: (forceInit?: boolean) => import("../tree.type").TreeNodeData | import("../tree.type").TreeNodeData[] | null;
  128. updateChildren: () => void;
  129. loadData: (callback: (data?: import("../tree.type").TreeNodeData[]) => void, defaultProps?: import("../tree.type").TreeNodeLoadedDefaultProps) => void;
  130. eachNode: (callback: (node: Node) => void) => void;
  131. reInitChecked: () => void;
  132. };
  133. $el?: HTMLElement | undefined;
  134. } | null;
  135. showDropIndicator: boolean;
  136. dropNode: {
  137. node: {
  138. id: number;
  139. text: string | null;
  140. checked: boolean;
  141. indeterminate: boolean;
  142. data: import("../tree.type").TreeNodeData;
  143. expanded: boolean;
  144. parent: any | null;
  145. visible: boolean;
  146. isCurrent: boolean;
  147. store: {
  148. currentNode: any | null;
  149. currentNodeKey: import("../tree.type").TreeKey | null;
  150. nodesMap: import("../tree.type").TreeStoreNodesMap;
  151. root: any;
  152. data: import("../tree.type").TreeNodeData[];
  153. lazy: boolean;
  154. load?: import("../tree.type").LoadFunction | undefined;
  155. filterNodeMethod?: import("../tree.type").FilterNodeMethodFunction | undefined;
  156. key: import("../tree.type").TreeKey;
  157. defaultCheckedKeys?: import("../tree.type").TreeKey[] | undefined;
  158. checkStrictly: boolean;
  159. defaultExpandedKeys?: import("../tree.type").TreeKey[] | undefined;
  160. autoExpandParent: boolean;
  161. defaultExpandAll: boolean;
  162. checkDescendants: boolean;
  163. props: {
  164. children?: string | undefined;
  165. label?: (string | ((data: import("../tree.type").TreeNodeData, node: Node) => string)) | undefined;
  166. disabled?: (string | ((data: import("../tree.type").TreeNodeData, node: Node) => boolean)) | undefined;
  167. isLeaf?: (string | ((data: import("../tree.type").TreeNodeData, node: Node) => boolean)) | undefined;
  168. class?: ((data: import("../tree.type").TreeNodeData, node: Node) => string | {
  169. [key: string]: boolean;
  170. }) | undefined;
  171. };
  172. initialize: () => void;
  173. filter: (value: import("../tree.type").FilterValue) => void;
  174. setData: (newVal: import("../tree.type").TreeData) => void;
  175. getNode: (data: import("../tree.type").TreeKey | import("../tree.type").TreeNodeData | Node) => Node;
  176. insertBefore: (data: import("../tree.type").TreeNodeData, refData: import("../tree.type").TreeKey | import("../tree.type").TreeNodeData | Node) => void;
  177. insertAfter: (data: import("../tree.type").TreeNodeData, refData: import("../tree.type").TreeKey | import("../tree.type").TreeNodeData | Node) => void;
  178. remove: (data: import("../tree.type").TreeNodeData | Node) => void;
  179. append: (data: import("../tree.type").TreeNodeData, parentData: import("../tree.type").TreeNodeData | import("../tree.type").TreeKey | Node) => void;
  180. _initDefaultCheckedNodes: () => void;
  181. _initDefaultCheckedNode: (node: Node) => void;
  182. setDefaultCheckedKey: (newVal: import("../tree.type").TreeKey[]) => void;
  183. registerNode: (node: Node) => void;
  184. deregisterNode: (node: Node) => void;
  185. getCheckedNodes: (leafOnly?: boolean, includeHalfChecked?: boolean) => import("../tree.type").TreeNodeData[];
  186. getCheckedKeys: (leafOnly?: boolean) => import("../tree.type").TreeKey[];
  187. getHalfCheckedNodes: () => import("../tree.type").TreeNodeData[];
  188. getHalfCheckedKeys: () => import("../tree.type").TreeKey[];
  189. _getAllNodes: () => Node[];
  190. updateChildren: (key: import("../tree.type").TreeKey, data: import("../tree.type").TreeData) => void;
  191. _setCheckedKeys: (key: import("../tree.type").TreeKey, leafOnly: boolean | undefined, checkedKeys: {
  192. [key: string]: boolean;
  193. }) => void;
  194. setCheckedNodes: (array: Node[], leafOnly?: boolean) => void;
  195. setCheckedKeys: (keys: import("../tree.type").TreeKey[], leafOnly?: boolean) => void;
  196. setDefaultExpandedKeys: (keys: import("../tree.type").TreeKey[]) => void;
  197. setChecked: (data: import("../tree.type").TreeKey | import("../tree.type").TreeNodeData, checked: boolean, deep: boolean) => void;
  198. getCurrentNode: () => Node | null;
  199. setCurrentNode: (currentNode: Node) => void;
  200. setUserCurrentNode: (node: Node, shouldAutoExpandParent?: boolean) => void;
  201. setCurrentNodeKey: (key: import("../tree.type").TreeKey | null, shouldAutoExpandParent?: boolean) => void;
  202. };
  203. isLeafByUser: boolean | undefined;
  204. isLeaf: boolean | undefined;
  205. canFocus: boolean;
  206. level: number;
  207. loaded: boolean;
  208. childNodes: any[];
  209. loading: boolean;
  210. initialize: () => void;
  211. setData: (data: import("../tree.type").TreeNodeData) => void;
  212. readonly label: string;
  213. readonly key: import("../tree.type").TreeKey | null | undefined;
  214. readonly disabled: boolean;
  215. readonly nextSibling: any | null;
  216. readonly previousSibling: any | null;
  217. contains: (target: Node, deep?: boolean) => boolean;
  218. remove: () => void;
  219. insertChild: (child?: FakeNode | Node, index?: number, batch?: boolean) => void;
  220. insertBefore: (child: FakeNode | Node, ref: Node) => void;
  221. insertAfter: (child: FakeNode | Node, ref: Node) => void;
  222. removeChild: (child: Node) => void;
  223. removeChildByData: (data: import("../tree.type").TreeNodeData | null) => void;
  224. expand: (callback?: (() => void) | null, expandParent?: boolean) => void;
  225. doCreateChildren: (array: import("../tree.type").TreeNodeData[], defaultProps?: import("../tree.type").TreeNodeLoadedDefaultProps) => void;
  226. collapse: () => void;
  227. shouldLoadData: () => boolean;
  228. updateLeafState: () => void;
  229. setChecked: (value?: boolean | string, deep?: boolean, recursion?: boolean, passValue?: boolean) => void;
  230. getChildren: (forceInit?: boolean) => import("../tree.type").TreeNodeData | import("../tree.type").TreeNodeData[] | null;
  231. updateChildren: () => void;
  232. loadData: (callback: (data?: import("../tree.type").TreeNodeData[]) => void, defaultProps?: import("../tree.type").TreeNodeLoadedDefaultProps) => void;
  233. eachNode: (callback: (node: Node) => void) => void;
  234. reInitChecked: () => void;
  235. };
  236. $el?: HTMLElement | undefined;
  237. } | null;
  238. }>;
  239. };
  240. export {};