import React, { useCallback } from 'react'; import { DataTransformerID, FieldNamePickerConfigSettings, PluginState, StandardEditorsRegistryItem, TransformerRegistryItem, TransformerUIProps, FieldType, TransformerCategory, } from '@grafana/data'; import { InlineField, InlineFieldRow } from '@grafana/ui'; import { FieldNamePicker } from '@grafana/ui/src/components/MatchersUI/FieldNamePicker'; import { GazetteerPathEditor, GazetteerPathEditorConfigSettings } from 'app/features/geo/editor/GazetteerPathEditor'; import { FieldLookupOptions, fieldLookupTransformer } from './fieldLookup'; const fieldNamePickerSettings: StandardEditorsRegistryItem = { settings: { width: 30, filter: (f) => f.type === FieldType.string, placeholderText: 'Select text field', noFieldsMessage: 'No text fields found', }, name: '', id: '', editor: () => null, }; const fieldLookupSettings = { settings: {}, } as StandardEditorsRegistryItem; export const FieldLookupTransformerEditor = ({ input, options, onChange }: TransformerUIProps) => { const onPickLookupField = useCallback( (value: string | undefined) => { onChange({ ...options, lookupField: value, }); }, [onChange, options] ); const onPickGazetteer = useCallback( (value: string | undefined) => { onChange({ ...options, gazetteer: value, }); }, [onChange, options] ); return (
); }; export const fieldLookupTransformRegistryItem: TransformerRegistryItem = { id: DataTransformerID.fieldLookup, editor: FieldLookupTransformerEditor, transformation: fieldLookupTransformer, name: 'Field lookup', description: `Use a field value to lookup additional fields from an external source. This currently supports spatial data, but will eventually support more formats.`, state: PluginState.alpha, categories: new Set([TransformerCategory.PerformSpatialOperations]), };