///
declare type Callback = (...args: any[]) => void;
declare class Configuration {
viewSelector: string;
componentSelector: string;
selector: string;
namespacePattern: RegExp;
isComponentIndex($el: JQuery): boolean;
nodeUnderscoredName($el: JQuery): string;
isStandAlone($el: JQuery): boolean;
extractStandAloneNodeData($el: JQuery): string[];
extractComponentIndexNodeData($el: JQuery): string[];
}
declare interface Data {
el: HTMLElement;
$el: JQuery;
isComponentIndex: boolean;
isComponentPart: boolean;
isStandAlone: boolean;
componentId?: number;
componentIndexNode?: NodeData;
nodeName: string;
componentName: string;
namespaceName: string;
nodeNameUnderscored: string;
componentNameUnderscored: string;
namespaceNameUnderscored: string;
}
declare class DOM {
static html($el: JQuery, html: string): void;
static append($parentEl: JQuery, $el: JQuery): void;
static prepend($parentEl: JQuery, $el: JQuery): void;
static before($el: JQuery, $inserterdEl: JQuery): void;
static after($el: JQuery, $inserterdEl: JQuery): void;
static remove($el: JQuery): void;
static htmlAsync($el: JQuery, html: string): Promise;
static appendAsync($parentEl: JQuery, $el: JQuery): Promise;
static prependAsync($parentEl: JQuery, $el: JQuery): Promise;
static beforeAsync($el: JQuery, $inserterdEl: JQuery): Promise;
static afterAsync($el: JQuery, $inserterdEl: JQuery): Promise;
}
declare class Hooks {
onInitCallbacks: C[];
onActivationCallbacks: C[];
onUnloadCallbacks: C[];
constructor();
onInit(callback: C): void;
init(...args: any[]): void;
onActivation(callback: C): void;
activate(...args: any[]): void;
onUnload(callback: C): void;
unload(...args: any[]): void;
reset(): void;
}
declare class Launcher {
hooks: Hooks<(nodeData: NodeData) => void>;
treeManager: TreeManager;
isRefreshEventInitialized: boolean;
launch(config: Configuration): void;
initRemoveEvent(): void;
initRefreshEvent(config: Configuration): void;
createViewsTree(): void;
}
declare class Node_2 {
$el: JQuery;
hooks: Hooks<(node: Node_2) => void>;
el: HTMLElement;
id: string;
parent?: Node_2;
children: Node_2[];
isActivated: boolean;
isRemoved: boolean;
nodeWrapper?: NodeWrapper;
constructor($el: JQuery, hooks?: Hooks<(node: Node_2) => void>);
setParent(node: Node_2): void;
prependChild(node: Node_2): void;
appendChild(node: Node_2): void;
removeChild(node: Node_2): void;
init(): void;
activate(): void;
remove(): void;
unload(): void;
}
declare class NodeData implements Data {
el: HTMLElement;
$el: JQuery;
isComponentIndex: boolean;
isComponentPart: boolean;
isStandAlone: boolean;
componentId: number;
componentIndexNode?: NodeData;
nodeName: string;
componentName: string;
namespaceName: string;
nodeNameUnderscored: string;
componentNameUnderscored: string;
namespaceNameUnderscored: string;
data: Record;
constructor(options: Data);
setData(name: string, value: any): void;
getData(name: string): any;
}
declare class NodeWrapper {
node: Node_2;
config: Configuration;
hooks: Hooks<(nodeData: NodeData) => void>;
$el: JQuery;
el: HTMLElement;
namespaceName: string;
nodeName: string;
nodeData: NodeData;
isStandAlone: boolean;
isComponentIndex: boolean;
componentIndexNode?: Node_2;
private nodeUnderscoredName;
private component;
constructor(node: Node_2, config: Configuration, hooks: Hooks<(nodeData: NodeData) => void>);
initComponent(): {
namespace: string;
node: Node_2;
id: number;
name: string;
};
identifyNodeAttributes(): void;
initNodeDataObject(): void;
initNodeData(): NodeData;
unload(): void;
private _camelize;
}
declare class TreeManager {
config: Configuration;
launcherHooks: Hooks<(nodeData: NodeData) => void>;
isInitializing: boolean;
initialNodes: Node_2[];
hooks: Hooks<(node: Node_2) => void>;
nodesCache: VtreeNodesCache;
constructor(config: Configuration, launcherHooks: Hooks<(nodeData: NodeData) => void>);
createTree(): void;
setInitialNodes(): void;
setParentsForInitialNodes(): void;
setChildrenForInitialNodes(): void;
setParentsForNodes(nodes: Node_2[]): void;
setChildrenForNodes(nodes: Node_2[]): void;
activateInitialNodes(): void;
activateRootNodes(): void;
activateNode(node: Node_2): void;
removeNode(node: Node_2): void;
removeChildNodes(node: Node_2): void;
refresh(refreshedNode: Node_2): void;
addNodeIdToElData(node: Node_2): void;
addRemoveEventHandlerToEl(node: Node_2): void;
addNodeWrapper(node: Node_2): void;
unloadNode(node: Node_2): void;
deleteNodeWrapper(node: Node_2): void;
}
declare class Vtree {
static _launcher: Launcher;
static _config: Configuration;
static DOM: typeof DOM;
static initNodes(): void;
static initNodesAsync(): void;
static onNodeInit(callback: (nodeWrapper: NodeData) => void): void;
static getInitCallbacks(): ((nodeData: NodeData) => void)[];
static onNodeUnload(callback: (nodeWrapper: NodeData) => void): void;
static getUnloadCallbacks(): ((nodeData: NodeData) => void)[];
static configure(options: Partial): void;
static get config(): Configuration;
static get launcher(): Launcher;
static get hooks(): Hooks<(nodeData: NodeData) => void>;
}
export default Vtree;
declare class VtreeNodesCache {
private nodes;
private rootNodes;
show(): Record;
showRootNodes(): Node_2[];
getById(id: string): Node_2;
add(node: Node_2): void;
addAsRoot(node: Node_2): void;
removeById(id: string): void;
clear(): void;
}
export { }