Files
grafana/public/app/features/dashboard/utils/loadSnapshotData.ts
Jack Westbrook 1fc9b4bfc1 Chore: Remove dashboard state barrel file (#97562)
* refactor(dashboard-state): delete dashboard/state barrel file and update imports

* chore(betterer): update results
2024-12-06 16:01:51 +01:00

44 lines
1.4 KiB
TypeScript

import {
applyFieldOverrides,
arrayToDataFrame,
getDefaultTimeRange,
getProcessedDataFrames,
LoadingState,
PanelData,
} from '@grafana/data';
import { config } from 'app/core/config';
import { SnapshotWorker } from '../../query/state/DashboardQueryRunner/SnapshotWorker';
import { getTimeSrv } from '../services/TimeSrv';
import { DashboardModel } from '../state/DashboardModel';
import { PanelModel } from '../state/PanelModel';
import { applyPanelTimeOverrides } from './panel';
export function loadSnapshotData(panel: PanelModel, dashboard: DashboardModel): PanelData {
const data = getProcessedDataFrames(panel.snapshotData);
const worker = new SnapshotWorker();
const options = { dashboard, range: getDefaultTimeRange() };
const annotationEvents = worker.canWork(options) ? worker.getAnnotationsInSnapshot(dashboard, panel.id) : [];
const annotations = [arrayToDataFrame(annotationEvents)];
const timeData = applyPanelTimeOverrides(panel, getTimeSrv().timeRange());
return {
timeRange: timeData.timeRange,
state: LoadingState.Done,
series: applyFieldOverrides({
data,
fieldConfig: {
defaults: {},
overrides: [],
},
replaceVariables: panel.replaceVariables,
fieldConfigRegistry: panel.plugin!.fieldConfigRegistry,
theme: config.theme2,
timeZone: dashboard.getTimezone(),
}),
structureRev: 1,
annotations,
};
}