Skip to content
This repository was archived by the owner on Sep 19, 2024. It is now read-only.

Commit ebc8d53

Browse files
add lib
1 parent 418e57a commit ebc8d53

File tree

4 files changed

+1957
-1
lines changed

4 files changed

+1957
-1
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ coverage
1616
# Build directories (Will be preserved by npm)
1717
.cache
1818
dist
19-
lib
2019
build
2120
style.css
2221
style.css.map

lib/index.d.ts

Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
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

Comments
 (0)