This is an automated email from the ASF dual-hosted git repository. rusackas pushed a commit to branch setting-opacity-boundaries in repository https://gitbox.apache.org/repos/asf/superset.git
commit 849bc044ad286b961b2370c47874118b0aaa3d44 Author: Evan Rusackas <[email protected]> AuthorDate: Wed Jun 29 18:06:04 2022 -0600 Respecting max/min opacities, and adding tests. --- .../src/utils/getColorFormatters.ts | 28 ++++++++++++++-------- .../test/utils/getColorFormatters.test.ts | 2 ++ 2 files changed, 20 insertions(+), 10 deletions(-) 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..a781e83bff 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,24 @@ 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; + } + const result = round( + Math.abs( + ((maxOpacity - minOpacity) / (extremeValue - cutoffPoint)) * + (value - cutoffPoint), + ) + minOpacity, + 2, + ); + + if (result < minOpacity) { + return minOpacity; + } + + return result > maxOpacity ? maxOpacity : result; +}; 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..23d712128f 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,8 @@ 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(-999, 100, 50, 0, 1)).toEqual(0.05); }); });
