diff --git a/public/app/plugins/panel/histogram/HistogramPanel.tsx b/public/app/plugins/panel/histogram/HistogramPanel.tsx index 5e2e245997c..ce69ca98296 100644 --- a/public/app/plugins/panel/histogram/HistogramPanel.tsx +++ b/public/app/plugins/panel/histogram/HistogramPanel.tsx @@ -1,123 +1,10 @@ -import { useMemo } from 'react'; +import { PanelProps } from '@grafana/data'; +import { HistogramPanel as HistogramPanelComponent } from '@grafana/histogram'; -import { - histogramFieldsToFrame, - joinHistograms, - DataFrameType, - PanelProps, - buildHistogram, - cacheFieldDisplayNames, - getHistogramFields, -} from '@grafana/data'; -import { Trans } from '@grafana/i18n'; -import { TooltipDisplayMode, TooltipPlugin2, useTheme2 } from '@grafana/ui'; -import { TooltipHoverMode } from '@grafana/ui/internal'; - -import { Histogram, getBucketSize } from './Histogram'; -import { HistogramTooltip } from './HistogramTooltip'; import { Options } from './panelcfg.gen'; type Props = PanelProps; -export const HistogramPanel = ({ data, options, width, height }: Props) => { - const theme = useTheme2(); - - const histogram = useMemo(() => { - if (!data.series.length) { - return undefined; - } - - // stamp origins for legend's calcs (from raw values) - data.series.forEach((frame, frameIndex) => { - frame.fields.forEach((field, fieldIndex) => { - field.state = { - ...field.state, - origin: { - frameIndex, - fieldIndex, - }, - }; - }); - }); - - cacheFieldDisplayNames(data.series); - - if ( - data.series.length === 1 || - data.series.every( - (frame) => frame.meta?.type === DataFrameType.HeatmapCells || frame.meta?.type === DataFrameType.HeatmapRows - ) - ) { - const histograms = data.series.map((frame) => getHistogramFields(frame)).filter((hist) => hist != null); - - if (histograms.length) { - return histogramFieldsToFrame(joinHistograms(histograms), theme); - } - } - const hist = buildHistogram(data.series, options, theme); - if (!hist) { - return undefined; - } - - return histogramFieldsToFrame(hist, theme); - }, [data.series, options, theme]); - - if (!histogram || !histogram.fields.length) { - return ( -
-

- - No histogram found in response - -

-
- ); - } - - const bucketSize = getBucketSize(histogram); - - return ( - - {(builder, alignedFrame, xMinOnlyFrame) => { - return ( - <> - {options.tooltip.mode !== TooltipDisplayMode.None && ( - { - return ( - - ); - }} - maxWidth={options.tooltip.maxWidth} - /> - )} - - ); - }} - - ); +export const HistogramPanel = (props: Props) => { + return ; }; diff --git a/public/app/plugins/panel/histogram/module.tsx b/public/app/plugins/panel/histogram/module.tsx index 4ee2fa97a09..89d87a993d6 100644 --- a/public/app/plugins/panel/histogram/module.tsx +++ b/public/app/plugins/panel/histogram/module.tsx @@ -6,15 +6,17 @@ import { PanelPlugin, histogramFieldInfo, } from '@grafana/data'; +import { + defaultHistogramConfig, + changeToHistogramPanelMigrationHandler, + originalDataHasHistogram, +} from '@grafana/histogram'; import { t } from '@grafana/i18n'; import { commonOptionsBuilder, getGraphFieldOptions } from '@grafana/ui'; import { StackingEditor } from '@grafana/ui/internal'; import { HistogramPanel } from './HistogramPanel'; -import { defaultHistogramConfig } from './config'; -import { changeToHistogramPanelMigrationHandler } from './migrations'; import { FieldConfig, Options, defaultFieldConfig, defaultOptions } from './panelcfg.gen'; -import { originalDataHasHistogram } from './utils'; export const plugin = new PanelPlugin(HistogramPanel) .setPanelChangeHandler(changeToHistogramPanelMigrationHandler)