PanelInspect: Handle field type frame for csv export (#91983)

PanelInspect: Handle field type frame
This commit is contained in:
Drew Slobodnjak 2024-08-15 13:15:49 -07:00 committed by GitHub
parent e60b0aef83
commit de0e6d0fce
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 25 additions and 1 deletions

View File

@ -5,6 +5,7 @@ import { MutableDataFrame } from '../dataframe/MutableDataFrame';
import { getDataFrameRow, toDataFrameDTO } from '../dataframe/processDataFrame';
import { getDisplayProcessor } from '../field/displayProcessor';
import { createTheme } from '../themes/createTheme';
import { FieldType } from '../types/dataFrame';
import { CSVHeaderStyle, readCSV, toCSV } from './csv';
@ -159,4 +160,23 @@ describe('DataFrame to CSV', () => {
1589455688623,2020-05-14 11:28:08"
`);
});
it('should handle field type frame', () => {
const dataFrame = new MutableDataFrame({
fields: [
{ name: 'Time', values: [1589455688623] },
{
name: 'Value',
type: FieldType.frame,
values: [{ value: '1234' }],
},
],
});
const csv = toCSV([dataFrame]);
expect(csv).toMatchInlineSnapshot(`
""Time","Value"
1589455688623,1234"
`);
});
});

View File

@ -309,7 +309,11 @@ export function toCSV(data: DataFrame[], config?: CSVConfig): string {
csv = csv + config.delimiter;
}
const v = fields[j].values[i];
let v = fields[j].values[i];
// For FieldType frame, use value if it exists to prevent exporting [object object]
if (fields[j].type === FieldType.frame && fields[j].values[i].value) {
v = fields[j].values[i].value;
}
if (v !== null) {
csv = csv + writers[j](v);
}