import { CanvasEngine } from "./CanvasEngine" ; import { AbstractState } from "./state-machine/AbstractState" ; import { BaseModel } from "./base-models/BaseModel" ; export abstract class AbstractElementFactory < T extends BaseModel = BaseModel > { public type : string ; protected directiveProcessors ; protected engine : CanvasEngine ; constructor ( type ) { this . type = type ; this . directiveProcessors = [ ] ; } setEngine ( engine ) { this . engine = engine ; } getCanvasStates ( ) { return [ ] ; } abstract generateModel ( ) ; abstract generateWidget ( engine , model ) ; }