diff --git a/public/app/features/transformers/configFromQuery/ConfigFromQueryTransformerEditor.tsx b/public/app/features/transformers/configFromQuery/ConfigFromQueryTransformerEditor.tsx index 2a5c3b0999a..d9c70c9b0b7 100644 --- a/public/app/features/transformers/configFromQuery/ConfigFromQueryTransformerEditor.tsx +++ b/public/app/features/transformers/configFromQuery/ConfigFromQueryTransformerEditor.tsx @@ -10,7 +10,8 @@ import { TransformerCategory, } from '@grafana/data'; import { t } from '@grafana/i18n'; -import { fieldMatchersUI, InlineField, InlineFieldRow, Select, useStyles2 } from '@grafana/ui'; +import { Checkbox, fieldMatchersUI, InlineField, InlineFieldRow, Select, useStyles2 } from '@grafana/ui'; +import { FieldNamePicker } from '@grafana/ui/internal'; import { getTransformationContent } from '../docs/getTransformationContent'; import { FieldToConfigMappingEditor } from '../fieldToConfigMapping/FieldToConfigMappingEditor'; @@ -21,6 +22,13 @@ import { getConfigFromDataTransformer, ConfigFromQueryTransformOptions } from '. export interface Props extends TransformerUIProps {} +const fieldNamePickerSettings = { + editor: FieldNamePicker, + id: '', + name: '', + settings: { width: 24, isClearable: false }, +}; + export function ConfigFromQueryTransformerEditor({ input, onChange, options }: Props) { const styles = useStyles2(getStyles); @@ -41,6 +49,13 @@ export function ConfigFromQueryTransformerEditor({ input, onChange, options }: P }); }; + const onMappingChange = (value: SelectableValue) => { + onChange({ + ...options, + isMapping: value.value || false, + }); + }; + const onMatcherChange = (value: SelectableValue) => { onChange({ ...options, applyTo: { id: value.value! } }); }; @@ -85,14 +100,21 @@ export function ConfigFromQueryTransformerEditor({ input, onChange, options }: P onChange={onMatcherConfigChange} /> + + + - {configFrame && ( + {configFrame && !options.isMapping && ( onChange({ ...options, mappings })} - withReducers + withReducers={!options.isMapping} /> )} diff --git a/public/app/features/transformers/configFromQuery/configFromQuery.ts b/public/app/features/transformers/configFromQuery/configFromQuery.ts index 4e8ae24b311..1cdfc766691 100644 --- a/public/app/features/transformers/configFromQuery/configFromQuery.ts +++ b/public/app/features/transformers/configFromQuery/configFromQuery.ts @@ -22,6 +22,7 @@ export interface ConfigFromQueryTransformOptions { configRefId?: string; mappings: FieldToConfigMapping[]; applyTo?: MatcherConfig; + isMapping?: boolean; } export function extractConfigFromQuery(options: ConfigFromQueryTransformOptions, data: DataFrame[]) { diff --git a/public/app/features/transformers/fieldToConfigMapping/fieldToConfigMapping.ts b/public/app/features/transformers/fieldToConfigMapping/fieldToConfigMapping.ts index 9cd537aa190..cf32c341bd9 100644 --- a/public/app/features/transformers/fieldToConfigMapping/fieldToConfigMapping.ts +++ b/public/app/features/transformers/fieldToConfigMapping/fieldToConfigMapping.ts @@ -28,6 +28,7 @@ export interface FieldToConfigMapping { reducerId?: ReducerID; handlerKey: string | null; handlerArguments?: HandlerArguments; + sourceFieldName?: string; // for mapping } /**