944ed00534094ff3f5a500eeca67b1450e403797f23e4b48dc172f0da6cf13eb3d07a5a6b84b8a18134d8bad2491eeda95c164e012e0e4bc9189cc09cc8158 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. import type { Alignment as ScrollStrategy } from 'element-plus/es/components/virtual-list';
  2. import type { SetupContext } from 'vue';
  3. import type { treeEmits } from '../virtual-tree';
  4. import type { CheckboxValueType } from 'element-plus/es/components/checkbox';
  5. import type { Tree, TreeData, TreeKey, TreeNode, TreeNodeData, TreeProps } from '../types';
  6. export declare function useTree(props: TreeProps, emit: SetupContext<typeof treeEmits>['emit']): {
  7. tree: import("vue").ShallowRef<Tree | undefined>;
  8. flattenTree: import("vue").ComputedRef<TreeNode[]>;
  9. isNotEmpty: import("vue").ComputedRef<boolean>;
  10. listRef: import("vue").Ref<import("vue").DefineComponent<{
  11. readonly className: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
  12. readonly containerElement: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string | Element) | (() => string | Element) | ((new (...args: any[]) => string | Element) | (() => string | Element))[], unknown, unknown, "div", boolean>;
  13. readonly data: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => any[]) | (() => any[]) | ((new (...args: any[]) => any[]) | (() => any[]))[], unknown, unknown, () => [], boolean>;
  14. readonly direction: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "ltr" | "rtl", never, "ltr", false>;
  15. readonly height: {
  16. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>>;
  17. readonly required: true;
  18. readonly validator: ((val: unknown) => boolean) | undefined;
  19. __epPropKey: true;
  20. };
  21. readonly innerElement: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, ObjectConstructor], unknown, unknown, "div", boolean>;
  22. readonly style: {
  23. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue) | ((new (...args: any[]) => string | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue))[], unknown, unknown>>;
  24. readonly required: false;
  25. readonly validator: ((val: unknown) => boolean) | undefined;
  26. __epPropKey: true;
  27. };
  28. readonly useIsScrolling: BooleanConstructor;
  29. readonly width: {
  30. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<readonly [NumberConstructor, StringConstructor], unknown, unknown>>;
  31. readonly required: false;
  32. readonly validator: ((val: unknown) => boolean) | undefined;
  33. __epPropKey: true;
  34. };
  35. readonly perfMode: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  36. readonly scrollbarAlwaysOn: BooleanConstructor;
  37. readonly cache: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 2, false>;
  38. readonly estimatedItemSize: {
  39. readonly type: import("vue").PropType<number>;
  40. readonly required: false;
  41. readonly validator: ((val: unknown) => boolean) | undefined;
  42. __epPropKey: true;
  43. };
  44. readonly layout: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "horizontal" | "vertical", never, "vertical", false>;
  45. readonly initScrollOffset: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 0, false>;
  46. readonly total: {
  47. readonly type: import("vue").PropType<number>;
  48. readonly required: true;
  49. readonly validator: ((val: unknown) => boolean) | undefined;
  50. __epPropKey: true;
  51. };
  52. readonly itemSize: {
  53. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => number | import("element-plus/es/components/virtual-list").ItemSize) | (() => number | import("element-plus/es/components/virtual-list").ItemSize) | ((new (...args: any[]) => number | import("element-plus/es/components/virtual-list").ItemSize) | (() => number | import("element-plus/es/components/virtual-list").ItemSize))[], never, never>>;
  54. readonly required: true;
  55. readonly validator: ((val: unknown) => boolean) | undefined;
  56. __epPropKey: true;
  57. };
  58. }, {
  59. ns: {
  60. namespace: import("vue").ComputedRef<string>;
  61. b: (blockSuffix?: string) => string;
  62. e: (element?: string) => string;
  63. m: (modifier?: string) => string;
  64. be: (blockSuffix?: string, element?: string) => string;
  65. em: (element?: string, modifier?: string) => string;
  66. bm: (blockSuffix?: string, modifier?: string) => string;
  67. bem: (blockSuffix?: string, element?: string, modifier?: string) => string;
  68. is: {
  69. (name: string, state: boolean | undefined): string;
  70. (name: string): string;
  71. };
  72. cssVar: (object: Record<string, string>) => Record<string, string>;
  73. cssVarName: (name: string) => string;
  74. cssVarBlock: (object: Record<string, string>) => Record<string, string>;
  75. cssVarBlockName: (name: string) => string;
  76. };
  77. clientSize: import("vue").ComputedRef<string | number | undefined>;
  78. estimatedTotalSize: import("vue").ComputedRef<number>;
  79. windowStyle: import("vue").ComputedRef<(string | import("vue").CSSProperties | import("vue").StyleValue[] | {
  80. [x: string]: string;
  81. position: string;
  82. WebkitOverflowScrolling: string;
  83. willChange: string;
  84. } | undefined)[]>;
  85. windowRef: import("vue").Ref<HTMLElement | undefined>;
  86. innerRef: import("vue").Ref<HTMLElement | undefined>;
  87. innerStyle: import("vue").ComputedRef<{
  88. height: string;
  89. pointerEvents: string | undefined;
  90. width: string;
  91. }>;
  92. itemsToRender: import("vue").ComputedRef<number[]>;
  93. scrollbarRef: import("vue").Ref<any>;
  94. states: import("vue").Ref<{
  95. isScrolling: boolean;
  96. scrollDir: string;
  97. scrollOffset: number;
  98. updateRequested: boolean;
  99. isScrollbarDragging: boolean;
  100. scrollbarAlwaysOn: boolean;
  101. }>;
  102. getItemStyle: (idx: number) => import("vue").CSSProperties;
  103. onScroll: (e: Event) => void;
  104. onScrollbarScroll: (distanceToGo: number, totalSteps: number) => void;
  105. onWheel: (e: WheelEvent) => void;
  106. scrollTo: (offset: number) => void;
  107. scrollToItem: (idx: number, alignment?: ScrollStrategy) => void;
  108. resetScrollTop: () => void;
  109. }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "itemRendered")[], "scroll" | "itemRendered", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
  110. readonly className: import("element-plus/es/utils").EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
  111. readonly containerElement: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => string | Element) | (() => string | Element) | ((new (...args: any[]) => string | Element) | (() => string | Element))[], unknown, unknown, "div", boolean>;
  112. readonly data: import("element-plus/es/utils").EpPropFinalized<(new (...args: any[]) => any[]) | (() => any[]) | ((new (...args: any[]) => any[]) | (() => any[]))[], unknown, unknown, () => [], boolean>;
  113. readonly direction: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "ltr" | "rtl", never, "ltr", false>;
  114. readonly height: {
  115. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown>>;
  116. readonly required: true;
  117. readonly validator: ((val: unknown) => boolean) | undefined;
  118. __epPropKey: true;
  119. };
  120. readonly innerElement: import("element-plus/es/utils").EpPropFinalized<readonly [StringConstructor, ObjectConstructor], unknown, unknown, "div", boolean>;
  121. readonly style: {
  122. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue) | ((new (...args: any[]) => string | import("vue").CSSProperties | import("vue").StyleValue[]) | (() => import("vue").StyleValue))[], unknown, unknown>>;
  123. readonly required: false;
  124. readonly validator: ((val: unknown) => boolean) | undefined;
  125. __epPropKey: true;
  126. };
  127. readonly useIsScrolling: BooleanConstructor;
  128. readonly width: {
  129. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<readonly [NumberConstructor, StringConstructor], unknown, unknown>>;
  130. readonly required: false;
  131. readonly validator: ((val: unknown) => boolean) | undefined;
  132. __epPropKey: true;
  133. };
  134. readonly perfMode: import("element-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
  135. readonly scrollbarAlwaysOn: BooleanConstructor;
  136. readonly cache: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 2, false>;
  137. readonly estimatedItemSize: {
  138. readonly type: import("vue").PropType<number>;
  139. readonly required: false;
  140. readonly validator: ((val: unknown) => boolean) | undefined;
  141. __epPropKey: true;
  142. };
  143. readonly layout: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "horizontal" | "vertical", never, "vertical", false>;
  144. readonly initScrollOffset: import("element-plus/es/utils").EpPropFinalized<NumberConstructor, never, never, 0, false>;
  145. readonly total: {
  146. readonly type: import("vue").PropType<number>;
  147. readonly required: true;
  148. readonly validator: ((val: unknown) => boolean) | undefined;
  149. __epPropKey: true;
  150. };
  151. readonly itemSize: {
  152. readonly type: import("vue").PropType<import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => number | import("element-plus/es/components/virtual-list").ItemSize) | (() => number | import("element-plus/es/components/virtual-list").ItemSize) | ((new (...args: any[]) => number | import("element-plus/es/components/virtual-list").ItemSize) | (() => number | import("element-plus/es/components/virtual-list").ItemSize))[], never, never>>;
  153. readonly required: true;
  154. readonly validator: ((val: unknown) => boolean) | undefined;
  155. __epPropKey: true;
  156. };
  157. }>> & {
  158. onScroll?: ((...args: any[]) => any) | undefined;
  159. onItemRendered?: ((...args: any[]) => any) | undefined;
  160. }, {
  161. readonly data: any[];
  162. readonly direction: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "ltr" | "rtl", never>;
  163. readonly layout: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "horizontal" | "vertical", never>;
  164. readonly className: string;
  165. readonly containerElement: import("element-plus/es/utils").EpPropMergeType<(new (...args: any[]) => string | Element) | (() => string | Element) | ((new (...args: any[]) => string | Element) | (() => string | Element))[], unknown, unknown>;
  166. readonly innerElement: import("element-plus/es/utils").EpPropMergeType<readonly [StringConstructor, ObjectConstructor], unknown, unknown>;
  167. readonly perfMode: import("element-plus/es/utils").EpPropMergeType<BooleanConstructor, unknown, unknown>;
  168. readonly useIsScrolling: boolean;
  169. readonly scrollbarAlwaysOn: boolean;
  170. readonly cache: number;
  171. readonly initScrollOffset: number;
  172. }> | undefined>;
  173. getKey: (node: TreeNodeData) => TreeKey;
  174. getChildren: (node: TreeNodeData) => TreeNodeData[];
  175. toggleExpand: (node: TreeNode) => void;
  176. toggleCheckbox: (node: TreeNode, isChecked: CheckboxValueType, nodeClick?: boolean, immediateUpdate?: boolean) => void;
  177. isChecked: (node: TreeNode) => boolean;
  178. isIndeterminate: (node: TreeNode) => boolean;
  179. isDisabled: (node: TreeNode) => boolean;
  180. isCurrent: (node: TreeNode) => boolean;
  181. isForceHiddenExpandIcon: (node: TreeNode) => boolean;
  182. handleNodeClick: (node: TreeNode, e: MouseEvent) => void;
  183. handleNodeDrop: (node: TreeNode, e: DragEvent) => void;
  184. handleNodeCheck: (node: TreeNode, checked: CheckboxValueType) => void;
  185. getCurrentNode: () => TreeNodeData | undefined;
  186. getCurrentKey: () => TreeKey | undefined;
  187. setCurrentKey: (key: TreeKey) => void;
  188. getCheckedKeys: (leafOnly?: boolean) => TreeKey[];
  189. getCheckedNodes: (leafOnly?: boolean) => TreeNodeData[];
  190. getHalfCheckedKeys: () => TreeKey[];
  191. getHalfCheckedNodes: () => TreeNodeData[];
  192. setChecked: (key: TreeKey, isChecked: boolean) => void;
  193. setCheckedKeys: (keys: TreeKey[]) => void;
  194. filter: (query: string) => void;
  195. setData: (data: TreeData) => void;
  196. getNode: (data: TreeKey | TreeNodeData) => TreeNode | undefined;
  197. expandNode: (node: TreeNode) => void;
  198. collapseNode: (node: TreeNode) => void;
  199. setExpandedKeys: (keys: TreeKey[]) => void;
  200. scrollToNode: (key: TreeKey, strategy?: ScrollStrategy) => void;
  201. scrollTo: (offset: number) => void;
  202. };