@malga-checkout-full/core
Version:
Core components for Malga Checkout Full
54 lines (50 loc) • 1.7 kB
JavaScript
import { L as src_default } from './index-cfe6a98e.js';
import { f as formatCurrency } from './currency-22f5cec5.js';
const getCardBrand = (firstCardNumbers) => {
const permittedBrands = [
'american-express',
'diners-club',
'discover',
'elo',
'hipercard',
'mastercard',
'visa',
];
const cardBrand = src_default.valid.number(firstCardNumbers).card.type;
const isPermittedBrand = permittedBrands.includes(cardBrand);
return isPermittedBrand ? cardBrand : undefined;
};
const applyCardMask = (cardNumber, cardMask) => {
const cleanNumber = cardNumber.replace(/\D/g, '');
if (!cardMask || cardMask.trim() === '') {
cardMask = '9999 9999 9999 9999';
}
const cardValidation = src_default.valid.number(cleanNumber);
const maskedNumber = [];
let currentDigitIndex = 0;
for (let maskPosition = 0; maskPosition < cardMask.length; maskPosition++) {
const currentMaskChar = cardMask[maskPosition];
if (currentMaskChar === '9') {
if (currentDigitIndex < cleanNumber.length) {
maskedNumber.push(cleanNumber[currentDigitIndex]);
currentDigitIndex++;
}
else {
if (!cardValidation.isValid) {
maskedNumber.push('•');
}
}
}
else {
maskedNumber.push(currentMaskChar);
}
}
return maskedNumber.join('');
};
const centsToReal = (amount, currency) => {
if (!amount) {
return 'R$00,00';
}
return formatCurrency(amount, currency);
};
export { applyCardMask as a, centsToReal as c, getCardBrand as g };