vasille
Version:
The same framework which is designed to build bulletproof frontends (core library).
23 lines (22 loc) • 1.06 kB
TypeScript
import { Fragment } from "../node/node.js";
import { Runner } from "../node/runner.js";
export interface RepeatNodeOptions<Node, Element, TagOptions extends object, T, IdT> {
slot?: (ctx: Fragment<Node, Element, TagOptions>, value: T, index: IdT) => void;
}
/**
* Repeat node repeats its children
* @class RepeatNode
* @extends Fragment
*/
export declare class RepeatNode<Node, Element, TagOptions extends object, IdT, T, Opts extends RepeatNodeOptions<Node, Element, TagOptions, T, IdT> = RepeatNodeOptions<Node, Element, TagOptions, T, IdT>> extends Fragment<Node, Element, TagOptions> {
/**
* Children node hash
* @type {Map}
*/
protected nodes: Map<IdT, Fragment<Node, Element, TagOptions>>;
protected slot: ((ctx: Fragment<Node, Element, TagOptions>, value: T, index: IdT) => void) | undefined;
constructor(input: Opts, runner: Runner<Node, Element, TagOptions>);
createChild(id: IdT, item: T, before?: Fragment<Node, Element, TagOptions>): any;
destroyChild(id: IdT, item: T): void;
destroy(): void;
}