42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
// @declaration: true
|
|
|
|
declare module templa.mvc {
|
|
interface IModel {
|
|
}
|
|
}
|
|
declare module templa.mvc {
|
|
interface IController<ModelType extends templa.mvc.IModel> {
|
|
}
|
|
}
|
|
declare module templa.mvc {
|
|
class AbstractController<ModelType extends templa.mvc.IModel> implements mvc.IController<ModelType> {
|
|
}
|
|
}
|
|
declare module templa.mvc.composite {
|
|
interface ICompositeControllerModel extends mvc.IModel {
|
|
getControllers(): mvc.IController<mvc.IModel>[];
|
|
}
|
|
}
|
|
module templa.dom.mvc {
|
|
export interface IElementController<ModelType extends templa.mvc.IModel> extends templa.mvc.IController<ModelType> {
|
|
}
|
|
}
|
|
// Module
|
|
module templa.dom.mvc {
|
|
|
|
export class AbstractElementController<ModelType extends templa.mvc.IModel> extends templa.mvc.AbstractController<ModelType> implements IElementController<ModelType> {
|
|
constructor() {
|
|
super();
|
|
}
|
|
}
|
|
}
|
|
// Module
|
|
module templa.dom.mvc.composite {
|
|
export class AbstractCompositeElementController<ModelType extends templa.mvc.composite.ICompositeControllerModel> extends templa.dom.mvc.AbstractElementController<ModelType> {
|
|
public _controllers: templa.mvc.IController<templa.mvc.IModel>[];
|
|
constructor() {
|
|
super();
|
|
this._controllers = [];
|
|
}
|
|
}
|
|
}
|