UNPKG

ivt

Version:

Ivt Components Library

52 lines (50 loc) 2.15 kB
function formatNumberWithComma({ value, minimumFractionDigits = 0, maximumFractionDigits = 12, currency }) { const options = { minimumFractionDigits, maximumFractionDigits }; if (currency) { options.style = "currency"; options.currency = currency; } const formatter = new Intl.NumberFormat("pt-BR", options); return formatter.format(value); } /** * Formata um número no padrão pt-BR (ex.: 1234.56 -> "1.234,56"). * @param value Número a ser formatado * @param minimumFractionDigits Dígitos decimais mínimos * @param maximumFractionDigits Dígitos decimais máximos * @returns String formatada (ex.: "1.234,56") */ function formatNumberPtBr(value, minimumFractionDigits, maximumFractionDigits) { return new Intl.NumberFormat("pt-BR", { minimumFractionDigits, maximumFractionDigits }).format(value); } /** * Formata um número como string monetária no padrão pt-BR. * Usa o símbolo da API, se fornecido, ou tenta formatar com Intl.NumberFormat. * @param value Valor numérico a ser formatado * @param currency Código da moeda (ex.: "BRL", "USD-PTAX") * @param symbol Símbolo da moeda (ex.: "R$", "$") * @param minimumFractionDigits Dígitos decimais mínimos (padrão: 2) * @param maximumFractionDigits Dígitos decimais máximos (padrão: 2) * @returns String formatada (ex.: "R$ 1.234,56") */ function formatMoney({ value, currency = "BRL", symbol, minimumFractionDigits = 2, maximumFractionDigits = 2 }) { const isValidIntlCurrency = currency && /^[A-Z]{3}$/.test(currency); if (isValidIntlCurrency) { const formatter = new Intl.NumberFormat("pt-BR", { style: "currency", currency, minimumFractionDigits, maximumFractionDigits }); return formatter.format(value); } const formattedValue = formatNumberPtBr(value, minimumFractionDigits, maximumFractionDigits); const finalSymbol = symbol || "$"; return `${finalSymbol} ${formattedValue}`; } export { formatNumberWithComma as a, formatMoney as f }; //# sourceMappingURL=format-numbers-LmnBEQr0.mjs.map