kibana/x-pack/plugins/lens/public/pie_visualization/render_helpers.ts

40 lines
1.2 KiB
TypeScript
Raw Normal View History

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { Datum, LayerValue } from '@elastic/charts';
import { Datatable, DatatableColumn } from 'src/plugins/expressions/public';
2020-05-15 12:01:27 +02:00
import { LensFilterEvent } from '../types';
export function getSliceValue(d: Datum, metricColumn: DatatableColumn) {
if (typeof d[metricColumn.id] === 'number' && d[metricColumn.id] !== 0) {
return d[metricColumn.id];
}
return Number.EPSILON;
}
export function getFilterContext(
clickedLayers: LayerValue[],
layerColumnIds: string[],
table: Datatable
2020-05-15 12:01:27 +02:00
): LensFilterEvent['data'] {
2020-05-22 09:08:58 +02:00
const matchingIndex = table.rows.findIndex((row) =>
clickedLayers.every((layer, index) => {
const columnId = layerColumnIds[index];
return row[columnId] === layer.groupByRollup;
})
);
return {
2020-05-15 12:01:27 +02:00
data: clickedLayers.map((clickedLayer, index) => ({
2020-05-22 09:08:58 +02:00
column: table.columns.findIndex((col) => col.id === layerColumnIds[index]),
2020-05-15 12:01:27 +02:00
row: matchingIndex,
value: clickedLayer.groupByRollup,
table,
})),
};
}