From 1ffa8a8fb3e16bd5a3338d18782ddda0c2ffca03 Mon Sep 17 00:00:00 2001 From: bobzel Date: Sun, 16 Mar 2025 21:15:00 -0400 Subject: a lot of code cleanup for doc creators templates --- .../nodes/DataVizBox/DocCreatorMenu/Template.ts | 138 +++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts (limited to 'src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts') diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts new file mode 100644 index 000000000..ef6867e32 --- /dev/null +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts @@ -0,0 +1,138 @@ +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