|
| 1 | +import React, { ReactNode } from 'react'; |
| 2 | +import { VListHandle } from 'virtua'; |
| 3 | + |
| 4 | +interface GetTreeItemChildren { |
| 5 | + done: (children: TreeItem[]) => void; |
| 6 | + node: TreeItem; |
| 7 | + path: number[]; |
| 8 | + lowerSiblingCounts: number[]; |
| 9 | + treeIndex: number; |
| 10 | +} |
| 11 | +type GetTreeItemChildrenFn = (data: GetTreeItemChildren) => void; |
| 12 | +type GetNodeKeyFunction = (data: TreeIndex & TreeNode) => string | number; |
| 13 | +interface TreeItem { |
| 14 | + title?: ReactNode | undefined; |
| 15 | + subtitle?: ReactNode | undefined; |
| 16 | + expanded?: boolean | undefined; |
| 17 | + children?: TreeItem[] | GetTreeItemChildrenFn | undefined; |
| 18 | + [x: string]: any; |
| 19 | +} |
| 20 | +interface TreeNode { |
| 21 | + node: TreeItem; |
| 22 | +} |
| 23 | +interface TreePath { |
| 24 | + path: number[]; |
| 25 | +} |
| 26 | +interface TreeIndex { |
| 27 | + treeIndex: number; |
| 28 | +} |
| 29 | +interface FullTree { |
| 30 | + treeData: TreeItem[] | undefined; |
| 31 | +} |
| 32 | +interface NodeData extends TreeNode, TreePath, TreeIndex { |
| 33 | +} |
| 34 | +interface SearchData extends NodeData { |
| 35 | + searchQuery: string; |
| 36 | +} |
| 37 | +declare const defaultGetNodeKey: ({ treeIndex }: TreeIndex) => number; |
| 38 | +declare const defaultSearchMethod: ({ node, path, treeIndex, searchQuery, }: SearchData) => boolean; |
| 39 | + |
| 40 | +type WalkAndMapFunctionParameters = FullTree & { |
| 41 | + getNodeKey: GetNodeKeyFunction; |
| 42 | + callback: Function; |
| 43 | + ignoreCollapsed?: boolean | undefined; |
| 44 | +}; |
| 45 | +interface FlatDataItem extends TreeNode, TreePath { |
| 46 | + lowerSiblingCounts: number[]; |
| 47 | + parentNode: TreeItem; |
| 48 | +} |
| 49 | +declare const getDescendantCount: ({ node, ignoreCollapsed, }: TreeNode & { |
| 50 | + ignoreCollapsed?: boolean | undefined; |
| 51 | +}) => number; |
| 52 | +declare const getVisibleNodeCount: ({ treeData }: FullTree) => number; |
| 53 | +declare const getVisibleNodeInfoAtIndex: ({ treeData, index: targetIndex, getNodeKey, }: FullTree & { |
| 54 | + index: number; |
| 55 | + getNodeKey: GetNodeKeyFunction; |
| 56 | +}) => (TreeNode & TreePath & { |
| 57 | + lowerSiblingCounts: number[]; |
| 58 | +}) | null; |
| 59 | +declare const walk: ({ treeData, getNodeKey, callback, ignoreCollapsed, }: WalkAndMapFunctionParameters) => void; |
| 60 | +declare const map: ({ treeData, getNodeKey, callback, ignoreCollapsed, }: WalkAndMapFunctionParameters) => TreeItem[]; |
| 61 | +declare const toggleExpandedForAll: ({ treeData, expanded, }: FullTree & { |
| 62 | + expanded?: boolean | undefined; |
| 63 | +}) => TreeItem[]; |
| 64 | +declare const changeNodeAtPath: ({ treeData, path, newNode, getNodeKey, ignoreCollapsed, }: FullTree & TreePath & { |
| 65 | + newNode: Function | any; |
| 66 | + getNodeKey: GetNodeKeyFunction; |
| 67 | + ignoreCollapsed?: boolean | undefined; |
| 68 | +}) => TreeItem[]; |
| 69 | +declare const removeNodeAtPath: ({ treeData, path, getNodeKey, ignoreCollapsed, }: FullTree & TreePath & { |
| 70 | + getNodeKey: GetNodeKeyFunction; |
| 71 | + ignoreCollapsed?: boolean | undefined; |
| 72 | +}) => TreeItem[]; |
| 73 | +declare const removeNode: ({ treeData, path, getNodeKey, ignoreCollapsed, }: FullTree & TreePath & { |
| 74 | + getNodeKey: GetNodeKeyFunction; |
| 75 | + ignoreCollapsed?: boolean | undefined; |
| 76 | +}) => (FullTree & TreeNode & TreeIndex) | undefined; |
| 77 | +declare const getNodeAtPath: ({ treeData, path, getNodeKey, ignoreCollapsed, }: FullTree & TreePath & { |
| 78 | + getNodeKey: GetNodeKeyFunction; |
| 79 | + ignoreCollapsed?: boolean | undefined; |
| 80 | +}) => (TreeNode & TreeIndex) | null; |
| 81 | +declare const addNodeUnderParent: ({ treeData, newNode, parentKey, getNodeKey, ignoreCollapsed, expandParent, addAsFirstChild, }: FullTree & { |
| 82 | + newNode: TreeItem; |
| 83 | + parentKey?: number | string | undefined | null; |
| 84 | + getNodeKey: GetNodeKeyFunction; |
| 85 | + ignoreCollapsed?: boolean | undefined; |
| 86 | + expandParent?: boolean | undefined; |
| 87 | + addAsFirstChild?: boolean | undefined; |
| 88 | +}) => FullTree & TreeIndex; |
| 89 | +declare const insertNode: ({ treeData, depth: targetDepth, minimumTreeIndex, newNode, getNodeKey, ignoreCollapsed, expandParent, }: FullTree & { |
| 90 | + depth: number; |
| 91 | + newNode: TreeItem; |
| 92 | + minimumTreeIndex: number; |
| 93 | + ignoreCollapsed?: boolean | undefined; |
| 94 | + expandParent?: boolean | undefined; |
| 95 | + getNodeKey: GetNodeKeyFunction; |
| 96 | +}) => FullTree & TreeIndex & TreePath & { |
| 97 | + parentNode: TreeItem | null; |
| 98 | +}; |
| 99 | +declare const getFlatDataFromTree: ({ treeData, getNodeKey, ignoreCollapsed, }: FullTree & { |
| 100 | + getNodeKey: GetNodeKeyFunction; |
| 101 | + ignoreCollapsed?: boolean | undefined; |
| 102 | +}) => FlatDataItem[]; |
| 103 | +declare const getTreeFromFlatData: ({ flatData, getKey, getParentKey, rootKey, }: { |
| 104 | + flatData: any; |
| 105 | + getKey: (node: any) => string; |
| 106 | + getParentKey: (node: any) => string; |
| 107 | + rootKey: string | null; |
| 108 | +}) => any; |
| 109 | +declare const isDescendant: (older: TreeItem, younger: TreeItem) => boolean; |
| 110 | +declare const getDepth: (node: TreeItem, depth?: number) => number; |
| 111 | +declare const find: ({ getNodeKey, treeData, searchQuery, searchMethod, searchFocusOffset, expandAllMatchPaths, expandFocusMatchPaths, }: FullTree & { |
| 112 | + getNodeKey: GetNodeKeyFunction; |
| 113 | + searchQuery?: string | number | undefined; |
| 114 | + searchMethod: (data: SearchData) => boolean; |
| 115 | + searchFocusOffset?: number | undefined; |
| 116 | + expandAllMatchPaths?: boolean | undefined; |
| 117 | + expandFocusMatchPaths?: boolean | undefined; |
| 118 | +}) => { |
| 119 | + matches: NodeData[]; |
| 120 | +} & FullTree; |
| 121 | + |
| 122 | +type SearchParams = { |
| 123 | + node: any; |
| 124 | + path: number[]; |
| 125 | + treeIndex: number; |
| 126 | + searchQuery: string; |
| 127 | +}; |
| 128 | +type SearchFinishCallbackParams = { |
| 129 | + node: any; |
| 130 | + path: number[]; |
| 131 | + treeIndex: number; |
| 132 | +}[]; |
| 133 | +type GenerateNodePropsParams = { |
| 134 | + node: any; |
| 135 | + path: number[]; |
| 136 | + treeIndex: number; |
| 137 | + lowerSiblingCounts: number[]; |
| 138 | + isSearchMatch: boolean; |
| 139 | + isSearchFocus: boolean; |
| 140 | +}; |
| 141 | +type ShouldCopyOnOutsideDropParams = { |
| 142 | + node: any; |
| 143 | + prevPath: number[]; |
| 144 | + prevTreeIndex: number; |
| 145 | +}; |
| 146 | +type OnMoveNodeParams = { |
| 147 | + treeData: any[]; |
| 148 | + node: any; |
| 149 | + nextParentNode: any; |
| 150 | + prevPath: number[]; |
| 151 | + prevTreeIndex: number; |
| 152 | + nextPath: number[]; |
| 153 | + nextTreeIndex: number; |
| 154 | +}; |
| 155 | +type CanDropParams = { |
| 156 | + node: any; |
| 157 | + prevPath: number[]; |
| 158 | + prevParent: any; |
| 159 | + prevTreeIndex: number; |
| 160 | + nextPath: number[]; |
| 161 | + nextParent: any; |
| 162 | + nextTreeIndex: number; |
| 163 | +}; |
| 164 | +type OnVisibilityToggleParams = { |
| 165 | + treeData: any[]; |
| 166 | + node: any; |
| 167 | + expanded: boolean; |
| 168 | + path: number[]; |
| 169 | +}; |
| 170 | +type OnDragStateChangedParams = { |
| 171 | + isDragging: boolean; |
| 172 | + draggedNode: any; |
| 173 | +}; |
| 174 | +type ChangeAction = 'move-iternal' | 'move-external' | 'expand' | 'collapse' | 'search' | 'lazy-loaded'; |
| 175 | +type ReactSortableTreeProps = { |
| 176 | + dragDropManager?: { |
| 177 | + getMonitor: () => unknown; |
| 178 | + }; |
| 179 | + treeData: any[]; |
| 180 | + style?: any; |
| 181 | + className?: string; |
| 182 | + virtuaRef?: React.Ref<VListHandle>; |
| 183 | + innerStyle?: any; |
| 184 | + slideRegionSize?: number; |
| 185 | + scaffoldBlockPxWidth?: number; |
| 186 | + maxDepth?: number; |
| 187 | + searchMethod?: (params: SearchParams) => boolean; |
| 188 | + searchQuery?: string; |
| 189 | + searchFocusOffset?: number; |
| 190 | + searchFinishCallback?: (params: SearchFinishCallbackParams) => void; |
| 191 | + generateNodeProps?: (params: GenerateNodePropsParams) => any; |
| 192 | + treeNodeRenderer?: any; |
| 193 | + nodeContentRenderer?: any; |
| 194 | + placeholderRenderer?: any; |
| 195 | + theme?: { |
| 196 | + style: any; |
| 197 | + innerStyle: any; |
| 198 | + scaffoldBlockPxWidth: number; |
| 199 | + slideRegionSize: number; |
| 200 | + treeNodeRenderer: any; |
| 201 | + nodeContentRenderer: any; |
| 202 | + placeholderRenderer: any; |
| 203 | + }; |
| 204 | + rowHeight?: number | ((treeIndex: number, node: any, path: any[]) => number); |
| 205 | + getNodeKey?: (node: any) => string; |
| 206 | + onChange: (treeData: any, event: { |
| 207 | + changeActionType: ChangeAction; |
| 208 | + }) => void; |
| 209 | + onMoveNode?: (params: OnMoveNodeParams) => void; |
| 210 | + canDrag?: (params: GenerateNodePropsParams) => boolean; |
| 211 | + canDrop?: (params: CanDropParams) => boolean; |
| 212 | + canNodeHaveChildren?: (node: any) => boolean; |
| 213 | + shouldCopyOnOutsideDrop?: ((params: ShouldCopyOnOutsideDropParams) => boolean) | boolean; |
| 214 | + onVisibilityToggle?: (params: OnVisibilityToggleParams) => void; |
| 215 | + dndType?: string; |
| 216 | + onDragStateChanged?: (params: OnDragStateChangedParams) => void; |
| 217 | + onlyExpandSearchedNodes?: boolean; |
| 218 | + rowDirection?: string; |
| 219 | + debugMode?: boolean; |
| 220 | + overscan?: number | { |
| 221 | + main: number; |
| 222 | + reverse: number; |
| 223 | + }; |
| 224 | +}; |
| 225 | +declare const SortableTreeWithoutDndContext: (props: ReactSortableTreeProps) => React.JSX.Element; |
| 226 | +declare const SortableTree: (props: ReactSortableTreeProps) => React.JSX.Element; |
| 227 | + |
| 228 | +export { type FlatDataItem, type FullTree, type GetNodeKeyFunction, type GetTreeItemChildren, type GetTreeItemChildrenFn, type NodeData, type SearchData, SortableTree, SortableTreeWithoutDndContext, type TreeIndex, type TreeItem, type TreeNode, type TreePath, type WalkAndMapFunctionParameters, addNodeUnderParent, changeNodeAtPath, defaultGetNodeKey, defaultSearchMethod, find, getDepth, getDescendantCount, getFlatDataFromTree, getNodeAtPath, getTreeFromFlatData, getVisibleNodeCount, getVisibleNodeInfoAtIndex, insertNode, isDescendant, map, removeNode, removeNodeAtPath, toggleExpandedForAll, walk }; |
0 commit comments