vasille
Version:
The first Developer eXperience Orientated front-end framework (core library).
22 lines (21 loc) • 984 B
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, Opts> {
/**
* Children node hash
* @type {Map}
*/
protected nodes: Map<IdT, Fragment<Node, Element, TagOptions>>;
constructor(input: Opts, runner: Runner<Node, Element, TagOptions>, name?: string);
createChild(opts: Opts, id: IdT, item: T, before?: Fragment<Node, Element, TagOptions>): any;
destroyChild(id: IdT, item: T): void;
destroy(): void;
}