From 3d64a5687ba9a350808fb664eea904e8be8104c8 Mon Sep 17 00:00:00 2001 From: Mayur Marakana Date: Tue, 26 Mar 2024 07:11:44 -0700 Subject: [PATCH] fix geochart label observations --- src/chart-parsing.ts | 2 ++ src/chart-style.ts | 21 ++++++++++++--- src/chart.tsx | 61 ++++++++++++++++++++------------------------ 3 files changed, 47 insertions(+), 37 deletions(-) diff --git a/src/chart-parsing.ts b/src/chart-parsing.ts index 4887efd..35ee558 100644 --- a/src/chart-parsing.ts +++ b/src/chart-parsing.ts @@ -628,6 +628,8 @@ export function createChartJSOptions( x: { type: chartConfig.geochart.xAxis?.type, ticks: { + autoSkip: true, + maxTicksLimit: 20, major: { enabled: true, }, diff --git a/src/chart-style.ts b/src/chart-style.ts index da586b9..254aaa4 100644 --- a/src/chart-style.ts +++ b/src/chart-style.ts @@ -109,11 +109,17 @@ export const getSxClasses = (theme: Theme) => { '& .MuiSlider-markLabel-overlap': { marginTop: '20px', }, + '& .MuiSlider-markLabel-first': { + marginLeft: '-40px', + }, + '& .MuiSlider-markLabel-last': { + marginLeft: '40px', + }, '& .markLabel-first': { fontFamily: theme.typography.body1.fontFamily, fontSize: theme.palette.geoViewFontSize.sm, float: 'left', - marginLeft: '-50px', + marginLeft: '-60px', color: '#000', opacity: 0.6, }, @@ -121,17 +127,26 @@ export const getSxClasses = (theme: Theme) => { fontFamily: theme.typography.body1.fontFamily, fontSize: theme.palette.geoViewFontSize.sm, float: 'right', - marginRight: '-50px', + marginRight: '-60px', color: '#000', opacity: 0.6, }, }, ySliderWrapper: { - height: '75%', + height: '70%', textAlign: 'center', + marginTop: '-20px', + marginLeft: '20px', '& .MuiSlider-root': { color: theme.palette.geoViewColor.primary.main, }, + '& .markLabel-top, & .markLabel-bottom': { + fontFamily: theme.typography.body1.fontFamily, + fontSize: theme.palette.geoViewFontSize.sm, + marginLeft: '-30px', + color: '#000', + opacity: 0.6, + }, }, loadingDatasource: { backgroundColor: 'transparent', diff --git a/src/chart.tsx b/src/chart.tsx index e62b30f..b143ae3 100644 --- a/src/chart.tsx +++ b/src/chart.tsx @@ -1423,38 +1423,21 @@ export function GeoChart< * Generate marker labels for the slider values * @returns The array of slider markers */ - const getMarkers = useCallback( - (sliderMin: number, sliderMax: number, sliderValues: number | number[], handleSliderValueDisplay: (value: number) => string) => { - const sliderMarks: { - value: number; - label: string; - }[] = []; - if (Array.isArray(sliderValues)) { - if (sliderMin !== undefined) { - sliderMarks.push({ - value: sliderMin, - label: handleSliderValueDisplay(sliderMin), - }); - } - for (let i = 0; i < sliderValues.length; i++) { - if (sliderValues[i] !== sliderMin || sliderValues[i] !== sliderMax) { - sliderMarks.push({ - value: sliderValues[i], - label: handleSliderValueDisplay(sliderValues[i]), - }); - } - } - if (sliderMax !== undefined) { - sliderMarks.push({ - value: sliderMax, - label: handleSliderValueDisplay(sliderMax), - }); - } + const getMarkers = useCallback((sliderValues: number | number[], handleSliderValueDisplay: (value: number) => string) => { + const sliderMarks: { + value: number; + label: string; + }[] = []; + if (Array.isArray(sliderValues)) { + for (let i = 0; i < sliderValues.length; i++) { + sliderMarks.push({ + value: sliderValues[i], + label: handleSliderValueDisplay(sliderValues[i]), + }); } - return sliderMarks; - }, - [] - ); + } + return sliderMarks; + }, []); const checkOverlap = ( prev: Element | null, @@ -1574,7 +1557,7 @@ export function GeoChart< )} +
+ {Array.isArray(ySliderValues) && ySliderValues[ySliderValues.length - 1] !== ySliderMax && ( + {handleSliderYValueDisplay(ySliderMax)} + )} +
+
+ {Array.isArray(ySliderValues) && ySliderValues[0] !== ySliderMin && ( + {handleSliderYValueDisplay(ySliderMin)} + )} +
); } @@ -1825,7 +1818,7 @@ export function GeoChart< // The xs: 1, 11 and 12 used here are as documented online return ( - + {renderDatasourceSelector()}