diff options
Diffstat (limited to 'src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts')
-rw-r--r-- | src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts index 7ff521f18..fae0d06e4 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts @@ -10,8 +10,6 @@ import { Doc } from '../../../../../fields/Doc'; export class Template { _mainField: DynamicField; - 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 @@ -84,11 +82,11 @@ export class Template { return maxMatches === this.contentFields.length && this.title !== 'template_framework'; }; - applyConditionalLogicToField = (field: TemplateField) => { + applyConditionalLogicToField = (field: TemplateField, logic: Record<string, Conditional[]>) => { if (field instanceof DynamicField) return; - const logic: Conditional[] = this.conditionalLogic[field.getTitle()]; + const fieldStatements: Conditional[] = logic[field.getTitle()]; const content = field.getContent() - logic && logic.forEach(statement => { + fieldStatements && fieldStatements.forEach(statement => { if (content === statement.condition) { if (statement.target === 'template') { this._mainField.renderedDoc![statement.attribute] = statement.value; @@ -99,17 +97,10 @@ export class Template { }) } - applyConditionalLogic = () => { - const fields: TemplateField[] = [this._mainField, ...this.allFields]; - 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); + applyConditionalLogic = (logic: Record<string, Conditional[]>) => { + console.log('applying logic: ', logic) + const fields: TemplateField[] = [...this.allFields]; + fields.forEach(field => this.applyConditionalLogicToField(field, logic)); } setImageAsBackground(url: string, makeTransparent: boolean = false) { |