UNPKG

@reggev/react-hierarchy

Version:

> A native React hierarchy chart > this project uses d3 for layout, react-spring for animations & react-svg-pan-zoom to manage the svg container.

47 lines (46 loc) 1.49 kB
import React from 'react'; import { HierarchyNode } from 'd3-hierarchy'; import { SpringConfig } from '@react-spring/web'; export declare type TreeNode<T> = HierarchyNode<T> & { x: number; y: number; }; declare const defaultPadding: { bottom: number; top: number; left: number; right: number; }; export declare type ComponentProps<T> = { data: T; onClick: (id: string) => void; id: string; toggleCollapse: (id: string) => void; hasChildren: boolean; isExpanded: boolean; }; export declare type HierarchyProps<T> = { data: T[]; Component: React.ComponentType<ComponentProps<T>>; onClick?: (id: string) => void; boxStyle?: string; nodeHeight?: number; nodeWidth?: number; nodeSpacing?: number; springConfig?: SpringConfig; nodeIdField: keyof T; parentIdField: keyof T; maxInitialDepth?: number; padding?: Partial<typeof defaultPadding>; height: number; width: number; }; export declare type RefProps = { collapseAll: () => void; zoomExtends: () => void; }; declare module 'react' { function forwardRef<T, P = unknown>(render: (props: P, ref: React.Ref<T>) => React.ReactElement | null): (props: P & React.RefAttributes<T>) => React.ReactElement | null; } declare const _default: <T extends Record<string, unknown>>(props: HierarchyProps<T> & React.RefAttributes<RefProps>) => React.ReactElement<any, string | React.JSXElementConstructor<any>> | null; export default _default;