diff --git a/packages/ketchup/src/components/kup-data-table/kup-data-table.tsx b/packages/ketchup/src/components/kup-data-table/kup-data-table.tsx index 0f0e14147..99384bc1d 100644 --- a/packages/ketchup/src/components/kup-data-table/kup-data-table.tsx +++ b/packages/ketchup/src/components/kup-data-table/kup-data-table.tsx @@ -2113,12 +2113,28 @@ export class KupDataTable { result: string | KupDataColumn, afterColumn: string ) { - this.visibleColumns = this.getVisibleColumns({ - includeCodVer: true, - }).map((col) => col.name); - if (typeof result !== 'string') { - if (this.visibleColumns.findIndex((c) => c === result.name) < 0) { + // Check if dataTable has visible columns + const dataTableHasVisibleColumns = + this.visibleColumns && this.visibleColumns.length > 0; + + // - If dataTableHasVisibleColumns is true: + // return every col.name without filterings + // - If dataTableHasVisibleColumns is false: + // result column is filtered out because it is already inserted in the data + // and will make resultColumnIndexNotFound false, not adding the column + this.visibleColumns = this.getVisibleColumns({ + includeCodVer: true, + }).map((col) => { + if (dataTableHasVisibleColumns || col.name !== result.name) { + return col.name; + } + }); + + const resultColumnIndexNotFound = + this.visibleColumns.findIndex((c) => c === result.name) < 0; + + if (resultColumnIndexNotFound) { this.#kupManager.debug.logMessage( this, 'New column [' + diff --git a/packages/ketchup/src/managers/kup-data/kup-data-column-helper.ts b/packages/ketchup/src/managers/kup-data/kup-data-column-helper.ts index 907cd3b77..d697ec6bc 100644 --- a/packages/ketchup/src/managers/kup-data/kup-data-column-helper.ts +++ b/packages/ketchup/src/managers/kup-data/kup-data-column-helper.ts @@ -370,8 +370,9 @@ function newColumnFromMath( ...firstColumn, name: newName, title: title ? title : newTitle, - obj: newObj, + obj: newObj ?? { t: '', p: '', k: '' }, resultOf: formula, + visible: true, }; dataset.columns.splice( dataset.columns.indexOf(firstColumn) + 1,