@mentor-apm/react-sortable-tree
Version:
Drag-and-drop sortable component for nested data and hierarchies
105 lines (104 loc) • 3.07 kB
TypeScript
/// <reference types="react" />
import './react-sortable-tree.css';
declare type SearchParams = {
node: any;
path: number[];
treeIndex: number;
searchQuery: string;
};
declare type SearchFinishCallbackParams = {
node: any;
path: number[];
treeIndex: number;
}[];
declare type GenerateNodePropsParams = {
node: any;
path: number[];
treeIndex: number;
lowerSiblingCounts: number[];
isSearchMatch: boolean;
isSearchFocus: boolean;
};
declare type ShouldCopyOnOutsideDropParams = {
node: any;
prevPath: number[];
prevTreeIndex: number;
};
declare type OnMoveNodeParams = {
treeData: any[];
node: any;
nextParentNode: any;
prevPath: number[];
prevTreeIndex: number;
nextPath: number[];
nextTreeIndex: number;
};
declare type CanDropParams = {
node: any;
prevPath: number[];
prevParent: any;
prevTreeIndex: number;
nextPath: number[];
nextParent: any;
nextTreeIndex: number;
};
declare type OnVisibilityToggleParams = {
treeData: any[];
node: any;
expanded: boolean;
path: number[];
};
declare type OnDragStateChangedParams = {
isDragging: boolean;
draggedNode: any;
};
export declare type ReactSortableTreeProps = {
dragDropManager?: {
getMonitor: () => unknown;
};
treeData: any[];
style?: any;
className?: string;
innerStyle?: any;
slideRegionSize?: number;
scaffoldBlockPxWidth?: number;
maxDepth?: number;
searchMethod?: (params: SearchParams) => boolean;
searchQuery?: string;
searchFocusOffset?: number;
searchFinishCallback?: (params: SearchFinishCallbackParams) => void;
generateNodeProps?: (params: GenerateNodePropsParams) => any;
treeNodeRenderer?: any;
nodeContentRenderer?: any;
placeholderRenderer?: any;
theme?: {
style: any;
innerStyle: any;
scaffoldBlockPxWidth: number;
slideRegionSize: number;
treeNodeRenderer: any;
nodeContentRenderer: any;
placeholderRenderer: any;
};
rowHeight?: number | ((treeIndex: number, node: any, path: any[]) => number);
getNodeKey?: (node: any) => string;
onChange: (treeData: any) => void;
onMoveNode?: (params: OnMoveNodeParams) => void;
canDrag?: (params: GenerateNodePropsParams) => boolean;
canDrop?: (params: CanDropParams) => boolean;
canNodeHaveChildren?: (node: any) => boolean;
shouldCopyOnOutsideDrop?: (params: ShouldCopyOnOutsideDropParams) => boolean;
onVisibilityToggle?: (params: OnVisibilityToggleParams) => void;
dndType?: string;
onDragStateChanged?: (params: OnDragStateChangedParams) => void;
onlyExpandSearchedNodes?: boolean;
debugMode?: boolean;
overscan?: number | {
main: number;
reverse: number;
};
};
declare const SortableTreeWithoutDndContext: (props: ReactSortableTreeProps) => JSX.Element;
declare const SortableTree: (props: ReactSortableTreeProps) => JSX.Element;
export { SortableTreeWithoutDndContext };
export default SortableTree;