import { TreeTheme } from "../styles/light.js"; import "../styles/index.js"; import { TreeSpinProps } from "./public-types.js"; import { MergedTheme } from "../../_mixins/use-theme.js"; import "../../_mixins/index.js"; import { HTMLAttributes, Ref, VNodeChild } from "vue"; import { CheckStrategy, TreeNode } from "treemate"; import { VirtualListScrollTo } from "vueuc"; //#region src/tree/src/interface.d.ts type Key = string | number; type OnLoad = (node: TreeOption) => Promise; interface TreeOptionBase { key?: Key; label?: string; checkboxDisabled?: boolean; disabled?: boolean; isLeaf?: boolean; children?: TreeOption[]; prefix?: () => VNodeChild; suffix?: () => VNodeChild; } type TreeOption = TreeOptionBase & Record; type TreeOptions = TreeOption[]; interface TreeRenderProps { option: TreeOption; checked: boolean; selected: boolean; } type RenderTreePart = ({ option, checked, selected }: TreeRenderProps) => VNodeChild; type RenderLabel = RenderTreePart; type RenderPrefix = RenderTreePart; type RenderSuffix = RenderTreePart; type TreeOverrideNodeClickBehaviorReturn = 'toggleSelect' | 'toggleExpand' | 'toggleCheck' | 'default' | 'none'; type TreeOverrideNodeClickBehavior = (info: { option: TreeOption; }) => TreeOverrideNodeClickBehaviorReturn; type TreeNodeProps = (info: { option: TreeOption; }) => HTMLAttributes & Record; interface TreeDragInfo { event: DragEvent; node: TreeOption; } interface TreeDropInfo { event: DragEvent; node: TreeOption; dragNode: TreeOption; dropPosition: 'before' | 'inside' | 'after'; } interface InternalDragInfo { event: DragEvent; node: TmNode; } type DropPosition = 'before' | 'inside' | 'after'; type AllowDrop = (info: { dropPosition: DropPosition; node: TreeOption; phase: 'drag' | 'drop'; }) => boolean; interface InternalDropInfo { event: DragEvent; node: TmNode; dropPosition: DropPosition; } type RenderSwitcherIcon = (props: { expanded: boolean; selected: boolean; option: TreeOption; }) => VNodeChild; type CheckOnClick = (option: TreeOption) => boolean; interface TreeInjection { loadingKeysRef: Ref>; highlightKeySetRef: Ref | null>; displayedCheckedKeysRef: Ref; displayedIndeterminateKeysRef: Ref; mergedSelectedKeysRef: Ref; mergedExpandedKeysRef: Ref; fNodesRef: Ref>>; draggableRef: Ref; mergedThemeRef: Ref>; onLoadRef: Ref; blockLineRef: Ref; indentRef: Ref; draggingNodeRef: Ref; droppingMouseNodeRef: Ref; droppingNodeParentRef: Ref; droppingPositionRef: Ref; droppingOffsetLevelRef: Ref; disabledRef: Ref; checkableRef: Ref; cascadeRef: Ref; mergedCheckStrategyRef: Ref; selectableRef: Ref; expandOnClickRef: Ref; pendingNodeKeyRef: Ref; internalScrollableRef: Ref; internalCheckboxFocusableRef: Ref; renderLabelRef: Ref; renderPrefixRef: Ref; renderSuffixRef: Ref; renderSwitcherIconRef: Ref; labelFieldRef: Ref; nodePropsRef: Ref; multipleRef: Ref; checkboxPlacementRef: 'left' | 'right'; internalTreeSelect: boolean; checkOnClickRef: Ref; disabledFieldRef: Ref; showLineRef: Ref; overrideDefaultNodeClickBehaviorRef: Ref; spinPropsRef: Ref; handleSwitcherClick: (node: TreeNode) => void; handleSelect: (node: TreeNode) => void; handleCheck: (node: TreeNode, checked: boolean) => void; handleDragStart: (info: InternalDragInfo) => void; handleDragEnter: (info: InternalDragInfo) => void; handleDragLeave: (info: InternalDragInfo) => void; handleDragEnd: (info: InternalDragInfo) => void; handleDragOver: (info: InternalDragInfo) => void; handleDrop: (info: InternalDropInfo) => void; } declare const treeInjectionKey: import("vue").InjectionKey; type TmNode = TreeNode; interface MotionData { __motion: true; height: number | undefined; mode: 'expand' | 'collapse'; nodes: TmNode[]; } interface InternalTreeInst { handleKeydown: (e: KeyboardEvent) => { enterBehavior: TreeOverrideNodeClickBehaviorReturn | null; }; } interface TreeInst { scrollTo: VirtualListScrollTo; getCheckedData: () => { keys: Key[]; options: Array; }; getIndeterminateData: () => { keys: Key[]; options: Array; }; } type GetChildren = (option: any) => unknown; //#endregion export { AllowDrop, CheckOnClick, DropPosition, GetChildren, InternalDragInfo, InternalDropInfo, InternalTreeInst, Key, MotionData, OnLoad, RenderLabel, RenderPrefix, RenderSuffix, RenderSwitcherIcon, TmNode, TreeDragInfo, TreeDropInfo, TreeInjection, TreeInst, TreeNodeProps, TreeOption, TreeOptionBase, TreeOptions, TreeOverrideNodeClickBehavior, TreeOverrideNodeClickBehaviorReturn, TreeRenderProps, treeInjectionKey };