30 lines
862 B
TypeScript
30 lines
862 B
TypeScript
import { IContainerProperties } from './IContainerProperties';
|
|
|
|
export interface IContainerModel {
|
|
children: IContainerModel[]
|
|
parent: IContainerModel | null
|
|
properties: IContainerProperties
|
|
userData: Record<string, string | number>
|
|
}
|
|
|
|
/**
|
|
* Macro for creating the interface
|
|
* Do not add methods since they will be lost during serialization
|
|
*/
|
|
export class ContainerModel implements IContainerModel {
|
|
public children: IContainerModel[];
|
|
public parent: IContainerModel | null;
|
|
public properties: IContainerProperties;
|
|
public userData: Record<string, string | number>;
|
|
|
|
constructor(
|
|
parent: IContainerModel | null,
|
|
properties: IContainerProperties,
|
|
children: IContainerModel[] = [],
|
|
userData = {}) {
|
|
this.parent = parent;
|
|
this.properties = properties;
|
|
this.children = children;
|
|
this.userData = userData;
|
|
}
|
|
};
|