aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx')
-rw-r--r--src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx27
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;
}