ajsfw
Version:
Ajs Framework
75 lines (74 loc) • 4.62 kB
TypeScript
import { IDocumentManager } from "ajsfw/doc";
import { IComponent } from "ajsfw/doc";
import { INavigator } from "ajsfw/navigation";
import { IRouter } from "ajsfw/routing";
import { ITemplateManager } from "ajsfw/templating";
import { IVisualComponent } from "ajsfw/templating";
import { IViewManager } from "../View/IViewManager";
import { IViewComponentManager } from "./IViewComponentManager";
import { IViewComponent } from "./IViewComponent";
import { IParentViewComponent } from "./IParentViewComponent";
import { IViewComponentState } from "./IViewComponentState";
import { IViewComponentStateMethods } from "./IViewComponentStateMethods";
import { IViewComponentProperties } from "./IViewComponentProperties";
import { IViewComponentFilteredState } from "./IViewComponentFilteredState";
import { IFilteredState } from "./IFilteredState";
export declare class ViewComponent<State extends IViewComponentState, ParentViewComponent extends IParentViewComponent> implements IComponent, IViewComponent, IViewComponentStateMethods, IParentViewComponent {
protected _componentViewId: number;
readonly componentViewId: number;
ajs: IViewComponentProperties<State, ParentViewComponent>;
constructor(navigator: INavigator, router: IRouter, documentManager: IDocumentManager, templateManager: ITemplateManager, viewManager: IViewManager, viewComponentManager: IViewComponentManager, id: string, componentViewId: number, parentComponent: ParentViewComponent, visualComponent: IVisualComponent, state?: State, parentComponentInitStateNotify?: IViewComponent);
configure(...services: any[]): Promise<void>;
initialize(): Promise<void>;
destroy(): Promise<void>;
setState(state: State, stateChangeRootComponent?: IViewComponent): Promise<void>;
clearState(render: boolean): void;
render(parentElement: HTMLElement, clearStateChangeOnly: boolean, attributes?: NamedNodeMap): HTMLElement;
ajsVisualStateTransitionBegin(newElement: Element): void;
insertChildComponent(viewComponentName: string, id: string, state: IViewComponentState, placeholder: string, index?: number): void;
removeChildComponent(placeholder: string, id: string): void;
preventStateChange: boolean;
protected _onDefaultState(): State;
protected _onConfigure(...params: any[]): Promise<void>;
protected _onInitialize(): Promise<void>;
protected _onFinalize(): Promise<void>;
protected _filterState(state: State): IViewComponentFilteredState;
protected _filterStateKey(key: string, value: any): IFilteredState;
protected _filterStateArrayItem(key: string, index: number, length: number, state: State): IFilteredState;
protected _setPreventStateChange(value: boolean): void;
protected _ajsVisualStateTransitionBegin(newElement: Element): Promise<void>;
protected _ajsVisualStateTransitionCancel(): void;
protected _ajsVisualStateTransitionEnd(): void;
private __initialize();
private __destroy();
private __applyTemplateStylesheets();
private __setState(state, stateChangeRootComponent);
private __processStateQueue();
private __clearState(render);
private __applyState(stateChangeInfo);
private __createNewStateKey(key, stateChangeInfo);
private __createComponentsArray(key, stateChangeInfo);
private __updateExistingStateKey(key, stateChangeInfo);
private __updateArrayState(key, stateChangeInfo);
private __createViewComponent(id, viewComponentInfo, state);
private __render(parentElement, clearStateChangeOnly, attributes?);
private __renderTree(sourceNode, targetNode, clearStateChangeOnly, attributes?);
private __renderNode(sourceNode, targetNode, attributes?);
private __mergeAttributes(targetNode, attributes?);
private __processNode(node);
private __processText(node);
private __linkMouseDown(e);
private __processElement(element);
private __processAttributes(element);
private __attrComponent(toRemove, attr);
private __attrIf(toRemove, attr);
private __attrDefault(toRemove, attr);
private __attrEventHandler(toRemove, attr);
private __attrTransitionBeginHanler(toRemove, attr);
private __insertChildComponent(viewComponentName, id, state, placeholder, index?);
private __removeChildComponent(placeholder, id);
private __visualComponentInsertChild(placeholder, componentName, id, index?);
private __visualComponentRemoveChild(placeholder, id);
private __ajsVisualStateTransitionStart(transitionType);
private __childElementExists(parent, child);
}