aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts
diff options
context:
space:
mode:
authorNathan-SR <144961007+Nathan-SR@users.noreply.github.com>2025-05-09 19:15:29 -0400
committerNathan-SR <144961007+Nathan-SR@users.noreply.github.com>2025-05-09 19:15:29 -0400
commitf60a8539a4b1fd0c9b3249b94bff011fd7f742e5 (patch)
tree67915e27d18e77e96f2da6ca4feea1a5603f467f /src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts
parenta83dfdf011d7f5c7d8874c1f6cd776b4909d0a79 (diff)
bunch of changes, everything still broken
Diffstat (limited to 'src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts')
-rw-r--r--src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts
index 1a4384bc1..2bf9f8de5 100644
--- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts
+++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts
@@ -8,16 +8,15 @@ import { Conditional } from './Backend/TemplateManager';
export class Template {
_mainField: DynamicField;
- private conditionalLogic: Record<string, Conditional[]>;
+ private conditionalLogic: Record<string, Conditional[]> = {};
/**
* A Template can be created from a description of its fields (FieldSettings) or from a DynamicField
* @param definition definition of template as settings or DynamicField
*/
- constructor(definition: FieldSettings | DynamicField, conditionalLogic: Record<string, Conditional[]>) {
+ constructor(definition: FieldSettings | DynamicField) {
makeAutoObservable(this);
this._mainField = definition instanceof DynamicField ? definition : this.setupMainField(definition);
- this.conditionalLogic = conditionalLogic;
}
get childFields(): TemplateField[] {
@@ -56,7 +55,7 @@ export class Template {
//dispose each subfields disposers, etc.
};
- cloneBase = () => new Template(this._mainField?.makeClone(undefined) ?? TemplateLayouts.BasicSettings, this.conditionalLogic);
+ cloneBase = () => new Template(this._mainField?.makeClone(undefined) ?? TemplateLayouts.BasicSettings);
getRenderedDoc = () => this.doc;
@@ -103,6 +102,14 @@ export class Template {
fields.forEach(this.applyConditionalLogicToField);
}
+ addConditionalStatement = (field: string, statement: Conditional) => {
+ !this.conditionalLogic[field] ? this.conditionalLogic[field] = [statement] : this.conditionalLogic[field].push(statement);
+ }
+
+ removeConditionalStatement = (field: string, statement: Conditional) => {
+ this.conditionalLogic[field] = this.conditionalLogic[field]?.filter(cond => cond !== statement);
+ }
+
getMatches = (cols: Col[]): number[][] => {
const numFields = this.contentFields.length;