@adyen/adyen-web 6.32.1 → 6.34.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/adyen.css +5 -4
- package/dist/cjs/adyen.css.map +1 -1
- package/dist/cjs/index.cjs +2 -2
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/index.d.cts +197 -102
- package/dist/es/adyen.css +5 -4
- package/dist/es/adyen.css.map +1 -1
- package/dist/es/components/Ach/Ach.js.map +1 -1
- package/dist/es/components/Ach/components/AchComponent.js.map +1 -1
- package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
- package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
- package/dist/es/components/AmazonPay/components/AmazonPayButton.js +1 -1
- package/dist/es/components/AmazonPay/components/AmazonPayButton.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/AmazonPay/components/ChangePaymentDetailsButton.js +1 -1
- package/dist/es/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
- package/dist/es/components/AmazonPay/components/SignOutButton.js +1 -1
- package/dist/es/components/AmazonPay/components/SignOutButton.js.map +1 -1
- package/dist/es/components/AmazonPay/defaultProps.js +1 -1
- package/dist/es/components/AmazonPay/defaultProps.js.map +1 -1
- package/dist/es/components/AmazonPay/services.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/services/ApplePayService.js +1 -1
- package/dist/es/components/ApplePay/services/ApplePayService.js.map +1 -1
- package/dist/es/components/ApplePay/utils/payment-request.js +1 -1
- package/dist/es/components/ApplePay/utils/payment-request.js.map +1 -1
- package/dist/es/components/Boleto/Boleto.js +1 -1
- package/dist/es/components/Boleto/Boleto.js.map +1 -1
- package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.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/AvailableBrands/AvailableBrands.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/BrandIcon.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/defaultProps.js +1 -1
- package/dist/es/components/Card/components/CardInput/defaultProps.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.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/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
- package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
- package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
- package/dist/es/components/CashAppPay/components/CashAppComponent.js +1 -1
- package/dist/es/components/CashAppPay/components/CashAppComponent.js.map +1 -1
- package/dist/es/components/CashAppPay/services/types.js.map +1 -1
- package/dist/es/components/Doku/Doku.js +1 -1
- package/dist/es/components/Doku/Doku.js.map +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js.map +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodBrands/utils.js +2 -0
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodBrands/utils.js.map +1 -0
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodName.js +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodName.js.map +1 -1
- package/dist/es/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
- package/dist/es/components/Iris/Iris.js +1 -1
- package/dist/es/components/Iris/Iris.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/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
- package/dist/es/components/Oxxo/Oxxo.js +1 -1
- package/dist/es/components/Oxxo/Oxxo.js.map +1 -1
- package/dist/es/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
- package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
- package/dist/es/components/PayPal/Paypal.js +1 -1
- package/dist/es/components/PayPal/Paypal.js.map +1 -1
- package/dist/es/components/PayPal/components/PaypalButtons.js +1 -1
- package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
- package/dist/es/components/PayPal/components/PaypalComponent.js +1 -1
- package/dist/es/components/PayPal/components/PaypalComponent.js.map +1 -1
- package/dist/es/components/PayPal/utils/format-paypal-order-contact-to-adyen-format.js +1 -1
- package/dist/es/components/PayPal/utils/format-paypal-order-contact-to-adyen-format.js.map +1 -1
- package/dist/es/components/PayPal/utils/get-paypal-styles.js.map +1 -1
- package/dist/es/components/PayPalFastlane/Fastlane.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/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
- package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
- package/dist/es/components/UPI/UPI.js +1 -1
- package/dist/es/components/UPI/UPI.js.map +1 -1
- package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
- package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
- package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
- package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
- package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
- package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
- package/dist/es/components/UPI/constants.js +1 -1
- package/dist/es/components/UPI/constants.js.map +1 -1
- package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
- package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
- package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
- package/dist/es/components/internal/BrandIcons/BrandIcons.js +2 -0
- package/dist/es/components/internal/BrandIcons/BrandIcons.js.map +1 -0
- package/dist/es/components/internal/BrandIcons/BrandIcons.module.scss.js +2 -0
- package/dist/es/components/internal/BrandIcons/BrandIcons.module.scss.js.map +1 -0
- package/dist/es/components/internal/{Brand/Brand.js → BrandImage/BrandImage.js} +2 -2
- package/dist/es/components/internal/BrandImage/BrandImage.js.map +1 -0
- package/dist/es/components/internal/Button/Button.js +1 -1
- package/dist/es/components/internal/Button/Button.js.map +1 -1
- package/dist/es/components/internal/ExpandButton/ExpandButton.js +1 -1
- package/dist/es/components/internal/ExpandButton/ExpandButton.js.map +1 -1
- package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/CSF.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/CSF.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/configureCallbacks.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/extensions/handleEncryption.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/utils/processErrors.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 +1 -1
- package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
- package/dist/es/components/internal/Tooltip/Tooltip.js.map +1 -1
- package/dist/es/components/internal/UIElement/UIElement.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/AnalyticsEventQueue.js +1 -1
- package/dist/es/core/Analytics/AnalyticsEventQueue.js.map +1 -1
- package/dist/es/core/Environment/constants.js +1 -1
- package/dist/es/core/Environment/constants.js.map +1 -1
- package/dist/es/core/config.js +1 -1
- package/dist/es/core/config.js.map +1 -1
- package/dist/es/core/core.js +1 -1
- package/dist/es/core/core.js.map +1 -1
- package/dist/es/external/preact/compat/dist/compat.js +1 -1
- package/dist/es/external/preact/compat/dist/compat.js.map +1 -1
- package/dist/es/external/preact/dist/preact.js +1 -1
- package/dist/es/external/preact/dist/preact.js.map +1 -1
- package/dist/es/external/preact/hooks/dist/hooks.js +1 -1
- package/dist/es/external/preact/hooks/dist/hooks.js.map +1 -1
- package/dist/es/index.d.ts +197 -102
- package/dist/es/language/Language.js +1 -1
- package/dist/es/language/Language.js.map +1 -1
- package/dist/es/language/LanguageService.js +2 -0
- package/dist/es/language/LanguageService.js.map +1 -0
- package/dist/es/language/constants.js +1 -1
- package/dist/es/language/constants.js.map +1 -1
- package/dist/es/language/utils.js +1 -1
- package/dist/es/language/utils.js.map +1 -1
- package/dist/es/packages/server/translations/en-US.json.js +2 -0
- package/dist/es/packages/server/translations/en-US.json.js.map +1 -0
- package/dist/es-legacy/adyen.css +5 -4
- package/dist/es-legacy/adyen.css.map +1 -1
- package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
- package/dist/es-legacy/components/Ach/components/AchComponent.js.map +1 -1
- package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
- package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
- package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js +1 -1
- package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.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/AmazonPay/components/ChangePaymentDetailsButton.js +1 -1
- package/dist/es-legacy/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
- package/dist/es-legacy/components/AmazonPay/components/SignOutButton.js +1 -1
- package/dist/es-legacy/components/AmazonPay/components/SignOutButton.js.map +1 -1
- package/dist/es-legacy/components/AmazonPay/defaultProps.js +1 -1
- package/dist/es-legacy/components/AmazonPay/defaultProps.js.map +1 -1
- package/dist/es-legacy/components/AmazonPay/services.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/services/ApplePayService.js +1 -1
- package/dist/es-legacy/components/ApplePay/services/ApplePayService.js.map +1 -1
- package/dist/es-legacy/components/ApplePay/utils/payment-request.js +1 -1
- package/dist/es-legacy/components/ApplePay/utils/payment-request.js.map +1 -1
- package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferVoucher.js +1 -1
- package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferVoucher.js.map +1 -1
- package/dist/es-legacy/components/Boleto/Boleto.js +1 -1
- package/dist/es-legacy/components/Boleto/Boleto.js.map +1 -1
- package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.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/AvailableBrands/AvailableBrands.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/AvailableBrands/AvailableBrands.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/BrandIcon.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/defaultProps.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/defaultProps.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/useSRPanelForCardInputErrors.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/useSRPanelForCardInputErrors.js.map +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/Card/components/ClickToPayWrapper.js +1 -1
- package/dist/es-legacy/components/Card/components/ClickToPayWrapper.js.map +1 -1
- package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
- package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
- package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
- package/dist/es-legacy/components/CashAppPay/components/CashAppComponent.js +1 -1
- package/dist/es-legacy/components/CashAppPay/components/CashAppComponent.js.map +1 -1
- package/dist/es-legacy/components/CashAppPay/services/types.js.map +1 -1
- package/dist/es-legacy/components/Doku/Doku.js +1 -1
- package/dist/es-legacy/components/Doku/Doku.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodBrands/PaymentMethodBrands.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodBrands/utils.js +2 -0
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodBrands/utils.js.map +1 -0
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodIcon.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodName.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodName.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/components/useSRPanelForGiftcardErrors.js.map +1 -1
- package/dist/es-legacy/components/GooglePay/requests.js +1 -1
- package/dist/es-legacy/components/GooglePay/requests.js.map +1 -1
- package/dist/es-legacy/components/Iris/Iris.js +1 -1
- package/dist/es-legacy/components/Iris/Iris.js.map +1 -1
- package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js +1 -1
- package/dist/es-legacy/components/Klarna/components/KlarnaContainer/KlarnaContainer.js.map +1 -1
- package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js +1 -1
- package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.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/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
- package/dist/es-legacy/components/Oxxo/Oxxo.js +1 -1
- package/dist/es-legacy/components/Oxxo/Oxxo.js.map +1 -1
- package/dist/es-legacy/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
- package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
- package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
- package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
- package/dist/es-legacy/components/PayPal/Paypal.js +1 -1
- package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
- package/dist/es-legacy/components/PayPal/components/PaypalButtons.js +1 -1
- package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
- package/dist/es-legacy/components/PayPal/components/PaypalComponent.js +1 -1
- package/dist/es-legacy/components/PayPal/components/PaypalComponent.js.map +1 -1
- package/dist/es-legacy/components/PayPal/utils/format-paypal-order-contact-to-adyen-format.js +1 -1
- package/dist/es-legacy/components/PayPal/utils/format-paypal-order-contact-to-adyen-format.js.map +1 -1
- package/dist/es-legacy/components/PayPal/utils/get-paypal-styles.js.map +1 -1
- package/dist/es-legacy/components/PayPalFastlane/Fastlane.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/PreAuthorizedDebitCanada/components/PreAuthorizedDebitCanadaComponent.js.map +1 -1
- package/dist/es-legacy/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
- package/dist/es-legacy/components/UPI/UPI.js +1 -1
- package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
- package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
- package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
- package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
- package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
- package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js +1 -1
- package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppList.js.map +1 -1
- package/dist/es-legacy/components/UPI/constants.js +1 -1
- package/dist/es-legacy/components/UPI/constants.js.map +1 -1
- package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
- package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
- package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
- package/dist/es-legacy/components/internal/BrandIcons/BrandIcons.js +2 -0
- package/dist/es-legacy/components/internal/BrandIcons/BrandIcons.js.map +1 -0
- package/dist/es-legacy/components/internal/BrandIcons/BrandIcons.module.scss.js +2 -0
- package/dist/es-legacy/components/internal/BrandIcons/BrandIcons.module.scss.js.map +1 -0
- package/dist/es-legacy/components/internal/{Brand/Brand.js → BrandImage/BrandImage.js} +2 -2
- package/dist/es-legacy/components/internal/BrandImage/BrandImage.js.map +1 -0
- package/dist/es-legacy/components/internal/Button/Button.js +1 -1
- package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
- package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js +1 -1
- package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/Checkbox/Checkbox.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/ConsentCheckbox/ConsentCheckbox.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/ConsentCheckbox/ConsentCheckbox.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/components/SelectListItem.js.map +1 -1
- package/dist/es-legacy/components/internal/IssuerList/IssuerList.js +1 -1
- package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
- package/dist/es-legacy/components/internal/Modal/Modal.js +1 -1
- package/dist/es-legacy/components/internal/Modal/Modal.js.map +1 -1
- package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js +1 -1
- package/dist/es-legacy/components/internal/OpenInvoice/useSRPanelForOpenInvoiceErrors.js.map +1 -1
- package/dist/es-legacy/components/internal/PayButton/PayButton.js +1 -1
- package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
- package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js +1 -1
- package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -1
- package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
- package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/CSF.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/CSF.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/configureCallbacks.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +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/extensions/handleEncryption.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js.map +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/securedField/AbstractSecuredField.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
- package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js +1 -1
- package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js.map +1 -1
- package/dist/es-legacy/components/internal/Tooltip/Tooltip.js.map +1 -1
- package/dist/es-legacy/components/internal/UIElement/UIElement.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/AnalyticsEventQueue.js +1 -1
- package/dist/es-legacy/core/Analytics/AnalyticsEventQueue.js.map +1 -1
- package/dist/es-legacy/core/Context/Resources.js +1 -1
- package/dist/es-legacy/core/Context/Resources.js.map +1 -1
- package/dist/es-legacy/core/Environment/constants.js +1 -1
- package/dist/es-legacy/core/Environment/constants.js.map +1 -1
- package/dist/es-legacy/core/config.js +1 -1
- package/dist/es-legacy/core/config.js.map +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/external/preact/compat/dist/compat.js +1 -1
- package/dist/es-legacy/external/preact/compat/dist/compat.js.map +1 -1
- package/dist/es-legacy/external/preact/dist/preact.js +1 -1
- package/dist/es-legacy/external/preact/dist/preact.js.map +1 -1
- package/dist/es-legacy/external/preact/hooks/dist/hooks.js +1 -1
- package/dist/es-legacy/external/preact/hooks/dist/hooks.js.map +1 -1
- package/dist/es-legacy/language/Language.js +1 -1
- package/dist/es-legacy/language/Language.js.map +1 -1
- package/dist/es-legacy/language/LanguageService.js +2 -0
- package/dist/es-legacy/language/LanguageService.js.map +1 -0
- package/dist/es-legacy/language/constants.js +1 -1
- package/dist/es-legacy/language/constants.js.map +1 -1
- package/dist/es-legacy/language/utils.js +1 -1
- package/dist/es-legacy/language/utils.js.map +1 -1
- package/dist/es-legacy/packages/server/translations/en-US.json.js +2 -0
- package/dist/es-legacy/packages/server/translations/en-US.json.js.map +1 -0
- package/package.json +8 -7
- package/styles/adyen.css +5 -4
- package/dist/es/components/internal/Brand/Brand.js.map +0 -1
- package/dist/es/core/Services/get-translations.js +0 -2
- package/dist/es/core/Services/get-translations.js.map +0 -1
- package/dist/es-legacy/components/internal/Brand/Brand.js.map +0 -1
- package/dist/es-legacy/core/Services/get-translations.js +0 -2
- package/dist/es-legacy/core/Services/get-translations.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ach.js","sources":["../../../../src/components/Ach/Ach.tsx"],"sourcesContent":["import { h
|
|
1
|
+
{"version":3,"file":"Ach.js","sources":["../../../../src/components/Ach/Ach.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport RedirectButton from '../internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport AchComponent from './components/AchComponent';\nimport defaultProps from './defaultProps';\n\nimport type { AchConfiguration } from './types';\n\nexport class AchElement extends UIElement<AchConfiguration> {\n public static readonly type = TxVariants.ach;\n\n protected static readonly defaultProps = defaultProps;\n\n public override formatData() {\n const recurringPayment = !!this.props.storedPaymentMethodId;\n\n if (recurringPayment) {\n return {\n paymentMethod: {\n type: AchElement.type,\n storedPaymentMethodId: this.props.storedPaymentMethodId\n }\n };\n }\n\n return {\n paymentMethod: {\n type: AchElement.type,\n ownerName: this.state.data.ownerName,\n accountHolderType: this.state.data.selectedAccountType?.split('.')[0],\n bankAccountType: this.state.data.selectedAccountType?.split('.')[1],\n bankLocationId: this.state.data.routingNumber,\n bankAccountNumber: this.state.data.accountNumber\n },\n ...(this.state.storePaymentMethod && { storePaymentMethod: this.state.storePaymentMethod })\n };\n }\n\n public override get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n public override get displayName(): string {\n if (this.props.storedPaymentMethodId && this.props.bankAccountNumber) {\n return `•••• ${this.props.bankAccountNumber.slice(-4)}`;\n }\n return this.props.name;\n }\n\n public override get additionalInfo(): string {\n return this.props.storedPaymentMethodId ? this.props.i18n.get('ach.savedBankAccount') : '';\n }\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.storedPaymentMethodId ? (\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n ) : (\n <AchComponent\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n hasHolderName={this.props.hasHolderName}\n placeholders={this.props.placeholders}\n data={this.props.data}\n setComponentRef={this.setComponentRef}\n enableStoreDetails={this.props.enableStoreDetails}\n />\n );\n }\n}\n\nexport default AchElement;\n"],"names":["AchElement","UIElement","formatData","_this_state_data_selectedAccountType","_this_state_data_selectedAccountType1","this","props","storedPaymentMethodId","paymentMethod","type","_object_spread","ownerName","state","data","accountHolderType","selectedAccountType","split","bankAccountType","bankLocationId","routingNumber","bankAccountNumber","accountNumber","storePaymentMethod","isValid","displayName","slice","name","additionalInfo","i18n","get","componentToRender","h","RedirectButton","showPayButton","payButton","onSubmit","submit","ref","componentRef","AchComponent","onChange","setState","hasHolderName","placeholders","setComponentRef","enableStoreDetails","_define_property","TxVariants","ach","defaultProps"],"mappings":"obASO,MAAMA,UAAmBC,EAKZC,UAAAA,OAgBeC,EACFC,EAdzB,QAF2BC,KAAKC,MAAMC,sBAG3B,CACHC,cAAe,CACXC,KAAMT,EAAWS,KACjBF,sBAAuBF,KAAKC,MAAMC,0VAKvCG,CAAA,CACHF,cAAe,CACXC,KAAMT,EAAWS,KACjBE,UAAWN,KAAKO,MAAMC,KAAKF,UAC3BG,kBAAsD,QAAnCX,EAAAE,KAAKO,MAAMC,KAAKE,+BAAhBZ,SAAAA,EAAqCa,MAAM,KAAK,GACnEC,gBAAoD,QAAnCb,EAAAC,KAAKO,MAAMC,KAAKE,+BAAhBX,SAAAA,EAAqCY,MAAM,KAAK,GACjEE,eAAgBb,KAAKO,MAAMC,KAAKM,cAChCC,kBAAmBf,KAAKO,MAAMC,KAAKQ,gBAEnChB,KAAKO,MAAMU,oBAAsB,CAAEA,mBAAoBjB,KAAKO,MAAMU,oBAE9E,CAEA,WAAoBC,GAChB,QAAIlB,KAAKC,MAAMC,yBAINF,KAAKO,MAAMW,OACxB,CAEA,eAAoBC,GAChB,OAAInB,KAAKC,MAAMC,uBAAyBF,KAAKC,MAAMc,kBACxC,QAAQf,KAAKC,MAAMc,kBAAkBK,OAAM,KAE/CpB,KAAKC,MAAMoB,IACtB,CAEA,kBAAoBC,GAChB,OAAOtB,KAAKC,MAAMC,sBAAwBF,KAAKC,MAAMsB,KAAKC,IAAI,wBAA0B,EAC5F,CAEmBC,iBAAAA,GACf,OAAOzB,KAAKC,MAAMC,sBACdwB,EAACC,EAAAA,CACGC,cAAe5B,KAAKC,MAAM2B,cAC1BP,KAAMrB,KAAKmB,YACXU,UAAW7B,KAAK6B,UAChBC,SAAU9B,KAAK+B,OACfC,IAAKA,IACDhC,KAAKiC,aAAeD,KAI5BN,EAACQ,EAAAA,CACGC,SAAUnC,KAAKoC,SACfP,UAAW7B,KAAK6B,UAChBD,cAAe5B,KAAKC,MAAM2B,cAC1BS,cAAerC,KAAKC,MAAMoC,cAC1BC,aAActC,KAAKC,MAAMqC,aACzB9B,KAAMR,KAAKC,MAAMO,KACjB+B,gBAAiBvC,KAAKuC,gBACtBC,mBAAoBxC,KAAKC,MAAMuC,oBAG3C,EAvEAC,EADS9C,EACcS,OAAOsC,EAAWC,KAEzCF,EAHS9C,EAGiBiD,eAAeA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AchComponent.js","sources":["../../../../../src/components/Ach/components/AchComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport FormInstruction from '../../internal/FormInstruction';\nimport { AccountTypeSelector } from './AccountTypeSelector';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport useForm from '../../../utils/useForm';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\nimport { achValidationRules, achFormatters } from './validate';\nimport StoreDetails from '../../internal/StoreDetails';\nimport useSRPanelForAchErrors from './useSRPanelForACHErrors';\nimport useImage from '../../../core/Context/useImage';\nimport { PREFIX } from '../../internal/Icon/constants';\n\nimport type { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport type { ComponentMethodsRef } from '../../internal/UIElement/types';\nimport type { AchPlaceholders } from '../types';\nimport type { AchStateErrors } from './useSRPanelForACHErrors';\n\ntype AchForm = {\n selectedAccountType: string;\n ownerName: string;\n routingNumber: string;\n accountNumber: string;\n accountNumberVerification: string;\n};\n\nexport type AchFormPrefillData = Partial<Pick<AchForm, 'ownerName'>>;\n\ninterface AchComponentProps {\n onChange({\n data,\n valid,\n errors,\n isValid,\n storePaymentMethod\n }: {\n data: AchForm;\n valid: { [key: string]: boolean };\n errors: { [key: string]: any };\n isValid: boolean;\n storePaymentMethod: boolean;\n }): void;\n payButton: (props: PayButtonProps) => h.JSX.Element;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n hasHolderName: boolean;\n showPayButton: boolean;\n enableStoreDetails: boolean;\n placeholders?: AchPlaceholders;\n data?: AchFormPrefillData;\n}\n\nfunction AchComponent({\n onChange,\n payButton,\n showPayButton,\n placeholders,\n data: defaultData,\n hasHolderName,\n setComponentRef,\n enableStoreDetails\n}: Readonly<AchComponentProps>) {\n const getImage = useImage();\n const schema = useMemo(\n () => ['selectedAccountType', 'routingNumber', 'accountNumber', 'accountNumberVerification', ...(hasHolderName ? ['ownerName'] : [])],\n [hasHolderName]\n );\n const { i18n } = useCoreContext();\n const [status, setStatus] = useState('ready');\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid } = useForm<AchForm>({\n schema,\n defaultData,\n rules: achValidationRules,\n formatters: achFormatters\n });\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n const isFormDisabled = status === 'loading';\n\n const isValidating = useRef(false);\n\n const achRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n isValidating.current = true;\n triggerValidation();\n }\n });\n\n useEffect(() => {\n setComponentRef(achRef.current);\n }, [setComponentRef, achRef.current]);\n\n useSRPanelForAchErrors({ errors: errors as AchStateErrors, data, isValidating });\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid, storePaymentMethod });\n }, [onChange, data, valid, errors, isValid, storePaymentMethod]);\n\n /**\n * If the \"Verify account number\" field has errors, we want to trigger\n * its validation when there is any change done to the \"Account number\" field\n */\n const onAccountNumberInput = useCallback(\n (event: h.JSX.TargetedInputEvent<HTMLInputElement>) => {\n handleChangeFor('accountNumber', 'input')(event);\n\n const hasAccountVerificationError = !!errors.accountNumberVerification;\n if (hasAccountVerificationError) {\n triggerValidation(['accountNumberVerification']);\n }\n },\n [handleChangeFor, triggerValidation, data.accountNumberVerification, errors.accountNumberVerification]\n );\n\n return (\n <div className=\"adyen-checkout__ach\">\n <FormInstruction />\n\n <Fieldset classNameModifiers={[]} label={i18n.get('ach.bankAccount.title')}>\n <AccountTypeSelector\n placeholder={placeholders?.accountTypeSelector}\n onSelect={handleChangeFor('selectedAccountType')}\n selectedAccountType={data.selectedAccountType}\n disabled={isFormDisabled}\n errorMessage={!!errors.selectedAccountType && i18n.get(errors.selectedAccountType.errorMessage)}\n />\n\n {hasHolderName && (\n <Field\n label={i18n.get('ach.accountHolderNameField.title')}\n errorMessage={!!errors.ownerName && i18n.get(errors.ownerName.errorMessage)}\n isValid={!!valid.ownerName}\n name={'ownerName'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'ownerName'}\n placeholder={placeholders?.ownerName}\n value={data.ownerName}\n onInput={handleChangeFor('ownerName', 'input')}\n onBlur={handleChangeFor('ownerName', 'blur')}\n required={true}\n />\n </Field>\n )}\n\n <Field\n label={i18n.get('ach.routingNumber.label')}\n classNameModifiers={['col-60']}\n errorMessage={!!errors.routingNumber && i18n.get(errors.routingNumber.errorMessage)}\n name={'routingNumber'}\n isValid={!!valid.routingNumber}\n >\n <InputText\n disabled={isFormDisabled}\n name={'routingNumber'}\n placeholder={placeholders?.routingNumber}\n value={data.routingNumber}\n onInput={handleChangeFor('routingNumber', 'input')}\n onBlur={handleChangeFor('routingNumber', 'blur')}\n required={true}\n maxlength={9}\n />\n </Field>\n\n <Field\n label={i18n.get('ach.bankAccountNumber.label')}\n classNameModifiers={['col-40']}\n errorMessage={!!errors.accountNumber && i18n.get(errors.accountNumber.errorMessage)}\n isValid={!!valid.accountNumber}\n name={'accountNumber'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'accountNumber'}\n placeholder={placeholders?.accountNumber}\n value={data.accountNumber}\n onInput={onAccountNumberInput}\n onBlur={handleChangeFor('accountNumber', 'blur')}\n required={true}\n maxlength={17}\n />\n </Field>\n\n <Field\n label={i18n.get('ach.bankAccountNumberVerification.label')}\n errorMessage={!!errors.accountNumberVerification && i18n.get(errors.accountNumberVerification.errorMessage)}\n name={'accountNumberVerification'}\n isValid={!!valid.accountNumberVerification}\n >\n <InputText\n disabled={isFormDisabled}\n name={'accountNumberVerification'}\n placeholder={placeholders?.accountNumberVerification}\n value={data.accountNumberVerification}\n onInput={handleChangeFor('accountNumberVerification', 'input')}\n onBlur={handleChangeFor('accountNumberVerification', 'blur')}\n required={true}\n maxlength={17}\n />\n </Field>\n </Fieldset>\n\n {enableStoreDetails && <StoreDetails disabled={isFormDisabled} onChange={setStorePaymentMethod} />}\n\n {showPayButton && payButton({ status, icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`) })}\n </div>\n );\n}\n\nexport default AchComponent;\n"],"names":["AchComponent","onChange","payButton","showPayButton","placeholders","data","defaultData","hasHolderName","setComponentRef","enableStoreDetails","getImage","useImage","schema","useMemo","i18n","useCoreContext","status","setStatus","useState","handleChangeFor","triggerValidation","errors","valid","isValid","useForm","rules","achValidationRules","formatters","achFormatters","storePaymentMethod","setStorePaymentMethod","isFormDisabled","isValidating","useRef","achRef","showValidation","current","useEffect","useSRPanelForAchErrors","onAccountNumberInput","useCallback","event","accountNumberVerification","h","div","className","FormInstruction","Fieldset","classNameModifiers","label","get","AccountTypeSelector","placeholder","accountTypeSelector","onSelect","selectedAccountType","disabled","errorMessage","Field","ownerName","name","InputText","value","onInput","onBlur","required","routingNumber","maxlength","accountNumber","StoreDetails","icon","imageFolder","PREFIX"],"mappings":"o4BAqDA,SAASA,GAAaC,SAClBA,EAAQC,UACRA,EAASC,cACTA,EAAaC,aACbA,EACAC,KAAMC,EAAWC,cACjBA,EAAaC,gBACbA,EAAeC,mBACfA,IAEA,MAAMC,EAAWC,IACXC,EAASC,EACX,IAAM,CAAC,sBAAuB,gBAAiB,gBAAiB,+BAAiCN,EAAgB,CAAC,aAAe,IACjI,CAACA,KAECO,KAAEA,GAASC,KACVC,EAAQC,GAAaC,EAAS,UAC/BC,gBAAEA,EAAeC,kBAAEA,EAAiBf,KAAEA,EAAIgB,OAAEA,EAAMC,MAAEA,EAAKC,QAAEA,GAAYC,EAAiB,CAC1FZ,SACAN,cACAmB,MAAOC,EACPC,WAAYC,KAETC,EAAoBC,GAAyBZ,GAAS,GACvDa,EAA4B,YAAXf,EAEjBgB,EAAeC,GAAO,GAEtBC,EAASD,EAA4B,CACvChB,UAAWA,EACXkB,eAAgB,KACZH,EAAaI,SAAU,EACvBhB,OAIRiB,EAAU,KACN7B,EAAgB0B,EAAOE,UACxB,CAAC5B,EAAiB0B,EAAOE,UAE5BE,EAAuB,CAAEjB,OAAQA,EAA0BhB,OAAM2B,iBAEjEK,EAAU,KACNpC,EAAS,CAAEI,OAAMiB,QAAOD,SAAQE,UAASM,wBAC1C,CAAC5B,EAAUI,EAAMiB,EAAOD,EAAQE,EAASM,IAM5C,MAAMU,EAAuBC,EACxBC,IACGtB,EAAgB,gBAAiB,QAAjCA,CAA0CsB,KAEJpB,EAAOqB,2BAEzCtB,EAAkB,CAAC,+BAG3B,CAACD,EAAiBC,EAAmBf,EAAKqC,0BAA2BrB,EAAOqB,4BAGhF,OACIC,EAACC,MAAAA,CAAIC,UAAU,uBACXF,EAACG,QAEDH,EAACI,EAAAA,CAASC,mBAAoB,GAAIC,MAAOnC,EAAKoC,IAAI,0BAC9CP,EAACQ,EAAAA,CACGC,YAAahD,aAAAA,EAAAA,EAAciD,oBAC3BC,SAAUnC,EAAgB,uBAC1BoC,oBAAqBlD,EAAKkD,oBAC1BC,SAAUzB,EACV0B,eAAgBpC,EAAOkC,qBAAuBzC,EAAKoC,IAAI7B,EAAOkC,oBAAoBE,gBAGrFlD,GACGoC,EAACe,EAAAA,CACGT,MAAOnC,EAAKoC,IAAI,oCAChBO,eAAgBpC,EAAOsC,WAAa7C,EAAKoC,IAAI7B,EAAOsC,UAAUF,cAC9DlC,UAAWD,EAAMqC,UACjBC,KAAM,aAENjB,EAACkB,EAAAA,CACGL,SAAUzB,EACV6B,KAAM,YACNR,YAAahD,aAAAA,EAAAA,EAAcuD,UAC3BG,MAAOzD,EAAKsD,UACZI,QAAS5C,EAAgB,YAAa,SACtC6C,OAAQ7C,EAAgB,YAAa,QACrC8C,UAAU,KAKtBtB,EAACe,EAAAA,CACGT,MAAOnC,EAAKoC,IAAI,2BAChBF,mBAAoB,CAAC,UACrBS,eAAgBpC,EAAO6C,eAAiBpD,EAAKoC,IAAI7B,EAAO6C,cAAcT,cACtEG,KAAM,gBACNrC,UAAWD,EAAM4C,eAEjBvB,EAACkB,EAAAA,CACGL,SAAUzB,EACV6B,KAAM,gBACNR,YAAahD,aAAAA,EAAAA,EAAc8D,cAC3BJ,MAAOzD,EAAK6D,cACZH,QAAS5C,EAAgB,gBAAiB,SAC1C6C,OAAQ7C,EAAgB,gBAAiB,QACzC8C,UAAU,EACVE,UAAW,KAInBxB,EAACe,EAAAA,CACGT,MAAOnC,EAAKoC,IAAI,+BAChBF,mBAAoB,CAAC,UACrBS,eAAgBpC,EAAO+C,eAAiBtD,EAAKoC,IAAI7B,EAAO+C,cAAcX,cACtElC,UAAWD,EAAM8C,cACjBR,KAAM,iBAENjB,EAACkB,EAAAA,CACGL,SAAUzB,EACV6B,KAAM,gBACNR,YAAahD,aAAAA,EAAAA,EAAcgE,cAC3BN,MAAOzD,EAAK+D,cACZL,QAASxB,EACTyB,OAAQ7C,EAAgB,gBAAiB,QACzC8C,UAAU,EACVE,UAAW,MAInBxB,EAACe,EAAAA,CACGT,MAAOnC,EAAKoC,IAAI,2CAChBO,eAAgBpC,EAAOqB,2BAA6B5B,EAAKoC,IAAI7B,EAAOqB,0BAA0Be,cAC9FG,KAAM,4BACNrC,UAAWD,EAAMoB,2BAEjBC,EAACkB,EAAAA,CACGL,SAAUzB,EACV6B,KAAM,4BACNR,YAAahD,aAAAA,EAAAA,EAAcsC,0BAC3BoB,MAAOzD,EAAKqC,0BACZqB,QAAS5C,EAAgB,4BAA6B,SACtD6C,OAAQ7C,EAAgB,4BAA6B,QACrD8C,UAAU,EACVE,UAAW,OAKtB1D,GAAsBkC,EAAC0B,EAAAA,CAAab,SAAUzB,EAAgB9B,SAAU6B,IAExE3B,GAAiBD,EAAU,CAAEc,SAAQsD,KAAM5D,EAAS,CAAE6D,YAAa,eAAxB7D,CAAyC,GAAG8D,WAGpG"}
|
|
1
|
+
{"version":3,"file":"AchComponent.js","sources":["../../../../../src/components/Ach/components/AchComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport FormInstruction from '../../internal/FormInstruction';\nimport { AccountTypeSelector } from './AccountTypeSelector';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport useForm from '../../../utils/useForm';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\nimport { achValidationRules, achFormatters } from './validate';\nimport StoreDetails from '../../internal/StoreDetails';\nimport useSRPanelForAchErrors from './useSRPanelForACHErrors';\nimport useImage from '../../../core/Context/useImage';\nimport { PREFIX } from '../../internal/Icon/constants';\n\nimport type { PayButtonProps } from '../../internal/PayButton/PayButton';\nimport type { ComponentMethodsRef } from '../../internal/UIElement/types';\nimport type { AchPlaceholders } from '../types';\nimport type { AchStateErrors } from './useSRPanelForACHErrors';\nimport { ValidationRuleResult } from '../../../utils/Validator/ValidationRuleResult';\n\ntype AchForm = {\n selectedAccountType: string;\n ownerName: string;\n routingNumber: string;\n accountNumber: string;\n accountNumberVerification: string;\n};\n\nexport type AchFormPrefillData = Partial<Pick<AchForm, 'ownerName'>>;\n\ninterface AchComponentProps {\n onChange({\n data,\n valid,\n errors,\n isValid,\n storePaymentMethod\n }: {\n data: AchForm;\n valid: { [key: string]: boolean };\n errors: { [key: string]: ValidationRuleResult };\n isValid: boolean;\n storePaymentMethod: boolean;\n }): void;\n payButton: (props: PayButtonProps) => h.JSX.Element;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n hasHolderName: boolean;\n showPayButton: boolean;\n enableStoreDetails: boolean;\n placeholders?: AchPlaceholders;\n data?: AchFormPrefillData;\n}\n\nfunction AchComponent({\n onChange,\n payButton,\n showPayButton,\n placeholders,\n data: defaultData,\n hasHolderName,\n setComponentRef,\n enableStoreDetails\n}: Readonly<AchComponentProps>) {\n const getImage = useImage();\n const schema = useMemo(\n () => ['selectedAccountType', 'routingNumber', 'accountNumber', 'accountNumberVerification', ...(hasHolderName ? ['ownerName'] : [])],\n [hasHolderName]\n );\n const { i18n } = useCoreContext();\n const [status, setStatus] = useState('ready');\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid } = useForm<AchForm>({\n schema,\n defaultData,\n rules: achValidationRules,\n formatters: achFormatters\n });\n const [storePaymentMethod, setStorePaymentMethod] = useState(false);\n const isFormDisabled = status === 'loading';\n\n const isValidating = useRef(false);\n\n const achRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: () => {\n isValidating.current = true;\n triggerValidation();\n }\n });\n\n useEffect(() => {\n setComponentRef(achRef.current);\n }, [setComponentRef, achRef.current]);\n\n useSRPanelForAchErrors({ errors: errors as AchStateErrors, data, isValidating });\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid, storePaymentMethod });\n }, [onChange, data, valid, errors, isValid, storePaymentMethod]);\n\n /**\n * If the \"Verify account number\" field has errors, we want to trigger\n * its validation when there is any change done to the \"Account number\" field\n */\n const onAccountNumberInput = useCallback(\n (event: h.JSX.TargetedInputEvent<HTMLInputElement>) => {\n handleChangeFor('accountNumber', 'input')(event);\n\n const hasAccountVerificationError = !!errors.accountNumberVerification;\n if (hasAccountVerificationError) {\n triggerValidation(['accountNumberVerification']);\n }\n },\n [handleChangeFor, triggerValidation, data.accountNumberVerification, errors.accountNumberVerification]\n );\n\n return (\n <div className=\"adyen-checkout__ach\">\n <FormInstruction />\n\n <Fieldset classNameModifiers={[]} label={i18n.get('ach.bankAccount.title')}>\n <AccountTypeSelector\n placeholder={placeholders?.accountTypeSelector}\n onSelect={handleChangeFor('selectedAccountType')}\n selectedAccountType={data.selectedAccountType}\n disabled={isFormDisabled}\n errorMessage={!!errors.selectedAccountType && i18n.get(errors.selectedAccountType.errorMessage)}\n />\n\n {hasHolderName && (\n <Field\n label={i18n.get('ach.accountHolderNameField.title')}\n errorMessage={!!errors.ownerName && i18n.get(errors.ownerName.errorMessage)}\n isValid={!!valid.ownerName}\n name={'ownerName'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'ownerName'}\n placeholder={placeholders?.ownerName}\n value={data.ownerName}\n onInput={handleChangeFor('ownerName', 'input')}\n onBlur={handleChangeFor('ownerName', 'blur')}\n required={true}\n />\n </Field>\n )}\n\n <Field\n label={i18n.get('ach.routingNumber.label')}\n classNameModifiers={['col-60']}\n errorMessage={!!errors.routingNumber && i18n.get(errors.routingNumber.errorMessage)}\n name={'routingNumber'}\n isValid={!!valid.routingNumber}\n >\n <InputText\n disabled={isFormDisabled}\n name={'routingNumber'}\n placeholder={placeholders?.routingNumber}\n value={data.routingNumber}\n onInput={handleChangeFor('routingNumber', 'input')}\n onBlur={handleChangeFor('routingNumber', 'blur')}\n required={true}\n maxlength={9}\n />\n </Field>\n\n <Field\n label={i18n.get('ach.bankAccountNumber.label')}\n classNameModifiers={['col-40']}\n errorMessage={!!errors.accountNumber && i18n.get(errors.accountNumber.errorMessage)}\n isValid={!!valid.accountNumber}\n name={'accountNumber'}\n >\n <InputText\n disabled={isFormDisabled}\n name={'accountNumber'}\n placeholder={placeholders?.accountNumber}\n value={data.accountNumber}\n onInput={onAccountNumberInput}\n onBlur={handleChangeFor('accountNumber', 'blur')}\n required={true}\n maxlength={17}\n />\n </Field>\n\n <Field\n label={i18n.get('ach.bankAccountNumberVerification.label')}\n errorMessage={!!errors.accountNumberVerification && i18n.get(errors.accountNumberVerification.errorMessage)}\n name={'accountNumberVerification'}\n isValid={!!valid.accountNumberVerification}\n >\n <InputText\n disabled={isFormDisabled}\n name={'accountNumberVerification'}\n placeholder={placeholders?.accountNumberVerification}\n value={data.accountNumberVerification}\n onInput={handleChangeFor('accountNumberVerification', 'input')}\n onBlur={handleChangeFor('accountNumberVerification', 'blur')}\n required={true}\n maxlength={17}\n />\n </Field>\n </Fieldset>\n\n {enableStoreDetails && <StoreDetails disabled={isFormDisabled} onChange={setStorePaymentMethod} />}\n\n {showPayButton && payButton({ status, icon: getImage({ imageFolder: 'components/' })(`${PREFIX}lock`) })}\n </div>\n );\n}\n\nexport default AchComponent;\n"],"names":["AchComponent","onChange","payButton","showPayButton","placeholders","data","defaultData","hasHolderName","setComponentRef","enableStoreDetails","getImage","useImage","schema","useMemo","i18n","useCoreContext","status","setStatus","useState","handleChangeFor","triggerValidation","errors","valid","isValid","useForm","rules","achValidationRules","formatters","achFormatters","storePaymentMethod","setStorePaymentMethod","isFormDisabled","isValidating","useRef","achRef","showValidation","current","useEffect","useSRPanelForAchErrors","onAccountNumberInput","useCallback","event","accountNumberVerification","h","div","className","FormInstruction","Fieldset","classNameModifiers","label","get","AccountTypeSelector","placeholder","accountTypeSelector","onSelect","selectedAccountType","disabled","errorMessage","Field","ownerName","name","InputText","value","onInput","onBlur","required","routingNumber","maxlength","accountNumber","StoreDetails","icon","imageFolder","PREFIX"],"mappings":"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"}
|
|
@@ -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 o from"../../utils/browserInfo.js";import n from"./components/AmazonPayComponent.js";import r from"./defaultProps.js";import{getCheckoutDetails as s}from"./services.js";import{TxVariants as i}from"../tx-variants.js";import{sanitizeResponse as c,verifyPaymentDidNotFail as p}from"../internal/UIElement/utils.js";import{AnalyticsInfoEvent as l,InfoEventType as a}from"../../core/Analytics/events/AnalyticsInfoEvent.js";function u(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function
|
|
1
|
+
import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import o from"../../utils/browserInfo.js";import n from"./components/AmazonPayComponent.js";import r from"./defaultProps.js";import{getCheckoutDetails as s}from"./services.js";import{TxVariants as i}from"../tx-variants.js";import{sanitizeResponse as c,verifyPaymentDidNotFail as p}from"../internal/UIElement/utils.js";import{AnalyticsInfoEvent as l,InfoEventType as a}from"../../core/Analytics/events/AnalyticsInfoEvent.js";function u(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function d(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),n.forEach(function(t){u(e,t,o[t])})}return e}function h(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t.push.apply(t,o)}return t}(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}class f extends t{formatProps(e){return h(d({},e),{checkoutMode:e.isDropin?"ProcessOrder":e.checkoutMode,environment:e.environment.toUpperCase(),locale:e.locale.replace("-","_"),productType:e.isDropin&&!e.addressDetails?"PayOnly":e.productType})}formatData(){const{amazonCheckoutSessionId:e}=this.props;return{paymentMethod:d({type:f.type},e&&{checkoutSessionId:e}),browserInfo:this.browserInfo}}beforeRender(e){const t=new l(d({type:a.rendered,component:this.type,configData:h(d({},e),{showPayButton:this.props.showPayButton})},(null==e?void 0:e.isExpress)&&{isExpress:e.isExpress},(null==e?void 0:e.expressPage)&&{expressPage:e.expressPage}));this.analytics.sendAnalytics(t)}getShopperDetails(){const{amazonCheckoutSessionId:e,configuration:t={},loadingContext:o,clientKey:n}=this.props;if(!e)return console.error("Could not shopper details. Missing checkoutSessionId.");const r={checkoutSessionId:e,getDeliveryAddress:!0,publicKeyId:t.publicKeyId,region:t.region};return s(o,n,r)}handleDeclineFlow(){const{amazonCheckoutSessionId:e,configuration:t={},loadingContext:o,clientKey:n}=this.props;if(!e)return console.error("Could handle the decline flow. Missing checkoutSessionId.");const r={checkoutSessionId:e,getDeclineFlowUrl:!0,publicKeyId:t.publicKeyId,region:t.region};s(o,n,r).then((e={})=>{if(!(null==e?void 0:e.declineFlowUrl))throw e;window.location.assign(e.declineFlowUrl)}).catch(e=>{this.props.onError&&this.props.onError(e,this.componentRef)})}get isValid(){return!0}get browserInfo(){return o()}submit(){var e;const t=(null===(e=this.componentRef)||void 0===e?void 0:e.getSubmitFunction())||null;if(t)return t();this.makePaymentsCall().then(c).then(p).then(this.handleResponse).catch(this.handleFailedResult)}componentToRender(){return e(n,d({setComponentRef:this.setComponentRef,showPayButton:this.props.showPayButton,onClick:this.props.onClick,onError:this.props.onError,onSignOut:this.props.onSignOut},this.props))}}u(f,"type",i.amazonpay),u(f,"defaultProps",r);export{f as AmazonPayElement,f 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 collectBrowserInfo from '../../utils/browserInfo';\nimport AmazonPayComponent from './components/AmazonPayComponent';\nimport { AmazonPayElementData, AmazonPayConfiguration, CheckoutDetailsRequest } from './types';\nimport defaultProps from './defaultProps';\nimport { getCheckoutDetails } from './services';\nimport
|
|
1
|
+
{"version":3,"file":"AmazonPay.js","sources":["../../../../src/components/AmazonPay/AmazonPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\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 { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\nimport './AmazonPay.scss';\n\nexport class AmazonPayElement extends UIElement<AmazonPayConfiguration> {\n public static readonly type = TxVariants.amazonpay;\n\n protected static readonly 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 protected override beforeRender(configSetByMerchant?: AmazonPayConfiguration) {\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.isExpress && { isExpress: configSetByMerchant.isExpress }),\n ...(configSetByMerchant?.expressPage && { expressPage: configSetByMerchant.expressPage })\n });\n\n this.analytics.sendAnalytics(event);\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 amazonComponentSubmitFunction = this.componentRef?.getSubmitFunction() || null;\n if (amazonComponentSubmitFunction) {\n return amazonComponentSubmitFunction();\n }\n this.makePaymentsCall().then(sanitizeResponse).then(verifyPaymentDidNotFail).then(this.handleResponse).catch(this.handleFailedResult);\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <AmazonPayComponent\n setComponentRef={this.setComponentRef}\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 );\n }\n}\n\nexport default AmazonPayElement;\n"],"names":["AmazonPayElement","UIElement","formatProps","props","_object_spread_props","_object_spread","checkoutMode","isDropin","environment","toUpperCase","locale","replace","productType","addressDetails","formatData","amazonCheckoutSessionId","checkoutSessionId","this","paymentMethod","type","browserInfo","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","InfoEventType","rendered","component","configData","showPayButton","isExpress","expressPage","analytics","sendAnalytics","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","_this_componentRef","amazonComponentSubmitFunction","getSubmitFunction","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","handleFailedResult","componentToRender","h","AmazonPayComponent","setComponentRef","onClick","onSignOut","_define_property","TxVariants","amazonpay","defaultProps"],"mappings":"q1CAaO,MAAMA,UAAyBC,EAKlCC,WAAAA,CAAYC,GACR,OAAOC,EAAAC,EAAA,CAAA,EACAF,GAAAA,CACHG,aAAcH,EAAMI,SAAW,eAAiBJ,EAAMG,aACtDE,YAAaL,EAAMK,YAAYC,cAC/BC,OAAQP,EAAMO,OAAOC,QAAQ,IAAK,KAClCC,YAAaT,EAAMI,WAAaJ,EAAMU,eAAiB,UAAYV,EAAMS,aAEjF,CAKAE,UAAAA,GACI,MAAQC,wBAAyBC,GAAsBC,KAAKd,MAC5D,MAAO,CACHe,cAAeb,EAAA,CACXc,KAAMnB,EAAiBmB,MACnBH,GAAqB,CAAEA,sBAE/BI,YAAaH,KAAKG,YAE1B,CAEmBC,YAAAA,CAAaC,GAC5B,MAAMC,EAAQ,IAAIC,EAAmBnB,EAAA,CACjCc,KAAMM,EAAcC,SACpBC,UAAWV,KAAKE,KAChBS,WAAYxB,EAAAC,EAAA,CAAA,EAAKiB,GAAAA,CAAqBO,cAAeZ,KAAKd,MAAM0B,kBAC5DP,aAAAA,EAAAA,EAAqBQ,YAAa,CAAEA,UAAWR,EAAoBQ,YACnER,aAAAA,EAAAA,EAAqBS,cAAe,CAAEA,YAAaT,EAAoBS,eAG/Ed,KAAKe,UAAUC,cAAcV,EACjC,CAEAW,iBAAAA,GACI,MAAMnB,wBAAEA,EAAuBoB,cAAEA,EAAgB,CAAA,EAAEC,eAAEA,EAAcC,UAAEA,GAAcpB,KAAKd,MACxF,IAAKY,EAAyB,OAAOuB,QAAQC,MAAM,yDAEnD,MAAMC,EAAkC,CACpCxB,kBAAmBD,EACnB0B,oBAAoB,EACpBC,YAAaP,EAAcO,YAC3BC,OAAQR,EAAcQ,QAG1B,OAAOC,EAAmBR,EAAgBC,EAAWG,EACzD,CAEOK,iBAAAA,GACH,MAAM9B,wBAAEA,EAAuBoB,cAAEA,EAAgB,CAAA,EAAEC,eAAEA,EAAcC,UAAEA,GAAcpB,KAAKd,MACxF,IAAKY,EAAyB,OAAOuB,QAAQC,MAAM,6DAEnD,MAAMC,EAAkC,CACpCxB,kBAAmBD,EACnB+B,mBAAmB,EACnBJ,YAAaP,EAAcO,YAC3BC,OAAQR,EAAcQ,QAG1BC,EAAmBR,EAAgBC,EAAWG,GACzCO,KAAK,CAACC,EAAW,MACd,KAAKA,aAAAA,EAAAA,EAAUC,gBAAgB,MAAMD,EACrCE,OAAOC,SAASC,OAAOJ,EAASC,kBAEnCI,MAAMd,IACCtB,KAAKd,MAAMmD,SAASrC,KAAKd,MAAMmD,QAAQf,EAAOtB,KAAKsC,eAEnE,CAEA,WAAIC,GACA,OAAO,CACX,CAEA,eAAIpC,GACA,OAAOqC,GACX,CAEOC,MAAAA,GACmC,IAAAC,EAAtC,MAAMC,GAAiD,QAAjBD,EAAA1C,KAAKsC,oBAAL,IAAAI,OAAA,EAAAA,EAAmBE,sBAAuB,KAChF,GAAID,EACA,OAAOA,IAEX3C,KAAK6C,mBAAmBf,KAAKgB,GAAkBhB,KAAKiB,GAAyBjB,KAAK9B,KAAKgD,gBAAgBZ,MAAMpC,KAAKiD,mBACtH,CAEmBC,iBAAAA,GACf,OACIC,EAACC,EAAAA,EAAAA,CACGC,gBAAiBrD,KAAKqD,gBACtBzC,cAAeZ,KAAKd,MAAM0B,cAC1B0C,QAAStD,KAAKd,MAAMoE,QACpBjB,QAASrC,KAAKd,MAAMmD,QACpBkB,UAAWvD,KAAKd,MAAMqE,WAClBvD,KAAKd,OAGrB,EAtGAsE,EADSzE,EACcmB,OAAOuD,EAAWC,WAEzCF,EAHSzE,EAGiB4E,eAAeA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as t}from"../../../external/preact/dist/preact.js";import{useState as e,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import{getAmazonSignature as r}from"../services.js";import{getPayloadJSON as n,getAmazonPaySettings as
|
|
1
|
+
import{createElement as t}from"../../../external/preact/dist/preact.js";import{useState as e,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import{getAmazonSignature as r}from"../services.js";import{getPayloadJSON as n,getAmazonPaySettings as i}from"../utils.js";import{useCoreContext as c}from"../../../core/Context/CoreProvider.js";import{useAmount as a}from"../../../core/Context/AmountProvider.js";function s(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function u(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}function l(l){const{amount:p}=a(),{loadingContext:f}=c(),{amazonRef:y,configuration:m={}}=l,[b,O]=e(null),h=n(l,p),P=i(l,p),d=()=>new Promise((t,e)=>{l.onClick(t,e)}).then(this.initCheckout).catch(t=>{l.onError&&l.onError(t,this.componentRef)});return this.initCheckout=()=>{const t={payloadJSON:JSON.stringify(h),publicKeyId:m.publicKeyId,signature:b};y.Pay.initCheckout(u(function(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),r.forEach(function(e){s(t,e,o[e])})}return t}({},P),{createCheckoutSessionConfig:t}))},o(()=>{const{clientKey:t}=l;r(f,t,h).then(t=>{if(!(null==t?void 0:t.signature))return console.error("Could not get AmazonPay signature");O(t.signature),l.showPayButton&&y.Pay.renderButton("#amazonPayButton",P).onClick(()=>{d()})}).catch(t=>{console.error(t),l.onError&&l.onError(t,this.componentRef)})},[]),l.showPayButton?t("div",{className:"adyen-checkout__amazonpay__button",id:"amazonPayButton","data-testid":"amazon-pay-button"}):null}export{l as default};
|
|
2
2
|
//# sourceMappingURL=AmazonPayButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmazonPayButton.js","sources":["../../../../../src/components/AmazonPay/components/AmazonPayButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { getAmazonSignature } from '../services';\nimport { getAmazonPaySettings, getPayloadJSON } from '../utils';\nimport { AmazonPayButtonProps, CheckoutSessionConfig, PayloadJSON } from '../types';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { useAmount } from '../../../core/Context/AmountProvider';\n\nexport default function AmazonPayButton(props: Readonly<AmazonPayButtonProps>) {\n const { amount } = useAmount();\n const { loadingContext } = useCoreContext();\n const { amazonRef, configuration = {} } = props;\n const [signature, setSignature] = useState<string>(null);\n const payloadJSON: PayloadJSON = getPayloadJSON(props, amount);\n const settings = getAmazonPaySettings(props, amount);\n\n const handleOnClick = () => {\n
|
|
1
|
+
{"version":3,"file":"AmazonPayButton.js","sources":["../../../../../src/components/AmazonPay/components/AmazonPayButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { getAmazonSignature } from '../services';\nimport { getAmazonPaySettings, getPayloadJSON } from '../utils';\nimport { AmazonPayButtonProps, CheckoutSessionConfig, PayloadJSON } from '../types';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { useAmount } from '../../../core/Context/AmountProvider';\n\nexport default function AmazonPayButton(props: Readonly<AmazonPayButtonProps>) {\n const { amount } = useAmount();\n const { loadingContext } = useCoreContext();\n const { amazonRef, configuration = {} } = props;\n const [signature, setSignature] = useState<string>(null);\n const payloadJSON: PayloadJSON = getPayloadJSON(props, amount);\n const settings = getAmazonPaySettings(props, amount);\n\n const handleOnClick = () => {\n return new Promise((resolve, reject) => void props.onClick(resolve, reject)).then(this.initCheckout).catch(error => {\n if (props.onError) props.onError(error, this.componentRef);\n });\n };\n\n const renderAmazonPayButton = (): void => {\n const amazonPayButton = amazonRef.Pay.renderButton('#amazonPayButton', settings);\n amazonPayButton.onClick(() => void handleOnClick());\n };\n\n this.initCheckout = () => {\n const checkoutSessionConfig: CheckoutSessionConfig = {\n payloadJSON: JSON.stringify(payloadJSON),\n publicKeyId: configuration.publicKeyId,\n signature\n };\n\n amazonRef.Pay.initCheckout({\n ...settings,\n createCheckoutSessionConfig: checkoutSessionConfig\n });\n };\n\n useEffect(() => {\n const { clientKey } = props;\n\n getAmazonSignature(loadingContext, clientKey, payloadJSON)\n .then(response => {\n if (!response?.signature) return console.error('Could not get AmazonPay signature');\n setSignature(response.signature);\n if (props.showPayButton) renderAmazonPayButton();\n })\n .catch(error => {\n console.error(error);\n if (props.onError) props.onError(error, this.componentRef);\n });\n }, []);\n\n if (!props.showPayButton) return null;\n return <div className=\"adyen-checkout__amazonpay__button\" id=\"amazonPayButton\" data-testid=\"amazon-pay-button\" />;\n}\n"],"names":["AmazonPayButton","props","amount","useAmount","loadingContext","useCoreContext","amazonRef","configuration","signature","setSignature","useState","payloadJSON","getPayloadJSON","settings","getAmazonPaySettings","handleOnClick","Promise","resolve","reject","onClick","then","this","initCheckout","catch","error","onError","componentRef","checkoutSessionConfig","JSON","stringify","publicKeyId","Pay","_object_spread_props","_object_spread","createCheckoutSessionConfig","useEffect","clientKey","getAmazonSignature","response","console","showPayButton","renderButton","h","div","className","id","data-testid"],"mappings":"04BAQe,SAASA,EAAgBC,GACpC,MAAMC,OAAEA,GAAWC,KACbC,eAAEA,GAAmBC,KACrBC,UAAEA,EAASC,cAAEA,EAAgB,CAAA,GAAON,GACnCO,EAAWC,GAAgBC,EAAiB,MAC7CC,EAA2BC,EAAeX,EAAOC,GACjDW,EAAWC,EAAqBb,EAAOC,GAEvCa,EAAgB,IACX,IAAIC,QAAQ,CAACC,EAASC,KAAgBjB,EAAMkB,QAAQF,EAASC,KAASE,KAAKC,KAAKC,cAAcC,MAAMC,IACnGvB,EAAMwB,SAASxB,EAAMwB,QAAQD,EAAOH,KAAKK,gBAqCrD,OA5BAL,KAAKC,aAAe,KAChB,MAAMK,EAA+C,CACjDhB,YAAaiB,KAAKC,UAAUlB,GAC5BmB,YAAavB,EAAcuB,YAC3BtB,aAGJF,EAAUyB,IAAIT,aAAaU,oUAAAC,CAAA,CAAA,EACpBpB,GAAAA,CACHqB,4BAA6BP,MAIrCQ,EAAU,KACN,MAAMC,UAAEA,GAAcnC,EAEtBoC,EAAmBjC,EAAgBgC,EAAWzB,GACzCS,KAAKkB,IACF,KAAKA,aAAAA,EAAAA,EAAU9B,WAAW,OAAO+B,QAAQf,MAAM,qCAC/Cf,EAAa6B,EAAS9B,WAClBP,EAAMuC,eAxBMlC,EAAUyB,IAAIU,aAAa,mBAAoB5B,GACvDM,QAAQ,KAAWJ,QAyB9BQ,MAAMC,IACHe,QAAQf,MAAMA,GACVvB,EAAMwB,SAASxB,EAAMwB,QAAQD,EAAOH,KAAKK,iBAEtD,IAEEzB,EAAMuC,cACJE,EAACC,MAAAA,CAAIC,UAAU,oCAAoCC,GAAG,kBAAkBC,cAAY,sBAD1D,IAErC"}
|
|
@@ -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 r from"../../internal/Spinner/Spinner.js";import{getAmazonPayUrl as a}from"../utils.js";import i from"./AmazonPayButton.js";import c from"./ChangePaymentDetailsButton.js";import s from"./OrderButton.js";import u from"./SignOutButton.js";import l from"../../../utils/Script.js";import m from"../../../core/Analytics/useAnalytics.js";function d(d){const[p,y]=e("pending"),f=o(null),g=o(null),{analytics:h}=m(),v=()=>{y("ready")},z=o({getSubmitFunction:()=>{var n,e;return(null===(n=f.current)||void 0===n?void 0:n.initCheckout)?()=>f.current.initCheckout():(null===(e=g.current)||void 0===e?void 0:e.createOrder)?()=>g.current.createOrder():null}});return t(()=>{d.setComponentRef(z.current)},[d.setComponentRef]),t(()=>{const n=a(d.configuration.region),e=new l({src:n,component:"amazonpay",analytics:h});return window.amazon?v():e.load().then(v),()=>{e.remove()}},[h]),"pending"===p?n("div",{className:"adyen-checkout__amazonpay"},n("div",{className:"adyen-checkout__amazonpay__status adyen-checkout__amazonpay__status--pending"},n(r,null))):d.showSignOutButton?n("div",{className:"adyen-checkout__amazonpay"},n(u,{amazonRef:window.amazon,onSignOut:d.onSignOut})):d.amazonCheckoutSessionId?n("div",{className:"adyen-checkout__amazonpay"},d.showOrderButton&&n(s,{amazonCheckoutSessionId:d.amazonCheckoutSessionId,chargePermissionType:d.chargePermissionType,recurringMetadata:d.recurringMetadata,clientKey:d.clientKey,onError:d.onError,publicKeyId:null===(k=d.configuration)||void 0===k?void 0:k.publicKeyId,region:null===(S=d.configuration)||void 0===S?void 0:S.region,returnUrl:d.returnUrl,ref:g}),d.showChangePaymentDetailsButton&&n(c,{amazonCheckoutSessionId:d.amazonCheckoutSessionId,amazonRef:window.amazon})):n("div",{className:"adyen-checkout__amazonpay"},n(i,{showPayButton:d.showPayButton,amazonRef:window.amazon,ref:f,buttonColor:d.buttonColor,cancelUrl:d.cancelUrl,chargePermissionType:d.chargePermissionType,onClick:d.onClick,onError:d.onError,clientKey:d.clientKey,configuration:d.configuration,currency:d.currency,deliverySpecifications:d.deliverySpecifications,design:d.design,environment:d.environment,locale:d.locale,placement:d.placement,productType:d.productType,recurringMetadata:d.recurringMetadata,returnUrl:d.returnUrl}));var k,S}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';\nimport useAnalytics from '../../../core/Analytics/useAnalytics';\n\nexport default function AmazonPayComponent(props: Readonly<AmazonPayComponentProps>) {\n const [status, setStatus] = useState('pending');\n const amazonPayButtonRef = useRef(null);\n const orderButtonRef = useRef(null);\n const { analytics } = useAnalytics();\n\n const handleLoad = () => {\n setStatus('ready');\n };\n\n
|
|
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';\nimport useAnalytics from '../../../core/Analytics/useAnalytics';\n\nexport default function AmazonPayComponent(props: Readonly<AmazonPayComponentProps>) {\n const [status, setStatus] = useState('pending');\n const amazonPayButtonRef = useRef(null);\n const orderButtonRef = useRef(null);\n const { analytics } = useAnalytics();\n\n const handleLoad = () => {\n setStatus('ready');\n };\n\n const amazonPayRef = useRef({\n getSubmitFunction: () => {\n if (amazonPayButtonRef.current?.initCheckout) return () => amazonPayButtonRef.current.initCheckout();\n if (orderButtonRef.current?.createOrder) return () => orderButtonRef.current.createOrder();\n return null;\n }\n });\n\n useEffect(() => {\n props.setComponentRef(amazonPayRef.current);\n }, [props.setComponentRef]);\n\n useEffect(() => {\n const src = getAmazonPayUrl(props.configuration.region);\n const script = new Script({\n src,\n component: 'amazonpay',\n analytics\n });\n\n if (window.amazon) {\n handleLoad();\n } else {\n void script.load().then(handleLoad);\n }\n\n return () => {\n script.remove();\n };\n }, [analytics]);\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 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\n showPayButton={props.showPayButton}\n amazonRef={window.amazon}\n ref={amazonPayButtonRef}\n buttonColor={props.buttonColor}\n cancelUrl={props.cancelUrl}\n chargePermissionType={props.chargePermissionType}\n onClick={props.onClick}\n onError={props.onError}\n clientKey={props.clientKey}\n configuration={props.configuration}\n currency={props.currency}\n deliverySpecifications={props.deliverySpecifications}\n design={props.design}\n environment={props.environment}\n locale={props.locale}\n placement={props.placement}\n productType={props.productType}\n recurringMetadata={props.recurringMetadata}\n returnUrl={props.returnUrl}\n />\n </div>\n );\n}\n"],"names":["AmazonPayComponent","props","status","setStatus","useState","amazonPayButtonRef","useRef","orderButtonRef","analytics","useAnalytics","handleLoad","amazonPayRef","getSubmitFunction","current","initCheckout","createOrder","useEffect","setComponentRef","src","getAmazonPayUrl","configuration","region","script","Script","component","window","amazon","load","then","remove","h","div","className","Spinner","showSignOutButton","SignOutButton","amazonRef","onSignOut","amazonCheckoutSessionId","showOrderButton","OrderButton","chargePermissionType","recurringMetadata","clientKey","onError","publicKeyId","returnUrl","ref","showChangePaymentDetailsButton","ChangePaymentDetailsButton","AmazonPayButton","showPayButton","buttonColor","cancelUrl","onClick","currency","deliverySpecifications","design","environment","locale","placement","productType"],"mappings":"8fAYe,SAASA,EAAmBC,GACvC,MAAOC,EAAQC,GAAaC,EAAS,WAC/BC,EAAqBC,EAAO,MAC5BC,EAAiBD,EAAO,OACxBE,UAAEA,GAAcC,IAEhBC,EAAa,KACfP,EAAU,UAGRQ,EAAeL,EAAO,CACxBM,kBAAmB,SACXP,EACAE,EADJ,OAA8B,QAA1BF,EAAAA,EAAmBQ,eAAnBR,IAAAA,OAAAA,EAAAA,EAA4BS,cAAqB,IAAMT,EAAmBQ,QAAQC,gBAC5D,QAAtBP,EAAAA,EAAeM,eAAfN,IAAAA,OAAAA,EAAAA,EAAwBQ,aAAoB,IAAMR,EAAeM,QAAQE,cACtE,QA2Bf,OAvBAC,EAAU,KACNf,EAAMgB,gBAAgBN,EAAaE,UACpC,CAACZ,EAAMgB,kBAEVD,EAAU,KACN,MAAME,EAAMC,EAAgBlB,EAAMmB,cAAcC,QAC1CC,EAAS,IAAIC,EAAO,CACtBL,MACAM,UAAW,YACXhB,cASJ,OANIiB,OAAOC,OACPhB,IAEKY,EAAOK,OAAOC,KAAKlB,GAGrB,KACHY,EAAOO,WAEZ,CAACrB,IAEW,YAAXN,EAEI4B,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACC,MAAAA,CAAIC,UAAU,gFACXF,EAACG,EAAAA,QAMbhC,EAAMiC,kBAEFJ,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACK,EAAAA,CAAcC,UAAWX,OAAOC,OAAQW,UAAWpC,EAAMoC,aAKlEpC,EAAMqC,wBAEFR,EAACC,MAAAA,CAAIC,UAAU,6BACV/B,EAAMsC,iBACHT,EAACU,EAAAA,CACGF,wBAAyBrC,EAAMqC,wBAC/BG,qBAAsBxC,EAAMwC,qBAC5BC,kBAAmBzC,EAAMyC,kBACzBC,UAAW1C,EAAM0C,UACjBC,QAAS3C,EAAM2C,QACfC,YAAgC,QAAnB5C,EAAAA,EAAMmB,qBAANnB,IAAAA,SAAAA,EAAqB4C,YAClCxB,OAA2B,QAAnBpB,EAAAA,EAAMmB,qBAANnB,IAAAA,SAAAA,EAAqBoB,OAC7ByB,UAAW7C,EAAM6C,UACjBC,IAAKxC,IAIZN,EAAM+C,gCACHlB,EAACmB,EAAAA,CAA2BX,wBAAyBrC,EAAMqC,wBAAyBF,UAAWX,OAAOC,UAOlHI,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACoB,EAAAA,CACGC,cAAelD,EAAMkD,cACrBf,UAAWX,OAAOC,OAClBqB,IAAK1C,EACL+C,YAAanD,EAAMmD,YACnBC,UAAWpD,EAAMoD,UACjBZ,qBAAsBxC,EAAMwC,qBAC5Ba,QAASrD,EAAMqD,QACfV,QAAS3C,EAAM2C,QACfD,UAAW1C,EAAM0C,UACjBvB,cAAenB,EAAMmB,cACrBmC,SAAUtD,EAAMsD,SAChBC,uBAAwBvD,EAAMuD,uBAC9BC,OAAQxD,EAAMwD,OACdC,YAAazD,EAAMyD,YACnBC,OAAQ1D,EAAM0D,OACdC,UAAW3D,EAAM2D,UACjBC,YAAa5D,EAAM4D,YACnBnB,kBAAmBzC,EAAMyC,kBACzBI,UAAW7C,EAAM6C,iBAnCI7C,EACLA,CAsChC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as
|
|
1
|
+
import{createElement as t}from"../../../external/preact/dist/preact.js";import{useEffect as e}from"../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as a}from"../../../core/Context/CoreProvider.js";function o(o){const{i18n:n}=a(),{amazonRef:s,amazonCheckoutSessionId:c}=o;return e(()=>{const t={amazonCheckoutSessionId:c,changeAction:"changeAddress"};s.Pay.bindChangeAction(".adyen-checkout__amazonpay__button--changeAddress",t)},[]),t("button",{type:"button",className:"adyen-checkout__button adyen-checkout__button--ghost adyen-checkout__amazonpay__button--changeAddress","data-testid":"amazon-pay-change-payment-details-button"},n.get("amazonpay.changePaymentDetails"))}export{o as default};
|
|
2
2
|
//# sourceMappingURL=ChangePaymentDetailsButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChangePaymentDetailsButton.js","sources":["../../../../../src/components/AmazonPay/components/ChangePaymentDetailsButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { ChangeActionOptions, ChangePaymentDetailsButtonProps } from '../types';\n\nexport default function ChangePaymentDetailsButton(props: Readonly<ChangePaymentDetailsButtonProps>) {\n const { i18n } = useCoreContext();\n const { amazonRef, amazonCheckoutSessionId } = props;\n\n useEffect(() => {\n const changeActionOptions: ChangeActionOptions = {\n amazonCheckoutSessionId,\n changeAction: 'changeAddress'\n };\n\n amazonRef.Pay.bindChangeAction('.adyen-checkout__amazonpay__button--changeAddress', changeActionOptions);\n }, []);\n\n return (\n <button
|
|
1
|
+
{"version":3,"file":"ChangePaymentDetailsButton.js","sources":["../../../../../src/components/AmazonPay/components/ChangePaymentDetailsButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect } from 'preact/hooks';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { ChangeActionOptions, ChangePaymentDetailsButtonProps } from '../types';\n\nexport default function ChangePaymentDetailsButton(props: Readonly<ChangePaymentDetailsButtonProps>) {\n const { i18n } = useCoreContext();\n const { amazonRef, amazonCheckoutSessionId } = props;\n\n useEffect(() => {\n const changeActionOptions: ChangeActionOptions = {\n amazonCheckoutSessionId,\n changeAction: 'changeAddress'\n };\n\n amazonRef.Pay.bindChangeAction('.adyen-checkout__amazonpay__button--changeAddress', changeActionOptions);\n }, []);\n\n return (\n <button\n type=\"button\"\n className=\"adyen-checkout__button adyen-checkout__button--ghost adyen-checkout__amazonpay__button--changeAddress\"\n data-testid=\"amazon-pay-change-payment-details-button\"\n >\n {i18n.get('amazonpay.changePaymentDetails')}\n </button>\n );\n}\n"],"names":["ChangePaymentDetailsButton","props","i18n","useCoreContext","amazonRef","amazonCheckoutSessionId","useEffect","changeActionOptions","changeAction","Pay","bindChangeAction","h","button","type","className","data-testid","get"],"mappings":"wNAKe,SAASA,EAA2BC,GAC/C,MAAMC,KAAEA,GAASC,KACXC,UAAEA,EAASC,wBAAEA,GAA4BJ,EAW/C,OATAK,EAAU,KACN,MAAMC,EAA2C,CAC7CF,0BACAG,aAAc,iBAGlBJ,EAAUK,IAAIC,iBAAiB,oDAAqDH,IACrF,IAGCI,EAACC,SAAAA,CACGC,KAAK,SACLC,UAAU,wGACVC,cAAY,4CAEXb,EAAKc,IAAI,kCAGtB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as t}from"../../../external/preact/dist/preact.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";function e(e){const{i18n:n}=o();return t("button",{type:"button",className:"adyen-checkout__button
|
|
1
|
+
import{createElement as t}from"../../../external/preact/dist/preact.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";function e(e){const{i18n:n}=o();return t("button",{type:"button",className:"adyen-checkout__button adyen-checkout__button--ghost adyen-checkout__amazonpay__button--signOut",onClick:()=>{new Promise((t,o)=>{e.onSignOut(t,o)}).then(()=>{e.amazonRef.Pay.signout()}).catch(console.error)}},n.get("amazonpay.signout"))}export{e as default};
|
|
2
2
|
//# sourceMappingURL=SignOutButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignOutButton.js","sources":["../../../../../src/components/AmazonPay/components/SignOutButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { SignOutButtonProps } from '../types';\n\nexport default function SignOutButton(props: Readonly<SignOutButtonProps>) {\n const { i18n } = useCoreContext();\n\n const handleClick = () => {\n
|
|
1
|
+
{"version":3,"file":"SignOutButton.js","sources":["../../../../../src/components/AmazonPay/components/SignOutButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { SignOutButtonProps } from '../types';\n\nexport default function SignOutButton(props: Readonly<SignOutButtonProps>) {\n const { i18n } = useCoreContext();\n\n const handleClick = () => {\n new Promise((resolve, reject) => void props.onSignOut(resolve, reject))\n .then(() => {\n props.amazonRef.Pay.signout();\n })\n .catch(console.error);\n };\n\n return (\n <button\n type=\"button\"\n className=\"adyen-checkout__button adyen-checkout__button--ghost adyen-checkout__amazonpay__button--signOut\"\n onClick={handleClick}\n >\n {i18n.get('amazonpay.signout')}\n </button>\n );\n}\n"],"names":["SignOutButton","props","i18n","useCoreContext","h","button","type","className","onClick","Promise","resolve","reject","onSignOut","then","amazonRef","Pay","signout","catch","console","error","get"],"mappings":"+IAIe,SAASA,EAAcC,GAClC,MAAMC,KAAEA,GAASC,IAUjB,OACIC,EAACC,SAAAA,CACGC,KAAK,SACLC,UAAU,kGACVC,QAZY,KAChB,IAAIC,QAAQ,CAACC,EAASC,KAAgBV,EAAMW,UAAUF,EAASC,KAC1DE,KAAK,KACFZ,EAAMa,UAAUC,IAAIC,YAEvBC,MAAMC,QAAQC,SASdjB,EAAKkB,IAAI,qBAGtB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const
|
|
1
|
+
const e={cancelUrl:"undefined"!=typeof window?window.location.href:"",configuration:{},environment:"TEST",locale:"en_GB",placement:"Cart",productType:"PayAndShip",returnUrl:"undefined"!=typeof window?window.location.href:"",showOrderButton:!0,showChangePaymentDetailsButton:!1,showSignOutButton:!1,onClick:e=>Promise.resolve(e()),onSignOut:e=>Promise.resolve(e()),isExpress:!1};export{e as default};
|
|
2
2
|
//# sourceMappingURL=defaultProps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultProps.js","sources":["../../../../src/components/AmazonPay/defaultProps.ts"],"sourcesContent":["import { AmazonPayConfiguration } from './types';\n\nconst defaultProps: Partial<AmazonPayConfiguration> = {\n cancelUrl: typeof window !== 'undefined' ? window.location.href : '',\n configuration: {},\n environment: 'TEST',\n locale: 'en_GB',\n placement: 'Cart',\n productType: 'PayAndShip',\n returnUrl: typeof window !== 'undefined' ? window.location.href : '',\n showOrderButton: true,\n showChangePaymentDetailsButton: false,\n showSignOutButton: false,\n onClick: resolve => resolve(),\n onSignOut: resolve => resolve(),\n isExpress: false\n};\n\nexport default defaultProps;\n"],"names":["defaultProps","cancelUrl","window","location","href","configuration","environment","locale","placement","productType","returnUrl","showOrderButton","showChangePaymentDetailsButton","showSignOutButton","onClick","resolve","onSignOut","isExpress"],"mappings":"AAEA,MAAMA,EAAgD,CAClDC,UAA6B,oBAAXC,OAAyBA,OAAOC,SAASC,KAAO,GAClEC,cAAe,CAAA,EACfC,YAAa,OACbC,OAAQ,QACRC,UAAW,OACXC,YAAa,aACbC,UAA6B,oBAAXR,OAAyBA,OAAOC,SAASC,KAAO,GAClEO,iBAAiB,EACjBC,gCAAgC,EAChCC,mBAAmB,EACnBC,QAASC,
|
|
1
|
+
{"version":3,"file":"defaultProps.js","sources":["../../../../src/components/AmazonPay/defaultProps.ts"],"sourcesContent":["import { AmazonPayConfiguration } from './types';\n\nconst defaultProps: Partial<AmazonPayConfiguration> = {\n cancelUrl: typeof window !== 'undefined' ? window.location.href : '',\n configuration: {},\n environment: 'TEST',\n locale: 'en_GB',\n placement: 'Cart',\n productType: 'PayAndShip',\n returnUrl: typeof window !== 'undefined' ? window.location.href : '',\n showOrderButton: true,\n showChangePaymentDetailsButton: false,\n showSignOutButton: false,\n onClick: resolve => Promise.resolve(resolve()),\n onSignOut: resolve => Promise.resolve(resolve()),\n isExpress: false\n};\n\nexport default defaultProps;\n"],"names":["defaultProps","cancelUrl","window","location","href","configuration","environment","locale","placement","productType","returnUrl","showOrderButton","showChangePaymentDetailsButton","showSignOutButton","onClick","resolve","Promise","onSignOut","isExpress"],"mappings":"AAEA,MAAMA,EAAgD,CAClDC,UAA6B,oBAAXC,OAAyBA,OAAOC,SAASC,KAAO,GAClEC,cAAe,CAAA,EACfC,YAAa,OACbC,OAAQ,QACRC,UAAW,OACXC,YAAa,aACbC,UAA6B,oBAAXR,OAAyBA,OAAOC,SAASC,KAAO,GAClEO,iBAAiB,EACjBC,gCAAgC,EAChCC,mBAAmB,EACnBC,QAASC,GAAWC,QAAQD,QAAQA,KACpCE,UAAWF,GAAWC,QAAQD,QAAQA,KACtCG,WAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sources":["../../../../src/components/AmazonPay/services.ts"],"sourcesContent":["import { httpPost } from '../../core/Services/http';\nimport { AMAZONPAY_SIGN_STRING_ENDPOINT, AMAZONPAY_UPDATE_CHECKOUT_SESSION_ENDPOINT, AMAZONPAY_GET_CHECKOUT_DETAILS_ENDPOINT } from './config';\nimport { CheckoutDetailsRequest, PayloadJSON, UpdateAmazonCheckoutSessionRequest } from './types';\n\n/**\n * Calls the Sign String endpoint to the PayloadJSON string.\n * @param loadingContext - Loading context to be used in the call\n * @param clientKey - Key to be used as a public token\n * @param payloadJSON - Object to be signed\n * @returns A promise containing the response of the call\n */\nexport function getAmazonSignature(loadingContext: string
|
|
1
|
+
{"version":3,"file":"services.js","sources":["../../../../src/components/AmazonPay/services.ts"],"sourcesContent":["import { httpPost } from '../../core/Services/http';\nimport { AMAZONPAY_SIGN_STRING_ENDPOINT, AMAZONPAY_UPDATE_CHECKOUT_SESSION_ENDPOINT, AMAZONPAY_GET_CHECKOUT_DETAILS_ENDPOINT } from './config';\nimport { CheckoutDetailsRequest, PayloadJSON, UpdateAmazonCheckoutSessionRequest } from './types';\n\n/**\n * Calls the Sign String endpoint to the PayloadJSON string.\n * @param loadingContext - Loading context to be used in the call\n * @param clientKey - Key to be used as a public token\n * @param payloadJSON - Object to be signed\n * @returns A promise containing the response of the call\n */\nexport function getAmazonSignature(\n loadingContext: string,\n clientKey: string,\n payloadJSON: PayloadJSON\n): Promise<{\n signature: string;\n}> {\n const options = {\n loadingContext,\n path: `${AMAZONPAY_SIGN_STRING_ENDPOINT}?clientKey=${clientKey}`\n };\n\n const request = { stringToSign: JSON.stringify(payloadJSON) };\n\n return httpPost(options, request);\n}\n\n/**\n * Calls the getCheckoutDetails details to either get the shopper details or the decline flow URL.\n * @param loadingContext - Loading context to be used in the call\n * @param clientKey - Key to be used as a public token\n * @param request - Object to sent\n * @returns A promise containing the response of the call\n */\nexport function getCheckoutDetails(\n loadingContext: string,\n clientKey: string,\n request: CheckoutDetailsRequest\n): Promise<\n {\n declineFlowUrl?: string;\n } & Record<string, unknown>\n> {\n const options = {\n loadingContext,\n path: `${AMAZONPAY_GET_CHECKOUT_DETAILS_ENDPOINT}?clientKey=${clientKey}`\n };\n\n return httpPost(options, request);\n}\n\n/**\n * Calls the Update Checkout Session endpoint to create an order.\n * @param loadingContext - Loading context to be used in the call\n * @param clientKey - Key to be used as a public token\n * @param data -\n * @returns A promise containing the response of the call\n */\nexport function updateAmazonCheckoutSession(\n loadingContext: string,\n clientKey: string,\n data: UpdateAmazonCheckoutSessionRequest\n): Promise<{\n action?: {\n type?: string;\n url?: string;\n };\n errorMessage?: string;\n}> {\n const options = {\n loadingContext,\n path: `${AMAZONPAY_UPDATE_CHECKOUT_SESSION_ENDPOINT}?clientKey=${clientKey}`\n };\n\n return httpPost(options, data);\n}\n"],"names":["getAmazonSignature","loadingContext","clientKey","payloadJSON","options","path","AMAZONPAY_SIGN_STRING_ENDPOINT","request","stringToSign","JSON","stringify","httpPost","getCheckoutDetails","AMAZONPAY_GET_CHECKOUT_DETAILS_ENDPOINT","updateAmazonCheckoutSession","data","AMAZONPAY_UPDATE_CHECKOUT_SESSION_ENDPOINT"],"mappings":"iNAWO,SAASA,EACZC,EACAC,EACAC,GAIA,MAAMC,EAAU,CACZH,iBACAI,KAAM,GAAGC,eAA4CJ,KAGnDK,EAAU,CAAEC,aAAcC,KAAKC,UAAUP,IAE/C,OAAOQ,EAASP,EAASG,EAC7B,CASO,SAASK,EACZX,EACAC,EACAK,GAWA,OAAOI,EALS,CACZV,iBACAI,KAAM,GAAGQ,eAAqDX,KAGzCK,EAC7B,CASO,SAASO,EACZb,EACAC,EACAa,GAaA,OAAOJ,EALS,CACZV,iBACAI,KAAM,GAAGW,eAAwDd,KAG5Ca,EAC7B"}
|
|
@@ -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 o from"./components/ApplePayButton.js";import
|
|
1
|
+
import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import o from"./components/ApplePayButton.js";import n from"./services/ApplePayService.js";import s from"../../utils/base64.js";import r from"./defaultProps.js";import{httpPost as i}from"../../core/Services/http.js";import{preparePaymentRequest as a}from"./utils/payment-request.js";import p from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as l}from"../tx-variants.js";import{sanitizeResponse as d,verifyPaymentDidNotFail as c}from"../internal/UIElement/utils.js";import{resolveSupportedVersion as h}from"./utils/resolve-supported-version.js";import{formatApplePayContactToAdyenAddressFormat as u}from"./utils/format-applepay-contact-to-adyen-format.js";import{mapBrands as y}from"./utils/map-adyen-brands-to-applepay-brands.js";import m from"./services/ApplePaySdkLoader.js";import{detectInIframe as P}from"../../utils/detectInIframe.js";import{AnalyticsInfoEvent as b,InfoEventType as f,UiTarget as A}from"../../core/Analytics/events/AnalyticsInfoEvent.js";function g(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function v(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{},n=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(o).filter(function(e){return Object.getOwnPropertyDescriptor(o,e).enumerable}))),n.forEach(function(t){g(e,t,o[t])})}return e}function w(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t.push.apply(t,o)}return t}(Object(t)).forEach(function(o){Object.defineProperty(e,o,Object.getOwnPropertyDescriptor(t,o))}),e}class S extends t{formatProps(e){var t,o,n,s,r;const i=(null===(n=e.brands)||void 0===n?void 0:n.length)?y(e.brands):e.supportedNetworks;return w(v({},e),{configuration:e.configuration,supportedNetworks:i,buttonLocale:null!==(t=e.buttonLocale)&&void 0!==t?t:null===(s=e.i18n)||void 0===s?void 0:s.locale,totalPriceLabel:e.totalPriceLabel||(null===(r=e.configuration)||void 0===r?void 0:r.merchantName),renderApplePayCodeAs:null!==(o=e.renderApplePayCodeAs)&&void 0!==o?o:P()?"window":"modal"})}formatData(){const{applePayToken:e,billingAddress:t,deliveryAddress:o}=this.state,{isExpress:n}=this.props;return v({paymentMethod:v({type:S.type,applePayToken:e},n&&{subtype:"express"})},t&&{billingAddress:t},o&&{deliveryAddress:o})}beforeRender(e){const t=new b(v({type:f.rendered,component:this.type,configData:w(v({},e),{showPayButton:this.props.showPayButton})},(null==e?void 0:e.isExpress)&&{isExpress:e.isExpress},(null==e?void 0:e.expressPage)&&{expressPage:e.expressPage}));this.analytics.sendAnalytics(t)}get isValid(){return!0}async applePayCapabilities(e){const t=e||this.props.configuration.merchantId;try{var o;return await this.sdkLoader.isSdkLoaded(),await(null===(o=ApplePaySession)||void 0===o?void 0:o.applePayCapabilities(t))}catch(e){throw new p("ERROR","Apple Pay: Error when requesting applePayCapabilities()",{cause:e})}}async isAvailable(){if("https:"!==window.location.protocol)return Promise.reject(new p("IMPLEMENTATION_ERROR","Trying to start an Apple Pay session from an insecure document"));try{var e;return await this.sdkLoader.isSdkLoaded(),(null===(e=ApplePaySession)||void 0===e?void 0:e.canMakePayments())?Promise.resolve():Promise.reject(new p("ERROR","Apple Pay is not available on this device"))}catch(e){return Promise.reject(new p("ERROR","Apple Pay SDK failed to load",{cause:e}))}}defineApplePayVersionNumber(){"https:"===window.location.protocol&&(this.applePayVersionNumber=this.props.version||h(14))}configureApplePayWebOptions(){if(window.ApplePayWebOptions){const{renderApplePayCodeAs:e,onApplePayCodeClose:t}=this.props;window.ApplePayWebOptions.set(v({renderApplePayCodeAs:e},t&&{onApplePayCodeClose:t}))}}startSession(){const{onValidateMerchant:e,onPaymentMethodSelected:t,onShippingMethodSelected:o,onShippingContactSelected:s,onCouponCodeChanged:r}=this.props,i=a(v({companyName:this.props.configuration.merchantName,countryCode:this.core.options.countryCode},this.props)),l=new n(i,{version:this.applePayVersionNumber,onError:e=>{this.handleError(new p("ERROR","ApplePay - Something went wrong on ApplePayService",{cause:e}))},onCancel:e=>{this.handleError(new p("CANCEL","ApplePay UI dismissed",{cause:e}))},onPaymentMethodSelected:t,onShippingMethodSelected:o,onShippingContactSelected:s,onCouponCodeChanged:r,onValidateMerchant:e||this.validateMerchant,onPaymentAuthorized:(e,t,o)=>{const n=u(o.payment.billingContact),s=u(o.payment.shippingContact,!0);this.setState(v({applePayToken:btoa(JSON.stringify(o.payment.token.paymentData)),authorizedEvent:o},n&&{billingAddress:n},s&&{deliveryAddress:s})),this.handleAuthorization().then(this.makePaymentsCall).then(d).then(c).then(this.collectOrderTrackingDetailsIfNeeded).then(({paymentResponse:t,orderDetails:o})=>(e(v({status:ApplePaySession.STATUS_SUCCESS},o&&{orderDetails:o})),t)).then(e=>{this.handleResponse(e)}).catch(e=>{var o;const n=null==e||null===(o=e.error)||void 0===o?void 0:o.applePayError;t({status:ApplePaySession.STATUS_FAILURE,errors:n?Array.isArray(n)?n:[n]:void 0});const s=w(v({},e),{error:{applePayError:n}});this.handleFailedResult(s)})}});return new Promise((e,t)=>this.props.onClick(e,t)).then(()=>{l.begin()}).catch(()=>({}))}async handleAuthorization(){return new Promise((e,t)=>{this.props.onAuthorized||e();const{authorizedEvent:o,billingAddress:n,deliveryAddress:s}=this.state;this.props.onAuthorized(v({authorizedEvent:o},n&&{billingAddress:n},s&&{deliveryAddress:s}),{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=>v({paymentResponse:e},t&&{orderDetails:t})).catch(()=>({paymentResponse:e}))}async validateMerchant(e,t){const{hostname:o}=window.location,{clientKey:n,configuration:r,loadingContext:a,initiative:p,domainName:l}=this.props,{merchantName:d,merchantId:c}=r,h={loadingContext:a,path:`v1/applePay/sessions?clientKey=${n}`},u={displayName:d,domainName:l||o,initiative:p,merchantIdentifier:c};try{const o=await i(h,u),n=s.decode(o.data);if(n.success){e(JSON.parse(n.data))}else t("Could not decode Apple Pay session")}catch(e){t("Could not get Apple Pay session")}}componentToRender(){return this.props.showPayButton?e(o,{buttonStyle:this.props.buttonColor,buttonType:this.props.buttonType,buttonLocale:this.props.buttonLocale,onClick:this.submit}):null}constructor(e,t){super(e,t),g(this,"sdkLoader",void 0),g(this,"applePayVersionNumber",void 0),g(this,"submit",()=>{if(this.props.isInstantPayment){const e=new b({component:this.type,type:f.selected,target:A.instantPaymentButton});this.submitAnalytics(e)}this.startSession()});const{isExpress:o,onShippingContactSelected:n,onShippingMethodSelected:s}=this.props;if(!1===o&&(n||s))throw new p("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),this.defineApplePayVersionNumber=this.defineApplePayVersionNumber.bind(this),this.configureApplePayWebOptions=this.configureApplePayWebOptions.bind(this),this.sdkLoader=new m({analytics:this.analytics}),this.sdkLoader.load().then(this.defineApplePayVersionNumber).then(this.configureApplePayWebOptions).catch(e=>{this.handleError(e)})}}g(S,"type",l.applepay),g(S,"defaultProps",r);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 './services/ApplePayService';\nimport base64 from '../../utils/base64';\nimport defaultProps from './defaultProps';\nimport { httpPost } from '../../core/Services/http';\nimport { preparePaymentRequest } from './utils/payment-request';\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 { resolveSupportedVersion } from './utils/resolve-supported-version';\nimport { formatApplePayContactToAdyenAddressFormat } from './utils/format-applepay-contact-to-adyen-format';\nimport { mapBrands } from './utils/map-adyen-brands-to-applepay-brands';\nimport ApplePaySdkLoader from './services/ApplePaySdkLoader';\nimport { detectInIframe } from '../../utils/detectInIframe';\nimport type { ApplePayConfiguration, ApplePayElementData, ApplePayPaymentOrderDetails, ApplePaySessionRequest } from './types';\nimport type { ICore } from '../../core/types';\nimport type { PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\nconst LATEST_APPLE_PAY_VERSION = 14;\n\nclass ApplePayElement extends UIElement<ApplePayConfiguration> {\n public static readonly type = TxVariants.applepay;\n\n protected static readonly defaultProps = defaultProps;\n\n private sdkLoader: ApplePaySdkLoader;\n private applePayVersionNumber: number = undefined;\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 this.defineApplePayVersionNumber = this.defineApplePayVersionNumber.bind(this);\n this.configureApplePayWebOptions = this.configureApplePayWebOptions.bind(this);\n\n this.sdkLoader = new ApplePaySdkLoader({ analytics: this.analytics });\n\n void this.sdkLoader\n .load()\n .then(this.defineApplePayVersionNumber)\n .then(this.configureApplePayWebOptions)\n .catch(error => {\n this.handleError(error);\n });\n }\n\n /**\n * Formats the component props\n */\n protected override formatProps(props: ApplePayConfiguration): ApplePayConfiguration {\n // @ts-ignore TODO: Fix brands prop\n const supportedNetworks = props.brands?.length ? mapBrands(props.brands) : props.supportedNetworks;\n\n return {\n ...props,\n configuration: props.configuration,\n supportedNetworks,\n buttonLocale: props.buttonLocale ?? props.i18n?.locale,\n totalPriceLabel: props.totalPriceLabel || props.configuration?.merchantName,\n renderApplePayCodeAs: props.renderApplePayCodeAs ?? (detectInIframe() ? 'window' : 'modal')\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 protected override beforeRender(configSetByMerchant?: ApplePayConfiguration) {\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.isExpress && { isExpress: configSetByMerchant.isExpress }),\n ...(configSetByMerchant?.expressPage && { expressPage: configSetByMerchant.expressPage })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n public override submit = (): void => {\n if (this.props.isInstantPayment) {\n const event = new AnalyticsInfoEvent({ component: this.type, type: InfoEventType.selected, target: UiTarget.instantPaymentButton });\n this.submitAnalytics(event);\n }\n void this.startSession();\n };\n\n public get isValid(): boolean {\n return true;\n }\n\n /**\n * This API is only intended for upstreaming or defaulting to Apple Pay, all other scenarios should continue to\n * use canMakePayments(). For Safari browsers, this API will indicate whether there is a card available to make\n * payments. For third-party browsers a new status of paymentCredentialStatusUnknown will be returned. This does\n * not mean there are no cards available, it means the status cannot be determined and as such defaulting\n * and upstreaming should still be considered.\n *\n * {@link https://developer.apple.com/documentation/apple_pay_on_the_web/applepaysession/4440085-applepaycapabilities}\n * @param merchantIdentifier\n */\n public async applePayCapabilities(merchantIdentifier?: string): Promise<ApplePayJS.PaymentCredentialStatusResponse> {\n const identifier = merchantIdentifier || this.props.configuration.merchantId;\n\n try {\n await this.sdkLoader.isSdkLoaded();\n return await ApplePaySession?.applePayCapabilities(identifier);\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'Apple Pay: Error when requesting applePayCapabilities()', { cause: error });\n }\n }\n\n /**\n * Determines if Apple Pay component can be displayed or not\n */\n public override async isAvailable(): Promise<void> {\n if (window.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 try {\n await this.sdkLoader.isSdkLoaded();\n\n if (ApplePaySession?.canMakePayments()) {\n return Promise.resolve();\n }\n\n return Promise.reject(new AdyenCheckoutError('ERROR', 'Apple Pay is not available on this device'));\n } catch (error) {\n return Promise.reject(new AdyenCheckoutError('ERROR', 'Apple Pay SDK failed to load', { cause: error }));\n }\n }\n\n /**\n * Sets the Apple Pay version available for the shopper.\n * This code needs to be executed once the Apple Pay SDK is fully loaded\n * @private\n */\n private defineApplePayVersionNumber() {\n if (window.location.protocol !== 'https:') return;\n this.applePayVersionNumber = this.props.version || resolveSupportedVersion(LATEST_APPLE_PAY_VERSION);\n }\n\n /**\n * Sets the configuration/callbacks that pertain to the Apple Pay code overlay/modal.\n * @private\n */\n private configureApplePayWebOptions() {\n if (window.ApplePayWebOptions) {\n const { renderApplePayCodeAs, onApplePayCodeClose } = this.props;\n\n window.ApplePayWebOptions.set({\n renderApplePayCodeAs,\n ...(onApplePayCodeClose && { onApplePayCodeClose })\n });\n }\n }\n\n private startSession() {\n const { 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: this.applePayVersionNumber,\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<void>((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: (merchantSession: any) => void, reject: (error: string) => void) {\n const { hostname } = window.location;\n const { clientKey, configuration, loadingContext, initiative, domainName } = this.props;\n const { merchantName, merchantId } = configuration;\n const path = `v1/applePay/sessions?clientKey=${clientKey}`;\n const options = { loadingContext, path };\n const request: ApplePaySessionRequest = {\n displayName: merchantName,\n domainName: domainName || hostname,\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 protected override componentToRender(): h.JSX.Element {\n if (!this.props.showPayButton) {\n return null;\n }\n\n return (\n <ApplePayButton\n buttonStyle={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonLocale={this.props.buttonLocale}\n onClick={this.submit}\n />\n );\n }\n}\n\nexport default ApplePayElement;\n"],"names":["ApplePayElement","UIElement","formatProps","props","supportedNetworks","brands","length","mapBrands","_object_spread_props","_object_spread","configuration","buttonLocale","i18n","locale","totalPriceLabel","merchantName","renderApplePayCodeAs","detectInIframe","formatData","applePayToken","billingAddress","deliveryAddress","this","state","isExpress","paymentMethod","type","subtype","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","InfoEventType","rendered","component","configData","showPayButton","expressPage","analytics","sendAnalytics","isValid","applePayCapabilities","merchantIdentifier","identifier","merchantId","ApplePaySession","sdkLoader","isSdkLoaded","error","AdyenCheckoutError","cause","isAvailable","window","location","protocol","Promise","reject","canMakePayments","resolve","defineApplePayVersionNumber","applePayVersionNumber","version","resolveSupportedVersion","configureApplePayWebOptions","ApplePayWebOptions","onApplePayCodeClose","set","startSession","onValidateMerchant","onPaymentMethodSelected","onShippingMethodSelected","onShippingContactSelected","paymentRequest","preparePaymentRequest","companyName","countryCode","core","options","session","ApplePayService","onError","handleError","onCancel","validateMerchant","onPaymentAuthorized","formatApplePayContactToAdyenAddressFormat","payment","billingContact","shippingContact","setState","btoa","JSON","stringify","token","paymentData","authorizedEvent","handleAuthorization","then","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","collectOrderTrackingDetailsIfNeeded","paymentResponse","orderDetails","status","STATUS_SUCCESS","handleResponse","catch","errors","applePayError","STATUS_FAILURE","Array","isArray","undefined","responseWithError","handleFailedResult","onClick","begin","onAuthorized","data","onOrderTrackingRequest","hostname","clientKey","loadingContext","initiative","domainName","path","request","displayName","response","httpPost","decodedData","base64","decode","success","parse","e","componentToRender","h","ApplePayButton","buttonStyle","buttonColor","buttonType","submit","constructor","checkout","super","_define_property","isInstantPayment","selected","target","UiTarget","instantPaymentButton","submitAnalytics","bind","ApplePaySdkLoader","load","TxVariants","applepay","defaultProps"],"mappings":"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"}
|
|
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 './services/ApplePayService';\nimport base64 from '../../utils/base64';\nimport defaultProps from './defaultProps';\nimport { httpPost } from '../../core/Services/http';\nimport { preparePaymentRequest } from './utils/payment-request';\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 { resolveSupportedVersion } from './utils/resolve-supported-version';\nimport { formatApplePayContactToAdyenAddressFormat } from './utils/format-applepay-contact-to-adyen-format';\nimport { mapBrands } from './utils/map-adyen-brands-to-applepay-brands';\nimport ApplePaySdkLoader from './services/ApplePaySdkLoader';\nimport { detectInIframe } from '../../utils/detectInIframe';\nimport type { ApplePayConfiguration, ApplePayElementData, ApplePayPaymentOrderDetails, ApplePaySessionRequest } from './types';\nimport type { ICore } from '../../core/types';\nimport type { PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\nimport { AnalyticsInfoEvent, InfoEventType, UiTarget } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\nconst LATEST_APPLE_PAY_VERSION = 14;\n\nclass ApplePayElement extends UIElement<ApplePayConfiguration> {\n public static readonly type = TxVariants.applepay;\n\n protected static readonly defaultProps = defaultProps;\n\n private sdkLoader: ApplePaySdkLoader;\n private applePayVersionNumber: number = undefined;\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 this.defineApplePayVersionNumber = this.defineApplePayVersionNumber.bind(this);\n this.configureApplePayWebOptions = this.configureApplePayWebOptions.bind(this);\n\n this.sdkLoader = new ApplePaySdkLoader({ analytics: this.analytics });\n\n void this.sdkLoader\n .load()\n .then(this.defineApplePayVersionNumber)\n .then(this.configureApplePayWebOptions)\n .catch(error => {\n this.handleError(error);\n });\n }\n\n /**\n * Formats the component props\n */\n protected override formatProps(props: ApplePayConfiguration): ApplePayConfiguration {\n // @ts-ignore TODO: Fix brands prop\n const supportedNetworks = props.brands?.length ? mapBrands(props.brands) : props.supportedNetworks;\n\n return {\n ...props,\n configuration: props.configuration,\n supportedNetworks,\n buttonLocale: props.buttonLocale ?? props.i18n?.locale,\n totalPriceLabel: props.totalPriceLabel || props.configuration?.merchantName,\n renderApplePayCodeAs: props.renderApplePayCodeAs ?? (detectInIframe() ? 'window' : 'modal')\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 protected override beforeRender(configSetByMerchant?: ApplePayConfiguration) {\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.isExpress && { isExpress: configSetByMerchant.isExpress }),\n ...(configSetByMerchant?.expressPage && { expressPage: configSetByMerchant.expressPage })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n public override submit = (): void => {\n if (this.props.isInstantPayment) {\n const event = new AnalyticsInfoEvent({ component: this.type, type: InfoEventType.selected, target: UiTarget.instantPaymentButton });\n this.submitAnalytics(event);\n }\n void this.startSession();\n };\n\n public get isValid(): boolean {\n return true;\n }\n\n /**\n * This API is only intended for upstreaming or defaulting to Apple Pay, all other scenarios should continue to\n * use canMakePayments(). For Safari browsers, this API will indicate whether there is a card available to make\n * payments. For third-party browsers a new status of paymentCredentialStatusUnknown will be returned. This does\n * not mean there are no cards available, it means the status cannot be determined and as such defaulting\n * and upstreaming should still be considered.\n *\n * {@link https://developer.apple.com/documentation/applepayontheweb/applepaysession/4440085-applepaycapabilities}\n * @param merchantIdentifier\n */\n public async applePayCapabilities(merchantIdentifier?: string): Promise<ApplePayJS.PaymentCredentialStatusResponse> {\n const identifier = merchantIdentifier || this.props.configuration.merchantId;\n\n try {\n await this.sdkLoader.isSdkLoaded();\n return await ApplePaySession?.applePayCapabilities(identifier);\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'Apple Pay: Error when requesting applePayCapabilities()', { cause: error });\n }\n }\n\n /**\n * Determines if Apple Pay component can be displayed or not\n */\n public override async isAvailable(): Promise<void> {\n if (window.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 try {\n await this.sdkLoader.isSdkLoaded();\n\n if (ApplePaySession?.canMakePayments()) {\n return Promise.resolve();\n }\n\n return Promise.reject(new AdyenCheckoutError('ERROR', 'Apple Pay is not available on this device'));\n } catch (error) {\n return Promise.reject(new AdyenCheckoutError('ERROR', 'Apple Pay SDK failed to load', { cause: error }));\n }\n }\n\n /**\n * Sets the Apple Pay version available for the shopper.\n * This code needs to be executed once the Apple Pay SDK is fully loaded\n * @private\n */\n private defineApplePayVersionNumber() {\n if (window.location.protocol !== 'https:') return;\n this.applePayVersionNumber = this.props.version || resolveSupportedVersion(LATEST_APPLE_PAY_VERSION);\n }\n\n /**\n * Sets the configuration/callbacks that pertain to the Apple Pay code overlay/modal.\n * @private\n */\n private configureApplePayWebOptions() {\n if (window.ApplePayWebOptions) {\n const { renderApplePayCodeAs, onApplePayCodeClose } = this.props;\n\n window.ApplePayWebOptions.set({\n renderApplePayCodeAs,\n ...(onApplePayCodeClose && { onApplePayCodeClose })\n });\n }\n }\n\n private startSession() {\n const { onValidateMerchant, onPaymentMethodSelected, onShippingMethodSelected, onShippingContactSelected, onCouponCodeChanged } = 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: this.applePayVersionNumber,\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 onCouponCodeChanged,\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<void>((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: (merchantSession: any) => void, reject: (error: string) => void) {\n const { hostname } = window.location;\n const { clientKey, configuration, loadingContext, initiative, domainName } = this.props;\n const { merchantName, merchantId } = configuration;\n const path = `v1/applePay/sessions?clientKey=${clientKey}`;\n const options = { loadingContext, path };\n const request: ApplePaySessionRequest = {\n displayName: merchantName,\n domainName: domainName || hostname,\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 protected override componentToRender(): h.JSX.Element {\n if (!this.props.showPayButton) {\n return null;\n }\n\n return (\n <ApplePayButton\n buttonStyle={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonLocale={this.props.buttonLocale}\n onClick={this.submit}\n />\n );\n }\n}\n\nexport default ApplePayElement;\n"],"names":["ApplePayElement","UIElement","formatProps","props","supportedNetworks","brands","length","mapBrands","_object_spread_props","_object_spread","configuration","buttonLocale","i18n","locale","totalPriceLabel","merchantName","renderApplePayCodeAs","detectInIframe","formatData","applePayToken","billingAddress","deliveryAddress","this","state","isExpress","paymentMethod","type","subtype","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","InfoEventType","rendered","component","configData","showPayButton","expressPage","analytics","sendAnalytics","isValid","applePayCapabilities","merchantIdentifier","identifier","merchantId","ApplePaySession","sdkLoader","isSdkLoaded","error","AdyenCheckoutError","cause","isAvailable","window","location","protocol","Promise","reject","canMakePayments","resolve","defineApplePayVersionNumber","applePayVersionNumber","version","resolveSupportedVersion","configureApplePayWebOptions","ApplePayWebOptions","onApplePayCodeClose","set","startSession","onValidateMerchant","onPaymentMethodSelected","onShippingMethodSelected","onShippingContactSelected","onCouponCodeChanged","paymentRequest","preparePaymentRequest","companyName","countryCode","core","options","session","ApplePayService","onError","handleError","onCancel","validateMerchant","onPaymentAuthorized","formatApplePayContactToAdyenAddressFormat","payment","billingContact","shippingContact","setState","btoa","JSON","stringify","token","paymentData","authorizedEvent","handleAuthorization","then","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","collectOrderTrackingDetailsIfNeeded","paymentResponse","orderDetails","status","STATUS_SUCCESS","handleResponse","catch","errors","applePayError","STATUS_FAILURE","Array","isArray","undefined","responseWithError","handleFailedResult","onClick","begin","onAuthorized","data","onOrderTrackingRequest","hostname","clientKey","loadingContext","initiative","domainName","path","request","displayName","response","httpPost","decodedData","base64","decode","success","parse","e","componentToRender","h","ApplePayButton","buttonStyle","buttonColor","buttonType","submit","constructor","checkout","super","_define_property","isInstantPayment","selected","target","UiTarget","instantPaymentButton","submitAnalytics","bind","ApplePaySdkLoader","load","TxVariants","applepay","defaultProps"],"mappings":"43DAwBA,MAAMA,UAAwBC,EA0CPC,WAAAA,CAAYC,OAQTA,EAEQA,EARAA,EAMcA,EACMA,EAP9C,MAAMC,GAAgC,QAAZD,EAAAA,EAAME,cAANF,IAAAA,OAAAA,EAAAA,EAAcG,QAASC,EAAUJ,EAAME,QAAUF,EAAMC,kBAEjF,OAAOI,EAAAC,EAAA,CAAA,EACAN,GAAAA,CACHO,cAAeP,EAAMO,cACrBN,oBACAO,aAAgC,QAAlBR,EAAAA,EAAMQ,oBAANR,IAAAA,EAAAA,EAAgC,QAAVA,EAAAA,EAAMS,gBAANT,OAAAA,EAAAA,EAAYU,OAChDC,gBAAiBX,EAAMW,kBAAsC,QAAnBX,EAAAA,EAAMO,qBAANP,IAAAA,SAAAA,EAAqBY,cAC/DC,6BAAsBb,EAAAA,EAAMa,gCAANb,EAAAA,EAA+Bc,IAAmB,SAAW,SAE3F,CAKA,UAAAC,GACI,MAAMC,cAAEA,EAAaC,eAAEA,EAAcC,gBAAEA,GAAoBC,KAAKC,OAC1DC,UAAEA,GAAcF,KAAKnB,MAE3B,OAAOM,EAAA,CACHgB,cAAehB,EAAA,CACXiB,KAAM1B,EAAgB0B,KACtBP,iBACIK,GAAa,CAAEG,QAAS,aAE5BP,GAAkB,CAAEA,kBACpBC,GAAmB,CAAEA,mBAEjC,CAEmBO,YAAAA,CAAaC,GAC5B,MAAMC,EAAQ,IAAIC,EAAmBtB,EAAA,CACjCiB,KAAMM,EAAcC,SACpBC,UAAWZ,KAAKI,KAChBS,WAAY3B,EAAAC,EAAA,CAAA,EAAKoB,GAAAA,CAAqBO,cAAed,KAAKnB,MAAMiC,kBAC5DP,aAAAA,EAAAA,EAAqBL,YAAa,CAAEA,UAAWK,EAAoBL,YACnEK,aAAAA,EAAAA,EAAqBQ,cAAe,CAAEA,YAAaR,EAAoBQ,eAG/Ef,KAAKgB,UAAUC,cAAcT,EACjC,CAUA,WAAWU,GACP,OAAO,CACX,CAYA,0BAAaC,CAAqBC,GAC9B,MAAMC,EAAaD,GAAsBpB,KAAKnB,MAAMO,cAAckC,WAElE,IAEiBC,IAAAA,EAAb,aADMvB,KAAKwB,UAAUC,oBACRF,QAAAA,EAAAA,uBAAAA,IAAAA,OAAAA,EAAAA,EAAiBJ,qBAAqBE,GACvD,CAAE,MAAOK,GACL,MAAM,IAAIC,EAAmB,QAAS,0DAA2D,CAAEC,MAAOF,GAC9G,CACJ,CAKA,iBAAsBG,GAClB,GAAiC,WAA7BC,OAAOC,SAASC,SAChB,OAAOC,QAAQC,OAAO,IAAIP,EAAmB,uBAAwB,mEAGzE,IAGQJ,IAAAA,EAAJ,aAFMvB,KAAKwB,UAAUC,eAEjBF,QAAAA,EAAAA,uBAAAA,IAAAA,OAAAA,EAAAA,EAAiBY,mBACVF,QAAQG,UAGZH,QAAQC,OAAO,IAAIP,EAAmB,QAAS,6CAC1D,CAAE,MAAOD,GACL,OAAOO,QAAQC,OAAO,IAAIP,EAAmB,QAAS,+BAAgC,CAAEC,MAAOF,IACnG,CACJ,CAOA,2BAAAW,GACqC,WAA7BP,OAAOC,SAASC,WACpBhC,KAAKsC,sBAAwBtC,KAAKnB,MAAM0D,SAAWC,EArJ1B,IAsJ7B,CAMA,2BAAAC,GACI,GAAIX,OAAOY,mBAAoB,CAC3B,MAAMhD,qBAAEA,EAAoBiD,oBAAEA,GAAwB3C,KAAKnB,MAE3DiD,OAAOY,mBAAmBE,IAAIzD,EAAA,CAC1BO,wBACIiD,GAAuB,CAAEA,wBAErC,CACJ,CAEQE,YAAAA,GACJ,MAAMC,mBAAEA,EAAkBC,wBAAEA,EAAuBC,yBAAEA,EAAwBC,0BAAEA,EAAyBC,oBAAEA,GAAwBlD,KAAKnB,MAEjIsE,EAAiBC,EAAsBjE,EAAA,CACzCkE,YAAarD,KAAKnB,MAAMO,cAAcK,aACtC6D,YAAatD,KAAKuD,KAAKC,QAAQF,aAC5BtD,KAAKnB,QAGN4E,EAAU,IAAIC,EAAgBP,EAAgB,CAChDZ,QAASvC,KAAKsC,sBACdqB,QAAUjC,IACN1B,KAAK4D,YACD,IAAIjC,EAAmB,QAAS,qDAAsD,CAClFC,MAAOF,MAInBmC,SAAUrD,IACNR,KAAK4D,YAAY,IAAIjC,EAAmB,SAAU,wBAAyB,CAAEC,MAAOpB,MAExFuC,0BACAC,2BACAC,4BACAC,sBACAJ,mBAAoBA,GAAsB9C,KAAK8D,iBAC/CC,oBAAqB,CAAC3B,EAASF,EAAQ1B,KACnC,MAAMV,EAAiBkE,EAA0CxD,EAAMyD,QAAQC,gBACzEnE,EAAkBiE,EAA0CxD,EAAMyD,QAAQE,iBAAiB,GAEjGnE,KAAKoE,SAASjF,EAAA,CACVU,cAAewE,KAAKC,KAAKC,UAAU/D,EAAMyD,QAAQO,MAAMC,cACvDC,gBAAiBlE,GACbV,GAAkB,CAAEA,kBACpBC,GAAmB,CAAEA,qBAG7BC,KAAK2E,sBACAC,KAAK5E,KAAK6E,kBACVD,KAAKE,GACLF,KAAKG,GACLH,KAAK5E,KAAKgF,qCACVJ,KAAK,EAAGK,kBAAiBC,mBACtB9C,EAAQjD,EAAA,CACJgG,OAAQ5D,gBAAgB6D,gBACpBF,GAAgB,CAAEA,kBAEnBD,IAEVL,KAAKK,IACFjF,KAAKqF,eAAeJ,KAEvBK,MAAOL,IACWA,IAAAA,EAAf,MAAMM,EAASN,SAAsB,QAAtBA,EAAAA,EAAiBvD,aAAjBuD,IAAAA,OAAAA,EAAAA,EAAwBO,cAEvCtD,EAAO,CACHiD,OAAQ5D,gBAAgBkE,eACxBF,OAAQA,EAAUG,MAAMC,QAAQJ,GAAUA,EAAS,CAACA,QAAWK,IAGnE,MAAMC,EAAwC3G,EAAAC,EAAA,CAAA,EACvC8F,GAAAA,CACHvD,MAAO,CACH8D,cAAeD,KAIvBvF,KAAK8F,mBAAmBD,QAKxC,OAAO,IAAI5D,QAAc,CAACG,EAASF,IAAWlC,KAAKnB,MAAMkH,QAAQ3D,EAASF,IACrE0C,KAAK,KACFnB,EAAQuC,UAEXV,MAAM,KAAA,CAEP,GACR,CAQA,yBAAcX,GACV,OAAO,IAAI1C,QAAc,CAACG,EAASF,KAC1BlC,KAAKnB,MAAMoH,cACZ7D,IAGJ,MAAMsC,gBAAEA,EAAe5E,eAAEA,EAAcC,gBAAEA,GAAoBC,KAAKC,MAElED,KAAKnB,MAAMoH,aACP9G,EAAA,CACIuF,mBACI5E,GAAkB,CAAEA,kBACpBC,GAAmB,CAAEA,oBAE7B,CAAEqC,UAASF,aAEhBoD,MAAO5D,IAEN,MAAMwE,EAAO,CAAExE,MAAO,CAAE8D,cAAe9D,IACvC,OAAOO,QAAQC,OAAOgE,IAE9B,CAQA,yCAAclB,CACVC,GAEA,OAAO,IAAIhD,QAA4C,CAACG,EAASF,KAC7D,IAAKlC,KAAKnB,MAAMsH,uBACZ,OAAO/D,IAGXpC,KAAKnB,MAAMsH,uBAAuB/D,EAASF,KAE1C0C,KAAKM,GACK/F,EAAA,CACH8F,mBACIC,GAAgB,CAAEA,kBAG7BI,MAAM,KACI,CAAEL,oBAErB,CAEA,sBAAcnB,CAAiB1B,EAAyCF,GACpE,MAAMkE,SAAEA,GAAatE,OAAOC,UACtBsE,UAAEA,EAASjH,cAAEA,EAAakH,eAAEA,EAAcC,WAAEA,EAAUC,WAAEA,GAAexG,KAAKnB,OAC5EY,aAAEA,EAAY6B,WAAEA,GAAelC,EAE/BoE,EAAU,CAAE8C,iBAAgBG,KADrB,kCAAkCJ,KAEzCK,EAAkC,CACpCC,YAAalH,EACb+G,WAAYA,GAAcJ,EAC1BG,aACAnF,mBAAoBE,GAGxB,IACI,MAAMsF,QAAiBC,EAASrD,EAASkD,GACnCI,EAA4BC,EAAOC,OAAOJ,EAASV,MACzD,GAAKY,EAAYG,QAEV,CAEH7E,EADgBkC,KAAK4C,MAAMJ,EAAYZ,MAE3C,MAJIhE,EAAO,qCAKf,CAAE,MAAOiF,GACLjF,EAAO,kCACX,CACJ,CAEmBkF,iBAAAA,GACf,OAAKpH,KAAKnB,MAAMiC,cAKZuG,EAACC,EAAAA,CACGC,YAAavH,KAAKnB,MAAM2I,YACxBC,WAAYzH,KAAKnB,MAAM4I,WACvBpI,aAAcW,KAAKnB,MAAMQ,aACzB0G,QAAS/F,KAAK0H,SARX,IAWf,CA9UA,WAAAC,CAAYC,EAAiB/I,GACzBgJ,MAAMD,EAAU/I,GAJpBiJ,EAAA9H,KAAQwB,iBAAR,GACAsG,EAAA9H,KAAQsC,6BAAgCsD,GAgFxCkC,EAAA9H,KAAgB0H,SAAS,KACrB,GAAI1H,KAAKnB,MAAMkJ,iBAAkB,CAC7B,MAAMvH,EAAQ,IAAIC,EAAmB,CAAEG,UAAWZ,KAAKI,KAAMA,KAAMM,EAAcsH,SAAUC,OAAQC,EAASC,uBAC5GnI,KAAKoI,gBAAgB5H,EACzB,CACKR,KAAK6C,iBAhFV,MAAM3C,UAAEA,EAAS+C,0BAAEA,EAAyBD,yBAAEA,GAA6BhD,KAAKnB,MAEhF,IAAkB,IAAdqB,IAAwB+C,GAA6BD,GACrD,MAAM,IAAIrB,EACN,uBACA,8IAIR3B,KAAK6C,aAAe7C,KAAK6C,aAAawF,KAAKrI,MAC3CA,KAAK0H,OAAS1H,KAAK0H,OAAOW,KAAKrI,MAC/BA,KAAK8D,iBAAmB9D,KAAK8D,iBAAiBuE,KAAKrI,MACnDA,KAAKgF,oCAAsChF,KAAKgF,oCAAoCqD,KAAKrI,MACzFA,KAAK2E,oBAAsB3E,KAAK2E,oBAAoB0D,KAAKrI,MACzDA,KAAKqC,4BAA8BrC,KAAKqC,4BAA4BgG,KAAKrI,MACzEA,KAAKyC,4BAA8BzC,KAAKyC,4BAA4B4F,KAAKrI,MAEzEA,KAAKwB,UAAY,IAAI8G,EAAkB,CAAEtH,UAAWhB,KAAKgB,YAEpDhB,KAAKwB,UACL+G,OACA3D,KAAK5E,KAAKqC,6BACVuC,KAAK5E,KAAKyC,6BACV6C,MAAM5D,IACH1B,KAAK4D,YAAYlC,IAE7B,EApCAoG,EADEpJ,EACqB0B,OAAOoI,EAAWC,UAEzCX,EAHEpJ,EAGwBgK,eAAeA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
function e(e,t
|
|
1
|
+
function e(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}class n{begin(){return this.session.begin()}onvalidatemerchant(e,n){return new Promise((t,o)=>{n(t,o,e.validationURL)}).then(e=>{this.session.completeMerchantValidation(e)}).catch(e=>{console.error(e),this.session.abort(),this.options.onError(e)})}onpaymentauthorized(e,n){return new Promise((t,o)=>n(t,o,e)).then(e=>{this.session.completePayment(e)}).catch(e=>{this.session.completePayment(e)})}onpaymentmethodselected(e,n){return new Promise((t,o)=>n(t,o,e)).then(e=>{this.session.completePaymentMethodSelection(e)}).catch(e=>{this.session.completePaymentMethodSelection(e)})}onshippingcontactselected(e,n){return new Promise((t,o)=>n(t,o,e)).then(e=>{this.session.completeShippingContactSelection(e)}).catch(e=>{this.session.completeShippingContactSelection(e)})}onshippingmethodselected(e,n){return new Promise((t,o)=>n(t,o,e)).then(e=>{this.session.completeShippingMethodSelection(e)}).catch(e=>{this.session.completeShippingMethodSelection(e)})}oncouponcodechanged(e,n){return new Promise((t,o)=>n(t,o,e)).then(e=>{this.session.completeCouponCodeChange(e)}).catch(e=>{this.session.completeCouponCodeChange(e)})}oncancel(e,n){n(e)}constructor(n,t){e(this,"session",void 0),e(this,"options",void 0),this.options=t,this.session=new ApplePaySession(t.version,n),this.session.onvalidatemerchant=e=>{this.onvalidatemerchant(e,t.onValidateMerchant)},this.session.onpaymentauthorized=e=>{this.onpaymentauthorized(e,t.onPaymentAuthorized)},this.session.oncancel=e=>{this.oncancel(e,t.onCancel)},"function"==typeof t.onPaymentMethodSelected&&(this.session.onpaymentmethodselected=e=>{this.onpaymentmethodselected(e,t.onPaymentMethodSelected)}),"function"==typeof t.onShippingContactSelected&&(this.session.onshippingcontactselected=e=>{this.onshippingcontactselected(e,t.onShippingContactSelected)}),"function"==typeof t.onShippingMethodSelected&&(this.session.onshippingmethodselected=e=>{this.onshippingmethodselected(e,t.onShippingMethodSelected)}),"function"==typeof t.onCouponCodeChanged&&(this.session.oncouponcodechanged=e=>{this.oncouponcodechanged(e,t.onCouponCodeChanged)})}}export{n as default};
|
|
2
2
|
//# sourceMappingURL=ApplePayService.js.map
|