Files
adyen-web/packages/lib/src/components/index.ts
António Ferreira cb1564c96f Adds ANCV payment method component (#2293)
* starting ancv

* adds onOrder

* fixes missing scss in InputBase

* adds validation and order

* fix error messages

* move ANCV input

* fix spelling mistake

* update error i18n

* clean up await props

* add ancv to tests

* add changeset for ancv

* translations for ancv

* fix playwright test report

---------

Co-authored-by: antoniof <>
2023-10-11 10:23:43 +02:00

261 lines
7.4 KiB
TypeScript

import { AfterPay, AfterPayB2B } from './AfterPay';
import AmazonPay from './AmazonPay';
import ApplePay from './ApplePay';
import Atome from './Atome';
import { BillDeskOnline, BillDeskWallet } from './BillDesk';
import Card from './Card';
import CashAppPay from './CashAppPay';
import ClickToPay from './ClickToPay';
import Bancontact from './Card/Bancontact';
import Donation from './Donation';
import Giropay from './Giropay';
import GooglePay from './GooglePay';
import Entercash from './Entercash';
import Econtext from './Econtext';
import { FacilyPay3x, FacilyPay4x, FacilyPay6x, FacilyPay10x, FacilyPay12x } from './FacilyPay';
import Ideal from './Ideal';
import PayPal from './PayPal';
import QiwiWallet from './QiwiWallet';
import Redirect from './Redirect';
import SecuredFields from './SecuredFields';
import Sepa from './Sepa';
import { ThreeDS2DeviceFingerprint, ThreeDS2Challenge } from './ThreeDS2';
import WeChat from './WeChat';
import PayNow from './PayNow';
import BcmcMobile from './BcmcMobile';
import { MolPayEBankingMY, MolPayEBankingTH, MolPayEBankingVN } from './MolPayEBanking';
import Dragonpay from './Dragonpay';
import Doku from './Doku';
import Boleto from './Boleto';
import Oxxo from './Oxxo';
import Multibanco from './Multibanco';
import Dotpay from './Dotpay';
import Eps from './EPS';
import Giftcard from './Giftcard';
import Vipps from './Vipps';
import { PayuCashcard, PayuNetBanking } from './PayU';
import RatePay from './RatePay';
import Swish from './Swish';
import Dropin from './Dropin';
import Ach from './Ach';
import MBWay from './MBWay';
import Blik from './Blik';
import BankTransfer from './BankTransfer';
import Affirm from './Affirm';
import Pix from './Pix';
import uuid from '../utils/uuid';
import BacsDD from './BacsDD';
import Address from './Address';
import PersonalDetails from './PersonalDetails';
import Klarna from './Klarna';
import Twint from './Twint';
import MealVoucherFR from './MealVoucherFR';
import OnlineBankingINElement from './OnlineBankingIN';
import OnlinebankingPL from './OnlinebankingPL';
import RatePayDirectDebit from './RatePay/RatePayDirectDebit';
import UPI from './UPI';
import WalletINElement from './WalletIN';
import OnlineBankingCZElement from './OnlineBankingCZ';
import OnlineBankingSKElement from './OnlineBankingSK';
import PayByBank from './PayByBank';
import PromptPay from './PromptPay';
import Duitnow from './DuitNow';
import ANCV from './ANCV';
import Trustly from './Trustly';
/**
* Maps each component with a Component element.
*/
const componentsMap = {
/** internal */
address: Address,
bankTransfer_IBAN: BankTransfer,
donation: Donation,
dropin: Dropin,
personal_details: PersonalDetails,
/** internal */
/** Card */
amex: Card,
bcmc: Bancontact,
card: Card,
diners: Card,
discover: Card,
jcb: Card,
kcp: Card,
maestro: Card,
mc: Card,
scheme: Card,
storedCard: Card,
securedfields: SecuredFields,
threeDS2Challenge: ThreeDS2Challenge,
threeDS2DeviceFingerprint: ThreeDS2DeviceFingerprint,
visa: Card,
/** Card */
/** Direct debit */
ach: Ach,
directdebit_GB: BacsDD,
sepadirectdebit: Sepa,
/** Direct debit */
/** Open Invoice */
affirm: Affirm,
afterpay: AfterPay,
afterpay_default: AfterPay,
afterpay_b2b: AfterPayB2B,
atome: Atome,
facilypay_3x: FacilyPay3x,
facilypay_4x: FacilyPay4x,
facilypay_6x: FacilyPay6x,
facilypay_10x: FacilyPay10x,
facilypay_12x: FacilyPay12x,
ratepay: RatePay,
ratepay_directdebit: RatePayDirectDebit,
/** Open Invoice */
/** Wallets */
amazonpay: AmazonPay,
applepay: ApplePay,
cashapp: CashAppPay,
clicktopay: ClickToPay,
googlepay: GooglePay,
paypal: PayPal,
paywithgoogle: GooglePay,
qiwiwallet: QiwiWallet,
/** Wallets */
/** Voucher */
boletobancario: Boleto,
boletobancario_bancodobrasil: Boleto,
boletobancario_bradesco: Boleto,
boletobancario_hsbc: Boleto,
boletobancario_itau: Boleto,
boletobancario_santander: Boleto,
doku: Doku,
doku_alfamart: Doku,
doku_permata_lite_atm: Doku,
doku_indomaret: Doku,
doku_atm_mandiri_va: Doku,
doku_sinarmas_va: Doku,
doku_mandiri_va: Doku,
doku_cimb_va: Doku,
doku_danamon_va: Doku,
doku_bri_va: Doku,
doku_bni_va: Doku,
doku_bca_va: Doku,
doku_wallet: Doku,
oxxo: Oxxo,
primeiropay_boleto: Boleto,
/** Voucher */
/** issuerList */
billdesk_online: BillDeskOnline,
billdesk_wallet: BillDeskWallet,
dotpay: Dotpay,
entercash: Entercash,
eps: Eps,
ideal: Ideal,
molpay_ebanking_fpx_MY: MolPayEBankingMY,
molpay_ebanking_TH: MolPayEBankingTH,
molpay_ebanking_VN: MolPayEBankingVN,
onlineBanking: Dotpay,
onlineBanking_CZ: OnlineBankingCZElement,
onlinebanking_IN: OnlineBankingINElement, // NOTE : the txVariant does have a lowercase "b"
onlineBanking_PL: OnlinebankingPL,
onlineBanking_SK: OnlineBankingSKElement,
paybybank: PayByBank,
payu_IN_cashcard: PayuCashcard,
payu_IN_nb: PayuNetBanking,
wallet_IN: WalletINElement,
/** issuerList */
/** Dragonpay */
dragonpay_ebanking: Dragonpay,
dragonpay_otc_banking: Dragonpay,
dragonpay_otc_non_banking: Dragonpay,
dragonpay_otc_philippines: Dragonpay,
/** Dragonpay */
/** Econtext */
econtext_atm: Econtext,
econtext_online: Econtext,
econtext_seven_eleven: Econtext,
econtext_stores: Econtext,
/** Econtext */
/** Redirect */
giropay: Giropay,
multibanco: Multibanco,
redirect: Redirect,
twint: Twint,
vipps: Vipps,
trustly: Trustly,
/** Redirect */
/** Klarna */
klarna: Klarna,
klarna_account: Klarna,
klarna_paynow: Klarna,
/** Klarna */
/** QRLoader */
bcmc_mobile: BcmcMobile,
bcmc_mobile_QR: BcmcMobile,
pix: Pix,
swish: Swish,
wechatpay: WeChat,
wechatpayQR: WeChat,
promptpay: PromptPay,
paynow: PayNow,
duitnow: Duitnow,
/** QRLoader */
/** Await */
blik: Blik,
mbway: MBWay,
upi: UPI, // also QR
upi_qr: UPI, // also QR
upi_collect: UPI, // also QR
ancv: ANCV,
/** Await */
/** Giftcard */
giftcard: Giftcard,
mealVoucher_FR_natixis: MealVoucherFR,
mealVoucher_FR_sodexo: MealVoucherFR,
mealVoucher_FR_groupeup: MealVoucherFR,
/** Giftcard */
default: null
};
/**
* Instantiates a new Component element either by class reference or by name
* It also assigns a new uuid to each instance, so we can recognize it during the current session
* @param componentType - class or componentsMap's key
* @param props - for the new Component element
* @returns new PaymentMethod or null
*/
export const getComponent = (componentType, props) => {
const Component = componentsMap[componentType] || componentsMap.default;
return Component ? new Component({ ...props, id: `${componentType}-${uuid()}` }) : null;
};
/**
* Gets the configuration for type from componentsConfig
* @param type - component type
* @param componentsConfig - global paymentMethodsConfiguration
* @returns component configuration
*/
export const getComponentConfiguration = (type: string, componentsConfig = {}, isStoredCard = false) => {
let pmType = type;
if (type === 'scheme') {
pmType = isStoredCard ? 'storedCard' : 'card';
}
return componentsConfig[pmType] || {};
};
export default componentsMap;