import { makeAutoObservable, reaction } from "mobx"; import { Doc, DocListCast, FieldType } from "../../../../../fields/Doc"; import { Docs } from "../../../../documents/Documents"; import { Col } from "./DocCreatorMenu"; import { DynamicField } from "./FieldTypes/DynamicField"; import { Field, FieldSettings, FieldTree, ViewType } from "./FieldTypes/Field"; import { } from "./FieldTypes/FieldUtils"; import { observer } from "mobx-react"; import { IDisposer } from "mobx-utils"; import { Width } from "../../../../../fields/DocSymbols"; 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(): Field[] { return this.mainField.getSubfields }; get allFields(): Field[] { return this.mainField.getAllSubfields }; get contentFields(): Field[] { 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