diff --git a/src/plugins/vis_type_table/public/utils/create_formatted_columns.ts b/src/plugins/vis_type_table/public/utils/create_formatted_table.ts similarity index 91% rename from src/plugins/vis_type_table/public/utils/create_formatted_columns.ts rename to src/plugins/vis_type_table/public/utils/create_formatted_table.ts index 8477de50cc0391..9dbb6c0c76e258 100644 --- a/src/plugins/vis_type_table/public/utils/create_formatted_columns.ts +++ b/src/plugins/vis_type_table/public/utils/create_formatted_table.ts @@ -12,13 +12,13 @@ import { getFormatService } from '../services'; import { FormattedColumn, FormattedColumns, TableVisConfig, TableContext } from '../types'; import { AggTypes } from '../../common'; -export const createFormattedColumns = ( +export const createFormattedTable = ( table: Datatable | TableContext, visConfig: TableVisConfig ) => { const { buckets, metrics } = visConfig.dimensions; - return table.columns.reduce((acc, col, i) => { + const formattedColumns = table.columns.reduce((acc, col, i) => { const isBucket = buckets.find(({ accessor }) => accessor === i); const dimension = isBucket || metrics.find(({ accessor }) => accessor === i); @@ -87,4 +87,11 @@ export const createFormattedColumns = ( return acc; }, {}); + + return { + // filter out columns which are not dimensions + columns: table.columns.filter((col) => formattedColumns[col.id]), + rows: table.rows, + formattedColumns, + }; }; diff --git a/src/plugins/vis_type_table/public/utils/table_vis_response_handler.ts b/src/plugins/vis_type_table/public/utils/table_vis_response_handler.ts index afdf7ae98ed40f..0a2b8d81808543 100644 --- a/src/plugins/vis_type_table/public/utils/table_vis_response_handler.ts +++ b/src/plugins/vis_type_table/public/utils/table_vis_response_handler.ts @@ -10,7 +10,7 @@ import { Datatable } from 'src/plugins/expressions'; import { getFormatService } from '../services'; import { TableVisData, TableGroup, TableVisConfig, TableContext } from '../types'; import { addPercentageColumn } from './add_percentage_column'; -import { createFormattedColumns } from './create_formatted_columns'; +import { createFormattedTable } from './create_formatted_table'; /** * Converts datatable input from response into appropriate format for consuming renderer @@ -53,18 +53,14 @@ export function tableVisResponseHandler(input: Datatable, visConfig: TableVisCon }); tables.forEach((tg) => { - tg.table.formattedColumns = createFormattedColumns( - { ...tg.table, columns: input.columns }, - visConfig - ); - tg.table = addPercentageColumn(tg.table, visConfig.percentageCol); + tg.table = createFormattedTable({ ...tg.table, columns: input.columns }, visConfig); + + if (visConfig.percentageCol) { + tg.table = addPercentageColumn(tg.table, visConfig.percentageCol); + } }); } else { - const formattedColumns = createFormattedColumns(input, visConfig); - table = { - ...input, - formattedColumns, - }; + table = createFormattedTable(input, visConfig); if (visConfig.percentageCol) { table = addPercentageColumn(table, visConfig.percentageCol);