import FormFieldGroup from "../Components/FormFieldGroup";
class CardView {
constructor(selector, elements, manager) {
this.el = elements;
this.manager = manager;
this.cardFormFields = new FormFieldGroup({
baseSelector: '.ppcp-axo-payment-container',
contentSelector: selector,
template: (data) => {
const selectOtherPaymentMethod = () => {
if (!this.manager.hideGatewaySelection) {
return '';
}
return `
Select other payment method
`;
};
if (data.isEmpty()) {
return `
Please fill in your card details.
${selectOtherPaymentMethod()}
`;
}
const expiry = data.value('expiry').split('-');
const cardIcons = {
'VISA': 'visa-dark.svg',
'MASTER_CARD': 'mastercard-dark.svg',
'AMEX': 'amex.svg',
'DISCOVER': 'discover.svg',
};
return `
Card Details Edit
${data.value('lastDigits') ? '**** **** **** ' + data.value('lastDigits'): ''}
${expiry[1]}/${expiry[0]}
${data.value('name')}
${selectOtherPaymentMethod()}
`;
},
fields: {
brand: {
'valuePath': 'card.paymentSource.card.brand',
},
expiry: {
'valuePath': 'card.paymentSource.card.expiry',
},
lastDigits: {
'valuePath': 'card.paymentSource.card.lastDigits',
},
name: {
'valuePath': 'card.paymentSource.card.name',
},
}
});
}
activate() {
this.cardFormFields.activate();
}
deactivate() {
this.cardFormFields.deactivate();
}
refresh() {
this.cardFormFields.refresh();
}
setData(data) {
this.cardFormFields.setData(data);
}
}
export default CardView;