Commit c1b70787 by Ryan McKinley Committed by GitHub

Units: support dynamic count and currency units (#21279)

parent 1764c241
......@@ -53,6 +53,14 @@ const formatTests: ValueFormatTest[] = [
{ id: 'si:µF', value: 1234000000, decimals: 2, result: '1.23 kF' },
{ id: 'si:µF', value: 1234000000000000, decimals: 2, result: '1.23 GF' },
// Counts (suffix)
{ id: 'count:xpm', value: 1234567, decimals: 2, result: '1.23M xpm' },
{ id: 'count:x/min', value: 1234, decimals: 2, result: '1.23K x/min' },
// Currency (prefix)
{ id: 'currency:@', value: 1234567, decimals: 2, result: '@1.23M' },
{ id: 'currency:@', value: 1234, decimals: 2, result: '@1.23K' },
// Time format
{ id: 'time:YYYY', decimals: 0, value: dateTime(new Date(1999, 6, 2)).valueOf(), result: '1999' },
{ id: 'time:YYYY.MM', decimals: 0, value: dateTime(new Date(2010, 6, 2)).valueOf(), result: '2010.07' },
......
import { getCategories } from './categories';
import { DecimalCount } from '../types/displayValue';
import { toDateTimeValueFormatter } from './dateTimeFormatters';
import { getOffsetFromSIPrefix, decimalSIPrefix } from './symbolFormatters';
import { getOffsetFromSIPrefix, decimalSIPrefix, currency } from './symbolFormatters';
export interface FormattedValue {
text: string;
......@@ -197,6 +197,12 @@ export function getValueFormat(id: string): ValueFormatter {
const unit = offset === 0 ? sub : sub.substring(1);
return decimalSIPrefix(unit, offset);
}
if (key === 'count') {
return simpleCountUnit(sub);
}
if (key === 'currency') {
return currency(sub);
}
}
return toFixedUnit(id);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment