UNPKG

@dnb/eufemia

Version:

DNB Eufemia Design System UI Library

63 lines 1.56 kB
import { ABSENT_VALUE_FORMAT, isAbsent, applyDecimalsForPlain, buildReturn, cleanNumber, formatNumberCore, formatNumberCoreParts, handleCompactBeforeAria, handleCompactBeforeDisplay, prepareFormatOptions, prepareMinusParts, 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 }); const formatted = formatNumberCoreParts(value, locale, opts); const { number: display, parts } = prepareMinusParts(formatted.number, formatted.parts, 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, parts: parts.length ? parts : undefined }); } //# sourceMappingURL=formatNumber.js.map