@adyen/adyen-web 6.47.0-alpha.eada81f → 6.47.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 +20 -22
- 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 +122 -581
- package/dist/es/adyen.css +20 -22
- package/dist/es/adyen.css.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/OrderButton.js +1 -1
- package/dist/es/components/AmazonPay/components/OrderButton.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/utils.js +1 -1
- package/dist/es/components/AmazonPay/utils.js.map +1 -1
- package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
- package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
- package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
- package/dist/es/components/CashAppPay/components/CashAppComponent.js +1 -1
- package/dist/es/components/CashAppPay/components/CashAppComponent.js.map +1 -1
- package/dist/es/components/CashAppPay/services/CashAppService.js +1 -1
- package/dist/es/components/CashAppPay/services/CashAppService.js.map +1 -1
- package/dist/es/components/CashAppPay/services/types.js.map +1 -1
- package/dist/es/components/CustomCard/CustomCard.js +1 -1
- package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
- package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
- package/dist/es/components/Donation/components/FixedAmounts.js.map +1 -1
- package/dist/es/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js +1 -1
- package/dist/es/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.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/PaymentMethodItem/PaymentMethodItem.js +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
- package/dist/es/components/Giftcard/Giftcard.js +1 -1
- package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
- package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
- package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
- package/dist/es/components/Giftcard/types.js +2 -0
- package/dist/es/components/Giftcard/types.js.map +1 -0
- package/dist/es/components/Giftcard/utils.js +2 -0
- package/dist/es/components/Giftcard/utils.js.map +1 -0
- package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
- package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
- package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
- package/dist/es/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js +1 -1
- package/dist/es/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -1
- package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
- package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
- package/dist/es/components/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/config.js +1 -1
- package/dist/es/components/PayPal/config.js.map +1 -1
- package/dist/es/components/PayPal/utils/get-paypal-locale.js +1 -1
- package/dist/es/components/PayPal/utils/get-paypal-locale.js.map +1 -1
- package/dist/es/components/PayPal/utils/get-paypal-settings.js +1 -1
- package/dist/es/components/PayPal/utils/get-paypal-settings.js.map +1 -1
- package/dist/es/components/PayPal/utils/get-paypal-url.js +1 -1
- package/dist/es/components/PayPal/utils/get-paypal-url.js.map +1 -1
- package/dist/es/components/PayPalFastlane/Fastlane.js +1 -1
- package/dist/es/components/PayPalFastlane/Fastlane.js.map +1 -1
- package/dist/es/components/PayPalFastlane/FastlaneSDK.js +1 -1
- package/dist/es/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
- package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
- package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js +1 -1
- package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/utils.js +1 -1
- package/dist/es/components/ThreeDS2/components/utils.js.map +1 -1
- package/dist/es/components/components-name-map.js +1 -1
- package/dist/es/components/components-name-map.js.map +1 -1
- package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
- package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
- package/dist/es/components/index.js +1 -1
- package/dist/es/components/internal/Address/Address.js +1 -1
- package/dist/es/components/internal/Address/Address.js.map +1 -1
- package/dist/es/components/internal/Address/Specifications.js +1 -1
- package/dist/es/components/internal/Address/Specifications.js.map +1 -1
- package/dist/es/components/internal/Address/components/AddressSearch.js +1 -1
- package/dist/es/components/internal/Address/components/AddressSearch.js.map +1 -1
- package/dist/es/components/internal/Address/components/CountryField.js +1 -1
- package/dist/es/components/internal/Address/components/CountryField.js.map +1 -1
- package/dist/es/components/internal/Address/components/FieldContainer.js +1 -1
- package/dist/es/components/internal/Address/components/FieldContainer.js.map +1 -1
- package/dist/es/components/internal/Address/components/StateField.js +1 -1
- package/dist/es/components/internal/Address/components/StateField.js.map +1 -1
- package/dist/es/components/internal/Address/constants.js.map +1 -1
- package/dist/es/components/internal/Address/utils.js.map +1 -1
- package/dist/es/components/internal/Address/validate.formats.js +1 -1
- package/dist/es/components/internal/Address/validate.formats.js.map +1 -1
- package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
- package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
- package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
- package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
- package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
- package/dist/es/components/internal/CompanyDetails/CompanyDetails.js +1 -1
- package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
- package/dist/es/components/internal/CompanyDetails/validate.js +1 -1
- package/dist/es/components/internal/CompanyDetails/validate.js.map +1 -1
- package/dist/es/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
- package/dist/es/components/internal/FormFields/Field/Field.js +1 -1
- package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
- package/dist/es/components/internal/FormFields/InputBase.js +1 -1
- package/dist/es/components/internal/FormFields/InputBase.js.map +1 -1
- package/dist/es/components/internal/FormFields/InputDate/InputDate.js +1 -1
- package/dist/es/components/internal/FormFields/InputDate/InputDate.js.map +1 -1
- package/dist/es/components/internal/FormFields/InputDate/utils.js.map +1 -1
- package/dist/es/components/internal/FormFields/Select/Select.js +1 -1
- package/dist/es/components/internal/FormFields/Select/Select.js.map +1 -1
- package/dist/es/components/internal/FormFields/Select/components/SelectButton.js +1 -1
- package/dist/es/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
- package/dist/es/components/internal/IbanInput/IbanInput.js +1 -1
- package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
- package/dist/es/components/internal/IbanInput/specifications.js.map +1 -1
- package/dist/es/components/internal/IbanInput/utils.js +1 -1
- package/dist/es/components/internal/IbanInput/utils.js.map +1 -1
- package/dist/es/components/internal/PayButton/utils.js.map +1 -1
- package/dist/es/components/internal/PersonalDetails/PersonalDetails.js +1 -1
- package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
- package/dist/es/components/internal/PersonalDetails/validate.js +1 -1
- package/dist/es/components/internal/PersonalDetails/validate.js.map +1 -1
- package/dist/es/components/internal/PhoneInput/PhoneInputFields.js +1 -1
- package/dist/es/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
- package/dist/es/components/internal/PhoneInput/PhoneInputForm.js +1 -1
- package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
- package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
- package/dist/es/components/internal/UIElement/UIElement.js +1 -1
- package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
- package/dist/es/components/internal/UIElement/utils.js.map +1 -1
- package/dist/es/components/tx-variants.js +1 -1
- package/dist/es/components/tx-variants.js.map +1 -1
- package/dist/es/core/Services/http.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/core/utils.js +1 -1
- package/dist/es/core/utils.js.map +1 -1
- package/dist/es/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js +1 -1
- package/dist/es/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
- package/dist/es/index.d.ts +122 -581
- package/dist/es/index.js +1 -1
- package/dist/es/language/Language.js +1 -1
- package/dist/es/language/Language.js.map +1 -1
- package/dist/es/language/utils.js +1 -1
- package/dist/es/language/utils.js.map +1 -1
- package/dist/es/utils/Script.js.map +1 -1
- package/dist/es/utils/Validator/ValidationRuleResult.js.map +1 -1
- package/dist/es/utils/Validator/Validator.js +1 -1
- package/dist/es/utils/Validator/Validator.js.map +1 -1
- package/dist/es/utils/Validator/defaultRules.js +1 -1
- package/dist/es/utils/Validator/defaultRules.js.map +1 -1
- package/dist/es/utils/amount-util.js +1 -1
- package/dist/es/utils/amount-util.js.map +1 -1
- package/dist/es/utils/browserInfo.js.map +1 -1
- package/dist/es/utils/createSdkData.js +1 -1
- package/dist/es/utils/createSdkData.js.map +1 -1
- package/dist/es/utils/get-issuer-image.js +1 -1
- package/dist/es/utils/get-issuer-image.js.map +1 -1
- package/dist/es/utils/get-process-message-handler.js.map +1 -1
- package/dist/es/utils/getConsentUrl.js +1 -1
- package/dist/es/utils/getConsentUrl.js.map +1 -1
- package/dist/es/utils/getErrorMessage.js.map +1 -1
- package/dist/es/utils/getOrigin.js.map +1 -1
- package/dist/es/utils/isValidURL.js +1 -1
- package/dist/es/utils/isValidURL.js.map +1 -1
- package/dist/es/utils/promiseTimeout.js.map +1 -1
- package/dist/es/utils/useAutoFocus.js.map +1 -1
- package/dist/es/utils/validator-utils.js +1 -1
- package/dist/es/utils/validator-utils.js.map +1 -1
- package/dist/es-legacy/adyen.css +20 -22
- package/dist/es-legacy/adyen.css.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/OrderButton.js +1 -1
- package/dist/es-legacy/components/AmazonPay/components/OrderButton.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/utils.js +1 -1
- package/dist/es-legacy/components/AmazonPay/utils.js.map +1 -1
- package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
- package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
- package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
- package/dist/es-legacy/components/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/CashAppService.js +1 -1
- package/dist/es-legacy/components/CashAppPay/services/CashAppService.js.map +1 -1
- package/dist/es-legacy/components/CashAppPay/services/types.js.map +1 -1
- package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
- package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
- package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
- package/dist/es-legacy/components/Donation/components/FixedAmounts.js.map +1 -1
- package/dist/es-legacy/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js +1 -1
- package/dist/es-legacy/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.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/PaymentMethodItem/PaymentMethodItem.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
- package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
- package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
- package/dist/es-legacy/components/Giftcard/types.js +2 -0
- package/dist/es-legacy/components/Giftcard/types.js.map +1 -0
- package/dist/es-legacy/components/Giftcard/utils.js +2 -0
- package/dist/es-legacy/components/Giftcard/utils.js.map +1 -0
- package/dist/es-legacy/components/GooglePay/GooglePay.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/PayByBankPix/components/Enrollment/useIssuerWithLogo.js +1 -1
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -1
- package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
- package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
- package/dist/es-legacy/components/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/config.js +1 -1
- package/dist/es-legacy/components/PayPal/config.js.map +1 -1
- package/dist/es-legacy/components/PayPal/utils/get-paypal-locale.js +1 -1
- package/dist/es-legacy/components/PayPal/utils/get-paypal-locale.js.map +1 -1
- package/dist/es-legacy/components/PayPal/utils/get-paypal-settings.js +1 -1
- package/dist/es-legacy/components/PayPal/utils/get-paypal-settings.js.map +1 -1
- package/dist/es-legacy/components/PayPal/utils/get-paypal-url.js +1 -1
- package/dist/es-legacy/components/PayPal/utils/get-paypal-url.js.map +1 -1
- package/dist/es-legacy/components/PayPalFastlane/Fastlane.js +1 -1
- package/dist/es-legacy/components/PayPalFastlane/Fastlane.js.map +1 -1
- package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js +1 -1
- package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/utils.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/utils.js.map +1 -1
- package/dist/es-legacy/components/components-name-map.js +1 -1
- package/dist/es-legacy/components/components-name-map.js.map +1 -1
- package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
- package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
- package/dist/es-legacy/components/index.js +1 -1
- package/dist/es-legacy/components/internal/Address/Address.js +1 -1
- package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/Specifications.js +1 -1
- package/dist/es-legacy/components/internal/Address/Specifications.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/components/AddressSearch.js +1 -1
- package/dist/es-legacy/components/internal/Address/components/AddressSearch.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/components/CountryField.js +1 -1
- package/dist/es-legacy/components/internal/Address/components/CountryField.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/components/FieldContainer.js +1 -1
- package/dist/es-legacy/components/internal/Address/components/FieldContainer.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/components/StateField.js +1 -1
- package/dist/es-legacy/components/internal/Address/components/StateField.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/constants.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/utils.js.map +1 -1
- package/dist/es-legacy/components/internal/Address/validate.formats.js +1 -1
- package/dist/es-legacy/components/internal/Address/validate.formats.js.map +1 -1
- package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
- package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
- package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
- package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js +1 -1
- package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
- package/dist/es-legacy/components/internal/CompanyDetails/validate.js +1 -1
- package/dist/es-legacy/components/internal/CompanyDetails/validate.js.map +1 -1
- package/dist/es-legacy/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/Field/Field.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/Field/Field.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/InputDate/InputDate.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/InputDate/InputDate.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/InputDate/utils.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/Select.js +1 -1
- package/dist/es-legacy/components/internal/FormFields/Select/Select.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/IbanInput/IbanInput.js +1 -1
- package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
- package/dist/es-legacy/components/internal/IbanInput/specifications.js.map +1 -1
- package/dist/es-legacy/components/internal/IbanInput/utils.js +1 -1
- package/dist/es-legacy/components/internal/IbanInput/utils.js.map +1 -1
- package/dist/es-legacy/components/internal/PayButton/utils.js.map +1 -1
- package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js +1 -1
- package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
- package/dist/es-legacy/components/internal/PersonalDetails/validate.js +1 -1
- package/dist/es-legacy/components/internal/PersonalDetails/validate.js.map +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js +1 -1
- package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
- package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
- package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
- package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
- package/dist/es-legacy/components/internal/UIElement/utils.js.map +1 -1
- package/dist/es-legacy/components/tx-variants.js +1 -1
- package/dist/es-legacy/components/tx-variants.js.map +1 -1
- package/dist/es-legacy/core/Services/http.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/core/utils.js +1 -1
- package/dist/es-legacy/core/utils.js.map +1 -1
- package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js +1 -1
- package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
- package/dist/es-legacy/index.js +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/utils.js +1 -1
- package/dist/es-legacy/language/utils.js.map +1 -1
- package/dist/es-legacy/utils/Script.js.map +1 -1
- package/dist/es-legacy/utils/Validator/ValidationRuleResult.js.map +1 -1
- package/dist/es-legacy/utils/Validator/Validator.js +1 -1
- package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
- package/dist/es-legacy/utils/Validator/defaultRules.js +1 -1
- package/dist/es-legacy/utils/Validator/defaultRules.js.map +1 -1
- package/dist/es-legacy/utils/amount-util.js +1 -1
- package/dist/es-legacy/utils/amount-util.js.map +1 -1
- package/dist/es-legacy/utils/browserInfo.js.map +1 -1
- package/dist/es-legacy/utils/createSdkData.js +1 -1
- package/dist/es-legacy/utils/createSdkData.js.map +1 -1
- package/dist/es-legacy/utils/get-issuer-image.js +1 -1
- package/dist/es-legacy/utils/get-issuer-image.js.map +1 -1
- package/dist/es-legacy/utils/get-process-message-handler.js.map +1 -1
- package/dist/es-legacy/utils/getConsentUrl.js +1 -1
- package/dist/es-legacy/utils/getConsentUrl.js.map +1 -1
- package/dist/es-legacy/utils/getErrorMessage.js.map +1 -1
- package/dist/es-legacy/utils/getOrigin.js.map +1 -1
- package/dist/es-legacy/utils/isValidURL.js +1 -1
- package/dist/es-legacy/utils/isValidURL.js.map +1 -1
- package/dist/es-legacy/utils/promiseTimeout.js.map +1 -1
- package/dist/es-legacy/utils/useAutoFocus.js.map +1 -1
- package/dist/es-legacy/utils/validator-utils.js +1 -1
- package/dist/es-legacy/utils/validator-utils.js.map +1 -1
- package/package.json +25 -24
- package/styles/adyen.css +20 -22
- package/dist/es/components/PayPal/PayPalCredit.js +0 -2
- package/dist/es/components/PayPal/PayPalCredit.js.map +0 -1
- package/dist/es/components/PayPal/PayPalPaylater.js +0 -2
- package/dist/es/components/PayPal/PayPalPaylater.js.map +0 -1
- package/dist/es/components/PayPal/Venmo.js +0 -2
- package/dist/es/components/PayPal/Venmo.js.map +0 -1
- package/dist/es/components/PayPal/components/PayPalButton.js +0 -2
- package/dist/es/components/PayPal/components/PayPalButton.js.map +0 -1
- package/dist/es/components/PayPal/components/PayPalComponentV6.js +0 -2
- package/dist/es/components/PayPal/components/PayPalComponentV6.js.map +0 -1
- package/dist/es/components/PayPal/components/PayPalComponentV6.module.scss.js +0 -2
- package/dist/es/components/PayPal/components/PayPalComponentV6.module.scss.js.map +0 -1
- package/dist/es/components/PayPal/components/PayPalCreditButton.js +0 -2
- package/dist/es/components/PayPal/components/PayPalCreditButton.js.map +0 -1
- package/dist/es/components/PayPal/components/PayPalCreditComponent.js +0 -2
- package/dist/es/components/PayPal/components/PayPalCreditComponent.js.map +0 -1
- package/dist/es/components/PayPal/components/PayPalMessaging.js +0 -2
- package/dist/es/components/PayPal/components/PayPalMessaging.js.map +0 -1
- package/dist/es/components/PayPal/components/PayPalPayLaterButton.js +0 -2
- package/dist/es/components/PayPal/components/PayPalPayLaterButton.js.map +0 -1
- package/dist/es/components/PayPal/components/PayPalPaylaterComponent.js +0 -2
- package/dist/es/components/PayPal/components/PayPalPaylaterComponent.js.map +0 -1
- package/dist/es/components/PayPal/components/PayPalPaylaterComponent.module.scss.js +0 -2
- package/dist/es/components/PayPal/components/PayPalPaylaterComponent.module.scss.js.map +0 -1
- package/dist/es/components/PayPal/components/PayPalProcessingSpinner.js +0 -2
- package/dist/es/components/PayPal/components/PayPalProcessingSpinner.js.map +0 -1
- package/dist/es/components/PayPal/components/PayPalSpinner.js +0 -2
- package/dist/es/components/PayPal/components/PayPalSpinner.js.map +0 -1
- package/dist/es/components/PayPal/components/VenmoButton.js +0 -2
- package/dist/es/components/PayPal/components/VenmoButton.js.map +0 -1
- package/dist/es/components/PayPal/components/VenmoComponent.js +0 -2
- package/dist/es/components/PayPal/components/VenmoComponent.js.map +0 -1
- package/dist/es/components/PayPal/hooks/usePayPalButtonEligibility.js +0 -2
- package/dist/es/components/PayPal/hooks/usePayPalButtonEligibility.js.map +0 -1
- package/dist/es/components/PayPal/hooks/usePayPalOneTimeSession.js +0 -2
- package/dist/es/components/PayPal/hooks/usePayPalOneTimeSession.js.map +0 -1
- package/dist/es/components/PayPal/hooks/usePayPalSaveSession.js +0 -2
- package/dist/es/components/PayPal/hooks/usePayPalSaveSession.js.map +0 -1
- package/dist/es/components/PayPal/hooks/usePayPalSessionOptions.js +0 -2
- package/dist/es/components/PayPal/hooks/usePayPalSessionOptions.js.map +0 -1
- package/dist/es/components/PayPal/hooks/usePayPalStatus.js +0 -2
- package/dist/es/components/PayPal/hooks/usePayPalStatus.js.map +0 -1
- package/dist/es/components/PayPal/hooks/useStartPayPalSession.js +0 -2
- package/dist/es/components/PayPal/hooks/useStartPayPalSession.js.map +0 -1
- package/dist/es/components/PayPal/models/BasePayPalElement.js +0 -2
- package/dist/es/components/PayPal/models/BasePayPalElement.js.map +0 -1
- package/dist/es/components/PayPal/services/PayPalSdkLoader.js +0 -2
- package/dist/es/components/PayPal/services/PayPalSdkLoader.js.map +0 -1
- package/dist/es/components/PayPal/services/PayPalService.js +0 -2
- package/dist/es/components/PayPal/services/PayPalService.js.map +0 -1
- package/dist/es/components/PayPal/services/request-paypal-oauth-token.js +0 -2
- package/dist/es/components/PayPal/services/request-paypal-oauth-token.js.map +0 -1
- package/dist/es/components/PayPal/services/request-paypal-order-details.js +0 -2
- package/dist/es/components/PayPal/services/request-paypal-order-details.js.map +0 -1
- package/dist/es/components/PayPal/utils/is-paypal-service-config-equal.js +0 -2
- package/dist/es/components/PayPal/utils/is-paypal-service-config-equal.js.map +0 -1
- package/dist/es/utils/is-live-environment.js +0 -2
- package/dist/es/utils/is-live-environment.js.map +0 -1
- package/dist/es-legacy/components/PayPal/PayPalCredit.js +0 -2
- package/dist/es-legacy/components/PayPal/PayPalCredit.js.map +0 -1
- package/dist/es-legacy/components/PayPal/PayPalPaylater.js +0 -2
- package/dist/es-legacy/components/PayPal/PayPalPaylater.js.map +0 -1
- package/dist/es-legacy/components/PayPal/Venmo.js +0 -2
- package/dist/es-legacy/components/PayPal/Venmo.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/PayPalButton.js +0 -2
- package/dist/es-legacy/components/PayPal/components/PayPalButton.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/PayPalComponentV6.js +0 -2
- package/dist/es-legacy/components/PayPal/components/PayPalComponentV6.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/PayPalComponentV6.module.scss.js +0 -2
- package/dist/es-legacy/components/PayPal/components/PayPalComponentV6.module.scss.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/PayPalCreditButton.js +0 -2
- package/dist/es-legacy/components/PayPal/components/PayPalCreditButton.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/PayPalCreditComponent.js +0 -2
- package/dist/es-legacy/components/PayPal/components/PayPalCreditComponent.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/PayPalMessaging.js +0 -2
- package/dist/es-legacy/components/PayPal/components/PayPalMessaging.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/PayPalPayLaterButton.js +0 -2
- package/dist/es-legacy/components/PayPal/components/PayPalPayLaterButton.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/PayPalPaylaterComponent.js +0 -2
- package/dist/es-legacy/components/PayPal/components/PayPalPaylaterComponent.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/PayPalPaylaterComponent.module.scss.js +0 -2
- package/dist/es-legacy/components/PayPal/components/PayPalPaylaterComponent.module.scss.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/PayPalProcessingSpinner.js +0 -2
- package/dist/es-legacy/components/PayPal/components/PayPalProcessingSpinner.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/PayPalSpinner.js +0 -2
- package/dist/es-legacy/components/PayPal/components/PayPalSpinner.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/VenmoButton.js +0 -2
- package/dist/es-legacy/components/PayPal/components/VenmoButton.js.map +0 -1
- package/dist/es-legacy/components/PayPal/components/VenmoComponent.js +0 -2
- package/dist/es-legacy/components/PayPal/components/VenmoComponent.js.map +0 -1
- package/dist/es-legacy/components/PayPal/hooks/usePayPalButtonEligibility.js +0 -2
- package/dist/es-legacy/components/PayPal/hooks/usePayPalButtonEligibility.js.map +0 -1
- package/dist/es-legacy/components/PayPal/hooks/usePayPalOneTimeSession.js +0 -2
- package/dist/es-legacy/components/PayPal/hooks/usePayPalOneTimeSession.js.map +0 -1
- package/dist/es-legacy/components/PayPal/hooks/usePayPalSaveSession.js +0 -2
- package/dist/es-legacy/components/PayPal/hooks/usePayPalSaveSession.js.map +0 -1
- package/dist/es-legacy/components/PayPal/hooks/usePayPalSessionOptions.js +0 -2
- package/dist/es-legacy/components/PayPal/hooks/usePayPalSessionOptions.js.map +0 -1
- package/dist/es-legacy/components/PayPal/hooks/usePayPalStatus.js +0 -2
- package/dist/es-legacy/components/PayPal/hooks/usePayPalStatus.js.map +0 -1
- package/dist/es-legacy/components/PayPal/hooks/useStartPayPalSession.js +0 -2
- package/dist/es-legacy/components/PayPal/hooks/useStartPayPalSession.js.map +0 -1
- package/dist/es-legacy/components/PayPal/models/BasePayPalElement.js +0 -2
- package/dist/es-legacy/components/PayPal/models/BasePayPalElement.js.map +0 -1
- package/dist/es-legacy/components/PayPal/services/PayPalSdkLoader.js +0 -2
- package/dist/es-legacy/components/PayPal/services/PayPalSdkLoader.js.map +0 -1
- package/dist/es-legacy/components/PayPal/services/PayPalService.js +0 -2
- package/dist/es-legacy/components/PayPal/services/PayPalService.js.map +0 -1
- package/dist/es-legacy/components/PayPal/services/request-paypal-oauth-token.js +0 -2
- package/dist/es-legacy/components/PayPal/services/request-paypal-oauth-token.js.map +0 -1
- package/dist/es-legacy/components/PayPal/services/request-paypal-order-details.js +0 -2
- package/dist/es-legacy/components/PayPal/services/request-paypal-order-details.js.map +0 -1
- package/dist/es-legacy/components/PayPal/utils/is-paypal-service-config-equal.js +0 -2
- package/dist/es-legacy/components/PayPal/utils/is-paypal-service-config-equal.js.map +0 -1
- package/dist/es-legacy/utils/is-live-environment.js +0 -2
- package/dist/es-legacy/utils/is-live-environment.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Paypal.js","sources":["../../../../src/components/PayPal/Paypal.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PaypalComponent from './components/PaypalComponent';\nimport defaultProps from './defaultProps';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { ERRORS } from './constants';\nimport { TxVariants } from '../tx-variants';\nimport { formatPaypalOrderContactToAdyenFormat } from './utils/format-paypal-order-contact-to-adyen-format';\n\nimport type { AdditionalDetailsData, ICore } from '../../core/types';\nimport type { PaymentAction, PaymentResponseData } from '../../types/global-types';\nimport type { Intent, PayPalConfiguration } from './types';\nimport type {\n PayPalComponents,\n PayPalOnApproveActions,\n PayPalOnApproveData,\n PayPalOnShippingAddressChangeActions,\n PayPalOnShippingAddressChangeData,\n PayPalOnShippingOptionsChangeActions,\n PayPalOnShippingOptionsChangeData,\n PayPalOrderResponseBody,\n PayPalV6OnApproveData,\n PayPalV6OnShippingAddressChangeData,\n PayPalV6OnShippingOptionsChangeData\n} from './paypal-js-types';\nimport type { BaseElementState } from '../internal/BaseElement/types';\nimport type { PayPalServiceRefreshConfig } from './services/PayPalService';\n\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport CancelError from '../../core/Errors/CancelError';\nimport { PayPalSdkLoader } from './services/PayPalSdkLoader';\nimport { PayPalService } from './services/PayPalService';\nimport { PayPalComponentV6 } from './components/PayPalComponentV6';\nimport requestPayPalOrderDetails from './services/request-paypal-order-details';\nimport { isPayPalServiceConfigEqual } from './utils/is-paypal-service-config-equal';\nimport { SUPPORTED_EXPRESS_PRESENTATION_MODE_OPTIONS } from './config';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport './Paypal.scss';\n\nclass PaypalElement extends UIElement<PayPalConfiguration> {\n public static readonly type = TxVariants.paypal;\n public static readonly subtype = 'sdk';\n\n public paymentData: string | null = null;\n\n private resolve: ((value: string) => void) | null = null;\n private reject: ((error?: Error) => void) | null = null;\n\n protected static readonly defaultProps = defaultProps;\n\n private paypalService?: PayPalService;\n\n constructor(checkout: ICore, props?: PayPalConfiguration) {\n super(checkout, props);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleOnShippingAddressChange = this.handleOnShippingAddressChange.bind(this);\n this.handleOnShippingOptionsChange = this.handleOnShippingOptionsChange.bind(this);\n this.handleOnApprove = this.handleOnApprove.bind(this);\n this.handleOnShippingAddressChangeV6 = this.handleOnShippingAddressChangeV6.bind(this);\n this.handleOnShippingOptionsChangeV6 = this.handleOnShippingOptionsChangeV6.bind(this);\n this.handleOnApproveV6 = this.handleOnApproveV6.bind(this);\n this.initializePayPalV6 = this.initializePayPalV6.bind(this);\n\n if (this.props.usePayPalV6) {\n const { isExpress } = this.props;\n const { onShippingAddressChange, onShippingOptionsChange, presentationModeOptions } = this.props.usePayPalV6;\n\n if (!isExpress && (onShippingAddressChange || onShippingOptionsChange)) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'PayPal - You must set \"isExpress\" flag to \"true\" in order to use \"onShippingAddressChange\" and/or \"onShippingOptionsChange\" callbacks'\n );\n }\n\n if (\n isExpress &&\n presentationModeOptions?.presentationMode &&\n !SUPPORTED_EXPRESS_PRESENTATION_MODE_OPTIONS.includes(presentationModeOptions.presentationMode)\n ) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n `PayPal - Unsupported presentation mode: ${presentationModeOptions.presentationMode} for express checkout`\n );\n }\n\n this.initializePayPalV6();\n }\n }\n\n private initializePayPalV6() {\n const sdkLoader = new PayPalSdkLoader({\n analytics: this.analytics,\n environment: this.props.environment,\n nonce: this.props.usePayPalV6?.nonce\n });\n\n this.paypalService = new PayPalService({ sdkLoader, ...this.paypalServiceConfig });\n\n this.onPayPalServiceReady(this.paypalService.initialize());\n }\n\n /**\n * Updates the props, refreshes the PayPal SDK instance and the eligible payment methods if needed, and then\n * re-mounts the element. The refresh is needed because both the SDK instance and the eligible payment methods\n * are derived from props that the merchant can update, like the amount, the country code or the locale.\n *\n * @param props - props to update\n * @returns this - the element instance\n */\n public override update(props: Partial<PayPalConfiguration>): this {\n const previousServiceConfig = this.paypalServiceConfig;\n\n this.props = this.formatProps({ ...this.props, ...props });\n this.state = {} as BaseElementState;\n\n this.refreshPayPalService(previousServiceConfig);\n\n return this.unmount().mount(this._node);\n }\n\n /**\n * Re-creates the PayPal SDK instance and the eligible payment methods, but only if the updated props changed\n * the configuration they are derived from. Any other prop change just re-renders the element.\n *\n * @param previousServiceConfig - The service configuration before the props were updated\n */\n private refreshPayPalService(previousServiceConfig: PayPalServiceRefreshConfig): void {\n if (!this.paypalService) return;\n\n const serviceConfig = this.paypalServiceConfig;\n\n if (isPayPalServiceConfigEqual(previousServiceConfig, serviceConfig)) return;\n\n this.onPayPalServiceReady(this.paypalService.refresh(serviceConfig));\n }\n\n /**\n * Configuration used to create and to refresh the PayPal service. It is kept in a single place to guarantee\n * that the service is always created and refreshed with the same set of props.\n */\n private get paypalServiceConfig(): PayPalServiceRefreshConfig {\n const paypalV6Props = this.props.usePayPalV6;\n\n const components: PayPalComponents = ['paypal-payments'];\n\n if (!paypalV6Props?.blockPayPalVenmoButton) {\n components.push('venmo-payments');\n }\n\n if (paypalV6Props?.onCreatePayPalMessages) {\n components.push('paypal-messages');\n }\n\n return {\n loadingContext: this.props.loadingContext ?? '',\n clientKey: this.props.clientKey ?? '',\n merchantId: this.props.configuration?.merchantId ?? '',\n countryCode: this.props.countryCode ?? '',\n amount: this.props.amount,\n vault: Boolean(paypalV6Props?.vault),\n locale: paypalV6Props?.locale,\n pageType: paypalV6Props?.pageType,\n environment: this.props.environment,\n components\n };\n }\n\n private onPayPalServiceReady(sdkReadyPromise: Promise<void>): void {\n sdkReadyPromise\n .then(() => {\n const { onCreatePayPalMessages } = this.props.usePayPalV6 ?? {};\n\n if (onCreatePayPalMessages && this.paypalService?.getInstance()?.createPayPalMessages) {\n onCreatePayPalMessages(this.paypalService.getInstance().createPayPalMessages);\n }\n })\n .catch(error => {\n this.handleError(\n error instanceof AdyenCheckoutError\n ? error\n : new AdyenCheckoutError('ERROR', 'Something went wrong while initializing PayPal', { cause: error })\n );\n });\n }\n\n public override async isAvailable(): Promise<void> {\n if (this.props.usePayPalV6) {\n if (!this.paypalService) {\n throw new AdyenCheckoutError('ERROR', 'PayPal is not available');\n }\n\n await this.paypalService.isSdkLoaded();\n\n if (!this.paypalService.getEligiblePaymentMethods().isEligible('paypal')) {\n throw new AdyenCheckoutError('ERROR', 'PayPal is not available');\n }\n }\n }\n\n protected override get sdkDataPaymentMethodConfiguration() {\n return this.props.usePayPalV6 ? { supportsPayPalV6: true } : undefined;\n }\n\n formatProps(props: PayPalConfiguration): PayPalConfiguration {\n const merchantId = props.configuration?.merchantId;\n const intentFromConfig = props.configuration?.intent;\n const isZeroAuth = props.amount?.value === 0;\n const intent: Intent | undefined = isZeroAuth ? 'tokenize' : props.intent || intentFromConfig;\n const vault = intent === 'tokenize' || props.vault;\n\n const displayContinueToReviewPageButton = props.userAction === 'continue';\n\n return {\n ...props,\n commit: displayContinueToReviewPageButton ? false : props.commit,\n vault,\n configuration: {\n intent,\n merchantId\n }\n };\n }\n\n protected override beforeRender(configSetByMerchant?: PayPalConfiguration) {\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 submit = () => {\n this.handleError(new AdyenCheckoutError('IMPLEMENTATION_ERROR', ERRORS.SUBMIT_NOT_SUPPORTED));\n };\n\n /**\n * Updates the paymentData value. It must be used in the PayPal Express flow, when patching the amount\n * @param paymentData - Payment data value\n */\n public updatePaymentData(paymentData: string): void {\n if (!paymentData) console.warn('PayPal - Updating payment data with an invalid value');\n this.paymentData = paymentData;\n }\n\n private get browserInfo() {\n return collectBrowserInfo();\n }\n\n /**\n * Formats the component data output\n */\n protected formatData() {\n const { isExpress, userAction, usePayPalV6 } = this.props;\n const isZeroAuth = this.props.amount?.value === 0;\n\n return {\n paymentMethod: {\n type: PaypalElement.type,\n subtype: isExpress ? 'express' : PaypalElement.subtype,\n ...(!usePayPalV6 && { userAction })\n },\n ...(usePayPalV6 && { browserInfo: this.browserInfo }),\n ...(usePayPalV6 && (usePayPalV6.vault || isZeroAuth) && { storePaymentMethod: true })\n };\n }\n\n public handleAction = (action: PaymentAction) => {\n return this.updateWithAction(action);\n };\n\n public updateWithAction = (action: PaymentAction) => {\n if (action.paymentMethodType !== this.type) throw new Error('Invalid Action');\n\n if (action.paymentData) {\n this.paymentData = action.paymentData;\n }\n\n if (action?.sdkData?.token) {\n this.onActionHandled({ componentType: this.type, actionDescription: 'sdk-loaded', originalAction: action });\n this.handleResolve(action.sdkData.token);\n } else {\n this.handleReject(ERRORS.NO_TOKEN_PROVIDED);\n }\n\n return null;\n };\n\n /**\n * Dropin Validation\n *\n * @remarks\n * Paypal does not require any specific Dropin validation\n */\n get isValid() {\n return true;\n }\n\n private handleOnApprove(data: PayPalOnApproveData, actions: PayPalOnApproveActions): Promise<void> {\n const { onAuthorized } = this.props;\n\n const details = Object.entries(data).reduce<Record<string, string | undefined>>((result, [key, value]) => {\n result[key] = value ?? undefined;\n return result;\n }, {});\n\n const state = { data: { details, paymentData: this.paymentData ?? undefined } };\n\n if (!onAuthorized) {\n this.handleAdditionalDetails(state);\n return Promise.resolve();\n }\n\n if (!actions.order) {\n this.handleError(new AdyenCheckoutError('ERROR', 'PayPal order actions are not available'));\n return Promise.resolve();\n }\n\n return actions.order\n .get()\n .then((paypalOrder: PayPalOrderResponseBody) => {\n const billingAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.payer);\n const deliveryAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.purchase_units?.[0].shipping, true);\n\n this.setState({\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<void>((resolve, reject) =>\n onAuthorized(\n {\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n )\n );\n })\n .then(() => this.handleAdditionalDetails(state))\n .catch(error =>\n this.handleError(new AdyenCheckoutError('ERROR', 'Something went wrong with finalizing the PayPal order', { cause: error }))\n );\n }\n\n /**\n * Handles the PayPal SDK v6 'onApprove' event. The shape of the data depends on which session type was started:\n * a one-time payment session returns an 'orderId', whereas a save payment session (zero-auth) returns a\n * 'vaultSetupToken'.\n *\n * @param data - Approve data from the PayPal SDK\n */\n private handleOnApproveV6(data: PayPalV6OnApproveData): Promise<void> {\n const onAuthorized = this.props.usePayPalV6?.onAuthorized;\n\n let state: AdditionalDetailsData | undefined;\n\n // 'orderId' is only present when the shopper approved a one-time payment session, meaning an actual\n // PayPal order was created. The SDK v6 keys are remapped to the casing expected by the /payments/details API.\n if ('orderId' in data) {\n // @ts-expect-error - fundingSource is not in the type but is present in the data\n const { orderId, payerId, fundingSource } = data;\n state = {\n data: {\n details: {\n orderID: orderId,\n payerID: payerId,\n paymentSource: fundingSource\n },\n paymentData: this.paymentData ?? undefined\n }\n };\n }\n\n // 'vaultSetupToken' is only present when the shopper approved a save payment session (zero-auth\n // tokenization). No PayPal order exists in this flow, so the vault token is sent instead of an order id.\n if ('vaultSetupToken' in data) {\n // @ts-expect-error - fundingSource is not in the type but is present in the data\n const { vaultSetupToken, payerId, fundingSource } = data;\n state = {\n data: {\n details: {\n vaultToken: vaultSetupToken,\n payerID: payerId,\n paymentSource: fundingSource\n },\n paymentData: this.paymentData ?? undefined\n }\n };\n }\n\n if (!state) {\n this.handleError(new AdyenCheckoutError('ERROR', 'Missing `orderId` or `vaultSetupToken` in PayPal approval data'));\n return Promise.resolve();\n }\n\n // The order details can only be fetched for a one-time payment session, since the save payment session\n // does not create a PayPal order. Therefore 'onAuthorized' is skipped in the zero-auth flow.\n if (!onAuthorized || !('orderId' in data)) {\n this.handleAdditionalDetails(state);\n return Promise.resolve();\n }\n\n return requestPayPalOrderDetails(this.props.loadingContext ?? '', {\n clientKey: this.props.clientKey ?? '',\n merchantId: this.props.configuration?.merchantId ?? '',\n orderId: data.orderId\n })\n .then(res => {\n this.setState({\n authorizedEvent: res.payPalOrder,\n ...(res.billingAddress && { billingAddress: res.billingAddress }),\n ...(res.deliveryAddress && { deliveryAddress: res.deliveryAddress }),\n ...(res.shopperName && { shopperName: res.shopperName })\n });\n\n return new Promise<void>((resolve, reject) =>\n onAuthorized(\n {\n authorizedEvent: res.payPalOrder,\n ...(res.billingAddress && { billingAddress: res.billingAddress }),\n ...(res.deliveryAddress && { deliveryAddress: res.deliveryAddress }),\n ...(res.shopperName && { shopperName: res.shopperName })\n },\n { resolve, reject }\n )\n );\n })\n .then(() => this.handleAdditionalDetails(state))\n .catch(error =>\n this.handleError(new AdyenCheckoutError('ERROR', 'Something went wrong with finalizing the PayPal order', { cause: error }))\n );\n }\n\n handleResolve(token: string) {\n if (!this.resolve) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.resolve(token);\n }\n\n handleReject(errorMessage: string) {\n if (!this.reject) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.reject(new Error(errorMessage));\n }\n\n private handleSubmit(): Promise<string> {\n return new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n\n this.makePaymentsCall()\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.handleResponse)\n .catch((e: PaymentResponseData | Error) => {\n if (e instanceof CancelError) {\n this.setElementStatus('ready');\n return;\n }\n this.handleFailedResult(e as PaymentResponseData);\n const errorDetail = e instanceof Error ? e.message : JSON.stringify(e);\n const errorMessage = e ? `: ${errorDetail}` : '';\n this.handleReject(`${ERRORS.PAYMENT_FAILED}${errorMessage}`);\n });\n });\n }\n\n /**\n * If the merchant provides the 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingAddressChange(data: PayPalOnShippingAddressChangeData, actions: PayPalOnShippingAddressChangeActions): Promise<void> {\n const { onShippingAddressChange } = this.props;\n\n if (!onShippingAddressChange) return Promise.resolve();\n\n return onShippingAddressChange(data, actions, this);\n }\n\n /**\n * If the merchant provides the 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingOptionsChange(data: PayPalOnShippingOptionsChangeData, actions: PayPalOnShippingOptionsChangeActions): Promise<void> {\n const { onShippingOptionsChange } = this.props;\n\n if (!onShippingOptionsChange) return Promise.resolve();\n\n return onShippingOptionsChange(data, actions, this);\n }\n\n /**\n * If the merchant provides the 'usePayPalV6' prop with an 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - The shipping address change data\n */\n private handleOnShippingAddressChangeV6(data: PayPalV6OnShippingAddressChangeData): Promise<void> {\n const { usePayPalV6 } = this.props;\n\n if (!usePayPalV6?.onShippingAddressChange) return Promise.resolve();\n\n return usePayPalV6.onShippingAddressChange(data, this);\n }\n\n /**\n * If the merchant provides the 'usePayPalV6' prop with an 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - The shipping options change data\n */\n private handleOnShippingOptionsChangeV6(data: PayPalV6OnShippingOptionsChangeData): Promise<void> {\n const { usePayPalV6 } = this.props;\n\n if (!usePayPalV6?.onShippingOptionsChange) return Promise.resolve();\n\n return usePayPalV6.onShippingOptionsChange(data, this);\n }\n\n protected override componentToRender(): h.JSX.Element | null {\n if (this.props.usePayPalV6) {\n const { usePayPalV6: paypalv6Props } = this.props;\n\n if (!this.paypalService) return null;\n\n return (\n <PayPalComponentV6\n setComponentRef={this.setComponentRef}\n paypalService={this.paypalService}\n {...(paypalv6Props.onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChangeV6 })}\n {...(paypalv6Props.onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChangeV6 })}\n style={paypalv6Props.style}\n commit={paypalv6Props.commit}\n vault={paypalv6Props.vault}\n blockPayPalButtonVariants={paypalv6Props.blockPayPalButtonVariants}\n blockPayPalCreditButton={paypalv6Props.blockPayPalCreditButton}\n blockPayPalPayLaterButton={paypalv6Props.blockPayPalPayLaterButton}\n blockPayPalVenmoButton={paypalv6Props.blockPayPalVenmoButton}\n presentationModeOptions={paypalv6Props.presentationModeOptions}\n environment={this.props.environment}\n onSubmit={this.handleSubmit}\n onApprove={this.handleOnApproveV6}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onError={error => this.handleError(new AdyenCheckoutError('ERROR', String(error), { cause: error }))}\n />\n );\n }\n\n // TODO: remove this check in adyen-web v7 as the PayPal buttons do not support custom pay buttons\n if (!this.props.showPayButton) return null;\n\n const { onShippingAddressChange, onShippingOptionsChange, ...rest } = this.props;\n\n return (\n <PaypalComponent\n {...rest}\n setComponentRef={this.setComponentRef}\n {...(onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChange })}\n {...(onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChange })}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onChange={this.setState}\n onApprove={this.handleOnApprove}\n onError={error => {\n this.handleError(new AdyenCheckoutError('ERROR', String(error), { cause: error }));\n }}\n onScriptLoadFailure={error => this.handleError(error)}\n onSubmit={this.handleSubmit}\n />\n );\n }\n}\n\nexport default PaypalElement;\n"],"names":["PaypalElement","UIElement","initializePayPalV6","_this_props_usePayPalV6","sdkLoader","PayPalSdkLoader","analytics","this","environment","props","nonce","usePayPalV6","paypalService","PayPalService","_object_spread","paypalServiceConfig","onPayPalServiceReady","initialize","update","previousServiceConfig","formatProps","state","refreshPayPalService","unmount","mount","_node","serviceConfig","isPayPalServiceConfigEqual","refresh","_this_props_loadingContext","_this_props_clientKey","_ref","_this_props_countryCode","_this_props_configuration","paypalV6Props","components","blockPayPalVenmoButton","push","onCreatePayPalMessages","loadingContext","clientKey","merchantId","configuration","countryCode","amount","vault","Boolean","locale","pageType","sdkReadyPromise","then","_this_paypalService_getInstance","_this_paypalService","getInstance","createPayPalMessages","catch","error","handleError","AdyenCheckoutError","cause","isAvailable","isSdkLoaded","getEligiblePaymentMethods","isEligible","sdkDataPaymentMethodConfiguration","supportsPayPalV6","undefined","intentFromConfig","intent","value","displayContinueToReviewPageButton","userAction","_object_spread_props","commit","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","type","InfoEventType","rendered","component","configData","showPayButton","isExpress","expressPage","sendAnalytics","updatePaymentData","paymentData","console","warn","browserInfo","collectBrowserInfo","formatData","_this_props_amount","isZeroAuth","paymentMethod","subtype","storePaymentMethod","isValid","handleOnApprove","data","actions","_this_paymentData","onAuthorized","details","Object","entries","reduce","result","key","order","get","paypalOrder","billingAddress","formatPaypalOrderContactToAdyenFormat","payer","deliveryAddress","purchase_units","shipping","setState","authorizedEvent","Promise","resolve","reject","handleAdditionalDetails","handleOnApproveV6","orderId","payerId","fundingSource","orderID","payerID","paymentSource","_this_paymentData1","vaultSetupToken","vaultToken","requestPayPalOrderDetails","res","payPalOrder","shopperName","handleResolve","token","ERRORS","WRONG_INSTANCE","handleReject","errorMessage","Error","handleSubmit","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","e","CancelError","setElementStatus","handleFailedResult","errorDetail","message","JSON","stringify","PAYMENT_FAILED","handleOnShippingAddressChange","onShippingAddressChange","handleOnShippingOptionsChange","onShippingOptionsChange","handleOnShippingAddressChangeV6","handleOnShippingOptionsChangeV6","componentToRender","paypalv6Props","h","PayPalComponentV6","setComponentRef","style","blockPayPalButtonVariants","blockPayPalCreditButton","blockPayPalPayLaterButton","presentationModeOptions","onSubmit","onApprove","onCancel","onError","String","_this_props","rest","PaypalComponent","onChange","onScriptLoadFailure","constructor","checkout","super","_define_property","submit","SUBMIT_NOT_SUPPORTED","handleAction","action","updateWithAction","paymentMethodType","sdkData","onActionHandled","componentType","actionDescription","originalAction","NO_TOKEN_PROVIDED","bind","presentationMode","SUPPORTED_EXPRESS_PRESENTATION_MODE_OPTIONS","includes","TxVariants","paypal","defaultProps"],"mappings":"mjFAwCA,MAAMA,UAAsBC,EAkDhBC,kBAAAA,GAIO,IAAAC,EAHX,MAAMC,EAAY,IAAIC,EAAgB,CAClCC,UAAWC,KAAKD,UAChBE,YAAaD,KAAKE,MAAMD,YACxBE,MAA6B,QAAtBP,EAAAI,KAAKE,MAAME,mBAAX,IAAAR,OAAA,EAAAA,EAAwBO,QAGnCH,KAAKK,cAAgB,IAAIC,EAAcC,EAAA,CAAEV,aAAcG,KAAKQ,sBAE5DR,KAAKS,qBAAqBT,KAAKK,cAAcK,aACjD,CAUgBC,MAAAA,CAAOT,GACnB,MAAMU,EAAwBZ,KAAKQ,oBAOnC,OALAR,KAAKE,MAAQF,KAAKa,YAAYN,EAAA,CAAA,EAAKP,KAAKE,MAAUA,IAClDF,KAAKc,MAAQ,CAAA,EAEbd,KAAKe,qBAAqBH,GAEnBZ,KAAKgB,UAAUC,MAAMjB,KAAKkB,MACrC,CAQQH,oBAAAA,CAAqBH,GACzB,IAAKZ,KAAKK,cAAe,OAEzB,MAAMc,EAAgBnB,KAAKQ,oBAEvBY,EAA2BR,EAAuBO,IAEtDnB,KAAKS,qBAAqBT,KAAKK,cAAcgB,QAAQF,GACzD,CAMA,uBAAYX,GAcY,IAAAc,EACLC,EAAAC,EAEEC,EADDC,EAfhB,MAAMC,EAAgB3B,KAAKE,MAAME,YAE3BwB,EAA+B,CAAC,mBAUtC,OARKD,eAAAA,EAAeE,yBAChBD,EAAWE,KAAK,mBAGhBH,aAAAA,EAAAA,EAAeI,yBACfH,EAAWE,KAAK,mBAGb,CACHE,eAAyC,QAAzBV,EAAAtB,KAAKE,MAAM8B,0BAAXV,EAAAA,EAA6B,GAC7CW,UAA+B,QAApBV,EAAAvB,KAAKE,MAAM+B,qBAAXV,EAAAA,EAAwB,GACnCW,WAAgD,QAAtCV,EAA0B,QAAxBE,EAAA1B,KAAKE,MAAMiC,qBAAX,IAAAT,OAAA,EAAAA,EAA0BQ,kBAAU,IAAAV,EAAAA,EAAI,GACpDY,YAAmC,QAAtBX,EAAAzB,KAAKE,MAAMkC,uBAAXX,EAAAA,EAA0B,GACvCY,OAAQrC,KAAKE,MAAMmC,OACnBC,MAAOC,QAAQZ,aAAAA,EAAAA,EAAeW,OAC9BE,OAAQb,aAAAA,EAAAA,EAAea,OACvBC,SAAUd,aAAAA,EAAAA,EAAec,SACzBxC,YAAaD,KAAKE,MAAMD,YACxB2B,aAER,CAEQnB,oBAAAA,CAAqBiC,GACzBA,EACKC,KAAK,KACiC,IAAA/C,EAELgD,EAAAC,EAF9B,MAAMd,uBAAEA,GAAiD,QAAtBnC,EAAAI,KAAKE,MAAME,mBAAX,IAAAR,EAAAA,EAA0B,CAAA,EAEzDmC,IAA4C,QAAlBc,EAAA7C,KAAKK,qBAAL,IAAAwC,GAA+B,QAA/BD,EAAAC,EAAoBC,qBAApB,IAAAF,SAAAA,EAAmCG,uBAC7DhB,EAAuB/B,KAAKK,cAAcyC,cAAcC,wBAG/DC,MAAMC,IACHjD,KAAKkD,YACDD,aAAiBE,EACXF,EACA,IAAIE,EAAmB,QAAS,iDAAkD,CAAEC,MAAOH,MAGjH,CAEA,iBAAsBI,GAClB,GAAIrD,KAAKE,MAAME,YAAa,CACxB,IAAKJ,KAAKK,cACN,MAAM,IAAI8C,EAAmB,QAAS,2BAK1C,SAFMnD,KAAKK,cAAciD,eAEpBtD,KAAKK,cAAckD,4BAA4BC,WAAW,UAC3D,MAAM,IAAIL,EAAmB,QAAS,0BAE9C,CACJ,CAEA,qCAAuBM,GACnB,OAAOzD,KAAKE,MAAME,YAAc,CAAEsD,kBAAkB,QAASC,CACjE,CAEA9C,WAAAA,CAAYX,GACWA,IAAAA,EACMA,EACNA,EAFnB,MAAMgC,EAAgC,QAAnBhC,EAAAA,EAAMiC,qBAANjC,IAAAA,SAAAA,EAAqBgC,WAClC0B,EAAsC,QAAnB1D,EAAAA,EAAMiC,qBAANjC,IAAAA,SAAAA,EAAqB2D,OAExCA,EADqC,KAAZ,QAAZ3D,EAAAA,EAAMmC,cAANnC,IAAAA,OAAAA,EAAAA,EAAc4D,OACe,WAAa5D,EAAM2D,QAAUD,EACvEtB,EAAmB,aAAXuB,GAAyB3D,EAAMoC,MAEvCyB,EAAyD,aAArB7D,EAAM8D,WAEhD,OAAOC,EAAA1D,EAAA,CAAA,EACAL,GAAAA,CACHgE,QAAQH,GAA4C7D,EAAMgE,OAC1D5B,QACAH,cAAe,CACX0B,SACA3B,eAGZ,CAEmBiC,YAAAA,CAAaC,GAC5B,MAAMC,EAAQ,IAAIC,EAAmB/D,EAAA,CACjCgE,KAAMC,EAAcC,SACpBC,UAAW1E,KAAKuE,KAChBI,WAAYV,EAAA1D,EAAA,CAAA,EAAK6D,GAAAA,CAAqBQ,cAAe5E,KAAKE,MAAM0E,kBAC5DR,aAAAA,EAAAA,EAAqBS,YAAa,CAAEA,UAAWT,EAAoBS,YACnET,aAAAA,EAAAA,EAAqBU,cAAe,CAAEA,YAAaV,EAAoBU,eAG/E9E,KAAKD,UAAUgF,cAAcV,EACjC,CAUOW,iBAAAA,CAAkBC,GAChBA,GAAaC,QAAQC,KAAK,wDAC/BnF,KAAKiF,YAAcA,CACvB,CAEA,eAAYG,GACR,OAAOC,GACX,CAKA,UAAAC,GAEuB,IAAAC,EADnB,MAAMV,UAAEA,EAASb,WAAEA,EAAU5D,YAAEA,GAAgBJ,KAAKE,MAC9CsF,EAA0C,KAAZ,QAAjBD,EAAAvF,KAAKE,MAAMmC,cAAX,IAAAkD,OAAA,EAAAA,EAAmBzB,OAEtC,OAAOvD,EAAA,CACHkF,cAAelF,EAAA,CACXgE,KAAM9E,EAAc8E,KACpBmB,QAASb,EAAY,UAAYpF,EAAciG,UAC1CtF,GAAe,CAAE4D,gBAEtB5D,GAAe,CAAEgF,YAAapF,KAAKoF,aACnChF,IAAgBA,EAAYkC,OAASkD,IAAe,CAAEG,oBAAoB,GAEtF,CA6BA,WAAIC,GACA,OAAO,CACX,CAEQC,eAAAA,CAAgBC,EAA2BC,GAQD,IAAAC,EAP9C,MAAMC,aAAEA,GAAiBjG,KAAKE,MAOxBY,EAAQ,CAAEgF,KAAM,CAAEI,QALRC,OAAOC,QAAQN,GAAMO,OAA2C,CAACC,GAASC,EAAKzC,MAC3FwC,EAAOC,GAAOzC,QAAAA,OAASH,EAChB2C,GACR,CAAA,GAE8BrB,YAA6B,QAAhBe,EAAAhG,KAAKiF,uBAALe,EAAAA,OAAoBrC,IAElE,OAAKsC,EAKAF,EAAQS,MAKNT,EAAQS,MACVC,MACA9D,KAAM+D,IAE2DA,IAAAA,EAD9D,MAAMC,EAAiBC,EAAsCF,aAAAA,EAAAA,EAAaG,OACpEC,EAAkBF,EAAsCF,SAA2B,QAA3BA,EAAAA,EAAaK,0BAAbL,SAAAA,EAA8B,GAAGM,UAAU,GAQzG,OANAhH,KAAKiH,SAAS1G,EAAA,CACV2G,gBAAiBR,GACbC,GAAkB,CAAEA,kBACpBG,GAAmB,CAAEA,qBAGtB,IAAIK,QAAc,CAACC,EAASC,IAC/BpB,EACI1F,EAAA,CACI2G,gBAAiBR,GACbC,GAAkB,CAAEA,kBACpBG,GAAmB,CAAEA,oBAE7B,CAAEM,UAASC,cAItB1E,KAAK,IAAM3C,KAAKsH,wBAAwBxG,IACxCkC,MAAMC,GACHjD,KAAKkD,YAAY,IAAIC,EAAmB,QAAS,wDAAyD,CAAEC,MAAOH,OA7BvHjD,KAAKkD,YAAY,IAAIC,EAAmB,QAAS,2CAC1CgE,QAAQC,YANfpH,KAAKsH,wBAAwBxG,GACtBqG,QAAQC,UAmCvB,CASQG,iBAAAA,CAAkBzB,OAmDWxE,EAClBC,EAAAC,EAnDM5B,EAoDL8B,EApDhB,MAAMuE,EAAqC,QAAtBrG,EAAAI,KAAKE,MAAME,mBAAX,IAAAR,OAAA,EAAAA,EAAwBqG,aAE7C,IAAInF,EAIJ,GAAI,YAAagF,EAAM,CAUE,IAAAE,EARrB,MAAMwB,QAAEA,EAAOC,QAAEA,EAAOC,cAAEA,GAAkB5B,EAC5ChF,EAAQ,CACJgF,KAAM,CACFI,QAAS,CACLyB,QAASH,EACTI,QAASH,EACTI,cAAeH,GAEnBzC,YAA6B,QAAhBe,EAAAhG,KAAKiF,uBAALe,EAAAA,OAAoBrC,GAG7C,CAIA,GAAI,oBAAqBmC,EAAM,CAUN,IAAAgC,EARrB,MAAMC,gBAAEA,EAAeN,QAAEA,EAAOC,cAAEA,GAAkB5B,EACpDhF,EAAQ,CACJgF,KAAM,CACFI,QAAS,CACL8B,WAAYD,EACZH,QAASH,EACTI,cAAeH,GAEnBzC,YAA6B,QAAhB6C,EAAA9H,KAAKiF,uBAAL6C,EAAAA,OAAoBnE,GAG7C,CAEA,OAAK7C,EAOAmF,GAAkB,YAAaH,EAK7BmC,EAAmD,QAAzB3G,EAAAtB,KAAKE,MAAM8B,0BAAXV,EAAAA,EAA6B,GAAI,CAC9DW,UAA+B,QAApBV,EAAAvB,KAAKE,MAAM+B,qBAAXV,EAAAA,EAAwB,GACnCW,WAAgD,QAAtCV,EAA0B,QAAxBE,EAAA1B,KAAKE,MAAMiC,qBAAX,IAAAT,OAAA,EAAAA,EAA0BQ,kBAAU,IAAAV,EAAAA,EAAI,GACpDgG,QAAS1B,EAAK0B,UAEb7E,KAAKuF,IACFlI,KAAKiH,SAAS1G,EAAA,CACV2G,gBAAiBgB,EAAIC,aACjBD,EAAIvB,gBAAkB,CAAEA,eAAgBuB,EAAIvB,gBAC5CuB,EAAIpB,iBAAmB,CAAEA,gBAAiBoB,EAAIpB,iBAC9CoB,EAAIE,aAAe,CAAEA,YAAaF,EAAIE,eAGvC,IAAIjB,QAAc,CAACC,EAASC,IAC/BpB,EACI1F,EAAA,CACI2G,gBAAiBgB,EAAIC,aACjBD,EAAIvB,gBAAkB,CAAEA,eAAgBuB,EAAIvB,gBAC5CuB,EAAIpB,iBAAmB,CAAEA,gBAAiBoB,EAAIpB,iBAC9CoB,EAAIE,aAAe,CAAEA,YAAaF,EAAIE,cAE9C,CAAEhB,UAASC,cAItB1E,KAAK,IAAM3C,KAAKsH,wBAAwBxG,IACxCkC,MAAMC,GACHjD,KAAKkD,YAAY,IAAIC,EAAmB,QAAS,wDAAyD,CAAEC,MAAOH,OA/BvHjD,KAAKsH,wBAAwBxG,GACtBqG,QAAQC,YARfpH,KAAKkD,YAAY,IAAIC,EAAmB,QAAS,mEAC1CgE,QAAQC,UAuCvB,CAEAiB,aAAAA,CAAcC,GACV,IAAKtI,KAAKoH,QAAS,OAAOpH,KAAKkD,YAAY,IAAIC,EAAmB,QAASoF,EAAOC,iBAClFxI,KAAKoH,QAAQkB,EACjB,CAEAG,YAAAA,CAAaC,GACT,IAAK1I,KAAKqH,OAAQ,OAAOrH,KAAKkD,YAAY,IAAIC,EAAmB,QAASoF,EAAOC,iBACjFxI,KAAKqH,OAAO,IAAIsB,MAAMD,GAC1B,CAEQE,YAAAA,GACJ,OAAO,IAAIzB,QAAQ,CAACC,EAASC,KACzBrH,KAAKoH,QAAUA,EACfpH,KAAKqH,OAASA,EAEdrH,KAAK6I,mBACAlG,KAAKmG,GACLnG,KAAKoG,GACLpG,KAAK3C,KAAKgJ,gBACVhG,MAAOiG,IACJ,GAAIA,aAAaC,EAEb,YADAlJ,KAAKmJ,iBAAiB,SAG1BnJ,KAAKoJ,mBAAmBH,GACxB,MAAMI,EAAcJ,aAAaN,MAAQM,EAAEK,QAAUC,KAAKC,UAAUP,GAC9DP,EAAeO,EAAI,KAAKI,IAAgB,GAC9CrJ,KAAKyI,aAAa,GAAGF,EAAOkB,iBAAiBf,QAG7D,CAUA,6BAAAgB,CAAsC5D,EAAyCC,GAC3E,MAAM4D,wBAAEA,GAA4B3J,KAAKE,MAEzC,OAAKyJ,EAEEA,EAAwB7D,EAAMC,EAAS/F,MAFTmH,QAAQC,SAGjD,CAUA,6BAAAwC,CAAsC9D,EAAyCC,GAC3E,MAAM8D,wBAAEA,GAA4B7J,KAAKE,MAEzC,OAAK2J,EAEEA,EAAwB/D,EAAMC,EAAS/F,MAFTmH,QAAQC,SAGjD,CASQ0C,+BAAAA,CAAgChE,GACpC,MAAM1F,YAAEA,GAAgBJ,KAAKE,MAE7B,OAAKE,eAAAA,EAAauJ,yBAEXvJ,EAAYuJ,wBAAwB7D,EAAM9F,MAFCmH,QAAQC,SAG9D,CASQ2C,+BAAAA,CAAgCjE,GACpC,MAAM1F,YAAEA,GAAgBJ,KAAKE,MAE7B,OAAKE,eAAAA,EAAayJ,yBAEXzJ,EAAYyJ,wBAAwB/D,EAAM9F,MAFCmH,QAAQC,SAG9D,CAEmB4C,iBAAAA,GACf,GAAIhK,KAAKE,MAAME,YAAa,CACxB,MAAQA,YAAa6J,GAAkBjK,KAAKE,MAE5C,OAAKF,KAAKK,cAGN6J,EAACC,EAAAA,EAAAA,EAAAA,CACGC,gBAAiBpK,KAAKoK,gBACtB/J,cAAeL,KAAKK,eACf4J,EAAcN,yBAA2B,CAAEA,wBAAyB3J,KAAK8J,iCACzEG,EAAcJ,yBAA2B,CAAEA,wBAAyB7J,KAAK+J,kCAAgC,CAC9GM,MAAOJ,EAAcI,MACrBnG,OAAQ+F,EAAc/F,OACtB5B,MAAO2H,EAAc3H,MACrBgI,0BAA2BL,EAAcK,0BACzCC,wBAAyBN,EAAcM,wBACvCC,0BAA2BP,EAAcO,0BACzC3I,uBAAwBoI,EAAcpI,uBACtC4I,wBAAyBR,EAAcQ,wBACvCxK,YAAaD,KAAKE,MAAMD,YACxByK,SAAU1K,KAAK4I,aACf+B,UAAW3K,KAAKuH,kBAChBqD,SAAU,IAAM5K,KAAKkD,YAAY,IAAIC,EAAmB,WACxD0H,QAAS5H,GAASjD,KAAKkD,YAAY,IAAIC,EAAmB,QAAS2H,OAAO7H,GAAQ,CAAEG,MAAOH,QApBnE,IAuBpC,CAGA,IAAKjD,KAAKE,MAAM0E,cAAe,OAAO,KAEtC,MAAsEmG,EAAA/K,KAAKE,OAArEyJ,wBAAEA,EAAuBE,wBAAEA,GAAqCkB,EAATC,EAAAA,EAASD,EAAA,uDAEtE,OACIb,EAACe,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,GACOD,GAAAA,CACJZ,gBAAiBpK,KAAKoK,kBACjBT,GAA2B,CAAEA,wBAAyB3J,KAAK0J,+BAC3DG,GAA2B,CAAEA,wBAAyB7J,KAAK4J,gCAA8B,CAC9FgB,SAAU,IAAM5K,KAAKkD,YAAY,IAAIC,EAAmB,WACxD+H,SAAUlL,KAAKiH,SACf0D,UAAW3K,KAAK6F,gBAChBgF,QAAS5H,IACLjD,KAAKkD,YAAY,IAAIC,EAAmB,QAAS2H,OAAO7H,GAAQ,CAAEG,MAAOH,MAE7EkI,oBAAqBlI,GAASjD,KAAKkD,YAAYD,GAC/CyH,SAAU1K,KAAK4I,eAG3B,CAnhBA,WAAAwC,CAAYC,EAAiBnL,GAWzB,GAVAoL,MAAMD,EAAUnL,GAVpBqL,EAAAvL,KAAOiF,cAA6B,MAEpCsG,EAAAvL,KAAQoH,UAA4C,MACpDmE,EAAAvL,KAAQqH,SAA2C,MAInDkE,EAAAvL,KAAQK,qBAAR,GAyLAkL,OAAOC,SAAS,KACZxL,KAAKkD,YAAY,IAAIC,EAAmB,uBAAwBoF,EAAOkD,yBAkC3EF,EAAAvL,KAAO0L,eAAgBC,GACZ3L,KAAK4L,iBAAiBD,IAGjCJ,EAAAvL,KAAO4L,mBAAoBD,IAOnBA,IAAAA,EANJ,GAAIA,EAAOE,oBAAsB7L,KAAKuE,KAAM,MAAM,IAAIoE,MAAM,kBAa5D,OAXIgD,EAAO1G,cACPjF,KAAKiF,YAAc0G,EAAO1G,cAG1B0G,SAAe,QAAfA,EAAAA,EAAQG,eAARH,IAAAA,SAAAA,EAAiBrD,QACjBtI,KAAK+L,gBAAgB,CAAEC,cAAehM,KAAKuE,KAAM0H,kBAAmB,aAAcC,eAAgBP,IAClG3L,KAAKqI,cAAcsD,EAAOG,QAAQxD,QAElCtI,KAAKyI,aAAaF,EAAO4D,mBAGtB,OA1OPnM,KAAK4I,aAAe5I,KAAK4I,aAAawD,KAAKpM,MAC3CA,KAAK0J,8BAAgC1J,KAAK0J,8BAA8B0C,KAAKpM,MAC7EA,KAAK4J,8BAAgC5J,KAAK4J,8BAA8BwC,KAAKpM,MAC7EA,KAAK6F,gBAAkB7F,KAAK6F,gBAAgBuG,KAAKpM,MACjDA,KAAK8J,gCAAkC9J,KAAK8J,gCAAgCsC,KAAKpM,MACjFA,KAAK+J,gCAAkC/J,KAAK+J,gCAAgCqC,KAAKpM,MACjFA,KAAKuH,kBAAoBvH,KAAKuH,kBAAkB6E,KAAKpM,MACrDA,KAAKL,mBAAqBK,KAAKL,mBAAmByM,KAAKpM,MAEnDA,KAAKE,MAAME,YAAa,CACxB,MAAMyE,UAAEA,GAAc7E,KAAKE,OACrByJ,wBAAEA,EAAuBE,wBAAEA,EAAuBY,wBAAEA,GAA4BzK,KAAKE,MAAME,YAEjG,IAAKyE,IAAc8E,GAA2BE,GAC1C,MAAM,IAAI1G,EACN,uBACA,yIAIR,GACI0B,IACA4F,aAAAA,EAAAA,EAAyB4B,oBACxBC,EAA4CC,SAAS9B,EAAwB4B,kBAE9E,MAAM,IAAIlJ,EACN,uBACA,2CAA2CsH,EAAwB4B,yCAI3ErM,KAAKL,oBACT,CACJ,EA/CA4L,EADE9L,EACqB8E,OAAOiI,EAAWC,QACzClB,EAFE9L,EAEqBiG,UAAU,OAOjC6F,EATE9L,EASwBiN,eAAeA"}
|
|
1
|
+
{"version":3,"file":"Paypal.js","sources":["../../../../src/components/PayPal/Paypal.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PaypalComponent from './components/PaypalComponent';\nimport defaultProps from './defaultProps';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { ERRORS } from './constants';\nimport { TxVariants } from '../tx-variants';\nimport { formatPaypalOrderContactToAdyenFormat } from './utils/format-paypal-order-contact-to-adyen-format';\n\nimport type { ICore } from '../../core/types';\nimport type { PaymentAction, PaymentResponseData } from '../../types/global-types';\nimport type { Intent, PayPalConfiguration } from './types';\nimport type {\n PayPalOnApproveActions,\n PayPalOnApproveData,\n PayPalOnShippingAddressChangeActions,\n PayPalOnShippingAddressChangeData,\n PayPalOnShippingOptionsChangeActions,\n PayPalOnShippingOptionsChangeData,\n PayPalOrderResponseBody\n} from './paypal-js-types';\n\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport CancelError from '../../core/Errors/CancelError';\nimport './Paypal.scss';\n\nclass PaypalElement extends UIElement<PayPalConfiguration> {\n public static readonly type = TxVariants.paypal;\n public static readonly subtype = 'sdk';\n\n public paymentData: string | null = null;\n\n private resolve: ((value: string) => void) | null = null;\n private reject: ((error?: Error) => void) | null = null;\n\n protected static readonly defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: PayPalConfiguration) {\n super(checkout, props);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleOnShippingAddressChange = this.handleOnShippingAddressChange.bind(this);\n this.handleOnShippingOptionsChange = this.handleOnShippingOptionsChange.bind(this);\n }\n\n formatProps(props: PayPalConfiguration): PayPalConfiguration {\n const merchantId = props.configuration?.merchantId;\n const intentFromConfig = props.configuration?.intent;\n const isZeroAuth = props.amount?.value === 0;\n const intent: Intent | undefined = isZeroAuth ? 'tokenize' : props.intent || intentFromConfig;\n const vault = intent === 'tokenize' || props.vault;\n\n const displayContinueToReviewPageButton = props.userAction === 'continue';\n\n return {\n ...props,\n commit: displayContinueToReviewPageButton ? false : props.commit,\n vault,\n configuration: {\n intent,\n merchantId\n }\n };\n }\n\n protected override beforeRender(configSetByMerchant?: PayPalConfiguration) {\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 submit = () => {\n this.handleError(new AdyenCheckoutError('IMPLEMENTATION_ERROR', ERRORS.SUBMIT_NOT_SUPPORTED));\n };\n\n /**\n * Updates the paymentData value. It must be used in the PayPal Express flow, when patching the amount\n * @param paymentData - Payment data value\n */\n public updatePaymentData(paymentData: string): void {\n if (!paymentData) console.warn('PayPal - Updating payment data with an invalid value');\n this.paymentData = paymentData;\n }\n\n /**\n * Formats the component data output\n */\n protected formatData() {\n const { isExpress, userAction } = this.props;\n\n return {\n paymentMethod: {\n type: PaypalElement.type,\n userAction,\n subtype: isExpress ? 'express' : PaypalElement.subtype\n }\n };\n }\n\n public handleAction = (action: PaymentAction) => {\n return this.updateWithAction(action);\n };\n\n public updateWithAction = (action: PaymentAction) => {\n if (action.paymentMethodType !== this.type) throw new Error('Invalid Action');\n\n if (action.paymentData) {\n this.paymentData = action.paymentData;\n }\n\n if (action.sdkData && action.sdkData.token) {\n this.onActionHandled({ componentType: this.type, actionDescription: 'sdk-loaded', originalAction: action });\n this.handleResolve(action.sdkData.token);\n } else {\n this.handleReject(ERRORS.NO_TOKEN_PROVIDED);\n }\n\n return null;\n };\n\n /**\n * Dropin Validation\n *\n * @remarks\n * Paypal does not require any specific Dropin validation\n */\n get isValid() {\n return true;\n }\n\n private readonly handleOnApprove = (data: PayPalOnApproveData, actions: PayPalOnApproveActions): Promise<void> => {\n const { onAuthorized } = this.props;\n\n const details = Object.entries(data).reduce<Record<string, string | undefined>>((result, [key, value]) => {\n result[key] = value ?? undefined;\n return result;\n }, {});\n\n const state = { data: { details, paymentData: this.paymentData ?? undefined } };\n\n if (!onAuthorized) {\n this.handleAdditionalDetails(state);\n return Promise.resolve();\n }\n\n if (!actions.order) {\n this.handleError(new AdyenCheckoutError('ERROR', 'PayPal order actions are not available'));\n return Promise.resolve();\n }\n\n return actions.order\n .get()\n .then((paypalOrder: PayPalOrderResponseBody) => {\n const billingAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.payer);\n const deliveryAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.purchase_units?.[0].shipping, true);\n\n this.setState({\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<void>((resolve, reject) =>\n onAuthorized(\n {\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n )\n );\n })\n .then(() => this.handleAdditionalDetails(state))\n .catch(error => this.handleError(new AdyenCheckoutError('ERROR', 'Something went wrong while parsing PayPal Order', { cause: error })));\n };\n\n handleResolve(token: string) {\n if (!this.resolve) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.resolve(token);\n }\n\n handleReject(errorMessage: string) {\n if (!this.reject) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.reject(new Error(errorMessage));\n }\n\n private handleSubmit(): Promise<string> {\n return new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n\n this.makePaymentsCall()\n ?.then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.handleResponse)\n .catch((e: PaymentResponseData | Error) => {\n if (e instanceof CancelError) {\n this.setElementStatus('ready');\n return;\n }\n this.handleFailedResult(e as PaymentResponseData);\n const errorDetail = e instanceof Error ? e.message : JSON.stringify(e);\n const errorMessage = e ? `: ${errorDetail}` : '';\n this.handleReject(`${ERRORS.PAYMENT_FAILED}${errorMessage}`);\n });\n });\n }\n\n /**\n * If the merchant provides the 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingAddressChange(data: PayPalOnShippingAddressChangeData, actions: PayPalOnShippingAddressChangeActions): Promise<void> {\n const { onShippingAddressChange } = this.props;\n\n if (!onShippingAddressChange) return Promise.resolve();\n\n return onShippingAddressChange(data, actions, this);\n }\n\n /**\n * If the merchant provides the 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingOptionsChange(data: PayPalOnShippingOptionsChangeData, actions: PayPalOnShippingOptionsChangeActions): Promise<void> {\n const { onShippingOptionsChange } = this.props;\n\n if (!onShippingOptionsChange) return Promise.resolve();\n\n return onShippingOptionsChange(data, actions, this);\n }\n\n protected override componentToRender(): h.JSX.Element | null {\n if (!this.props.showPayButton) return null;\n\n const { onShippingAddressChange, onShippingOptionsChange, ...rest } = this.props;\n\n return (\n <PaypalComponent\n {...rest}\n setComponentRef={this.setComponentRef}\n {...(onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChange })}\n {...(onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChange })}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onChange={this.setState}\n onApprove={this.handleOnApprove}\n onError={error => {\n this.handleError(new AdyenCheckoutError('ERROR', String(error), { cause: error }));\n }}\n onScriptLoadFailure={error => this.handleError(error)}\n onSubmit={this.handleSubmit}\n />\n );\n }\n}\n\nexport default PaypalElement;\n"],"names":["PaypalElement","UIElement","formatProps","props","merchantId","configuration","intentFromConfig","intent","amount","value","vault","displayContinueToReviewPageButton","userAction","_object_spread_props","_object_spread","commit","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","type","InfoEventType","rendered","component","this","configData","showPayButton","isExpress","expressPage","analytics","sendAnalytics","updatePaymentData","paymentData","console","warn","formatData","paymentMethod","subtype","isValid","handleResolve","token","resolve","handleError","AdyenCheckoutError","ERRORS","WRONG_INSTANCE","handleReject","errorMessage","reject","Error","handleSubmit","Promise","_this_makePaymentsCall","makePaymentsCall","then","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","catch","e","CancelError","setElementStatus","handleFailedResult","errorDetail","message","JSON","stringify","PAYMENT_FAILED","handleOnShippingAddressChange","data","actions","onShippingAddressChange","handleOnShippingOptionsChange","onShippingOptionsChange","componentToRender","_this_props","rest","h","PaypalComponent","setComponentRef","onCancel","onChange","setState","onApprove","handleOnApprove","onError","error","String","cause","onScriptLoadFailure","onSubmit","constructor","checkout","super","_define_property","submit","SUBMIT_NOT_SUPPORTED","handleAction","action","updateWithAction","paymentMethodType","sdkData","onActionHandled","componentType","actionDescription","originalAction","NO_TOKEN_PROVIDED","_this_paymentData","onAuthorized","state","details","Object","entries","reduce","result","key","undefined","order","get","paypalOrder","billingAddress","formatPaypalOrderContactToAdyenFormat","payer","deliveryAddress","purchase_units","shipping","authorizedEvent","handleAdditionalDetails","bind","TxVariants","paypal","defaultProps"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as t,useEffect as n}from"../../../external/preact/hooks/dist/hooks.js";import o from"../../../_virtual/index.js";import{getStyle as r}from"../utils/get-paypal-styles.js";import{
|
|
1
|
+
import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as t,useEffect as n}from"../../../external/preact/hooks/dist/hooks.js";import o from"../../../_virtual/index.js";import{getStyle as r}from"../utils/get-paypal-styles.js";import a from"../../internal/Spinner/Spinner.js";import{useCoreContext as c}from"../../../core/Context/CoreProvider.js";function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function p(e,t){if(null==e)return{};var n,o,r,a={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(n=Reflect.ownKeys(Object(e)),r=0;r<n.length;r++)o=n[r],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o]);return a}if(a=function(e,t){if(null==e)return{};var n,o,r={},a=Object.getOwnPropertyNames(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n]);return r}(e,t),Object.getOwnPropertySymbols)for(n=Object.getOwnPropertySymbols(e),r=0;r<n.length;r++)o=n[r],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o]);return a}function s(s){let{onInit:u,onApprove:y,onClick:f,onCancel:d,onError:b,onShippingAddressChange:_,onShippingOptionsChange:m,onSubmit:g,isProcessingPayment:O,paypalRef:h,style:P}=s,v=p(s,["onInit","onApprove","onClick","onCancel","onError","onShippingAddressChange","onShippingOptionsChange","onSubmit","isProcessingPayment","paypalRef","style"]);var j;const{i18n:k}=c(),S="tokenize"===(null===(j=v.configuration)||void 0===j?void 0:j.intent),C=t(null),w=t(null),E=t(null),A=t(null),N=(e,t)=>{var n;const o=i(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){l(e,t,n[t])})}return e}({},S&&{createBillingAgreement:g},!S&&{createOrder:g},!S&&"venmo"!==e&&_&&{onShippingAddressChange:_},!S&&"venmo"!==e&&m&&{onShippingOptionsChange:m}),{fundingSource:e,style:r(e,P),onInit:u,onClick:f,onCancel:d,onError:b,onApprove:y}),a=null==h||null===(n=h.Buttons)||void 0===n?void 0:n.call(h,o);(null==a?void 0:a.isEligible())&&t.current&&a.render(t.current)};n(()=>{const{PAYPAL:e,CREDIT:t,PAYLATER:n,VENMO:o}=null==h?void 0:h.FUNDING;v.blockPayPalButton||N(e,C),v.blockPayPalCreditButton||N(t,w),v.blockPayPalPayLaterButton||N(n,E),v.blockPayPalVenmoButton||N(o,A)},[]);const x=!0===v.commit;return e("div",{className:o("adyen-checkout__paypal__buttons",{"adyen-checkout__paypal-processing":O})},e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--paypal",ref:C}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--credit",ref:w}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--pay-later",ref:E}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--venmo",ref:A}),O&&e("div",{className:"adyen-checkout__paypal"},e("div",{className:"adyen-checkout__paypal__status adyen-checkout__paypal__status--processing"},e(a,{size:"medium",inline:!0}),x&&k.get("paypal.processingPayment"))))}export{s as default};
|
|
2
2
|
//# sourceMappingURL=PaypalButtons.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaypalButtons.js","sources":["../../../../../src/components/PayPal/components/PaypalButtons.tsx"],"sourcesContent":["import { h, RefObject } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\nimport classnames from 'classnames';\nimport { getStyle } from '../utils/get-paypal-styles';\
|
|
1
|
+
{"version":3,"file":"PaypalButtons.js","sources":["../../../../../src/components/PayPal/components/PaypalButtons.tsx"],"sourcesContent":["import { h, RefObject } from 'preact';\nimport { useEffect, useRef } from 'preact/hooks';\nimport classnames from 'classnames';\nimport { getStyle } from '../utils/get-paypal-styles';\nimport Spinner from '../../internal/Spinner';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\n\nimport type { PayPalButtonsProps } from './types';\nimport type { SupportedPayPalFundingSources } from '../types';\n\nexport default function PaypalButtons({\n onInit,\n onApprove,\n onClick,\n onCancel,\n onError,\n onShippingAddressChange,\n onShippingOptionsChange,\n onSubmit,\n isProcessingPayment,\n paypalRef,\n style,\n ...props\n}: Readonly<PayPalButtonsProps>) {\n const { i18n } = useCoreContext();\n const isTokenize = props.configuration?.intent === 'tokenize';\n const paypalButtonRef = useRef<HTMLDivElement>(null);\n const creditButtonRef = useRef<HTMLDivElement>(null);\n const payLaterButtonRef = useRef<HTMLDivElement>(null);\n const venmoButtonRef = useRef<HTMLDivElement>(null);\n\n const createButton = (fundingSource: SupportedPayPalFundingSources, buttonRef: RefObject<HTMLDivElement>) => {\n const configuration = {\n ...(isTokenize && { createBillingAgreement: onSubmit }),\n ...(!isTokenize && { createOrder: onSubmit }),\n ...(!isTokenize && fundingSource !== 'venmo' && onShippingAddressChange && { onShippingAddressChange }),\n ...(!isTokenize && fundingSource !== 'venmo' && onShippingOptionsChange && { onShippingOptionsChange }),\n fundingSource,\n style: getStyle(fundingSource, style),\n onInit,\n onClick,\n onCancel,\n onError,\n onApprove\n };\n\n const button = paypalRef?.Buttons?.(configuration);\n\n if (button?.isEligible() && buttonRef.current) {\n void button.render(buttonRef.current);\n }\n };\n\n useEffect(() => {\n const { PAYPAL, CREDIT, PAYLATER, VENMO } = paypalRef?.FUNDING as Record<string, SupportedPayPalFundingSources>;\n\n if (!props.blockPayPalButton) createButton(PAYPAL, paypalButtonRef);\n if (!props.blockPayPalCreditButton) createButton(CREDIT, creditButtonRef);\n if (!props.blockPayPalPayLaterButton) createButton(PAYLATER, payLaterButtonRef);\n if (!props.blockPayPalVenmoButton) createButton(VENMO, venmoButtonRef);\n }, []);\n\n const isProcessingPaymentWithoutReviewPage = props.commit === true;\n\n return (\n <div className={classnames('adyen-checkout__paypal__buttons', { 'adyen-checkout__paypal-processing': isProcessingPayment })}>\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--paypal\" ref={paypalButtonRef} />\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--credit\" ref={creditButtonRef} />\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--pay-later\" ref={payLaterButtonRef} />\n <div className=\"adyen-checkout__paypal__button adyen-checkout__paypal__button--venmo\" ref={venmoButtonRef} />\n\n {isProcessingPayment && (\n <div className=\"adyen-checkout__paypal\">\n <div className=\"adyen-checkout__paypal__status adyen-checkout__paypal__status--processing\">\n <Spinner size=\"medium\" inline />\n {isProcessingPaymentWithoutReviewPage && i18n.get('paypal.processingPayment')}\n </div>\n </div>\n )}\n </div>\n );\n}\n"],"names":["PaypalButtons","_0","onInit","onApprove","onClick","onCancel","onError","onShippingAddressChange","onShippingOptionsChange","onSubmit","isProcessingPayment","paypalRef","style","props","i18n","useCoreContext","isTokenize","configuration","intent","paypalButtonRef","useRef","creditButtonRef","payLaterButtonRef","venmoButtonRef","createButton","fundingSource","buttonRef","_object_spread_props","createBillingAgreement","createOrder","getStyle","button","Buttons","isEligible","current","render","useEffect","PAYPAL","CREDIT","PAYLATER","VENMO","FUNDING","blockPayPalButton","blockPayPalCreditButton","blockPayPalPayLaterButton","blockPayPalVenmoButton","isProcessingPaymentWithoutReviewPage","commit","h","div","className","classnames","ref","Spinner","size","inline","get"],"mappings":"s9CAUe,SAASA,EAAcC,OAAAC,OAClCA,EAAMC,UACNA,EAASC,QACTA,EAAOC,SACPA,EAAQC,QACRA,EAAOC,wBACPA,EAAuBC,wBACvBA,EAAuBC,SACvBA,EAAQC,oBACRA,EAAmBC,UACnBA,EAASC,MACTA,GAE2BX,EADxBY,EAAAA,EAAAA,EAAAA,gKAGgBA,IAAAA,EADnB,MAAMC,KAAEA,GAASC,IACXC,EAA6C,cAAb,QAAnBH,EAAAA,EAAMI,qBAANJ,IAAAA,OAAAA,EAAAA,EAAqBK,QAClCC,EAAkBC,EAAuB,MACzCC,EAAkBD,EAAuB,MACzCE,EAAoBF,EAAuB,MAC3CG,EAAiBH,EAAuB,MAExCI,EAAe,CAACC,EAA8CC,KAejDf,IAAAA,EAdf,MAAMM,EAAgBU,wUACdX,GAAc,CAAEY,uBAAwBnB,IACvCO,GAAc,CAAEa,YAAapB,IAC7BO,GAAgC,UAAlBS,GAA6BlB,GAA2B,CAAEA,4BACxES,GAAgC,UAAlBS,GAA6BjB,GAA2B,CAAEA,4BAAwB,CACrGiB,gBACAb,MAAOkB,EAASL,EAAeb,GAC/BV,SACAE,UACAC,WACAC,UACAH,cAGE4B,EAASpB,SAAkB,QAAlBA,EAAAA,EAAWqB,mBAAXrB,OAAAA,EAAAA,EAAAA,KAAAA,EAAqBM,IAEhCc,eAAAA,EAAQE,eAAgBP,EAAUQ,SAC7BH,EAAOI,OAAOT,EAAUQ,UAIrCE,EAAU,KACN,MAAMC,OAAEA,EAAMC,OAAEA,EAAMC,SAAEA,EAAQC,MAAEA,GAAU7B,aAAAA,EAAAA,EAAW8B,QAElD5B,EAAM6B,mBAAmBlB,EAAaa,EAAQlB,GAC9CN,EAAM8B,yBAAyBnB,EAAac,EAAQjB,GACpDR,EAAM+B,2BAA2BpB,EAAae,EAAUjB,GACxDT,EAAMgC,wBAAwBrB,EAAagB,EAAOjB,IACxD,IAEH,MAAMuB,GAAwD,IAAjBjC,EAAMkC,OAEnD,OACIC,EAACC,MAAAA,CAAIC,UAAWC,EAAW,kCAAmC,CAAE,oCAAqCzC,KACjGsC,EAACC,MAAAA,CAAIC,UAAU,wEAAwEE,IAAKjC,IAC5F6B,EAACC,MAAAA,CAAIC,UAAU,wEAAwEE,IAAK/B,IAC5F2B,EAACC,MAAAA,CAAIC,UAAU,2EAA2EE,IAAK9B,IAC/F0B,EAACC,MAAAA,CAAIC,UAAU,uEAAuEE,IAAK7B,IAE1Fb,GACGsC,EAACC,MAAAA,CAAIC,UAAU,0BACXF,EAACC,MAAAA,CAAIC,UAAU,6EACXF,EAACK,EAAAA,CAAQC,KAAK,SAASC,QAAAA,IACtBT,GAAwChC,EAAK0C,IAAI,8BAM1E"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as e}from"../../../external/preact/dist/preact.js";import{useState as t,useRef as r,useEffect as n,useCallback as o}from"../../../external/preact/hooks/dist/hooks.js";import
|
|
1
|
+
import{createElement as e}from"../../../external/preact/dist/preact.js";import{useState as t,useRef as r,useEffect as n,useCallback as o}from"../../../external/preact/hooks/dist/hooks.js";import a from"./PaypalButtons.js";import c from"../../internal/Spinner/Spinner.js";import{getPaypalUrl as p}from"../utils/get-paypal-url.js";import s from"../../../utils/Script.js";import i from"../../../core/Analytics/useAnalytics.js";function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){l(e,t,r[t])})}return e}function y(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 r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}function f(e,t){if(null==e)return{};var r,n,o,a={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(r=Reflect.ownKeys(Object(e)),o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n]);return a}if(a=function(e,t){if(null==e)return{};var r,n,o={},a=Object.getOwnPropertyNames(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}(e,t),Object.getOwnPropertySymbols)for(r=Object.getOwnPropertySymbols(e),o=0;o<r.length;o++)n=r[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n]);return a}function b(l){let{onApprove:b,onCancel:m,onError:O,onSubmit:d,onScriptLoadFailure:j,setComponentRef:g}=l,P=f(l,["onApprove","onCancel","onError","onSubmit","onScriptLoadFailure","setComponentRef"]);const[w,v]=t("pending"),{analytics:S}=i(),h=r({setStatus:v});n(()=>{g(h.current)},[g]);const _=o((e,t)=>(v("processing"),b(e,t),Promise.resolve()),[b]),E=()=>{v("ready")},k=e=>{j(e)};return n(()=>{const e=p(P),t=u({},P.cspNonce&&{nonce:P.cspNonce}),r=u({},P.cspNonce&&{cspNonce:P.cspNonce}),n=new s({src:e,component:"paypal",attributes:t,dataAttributes:r,analytics:S});return n.load().then(E).catch(k),()=>{n.remove()}},[]),"pending"===w?e("div",{className:"adyen-checkout__paypal","aria-live":"polite","aria-busy":"true"},e("div",{className:"adyen-checkout__paypal__status adyen-checkout__paypal__status--pending","data-testid":"paypal-loader"},e(c,null))):e("div",{className:"adyen-checkout__paypal","data-testid":"paypal-component"},e(a,y(u({},P),{onCancel:m,onError:O,onSubmit:d,onApprove:_,isProcessingPayment:"processing"===w,paypalRef:window.paypal})))}export{b as default};
|
|
2
2
|
//# sourceMappingURL=PaypalComponent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaypalComponent.js","sources":["../../../../../src/components/PayPal/components/PaypalComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useCallback, useRef } from 'preact/hooks';\n\nimport PaypalButtons from './PaypalButtons';\nimport
|
|
1
|
+
{"version":3,"file":"PaypalComponent.js","sources":["../../../../../src/components/PayPal/components/PaypalComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useCallback, useRef } from 'preact/hooks';\n\nimport PaypalButtons from './PaypalButtons';\nimport Spinner from '../../internal/Spinner';\nimport { getPaypalUrl } from '../utils/get-paypal-url';\nimport Script from '../../../utils/Script';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport type { PayPalComponentProps } from './types';\nimport useAnalytics from '../../../core/Analytics/useAnalytics';\nimport { ComponentMethodsRef } from '../../types';\nimport type { PayPalOnApproveActions, PayPalOnApproveData } from '../paypal-js-types';\n\nexport default function PaypalComponent({\n onApprove,\n onCancel,\n onError,\n onSubmit,\n onScriptLoadFailure,\n setComponentRef,\n ...props\n}: Readonly<PayPalComponentProps>) {\n const [status, setStatus] = useState('pending');\n const { analytics } = useAnalytics();\n\n const paypalComponentRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus\n });\n\n useEffect(() => {\n setComponentRef(paypalComponentRef.current);\n }, [setComponentRef]);\n\n const handleOnApprove = useCallback(\n (data: PayPalOnApproveData, actions: PayPalOnApproveActions) => {\n setStatus('processing');\n // Awaiting this callback delays closing of the PayPal popup or closing the redirect page\n // after the payment has been approved\n void onApprove(data, actions);\n return Promise.resolve();\n },\n [onApprove]\n );\n\n const handlePaypalLoad = () => {\n setStatus('ready');\n };\n\n const handlePaypalLoadFailure = (error: AdyenCheckoutError) => {\n onScriptLoadFailure(error);\n };\n\n useEffect(() => {\n const src = getPaypalUrl(props);\n\n const attributes = { ...(props.cspNonce && { nonce: props.cspNonce }) },\n dataAttributes = { ...(props.cspNonce && { cspNonce: props.cspNonce }) };\n\n const script = new Script({\n src,\n component: 'paypal',\n attributes,\n dataAttributes,\n analytics\n });\n\n script.load().then(handlePaypalLoad).catch(handlePaypalLoadFailure);\n\n return () => {\n script.remove();\n };\n }, []);\n\n if (status === 'pending') {\n return (\n <div className=\"adyen-checkout__paypal\" aria-live=\"polite\" aria-busy=\"true\">\n <div className=\"adyen-checkout__paypal__status adyen-checkout__paypal__status--pending\" data-testid=\"paypal-loader\">\n <Spinner />\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"adyen-checkout__paypal\" data-testid=\"paypal-component\">\n <PaypalButtons\n {...props}\n onCancel={onCancel}\n onError={onError}\n onSubmit={onSubmit}\n onApprove={handleOnApprove}\n isProcessingPayment={status === 'processing'}\n paypalRef={window.paypal}\n />\n </div>\n );\n}\n"],"names":["PaypalComponent","_0","onApprove","onCancel","onError","onSubmit","onScriptLoadFailure","setComponentRef","props","status","setStatus","useState","analytics","useAnalytics","paypalComponentRef","useRef","useEffect","current","handleOnApprove","useCallback","data","actions","Promise","resolve","handlePaypalLoad","handlePaypalLoadFailure","error","src","getPaypalUrl","attributes","_object_spread","cspNonce","nonce","dataAttributes","script","Script","component","load","then","catch","remove","h","div","className","aria-live","aria-busy","data-testid","Spinner","PaypalButtons","isProcessingPayment","paypalRef","window","paypal"],"mappings":"00DAae,SAASA,EAAgBC,GAAA,IAAAC,UACpCA,EAASC,SACTA,EAAQC,QACRA,EAAOC,SACPA,EAAQC,oBACRA,EAAmBC,gBACnBA,GAE6BN,EAD1BO,EAAAA,EAAAA,EAAAA,uFAEH,MAAOC,EAAQC,GAAaC,EAAS,YAC/BC,UAAEA,GAAcC,IAEhBC,EAAqBC,EAA4B,CACnDL,UAAWA,IAGfM,EAAU,KACNT,EAAgBO,EAAmBG,UACpC,CAACV,IAEJ,MAAMW,EAAkBC,EACpB,CAACC,EAA2BC,KACxBX,EAAU,cAGLR,EAAUkB,EAAMC,GACdC,QAAQC,WAEnB,CAACrB,IAGCsB,EAAmB,KACrBd,EAAU,UAGRe,EAA2BC,IAC7BpB,EAAoBoB,IAwBxB,OArBAV,EAAU,KACN,MAAMW,EAAMC,EAAapB,GAEnBqB,EAAaC,EAAA,GAAMtB,EAAMuB,UAAY,CAAEC,MAAOxB,EAAMuB,WACtDE,EAAiBH,EAAA,CAAA,EAAMtB,EAAMuB,UAAY,CAAEA,SAAUvB,EAAMuB,WAEzDG,EAAS,IAAIC,EAAO,CACtBR,MACAS,UAAW,SACXP,aACAI,iBACArB,cAKJ,OAFAsB,EAAOG,OAAOC,KAAKd,GAAkBe,MAAMd,GAEpC,KACHS,EAAOM,WAEZ,IAEY,YAAX/B,EAEIgC,EAACC,MAAAA,CAAIC,UAAU,yBAAyBC,YAAU,SAASC,YAAU,QACjEJ,EAACC,MAAAA,CAAIC,UAAU,yEAAyEG,cAAY,iBAChGL,EAACM,EAAAA,QAObN,EAACC,MAAAA,CAAIC,UAAU,yBAAyBG,cAAY,oBAChDL,EAACO,EAAAA,EAAAA,EAAAA,CAAAA,EACOxC,GAAAA,CACJL,SAAUA,EACVC,QAASA,EACTC,SAAUA,EACVH,UAAWgB,EACX+B,oBAAgC,eAAXxC,EACrByC,UAAWC,OAAOC,UAIlC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const _="2020-02-01",
|
|
1
|
+
const _="2020-02-01",h="https://www.paypal.com/sdk/js",e="AXy9hIzWB6h_LjZUHjHmsbsiicSIbL4GKOrcgomEedVjduUinIU4C2llxkW5p0OG0zTNgviYFceaXEnj",t="AU0Z-TP9t5_9196agaBN6ZD3UAwypdP1IX8ZYH3PcNNAQMXUTDQlChruXqQEhyI6-NKBKowN6ydkj477",p=["black","white"],N=["en_US","en_AU","en_GB","fr_CA","es_ES","it_IT","fr_FR","de_DE","pt_BR","zh_CN","da_DK","zh_HK","id_ID","he_IL","ja_JP","ko_KR","nl_NL","no_NO","pl_PL","pt_PT","ru_RU","sv_SE","th_TH","zh_TW"];export{t as ADYEN_CLIENTID_LIVE,e as ADYEN_CLIENTID_TEST,_ as INTEGRATION_DATE,h as PAYPAL_JS_URL,p as SUPPORTED_COLORS_FOR_CREDIT,N as SUPPORTED_LOCALES};
|
|
2
2
|
//# sourceMappingURL=config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sources":["../../../../src/components/PayPal/config.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"config.js","sources":["../../../../src/components/PayPal/config.ts"],"sourcesContent":["const INTEGRATION_DATE = '2020-02-01';\nconst PAYPAL_JS_URL = 'https://www.paypal.com/sdk/js';\nconst ADYEN_CLIENTID_TEST = 'AXy9hIzWB6h_LjZUHjHmsbsiicSIbL4GKOrcgomEedVjduUinIU4C2llxkW5p0OG0zTNgviYFceaXEnj';\nconst ADYEN_CLIENTID_LIVE = 'AU0Z-TP9t5_9196agaBN6ZD3UAwypdP1IX8ZYH3PcNNAQMXUTDQlChruXqQEhyI6-NKBKowN6ydkj477';\n\nconst SUPPORTED_COLORS_FOR_CREDIT = ['black', 'white'];\n\nconst SUPPORTED_LOCALES = [\n 'en_US',\n 'en_AU',\n 'en_GB',\n 'fr_CA',\n 'es_ES',\n 'it_IT',\n 'fr_FR',\n 'de_DE',\n 'pt_BR',\n 'zh_CN',\n 'da_DK',\n 'zh_HK',\n 'id_ID',\n 'he_IL',\n 'ja_JP',\n 'ko_KR',\n 'nl_NL',\n 'no_NO',\n 'pl_PL',\n 'pt_PT',\n 'ru_RU',\n 'sv_SE',\n 'th_TH',\n 'zh_TW'\n] as const;\n\nexport { INTEGRATION_DATE, PAYPAL_JS_URL, ADYEN_CLIENTID_TEST, ADYEN_CLIENTID_LIVE, SUPPORTED_LOCALES, SUPPORTED_COLORS_FOR_CREDIT };\n"],"names":["INTEGRATION_DATE","PAYPAL_JS_URL","ADYEN_CLIENTID_TEST","ADYEN_CLIENTID_LIVE","SUPPORTED_COLORS_FOR_CREDIT","SUPPORTED_LOCALES"],"mappings":"AAAA,MAAMA,EAAmB,aACnBC,EAAgB,gCAChBC,EAAsB,mFACtBC,EAAsB,mFAEtBC,EAA8B,CAAC,QAAS,SAExCC,EAAoB,CACtB,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{SUPPORTED_LOCALES as n}from"../config.js";const l=l=>{const o=l?l.replace("-","_"):null;return n.includes(o)?o:null};export{l as getSupportedLocale};
|
|
2
2
|
//# sourceMappingURL=get-paypal-locale.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-paypal-locale.js","sources":["../../../../../src/components/PayPal/utils/get-paypal-locale.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"get-paypal-locale.js","sources":["../../../../../src/components/PayPal/utils/get-paypal-locale.ts"],"sourcesContent":["import { SUPPORTED_LOCALES } from '../config';\nimport type { PayPalSupportedLocale } from './types';\n\n/**\n * Returns either a locale supported by PayPal or null, in order to let the PayPal SDK auto-detect the shopper locale.\n */\nexport const getSupportedLocale = (locale?: string): PayPalSupportedLocale => {\n const formattedLocale = locale ? locale.replace('-', '_') : null;\n const supportedLocale = SUPPORTED_LOCALES.includes(formattedLocale as PayPalSupportedLocale) ? formattedLocale : null;\n return supportedLocale as PayPalSupportedLocale;\n};\n"],"names":["getSupportedLocale","locale","formattedLocale","replace","SUPPORTED_LOCALES","includes"],"mappings":"iDAMO,MAAMA,EAAsBC,IAC/B,MAAMC,EAAkBD,EAASA,EAAOE,QAAQ,IAAK,KAAO,KAE5D,OADwBC,EAAkBC,SAASH,GAA4CA,EAAkB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{getSupportedLocale as e}from"./get-paypal-locale.js";import{INTEGRATION_DATE as t,ADYEN_CLIENTID_TEST as n,ADYEN_CLIENTID_LIVE as r}from"../config.js";function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(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 n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const i=({amount:i,countryCode:u,debug:a,environment:l="",locale:b,configuration:s={},commit:p,vault:y,enableMessages:f})=>{const O=e(b),g=i?i.currency:null,m="test"===l.toLowerCase(),j=m?n:r,{merchantId:d,intent:P}=s,w="buttons,funding-eligibility"+(f?",messages":"");return c(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){o(e,t,n[t])})}return e}({},d&&{"merchant-id":d},O&&{locale:O},u&&m&&{"buyer-country":u},a&&m&&{debug:a},g&&{currency:g},P&&{intent:P}),{commit:p,vault:y,"client-id":j,"integration-date":t,"enable-funding":"paylater,venmo",components:w})};export{i as getPaypalSettings};
|
|
2
2
|
//# sourceMappingURL=get-paypal-settings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-paypal-settings.js","sources":["../../../../../src/components/PayPal/utils/get-paypal-settings.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"get-paypal-settings.js","sources":["../../../../../src/components/PayPal/utils/get-paypal-settings.ts"],"sourcesContent":["import { getSupportedLocale } from './get-paypal-locale';\nimport { ADYEN_CLIENTID_LIVE, ADYEN_CLIENTID_TEST, INTEGRATION_DATE } from '../config';\nimport type { PaypalSettings, PayPalSupportedLocale } from './types';\nimport type { PayPalComponentProps } from '../components/types';\n\n/**\n * Returns an object of settings for the PayPal SDK\n */\nexport const getPaypalSettings = ({\n amount,\n countryCode,\n debug,\n environment = '',\n locale,\n configuration = {},\n commit,\n vault,\n enableMessages\n}: Partial<PayPalComponentProps>): PaypalSettings => {\n const shopperLocale: PayPalSupportedLocale = getSupportedLocale(locale);\n const currency: string | null = amount ? amount.currency : null;\n const isTestEnvironment: boolean = environment.toLowerCase() === 'test';\n const clientId: string = isTestEnvironment ? ADYEN_CLIENTID_TEST : ADYEN_CLIENTID_LIVE;\n const { merchantId, intent } = configuration;\n const components = `buttons,funding-eligibility${enableMessages ? ',messages' : ''}`;\n\n return {\n ...(merchantId && { 'merchant-id': merchantId }),\n ...(shopperLocale && { locale: shopperLocale }),\n ...(countryCode && isTestEnvironment && { 'buyer-country': countryCode }),\n ...(debug && isTestEnvironment && { debug }),\n ...(currency && { currency }),\n ...(intent && { intent }),\n commit,\n vault,\n 'client-id': clientId,\n 'integration-date': INTEGRATION_DATE,\n 'enable-funding': 'paylater,venmo',\n components\n };\n};\n"],"names":["getPaypalSettings","amount","countryCode","debug","environment","locale","configuration","commit","vault","enableMessages","shopperLocale","getSupportedLocale","currency","isTestEnvironment","toLowerCase","clientId","ADYEN_CLIENTID_TEST","ADYEN_CLIENTID_LIVE","merchantId","intent","components","_object_spread_props","INTEGRATION_DATE"],"mappings":"moBAQO,MAAMA,EAAoB,EAC7BC,SACAC,cACAC,QACAC,cAAc,GACdC,SACAC,gBAAgB,CAAA,EAChBC,SACAC,QACAC,qBAEA,MAAMC,EAAuCC,EAAmBN,GAC1DO,EAA0BX,EAASA,EAAOW,SAAW,KACrDC,EAA2D,SAA9BT,EAAYU,cACzCC,EAAmBF,EAAoBG,EAAsBC,GAC7DC,WAAEA,EAAUC,OAAEA,GAAWb,EACzBc,EAAa,+BAA8BX,EAAiB,YAAc,IAEhF,OAAOY,wUACCH,GAAc,CAAE,cAAeA,GAC/BR,GAAiB,CAAEL,OAAQK,GAC3BR,GAAeW,GAAqB,CAAE,gBAAiBX,GACvDC,GAASU,GAAqB,CAAEV,SAChCS,GAAY,CAAEA,YACdO,GAAU,CAAEA,WAAO,CACvBZ,SACAC,QACA,YAAaO,EACb,mBAAoBO,EACpB,iBAAkB,iBAClBF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{getPaypalSettings as o}from"./get-paypal-settings.js";import{
|
|
1
|
+
import{getPaypalSettings as o}from"./get-paypal-settings.js";import{PAYPAL_JS_URL as t}from"../config.js";const e=e=>{const n=o(e),p=decodeURIComponent(Object.keys(n).map(o=>`${o}=${n[o]}`).join("&"));return`${t}?${p}`};export{e as getPaypalUrl};
|
|
2
2
|
//# sourceMappingURL=get-paypal-url.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-paypal-url.js","sources":["../../../../../src/components/PayPal/utils/get-paypal-url.ts"],"sourcesContent":["import { getPaypalSettings } from './get-paypal-settings';\nimport {
|
|
1
|
+
{"version":3,"file":"get-paypal-url.js","sources":["../../../../../src/components/PayPal/utils/get-paypal-url.ts"],"sourcesContent":["import { getPaypalSettings } from './get-paypal-settings';\nimport { PAYPAL_JS_URL } from '../config';\nimport type { PayPalComponentProps } from '../components/types';\n\n/**\n * Returns the PayPal SDK script URL with query parameters\n * @see {@link https://developer.paypal.com/docs/checkout/reference/customize-sdk/}\n */\nexport const getPaypalUrl = (props: Partial<PayPalComponentProps>): string => {\n const settings = getPaypalSettings(props);\n const params = decodeURIComponent(\n Object.keys(settings)\n .map(key => `${key}=${settings[key]}`)\n .join('&')\n );\n return `${PAYPAL_JS_URL}?${params}`;\n};\n"],"names":["getPaypalUrl","props","settings","getPaypalSettings","params","decodeURIComponent","Object","keys","map","key","join","PAYPAL_JS_URL"],"mappings":"0GAQO,MAAMA,EAAgBC,IACzB,MAAMC,EAAWC,EAAkBF,GAC7BG,EAASC,mBACXC,OAAOC,KAAKL,GACPM,IAAIC,GAAO,GAAGA,KAAOP,EAASO,MAC9BC,KAAK,MAEd,MAAO,GAAGC,KAAiBP"}
|
|
@@ -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{TxVariants as r}from"../tx-variants.js";import s from"./components/FastlaneComponent.js";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class o extends t{formatData(){return{paymentMethod:{type:o.type,fastlaneData:btoa(JSON.stringify({fastlaneSessionId:this.props.fastlaneSessionId,tokenId:this.props.tokenId}))}}}beforeRender(){super.beforeRender()}async isAvailable(){const{tokenId:e,lastFour:t,brand:r,email:s}=this.props;return e&&t&&r&&s?Promise.resolve():Promise.reject()}get isValid(){return!0}get icon(){var e;return null!==(e=this.props.icon)&&void 0!==e?e:this.resources.getImage()("card")}get brands(){const{brands:e}=this.props;return e.map(e=>({icon:this.
|
|
1
|
+
import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import{TxVariants as r}from"../tx-variants.js";import s from"./components/FastlaneComponent.js";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}class o extends t{formatData(){return{paymentMethod:{type:o.type,fastlaneData:btoa(JSON.stringify({fastlaneSessionId:this.props.fastlaneSessionId,tokenId:this.props.tokenId}))}}}beforeRender(){super.beforeRender()}async isAvailable(){const{tokenId:e,lastFour:t,brand:r,email:s}=this.props;return e&&t&&r&&s?Promise.resolve():Promise.reject()}get isValid(){return!0}get icon(){var e;return null!==(e=this.props.icon)&&void 0!==e?e:this.resources.getImage()("card")}get brands(){const{brands:e=[]}=this.props;return e.map(e=>({icon:this.resources.getImage()(e),name:e}))}componentToRender(){return e(s,{lastFour:this.props.lastFour,brand:this.props.brand,payButton:this.payButton,setComponentRef:this.setComponentRef})}}n(o,"type",r.fastlane),n(o,"defaultProps",{keepBrandsVisible:!0});export{o as default};
|
|
2
2
|
//# sourceMappingURL=Fastlane.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Fastlane.js","sources":["../../../../src/components/PayPalFastlane/Fastlane.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport { TxVariants } from '../tx-variants';\nimport FastlaneComponent from './components/FastlaneComponent';\nimport type { FastlaneConfiguration } from './types';\nimport { PaymentMethodBrand } from '../../types/global-types';\n\nclass Fastlane extends UIElement<FastlaneConfiguration> {\n public static readonly type = TxVariants.fastlane;\n\n protected static readonly defaultProps = {\n keepBrandsVisible: true\n };\n\n protected override formatData() {\n return {\n paymentMethod: {\n type: Fastlane.type,\n fastlaneData: btoa(\n JSON.stringify({\n fastlaneSessionId: this.props.fastlaneSessionId,\n tokenId: this.props.tokenId\n })\n )\n }\n };\n }\n\n /**\n *\n * Fastlane works differently than other payment methods: Merchant needs to pass to the payment method\n * configuration the values received from PayPal SDK to perform the payment (tokenId, etc). There is no\n * point in tracking these values, so we just omit them all in the analytics by calling the\n * 'beforeRender' without the props\n *\n * @protected\n */\n protected override beforeRender() {\n super.beforeRender();\n }\n\n public override async isAvailable(): Promise<void> {\n const { tokenId, lastFour, brand, email } = this.props;\n if (tokenId && lastFour && brand && email) {\n return Promise.resolve();\n }\n return Promise.reject();\n }\n\n public override get isValid(): boolean {\n return true;\n }\n\n /**\n * Used to display payment method logo within Drop-in\n */\n public override get icon(): string {\n return this.props.icon ?? this.resources.getImage()('card');\n }\n\n /**\n * Used to display the payment method supported brands within Drop-in\n */\n public get brands(): PaymentMethodBrand[] {\n const { brands } = this.props;\n return brands.map(brand => ({ icon: this.
|
|
1
|
+
{"version":3,"file":"Fastlane.js","sources":["../../../../src/components/PayPalFastlane/Fastlane.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport { TxVariants } from '../tx-variants';\nimport FastlaneComponent from './components/FastlaneComponent';\nimport type { FastlaneConfiguration } from './types';\nimport { PaymentMethodBrand } from '../../types/global-types';\n\nclass Fastlane extends UIElement<FastlaneConfiguration> {\n public static readonly type = TxVariants.fastlane;\n\n protected static readonly defaultProps = {\n keepBrandsVisible: true\n };\n\n protected override formatData() {\n return {\n paymentMethod: {\n type: Fastlane.type,\n fastlaneData: btoa(\n JSON.stringify({\n fastlaneSessionId: this.props.fastlaneSessionId,\n tokenId: this.props.tokenId\n })\n )\n }\n };\n }\n\n /**\n *\n * Fastlane works differently than other payment methods: Merchant needs to pass to the payment method\n * configuration the values received from PayPal SDK to perform the payment (tokenId, etc). There is no\n * point in tracking these values, so we just omit them all in the analytics by calling the\n * 'beforeRender' without the props\n *\n * @protected\n */\n protected override beforeRender() {\n super.beforeRender();\n }\n\n public override async isAvailable(): Promise<void> {\n const { tokenId, lastFour, brand, email } = this.props;\n if (tokenId && lastFour && brand && email) {\n return Promise.resolve();\n }\n return Promise.reject();\n }\n\n public override get isValid(): boolean {\n return true;\n }\n\n /**\n * Used to display payment method logo within Drop-in\n */\n public override get icon(): string {\n return this.props.icon ?? this.resources.getImage()('card');\n }\n\n /**\n * Used to display the payment method supported brands within Drop-in\n */\n public get brands(): PaymentMethodBrand[] {\n const { brands = [] } = this.props;\n return brands.map(brand => ({ icon: this.resources.getImage()(brand), name: brand }));\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <FastlaneComponent\n lastFour={this.props.lastFour}\n brand={this.props.brand}\n payButton={this.payButton}\n setComponentRef={this.setComponentRef}\n />\n );\n }\n}\n\nexport default Fastlane;\n"],"names":["Fastlane","UIElement","formatData","paymentMethod","type","fastlaneData","btoa","JSON","stringify","fastlaneSessionId","this","props","tokenId","beforeRender","super","isAvailable","lastFour","brand","email","Promise","resolve","reject","isValid","icon","_this_props_icon","resources","getImage","brands","map","name","componentToRender","h","FastlaneComponent","payButton","setComponentRef","_define_property","TxVariants","fastlane","defaultProps","keepBrandsVisible"],"mappings":"4VAOA,MAAMA,UAAiBC,EAOAC,UAAAA,GACf,MAAO,CACHC,cAAe,CACXC,KAAMJ,EAASI,KACfC,aAAcC,KACVC,KAAKC,UAAU,CACXC,kBAAmBC,KAAKC,MAAMF,kBAC9BG,QAASF,KAAKC,MAAMC,YAKxC,CAWA,YAAAC,GACIC,MAAMD,cACV,CAEA,iBAAsBE,GAClB,MAAMH,QAAEA,EAAOI,SAAEA,EAAQC,MAAEA,EAAKC,MAAEA,GAAUR,KAAKC,MACjD,OAAIC,GAAWI,GAAYC,GAASC,EACzBC,QAAQC,UAEZD,QAAQE,QACnB,CAEA,WAAoBC,GAChB,OAAO,CACX,CAKA,QAAoBC,GACT,IAAAC,EAAP,OAAsB,QAAfA,EAAAd,KAAKC,MAAMY,YAAX,IAAAC,EAAAA,EAAmBd,KAAKe,UAAUC,UAAfhB,CAA0B,OACxD,CAKA,UAAWiB,GACP,MAAMA,OAAEA,EAAS,IAAOjB,KAAKC,MAC7B,OAAOgB,EAAOC,IAAIX,KAAYM,KAAMb,KAAKe,UAAUC,UAAfhB,CAA0BO,GAAQY,KAAMZ,IAChF,CAEmBa,iBAAAA,GACf,OACIC,EAACC,EAAAA,CACGhB,SAAUN,KAAKC,MAAMK,SACrBC,MAAOP,KAAKC,MAAMM,MAClBgB,UAAWvB,KAAKuB,UAChBC,gBAAiBxB,KAAKwB,iBAGlC,EArEAC,EADEnC,EACqBI,OAAOgC,EAAWC,UAEzCF,EAHEnC,EAGwBsC,eAAe,CACrCC,mBAAmB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{resolveEnvironments as t}from"../../core/Environment/Environment.js";import e from"./services/request-fastlane-token.js";import{convertAdyenLocaleToFastlaneLocale as n}from"./utils/convert-locale.js";import a from"../../utils/Script.js";import i from"../../core/Errors/AdyenCheckoutError.js";import s from"../../core/Analytics/Analytics.js";import{InfoEventType as o,AnalyticsInfoEvent as r}from"../../core/Analytics/events/AnalyticsInfoEvent.js";import{AnalyticsEventQueue as c}from"../../core/Analytics/AnalyticsEventQueue.js";import{AnalyticsService as l}from"../../core/Analytics/AnalyticsService.js";function
|
|
1
|
+
import{resolveEnvironments as t}from"../../core/Environment/Environment.js";import e from"./services/request-fastlane-token.js";import{convertAdyenLocaleToFastlaneLocale as n}from"./utils/convert-locale.js";import a from"../../utils/Script.js";import i from"../../core/Errors/AdyenCheckoutError.js";import s from"../../core/Analytics/Analytics.js";import{InfoEventType as o,AnalyticsInfoEvent as r}from"../../core/Analytics/events/AnalyticsInfoEvent.js";import{AnalyticsEventQueue as c}from"../../core/Analytics/AnalyticsEventQueue.js";import{AnalyticsService as l}from"../../core/Analytics/AnalyticsService.js";function d(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function h(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),a.forEach(function(e){d(t,e,n[e])})}return t}class u{async initialize(){this.analytics.setUp({checkoutStage:"precheckout"});const t=await this.requestClientToken();return await this.fetchSdk(t.value,t.clientId),await this.initializeFastlaneInstance(),this.trackEvent(o.Initialized),this}destroy(){document.removeEventListener("visibilitychange",this.handlePageVisibilityChanges),this.analytics.flush()}async authenticate(t){if(!this.fastlaneSdk)throw new i("IMPLEMENTATION_ERROR","authenticate(): Fastlane SDK is not initialized");this.trackEvent(o.LookupStarted);try{const{customerContextId:e}=await this.fastlaneSdk.identity.lookupCustomerByEmail(t);if(e){this.latestShopperDetails={email:t,customerId:e},this.trackEvent(o.OtpStarted);const n=await this.fastlaneSdk.identity.triggerAuthenticationFlow(e);return this.trackEvent(this.getOtpAnalyticsSubtype(n.authenticationState)),n}return this.trackEvent(o.LookupUserNotFound),{authenticationState:"not_found",profileData:void 0}}catch(t){throw new i("ERROR","Fastlane SDK: An error occurred during the authentication flow.",{cause:t})}}async getComponentConfiguration(t){var e,n;if(!t)throw new i("IMPLEMENTATION_ERROR","FastlaneSDK: you must pass the authentication result to get the component configuration");this.analytics.flush();const a="succeeded"===t.authenticationState?null===(e=t.profileData)||void 0===e?void 0:e.card:void 0,s=null===(n=this.latestShopperDetails)||void 0===n?void 0:n.email;return a&&s?this.createFastlaneComponentConfiguration(a,s):this.createCardComponentConfiguration()}async showShippingAddressSelector(){if(!this.fastlaneSdk)throw new i("IMPLEMENTATION_ERROR","showShippingAddressSelector(): Fastlane SDK is not initialized");this.trackEvent(o.AddressSelectorClicked);try{const t=await this.fastlaneSdk.profile.showShippingAddressSelector();return t.selectionChanged&&this.trackEvent(o.AddressChanged),this.trackEvent(o.AddressSelectorClosed),t}catch(t){throw new i("ERROR","Fastlane SDK: An error occurred when showing the shipping address selector",{cause:t})}}async mountWatermark(t,e={includeAdditionalInfo:!0}){if(!this.fastlaneSdk)throw new i("IMPLEMENTATION_ERROR","mountWatermark(): Fastlane SDK is not initialized");try{(await this.fastlaneSdk.FastlaneWatermarkComponent(e)).render(t)}catch(t){throw new i("ERROR","Fastlane SDK: An error occurred when rendering the watermark",{cause:t})}}requestClientToken(){return e(this.checkoutShopperURL,this.clientKey)}async fetchSdk(t,e){const n=new URL("https://www.paypal.com/sdk/js");n.searchParams.set("client-id",e),n.searchParams.set("components","buttons,fastlane");const i=new a({src:n.href,component:"fastlane",dataAttributes:{sdkClientToken:t},analytics:this.analytics});await i.load()}async fetchSessionIdAsync(){try{if(!this.fastlaneSdk)throw new i("IMPLEMENTATION_ERROR","fetchSessionIdAsync(): Fastlane SDK is not initialized");const{sessionId:t}=await this.fastlaneSdk.identity.getSession();this.fastlaneSessionId=t}catch(t){console.warn("Fastlane SDK: Failed to fetch session ID",t)}}async fetchConsentDetails(){try{if(!this.fastlaneSdk)throw new i("IMPLEMENTATION_ERROR","fetchConsentDetails(): Fastlane SDK is not initialized");const t=await this.fastlaneSdk.ConsentComponent();return await t.getRenderState()}catch(t){throw new i("ERROR","fetchConsentDetails(): failed to fetch consent details",{cause:t})}}async initializeFastlaneInstance(){try{const{paypal:t}=window;if(!(null==t?void 0:t.Fastlane))throw new i("ERROR","Fastlane SDK: window.paypal.Fastlane is not available");this.fastlaneSdk=await t.Fastlane(h({intendedExperience:"externalProcessorCustomConsent"},this.forceConsentDetails&&{metadata:{geoLocOverride:"US"}})),this.fastlaneSdk.setLocale(this.fastlaneLocale),this.fetchSessionIdAsync()}catch(t){throw new i("ERROR","Fastlane SDK: Failed to initialize fastlane using the window.paypal.Fastlane constructor",{cause:t})}}createFastlaneComponentConfiguration(t,e){var n;return{paymentType:"fastlane",configuration:{fastlaneSessionId:null!==(n=this.fastlaneSessionId)&&void 0!==n?n:"",email:e,tokenId:t.id,lastFour:t.paymentSource.card.lastDigits,brand:t.paymentSource.card.brand.toLowerCase()}}}async createCardComponentConfiguration(){const t=await this.fetchConsentDetails(),e={};return t&&(e.fastlaneConfiguration=h({fastlaneSessionId:this.fastlaneSessionId},t)),{paymentType:"card",configuration:e}}trackEvent(t){const e=new r({type:t,component:"fastlane"});this.analytics.sendAnalytics(e)}getOtpAnalyticsSubtype(t){switch(t){case"succeeded":return o.OtpSucceeded;case"canceled":return o.OtpCanceled;case"failed":default:return o.OtpFailed;case"not_found":return o.LookupUserNotFound}}constructor(e){var a;if(d(this,"clientKey",void 0),d(this,"checkoutShopperURL",void 0),d(this,"fastlaneLocale",void 0),d(this,"forceConsentDetails",void 0),d(this,"analytics",void 0),d(this,"fastlaneSdk",void 0),d(this,"latestShopperDetails",void 0),d(this,"fastlaneSessionId",void 0),d(this,"handlePageVisibilityChanges",()=>{"hidden"===document.visibilityState&&this.analytics.flush()}),!(null==e?void 0:e.environment))throw new i("IMPLEMENTATION_ERROR","FastlaneSDK: 'environment' property is required");if(!(null==e?void 0:e.clientKey))throw new i("IMPLEMENTATION_ERROR","FastlaneSDK: 'clientKey' property is required");e.forceConsentDetails&&e.environment.includes("live")&&console.warn("Fastlane SDK: 'forceConsentDetails' should not be used on 'live' environment");const{apiUrl:o,analyticsUrl:r}=t(e.environment);this.checkoutShopperURL=o,this.clientKey=e.clientKey,this.forceConsentDetails=e.forceConsentDetails||!1,this.fastlaneLocale=n(e.locale||"en-US"),this.analytics=new s({eventQueue:new c,service:new l({analyticsContext:r,clientKey:this.clientKey}),enabled:null===(a=e.analytics)||void 0===a?void 0:a.enabled}),document.addEventListener("visibilitychange",this.handlePageVisibilityChanges)}}export{u as default};
|
|
2
2
|
//# sourceMappingURL=FastlaneSDK.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FastlaneSDK.js","sources":["../../../../src/components/PayPalFastlane/FastlaneSDK.ts"],"sourcesContent":["import { resolveEnvironments } from '../../core/Environment';\nimport type { FastlaneTokenData } from './services/request-fastlane-token';\nimport requestFastlaneToken from './services/request-fastlane-token';\nimport { convertAdyenLocaleToFastlaneLocale } from './utils/convert-locale';\nimport Script from '../../utils/Script';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport {\n FastlaneAuthenticatedCustomerResult,\n FastlaneConsentRenderState,\n FastlanePaymentMethodConfiguration,\n FastlaneSDKConfiguration,\n FastlaneShippingAddressSelectorResult,\n FastlaneSignupConfiguration,\n FastlaneWindowInstance\n} from './types';\n\nimport Analytics from '../../core/Analytics';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport type { IAnalytics } from '../../core/Analytics/Analytics';\nimport { AnalyticsEventQueue } from '../../core/Analytics/AnalyticsEventQueue';\nimport { AnalyticsService } from '../../core/Analytics/AnalyticsService';\n\nclass FastlaneSDK {\n private readonly clientKey: string;\n private readonly checkoutShopperURL: string;\n private readonly fastlaneLocale: string;\n private readonly forceConsentDetails: boolean;\n\n private readonly analytics: IAnalytics;\n\n private fastlaneSdk?: FastlaneWindowInstance;\n private latestShopperDetails?: { email: string; customerId: string };\n private fastlaneSessionId?: string;\n\n constructor(configuration: FastlaneSDKConfiguration) {\n if (!configuration?.environment) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'environment' property is required\");\n if (!configuration?.clientKey) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'clientKey' property is required\");\n\n if (configuration.forceConsentDetails && configuration.environment.includes('live'))\n console.warn(\"Fastlane SDK: 'forceConsentDetails' should not be used on 'live' environment\");\n\n const { apiUrl, analyticsUrl } = resolveEnvironments(configuration.environment);\n\n this.checkoutShopperURL = apiUrl;\n this.clientKey = configuration.clientKey;\n this.forceConsentDetails = configuration.forceConsentDetails || false;\n this.fastlaneLocale = convertAdyenLocaleToFastlaneLocale(configuration.locale || 'en-US');\n\n this.analytics = new Analytics({\n eventQueue: new AnalyticsEventQueue(),\n service: new AnalyticsService({\n analyticsContext: analyticsUrl,\n clientKey: this.clientKey\n }),\n enabled: configuration.analytics?.enabled\n });\n\n document.addEventListener('visibilitychange', this.handlePageVisibilityChanges);\n }\n\n /**\n * Initializes the Fastlane SDK\n */\n public async initialize(): Promise<FastlaneSDK> {\n void this.analytics.setUp({\n checkoutStage: 'precheckout'\n });\n\n const tokenData = await this.requestClientToken();\n await this.fetchSdk(tokenData.value, tokenData.clientId);\n await this.initializeFastlaneInstance();\n this.trackEvent(InfoEventType.Initialized);\n return this;\n }\n\n public destroy(): void {\n document.removeEventListener('visibilitychange', this.handlePageVisibilityChanges);\n this.analytics.flush();\n }\n\n /**\n * Triggers the authentication for Fastlane using shopper's email.\n * If shopper is recognized, the OTP flow is initialized.\n *\n * @param email\n */\n public async authenticate(email: string): Promise<FastlaneAuthenticatedCustomerResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'authenticate(): Fastlane SDK is not initialized');\n }\n\n this.trackEvent(InfoEventType.LookupStarted);\n\n try {\n const { customerContextId } = await this.fastlaneSdk.identity.lookupCustomerByEmail(email);\n\n if (customerContextId) {\n this.latestShopperDetails = { email, customerId: customerContextId };\n this.trackEvent(InfoEventType.OtpStarted);\n\n const authResult = await this.fastlaneSdk.identity.triggerAuthenticationFlow(customerContextId);\n this.trackEvent(this.getOtpAnalyticsSubtype(authResult.authenticationState));\n\n return authResult;\n }\n\n this.trackEvent(InfoEventType.LookupUserNotFound);\n return {\n authenticationState: 'not_found',\n profileData: undefined\n };\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred during the authentication flow.', { cause: error });\n }\n }\n\n /**\n * Creates the Component configuration based on the Fastlane authentication result.\n *\n * In case the shopper authenticated successfully, it returns config to be used in the Fastlane component\n * Otherwise, it returns the configuration to be used in the Card component\n *\n * @param authResult\n */\n public async getComponentConfiguration(authResult: FastlaneAuthenticatedCustomerResult): Promise<FastlanePaymentMethodConfiguration> {\n if (!authResult) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'FastlaneSDK: you must pass the authentication result to get the component configuration'\n );\n }\n\n this.analytics.flush();\n\n const isAuthSuccess = authResult.authenticationState === 'succeeded';\n const hasCardData = !!authResult.profileData?.card;\n const hasShopperDetails = !!this.latestShopperDetails?.email;\n\n if (isAuthSuccess && hasCardData && hasShopperDetails) {\n return this.createFastlaneComponentConfiguration(authResult);\n }\n\n return this.createCardComponentConfiguration();\n }\n\n /**\n * Displays the Fastlane Shipping Address selector UI\n */\n public async showShippingAddressSelector(): Promise<FastlaneShippingAddressSelectorResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'showShippingAddressSelector(): Fastlane SDK is not initialized');\n }\n\n this.trackEvent(InfoEventType.AddressSelectorClicked);\n\n try {\n const addressSelectorResult = await this.fastlaneSdk.profile.showShippingAddressSelector();\n if (addressSelectorResult.selectionChanged) {\n this.trackEvent(InfoEventType.AddressChanged);\n }\n this.trackEvent(InfoEventType.AddressSelectorClosed);\n\n return addressSelectorResult;\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred when showing the shipping address selector', { cause: error });\n }\n }\n\n /**\n * Render the \"Fastlane by PayPal\" logo in the specified HTML container\n */\n public async mountWatermark(container: HTMLElement | string, options = { includeAdditionalInfo: true }): Promise<void> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'mountWatermark(): Fastlane SDK is not initialized');\n }\n\n try {\n const component = await this.fastlaneSdk.FastlaneWatermarkComponent(options);\n component.render(container);\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred when rendering the watermark', { cause: error });\n }\n }\n\n private requestClientToken(): Promise<FastlaneTokenData> {\n return requestFastlaneToken(this.checkoutShopperURL, this.clientKey);\n }\n\n private async fetchSdk(clientToken: string, clientId: string): Promise<void> {\n const sdkUrl = new URL('https://www.paypal.com/sdk/js');\n sdkUrl.searchParams.set('client-id', clientId);\n sdkUrl.searchParams.set('components', 'buttons,fastlane');\n\n const script = new Script({\n src: sdkUrl.href,\n component: 'fastlane',\n dataAttributes: { sdkClientToken: clientToken },\n analytics: this.analytics\n });\n\n await script.load();\n }\n\n /**\n * Fetch the fastlane session ID used internally by PayPal for Network Token Usage event\n * This ID is not critical for the payment processing part\n *\n * @private\n */\n private async fetchSessionIdAsync(): Promise<void> {\n try {\n const { sessionId } = await this.fastlaneSdk.identity.getSession();\n this.fastlaneSessionId = sessionId;\n } catch (error) {\n console.warn('Fastlane SDK: Failed to fetch session ID', error);\n }\n }\n\n /**\n * Fetch object containing that details that will be used to display the sign-up UI\n * inside the card component\n * @private\n */\n private async fetchConsentDetails(): Promise<FastlaneConsentRenderState> {\n try {\n const consentComponent = await this.fastlaneSdk.ConsentComponent();\n return await consentComponent.getRenderState();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'fetchConsentDetails(): failed to fetch consent details', { cause: error });\n }\n }\n\n private async initializeFastlaneInstance(): Promise<void> {\n try {\n this.fastlaneSdk = await window.paypal.Fastlane({\n intendedExperience: 'externalProcessorCustomConsent',\n ...(this.forceConsentDetails && {\n metadata: {\n geoLocOverride: 'US'\n }\n })\n });\n this.fastlaneSdk.setLocale(this.fastlaneLocale);\n\n void this.fetchSessionIdAsync();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: Failed to initialize fastlane using the window.paypal.Fastlane constructor', {\n cause: error\n });\n }\n }\n\n /**\n * Creates the configuration for the Fastlane component\n *\n * @param authResult\n * @private\n */\n private createFastlaneComponentConfiguration(authResult: FastlaneAuthenticatedCustomerResult): FastlanePaymentMethodConfiguration {\n return {\n paymentType: 'fastlane',\n configuration: {\n fastlaneSessionId: this.fastlaneSessionId,\n email: this.latestShopperDetails.email,\n tokenId: authResult.profileData.card.id,\n lastFour: authResult.profileData.card.paymentSource.card.lastDigits,\n brand: authResult.profileData.card.paymentSource.card.brand.toLowerCase()\n }\n };\n }\n\n /**\n * Creates the configuration for the Card component, including Fastlane sign-up details if available\n *\n * @private\n */\n private async createCardComponentConfiguration(): Promise<FastlanePaymentMethodConfiguration> {\n const consentDetails = await this.fetchConsentDetails();\n const configuration: { fastlaneConfiguration?: FastlaneSignupConfiguration } = {};\n\n if (consentDetails) {\n configuration.fastlaneConfiguration = {\n fastlaneSessionId: this.fastlaneSessionId,\n ...consentDetails\n };\n }\n\n return {\n paymentType: 'card',\n configuration\n };\n }\n\n private trackEvent(eventType: InfoEventType): void {\n const event = new AnalyticsInfoEvent({ type: eventType, component: 'fastlane' });\n this.analytics.sendAnalytics(event);\n }\n\n private handlePageVisibilityChanges = (): void => {\n if (document.visibilityState === 'hidden') {\n this.analytics.flush();\n }\n };\n\n /**\n * Returns the Info event subtype based on the 'authenticationState'\n * @param authenticationState\n * @private\n */\n private getOtpAnalyticsSubtype(authenticationState: FastlaneAuthenticatedCustomerResult['authenticationState']) {\n switch (authenticationState) {\n case 'succeeded':\n return InfoEventType.OtpSucceeded;\n case 'canceled':\n return InfoEventType.OtpCanceled;\n case 'failed':\n return InfoEventType.OtpFailed;\n case 'not_found':\n return InfoEventType.LookupUserNotFound;\n default:\n return InfoEventType.OtpFailed;\n }\n }\n}\n\nexport default FastlaneSDK;\n"],"names":["FastlaneSDK","initialize","this","analytics","setUp","checkoutStage","tokenData","requestClientToken","fetchSdk","value","clientId","initializeFastlaneInstance","trackEvent","InfoEventType","Initialized","destroy","document","removeEventListener","handlePageVisibilityChanges","flush","authenticate","email","fastlaneSdk","AdyenCheckoutError","LookupStarted","customerContextId","identity","lookupCustomerByEmail","latestShopperDetails","customerId","OtpStarted","authResult","triggerAuthenticationFlow","getOtpAnalyticsSubtype","authenticationState","LookupUserNotFound","profileData","undefined","error","cause","getComponentConfiguration","_this_latestShopperDetails","isAuthSuccess","hasCardData","card","hasShopperDetails","createFastlaneComponentConfiguration","createCardComponentConfiguration","showShippingAddressSelector","AddressSelectorClicked","addressSelectorResult","profile","selectionChanged","AddressChanged","AddressSelectorClosed","mountWatermark","container","options","includeAdditionalInfo","FastlaneWatermarkComponent","render","requestFastlaneToken","checkoutShopperURL","clientKey","clientToken","sdkUrl","URL","searchParams","set","script","Script","src","href","component","dataAttributes","sdkClientToken","load","fetchSessionIdAsync","sessionId","getSession","fastlaneSessionId","console","warn","fetchConsentDetails","consentComponent","ConsentComponent","getRenderState","window","paypal","Fastlane","_object_spread","intendedExperience","forceConsentDetails","metadata","geoLocOverride","setLocale","fastlaneLocale","paymentType","configuration","tokenId","id","lastFour","paymentSource","lastDigits","brand","toLowerCase","consentDetails","fastlaneConfiguration","eventType","event","AnalyticsInfoEvent","type","sendAnalytics","OtpSucceeded","OtpCanceled","OtpFailed","constructor","_define_property","visibilityState","environment","includes","apiUrl","analyticsUrl","resolveEnvironments","convertAdyenLocaleToFastlaneLocale","locale","Analytics","eventQueue","AnalyticsEventQueue","service","AnalyticsService","analyticsContext","enabled","addEventListener"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FastlaneSDK.js","sources":["../../../../src/components/PayPalFastlane/FastlaneSDK.ts"],"sourcesContent":["import { resolveEnvironments } from '../../core/Environment';\nimport type { FastlaneTokenData } from './services/request-fastlane-token';\nimport requestFastlaneToken from './services/request-fastlane-token';\nimport { convertAdyenLocaleToFastlaneLocale } from './utils/convert-locale';\nimport Script from '../../utils/Script';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport {\n FastlaneAuthenticatedCustomerResult,\n FastlaneConsentRenderState,\n FastlanePaymentMethodConfiguration,\n FastlaneProfile,\n FastlaneSDKConfiguration,\n FastlaneShippingAddressSelectorResult,\n FastlaneSignupConfiguration,\n FastlaneWindowInstance\n} from './types';\n\nimport Analytics from '../../core/Analytics';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport type { IAnalytics } from '../../core/Analytics/Analytics';\nimport { AnalyticsEventQueue } from '../../core/Analytics/AnalyticsEventQueue';\nimport { AnalyticsService } from '../../core/Analytics/AnalyticsService';\n\nclass FastlaneSDK {\n private readonly clientKey: string;\n private readonly checkoutShopperURL: string;\n private readonly fastlaneLocale: string;\n private readonly forceConsentDetails: boolean;\n\n private readonly analytics: IAnalytics;\n\n private fastlaneSdk?: FastlaneWindowInstance;\n private latestShopperDetails?: { email: string; customerId: string };\n private fastlaneSessionId?: string;\n\n constructor(configuration: FastlaneSDKConfiguration) {\n if (!configuration?.environment) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'environment' property is required\");\n if (!configuration?.clientKey) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'clientKey' property is required\");\n\n if (configuration.forceConsentDetails && configuration.environment.includes('live'))\n console.warn(\"Fastlane SDK: 'forceConsentDetails' should not be used on 'live' environment\");\n\n const { apiUrl, analyticsUrl } = resolveEnvironments(configuration.environment);\n\n this.checkoutShopperURL = apiUrl;\n this.clientKey = configuration.clientKey;\n this.forceConsentDetails = configuration.forceConsentDetails || false;\n this.fastlaneLocale = convertAdyenLocaleToFastlaneLocale(configuration.locale || 'en-US');\n\n this.analytics = new Analytics({\n eventQueue: new AnalyticsEventQueue(),\n service: new AnalyticsService({\n analyticsContext: analyticsUrl,\n clientKey: this.clientKey\n }),\n enabled: configuration.analytics?.enabled\n });\n\n document.addEventListener('visibilitychange', this.handlePageVisibilityChanges);\n }\n\n /**\n * Initializes the Fastlane SDK\n */\n public async initialize(): Promise<FastlaneSDK> {\n void this.analytics.setUp({\n checkoutStage: 'precheckout'\n });\n\n const tokenData = await this.requestClientToken();\n await this.fetchSdk(tokenData.value, tokenData.clientId);\n await this.initializeFastlaneInstance();\n this.trackEvent(InfoEventType.Initialized);\n return this;\n }\n\n public destroy(): void {\n document.removeEventListener('visibilitychange', this.handlePageVisibilityChanges);\n this.analytics.flush();\n }\n\n /**\n * Triggers the authentication for Fastlane using shopper's email.\n * If shopper is recognized, the OTP flow is initialized.\n *\n * @param email\n */\n public async authenticate(email: string): Promise<FastlaneAuthenticatedCustomerResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'authenticate(): Fastlane SDK is not initialized');\n }\n\n this.trackEvent(InfoEventType.LookupStarted);\n\n try {\n const { customerContextId } = await this.fastlaneSdk.identity.lookupCustomerByEmail(email);\n\n if (customerContextId) {\n this.latestShopperDetails = { email, customerId: customerContextId };\n this.trackEvent(InfoEventType.OtpStarted);\n\n const authResult = await this.fastlaneSdk.identity.triggerAuthenticationFlow(customerContextId);\n this.trackEvent(this.getOtpAnalyticsSubtype(authResult.authenticationState));\n\n return authResult;\n }\n\n this.trackEvent(InfoEventType.LookupUserNotFound);\n return {\n authenticationState: 'not_found',\n profileData: undefined\n };\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred during the authentication flow.', { cause: error });\n }\n }\n\n /**\n * Creates the Component configuration based on the Fastlane authentication result.\n *\n * In case the shopper authenticated successfully, it returns config to be used in the Fastlane component\n * Otherwise, it returns the configuration to be used in the Card component\n *\n * @param authResult\n */\n public async getComponentConfiguration(authResult: FastlaneAuthenticatedCustomerResult): Promise<FastlanePaymentMethodConfiguration> {\n if (!authResult) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'FastlaneSDK: you must pass the authentication result to get the component configuration'\n );\n }\n\n this.analytics.flush();\n\n const card = authResult.authenticationState === 'succeeded' ? authResult.profileData?.card : undefined;\n const email = this.latestShopperDetails?.email;\n\n if (card && email) {\n return this.createFastlaneComponentConfiguration(card, email);\n }\n\n return this.createCardComponentConfiguration();\n }\n\n /**\n * Displays the Fastlane Shipping Address selector UI\n */\n public async showShippingAddressSelector(): Promise<FastlaneShippingAddressSelectorResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'showShippingAddressSelector(): Fastlane SDK is not initialized');\n }\n\n this.trackEvent(InfoEventType.AddressSelectorClicked);\n\n try {\n const addressSelectorResult = await this.fastlaneSdk.profile.showShippingAddressSelector();\n if (addressSelectorResult.selectionChanged) {\n this.trackEvent(InfoEventType.AddressChanged);\n }\n this.trackEvent(InfoEventType.AddressSelectorClosed);\n\n return addressSelectorResult;\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred when showing the shipping address selector', { cause: error });\n }\n }\n\n /**\n * Render the \"Fastlane by PayPal\" logo in the specified HTML container\n */\n public async mountWatermark(container: HTMLElement | string, options = { includeAdditionalInfo: true }): Promise<void> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'mountWatermark(): Fastlane SDK is not initialized');\n }\n\n try {\n const component = await this.fastlaneSdk.FastlaneWatermarkComponent(options);\n component.render(container);\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred when rendering the watermark', { cause: error });\n }\n }\n\n private requestClientToken(): Promise<FastlaneTokenData> {\n return requestFastlaneToken(this.checkoutShopperURL, this.clientKey);\n }\n\n private async fetchSdk(clientToken: string, clientId: string): Promise<void> {\n const sdkUrl = new URL('https://www.paypal.com/sdk/js');\n sdkUrl.searchParams.set('client-id', clientId);\n sdkUrl.searchParams.set('components', 'buttons,fastlane');\n\n const script = new Script({\n src: sdkUrl.href,\n component: 'fastlane',\n dataAttributes: { sdkClientToken: clientToken },\n analytics: this.analytics\n });\n\n await script.load();\n }\n\n /**\n * Fetch the fastlane session ID used internally by PayPal for Network Token Usage event\n * This ID is not critical for the payment processing part\n *\n * @private\n */\n private async fetchSessionIdAsync(): Promise<void> {\n try {\n if (!this.fastlaneSdk) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'fetchSessionIdAsync(): Fastlane SDK is not initialized');\n const { sessionId } = await this.fastlaneSdk.identity.getSession();\n this.fastlaneSessionId = sessionId;\n } catch (error) {\n console.warn('Fastlane SDK: Failed to fetch session ID', error);\n }\n }\n\n /**\n * Fetch object containing that details that will be used to display the sign-up UI\n * inside the card component\n * @private\n */\n private async fetchConsentDetails(): Promise<FastlaneConsentRenderState> {\n try {\n if (!this.fastlaneSdk) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'fetchConsentDetails(): Fastlane SDK is not initialized');\n const consentComponent = await this.fastlaneSdk.ConsentComponent();\n return await consentComponent.getRenderState();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'fetchConsentDetails(): failed to fetch consent details', { cause: error });\n }\n }\n\n private async initializeFastlaneInstance(): Promise<void> {\n try {\n const { paypal } = window;\n if (!paypal?.Fastlane) throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: window.paypal.Fastlane is not available');\n\n this.fastlaneSdk = await paypal.Fastlane({\n intendedExperience: 'externalProcessorCustomConsent',\n ...(this.forceConsentDetails && {\n metadata: {\n geoLocOverride: 'US'\n }\n })\n });\n this.fastlaneSdk.setLocale(this.fastlaneLocale);\n\n void this.fetchSessionIdAsync();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: Failed to initialize fastlane using the window.paypal.Fastlane constructor', {\n cause: error\n });\n }\n }\n\n /**\n * Creates the configuration for the Fastlane component\n *\n * @param card - card from the authenticated shopper's Fastlane profile\n * @param email - email of the authenticated shopper\n * @private\n */\n private createFastlaneComponentConfiguration(card: NonNullable<FastlaneProfile['card']>, email: string): FastlanePaymentMethodConfiguration {\n return {\n paymentType: 'fastlane',\n configuration: {\n fastlaneSessionId: this.fastlaneSessionId ?? '',\n email,\n tokenId: card.id,\n lastFour: card.paymentSource.card.lastDigits,\n brand: card.paymentSource.card.brand.toLowerCase()\n }\n };\n }\n\n /**\n * Creates the configuration for the Card component, including Fastlane sign-up details if available\n *\n * @private\n */\n private async createCardComponentConfiguration(): Promise<FastlanePaymentMethodConfiguration> {\n const consentDetails = await this.fetchConsentDetails();\n const configuration: { fastlaneConfiguration?: FastlaneSignupConfiguration } = {};\n\n if (consentDetails) {\n configuration.fastlaneConfiguration = {\n fastlaneSessionId: this.fastlaneSessionId,\n ...consentDetails\n };\n }\n\n return {\n paymentType: 'card',\n configuration\n };\n }\n\n private trackEvent(eventType: InfoEventType): void {\n const event = new AnalyticsInfoEvent({ type: eventType, component: 'fastlane' });\n this.analytics.sendAnalytics(event);\n }\n\n private handlePageVisibilityChanges = (): void => {\n if (document.visibilityState === 'hidden') {\n this.analytics.flush();\n }\n };\n\n /**\n * Returns the Info event subtype based on the 'authenticationState'\n * @param authenticationState\n * @private\n */\n private getOtpAnalyticsSubtype(authenticationState: FastlaneAuthenticatedCustomerResult['authenticationState']) {\n switch (authenticationState) {\n case 'succeeded':\n return InfoEventType.OtpSucceeded;\n case 'canceled':\n return InfoEventType.OtpCanceled;\n case 'failed':\n return InfoEventType.OtpFailed;\n case 'not_found':\n return InfoEventType.LookupUserNotFound;\n default:\n return InfoEventType.OtpFailed;\n }\n }\n}\n\nexport default FastlaneSDK;\n"],"names":["FastlaneSDK","initialize","this","analytics","setUp","checkoutStage","tokenData","requestClientToken","fetchSdk","value","clientId","initializeFastlaneInstance","trackEvent","InfoEventType","Initialized","destroy","document","removeEventListener","handlePageVisibilityChanges","flush","authenticate","email","fastlaneSdk","AdyenCheckoutError","LookupStarted","customerContextId","identity","lookupCustomerByEmail","latestShopperDetails","customerId","OtpStarted","authResult","triggerAuthenticationFlow","getOtpAnalyticsSubtype","authenticationState","LookupUserNotFound","profileData","undefined","error","cause","getComponentConfiguration","_this_latestShopperDetails","card","createFastlaneComponentConfiguration","createCardComponentConfiguration","showShippingAddressSelector","AddressSelectorClicked","addressSelectorResult","profile","selectionChanged","AddressChanged","AddressSelectorClosed","mountWatermark","container","options","includeAdditionalInfo","FastlaneWatermarkComponent","render","requestFastlaneToken","checkoutShopperURL","clientKey","clientToken","sdkUrl","URL","searchParams","set","script","Script","src","href","component","dataAttributes","sdkClientToken","load","fetchSessionIdAsync","sessionId","getSession","fastlaneSessionId","console","warn","fetchConsentDetails","consentComponent","ConsentComponent","getRenderState","paypal","window","Fastlane","_object_spread","intendedExperience","forceConsentDetails","metadata","geoLocOverride","setLocale","fastlaneLocale","_this_fastlaneSessionId","paymentType","configuration","tokenId","id","lastFour","paymentSource","lastDigits","brand","toLowerCase","consentDetails","fastlaneConfiguration","eventType","event","AnalyticsInfoEvent","type","sendAnalytics","OtpSucceeded","OtpCanceled","OtpFailed","constructor","_define_property","visibilityState","environment","includes","apiUrl","analyticsUrl","resolveEnvironments","convertAdyenLocaleToFastlaneLocale","locale","Analytics","eventQueue","AnalyticsEventQueue","service","AnalyticsService","analyticsContext","enabled","addEventListener"],"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 r from"./components/Challenge/PrepareChallenge3DS2.js";import{THREEDS2_CHALLENGE_ERROR as o,THREEDS2_CHALLENGE as n,DEFAULT_CHALLENGE_WINDOW_SIZE as s}from"./constants.js";import{existy as i}from"../../utils/commonUtils.js";import{hasOwnProperty as
|
|
1
|
+
import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import r from"./components/Challenge/PrepareChallenge3DS2.js";import{THREEDS2_CHALLENGE_ERROR as o,THREEDS2_CHALLENGE as n,DEFAULT_CHALLENGE_WINDOW_SIZE as s}from"./constants.js";import{existy as i}from"../../utils/commonUtils.js";import{hasOwnProperty as c}from"../../utils/hasOwnProperty.js";import{TxVariants as p}from"../tx-variants.js";import l,{API_ERROR as a}from"../../core/Errors/AdyenCheckoutError.js";import{AnalyticsLogEvent as m,LogEventSubtype as u,LogEventType as y}from"../../core/Analytics/events/AnalyticsLogEvent.js";import{AnalyticsErrorEvent as f,ErrorEventType as h,ErrorEventCode as b}from"../../core/Analytics/events/AnalyticsErrorEvent.js";function d(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function j(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 r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}class O extends t{beforeRender(){}onComplete(e){var t,r;this.props.isMDFlow?null===(t=(r=this.props).on3DS2RedirectFlowComplete)||void 0===t||t.call(r,e,this.elementRef):super.onComplete(e);this.unmount()}componentToRender(){if(!i(this.props.paymentData)){var t,n;const e=c(this.props,"isMDFlow")?"paymentData":"authorisationToken";null===(t=(n=this.props).onError)||void 0===t||t.call(n,new l(a,`No ${e} received. 3DS2 Challenge cannot proceed`));const r=new f({component:this.type,code:b.THREEDS2_ACTION_IS_MISSING_PAYMENT_DATA,errorType:h.threeDS2,message:`${o}: Missing '${e}' property from threeDS2 action`});return this.submitAnalytics(r),null}return e(r,j(function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),o.forEach(function(t){d(e,t,r[t])})}return e}({},this.props),{i18n:this.core.modules.i18n,onComplete:this.onComplete,onSubmitAnalytics:this.submitAnalytics,onActionHandled:this.onActionHandled}))}constructor(...e){super(...e),d(this,"onActionHandled",e=>{const t=new m({component:this.type,type:y.threeDS2,subType:u.challengeIframeLoaded,message:e.actionDescription});this.submitAnalytics(t),super.onActionHandled(e)})}}d(O,"type",p.threeDS2Challenge),d(O,"defaultProps",{dataKey:"threeDSResult",size:s,type:n});export{O as default};
|
|
2
2
|
//# sourceMappingURL=ThreeDS2Challenge.js.map
|