diff --git a/packages/grafana-data/src/utils/valueMappings.test.ts b/packages/grafana-data/src/utils/valueMappings.test.ts index b523cc711fb..f1f465ee849 100644 --- a/packages/grafana-data/src/utils/valueMappings.test.ts +++ b/packages/grafana-data/src/utils/valueMappings.test.ts @@ -78,4 +78,15 @@ describe('Format value with value mappings', () => { expect(getMappedValue(valueMappings, value).text).toEqual('1-20'); }); + + it('should map value text to mapping', () => { + const valueMappings: ValueMapping[] = [ + { id: 0, operator: '', text: '1-20', type: MappingType.RangeToText, from: '1', to: '20' }, + { id: 1, operator: '', text: 'ELVA', type: MappingType.ValueToText, value: 'elva' }, + ]; + + const value = 'elva'; + + expect(getMappedValue(valueMappings, value).text).toEqual('ELVA'); + }); }); diff --git a/packages/grafana-data/src/utils/valueMappings.ts b/packages/grafana-data/src/utils/valueMappings.ts index 65fd4304e39..8aa3f9061da 100644 --- a/packages/grafana-data/src/utils/valueMappings.ts +++ b/packages/grafana-data/src/utils/valueMappings.ts @@ -19,7 +19,9 @@ const addValueToTextMappingText = ( const valueToTextMappingAsNumber = parseFloat(valueToTextMapping.value as string); if (isNaN(valueAsNumber) || isNaN(valueToTextMappingAsNumber)) { - return allValueMappings; + if (value === valueToTextMapping.value) { + return allValueMappings.concat(valueToTextMapping); + } } if (valueAsNumber !== valueToTextMappingAsNumber) { diff --git a/packages/grafana-ui/src/components/ValueMappingsEditor/MappingRow.tsx b/packages/grafana-ui/src/components/ValueMappingsEditor/MappingRow.tsx index 473c16f746e..aa835f34b10 100644 --- a/packages/grafana-ui/src/components/ValueMappingsEditor/MappingRow.tsx +++ b/packages/grafana-ui/src/components/ValueMappingsEditor/MappingRow.tsx @@ -83,7 +83,6 @@ export const MappingRow: React.FC = ({ valueMapping, updateValueMapping, <> onMappingValueChange(e.currentTarget.value)} onKeyDown={onKeyDown(onMappingValueChange)} diff --git a/packages/grafana-ui/src/utils/standardEditors.tsx b/packages/grafana-ui/src/utils/standardEditors.tsx index ba44239fcd1..56bfa3289bf 100644 --- a/packages/grafana-ui/src/utils/standardEditors.tsx +++ b/packages/grafana-ui/src/utils/standardEditors.tsx @@ -161,7 +161,7 @@ export const getStandardFieldConfigs = () => { process: valueMappingsOverrideProcessor, settings: {}, defaultValue: [], - shouldApply: field => field.type === FieldType.number, + shouldApply: () => true, category: ['Value mappings'], getItemsCount: (value?) => (value ? value.length : 0), };