@naisutech/react-tree
Version:
a hierarchical tree component for React written in Typescript
75 lines (74 loc) • 3.08 kB
TypeScript
import * as React from 'react';
import { TreeNodeId, TreeNodeList } from 'Tree';
/**
* @public
*/
export declare interface ReactTreeApi {
getOpenNodes: () => (number | string)[];
getSelectedNodes: () => (number | string)[];
toggleNodeSelectedState: (node: string | number) => void;
toggleNodeOpenState: (node: string | number) => void;
toggleAllNodesOpenState: (state: 'open' | 'closed') => void;
toggleAllNodesSelectedState: (state: 'selected' | 'unselected') => void;
toggleOpenNodes: (nodes: (number | string)[]) => void;
toggleOpenClosedNodes: (nodes: (number | string)[]) => void;
toggleClosedNodes: (nodes: (number | string)[]) => void;
selectNodes: (nodes: (number | string)[]) => void;
deselectNodes: (nodes: (number | string)[]) => void;
toggleSelectedNodes: (nodes: (number | string)[]) => void;
onToggleOpenNodes?: (nodes: TreeNodeId[]) => void;
onToggleSelectedNodes?: (nodes: TreeNodeId[]) => void;
}
export interface ReactTreeState {
nodes: TreeNodeList;
selectedNodes: TreeNodeId[];
openNodes: TreeNodeId[];
controlledOpen: boolean;
controlledSelected: boolean;
options: {
folderAnimations: boolean;
indicatorAnimations: boolean;
lazy: boolean;
showEmptyItems: boolean;
noIcons: boolean;
truncateLongText: boolean;
multiSelect: boolean;
messages: {
noData?: React.ReactNode;
loading?: React.ReactNode;
emptyItems?: React.ReactNode;
};
};
theme: string;
}
export declare type TReactTreeContext = ReactTreeState & ReactTreeApi;
declare const ReactTreeContext: {
Provider: ({ children, nodes, defaultSelectedNodes, defaultOpenNodes, selectedNodes, openNodes, options, theme, apiRef, onToggleOpenNodes, onToggleSelectedNodes }: React.PropsWithChildren<{
nodes?: TreeNodeList | undefined;
defaultSelectedNodes?: TreeNodeId[] | undefined;
defaultOpenNodes?: TreeNodeId[] | undefined;
openNodes?: TreeNodeId[] | undefined;
selectedNodes?: TreeNodeId[] | undefined;
options?: {
folderAnimations?: boolean | undefined;
indicatorAnimations?: boolean | undefined;
lazy?: boolean | undefined;
showEmptyItems?: boolean | undefined;
noIcons?: boolean | undefined;
truncateLongText?: boolean | undefined;
multiSelect?: boolean | undefined;
messages?: {
noData?: React.ReactNode;
loading?: React.ReactNode;
emptyItems?: React.ReactNode;
} | undefined;
} | undefined;
theme: string;
apiRef?: React.MutableRefObject<ReactTreeApi> | undefined;
onToggleOpenNodes?: ((nodes: TreeNodeId[]) => void) | undefined;
onToggleSelectedNodes?: ((nodes: TreeNodeId[]) => void) | undefined;
}>) => JSX.Element;
Consumer: React.Consumer<TReactTreeContext>;
useReactTreeContext: () => TReactTreeContext;
};
export default ReactTreeContext;