UNPKG

koui

Version:

Knockout UI widgets to help Knockout app development

176 lines (175 loc) 6.42 kB
import * as ko from "knockout"; import * as ctx from "./contextmenu"; export interface TreeDefaults { cssClass?: string; isDraggable?: boolean; isDropTarget?: boolean; canAddChildren?: boolean; childType?: string; renameAfterAdd?: boolean; connectToSortable?: boolean; dragCursorAt?: { left: number; bottom: number; }; dragCursor?: string; dragHelper?: (event: JQueryEventObject, element: JQuery) => JQuery; } export declare var defaults: { cssClass: string; isDraggable: boolean; isDropTarget: boolean; canAddChildren: boolean; childType: string; renameAfterAdd: boolean; connectToSortable: boolean; dragCursorAt: { left: number; bottom: number; }; dragCursor: string; dragHelper: (event: any, element: any) => JQuery; }; export interface TreeHandlers { selectNode?: (node: TreeNode, onSuccess: () => void) => void; addNode?: (parent: TreeNode, type: string, name: string, onSuccess: (result: { id: any; parent: TreeNode; name: string; }) => void) => void; renameNode?: (node: TreeNode, from: string, to: string, onSuccess: () => void) => void; deleteNode?: (node: TreeNode, action: string, onSuccess: () => void) => void; moveNode?: (node: TreeNode, newParent: TreeContainer, newIndex: number, onSuccess: () => void) => void; doubleClick?: (node: TreeNode) => void; rightClick?: (node: TreeNode) => void; startDrag?: (node: TreeNode) => void; endDrag?: (node: TreeNode) => void; } export interface TreeOptions { defaults?: TreeDefaults; handlers?: TreeHandlers; id: any; remember?: any; dragHolder?: any; children?: any; selectedNode?: any; contextMenu?: ctx.ContextMenuBuilderConfiguration; } export interface TreeContainer { children: ko.ObservableArray<TreeNode>; remember: ko.Observable<boolean>; name?: ko.Observable<string>; type?: ko.Observable<string>; parent?: ko.Observable<TreeContainer>; isOpen?: ko.Observable<boolean>; level?: ko.Computed<number>; canAddChildren?: ko.Computed<boolean>; isDropTarget?: ko.Computed<boolean>; } export declare class Tree implements TreeContainer { engine: ko.templateEngine; defaults: TreeDefaults; handlers: TreeHandlers; id: ko.Observable<string>; remember: ko.Observable<boolean>; dragHolder: ko.Observable<any>; isDragging: ko.Observable<boolean>; children: ko.ObservableArray<TreeNode>; selectedNode: ko.Observable<TreeNode>; tree: HTMLElement; contextMenu: ctx.ContextMenuBuilder; constructor(options: TreeOptions); findNode(id: string): TreeNode; selectNode(id: string, root?: TreeContainer): boolean; addNode(node: any): void; renameNode(node?: TreeNode): void; deleteNode(action?: string, node?: TreeNode): void; deleteAll(): void; clear(): void; recalculateSizes(): void; private createNode(node, index?); } export interface TreeNodeOptions { id: any; name: any; type?: any; cssClass?: any; iconCssClass?: any; index?: any; isOpen?: any; isSelected?: any; isRenaming?: any; contents?: any; children?: any; } export declare class TreeNode implements TreeContainer { viewModel: Tree; parent: ko.Observable<TreeContainer>; contextMenu: ctx.ContextMenuBuilder; id: ko.Observable<string>; name: ko.Observable<string>; type: ko.Observable<string>; cssClass: ko.Observable<string>; iconCssClass: ko.Observable<string>; index: ko.Observable<number>; remember: ko.Observable<boolean>; isOpen: ko.Observable<boolean>; isSelected: ko.Observable<boolean>; isRenaming: ko.Observable<boolean>; isDragging: ko.Observable<boolean>; contents: any; children: ko.ObservableArray<TreeNode>; canAddChildren: ko.Computed<boolean>; showAddBefore: ko.Computed<boolean>; showAddAfter: ko.Computed<boolean>; isDropTarget: ko.Computed<boolean>; isDraggable: ko.Computed<boolean>; connectToSortable: ko.Computed<string>; level: ko.Computed<number>; constructor(options: TreeNodeOptions, parent: TreeContainer, viewModel?: Tree, index?: number); hasChildren(): boolean; hasContext(): boolean; uniqueIdentifier(): string; createChild(node: any, index?: number): TreeNode; setViewModel(viewModel: any): void; findNode(id: string): TreeNode; selectNode(): void; openParents(): void; openSelfAndParents(): void; toggle(): void; addChild(node: any): void; rename(newName: string): void; deleteSelf(action?: string): void; move(node: TreeNode, parent?: TreeContainer, index?: number): void; moveBefore(node: TreeNode): void; moveAfter(node: TreeNode): void; getDragHolder(): any; setDragHolder(event: any, element: any): void; loadState(): void; saveState(): void; clicked(node: TreeNode, event: MouseEvent): any; doubleClick(event: MouseEvent): void; } declare module "knockout" { interface BindingHandlers { treenodedrag: { init(element: Node, valueAccessor: () => any, allBindingsAccessor: AllBindingsAccessor, viewModel: any): void; update(element: Node, valueAccessor: () => any, allBindingsAccessor: AllBindingsAccessor, viewModel: any): void; }; treenodedrop: { init(element: Node, valueAccessor: () => any, allBindingsAccessor: AllBindingsAccessor, viewModel: any): void; update(element: Node, valueAccessor: () => any, allBindingsAccessor: AllBindingsAccessor, viewModel: any): void; }; treenodeselectvisible: { update(element: HTMLInputElement, valueAccessor: () => any): void; }; treenoderename: { init(element: Node, valueAccessor: () => any, allBindingsAccessor: AllBindingsAccessor, viewModel: any): void; update(element: Node, valueAccessor: () => any, allBindingsAccessor: AllBindingsAccessor, viewModel: any): void; }; tree: { init(element: Node, valueAccessor: () => any): void; update(element: Node, valueAccessor: () => any): void; }; } }