From 6580fc33ad8043dd9e05d5e5056f1c76799ef6d9 Mon Sep 17 00:00:00 2001 From: Daniil Suleiman Date: Fri, 29 Jan 2021 16:49:10 +0300 Subject: [PATCH] Filter out non-dimension values --- ...ed_columns.ts => create_formatted_table.ts} | 11 +++++++++-- .../public/utils/table_vis_response_handler.ts | 18 +++++++----------- 2 files changed, 16 insertions(+), 13 deletions(-) rename src/plugins/vis_type_table/public/utils/{create_formatted_columns.ts => create_formatted_table.ts} (91%) 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);