UNPKG

ivt

Version:

Ivt Components Library

56 lines (53 loc) 2.74 kB
const styleInput = "border-input file:text-foreground placeholder:text-muted-foreground focus-visible:ring-ring flex h-10 w-full rounded-md border bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:ring-1 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm"; const styleSelect = "hover:bg-accent hover:text-accent-foreground cursor-pointer"; const formatNegative = (value)=>value < 0 ? "text-destructive" : ""; 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 b, styleSelect as c, formatNegative as f, styleInput as s }; //# sourceMappingURL=format-numbers-BMHnFGse.mjs.map