koui
Version:
Knockout UI widgets to help Knockout app development
83 lines (82 loc) • 2.67 kB
TypeScript
import * as ko from "knockout";
export declare const defaults: {
cssClass: string;
width: number;
};
export interface IMenuContainer {
cssClass: ko.Observable<string>;
}
declare module "knockout" {
interface BindingHandlers {
contextmenu: {
init(element: Node, valueAccessor: () => any, allBindingsAccessor: AllBindingsAccessor, viewModel: any): void;
};
subcontextmenu: {
init(element: Node, valueAccessor: () => any, allBindingsAccessor: AllBindingsAccessor, viewModel: any): void;
};
}
}
export interface ContextMenuConfiguration {
name?: any;
cssClass?: any;
width?: any;
zIndex?: any;
items: any[];
hasHandle?: any;
handleCssClass?: any;
}
export declare class ContextMenu implements IMenuContainer {
private container;
engine: ko.templateEngine;
name: ko.Observable<string>;
cssClass: ko.Observable<string>;
width: ko.Observable<number>;
zIndex: ko.Observable<number>;
hasHandle: ko.Observable<boolean>;
handleCssClass: ko.Observable<string>;
items: ko.ObservableArray<ContextMenuItem>;
constructor(data: ContextMenuConfiguration, container?: IMenuContainer);
}
export interface ContextMenuItemConfiguration {
text?: any;
iconCssClass?: any;
separator?: any;
run?: (item?: any) => any;
items?: any;
}
export declare class ContextMenuItem {
private container;
private subMenu;
private dataItem;
text: ko.Observable<string>;
iconCssClass: ko.Observable<string>;
width: ko.Observable<number>;
separator: ko.Observable<boolean>;
disabled: ko.Observable<boolean>;
run: (dataItem?: any) => any;
constructor(data: ContextMenuItemConfiguration, container: ContextMenu);
hasChildren(): boolean;
addDataItem(dataItem: any): void;
itemWidth(): string;
labelWidth(): string;
onClick(): boolean;
}
export interface ContextMenuBuilderConfiguration {
cssClass?: any;
build: (e: Event, parentVM: any) => ContextMenuBuilderResult;
contextMenus: any[];
hasHandle?: any;
handleCssClass?: any;
}
export interface ContextMenuBuilderResult {
name: string;
disable?: string[];
}
export declare class ContextMenuBuilder implements IMenuContainer {
cssClass: ko.Observable<string>;
build: (e: Event, parentVM: any) => ContextMenuBuilderResult;
hasHandle: ko.Observable<boolean>;
handleCssClass: ko.Observable<string>;
contextMenus: ko.ObservableArray<ContextMenu>;
constructor(configuration: ContextMenuBuilderConfiguration);
}