export function getTooltipDisplayDeltaValue()

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;
}