ajsfw
Version:
Ajs Framework
22 lines (21 loc) • 1.55 kB
TypeScript
import { CtorTyped } from "ajsfw/types";
import { Notifier } from "ajsfw/events";
import { IRegisteredViewComponentsCollection } from "./IRegisteredViewComponentsCollection";
import { IViewComponent } from "./IViewComponent";
import { IViewComponentState } from "./IViewComponentState";
export declare const IIViewComponentManager: IViewComponentManager;
export interface IViewComponentManager {
readonly components: IRegisteredViewComponentsCollection;
registerComponents(...componentConstructor: CtorTyped<IViewComponent>[]): void;
addComponentDependencies<ConfigParams>(component: CtorTyped<IViewComponent>, ...dependencies: any[]): IViewComponentManager;
navigationNotifier: Notifier<IViewComponentManager>;
createViewComponent(name: string, id: string, parentComponent: IViewComponent, state?: IViewComponentState, parentComponentInitStateNotify?: IViewComponent): Promise<IViewComponent>;
removeComponentInstance(component: IViewComponent): void;
getComponentConstructorByName(name: string): CtorTyped<IViewComponent>;
getComponentInstanceByComponentId(componentId: number): IViewComponent;
getChildrenComponentInstances(component: IViewComponent): IViewComponent[];
getComponentInstances(component: CtorTyped<IViewComponent>, id?: string, userKey?: string): IViewComponent[];
getFirstComponentInstance<T extends IViewComponent>(component: CtorTyped<IViewComponent>, id?: string, userKey?: string): T;
setRootViewComponent(name: string): Promise<void>;
onNavigate(): void;
}