import { makeAutoObservable } from 'mobx'; import { Col } from './DocCreatorMenu'; import { DynamicField } from './TemplateFieldTypes/DynamicField'; import { TemplateField, FieldSettings } from './TemplateFieldTypes/TemplateField'; import { TemplateLayouts } from './TemplateBackend'; export class Template { mainField: DynamicField; private settings: FieldSettings; constructor(templateInfo: FieldSettings) { makeAutoObservable(this); this.settings = templateInfo; this.mainField = this.setupMainField(templateInfo); } get childFields(): TemplateField[] { return this.mainField.getSubfields; } get allFields(): TemplateField[] { return this.mainField.getAllSubfields; } get contentFields(): TemplateField[] { return this.allFields.filter(field => field.isContentField); } get doc() { return this.mainField.renderedDoc; } get title() { return this.mainField.getTitle(); } cleanup = () => { //dispose each subfields disposers, etc. }; cloneBase = async (): Promise