dnd-tree-view
Version:
HTML5 tree view widget
59 lines (48 loc) • 1.94 kB
TypeScript
declare class TreeView {
treeRoot: HTMLOListElement;
selectedNodes: HTMLLIElement[];
constructor(container: HTMLElement, options?: {
dragStartCallback?: TreeView.DragStartCallback,
dropCallback?: TreeView.DropCallback,
multipleSelection?: boolean
});
clear(): void;
append(element: HTMLLIElement, type: "item" | "group", parentGroupElement?: HTMLElement): void;
insertBefore(element: HTMLLIElement, type: string, referenceElement: HTMLLIElement): void;
insertAt(element: HTMLLIElement, type: string, index: number, parentElement?: HTMLLIElement): void;
remove(element: HTMLLIElement): void;
clearSelection(): void;
addToSelection(element: HTMLLIElement): void;
scrollIntoView(element: HTMLLIElement): void;
moveVertically(offset: number /* 1 or -1 */): void;
moveHorizontally(offset: number /* 1 or -1 */): void;
addListener(event: string, listener: Function): TreeView;
on(event: string, listener: Function): TreeView;
once(event: string, listener: Function): TreeView;
removeListener(event: string, listener: Function): TreeView;
removeAllListeners(event?: string): TreeView;
setMaxListeners(n: number): TreeView;
getMaxListeners(): number;
listeners(event: string): Function[];
emit(event: string, ...args: any[]): boolean;
listenerCount(type: string): number;
on(event: "selectionChange", listener: () => any): TreeView;
on(event: "activate", listener: () => any): TreeView;
}
declare namespace TreeView {
interface DragStartCallback {
(event: DragEvent, nodeElt: HTMLLIElement): boolean;
}
interface DropLocation {
target: HTMLLIElement|HTMLOListElement;
where: "above" | "inside" | "below";
}
interface DropCallback {
(event: DragEvent,
dropLocation: DropLocation,
orderedNodes: HTMLLIElement[]): boolean;
}
}
declare module "dnd-tree-view" {
export = TreeView;
}