grafana/public/app/features/templating/macroRegistry.ts
Torkel Ödegaard 507c6e7d97
Templating: Replace __data , __field and __cell_n with macros (#65324)
* Templating: __data __field and __series macros

* filter out datacontext from json serialization

* Fix condition

* Update

* Added test cases for formatting data, and field macros
2023-04-05 11:10:33 +02:00

26 lines
926 B
TypeScript

import { DataLinkBuiltInVars, ScopedVars, urlUtil } from '@grafana/data';
import { getTimeSrv } from '../dashboard/services/TimeSrv';
import { getVariablesUrlParams } from '../variables/getAllVariableValuesForUrl';
import { dataMacro, fieldMacro, seriesNameMacro, valueMacro } from './dataMacros';
import { MacroHandler } from './types';
export const macroRegistry: Record<string, MacroHandler> = {
['__value']: valueMacro,
['__data']: dataMacro,
['__series']: seriesNameMacro,
['__field']: fieldMacro,
[DataLinkBuiltInVars.includeVars]: includeVarsMacro,
[DataLinkBuiltInVars.keepTime]: urlTimeRangeMacro,
};
function includeVarsMacro(match: string, fieldPath?: string, scopedVars?: ScopedVars) {
const allVariablesParams = getVariablesUrlParams(scopedVars);
return urlUtil.toUrlParams(allVariablesParams);
}
function urlTimeRangeMacro() {
return urlUtil.toUrlParams(getTimeSrv().timeRangeForUrl());
}