@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
59 lines • 1.41 kB
JavaScript
import { ABSENT_VALUE_FORMAT, isAbsent, applyDecimalsForPlain, buildReturn, cleanNumber, formatNumberCore, handleCompactBeforeAria, handleCompactBeforeDisplay, prepareFormatOptions, prepareMinus, resolveLocale, enhanceSR } from "./formatCore.js";
export function formatNumber(value, {
locale: inputLocale = null,
clean = false,
compact = null,
decimals = null,
rounding = null,
signDisplay = null,
options = null,
returnAria = false,
invalidAriaText = null,
cleanCopyValue = null
} = {}) {
value = isAbsent(value) ? ABSENT_VALUE_FORMAT : value;
const locale = resolveLocale(inputLocale);
const opts = prepareFormatOptions({
options,
signDisplay
});
if (clean) {
value = cleanNumber(value);
}
value = applyDecimalsForPlain({
value,
decimals,
rounding,
opts
});
handleCompactBeforeDisplay({
value,
locale,
compact,
decimals,
opts
});
let display = formatNumberCore(value, locale, opts);
display = prepareMinus(display, locale);
handleCompactBeforeAria({
value,
compact,
opts
});
let aria = formatNumberCore(value, locale, opts);
aria = enhanceSR(value, aria, locale);
if (!returnAria) {
return display;
}
return buildReturn({
value,
locale,
display,
aria,
type: 'number',
opts,
cleanCopyValue,
invalidAriaText
});
}
//# sourceMappingURL=formatNumber.js.map