@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
TypeScript
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;