eyzy-tree
Version:
React tree component
28 lines (25 loc) • 1.28 kB
text/typescript
import { TreeNode } from "./Node"
import { FlatMap } from '../utils/traveler'
export type PromiseNodes = PromiseLike<TreeNode[] | TreeNode>
export type PromiseCallback = (node: TreeNode) => PromiseNodes
export type Resource = string | object | (string | object)[] | PromiseLike<any> | PromiseCallback
export interface InsertOptions {
expand?: boolean
loading?: boolean
index?: number
}
export interface Core {
flatMap: (collection: TreeNode[], ignoreCollapsed?: boolean) => FlatMap
find: <T>(target: TreeNode[], multiple: boolean, ...criterias: any) => T | null
clearKeys: (node: TreeNode, excludeSelf: boolean) => void
load(node: TreeNode, resource: PromiseCallback, showLoading?: boolean): PromiseNodes
beside(node: TreeNode, resource: PromiseCallback, shift: number): PromiseNodes
insert(targetNode: TreeNode, resource: Resource, opts?: InsertOptions): PromiseNodes
remove(targetNode: TreeNode): TreeNode | null
data(targetNode: TreeNode, key?: any, value?: any): any
hasClass(targetNode: TreeNode, className: string): boolean
removeClass(targetNode: TreeNode, classNames: string | string[]): TreeNode
addClass(targetNode: TreeNode, classNames: string | string[]): TreeNode
uncheckAll(): void
unselectAll(): void
}