in src/utils/interaction-utils.js [130:168]
export function getTooltipDisplayDeltaValue({
primaryData,
field,
compareType,
data,
fieldIdx,
item
}) {
let displayDeltaValue = null;
if (
primaryData &&
// comparison mode only works for numeric field
(field.type === ALL_FIELD_TYPES.integer || field.type === ALL_FIELD_TYPES.real)
) {
const baseDp = primaryData[fieldIdx];
const dp = data[fieldIdx];
if (isNumber(baseDp) && isNumber(dp)) {
const deltaValue = compareType === COMPARE_TYPES.RELATIVE ? dp / baseDp - 1 : dp - baseDp;
const deltaFormat =
compareType === COMPARE_TYPES.RELATIVE
? TOOLTIP_FORMATS.DECIMAL_PERCENT_FULL_2[TOOLTIP_KEY]
: (item.format || TOOLTIP_FORMATS.DECIMAL_DECIMAL_FIXED_3[TOOLTIP_KEY]);
displayDeltaValue = getFormatter(deltaFormat)(deltaValue);
// safely cast string
displayDeltaValue = defaultFormatter(displayDeltaValue);
const deltaFirstChar = displayDeltaValue.charAt(0);
if (deltaFirstChar !== '+' && deltaFirstChar !== '-') {
displayDeltaValue = `+${displayDeltaValue}`;
}
} else {
displayDeltaValue = '-';
}
}
return displayDeltaValue;
}