UNPKG

@jalez/react-flow-automated-layout

Version:

A React library for automated layout of nested node graphs with parent-child relationships using React Flow

51 lines (50 loc) 2.64 kB
import { Node } from '@xyflow/react'; import { LayoutAlgorithm, LayoutDirection, LayoutEngine, ParentResizingOptions } from '../context/LayoutContext'; interface UseLayoutStateProps { initialDirection?: LayoutDirection; initialAlgorithm?: LayoutAlgorithm; initialAutoLayout?: boolean; initialPadding?: number; initialSpacing?: { node?: number; layer?: number; }; initialNodeDimensions?: { width?: number; height?: number; }; initialParentResizingOptions?: Partial<ParentResizingOptions>; includeHidden?: boolean; layoutEngines?: Record<string, LayoutEngine>; } export declare function useLayoutState({ initialDirection, initialAlgorithm, initialAutoLayout, initialPadding, initialSpacing, initialNodeDimensions, initialParentResizingOptions, includeHidden, layoutEngines: customEngines, }: UseLayoutStateProps): { direction: LayoutDirection; algorithm: LayoutAlgorithm; autoLayout: boolean; layoutInProgress: boolean; layoutHidden: boolean; layoutEngines: Record<string, LayoutEngine>; layoutEngineOptions: Record<string, any>; padding: number; nodeSpacing: number; layerSpacing: number; nodeWidth: number; nodeHeight: number; parentResizingOptions: ParentResizingOptions; selectedNodes: Node[]; setDirection: import("react").Dispatch<import("react").SetStateAction<LayoutDirection>>; setAlgorithm: import("react").Dispatch<import("react").SetStateAction<LayoutAlgorithm>>; setAutoLayout: import("react").Dispatch<import("react").SetStateAction<boolean>>; setLayoutInProgress: import("react").Dispatch<import("react").SetStateAction<boolean>>; setLayoutHidden: import("react").Dispatch<import("react").SetStateAction<boolean>>; setLayoutEngines: import("react").Dispatch<import("react").SetStateAction<Record<string, LayoutEngine>>>; setLayoutEngineOptions: import("react").Dispatch<import("react").SetStateAction<Record<string, any>>>; setPadding: import("react").Dispatch<import("react").SetStateAction<number>>; setNodeSpacing: import("react").Dispatch<import("react").SetStateAction<number>>; setLayerSpacing: import("react").Dispatch<import("react").SetStateAction<number>>; setNodeWidth: import("react").Dispatch<import("react").SetStateAction<number>>; setNodeHeight: import("react").Dispatch<import("react").SetStateAction<number>>; setParentResizingOptionsState: import("react").Dispatch<import("react").SetStateAction<ParentResizingOptions>>; setSelectedNodes: import("react").Dispatch<import("react").SetStateAction<Node[]>>; }; export {};