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.tsx37
1 files changed, 11 insertions, 26 deletions
diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx
index 57565906b..f05f61b61 100644
--- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx
+++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.tsx
@@ -1,40 +1,25 @@
import { Doc } from "../../../../../fields/Doc";
import { Docs } from "../../../../documents/Documents";
-import { Field } from "./FieldTypes";
+import { DynamicField } from "./FieldTypes/DynamicField";
+import { Field, FieldSettings, ViewType } from "./FieldTypes/Field";
+import { } from "./FieldTypes/FieldUtils";
+import { } from "./FieldTypes/StaticField";
import { TemplateDocInfos } from "./TemplateBackend";
export class Template {
- mainField: Field;
- width: number = 0;
- height: number = 0;
- fields: Field[] = [];
+ mainField: DynamicField;
- constructor(templateInfo: TemplateDocInfos) {
- this.width = templateInfo.width;
- this.height = templateInfo.height;
- this.fields = templateInfo.fields.map(settings => new Field(settings, this));
+ constructor(templateInfo: FieldSettings) {
+ this.mainField = this.setupMainField(templateInfo);
}
- get childFields(): Field[] {
- return this.fields;
- }
+ get childFields(): Field[] { return this.mainField.getSubfields };
+ get allFields(): Field[] { return this.mainField.getAllSubfields };
- get allFields(): Field[] {
- const fields = this.fields;
- this.fields.forEach(field => fields.concat(field.subfields));
- return fields;
+ setupMainField = (templateInfo: FieldSettings) => {
+ return new DynamicField(templateInfo, ViewType.FREEFORM, 0);
}
- getChildDimensions = (coords: { tl: [number, number]; br: [number, number] }): { width: number; height: number; coord: { x: number; y: number } } => {
- const l = (coords.tl[0] * this.height) / 2;
- const t = coords.tl[1] * this.width / 2; //prettier-ignore
- const r = (coords.br[0] * this.height) / 2;
- const b = coords.br[1] * this.width / 2; //prettier-ignore
- const width = r - l;
- const height = b - t;
- const coord = { x: l, y: t };
- return { width, height, coord };
- };
} \ No newline at end of file