vasille
Version:
The same framework which is designed to build bulletproof frontends (core library).
28 lines (27 loc) • 1.13 kB
TypeScript
import { Runner } from "../node/runner.js";
import { RepeatNode, RepeatNodeOptions } from "./repeat-node.js";
import { ListenableModel } from "../models/model.js";
export interface BaseViewOptions<Node, Element, TagOptions extends object, K, T, Model extends ListenableModel<K, T>> extends RepeatNodeOptions<Node, Element, TagOptions, T, K> {
model: Model;
}
/**
* Base class of default views
* @class BaseView
* @extends RepeatNode
*/
export declare class BaseView<Node, Element, TagOptions extends object, K, T, Model extends ListenableModel<K, T>> extends RepeatNode<Node, Element, TagOptions, K, T, BaseViewOptions<Node, Element, TagOptions, K, T, Model>> {
model: Model;
/**
* Handler to catch values addition
* @type {Function}
*/
protected addHandler: (index: K, value: T) => void;
/**
* Handler to catch values removes
* @type {Function}
*/
protected removeHandler: (index: K, value: T) => void;
constructor(input: BaseViewOptions<Node, Element, TagOptions, K, T, Model>, runner: Runner<Node, Element, TagOptions>);
compose(): void;
destroy(): void;
}