From d2c9c33d41b9543f7642bb3ba2159ca3b90f1b14 Mon Sep 17 00:00:00 2001 From: "Grot (@grafanabot)" <43478413+grafanabot@users.noreply.github.com> Date: Tue, 1 Jun 2021 00:29:08 -0400 Subject: [PATCH] Color: Remove the default color scale logic (#34913) (#34918) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 179bfecb3eddb7f6d65a33d0f027d9a68a33107d) Co-authored-by: Torkel Ödegaard --- .../src/field/displayProcessor.ts | 34 ++----------------- 1 file changed, 2 insertions(+), 32 deletions(-) diff --git a/packages/grafana-data/src/field/displayProcessor.ts b/packages/grafana-data/src/field/displayProcessor.ts index 617639f445d..b59f5743f38 100644 --- a/packages/grafana-data/src/field/displayProcessor.ts +++ b/packages/grafana-data/src/field/displayProcessor.ts @@ -8,7 +8,7 @@ import { getValueFormat, isBooleanUnit } from '../valueFormats/valueFormats'; import { getValueMappingResult } from '../utils/valueMappings'; import { dateTime } from '../datetime'; import { KeyValue, TimeZone } from '../types'; -import { getScaleCalculator, ScaleCalculator } from './scale'; +import { getScaleCalculator } from './scale'; import { GrafanaTheme2 } from '../themes/types'; import { anyToNumber } from '../utils/anyToNumber'; @@ -57,7 +57,6 @@ export function getDisplayProcessor(options?: DisplayProcessorOptions): DisplayP const formatFunc = getValueFormat(unit || 'none'); const scaleFunc = getScaleCalculator(field, options.theme); - const defaultColor = getDefaultColorFunc(field, scaleFunc, options.theme); return (value: any) => { const { mappings } = config; @@ -117,7 +116,7 @@ export function getDisplayProcessor(options?: DisplayProcessorOptions): DisplayP } if (!color) { - const scaleResult = defaultColor(value); + const scaleResult = scaleFunc(-Infinity); color = scaleResult.color; percent = scaleResult.percent; } @@ -136,32 +135,3 @@ export function getRawDisplayProcessor(): DisplayProcessor { numeric: (null as unknown) as number, }); } - -function getDefaultColorFunc(field: Field, scaleFunc: ScaleCalculator, theme: GrafanaTheme2) { - if (field.type === FieldType.string) { - return (value: any) => { - if (!value) { - return { color: theme.colors.background.primary, percent: 0 }; - } - - const hc = strHashCode(value as string); - const color = theme.visualization.getColorByName( - theme.visualization.palette[Math.floor(hc % theme.visualization.palette.length)] - ); - - return { - color: color, - percent: 0, - }; - }; - } - return (value: any) => scaleFunc(-Infinity); -} - -/** - * Converts a string into a numeric value -- we just need it to be different - * enough so that it has a reasonable distribution across a color pallet - */ -function strHashCode(str: string) { - return str.split('').reduce((prevHash, currVal) => ((prevHash << 5) - prevHash + currVal.charCodeAt(0)) | 0, 0); -}