diff --git a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts index 37729459f8..f613beb074 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/src/utils/getColorFormatters.ts @@ -37,16 +37,21 @@ export const getOpacity = ( extremeValue: number, minOpacity = MIN_OPACITY_BOUNDED, maxOpacity = MAX_OPACITY, -) => - extremeValue === cutoffPoint - ? maxOpacity - : round( - Math.abs( - ((maxOpacity - minOpacity) / (extremeValue - cutoffPoint)) * - (value - cutoffPoint), - ) + minOpacity, - 2, - ); +) => { + if (extremeValue === cutoffPoint) { + return maxOpacity; + } + return Math.min( + maxOpacity, + round( + Math.abs( + ((maxOpacity - minOpacity) / (extremeValue - cutoffPoint)) * + (value - cutoffPoint), + ) + minOpacity, + 2, + ), + ); +}; export const getColorFunction = ( { diff --git a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts index 051089f87c..4b957f628c 100644 --- a/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts +++ b/superset-frontend/packages/superset-ui-chart-controls/test/utils/getColorFormatters.test.ts @@ -50,6 +50,9 @@ describe('getOpacity', () => { expect(getOpacity(100, 100, 50)).toEqual(0.05); expect(getOpacity(100, 100, 100, 0, 0.8)).toEqual(0.8); expect(getOpacity(100, 100, 50, 0, 1)).toEqual(0); + expect(getOpacity(999, 100, 50, 0, 1)).toEqual(1); + expect(getOpacity(100, 100, 50, 0.99, 1)).toEqual(0.99); + expect(getOpacity(99, 100, 50, 0, 1)).toEqual(0.02); }); });