import { useMemo } from 'react'; import { DataFrame, getFieldDisplayName, TransformerCategory } from '@grafana/data'; export function useAllFieldNamesFromDataFrames(input: DataFrame[]): string[] { return useMemo(() => { if (!Array.isArray(input)) { return []; } return Object.keys( input.reduce>((names, frame) => { if (!frame || !Array.isArray(frame.fields)) { return names; } return frame.fields.reduce((names, field) => { const t = getFieldDisplayName(field, frame, input); names[t] = true; return names; }, names); }, {}) ); }, [input]); } export function getDistinctLabels(input: DataFrame[]): Set { const distinct = new Set(); for (const frame of input) { for (const field of frame.fields) { if (field.labels) { for (const k of Object.keys(field.labels)) { distinct.add(k); } } } } return distinct; } export const categoriesLabels: { [K in TransformerCategory]: string } = { combine: 'Combine', calculateNewFields: 'Calculate new fields', createNewVisualization: 'Create new visualization', filter: 'Filter', performSpatialOperations: 'Perform spatial operations', reformat: 'Reformat', reorderAndRename: 'Reorder and rename', };