@bytedance/mona-client-mini
Version:
miniapp for mona
45 lines (44 loc) • 1.5 kB
TypeScript
import TaskController, { Task } from './TaskController';
export declare function generateId(): number;
export declare const NodeType: {
ROOT: string;
PTEXT: string;
};
export interface RenderNode {
COMPLIER_KEY: number;
COMPLIER_TYPE: string;
COMPLIER_PROPS: Record<string, any>;
COMPLIER_NODES: Record<number, RenderNode>;
COMPLIER_CHILDREN: number[];
COMPLIER_TEXT: string;
}
export default class ServerElement {
type: string;
taskController: TaskController;
props?: any;
text?: string;
key: number;
children: Map<number, ServerElement>;
parent: ServerElement | null;
firstChildKey: number | null;
lastChildKey: number | null;
prevSiblingKey: number | null;
nextSiblingKey: number | null;
mounted: boolean;
deleted: boolean;
eventsCallbackList: Set<string>;
constructor(type: string, taskController: TaskController, props?: Record<string, any>);
requestUpdate(task: Task): void;
clearEvents(): void;
addCallback(cbKey: string, cb: (...args: any) => any): void;
appendChild(child: ServerElement): void;
removeChild(child: ServerElement, clearEvents?: boolean): void;
insertBefore(child: ServerElement, nextSibling: ServerElement): void;
update(propPath: string, updatePropsMap: Record<string, any>): void;
serialize(): RenderNode;
delete(): void;
get orderedChildren(): number[];
get path(): (string | number)[];
isMounted(): boolean;
isDeleted(): boolean;
}