/** * empty comment line Ivan Marshalkin * * TODO: navigation using the keyboard * * @author: Ivan Marshalkin * @date: 2019-05-27 */ import * as React from 'react'; import { IFlatListItem, ITreeColumn, ITreeNode } from './TreeType'; import { IStringKeyMap } from '../../type'; import { ActionItem, ConditionFunc, IDropConfig, Node as NodeComponent } from './Node'; import { TreeContainer, ScrollEvent } from './TreeContainer'; export interface ITreeTableProps { nodes: Array>; flatNodes?: T[]; isLoading?: boolean; readOnly?: boolean; columns: Array>; onNodeSelect?: (node: ITreeNode) => void; onNodeExpand?: (node: ITreeNode) => void; onNodeDelete?: (node: ITreeNode) => void; onBeforeNodeSelect?: (node: ITreeNode) => boolean; selectedNodes: string[]; disabledNodes?: string[]; canSelectDisabled?: boolean; colorScheme?: ColorScheme; isStriped?: boolean; isAutoHeightFill?: boolean; maxRowsBeforeOverflow?: number; isDeletable?: boolean | ConditionFunc; filter?: (node: ITreeNode) => boolean; canAdd?: boolean; addText?: React.ReactNode; isAddButtonDisabled?: boolean; onAddNode?: () => void; isEditable?: boolean | ConditionFunc; onEdit?: (node: ITreeNode, newValue: string, cellId: string) => void; isDraggable?: boolean; onDragStart?: (event: React.DragEvent, node: ITreeNode) => void; onDragEnd?: (event: React.DragEvent) => void; onDrop?: (event: React.DragEvent, node: ITreeNode) => void; onMoveNode?: (node: ITreeNode, parentNode?: ITreeNode, previousNode?: ITreeNode) => void; allowDragOver?: (event: React.DragEvent, dropToNode: ITreeNode, draggedNode?: ITreeNode) => boolean; canHasChildren?: boolean | ConditionFunc; actions?: Array>; isActionsEnabled?: (node: ITreeNode) => boolean; rightExtraItem?: (nodeData: T) => React.ReactNode; } interface IState { selectedItems: IStringKeyMap; disabledItems: IStringKeyMap; draggedNode: ITreeNode | undefined; } export declare enum ColorScheme { light = "theme-light", dark = "theme-dark" } export { ITreeNode, NodeComponent as Node, ITreeColumn, IFlatListItem, ActionItem, TreeContainer, ScrollEvent }; export { TreeUtil } from './TreeUtil'; export declare class Tree extends React.PureComponent, IState> { static defaultProps: { colorScheme: ColorScheme; disabled: never[]; isStriped: boolean; isAutoHeightFill: boolean; maxRowsBeforeOverflow: number; canSelectDisabled: boolean; addText: string; }; constructor(props: ITreeTableProps); addNode: () => void; onDragStart: (event: React.DragEvent, node: ITreeNode) => void; onDragEnd: (event: React.DragEvent) => void; onDrop: (zeroLevelNode: ITreeNode, zeroLevelNodeIndex: number) => (event: React.DragEvent, node: ITreeNode, dropConfig: IDropConfig) => void; componentDidUpdate(prevProps: Readonly>, prevState: Readonly>, snapshot?: any): void; render(): JSX.Element; }