diff options
author | Nathan-SR <144961007+Nathan-SR@users.noreply.github.com> | 2025-04-09 21:23:53 -0400 |
---|---|---|
committer | Nathan-SR <144961007+Nathan-SR@users.noreply.github.com> | 2025-04-09 21:23:53 -0400 |
commit | d5a9567c75e121b73f376718c311585b70f4bf22 (patch) | |
tree | a29c1e9ff2a7013d28c39ca113ba68ae0d2e453e | |
parent | e9bc998554515ecbe86f7d00b01d3cf5d2048b6e (diff) |
fixed field validity mapping and type changing
5 files changed, 19 insertions, 5 deletions
diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx index 0c5ae58a3..6d8d810aa 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx @@ -74,7 +74,7 @@ export class DocCreatorMenu extends ObservableReactComponent<DocCreateMenuProps> // eslint-disable-next-line no-use-before-define static Instance: DocCreatorMenu; - private DEBUG_MODE: boolean = true; + private DEBUG_MODE: boolean = false; private _disposers: { [name: string]: IDisposer } = {}; private _ref: HTMLDivElement | null = null; private templateManager: TemplateManager; @@ -664,6 +664,7 @@ export class DocCreatorMenu extends ObservableReactComponent<DocCreateMenuProps> } else { this._dataViz?.updateColDefaults(); + console.log('field infos are: ', this.fieldsInfos) templates.push(...this.templateManager.getValidTemplates(this.fieldsInfos)); const assignments = await this.assignColsToFields(templates, this.fieldsInfos); diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts index cf6e145cb..2fe146b1c 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Template.ts @@ -65,7 +65,6 @@ export class Template { printFieldInfo = () => { this.allFields.forEach(field => { const doc = field.renderedDoc; - console.log('title: ', field.getTitle(), ' width: ', doc?.width); }); }; diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/DynamicField.ts b/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/DynamicField.ts index b5e73ff18..6326a4a25 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/DynamicField.ts +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/DynamicField.ts @@ -62,6 +62,7 @@ export class DynamicField extends TemplateField { // implement Field's abstract method for replacing a subfield with a new one exchangeFields(newField: TemplateField, oldField: TemplateField) { this._subfields?.splice(this._subfields.indexOf(oldField), 1, newField); + this.initRenderDoc(this._settings); } get isContentField(): boolean { diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/StaticContentField.ts b/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/StaticContentField.ts index af3618106..38b301c87 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/StaticContentField.ts +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/StaticContentField.ts @@ -27,10 +27,12 @@ export abstract class StaticContentField extends TemplateField { export class ImageTemplateField extends StaticContentField { setContent(url: string, type?: ViewType) { + console.log('setting image content to ', url) this.setDataContent(ViewType.IMG, 'data', new ImageField(url), url, type); } initRenderDoc(settings: FieldSettings) { + console.log('initializing image field') settings.opts.title = settings.title ?? ''; settings.opts._layout_fitWidth = false; this._renderDoc = Docs.Create.ImageDocument('', settings.opts); @@ -45,7 +47,7 @@ export class TextTemplateField extends StaticContentField { initRenderDoc(settings: FieldSettings) { settings.opts.title = settings.title ?? ''; - settings.opts._text_fontSize = TemplateFieldUtils.calculateFontSize(this._dimensions?.width ?? 10, this._dimensions?.height ?? 10, '', true) + ''; + settings.opts.text_fontSize = TemplateFieldUtils.calculateFontSize(this._dimensions?.width ?? 10, this._dimensions?.height ?? 10, '', true) + ''; this._renderDoc = Docs.Create.TextDocument('', settings.opts); return this; } diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/TemplateField.ts b/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/TemplateField.ts index 74d73e692..48e01d6ef 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/TemplateField.ts +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateFieldTypes/TemplateField.ts @@ -78,7 +78,10 @@ export abstract class TemplateField { } // eslint-disable-next-line @typescript-eslint/no-unused-vars changeFieldType = (newType: ViewType): TemplateField => { - const newField = TemplateField.CreateField(this._settings, this._id, this._parent, true); + console.log('chaning field', this._title, 'to type:', newType) + const newSettings = this._settings; + newSettings.viewType = newType; + const newField = TemplateField.CreateField(newSettings, this._id, this._parent, true); this._parent?.exchangeFields(newField, this); return newField; }; @@ -86,7 +89,15 @@ export abstract class TemplateField { matches = (cols: Col[]): number[] => { const colMatchesField = (col: Col) => (this._settings?.sizes?.some(size => col.sizes?.includes(size)) && this._settings.types?.includes(col.type)) ?? false; - return cols.filter(colMatchesField).map((col, v) => v); + const matches: Array<number> = []; + + cols.forEach((col, v) => { + if (colMatchesField(col)) { + matches.push(v); + } + }); + + return matches; }; private getLocalDimensions = (coords: { tl: [number, number]; br: [number, number] }, parentDimensions?: FieldDimensions): FieldDimensions => { |