@eccenca/gui-elements
Version:
GUI elements based on other libraries, usable in React application, written in Typescript.
45 lines (44 loc) • 2.13 kB
TypeScript
import * as React from "react";
import { Tree as BlueprintTree, TreeNode as BlueprintTreeNode, TreeNodeInfo as BlueprintTreeNodeInfo, TreeProps as BlueprintTreeProps } from "@blueprintjs/core";
import { IconProps } from "./../Icon/Icon";
import { TestIconProps } from "./../Icon/TestIcon";
export interface TreeNodeInfo<T = {}> extends Omit<BlueprintTreeNodeInfo<T>, "childNodes" | "icon"> {
/**
* Child tree nodes of this node.
*/
childNodes?: Array<TreeNodeInfo<T>>;
/**
* `<Icon />` element to render next to the node's label.
*/
icon?: React.ReactElement<IconProps> | React.ReactElement<TestIconProps>;
}
export interface TreeNodeProps<T = {}> extends TreeNodeInfo<T> {
children?: React.ReactNode;
contentRef?: (node: TreeNode<T>, element: HTMLDivElement | null) => void;
depth: number;
key?: string | number;
onClick?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
onCollapse?: (node: TreeNode<T>, e: React.MouseEvent<HTMLSpanElement>) => void;
onContextMenu?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
onDoubleClick?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
onExpand?: (node: TreeNode<T>, e: React.MouseEvent<HTMLSpanElement>) => void;
onMouseEnter?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
onMouseLeave?: (node: TreeNode<T>, e: React.MouseEvent<HTMLDivElement>) => void;
path: number[];
}
export declare class TreeNode<T = {}> extends BlueprintTreeNode<TreeNodeProps<T>> {
}
export declare class TreeNodeShadow<T = {}> extends React.Component<TreeNodeProps<T>> {
}
export interface TreeProps<T = {}> extends Omit<BlueprintTreeProps<T>, "contents"> {
/**
* Tree contents.
*/
contents: ReadonlyArray<TreeNodeInfo<T>>;
}
/**
* Tree component to display a tree structure.
* Have a look to the underlaying [BlueprintJS Tree](https://blueprintjs.com/docs/#core/components/tree) component for examples how to use handlers.
* Use only our `<Icon />` elements in the tree nodes!
*/
export declare const Tree: typeof BlueprintTree;