UNPKG

@nu-art/thunder

Version:

Thunder - React & Typescript based frontend framework

50 lines (49 loc) 1.79 kB
import * as React from 'react'; export declare type NodeProps = { item: object | string | number; path: string; name: string; expanded: boolean; expandToggler: (e: React.MouseEvent) => void; onClick: (e: React.MouseEvent) => void; onDoubleClick: (e: React.MouseEvent) => void; parentArray?: boolean; }; export declare type TreeNodeAdjuster = (obj: object) => { data: object; deltaPath?: string; }; export declare type PropertyFilter = <T extends object>(obj: T, key: keyof T) => any; declare type Props = { id: string; root: object; hideRootElement?: boolean; onNodeClicked?: (path: string, id: string) => void; onNodeDoubleClicked?: (path: string, id: string) => void; renderer?: (props: NodeProps) => any; indentPx?: number; callBackState?: (key: string, value: any, level: number) => boolean; nodeAdjuster?: TreeNodeAdjuster; propertyFilter?: PropertyFilter; nodesState?: TreeNodeState; }; export declare type TreeNodeState = { [path: string]: boolean; }; declare type TreeState = { expanded: TreeNodeState; }; export declare const DefaultTreeRenderer: (props: NodeProps) => JSX.Element; export declare class Tree extends React.Component<Props, TreeState> { static defaultProps: Partial<Props>; constructor(props: Props); recursivelyExpand: (obj: object, condition: (key: string, value: any, level: number) => boolean) => TreeNodeState; private recursivelyExpandImpl; toggleExpanded: (e: React.MouseEvent<Element, MouseEvent>) => void; onNodeClicked: (e: React.MouseEvent<Element, MouseEvent>) => void; onNodeDoubleClicked: (e: React.MouseEvent<Element, MouseEvent>) => void; render(): JSX.Element; private renderNode; private renderChildren; } export {};