@adyen/adyen-web 6.0.0-alpha.2 → 6.0.0-alpha.3
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/README.md +166 -0
- package/dist/cjs/adyen.css +2 -2
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +1932 -1968
- package/dist/es/adyen.css +2 -2
- package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
- package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
- package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
- package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
- package/dist/es/components/ApplePay/ApplePay.js +1 -1
- package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
- package/dist/es/components/ApplePay/defaultProps.js +1 -1
- package/dist/es/components/ApplePay/defaultProps.js.map +1 -1
- package/dist/es/components/ApplePay/payment-request.js.map +1 -1
- package/dist/es/components/Boleto/components/BoletoInput/validate.js +1 -1
- package/dist/es/components/Boleto/components/BoletoInput/validate.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/CardInput.js +1 -1
- package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardHolderName.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/utils.js +1 -1
- package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/validate.js +1 -1
- package/dist/es/components/Card/components/CardInput/validate.js.map +1 -1
- package/dist/es/components/CashAppPay/defaultProps.js +1 -1
- package/dist/es/components/CashAppPay/defaultProps.js.map +1 -1
- package/dist/es/components/Donation/Donation.js.map +1 -1
- package/dist/es/components/Dragonpay/Dragonpay.js +1 -1
- package/dist/es/components/Dragonpay/Dragonpay.js.map +1 -1
- package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
- package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
- package/dist/es/components/Econtext/Econtext.js +1 -1
- package/dist/es/components/Econtext/Econtext.js.map +1 -1
- package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
- package/dist/es/components/Giftcard/Giftcard.js +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/GooglePay/GooglePay.js +1 -1
- package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
- package/dist/es/components/GooglePay/GooglePayService.js +1 -1
- package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
- package/dist/es/components/GooglePay/defaultProps.js +1 -1
- package/dist/es/components/GooglePay/defaultProps.js.map +1 -1
- package/dist/es/components/GooglePay/requests.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/Pix/Pix.js +1 -1
- package/dist/es/components/Pix/Pix.js.map +1 -1
- package/dist/es/components/Pix/PixInput/PixInput.js +1 -1
- package/dist/es/components/Pix/PixInput/PixInput.js.map +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/utils.js +1 -1
- package/dist/es/components/ThreeDS2/components/utils.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/internal/Address/Address.js +1 -1
- package/dist/es/components/internal/Address/Address.js.map +1 -1
- package/dist/es/components/internal/Address/validate.js +1 -1
- package/dist/es/components/internal/Address/validate.js.map +1 -1
- package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
- package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es/components/internal/CompanyDetails/validate.js +1 -1
- package/dist/es/components/internal/CompanyDetails/validate.js.map +1 -1
- package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
- package/dist/es/components/internal/Img/Img.js +1 -1
- package/dist/es/components/internal/Img/Img.js.map +1 -1
- package/dist/es/components/internal/PersonalDetails/PersonalDetails.js +1 -1
- package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
- package/dist/es/components/internal/PersonalDetails/validate.js +1 -1
- package/dist/es/components/internal/PersonalDetails/validate.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/binLookup/triggerBinLookUp.js +1 -1
- package/dist/es/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/utils/cardType.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/utils/processErrors.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/utils/processErrors.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/configuration/constants.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/configuration/constants.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/utilities/addContextTranslations.js.map +1 -1
- package/dist/es/components/internal/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/es/components/internal/SegmentedControl/SegmentedControl.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/Analytics/Analytics.js +1 -1
- package/dist/es/core/Analytics/Analytics.js.map +1 -1
- package/dist/es/core/Analytics/constants.js +1 -1
- package/dist/es/core/Analytics/constants.js.map +1 -1
- package/dist/es/core/Analytics/utils.js +1 -1
- package/dist/es/core/Analytics/utils.js.map +1 -1
- package/dist/es/core/Errors/constants.js +1 -1
- package/dist/es/core/Errors/constants.js.map +1 -1
- package/dist/es/core/Errors/utils.js +1 -1
- package/dist/es/core/Errors/utils.js.map +1 -1
- package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
- package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
- package/dist/es/core/Services/analytics/collect-id.js +1 -1
- package/dist/es/core/Services/analytics/log-event.js +1 -1
- package/dist/es/core/core.js +1 -1
- package/dist/es/core/core.js.map +1 -1
- package/dist/es/core/utils.js +1 -1
- package/dist/es/core/utils.js.map +1 -1
- package/dist/es/index.d.ts +1932 -1968
- package/dist/es/language/locales/ar.json.js +1 -1
- package/dist/es/language/locales/cs-CZ.json.js +1 -1
- package/dist/es/language/locales/da-DK.json.js +1 -1
- package/dist/es/language/locales/de-DE.json.js +1 -1
- package/dist/es/language/locales/el-GR.json.js +1 -1
- package/dist/es/language/locales/en-US.json.js +1 -1
- package/dist/es/language/locales/es-ES.json.js +1 -1
- package/dist/es/language/locales/fi-FI.json.js +1 -1
- package/dist/es/language/locales/fr-FR.json.js +1 -1
- package/dist/es/language/locales/hr-HR.json.js +1 -1
- package/dist/es/language/locales/hu-HU.json.js +1 -1
- package/dist/es/language/locales/it-IT.json.js +1 -1
- package/dist/es/language/locales/ja-JP.json.js +1 -1
- package/dist/es/language/locales/ko-KR.json.js +1 -1
- package/dist/es/language/locales/nl-NL.json.js +1 -1
- package/dist/es/language/locales/no-NO.json.js +1 -1
- package/dist/es/language/locales/pl-PL.json.js +1 -1
- package/dist/es/language/locales/pt-BR.json.js +1 -1
- package/dist/es/language/locales/pt-PT.json.js +1 -1
- package/dist/es/language/locales/ro-RO.json.js +1 -1
- package/dist/es/language/locales/ru-RU.json.js +1 -1
- package/dist/es/language/locales/sk-SK.json.js +1 -1
- package/dist/es/language/locales/sl-SI.json.js +1 -1
- package/dist/es/language/locales/sv-SE.json.js +1 -1
- package/dist/es/language/locales/zh-CN.json.js +1 -1
- package/dist/es/language/locales/zh-TW.json.js +1 -1
- package/dist/es/utils/Formatters/formatters.js.map +1 -1
- package/dist/es/utils/Validator/defaultRules.js +1 -1
- package/dist/es/utils/Validator/defaultRules.js.map +1 -1
- package/dist/es/utils/base64.js +1 -1
- package/dist/es/utils/base64.js.map +1 -1
- package/dist/es/utils/getErrorMessage.js +1 -1
- package/dist/es/utils/getErrorMessage.js.map +1 -1
- package/dist/es-legacy/adyen.css +2 -2
- 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/AmazonPay/components/AmazonPayComponent.js +1 -1
- package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
- package/dist/es-legacy/components/ApplePay/ApplePay.js +1 -1
- package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
- package/dist/es-legacy/components/ApplePay/defaultProps.js +1 -1
- package/dist/es-legacy/components/ApplePay/defaultProps.js.map +1 -1
- package/dist/es-legacy/components/ApplePay/payment-request.js.map +1 -1
- package/dist/es-legacy/components/Boleto/components/BoletoInput/validate.js +1 -1
- package/dist/es-legacy/components/Boleto/components/BoletoInput/validate.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/CardInput.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardHolderName.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/validate.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/validate.js.map +1 -1
- package/dist/es-legacy/components/CashAppPay/defaultProps.js +1 -1
- package/dist/es-legacy/components/CashAppPay/defaultProps.js.map +1 -1
- package/dist/es-legacy/components/Donation/Donation.js.map +1 -1
- package/dist/es-legacy/components/Dragonpay/Dragonpay.js +1 -1
- package/dist/es-legacy/components/Dragonpay/Dragonpay.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
- package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
- package/dist/es-legacy/components/Econtext/Econtext.js +1 -1
- package/dist/es-legacy/components/Econtext/Econtext.js.map +1 -1
- package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/Giftcard.js +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/GooglePay/GooglePay.js +1 -1
- package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
- package/dist/es-legacy/components/GooglePay/GooglePayService.js +1 -1
- package/dist/es-legacy/components/GooglePay/GooglePayService.js.map +1 -1
- package/dist/es-legacy/components/GooglePay/defaultProps.js +1 -1
- package/dist/es-legacy/components/GooglePay/defaultProps.js.map +1 -1
- package/dist/es-legacy/components/GooglePay/requests.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/Pix/Pix.js +1 -1
- package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
- package/dist/es-legacy/components/Pix/PixInput/PixInput.js +1 -1
- package/dist/es-legacy/components/Pix/PixInput/PixInput.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/utils.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/utils.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/internal/Address/Address.js +1 -1
- package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/validate.js +1 -1
- package/dist/es-legacy/components/internal/Address/validate.js.map +1 -1
- package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
- package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es-legacy/components/internal/CompanyDetails/validate.js +1 -1
- package/dist/es-legacy/components/internal/CompanyDetails/validate.js.map +1 -1
- package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
- package/dist/es-legacy/components/internal/Img/Img.js +1 -1
- package/dist/es-legacy/components/internal/Img/Img.js.map +1 -1
- package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js +1 -1
- package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
- package/dist/es-legacy/components/internal/PersonalDetails/validate.js +1 -1
- package/dist/es-legacy/components/internal/PersonalDetails/validate.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/processErrors.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/processErrors.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/configuration/constants.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/configuration/constants.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/utilities/addContextTranslations.js.map +1 -1
- package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js +1 -1
- package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.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/Analytics/Analytics.js +1 -1
- package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
- package/dist/es-legacy/core/Analytics/constants.js +1 -1
- package/dist/es-legacy/core/Analytics/constants.js.map +1 -1
- package/dist/es-legacy/core/Analytics/utils.js +1 -1
- package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
- package/dist/es-legacy/core/Errors/constants.js +1 -1
- package/dist/es-legacy/core/Errors/constants.js.map +1 -1
- package/dist/es-legacy/core/Errors/utils.js +1 -1
- package/dist/es-legacy/core/Errors/utils.js.map +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
- package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
- package/dist/es-legacy/core/Services/analytics/log-event.js +1 -1
- package/dist/es-legacy/core/core.js +1 -1
- package/dist/es-legacy/core/core.js.map +1 -1
- package/dist/es-legacy/core/utils.js +1 -1
- package/dist/es-legacy/core/utils.js.map +1 -1
- package/dist/es-legacy/language/locales/ar.json.js +1 -1
- package/dist/es-legacy/language/locales/cs-CZ.json.js +1 -1
- package/dist/es-legacy/language/locales/da-DK.json.js +1 -1
- package/dist/es-legacy/language/locales/de-DE.json.js +1 -1
- package/dist/es-legacy/language/locales/el-GR.json.js +1 -1
- package/dist/es-legacy/language/locales/en-US.json.js +1 -1
- package/dist/es-legacy/language/locales/es-ES.json.js +1 -1
- package/dist/es-legacy/language/locales/fi-FI.json.js +1 -1
- package/dist/es-legacy/language/locales/fr-FR.json.js +1 -1
- package/dist/es-legacy/language/locales/hr-HR.json.js +1 -1
- package/dist/es-legacy/language/locales/hu-HU.json.js +1 -1
- package/dist/es-legacy/language/locales/it-IT.json.js +1 -1
- package/dist/es-legacy/language/locales/ja-JP.json.js +1 -1
- package/dist/es-legacy/language/locales/ko-KR.json.js +1 -1
- package/dist/es-legacy/language/locales/nl-NL.json.js +1 -1
- package/dist/es-legacy/language/locales/no-NO.json.js +1 -1
- package/dist/es-legacy/language/locales/pl-PL.json.js +1 -1
- package/dist/es-legacy/language/locales/pt-BR.json.js +1 -1
- package/dist/es-legacy/language/locales/pt-PT.json.js +1 -1
- package/dist/es-legacy/language/locales/ro-RO.json.js +1 -1
- package/dist/es-legacy/language/locales/ru-RU.json.js +1 -1
- package/dist/es-legacy/language/locales/sk-SK.json.js +1 -1
- package/dist/es-legacy/language/locales/sl-SI.json.js +1 -1
- package/dist/es-legacy/language/locales/sv-SE.json.js +1 -1
- package/dist/es-legacy/language/locales/zh-CN.json.js +1 -1
- package/dist/es-legacy/language/locales/zh-TW.json.js +1 -1
- package/dist/es-legacy/utils/Formatters/formatters.js.map +1 -1
- package/dist/es-legacy/utils/Validator/defaultRules.js +1 -1
- package/dist/es-legacy/utils/Validator/defaultRules.js.map +1 -1
- package/dist/es-legacy/utils/base64.js +1 -1
- package/dist/es-legacy/utils/base64.js.map +1 -1
- package/dist/es-legacy/utils/getErrorMessage.js +1 -1
- package/dist/es-legacy/utils/getErrorMessage.js.map +1 -1
- package/dist/umd/adyen.css +2 -2
- package/dist/umd/adyen.js +2 -2
- package/dist/umd/adyen.js.map +1 -1
- package/package.json +1 -1
package/dist/es/adyen.css
CHANGED
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
@keyframes card-bounce{0%{animation-timing-function:cubic-bezier(.17,.17,.32,1);-webkit-translate:0 -60%;-moz-translate:0 -60%;-ms-translate:0 -60%;translate:0 -60%}9.70874%{animation-timing-function:cubic-bezier(.41,0,.49,1);-webkit-translate:0 8.5%;-moz-translate:0 8.5%;-ms-translate:0 8.5%;translate:0 8.5%}23.4466%{animation-timing-function:cubic-bezier(.29,0,.26,1);-webkit-translate:0 -22.5%;-moz-translate:0 -22.5%;-ms-translate:0 -22.5%;translate:0 -22.5%}47.7184%{-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0}63.8835%{animation-timing-function:cubic-bezier(1,0,.78,1);-webkit-translate:0;-moz-translate:0;-ms-translate:0;translate:0}86.5534%{-webkit-translate:0 40.7%;-moz-translate:0 40.7%;-ms-translate:0 40.7%;translate:0 40.7%}to{-webkit-translate:0 40.7%;-moz-translate:0 40.7%;-ms-translate:0 40.7%;translate:0 40.7%}}@keyframes card-fade-100{0%{animation-timing-function:linear;opacity:0}8.1068%{opacity:1}78.4466%{opacity:1}86.5534%{opacity:0}to{opacity:0}}@keyframes card-fade-60{0%{animation-timing-function:linear;opacity:0}8.1068%{opacity:.6}78.4466%{opacity:.6}86.5534%{opacity:0}to{opacity:0}}@keyframes card-fade-20{0%{animation-timing-function:linear;opacity:0}8.1068%{opacity:.2}78.4466%{opacity:.2}86.5534%{opacity:0}to{opacity:0}}.adyen-checkout-ctp__card-animation{aspect-ratio:1/.438;filter:grayscale(1);margin:40px auto 50px;max-width:100%;position:relative;width:140px}.adyen-checkout-ctp__card-animation>.adyen-checkout-ctp__card-animation-layer{background-size:contain!important;height:100%;opacity:0;position:absolute;width:100%}.adyen-checkout-ctp__card-animation>.adyen-checkout-ctp__card-animation-layer:first-of-type{animation:card-bounce 2.06s linear infinite both,card-fade-100 2.06s linear infinite both;animation-delay:.1s;background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1064' height='466' fill='none'%3E%3Cpath fill='%23fff' fill-rule='evenodd' d='m895.31 228.862-46.416-10.988c-1.172-.381-2.528-.481-3.565-.203-1.582.424-1.825 1.567-.543 2.554.676.52 1.641.893 2.634 1.067l42.816 10.545-.537 21.742-2.328.624-6.897 1.848 1.146-20.056q.002-.019.003-.037h.005c.061-.536-.274-1.054-.864-1.494-.563-.447-1.399-.831-2.462-1.065l-.003.001-.072-.016-46.587-10.849-.032-.008c-1.18-.39-2.554-.496-3.601-.215l-16.926 4.535c-1.582.424-1.825 1.568-.542 2.555.389.299.859.593 1.407.742l44.453 10.938-.526 19.429c-.021.101.234 2.007-2.662 2.783l-22.831 6.118c-3.105.832-7.644.01-10.253-1.998l-32.227-24.8c-2.271-1.748-2.029-4.233 1.146-5.083l14.204-3.806c1.674-.449 1.938-1.481.58-2.526s-3.556-1.501-5.23-1.053l-14.297 3.879c-6.795 1.82-6.817 6.539-2.199 10.093l32.275 24.837c4.972 3.826 14.615 5.636 20.567 4.042l22.824-6.116c1.151-.309 2.067-.696 2.797-1.118q.156-.091.301-.183c2.32-1.48 2.521-3.296 2.528-3.671l1.19-21.406c.081-.992-1.14-2.073-3.289-2.548l-.003.002-.072-.017-39.385-9.196 7.065-1.893 2.329-.624 41.998 10.256-.496 22.836q0 .01.093.032c.113.304.361.618.75.918 1.283.987 3.605 1.443 5.187 1.02l16.925-4.535c1.048-.281 1.507-.878 1.326-1.536l1.612-23.779.002-.037.005-.001c.123-1.083-1.369-2.092-3.323-2.539'/%3E%3Cpath stroke='%23fff' d='m895.31 228.862-46.416-10.988c-1.172-.381-2.528-.481-3.565-.203-1.582.424-1.825 1.567-.543 2.554.676.52 1.641.893 2.634 1.067l42.816 10.545-.537 21.742-2.328.624-6.897 1.848 1.146-20.056q.002-.019.003-.037h.005c.061-.536-.274-1.054-.864-1.494-.563-.447-1.399-.831-2.462-1.065l-.003.001-.072-.016-46.587-10.849-.032-.008c-1.18-.39-2.554-.496-3.601-.215l-16.926 4.535c-1.582.424-1.825 1.568-.542 2.555.389.299.859.593 1.407.742l44.453 10.938-.526 19.429c-.021.101.234 2.007-2.662 2.783l-22.831 6.118c-3.105.832-7.644.01-10.253-1.998l-32.227-24.8c-2.271-1.748-2.029-4.233 1.146-5.083l14.204-3.806c1.674-.449 1.938-1.481.58-2.526s-3.556-1.501-5.23-1.053l-14.297 3.879c-6.795 1.82-6.817 6.539-2.199 10.093l32.275 24.837c4.972 3.826 14.615 5.636 20.567 4.042l22.824-6.116c1.151-.309 2.067-.696 2.797-1.118q.156-.091.301-.183c2.32-1.48 2.521-3.296 2.528-3.671l1.19-21.406c.081-.992-1.14-2.073-3.289-2.548l-.003.002-.072-.017-39.385-9.196 7.065-1.893 2.329-.624 41.998 10.256-.496 22.836q0 .01.093.032c.113.304.361.618.75.918 1.283.987 3.605 1.443 5.187 1.02l16.925-4.535c1.048-.281 1.507-.878 1.326-1.536l1.612-23.779.002-.037.005-.001c.123-1.083-1.369-2.092-3.323-2.539'/%3E%3Cpath fill='%23fff' fill-opacity='.9' fill-rule='evenodd' d='M418.95 242.813c-1.166.08-3.042-.372-4.121-.994-.702-.405-.941-.755-1.527-2.243-2.373-6.017-6.517-11.028-13.679-16.54-6.921-5.325-13.863-9.053-24.178-12.987-2.215-.844-4.182-1.652-4.368-1.795-.687-.528-.979-1.482-.612-1.986.505-.691 2.349-1.081 3.824-.809.567.103 2.521.743 4.345 1.421 7.215 2.687 13.99 5.937 20.009 9.598 3.723 2.267 9.803 6.823 12.219 9.164 4.462 4.317 7.493 8.422 9.4 12.73 1.153 2.604 1.269 3.77.4 4.003a2.4 2.4 0 0 0-.548.23c-.132.08-.653.173-1.164.208m-16.069-.701c-1.791.122-4.29-.719-4.965-1.671-.163-.23-.697-1.349-1.19-2.485-2.083-4.815-6.346-9.43-12.427-13.455-4.994-3.305-8.797-5.218-15.392-7.737-4.424-1.69-4.929-2-5.087-3.117-.146-1.06 1.961-1.804 4.061-1.431 1.457.258 8.467 2.972 11.969 4.634 11.594 5.498 19.993 12.484 23.913 19.889 2.008 3.792 1.779 5.192-.882 5.373m-16.492-.659c-1.224-.015-2.768-.406-3.758-.951-.603-.332-.912-.797-1.614-2.437-2.575-6.024-8.768-10.833-18.898-14.676-4.447-1.688-5.038-2.104-4.718-3.324.158-.605.358-.757 1.34-1.02 1.642-.44 3.175-.146 7.121 1.365 6.068 2.325 10.298 4.621 14.525 7.881 4.345 3.352 6.465 5.882 8.069 9.62.915 2.141.839 2.79-.389 3.282-.375.149-1.131.266-1.678.26m-15.379-.611c-.949.006-2.546-.385-3.476-.851-1.035-.519-1.424-1.045-1.796-2.434-.477-1.786-1.147-2.632-3.558-4.488s-3.719-2.531-6.931-3.584c-1.089-.356-2.302-.809-2.698-1.003-1.658-.818-1.914-2.296-.508-2.936 1.187-.544 2.67-.406 5.617.522 8.533 2.685 14.934 7.611 15.941 12.27.357 1.645-.521 2.495-2.591 2.504'/%3E%3Crect width='110' height='74' fill='url(%23a)' rx='10' transform='matrix(.96593 -.25882 .7925 .60987 199.717 245.906)'/%3E%3Cg stroke='%23000' stroke-opacity='.8' stroke-width='2'%3E%3Cpath d='m233.447 236.868 46.846 36.05c.876.673.72 1.451-.347 1.737l-31.799 8.521M266.657 262.424l-33.731 9.038m17.126-21.816-33.73 9.038m115.215 13.423-46.846-36.05c-.875-.673-.72-1.451.347-1.737l31.799-8.52M298.327 246.551l33.731-9.038m-17.126 21.816 33.731-9.038'/%3E%3Crect width='112' height='76' x='-1.758' y='-.351' rx='11' style='mix-blend-mode:soft-light' transform='matrix(.96593 -.25882 .7925 .60987 199.935 245.314)'/%3E%3C/g%3E%3Cdefs%3E%3ClinearGradient id='a' x1='-12.604' x2='99.193' y1='0' y2='88.114' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23fff'/%3E%3Cstop offset='.484' stop-color='%23b3b3b3'/%3E%3Cstop offset='1' stop-color='%23fff'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E") 0 0 no-repeat,url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1064' height='466' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Crect width='728' height='455' fill='url(%23b)' rx='24' transform='matrix(.96593 -.25882 .7925 .60987 0 188.42)'/%3E%3Cg fill='%23033783'%3E%3Cpath fill-opacity='.2' d='M638.209-50.009C376.564 99.506 477.408 320.518 560.535 412.335L1063.78 277.49z'/%3E%3Cpath fill-opacity='.4' d='M711.119 6.099C494.132 130.043 577.63 313.21 646.503 389.3l417.277-111.81z'/%3E%3C/g%3E%3Cpath fill='%23003780' d='M791.162 67.695C624.04 163.343 688.839 304.87 742.129 363.677l321.651-86.187z'/%3E%3C/g%3E%3Cdefs%3E%3ClinearGradient id='b' x1='72.545' x2='249.224' y1='26.435' y2='498.002' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%233382ea'/%3E%3Cstop offset='1' stop-color='%23003ea9'/%3E%3C/linearGradient%3E%3CclipPath id='a'%3E%3Crect width='728' height='455' fill='%23fff' rx='24' transform='matrix(.96593 -.25882 .7925 .60987 0 188.42)'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E") 0 0 no-repeat;opacity:1;z-index:3}.adyen-checkout-ctp__card-animation>.adyen-checkout-ctp__card-animation-layer:nth-of-type(2){animation:card-bounce 2.06s linear infinite both,card-fade-60 2.06s linear infinite both;animation-delay:50ms;opacity:.6;transform:translateY(25%);z-index:2}.adyen-checkout-ctp__card-animation>.adyen-checkout-ctp__card-animation-layer:nth-of-type(2),.adyen-checkout-ctp__card-animation>.adyen-checkout-ctp__card-animation-layer:nth-of-type(3){background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1064' height='466' fill='none'%3E%3Cg clip-path='url(%23a)'%3E%3Crect width='728' height='455' fill='url(%23b)' rx='24' transform='matrix(.96593 -.25882 .7925 .60987 0 188.42)'/%3E%3Cg fill='%23033783'%3E%3Cpath fill-opacity='.2' d='M638.209-50.009C376.564 99.506 477.408 320.518 560.535 412.335L1063.78 277.49z'/%3E%3Cpath fill-opacity='.4' d='M711.119 6.099C494.132 130.043 577.63 313.21 646.503 389.3l417.277-111.81z'/%3E%3C/g%3E%3Cpath fill='%23003780' d='M791.162 67.695C624.04 163.343 688.839 304.87 742.129 363.677l321.651-86.187z'/%3E%3C/g%3E%3Cdefs%3E%3ClinearGradient id='b' x1='72.545' x2='249.224' y1='26.435' y2='498.002' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%233382ea'/%3E%3Cstop offset='1' stop-color='%23003ea9'/%3E%3C/linearGradient%3E%3CclipPath id='a'%3E%3Crect width='728' height='455' fill='%23fff' rx='24' transform='matrix(.96593 -.25882 .7925 .60987 0 188.42)'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E") 0 0 no-repeat}.adyen-checkout-ctp__card-animation>.adyen-checkout-ctp__card-animation-layer:nth-of-type(3){animation:card-bounce 2.06s linear infinite both,card-fade-20 2.06s linear infinite both;opacity:.2;transform:translateY(50%);z-index:1}.adyen-checkout-ctp__loading-subtitle{font-size:var(--adyen-checkout-spacer-070);line-height:var(--adyen-checkout-text-caption-line-height);margin:0 auto 58px;max-width:280px;text-align:center}
|
|
33
33
|
.adyen-checkout-ctp__section>.adyen-checkout__field.adyen-checkout__field--shopperLogin{margin-bottom:var(--adyen-checkout-spacer-080)}
|
|
34
34
|
.adyen-checkout__content-separator{align-items:center;color:var(--adyen-checkout-color-label-secondary);display:flex;font-size:13px;justify-content:center;line-height:var(--adyen-checkout-text-caption-line-height);margin-bottom:var(--adyen-checkout-spacer-070);margin-top:var(--adyen-checkout-spacer-070);white-space:nowrap}.adyen-checkout__content-separator:after,.adyen-checkout__content-separator:before{border-bottom:1px solid var(--adyen-checkout-color-outline-tertiary);content:"";flex:1}.adyen-checkout__content-separator:after{margin-left:var(--adyen-checkout-spacer-080)}.adyen-checkout__content-separator:before{margin-right:var(--adyen-checkout-spacer-080)}
|
|
35
|
-
:root{--adyen-checkout-font-size-large:1.5em;--adyen-checkout-font-size-medium:1em;--adyen-checkout-font-size-small:0.81em;--adyen-checkout-font-size-xsmall:0.75em;--adyen-checkout-font-size-xxsmall:0.68em;--adyen-checkout-
|
|
35
|
+
:root{--adyen-checkout-font-size-large:1.5em;--adyen-checkout-font-size-medium:1em;--adyen-checkout-font-size-small:0.81em;--adyen-checkout-font-size-xsmall:0.75em;--adyen-checkout-font-size-xxsmall:0.68em;--adyen-checkout-line-height-600:30px;--adyen-checkout-line-height-400:26px;--adyen-checkout-line-height-200:20px;--adyen-checkout-line-height-100:18px;--adyen-checkout-font-weight-200:200;--adyen-checkout-font-weight-500:500;--adyen-checkout-font-weight-600:600;--adyen-checkout-font-weight-700:700;--adyen-checkout-text-title-font-weight:600;--adyen-checkout-text-body-font-size:14px;--adyen-checkout-text-body-font-weight:400;--adyen-checkout-text-body-stronger-font-weight:500;--adyen-checkout-text-body-strongest-font-weight:600;--adyen-checkout-text-title-line-height:var(--adyen-checkout-line-height-600);--adyen-checkout-text-caption-line-height:var(--adyen-checkout-line-height-100);--adyen-checkout-text-subtitle-line-height:var(--adyen-checkout-line-height-400);--adyen-checkout-text-subtitle-font-size:var(--adyen-checkout-font-size-medium);--adyen-checkout-text-subtitle-font-weight:var(--adyen-checkout-font-weight-500);--adyen-checkout-text-subtitle-stronger-font-weight:var(--adyen-checkout-font-weight-600);--adyen-checkout-spacer-090:24px;--adyen-checkout-spacer-080:20px;--adyen-checkout-spacer-070:16px;--adyen-checkout-spacer-060:12px;--adyen-checkout-spacer-050:10px;--adyen-checkout-spacer-040:8px;--adyen-checkout-spacer-030:6px;--adyen-checkout-spacer-020:4px;--adyen-checkout-spacer-010:2px;--adyen-checkout-spacer-000:0px;--adyen-checkout-spacer-140:64px;--adyen-checkout-spacer-130:56px;--adyen-checkout-spacer-120:48px;--adyen-checkout-spacer-110:40px;--adyen-checkout-spacer-100:32px;--adyen-checkout-border-width-l:3px;--adyen-checkout-border-width-m:2px;--adyen-checkout-border-width-s:1px;--adyen-checkout-border-radius-xl:24px;--adyen-checkout-border-radius-l:12px;--adyen-checkout-border-radius-m:8px;--adyen-checkout-border-radius-s:4px;--adyen-checkout-border-radius-xs:2px;--adyen-checkout-color-focus:rgba(0,112,245,0.8);--adyen-checkout-color-black:#000000;--adyen-checkout-color-white:#ffffff;--adyen-checkout-color-red:#e22d2d;--adyen-checkout-color-grey-3200:#00112c;--adyen-checkout-color-grey-1900:#5c687c;--adyen-checkout-color-grey-1300:#8d95a3;--adyen-checkout-color-grey-600:#c9cdd3;--adyen-checkout-color-grey-400:#dbdee2;--adyen-checkout-color-grey-200:#eeeff1;--adyen-checkout-color-grey-100:#f7f7f8;--adyen-checkout-color-green:#07893c;--adyen-checkout-color-blue:#0070f5;--adyen-checkout-color-separator-primary:var(--adyen-checkout-color-grey-200);--adyen-checkout-color-outline-active:var(--adyen-checkout-color-grey-3200);--adyen-checkout-color-outline-tertiary:var(--adyen-checkout-color-grey-1300);--adyen-checkout-color-outline-secondary:var(--adyen-checkout-color-grey-600);--adyen-checkout-color-outline-primary:var(--adyen-checkout-color-grey-400);--adyen-checkout-color-on-interactive-disabled:var(--adyen-checkout-color-grey-1300);--adyen-checkout-color-interactive-disabled:var(--adyen-checkout-color-grey-200);--adyen-checkout-color-interactive-readonly:var(--adyen-checkout-color-grey-1900);--adyen-checkout-color-interactive-primary-pressed:var(--adyen-checkout-color-grey-1300);--adyen-checkout-color-interactive-primary-hovered:var(--adyen-checkout-color-grey-1900);--adyen-checkout-color-label-success:var(--adyen-checkout-color-green);--adyen-checkout-color-label-critical:var(--adyen-checkout-color-red);--adyen-checkout-color-label-primary:var(--adyen-checkout-color-grey-3200);--adyen-checkout-color-label-secondary:var(--adyen-checkout-color-grey-1900);--adyen-checkout-color-label-tertiary:var(--adyen-checkout-color-grey-1300);--adyen-checkout-color-surface-modal:var(--adyen-checkout-color-white);--adyen-checkout-color-surface-inverse:var(--adyen-checkout-color-grey-3200);--adyen-checkout-color-surface-primary:var(--adyen-checkout-color-white);--adyen-checkout-color-background-always-dark:var(--adyen-checkout-color-grey-3200);--adyen-checkout-color-background-primary:var(--adyen-checkout-color-white);--adyen-checkout-color-background-secondary:var(--adyen-checkout-color-grey-100);--adyen-checkout-color-background-tertiary:var(--adyen-checkout-color-grey-200);--adyen-checkout-focus-ring-color:var(--adyen-checkout-color-focus);--adyen-checkout-dropin-payment-list-gap:var(--adyen-checkout-spacer-100);--adyen-checkout-dropin-payment-item-gap:var(--adyen-checkout-spacer-070);--adyen-checkout-dropin-payment-item-border-color:var(--adyen-checkout-color-separator-primary);--adyen-checkout-dropin-payment-item-border-radius:var(--adyen-checkout-border-radius-m);--adyen-checkout-dropin-payment-item-border-width:var(--adyen-checkout-border-width-s);--adyen-checkout-dropin-selected-item-background:var(--adyen-checkout-color-grey-100);--adyen-checkout-dropin-selected-item-border-color:var(--adyen-checkout-color-outline-active);--adyen-checkout-dropin-hover-item-border-color:var(--adyen-checkout-color-outline-secondary);--adyen-checkout-dropin-list-label-color:var(--adyen-checkout-color-label-primary);--adyen-checkout-loading-indicator-color:var(--adyen-checkout-color-surface-inverse);--adyen-checkout-loading-indicator-background-color:var(--adyen-checkout-color-surface-inverse);--adyen-checkout-input-field-input-color:var(--adyen-checkout-color-label-primary);--adyen-checkout-input-wrapper-background:var(--adyen-checkout-color-background-primary);--adyen-checkout-input-wrapper-inactive-background:var(--adyen-checkout-color-interactive-disabled);--adyen-checkout-input-wrapper-border-color:var(--adyen-checkout-color-outline-primary);--adyen-checkout-input-wrapper-border-radius:var(--adyen-checkout-border-radius-m);--adyen-checkout-input-wrapper-border-width:var(--adyen-checkout-border-width-s);--adyen-checkout-input-wrapper-focus-border-color:var(--adyen-checkout-color-outline-active);--adyen-checkout-input-wrapper-hover-border-color:var(--adyen-checkout-color-outline-tertiary);--adyen-checkout-input-field-height:var(--adyen-checkout-spacer-110);--adyen-checkout-input-field-label-color:var(--adyen-checkout-color-label-primary);--adyen-checkout-input-field-context-color:var(--adyen-checkout-color-label-primary);--adyen-checkout-input-field-label-margin-bottom:var(--adyen-checkout-spacer-020);--adyen-checkout-input-field-context-margin-top:var(--adyen-checkout-spacer-020);--adyen-checkout-link-text-color:var(--adyen-checkout-color-blue);--adyen-checkout-link-text-decoration:underline;--adyen-checkout-link-border-radius:var(--adyen-checkout-border-radius-xs);--adyen-checkout-button-background-color:var(--adyen-checkout-color-background-always-dark);--adyen-checkout-button-color:var(--adyen-checkout-color-surface-modal);--adyen-checkout-button-border-radius:var(--adyen-checkout-border-radius-m);--adyen-checkout-button-font-size:var(--adyen-checkout-font-size-medium);--adyen-checkout-button-font-weight:var(--adyen-checkout-text-body-stronger-font-weight);--adyen-checkout-button-height:var(--adyen-checkout-spacer-120)}.adyen-checkout-link{--text-decoration:none;color:var(--adyen-checkout-link-text-color);-webkit-text-decoration:var(--text-decoration);text-decoration:var(--text-decoration)}.adyen-checkout-link:focus-visible{outline:none}.adyen-checkout-link:active,.adyen-checkout-link:hover{--text-decoration:var(--adyen-checkout-link-text-decoration)}.adyen-checkout-link:focus-visible{border-radius:var(--adyen-checkout-link-border-radius);box-shadow:0 0 0 1px #fff,0 0 0 3px var(--adyen-checkout-focus-ring-color);transition:.1s cubic-bezier(.785,.135,.15,.86)}[class^=adyen-checkout],[class^=adyen-checkout] *,[class^=adyen-checkout] :after,[class^=adyen-checkout] :before,[class^=adyen-checkout]:after,[class^=adyen-checkout]:before{box-sizing:border-box}
|
|
36
36
|
.adyen-checkout__threeds2__challenge,.adyen-checkout__threeds2__challenge-container{background-color:transparent;display:block;height:inherit;min-height:400px;overflow:hidden;position:relative;width:100%}.adyen-checkout__threeds2__challenge--01,.adyen-checkout__threeds2__challenge--01 .adyen-checkout__iframe--threeDSIframe{height:400px;width:250px}.adyen-checkout__threeds2__challenge--02,.adyen-checkout__threeds2__challenge--02 .adyen-checkout__iframe--threeDSIframe{height:400px;width:390px}.adyen-checkout__threeds2__challenge--03,.adyen-checkout__threeds2__challenge--03 .adyen-checkout__iframe--threeDSIframe{height:600px;width:500px}.adyen-checkout__threeds2__challenge--04,.adyen-checkout__threeds2__challenge--04 .adyen-checkout__iframe--threeDSIframe{height:400px;width:600px}.adyen-checkout__threeds2__challenge--05,.adyen-checkout__threeds2__challenge--05 .adyen-checkout__iframe--threeDSIframe{height:100%;width:100%}.adyen-checkout__iframe--threeDSIframe{border:0;left:0;position:absolute;top:0}
|
|
37
37
|
.adyen-checkout__threeds2-challenge-error .adyen-checkout__status__icon{display:block;margin:var(--adyen-checkout-spacer-130) auto var(--adyen-checkout-spacer-100)}.adyen-checkout__threeds2-challenge-error .adyen-checkout__status__text{color:var(--adyen-checkout-color-label-critical);margin-bottom:var(--adyen-checkout-spacer-130);text-align:center}
|
|
38
38
|
.adyen-checkout__loading-input__form{transition:opacity .25s ease-out}.adyen-checkout__pm__holderName{margin-bottom:0}.adyen-checkout__pm__holderName .adyen-checkout__input{max-height:100px}.adyen-checkout__fieldset__title+.adyen-checkout__ach-sf__form{margin-top:0}.adyen-checkout__ach-input .adyen-checkout__fieldset--address,.adyen-checkout__ach-sf__form{margin-top:var(--adyen-checkout-spacer-070)}.sf-input__wrapper{position:relative}
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
.adyen-checkout__loading-input__form{transition:opacity .25s ease-out}
|
|
63
63
|
.adyen-checkout__fieldset--phone-input{direction:ltr}.adyen-checkout__fieldset--phone-input .adyen-checkout__fieldset__fields{gap:var(--adyen-checkout-spacer-070)}.adyen-checkout__fieldset--phone-input .adyen-checkout__fieldset__fields>.adyen-checkout__field{margin-bottom:0}.adyen-checkout-field--phone-prefix{width:144px}.adyen-checkout-field--phone-number{flex:1}
|
|
64
64
|
.adyen-checkout__field--vpa{margin-bottom:0}
|
|
65
|
-
.adyen-
|
|
65
|
+
.adyen-checkout-checkmark{--checkmark-color:var(--adyen-checkout-color-label-primary);border-bottom:1.5px solid var(--checkmark-color);border-right:1.5px solid var(--checkmark-color);height:var(--adyen-checkout-spacer-060);transform:rotate(45deg);width:var(--adyen-checkout-spacer-030)}.adyen-checkout__segmented-control{background:var(--adyen-checkout-color-background-tertiary);border-radius:var(--adyen-checkout-border-radius-l);display:flex;gap:var(--adyen-checkout-spacer-020);justify-content:space-between;padding:var(--adyen-checkout-spacer-030)}.adyen-checkout__segmented-control--disabled{pointer-events:none}.adyen-checkout__segmented-control--disabled>.adyen-checkout__segmented-control-segment{color:var(--adyen-checkout-color-on-interactive-disabled)}.adyen-checkout__segmented-control--disabled>.adyen-checkout__segmented-control-segment--selected .adyen-checkout-checkmark{--checkmark-color:var(--adyen-checkout-color-on-interactive-disabled)}.adyen-checkout__segmented-control-segment{align-items:center;border:0;border-radius:var(--adyen-checkout-border-radius-m);color:var(--adyen-checkout-color-label-primary);cursor:pointer;display:flex;flex-grow:1;font-weight:var(--adyen-checkout-text-body-stronger-font-weight);gap:var(--adyen-checkout-spacer-050);height:var(--adyen-checkout-spacer-110);justify-content:center;text-align:center;transition:background .3s ease-out;width:100%}.adyen-checkout__segmented-control-segment:active,.adyen-checkout__segmented-control-segment:not(.adyen-checkout__segmented-control-segment--selected):hover{background-color:var(--adyen-checkout-color-background-secondary)}.adyen-checkout__segmented-control-segment--selected{background:var(--adyen-checkout-color-background-primary);box-shadow:0 1px var(--adyen-checkout-spacer-010) 0 rgba(0,17,44,.02),0 var(--adyen-checkout-spacer-010) var(--adyen-checkout-spacer-020) 0 rgba(0,17,44,.04);color:var(--adyen-checkout-color-label-primary)}
|
|
66
66
|
.adyen-checkout_upi-mode-selection-text{font-size:13px;font-weight:var(--adyen-checkout-text-body-font-weight);line-height:var(--adyen-checkout-text-caption-line-height);margin-bottom:7px;margin-top:0}.adyen-checkout__segmented-control--upi-margin-bottom{margin-bottom:var(--adyen-checkout-spacer-070)}
|
|
67
67
|
.adyen-checkout__alert-message{border-radius:var(--adyen-checkout-border-radius-m);display:flex;font-size:var(--adyen-checkout-font-size-small);margin:0 0 var(--adyen-checkout-spacer-070);padding:var(--adyen-checkout-spacer-060);text-align:left}.adyen-checkout__alert-message--error{background:var(--adyen-checkout-color-label-critical)}.adyen-checkout__alert-message--warning{background:var(--adyen-checkout-alert-severity-warning-background-color)}.adyen-checkout__alert-message--info{background:var(--adyen-checkout-color-background-secondary)}.adyen-checkout__alert-message__icon{height:14px;margin-right:var(--adyen-checkout-spacer-040);width:14px}
|
|
68
68
|
.adyen-checkout__giftcard-result__header{align-items:center;display:flex;flex-wrap:nowrap;font-size:1em;font-weight:var(--adyen-checkout-text-body-font-weight);justify-content:space-between;position:relative;width:100%}.adyen-checkout__giftcard-result__header__title{align-items:center;display:flex}.adyen-checkout__giftcard-result__name{margin-left:var(--adyen-checkout-spacer-040)}.adyen-checkout__giftcard-result__balance{list-style:none;margin:var(--adyen-checkout-spacer-070) 0 0;padding:0}.adyen-checkout__giftcard-result__balance__item{display:flex;justify-content:space-between;margin-bottom:var(--adyen-checkout-spacer-040)}.adyen-checkout__giftcard-result__balance__item .adyen-checkout__giftcard-result__balance__title--transactionLimit{color:var(--adyen-checkout-color-outline-tertiary)}.adyen-checkout__giftcard-result__balance__item:last-child{margin-bottom:0}.adyen-checkout__giftcard-result__balance__value--amount{font-weight:700}.adyen-checkout__giftcard-result__remaining-balance{color:var(--adyen-checkout-color-label-secondary);font-size:13px;line-height:var(--adyen-checkout-text-caption-line-height);margin:var(--adyen-checkout-spacer-040) auto 0;text-align:center}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as o}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import t from"../../core/Context/CoreProvider.js";import r from"../../utils/browserInfo.js";import
|
|
1
|
+
import{createElement as o}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import t from"../../core/Context/CoreProvider.js";import r from"../../utils/browserInfo.js";import n from"./components/AmazonPayComponent.js";import s from"./defaultProps.js";import{getCheckoutDetails as i}from"./services.js";import{TxVariants as p}from"../tx-variants.js";import{sanitizeResponse as c,verifyPaymentDidNotFail as a}from"../internal/UIElement/utils.js";class l extends e{static type=p.amazonpay;static defaultProps=s;formatProps(o){return{...o,checkoutMode:o.isDropin?"ProcessOrder":o.checkoutMode,environment:o.environment.toUpperCase(),locale:o.locale.replace("-","_"),productType:o.isDropin&&!o.addressDetails?"PayOnly":o.productType}}formatData(){const{amazonCheckoutSessionId:o}=this.props;return{paymentMethod:{type:l.type,...o&&{checkoutSessionId:o}},browserInfo:this.browserInfo}}getShopperDetails(){const{amazonCheckoutSessionId:o,configuration:e={},loadingContext:t,clientKey:r}=this.props;if(!o)return console.error("Could not shopper details. Missing checkoutSessionId.");const n={checkoutSessionId:o,getDeliveryAddress:!0,publicKeyId:e.publicKeyId,region:e.region};return i(t,r,n)}handleDeclineFlow(){const{amazonCheckoutSessionId:o,configuration:e={},loadingContext:t,clientKey:r}=this.props;if(!o)return console.error("Could handle the decline flow. Missing checkoutSessionId.");const n={checkoutSessionId:o,getDeclineFlowUrl:!0,publicKeyId:e.publicKeyId,region:e.region};i(t,r,n).then(((o={})=>{if(!o?.declineFlowUrl)throw o;window.location.assign(o.declineFlowUrl)})).catch((o=>{this.props.onError&&this.props.onError(o,this.componentRef)}))}get isValid(){return!0}get browserInfo(){return r()}submit(){const o=this.componentRef&&this.componentRef.getSubmitFunction();if(o)return o();this.makePaymentsCall().then(c).then(a).then(this.handleResponse).catch(this.handleFailedResult)}render(){return o(t,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},o(n,{ref:o=>{this.componentRef=o},showPayButton:this.props.showPayButton,onClick:this.props.onClick,onError:this.props.onError,onSignOut:this.props.onSignOut,...this.props}))}}export{l as AmazonPayElement,l as default};
|
|
2
2
|
//# sourceMappingURL=AmazonPay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonPay.js","sources":["../../../../src/components/AmazonPay/AmazonPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport CoreProvider from '../../core/Context/CoreProvider';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AmazonPayComponent from './components/AmazonPayComponent';\nimport { AmazonPayElementData, AmazonPayConfiguration, CheckoutDetailsRequest } from './types';\nimport defaultProps from './defaultProps';\nimport { getCheckoutDetails } from './services';\nimport './AmazonPay.scss';\nimport { TxVariants } from '../tx-variants';\n\nexport class AmazonPayElement extends UIElement<AmazonPayConfiguration> {\n public static type = TxVariants.amazonpay;\n\n protected static defaultProps = defaultProps;\n\n formatProps(props) {\n return {\n ...props,\n checkoutMode: props.isDropin ? 'ProcessOrder' : props.checkoutMode,\n environment: props.environment.toUpperCase(),\n locale: props.locale.replace('-', '_'),\n productType: props.isDropin && !props.addressDetails ? 'PayOnly' : props.productType\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): AmazonPayElementData {\n const { amazonCheckoutSessionId: checkoutSessionId } = this.props;\n return {\n paymentMethod: {\n type: AmazonPayElement.type,\n ...(checkoutSessionId && { checkoutSessionId })\n },\n browserInfo: this.browserInfo\n };\n }\n\n getShopperDetails() {\n const { amazonCheckoutSessionId, configuration = {}, loadingContext, clientKey } = this.props;\n if (!amazonCheckoutSessionId) return console.error('Could not shopper details. Missing checkoutSessionId.');\n\n const request: CheckoutDetailsRequest = {\n checkoutSessionId: amazonCheckoutSessionId,\n getDeliveryAddress: true,\n publicKeyId: configuration.publicKeyId,\n region: configuration.region\n };\n\n return getCheckoutDetails(loadingContext, clientKey, request);\n }\n\n public handleDeclineFlow() {\n const { amazonCheckoutSessionId, configuration = {}, loadingContext, clientKey } = this.props;\n if (!amazonCheckoutSessionId) return console.error('Could handle the decline flow. Missing checkoutSessionId.');\n\n const request: CheckoutDetailsRequest = {\n checkoutSessionId: amazonCheckoutSessionId,\n getDeclineFlowUrl: true,\n publicKeyId: configuration.publicKeyId,\n region: configuration.region\n };\n\n getCheckoutDetails(loadingContext, clientKey, request)\n .then((response = {}) => {\n if (!response?.declineFlowUrl) throw response;\n window.location.assign(response.declineFlowUrl);\n })\n .catch(error => {\n if (this.props.onError) this.props.onError(error, this.componentRef);\n });\n }\n\n get isValid() {\n return true;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n submit() {\n const
|
|
1
|
+
{"version":3,"file":"AmazonPay.js","sources":["../../../../src/components/AmazonPay/AmazonPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport CoreProvider from '../../core/Context/CoreProvider';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AmazonPayComponent from './components/AmazonPayComponent';\nimport { AmazonPayElementData, AmazonPayConfiguration, CheckoutDetailsRequest } from './types';\nimport defaultProps from './defaultProps';\nimport { getCheckoutDetails } from './services';\nimport './AmazonPay.scss';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\n\nexport class AmazonPayElement extends UIElement<AmazonPayConfiguration> {\n public static type = TxVariants.amazonpay;\n\n protected static defaultProps = defaultProps;\n\n formatProps(props) {\n return {\n ...props,\n checkoutMode: props.isDropin ? 'ProcessOrder' : props.checkoutMode,\n environment: props.environment.toUpperCase(),\n locale: props.locale.replace('-', '_'),\n productType: props.isDropin && !props.addressDetails ? 'PayOnly' : props.productType\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): AmazonPayElementData {\n const { amazonCheckoutSessionId: checkoutSessionId } = this.props;\n return {\n paymentMethod: {\n type: AmazonPayElement.type,\n ...(checkoutSessionId && { checkoutSessionId })\n },\n browserInfo: this.browserInfo\n };\n }\n\n getShopperDetails() {\n const { amazonCheckoutSessionId, configuration = {}, loadingContext, clientKey } = this.props;\n if (!amazonCheckoutSessionId) return console.error('Could not shopper details. Missing checkoutSessionId.');\n\n const request: CheckoutDetailsRequest = {\n checkoutSessionId: amazonCheckoutSessionId,\n getDeliveryAddress: true,\n publicKeyId: configuration.publicKeyId,\n region: configuration.region\n };\n\n return getCheckoutDetails(loadingContext, clientKey, request);\n }\n\n public handleDeclineFlow() {\n const { amazonCheckoutSessionId, configuration = {}, loadingContext, clientKey } = this.props;\n if (!amazonCheckoutSessionId) return console.error('Could handle the decline flow. Missing checkoutSessionId.');\n\n const request: CheckoutDetailsRequest = {\n checkoutSessionId: amazonCheckoutSessionId,\n getDeclineFlowUrl: true,\n publicKeyId: configuration.publicKeyId,\n region: configuration.region\n };\n\n getCheckoutDetails(loadingContext, clientKey, request)\n .then((response = {}) => {\n if (!response?.declineFlowUrl) throw response;\n window.location.assign(response.declineFlowUrl);\n })\n .catch(error => {\n if (this.props.onError) this.props.onError(error, this.componentRef);\n });\n }\n\n get isValid() {\n return true;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n public submit(): void {\n const amazonComponentSubmit = this.componentRef && this.componentRef.getSubmitFunction();\n if (amazonComponentSubmit) {\n return amazonComponentSubmit();\n }\n this.makePaymentsCall().then(sanitizeResponse).then(verifyPaymentDidNotFail).then(this.handleResponse).catch(this.handleFailedResult);\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <AmazonPayComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n showPayButton={this.props.showPayButton}\n onClick={this.props.onClick}\n onError={this.props.onError}\n onSignOut={this.props.onSignOut}\n {...this.props}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default AmazonPayElement;\n"],"names":["AmazonPayElement","UIElement","static","TxVariants","amazonpay","defaultProps","formatProps","props","checkoutMode","isDropin","environment","toUpperCase","locale","replace","productType","addressDetails","formatData","amazonCheckoutSessionId","checkoutSessionId","this","paymentMethod","type","browserInfo","getShopperDetails","configuration","loadingContext","clientKey","console","error","request","getDeliveryAddress","publicKeyId","region","getCheckoutDetails","handleDeclineFlow","getDeclineFlowUrl","then","response","declineFlowUrl","window","location","assign","catch","onError","componentRef","isValid","collectBrowserInfo","submit","amazonComponentSubmit","getSubmitFunction","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","handleFailedResult","render","h","CoreProvider","i18n","resources","AmazonPayComponent","ref","showPayButton","onClick","onSignOut"],"mappings":"ofAYO,MAAMA,UAAyBC,EAClCC,YAAqBC,EAAWC,UAEhCF,oBAAgCG,EAEhCC,WAAAA,CAAYC,GACR,MAAO,IACAA,EACHC,aAAcD,EAAME,SAAW,eAAiBF,EAAMC,aACtDE,YAAaH,EAAMG,YAAYC,cAC/BC,OAAQL,EAAMK,OAAOC,QAAQ,IAAK,KAClCC,YAAaP,EAAME,WAAaF,EAAMQ,eAAiB,UAAYR,EAAMO,YAEjF,CAKAE,UAAAA,GACI,MAAQC,wBAAyBC,GAAsBC,KAAKZ,MAC5D,MAAO,CACHa,cAAe,CACXC,KAAMrB,EAAiBqB,QACnBH,GAAqB,CAAEA,sBAE/BI,YAAaH,KAAKG,YAE1B,CAEAC,iBAAAA,GACI,MAAMN,wBAAEA,EAAuBO,cAAEA,EAAgB,CAAE,EAAAC,eAAEA,EAAcC,UAAEA,GAAcP,KAAKZ,MACxF,IAAKU,EAAyB,OAAOU,QAAQC,MAAM,yDAEnD,MAAMC,EAAkC,CACpCX,kBAAmBD,EACnBa,oBAAoB,EACpBC,YAAaP,EAAcO,YAC3BC,OAAQR,EAAcQ,QAG1B,OAAOC,EAAmBR,EAAgBC,EAAWG,EACzD,CAEOK,iBAAAA,GACH,MAAMjB,wBAAEA,EAAuBO,cAAEA,EAAgB,CAAE,EAAAC,eAAEA,EAAcC,UAAEA,GAAcP,KAAKZ,MACxF,IAAKU,EAAyB,OAAOU,QAAQC,MAAM,6DAEnD,MAAMC,EAAkC,CACpCX,kBAAmBD,EACnBkB,mBAAmB,EACnBJ,YAAaP,EAAcO,YAC3BC,OAAQR,EAAcQ,QAG1BC,EAAmBR,EAAgBC,EAAWG,GACzCO,MAAK,CAACC,EAAW,MACd,IAAKA,GAAUC,eAAgB,MAAMD,EACrCE,OAAOC,SAASC,OAAOJ,EAASC,eAAc,IAEjDI,OAAMd,IACCT,KAAKZ,MAAMoC,SAASxB,KAAKZ,MAAMoC,QAAQf,EAAOT,KAAKyB,aAAY,GAE/E,CAEA,WAAIC,GACA,OAAO,CACX,CAEA,eAAIvB,GACA,OAAOwB,GACX,CAEOC,MAAAA,GACH,MAAMC,EAAwB7B,KAAKyB,cAAgBzB,KAAKyB,aAAaK,oBACrE,GAAID,EACA,OAAOA,IAEX7B,KAAK+B,mBAAmBd,KAAKe,GAAkBf,KAAKgB,GAAyBhB,KAAKjB,KAAKkC,gBAAgBX,MAAMvB,KAAKmC,mBACtH,CAEAC,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAMvC,KAAKZ,MAAMmD,KAAMjC,eAAgBN,KAAKZ,MAAMkB,eAAgBkC,UAAWxC,KAAKwC,WAC5FH,EAACI,EAAAA,CACGC,IAAKA,IACD1C,KAAKyB,aAAeiB,CAAAA,EAExBC,cAAe3C,KAAKZ,MAAMuD,cAC1BC,QAAS5C,KAAKZ,MAAMwD,QACpBpB,QAASxB,KAAKZ,MAAMoC,QACpBqB,UAAW7C,KAAKZ,MAAMyD,aAClB7C,KAAKZ,QAIzB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as
|
|
1
|
+
import{createElement as n}from"../../../external/preact/dist/preact.js";import{useState as e,useRef as o,useEffect as t}from"../../../external/preact/hooks/dist/hooks.js";import a from"../../internal/Spinner/Spinner.js";import{getAmazonPayUrl as r}from"../utils.js";import i from"./AmazonPayButton.js";import s from"./ChangePaymentDetailsButton.js";import u from"./OrderButton.js";import c from"./SignOutButton.js";import m from"../../../utils/Script.js";function d(d){const[p,h]=e("pending"),l=o(null),y=o(null),f=()=>{h("ready")};return this.getSubmitFunction=()=>l.current&&l.current.initCheckout?()=>l.current.initCheckout():y.current&&y.current.createOrder?()=>y.current.createOrder():void 0,t((()=>{const n=r(d.configuration.region),e=new m(n);return window.amazon?f():e.load().then(f),()=>{e.remove()}}),[]),"pending"===p?n("div",{className:"adyen-checkout__amazonpay"},n("div",{className:"adyen-checkout__amazonpay__status adyen-checkout__amazonpay__status--pending"},n(a,null))):d.showSignOutButton?n("div",{className:"adyen-checkout__amazonpay"},n(c,{amazonRef:window.amazon,onSignOut:d.onSignOut})):d.amazonCheckoutSessionId?n("div",{className:"adyen-checkout__amazonpay"},d.showOrderButton&&n(u,{amazonCheckoutSessionId:d.amazonCheckoutSessionId,amount:d.amount,chargePermissionType:d.chargePermissionType,recurringMetadata:d.recurringMetadata,clientKey:d.clientKey,onError:d.onError,publicKeyId:d.configuration?.publicKeyId,region:d.configuration?.region,returnUrl:d.returnUrl,ref:y}),d.showChangePaymentDetailsButton&&n(s,{amazonCheckoutSessionId:d.amazonCheckoutSessionId,amazonRef:window.amazon})):n("div",{className:"adyen-checkout__amazonpay"},n(i,{...d,showPayButton:this.props.showPayButton,amazonRef:window.amazon,ref:l}))}export{d as default};
|
|
2
2
|
//# sourceMappingURL=AmazonPayComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonPayComponent.js","sources":["../../../../../src/components/AmazonPay/components/AmazonPayComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport Spinner from '../../internal/Spinner';\nimport { getAmazonPayUrl } from '../utils';\nimport { AmazonPayComponentProps } from '../types';\nimport AmazonPayButton from './AmazonPayButton';\nimport ChangePaymentDetailsButton from './ChangePaymentDetailsButton';\nimport OrderButton from './OrderButton';\nimport SignOutButton from './SignOutButton';\nimport Script from '../../../utils/Script';\n\nexport default function AmazonPayComponent(props: AmazonPayComponentProps) {\n const [status, setStatus] = useState('pending');\n const amazonPayButtonRef = useRef(null);\n const orderButtonRef = useRef(null);\n\n const handleLoad = () => {\n setStatus('ready');\n };\n\n this.
|
|
1
|
+
{"version":3,"file":"AmazonPayComponent.js","sources":["../../../../../src/components/AmazonPay/components/AmazonPayComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport Spinner from '../../internal/Spinner';\nimport { getAmazonPayUrl } from '../utils';\nimport { AmazonPayComponentProps } from '../types';\nimport AmazonPayButton from './AmazonPayButton';\nimport ChangePaymentDetailsButton from './ChangePaymentDetailsButton';\nimport OrderButton from './OrderButton';\nimport SignOutButton from './SignOutButton';\nimport Script from '../../../utils/Script';\n\nexport default function AmazonPayComponent(props: AmazonPayComponentProps) {\n const [status, setStatus] = useState('pending');\n const amazonPayButtonRef = useRef(null);\n const orderButtonRef = useRef(null);\n\n const handleLoad = () => {\n setStatus('ready');\n };\n\n this.getSubmitFunction = () => {\n if (amazonPayButtonRef.current && amazonPayButtonRef.current.initCheckout) return () => amazonPayButtonRef.current.initCheckout();\n if (orderButtonRef.current && orderButtonRef.current.createOrder) return () => orderButtonRef.current.createOrder();\n };\n\n useEffect(() => {\n const src = getAmazonPayUrl(props.configuration.region);\n const script = new Script(src);\n if (window.amazon) {\n handleLoad();\n } else {\n script.load().then(handleLoad);\n }\n\n return () => {\n script.remove();\n };\n }, []);\n\n if (status === 'pending') {\n return (\n <div className=\"adyen-checkout__amazonpay\">\n <div className=\"adyen-checkout__amazonpay__status adyen-checkout__amazonpay__status--pending\">\n <Spinner />\n </div>\n </div>\n );\n }\n\n if (props.showSignOutButton) {\n return (\n <div className=\"adyen-checkout__amazonpay\">\n <SignOutButton amazonRef={window.amazon} onSignOut={props.onSignOut} />\n </div>\n );\n }\n\n if (props.amazonCheckoutSessionId) {\n return (\n <div className=\"adyen-checkout__amazonpay\">\n {props.showOrderButton && (\n <OrderButton\n amazonCheckoutSessionId={props.amazonCheckoutSessionId}\n amount={props.amount}\n chargePermissionType={props.chargePermissionType}\n recurringMetadata={props.recurringMetadata}\n clientKey={props.clientKey}\n onError={props.onError}\n publicKeyId={props.configuration?.publicKeyId}\n region={props.configuration?.region}\n returnUrl={props.returnUrl}\n ref={orderButtonRef}\n />\n )}\n\n {props.showChangePaymentDetailsButton && (\n <ChangePaymentDetailsButton amazonCheckoutSessionId={props.amazonCheckoutSessionId} amazonRef={window.amazon} />\n )}\n </div>\n );\n }\n\n return (\n <div className=\"adyen-checkout__amazonpay\">\n <AmazonPayButton {...props} showPayButton={this.props.showPayButton} amazonRef={window.amazon} ref={amazonPayButtonRef} />\n </div>\n );\n}\n"],"names":["AmazonPayComponent","props","status","setStatus","useState","amazonPayButtonRef","useRef","orderButtonRef","handleLoad","this","getSubmitFunction","current","initCheckout","createOrder","useEffect","src","getAmazonPayUrl","configuration","region","script","Script","window","amazon","load","then","remove","h","div","className","Spinner","showSignOutButton","SignOutButton","amazonRef","onSignOut","amazonCheckoutSessionId","showOrderButton","OrderButton","amount","chargePermissionType","recurringMetadata","clientKey","onError","publicKeyId","returnUrl","ref","showChangePaymentDetailsButton","ChangePaymentDetailsButton","AmazonPayButton","showPayButton"],"mappings":"ucAWe,SAASA,EAAmBC,GACvC,MAAOC,EAAQC,GAAaC,EAAS,WAC/BC,EAAqBC,EAAO,MAC5BC,EAAiBD,EAAO,MAExBE,EAAa,KACfL,EAAU,QAAA,EAsBd,OAnBAM,KAAKC,kBAAoB,IACjBL,EAAmBM,SAAWN,EAAmBM,QAAQC,aAAqB,IAAMP,EAAmBM,QAAQC,eAC/GL,EAAeI,SAAWJ,EAAeI,QAAQE,YAAoB,IAAMN,EAAeI,QAAQE,mBAAtG,EAGJC,GAAU,KACN,MAAMC,EAAMC,EAAgBf,EAAMgB,cAAcC,QAC1CC,EAAS,IAAIC,EAAOL,GAO1B,OANIM,OAAOC,OACPd,IAEAW,EAAOI,OAAOC,KAAKhB,GAGhB,KACHW,EAAOM,QAAM,CACjB,GACD,IAEY,YAAXvB,EAEIwB,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACC,MAAAA,CAAIC,UAAU,gFACXF,EAACG,EAAAA,QAMb5B,EAAM6B,kBAEFJ,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACK,EAAAA,CAAcC,UAAWX,OAAOC,OAAQW,UAAWhC,EAAMgC,aAKlEhC,EAAMiC,wBAEFR,EAACC,MAAAA,CAAIC,UAAU,6BACV3B,EAAMkC,iBACHT,EAACU,EAAAA,CACGF,wBAAyBjC,EAAMiC,wBAC/BG,OAAQpC,EAAMoC,OACdC,qBAAsBrC,EAAMqC,qBAC5BC,kBAAmBtC,EAAMsC,kBACzBC,UAAWvC,EAAMuC,UACjBC,QAASxC,EAAMwC,QACfC,YAAazC,EAAMgB,eAAeyB,YAClCxB,OAAQjB,EAAMgB,eAAeC,OAC7ByB,UAAW1C,EAAM0C,UACjBC,IAAKrC,IAIZN,EAAM4C,gCACHnB,EAACoB,EAAAA,CAA2BZ,wBAAyBjC,EAAMiC,wBAAyBF,UAAWX,OAAOC,UAOlHI,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACqB,EAAAA,IAAoB9C,EAAO+C,cAAevC,KAAKR,MAAM+C,cAAehB,UAAWX,OAAOC,OAAQsB,IAAKvC,IAGhH"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import
|
|
1
|
+
import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import s from"./components/ApplePayButton.js";import r from"./ApplePayService.js";import n from"../../utils/base64.js";import o from"./defaultProps.js";import{httpPost as i}from"../../core/Services/http.js";import{APPLEPAY_SESSION_ENDPOINT as a}from"./config.js";import{preparePaymentRequest as p}from"./payment-request.js";import{resolveSupportedVersion as l,mapBrands as c,formatApplePayContactToAdyenAddressFormat as d}from"./utils.js";import h from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as m}from"../tx-variants.js";import{sanitizeResponse as u,verifyPaymentDidNotFail as y}from"../internal/UIElement/utils.js";import{ANALYTICS_SELECTED_STR as A,ANALYTICS_INSTANT_PAYMENT_BUTTON as P}from"../../core/Analytics/constants.js";class S extends t{static type=m.applepay;static defaultProps=o;constructor(e,t){super(e,t);const{isExpress:s,onShippingContactSelected:r,onShippingMethodSelected:n}=this.props;if(!1===s&&(r||n))throw new h("IMPLEMENTATION_ERROR",'ApplePay - You must set "isExpress" flag to "true" in order to use "onShippingContactSelected" and/or "onShippingMethodSelected" callbacks');this.startSession=this.startSession.bind(this),this.submit=this.submit.bind(this),this.validateMerchant=this.validateMerchant.bind(this),this.collectOrderTrackingDetailsIfNeeded=this.collectOrderTrackingDetailsIfNeeded.bind(this),this.handleAuthorization=this.handleAuthorization.bind(this)}formatProps(e){const t=e.version||l(14),s=e.brands?.length?c(e.brands):e.supportedNetworks;return{...e,configuration:e.configuration,supportedNetworks:s,version:t,totalPriceLabel:e.totalPriceLabel||e.configuration?.merchantName}}formatData(){const{applePayToken:e,billingAddress:t,deliveryAddress:s}=this.state,{isExpress:r}=this.props;return{paymentMethod:{type:S.type,applePayToken:e,...r&&{subtype:"express"}},...t&&{billingAddress:t},...s&&{deliveryAddress:s}}}submit=()=>{this.props.isInstantPayment&&this.submitAnalytics({type:A,target:P}),this.startSession()};startSession(){const{version:e,onValidateMerchant:t,onPaymentMethodSelected:s,onShippingMethodSelected:n,onShippingContactSelected:o}=this.props,i=p({companyName:this.props.configuration.merchantName,countryCode:this.core.options.countryCode,...this.props}),a=new r(i,{version:e,onError:e=>{this.handleError(new h("ERROR","ApplePay - Something went wrong on ApplePayService",{cause:e}))},onCancel:e=>{this.handleError(new h("CANCEL","ApplePay UI dismissed",{cause:e}))},onPaymentMethodSelected:s,onShippingMethodSelected:n,onShippingContactSelected:o,onValidateMerchant:t||this.validateMerchant,onPaymentAuthorized:(e,t,s)=>{const r=d(s.payment.billingContact),n=d(s.payment.shippingContact,!0);this.setState({applePayToken:btoa(JSON.stringify(s.payment.token.paymentData)),authorizedEvent:s,...r&&{billingAddress:r},...n&&{deliveryAddress:n}}),this.handleAuthorization().then(this.makePaymentsCall).then(u).then(y).then(this.collectOrderTrackingDetailsIfNeeded).then((({paymentResponse:t,orderDetails:s})=>(e({status:ApplePaySession.STATUS_SUCCESS,...s&&{orderDetails:s}}),t))).then((e=>{this.handleResponse(e)})).catch((e=>{const s=e?.error?.applePayError;t({status:ApplePaySession.STATUS_FAILURE,errors:s?Array.isArray(s)?s:[s]:void 0});const r={...e,error:{applePayError:s}};this.handleFailedResult(r)}))}});return new Promise(((e,t)=>this.props.onClick(e,t))).then((()=>{a.begin()})).catch((()=>({})))}async handleAuthorization(){return new Promise(((e,t)=>{this.props.onAuthorized||e();const{authorizedEvent:s,billingAddress:r,deliveryAddress:n}=this.state;this.props.onAuthorized({authorizedEvent:s,...r&&{billingAddress:r},...n&&{deliveryAddress:n}},{resolve:e,reject:t})})).catch((e=>{const t={error:{applePayError:e}};return Promise.reject(t)}))}async collectOrderTrackingDetailsIfNeeded(e){return new Promise(((e,t)=>{if(!this.props.onOrderTrackingRequest)return e();this.props.onOrderTrackingRequest(e,t)})).then((t=>({paymentResponse:e,...t&&{orderDetails:t}}))).catch((()=>({paymentResponse:e})))}async validateMerchant(e,t){const{hostname:s}=window.location,{clientKey:r,configuration:o,loadingContext:p,initiative:l}=this.props,{merchantName:c,merchantId:d}=o,h={loadingContext:p,path:`${a}?clientKey=${r}`},m={displayName:c,domainName:s,initiative:l,merchantIdentifier:d};try{const s=await i(h,m),r=n.decode(s.data);if(r.success){e(JSON.parse(r.data))}else t("Could not decode Apple Pay session")}catch(e){t("Could not get Apple Pay session")}}get isValid(){return!0}async isAvailable(){if("https:"!==document.location.protocol)return Promise.reject(new h("IMPLEMENTATION_ERROR","Trying to start an Apple Pay session from an insecure document"));if(!this.props.onValidateMerchant&&!this.props.clientKey)return Promise.reject(new h("IMPLEMENTATION_ERROR","clientKey was not provided"));try{if(window.ApplePaySession&&ApplePaySession.canMakePayments()&&ApplePaySession.supportsVersion(this.props.version))return Promise.resolve()}catch(e){console.warn(e)}return Promise.reject(new h("ERROR","Apple Pay is not available on this device"))}render(){return this.props.showPayButton?e(s,{i18n:this.props.i18n,buttonColor:this.props.buttonColor,buttonType:this.props.buttonType,onClick:e=>{e.preventDefault(),this.submit()}}):null}}export{S as default};
|
|
2
2
|
//# sourceMappingURL=ApplePay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApplePay.js","sources":["../../../../src/components/ApplePay/ApplePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport ApplePayButton from './components/ApplePayButton';\nimport ApplePayService from './ApplePayService';\nimport base64 from '../../utils/base64';\nimport defaultProps from './defaultProps';\nimport { httpPost } from '../../core/Services/http';\nimport { APPLEPAY_SESSION_ENDPOINT } from './config';\nimport { preparePaymentRequest } from './payment-request';\nimport { resolveSupportedVersion, mapBrands, formatApplePayContactToAdyenAddressFormat } from './utils';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport { ANALYTICS_INSTANT_PAYMENT_BUTTON, ANALYTICS_SELECTED_STR } from '../../core/Analytics/constants';\nimport type { ApplePayConfiguration, ApplePayElementData, ApplePayPaymentOrderDetails, ApplePaySessionRequest } from './types';\nimport type { ICore } from '../../core/types';\nimport type { PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\n\nconst latestSupportedVersion = 14;\n\nclass ApplePayElement extends UIElement<ApplePayConfiguration> {\n public static type = TxVariants.applepay;\n protected static defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: ApplePayConfiguration) {\n super(checkout, props);\n this.startSession = this.startSession.bind(this);\n this.submit = this.submit.bind(this);\n this.validateMerchant = this.validateMerchant.bind(this);\n this.collectOrderTrackingDetailsIfNeeded = this.collectOrderTrackingDetailsIfNeeded.bind(this);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n }\n\n /**\n * Formats the component props\n */\n protected formatProps(props) {\n const version = props.version || resolveSupportedVersion(latestSupportedVersion);\n const supportedNetworks = props.brands?.length ? mapBrands(props.brands) : props.supportedNetworks;\n\n return {\n ...props,\n configuration: props.configuration,\n supportedNetworks,\n version,\n totalPriceLabel: props.totalPriceLabel || props.configuration?.merchantName\n };\n }\n\n /**\n * Formats the component data output\n */\n protected formatData(): ApplePayElementData {\n const { applePayToken, billingAddress, deliveryAddress } = this.state;\n\n return {\n paymentMethod: {\n type: ApplePayElement.type,\n applePayToken\n },\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n public submit = (): void => {\n // Analytics\n if (this.props.isInstantPayment) {\n this.submitAnalytics({ type: ANALYTICS_SELECTED_STR, target: ANALYTICS_INSTANT_PAYMENT_BUTTON });\n }\n void this.startSession();\n };\n\n private startSession() {\n const { version, onValidateMerchant, onPaymentMethodSelected, onShippingMethodSelected, onShippingContactSelected } = this.props;\n\n const paymentRequest = preparePaymentRequest({\n companyName: this.props.configuration.merchantName,\n countryCode: this.core.options.countryCode,\n ...this.props\n });\n\n const session = new ApplePayService(paymentRequest, {\n version,\n onError: (error: unknown) => {\n this.handleError(\n new AdyenCheckoutError('ERROR', 'ApplePay - Something went wrong on ApplePayService', {\n cause: error\n })\n );\n },\n onCancel: event => {\n this.handleError(new AdyenCheckoutError('CANCEL', 'ApplePay UI dismissed', { cause: event }));\n },\n onPaymentMethodSelected,\n onShippingMethodSelected,\n onShippingContactSelected,\n onValidateMerchant: onValidateMerchant || this.validateMerchant,\n onPaymentAuthorized: (resolve, reject, event) => {\n const billingAddress = formatApplePayContactToAdyenAddressFormat(event.payment.billingContact);\n const deliveryAddress = formatApplePayContactToAdyenAddressFormat(event.payment.shippingContact, true);\n\n this.setState({\n applePayToken: btoa(JSON.stringify(event.payment.token.paymentData)),\n authorizedEvent: event,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.collectOrderTrackingDetailsIfNeeded)\n .then(({ paymentResponse, orderDetails }) => {\n resolve({\n status: ApplePaySession.STATUS_SUCCESS,\n ...(orderDetails && { orderDetails })\n });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n const errors = paymentResponse?.error?.applePayError;\n\n reject({\n status: ApplePaySession.STATUS_FAILURE,\n errors: errors ? (Array.isArray(errors) ? errors : [errors]) : undefined\n });\n\n const responseWithError: RawPaymentResponse = {\n ...paymentResponse,\n error: {\n applePayError: errors\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n }\n });\n\n return new Promise((resolve, reject) => this.props.onClick(resolve, reject))\n .then(() => {\n session.begin();\n })\n .catch(() => ({\n // Swallow exception triggered by onClick reject\n }));\n }\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n *\n * @private\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: ApplePayJS.ApplePayError) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { applePayError: error } };\n return Promise.reject(data);\n });\n }\n\n /**\n * Verify if the 'onOrderTrackingRequest' is provided. If so, triggers the callback expecting an\n * Apple Pay order details back\n *\n * @private\n */\n private async collectOrderTrackingDetailsIfNeeded(\n paymentResponse: PaymentResponseData\n ): Promise<{ orderDetails?: ApplePayPaymentOrderDetails; paymentResponse: PaymentResponseData }> {\n return new Promise<ApplePayPaymentOrderDetails | void>((resolve, reject) => {\n if (!this.props.onOrderTrackingRequest) {\n return resolve();\n }\n\n this.props.onOrderTrackingRequest(resolve, reject);\n })\n .then(orderDetails => {\n return {\n paymentResponse,\n ...(orderDetails && { orderDetails })\n };\n })\n .catch(() => {\n return { paymentResponse };\n });\n }\n\n private async validateMerchant(resolve, reject) {\n const { hostname: domainName } = window.location;\n const { clientKey, configuration, loadingContext, initiative } = this.props;\n const { merchantName, merchantId } = configuration;\n const path = `${APPLEPAY_SESSION_ENDPOINT}?clientKey=${clientKey}`;\n const options = { loadingContext, path };\n const request: ApplePaySessionRequest = {\n displayName: merchantName,\n domainName,\n initiative,\n merchantIdentifier: merchantId\n };\n\n try {\n const response = await httpPost(options, request);\n const decodedData = base64.decode(response.data);\n if (!decodedData) reject('Could not decode Apple Pay session');\n const session = JSON.parse(decodedData as string);\n resolve(session);\n } catch (e) {\n reject('Could not get Apple Pay session');\n }\n }\n\n /**\n * Validation\n *\n * @remarks\n * Apple Pay does not require any specific validation\n */\n get isValid(): boolean {\n return true;\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from Apple Pay.\n * @returns Promise Resolve/Reject whether the shopper can use Apple Pay\n */\n public override async isAvailable(): Promise<void> {\n if (document.location.protocol !== 'https:') {\n return Promise.reject(new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'Trying to start an Apple Pay session from an insecure document'));\n }\n\n if (!this.props.onValidateMerchant && !this.props.clientKey) {\n return Promise.reject(new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'clientKey was not provided'));\n }\n\n try {\n if (window.ApplePaySession && ApplePaySession.canMakePayments() && ApplePaySession.supportsVersion(this.props.version)) {\n return Promise.resolve();\n }\n } catch (error) {\n console.warn(error);\n }\n\n return Promise.reject(new AdyenCheckoutError('ERROR', 'Apple Pay is not available on this device'));\n }\n\n /**\n * Renders the Apple Pay button or nothing in the Dropin\n */\n render() {\n if (this.props.showPayButton) {\n return (\n <ApplePayButton\n i18n={this.props.i18n}\n buttonColor={this.props.buttonColor}\n buttonType={this.props.buttonType}\n onClick={e => {\n e.preventDefault();\n this.submit();\n }}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default ApplePayElement;\n"],"names":["ApplePayElement","UIElement","static","TxVariants","applepay","defaultProps","constructor","checkout","props","super","this","startSession","bind","submit","validateMerchant","collectOrderTrackingDetailsIfNeeded","handleAuthorization","formatProps","version","resolveSupportedVersion","supportedNetworks","brands","length","mapBrands","configuration","totalPriceLabel","merchantName","formatData","applePayToken","billingAddress","deliveryAddress","state","paymentMethod","type","isInstantPayment","submitAnalytics","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","onValidateMerchant","onPaymentMethodSelected","onShippingMethodSelected","onShippingContactSelected","paymentRequest","preparePaymentRequest","companyName","countryCode","core","options","session","ApplePayService","onError","error","handleError","AdyenCheckoutError","cause","onCancel","event","onPaymentAuthorized","resolve","reject","formatApplePayContactToAdyenAddressFormat","payment","billingContact","shippingContact","setState","btoa","JSON","stringify","token","paymentData","authorizedEvent","then","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","paymentResponse","orderDetails","status","ApplePaySession","STATUS_SUCCESS","handleResponse","catch","errors","applePayError","STATUS_FAILURE","Array","isArray","undefined","responseWithError","handleFailedResult","Promise","onClick","begin","onAuthorized","data","onOrderTrackingRequest","hostname","domainName","window","location","clientKey","loadingContext","initiative","merchantId","path","APPLEPAY_SESSION_ENDPOINT","request","displayName","merchantIdentifier","response","httpPost","decodedData","base64","decode","parse","e","isValid","isAvailable","document","protocol","canMakePayments","supportsVersion","console","warn","render","showPayButton","h","ApplePayButton","i18n","buttonColor","buttonType","preventDefault"],"mappings":"i3BAoBA,MAAMA,UAAwBC,EAC1BC,YAAqBC,EAAWC,SAChCF,oBAAgCG,EAEhCC,WAAAA,CAAYC,EAAiBC,GACzBC,MAAMF,EAAUC,GAChBE,KAAKC,aAAeD,KAAKC,aAAaC,KAAKF,MAC3CA,KAAKG,OAASH,KAAKG,OAAOD,KAAKF,MAC/BA,KAAKI,iBAAmBJ,KAAKI,iBAAiBF,KAAKF,MACnDA,KAAKK,oCAAsCL,KAAKK,oCAAoCH,KAAKF,MACzFA,KAAKM,oBAAsBN,KAAKM,oBAAoBJ,KAAKF,KAC7D,CAKUO,WAAAA,CAAYT,GAClB,MAAMU,EAAUV,EAAMU,SAAWC,EAnBV,IAoBjBC,EAAoBZ,EAAMa,QAAQC,OAASC,EAAUf,EAAMa,QAAUb,EAAMY,kBAEjF,MAAO,IACAZ,EACHgB,cAAehB,EAAMgB,cACrBJ,oBACAF,UACAO,gBAAiBjB,EAAMiB,iBAAmBjB,EAAMgB,eAAeE,aAEvE,CAKA,UAAAC,GACI,MAAMC,cAAEA,EAAaC,eAAEA,EAAcC,gBAAEA,GAAoBpB,KAAKqB,MAEhE,MAAO,CACHC,cAAe,CACXC,KAAMjC,EAAgBiC,KACtBL,oBAEAC,GAAkB,CAAEA,qBACpBC,GAAmB,CAAEA,mBAEjC,CAEOjB,OAAS,KAERH,KAAKF,MAAM0B,kBACXxB,KAAKyB,gBAAgB,CAAEF,KAAMG,EAAwBC,OAAQC,IAE5D5B,KAAKC,cAAY,EAGlBA,YAAAA,GACJ,MAAMO,QAAEA,EAAOqB,mBAAEA,EAAkBC,wBAAEA,EAAuBC,yBAAEA,EAAwBC,0BAAEA,GAA8BhC,KAAKF,MAErHmC,EAAiBC,EAAsB,CACzCC,YAAanC,KAAKF,MAAMgB,cAAcE,aACtCoB,YAAapC,KAAKqC,KAAKC,QAAQF,eAC5BpC,KAAKF,QAGNyC,EAAU,IAAIC,EAAgBP,EAAgB,CAChDzB,UACAiC,QAAUC,IACN1C,KAAK2C,YACD,IAAIC,EAAmB,QAAS,qDAAsD,CAClFC,MAAOH,IACX,EAGRI,SAAUC,IACN/C,KAAK2C,YAAY,IAAIC,EAAmB,SAAU,wBAAyB,CAAEC,MAAOE,IAAM,EAE9FjB,0BACAC,2BACAC,4BACAH,mBAAoBA,GAAsB7B,KAAKI,iBAC/C4C,oBAAqB,CAACC,EAASC,EAAQH,KACnC,MAAM5B,EAAiBgC,EAA0CJ,EAAMK,QAAQC,gBACzEjC,EAAkB+B,EAA0CJ,EAAMK,QAAQE,iBAAiB,GAEjGtD,KAAKuD,SAAS,CACVrC,cAAesC,KAAKC,KAAKC,UAAUX,EAAMK,QAAQO,MAAMC,cACvDC,gBAAiBd,KACb5B,GAAkB,CAAEA,qBACpBC,GAAmB,CAAEA,qBAG7BpB,KAAKM,sBACAwD,KAAK9D,KAAK+D,kBACVD,KAAKE,GACLF,KAAKG,GACLH,KAAK9D,KAAKK,qCACVyD,MAAK,EAAGI,kBAAiBC,mBACtBlB,EAAQ,CACJmB,OAAQC,gBAAgBC,kBACpBH,GAAgB,CAAEA,kBAEnBD,KAEVJ,MAAKI,IACFlE,KAAKuE,eAAeL,EAAAA,IAEvBM,OAAON,IACJ,MAAMO,EAASP,GAAiBxB,OAAOgC,cAEvCxB,EAAO,CACHkB,OAAQC,gBAAgBM,eACxBF,OAAQA,EAAUG,MAAMC,QAAQJ,GAAUA,EAAS,CAACA,QAAWK,IAGnE,MAAMC,EAAwC,IACvCb,EACHxB,MAAO,CACHgC,cAAeD,IAIvBzE,KAAKgF,mBAAmBD,EAAAA,GAC5B,IAIZ,OAAO,IAAIE,SAAQ,CAAChC,EAASC,IAAWlD,KAAKF,MAAMoF,QAAQjC,EAASC,KAC/DY,MAAK,KACFvB,EAAQ4C,OAAK,IAEhBX,OAAM,KAAO,CAEd,IACR,CAQA,yBAAclE,GACV,OAAO,IAAI2E,SAAc,CAAChC,EAASC,KAC1BlD,KAAKF,MAAMsF,cACZnC,IAGJ,MAAMY,gBAAEA,EAAe1C,eAAEA,EAAcC,gBAAEA,GAAoBpB,KAAKqB,MAElErB,KAAKF,MAAMsF,aACP,CACIvB,qBACI1C,GAAkB,CAAEA,qBACpBC,GAAmB,CAAEA,oBAE7B,CAAE6B,UAASC,UAAO,IAEvBsB,OAAO9B,IAEN,MAAM2C,EAAO,CAAE3C,MAAO,CAAEgC,cAAehC,IACvC,OAAOuC,QAAQ/B,OAAOmC,EAAAA,GAE9B,CAQA,yCAAchF,CACV6D,GAEA,OAAO,IAAIe,SAA4C,CAAChC,EAASC,KAC7D,IAAKlD,KAAKF,MAAMwF,uBACZ,OAAOrC,IAGXjD,KAAKF,MAAMwF,uBAAuBrC,EAASC,EAAAA,IAE1CY,MAAKK,IACK,CACHD,qBACIC,GAAgB,CAAEA,oBAG7BK,OAAM,KACI,CAAEN,qBAErB,CAEA,sBAAc9D,CAAiB6C,EAASC,GACpC,MAAQqC,SAAUC,GAAeC,OAAOC,UAClCC,UAAEA,EAAS7E,cAAEA,EAAa8E,eAAEA,EAAcC,WAAEA,GAAe7F,KAAKF,OAChEkB,aAAEA,EAAY8E,WAAEA,GAAehF,EAE/BwB,EAAU,CAAEsD,iBAAgBG,KADrB,GAAGC,eAAuCL,KAEjDM,EAAkC,CACpCC,YAAalF,EACbwE,aACAK,aACAM,mBAAoBL,GAGxB,IACI,MAAMM,QAAiBC,EAAS/D,EAAS2D,GACnCK,EAAcC,EAAOC,OAAOJ,EAASf,MACtCiB,GAAapD,EAAO,sCAEzBD,EADgBQ,KAAKgD,MAAMH,GAE/B,CAAE,MAAOI,GACLxD,EAAO,kCACX,CACJ,CAQA,WAAIyD,GACA,OAAO,CACX,CAMA,iBAAsBC,GAClB,GAAmC,WAA/BC,SAASnB,SAASoB,SAClB,OAAO7B,QAAQ/B,OAAO,IAAIN,EAAmB,uBAAwB,mEAGzE,IAAK5C,KAAKF,MAAM+B,qBAAuB7B,KAAKF,MAAM6F,UAC9C,OAAOV,QAAQ/B,OAAO,IAAIN,EAAmB,uBAAwB,+BAGzE,IACI,GAAI6C,OAAOpB,iBAAmBA,gBAAgB0C,mBAAqB1C,gBAAgB2C,gBAAgBhH,KAAKF,MAAMU,SAC1G,OAAOyE,QAAQhC,SAEvB,CAAE,MAAOP,GACLuE,QAAQC,KAAKxE,EACjB,CAEA,OAAOuC,QAAQ/B,OAAO,IAAIN,EAAmB,QAAS,6CAC1D,CAKAuE,MAAAA,GACI,OAAInH,KAAKF,MAAMsH,cAEPC,EAACC,EAAAA,CACGC,KAAMvH,KAAKF,MAAMyH,KACjBC,YAAaxH,KAAKF,MAAM0H,YACxBC,WAAYzH,KAAKF,MAAM2H,WACvBvC,QAASwB,IACLA,EAAEgB,iBACF1H,KAAKG,QAAM,IAMpB,IACX"}
|
|
1
|
+
{"version":3,"file":"ApplePay.js","sources":["../../../../src/components/ApplePay/ApplePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport ApplePayButton from './components/ApplePayButton';\nimport ApplePayService from './ApplePayService';\nimport base64 from '../../utils/base64';\nimport defaultProps from './defaultProps';\nimport { httpPost } from '../../core/Services/http';\nimport { APPLEPAY_SESSION_ENDPOINT } from './config';\nimport { preparePaymentRequest } from './payment-request';\nimport { resolveSupportedVersion, mapBrands, formatApplePayContactToAdyenAddressFormat } from './utils';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { DecodeObject } from '../../types/global-types';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport { ANALYTICS_INSTANT_PAYMENT_BUTTON, ANALYTICS_SELECTED_STR } from '../../core/Analytics/constants';\n\nimport type { ApplePayConfiguration, ApplePayElementData, ApplePayPaymentOrderDetails, ApplePaySessionRequest } from './types';\nimport type { ICore } from '../../core/types';\nimport type { PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\n\nconst latestSupportedVersion = 14;\n\nclass ApplePayElement extends UIElement<ApplePayConfiguration> {\n public static type = TxVariants.applepay;\n protected static defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: ApplePayConfiguration) {\n super(checkout, props);\n\n const { isExpress, onShippingContactSelected, onShippingMethodSelected } = this.props;\n\n if (isExpress === false && (onShippingContactSelected || onShippingMethodSelected)) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'ApplePay - You must set \"isExpress\" flag to \"true\" in order to use \"onShippingContactSelected\" and/or \"onShippingMethodSelected\" callbacks'\n );\n }\n\n this.startSession = this.startSession.bind(this);\n this.submit = this.submit.bind(this);\n this.validateMerchant = this.validateMerchant.bind(this);\n this.collectOrderTrackingDetailsIfNeeded = this.collectOrderTrackingDetailsIfNeeded.bind(this);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n }\n\n /**\n * Formats the component props\n */\n protected override formatProps(props) {\n const version = props.version || resolveSupportedVersion(latestSupportedVersion);\n const supportedNetworks = props.brands?.length ? mapBrands(props.brands) : props.supportedNetworks;\n\n return {\n ...props,\n configuration: props.configuration,\n supportedNetworks,\n version,\n totalPriceLabel: props.totalPriceLabel || props.configuration?.merchantName\n };\n }\n\n /**\n * Formats the component data output\n */\n protected override formatData(): ApplePayElementData {\n const { applePayToken, billingAddress, deliveryAddress } = this.state;\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: ApplePayElement.type,\n applePayToken,\n ...(isExpress && { subtype: 'express' })\n },\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n public override submit = (): void => {\n // Analytics\n if (this.props.isInstantPayment) {\n this.submitAnalytics({ type: ANALYTICS_SELECTED_STR, target: ANALYTICS_INSTANT_PAYMENT_BUTTON });\n }\n void this.startSession();\n };\n\n private startSession() {\n const { version, onValidateMerchant, onPaymentMethodSelected, onShippingMethodSelected, onShippingContactSelected } = this.props;\n\n const paymentRequest = preparePaymentRequest({\n companyName: this.props.configuration.merchantName,\n countryCode: this.core.options.countryCode,\n ...this.props\n });\n\n const session = new ApplePayService(paymentRequest, {\n version,\n onError: (error: unknown) => {\n this.handleError(\n new AdyenCheckoutError('ERROR', 'ApplePay - Something went wrong on ApplePayService', {\n cause: error\n })\n );\n },\n onCancel: event => {\n this.handleError(new AdyenCheckoutError('CANCEL', 'ApplePay UI dismissed', { cause: event }));\n },\n onPaymentMethodSelected,\n onShippingMethodSelected,\n onShippingContactSelected,\n onValidateMerchant: onValidateMerchant || this.validateMerchant,\n onPaymentAuthorized: (resolve, reject, event) => {\n const billingAddress = formatApplePayContactToAdyenAddressFormat(event.payment.billingContact);\n const deliveryAddress = formatApplePayContactToAdyenAddressFormat(event.payment.shippingContact, true);\n\n this.setState({\n applePayToken: btoa(JSON.stringify(event.payment.token.paymentData)),\n authorizedEvent: event,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.collectOrderTrackingDetailsIfNeeded)\n .then(({ paymentResponse, orderDetails }) => {\n resolve({\n status: ApplePaySession.STATUS_SUCCESS,\n ...(orderDetails && { orderDetails })\n });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n const errors = paymentResponse?.error?.applePayError;\n\n reject({\n status: ApplePaySession.STATUS_FAILURE,\n errors: errors ? (Array.isArray(errors) ? errors : [errors]) : undefined\n });\n\n const responseWithError: RawPaymentResponse = {\n ...paymentResponse,\n error: {\n applePayError: errors\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n }\n });\n\n return new Promise((resolve, reject) => this.props.onClick(resolve, reject))\n .then(() => {\n session.begin();\n })\n .catch(() => ({\n // Swallow exception triggered by onClick reject\n }));\n }\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n *\n * @private\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: ApplePayJS.ApplePayError) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { applePayError: error } };\n return Promise.reject(data);\n });\n }\n\n /**\n * Verify if the 'onOrderTrackingRequest' is provided. If so, triggers the callback expecting an\n * Apple Pay order details back\n *\n * @private\n */\n private async collectOrderTrackingDetailsIfNeeded(\n paymentResponse: PaymentResponseData\n ): Promise<{ orderDetails?: ApplePayPaymentOrderDetails; paymentResponse: PaymentResponseData }> {\n return new Promise<ApplePayPaymentOrderDetails | void>((resolve, reject) => {\n if (!this.props.onOrderTrackingRequest) {\n return resolve();\n }\n\n this.props.onOrderTrackingRequest(resolve, reject);\n })\n .then(orderDetails => {\n return {\n paymentResponse,\n ...(orderDetails && { orderDetails })\n };\n })\n .catch(() => {\n return { paymentResponse };\n });\n }\n\n private async validateMerchant(resolve, reject) {\n const { hostname: domainName } = window.location;\n const { clientKey, configuration, loadingContext, initiative } = this.props;\n const { merchantName, merchantId } = configuration;\n const path = `${APPLEPAY_SESSION_ENDPOINT}?clientKey=${clientKey}`;\n const options = { loadingContext, path };\n const request: ApplePaySessionRequest = {\n displayName: merchantName,\n domainName,\n initiative,\n merchantIdentifier: merchantId\n };\n\n try {\n const response = await httpPost(options, request);\n const decodedData: DecodeObject = base64.decode(response.data);\n if (!decodedData.success) {\n reject('Could not decode Apple Pay session');\n } else {\n const session = JSON.parse(decodedData.data);\n resolve(session);\n }\n } catch (e) {\n reject('Could not get Apple Pay session');\n }\n }\n\n /**\n * Validation\n *\n * @remarks\n * Apple Pay does not require any specific validation\n */\n get isValid(): boolean {\n return true;\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from Apple Pay.\n * @returns Promise Resolve/Reject whether the shopper can use Apple Pay\n */\n public override async isAvailable(): Promise<void> {\n if (document.location.protocol !== 'https:') {\n return Promise.reject(new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'Trying to start an Apple Pay session from an insecure document'));\n }\n\n if (!this.props.onValidateMerchant && !this.props.clientKey) {\n return Promise.reject(new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'clientKey was not provided'));\n }\n\n try {\n if (window.ApplePaySession && ApplePaySession.canMakePayments() && ApplePaySession.supportsVersion(this.props.version)) {\n return Promise.resolve();\n }\n } catch (error) {\n console.warn(error);\n }\n\n return Promise.reject(new AdyenCheckoutError('ERROR', 'Apple Pay is not available on this device'));\n }\n\n /**\n * Renders the Apple Pay button or nothing in the Dropin\n */\n render() {\n if (this.props.showPayButton) {\n return (\n <ApplePayButton\n i18n={this.props.i18n}\n buttonColor={this.props.buttonColor}\n buttonType={this.props.buttonType}\n onClick={e => {\n e.preventDefault();\n this.submit();\n }}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default ApplePayElement;\n"],"names":["ApplePayElement","UIElement","static","TxVariants","applepay","defaultProps","constructor","checkout","props","super","isExpress","onShippingContactSelected","onShippingMethodSelected","this","AdyenCheckoutError","startSession","bind","submit","validateMerchant","collectOrderTrackingDetailsIfNeeded","handleAuthorization","formatProps","version","resolveSupportedVersion","supportedNetworks","brands","length","mapBrands","configuration","totalPriceLabel","merchantName","formatData","applePayToken","billingAddress","deliveryAddress","state","paymentMethod","type","subtype","isInstantPayment","submitAnalytics","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","onValidateMerchant","onPaymentMethodSelected","paymentRequest","preparePaymentRequest","companyName","countryCode","core","options","session","ApplePayService","onError","error","handleError","cause","onCancel","event","onPaymentAuthorized","resolve","reject","formatApplePayContactToAdyenAddressFormat","payment","billingContact","shippingContact","setState","btoa","JSON","stringify","token","paymentData","authorizedEvent","then","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","paymentResponse","orderDetails","status","ApplePaySession","STATUS_SUCCESS","handleResponse","catch","errors","applePayError","STATUS_FAILURE","Array","isArray","undefined","responseWithError","handleFailedResult","Promise","onClick","begin","onAuthorized","data","onOrderTrackingRequest","hostname","domainName","window","location","clientKey","loadingContext","initiative","merchantId","path","APPLEPAY_SESSION_ENDPOINT","request","displayName","merchantIdentifier","response","httpPost","decodedData","base64","decode","success","parse","e","isValid","isAvailable","document","protocol","canMakePayments","supportsVersion","console","warn","render","showPayButton","h","ApplePayButton","i18n","buttonColor","buttonType","preventDefault"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
const t={isExpress:!1,amount:{currency:"USD",value:0},totalPriceStatus:"final",initiative:"web",merchantCapabilities:["supports3DS"],supportedNetworks:["amex","discover","masterCard","visa"],buttonType:"plain",buttonColor:"black",onClick:t=>t()};export{t as default};
|
|
2
2
|
//# sourceMappingURL=defaultProps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultProps.js","sources":["../../../../src/components/ApplePay/defaultProps.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"defaultProps.js","sources":["../../../../src/components/ApplePay/defaultProps.ts"],"sourcesContent":["import { ApplePayConfiguration } from './types';\n\nconst defaultProps: ApplePayConfiguration = {\n isExpress: false,\n amount: { currency: 'USD', value: 0 },\n totalPriceStatus: 'final',\n initiative: 'web',\n merchantCapabilities: ['supports3DS'],\n supportedNetworks: ['amex', 'discover', 'masterCard', 'visa'],\n buttonType: 'plain',\n buttonColor: 'black',\n onClick: resolve => resolve()\n};\n\nexport default defaultProps;\n"],"names":["defaultProps","isExpress","amount","currency","value","totalPriceStatus","initiative","merchantCapabilities","supportedNetworks","buttonType","buttonColor","onClick","resolve"],"mappings":"AAEA,MAAMA,EAAsC,CACxCC,WAAW,EACXC,OAAQ,CAAEC,SAAU,MAAOC,MAAO,GAClCC,iBAAkB,QAClBC,WAAY,MACZC,qBAAsB,CAAC,eACvBC,kBAAmB,CAAC,OAAQ,WAAY,aAAc,QACtDC,WAAY,QACZC,YAAa,QACbC,QAASC,GAAWA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-request.js","sources":["../../../../src/components/ApplePay/payment-request.ts"],"sourcesContent":["import { getDecimalAmount } from '../../utils/amount-util';\nimport { PaymentAmount } from '../../types/global-types';\n\nconst formatAmount = (amount: PaymentAmount) => String(getDecimalAmount(amount.value, amount.currency));\n\nexport const preparePaymentRequest = (paymentRequest): ApplePayJS.ApplePayPaymentRequest => {\n const { countryCode, companyName, amount, ...props } = paymentRequest;\n const formattedAmount = formatAmount(amount);\n\n if (!countryCode) {\n console.warn('ApplePay - Make sure to set the countryCode in the AdyenCheckout configuration or in the Checkout Session creation');\n }\n\n return {\n countryCode,\n currencyCode: amount.currency,\n\n total: {\n label: props.totalPriceLabel,\n amount: formattedAmount,\n type: props.totalPriceStatus\n },\n\n lineItems: props.lineItems,\n shippingMethods: props.shippingMethods,\n shippingType: props.shippingType,\n\n
|
|
1
|
+
{"version":3,"file":"payment-request.js","sources":["../../../../src/components/ApplePay/payment-request.ts"],"sourcesContent":["import { getDecimalAmount } from '../../utils/amount-util';\nimport { PaymentAmount } from '../../types/global-types';\n\nconst formatAmount = (amount: PaymentAmount) => String(getDecimalAmount(amount.value, amount.currency));\n\nexport const preparePaymentRequest = (paymentRequest): ApplePayJS.ApplePayPaymentRequest => {\n const { countryCode, companyName, amount, ...props } = paymentRequest;\n const formattedAmount = formatAmount(amount);\n\n if (!countryCode) {\n console.warn('ApplePay - Make sure to set the countryCode in the AdyenCheckout configuration or in the Checkout Session creation');\n }\n\n return {\n countryCode,\n currencyCode: amount.currency,\n\n total: {\n label: props.totalPriceLabel,\n amount: formattedAmount,\n type: props.totalPriceStatus\n },\n\n lineItems: props.lineItems,\n shippingMethods: props.shippingMethods,\n shippingType: props.shippingType,\n\n recurringPaymentRequest: props.recurringPaymentRequest,\n\n merchantCapabilities: props.merchantCapabilities,\n supportedCountries: props.supportedCountries,\n supportedNetworks: props.supportedNetworks,\n\n requiredShippingContactFields: props.requiredShippingContactFields,\n requiredBillingContactFields: props.requiredBillingContactFields,\n\n billingContact: props.billingContact,\n shippingContact: props.shippingContact,\n\n applicationData: props.applicationData\n };\n};\n\nexport default preparePaymentRequest;\n"],"names":["preparePaymentRequest","paymentRequest","countryCode","companyName","amount","props","formattedAmount","String","getDecimalAmount","value","currency","formatAmount","console","warn","currencyCode","total","label","totalPriceLabel","type","totalPriceStatus","lineItems","shippingMethods","shippingType","recurringPaymentRequest","merchantCapabilities","supportedCountries","supportedNetworks","requiredShippingContactFields","requiredBillingContactFields","billingContact","shippingContact","applicationData"],"mappings":"8DAGA,MAEaA,EAAyBC,IAClC,MAAMC,YAAEA,EAAWC,YAAEA,EAAWC,OAAEA,KAAWC,GAAUJ,EACjDK,EAJW,CAACF,GAA0BG,OAAOC,EAAiBJ,EAAOK,MAAOL,EAAOM,WAIjEC,CAAaP,GAMrC,OAJKF,GACDU,QAAQC,KAAK,sHAGV,CACHX,cACAY,aAAcV,EAAOM,SAErBK,MAAO,CACHC,MAAOX,EAAMY,gBACbb,OAAQE,EACRY,KAAMb,EAAMc,kBAGhBC,UAAWf,EAAMe,UACjBC,gBAAiBhB,EAAMgB,gBACvBC,aAAcjB,EAAMiB,aAEpBC,wBAAyBlB,EAAMkB,wBAE/BC,qBAAsBnB,EAAMmB,qBAC5BC,mBAAoBpB,EAAMoB,mBAC1BC,kBAAmBrB,EAAMqB,kBAEzBC,8BAA+BtB,EAAMsB,8BACrCC,6BAA8BvB,EAAMuB,6BAEpCC,eAAgBxB,EAAMwB,eACtBC,gBAAiBzB,EAAMyB,gBAEvBC,gBAAiB1B,EAAM0B,gBAC3B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e from"../../../internal/SocialSecurityNumberBrazil/validate.js";import{validationRules as r}from"../../../../utils/Validator/defaultRules.js";const
|
|
1
|
+
import e from"../../../internal/SocialSecurityNumberBrazil/validate.js";import{validationRules as r}from"../../../../utils/Validator/defaultRules.js";import{BOLETO_SOCIAL_SECURITY_NUMBER_INVALID as a,SF_ErrorCodes as l}from"../../../../core/Errors/constants.js";const s={socialSecurityNumber:{validate:e,errorMessage:a,modes:["blur"]},shopperEmail:r.emailRule,default:{validate:e=>!!e&&e.length>0,errorMessage:l.ERROR_MSG_INVALID_FIELD,modes:["blur"]},firstName:{validate:e=>!!e&&e.length>0,errorMessage:"firstName.invalid",modes:["blur"]},lastName:{validate:e=>!!e&&e.length>0,errorMessage:"lastName.invalid",modes:["blur"]}};export{s as boletoValidationRules};
|
|
2
2
|
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sources":["../../../../../../src/components/Boleto/components/BoletoInput/validate.ts"],"sourcesContent":["import { ValidatorRules } from '../../../../utils/Validator/types';\nimport validateSSN from '../../../internal/SocialSecurityNumberBrazil/validate';\nimport { validationRules } from '../../../../utils/Validator/defaultRules';\n\nexport const boletoValidationRules: ValidatorRules = {\n socialSecurityNumber: {\n validate: validateSSN,\n errorMessage:
|
|
1
|
+
{"version":3,"file":"validate.js","sources":["../../../../../../src/components/Boleto/components/BoletoInput/validate.ts"],"sourcesContent":["import { ValidatorRules } from '../../../../utils/Validator/types';\nimport validateSSN from '../../../internal/SocialSecurityNumberBrazil/validate';\nimport { validationRules } from '../../../../utils/Validator/defaultRules';\nimport { BOLETO_SOCIAL_SECURITY_NUMBER_INVALID, SF_ErrorCodes } from '../../../../core/Errors/constants';\n\nexport const boletoValidationRules: ValidatorRules = {\n socialSecurityNumber: {\n validate: validateSSN,\n errorMessage: BOLETO_SOCIAL_SECURITY_NUMBER_INVALID,\n modes: ['blur']\n },\n shopperEmail: validationRules.emailRule,\n default: {\n validate: value => !!value && value.length > 0,\n errorMessage: SF_ErrorCodes.ERROR_MSG_INVALID_FIELD,\n modes: ['blur']\n },\n firstName: {\n validate: value => !!value && value.length > 0,\n errorMessage: 'firstName.invalid',\n modes: ['blur']\n },\n lastName: {\n validate: value => !!value && value.length > 0,\n errorMessage: 'lastName.invalid',\n modes: ['blur']\n }\n};\n"],"names":["boletoValidationRules","socialSecurityNumber","validate","validateSSN","errorMessage","BOLETO_SOCIAL_SECURITY_NUMBER_INVALID","modes","shopperEmail","validationRules","emailRule","default","value","length","SF_ErrorCodes","ERROR_MSG_INVALID_FIELD","firstName","lastName"],"mappings":"4QAKaA,EAAwC,CACjDC,qBAAsB,CAClBC,SAAUC,EACVC,aAAcC,EACdC,MAAO,CAAC,SAEZC,aAAcC,EAAgBC,UAC9BC,QAAS,CACLR,SAAUS,KAAWA,GAASA,EAAMC,OAAS,EAC7CR,aAAcS,EAAcC,wBAC5BR,MAAO,CAAC,SAEZS,UAAW,CACPb,SAAUS,KAAWA,GAASA,EAAMC,OAAS,EAC7CR,aAAc,oBACdE,MAAO,CAAC,SAEZU,SAAU,CACNd,SAAUS,KAAWA,GAASA,EAAMC,OAAS,EAC7CR,aAAc,mBACdE,MAAO,CAAC"}
|
|
@@ -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"../../core/Context/CoreProvider.js";import s from"../../utils/browserInfo.js";import r from"../internal/SecuredFields/binLookup/triggerBinLookUp.js";import{reject as i,fieldTypeToSnakeCase as n}from"../internal/SecuredFields/utils.js";import{hasValidInstallmentsObject as a}from"./components/CardInput/utils.js";import p from"../internal/ClickToPay/services/create-clicktopay-service.js";import c from"./components/ClickToPayWrapper.js";import u from"../../core/Errors/SRPanelProvider.js";import{TxVariants as l}from"../tx-variants.js";import{UIElement as d}from"../internal/UIElement/UIElement.js";import h from"../internal/PayButton/PayButton.js";import{ANALYTICS_RENDERED_STR as m,ANALYTICS_CONFIGURED_STR as y,ANALYTICS_FOCUS_STR as f,ANALYTICS_UNFOCUS_STR as b,ANALYTICS_VALIDATION_ERROR_STR as g}from"../../core/Analytics/constants.js";import{ALL_SECURED_FIELDS as C}from"../internal/SecuredFields/lib/configuration/constants.js";import{hasOwnProperty as P}from"../../utils/hasOwnProperty.js";import S,{IMPLEMENTATION_ERROR as k}from"../../core/Errors/AdyenCheckoutError.js";
|
|
1
|
+
import{createElement as t}from"../../external/preact/dist/preact.js";import o from"./components/CardInput/CardInput.js";import e from"../../core/Context/CoreProvider.js";import s from"../../utils/browserInfo.js";import r from"../internal/SecuredFields/binLookup/triggerBinLookUp.js";import{reject as i,fieldTypeToSnakeCase as n}from"../internal/SecuredFields/utils.js";import{hasValidInstallmentsObject as a}from"./components/CardInput/utils.js";import p from"../internal/ClickToPay/services/create-clicktopay-service.js";import c from"./components/ClickToPayWrapper.js";import u from"../../core/Errors/SRPanelProvider.js";import{TxVariants as l}from"../tx-variants.js";import{UIElement as d}from"../internal/UIElement/UIElement.js";import h from"../internal/PayButton/PayButton.js";import{ANALYTICS_RENDERED_STR as m,ANALYTICS_CONFIGURED_STR as y,ANALYTICS_FOCUS_STR as f,ANALYTICS_UNFOCUS_STR as b,ANALYTICS_VALIDATION_ERROR_STR as g}from"../../core/Analytics/constants.js";import{ALL_SECURED_FIELDS as C}from"../internal/SecuredFields/lib/configuration/constants.js";import{hasOwnProperty as P}from"../../utils/hasOwnProperty.js";import S,{IMPLEMENTATION_ERROR as k}from"../../core/Errors/AdyenCheckoutError.js";import{getErrorMessageFromCode as T}from"../../core/Errors/utils.js";import{SF_ErrorCodes as B}from"../../core/Errors/constants.js";class R extends d{static type=l.scheme;clickToPayService;clickToPayRef=null;constructor(t,o){super(t,o),o&&!o._disableClickToPay&&(this.clickToPayService=p(this.props.configuration,this.props.clickToPayConfiguration,this.props.environment),this.clickToPayService?.initialize())}static defaultProps={onBinLookup:()=>{},showFormInstruction:!0,_disableClickToPay:!1};setStatus(t,o){return this.componentRef?.setStatus&&this.componentRef.setStatus(t,o),this.clickToPayRef?.setStatus&&this.clickToPayRef.setStatus(t,o),this}setClickToPayRef=t=>{this.clickToPayRef=t};formatProps(t){const o=t.session?.configuration?.enableStoreDetails??t.enableStoreDetails,e=!(0===t.amount?.value)&&o,s=t.storedPaymentMethodId||t.id,r=s&&t?.supportedShopperInteractions?.includes("Ecommerce");if(s&&!r)throw new S(k,"You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions");return{...t,holderNameRequired:!!t.hasHolderName&&t.holderNameRequired,hasCVC:!(t.brand&&"bcmc"===t.brand||t.hideCVC),billingAddressRequired:!t.storedPaymentMethodId&&t.billingAddressRequired,brand:t.brand??l.card,countryCode:t.countryCode?t.countryCode.toLowerCase():null,configuration:{...t.configuration,socialSecurityNumberMode:t.configuration?.socialSecurityNumberMode??"auto"},brandsConfiguration:t.brandsConfiguration||t.configuration?.brandsConfiguration||{},icon:t.icon||t.configuration?.icon,installmentOptions:t.session?.configuration?.installmentOptions||t.installmentOptions,enableStoreDetails:o,showStoreDetailsCheckbox:e,clickToPayConfiguration:{...t.clickToPayConfiguration,disableOtpAutoFocus:t.clickToPayConfiguration?.disableOtpAutoFocus||!1,shopperEmail:t.clickToPayConfiguration?.shopperEmail||this.core.options?.session?.shopperEmail,telephoneNumber:t.clickToPayConfiguration?.telephoneNumber||this.core.options?.session?.telephoneNumber,locale:t.clickToPayConfiguration?.locale||t.i18n?.locale?.replace("-","_")},...s&&{storedPaymentMethodId:s}}}formatData(){const t=this.state.selectedBrandValue;return{paymentMethod:{type:R.type,...this.state.data,...this.props.storedPaymentMethodId&&{storedPaymentMethodId:this.props.storedPaymentMethodId},...t&&{brand:t},...this.props.fundingSource&&{fundingSource:this.props.fundingSource}},...this.state.billingAddress&&{billingAddress:this.state.billingAddress},...this.state.socialSecurityNumber&&{socialSecurityNumber:this.state.socialSecurityNumber},...this.storePaymentMethodPayload,...a(this.state.installments)&&{installments:this.state.installments},browserInfo:this.browserInfo,origin:!!window&&window.location.origin}}updateStyles(t){return this.componentRef?.updateStyles&&this.componentRef.updateStyles(t),this}setFocusOn(t){return this.componentRef?.setFocusOn&&this.componentRef.setFocusOn(t),this}onBrand=t=>{this.props.onBrand?.(t)};processBinLookupResponse(t,o=!1){return this.componentRef?.processBinLookupResponse&&this.componentRef.processBinLookupResponse(t,o),this}handleUnsupportedCard(t){return this.componentRef?.handleUnsupportedCard&&this.componentRef.handleUnsupportedCard(t),this}handleClickToPaySubmit=t=>{this.setState({data:{...t},valid:{},errors:{},isValid:!0}),this.submit()};onBinLookup(t){if(!t.isReset){const o=i("supportedBrandsRaw").from(t);this.props.onBinLookup(o)}}submitAnalytics(t){const{type:o}=t;o!==m&&o!==y||"scheme"===this.constructor.type&&P(this.props,"supportedShopperInteractions")&&(t.isStoredPaymentMethod=!0,t.brand=this.props.brand),super.submitAnalytics(t)}onConfigSuccess=t=>{this.submitAnalytics({type:y}),this.props.onConfigSuccess?.(t)};onFocus=t=>{this.submitAnalytics({type:f,target:n(t.fieldType)}),C.includes(t.fieldType)?this.props.onFocus?.(t.event):this.props.onFocus?.(t)};onBlur=t=>{this.submitAnalytics({type:b,target:n(t.fieldType)}),C.includes(t.fieldType)?this.props.onBlur?.(t.event):this.props.onBlur?.(t)};onValidationErrorAnalytics=t=>{this.submitAnalytics({type:g,target:n(t.fieldType),validationErrorCode:t.errorCode,validationErrorMessage:T(t.errorCode,B)})};onBinValue=r(this);get storePaymentMethodPayload(){if(this.props.storedPaymentMethodId?.length>0)return{};if(0===this.props.amount?.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(){return this.props.icon??this.resources.getImage()(this.props.brand)}get brands(){const{brands:t,brandsConfiguration:o}=this.props;return t?t.map((t=>({icon:o[t]?.icon??this.props.modules.resources.getImage()(t),name:t}))):[]}get displayName(){return this.props.storedPaymentMethodId?`•••• ${this.props.lastFour}`:this.props.name||R.type}get accessibleName(){return(this.props.name||R.type)+(this.props.storedPaymentMethodId?" "+this.props.i18n.get("creditCard.storedCard.description.ariaLabel").replace("%@",this.props.lastFour):"")}get browserInfo(){return s()}payButton=o=>{const e=0===this.props.amount?.value,s=this.props.storedPaymentMethodId?.length>0;return t(h,{...o,amount:this.props.amount,secondaryAmount:this.props.secondaryAmount,label:e&&!s?this.props.i18n.get("payButton.saveDetails"):"",onClick:this.submit})};renderCardInput(e=!0){return t(o,{setComponentRef:this.setComponentRef,...this.props,...this.state,onChange:this.setState,onSubmit:this.submit,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,onValidationErrorAnalytics:this.onValidationErrorAnalytics,onConfigSuccess:this.onConfigSuccess})}render(){return t(e,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(u,{srPanel:this.props.modules.srPanel},t(c,{amount:this.props.amount,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)))))}}export{R as CardElement,R 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 CoreProvider from '../../core/Context/CoreProvider';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { BinLookupResponse, CardElementData, CardConfiguration } from './types';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CbObjOnBinLookup, CbObjOnConfigSuccess, CbObjOnFocus } from '../internal/SecuredFields/lib/types';\nimport { fieldTypeToSnakeCase, reject } from '../internal/SecuredFields/utils';\nimport { hasValidInstallmentsObject } 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 } from '../../types/global-types';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport { TxVariants } from '../tx-variants';\nimport { UIElementStatus } from '../internal/UIElement/types';\nimport UIElement from '../internal/UIElement';\nimport PayButton from '../internal/PayButton';\nimport { PayButtonProps } from '../internal/PayButton/PayButton';\nimport type { ICore } from '../../core/types';\nimport {\n ANALYTICS_FOCUS_STR,\n ANALYTICS_CONFIGURED_STR,\n ANALYTICS_UNFOCUS_STR,\n ANALYTICS_VALIDATION_ERROR_STR,\n ANALYTICS_RENDERED_STR\n} from '../../core/Analytics/constants';\nimport { ALL_SECURED_FIELDS } from '../internal/SecuredFields/lib/configuration/constants';\nimport { FieldErrorAnalyticsObject, SendAnalyticsObject } from '../../core/Analytics/types';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from '../../core/Errors/AdyenCheckoutError';\n\nexport class CardElement extends UIElement<CardConfiguration> {\n public static type = TxVariants.scheme;\n\n private readonly clickToPayService: IClickToPayService | null;\n\n /**\n * Reference to the 'ClickToPayComponent'\n */\n private clickToPayRef = null;\n\n constructor(checkout: ICore, props?: CardConfiguration) {\n super(checkout, props);\n\n if (props && !props._disableClickToPay) {\n this.clickToPayService = createClickToPayService(this.props.configuration, this.props.clickToPayConfiguration, this.props.environment);\n this.clickToPayService?.initialize();\n }\n }\n\n protected static defaultProps = {\n onBinLookup: () => {},\n showFormInstruction: true,\n _disableClickToPay: false\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, props);\n }\n return this;\n }\n\n private setClickToPayRef = ref => {\n this.clickToPayRef = ref;\n };\n\n formatProps(props: CardConfiguration) {\n const isZeroAuth = props.amount?.value === 0;\n const enableStoreDetails = isZeroAuth ? false : props.session?.configuration?.enableStoreDetails || props.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 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 // ...(props.brands && !props.groupTypes && { groupTypes: props.brands }),\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 of a session should be used before falling back to the merchant configuration\n installmentOptions: props.session?.configuration?.installmentOptions || props.installmentOptions,\n enableStoreDetails,\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 const includeStorePaymentMethod = this.props.enableStoreDetails && typeof this.state.storePaymentMethod !== 'undefined';\n\n return {\n paymentMethod: {\n type: CardElement.type,\n ...this.state.data,\n ...(this.props.storedPaymentMethodId && { storedPaymentMethodId: this.props.storedPaymentMethodId }),\n ...(cardBrand && { brand: cardBrand }),\n ...(this.props.fundingSource && { fundingSource: this.props.fundingSource })\n },\n ...(this.state.billingAddress && { billingAddress: this.state.billingAddress }),\n ...(this.state.socialSecurityNumber && { socialSecurityNumber: this.state.socialSecurityNumber }),\n ...(includeStorePaymentMethod && { storePaymentMethod: Boolean(this.state.storePaymentMethod) }),\n ...(hasValidInstallmentsObject(this.state.installments) && { installments: this.state.installments }),\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\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, 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 handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n onBinLookup(obj: CbObjOnBinLookup) {\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 protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n const { type } = analyticsObj;\n\n if (type === ANALYTICS_RENDERED_STR || type === ANALYTICS_CONFIGURED_STR) {\n // Check if it's a storedCard\n if (this.constructor['type'] === 'scheme') {\n if (hasOwnProperty(this.props, 'supportedShopperInteractions')) {\n analyticsObj.isStoredPaymentMethod = true;\n analyticsObj.brand = this.props.brand;\n }\n }\n }\n\n super.submitAnalytics(analyticsObj);\n }\n\n private onConfigSuccess = (obj: CbObjOnConfigSuccess) => {\n this.submitAnalytics({\n type: ANALYTICS_CONFIGURED_STR\n });\n\n this.props.onConfigSuccess?.(obj);\n };\n\n private onFocus = (obj: ComponentFocusObject) => {\n this.submitAnalytics({\n type: ANALYTICS_FOCUS_STR,\n target: fieldTypeToSnakeCase(obj.fieldType)\n });\n\n // Call merchant defined callback\n if (ALL_SECURED_FIELDS.includes(obj.fieldType)) {\n this.props.onFocus?.(obj.event as CbObjOnFocus);\n } else {\n this.props.onFocus?.(obj);\n }\n };\n\n private onBlur = (obj: ComponentFocusObject) => {\n this.submitAnalytics({\n type: ANALYTICS_UNFOCUS_STR,\n target: fieldTypeToSnakeCase(obj.fieldType)\n });\n\n // Call merchant defined callback\n if (ALL_SECURED_FIELDS.includes(obj.fieldType)) {\n this.props.onBlur?.(obj.event as CbObjOnFocus);\n } else {\n this.props.onBlur?.(obj);\n }\n };\n\n private onErrorAnalytics = (obj: FieldErrorAnalyticsObject) => {\n this.submitAnalytics({\n type: ANALYTICS_VALIDATION_ERROR_STR,\n target: fieldTypeToSnakeCase(obj.fieldType),\n validationErrorCode: obj.errorCode,\n validationErrorMessage: obj.errorMessage\n });\n };\n\n public onBinValue = triggerBinLookUp(this);\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(): { icon: any; name: string }[] {\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 // Override\n protected payButton = (props: PayButtonProps) => {\n const isZeroAuth = this.props.amount?.value === 0;\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n return (\n <PayButton\n {...props}\n amount={this.props.amount}\n secondaryAmount={this.props.secondaryAmount}\n label={isZeroAuth && !isStoredCard ? this.props.i18n.get('payButton.saveDetails') : ''}\n onClick={this.submit}\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 onChange={this.setState}\n onSubmit={this.submit}\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 onErrorAnalytics={this.onErrorAnalytics}\n onConfigSuccess={this.onConfigSuccess}\n />\n );\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <ClickToPayWrapper\n amount={this.props.amount}\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 </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default CardElement;\n"],"names":["CardElement","UIElement","static","TxVariants","scheme","clickToPayService","clickToPayRef","constructor","checkout","props","super","_disableClickToPay","this","createClickToPayService","configuration","clickToPayConfiguration","environment","initialize","onBinLookup","showFormInstruction","setStatus","status","componentRef","setClickToPayRef","ref","formatProps","enableStoreDetails","amount","value","session","storedCardID","storedPaymentMethodId","id","isEcommerceStoredCard","supportedShopperInteractions","includes","AdyenCheckoutError","IMPLEMENTATION_ERROR","holderNameRequired","hasHolderName","hasCVC","brand","hideCVC","billingAddressRequired","card","countryCode","toLowerCase","socialSecurityNumberMode","brandsConfiguration","icon","installmentOptions","disableOtpAutoFocus","shopperEmail","core","options","telephoneNumber","locale","i18n","replace","formatData","cardBrand","state","selectedBrandValue","includeStorePaymentMethod","storePaymentMethod","paymentMethod","type","data","fundingSource","billingAddress","socialSecurityNumber","Boolean","hasValidInstallmentsObject","installments","browserInfo","origin","window","location","updateStyles","stylesObj","setFocusOn","fieldName","onBrand","event","processBinLookupResponse","binLookupResponse","isReset","handleUnsupportedCard","errObj","handleClickToPaySubmit","payload","setState","valid","errors","isValid","submit","obj","nuObj","reject","from","submitAnalytics","analyticsObj","ANALYTICS_RENDERED_STR","ANALYTICS_CONFIGURED_STR","hasOwnProperty","isStoredPaymentMethod","onConfigSuccess","onFocus","ANALYTICS_FOCUS_STR","target","fieldTypeToSnakeCase","fieldType","ALL_SECURED_FIELDS","onBlur","ANALYTICS_UNFOCUS_STR","onErrorAnalytics","ANALYTICS_VALIDATION_ERROR_STR","validationErrorCode","errorCode","validationErrorMessage","errorMessage","onBinValue","triggerBinLookUp","resources","getImage","brands","map","modules","name","displayName","lastFour","accessibleName","get","collectBrowserInfo","payButton","isZeroAuth","isStoredCard","length","h","PayButton","secondaryAmount","label","onClick","renderCardInput","isCardPrimaryInput","CardInput","setComponentRef","onChange","onSubmit","brandsIcons","isPayButtonPrimaryVariant","render","CoreProvider","loadingContext","SRPanelProvider","srPanel","ClickToPayWrapper","isStandaloneComponent","onSetStatus","setElementStatus","onError","handleError"],"mappings":"+rCAgCO,MAAMA,UAAoBC,EAC7BC,YAAqBC,EAAWC,OAEfC,kBAKTC,cAAgB,KAExBC,WAAAA,CAAYC,EAAiBC,GACzBC,MAAMF,EAAUC,GAEZA,IAAUA,EAAME,qBAChBC,KAAKP,kBAAoBQ,EAAwBD,KAAKH,MAAMK,cAAeF,KAAKH,MAAMM,wBAAyBH,KAAKH,MAAMO,aAC1HJ,KAAKP,mBAAmBY,aAEhC,CAEAf,oBAAgC,CAC5BgB,YAAa,OACbC,qBAAqB,EACrBR,oBAAoB,GAGjBS,SAAAA,CAAUC,EAAyBZ,GAOtC,OANIG,KAAKU,cAAcF,WACnBR,KAAKU,aAAaF,UAAUC,EAAQZ,GAEpCG,KAAKN,eAAec,WACpBR,KAAKN,cAAcc,UAAUC,EAAQZ,GAElCG,IACX,CAEQW,iBAAmBC,IACvBZ,KAAKN,cAAgBkB,CAAAA,EAGzBC,WAAAA,CAAYhB,GACR,MACMiB,IADqC,IAAxBjB,EAAMkB,QAAQC,SACenB,EAAMoB,SAASf,eAAeY,oBAAsBjB,EAAMiB,oBAEpGI,EAAerB,EAAMsB,uBAAyBtB,EAAMuB,GACpDC,EAAwBH,GAAgBrB,GAAOyB,8BAA8BC,SAAS,aAG5F,GAAIL,IAAiBG,EAEjB,MAAM,IAAIG,EACNC,EACA,uGAIR,MAAO,IACA5B,EAEH6B,qBAAqB7B,EAAM8B,eAAwB9B,EAAM6B,mBAEzDE,SAAU/B,EAAOgC,OAAyB,SAAhBhC,EAAMgC,OAAqBhC,EAAMiC,SAE3DC,wBAAwBlC,EAAMsB,uBAAgCtB,EAAMkC,uBAGpEF,MAAOhC,EAAMgC,OAAStC,EAAWyC,KACjCC,YAAapC,EAAMoC,YAAcpC,EAAMoC,YAAYC,cAAgB,KAGnEhC,cAAe,IACRL,EAAMK,cACTiC,yBAA0BtC,EAAMK,eAAeiC,0BAA4B,QAE/EC,oBAAqBvC,EAAMuC,qBAAuBvC,EAAMK,eAAekC,qBAAuB,CAAC,EAC/FC,KAAMxC,EAAMwC,MAAQxC,EAAMK,eAAemC,KAEzCC,mBAAoBzC,EAAMoB,SAASf,eAAeoC,oBAAsBzC,EAAMyC,mBAC9ExB,qBAKAX,wBAAyB,IAClBN,EAAMM,wBACToC,oBAAqB1C,EAAMM,yBAAyBoC,sBAAuB,EAC3EC,aAAc3C,EAAMM,yBAAyBqC,cAAgBxC,KAAKyC,KAAKC,SAASzB,SAASuB,aACzFG,gBAAiB9C,EAAMM,yBAAyBwC,iBAAmB3C,KAAKyC,KAAKC,SAASzB,SAAS0B,gBAC/FC,OAAQ/C,EAAMM,yBAAyByC,QAAU/C,EAAMgD,MAAMD,QAAQE,QAAQ,IAAK,SAElF5B,GAAgB,CAAEC,sBAAuBD,GAErD,CAKA6B,UAAAA,GAOI,MAAMC,EAAYhD,KAAKiD,MAAMC,mBACvBC,EAA4BnD,KAAKH,MAAMiB,yBAA+D,IAAlCd,KAAKiD,MAAMG,mBAErF,MAAO,CACHC,cAAe,CACXC,KAAMlE,EAAYkE,QACftD,KAAKiD,MAAMM,QACVvD,KAAKH,MAAMsB,uBAAyB,CAAEA,sBAAuBnB,KAAKH,MAAMsB,0BACxE6B,GAAa,CAAEnB,MAAOmB,MACtBhD,KAAKH,MAAM2D,eAAiB,CAAEA,cAAexD,KAAKH,MAAM2D,mBAE5DxD,KAAKiD,MAAMQ,gBAAkB,CAAEA,eAAgBzD,KAAKiD,MAAMQ,mBAC1DzD,KAAKiD,MAAMS,sBAAwB,CAAEA,qBAAsB1D,KAAKiD,MAAMS,yBACtEP,GAA6B,CAAEC,mBAAoBO,QAAQ3D,KAAKiD,MAAMG,wBACtEQ,EAA2B5D,KAAKiD,MAAMY,eAAiB,CAAEA,aAAc7D,KAAKiD,MAAMY,cACtFC,YAAa9D,KAAK8D,YAClBC,SAAUC,QAAUA,OAAOC,SAASF,OAE5C,CAEAG,YAAAA,CAAaC,GAET,OADInE,KAAKU,cAAcwD,cAAclE,KAAKU,aAAawD,aAAaC,GAC7DnE,IACX,CAEAoE,UAAAA,CAAWC,GAEP,OADIrE,KAAKU,cAAc0D,YAAYpE,KAAKU,aAAa0D,WAAWC,GACzDrE,IACX,CAEOsE,QAAUC,IACbvE,KAAKH,MAAMyE,UAAUC,EAAAA,EAGzBC,wBAAAA,CAAyBC,EAAsCC,GAAU,GAErE,OADI1E,KAAKU,cAAc8D,0BAA0BxE,KAAKU,aAAa8D,yBAAyBC,EAAmBC,GACxG1E,IACX,CAEA2E,qBAAAA,CAAsBC,GAElB,OADI5E,KAAKU,cAAciE,uBAAuB3E,KAAKU,aAAaiE,sBAAsBC,GAC/E5E,IACX,CAEQ6E,uBAA0BC,IAC9B9E,KAAK+E,SAAS,CAAExB,KAAM,IAAKuB,GAAWE,MAAO,CAAC,EAAGC,OAAQ,CAAC,EAAGC,SAAS,IACtElF,KAAKmF,QAAM,EAGf7E,WAAAA,CAAY8E,GAER,IAAKA,EAAIV,QAAS,CACd,MAAMW,EAAQC,EAAO,sBAAsBC,KAAKH,GAChDpF,KAAKH,MAAMS,YAAY+E,EAC3B,CACJ,CAEUG,eAAAA,CAAgBC,GACtB,MAAMnC,KAAEA,GAASmC,EAEbnC,IAASoC,GAA0BpC,IAASqC,GAEX,WAA7B3F,KAAKL,YAAY,MACbiG,EAAe5F,KAAKH,MAAO,kCAC3B4F,EAAaI,uBAAwB,EACrCJ,EAAa5D,MAAQ7B,KAAKH,MAAMgC,OAK5C/B,MAAM0F,gBAAgBC,EAC1B,CAEQK,gBAAmBV,IACvBpF,KAAKwF,gBAAgB,CACjBlC,KAAMqC,IAGV3F,KAAKH,MAAMiG,kBAAkBV,EAAAA,EAGzBW,QAAWX,IACfpF,KAAKwF,gBAAgB,CACjBlC,KAAM0C,EACNC,OAAQC,EAAqBd,EAAIe,aAIjCC,EAAmB7E,SAAS6D,EAAIe,WAChCnG,KAAKH,MAAMkG,UAAUX,EAAIb,OAEzBvE,KAAKH,MAAMkG,UAAUX,EACzB,EAGIiB,OAAUjB,IACdpF,KAAKwF,gBAAgB,CACjBlC,KAAMgD,EACNL,OAAQC,EAAqBd,EAAIe,aAIjCC,EAAmB7E,SAAS6D,EAAIe,WAChCnG,KAAKH,MAAMwG,SAASjB,EAAIb,OAExBvE,KAAKH,MAAMwG,SAASjB,EACxB,EAGImB,iBAAoBnB,IACxBpF,KAAKwF,gBAAgB,CACjBlC,KAAMkD,EACNP,OAAQC,EAAqBd,EAAIe,WACjCM,oBAAqBrB,EAAIsB,UACzBC,uBAAwBvB,EAAIwB,cAChC,EAGGC,WAAaC,EAAiB9G,MAErC,WAAIkF,GACA,QAASlF,KAAKiD,MAAMiC,OACxB,CAEA,QAAI7C,GACA,OAAOrC,KAAKH,MAAMwC,MAAQrC,KAAK+G,UAAUC,UAAfhH,CAA0BA,KAAKH,MAAMgC,MACnE,CAEA,UAAIoF,GACA,MAAMA,OAAEA,EAAM7E,oBAAEA,GAAwBpC,KAAKH,MAC7C,OAAIoH,EACOA,EAAOC,KAAIrF,IAEP,CAAEQ,KADSD,EAAoBP,IAAQQ,MAAQrC,KAAKH,MAAMsH,QAAQJ,UAAUC,UAA7BhH,CAAwC6B,GACpEuF,KAAMvF,MAIjC,EACX,CAEA,eAAIwF,GACA,OAAIrH,KAAKH,MAAMsB,sBACJ,QAAQnB,KAAKH,MAAMyH,WAGvBtH,KAAKH,MAAMuH,MAAQhI,EAAYkE,IAC1C,CAEA,kBAAIiE,GAEA,OACKvH,KAAKH,MAAMuH,MAAQhI,EAAYkE,OAC/BtD,KAAKH,MAAMsB,sBACN,IAAMnB,KAAKH,MAAMgD,KAAK2E,IAAI,+CAA+C1E,QAAQ,KAAM9C,KAAKH,MAAMyH,UAClG,GAEd,CAEA,eAAIxD,GACA,OAAO2D,GACX,CAEUC,UAAa7H,IACnB,MAAM8H,EAA0C,IAA7B3H,KAAKH,MAAMkB,QAAQC,MAChC4G,EAAe5H,KAAKH,MAAMsB,uBAAuB0G,OAAS,EAChE,OACIC,EAACC,EAAAA,IACOlI,EACJkB,OAAQf,KAAKH,MAAMkB,OACnBiH,gBAAiBhI,KAAKH,MAAMmI,gBAC5BC,MAAON,IAAeC,EAAe5H,KAAKH,MAAMgD,KAAK2E,IAAI,yBAA2B,GACpFU,QAASlI,KAAKmF,UAKlBgD,eAAAA,CAAgBC,GAAqB,GACzC,OACIN,EAACO,EAAAA,CACGC,gBAAiBtI,KAAKsI,mBAClBtI,KAAKH,SACLG,KAAKiD,MACTsF,SAAUvI,KAAK+E,SACfyD,SAAUxI,KAAKmF,OACfuC,UAAW1H,KAAK0H,UAChBpD,QAAStE,KAAKsE,QACduC,WAAY7G,KAAK6G,WACjBhF,MAAO7B,KAAKH,MAAMgC,MAClB4G,YAAazI,KAAKiH,OAClByB,0BAA2BN,EAC3BrB,UAAW/G,KAAK+G,UAChBhB,QAAS/F,KAAK+F,QACdM,OAAQrG,KAAKqG,OACbE,iBAAkBvG,KAAKuG,iBACvBT,gBAAiB9F,KAAK8F,iBAGlC,CAEA6C,MAAAA,GACI,OACIb,EAACc,EAAAA,CAAa/F,KAAM7C,KAAKH,MAAMgD,KAAMgG,eAAgB7I,KAAKH,MAAMgJ,eAAgB9B,UAAW/G,KAAK+G,WAC5Fe,EAACgB,EAAAA,CAAgBC,QAAS/I,KAAKH,MAAMsH,QAAQ4B,SACzCjB,EAACkB,EAAAA,CACGjI,OAAQf,KAAKH,MAAMkB,OACnBb,cAAeF,KAAKH,MAAMM,wBAC1BV,kBAAmBO,KAAKP,kBACxBwJ,uBAAuB,EACvBtI,iBAAkBX,KAAKW,iBACvBuI,YAAalJ,KAAKmJ,iBAClBX,SAAUxI,KAAK6E,uBACfuE,QAASpJ,KAAKqJ,cAEbjB,GAAsBpI,KAAKmI,gBAAgBC,MAKhE"}
|
|
1
|
+
{"version":3,"file":"Card.js","sources":["../../../../src/components/Card/Card.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardInput from './components/CardInput';\nimport CoreProvider from '../../core/Context/CoreProvider';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { BinLookupResponse, CardElementData, CardConfiguration } from './types';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CbObjOnBinLookup, CbObjOnConfigSuccess, CbObjOnFocus } from '../internal/SecuredFields/lib/types';\nimport { fieldTypeToSnakeCase, reject } from '../internal/SecuredFields/utils';\nimport { hasValidInstallmentsObject } 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 } from '../../types/global-types';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport { TxVariants } from '../tx-variants';\nimport { UIElementStatus } from '../internal/UIElement/types';\nimport UIElement from '../internal/UIElement';\nimport PayButton from '../internal/PayButton';\nimport { PayButtonProps } from '../internal/PayButton/PayButton';\nimport type { ICore } from '../../core/types';\nimport {\n ANALYTICS_FOCUS_STR,\n ANALYTICS_CONFIGURED_STR,\n ANALYTICS_UNFOCUS_STR,\n ANALYTICS_VALIDATION_ERROR_STR,\n ANALYTICS_RENDERED_STR\n} from '../../core/Analytics/constants';\nimport { ALL_SECURED_FIELDS } from '../internal/SecuredFields/lib/configuration/constants';\nimport { FieldErrorAnalyticsObject, SendAnalyticsObject } from '../../core/Analytics/types';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { getErrorMessageFromCode } from '../../core/Errors/utils';\nimport { SF_ErrorCodes } from '../../core/Errors/constants';\n\nexport class CardElement extends UIElement<CardConfiguration> {\n public static type = TxVariants.scheme;\n\n private readonly clickToPayService: IClickToPayService | null;\n\n /**\n * Reference to the 'ClickToPayComponent'\n */\n private clickToPayRef = null;\n\n constructor(checkout: ICore, props?: CardConfiguration) {\n super(checkout, props);\n\n if (props && !props._disableClickToPay) {\n this.clickToPayService = createClickToPayService(this.props.configuration, this.props.clickToPayConfiguration, this.props.environment);\n this.clickToPayService?.initialize();\n }\n }\n\n protected static defaultProps = {\n onBinLookup: () => {},\n showFormInstruction: true,\n _disableClickToPay: false\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, props);\n }\n return this;\n }\n\n private setClickToPayRef = ref => {\n this.clickToPayRef = ref;\n };\n\n formatProps(props: 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 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 // ...(props.brands && !props.groupTypes && { groupTypes: props.brands }),\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 of a session should be used before falling back to the merchant configuration\n installmentOptions: props.session?.configuration?.installmentOptions || props.installmentOptions,\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 && { storedPaymentMethodId: this.props.storedPaymentMethodId }),\n ...(cardBrand && { brand: cardBrand }),\n ...(this.props.fundingSource && { fundingSource: this.props.fundingSource })\n },\n ...(this.state.billingAddress && { billingAddress: this.state.billingAddress }),\n ...(this.state.socialSecurityNumber && { socialSecurityNumber: this.state.socialSecurityNumber }),\n ...this.storePaymentMethodPayload,\n ...(hasValidInstallmentsObject(this.state.installments) && { installments: this.state.installments }),\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\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, 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 handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n onBinLookup(obj: CbObjOnBinLookup) {\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 protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n const { type } = analyticsObj;\n\n if (type === ANALYTICS_RENDERED_STR || type === ANALYTICS_CONFIGURED_STR) {\n // Check if it's a storedCard\n if (this.constructor['type'] === 'scheme') {\n if (hasOwnProperty(this.props, 'supportedShopperInteractions')) {\n analyticsObj.isStoredPaymentMethod = true;\n analyticsObj.brand = this.props.brand;\n }\n }\n }\n\n super.submitAnalytics(analyticsObj);\n }\n\n private onConfigSuccess = (obj: CbObjOnConfigSuccess) => {\n this.submitAnalytics({\n type: ANALYTICS_CONFIGURED_STR\n });\n\n this.props.onConfigSuccess?.(obj);\n };\n\n private onFocus = (obj: ComponentFocusObject) => {\n this.submitAnalytics({\n type: ANALYTICS_FOCUS_STR,\n target: fieldTypeToSnakeCase(obj.fieldType)\n });\n\n // Call merchant defined callback\n if (ALL_SECURED_FIELDS.includes(obj.fieldType)) {\n this.props.onFocus?.(obj.event as CbObjOnFocus);\n } else {\n this.props.onFocus?.(obj);\n }\n };\n\n private onBlur = (obj: ComponentFocusObject) => {\n this.submitAnalytics({\n type: ANALYTICS_UNFOCUS_STR,\n target: fieldTypeToSnakeCase(obj.fieldType)\n });\n\n // Call merchant defined callback\n if (ALL_SECURED_FIELDS.includes(obj.fieldType)) {\n this.props.onBlur?.(obj.event as CbObjOnFocus);\n } else {\n this.props.onBlur?.(obj);\n }\n };\n\n private onValidationErrorAnalytics = (obj: FieldErrorAnalyticsObject) => {\n this.submitAnalytics({\n type: ANALYTICS_VALIDATION_ERROR_STR,\n target: fieldTypeToSnakeCase(obj.fieldType),\n validationErrorCode: obj.errorCode,\n validationErrorMessage: getErrorMessageFromCode(obj.errorCode, SF_ErrorCodes)\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.enableStoreDetails && typeof this.state.storePaymentMethod !== 'undefined';\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(): { icon: any; name: string }[] {\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 // Override\n protected payButton = (props: PayButtonProps) => {\n const isZeroAuth = this.props.amount?.value === 0;\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n return (\n <PayButton\n {...props}\n amount={this.props.amount}\n secondaryAmount={this.props.secondaryAmount}\n label={isZeroAuth && !isStoredCard ? this.props.i18n.get('payButton.saveDetails') : ''}\n onClick={this.submit}\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 onChange={this.setState}\n onSubmit={this.submit}\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 onValidationErrorAnalytics={this.onValidationErrorAnalytics}\n onConfigSuccess={this.onConfigSuccess}\n />\n );\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <ClickToPayWrapper\n amount={this.props.amount}\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 </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default CardElement;\n"],"names":["CardElement","UIElement","static","TxVariants","scheme","clickToPayService","clickToPayRef","constructor","checkout","props","super","_disableClickToPay","this","createClickToPayService","configuration","clickToPayConfiguration","environment","initialize","onBinLookup","showFormInstruction","setStatus","status","componentRef","setClickToPayRef","ref","formatProps","enableStoreDetails","session","showStoreDetailsCheckbox","amount","value","storedCardID","storedPaymentMethodId","id","isEcommerceStoredCard","supportedShopperInteractions","includes","AdyenCheckoutError","IMPLEMENTATION_ERROR","holderNameRequired","hasHolderName","hasCVC","brand","hideCVC","billingAddressRequired","card","countryCode","toLowerCase","socialSecurityNumberMode","brandsConfiguration","icon","installmentOptions","disableOtpAutoFocus","shopperEmail","core","options","telephoneNumber","locale","i18n","replace","formatData","cardBrand","state","selectedBrandValue","paymentMethod","type","data","fundingSource","billingAddress","socialSecurityNumber","storePaymentMethodPayload","hasValidInstallmentsObject","installments","browserInfo","origin","window","location","updateStyles","stylesObj","setFocusOn","fieldName","onBrand","event","processBinLookupResponse","binLookupResponse","isReset","handleUnsupportedCard","errObj","handleClickToPaySubmit","payload","setState","valid","errors","isValid","submit","obj","nuObj","reject","from","submitAnalytics","analyticsObj","ANALYTICS_RENDERED_STR","ANALYTICS_CONFIGURED_STR","hasOwnProperty","isStoredPaymentMethod","onConfigSuccess","onFocus","ANALYTICS_FOCUS_STR","target","fieldTypeToSnakeCase","fieldType","ALL_SECURED_FIELDS","onBlur","ANALYTICS_UNFOCUS_STR","onValidationErrorAnalytics","ANALYTICS_VALIDATION_ERROR_STR","validationErrorCode","errorCode","validationErrorMessage","getErrorMessageFromCode","SF_ErrorCodes","onBinValue","triggerBinLookUp","length","storePaymentMethod","Boolean","resources","getImage","brands","map","modules","name","displayName","lastFour","accessibleName","get","collectBrowserInfo","payButton","isZeroAuth","isStoredCard","h","PayButton","secondaryAmount","label","onClick","renderCardInput","isCardPrimaryInput","CardInput","setComponentRef","onChange","onSubmit","brandsIcons","isPayButtonPrimaryVariant","render","CoreProvider","loadingContext","SRPanelProvider","srPanel","ClickToPayWrapper","isStandaloneComponent","onSetStatus","setElementStatus","onError","handleError"],"mappings":"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"}
|