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[] = [ ...@@ -53,6 +53,14 @@ const formatTests: ValueFormatTest[] = [
{ id: 'si:µF', value: 1234000000, decimals: 2, result: '1.23 kF' }, { id: 'si:µF', value: 1234000000, decimals: 2, result: '1.23 kF' },
{ id: 'si:µF', value: 1234000000000000, decimals: 2, result: '1.23 GF' }, { 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 // Time format
{ id: 'time:YYYY', decimals: 0, value: dateTime(new Date(1999, 6, 2)).valueOf(), result: '1999' }, { 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' }, { id: 'time:YYYY.MM', decimals: 0, value: dateTime(new Date(2010, 6, 2)).valueOf(), result: '2010.07' },
......
import { getCategories } from './categories'; import { getCategories } from './categories';
import { DecimalCount } from '../types/displayValue'; import { DecimalCount } from '../types/displayValue';
import { toDateTimeValueFormatter } from './dateTimeFormatters'; import { toDateTimeValueFormatter } from './dateTimeFormatters';
import { getOffsetFromSIPrefix, decimalSIPrefix } from './symbolFormatters'; import { getOffsetFromSIPrefix, decimalSIPrefix, currency } from './symbolFormatters';
export interface FormattedValue { export interface FormattedValue {
text: string; text: string;
...@@ -197,6 +197,12 @@ export function getValueFormat(id: string): ValueFormatter { ...@@ -197,6 +197,12 @@ export function getValueFormat(id: string): ValueFormatter {
const unit = offset === 0 ? sub : sub.substring(1); const unit = offset === 0 ? sub : sub.substring(1);
return decimalSIPrefix(unit, offset); return decimalSIPrefix(unit, offset);
} }
if (key === 'count') {
return simpleCountUnit(sub);
}
if (key === 'currency') {
return currency(sub);
}
} }
return toFixedUnit(id); 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