diff --git a/modules/components/src/Aggs/RangeAgg.js b/modules/components/src/Aggs/RangeAgg.js index c62e33913..9177de274 100644 --- a/modules/components/src/Aggs/RangeAgg.js +++ b/modules/components/src/Aggs/RangeAgg.js @@ -167,8 +167,8 @@ class RangeAgg extends Component { return ( formatLabel?.(value, type) || formatNumber( - unit && displayUnit - ? Math.round(convert(value).from(unit).to(displayUnit) * 100) / 100 + unit && displayUnit && unit !== displayUnit + ? convert(value).from(unit).to(displayUnit) : value, ) ); @@ -180,9 +180,8 @@ class RangeAgg extends Component { disabled, displayName = 'Unnamed Field', fieldName, - rangeStep, + rangeStep: rangeStepFromProps, stats: { max, min } = emptyObj, - step, theme: { colors, components: { @@ -229,10 +228,19 @@ class RangeAgg extends Component { ...(type && { 'data-type': type }), }; + const maxFractionRemainder = rangeStepFromProps === 0 && max % 1; + const decimalPointsToPad = + maxFractionRemainder && `${maxFractionRemainder}`.replace('0.', '').length - 1; + const calculatedStep = maxFractionRemainder + ? parseFloat(`0.${String(1).padStart(decimalPointsToPad, '0')}`) + : 1; + + const rangeStep = rangeStepFromProps || calculatedStep; + const minIsMax = min === max; const unusable = disabled || min + rangeStep === max || minIsMax; - // TODO: implement unit selection disability per fieldname. + // TODO: implement unit selection disabling per fieldname. // const enableUnitSelection = !themeDisableUnitSelection; return ( @@ -370,7 +378,7 @@ class RangeAgg extends Component { maxValue={max} onChange={this.setNewValue} onChangeComplete={this.onChangeComplete} - step={step} + step={rangeStep} value={currentValues} /> diff --git a/modules/server/src/mapping/extendMapping.ts b/modules/server/src/mapping/extendMapping.ts index 2db315acf..66af2e4e1 100644 --- a/modules/server/src/mapping/extendMapping.ts +++ b/modules/server/src/mapping/extendMapping.ts @@ -189,7 +189,7 @@ export const extendFields = ( isArray = false, primaryKey = false, quickSearchEnabled = false, - rangeStep = type === 'float' || type === 'double' ? 0.01 : 1, + rangeStep = 0, unit = null, } = extendedFromFile.find((customData) => customData.fieldName === fieldName) || {};