@kospa/base
Version:
Base components for kospa framework
34 lines (33 loc) • 1.47 kB
TypeScript
import * as activator from "./activator";
export declare type View = activator.View;
export declare type ViewModel = activator.ViewModel;
export declare type ViewModelConstructor = activator.ViewModelConstructor;
export declare type ViewModelOrConstructor = activator.ViewModelOrConstructor;
export interface CompositionOptions {
viewmodel: string | ViewModelOrConstructor;
view?: View | null;
args?: any[];
activate?: boolean;
bindingComplete?(node: Node, vm: ViewModel, ...args: any[]): void | Promise<any>;
descendantsComplete?(node: Node, vm: ViewModel, ...args: any[]): void | Promise<any>;
compositionComplete?(vm: ViewModel, ...args: any[]): void | Promise<any>;
}
export declare class CompositionError extends Error {
vm: string | ViewModelOrConstructor;
innerError?: string | Error | undefined;
constructor(vm: string | ViewModelOrConstructor, innerError?: string | Error | undefined);
}
/**
* Compose a ViewModel and a View into an element using Require.JS.
* @param element - HTMLElement to compose on or its ID.
* @param options - Composition Options.
*/
export declare function compose(element: string | Node, options: CompositionOptions): Promise<Node>;
declare module "knockout" {
interface BindingHandlers {
compose: {
init(): BindingHandlerControlsDescendant;
update(element: Node, valueAccessor: () => MaybeSubscribable<CompositionOptions>): void;
};
}
}