UNPKG

@naisutech/react-tree

Version:

a hierarchical tree component for React written in Typescript

75 lines (74 loc) 3.08 kB
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;