@adyen/adyen-web 6.45.1 → 6.45.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +1846 -1889
- package/dist/es/components/ANCV/components/ANCVInput.js +1 -1
- package/dist/es/components/ANCV/components/ANCVInput.js.map +1 -1
- package/dist/es/components/Ach/Ach.js +1 -1
- package/dist/es/components/Ach/Ach.js.map +1 -1
- package/dist/es/components/Ach/components/AchComponent.js +1 -1
- package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
- package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
- package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
- package/dist/es/components/BacsDD/BacsDD.js +1 -1
- package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
- package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
- package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
- package/dist/es/components/BankTransfer/BankTransfer.js +1 -1
- package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
- package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
- package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
- package/dist/es/components/Blik/Blik.js +1 -1
- package/dist/es/components/Blik/Blik.js.map +1 -1
- package/dist/es/components/Blik/components/BlikInput.js +1 -1
- package/dist/es/components/Blik/components/BlikInput.js.map +1 -1
- package/dist/es/components/Card/Card.js +1 -1
- package/dist/es/components/Card/Card.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
- package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
- package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
- package/dist/es/components/CustomCard/CustomCard.js +1 -1
- package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
- package/dist/es/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
- package/dist/es/components/Donation/Donation.js +1 -1
- package/dist/es/components/Donation/Donation.js.map +1 -1
- package/dist/es/components/Donation/components/DonationComponent.js +1 -1
- package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
- package/dist/es/components/Dropin/Dropin.js +1 -1
- package/dist/es/components/Dropin/Dropin.js.map +1 -1
- package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
- package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
- package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
- package/dist/es/components/Giropay/Giropay.js +1 -1
- package/dist/es/components/Giropay/Giropay.js.map +1 -1
- package/dist/es/components/MBWay/MBWay.js +1 -1
- package/dist/es/components/MBWay/MBWay.js.map +1 -1
- package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
- package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
- package/dist/es/components/Multibanco/Multibanco.js +1 -1
- package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
- package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
- package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
- package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
- package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
- package/dist/es/components/PayTo/components/BSBInput.js +1 -1
- package/dist/es/components/PayTo/components/BSBInput.js.map +1 -1
- package/dist/es/components/PayTo/components/PayToNameFields.js +1 -1
- package/dist/es/components/PayTo/components/PayToNameFields.js.map +1 -1
- package/dist/es/components/PayTo/components/PayToPhone.js +1 -1
- package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -1
- package/dist/es/components/Pix/Pix.js +1 -1
- package/dist/es/components/Pix/Pix.js.map +1 -1
- package/dist/es/components/Pix/components/PixInput/PixInput.js +1 -1
- package/dist/es/components/Pix/components/PixInput/PixInput.js.map +1 -1
- package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
- package/dist/es/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
- package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js +1 -1
- package/dist/es/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
- package/dist/es/components/Redirect/Redirect.js +1 -1
- package/dist/es/components/Redirect/Redirect.js.map +1 -1
- package/dist/es/components/Sepa/Sepa.js.map +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
- package/dist/es/components/Trustly/Trustly.js +1 -1
- package/dist/es/components/Trustly/Trustly.js.map +1 -1
- package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
- package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
- package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
- package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
- package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
- package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
- package/dist/es/components/internal/IbanInput/IbanInput.js +1 -1
- package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
- package/dist/es/components/internal/IbanInput/validate.js +1 -1
- package/dist/es/components/internal/IbanInput/validate.js.map +1 -1
- package/dist/es/components/internal/OpenInvoice/OpenInvoice.js +1 -1
- package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
- package/dist/es/components/internal/PhoneInput/PhoneInputForm.js +1 -1
- package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
- package/dist/es/components/internal/RedirectButton/RedirectButton.js +1 -1
- package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
- package/dist/es/components/internal/UIElement/UIElement.js +1 -1
- package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
- package/dist/es/components/internal/UIElement/utils.js +1 -1
- package/dist/es/components/internal/UIElement/utils.js.map +1 -1
- package/dist/es/core/config.js +1 -1
- package/dist/es/index.d.ts +1846 -1889
- package/dist/es/utils/Validator/Validator.js +1 -1
- package/dist/es/utils/Validator/Validator.js.map +1 -1
- package/dist/es/utils/useForm/reducer.js +1 -1
- package/dist/es/utils/useForm/reducer.js.map +1 -1
- package/dist/es/utils/useForm/useForm.js +1 -1
- package/dist/es/utils/useForm/useForm.js.map +1 -1
- package/dist/es/utils/useForm/useFormWithA11y.js +1 -1
- package/dist/es/utils/useForm/useFormWithA11y.js.map +1 -1
- package/dist/es-legacy/components/ANCV/components/ANCVInput.js +1 -1
- package/dist/es-legacy/components/ANCV/components/ANCVInput.js.map +1 -1
- package/dist/es-legacy/components/Ach/Ach.js +1 -1
- package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
- package/dist/es-legacy/components/Ach/components/AchComponent.js +1 -1
- package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
- package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
- package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
- package/dist/es-legacy/components/BacsDD/BacsDD.js +1 -1
- package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
- package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
- package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
- package/dist/es-legacy/components/BankTransfer/BankTransfer.js +1 -1
- package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
- package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
- package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
- package/dist/es-legacy/components/Blik/Blik.js +1 -1
- package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
- package/dist/es-legacy/components/Blik/components/BlikInput.js +1 -1
- package/dist/es-legacy/components/Blik/components/BlikInput.js.map +1 -1
- package/dist/es-legacy/components/Card/Card.js +1 -1
- package/dist/es-legacy/components/Card/Card.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
- package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
- package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
- package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
- package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
- package/dist/es-legacy/components/CustomCard/CustomCardInput/CustomCardInput.js.map +1 -1
- package/dist/es-legacy/components/Donation/Donation.js +1 -1
- package/dist/es-legacy/components/Donation/Donation.js.map +1 -1
- package/dist/es-legacy/components/Donation/components/DonationComponent.js +1 -1
- package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
- package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
- package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
- package/dist/es-legacy/components/Giropay/Giropay.js +1 -1
- package/dist/es-legacy/components/Giropay/Giropay.js.map +1 -1
- package/dist/es-legacy/components/MBWay/MBWay.js +1 -1
- package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
- package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
- package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
- package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
- package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
- package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
- package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
- package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
- package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
- package/dist/es-legacy/components/PayTo/components/BSBInput.js +1 -1
- package/dist/es-legacy/components/PayTo/components/BSBInput.js.map +1 -1
- package/dist/es-legacy/components/PayTo/components/PayToNameFields.js +1 -1
- package/dist/es-legacy/components/PayTo/components/PayToNameFields.js.map +1 -1
- package/dist/es-legacy/components/PayTo/components/PayToPhone.js +1 -1
- package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -1
- package/dist/es-legacy/components/Pix/Pix.js +1 -1
- package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
- package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js +1 -1
- package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js.map +1 -1
- package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js +1 -1
- package/dist/es-legacy/components/PreAuthorizedDebitCanada/PreAuthorizedDebitCanada.js.map +1 -1
- package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js +1 -1
- package/dist/es-legacy/components/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
- package/dist/es-legacy/components/Redirect/Redirect.js +1 -1
- package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
- package/dist/es-legacy/components/Sepa/Sepa.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
- package/dist/es-legacy/components/Trustly/Trustly.js +1 -1
- package/dist/es-legacy/components/Trustly/Trustly.js.map +1 -1
- package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
- package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
- package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
- package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
- package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
- package/dist/es-legacy/components/internal/IbanInput/IbanInput.js +1 -1
- package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
- package/dist/es-legacy/components/internal/IbanInput/validate.js +1 -1
- package/dist/es-legacy/components/internal/IbanInput/validate.js.map +1 -1
- package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js +1 -1
- package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
- package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
- package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
- package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
- package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
- package/dist/es-legacy/components/internal/UIElement/utils.js +1 -1
- package/dist/es-legacy/components/internal/UIElement/utils.js.map +1 -1
- package/dist/es-legacy/core/config.js +1 -1
- package/dist/es-legacy/utils/Validator/Validator.js +1 -1
- package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
- package/dist/es-legacy/utils/useForm/reducer.js +1 -1
- package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
- package/dist/es-legacy/utils/useForm/useForm.js +1 -1
- package/dist/es-legacy/utils/useForm/useForm.js.map +1 -1
- package/dist/es-legacy/utils/useForm/useFormWithA11y.js +1 -1
- package/dist/es-legacy/utils/useForm/useFormWithA11y.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BacsInput.js","sources":["../../../../../src/components/BacsDD/components/BacsInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport ConsentCheckbox from '../../internal/FormFields/ConsentCheckbox';\nimport { bacsValidationRules, bacsFormatters } from './validate';\nimport { BacsDataState, BacsInputProps } from './types';\nimport './BacsInput.scss';\n\nimport useForm from '../../../utils/useForm';\nimport useImage from '../../../core/Context/useImage';\nimport InputText from '../../internal/FormFields/InputText';\nimport InputEmail from '../../internal/FormFields/InputEmail';\nimport FormInstruction from '../../internal/FormInstruction';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport { PREFIX } from '../../internal/Icon/constants';\nimport { useAmount } from '../../../core/Context/AmountProvider';\nimport { ComponentMethodsRef, UIElementStatus } from '../../types';\n\nconst ENTER_STATE = 'enter-data';\nconst CONFIRM_STATE = 'confirm-data';\n\nfunction BacsInput(props: Readonly<BacsInputProps>) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const { amount } = useAmount();\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BacsDataState>({\n schema: ['holderName', 'bankAccountNumber', 'bankLocationId', 'shopperEmail', 'amountConsentCheckbox', 'accountConsentCheckbox'],\n defaultData: props.data,\n formatters: bacsFormatters,\n rules: bacsValidationRules\n });\n\n const [status, setStatus] = useState(ENTER_STATE);\n\n const bacsInputRef = useRef<ComponentMethodsRef>({\n setStatus,\n showValidation: () => {\n triggerValidation();\n }\n });\n\n useEffect(() => {\n props.setComponentRef(bacsInputRef.current);\n }, [props.setComponentRef]);\n\n const handlePayButton = () => {\n if (!isValid) return bacsInputRef.current?.showValidation?.();\n\n if (status === ENTER_STATE) {\n return bacsInputRef.current?.setStatus?.(CONFIRM_STATE as UIElementStatus);\n } else if (status === CONFIRM_STATE) {\n return props.onSubmit();\n }\n };\n\n const handleEdit = () => {\n return bacsInputRef.current?.setStatus?.(ENTER_STATE as UIElementStatus);\n };\n\n useEffect(() => {\n props.onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n return (\n <div\n className={classNames({\n 'adyen-checkout__bacs': true,\n 'adyen-checkout__bacs--confirm': status === CONFIRM_STATE || status === 'loading'\n })}\n >\n <FormInstruction />\n\n {status == CONFIRM_STATE && (\n <div\n className={classNames({\n 'adyen-checkout__bacs--edit': true,\n 'adyen-checkout__bacs--edit-dropin': props.isDropin\n })}\n >\n <InputText\n name={'bacsEdit'}\n className={'adyen-checkout__bacs--edit-button'}\n value={i18n.get('edit')}\n aria-label={i18n.get('edit')}\n readonly={true}\n onClick={handleEdit}\n autocomplete={undefined}\n />\n </div>\n )}\n\n <Field\n className={classNames({\n 'adyen-checkout__bacs--holder-name': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n label={i18n.get('bacs.accountHolderName')}\n errorMessage={errors.holderName ? i18n.get('bacs.accountHolderName.invalid') : false}\n isValid={valid.holderName}\n name={'accountHolderName'}\n i18n={i18n}\n >\n <InputText\n name={'bacs.accountHolderName'}\n className={'adyen-checkout__bacs-input--holder-name'}\n placeholder={props.placeholders?.holderName}\n value={data.holderName}\n aria-invalid={!valid.holderName}\n aria-label={i18n.get('bacs.accountHolderName')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={'name'}\n onBlur={handleChangeFor('holderName', 'blur')}\n onInput={handleChangeFor('holderName', 'input')}\n />\n </Field>\n\n <div className=\"adyen-checkout__bacs__num-id adyen-checkout__field-wrapper\">\n <Field\n errorMessage={Boolean(errors.bankAccountNumber) && i18n.get('bacs.accountNumber.invalid')}\n label={i18n.get('bacs.accountNumber')}\n className={classNames({\n 'adyen-checkout__bacs--bank-account-number': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-70']}\n isValid={valid.bankAccountNumber}\n name={'bankAccountNumber'}\n i18n={i18n}\n >\n <InputText\n value={data.bankAccountNumber}\n className={'adyen-checkout__bacs-input--bank-account-number'}\n placeholder={props.placeholders?.bankAccountNumber}\n aria-invalid={!valid.bankAccountNumber}\n aria-label={i18n.get('bacs.accountNumber')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={undefined}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n />\n </Field>\n\n <Field\n errorMessage={Boolean(errors.bankLocationId) && i18n.get('bacs.bankLocationId.invalid')}\n label={i18n.get('bacs.bankLocationId')}\n className={classNames({\n 'adyen-checkout__bacs--bank-location-id': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-30']}\n isValid={valid.bankLocationId}\n name={'bankLocationId'}\n i18n={i18n}\n >\n <InputText\n value={data.bankLocationId}\n className={'adyen-checkout__bacs-input--bank-location-id'}\n placeholder={props.placeholders?.bankLocationId}\n aria-invalid={!valid.bankLocationId}\n aria-label={i18n.get('bacs.bankLocationId')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={undefined}\n onBlur={handleChangeFor('bankLocationId', 'blur')}\n onInput={handleChangeFor('bankLocationId', 'input')}\n />\n </Field>\n </div>\n\n <Field\n errorMessage={getErrorMessage(i18n, errors.shopperEmail ?? undefined, i18n.get('shopperEmail'))}\n label={i18n.get('shopperEmail')}\n className={classNames({\n 'adyen-checkout__bacs--shopper-email': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n isValid={valid.shopperEmail}\n name={'emailAddress'}\n i18n={i18n}\n >\n <InputEmail\n value={data.shopperEmail}\n name={'shopperEmail'}\n className={'adyen-checkout__bacs-input--shopper-email'}\n classNameModifiers={['large']}\n placeholder={props.placeholders?.shopperEmail}\n spellcheck={false}\n aria-invalid={!valid.shopperEmail}\n aria-label={i18n.get('shopperEmail')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={'email'}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n />\n </Field>\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['amountConsentCheckbox']}\n errorMessage={errors.amountConsentCheckbox}\n label={i18n.get('bacs.consent.amount')}\n onChange={handleChangeFor('amountConsentCheckbox')}\n checked={Boolean(data.amountConsentCheckbox)}\n i18n={i18n}\n />\n )}\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['accountConsentCheckbox']}\n errorMessage={errors.accountConsentCheckbox}\n label={i18n.get('bacs.consent.account')}\n onChange={handleChangeFor('accountConsentCheckbox')}\n checked={Boolean(data.accountConsentCheckbox)}\n i18n={i18n}\n />\n )}\n\n {props.showPayButton &&\n props.payButton?.({\n status,\n label:\n status === ENTER_STATE\n ? i18n.get('continue')\n : `${i18n.get('bacs.confirm')} ${\n !!amount?.value && !!amount?.currency ? i18n.amount(amount.value, amount.currency) : ''\n }`,\n icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`),\n onClick: handlePayButton\n })}\n </div>\n );\n}\n\nBacsInput.defaultProps = {\n data: {},\n placeholders: {}\n};\n\nexport default BacsInput;\n"],"names":["ENTER_STATE","CONFIRM_STATE","BacsInput","props","errors","i18n","useCoreContext","getImage","useImage","amount","useAmount","handleChangeFor","triggerValidation","data","valid","isValid","useForm","schema","defaultData","formatters","bacsFormatters","rules","bacsValidationRules","status","setStatus","useState","bacsInputRef","useRef","showValidation","useEffect","setComponentRef","current","onChange","h","div","className","classNames","FormInstruction","isDropin","InputText","name","value","get","aria-label","readonly","onClick","autocomplete","undefined","Field","label","errorMessage","holderName","placeholder","placeholders","aria-invalid","aria-required","required","autocorrect","onBlur","onInput","Boolean","bankAccountNumber","classNameModifiers","bankLocationId","getErrorMessage","shopperEmail","InputEmail","spellcheck","ConsentCheckbox","amountConsentCheckbox","checked","accountConsentCheckbox","showPayButton","payButton","currency","icon","imageFolder","PREFIX","onSubmit","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BacsInput.js","sources":["../../../../../src/components/BacsDD/components/BacsInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport classNames from 'classnames';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport ConsentCheckbox from '../../internal/FormFields/ConsentCheckbox';\nimport { bacsValidationRules, bacsFormatters } from './validate';\nimport { BacsDataState, BacsInputProps } from './types';\nimport './BacsInput.scss';\n\nimport useForm from '../../../utils/useForm';\nimport useImage from '../../../core/Context/useImage';\nimport InputText from '../../internal/FormFields/InputText';\nimport InputEmail from '../../internal/FormFields/InputEmail';\nimport FormInstruction from '../../internal/FormInstruction';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport { PREFIX } from '../../internal/Icon/constants';\nimport { useAmount } from '../../../core/Context/AmountProvider';\n\nconst ENTER_STATE = 'enter-data';\nconst CONFIRM_STATE = 'confirm-data';\n\nfunction BacsInput(props: Readonly<BacsInputProps>) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const { amount } = useAmount();\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BacsDataState>({\n schema: ['holderName', 'bankAccountNumber', 'bankLocationId', 'shopperEmail', 'amountConsentCheckbox', 'accountConsentCheckbox'],\n defaultData: props.data,\n formatters: bacsFormatters,\n rules: bacsValidationRules\n });\n\n const [status, setStatus] = useState(ENTER_STATE);\n this.setStatus = setStatus;\n this.showValidation = triggerValidation;\n\n const handlePayButton = () => {\n if (!isValid) return this.showValidation();\n\n if (status === ENTER_STATE) {\n return this.setStatus(CONFIRM_STATE);\n } else if (status === CONFIRM_STATE) {\n return props.onSubmit();\n }\n };\n\n const handleEdit = () => {\n return this.setStatus(ENTER_STATE);\n };\n\n useEffect(() => {\n props.onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n return (\n <div\n className={classNames({\n 'adyen-checkout__bacs': true,\n 'adyen-checkout__bacs--confirm': status === CONFIRM_STATE || status === 'loading'\n })}\n >\n <FormInstruction />\n\n {status == CONFIRM_STATE && (\n <div\n className={classNames({\n 'adyen-checkout__bacs--edit': true,\n 'adyen-checkout__bacs--edit-dropin': props.isDropin\n })}\n >\n <InputText\n name={'bacsEdit'}\n className={'adyen-checkout__bacs--edit-button'}\n value={i18n.get('edit')}\n aria-label={i18n.get('edit')}\n readonly={true}\n onClick={handleEdit}\n autocomplete={undefined}\n />\n </div>\n )}\n\n <Field\n className={classNames({\n 'adyen-checkout__bacs--holder-name': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n label={i18n.get('bacs.accountHolderName')}\n errorMessage={errors.holderName ? i18n.get('bacs.accountHolderName.invalid') : false}\n isValid={valid.holderName}\n name={'accountHolderName'}\n i18n={i18n}\n >\n <InputText\n name={'bacs.accountHolderName'}\n className={'adyen-checkout__bacs-input--holder-name'}\n placeholder={props.placeholders.holderName}\n value={data.holderName}\n aria-invalid={!valid.holderName}\n aria-label={i18n.get('bacs.accountHolderName')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={'name'}\n onBlur={handleChangeFor('holderName', 'blur')}\n onInput={handleChangeFor('holderName', 'input')}\n />\n </Field>\n\n <div className=\"adyen-checkout__bacs__num-id adyen-checkout__field-wrapper\">\n <Field\n errorMessage={!!errors.bankAccountNumber && i18n.get('bacs.accountNumber.invalid')}\n label={i18n.get('bacs.accountNumber')}\n className={classNames({\n 'adyen-checkout__bacs--bank-account-number': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-70']}\n isValid={valid.bankAccountNumber}\n name={'bankAccountNumber'}\n i18n={i18n}\n >\n <InputText\n value={data.bankAccountNumber}\n className={'adyen-checkout__bacs-input--bank-account-number'}\n placeholder={props.placeholders.bankAccountNumber}\n aria-invalid={!valid.bankAccountNumber}\n aria-label={i18n.get('bacs.accountNumber')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={undefined}\n onBlur={handleChangeFor('bankAccountNumber', 'blur')}\n onInput={handleChangeFor('bankAccountNumber', 'input')}\n />\n </Field>\n\n <Field\n errorMessage={!!errors.bankLocationId && i18n.get('bacs.bankLocationId.invalid')}\n label={i18n.get('bacs.bankLocationId')}\n className={classNames({\n 'adyen-checkout__bacs--bank-location-id': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n classNameModifiers={['col-30']}\n isValid={valid.bankLocationId}\n name={'bankLocationId'}\n i18n={i18n}\n >\n <InputText\n value={data.bankLocationId}\n className={'adyen-checkout__bacs-input--bank-location-id'}\n placeholder={props.placeholders.bankLocationId}\n aria-invalid={!valid.bankLocationId}\n aria-label={i18n.get('bacs.bankLocationId')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={undefined}\n onBlur={handleChangeFor('bankLocationId', 'blur')}\n onInput={handleChangeFor('bankLocationId', 'input')}\n />\n </Field>\n </div>\n\n <Field\n errorMessage={getErrorMessage(i18n, errors.shopperEmail, i18n.get('shopperEmail'))}\n label={i18n.get('shopperEmail')}\n className={classNames({\n 'adyen-checkout__bacs--shopper-email': true,\n 'adyen-checkout__field--inactive': status === CONFIRM_STATE || status === 'loading'\n })}\n isValid={valid.shopperEmail}\n name={'emailAddress'}\n i18n={i18n}\n >\n <InputEmail\n value={data.shopperEmail}\n name={'shopperEmail'}\n className={'adyen-checkout__bacs-input--shopper-email'}\n classNameModifiers={['large']}\n placeholder={props.placeholders.shopperEmail}\n spellcheck={false}\n aria-invalid={!valid.shopperEmail}\n aria-label={i18n.get('shopperEmail')}\n aria-required={'true'}\n required={true}\n readonly={status === CONFIRM_STATE || status === 'loading'}\n autocorrect={'off'}\n autocomplete={'email'}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n />\n </Field>\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['amountConsentCheckbox']}\n errorMessage={!!errors.amountConsentCheckbox}\n label={i18n.get('bacs.consent.amount')}\n onChange={handleChangeFor('amountConsentCheckbox')}\n checked={!!data.amountConsentCheckbox}\n i18n={i18n}\n />\n )}\n\n {status === ENTER_STATE && (\n <ConsentCheckbox\n classNameModifiers={['accountConsentCheckbox']}\n errorMessage={!!errors.accountConsentCheckbox}\n label={i18n.get('bacs.consent.account')}\n onChange={handleChangeFor('accountConsentCheckbox')}\n checked={!!data.accountConsentCheckbox}\n i18n={i18n}\n />\n )}\n\n {props.showPayButton &&\n props.payButton({\n status,\n label:\n status === ENTER_STATE\n ? i18n.get('continue')\n : `${i18n.get('bacs.confirm')} ${\n !!amount?.value && !!amount?.currency ? i18n.amount(amount.value, amount.currency) : ''\n }`,\n icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`),\n onClick: handlePayButton\n })}\n </div>\n );\n}\n\nBacsInput.defaultProps = {\n data: {},\n placeholders: {}\n};\n\nexport default BacsInput;\n"],"names":["ENTER_STATE","CONFIRM_STATE","BacsInput","props","i18n","useCoreContext","getImage","useImage","amount","useAmount","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","defaultData","formatters","bacsFormatters","rules","bacsValidationRules","status","setStatus","useState","this","showValidation","useEffect","onChange","h","div","className","classNames","FormInstruction","isDropin","InputText","name","value","get","aria-label","readonly","onClick","autocomplete","undefined","Field","label","errorMessage","holderName","placeholder","placeholders","aria-invalid","aria-required","required","autocorrect","onBlur","onInput","bankAccountNumber","classNameModifiers","bankLocationId","getErrorMessage","shopperEmail","InputEmail","spellcheck","ConsentCheckbox","amountConsentCheckbox","checked","accountConsentCheckbox","showPayButton","payButton","currency","icon","imageFolder","PREFIX","onSubmit","defaultProps"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as e,Fragment as r}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import n from"../internal/RedirectButton/RedirectButton.js";import a from"./components/BankTransferResult/BankTransferResult.js";import s from"./components/BankTransferInput/BankTransferInput.js";import{TxVariants as o}from"../tx-variants.js";function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function p(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){i(e,r,t[r])})}return e}function f(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}class b extends t{get isValid(){return!!this.state.isValid}formatData(){const{shopperEmail:e}=this.state.data,r=this.type!==o.bankTransfer_IBAN?{subtype:"embedded"}:{};return p({paymentMethod:p({type:this.type},r)},e&&{shopperEmail:e})}componentToRender(){return this.props.reference?e(a,f(p({},this.props),{onActionHandled:this.onActionHandled})):e(r,null,this.props.showEmailAddress&&e(s,f(p({setComponentRef:this.setComponentRef},this.props),{onChange:this.setState})),e(n,f(p({},this.props),{
|
|
1
|
+
import{createElement as e,Fragment as r}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import n from"../internal/RedirectButton/RedirectButton.js";import a from"./components/BankTransferResult/BankTransferResult.js";import s from"./components/BankTransferInput/BankTransferInput.js";import{TxVariants as o}from"../tx-variants.js";function i(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function p(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){i(e,r,t[r])})}return e}function f(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}class b extends t{get isValid(){return!!this.state.isValid}formatData(){const{shopperEmail:e}=this.state.data,r=this.type!==o.bankTransfer_IBAN?{subtype:"embedded"}:{};return p({paymentMethod:p({type:this.type},r)},e&&{shopperEmail:e})}componentToRender(){return this.props.reference?e(a,f(p({},this.props),{onActionHandled:this.onActionHandled})):e(r,null,this.props.showEmailAddress&&e(s,f(p({setComponentRef:this.setComponentRef},this.props),{onChange:this.setState})),e(n,f(p({},this.props),{showPayButton:this.props.showPayButton,name:this.displayName,onSubmit:this.submit,payButton:this.payButton})))}constructor(...e){super(...e),i(this,"state",{isValid:!this.props.showEmailAddress,data:{}})}}i(b,"type",o.bankTransfer_IBAN),i(b,"txVariants",[o.bankTransfer_IBAN,o.bankTransfer_BE,o.bankTransfer_NL,o.bankTransfer_PL,o.bankTransfer_FR,o.bankTransfer_CH,o.bankTransfer_IE,o.bankTransfer_GB,o.bankTransfer_DE,o.bankTransfer_AE,o.bankTransfer_AT,o.bankTransfer_AU,o.bankTransfer_BG,o.bankTransfer_CA,o.bankTransfer_EE,o.bankTransfer_ES,o.bankTransfer_FI,o.bankTransfer_HK,o.bankTransfer_HU,o.bankTransfer_IT,o.bankTransfer_JP,o.bankTransfer_LU,o.bankTransfer_NZ,o.bankTransfer_PT,o.bankTransfer_SG,o.bankTransfer_SK,o.bankTransfer_US]),i(b,"defaultProps",{showEmailAddress:!0,showContextualElement:!0,data:{shopperEmail:""}});export{b as BankTransferElement,b as default};
|
|
2
2
|
//# sourceMappingURL=BankTransfer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BankTransfer.js","sources":["../../../../src/components/BankTransfer/BankTransfer.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport RedirectButton from '../internal/RedirectButton';\nimport { BankTransferConfiguration, BankTransferState } from './types';\nimport BankTransferResult from './components/BankTransferResult';\nimport BankTransferInput from './components/BankTransferInput';\nimport { TxVariants } from '../tx-variants';\n\nexport class BankTransferElement extends UIElement<BankTransferConfiguration> {\n public static readonly type = TxVariants.bankTransfer_IBAN;\n public static readonly txVariants = [\n TxVariants.bankTransfer_IBAN,\n TxVariants.bankTransfer_BE,\n TxVariants.bankTransfer_NL,\n TxVariants.bankTransfer_PL,\n TxVariants.bankTransfer_FR,\n TxVariants.bankTransfer_CH,\n TxVariants.bankTransfer_IE,\n TxVariants.bankTransfer_GB,\n TxVariants.bankTransfer_DE,\n TxVariants.bankTransfer_AE,\n TxVariants.bankTransfer_AT,\n TxVariants.bankTransfer_AU,\n TxVariants.bankTransfer_BG,\n TxVariants.bankTransfer_CA,\n TxVariants.bankTransfer_EE,\n TxVariants.bankTransfer_ES,\n TxVariants.bankTransfer_FI,\n TxVariants.bankTransfer_HK,\n TxVariants.bankTransfer_HU,\n TxVariants.bankTransfer_IT,\n TxVariants.bankTransfer_JP,\n TxVariants.bankTransfer_LU,\n TxVariants.bankTransfer_NZ,\n TxVariants.bankTransfer_PT,\n TxVariants.bankTransfer_SG,\n TxVariants.bankTransfer_SK,\n TxVariants.bankTransfer_US\n ];\n\n public static readonly defaultProps = {\n showEmailAddress: true,\n showContextualElement: true,\n data: { shopperEmail: '' }\n };\n\n // @ts-ignore Double check why state extends all props\n public state: BankTransferState = {\n isValid: !this.props.showEmailAddress,\n data: {}\n };\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const { shopperEmail } = this.state.data;\n const subtype = this.type !== (TxVariants.bankTransfer_IBAN as string) ? { subtype: 'embedded' } : {};\n\n return {\n paymentMethod: {\n type: this.type,\n ...subtype\n },\n ...(shopperEmail && { shopperEmail })\n };\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.reference) {\n return <BankTransferResult {...this.props} onActionHandled={this.onActionHandled} />;\n }\n\n return (\n <Fragment>\n {this.props.showEmailAddress && <BankTransferInput setComponentRef={this.setComponentRef} {...this.props} onChange={this.setState} />}\n <RedirectButton\n {...this.props}\n
|
|
1
|
+
{"version":3,"file":"BankTransfer.js","sources":["../../../../src/components/BankTransfer/BankTransfer.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport RedirectButton from '../internal/RedirectButton';\nimport { BankTransferConfiguration, BankTransferState } from './types';\nimport BankTransferResult from './components/BankTransferResult';\nimport BankTransferInput from './components/BankTransferInput';\nimport { TxVariants } from '../tx-variants';\n\nexport class BankTransferElement extends UIElement<BankTransferConfiguration> {\n public static readonly type = TxVariants.bankTransfer_IBAN;\n public static readonly txVariants = [\n TxVariants.bankTransfer_IBAN,\n TxVariants.bankTransfer_BE,\n TxVariants.bankTransfer_NL,\n TxVariants.bankTransfer_PL,\n TxVariants.bankTransfer_FR,\n TxVariants.bankTransfer_CH,\n TxVariants.bankTransfer_IE,\n TxVariants.bankTransfer_GB,\n TxVariants.bankTransfer_DE,\n TxVariants.bankTransfer_AE,\n TxVariants.bankTransfer_AT,\n TxVariants.bankTransfer_AU,\n TxVariants.bankTransfer_BG,\n TxVariants.bankTransfer_CA,\n TxVariants.bankTransfer_EE,\n TxVariants.bankTransfer_ES,\n TxVariants.bankTransfer_FI,\n TxVariants.bankTransfer_HK,\n TxVariants.bankTransfer_HU,\n TxVariants.bankTransfer_IT,\n TxVariants.bankTransfer_JP,\n TxVariants.bankTransfer_LU,\n TxVariants.bankTransfer_NZ,\n TxVariants.bankTransfer_PT,\n TxVariants.bankTransfer_SG,\n TxVariants.bankTransfer_SK,\n TxVariants.bankTransfer_US\n ];\n\n public static readonly defaultProps = {\n showEmailAddress: true,\n showContextualElement: true,\n data: { shopperEmail: '' }\n };\n\n // @ts-ignore Double check why state extends all props\n public state: BankTransferState = {\n isValid: !this.props.showEmailAddress,\n data: {}\n };\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const { shopperEmail } = this.state.data;\n const subtype = this.type !== (TxVariants.bankTransfer_IBAN as string) ? { subtype: 'embedded' } : {};\n\n return {\n paymentMethod: {\n type: this.type,\n ...subtype\n },\n ...(shopperEmail && { shopperEmail })\n };\n }\n\n protected override componentToRender(): h.JSX.Element {\n if (this.props.reference) {\n return <BankTransferResult {...this.props} onActionHandled={this.onActionHandled} />;\n }\n\n return (\n <Fragment>\n {this.props.showEmailAddress && <BankTransferInput setComponentRef={this.setComponentRef} {...this.props} onChange={this.setState} />}\n <RedirectButton\n {...this.props}\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n </Fragment>\n );\n }\n}\n\nexport default BankTransferElement;\n"],"names":["BankTransferElement","UIElement","isValid","this","state","formatData","shopperEmail","data","subtype","type","TxVariants","bankTransfer_IBAN","_object_spread","paymentMethod","componentToRender","props","reference","h","BankTransferResult","onActionHandled","Fragment","showEmailAddress","BankTransferInput","setComponentRef","onChange","setState","RedirectButton","showPayButton","name","displayName","onSubmit","submit","payButton","super","args","_define_property","txVariants","bankTransfer_BE","bankTransfer_NL","bankTransfer_PL","bankTransfer_FR","bankTransfer_CH","bankTransfer_IE","bankTransfer_GB","bankTransfer_DE","bankTransfer_AE","bankTransfer_AT","bankTransfer_AU","bankTransfer_BG","bankTransfer_CA","bankTransfer_EE","bankTransfer_ES","bankTransfer_FI","bankTransfer_HK","bankTransfer_HU","bankTransfer_IT","bankTransfer_JP","bankTransfer_LU","bankTransfer_NZ","bankTransfer_PT","bankTransfer_SG","bankTransfer_SK","bankTransfer_US","defaultProps","showContextualElement"],"mappings":"8qCAQO,MAAMA,UAA4BC,EA4CrC,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAKAG,UAAAA,GACI,MAAMC,aAAEA,GAAiBH,KAAKC,MAAMG,KAC9BC,EAAUL,KAAKM,OAAUC,EAAWC,kBAA+B,CAAEH,QAAS,YAAe,CAAA,EAEnG,OAAOI,EAAA,CACHC,cAAeD,EAAA,CACXH,KAAMN,KAAKM,MACRD,IAEHF,GAAgB,CAAEA,gBAE9B,CAEmBQ,iBAAAA,GACf,OAAIX,KAAKY,MAAMC,UACJC,EAACC,EAAAA,EAAAA,EAAAA,GAAuBf,KAAKY,OAAK,CAAEI,gBAAiBhB,KAAKgB,mBAIjEF,EAACG,OACIjB,KAAKY,MAAMM,kBAAoBJ,EAACK,EAAAA,EAAAA,EAAAA,CAAkBC,gBAAiBpB,KAAKoB,iBAAqBpB,KAAKY,OAAK,CAAES,SAAUrB,KAAKsB,YACzHR,EAACS,EAAAA,EAAAA,EAAAA,CAAAA,EACOvB,KAAKY,OAAK,CACdY,cAAexB,KAAKY,MAAMY,cAC1BC,KAAMzB,KAAK0B,YACXC,SAAU3B,KAAK4B,OACfC,UAAW7B,KAAK6B,aAIhC,mBAjFGC,SAAAC,GAuCHC,EAAAhC,KAAOC,QAA2B,CAC9BF,SAAUC,KAAKY,MAAMM,iBACrBd,KAAM,CAAA,KAxCV4B,EADSnC,EACcS,OAAOC,EAAWC,mBACzCwB,EAFSnC,EAEcoC,aAAa,CAChC1B,EAAWC,kBACXD,EAAW2B,gBACX3B,EAAW4B,gBACX5B,EAAW6B,gBACX7B,EAAW8B,gBACX9B,EAAW+B,gBACX/B,EAAWgC,gBACXhC,EAAWiC,gBACXjC,EAAWkC,gBACXlC,EAAWmC,gBACXnC,EAAWoC,gBACXpC,EAAWqC,gBACXrC,EAAWsC,gBACXtC,EAAWuC,gBACXvC,EAAWwC,gBACXxC,EAAWyC,gBACXzC,EAAW0C,gBACX1C,EAAW2C,gBACX3C,EAAW4C,gBACX5C,EAAW6C,gBACX7C,EAAW8C,gBACX9C,EAAW+C,gBACX/C,EAAWgD,gBACXhD,EAAWiD,gBACXjD,EAAWkD,gBACXlD,EAAWmD,gBACXnD,EAAWoD,kBAGf3B,EAhCSnC,EAgCc+D,eAAe,CAClC1C,kBAAkB,EAClB2C,uBAAuB,EACvBzD,KAAM,CAAED,aAAc"}
|
package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useCoreContext as a}from"../../../../core/Context/CoreProvider.js";import{useRef as r,useEffect as o}from"../../../../external/preact/hooks/dist/hooks.js";import t from"../../../../utils/useForm/useForm.js";import"../../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import{getErrorMessage as s}from"../../../../utils/getErrorMessage.js";import i from"../../../internal/FormFields/InputEmail.js";import l from"../../../internal/FormFields/Field/Field.js";import{optionalEmailValidationRule as n}from"./validationRule.js";function m(m){const{i18n:p}=a(),d=`${p.get("shopperEmail")} ${p.get("field.title.optional")}`,{handleChangeFor:u,triggerValidation:c,data:h,valid:f,errors:E,isValid:_}=t({schema:["shopperEmail"],defaultData:m.data,rules:{shopperEmail:n}}),g=r({showValidation:()=>{c()}});return o(()=>{m.onChange({data:h,errors:E,valid:f,isValid:_})},[h,f,E,_]),o(()=>{m.setComponentRef(g.current)},[m.setComponentRef]),e("div",{className:"adyen-checkout__bankTransfer"},e("p",{className:"adyen-checkout__bankTransfer__introduction"},p.get("bankTransfer.introduction")),e("div",{className:"adyen-checkout__fieldset adyen-checkout__fieldset--sendCopyToEmail adyen-checkout__bankTransfer__emailField"},e(l,{label:d,classNameModifiers:["shopperEmail"],errorMessage
|
|
1
|
+
import{createElement as e}from"../../../../external/preact/dist/preact.js";import{useCoreContext as a}from"../../../../core/Context/CoreProvider.js";import{useRef as r,useEffect as o}from"../../../../external/preact/hooks/dist/hooks.js";import t from"../../../../utils/useForm/useForm.js";import"../../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import{getErrorMessage as s}from"../../../../utils/getErrorMessage.js";import i from"../../../internal/FormFields/InputEmail.js";import l from"../../../internal/FormFields/Field/Field.js";import{optionalEmailValidationRule as n}from"./validationRule.js";function m(m){const{i18n:p}=a(),d=`${p.get("shopperEmail")} ${p.get("field.title.optional")}`,{handleChangeFor:u,triggerValidation:c,data:h,valid:f,errors:E,isValid:_}=t({schema:["shopperEmail"],defaultData:m.data,rules:{shopperEmail:n}}),g=r({showValidation:()=>{c()}});return o(()=>{m.onChange({data:h,errors:E,valid:f,isValid:_})},[h,f,E,_]),o(()=>{m.setComponentRef(g.current)},[m.setComponentRef]),e("div",{className:"adyen-checkout__bankTransfer"},e("p",{className:"adyen-checkout__bankTransfer__introduction"},p.get("bankTransfer.introduction")),e("div",{className:"adyen-checkout__fieldset adyen-checkout__fieldset--sendCopyToEmail adyen-checkout__bankTransfer__emailField"},e(l,{label:d,classNameModifiers:["shopperEmail"],errorMessage:!!E.shopperEmail&&s(p,E.shopperEmail,p.get("shopperEmail")),isValid:f.shopperEmail,name:"shopperEmail",showContextualElement:m.showContextualElement,contextualText:p.get("bankTransfer.shopperEmail.contextualText")},e(i,{name:"shopperEmail",autoCorrect:"off",spellcheck:!1,required:!1,value:h.shopperEmail,onInput:u("shopperEmail","input"),onBlur:u("shopperEmail","blur"),autocomplete:"email"}))))}export{m as default};
|
|
2
2
|
//# sourceMappingURL=BankTransferInput.js.map
|
package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BankTransferInput.js","sources":["../../../../../../src/components/BankTransfer/components/BankTransferInput/BankTransferInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport './BankTransferInput.scss';\nimport { useEffect, useRef } from 'preact/hooks';\nimport useForm from '../../../../utils/useForm';\nimport { BankTransferSchema } from '../../types';\nimport { getErrorMessage } from '../../../../utils/getErrorMessage';\nimport InputEmail from '../../../internal/FormFields/InputEmail';\nimport Field from '../../../internal/FormFields/Field';\nimport { optionalEmailValidationRule } from './validationRule';\nimport { BankTransferInputProps } from './types';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\nfunction BankTransferInput(props: Readonly<BankTransferInputProps>) {\n const { i18n } = useCoreContext();\n const emailOptionalLabel = `${i18n.get('shopperEmail')} ${i18n.get('field.title.optional')}`;\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BankTransferSchema>({\n schema: ['shopperEmail'],\n defaultData: props.data,\n rules: {\n shopperEmail: optionalEmailValidationRule\n }\n });\n\n const self = useRef<ComponentMethodsRef>({\n showValidation: () => {\n triggerValidation();\n }\n });\n\n useEffect(() => {\n props.onChange({ data, errors, valid, isValid });\n }, [data, valid, errors, isValid]);\n\n useEffect(() => {\n props.setComponentRef(self.current);\n }, [props.setComponentRef]);\n\n return (\n <div className=\"adyen-checkout__bankTransfer\">\n <p className=\"adyen-checkout__bankTransfer__introduction\">{i18n.get('bankTransfer.introduction')}</p>\n <div className=\"adyen-checkout__fieldset adyen-checkout__fieldset--sendCopyToEmail adyen-checkout__bankTransfer__emailField\">\n <Field\n label={emailOptionalLabel}\n classNameModifiers={['shopperEmail']}\n errorMessage={
|
|
1
|
+
{"version":3,"file":"BankTransferInput.js","sources":["../../../../../../src/components/BankTransfer/components/BankTransferInput/BankTransferInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport './BankTransferInput.scss';\nimport { useEffect, useRef } from 'preact/hooks';\nimport useForm from '../../../../utils/useForm';\nimport { BankTransferSchema } from '../../types';\nimport { getErrorMessage } from '../../../../utils/getErrorMessage';\nimport InputEmail from '../../../internal/FormFields/InputEmail';\nimport Field from '../../../internal/FormFields/Field';\nimport { optionalEmailValidationRule } from './validationRule';\nimport { BankTransferInputProps } from './types';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\n\nfunction BankTransferInput(props: Readonly<BankTransferInputProps>) {\n const { i18n } = useCoreContext();\n const emailOptionalLabel = `${i18n.get('shopperEmail')} ${i18n.get('field.title.optional')}`;\n\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BankTransferSchema>({\n schema: ['shopperEmail'],\n defaultData: props.data,\n rules: {\n shopperEmail: optionalEmailValidationRule\n }\n });\n\n const self = useRef<ComponentMethodsRef>({\n showValidation: () => {\n triggerValidation();\n }\n });\n\n useEffect(() => {\n props.onChange({ data, errors, valid, isValid });\n }, [data, valid, errors, isValid]);\n\n useEffect(() => {\n props.setComponentRef(self.current);\n }, [props.setComponentRef]);\n\n return (\n <div className=\"adyen-checkout__bankTransfer\">\n <p className=\"adyen-checkout__bankTransfer__introduction\">{i18n.get('bankTransfer.introduction')}</p>\n <div className=\"adyen-checkout__fieldset adyen-checkout__fieldset--sendCopyToEmail adyen-checkout__bankTransfer__emailField\">\n <Field\n label={emailOptionalLabel}\n classNameModifiers={['shopperEmail']}\n errorMessage={!!errors.shopperEmail && getErrorMessage(i18n, errors.shopperEmail, i18n.get('shopperEmail'))}\n isValid={valid.shopperEmail}\n name={'shopperEmail'}\n showContextualElement={props.showContextualElement}\n contextualText={i18n.get('bankTransfer.shopperEmail.contextualText')}\n >\n <InputEmail\n name={'shopperEmail'}\n autoCorrect={'off'}\n spellcheck={false}\n required={false}\n value={data.shopperEmail}\n onInput={handleChangeFor('shopperEmail', 'input')}\n onBlur={handleChangeFor('shopperEmail', 'blur')}\n autocomplete={'email'}\n />\n </Field>\n </div>\n </div>\n );\n}\n\nexport default BankTransferInput;\n"],"names":["BankTransferInput","props","i18n","useCoreContext","emailOptionalLabel","get","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","defaultData","rules","shopperEmail","optionalEmailValidationRule","self","useRef","showValidation","useEffect","onChange","setComponentRef","current","h","div","className","p","Field","label","classNameModifiers","errorMessage","getErrorMessage","name","showContextualElement","contextualText","InputEmail","autoCorrect","spellcheck","required","value","onInput","onBlur","autocomplete"],"mappings":"kmBAaA,SAASA,EAAkBC,GACvB,MAAMC,KAAEA,GAASC,IACXC,EAAqB,GAAGF,EAAKG,IAAI,mBAAmBH,EAAKG,IAAI,2BAE7DC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA4B,CACrGC,OAAQ,CAAC,gBACTC,YAAab,EAAMO,KACnBO,MAAO,CACHC,aAAcC,KAIhBC,EAAOC,EAA4B,CACrCC,eAAgB,KACZb,OAYR,OARAc,EAAU,KACNpB,EAAMqB,SAAS,CAAEd,OAAME,SAAQD,QAAOE,aACvC,CAACH,EAAMC,EAAOC,EAAQC,IAEzBU,EAAU,KACNpB,EAAMsB,gBAAgBL,EAAKM,UAC5B,CAACvB,EAAMsB,kBAGNE,EAACC,MAAAA,CAAIC,UAAU,gCACXF,EAACG,IAAAA,CAAED,UAAU,8CAA8CzB,EAAKG,IAAI,8BACpEoB,EAACC,MAAAA,CAAIC,UAAU,+GACXF,EAACI,EAAAA,CACGC,MAAO1B,EACP2B,mBAAoB,CAAC,gBACrBC,eAAgBtB,EAAOM,cAAgBiB,EAAgB/B,EAAMQ,EAAOM,aAAcd,EAAKG,IAAI,iBAC3FM,QAASF,EAAMO,aACfkB,KAAM,eACNC,sBAAuBlC,EAAMkC,sBAC7BC,eAAgBlC,EAAKG,IAAI,6CAEzBoB,EAACY,EAAAA,CACGH,KAAM,eACNI,YAAa,MACbC,YAAY,EACZC,UAAU,EACVC,MAAOjC,EAAKQ,aACZ0B,QAASpC,EAAgB,eAAgB,SACzCqC,OAAQrC,EAAgB,eAAgB,QACxCsC,aAAc,YAMtC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/BlikInput.js";import{Await as
|
|
1
|
+
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/BlikInput.js";import{Await as r}from"../internal/Await/Await.js";import n from"./config.js";import s from"../internal/RedirectButton/RedirectButton.js";import{TxVariants as i}from"../tx-variants.js";function a(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function p(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),r.forEach(function(e){a(t,e,o[e])})}return t}function l(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}class m extends e{formatData(){var t,e;const o=!!this.props.storedPaymentMethodId;return{paymentMethod:p({type:m.type},!o&&{blikCode:null===(e=this.state)||void 0===e||null===(t=e.data)||void 0===t?void 0:t.blikCode},o&&{storedPaymentMethodId:this.props.storedPaymentMethodId})}}get isValid(){return!!this.props.storedPaymentMethodId||!!this.state.isValid}get displayName(){return this.props.storedPaymentMethodId&&this.props.label?this.props.label:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId&&this.props.label?this.props.name:null}componentToRender(){return this.props.paymentData?t(r,{clientKey:this.props.clientKey,paymentData:this.props.paymentData,onError:this.handleError,onComplete:this.onComplete,brandLogo:this.icon,brandName:this.displayName,type:n.type,messageText:this.props.i18n.get(n.messageTextId),awaitText:this.props.i18n.get(n.awaitTextId),showCountdownTimer:n.showCountdownTimer,delay:n.STATUS_INTERVAL,countdownTime:n.COUNTDOWN_MINUTES,throttleTime:n.THROTTLE_TIME,throttleInterval:n.THROTTLE_INTERVAL,onActionHandled:this.onActionHandled}):this.props.storedPaymentMethodId?t(s,{showPayButton:this.props.showPayButton,name:this.displayName,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}}):t(o,l(p({ref:t=>{this.componentRef=t}},this.props),{onChange:this.setState,onSubmit:this.submit,payButton:this.payButton}))}}a(m,"type",i.blik);export{m as default};
|
|
2
2
|
//# sourceMappingURL=Blik.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Blik.js","sources":["../../../../src/components/Blik/Blik.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport BlikInput from '../../components/Blik/components/BlikInput';\nimport { Await } from '../internal/Await';\nimport config from './config';\nimport RedirectButton from '../../components/internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport { AwaitConfiguration } from '../internal/Await/types';\n\ninterface BlikElementData {\n paymentMethod: {\n type: string;\n blikCode: string;\n };\n}\n\nclass BlikElement extends UIElement<AwaitConfiguration> {\n public static readonly type = TxVariants.blik;\n\n formatData(): BlikElementData {\n const recurringPayment = !!this.props.storedPaymentMethodId;\n\n return {\n paymentMethod: {\n type: BlikElement.type,\n ...(!recurringPayment && { blikCode: this.state?.data?.blikCode }),\n ...(recurringPayment && { storedPaymentMethodId: this.props.storedPaymentMethodId })\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.name;\n }\n return null;\n }\n\n /**\n * NOTE: for future reference:\n * this.props.onComplete (which is called from this.onComplete) equates to the merchant defined onAdditionalDetails callback\n * (the initial /payments response defines an \"await\" action, actionTypes.ts translates this to \"onComplete: props.onAdditionalDetails\")\n */\n protected override componentToRender(): h.JSX.Element {\n if (this.props.paymentData) {\n return (\n <Await\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.handleError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n brandName={this.displayName}\n type={config.type}\n messageText={this.props.i18n.get(config.messageTextId)}\n awaitText={this.props.i18n.get(config.awaitTextId)}\n showCountdownTimer={config.showCountdownTimer}\n delay={config.STATUS_INTERVAL}\n countdownTime={config.COUNTDOWN_MINUTES}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n\n return this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n
|
|
1
|
+
{"version":3,"file":"Blik.js","sources":["../../../../src/components/Blik/Blik.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport BlikInput from '../../components/Blik/components/BlikInput';\nimport { Await } from '../internal/Await';\nimport config from './config';\nimport RedirectButton from '../../components/internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport { AwaitConfiguration } from '../internal/Await/types';\n\ninterface BlikElementData {\n paymentMethod: {\n type: string;\n blikCode: string;\n };\n}\n\nclass BlikElement extends UIElement<AwaitConfiguration> {\n public static readonly type = TxVariants.blik;\n\n formatData(): BlikElementData {\n const recurringPayment = !!this.props.storedPaymentMethodId;\n\n return {\n paymentMethod: {\n type: BlikElement.type,\n ...(!recurringPayment && { blikCode: this.state?.data?.blikCode }),\n ...(recurringPayment && { storedPaymentMethodId: this.props.storedPaymentMethodId })\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.name;\n }\n return null;\n }\n\n /**\n * NOTE: for future reference:\n * this.props.onComplete (which is called from this.onComplete) equates to the merchant defined onAdditionalDetails callback\n * (the initial /payments response defines an \"await\" action, actionTypes.ts translates this to \"onComplete: props.onAdditionalDetails\")\n */\n protected override componentToRender(): h.JSX.Element {\n if (this.props.paymentData) {\n return (\n <Await\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.handleError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n brandName={this.displayName}\n type={config.type}\n messageText={this.props.i18n.get(config.messageTextId)}\n awaitText={this.props.i18n.get(config.awaitTextId)}\n showCountdownTimer={config.showCountdownTimer}\n delay={config.STATUS_INTERVAL}\n countdownTime={config.COUNTDOWN_MINUTES}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n />\n );\n }\n\n return this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n ) : (\n <BlikInput\n // @ts-ignore Ref is used by preact component\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n onChange={this.setState}\n onSubmit={this.submit}\n payButton={this.payButton}\n />\n );\n }\n}\n\nexport default BlikElement;\n"],"names":["BlikElement","UIElement","formatData","_this_state_data","_this_state","recurringPayment","this","props","storedPaymentMethodId","paymentMethod","_object_spread","type","blikCode","state","data","isValid","displayName","label","name","additionalInfo","componentToRender","paymentData","h","Await","clientKey","onError","handleError","onComplete","brandLogo","icon","brandName","config","messageText","i18n","get","messageTextId","awaitText","awaitTextId","showCountdownTimer","delay","STATUS_INTERVAL","countdownTime","COUNTDOWN_MINUTES","throttleTime","THROTTLE_TIME","throttleInterval","THROTTLE_INTERVAL","onActionHandled","RedirectButton","showPayButton","payButton","onSubmit","submit","ref","componentRef","BlikInput","onChange","setState","_define_property","TxVariants","blik"],"mappings":"+oCAgBA,MAAMA,UAAoBC,EAGtBC,UAAAA,OAMiDC,EAAAC,EAL7C,MAAMC,IAAqBC,KAAKC,MAAMC,sBAEtC,MAAO,CACHC,cAAeC,EAAA,CACXC,KAAMX,EAAYW,OACbN,GAAoB,CAAEO,SAAoB,QAAVR,EAAAE,KAAKO,iBAALT,GAAgB,QAAhBD,EAAAC,EAAYU,YAAZ,IAAAX,OAAA,EAAAA,EAAkBS,UACnDP,GAAoB,CAAEG,sBAAuBF,KAAKC,MAAMC,wBAGxE,CAEA,WAAIO,GACA,QAAIT,KAAKC,MAAMC,yBAINF,KAAKO,MAAME,OACxB,CAEA,eAAIC,GACA,OAAIV,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMU,MACxCX,KAAKC,MAAMU,MAEfX,KAAKC,MAAMW,IACtB,CAEA,kBAAIC,GACA,OAAIb,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMU,MACxCX,KAAKC,MAAMW,KAEf,IACX,CAOA,iBAAAE,GACI,OAAId,KAAKC,MAAMc,YAEPC,EAACC,EAAAA,CACGC,UAAWlB,KAAKC,MAAMiB,UACtBH,YAAaf,KAAKC,MAAMc,YACxBI,QAASnB,KAAKoB,YACdC,WAAYrB,KAAKqB,WACjBC,UAAWtB,KAAKuB,KAChBC,UAAWxB,KAAKU,YAChBL,KAAMoB,EAAOpB,KACbqB,YAAa1B,KAAKC,MAAM0B,KAAKC,IAAIH,EAAOI,eACxCC,UAAW9B,KAAKC,MAAM0B,KAAKC,IAAIH,EAAOM,aACtCC,mBAAoBP,EAAOO,mBAC3BC,MAAOR,EAAOS,gBACdC,cAAeV,EAAOW,kBACtBC,aAAcZ,EAAOa,cACrBC,iBAAkBd,EAAOe,kBACzBC,gBAAiBzC,KAAKyC,kBAK3BzC,KAAKC,MAAMC,sBACdc,EAAC0B,EAAAA,CACGC,cAAe3C,KAAKC,MAAM0C,cAC1B/B,KAAMZ,KAAKU,YACXkC,UAAW5C,KAAK4C,UAChBC,SAAU7C,KAAK8C,OACfC,IAAKA,IACD/C,KAAKgD,aAAeD,KAI5B/B,EAACiC,EAAAA,EAAAA,EAAAA,CAEGF,IAAKA,IACD/C,KAAKgD,aAAeD,IAEpB/C,KAAKC,OAAK,CACdiD,SAAUlD,KAAKmD,SACfN,SAAU7C,KAAK8C,OACfF,UAAW5C,KAAK4C,YAG5B,EAtFAQ,EADE1D,EACqBW,OAAOgD,EAAWC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as e}from"../../../external/preact/dist/preact.js";import{useEffect as o,useState as r
|
|
1
|
+
import{createElement as e}from"../../../external/preact/dist/preact.js";import{useEffect as o,useState as r}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";import i from"../../internal/FormFields/Field/Field.js";import l from"../../../utils/useForm/useForm.js";import"../../internal/SecuredFields/lib/CSF/utils/userAgent.js";import{digitsOnlyFormatter as a}from"../../../utils/Formatters/formatters.js";import s from"../../../core/Context/useImage.js";import d from"../../internal/FormFields/InputText.js";import{PREFIX as n}from"../../internal/Icon/constants.js";function m(m){var u;const{i18n:c}=t(),p=s(),{handleChangeFor:k,triggerValidation:b,data:f,valid:h,errors:C,isValid:g}=l({schema:["blikCode"],rules:{blikCode:{validate:e=>6===(null==e?void 0:e.length),errorMessage:"blik.invalid",modes:["blur"]}},formatters:{blikCode:a}});o(()=>{m.onChange({data:f,errors:C,valid:h,isValid:g},this)},[f,h,C,g]);const[F,v]=r("ready");return this.setStatus=v,this.showValidation=b,e("div",{className:"adyen-checkout__blik"},e("p",{className:"adyen-checkout__blik__helper"},c.get("blik.help")),e(i,{errorMessage:!!C.blikCode&&c.get(C.blikCode.errorMessage),label:c.get("blik.code"),classNameModifiers:["blikCode","50"],isValid:h.blikCode,dir:"ltr",name:"blikCode"},e(d,{value:f.blikCode,name:"blikCode",spellcheck:!1,required:!0,autocorrect:"off",autocomplete:"off",onInput:k("blikCode","input"),onBlur:k("blikCode","blur"),placeholder:null==m||null===(u=m.placeholders)||void 0===u?void 0:u.blikCode,inputMode:"numeric",maxLength:6})),m.showPayButton&&m.payButton({status:F,icon:p({imageFolder:"components/"})(`${n}lock`)}))}m.defaultProps={data:{blikCode:""}};export{m as default};
|
|
2
2
|
//# sourceMappingURL=BlikInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlikInput.js","sources":["../../../../../src/components/Blik/components/BlikInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect
|
|
1
|
+
{"version":3,"file":"BlikInput.js","sources":["../../../../../src/components/Blik/components/BlikInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport './BlikInput.scss';\nimport useForm from '../../../utils/useForm';\nimport { digitsOnlyFormatter } from '../../../utils/Formatters/formatters';\nimport useImage from '../../../core/Context/useImage';\nimport InputText from '../../internal/FormFields/InputText';\nimport { UIElementProps } from '../../internal/UIElement/types';\nimport { PREFIX } from '../../internal/Icon/constants';\n\ninterface BlikInputProps extends UIElementProps {\n data?: BlikInputDataState;\n placeholders?: BlikInputDataState;\n}\n\ninterface BlikInputDataState {\n blikCode: string;\n}\n\nfunction BlikInput(props: Readonly<BlikInputProps>) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const { handleChangeFor, triggerValidation, data, valid, errors, isValid } = useForm<BlikInputDataState>({\n schema: ['blikCode'],\n rules: {\n blikCode: {\n validate: code => code?.length === 6,\n errorMessage: 'blik.invalid',\n modes: ['blur']\n }\n },\n formatters: {\n blikCode: digitsOnlyFormatter\n }\n });\n\n useEffect(() => {\n // @ts-ignore TODO: Fix this. Preact component types should not inherit from UIElementProps.\n props.onChange({ data, errors, valid, isValid }, this);\n }, [data, valid, errors, isValid]);\n\n const [status, setStatus] = useState('ready');\n this.setStatus = setStatus;\n this.showValidation = triggerValidation;\n\n return (\n <div className=\"adyen-checkout__blik\">\n <p className=\"adyen-checkout__blik__helper\">{i18n.get('blik.help')}</p>\n <Field\n errorMessage={!!errors.blikCode && i18n.get(errors.blikCode.errorMessage)}\n label={i18n.get('blik.code')}\n classNameModifiers={['blikCode', '50']}\n isValid={valid.blikCode}\n dir={'ltr'}\n name={'blikCode'}\n >\n <InputText\n value={data.blikCode}\n name={'blikCode'}\n spellcheck={false}\n required={true}\n autocorrect={'off'}\n autocomplete={'off'}\n onInput={handleChangeFor('blikCode', 'input')}\n onBlur={handleChangeFor('blikCode', 'blur')}\n placeholder={props?.placeholders?.blikCode}\n inputMode={'numeric'}\n maxLength={6}\n />\n </Field>\n\n {props.showPayButton &&\n props.payButton({\n status,\n icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`)\n })}\n </div>\n );\n}\n\nBlikInput.defaultProps = { data: { blikCode: '' } };\n\nexport default BlikInput;\n"],"names":["BlikInput","props","i18n","useCoreContext","getImage","useImage","handleChangeFor","triggerValidation","data","valid","errors","isValid","useForm","schema","rules","blikCode","validate","code","length","errorMessage","modes","formatters","digitsOnlyFormatter","useEffect","onChange","this","status","setStatus","useState","showValidation","h","div","className","p","get","Field","label","classNameModifiers","dir","name","InputText","value","spellcheck","required","autocorrect","autocomplete","onInput","onBlur","placeholder","placeholders","inputMode","maxLength","showPayButton","payButton","icon","imageFolder","PREFIX","defaultProps"],"mappings":"8nBAqBA,SAASA,EAAUC,GA8CcA,IAAAA,EA7C7B,MAAMC,KAAEA,GAASC,IACXC,EAAWC,KACXC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA4B,CACrGC,OAAQ,CAAC,YACTC,MAAO,CACHC,SAAU,CACNC,SAAUC,GAAyB,KAAjBA,aAAAA,EAAAA,EAAMC,QACxBC,aAAc,eACdC,MAAO,CAAC,UAGhBC,WAAY,CACRN,SAAUO,KAIlBC,EAAU,KAENtB,EAAMuB,SAAS,CAAEhB,OAAME,SAAQD,QAAOE,WAAWc,OAClD,CAACjB,EAAMC,EAAOC,EAAQC,IAEzB,MAAOe,EAAQC,GAAaC,EAAS,SAIrC,OAHAH,KAAKE,UAAYA,EACjBF,KAAKI,eAAiBtB,EAGlBuB,EAACC,MAAAA,CAAIC,UAAU,wBACXF,EAACG,IAAAA,CAAED,UAAU,gCAAgC9B,EAAKgC,IAAI,cACtDJ,EAACK,EAAAA,CACGhB,eAAgBT,EAAOK,UAAYb,EAAKgC,IAAIxB,EAAOK,SAASI,cAC5DiB,MAAOlC,EAAKgC,IAAI,aAChBG,mBAAoB,CAAC,WAAY,MACjC1B,QAASF,EAAMM,SACfuB,IAAK,MACLC,KAAM,YAENT,EAACU,EAAAA,CACGC,MAAOjC,EAAKO,SACZwB,KAAM,WACNG,YAAY,EACZC,UAAU,EACVC,YAAa,MACbC,aAAc,MACdC,QAASxC,EAAgB,WAAY,SACrCyC,OAAQzC,EAAgB,WAAY,QACpC0C,YAAa/C,SAAmB,QAAnBA,EAAAA,EAAOgD,oBAAPhD,IAAAA,OAAAA,EAAAA,EAAqBc,SAClCmC,UAAW,UACXC,UAAW,KAIlBlD,EAAMmD,eACHnD,EAAMoD,UAAU,CACZ3B,SACA4B,KAAMlD,EAAS,CAAEmD,YAAa,eAAxBnD,CAAyC,GAAGoD,WAItE,CAEAxD,EAAUyD,aAAe,CAAEjD,KAAM,CAAEO,SAAU"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as t}from"../../external/preact/dist/preact.js";import o from"./components/CardInput/CardInput.js";import e from"../../utils/browserInfo.js";import{triggerBinLookUp as n}from"../internal/SecuredFields/binLookup/triggerBinLookUp.js";import{fieldTypeToSnakeCase as i,isSecuredField as s}from"../internal/SecuredFields/utils.js";import{reject as r,notFalsy as a}from"../../utils/commonUtils.js";import{shouldIncludeInstallmentsInPaymentData as l}from"./components/CardInput/utils.js";import d from"../internal/ClickToPay/services/create-clicktopay-service.js";import u from"./components/ClickToPayWrapper.js";import{TxVariants as c}from"../tx-variants.js";import{UIElement as p}from"../internal/UIElement/UIElement.js";import h from"../internal/PayButton/PayButton.js";import m,{IMPLEMENTATION_ERROR as y}from"../../core/Errors/AdyenCheckoutError.js";import f from"./components/CardInput/defaultProps.js";import{AnalyticsInfoEvent as v,InfoEventType as b}from"../../core/Analytics/events/AnalyticsInfoEvent.js";function g(t,o,e){return o in t?Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[o]=e,t}function P(t){for(var o=1;o<arguments.length;o++){var e=null!=arguments[o]?arguments[o]:{},n=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(e).filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.forEach(function(o){g(t,o,e[o])})}return t}function C(t,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):function(t){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);o.push.apply(o,e)}return o}(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t}class S extends p{setStatus(t){var o,e;return(null===(o=this.componentRef)||void 0===o?void 0:o.setStatus)&&this.componentRef.setStatus(t),(null===(e=this.clickToPayRef)||void 0===e?void 0:e.setStatus)&&this.clickToPayRef.setStatus(t),this}getPaymentMethodConfigFromResponse(t){var o;return(null==t?void 0:t.fundingSource)?null===(o=this.core.paymentMethodsResponse)||void 0===o?void 0:o.findByFundingSource(t.type,t.fundingSource):super.getPaymentMethodConfigFromResponse(t)}formatProps(t){var o,e,n,i,s,r,l,d,u,p,h,v,b,g,S,k,w,R,B,O,T,j,I;const M=null!==(o=null===(r=t.session)||void 0===r||null===(s=r.configuration)||void 0===s?void 0:s.enableStoreDetails)&&void 0!==o?o:t.enableStoreDetails,A=!(0===(null===(l=t.amount)||void 0===l?void 0:l.value))&&M,D=t.storedPaymentMethodId||t.id,F=D&&(null==t||null===(d=t.supportedShopperInteractions)||void 0===d?void 0:d.includes("Ecommerce"));if(D&&!F)throw new m(y,"You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions");const N=t.installmentOptions;t.session&&a(N)&&console.warn("WARNING: You have defined installments configuration on the Card component, but you are using a /sessions integration.\nWith this integration, installments configuration must be defined when you create the session. Any configuration defined elsewhere will be ignored.\n\n");const E=t.session?null!==(e=null===(p=t.session)||void 0===p||null===(u=p.configuration)||void 0===u?void 0:u.installmentOptions)&&void 0!==e?e:f.installmentOptions:N;return P(C(P({},t),{holderNameRequired:!!t.hasHolderName&&t.holderNameRequired,hasCVC:!(t.brand&&"bcmc"===t.brand||t.hideCVC),billingAddressRequired:!t.storedPaymentMethodId&&t.billingAddressRequired,billingAddressMode:t.onAddressLookup?f.billingAddressMode:t.billingAddressMode,brand:null!==(n=t.brand)&&void 0!==n?n:c.card,countryCode:t.countryCode?t.countryCode.toLowerCase():null,configuration:C(P({},t.configuration),{socialSecurityNumberMode:null!==(i=null===(h=t.configuration)||void 0===h?void 0:h.socialSecurityNumberMode)&&void 0!==i?i:"auto"}),brandsConfiguration:t.brandsConfiguration||(null===(v=t.configuration)||void 0===v?void 0:v.brandsConfiguration)||{},icon:t.icon||(null===(b=t.configuration)||void 0===b?void 0:b.icon),installmentOptions:E,enableStoreDetails:M,showStoreDetailsCheckbox:A,clickToPayConfiguration:C(P({},t.clickToPayConfiguration),{disableOtpAutoFocus:(null===(g=t.clickToPayConfiguration)||void 0===g?void 0:g.disableOtpAutoFocus)||!1,shopperEmail:(null===(S=t.clickToPayConfiguration)||void 0===S?void 0:S.shopperEmail)||(null===(w=this.core.options)||void 0===w||null===(k=w.session)||void 0===k?void 0:k.shopperEmail),telephoneNumber:(null===(R=t.clickToPayConfiguration)||void 0===R?void 0:R.telephoneNumber)||(null===(O=this.core.options)||void 0===O||null===(B=O.session)||void 0===B?void 0:B.telephoneNumber),locale:(null===(T=t.clickToPayConfiguration)||void 0===T?void 0:T.locale)||(null===(I=t.i18n)||void 0===I||null===(j=I.locale)||void 0===j?void 0:j.replace("-","_"))})}),D&&{storedPaymentMethodId:D})}formatData(){var t;const o=this.state.selectedBrandValue;return C(P({paymentMethod:P({type:S.type},this.state.data,this.props.storedPaymentMethodId&&{storedPaymentMethodId:this.props.storedPaymentMethodId,holderName:null!==(t=this.props.holderName)&&void 0!==t?t:""},o&&{brand:o},this.props.fundingSource&&{fundingSource:this.props.fundingSource},this.state.fastlaneData&&{fastlaneData:btoa(JSON.stringify(this.state.fastlaneData))})},this.state.billingAddress&&{billingAddress:this.state.billingAddress},this.state.socialSecurityNumber&&{socialSecurityNumber:this.state.socialSecurityNumber},this.storePaymentMethodPayload,l(this.state.installments)&&{installments:this.state.installments}),{browserInfo:this.browserInfo,origin:!!window&&window.location.origin})}beforeRender(t){if(null==t?void 0:t.originalAction)return;const o=new v(P({type:b.rendered,component:this.type,configData:C(P({},t),{showPayButton:this.props.showPayButton})},(null==t?void 0:t.oneClick)&&{isStoredPaymentMethod:!0,brand:t.brand}));this.analytics.sendAnalytics(o)}updateStyles(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.updateStyles)&&this.componentRef.updateStyles(t),this}setFocusOn(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.setFocusOn)&&this.componentRef.setFocusOn(t),this}processBinLookupResponse(t,o=!1){var e;return(null===(e=this.componentRef)||void 0===e?void 0:e.processBinLookupResponse)&&this.componentRef.processBinLookupResponse(t,o),this}handleUnsupportedCard(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.handleUnsupportedCard)&&this.componentRef.handleUnsupportedCard(t),this}onBinLookup(t){if(!t.isReset){var o,e;const n=r("supportedBrandsRaw").from(t);null===(o=(e=this.props).onBinLookup)||void 0===o||o.call(e,n)}}get storePaymentMethodPayload(){var t,o;if((null===(t=this.props.storedPaymentMethodId)||void 0===t?void 0:t.length)>0)return{};if(0===(null===(o=this.props.amount)||void 0===o?void 0:o.value))return this.props.enableStoreDetails?{storePaymentMethod:!0}:{};return this.props.showStoreDetailsCheckbox&&void 0!==this.state.storePaymentMethod?{storePaymentMethod:Boolean(this.state.storePaymentMethod)}:{}}get isValid(){return!!this.state.isValid}get icon(){var t;return null!==(t=this.props.icon)&&void 0!==t?t:this.resources.getImage()(this.props.brand)}get brands(){const{brands:t,brandsConfiguration:o}=this.props;return t?t.map(t=>{var e,n;return{icon:null!==(e=null==o||null===(n=o[t])||void 0===n?void 0:n.icon)&&void 0!==e?e:this.props.modules.resources.getImage()(t),name:t}}):[]}get displayName(){return this.props.storedPaymentMethodId?`•••• ${this.props.lastFour}`:this.props.name||S.type}get accessibleName(){return(this.props.name||S.type)+(this.props.storedPaymentMethodId?" "+this.props.i18n.get("creditCard.storedCard.description.ariaLabel").replace("%@",this.props.lastFour):"")}get browserInfo(){return e()}renderCardInput(e=!0){return t(o,C(P({setComponentRef:this.setComponentRef},this.props,this.state),{billingAddressMode:this.props.billingAddressMode,onSubmitAnalytics:this.submitAnalytics,onChange:this.setState,onSubmit:this.submit,handleKeyDown:this.handleKeyDown,payButton:this.payButton,onBrand:this.onBrand,onBinValue:this.onBinValue,brand:this.props.brand,brandsIcons:this.brands,isPayButtonPrimaryVariant:e,resources:this.resources,onFocus:this.onFocus,onBlur:this.onBlur,onConfigSuccess:this.onConfigSuccess}))}componentToRender(){return t(u,{configuration:this.props.clickToPayConfiguration,clickToPayService:this.clickToPayService,isStandaloneComponent:!1,setClickToPayRef:this.setClickToPayRef,onSetStatus:this.setElementStatus,onSubmit:this.handleClickToPaySubmit,onError:this.handleError},t=>this.renderCardInput(t))}constructor(o,e){var r;(super(o,e),g(this,"clickToPayService",void 0),g(this,"componentRef",void 0),g(this,"clickToPayRef",null),g(this,"setClickToPayRef",t=>{this.clickToPayRef=t}),g(this,"onBrand",t=>{var o,e;null===(o=(e=this.props).onBrand)||void 0===o||o.call(e,t)}),g(this,"handleClickToPaySubmit",t=>{this.setState({data:P({},t),valid:{},errors:{},isValid:!0}),this.submit()}),g(this,"onConfigSuccess",t=>{var o,e;const n=new v({component:this.type,type:b.configured});this.submitAnalytics(n),null===(o=(e=this.props).onConfigSuccess)||void 0===o||o.call(e,t)}),g(this,"onFocus",t=>{const o=new v({component:this.type,type:b.focus,target:i(t.fieldType)});var e,n,r,a;(this.submitAnalytics(o),s(t.fieldType))?null===(e=(n=this.props).onFocus)||void 0===e||e.call(n,t.event):null===(r=(a=this.props).onFocus)||void 0===r||r.call(a,t)}),g(this,"onBlur",t=>{const o=new v({component:this.type,type:b.unfocus,target:i(t.fieldType)});var e,n,r,a;(this.submitAnalytics(o),s(t.fieldType))?null===(e=(n=this.props).onBlur)||void 0===e||e.call(n,t.event):null===(r=(a=this.props).onBlur)||void 0===r||r.call(a,t)}),g(this,"onBinValue",n(this)),g(this,"payButton",o=>{var e,n;const i=0===(null===(e=this.props.amount)||void 0===e?void 0:e.value),s=(null===(n=this.props.storedPaymentMethodId)||void 0===n?void 0:n.length)>0;return t(h,C(P({},o),{label:i&&!s?this.props.i18n.get("payButton.saveDetails"):"",onClick:this.submit,showReview:!!this.props.onReview}))}),e&&!e._disableClickToPay&&"prepaid"!==this.props.fundingSource)&&(this.clickToPayService=d(this.props.configuration,this.props.clickToPayConfiguration,this.props.environment,this.analytics),null===(r=this.clickToPayService)||void 0===r||r.initialize())}}g(S,"type",c.scheme),g(S,"defaultProps",P({showFormInstruction:!0,_disableClickToPay:!1,doBinLookup:!0},r(["type","setComponentRef"]).from(f)));export{S as CardElement,S as default};
|
|
1
|
+
import{createElement as t}from"../../external/preact/dist/preact.js";import o from"./components/CardInput/CardInput.js";import e from"../../utils/browserInfo.js";import{triggerBinLookUp as n}from"../internal/SecuredFields/binLookup/triggerBinLookUp.js";import{fieldTypeToSnakeCase as i,isSecuredField as s}from"../internal/SecuredFields/utils.js";import{reject as r,notFalsy as a}from"../../utils/commonUtils.js";import{shouldIncludeInstallmentsInPaymentData as l}from"./components/CardInput/utils.js";import d from"../internal/ClickToPay/services/create-clicktopay-service.js";import u from"./components/ClickToPayWrapper.js";import{TxVariants as c}from"../tx-variants.js";import{UIElement as p}from"../internal/UIElement/UIElement.js";import h from"../internal/PayButton/PayButton.js";import m,{IMPLEMENTATION_ERROR as y}from"../../core/Errors/AdyenCheckoutError.js";import f from"./components/CardInput/defaultProps.js";import{AnalyticsInfoEvent as v,InfoEventType as b}from"../../core/Analytics/events/AnalyticsInfoEvent.js";function g(t,o,e){return o in t?Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[o]=e,t}function P(t){for(var o=1;o<arguments.length;o++){var e=null!=arguments[o]?arguments[o]:{},n=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(e).filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.forEach(function(o){g(t,o,e[o])})}return t}function C(t,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):function(t){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);o.push.apply(o,e)}return o}(Object(o)).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}),t}class S extends p{setStatus(t,o){var e,n;return(null===(e=this.componentRef)||void 0===e?void 0:e.setStatus)&&this.componentRef.setStatus(t,o),(null===(n=this.clickToPayRef)||void 0===n?void 0:n.setStatus)&&this.clickToPayRef.setStatus(t),this}getPaymentMethodConfigFromResponse(t){var o;return(null==t?void 0:t.fundingSource)?null===(o=this.core.paymentMethodsResponse)||void 0===o?void 0:o.findByFundingSource(t.type,t.fundingSource):super.getPaymentMethodConfigFromResponse(t)}formatProps(t){var o,e,n,i,s,r,l,d,u,p,h,v,b,g,S,k,w,R,B,O,T,j,I;const M=null!==(o=null===(r=t.session)||void 0===r||null===(s=r.configuration)||void 0===s?void 0:s.enableStoreDetails)&&void 0!==o?o:t.enableStoreDetails,A=!(0===(null===(l=t.amount)||void 0===l?void 0:l.value))&&M,D=t.storedPaymentMethodId||t.id,F=D&&(null==t||null===(d=t.supportedShopperInteractions)||void 0===d?void 0:d.includes("Ecommerce"));if(D&&!F)throw new m(y,"You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions");const N=t.installmentOptions;t.session&&a(N)&&console.warn("WARNING: You have defined installments configuration on the Card component, but you are using a /sessions integration.\nWith this integration, installments configuration must be defined when you create the session. Any configuration defined elsewhere will be ignored.\n\n");const E=t.session?null!==(e=null===(p=t.session)||void 0===p||null===(u=p.configuration)||void 0===u?void 0:u.installmentOptions)&&void 0!==e?e:f.installmentOptions:N;return P(C(P({},t),{holderNameRequired:!!t.hasHolderName&&t.holderNameRequired,hasCVC:!(t.brand&&"bcmc"===t.brand||t.hideCVC),billingAddressRequired:!t.storedPaymentMethodId&&t.billingAddressRequired,billingAddressMode:t.onAddressLookup?f.billingAddressMode:t.billingAddressMode,brand:null!==(n=t.brand)&&void 0!==n?n:c.card,countryCode:t.countryCode?t.countryCode.toLowerCase():null,configuration:C(P({},t.configuration),{socialSecurityNumberMode:null!==(i=null===(h=t.configuration)||void 0===h?void 0:h.socialSecurityNumberMode)&&void 0!==i?i:"auto"}),brandsConfiguration:t.brandsConfiguration||(null===(v=t.configuration)||void 0===v?void 0:v.brandsConfiguration)||{},icon:t.icon||(null===(b=t.configuration)||void 0===b?void 0:b.icon),installmentOptions:E,enableStoreDetails:M,showStoreDetailsCheckbox:A,clickToPayConfiguration:C(P({},t.clickToPayConfiguration),{disableOtpAutoFocus:(null===(g=t.clickToPayConfiguration)||void 0===g?void 0:g.disableOtpAutoFocus)||!1,shopperEmail:(null===(S=t.clickToPayConfiguration)||void 0===S?void 0:S.shopperEmail)||(null===(w=this.core.options)||void 0===w||null===(k=w.session)||void 0===k?void 0:k.shopperEmail),telephoneNumber:(null===(R=t.clickToPayConfiguration)||void 0===R?void 0:R.telephoneNumber)||(null===(O=this.core.options)||void 0===O||null===(B=O.session)||void 0===B?void 0:B.telephoneNumber),locale:(null===(T=t.clickToPayConfiguration)||void 0===T?void 0:T.locale)||(null===(I=t.i18n)||void 0===I||null===(j=I.locale)||void 0===j?void 0:j.replace("-","_"))})}),D&&{storedPaymentMethodId:D})}formatData(){var t;const o=this.state.selectedBrandValue;return C(P({paymentMethod:P({type:S.type},this.state.data,this.props.storedPaymentMethodId&&{storedPaymentMethodId:this.props.storedPaymentMethodId,holderName:null!==(t=this.props.holderName)&&void 0!==t?t:""},o&&{brand:o},this.props.fundingSource&&{fundingSource:this.props.fundingSource},this.state.fastlaneData&&{fastlaneData:btoa(JSON.stringify(this.state.fastlaneData))})},this.state.billingAddress&&{billingAddress:this.state.billingAddress},this.state.socialSecurityNumber&&{socialSecurityNumber:this.state.socialSecurityNumber},this.storePaymentMethodPayload,l(this.state.installments)&&{installments:this.state.installments}),{browserInfo:this.browserInfo,origin:!!window&&window.location.origin})}beforeRender(t){if(null==t?void 0:t.originalAction)return;const o=new v(P({type:b.rendered,component:this.type,configData:C(P({},t),{showPayButton:this.props.showPayButton})},(null==t?void 0:t.oneClick)&&{isStoredPaymentMethod:!0,brand:t.brand}));this.analytics.sendAnalytics(o)}updateStyles(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.updateStyles)&&this.componentRef.updateStyles(t),this}setFocusOn(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.setFocusOn)&&this.componentRef.setFocusOn(t),this}processBinLookupResponse(t,o=!1){var e;return(null===(e=this.componentRef)||void 0===e?void 0:e.processBinLookupResponse)&&this.componentRef.processBinLookupResponse(t,o),this}handleUnsupportedCard(t){var o;return(null===(o=this.componentRef)||void 0===o?void 0:o.handleUnsupportedCard)&&this.componentRef.handleUnsupportedCard(t),this}onBinLookup(t){if(!t.isReset){var o,e;const n=r("supportedBrandsRaw").from(t);null===(o=(e=this.props).onBinLookup)||void 0===o||o.call(e,n)}}get storePaymentMethodPayload(){var t,o;if((null===(t=this.props.storedPaymentMethodId)||void 0===t?void 0:t.length)>0)return{};if(0===(null===(o=this.props.amount)||void 0===o?void 0:o.value))return this.props.enableStoreDetails?{storePaymentMethod:!0}:{};return this.props.showStoreDetailsCheckbox&&void 0!==this.state.storePaymentMethod?{storePaymentMethod:Boolean(this.state.storePaymentMethod)}:{}}get isValid(){return!!this.state.isValid}get icon(){var t;return null!==(t=this.props.icon)&&void 0!==t?t:this.resources.getImage()(this.props.brand)}get brands(){const{brands:t,brandsConfiguration:o}=this.props;return t?t.map(t=>{var e,n;return{icon:null!==(e=null==o||null===(n=o[t])||void 0===n?void 0:n.icon)&&void 0!==e?e:this.props.modules.resources.getImage()(t),name:t}}):[]}get displayName(){return this.props.storedPaymentMethodId?`•••• ${this.props.lastFour}`:this.props.name||S.type}get accessibleName(){return(this.props.name||S.type)+(this.props.storedPaymentMethodId?" "+this.props.i18n.get("creditCard.storedCard.description.ariaLabel").replace("%@",this.props.lastFour):"")}get browserInfo(){return e()}renderCardInput(e=!0){return t(o,C(P({setComponentRef:this.setComponentRef},this.props,this.state),{onSubmitAnalytics:this.submitAnalytics,onChange:this.setState,onSubmit:this.submit,handleKeyDown:this.handleKeyDown,payButton:this.payButton,onBrand:this.onBrand,onBinValue:this.onBinValue,brand:this.props.brand,brandsIcons:this.brands,isPayButtonPrimaryVariant:e,resources:this.resources,onFocus:this.onFocus,onBlur:this.onBlur,onConfigSuccess:this.onConfigSuccess}))}componentToRender(){return t(u,{configuration:this.props.clickToPayConfiguration,clickToPayService:this.clickToPayService,isStandaloneComponent:!1,setClickToPayRef:this.setClickToPayRef,onSetStatus:this.setElementStatus,onSubmit:this.handleClickToPaySubmit,onError:this.handleError},t=>this.renderCardInput(t))}constructor(o,e){var r;(super(o,e),g(this,"clickToPayService",void 0),g(this,"clickToPayRef",null),g(this,"setClickToPayRef",t=>{this.clickToPayRef=t}),g(this,"onBrand",t=>{var o,e;null===(o=(e=this.props).onBrand)||void 0===o||o.call(e,t)}),g(this,"handleClickToPaySubmit",t=>{this.setState({data:P({},t),valid:{},errors:{},isValid:!0}),this.submit()}),g(this,"onConfigSuccess",t=>{var o,e;const n=new v({component:this.type,type:b.configured});this.submitAnalytics(n),null===(o=(e=this.props).onConfigSuccess)||void 0===o||o.call(e,t)}),g(this,"onFocus",t=>{const o=new v({component:this.type,type:b.focus,target:i(t.fieldType)});var e,n,r,a;(this.submitAnalytics(o),s(t.fieldType))?null===(e=(n=this.props).onFocus)||void 0===e||e.call(n,t.event):null===(r=(a=this.props).onFocus)||void 0===r||r.call(a,t)}),g(this,"onBlur",t=>{const o=new v({component:this.type,type:b.unfocus,target:i(t.fieldType)});var e,n,r,a;(this.submitAnalytics(o),s(t.fieldType))?null===(e=(n=this.props).onBlur)||void 0===e||e.call(n,t.event):null===(r=(a=this.props).onBlur)||void 0===r||r.call(a,t)}),g(this,"onBinValue",n(this)),g(this,"payButton",o=>{var e,n;const i=0===(null===(e=this.props.amount)||void 0===e?void 0:e.value),s=(null===(n=this.props.storedPaymentMethodId)||void 0===n?void 0:n.length)>0;return t(h,C(P({},o),{label:i&&!s?this.props.i18n.get("payButton.saveDetails"):"",onClick:this.submit,showReview:!!this.props.onReview}))}),e&&!e._disableClickToPay&&"prepaid"!==this.props.fundingSource)&&(this.clickToPayService=d(this.props.configuration,this.props.clickToPayConfiguration,this.props.environment,this.analytics),null===(r=this.clickToPayService)||void 0===r||r.initialize())}}g(S,"type",c.scheme),g(S,"defaultProps",P({showFormInstruction:!0,_disableClickToPay:!1,doBinLookup:!0},r(["type","setComponentRef"]).from(f)));export{S as CardElement,S as default};
|
|
2
2
|
//# sourceMappingURL=Card.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Card.js","sources":["../../../../src/components/Card/Card.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardInput from './components/CardInput';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { BinLookupResponse, CardElementData, CardConfiguration } from './types';\nimport { triggerBinLookUp } from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport {\n CardBinLookupData,\n CardBrandData,\n CardConfigSuccessData,\n CardErrorData,\n CardFocusData,\n StylesObject\n} from '../internal/SecuredFields/lib/types';\nimport { fieldTypeToSnakeCase, isSecuredField } from '../internal/SecuredFields/utils';\nimport { notFalsy, reject } from '../../utils/commonUtils';\nimport { shouldIncludeInstallmentsInPaymentData } from './components/CardInput/utils';\nimport createClickToPayService from '../internal/ClickToPay/services/create-clicktopay-service';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../internal/ClickToPay/services/types';\nimport ClickToPayWrapper from './components/ClickToPayWrapper';\nimport { ComponentFocusObject, PaymentMethodBrand } from '../../types/global-types';\nimport { TxVariants } from '../tx-variants';\nimport type { ComponentMethodsRef, UIElementStatus } from '../internal/UIElement/types';\nimport UIElement from '../internal/UIElement';\nimport PayButton from '../internal/PayButton';\nimport type { ICore } from '../../core/types';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport CardInputDefaultProps from './components/CardInput/defaultProps';\nimport { PayButtonProps } from '../internal/PayButton/PayButton';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport { InstallmentOptions } from './components/CardInput/components/Installments/Installments';\nimport { AddressModeOptions, CardInputRef } from './components/CardInput/types';\n\nexport class CardElement extends UIElement<CardConfiguration> {\n public static readonly type: TxVariants = TxVariants.scheme;\n\n private readonly clickToPayService: IClickToPayService | null;\n\n protected componentRef: CardInputRef | undefined;\n\n /**\n * Reference to the 'ClickToPayComponent'\n */\n private clickToPayRef: ComponentMethodsRef | null = null;\n\n constructor(checkout: ICore, props?: CardConfiguration) {\n super(checkout, props);\n\n if (props && !props._disableClickToPay && this.props.fundingSource !== 'prepaid') {\n this.clickToPayService = createClickToPayService(\n this.props.configuration,\n this.props.clickToPayConfiguration,\n this.props.environment,\n this.analytics\n );\n\n void this.clickToPayService?.initialize();\n }\n }\n\n protected static readonly defaultProps = {\n showFormInstruction: true,\n _disableClickToPay: false,\n doBinLookup: true,\n // Merge most of CardInput's defaultProps\n ...reject(['type', 'setComponentRef']).from(CardInputDefaultProps)\n };\n\n public setStatus(status: UIElementStatus): this {\n if (this.componentRef?.setStatus) {\n this.componentRef.setStatus(status);\n }\n if (this.clickToPayRef?.setStatus) {\n this.clickToPayRef.setStatus(status);\n }\n return this;\n }\n\n private readonly setClickToPayRef = (ref: ComponentMethodsRef) => {\n this.clickToPayRef = ref;\n };\n\n // This is the most self contained way of handling funding source matching\n // Alternatives would be to override getPaymentMethodConfigFromResponse and change it's signature\n protected override getPaymentMethodConfigFromResponse(componentProps: CardConfiguration) {\n if (componentProps?.fundingSource) {\n return this.core.paymentMethodsResponse?.findByFundingSource(componentProps.type, componentProps.fundingSource);\n }\n\n return super.getPaymentMethodConfigFromResponse(componentProps);\n }\n\n formatProps(props: CardConfiguration): CardConfiguration {\n // The value from a session should be used, before falling back to the merchant configuration\n const enableStoreDetails = props.session?.configuration?.enableStoreDetails ?? props.enableStoreDetails;\n\n const isZeroAuth = props.amount?.value === 0;\n const showStoreDetailsCheckbox = isZeroAuth ? false : enableStoreDetails;\n\n const storedCardID = props.storedPaymentMethodId || props.id; // check if we've been passed a (checkout) processed storedCard or one that merchant has pulled from the PMs response\n const isEcommerceStoredCard = storedCardID && props?.supportedShopperInteractions?.includes('Ecommerce'); // If we have a storedCard does it support Ecommerce (it might not if the merchant has pulled it from the PMs response)\n\n // If we have a storedPM but it doesn't support Ecommerce - we can't make a storedCard component from it\n if (storedCardID && !isEcommerceStoredCard) {\n // TODO - Decide if an error is too severe? Would a console.warning suffice?\n throw new AdyenCheckoutError(\n IMPLEMENTATION_ERROR,\n 'You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions'\n );\n }\n\n // Take the configuration set on the card component - which is either merchant defined or default (empty object)\n // @ts-ignore 'installmentOptions' is optional on CardConfiguration (the merchant-facing type), but by this point\n // UIElement.buildElementProps has already merged CardInputDefaultProps.installmentOptions ({}) into props\n // before formatProps() is called, so the value is always defined here.\n const merchantInstallmentOptions: InstallmentOptions = props.installmentOptions;\n\n if (props.session && notFalsy(merchantInstallmentOptions)) {\n console.warn(\n 'WARNING: You have defined installments configuration on the Card component, but you are using a /sessions integration.\\nWith this integration, installments configuration must be defined when you create the session. Any configuration defined elsewhere will be ignored.\\n\\n'\n );\n }\n\n // In a session scenario, only the session's own installments configuration is used; otherwise fall back to the merchant configuration / default\n const shownInstallmentOptions: InstallmentOptions = props.session\n ? (props.session?.configuration?.installmentOptions ?? CardInputDefaultProps.installmentOptions)\n : merchantInstallmentOptions;\n\n return {\n ...props,\n // Mismatch between hasHolderName & holderNameRequired which can mean card can never be valid\n holderNameRequired: !props.hasHolderName ? false : props.holderNameRequired,\n // False for *stored* BCMC cards & if merchant explicitly wants to hide the CVC field\n hasCVC: !((props.brand && props.brand === 'bcmc') || props.hideCVC),\n // billingAddressRequired only available for non-stored cards\n billingAddressRequired: props.storedPaymentMethodId ? false : props.billingAddressRequired,\n // edge case where merchant has defined both an onAddressLookup callback AND set billingAddressMode: 'partial' - which leads to some strange behaviour in the address UI\n billingAddressMode: props.onAddressLookup ? CardInputDefaultProps.billingAddressMode : props.billingAddressMode,\n /** props.brand will be specified in the case of a StoredCard or a Bancontact component, for a regular Card we default it to 'card' */\n brand: props.brand ?? TxVariants.card,\n countryCode: props.countryCode ? props.countryCode.toLowerCase() : null,\n // Required for transition period (until configuration object becomes the norm)\n // - if merchant has defined value directly in props, use this instead\n configuration: {\n ...props.configuration,\n socialSecurityNumberMode: props.configuration?.socialSecurityNumberMode ?? 'auto'\n },\n brandsConfiguration: props.brandsConfiguration || props.configuration?.brandsConfiguration || {},\n icon: props.icon || props.configuration?.icon,\n installmentOptions: shownInstallmentOptions,\n enableStoreDetails,\n showStoreDetailsCheckbox,\n /**\n * Click to Pay configuration\n * - If email is set explicitly in the configuration, then it can override the one used in the session creation\n */\n clickToPayConfiguration: {\n ...props.clickToPayConfiguration,\n disableOtpAutoFocus: props.clickToPayConfiguration?.disableOtpAutoFocus || false,\n shopperEmail: props.clickToPayConfiguration?.shopperEmail || this.core.options?.session?.shopperEmail,\n telephoneNumber: props.clickToPayConfiguration?.telephoneNumber || this.core.options?.session?.telephoneNumber,\n locale: props.clickToPayConfiguration?.locale || props.i18n?.locale?.replace('-', '_')\n },\n ...(storedCardID && { storedPaymentMethodId: storedCardID })\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): CardElementData {\n /**\n * this.state.selectedBrandValue will be set when:\n * - /binLookup detects a single brand,\n * - when /binLookup detects a dual-branded card and the shopper makes a brand selection\n * - or, in the case of a storedCard\n */\n const cardBrand = this.state.selectedBrandValue;\n\n return {\n paymentMethod: {\n type: CardElement.type,\n ...this.state.data,\n ...(this.props.storedPaymentMethodId && {\n storedPaymentMethodId: this.props.storedPaymentMethodId,\n holderName: this.props.holderName ?? ''\n }),\n ...(cardBrand && { brand: cardBrand }),\n ...(this.props.fundingSource && { fundingSource: this.props.fundingSource }),\n ...(this.state.fastlaneData && { fastlaneData: btoa(JSON.stringify(this.state.fastlaneData)) })\n },\n ...(this.state.billingAddress && { billingAddress: this.state.billingAddress }),\n ...(this.state.socialSecurityNumber && { socialSecurityNumber: this.state.socialSecurityNumber }),\n ...this.storePaymentMethodPayload,\n ...(shouldIncludeInstallmentsInPaymentData(this.state.installments) && { installments: this.state.installments }),\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n protected override beforeRender(configSetByMerchant?: CardConfiguration): void {\n // We don't send 'rendered' events when rendering actions\n if (configSetByMerchant?.originalAction) {\n return;\n }\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.oneClick && {\n isStoredPaymentMethod: true,\n brand: configSetByMerchant.brand\n })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n updateStyles(stylesObj: StylesObject) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(fieldName: string) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(fieldName);\n return this;\n }\n\n public onBrand = (event: CardBrandData) => {\n this.props.onBrand?.(event);\n };\n\n processBinLookupResponse(binLookupResponse: BinLookupResponse | null, isReset = false) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse, isReset);\n return this;\n }\n\n handleUnsupportedCard(errObj: CardErrorData) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n private readonly handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n onBinLookup(obj: CardBinLookupData) {\n // Handler for regular card comp doesn't need this 'raw' data or to know about 'resets'\n if (!obj.isReset) {\n const nuObj = reject('supportedBrandsRaw').from(obj);\n this.props.onBinLookup?.(nuObj);\n }\n }\n\n private readonly onConfigSuccess = (obj: CardConfigSuccessData) => {\n const event = new AnalyticsInfoEvent({ component: this.type, type: InfoEventType.configured });\n this.submitAnalytics(event);\n\n this.props.onConfigSuccess?.(obj);\n };\n\n private readonly onFocus = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.focus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (isSecuredField(obj.fieldType)) {\n this.props.onFocus?.(obj.event as CardFocusData);\n } else {\n this.props.onFocus?.(obj);\n }\n };\n\n private readonly onBlur = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.unfocus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (isSecuredField(obj.fieldType)) {\n this.props.onBlur?.(obj.event as CardFocusData);\n } else {\n this.props.onBlur?.(obj);\n }\n };\n\n public onBinValue = triggerBinLookUp(this);\n\n get storePaymentMethodPayload() {\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n if (isStoredCard) {\n return {};\n }\n\n /**\n * For regular card, zero auth payments, we store the payment method, *if* the configuration says we should:\n * - For sessions, this means if the session has been created with storePaymentMethodMode: 'askForConsent'\n * - For the advanced flow, this means if the merchant has still set enableStoreDetails: true\n *\n * What we are doing is.. if for a normal payment we would show the \"Save for my next payment\" checkbox,\n * for a zero-auth payment we effectively click the checkbox on behalf of the shopper.\n */\n const isZeroAuth = this.props.amount?.value === 0;\n if (isZeroAuth) {\n return this.props.enableStoreDetails ? { storePaymentMethod: true } : {};\n }\n\n // For regular card, non-zero auth payments, we store the payment method based on the checkbox value.\n const includeStorePaymentMethod = this.props.showStoreDetailsCheckbox && typeof this.state.storePaymentMethod !== 'undefined';\n return includeStorePaymentMethod ? { storePaymentMethod: Boolean(this.state.storePaymentMethod) } : {};\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.icon ?? this.resources.getImage()(this.props.brand);\n }\n\n get brands(): PaymentMethodBrand[] {\n const { brands, brandsConfiguration } = this.props;\n if (brands) {\n return brands.map(brand => {\n const brandIcon = brandsConfiguration?.[brand]?.icon ?? this.props.modules.resources.getImage()(brand);\n return { icon: brandIcon, name: brand };\n });\n }\n\n return [];\n }\n\n get displayName(): string {\n if (this.props.storedPaymentMethodId) {\n return `•••• ${this.props.lastFour}`;\n }\n\n return this.props.name || CardElement.type;\n }\n\n get accessibleName(): string {\n // Use display name, unless it's a stored payment method, there inform user\n return (\n (this.props.name || CardElement.type) +\n (this.props.storedPaymentMethodId\n ? ' ' + this.props.i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', this.props.lastFour)\n : '')\n );\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n protected override payButton = (props: PayButtonProps): h.JSX.Element => {\n const isZeroAuth = this.props.amount?.value === 0;\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n return (\n <PayButton\n {...props}\n label={isZeroAuth && !isStoredCard ? this.props.i18n.get('payButton.saveDetails') : ''}\n onClick={this.submit}\n showReview={!!this.props.onReview}\n />\n );\n };\n\n private renderCardInput(isCardPrimaryInput = true): h.JSX.Element {\n return (\n <CardInput\n setComponentRef={this.setComponentRef}\n {...this.props}\n {...this.state}\n billingAddressMode={this.props.billingAddressMode as AddressModeOptions}\n onSubmitAnalytics={this.submitAnalytics}\n onChange={this.setState}\n onSubmit={this.submit}\n handleKeyDown={this.handleKeyDown}\n payButton={this.payButton}\n onBrand={this.onBrand}\n onBinValue={this.onBinValue}\n brand={this.props.brand}\n brandsIcons={this.brands}\n isPayButtonPrimaryVariant={isCardPrimaryInput}\n resources={this.resources}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onConfigSuccess={this.onConfigSuccess}\n />\n );\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <ClickToPayWrapper\n configuration={this.props.clickToPayConfiguration}\n clickToPayService={this.clickToPayService}\n isStandaloneComponent={false}\n setClickToPayRef={this.setClickToPayRef}\n onSetStatus={this.setElementStatus}\n onSubmit={this.handleClickToPaySubmit}\n onError={this.handleError}\n >\n {isCardPrimaryInput => this.renderCardInput(isCardPrimaryInput)}\n </ClickToPayWrapper>\n );\n }\n}\n\nexport default CardElement;\n"],"names":["CardElement","UIElement","setStatus","status","_this_componentRef","_this_clickToPayRef","this","componentRef","clickToPayRef","getPaymentMethodConfigFromResponse","componentProps","_this_core_paymentMethodsResponse","fundingSource","core","paymentMethodsResponse","findByFundingSource","type","super","formatProps","props","_this_core_options_session","_this_core_options","_this_core_options_session1","_this_core_options1","enableStoreDetails","session","configuration","_ref","showStoreDetailsCheckbox","amount","value","storedCardID","storedPaymentMethodId","id","isEcommerceStoredCard","supportedShopperInteractions","includes","AdyenCheckoutError","IMPLEMENTATION_ERROR","merchantInstallmentOptions","installmentOptions","notFalsy","console","warn","shownInstallmentOptions","_ref1","CardInputDefaultProps","_object_spread","_object_spread_props","holderNameRequired","hasHolderName","hasCVC","brand","hideCVC","billingAddressRequired","billingAddressMode","onAddressLookup","TxVariants","card","countryCode","toLowerCase","socialSecurityNumberMode","_ref2","brandsConfiguration","icon","clickToPayConfiguration","disableOtpAutoFocus","shopperEmail","options","telephoneNumber","locale","i18n","replace","formatData","_this_props_holderName","cardBrand","state","selectedBrandValue","paymentMethod","data","holderName","fastlaneData","btoa","JSON","stringify","billingAddress","socialSecurityNumber","storePaymentMethodPayload","shouldIncludeInstallmentsInPaymentData","installments","browserInfo","origin","window","location","beforeRender","configSetByMerchant","originalAction","event","AnalyticsInfoEvent","InfoEventType","rendered","component","configData","showPayButton","oneClick","isStoredPaymentMethod","analytics","sendAnalytics","updateStyles","stylesObj","setFocusOn","fieldName","processBinLookupResponse","binLookupResponse","isReset","handleUnsupportedCard","errObj","onBinLookup","obj","_this_props_onBinLookup","_this_props","nuObj","reject","from","call","_this_props_storedPaymentMethodId","_this_props_amount","length","storePaymentMethod","Boolean","isValid","_this_props_icon","resources","getImage","brands","map","brandIcon","modules","name","displayName","lastFour","accessibleName","get","collectBrowserInfo","renderCardInput","isCardPrimaryInput","h","CardInput","setComponentRef","onSubmitAnalytics","submitAnalytics","onChange","setState","onSubmit","submit","handleKeyDown","payButton","onBrand","onBinValue","brandsIcons","isPayButtonPrimaryVariant","onFocus","onBlur","onConfigSuccess","componentToRender","ClickToPayWrapper","clickToPayService","isStandaloneComponent","setClickToPayRef","onSetStatus","setElementStatus","handleClickToPaySubmit","onError","handleError","constructor","checkout","_this_clickToPayService","_define_property","ref","_this_props_onBrand","payload","valid","errors","_this_props_onConfigSuccess","configured","focus","target","fieldTypeToSnakeCase","fieldType","_this_props_onFocus","_this_props_onFocus1","_this_props1","isSecuredField","unfocus","_this_props_onBlur","_this_props_onBlur1","triggerBinLookUp","isZeroAuth","isStoredCard","PayButton","label","onClick","showReview","onReview","_disableClickToPay","createClickToPayService","environment","initialize","scheme","defaultProps","showFormInstruction","doBinLookup"],"mappings":"8yDAgCO,MAAMA,UAAoBC,EAmCtBC,SAAAA,CAAUC,OACTC,EAGAC,EAGJ,eANID,EAAAE,KAAKC,wBAALH,OAAA,EAAAA,EAAmBF,YACnBI,KAAKC,aAAaL,UAAUC,YAE5BE,EAAAC,KAAKE,yBAALH,OAAA,EAAAA,EAAoBH,YACpBI,KAAKE,cAAcN,UAAUC,GAE1BG,IACX,CAQmBG,kCAAAA,CAAmCC,GAEvC,IAAAC,EADX,OAAID,aAAAA,EAAAA,EAAgBE,eACuB,QAAhCD,EAAAL,KAAKO,KAAKC,8BAAV,IAAAH,OAAA,EAAAA,EAAkCI,oBAAoBL,EAAeM,KAAMN,EAAeE,eAG9FK,MAAMR,mCAAmCC,EACpD,CAEAQ,WAAAA,CAAYC,GA+CGA,IAAAA,EAAAA,EAAAA,EAAAA,EA7CgBA,EAAAA,EAERA,EAI2BA,EAyBvCA,EAAAA,EAoB2BA,EAEoBA,EAC9BA,EAUKA,EACPA,EAA+CC,EAAAC,EAC5CF,EAAkDG,EAAAC,EAC3DJ,EAAyCA,EAAAA,EAnEzD,MAAMK,EAAqE,QAArEA,UAAqBL,EAAAA,EAAMM,eAANN,IAAAA,WAAAA,EAAAA,EAAeO,qBAAfP,IAAAA,OAAAA,EAAAA,EAA8BK,0BAAkB,IAAAG,EAAAA,EAAIR,EAAMK,mBAG/EI,IADqC,KAAZ,QAAZT,EAAAA,EAAMU,cAANV,IAAAA,OAAAA,EAAAA,EAAcW,SACqBN,EAEhDO,EAAeZ,EAAMa,uBAAyBb,EAAMc,GACpDC,EAAwBH,IAAgBZ,SAAmC,QAAnCA,EAAAA,EAAOgB,oCAAPhB,IAAAA,OAAAA,EAAAA,EAAqCiB,SAAS,cAG5F,GAAIL,IAAiBG,EAEjB,MAAM,IAAIG,EACNC,EACA,uGAQR,MAAMC,EAAiDpB,EAAMqB,mBAEzDrB,EAAMM,SAAWgB,EAASF,IAC1BG,QAAQC,KACJ,mRAKR,MAAMC,EAA8CzB,EAAMM,QACH,UAAnC,QAAbN,EAAAA,EAAMM,eAANN,IAAAA,WAAAA,EAAAA,EAAeO,qBAAfP,IAAAA,OAAAA,EAAAA,EAA8BqB,0BAAkB,IAAAK,EAAAA,EAAIC,EAAsBN,mBAC3ED,EAEN,OAAOQ,EAAAC,EAAAD,EAAA,CAAA,EACA5B,GAAAA,CAEH8B,qBAAqB9B,EAAM+B,eAAwB/B,EAAM8B,mBAEzDE,SAAUhC,EAAOiC,OAAyB,SAAhBjC,EAAMiC,OAAqBjC,EAAMkC,SAE3DC,wBAAwBnC,EAAMa,uBAAgCb,EAAMmC,uBAEpEC,mBAAoBpC,EAAMqC,gBAAkBV,EAAsBS,mBAAqBpC,EAAMoC,mBAE7FH,MAAkB,QAAXjC,EAAAA,EAAMiC,aAANjC,IAAAA,EAAAA,EAAesC,EAAWC,KACjCC,YAAaxC,EAAMwC,YAAcxC,EAAMwC,YAAYC,cAAgB,KAGnElC,cAAesB,EAAAD,EAAA,CAAA,EACR5B,EAAMO,eAAa,CACtBmC,yBAAuE,QAA/CC,UAAE3C,EAAAA,EAAMO,qBAANP,IAAAA,OAAAA,EAAAA,EAAqB0C,gCAAwB,IAAAC,EAAAA,EAAI,SAE/EC,oBAAqB5C,EAAM4C,sBAA0C,QAAnB5C,EAAAA,EAAMO,qBAANP,IAAAA,OAAAA,EAAAA,EAAqB4C,sBAAuB,CAAA,EAC9FC,KAAM7C,EAAM6C,OAA2B,QAAnB7C,EAAAA,EAAMO,qBAANP,IAAAA,SAAAA,EAAqB6C,MACzCxB,mBAAoBI,EACpBpB,qBACAI,2BAKAqC,wBAAyBjB,EAAAD,EAAA,CAAA,EAClB5B,EAAM8C,yBAAuB,CAChCC,6BAAqB/C,EAAAA,EAAM8C,mCAAN9C,OAAAA,EAAAA,EAA+B+C,uBAAuB,EAC3EC,sBAAchD,EAAAA,EAAM8C,+BAAN9C,IAAAA,OAAAA,EAAAA,EAA+BgD,gBAAiC,QAAjB9C,EAAAf,KAAKO,KAAKuD,eAAV,IAAA/C,GAA0B,QAA1BD,EAAAC,EAAmBI,eAAnB,IAAAL,OAAA,EAAAA,EAA4B+C,cACzFE,yBAAiBlD,EAAAA,EAAM8C,+BAAN9C,IAAAA,OAAAA,EAAAA,EAA+BkD,mBAAoC,QAAjB9C,EAAAjB,KAAKO,KAAKuD,eAAV,IAAA7C,GAA0B,QAA1BD,EAAAC,EAAmBE,eAAnB,IAAAH,OAAA,EAAAA,EAA4B+C,iBAC/FC,gBAAQnD,EAAAA,EAAM8C,+BAAN9C,IAAAA,OAAAA,EAAAA,EAA+BmD,UAAoB,QAAVnD,EAAAA,EAAMoD,YAANpD,IAAAA,WAAAA,EAAAA,EAAYmD,cAAZnD,IAAAA,OAAAA,EAAAA,EAAoBqD,QAAQ,IAAK,UAElFzC,GAAgB,CAAEC,sBAAuBD,GAErD,CAKA0C,UAAAA,GAe4B,IAAAC,EARxB,MAAMC,EAAYrE,KAAKsE,MAAMC,mBAE7B,OAAO7B,EAAAD,EAAA,CACH+B,cAAe/B,EAAA,CACX/B,KAAMhB,EAAYgB,MACfV,KAAKsE,MAAMG,KACVzE,KAAKa,MAAMa,uBAAyB,CACpCA,sBAAuB1B,KAAKa,MAAMa,sBAClCgD,WAAiC,QAArBN,EAAApE,KAAKa,MAAM6D,kBAAX,IAAAN,EAAAA,EAAyB,IAErCC,GAAa,CAAEvB,MAAOuB,GACtBrE,KAAKa,MAAMP,eAAiB,CAAEA,cAAeN,KAAKa,MAAMP,eACxDN,KAAKsE,MAAMK,cAAgB,CAAEA,aAAcC,KAAKC,KAAKC,UAAU9E,KAAKsE,MAAMK,kBAE9E3E,KAAKsE,MAAMS,gBAAkB,CAAEA,eAAgB/E,KAAKsE,MAAMS,gBAC1D/E,KAAKsE,MAAMU,sBAAwB,CAAEA,qBAAsBhF,KAAKsE,MAAMU,sBACvEhF,KAAKiF,0BACJC,EAAuClF,KAAKsE,MAAMa,eAAiB,CAAEA,aAAcnF,KAAKsE,MAAMa,eAAa,CAC/GC,YAAapF,KAAKoF,YAClBC,SAAUC,QAAUA,OAAOC,SAASF,QAE5C,CAEmBG,YAAAA,CAAaC,GAE5B,GAAIA,aAAAA,EAAAA,EAAqBC,eACrB,OAGJ,MAAMC,EAAQ,IAAIC,EAAmBnD,EAAA,CACjC/B,KAAMmF,EAAcC,SACpBC,UAAW/F,KAAKU,KAChBsF,WAAYtD,EAAAD,EAAA,CAAA,EAAKgD,GAAAA,CAAqBQ,cAAejG,KAAKa,MAAMoF,kBAC5DR,aAAAA,EAAAA,EAAqBS,WAAY,CACjCC,uBAAuB,EACvBrD,MAAO2C,EAAoB3C,SAInC9C,KAAKoG,UAAUC,cAAcV,EACjC,CAEAW,YAAAA,CAAaC,GACL,IAAAzG,EACJ,eADIA,EAAAE,KAAKC,oBAAL,IAAAH,OAAA,EAAAA,EAAmBwG,eAActG,KAAKC,aAAaqG,aAAaC,GAC7DvG,IACX,CAEAwG,UAAAA,CAAWC,GACH,IAAA3G,EACJ,eADIA,EAAAE,KAAKC,oBAAL,IAAAH,OAAA,EAAAA,EAAmB0G,aAAYxG,KAAKC,aAAauG,WAAWC,GACzDzG,IACX,CAMA0G,wBAAAA,CAAyBC,EAA6CC,GAAU,GACxE,IAAA9G,EACJ,eADIA,EAAAE,KAAKC,oBAAL,IAAAH,OAAA,EAAAA,EAAmB4G,2BAA0B1G,KAAKC,aAAayG,yBAAyBC,EAAmBC,GACxG5G,IACX,CAEA6G,qBAAAA,CAAsBC,GACd,IAAAhH,EACJ,eADIA,EAAAE,KAAKC,oBAAL,IAAAH,OAAA,EAAAA,EAAmB+G,wBAAuB7G,KAAKC,aAAa4G,sBAAsBC,GAC/E9G,IACX,CAOA+G,WAAAA,CAAYC,GAER,IAAKA,EAAIJ,QAAS,KAEdK,EAAAC,EADA,MAAMC,EAAQC,EAAO,sBAAsBC,KAAKL,GAC1B,QAAtBC,GAAAC,EAAAlH,KAAKa,OAAMkG,mBAAX,IAAAE,GAAAA,EAAAK,KAAAJ,EAAyBC,EAC7B,CACJ,CA2CA,6BAAIlC,OACqBsC,EAaFC,EAZnB,IADqD,QAAhCD,EAAAvH,KAAKa,MAAMa,6BAAX,IAAA6F,OAAA,EAAAA,EAAkCE,QAAS,EAE5D,MAAO,CAAA,EAYX,GADgD,KAAZ,QAAjBD,EAAAxH,KAAKa,MAAMU,cAAX,IAAAiG,OAAA,EAAAA,EAAmBhG,OAElC,OAAOxB,KAAKa,MAAMK,mBAAqB,CAAEwG,oBAAoB,GAAS,CAAA,EAK1E,OADkC1H,KAAKa,MAAMS,+BAAqE,IAAlCtB,KAAKsE,MAAMoD,mBACxD,CAAEA,mBAAoBC,QAAQ3H,KAAKsE,MAAMoD,qBAAwB,CAAA,CACxG,CAEA,WAAIE,GACA,QAAS5H,KAAKsE,MAAMsD,OACxB,CAEA,QAAIlE,GACO,IAAAmE,EAAP,eAAOA,EAAA7H,KAAKa,MAAM6C,YAAX,IAAAmE,EAAAA,EAAmB7H,KAAK8H,UAAUC,UAAf/H,CAA0BA,KAAKa,MAAMiC,MACnE,CAEA,UAAIkF,GACA,MAAMA,OAAEA,EAAMvE,oBAAEA,GAAwBzD,KAAKa,MAC7C,OAAImH,EACOA,EAAOC,IAAInF,UACIW,EAClB,MAAO,CAAEC,KAD2C,QAA9CwE,EAAYzE,iBAAAA,EAAAA,EAAsBX,cAAtBW,OAAAA,EAAAA,EAA8BC,YAAI,IAAArC,EAAAA,EAAIrB,KAAKa,MAAMsH,QAAQL,UAAUC,UAA7B/H,CAAwC8C,GACtEsF,KAAMtF,KAIjC,EACX,CAEA,eAAIuF,GACA,OAAIrI,KAAKa,MAAMa,sBACJ,QAAQ1B,KAAKa,MAAMyH,WAGvBtI,KAAKa,MAAMuH,MAAQ1I,EAAYgB,IAC1C,CAEA,kBAAI6H,GAEA,OACKvI,KAAKa,MAAMuH,MAAQ1I,EAAYgB,OAC/BV,KAAKa,MAAMa,sBACN,IAAM1B,KAAKa,MAAMoD,KAAKuE,IAAI,+CAA+CtE,QAAQ,KAAMlE,KAAKa,MAAMyH,UAClG,GAEd,CAEA,eAAIlD,GACA,OAAOqD,GACX,CAeQC,eAAAA,CAAgBC,GAAqB,GACzC,OACIC,EAACC,EAAAA,EAAAA,EAAAA,CACGC,gBAAiB9I,KAAK8I,iBAClB9I,KAAKa,MACLb,KAAKsE,OAAK,CACdrB,mBAAoBjD,KAAKa,MAAMoC,mBAC/B8F,kBAAmB/I,KAAKgJ,gBACxBC,SAAUjJ,KAAKkJ,SACfC,SAAUnJ,KAAKoJ,OACfC,cAAerJ,KAAKqJ,cACpBC,UAAWtJ,KAAKsJ,UAChBC,QAASvJ,KAAKuJ,QACdC,WAAYxJ,KAAKwJ,WACjB1G,MAAO9C,KAAKa,MAAMiC,MAClB2G,YAAazJ,KAAKgI,OAClB0B,0BAA2Bf,EAC3Bb,UAAW9H,KAAK8H,UAChB6B,QAAS3J,KAAK2J,QACdC,OAAQ5J,KAAK4J,OACbC,gBAAiB7J,KAAK6J,kBAGlC,CAEmBC,iBAAAA,GACf,OACIlB,EAACmB,EAAAA,CACG3I,cAAepB,KAAKa,MAAM8C,wBAC1BqG,kBAAmBhK,KAAKgK,kBACxBC,uBAAuB,EACvBC,iBAAkBlK,KAAKkK,iBACvBC,YAAanK,KAAKoK,iBAClBjB,SAAUnJ,KAAKqK,uBACfC,QAAStK,KAAKuK,aAEb5B,GAAsB3I,KAAK0I,gBAAgBC,GAGxD,CAlXA,WAAA6B,CAAYC,EAAiB5J,GAWhB,IAAA6J,GAVT/J,MAAM8J,EAAU5J,GAVpB8J,EAAA3K,KAAiBgK,yBAAjB,GAEAW,EAAA3K,KAAUC,oBAAV,GAKA0K,EAAA3K,KAAQE,gBAA4C,MAmCpDyK,EAAA3K,KAAiBkK,mBAAoBU,IACjC5K,KAAKE,cAAgB0K,IAsJzBD,EAAA3K,KAAOuJ,UAAW5D,QACdkF,EAAA3D,EAAkB,QAAlB2D,GAAA3D,EAAAlH,KAAKa,OAAM0I,eAAX,IAAAsB,GAAAA,EAAAvD,KAAAJ,EAAqBvB,KAazBgF,EAAA3K,KAAiBqK,yBAA0BS,IACvC9K,KAAKkJ,SAAS,CAAEzE,KAAMhC,EAAA,CAAA,EAAKqI,GAAWC,MAAO,CAAA,EAAIC,OAAQ,CAAA,EAAIpD,SAAS,IACtE5H,KAAKoJ,WAWTuB,EAAA3K,KAAiB6J,kBAAmB7C,QAIhCiE,EAAA/D,EAHA,MAAMvB,EAAQ,IAAIC,EAAmB,CAAEG,UAAW/F,KAAKU,KAAMA,KAAMmF,EAAcqF,aACjFlL,KAAKgJ,gBAAgBrD,GAEK,QAA1BsF,GAAA/D,EAAAlH,KAAKa,OAAMgJ,uBAAX,IAAAoB,GAAAA,EAAA3D,KAAAJ,EAA6BF,KAGjC2D,EAAA3K,KAAiB2J,UAAW3C,IACxB,MAAMrB,EAAQ,IAAIC,EAAmB,CACjCG,UAAW/F,KAAKU,KAChBA,KAAMmF,EAAcsF,MACpBC,OAAQC,EAAqBrE,EAAIsE,iBAMjCC,EAAArE,EAEAsE,EAAAC,GANJzL,KAAKgJ,gBAAgBrD,GAGjB+F,EAAe1E,EAAIsE,YACD,QAAlBC,GAAArE,EAAAlH,KAAKa,OAAM8I,eAAX,IAAA4B,GAAAA,EAAAjE,KAAAJ,EAAqBF,EAAIrB,OAEP,QAAlB6F,GAAAC,EAAAzL,KAAKa,OAAM8I,eAAX,IAAA6B,GAAAA,EAAAlE,KAAAmE,EAAqBzE,KAI7B2D,EAAA3K,KAAiB4J,SAAU5C,IACvB,MAAMrB,EAAQ,IAAIC,EAAmB,CACjCG,UAAW/F,KAAKU,KAChBA,KAAMmF,EAAc8F,QACpBP,OAAQC,EAAqBrE,EAAIsE,iBAMjCM,EAAA1E,EAEA2E,EAAAJ,GANJzL,KAAKgJ,gBAAgBrD,GAGjB+F,EAAe1E,EAAIsE,YACF,QAAjBM,GAAA1E,EAAAlH,KAAKa,OAAM+I,cAAX,IAAAgC,GAAAA,EAAAtE,KAAAJ,EAAoBF,EAAIrB,OAEP,QAAjBkG,GAAAJ,EAAAzL,KAAKa,OAAM+I,cAAX,IAAAiC,GAAAA,EAAAvE,KAAAmE,EAAoBzE,KAI5B2D,OAAOnB,aAAasC,EAAiB9L,OAoErC2K,EAAA3K,KAAmBsJ,YAAazI,QACT2G,EACED,EADrB,MAAMwE,EAA0C,KAAZ,QAAjBvE,EAAAxH,KAAKa,MAAMU,cAAX,IAAAiG,OAAA,EAAAA,EAAmBhG,OAChCwK,GAA+C,QAAhCzE,EAAAvH,KAAKa,MAAMa,6BAAX,IAAA6F,OAAA,EAAAA,EAAkCE,QAAS,EAChE,OACImB,EAACqD,EAAAA,EAAAA,EAAAA,CAAAA,EACOpL,GAAAA,CACJqL,MAAOH,IAAeC,EAAehM,KAAKa,MAAMoD,KAAKuE,IAAI,yBAA2B,GACpF2D,QAASnM,KAAKoJ,OACdgD,aAAcpM,KAAKa,MAAMwL,cAnU7BxL,IAAUA,EAAMyL,oBAAmD,YAA7BtM,KAAKa,MAAMP,iBACjDN,KAAKgK,kBAAoBuC,EACrBvM,KAAKa,MAAMO,cACXpB,KAAKa,MAAM8C,wBACX3D,KAAKa,MAAM2L,YACXxM,KAAKoG,WAGkB,QAAtBsE,EAAA1K,KAAKgK,yBAAL,IAAAU,GAAAA,EAAwB+B,aAErC,EAxBA9B,EADSjL,EACcgB,OAAmByC,EAAWuJ,QA0BrD/B,EA3BSjL,EA2BiBiN,eAAelK,EAAA,CACrCmK,qBAAqB,EACrBN,oBAAoB,EACpBO,aAAa,GAEVzF,EAAO,CAAC,OAAQ,oBAAoBC,KAAK7E"}
|
|
1
|
+
{"version":3,"file":"Card.js","sources":["../../../../src/components/Card/Card.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardInput from './components/CardInput';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { BinLookupResponse, CardElementData, CardConfiguration } from './types';\nimport { triggerBinLookUp } from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardConfigSuccessData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { fieldTypeToSnakeCase, isSecuredField } from '../internal/SecuredFields/utils';\nimport { notFalsy, reject } from '../../utils/commonUtils';\nimport { shouldIncludeInstallmentsInPaymentData } from './components/CardInput/utils';\nimport createClickToPayService from '../internal/ClickToPay/services/create-clicktopay-service';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../internal/ClickToPay/services/types';\nimport ClickToPayWrapper from './components/ClickToPayWrapper';\nimport { ComponentFocusObject, PaymentMethodBrand } from '../../types/global-types';\nimport { TxVariants } from '../tx-variants';\nimport type { ComponentMethodsRef, UIElementStatus } from '../internal/UIElement/types';\nimport UIElement from '../internal/UIElement';\nimport PayButton from '../internal/PayButton';\nimport type { ICore } from '../../core/types';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport CardInputDefaultProps from './components/CardInput/defaultProps';\nimport { PayButtonProps } from '../internal/PayButton/PayButton';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport { InstallmentOptions } from './components/CardInput/components/Installments/Installments';\n\nexport class CardElement extends UIElement<CardConfiguration> {\n public static readonly type: TxVariants = TxVariants.scheme;\n\n private readonly clickToPayService: IClickToPayService | null;\n\n /**\n * Reference to the 'ClickToPayComponent'\n */\n private clickToPayRef: ComponentMethodsRef | null = null;\n\n constructor(checkout: ICore, props?: CardConfiguration) {\n super(checkout, props);\n\n if (props && !props._disableClickToPay && this.props.fundingSource !== 'prepaid') {\n this.clickToPayService = createClickToPayService(\n this.props.configuration,\n this.props.clickToPayConfiguration,\n this.props.environment,\n this.analytics\n );\n\n void this.clickToPayService?.initialize();\n }\n }\n\n protected static readonly defaultProps = {\n showFormInstruction: true,\n _disableClickToPay: false,\n doBinLookup: true,\n // Merge most of CardInput's defaultProps\n ...reject(['type', 'setComponentRef']).from(CardInputDefaultProps)\n };\n\n public setStatus(status: UIElementStatus, props?): this {\n if (this.componentRef?.setStatus) {\n this.componentRef.setStatus(status, props);\n }\n if (this.clickToPayRef?.setStatus) {\n this.clickToPayRef.setStatus(status);\n }\n return this;\n }\n\n private readonly setClickToPayRef = (ref: ComponentMethodsRef) => {\n this.clickToPayRef = ref;\n };\n\n // This is the most self contained way of handling funding source matching\n // Alternatives would be to override getPaymentMethodConfigFromResponse and change it's signature\n protected override getPaymentMethodConfigFromResponse(componentProps: CardConfiguration) {\n if (componentProps?.fundingSource) {\n return this.core.paymentMethodsResponse?.findByFundingSource(componentProps.type, componentProps.fundingSource);\n }\n\n return super.getPaymentMethodConfigFromResponse(componentProps);\n }\n\n formatProps(props: CardConfiguration): CardConfiguration {\n // The value from a session should be used, before falling back to the merchant configuration\n const enableStoreDetails = props.session?.configuration?.enableStoreDetails ?? props.enableStoreDetails;\n\n const isZeroAuth = props.amount?.value === 0;\n const showStoreDetailsCheckbox = isZeroAuth ? false : enableStoreDetails;\n\n const storedCardID = props.storedPaymentMethodId || props.id; // check if we've been passed a (checkout) processed storedCard or one that merchant has pulled from the PMs response\n const isEcommerceStoredCard = storedCardID && props?.supportedShopperInteractions?.includes('Ecommerce'); // If we have a storedCard does it support Ecommerce (it might not if the merchant has pulled it from the PMs response)\n\n // If we have a storedPM but it doesn't support Ecommerce - we can't make a storedCard component from it\n if (storedCardID && !isEcommerceStoredCard) {\n // TODO - Decide if an error is too severe? Would a console.warning suffice?\n throw new AdyenCheckoutError(\n IMPLEMENTATION_ERROR,\n 'You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions'\n );\n }\n\n // Take the configuration set on the card component - which is either merchant defined or default (empty object)\n // @ts-ignore 'installmentOptions' is optional on CardConfiguration (the merchant-facing type), but by this point\n // UIElement.buildElementProps has already merged CardInputDefaultProps.installmentOptions ({}) into props\n // before formatProps() is called, so the value is always defined here.\n const merchantInstallmentOptions: InstallmentOptions = props.installmentOptions;\n\n if (props.session && notFalsy(merchantInstallmentOptions)) {\n console.warn(\n 'WARNING: You have defined installments configuration on the Card component, but you are using a /sessions integration.\\nWith this integration, installments configuration must be defined when you create the session. Any configuration defined elsewhere will be ignored.\\n\\n'\n );\n }\n\n // In a session scenario, only the session's own installments configuration is used; otherwise fall back to the merchant configuration / default\n const shownInstallmentOptions: InstallmentOptions = props.session\n ? (props.session?.configuration?.installmentOptions ?? CardInputDefaultProps.installmentOptions)\n : merchantInstallmentOptions;\n\n return {\n ...props,\n // Mismatch between hasHolderName & holderNameRequired which can mean card can never be valid\n holderNameRequired: !props.hasHolderName ? false : props.holderNameRequired,\n // False for *stored* BCMC cards & if merchant explicitly wants to hide the CVC field\n hasCVC: !((props.brand && props.brand === 'bcmc') || props.hideCVC),\n // billingAddressRequired only available for non-stored cards\n billingAddressRequired: props.storedPaymentMethodId ? false : props.billingAddressRequired,\n // edge case where merchant has defined both an onAddressLookup callback AND set billingAddressMode: 'partial' - which leads to some strange behaviour in the address UI\n billingAddressMode: props.onAddressLookup ? CardInputDefaultProps.billingAddressMode : props.billingAddressMode,\n /** props.brand will be specified in the case of a StoredCard or a Bancontact component, for a regular Card we default it to 'card' */\n brand: props.brand ?? TxVariants.card,\n countryCode: props.countryCode ? props.countryCode.toLowerCase() : null,\n // Required for transition period (until configuration object becomes the norm)\n // - if merchant has defined value directly in props, use this instead\n configuration: {\n ...props.configuration,\n socialSecurityNumberMode: props.configuration?.socialSecurityNumberMode ?? 'auto'\n },\n brandsConfiguration: props.brandsConfiguration || props.configuration?.brandsConfiguration || {},\n icon: props.icon || props.configuration?.icon,\n installmentOptions: shownInstallmentOptions,\n enableStoreDetails,\n showStoreDetailsCheckbox,\n /**\n * Click to Pay configuration\n * - If email is set explicitly in the configuration, then it can override the one used in the session creation\n */\n clickToPayConfiguration: {\n ...props.clickToPayConfiguration,\n disableOtpAutoFocus: props.clickToPayConfiguration?.disableOtpAutoFocus || false,\n shopperEmail: props.clickToPayConfiguration?.shopperEmail || this.core.options?.session?.shopperEmail,\n telephoneNumber: props.clickToPayConfiguration?.telephoneNumber || this.core.options?.session?.telephoneNumber,\n locale: props.clickToPayConfiguration?.locale || props.i18n?.locale?.replace('-', '_')\n },\n ...(storedCardID && { storedPaymentMethodId: storedCardID })\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): CardElementData {\n /**\n * this.state.selectedBrandValue will be set when:\n * - /binLookup detects a single brand,\n * - when /binLookup detects a dual-branded card and the shopper makes a brand selection\n * - or, in the case of a storedCard\n */\n const cardBrand = this.state.selectedBrandValue;\n\n return {\n paymentMethod: {\n type: CardElement.type,\n ...this.state.data,\n ...(this.props.storedPaymentMethodId && {\n storedPaymentMethodId: this.props.storedPaymentMethodId,\n holderName: this.props.holderName ?? ''\n }),\n ...(cardBrand && { brand: cardBrand }),\n ...(this.props.fundingSource && { fundingSource: this.props.fundingSource }),\n ...(this.state.fastlaneData && { fastlaneData: btoa(JSON.stringify(this.state.fastlaneData)) })\n },\n ...(this.state.billingAddress && { billingAddress: this.state.billingAddress }),\n ...(this.state.socialSecurityNumber && { socialSecurityNumber: this.state.socialSecurityNumber }),\n ...this.storePaymentMethodPayload,\n ...(shouldIncludeInstallmentsInPaymentData(this.state.installments) && { installments: this.state.installments }),\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n protected override beforeRender(configSetByMerchant?: CardConfiguration): void {\n // We don't send 'rendered' events when rendering actions\n if (configSetByMerchant?.originalAction) {\n return;\n }\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.oneClick && {\n isStoredPaymentMethod: true,\n brand: configSetByMerchant.brand\n })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(fieldName) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(fieldName);\n return this;\n }\n\n public onBrand = event => {\n this.props.onBrand?.(event);\n };\n\n processBinLookupResponse(binLookupResponse: BinLookupResponse | null, isReset = false) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse, isReset);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n private readonly handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n onBinLookup(obj: CardBinLookupData) {\n // Handler for regular card comp doesn't need this 'raw' data or to know about 'resets'\n if (!obj.isReset) {\n const nuObj = reject('supportedBrandsRaw').from(obj);\n this.props.onBinLookup?.(nuObj);\n }\n }\n\n private readonly onConfigSuccess = (obj: CardConfigSuccessData) => {\n const event = new AnalyticsInfoEvent({ component: this.type, type: InfoEventType.configured });\n this.submitAnalytics(event);\n\n this.props.onConfigSuccess?.(obj);\n };\n\n private readonly onFocus = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.focus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (isSecuredField(obj.fieldType)) {\n this.props.onFocus?.(obj.event as CardFocusData);\n } else {\n this.props.onFocus?.(obj);\n }\n };\n\n private readonly onBlur = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({\n component: this.type,\n type: InfoEventType.unfocus,\n target: fieldTypeToSnakeCase(obj.fieldType) as UiTarget\n });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (isSecuredField(obj.fieldType)) {\n this.props.onBlur?.(obj.event as CardFocusData);\n } else {\n this.props.onBlur?.(obj);\n }\n };\n\n public onBinValue = triggerBinLookUp(this);\n\n get storePaymentMethodPayload() {\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n if (isStoredCard) {\n return {};\n }\n\n /**\n * For regular card, zero auth payments, we store the payment method, *if* the configuration says we should:\n * - For sessions, this means if the session has been created with storePaymentMethodMode: 'askForConsent'\n * - For the advanced flow, this means if the merchant has still set enableStoreDetails: true\n *\n * What we are doing is.. if for a normal payment we would show the \"Save for my next payment\" checkbox,\n * for a zero-auth payment we effectively click the checkbox on behalf of the shopper.\n */\n const isZeroAuth = this.props.amount?.value === 0;\n if (isZeroAuth) {\n return this.props.enableStoreDetails ? { storePaymentMethod: true } : {};\n }\n\n // For regular card, non-zero auth payments, we store the payment method based on the checkbox value.\n const includeStorePaymentMethod = this.props.showStoreDetailsCheckbox && typeof this.state.storePaymentMethod !== 'undefined';\n return includeStorePaymentMethod ? { storePaymentMethod: Boolean(this.state.storePaymentMethod) } : {};\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.icon ?? this.resources.getImage()(this.props.brand);\n }\n\n get brands(): PaymentMethodBrand[] {\n const { brands, brandsConfiguration } = this.props;\n if (brands) {\n return brands.map(brand => {\n const brandIcon = brandsConfiguration?.[brand]?.icon ?? this.props.modules.resources.getImage()(brand);\n return { icon: brandIcon, name: brand };\n });\n }\n\n return [];\n }\n\n get displayName(): string {\n if (this.props.storedPaymentMethodId) {\n return `•••• ${this.props.lastFour}`;\n }\n\n return this.props.name || CardElement.type;\n }\n\n get accessibleName(): string {\n // Use display name, unless it's a stored payment method, there inform user\n return (\n (this.props.name || CardElement.type) +\n (this.props.storedPaymentMethodId\n ? ' ' + this.props.i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', this.props.lastFour)\n : '')\n );\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n protected override payButton = (props: PayButtonProps): h.JSX.Element => {\n const isZeroAuth = this.props.amount?.value === 0;\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n return (\n <PayButton\n {...props}\n label={isZeroAuth && !isStoredCard ? this.props.i18n.get('payButton.saveDetails') : ''}\n onClick={this.submit}\n showReview={!!this.props.onReview}\n />\n );\n };\n\n private renderCardInput(isCardPrimaryInput = true): h.JSX.Element {\n return (\n <CardInput\n setComponentRef={this.setComponentRef}\n {...this.props}\n {...this.state}\n onSubmitAnalytics={this.submitAnalytics}\n onChange={this.setState}\n onSubmit={this.submit}\n handleKeyDown={this.handleKeyDown}\n payButton={this.payButton}\n onBrand={this.onBrand}\n onBinValue={this.onBinValue}\n brand={this.props.brand}\n brandsIcons={this.brands}\n isPayButtonPrimaryVariant={isCardPrimaryInput}\n resources={this.resources}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onConfigSuccess={this.onConfigSuccess}\n />\n );\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <ClickToPayWrapper\n configuration={this.props.clickToPayConfiguration}\n clickToPayService={this.clickToPayService}\n isStandaloneComponent={false}\n setClickToPayRef={this.setClickToPayRef}\n onSetStatus={this.setElementStatus}\n onSubmit={this.handleClickToPaySubmit}\n onError={this.handleError}\n >\n {isCardPrimaryInput => this.renderCardInput(isCardPrimaryInput)}\n </ClickToPayWrapper>\n );\n }\n}\n\nexport default CardElement;\n"],"names":["CardElement","UIElement","setStatus","status","props","_this_componentRef","_this_clickToPayRef","this","componentRef","clickToPayRef","getPaymentMethodConfigFromResponse","componentProps","_this_core_paymentMethodsResponse","fundingSource","core","paymentMethodsResponse","findByFundingSource","type","super","formatProps","_this_core_options_session","_this_core_options","_this_core_options_session1","_this_core_options1","enableStoreDetails","session","configuration","_ref","showStoreDetailsCheckbox","amount","value","storedCardID","storedPaymentMethodId","id","isEcommerceStoredCard","supportedShopperInteractions","includes","AdyenCheckoutError","IMPLEMENTATION_ERROR","merchantInstallmentOptions","installmentOptions","notFalsy","console","warn","shownInstallmentOptions","_ref1","CardInputDefaultProps","_object_spread","_object_spread_props","holderNameRequired","hasHolderName","hasCVC","brand","hideCVC","billingAddressRequired","billingAddressMode","onAddressLookup","TxVariants","card","countryCode","toLowerCase","socialSecurityNumberMode","_ref2","brandsConfiguration","icon","clickToPayConfiguration","disableOtpAutoFocus","shopperEmail","options","telephoneNumber","locale","i18n","replace","formatData","_this_props_holderName","cardBrand","state","selectedBrandValue","paymentMethod","data","holderName","fastlaneData","btoa","JSON","stringify","billingAddress","socialSecurityNumber","storePaymentMethodPayload","shouldIncludeInstallmentsInPaymentData","installments","browserInfo","origin","window","location","beforeRender","configSetByMerchant","originalAction","event","AnalyticsInfoEvent","InfoEventType","rendered","component","configData","showPayButton","oneClick","isStoredPaymentMethod","analytics","sendAnalytics","updateStyles","stylesObj","setFocusOn","fieldName","processBinLookupResponse","binLookupResponse","isReset","handleUnsupportedCard","errObj","onBinLookup","obj","_this_props_onBinLookup","_this_props","nuObj","reject","from","call","_this_props_storedPaymentMethodId","_this_props_amount","length","storePaymentMethod","Boolean","isValid","_this_props_icon","resources","getImage","brands","map","brandIcon","modules","name","displayName","lastFour","accessibleName","get","collectBrowserInfo","renderCardInput","isCardPrimaryInput","h","CardInput","setComponentRef","onSubmitAnalytics","submitAnalytics","onChange","setState","onSubmit","submit","handleKeyDown","payButton","onBrand","onBinValue","brandsIcons","isPayButtonPrimaryVariant","onFocus","onBlur","onConfigSuccess","componentToRender","ClickToPayWrapper","clickToPayService","isStandaloneComponent","setClickToPayRef","onSetStatus","setElementStatus","handleClickToPaySubmit","onError","handleError","constructor","checkout","_this_clickToPayService","_define_property","ref","_this_props_onBrand","payload","valid","errors","_this_props_onConfigSuccess","configured","focus","target","fieldTypeToSnakeCase","fieldType","_this_props_onFocus","_this_props_onFocus1","_this_props1","isSecuredField","unfocus","_this_props_onBlur","_this_props_onBlur1","triggerBinLookUp","isZeroAuth","isStoredCard","PayButton","label","onClick","showReview","onReview","_disableClickToPay","createClickToPayService","environment","initialize","scheme","defaultProps","showFormInstruction","doBinLookup"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../../src/components/Card/components/CardInput/types.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport type {\n BinLookupResponse,\n BrandConfiguration,\n CardBrandsConfiguration,\n CardBackendConfiguration,\n DualBrandSelectElement,\n CardPlaceholders\n} from '../../types';\nimport {\n CardAllValidData,\n CardAutoCompleteData,\n CardBinValueData,\n CardBrandData,\n CardConfigSuccessData,\n CardFieldValidData,\n CardFocusData,\n CardLoadData,\n CVCPolicyType,\n DatePolicyType\n} from '../../../internal/SecuredFields/lib/types';\nimport Specifications from '../../../internal/Address/Specifications';\nimport { AddressSchema } from '../../../internal/Address/types';\nimport { CardErrorData, StylesObject } from '../../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../../core/Context/Resources';\nimport { SRPanel } from '../../../../core/Errors/SRPanel';\nimport RiskElement from '../../../../core/RiskModule';\nimport { DisclaimerMsgObject } from '../../../internal/DisclaimerMessage/DisclaimerMessage';\nimport { OnAddressLookupType, OnAddressSelectedType } from '../../../internal/Address/components/AddressSearch';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport { AddressData } from '../../../../types/global-types';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\nimport type { AbstractAnalyticsEvent } from '../../../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { IAnalytics } from '../../../../core/Analytics/Analytics';\nimport { PayButtonProps } from '../../../internal/PayButton/PayButton';\nimport { h } from 'preact';\nimport { InstallmentOptions } from './components/Installments/Installments';\nimport type { Form } from '../../../../utils/useForm/types';\nimport type { SecuredFieldsProviderRef } from '../../../internal/SecuredFields/SFP/types';\
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../../src/components/Card/components/CardInput/types.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport type {\n BinLookupResponse,\n BrandConfiguration,\n CardBrandsConfiguration,\n CardBackendConfiguration,\n DualBrandSelectElement,\n CardPlaceholders\n} from '../../types';\nimport { ValidationResult } from '../../../internal/PersonalDetails/types';\nimport {\n CardAllValidData,\n CardAutoCompleteData,\n CardBinValueData,\n CardBrandData,\n CardConfigSuccessData,\n CardFieldValidData,\n CardFocusData,\n CardLoadData,\n CVCPolicyType,\n DatePolicyType\n} from '../../../internal/SecuredFields/lib/types';\nimport Specifications from '../../../internal/Address/Specifications';\nimport { AddressSchema } from '../../../internal/Address/types';\nimport { CardErrorData, StylesObject } from '../../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../../core/Context/Resources';\nimport { SRPanel } from '../../../../core/Errors/SRPanel';\nimport RiskElement from '../../../../core/RiskModule';\nimport { DisclaimerMsgObject } from '../../../internal/DisclaimerMessage/DisclaimerMessage';\nimport { OnAddressLookupType, OnAddressSelectedType } from '../../../internal/Address/components/AddressSearch';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport { AddressData } from '../../../../types/global-types';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\nimport type { AbstractAnalyticsEvent } from '../../../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { IAnalytics } from '../../../../core/Analytics/Analytics';\nimport { PayButtonProps } from '../../../internal/PayButton/PayButton';\nimport { h } from 'preact';\nimport { InstallmentOptions } from './components/Installments/Installments';\nimport type { Form } from '../../../../utils/useForm/types';\nimport type { SecuredFieldsProviderRef } from '../../../internal/SecuredFields/SFP/types';\n\nexport interface CardInputValidState {\n holderName?: boolean;\n billingAddress?: boolean;\n socialSecurityNumber?: boolean;\n encryptedCardNumber?: boolean;\n encryptedExpiryMonth?: boolean;\n encryptedExpiryYear?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: boolean;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputErrorState {\n holderName?: ValidationResult;\n billingAddress?: ValidationResult;\n socialSecurityNumber?: ValidationResult;\n encryptedCardNumber?: boolean;\n encryptedExpiryDate?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: ValidationResult;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputDataState {\n holderName?: string;\n billingAddress?: AddressData | null;\n socialSecurityNumber?: string;\n taxNumber?: string;\n}\n\n/**\n * Should be the subset of the props sent to CardInput that are *actually* used by CardInput\n * - either in the comp itself or are passed on to its children\n */\nexport interface CardInputProps {\n isPayButtonPrimaryVariant?: boolean;\n autoFocus?: boolean;\n billingAddressAllowedCountries?: string[];\n billingAddressRequired?: boolean;\n billingAddressRequiredFields?: string[];\n billingAddressMode?: AddressModeOptions;\n brand?: string;\n brands?: string[];\n brandsConfiguration?: CardBrandsConfiguration;\n brandsIcons: Array<BrandConfiguration>;\n clientKey: string;\n configuration: CardBackendConfiguration;\n countryCode?: string;\n cvcPolicy?: CVCPolicyType;\n data?: CardInputDataState;\n disableIOSArrowKeys?: boolean;\n enableStoreDetails?: boolean;\n expiryMonth?: string;\n expiryYear?: string;\n fastlaneConfiguration?: FastlaneSignupConfiguration;\n forceCompat?: boolean;\n fundingSource?: 'debit' | 'credit' | 'prepaid';\n hasCVC?: boolean;\n hasHolderName?: boolean;\n holderName?: string;\n holderNameRequired?: boolean;\n i18n?: Language;\n implementationType?: 'components' | 'custom';\n installmentOptions?: InstallmentOptions;\n keypadFix?: boolean;\n lastFour?: string;\n loadingContext: string;\n legacyInputMode?: boolean;\n minimumExpiryDate?: string;\n modules?: {\n srPanel: SRPanel;\n analytics: IAnalytics;\n risk: RiskElement;\n resources: Resources;\n };\n onAdditionalSFConfig?: () => void;\n onAdditionalSFRemoved?: () => void;\n onAllValid?: (o: CardAllValidData) => void;\n onAutoComplete?: (o: CardAutoCompleteData) => void;\n onBinValue?: (o: CardBinValueData) => void;\n onBlur?: (e) => void;\n onBrand?: (o: CardBrandData) => void;\n onConfigSuccess?: (O: CardConfigSuccessData) => void;\n onChange: (state) => void;\n onError?: () => void;\n onFieldValid?: (o: CardFieldValidData) => void;\n onFocus?: (e) => void;\n onLoad?: (o: CardLoadData) => void;\n onSubmitAnalytics: (event: AbstractAnalyticsEvent) => void;\n handleKeyDown?: (event: KeyboardEvent) => void;\n onAddressLookup?: OnAddressLookupType;\n onAddressSelected?: OnAddressSelectedType;\n addressSearchDebounceMs?: number;\n payButton?: (props: PayButtonProps) => h.JSX.Element;\n placeholders?: CardPlaceholders;\n positionHolderNameOnTop?: boolean;\n resources: Resources;\n setComponentRef?: (ref) => void;\n showBrandIcon?: boolean;\n showInstallmentAmounts?: boolean;\n showPayButton: boolean;\n showStoreDetailsCheckbox?: boolean;\n showWarnings?: boolean;\n showContextualElement?: boolean;\n specifications?: Specifications;\n storedPaymentMethodId?: string;\n styles?: StylesObject;\n trimTrailingSeparator?: boolean;\n type: string;\n maskSecurityCode?: boolean;\n exposeExpiryDate?: boolean;\n disclaimerMessage?: DisclaimerMsgObject;\n}\n\nexport interface CardInputState {\n dualBrandSelectElements: DualBrandSelectElement[];\n selectedBrandValue: string;\n billingAddress: object;\n brand?: string;\n data?: object;\n errors?: object;\n focusedElement: string;\n cvcPolicy: CVCPolicyType;\n expiryDatePolicy: DatePolicyType;\n isValid: boolean;\n status: string;\n valid?: object;\n issuingCountryCode: string;\n showSocialSecurityNumber?: boolean;\n}\n\n// An interface for the members exposed by CardInput to its parent Card/UIElement\nexport interface CardInputRef extends ComponentMethodsRef {\n sfp?: SecuredFieldsProviderRef;\n setFocusOn?: (who) => void;\n processBinLookupResponse?: (binLookupResponse: BinLookupResponse, isReset: boolean) => void;\n updateStyles?: (stylesObj: StylesObject) => void;\n handleUnsupportedCard?: (errObj: CardErrorData) => boolean;\n}\n\nexport interface FieldError {\n errorMessage?: string;\n errorI18n?: string;\n}\n\nexport interface SFError {\n isValid?: boolean;\n errorMessage?: string;\n errorI18n?: string;\n error: string;\n rootNode: HTMLElement;\n detectedBrands?: string[];\n}\n\nexport interface SFStateErrorObj {\n [key: string]: SFError;\n}\n\nexport interface LayoutObj {\n props: CardInputProps;\n showKCP: boolean;\n showBrazilianSSN: boolean;\n countrySpecificSchemas: AddressSchema;\n billingAddressRequiredFields?: string[];\n}\n\nexport enum AddressModeOptions {\n full = 'full',\n partial = 'partial',\n none = 'none'\n}\n\nexport type CardSetFormData = Form<CardInputDataState>['setData'];\nexport type CardSetFormValid = Form<CardInputDataState>['setValid'];\nexport type CardSetFormErrors = Form<CardInputDataState>['setErrors'];\n\nexport type OnFieldFocus = (who: string, e: Event | CardFocusData) => void;\n"],"names":["AddressModeOptions"],"mappings":"AA+MO,IAAAA,EAAKA,SAAAA,GAAAA,uDAAAA,CAIX,CAJWA,CAIX,CAAA"}
|