UNPKG

@winged/core

Version:

Morden webapp framekwork made only for ts developers. (UNDER DEVELOPMENT, PLEASE DO NOT USE)

25 lines (24 loc) 1.16 kB
import { StateDependencies, ViewState } from '../types'; import { PrevSibling } from './vdom'; export declare namespace Renderable { type ChildrenIter = (child: Renderable) => true | void; type IterAction = 'skipRender' | 'rebuildStateDeps' | 'checkStructChange' | 'destroyDomEl'; } export declare abstract class Renderable { private static idCounter; stateDependencies: StateDependencies | null; id: number; private stateDependenciesDirty; abstract render(state: ViewState, modifiedState: ViewState, container: HTMLElement, prevSibling: PrevSibling): void; /** skip render this Renderable and it's children, but performs prevSibling.node passing */ skipRender(prevSibling: PrevSibling): void; destroy(): void; rebuildStateDependencies(): void; /** subclass implement */ destroyDomElement(): void; checkStructChange(): boolean; /** excute fn in every child, aborted if last call returns true */ abstract forEachChildren(fn: Renderable.ChildrenIter, action: Renderable.IterAction): void; protected markStructChange(): void; protected abstract initStateDependencies(): StateDependencies; }