vasille
Version:
The first Developer eXperience Orientated front-end framework (core library).
29 lines (28 loc) • 1.23 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
* @implements IModel
*/
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>> {
readonly input: BaseViewOptions<Node, Element, TagOptions, K, T, 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>, name?: string);
compose(): void;
destroy(): void;
}