@awesome-nodes/mvvm
Version:
Application development framework using the *model* *view* *view-model* design pattern.
46 lines (45 loc) • 1.37 kB
TypeScript
import { ObjectBase } from '@awesome-nodes/object';
import { ObjectModel } from "../model";
import { IViewModel } from "./";
/**
* Represents the base for all view models in the model-view-view-model pattern.
* @template TModel
*/
export declare abstract class ViewModelBase<TModel extends ObjectModel> extends ObjectBase implements IViewModel<TModel> {
private _model;
get name(): string;
/**
* Returns the model instance which is associated with this view-model instance.
*/
get model(): TModel;
/**
* Returns the model instance which is associated with this view-model instance.
*/
set model(value: TModel);
/**
* Initializes this instance.
* @param {TModel} model
* @param {string} name
*/
protected constructor(model: TModel, name?: string);
/** @inheritDoc */
init?(): void;
/** @inheritDoc */
viewInit?(): void;
/** @inheritDoc */
viewChecked?(): void;
/** @inheritDoc */
contentInit?(): void;
/** @inheritDoc */
contentChecked?(): void;
/** @inheritDoc */
changes?(changes: unknown): void;
/** @inheritDoc */
destroy(): void;
/**
* Checks equality by comparing the name property of this instance.
* @inheritDoc
* @param {ViewModelBase<TModel>} other
*/
equals(other: ViewModelBase<TModel>): boolean;
}