diff options
Diffstat (limited to 'src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx')
| -rw-r--r-- | src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx index 687b655d1..43f622512 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx @@ -4,11 +4,12 @@ import { Doc, DocListCast, FieldType } from "../../../../../fields/Doc"; import { Docs } from "../../../../documents/Documents"; import { Col } from "./DocCreatorMenu"; import { DynamicField } from "./FieldTypes/DynamicField"; -import { Field, FieldSettings, ViewType } from "./FieldTypes/Field"; +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 { @@ -31,14 +32,22 @@ export class Template { //dispose each subfields disposers, etc. } - cloneBase = () => { - const clone: Template = new Template(this.settings); - this.mainField.applyAttributes(clone.mainField); - clone.allFields.filter(field => field !== clone.mainField).forEach(field => { - const matchingField: Field = this.allFields.filter(f => f.getID === field.getID)[0]; - matchingField.applyAttributes(field); - }) - clone.mainField.initializeDocument(); + cloneBase = (): Template => { + const makeCloneFieldTree = (field: Field): Field => { + const root: Field = field.makeClone(); + field.getSubfields.forEach(field => { + const clone: Field = makeCloneFieldTree(field); + root.addField(clone); + }); + return root; + } + + const clone: Template = new Template(TemplateLayouts.BasicSettings); + console.log('made clone') + clone.mainField = makeCloneFieldTree(this.mainField) as DynamicField; + console.log('reinit') + clone.mainField.initializeDocument(clone.mainField.documentOptions); + console.log('cloned, fieldinfo: ', this.mainField, ' width: ', this.mainField.renderedDoc._width, ' options width: ', clone.mainField.documentOptions._width); return clone; } |
