ivt
Version:
Ivt Components Library
56 lines (53 loc) • 2.74 kB
JavaScript
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