From 03d1cd8d220fbb27acb49a3ff9e791db9292b83c Mon Sep 17 00:00:00 2001 From: Nathan-SR <144961007+Nathan-SR@users.noreply.github.com> Date: Mon, 12 May 2025 07:26:51 -0400 Subject: c --- .../DataVizBox/DocCreatorMenu/DocCreatorMenu.scss | 2 +- .../DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx | 37 ++++++++---- .../DocCreatorMenu/Menu/ConditionalsTextarea.tsx | 65 ++++++++++++++++++++++ .../DocCreatorMenu/Menu/TemplateEditingWindow.tsx | 15 +++-- .../nodes/DataVizBox/DocCreatorMenu/Template.ts | 29 +++++++++- .../TemplateFieldTypes/DynamicField.ts | 8 +++ .../TemplateFieldTypes/TemplateField.ts | 6 ++ src/client/views/smartdraw/DrawingFillHandler.tsx | 6 +- 8 files changed, 149 insertions(+), 19 deletions(-) create mode 100644 src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/ConditionalsTextarea.tsx (limited to 'src') diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.scss b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.scss index 2f7b68c4d..5232ad41c 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.scss +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.scss @@ -388,7 +388,7 @@ justify-content: center; align-items: center; position: absolute; - width: calc(100% - 10px); + left: 50%; bottom: 0px; margin: 0px; margin-bottom: 10px; diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx index b024a6e9b..bd5c50aa0 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx @@ -38,6 +38,7 @@ import { TemplateMenuAIUtils } from './Backend/TemplateMenuAIUtils' import { TemplatePreviewGrid } from './Menu/TemplatePreviewGrid'; import { FireflyStructureOptions, TemplateEditingWindow } from './Menu/TemplateEditingWindow'; import { DocCreatorMenuButton } from './Menu/DocCreatorMenuButton'; +import { ConditionalsTextArea } from './Menu/ConditionalsTextarea'; export enum LayoutType { FREEFORM = 'Freeform', @@ -91,6 +92,7 @@ export class DocCreatorMenu extends ObservableReactComponent @observable _userTemplates: Template[] = []; @observable _selectedTemplate: Template | undefined = undefined; @observable _currEditingTemplate: Template | undefined = undefined; + @observable _editedTemplateTrail: Template[] = []; @observable _userCreatedFields: Col[] = []; @observable _collapsedCols: String[] = []; //any columns whose options panels are hidden @@ -589,8 +591,6 @@ export class DocCreatorMenu extends ObservableReactComponent this.variations = []; const mainCollection = this._dataViz?.DocumentView?.().containerViewPath?.().lastElement()?.ComponentView as CollectionFreeFormView; - console.log('styleref: ', useStyleRef); - const clone: Doc = (await Doc.MakeClone(onDoc)).clone; mainCollection.addDocument(clone); clone.x = 10000; @@ -618,15 +618,19 @@ export class DocCreatorMenu extends ObservableReactComponent } }; + @action editLastTemplate = () => { if (this._editedTemplateTrail.length) this._currEditingTemplate = this._editedTemplateTrail.pop()} + @action setExpandedView = (template: Template | undefined) => { - this._currEditingTemplate = template; if (template) { this._menuContent = 'templateEditing'; + this._currEditingTemplate && this._editedTemplateTrail.push(this._currEditingTemplate); } else { this._menuContent = 'templates'; } + this._currEditingTemplate = template; + //Docs.Create.FreeformDocument([doc], { _height: NumListCast(doc._height)[0], _width: NumListCast(doc._width)[0], title: ''}); }; @@ -910,15 +914,26 @@ export class DocCreatorMenu extends ObservableReactComponent ); } + private _newCondCache: Record = {}; + + getParams = (title: string, parameters?: Conditional): Conditional => { + if (parameters) return parameters; + + if (!this._newCondCache[title]) { + this._newCondCache[title] = { field: title, operator: '=', condition: '', target: '', attribute: '', value: '' }; + } + return this._newCondCache[title]; + }; + get dashboardContents() { const contentFieldTitles = this.fieldsInfos.filter(field => field.type !== TemplateFieldType.DATA).map(field => field.title).concat('Template'); const conditionForm = (title: string, parameters?: Conditional, empty: boolean = false) => { - const params: Conditional = parameters ?? this._currEditingConditional; + const params: Conditional = this.getParams(title, parameters); return ( -
+
If
{title}
@@ -929,7 +944,7 @@ export class DocCreatorMenu extends ObservableReactComponent
{params.operator = '<'}}>{'<'}
{params.operator = 'contains'}}>{'has'}
-