UNPKG

react-d3-tree

Version:

React component to create interactive D3 tree hierarchies

60 lines (59 loc) 2.39 kB
import React, { SyntheticEvent } from 'react'; import { HierarchyPointNode } from 'd3-hierarchy'; import { Orientation, Point, TreeNodeDatum, RawNodeDatum, RenderCustomNodeElementFn, AddChildrenFunction } from '../types/common.js'; type NodeEventHandler = (hierarchyPointNode: HierarchyPointNode<TreeNodeDatum>, evt: SyntheticEvent) => void; type NodeProps = { data: TreeNodeDatum; position: Point; hierarchyPointNode: HierarchyPointNode<TreeNodeDatum>; parent: HierarchyPointNode<TreeNodeDatum> | null; nodeClassName: string; nodeSize: { x: number; y: number; }; orientation: Orientation; enableLegacyTransitions: boolean; transitionDuration: number; renderCustomNodeElement: RenderCustomNodeElementFn; onNodeToggle: (nodeId: string) => void; onNodeClick: NodeEventHandler; onNodeMouseOver: NodeEventHandler; onNodeMouseOut: NodeEventHandler; subscriptions: object; centerNode: (hierarchyPointNode: HierarchyPointNode<TreeNodeDatum>) => void; handleAddChildrenToNode: (nodeId: string, children: RawNodeDatum[]) => void; }; type NodeState = { transform: string; initialStyle: { opacity: number; }; wasClicked: boolean; }; export default class Node extends React.Component<NodeProps, NodeState> { private nodeRef; state: { transform: string; initialStyle: { opacity: number; }; wasClicked: boolean; }; componentDidMount(): void; componentDidUpdate(): void; shouldComponentUpdate(nextProps: NodeProps, nextState: NodeState): boolean; shouldNodeTransform: (ownProps: NodeProps, nextProps: NodeProps, ownState: NodeState, nextState: NodeState) => boolean; setTransform(position: NodeProps['position'], parent: NodeProps['parent'], orientation: NodeProps['orientation'], shouldTranslateToOrigin?: boolean): string; applyTransform(transform: string, transitionDuration: NodeProps['transitionDuration'], opacity?: number, done?: () => void): void; commitTransform(): void; renderNodeElement: () => JSX.Element; handleNodeToggle: () => void; handleOnClick: (evt: any) => void; handleOnMouseOver: (evt: any) => void; handleOnMouseOut: (evt: any) => void; handleAddChildren: AddChildrenFunction; componentWillLeave(done: any): void; render(): JSX.Element; } export {};