diff options
author | Nathan-SR <144961007+Nathan-SR@users.noreply.github.com> | 2025-05-12 01:27:50 -0400 |
---|---|---|
committer | Nathan-SR <144961007+Nathan-SR@users.noreply.github.com> | 2025-05-12 01:27:50 -0400 |
commit | 5be235c8ca1b4ad5d499fac96133e77c773b7c6d (patch) | |
tree | 1cc718c4ce622be757b4d2dea6094e8ca9b869a9 /src/client/views/nodes/DataVizBox/DocCreatorMenu/Backend/TemplateManager.ts | |
parent | 4219c751c0f984fac6e5995c1ab955a8d63a28cd (diff) |
data fields
Diffstat (limited to 'src/client/views/nodes/DataVizBox/DocCreatorMenu/Backend/TemplateManager.ts')
-rw-r--r-- | src/client/views/nodes/DataVizBox/DocCreatorMenu/Backend/TemplateManager.ts | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Backend/TemplateManager.ts b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Backend/TemplateManager.ts index 030c6db95..760940127 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Backend/TemplateManager.ts +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Backend/TemplateManager.ts @@ -1,6 +1,6 @@ import { action, makeAutoObservable } from 'mobx'; import { Col } from '../DocCreatorMenu'; -import { FieldSettings } from '../TemplateFieldTypes/TemplateField'; +import { FieldSettings, TemplateField } from '../TemplateFieldTypes/TemplateField'; import { Template } from '../Template'; import { Doc, NumListCast } from '../../../../../../fields/Doc'; import { DataVizBox } from '../../DataVizBox'; @@ -11,7 +11,7 @@ export type Conditional = { field: string; operator: '=' | '>' | '<'; condition: string; - target: 'self' | 'template'; + target: string; attribute: string; value: string; } @@ -53,13 +53,21 @@ export class TemplateManager { } } + addDataField = (title: string) => { + this.templates.forEach(template => template.addDataField(title)); + } + + removeDataField = (title: string) => { + this.templates.forEach(template => template.removeDataField(title)); + } + createDocsFromTemplate = action((dv: DataVizBox, template: Template, cols: Col[], debug: boolean = false) => { - const fields = Array.from(Object.keys(dv.records[0])); + const csvFields = Array.from(Object.keys(dv.records[0])); const processContent = async (content: { [title: string]: string }) => { const templateCopy = template.clone(); - fields + csvFields .filter(title => title) .forEach(title => { const field = templateCopy.getFieldByTitle(title); @@ -71,7 +79,7 @@ export class TemplateManager { const promises = cols .filter(field => field.AIGenerated) .map(field => { - const templateField = templateCopy.getFieldByTitle(field.title); + const templateField: TemplateField = templateCopy.getFieldByTitle(field.title) as TemplateField; if (templateField !== undefined) { return gptFunc(field.type)(templateCopy, field, templateField.getID); } @@ -92,7 +100,7 @@ export class TemplateManager { const rowContents = debug ? [{}, {}, {}, {}] : NumListCast(dv.layoutDoc.dataViz_selectedRows).map(row => - fields.reduce( + csvFields.reduce( (values, col) => { values[col] = dv.records[row][col]; return values; |