@adyen/adyen-web 6.14.0 → 6.16.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 +12 -5
- 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 +282 -131
- package/dist/es/adyen.css +12 -5
- 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/ApplePay/ApplePay.js +1 -1
- package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
- package/dist/es/components/Card/Card.js +1 -1
- package/dist/es/components/Card/Card.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
- package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardFields.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardFields.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardNumber.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/components/DualBrandingIcon/DualBrandingIcon.js +1 -1
- package/dist/es/components/Card/components/CardInput/components/DualBrandingIcon/DualBrandingIcon.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
- package/dist/es/components/Card/components/CardInput/utils.js +1 -1
- package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
- package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js +1 -1
- package/dist/es/components/Card/components/Fastlane/FastlaneSignup.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/Dropin/components/DropinComponent.js +1 -1
- package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
- package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
- package/dist/es/components/GooglePay/GooglePay.js +1 -1
- package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
- package/dist/es/components/PayByBankPix/PayByBankPix.js +2 -0
- package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js +2 -0
- package/dist/es/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js +2 -0
- package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -0
- package/dist/es/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js +2 -0
- package/dist/es/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js.map +1 -0
- package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js +2 -0
- package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -0
- package/dist/es/components/PayByBankPix/services/PasskeyService.js +2 -0
- package/dist/es/components/PayByBankPix/services/PasskeyService.js.map +1 -0
- package/dist/es/components/PayByBankPix/services/authorizeEnrollment.js +2 -0
- package/dist/es/components/PayByBankPix/services/authorizeEnrollment.js.map +1 -0
- package/dist/es/components/PayByBankPix/services/authorizePayment.js +2 -0
- package/dist/es/components/PayByBankPix/services/authorizePayment.js.map +1 -0
- package/dist/es/components/PayByBankPix/services/types.js +2 -0
- package/dist/es/components/PayByBankPix/services/types.js.map +1 -0
- package/dist/es/components/PayPal/Paypal.js +1 -1
- package/dist/es/components/PayPal/Paypal.js.map +1 -1
- package/dist/es/components/Redirect/Redirect.js +1 -1
- package/dist/es/components/Redirect/Redirect.js.map +1 -1
- package/dist/es/components/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/callSubmit3DS2Fingerprint.js +1 -1
- package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
- package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
- package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
- package/dist/es/components/ThreeDS2/constants.js +1 -1
- package/dist/es/components/ThreeDS2/constants.js.map +1 -1
- package/dist/es/components/UPI/components/VpaInput/VpaInput.js +1 -1
- package/dist/es/components/UPI/components/VpaInput/VpaInput.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/index.js +1 -1
- package/dist/es/components/internal/Await/Await.js +1 -1
- package/dist/es/components/internal/Await/Await.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/DisclaimerMessage/DisclaimerMessage.js +1 -1
- package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
- package/dist/es/components/internal/ExpandButton/ExpandButton.js +1 -1
- package/dist/es/components/internal/ExpandButton/ExpandButton.js.map +1 -1
- package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
- package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js +2 -0
- package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +1 -0
- package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js +2 -0
- package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -0
- package/dist/es/components/internal/IssuerList/IssuerList.js +1 -1
- package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
- package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
- package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
- package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/binLookup/createCardVariantSwitcher.js +1 -1
- package/dist/es/components/internal/SecuredFields/binLookup/createCardVariantSwitcher.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/binLookup/extensions.js +1 -1
- package/dist/es/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js.map +1 -1
- package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
- package/dist/es/components/internal/SecuredFields/lib/constants.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/tx-variants.js +1 -1
- package/dist/es/components/tx-variants.js.map +1 -1
- package/dist/es/core/Analytics/Analytics.js +1 -1
- package/dist/es/core/Analytics/Analytics.js.map +1 -1
- package/dist/es/core/Analytics/AnalyticsErrorEvent.js +2 -0
- package/dist/es/core/Analytics/AnalyticsErrorEvent.js.map +1 -0
- package/dist/es/core/Analytics/AnalyticsEvent.js +2 -0
- package/dist/es/core/Analytics/AnalyticsEvent.js.map +1 -0
- package/dist/es/core/Analytics/AnalyticsInfoEvent.js +2 -0
- package/dist/es/core/Analytics/AnalyticsInfoEvent.js.map +1 -0
- package/dist/es/core/Analytics/AnalyticsLogEvent.js +2 -0
- package/dist/es/core/Analytics/AnalyticsLogEvent.js.map +1 -0
- package/dist/es/core/Analytics/utils.js +1 -1
- package/dist/es/core/Analytics/utils.js.map +1 -1
- package/dist/es/core/Environment/Environment.js +1 -1
- package/dist/es/core/Environment/Environment.js.map +1 -1
- package/dist/es/core/ProcessResponse/PaymentMethods/filters.js +1 -1
- package/dist/es/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
- package/dist/es/core/Services/analytics/collect-id.js +1 -1
- package/dist/es/core/core.js +1 -1
- package/dist/es/core/core.js.map +1 -1
- package/dist/es/core/utils.js +1 -1
- package/dist/es/core/utils.js.map +1 -1
- package/dist/es/index.d.ts +282 -131
- package/dist/es/index.js +1 -1
- package/dist/es/utils/base64.js.map +1 -1
- package/dist/es/utils/clipboard.js.map +1 -1
- package/dist/es-legacy/adyen.css +12 -5
- 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/ApplePay/ApplePay.js +1 -1
- package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
- package/dist/es-legacy/components/Card/Card.js +1 -1
- package/dist/es-legacy/components/Card/Card.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/DualBrandingIcon/DualBrandingIcon.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/components/DualBrandingIcon/DualBrandingIcon.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
- package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
- package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js +1 -1
- package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.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/Dropin/components/DropinComponent.js +1 -1
- package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
- package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
- package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
- package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
- package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/services/authorizeEnrollment.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/services/authorizeEnrollment.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/services/authorizePayment.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/services/authorizePayment.js.map +1 -0
- package/dist/es-legacy/components/PayByBankPix/services/types.js +2 -0
- package/dist/es-legacy/components/PayByBankPix/services/types.js.map +1 -0
- 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/Redirect/Redirect.js +1 -1
- package/dist/es-legacy/components/Redirect/Redirect.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/callSubmit3DS2Fingerprint.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
- package/dist/es-legacy/components/ThreeDS2/constants.js +1 -1
- package/dist/es-legacy/components/ThreeDS2/constants.js.map +1 -1
- package/dist/es-legacy/components/UPI/components/VpaInput/VpaInput.js +1 -1
- package/dist/es-legacy/components/UPI/components/VpaInput/VpaInput.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/index.js +1 -1
- package/dist/es-legacy/components/internal/Await/Await.js +1 -1
- package/dist/es-legacy/components/internal/Await/Await.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/DisclaimerMessage/DisclaimerMessage.js +1 -1
- package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
- package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js +1 -1
- package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
- package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js +2 -0
- package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +1 -0
- package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js +2 -0
- package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -0
- package/dist/es-legacy/components/internal/IssuerList/IssuerList.js +1 -1
- package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
- package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
- package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/binLookup/createCardVariantSwitcher.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/binLookup/createCardVariantSwitcher.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js.map +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
- package/dist/es-legacy/components/internal/SecuredFields/lib/constants.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/tx-variants.js +1 -1
- package/dist/es-legacy/components/tx-variants.js.map +1 -1
- package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
- package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
- package/dist/es-legacy/core/Analytics/AnalyticsErrorEvent.js +2 -0
- package/dist/es-legacy/core/Analytics/AnalyticsErrorEvent.js.map +1 -0
- package/dist/es-legacy/core/Analytics/AnalyticsEvent.js +2 -0
- package/dist/es-legacy/core/Analytics/AnalyticsEvent.js.map +1 -0
- package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js +2 -0
- package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js.map +1 -0
- package/dist/es-legacy/core/Analytics/AnalyticsLogEvent.js +2 -0
- package/dist/es-legacy/core/Analytics/AnalyticsLogEvent.js.map +1 -0
- package/dist/es-legacy/core/Analytics/utils.js +1 -1
- package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
- package/dist/es-legacy/core/Environment/Environment.js +1 -1
- package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js +1 -1
- package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
- package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
- package/dist/es-legacy/core/core.js +1 -1
- package/dist/es-legacy/core/core.js.map +1 -1
- package/dist/es-legacy/core/utils.js +1 -1
- package/dist/es-legacy/core/utils.js.map +1 -1
- package/dist/es-legacy/index.js +1 -1
- package/dist/es-legacy/utils/base64.js.map +1 -1
- package/dist/es-legacy/utils/clipboard.js.map +1 -1
- package/package.json +3 -4
- package/styles/adyen.css +12 -5
- package/dist/es/core/Analytics/analyticsPreProcessor.js +0 -2
- package/dist/es/core/Analytics/analyticsPreProcessor.js.map +0 -1
- package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js +0 -2
- package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GooglePay.js","sources":["../../../../src/components/GooglePay/GooglePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GooglePayService from './GooglePayService';\nimport GooglePayButton from './components/GooglePayButton';\nimport defaultProps from './defaultProps';\nimport { formatGooglePayContactToAdyenAddressFormat, getGooglePayLocale } from './utils';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport { ANALYTICS_INSTANT_PAYMENT_BUTTON, ANALYTICS_SELECTED_STR } from '../../core/Analytics/constants';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\n\nimport type { AddressData, BrowserInfo, PaymentMethod, PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\nimport type { GooglePayConfiguration } from './types';\nimport type { ICore } from '../../core/types';\n\nclass GooglePay extends UIElement<GooglePayConfiguration> {\n public static type = TxVariants.googlepay;\n public static txVariants = [TxVariants.googlepay, TxVariants.paywithgoogle];\n public static defaultProps = defaultProps;\n\n protected readonly googlePay;\n\n constructor(checkout: ICore, props?: GooglePayConfiguration) {\n super(checkout, props);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n this.showGooglePayPaymentSheet = this.showGooglePayPaymentSheet.bind(this);\n\n const { isExpress, paymentDataCallbacks } = this.props;\n\n if (isExpress === false && paymentDataCallbacks?.onPaymentDataChanged) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - You must set \"isExpress\" flag to \"true\" in order to use \"onPaymentDataChanged\" callback'\n );\n }\n\n if (!this.props.configuration.merchantId) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.'\n );\n }\n\n this.googlePay = new GooglePayService(this.props.environment, {\n ...(isExpress && paymentDataCallbacks?.onPaymentDataChanged && { onPaymentDataChanged: paymentDataCallbacks.onPaymentDataChanged }),\n onPaymentAuthorized: this.onPaymentAuthorized\n });\n }\n\n /**\n * Google Pay requires custom logic due to supporting two Tx variants that lead to the same payment method.\n * If the merchant creates a standalone Google Pay component, we need to verify if the payment method is available using both tx variants\n *\n * @param type\n * @returns\n */\n protected override getPaymentMethodFromPaymentMethodsResponse(type?: string): PaymentMethod {\n return (\n this.core.paymentMethodsResponse.find(type || this.constructor['type']) || this.core.paymentMethodsResponse.find(TxVariants.paywithgoogle)\n );\n }\n\n protected override formatProps(props): GooglePayConfiguration {\n const buttonSizeMode = props.buttonSizeMode ?? (props.isDropin ? 'fill' : 'static');\n const buttonLocale = getGooglePayLocale(props.buttonLocale ?? props.i18n?.locale);\n\n const callbackIntents: google.payments.api.CallbackIntent[] = [...props.callbackIntents, 'PAYMENT_AUTHORIZATION'];\n\n return {\n ...props,\n configuration: props.configuration,\n buttonSizeMode,\n buttonLocale,\n callbackIntents\n };\n }\n\n /**\n * Formats the component data output\n */\n protected override formatData() {\n const { googlePayCardNetwork, googlePayToken, billingAddress, deliveryAddress } = this.state;\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: this.type,\n googlePayCardNetwork,\n googlePayToken,\n ...(isExpress && { subtype: 'express' })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n super.submitAnalytics({ ...analyticsObj }, this.props);\n }\n\n /**\n * Displays the Google Pay payment sheet overlay\n */\n private showGooglePayPaymentSheet() {\n this.googlePay.initiatePayment(this.props, this.core.options.countryCode).catch((error: google.payments.api.PaymentsError) => {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n this.handleError(new AdyenCheckoutError(error.statusCode === 'CANCELED' ? 'CANCEL' : 'ERROR', error.toString(), { cause: error }));\n });\n }\n\n public override submit = () => {\n if (this.props.isInstantPayment) {\n this.submitAnalytics({ type: ANALYTICS_SELECTED_STR, target: ANALYTICS_INSTANT_PAYMENT_BUTTON });\n }\n\n new Promise<void>((resolve, reject) => this.props.onClick(resolve, reject)).then(this.showGooglePayPaymentSheet).catch(() => {\n // Swallow exception triggered by onClick reject\n });\n };\n\n /**\n * Method called when the payment is authorized in the payment sheet\n *\n * @see https://developers.google.com/pay/api/web/reference/client#onPaymentAuthorized\n **/\n private onPaymentAuthorized = async (paymentData: google.payments.api.PaymentData): Promise<google.payments.api.PaymentAuthorizationResult> => {\n const billingAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.paymentMethodData.info.billingAddress);\n const deliveryAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.shippingAddress, true);\n\n this.setState({\n authorizedEvent: paymentData,\n googlePayToken: paymentData.paymentMethodData.tokenizationData.token,\n googlePayCardNetwork: paymentData.paymentMethodData.info.cardNetwork,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<google.payments.api.PaymentAuthorizationResult>(resolve => {\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then((paymentResponse: PaymentResponseData) => {\n resolve({ transactionState: 'SUCCESS' });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n this.setElementStatus('ready');\n\n const googlePayError = paymentResponse?.error?.googlePayError;\n const fallbackMessage = this.props.i18n.get('error.subtitle.payment');\n\n const error: google.payments.api.PaymentDataError =\n typeof googlePayError === 'string' || undefined\n ? {\n intent: 'PAYMENT_AUTHORIZATION',\n reason: 'OTHER_ERROR',\n message: (googlePayError as string) || fallbackMessage\n }\n : {\n intent: googlePayError?.intent || 'PAYMENT_AUTHORIZATION',\n reason: googlePayError?.reason || 'OTHER_ERROR',\n message: googlePayError?.message || fallbackMessage\n };\n\n resolve({\n transactionState: 'ERROR',\n error\n });\n\n const responseWithError = {\n ...paymentResponse,\n error: {\n googlePayError: error\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n });\n };\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: google.payments.api.PaymentDataError | string) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { googlePayError: error } };\n return Promise.reject(data);\n });\n }\n\n public get isValid(): boolean {\n return true;\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public override async isAvailable(): Promise<void> {\n return this.isReadyToPay()\n .then(response => {\n if (!response.result) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay is not available');\n }\n\n if (response.paymentMethodPresent === false) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay - No paymentMethodPresent');\n }\n\n return Promise.resolve();\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public isReadyToPay = (): Promise<google.payments.api.IsReadyToPayResponse> => {\n return this.googlePay.isReadyToPay(this.props);\n };\n\n /**\n * Use this method to prefetch a PaymentDataRequest configuration to improve loadPaymentData execution time on later user interaction. No value is returned.\n */\n public prefetch = (): void => {\n return this.googlePay.prefetchPaymentData(this.props, this.core.options.countryCode);\n };\n\n get browserInfo(): BrowserInfo {\n return collectBrowserInfo();\n }\n\n get icon(): string {\n return this.props.icon ?? this.resources.getImage()('googlepay');\n }\n\n render() {\n if (this.props.showPayButton) {\n return (\n <GooglePayButton\n buttonColor={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonSizeMode={this.props.buttonSizeMode}\n buttonLocale={this.props.buttonLocale}\n buttonRootNode={this.props.buttonRootNode}\n buttonRadius={this.props.buttonRadius}\n paymentsClient={this.googlePay.paymentsClient}\n onClick={this.submit}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default GooglePay;\n"],"names":["GooglePay","UIElement","getPaymentMethodFromPaymentMethodsResponse","type","this","core","paymentMethodsResponse","find","constructor","TxVariants","paywithgoogle","formatProps","props","buttonSizeMode","isDropin","buttonLocale","getGooglePayLocale","i18n","locale","callbackIntents","_object_spread_props","configuration","formatData","googlePayCardNetwork","googlePayToken","billingAddress","deliveryAddress","state","isExpress","_object_spread","paymentMethod","subtype","browserInfo","origin","window","location","submitAnalytics","analyticsObj","super","showGooglePayPaymentSheet","googlePay","initiatePayment","options","countryCode","catch","error","handleError","AdyenCheckoutError","statusCode","toString","cause","handleAuthorization","Promise","resolve","reject","onAuthorized","authorizedEvent","data","googlePayError","isValid","isAvailable","isReadyToPay","then","response","result","paymentMethodPresent","collectBrowserInfo","icon","_this_props_icon","resources","getImage","render","showPayButton","h","GooglePayButton","buttonColor","buttonType","buttonRootNode","buttonRadius","paymentsClient","onClick","submit","checkout","_define_property","isInstantPayment","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","onPaymentAuthorized","async","paymentData","formatGooglePayContactToAdyenAddressFormat","paymentMethodData","info","shippingAddress","setState","tokenizationData","token","cardNetwork","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","paymentResponse","transactionState","handleResponse","setElementStatus","fallbackMessage","get","intent","reason","message","responseWithError","handleFailedResult","prefetch","prefetchPaymentData","bind","paymentDataCallbacks","onPaymentDataChanged","merchantId","GooglePayService","environment","googlepay","txVariants","defaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GooglePay.js","sources":["../../../../src/components/GooglePay/GooglePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GooglePayService from './GooglePayService';\nimport GooglePayButton from './components/GooglePayButton';\nimport defaultProps from './defaultProps';\nimport { formatGooglePayContactToAdyenAddressFormat, getGooglePayLocale } from './utils';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport {\n ANALYTICS_EXPRESS_PAGES_ARRAY,\n ANALYTICS_INSTANT_PAYMENT_BUTTON,\n ANALYTICS_RENDERED_STR,\n ANALYTICS_SELECTED_STR\n} from '../../core/Analytics/constants';\n\nimport type { AddressData, BrowserInfo, PaymentMethod, PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\nimport type { GooglePayConfiguration } from './types';\nimport type { ICore } from '../../core/types';\nimport { AnalyticsInfoEvent } from '../../core/Analytics/AnalyticsInfoEvent';\nimport { AnalyticsEvent } from '../../core/Analytics/AnalyticsEvent';\n\nclass GooglePay extends UIElement<GooglePayConfiguration> {\n public static type = TxVariants.googlepay;\n public static txVariants = [TxVariants.googlepay, TxVariants.paywithgoogle];\n public static defaultProps = defaultProps;\n\n protected readonly googlePay;\n\n constructor(checkout: ICore, props?: GooglePayConfiguration) {\n super(checkout, props);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n this.showGooglePayPaymentSheet = this.showGooglePayPaymentSheet.bind(this);\n\n const { isExpress, paymentDataCallbacks } = this.props;\n\n if (isExpress === false && paymentDataCallbacks?.onPaymentDataChanged) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - You must set \"isExpress\" flag to \"true\" in order to use \"onPaymentDataChanged\" callback'\n );\n }\n\n if (!this.props.configuration.merchantId) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.'\n );\n }\n\n this.googlePay = new GooglePayService(this.props.environment, {\n ...(isExpress && paymentDataCallbacks?.onPaymentDataChanged && { onPaymentDataChanged: paymentDataCallbacks.onPaymentDataChanged }),\n onPaymentAuthorized: this.onPaymentAuthorized\n });\n }\n\n /**\n * Google Pay requires custom logic due to supporting two Tx variants that lead to the same payment method.\n * If the merchant creates a standalone Google Pay component, we need to verify if the payment method is available using both tx variants\n *\n * @param type\n * @returns\n */\n protected override getPaymentMethodFromPaymentMethodsResponse(type?: string): PaymentMethod {\n return (\n this.core.paymentMethodsResponse.find(type || this.constructor['type']) || this.core.paymentMethodsResponse.find(TxVariants.paywithgoogle)\n );\n }\n\n protected override formatProps(props): GooglePayConfiguration {\n const buttonSizeMode = props.buttonSizeMode ?? (props.isDropin ? 'fill' : 'static');\n const buttonLocale = getGooglePayLocale(props.buttonLocale ?? props.i18n?.locale);\n\n const callbackIntents: google.payments.api.CallbackIntent[] = [...props.callbackIntents, 'PAYMENT_AUTHORIZATION'];\n\n return {\n ...props,\n configuration: props.configuration,\n buttonSizeMode,\n buttonLocale,\n callbackIntents\n };\n }\n\n /**\n * Formats the component data output\n */\n protected override formatData() {\n const { googlePayCardNetwork, googlePayToken, billingAddress, deliveryAddress } = this.state;\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: this.type,\n googlePayCardNetwork,\n googlePayToken,\n ...(isExpress && { subtype: 'express' })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n protected submitAnalytics(analyticsObj: AnalyticsEvent) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n if (analyticsObj instanceof AnalyticsInfoEvent && analyticsObj.type === ANALYTICS_RENDERED_STR) {\n const { isExpress, expressPage } = this.props;\n const hasExpressPage = expressPage && ANALYTICS_EXPRESS_PAGES_ARRAY.includes(expressPage);\n\n if (typeof isExpress === 'boolean') {\n analyticsObj.isExpress = isExpress;\n }\n\n if (isExpress === true && hasExpressPage) {\n analyticsObj.expressPage = expressPage; // We only care about the expressPage value if isExpress is true\n }\n }\n\n super.submitAnalytics(analyticsObj);\n }\n\n /**\n * Displays the Google Pay payment sheet overlay\n */\n private showGooglePayPaymentSheet() {\n this.googlePay.initiatePayment(this.props, this.core.options.countryCode).catch((error: google.payments.api.PaymentsError) => {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n this.handleError(new AdyenCheckoutError(error.statusCode === 'CANCELED' ? 'CANCEL' : 'ERROR', error.toString(), { cause: error }));\n });\n }\n\n public override submit = () => {\n if (this.props.isInstantPayment) {\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_SELECTED_STR,\n target: ANALYTICS_INSTANT_PAYMENT_BUTTON\n });\n\n this.submitAnalytics(event);\n }\n\n new Promise<void>((resolve, reject) => this.props.onClick(resolve, reject)).then(this.showGooglePayPaymentSheet).catch(() => {\n // Swallow exception triggered by onClick reject\n });\n };\n\n /**\n * Method called when the payment is authorized in the payment sheet\n *\n * @see https://developers.google.com/pay/api/web/reference/client#onPaymentAuthorized\n **/\n private onPaymentAuthorized = async (paymentData: google.payments.api.PaymentData): Promise<google.payments.api.PaymentAuthorizationResult> => {\n const billingAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.paymentMethodData.info.billingAddress);\n const deliveryAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.shippingAddress, true);\n\n this.setState({\n authorizedEvent: paymentData,\n googlePayToken: paymentData.paymentMethodData.tokenizationData.token,\n googlePayCardNetwork: paymentData.paymentMethodData.info.cardNetwork,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<google.payments.api.PaymentAuthorizationResult>(resolve => {\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then((paymentResponse: PaymentResponseData) => {\n resolve({ transactionState: 'SUCCESS' });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n this.setElementStatus('ready');\n\n const googlePayError = paymentResponse?.error?.googlePayError;\n const fallbackMessage = this.props.i18n.get('error.subtitle.payment');\n\n const error: google.payments.api.PaymentDataError =\n typeof googlePayError === 'string' || undefined\n ? {\n intent: 'PAYMENT_AUTHORIZATION',\n reason: 'OTHER_ERROR',\n message: (googlePayError as string) || fallbackMessage\n }\n : {\n intent: googlePayError?.intent || 'PAYMENT_AUTHORIZATION',\n reason: googlePayError?.reason || 'OTHER_ERROR',\n message: googlePayError?.message || fallbackMessage\n };\n\n resolve({\n transactionState: 'ERROR',\n error\n });\n\n const responseWithError = {\n ...paymentResponse,\n error: {\n googlePayError: error\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n });\n };\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: google.payments.api.PaymentDataError | string) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { googlePayError: error } };\n return Promise.reject(data);\n });\n }\n\n public get isValid(): boolean {\n return true;\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public override async isAvailable(): Promise<void> {\n return this.isReadyToPay()\n .then(response => {\n if (!response.result) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay is not available');\n }\n\n if (response.paymentMethodPresent === false) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay - No paymentMethodPresent');\n }\n\n return Promise.resolve();\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public isReadyToPay = (): Promise<google.payments.api.IsReadyToPayResponse> => {\n return this.googlePay.isReadyToPay(this.props);\n };\n\n /**\n * Use this method to prefetch a PaymentDataRequest configuration to improve loadPaymentData execution time on later user interaction. No value is returned.\n */\n public prefetch = (): void => {\n return this.googlePay.prefetchPaymentData(this.props, this.core.options.countryCode);\n };\n\n get browserInfo(): BrowserInfo {\n return collectBrowserInfo();\n }\n\n get icon(): string {\n return this.props.icon ?? this.resources.getImage()('googlepay');\n }\n\n render() {\n if (this.props.showPayButton) {\n return (\n <GooglePayButton\n buttonColor={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonSizeMode={this.props.buttonSizeMode}\n buttonLocale={this.props.buttonLocale}\n buttonRootNode={this.props.buttonRootNode}\n buttonRadius={this.props.buttonRadius}\n paymentsClient={this.googlePay.paymentsClient}\n onClick={this.submit}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default GooglePay;\n"],"names":["GooglePay","UIElement","getPaymentMethodFromPaymentMethodsResponse","type","this","core","paymentMethodsResponse","find","constructor","TxVariants","paywithgoogle","formatProps","props","buttonSizeMode","isDropin","buttonLocale","getGooglePayLocale","i18n","locale","callbackIntents","_object_spread_props","configuration","formatData","googlePayCardNetwork","googlePayToken","billingAddress","deliveryAddress","state","isExpress","_object_spread","paymentMethod","subtype","browserInfo","origin","window","location","submitAnalytics","analyticsObj","AnalyticsInfoEvent","ANALYTICS_RENDERED_STR","expressPage","hasExpressPage","ANALYTICS_EXPRESS_PAGES_ARRAY","includes","super","showGooglePayPaymentSheet","googlePay","initiatePayment","options","countryCode","catch","error","handleError","AdyenCheckoutError","statusCode","toString","cause","handleAuthorization","Promise","resolve","reject","onAuthorized","authorizedEvent","data","googlePayError","isValid","isAvailable","isReadyToPay","then","response","result","paymentMethodPresent","collectBrowserInfo","icon","_this_props_icon","resources","getImage","render","showPayButton","h","GooglePayButton","buttonColor","buttonType","buttonRootNode","buttonRadius","paymentsClient","onClick","submit","checkout","_define_property","isInstantPayment","event","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","onPaymentAuthorized","async","paymentData","formatGooglePayContactToAdyenAddressFormat","paymentMethodData","info","shippingAddress","setState","tokenizationData","token","cardNetwork","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","paymentResponse","transactionState","handleResponse","setElementStatus","fallbackMessage","get","intent","reason","message","responseWithError","handleFailedResult","prefetch","prefetchPaymentData","bind","paymentDataCallbacks","onPaymentDataChanged","merchantId","GooglePayService","environment","googlepay","txVariants","defaultProps"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createElement as e}from"../../external/preact/dist/preact.js";import{CoreProvider as t}from"../../core/Context/CoreProvider.js";import{TxVariants as r}from"../tx-variants.js";import{UIElement as n}from"../internal/UIElement/UIElement.js";import i from"../../core/Errors/SRPanelProvider.js";import o from"../internal/RedirectButton/RedirectButton.js";import s,{ERROR as a}from"../../core/Errors/AdyenCheckoutError.js";import{PasskeyService as p}from"./services/PasskeyService.js";import{authorizeEnrollment as l}from"./services/authorizeEnrollment.js";import{authorizePayment as d}from"./services/authorizePayment.js";import h from"./components/StoredPayment/StoredPayment.js";import c from"./components/Enrollment/Enrollment.js";function y(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){y(e,t,r[t])}))}return e}function m(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 v(e,t){if(null==e)return{};var r,n,i=function(e,t){if(null==e)return{};var r,n,i={},o=Object.keys(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n<o.length;n++)r=o[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}class f extends n{get isValid(){var e;return!(this.props._isAdyenHosted&&!this.props.storedPaymentMethodId)||!!(null===(e=this.state)||void 0===e?void 0:e.isValid)}get additionalInfo(){var e,t;return this.props.storedPaymentMethodId?this.props.i18n.get("paybybankpix.storedPayment.additionalLabel",{values:{receiver:null===(t=this.props)||void 0===t||null===(e=t.payByBankPixDetails)||void 0===e?void 0:e.receiver}}):""}get icon(){var e,t;return this.props.storedPaymentMethodId?this.resources.getImage({parentFolder:`${f.type}/`})(null===(t=this.props)||void 0===t||null===(e=t.payByBankPixDetails)||void 0===e?void 0:e.ispb):super.icon}async isAvailable(){const e=await this.passkeyService.getWebAuthnUnsupportedReason();if(e)return Promise.reject(new s(a,e));if(!this.props._isAdyenHosted)return Promise.resolve();try{if(await this.passkeyService.initialize(),this.props.storedPaymentMethodId){return await this.passkeyService.canUseStoredCredential()?Promise.resolve():Promise.reject(new s("ERROR","The stored payment method is not available on this device"))}return Promise.resolve()}catch(e){return Promise.reject(e instanceof Error?null==e?void 0:e.message:"Unknown error")}}handleAction(e,t={}){const r=this.core.createFromAction(e,m(u({},this.elementRef.props,t),{onAdditionalDetails:this.handleAdditionalDetails}));return r?(this.unmount(),r.isAvailable().then((()=>{r.mount(this._node)})),r):null}formatData(){if(!this.props._isAdyenHosted)return{paymentMethod:{type:r.paybybank_pix}};const e=null==this.props.storedPaymentMethodId;return u({paymentMethod:u({type:r.paybybank_pix},this.state.data)},e?{storePaymentMethod:!0}:{})}render(){var r,n,s,a,p,l,d;return this.props._isAdyenHosted?e(t,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(i,{srPanel:this.props.modules.srPanel},null!=this.props.storedPaymentMethodId?e(h,{txVariant:f.type,type:this.props.type,clientKey:this.props.clientKey,amount:this.props.amount,issuer:null===(n=this.props)||void 0===n||null===(r=n.payByBankPixDetails)||void 0===r?void 0:r.ispb,receiver:null===(a=this.props)||void 0===a||null===(s=a.payByBankPixDetails)||void 0===s?void 0:s.receiver,enrollmentId:null===(p=this.props.paymentMethodData)||void 0===p?void 0:p.enrollmentId,initiationId:null===(l=this.props.paymentMethodData)||void 0===l?void 0:l.initiationId,setComponentRef:this.setComponentRef,onPay:this.payWithStoredPayment,onAuthorize:this.authorizePayment}):e(c,{onError:this.handleError,txVariant:f.type,type:this.props.type,clientKey:this.props.clientKey,enrollmentId:null===(d=this.props.paymentMethodData)||void 0===d?void 0:d.enrollmentId,countdownTime:this.props.countdownTime,onEnroll:this.authorizeEnrollment,issuers:this.props.issuers,payButton:this.payButton,onChange:this.onIssuerSelected,onSubmitAnalytics:this.submitAnalytics,setComponentRef:this.setComponentRef}))):e(t,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(i,{srPanel:this.props.modules.srPanel},e(o,{showPayButton:this.props.showPayButton,name:this.displayName,label:this.props.i18n.get("paybybankpix.redirectBtn.label"),amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:e=>{this.componentRef=e}})))}constructor(e,t){var r,n;super(e,t),y(this,"passkeyService",void 0),y(this,"onIssuerSelected",(async e=>{try{const{data:t={}}=e;if(!t.issuer)return;const r=await this.passkeyService.captureRiskSignalsEnrollment(),{deviceId:n}=r,i=v(r,["deviceId"]);this.setState(m(u({},e),{data:m(u({},t),{riskSignals:i,deviceId:n})}))}catch(e){const t=e instanceof Error?e.message:"Unknown error in the onIssuerSelected";this.handleError(e instanceof s?e:new s(a,t))}})),y(this,"authorizeEnrollment",(async e=>{try{var t;const r=await this.passkeyService.createCredentialForEnrollment(e),n={enrollmentId:null===(t=this.props.paymentMethodData)||void 0===t?void 0:t.enrollmentId,fidoAssertion:r},{redirectResult:i}=await l({enrollment:n,clientKey:this.props.clientKey,loadingContext:this.props.loadingContext});this.handleAdditionalDetails({data:{details:{redirectResult:i}}})}catch(e){const t=e instanceof Error?e.message:"Unknown error in the authorizeEnrollment";this.handleError(e instanceof s?e:new s(a,t))}})),y(this,"payWithStoredPayment",(async()=>{try{const e=await this.passkeyService.captureRiskSignalsAuthentication(),{deviceId:t}=e,r=v(e,["deviceId"]);this.state=u({},this.state,{data:{storedPaymentMethodId:this.props.storedPaymentMethodId,riskSignals:r,deviceId:t}}),super.submit()}catch(e){const t=e instanceof Error?e.message:"Unknown error in the payWithStoredPayment";this.handleError(e instanceof s?e:new s(a,t))}})),y(this,"authorizePayment",(async e=>{try{var t,r;const n=await this.passkeyService.authenticateWithCredential(e),i={enrollmentId:null===(t=this.props.paymentMethodData)||void 0===t?void 0:t.enrollmentId,initiationId:null===(r=this.props.paymentMethodData)||void 0===r?void 0:r.initiationId,fidoAssertion:n},{redirectResult:o}=await d({payment:i,clientKey:this.props.clientKey,loadingContext:this.props.loadingContext});this.handleAdditionalDetails({data:{details:{redirectResult:o}}})}catch(e){const t=e instanceof Error?e.message:"Unknown error in the authorizePayment";this.handleError(e instanceof s?e:new s(a,t))}}));const i=this.props.storedPaymentMethodId?null===(n=this.props)||void 0===n||null===(r=n.payByBankPixDetails)||void 0===r?void 0:r.deviceId:this.props.deviceId;this.passkeyService=new p({environment:this.props.environment,deviceId:i}),this.props._isAdyenHosted&&this.passkeyService.initialize()}}y(f,"type",r.paybybank_pix),y(f,"TIMEOUT_MINUTES",1),y(f,"defaultProps",{showPayButton:!0,_isAdyenHosted:(()=>{try{return new URL(window.location.href).hostname.endsWith(".adyen.com")}catch(e){return!1}})(),countdownTime:f.TIMEOUT_MINUTES});export{f as default};
|
|
2
|
+
//# sourceMappingURL=PayByBankPix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PayByBankPix.js","sources":["../../../../src/components/PayByBankPix/PayByBankPix.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport { PayByBankPixData, PayByBankPixConfiguration } from './types';\nimport { TxVariants } from '../tx-variants';\nimport UIElement from '../internal/UIElement';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport RedirectButton from '../internal/RedirectButton';\nimport AdyenCheckoutError, { ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport { PasskeyService } from './services/PasskeyService';\nimport { authorizeEnrollment } from './services/authorizeEnrollment';\nimport { authorizePayment } from './services/authorizePayment';\nimport StoredPayment from './components/StoredPayment';\nimport Enrollment from './components/Enrollment';\nimport { PaymentAction } from '../../types/global-types';\nimport type { ICore } from '../../core/types';\n\nconst isAdyenHosted = () => {\n try {\n const currentUrl = new URL(window.location.href);\n return currentUrl.hostname.endsWith('.adyen.com');\n } catch (e) {\n // SSR, or it fails to parse the full url\n return false;\n }\n};\nclass PayByBankPixElement extends UIElement<PayByBankPixConfiguration> {\n public static readonly type = TxVariants.paybybank_pix;\n private static readonly TIMEOUT_MINUTES = 1;\n private readonly passkeyService: PasskeyService;\n\n public static readonly defaultProps: PayByBankPixConfiguration = {\n showPayButton: true,\n _isAdyenHosted: isAdyenHosted(),\n countdownTime: PayByBankPixElement.TIMEOUT_MINUTES\n };\n\n constructor(checkout: ICore, props?: PayByBankPixConfiguration) {\n super(checkout, props);\n const deviceId = this.props.storedPaymentMethodId ? this.props?.payByBankPixDetails?.deviceId : this.props.deviceId;\n this.passkeyService = new PasskeyService({ environment: this.props.environment, deviceId });\n if (this.props._isAdyenHosted) {\n void this.passkeyService.initialize();\n }\n }\n\n get isValid(): boolean {\n // Always true for non-hosted page or stored payment\n if (!this.props._isAdyenHosted || this.props.storedPaymentMethodId) {\n return true;\n }\n return !!this.state?.isValid;\n }\n\n /**\n * Display in the drop-in\n */\n get additionalInfo() {\n return this.props.storedPaymentMethodId\n ? this.props.i18n.get('paybybankpix.storedPayment.additionalLabel', { values: { receiver: this.props?.payByBankPixDetails?.receiver } })\n : '';\n }\n\n /**\n * Display in the drop-in\n */\n public override get icon() {\n return this.props.storedPaymentMethodId\n ? this.resources.getImage({ parentFolder: `${PayByBankPixElement.type}/` })(this.props?.payByBankPixDetails?.ispb)\n : super.icon;\n }\n\n /**\n * Method used to let the merchant know if the shopper's device supports WebAuthn APIs: https://featuredetect.passkeys.dev/\n */\n public override async isAvailable(): Promise<void> {\n const unsupportedReason = await this.passkeyService.getWebAuthnUnsupportedReason();\n if (unsupportedReason) {\n return Promise.reject(new AdyenCheckoutError(ERROR, unsupportedReason));\n }\n if (!this.props._isAdyenHosted) {\n return Promise.resolve();\n }\n\n // Load passkey sdk on the hosted page\n try {\n await this.passkeyService.initialize();\n\n if (this.props.storedPaymentMethodId) {\n // If the provided deviceId from the server does not match the localstorage deviceId, do not render the stored payment component.\n const shouldShowStoredPaymentMethod = await this.passkeyService.canUseStoredCredential();\n return shouldShowStoredPaymentMethod\n ? Promise.resolve()\n : Promise.reject(new AdyenCheckoutError('ERROR', 'The stored payment method is not available on this device'));\n }\n\n return Promise.resolve();\n } catch (error) {\n return Promise.reject(error instanceof Error ? error?.message : 'Unknown error');\n }\n }\n\n /**\n * Make sure the await action UIElement is available before mounting\n */\n public override handleAction(action: PaymentAction, props: {} = {}): UIElement | null {\n const paymentAction = this.core.createFromAction(action, {\n ...this.elementRef.props,\n ...props,\n onAdditionalDetails: this.handleAdditionalDetails\n });\n if (paymentAction) {\n this.unmount();\n void paymentAction.isAvailable().then(() => {\n paymentAction.mount(this._node);\n });\n return paymentAction;\n }\n\n return null;\n }\n\n formatData(): PayByBankPixData {\n if (!this.props._isAdyenHosted) {\n return {\n paymentMethod: { type: TxVariants.paybybank_pix }\n };\n }\n\n const isEnrollment = this.props.storedPaymentMethodId == null;\n return {\n paymentMethod: { type: TxVariants.paybybank_pix, ...this.state.data },\n // Always store the payment method for the enrollment flow.\n ...(isEnrollment ? { storePaymentMethod: true } : {})\n };\n }\n\n /**\n * There are 3 endpoints (stages) we need to call for the enrollment flow.\n * The first one is the regular payments call on issuer selection - we indicate to store the payment token for the selected issuer.\n * The second one is to poll the enrollment eligibility - we poll the server to get the enrollment challenge in the `getEnrollmentStatus` function.\n * The third one is in the `authorizeEnrollment` function - we create passkeys and authorize the enrollment with shopper's passkey.\n */\n private readonly onIssuerSelected = async payload => {\n try {\n const { data = {} } = payload;\n if (!data.issuer) {\n return;\n }\n\n const { deviceId, ...riskSignals } = await this.passkeyService.captureRiskSignalsEnrollment();\n this.setState({ ...payload, data: { ...data, riskSignals, deviceId } });\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Unknown error in the onIssuerSelected';\n this.handleError(error instanceof AdyenCheckoutError ? error : new AdyenCheckoutError(ERROR, errorMsg));\n }\n };\n\n private readonly authorizeEnrollment = async (registrationOptions: string): Promise<void> => {\n try {\n const fidoAssertion = await this.passkeyService.createCredentialForEnrollment(registrationOptions); // Create passkey and trigger biometrics\n const enrollment = { enrollmentId: this.props.paymentMethodData?.enrollmentId, fidoAssertion };\n const { redirectResult } = await authorizeEnrollment({\n enrollment,\n clientKey: this.props.clientKey,\n loadingContext: this.props.loadingContext\n });\n // Make paymentDetails call to finalize the enrollment.\n this.handleAdditionalDetails({ data: { details: { redirectResult } } });\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Unknown error in the authorizeEnrollment';\n this.handleError(error instanceof AdyenCheckoutError ? error : new AdyenCheckoutError(ERROR, errorMsg));\n }\n };\n\n /**\n * There are 3 endpoints (stages) we need to call for the payment flow.\n * The first one `payWithStoredPayment` is the regular payments call - we attempt to pay with the stored payment token.\n * The second one is to poll the authorization options - we poll the server to get the challenge in the `getAuthorizationStatus` function.\n * The third one is in the `authorizePayment` function - we authorize the payment with shopper's passkey.\n */\n private readonly payWithStoredPayment = async () => {\n try {\n const { deviceId, ...riskSignals } = await this.passkeyService.captureRiskSignalsAuthentication();\n this.state = { ...this.state, ...{ data: { storedPaymentMethodId: this.props.storedPaymentMethodId, riskSignals, deviceId } } };\n super.submit();\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Unknown error in the payWithStoredPayment';\n this.handleError(error instanceof AdyenCheckoutError ? error : new AdyenCheckoutError(ERROR, errorMsg));\n }\n };\n\n private readonly authorizePayment = async (authenticationOptions: string): Promise<void> => {\n try {\n const fidoAssertion = await this.passkeyService.authenticateWithCredential(authenticationOptions);\n const payment = {\n enrollmentId: this.props.paymentMethodData?.enrollmentId,\n initiationId: this.props.paymentMethodData?.initiationId,\n fidoAssertion\n };\n const { redirectResult } = await authorizePayment({\n payment,\n clientKey: this.props.clientKey,\n loadingContext: this.props.loadingContext\n });\n this.handleAdditionalDetails({ data: { details: { redirectResult } } });\n } catch (error) {\n const errorMsg = error instanceof Error ? error.message : 'Unknown error in the authorizePayment';\n this.handleError(error instanceof AdyenCheckoutError ? error : new AdyenCheckoutError(ERROR, errorMsg));\n }\n };\n\n render() {\n // Always render the redirect button on the merchant's page\n if (!this.props._isAdyenHosted) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n label={this.props.i18n.get('paybybankpix.redirectBtn.label')}\n amount={this.props.amount}\n payButton={this.payButton}\n onSubmit={this.submit}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n {this.props.storedPaymentMethodId != null ? (\n <StoredPayment\n txVariant={PayByBankPixElement.type}\n type={this.props.type}\n clientKey={this.props.clientKey}\n amount={this.props.amount}\n issuer={this.props?.payByBankPixDetails?.ispb}\n receiver={this.props?.payByBankPixDetails?.receiver}\n enrollmentId={this.props.paymentMethodData?.enrollmentId}\n initiationId={this.props.paymentMethodData?.initiationId}\n setComponentRef={this.setComponentRef}\n onPay={this.payWithStoredPayment}\n onAuthorize={this.authorizePayment}\n />\n ) : (\n <Enrollment\n onError={this.handleError}\n txVariant={PayByBankPixElement.type}\n // Await\n type={this.props.type}\n clientKey={this.props.clientKey}\n enrollmentId={this.props.paymentMethodData?.enrollmentId}\n countdownTime={this.props.countdownTime}\n onEnroll={this.authorizeEnrollment}\n // Issuer List\n issuers={this.props.issuers}\n payButton={this.payButton}\n onChange={this.onIssuerSelected}\n onSubmitAnalytics={this.submitAnalytics}\n setComponentRef={this.setComponentRef}\n />\n )}\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n//\nexport default PayByBankPixElement;\n"],"names":["PayByBankPixElement","UIElement","isValid","_this_state","this","props","_isAdyenHosted","storedPaymentMethodId","state","additionalInfo","_this_props_payByBankPixDetails","_this_props","i18n","get","values","receiver","payByBankPixDetails","icon","resources","getImage","parentFolder","type","ispb","super","isAvailable","unsupportedReason","passkeyService","getWebAuthnUnsupportedReason","Promise","reject","AdyenCheckoutError","ERROR","resolve","initialize","canUseStoredCredential","error","Error","message","handleAction","action","paymentAction","core","createFromAction","_object_spread_props","_object_spread","elementRef","onAdditionalDetails","handleAdditionalDetails","unmount","then","mount","_node","formatData","paymentMethod","TxVariants","paybybank_pix","isEnrollment","data","storePaymentMethod","render","_this_props_payByBankPixDetails1","_this_props1","_this_props_paymentMethodData","_this_props_paymentMethodData1","_this_props_paymentMethodData2","h","CoreProvider","loadingContext","SRPanelProvider","srPanel","modules","StoredPayment","txVariant","clientKey","amount","issuer","enrollmentId","paymentMethodData","initiationId","setComponentRef","onPay","payWithStoredPayment","onAuthorize","authorizePayment","Enrollment","onError","handleError","countdownTime","onEnroll","authorizeEnrollment","issuers","payButton","onChange","onIssuerSelected","onSubmitAnalytics","submitAnalytics","RedirectButton","showPayButton","name","displayName","label","onSubmit","submit","ref","componentRef","constructor","checkout","_define_property","async","payload","_ref","captureRiskSignalsEnrollment","deviceId","riskSignals","_object_without_properties","setState","errorMsg","registrationOptions","fidoAssertion","createCredentialForEnrollment","enrollment","redirectResult","details","captureRiskSignalsAuthentication","authenticationOptions","authenticateWithCredential","payment","PasskeyService","environment","TIMEOUT_MINUTES","defaultProps","URL","window","location","href","hostname","endsWith","e","isAdyenHosted"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createElement as t}from"../../../../external/preact/dist/preact.js";import{useRef as e,useState as n,useEffect as a}from"../../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as o}from"../../../../core/Context/CoreProvider.js";import i from"../../../internal/IssuerList/IssuerList.js";import{useIssuerWithLogo as r}from"./useIssuerWithLogo.js";import s from"./getEnrollmentStatus.js";import l from"./components/IssuerListIntroduction.js";import m from"./components/PayByBankPixAwait.js";import p from"../../../../core/Context/useImage.js";import{LabelOnlyDisclaimerMessage as c}from"../../../internal/DisclaimerMessage/DisclaimerMessage.js";function u(u){const{i18n:y,loadingContext:d}=o(),g=p(),w=e(null),[x,f]=n(null),b=[{name:"open-finance",alt:y.get("paybybankpix.await.logoAlt.openFinance"),src:`${g({parentFolder:`${u.txVariant}/`})("open-finance")}`},{name:"arrow-down",alt:y.get("paybybankpix.await.logoAlt.arrowDown"),src:`${g({imageFolder:"components/"})("arrow_down")}`},{name:"bank",alt:y.get("paybybankpix.await.logoAlt.bank"),src:`${g({imageFolder:"components/"})("bank")}`}],k=e({showValidation:()=>{var t;null==w||null===(t=w.current)||void 0===t||t.showValidation()},setStatus:t=>{var e;null==w||null===(e=w.current)||void 0===e||e.setStatus(t)}});return a((()=>{u.setComponentRef(k.current)}),[u.setComponentRef]),a((()=>{x&&u.onEnroll(x)}),[x]),t("div",{className:"adyen-checkout-pix-enrollment"},(t=>"await"===t.type)(u)?t(m,{logos:b,type:u.txVariant,countdownTime:u.countdownTime,clientKey:u.clientKey,onError:u.onError,awaitText:y.get("paybybankpix.await.waitForConfirmation"),instructions:y.get("paybybankpix.await.timeToPay",{values:{numberOfMin:u.countdownTime}}),pollStatus:async()=>{if(x)return;const{enrollmentId:t,clientKey:e}=u,n=await s({enrollmentId:t,clientKey:e,loadingContext:d});return n.registrationOptions&&f(n.registrationOptions),n},endSlot:()=>t("span",null,y.get("paybybankpix.await.withOpenFinance"))}):t("div",{className:"adyen-checkout-pix-enrollment-issuer-list"},t(l,{txVariant:u.txVariant}),t(i,{items:r({issuers:u.issuers,txVariant:u.txVariant}),onSubmitAnalytics:u.onSubmitAnalytics,onChange:u.onChange,payButton:u.payButton,showPayButton:!0,ref:w}),t("span",{className:"adyen-checkout-disclaimer__label"},t(c,{message:y.get("paybybankpix.issuerList.disclaimer"),urls:[""]}))))}export{u as default};
|
|
2
|
+
//# sourceMappingURL=Enrollment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Enrollment.js","sources":["../../../../../../src/components/PayByBankPix/components/Enrollment/Enrollment.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useRef, useState, useEffect } from 'preact/hooks';\nimport { AwaitProps, EnrollmentProps } from './types';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport IssuerList from '../../../internal/IssuerList';\nimport { useIssuerWithLogo } from './useIssuerWithLogo';\nimport getEnrollmentStatus from './getEnrollmentStatus';\nimport IssuerListIntroduction from './components/IssuerListIntroduction';\nimport PayByBankPixAwait from './components/PayByBankPixAwait';\nimport useImage from '../../../../core/Context/useImage';\nimport './Enrollment.scss';\nimport { LabelOnlyDisclaimerMessage } from '../../../internal/DisclaimerMessage/DisclaimerMessage';\nimport { ComponentMethodsRef, UIElementStatus } from '../../../internal/UIElement/types';\n\n//todo: add\nconst TERMS_CONDITIONS_URL = '';\n\nfunction Enrollment(props: EnrollmentProps) {\n const { i18n, loadingContext } = useCoreContext();\n const getImage = useImage();\n const issuerListRef = useRef<ComponentMethodsRef>(null);\n const [registrationOptions, setRegistrationOptions] = useState<string>(null);\n const logos = [\n {\n name: 'open-finance',\n alt: i18n.get('paybybankpix.await.logoAlt.openFinance'),\n src: `${getImage({ parentFolder: `${props.txVariant}/` })('open-finance')}`\n },\n {\n name: 'arrow-down',\n alt: i18n.get('paybybankpix.await.logoAlt.arrowDown'),\n src: `${getImage({ imageFolder: 'components/' })('arrow_down')}`\n },\n { name: 'bank', alt: i18n.get('paybybankpix.await.logoAlt.bank'), src: `${getImage({ imageFolder: 'components/' })('bank')}` }\n ];\n const self = useRef({\n showValidation: () => {\n issuerListRef?.current?.showValidation();\n },\n setStatus: (newStatus: UIElementStatus) => {\n issuerListRef?.current?.setStatus(newStatus);\n }\n });\n\n const pollStatus = async () => {\n if (registrationOptions) return;\n\n const { enrollmentId, clientKey } = props as AwaitProps;\n const response = await getEnrollmentStatus({ enrollmentId, clientKey, loadingContext });\n if (response.registrationOptions) {\n setRegistrationOptions(response.registrationOptions);\n }\n return response;\n };\n // Assist typescript to narrow down the type.\n const isAwait = (props: EnrollmentProps): props is AwaitProps => props.type === 'await';\n const awaitEndSlot = () => <span>{i18n.get('paybybankpix.await.withOpenFinance')}</span>;\n\n useEffect(() => {\n props.setComponentRef(self.current);\n }, [props.setComponentRef]);\n\n useEffect(() => {\n if (registrationOptions) {\n props.onEnroll(registrationOptions);\n }\n }, [registrationOptions]);\n\n return (\n <div className={'adyen-checkout-pix-enrollment'}>\n {isAwait(props) ? (\n <PayByBankPixAwait\n logos={logos}\n type={props.txVariant}\n countdownTime={props.countdownTime}\n clientKey={props.clientKey}\n onError={props.onError}\n awaitText={i18n.get('paybybankpix.await.waitForConfirmation')}\n instructions={i18n.get('paybybankpix.await.timeToPay', {\n values: { numberOfMin: props.countdownTime }\n })}\n pollStatus={pollStatus}\n endSlot={awaitEndSlot}\n ></PayByBankPixAwait>\n ) : (\n <div className=\"adyen-checkout-pix-enrollment-issuer-list\">\n <IssuerListIntroduction txVariant={props.txVariant} />\n <IssuerList\n items={useIssuerWithLogo({ issuers: props.issuers, txVariant: props.txVariant })}\n onSubmitAnalytics={props.onSubmitAnalytics}\n onChange={props.onChange}\n payButton={props.payButton}\n showPayButton={true}\n ref={issuerListRef}\n ></IssuerList>\n <span className=\"adyen-checkout-disclaimer__label\">\n <LabelOnlyDisclaimerMessage message={i18n.get('paybybankpix.issuerList.disclaimer')} urls={[TERMS_CONDITIONS_URL]} />\n </span>\n </div>\n )}\n </div>\n );\n}\n\nexport default Enrollment;\n"],"names":["Enrollment","props","i18n","loadingContext","useCoreContext","getImage","useImage","issuerListRef","useRef","registrationOptions","setRegistrationOptions","useState","logos","name","alt","get","src","parentFolder","txVariant","imageFolder","self","showValidation","current","setStatus","newStatus","useEffect","setComponentRef","onEnroll","h","div","className","type","isAwait","PayByBankPixAwait","countdownTime","clientKey","onError","awaitText","instructions","values","numberOfMin","pollStatus","async","enrollmentId","response","getEnrollmentStatus","endSlot","span","IssuerListIntroduction","IssuerList","items","useIssuerWithLogo","issuers","onSubmitAnalytics","onChange","payButton","showPayButton","ref","LabelOnlyDisclaimerMessage","message","urls"],"mappings":"ypBAiBA,SAASA,EAAWC,GAChB,MAAMC,KAAEA,EAAIC,eAAEA,GAAmBC,IAC3BC,EAAWC,IACXC,EAAgBC,EAA4B,OAC3CC,EAAqBC,GAA0BC,EAAiB,MACjEC,EAAQ,CACV,CACIC,KAAM,eACNC,IAAKZ,EAAKa,IAAI,0CACdC,IAAK,GAAGX,EAAS,CAAEY,aAAc,GAAGhB,EAAMiB,cAAlCb,CAAkD,mBAE9D,CACIQ,KAAM,aACNC,IAAKZ,EAAKa,IAAI,wCACdC,IAAK,GAAGX,EAAS,CAAEc,YAAa,eAAxBd,CAAyC,iBAErD,CAAEQ,KAAM,OAAQC,IAAKZ,EAAKa,IAAI,mCAAoCC,IAAK,GAAGX,EAAS,CAAEc,YAAa,eAAxBd,CAAyC,YAEjHe,EAAOZ,EAAO,CAChBa,eAAgB,KACZd,IAAAA,EAAAA,SAAAA,QAAAA,EAAAA,EAAee,eAAff,IAAAA,GAAAA,EAAwBc,gBAAc,EAE1CE,UAAYC,IACRjB,IAAAA,EAAAA,iBAAAA,EAAAA,EAAee,eAAff,IAAAA,GAAAA,EAAwBgB,UAAUC,EAAAA,IA4B1C,OAVAC,GAAU,KACNxB,EAAMyB,gBAAgBN,EAAKE,QAAO,GACnC,CAACrB,EAAMyB,kBAEVD,GAAU,KACFhB,GACAR,EAAM0B,SAASlB,EACnB,GACD,CAACA,IAGAmB,EAACC,MAAAA,CAAIC,UAAW,iCAdJ,CAAC7B,GAA+D,UAAfA,EAAM8B,KAe9DC,CAAQ/B,GACL2B,EAACK,EAAAA,CACGrB,MAAOA,EACPmB,KAAM9B,EAAMiB,UACZgB,cAAejC,EAAMiC,cACrBC,UAAWlC,EAAMkC,UACjBC,QAASnC,EAAMmC,QACfC,UAAWnC,EAAKa,IAAI,0CACpBuB,aAAcpC,EAAKa,IAAI,+BAAgC,CACnDwB,OAAQ,CAAEC,YAAavC,EAAMiC,iBAEjCO,WArCGC,UACf,GAAIjC,EAAqB,OAEzB,MAAMkC,aAAEA,EAAYR,UAAEA,GAAclC,EAC9B2C,QAAiBC,EAAoB,CAAEF,eAAcR,YAAWhC,mBAItE,OAHIyC,EAASnC,qBACTC,EAAuBkC,EAASnC,qBAE7BmC,CAAAA,EA8BKE,QA1BK,IAAMlB,EAACmB,OAAM7C,KAAAA,EAAKa,IAAI,yCA6B/Ba,EAACC,MAAAA,CAAIC,UAAU,6CACXF,EAACoB,EAAAA,CAAuB9B,UAAWjB,EAAMiB,YACzCU,EAACqB,EAAAA,CACGC,MAAOC,EAAkB,CAAEC,QAASnD,EAAMmD,QAASlC,UAAWjB,EAAMiB,YACpEmC,kBAAmBpD,EAAMoD,kBACzBC,SAAUrD,EAAMqD,SAChBC,UAAWtD,EAAMsD,UACjBC,eAAe,EACfC,IAAKlD,IAETqB,EAACmB,OAAAA,CAAKjB,UAAU,oCACZF,EAAC8B,EAAAA,CAA2BC,QAASzD,EAAKa,IAAI,sCAAuC6C,KAAM,CAjFtF,QAuF7B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createElement as a}from"../../../../../external/preact/dist/preact.js";function e({logos:e}){return a("div",{className:"adyen-checkout-await-logo-container"},e.map((e=>a("img",{key:e.name,src:e.src,alt:e.alt,className:`adyen-checkout__await__brand-logo adyen-checkout-await-logo-${e.name}`}))))}export{e as default};
|
|
2
|
+
//# sourceMappingURL=AwaitLogoContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AwaitLogoContainer.js","sources":["../../../../../../../src/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport './AwaitLogoContainer.scss';\n\ntype Logo = {\n name: string;\n src: string;\n alt: string;\n};\n\nexport interface IAwaitLogoContainer {\n logos: Logo[];\n}\n\nfunction AwaitLogoContainer({ logos }: Readonly<IAwaitLogoContainer>) {\n return (\n <div className={'adyen-checkout-await-logo-container'}>\n {logos.map(logo => (\n <img\n key={logo.name}\n src={logo.src}\n alt={logo.alt}\n className={`adyen-checkout__await__brand-logo adyen-checkout-await-logo-${logo.name}`}\n />\n ))}\n </div>\n );\n}\n\nexport default AwaitLogoContainer;\n"],"names":["AwaitLogoContainer","logos","h","div","className","map","logo","img","key","name","src","alt"],"mappings":"8EAaA,SAASA,GAAmBC,MAAEA,IAC1B,OACIC,EAACC,MAAAA,CAAIC,UAAW,uCACXH,EAAMI,KAAIC,GACPJ,EAACK,MAAAA,CACGC,IAAKF,EAAKG,KACVC,IAAKJ,EAAKI,IACVC,IAAKL,EAAKK,IACVP,UAAW,+DAA+DE,EAAKG,WAKnG"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createElement as t}from"../../../../../external/preact/dist/preact.js";import{useCoreContext as e}from"../../../../../core/Context/CoreProvider.js";import n from"../../../../../core/Context/useImage.js";const i="open-finance",o="paybybankpix.await.logoAlt.openFinance";function s({txVariant:s}){const{i18n:c}=e(),a=n();return t("div",{className:"adyen-checkout-issuer-list-introduction"},t("div",{className:"adyen-checkout-issuer-list-introduction-logo-container"},t("img",{src:a({parentFolder:`${s}/`})(i),alt:c.get(o),className:"adyen-checkout-issuer-list-introduction-logo-container__logo"}),t("p",{className:"adyen-checkout-issuer-list-introduction-logo-container__title"},c.get("paybybankpix.issuerList.introduction.logo.content"))),t("div",{className:"adyen-checkout-issuer-list-introduction-text-container"},t("p",{className:"adyen-checkout-issuer-list-introduction-text-container__title"},c.get("paybybankpix.issuerList.introduction.title")),t("p",{className:"adyen-checkout-issuer-list-introduction-text-container__content"},c.get("paybybankpix.issuerList.introduction.content1")),t("p",{className:"adyen-checkout-issuer-list-introduction-text-container__content"},c.get("paybybankpix.issuerList.introduction.content2"))))}export{s as default};
|
|
2
|
+
//# sourceMappingURL=IssuerListIntroduction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IssuerListIntroduction.js","sources":["../../../../../../../src/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport './IssuerListIntroduction.scss';\nimport useImage from '../../../../../core/Context/useImage';\n\nconst LOGO = {\n name: 'open-finance',\n altI18nKey: 'paybybankpix.await.logoAlt.openFinance'\n};\n\nfunction IssuerListIntroduction({ txVariant }) {\n const { i18n } = useCoreContext();\n const getImage = useImage();\n\n return (\n <div className={'adyen-checkout-issuer-list-introduction'}>\n <div className=\"adyen-checkout-issuer-list-introduction-logo-container\">\n <img\n src={getImage({ parentFolder: `${txVariant}/` })(LOGO.name)}\n alt={i18n.get(LOGO.altI18nKey)}\n className=\"adyen-checkout-issuer-list-introduction-logo-container__logo\"\n />\n <p className=\"adyen-checkout-issuer-list-introduction-logo-container__title\">\n {i18n.get('paybybankpix.issuerList.introduction.logo.content')}\n </p>\n </div>\n <div className=\"adyen-checkout-issuer-list-introduction-text-container\">\n <p className=\"adyen-checkout-issuer-list-introduction-text-container__title\">\n {i18n.get('paybybankpix.issuerList.introduction.title')}\n </p>\n <p className=\"adyen-checkout-issuer-list-introduction-text-container__content\">\n {i18n.get('paybybankpix.issuerList.introduction.content1')}\n </p>\n <p className=\"adyen-checkout-issuer-list-introduction-text-container__content\">\n {i18n.get('paybybankpix.issuerList.introduction.content2')}\n </p>\n </div>\n </div>\n );\n}\n\nexport default IssuerListIntroduction;\n"],"names":["LOGO","IssuerListIntroduction","txVariant","i18n","useCoreContext","getImage","useImage","h","div","className","img","src","parentFolder","alt","get","p"],"mappings":"kNAKA,MAAMA,EACI,eADJA,EAEU,yCAGhB,SAASC,GAAuBC,UAAEA,IAC9B,MAAMC,KAAEA,GAASC,IACXC,EAAWC,IAEjB,OACIC,EAACC,MAAAA,CAAIC,UAAW,2CACZF,EAACC,MAAAA,CAAIC,UAAU,0DACXF,EAACG,MAAAA,CACGC,IAAKN,EAAS,CAAEO,aAAc,GAAGV,MAA5BG,CAA4CL,GACjDa,IAAKV,EAAKW,IAAId,GACdS,UAAU,iEAEdF,EAACQ,IAAAA,CAAEN,UAAU,iEACRN,EAAKW,IAAI,uDAGlBP,EAACC,MAAAA,CAAIC,UAAU,0DACXF,EAACQ,IAAAA,CAAEN,UAAU,iEACRN,EAAKW,IAAI,+CAEdP,EAACQ,IAAAA,CAAEN,UAAU,mEACRN,EAAKW,IAAI,kDAEdP,EAACQ,IAAAA,CAAEN,UAAU,mEACRN,EAAKW,IAAI,mDAK9B"}
|
package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createElement as t}from"../../../../../external/preact/dist/preact.js";import o from"./AwaitLogoContainer.js";import e from"../../../../internal/Await/Await.js";function n(n){var a;return t("div",{className:"adyen-checkout-pay-by-bank-pix-await"},(null===(a=n.logos)||void 0===a?void 0:a.length)>0&&t(o,{logos:n.logos}),t(e,{showCountdownTimer:!0,type:n.type,countdownTime:n.countdownTime,clientKey:n.clientKey,onError:n.onError,awaitText:n.awaitText,instructions:n.instructions,pollStatus:n.pollStatus,endSlot:n.endSlot}))}export{n as default};
|
|
2
|
+
//# sourceMappingURL=PayByBankPixAwait.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PayByBankPixAwait.js","sources":["../../../../../../../src/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.tsx"],"sourcesContent":["import { h } from 'preact';\nimport AwaitLogoContainer, { IAwaitLogoContainer } from './AwaitLogoContainer';\nimport Await from '../../../../internal/Await';\nimport './PayBankBankPixAwait.scss';\nimport { AwaitComponentProps } from '../../../../internal/Await/types';\n\nexport interface IPayByBankPixAwait extends Partial<AwaitComponentProps>, Partial<IAwaitLogoContainer> {}\n\nfunction PayByBankPixAwait(props: IPayByBankPixAwait) {\n return (\n <div className={'adyen-checkout-pay-by-bank-pix-await'}>\n {props.logos?.length > 0 && <AwaitLogoContainer logos={props.logos}></AwaitLogoContainer>}\n <Await\n // We want the countdown capability but the adyen-checkout__await__countdown-holder is visually hidden.\n showCountdownTimer={true}\n type={props.type}\n countdownTime={props.countdownTime}\n clientKey={props.clientKey}\n onError={props.onError}\n awaitText={props.awaitText}\n instructions={props.instructions}\n pollStatus={props.pollStatus}\n endSlot={props.endSlot}\n ></Await>\n </div>\n );\n}\n\nexport default PayByBankPixAwait;\n"],"names":["PayByBankPixAwait","props","h","div","className","logos","length","AwaitLogoContainer","Await","showCountdownTimer","type","countdownTime","clientKey","onError","awaitText","instructions","pollStatus","endSlot"],"mappings":"wKAQA,SAASA,EAAkBC,GAGdA,IAAAA,EAFT,OACIC,EAACC,MAAAA,CAAIC,UAAW,yCACA,QAAXH,EAAAA,EAAMI,iBAANJ,SAAAA,EAAaK,QAAS,GAAKJ,EAACK,EAAAA,CAAmBF,MAAOJ,EAAMI,QAC7DH,EAACM,EAAAA,CAEGC,oBAAoB,EACpBC,KAAMT,EAAMS,KACZC,cAAeV,EAAMU,cACrBC,UAAWX,EAAMW,UACjBC,QAASZ,EAAMY,QACfC,UAAWb,EAAMa,UACjBC,aAAcd,EAAMc,aACpBC,WAAYf,EAAMe,WAClBC,QAAShB,EAAMgB,UAI/B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{httpGet as t}from"../../../../core/Services/http.js";async function e({enrollmentId:e,clientKey:o,loadingContext:n,timeout:i=1e4}){if(!e||!o)throw new Error("Could not check the enrollment status");return t({loadingContext:n,path:`utility/v1/pixpaybybank/registration-options/${e}?clientKey=${o}`,timeout:i})}export{e as default};
|
|
2
|
+
//# sourceMappingURL=getEnrollmentStatus.js.map
|
package/dist/es-legacy/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getEnrollmentStatus.js","sources":["../../../../../../src/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.ts"],"sourcesContent":["import { httpGet } from '../../../../core/Services/http';\nimport { RawPaymentResponse } from '../../../../types/global-types';\n\ninterface IGetEnrollmentStatus {\n enrollmentId: string;\n clientKey: string;\n loadingContext: string;\n timeout?: number; // in milliseconds\n}\n\nexport default async function getEnrollmentStatus({\n enrollmentId,\n clientKey,\n loadingContext,\n timeout = 10000\n}: IGetEnrollmentStatus): Promise<RawPaymentResponse> {\n if (!enrollmentId || !clientKey) {\n throw new Error('Could not check the enrollment status');\n }\n const options = {\n loadingContext,\n path: `utility/v1/pixpaybybank/registration-options/${enrollmentId}?clientKey=${clientKey}`,\n timeout\n };\n\n return httpGet(options);\n}\n"],"names":["async","getEnrollmentStatus","enrollmentId","clientKey","loadingContext","timeout","Error","httpGet","path"],"mappings":"4DAUeA,eAAeC,GAAoBC,aAC9CA,EAAYC,UACZA,EAASC,eACTA,EAAcC,QACdA,EAAU,MAEV,IAAKH,IAAiBC,EAClB,MAAM,IAAIG,MAAM,yCAQpB,OAAOC,EANS,CACZH,iBACAI,KAAM,gDAAgDN,eAA0BC,IAChFE,WAIR"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useState as e,useEffect as t}from"../../../../external/preact/hooks/dist/hooks.js";import r from"../../../../utils/get-issuer-image.js";import{useCoreContext as o}from"../../../../core/Context/CoreProvider.js";import n from"../../../../core/Context/useImage.js";function c(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,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 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}const s=({issuers:s,txVariant:u})=>{const{loadingContext:p}=o(),a=n(),[f,l]=e(s);return t((()=>{if((null==s?void 0:s.length)>0){const e=r({loadingContext:p},u,a);l(s.map((t=>i(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){c(e,t,r[t])}))}return e}({},t),{icon:e(t.id)}))))}}),[s,u]),f};export{s as useIssuerWithLogo};
|
|
2
|
+
//# sourceMappingURL=useIssuerWithLogo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useIssuerWithLogo.js","sources":["../../../../../../src/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.ts"],"sourcesContent":["import { useEffect, useState } from 'preact/hooks';\nimport { IssuerItem } from '../../../internal/IssuerList/types';\nimport getIssuerImageUrl from '../../../../utils/get-issuer-image';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport useImage from '../../../../core/Context/useImage';\n\ninterface UseIssuerWithLogoProps {\n txVariant: string;\n issuers: IssuerItem[];\n}\nexport const useIssuerWithLogo = ({ issuers, txVariant }: UseIssuerWithLogoProps): IssuerItem[] => {\n const { loadingContext } = useCoreContext();\n const getImage = useImage();\n const [issuersWithLogo, setIssuersWithLogo] = useState<IssuerItem[]>(issuers);\n\n useEffect(() => {\n if (issuers?.length > 0) {\n const getIssuerIcon = getIssuerImageUrl({ loadingContext }, txVariant, getImage);\n setIssuersWithLogo(\n issuers.map(item => ({\n ...item,\n icon: getIssuerIcon(item.id)\n }))\n );\n }\n }, [issuers, txVariant]);\n\n return issuersWithLogo;\n};\n"],"names":["useIssuerWithLogo","issuers","txVariant","loadingContext","useCoreContext","getImage","useImage","issuersWithLogo","setIssuersWithLogo","useState","useEffect","length","getIssuerIcon","getIssuerImageUrl","map","item","_object_spread_props","icon","id"],"mappings":"0vBAUaA,EAAoB,EAAGC,UAASC,gBACzC,MAAMC,eAAEA,GAAmBC,IACrBC,EAAWC,KACVC,EAAiBC,GAAsBC,EAAuBR,GAcrE,OAZAS,GAAU,KACN,IAAIT,aAAAA,EAAAA,EAASU,QAAS,EAAG,CACrB,MAAMC,EAAgBC,EAAkB,CAAEV,kBAAkBD,EAAWG,GACvEG,EACIP,EAAQa,KAAIC,GAASC,wUACdD,CAAAA,GAAAA,GAAAA,CACHE,KAAML,EAAcG,EAAKG,QAGrC,IACD,CAACjB,EAASC,IAENK,CAAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createElement as e,Fragment as t}from"../../../../external/preact/dist/preact.js";import{useState as a,useRef as n,useCallback as o,useEffect as r}from"../../../../external/preact/hooks/dist/hooks.js";import{useCoreContext as i}from"../../../../core/Context/CoreProvider.js";import l from"../../../internal/Voucher/Voucher.js";import s from"../../../../core/Context/useImage.js";import p from"../../../internal/PayButton/PayButton.js";import m from"./getAuthorizationStatus.js";import u from"../Enrollment/components/PayByBankPixAwait.js";function c({onPay:c,type:y,countdownTime:b,receiver:d,amount:f,txVariant:x,issuer:g,setComponentRef:h,enrollmentId:k,initiationId:w,clientKey:j,onAuthorize:v,onError:C}){const{i18n:P,loadingContext:I}=i(),B=s(),[E,F]=a("ready"),[S,z]=a(null),A=[{name:"open-finance",alt:P.get("paybybankpix.await.logoAlt.openFinance"),src:`${B({parentFolder:`${x}/`})("open-finance")}`}],D=[{label:P.get("paybybankpix.payment.receiver.label"),value:d},{label:P.get("paybybankpix.payment.paymentDate.label"),value:P.date((new Date).toString())},{label:P.get("paybybankpix.payment.paymentMethod.label"),value:"Pix Open Finance"}],T=n({setStatus:F}),K=o((async()=>{if(S)return;const e=await m({enrollmentId:k,initiationId:w,clientKey:j,loadingContext:I});return e.authorizationOptions&&z(e.authorizationOptions),e}),[S,k,w,j,I]);return r((()=>{h(T.current)}),[h]),r((()=>{S&&v(S)}),[S]),"await"===y?e(u,{logos:A,type:x,countdownTime:b,clientKey:j,onError:C,awaitText:P.get("paybybankpix.await.fetchDetails"),pollStatus:K}):e(t,null,e(l,{issuerImageUrl:B({imageFolder:`${x}/`})(g),paymentMethodType:x,amount:P.amount(f.value,f.currency),voucherDetails:D}),e(p,{classNameModifiers:["standalone"],label:P.get("paybybankpix.storedPayment.payButton.label"),status:E,amount:f,onClick:c}))}export{c as default};
|
|
2
|
+
//# sourceMappingURL=StoredPayment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoredPayment.js","sources":["../../../../../../src/components/PayByBankPix/components/StoredPayment/StoredPayment.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport { useState, useEffect, useRef, useCallback } from 'preact/hooks';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { PaymentProps } from './types';\nimport PaymentDetails from '../../../internal/Voucher';\nimport useImage from '../../../../core/Context/useImage';\nimport PayButton from '../../../internal/PayButton';\nimport './StoredPayment.scss';\nimport getAuthorizationStatus from './getAuthorizationStatus';\nimport PayByBankPixAwait from '../Enrollment/components/PayByBankPixAwait';\n\nfunction StoredPayment({\n onPay,\n type,\n countdownTime,\n receiver,\n amount,\n txVariant,\n issuer,\n setComponentRef,\n enrollmentId,\n initiationId,\n clientKey,\n onAuthorize,\n onError\n}: PaymentProps) {\n const { i18n, loadingContext } = useCoreContext();\n const getImage = useImage();\n const [status, setStatus] = useState('ready');\n const [authorizationOptions, setAuthorizationOptions] = useState<string>(null);\n const buttonModifiers = ['standalone'];\n const logos = [\n {\n name: 'open-finance',\n alt: i18n.get('paybybankpix.await.logoAlt.openFinance'),\n src: `${getImage({ parentFolder: `${txVariant}/` })('open-finance')}`\n }\n ];\n const details = [\n { label: i18n.get('paybybankpix.payment.receiver.label'), value: receiver },\n { label: i18n.get('paybybankpix.payment.paymentDate.label'), value: i18n.date(new Date().toString()) },\n { label: i18n.get('paybybankpix.payment.paymentMethod.label'), value: 'Pix Open Finance' }\n ];\n const self = useRef({\n setStatus\n });\n\n const pollStatus = useCallback(async () => {\n if (authorizationOptions) return;\n\n const response = await getAuthorizationStatus({ enrollmentId, initiationId, clientKey, loadingContext });\n if (response.authorizationOptions) {\n setAuthorizationOptions(response.authorizationOptions);\n }\n\n return response;\n }, [authorizationOptions, enrollmentId, initiationId, clientKey, loadingContext]);\n\n useEffect(() => {\n setComponentRef(self.current);\n }, [setComponentRef]);\n\n useEffect(() => {\n if (authorizationOptions) {\n onAuthorize(authorizationOptions);\n }\n }, [authorizationOptions]);\n\n return type === 'await' ? (\n <PayByBankPixAwait\n logos={logos}\n type={txVariant}\n countdownTime={countdownTime}\n clientKey={clientKey}\n onError={onError}\n awaitText={i18n.get('paybybankpix.await.fetchDetails')}\n pollStatus={pollStatus}\n ></PayByBankPixAwait>\n ) : (\n <Fragment>\n <PaymentDetails\n issuerImageUrl={getImage({ imageFolder: `${txVariant}/` })(issuer)}\n paymentMethodType={txVariant}\n amount={i18n.amount(amount.value, amount.currency)}\n voucherDetails={details}\n ></PaymentDetails>\n <PayButton\n classNameModifiers={buttonModifiers}\n label={i18n.get('paybybankpix.storedPayment.payButton.label')}\n status={status}\n amount={amount}\n onClick={onPay}\n />\n </Fragment>\n );\n}\n\nexport default StoredPayment;\n"],"names":["StoredPayment","onPay","type","countdownTime","receiver","amount","txVariant","issuer","setComponentRef","enrollmentId","initiationId","clientKey","onAuthorize","onError","i18n","loadingContext","useCoreContext","getImage","useImage","status","setStatus","useState","authorizationOptions","setAuthorizationOptions","logos","name","alt","get","src","parentFolder","details","label","value","date","Date","toString","self","useRef","pollStatus","useCallback","async","response","getAuthorizationStatus","useEffect","current","h","PayByBankPixAwait","awaitText","Fragment","PaymentDetails","issuerImageUrl","imageFolder","paymentMethodType","currency","voucherDetails","PayButton","classNameModifiers","onClick"],"mappings":"kiBAWA,SAASA,GAAcC,MACnBA,EAAKC,KACLA,EAAIC,cACJA,EAAaC,SACbA,EAAQC,OACRA,EAAMC,UACNA,EAASC,OACTA,EAAMC,gBACNA,EAAeC,aACfA,EAAYC,aACZA,EAAYC,UACZA,EAASC,YACTA,EAAWC,QACXA,IAEA,MAAMC,KAAEA,EAAIC,eAAEA,GAAmBC,IAC3BC,EAAWC,KACVC,EAAQC,GAAaC,EAAS,UAC9BC,EAAsBC,GAA2BF,EAAiB,MAEnEG,EAAQ,CACV,CACIC,KAAM,eACNC,IAAKZ,EAAKa,IAAI,0CACdC,IAAK,GAAGX,EAAS,CAAEY,aAAc,GAAGvB,MAA5BW,CAA4C,oBAGtDa,EAAU,CACZ,CAAEC,MAAOjB,EAAKa,IAAI,uCAAwCK,MAAO5B,GACjE,CAAE2B,MAAOjB,EAAKa,IAAI,0CAA2CK,MAAOlB,EAAKmB,MAAK,IAAIC,MAAOC,aACzF,CAAEJ,MAAOjB,EAAKa,IAAI,4CAA6CK,MAAO,qBAEpEI,EAAOC,EAAO,CAChBjB,cAGEkB,EAAaC,GAAYC,UAC3B,GAAIlB,EAAsB,OAE1B,MAAMmB,QAAiBC,EAAuB,CAAEjC,eAAcC,eAAcC,YAAWI,mBAKvF,OAJI0B,EAASnB,sBACTC,EAAwBkB,EAASnB,sBAG9BmB,CAAAA,GACR,CAACnB,EAAsBb,EAAcC,EAAcC,EAAWI,IAYjE,OAVA4B,GAAU,KACNnC,EAAgB4B,EAAKQ,QAAO,GAC7B,CAACpC,IAEJmC,GAAU,KACFrB,GACAV,EAAYU,EAChB,GACD,CAACA,IAEY,UAATpB,EACH2C,EAACC,EAAAA,CACGtB,MAAOA,EACPtB,KAAMI,EACNH,cAAeA,EACfQ,UAAWA,EACXE,QAASA,EACTkC,UAAWjC,EAAKa,IAAI,mCACpBW,WAAYA,IAGhBO,EAACG,OACGH,EAACI,EAAAA,CACGC,eAAgBjC,EAAS,CAAEkC,YAAa,GAAG7C,MAA3BW,CAA2CV,GAC3D6C,kBAAmB9C,EACnBD,OAAQS,EAAKT,OAAOA,EAAO2B,MAAO3B,EAAOgD,UACzCC,eAAgBxB,IAEpBe,EAACU,EAAAA,CACGC,mBAzDY,CAAC,cA0DbzB,MAAOjB,EAAKa,IAAI,8CAChBR,OAAQA,EACRd,OAAQA,EACRoD,QAASxD,IAIzB"}
|
package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{httpGet as t}from"../../../../core/Services/http.js";async function i({enrollmentId:i,initiationId:o,clientKey:n,loadingContext:e,timeout:r=1e4}){if(!i||!o||!n)throw new Error("Could not get auth options");return t({loadingContext:e,path:`utility/v1/pixpaybybank/authorization-options?initiationId=${o}&enrollmentId=${i}&clientKey=${n}`,timeout:r})}export{i as default};
|
|
2
|
+
//# sourceMappingURL=getAuthorizationStatus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getAuthorizationStatus.js","sources":["../../../../../../src/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.ts"],"sourcesContent":["import { httpGet } from '../../../../core/Services/http';\nimport { RawPaymentResponse } from '../../../../types/global-types';\n\ninterface IGetAuthorizationStatus {\n enrollmentId: string;\n initiationId: string;\n clientKey: string;\n loadingContext: string;\n timeout?: number; // in milliseconds\n}\n\nexport default async function getAuthorizationStatus({\n enrollmentId,\n initiationId,\n clientKey,\n loadingContext,\n timeout = 10000\n}: IGetAuthorizationStatus): Promise<RawPaymentResponse> {\n if (!enrollmentId || !initiationId || !clientKey) {\n throw new Error('Could not get auth options');\n }\n\n const options = {\n loadingContext,\n path: `utility/v1/pixpaybybank/authorization-options?initiationId=${initiationId}&enrollmentId=${enrollmentId}&clientKey=${clientKey}`,\n timeout\n };\n\n return httpGet(options);\n}\n"],"names":["async","getAuthorizationStatus","enrollmentId","initiationId","clientKey","loadingContext","timeout","Error","httpGet","path"],"mappings":"4DAWeA,eAAeC,GAAuBC,aACjDA,EAAYC,aACZA,EAAYC,UACZA,EAASC,eACTA,EAAcC,QACdA,EAAU,MAEV,IAAKJ,IAAiBC,IAAiBC,EACnC,MAAM,IAAIG,MAAM,8BASpB,OAAOC,EANS,CACZH,iBACAI,KAAM,8DAA8DN,kBAA6BD,eAA0BE,IAC3HE,WAIR"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{getUrlFromMap as e}from"../../../core/Environment/Environment.js";import{CDN_ENVIRONMENTS as s}from"../../../core/Environment/constants.js";import r from"../../../core/Errors/AdyenCheckoutError.js";import n from"../../../utils/Script.js";function o(e,s,r){return s in e?Object.defineProperty(e,s,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[s]=r,e}class t{isAvailable(){return null!=this.AdyenPasskey}async load(o){if(this.isAvailable())return this.AdyenPasskey;try{var a;const r=e(o,s),i=new n(`${r}${t.PASSKEY_SDK_URL}`);return await i.load(),this.AdyenPasskey=null===(a=window.AdyenPasskey)||void 0===a?void 0:a.default,this.AdyenPasskey}catch(e){throw new r("SCRIPT_ERROR",`Unable to load script. Message: ${e instanceof Error?e.message:"Unknown error loading Passkey sdk"}`)}}constructor(){o(this,"AdyenPasskey",void 0)}}o(t,"PASSKEY_SDK_URL","js/adyenpasskey/1.1.0/adyen-passkey.js");export{t as PasskeySdkLoader};
|
|
2
|
+
//# sourceMappingURL=PasskeySdkLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeySdkLoader.js","sources":["../../../../../src/components/PayByBankPix/services/PasskeySdkLoader.ts"],"sourcesContent":["import { IAdyenPasskey } from './types';\nimport { getUrlFromMap } from '../../../core/Environment/Environment';\nimport type { CoreConfiguration } from '../../../core/types';\nimport { CDN_ENVIRONMENTS } from '../../../core/Environment/constants';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Script from '../../../utils/Script';\n\nexport interface IPasskeySdkLoader {\n load(environment: CoreConfiguration['environment']): Promise<IAdyenPasskey>;\n}\n\nclass PasskeySdkLoader implements IPasskeySdkLoader {\n private static readonly PASSKEY_SDK_URL = 'js/adyenpasskey/1.1.0/adyen-passkey.js';\n private AdyenPasskey: IAdyenPasskey;\n\n private isAvailable(): boolean {\n return this.AdyenPasskey != null;\n }\n\n public async load(environment: string): Promise<IAdyenPasskey> {\n if (this.isAvailable()) {\n return this.AdyenPasskey;\n }\n\n try {\n const cdnUrl = getUrlFromMap(environment as CoreConfiguration['environment'], CDN_ENVIRONMENTS);\n const url = `${cdnUrl}${PasskeySdkLoader.PASSKEY_SDK_URL}`;\n const scriptElement = new Script(url);\n await scriptElement.load();\n this.AdyenPasskey = window.AdyenPasskey?.default;\n return this.AdyenPasskey;\n } catch (e: unknown) {\n throw new AdyenCheckoutError(\n 'SCRIPT_ERROR',\n `Unable to load script. Message: ${e instanceof Error ? e.message : 'Unknown error loading Passkey sdk'}`\n );\n }\n }\n}\n\nexport { PasskeySdkLoader };\n"],"names":["PasskeySdkLoader","isAvailable","this","AdyenPasskey","load","environment","window","cdnUrl","getUrlFromMap","CDN_ENVIRONMENTS","scriptElement","Script","PASSKEY_SDK_URL","default","e","AdyenCheckoutError","Error","message","_define_property"],"mappings":"6WAWA,MAAMA,EAIMC,WAAAA,GACJ,OAA4B,MAArBC,KAAKC,YAChB,CAEA,UAAaC,CAAKC,GACd,GAAIH,KAAKD,cACL,OAAOC,KAAKC,aAGhB,IAKwBG,IAAAA,EAJpB,MAAMC,EAASC,EAAcH,EAAiDI,GAExEC,EAAgB,IAAIC,EADd,GAAGJ,IAASP,EAAiBY,mBAIzC,aAFMF,EAAcN,OACpBF,KAAKC,aAAkC,QAAnBG,EAAAA,OAAOH,oBAAPG,IAAAA,OAAAA,EAAAA,EAAqBO,QAClCX,KAAKC,YAChB,CAAE,MAAOW,GACL,MAAM,IAAIC,EACN,eACA,mCAAmCD,aAAaE,MAAQF,EAAEG,QAAU,sCAE5E,CACJ,eAxBAC,EAAAhB,KAAQC,oBAAR,IADAe,EADElB,EACsBY,kBAAkB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{PasskeySdkLoader as e}from"./PasskeySdkLoader.js";import{PasskeyErrorTypes as i}from"./types.js";import t,{SDK_ERROR as n}from"../../../core/Errors/AdyenCheckoutError.js";import s from"../../../utils/base64.js";function r(e,i,t){return i in e?Object.defineProperty(e,i,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[i]=t,e}class a{get deviceId(){return this.passkeyServiceConfig.deviceId}async getWebAuthnUnsupportedReason(){if(!window.PublicKeyCredential)return"Browser does not support webauthn";try{if(!await window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable())return"Device does not have platform authenticator"}catch(e){return"Unknown error"}return""}initialize(){return null==this.initialized&&(this.initialized=(new e).load(this.passkeyServiceConfig.environment).then((e=>{this.passkeySdk=e}))),this.initialized}async captureRiskSignalsEnrollment(){if(await this.initialized,this.riskSignals)return this.riskSignals;const e=await this.passkeySdk.captureRiskSignalsEnrollment(this.deviceId);if(e&&"type"in e&&e.type===i.RISK_SIGNALS_ERROR)throw new t(n,e.message);return this.riskSignals=e,this.riskSignals}async canUseStoredCredential(){try{return await this.captureRiskSignalsAuthentication(),!0}catch(e){return console.warn(`The device is not eligible for stored credential authentication: ${e instanceof Error?null==e?void 0:e.message:"unknown error"}`),!1}}async captureRiskSignalsAuthentication(){await this.initialized;const e=await this.passkeySdk.captureRiskSignalsAuthentication(this.deviceId);if(e&&"type"in e&&e.type===i.RISK_SIGNALS_ERROR)throw new t(n,e.message);return e}async createCredentialForEnrollment(e){await this.initialized;const r=this.decodeJsonBase64(e,"Failed to decode registrationOptions"),a=await this.passkeySdk.createCredentialForEnrollment(r);if(a&&"type"in a&&a.type===i.CREDENTIAL_CREATION_ERROR)throw new t(n,a.message);return s.encode(JSON.stringify(a))}async authenticateWithCredential(e){await this.initialized;const r=this.decodeJsonBase64(e,"Failed to decode authenticationOptions"),a=await this.passkeySdk.authenticateWithCredential(r);if(a&&"type"in a&&a.type===i.CREDENTIAL_RETRIEVAL_ERROR)throw new t(n,a.message);return s.encode(JSON.stringify(a))}decodeJsonBase64(e,i){const r=s.decode(e);if(!r.success)throw new t(n,i);return JSON.parse(r.data)}constructor(e){r(this,"passkeySdk",void 0),r(this,"passkeyServiceConfig",void 0),r(this,"riskSignals",void 0),r(this,"initialized",void 0),this.passkeyServiceConfig=e}}export{a as PasskeyService};
|
|
2
|
+
//# sourceMappingURL=PasskeyService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeyService.js","sources":["../../../../../src/components/PayByBankPix/services/PasskeyService.ts"],"sourcesContent":["import { PasskeySdkLoader } from './PasskeySdkLoader';\nimport {\n PasskeyServiceConfig,\n IPasskeyService,\n IAdyenPasskey,\n PasskeyErrorTypes,\n RiskSignalsEnrollment,\n RiskSignalsAuthentication,\n NavigatorCredentialCreationsError,\n NavigatorCredentialRetrievalError\n} from './types';\nimport AdyenCheckoutError, { SDK_ERROR } from '../../../core/Errors/AdyenCheckoutError';\nimport { DecodeObject } from '../../../types/global-types';\nimport base64 from '../../../utils/base64';\n\nexport class PasskeyService implements IPasskeyService {\n private passkeySdk: IAdyenPasskey;\n private readonly passkeyServiceConfig: PasskeyServiceConfig;\n private riskSignals: RiskSignalsEnrollment | RiskSignalsAuthentication;\n private initialized: Promise<void>;\n\n constructor(configuration: PasskeyServiceConfig) {\n this.passkeyServiceConfig = configuration;\n }\n\n get deviceId() {\n return this.passkeyServiceConfig.deviceId;\n }\n\n public async getWebAuthnUnsupportedReason(): Promise<string> {\n if (!window.PublicKeyCredential) {\n return 'Browser does not support webauthn';\n }\n try {\n const platformAuthenticatorAvailable = await window.PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();\n if (!platformAuthenticatorAvailable) {\n return 'Device does not have platform authenticator';\n }\n } catch (e) {\n return 'Unknown error';\n }\n\n return '';\n }\n\n public initialize() {\n if (this.initialized == null) {\n this.initialized = new PasskeySdkLoader().load(this.passkeyServiceConfig.environment).then(passkey => {\n this.passkeySdk = passkey;\n });\n }\n\n return this.initialized;\n }\n\n public async captureRiskSignalsEnrollment(): Promise<RiskSignalsEnrollment> {\n await this.initialized;\n if (this.riskSignals) {\n // Cache it so we don't create unnecessary entries in the localstorage by calling captureRiskSignalsEnrollment\n return this.riskSignals;\n }\n\n const result = await this.passkeySdk.captureRiskSignalsEnrollment(this.deviceId);\n if (result && 'type' in result && result.type === PasskeyErrorTypes.RISK_SIGNALS_ERROR) {\n throw new AdyenCheckoutError(SDK_ERROR, result.message);\n }\n this.riskSignals = result as RiskSignalsEnrollment;\n return this.riskSignals;\n }\n\n public async canUseStoredCredential(): Promise<boolean> {\n try {\n await this.captureRiskSignalsAuthentication();\n return true;\n } catch (error) {\n console.warn(\n `The device is not eligible for stored credential authentication: ${error instanceof Error ? error?.message : 'unknown error'}`\n );\n return false;\n }\n }\n\n public async captureRiskSignalsAuthentication(): Promise<RiskSignalsAuthentication> {\n await this.initialized;\n const result = await this.passkeySdk.captureRiskSignalsAuthentication(this.deviceId);\n if (result && 'type' in result && result.type === PasskeyErrorTypes.RISK_SIGNALS_ERROR) {\n throw new AdyenCheckoutError(SDK_ERROR, result.message);\n }\n return result as RiskSignalsAuthentication;\n }\n\n public async createCredentialForEnrollment(registrationOptions: string): Promise<string> {\n await this.initialized;\n const options = this.decodeJsonBase64(registrationOptions, 'Failed to decode registrationOptions');\n const result = await this.passkeySdk.createCredentialForEnrollment(options);\n if (result && 'type' in result && result.type === PasskeyErrorTypes.CREDENTIAL_CREATION_ERROR) {\n throw new AdyenCheckoutError(SDK_ERROR, (result as NavigatorCredentialCreationsError).message);\n }\n return base64.encode(JSON.stringify(result));\n }\n\n public async authenticateWithCredential(authenticationOptions: string): Promise<string> {\n await this.initialized;\n const options = this.decodeJsonBase64(authenticationOptions, 'Failed to decode authenticationOptions');\n const result = await this.passkeySdk.authenticateWithCredential(options);\n if (result && 'type' in result && result.type === PasskeyErrorTypes.CREDENTIAL_RETRIEVAL_ERROR) {\n throw new AdyenCheckoutError(SDK_ERROR, (result as NavigatorCredentialRetrievalError).message);\n }\n return base64.encode(JSON.stringify(result));\n }\n\n private decodeJsonBase64(encoded: string, errorMessage: string) {\n const decoded: DecodeObject = base64.decode(encoded);\n if (!decoded.success) {\n throw new AdyenCheckoutError(SDK_ERROR, errorMessage);\n }\n return JSON.parse(decoded.data);\n }\n}\n"],"names":["PasskeyService","deviceId","this","passkeyServiceConfig","getWebAuthnUnsupportedReason","window","PublicKeyCredential","isUserVerifyingPlatformAuthenticatorAvailable","e","initialize","initialized","PasskeySdkLoader","load","environment","then","passkey","passkeySdk","captureRiskSignalsEnrollment","riskSignals","result","type","PasskeyErrorTypes","RISK_SIGNALS_ERROR","AdyenCheckoutError","SDK_ERROR","message","canUseStoredCredential","captureRiskSignalsAuthentication","error","console","warn","Error","createCredentialForEnrollment","registrationOptions","options","decodeJsonBase64","CREDENTIAL_CREATION_ERROR","base64","encode","JSON","stringify","authenticateWithCredential","authenticationOptions","CREDENTIAL_RETRIEVAL_ERROR","encoded","errorMessage","decoded","decode","success","parse","data","constructor","configuration","_define_property"],"mappings":"kVAeO,MAAMA,EAUT,YAAIC,GACA,OAAOC,KAAKC,qBAAqBF,QACrC,CAEA,kCAAaG,GACT,IAAKC,OAAOC,oBACR,MAAO,oCAEX,IAEI,UAD6CD,OAAOC,oBAAoBC,gDAEpE,MAAO,6CAEf,CAAE,MAAOC,GACL,MAAO,eACX,CAEA,MAAO,EACX,CAEOC,UAAAA,GAOH,OANwB,MAApBP,KAAKQ,cACLR,KAAKQ,aAAc,IAAIC,GAAmBC,KAAKV,KAAKC,qBAAqBU,aAAaC,MAAKC,IACvFb,KAAKc,WAAaD,CAAAA,KAInBb,KAAKQ,WAChB,CAEA,kCAAaO,GAET,SADMf,KAAKQ,YACPR,KAAKgB,YAEL,OAAOhB,KAAKgB,YAGhB,MAAMC,QAAejB,KAAKc,WAAWC,6BAA6Bf,KAAKD,UACvE,GAAIkB,GAAU,SAAUA,GAAUA,EAAOC,OAASC,EAAkBC,mBAChE,MAAM,IAAIC,EAAmBC,EAAWL,EAAOM,SAGnD,OADAvB,KAAKgB,YAAcC,EACZjB,KAAKgB,WAChB,CAEA,4BAAaQ,GACT,IAEI,aADMxB,KAAKyB,oCACJ,CACX,CAAE,MAAOC,GAIL,OAHAC,QAAQC,KACJ,oEAAoEF,aAAiBG,MAAQH,aAAAA,EAAAA,EAAOH,QAAU,oBAE3G,CACX,CACJ,CAEA,sCAAaE,SACHzB,KAAKQ,YACX,MAAMS,QAAejB,KAAKc,WAAWW,iCAAiCzB,KAAKD,UAC3E,GAAIkB,GAAU,SAAUA,GAAUA,EAAOC,OAASC,EAAkBC,mBAChE,MAAM,IAAIC,EAAmBC,EAAWL,EAAOM,SAEnD,OAAON,CACX,CAEA,mCAAaa,CAA8BC,SACjC/B,KAAKQ,YACX,MAAMwB,EAAUhC,KAAKiC,iBAAiBF,EAAqB,wCACrDd,QAAejB,KAAKc,WAAWgB,8BAA8BE,GACnE,GAAIf,GAAU,SAAUA,GAAUA,EAAOC,OAASC,EAAkBe,0BAChE,MAAM,IAAIb,EAAmBC,EAAYL,EAA6CM,SAE1F,OAAOY,EAAOC,OAAOC,KAAKC,UAAUrB,GACxC,CAEA,gCAAasB,CAA2BC,SAC9BxC,KAAKQ,YACX,MAAMwB,EAAUhC,KAAKiC,iBAAiBO,EAAuB,0CACvDvB,QAAejB,KAAKc,WAAWyB,2BAA2BP,GAChE,GAAIf,GAAU,SAAUA,GAAUA,EAAOC,OAASC,EAAkBsB,2BAChE,MAAM,IAAIpB,EAAmBC,EAAYL,EAA6CM,SAE1F,OAAOY,EAAOC,OAAOC,KAAKC,UAAUrB,GACxC,CAEQgB,gBAAAA,CAAiBS,EAAiBC,GACtC,MAAMC,EAAwBT,EAAOU,OAAOH,GAC5C,IAAKE,EAAQE,QACT,MAAM,IAAIzB,EAAmBC,EAAWqB,GAE5C,OAAON,KAAKU,MAAMH,EAAQI,KAC9B,CAhGAC,WAAAA,CAAYC,GALZC,EAAAnD,KAAQc,kBAAR,GACAqC,EAAAnD,KAAiBC,4BAAjB,GACAkD,EAAAnD,KAAQgB,mBAAR,GACAmC,EAAAnD,KAAQQ,mBAAR,GAGIR,KAAKC,qBAAuBiD,CAChC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{httpPost as t}from"../../../core/Services/http.js";async function e({enrollment:e,clientKey:o,loadingContext:n,timeout:r=1e4}){if(!e||!o)throw new Error("Could not authorize the enrollment");return t({loadingContext:n,path:`utility/v1/pixpaybybank/redirect-result?clientKey=${o}`,timeout:r},e)}export{e as authorizeEnrollment};
|
|
2
|
+
//# sourceMappingURL=authorizeEnrollment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizeEnrollment.js","sources":["../../../../../src/components/PayByBankPix/services/authorizeEnrollment.ts"],"sourcesContent":["import { httpPost } from '../../../core/Services/http';\nimport { RawPaymentResponse } from '../../../types/global-types';\n\ninterface IPostEnrollment {\n enrollment: { enrollmentId: string; fidoAssertion: string };\n clientKey: string;\n loadingContext: string;\n timeout?: number; // in milliseconds\n}\n\nasync function authorizeEnrollment({ enrollment, clientKey, loadingContext, timeout = 10000 }: IPostEnrollment): Promise<RawPaymentResponse> {\n if (!enrollment || !clientKey) {\n throw new Error('Could not authorize the enrollment');\n }\n const options = {\n loadingContext,\n path: `utility/v1/pixpaybybank/redirect-result?clientKey=${clientKey}`,\n timeout\n };\n\n return httpPost(options, enrollment);\n}\n\nexport { authorizeEnrollment };\n"],"names":["async","authorizeEnrollment","enrollment","clientKey","loadingContext","timeout","Error","httpPost","path"],"mappings":"0DAUAA,eAAeC,GAAoBC,WAAEA,EAAUC,UAAEA,EAASC,eAAEA,EAAcC,QAAEA,EAAU,MAClF,IAAKH,IAAeC,EAChB,MAAM,IAAIG,MAAM,sCAQpB,OAAOC,EANS,CACZH,iBACAI,KAAM,qDAAqDL,IAC3DE,WAGqBH,EAC7B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{httpPost as t}from"../../../core/Services/http.js";async function e({payment:e,clientKey:o,loadingContext:i,timeout:n=1e4}){if(!e||!o)throw new Error("Could not authorize the payment");return t({loadingContext:i,path:`utility/v1/pixpaybybank/redirect-result?clientKey=${o}`,timeout:n},e)}export{e as authorizePayment};
|
|
2
|
+
//# sourceMappingURL=authorizePayment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizePayment.js","sources":["../../../../../src/components/PayByBankPix/services/authorizePayment.ts"],"sourcesContent":["import { httpPost } from '../../../core/Services/http';\nimport { RawPaymentResponse } from '../../../types/global-types';\n\ninterface IAuthorizePayment {\n payment: { enrollmentId: string; initiationId: string; fidoAssertion: string };\n clientKey: string;\n loadingContext: string;\n timeout?: number; // in milliseconds\n}\n\nasync function authorizePayment({ payment, clientKey, loadingContext, timeout = 10000 }: IAuthorizePayment): Promise<RawPaymentResponse> {\n if (!payment || !clientKey) {\n throw new Error('Could not authorize the payment');\n }\n const options = {\n loadingContext,\n path: `utility/v1/pixpaybybank/redirect-result?clientKey=${clientKey}`,\n timeout\n };\n\n return httpPost(options, payment);\n}\n\nexport { authorizePayment };\n"],"names":["async","authorizePayment","payment","clientKey","loadingContext","timeout","Error","httpPost","path"],"mappings":"0DAUAA,eAAeC,GAAiBC,QAAEA,EAAOC,UAAEA,EAASC,eAAEA,EAAcC,QAAEA,EAAU,MAC5E,IAAKH,IAAYC,EACb,MAAM,IAAIG,MAAM,mCAQpB,OAAOC,EANS,CACZH,iBACAI,KAAM,qDAAqDL,IAC3DE,WAGqBH,EAC7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../src/components/PayByBankPix/services/types.ts"],"sourcesContent":["interface BrowserRiskSignals {\n osVersion: string;\n userTimeZoneOffset: number;\n language: string;\n screenDimensions: ScreenDimensions;\n}\n\ninterface ScreenDimensions {\n width: number;\n height: number;\n}\n\ntype RiskSignalsError = {\n type: typeof PasskeyErrorTypes.RISK_SIGNALS_ERROR;\n message: string;\n};\n\ntype ConfidenceScore = {\n score: number;\n errors?: string[];\n};\n\ninterface PublicKeyCredentialCreationOptionsDTO {\n enrollmentId: string;\n challenge: string;\n rp: {\n name: string;\n id: string;\n };\n user: {\n id: string;\n name: string;\n displayName: string;\n };\n pubKeyCredParams: { alg: number; type: string }[];\n timeout?: number;\n attestation: string;\n excludeCredentials: string[];\n authenticatorSelection?: {\n authenticatorAttachment: string;\n residentKey: string;\n userVerification: string;\n requireResidentKey: boolean;\n };\n extensions?: {\n credProps?: boolean;\n };\n}\n\ninterface WebAuthnPublicKeyCreationCredential extends Omit<PublicKeyCredential, 'response'> {\n id: string;\n response: AuthenticatorAttestationResponse;\n}\n\ninterface PublicKeyCredentialRequestOptionsDTO {\n challenge: string;\n allowCredentials?: { id: string; type: string }[];\n timeout: number;\n userVerification: string;\n rpId: string;\n}\n\ninterface WebAuthnPublicKeyPaymentCredential extends Omit<PublicKeyCredential, 'response'> {\n response: AuthenticatorAssertionResponse;\n}\n\nexport const PasskeyErrorTypes = {\n CREDENTIAL_CREATION_ERROR: 'Navigator.credentials creation error',\n CREDENTIAL_RETRIEVAL_ERROR: 'Navigator.credentials retrieval error',\n RISK_SIGNALS_ERROR: 'Error capturing Risk Signals'\n};\n\nexport interface RiskSignalsEnrollment extends BrowserRiskSignals {\n deviceId: string;\n}\n\nexport interface RiskSignalsAuthentication extends BrowserRiskSignals {\n deviceId: string;\n confidenceScore: ConfidenceScore;\n}\n\nexport type NavigatorCredentialCreationsError = {\n type: typeof PasskeyErrorTypes.CREDENTIAL_CREATION_ERROR;\n message: string;\n};\n\nexport type NavigatorCredentialRetrievalError = {\n type: typeof PasskeyErrorTypes.CREDENTIAL_RETRIEVAL_ERROR;\n message: string;\n};\n\nexport interface IAdyenPasskey {\n captureRiskSignalsEnrollment: (deviceId?: string) => Promise<RiskSignalsEnrollment | RiskSignalsError>;\n captureRiskSignalsAuthentication: (deviceId: string) => Promise<RiskSignalsAuthentication | RiskSignalsError>;\n createCredentialForEnrollment: (\n creationData: PublicKeyCredentialCreationOptionsDTO\n ) => Promise<WebAuthnPublicKeyCreationCredential | NavigatorCredentialCreationsError>;\n authenticateWithCredential: (\n retrievalData: PublicKeyCredentialRequestOptionsDTO\n ) => Promise<WebAuthnPublicKeyPaymentCredential | NavigatorCredentialRetrievalError>;\n}\n\nexport interface IPasskeyService {\n captureRiskSignalsEnrollment(): Promise<RiskSignalsEnrollment>;\n captureRiskSignalsAuthentication(): Promise<RiskSignalsAuthentication>;\n /**\n *\n * @param registrationOptions - registration options object encoded in base64\n * @returns fido assertion result encoded in base64\n */\n createCredentialForEnrollment: (registrationOptions: string) => Promise<string>;\n /**\n *\n * @param authenticationOptions - encoded in base64\n * @returns result encoded in base64\n */\n authenticateWithCredential: (authenticationOptions: string) => Promise<string>;\n}\n\nexport type PasskeyServiceConfig = {\n deviceId?: string; // Merchant optionally pass\n environment: string;\n};\n"],"names":["PasskeyErrorTypes","CREDENTIAL_CREATION_ERROR","CREDENTIAL_RETRIEVAL_ERROR","RISK_SIGNALS_ERROR"],"mappings":"MAkEaA,EAAoB,CAC7BC,0BAA2B,uCAC3BC,2BAA4B,wCAC5BC,mBAAoB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import n from"./components/PaypalComponent.js";import r from"./defaultProps.js";import{CoreProvider as i}from"../../core/Context/CoreProvider.js";import o from"../../core/Errors/AdyenCheckoutError.js";import{ERRORS as s}from"./constants.js";import{TxVariants as a}from"../tx-variants.js";import{formatPaypalOrderContactToAdyenFormat as p}from"./utils/format-paypal-order-contact-to-adyen-format.js";function
|
|
1
|
+
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import n from"./components/PaypalComponent.js";import r from"./defaultProps.js";import{CoreProvider as i}from"../../core/Context/CoreProvider.js";import o from"../../core/Errors/AdyenCheckoutError.js";import{ERRORS as s}from"./constants.js";import{TxVariants as a}from"../tx-variants.js";import{formatPaypalOrderContactToAdyenFormat as p}from"./utils/format-paypal-order-contact-to-adyen-format.js";import{ANALYTICS_RENDERED_STR as h,ANALYTICS_EXPRESS_PAGES_ARRAY as l}from"../../core/Analytics/constants.js";import{AnalyticsInfoEvent as d}from"../../core/Analytics/AnalyticsInfoEvent.js";function c(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter((function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable})))),r.forEach((function(e){c(t,e,n[e])}))}return t}function m(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e.push.apply(e,n)}return e}(Object(e)).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})),t}function g(t,e){if(null==t)return{};var n,r,i=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||(i[n]=t[n]);return i}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}class y extends e{formatProps(t){var e,n,r;const i=null===(e=t.configuration)||void 0===e?void 0:e.merchantId,o=null===(n=t.configuration)||void 0===n?void 0:n.intent,s=0===(null===(r=t.amount)||void 0===r?void 0:r.value)?"tokenize":t.intent||o,a="tokenize"===s||t.vault,p="continue"===t.userAction;return m(u({},t),{commit:!p&&t.commit,vault:a,configuration:{intent:s,merchantId:i}})}submitAnalytics(t){if(t instanceof d&&t.type===h){const{isExpress:e,expressPage:n}=this.props,r=n&&l.includes(n);"boolean"==typeof e&&(t.isExpress=e),!0===e&&r&&(t.expressPage=n)}super.submitAnalytics(t)}updatePaymentData(t){t||console.warn("PayPal - Updating payment data with an invalid value"),this.paymentData=t}formatData(){const{isExpress:t,userAction:e}=this.props;return{paymentMethod:{type:y.type,userAction:e,subtype:t?"express":y.subtype}}}get isValid(){return!0}handleResolve(t){if(!this.resolve)return this.handleError(new o("ERROR",s.WRONG_INSTANCE));this.resolve(t)}handleReject(t){if(!this.reject)return this.handleError(new o("ERROR",s.WRONG_INSTANCE));this.reject(new Error(t))}handleSubmit(){return super.submit(),new Promise(((t,e)=>{this.resolve=t,this.reject=e}))}handleOnShippingAddressChange(t,e){return this.props.onShippingAddressChange(t,e,this)}handleOnShippingOptionsChange(t,e){return this.props.onShippingOptionsChange(t,e,this)}render(){if(!this.props.showPayButton)return null;const e=this.props,{onShippingAddressChange:r,onShippingOptionsChange:s}=e,a=g(e,["onShippingAddressChange","onShippingOptionsChange"]);return t(i,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(n,m(u({ref:t=>{this.componentRef=t}},a,r&&{onShippingAddressChange:this.handleOnShippingAddressChange},s&&{onShippingOptionsChange:this.handleOnShippingOptionsChange}),{onCancel:()=>this.handleError(new o("CANCEL")),onChange:this.setState,onApprove:this.handleOnApprove,onError:t=>{this.handleError(new o("ERROR",t.toString(),{cause:t}))},onScriptLoadFailure:t=>this.handleError(t),onSubmit:this.handleSubmit})))}constructor(t,e){super(t,e),c(this,"paymentData",null),c(this,"resolve",null),c(this,"reject",null),c(this,"submit",(()=>{this.handleError(new o("IMPLEMENTATION_ERROR",s.SUBMIT_NOT_SUPPORTED))})),c(this,"handleAction",(t=>this.updateWithAction(t))),c(this,"updateWithAction",(t=>{if(t.paymentMethodType!==this.type)throw new Error("Invalid Action");return t.paymentData&&(this.paymentData=t.paymentData),t.sdkData&&t.sdkData.token?(this.onActionHandled({componentType:this.type,actionDescription:"sdk-loaded",originalAction:t}),this.handleResolve(t.sdkData.token)):this.handleReject(s.NO_TOKEN_PROVIDED),null})),c(this,"handleOnApprove",((t,e)=>{const{onAuthorized:n}=this.props,r={data:{details:t,paymentData:this.paymentData}};if(n)return e.order.get().then((t=>{var e;const r=p(null==t?void 0:t.payer),i=p(null==t||null===(e=t.purchase_units)||void 0===e?void 0:e[0].shipping,!0);return this.setState(u({authorizedEvent:t},r&&{billingAddress:r},i&&{deliveryAddress:i})),new Promise(((e,o)=>n(u({authorizedEvent:t},r&&{billingAddress:r},i&&{deliveryAddress:i}),{resolve:e,reject:o})))})).then((()=>this.handleAdditionalDetails(r))).catch((t=>this.handleError(new o("ERROR","Something went wrong while parsing PayPal Order",{cause:t}))));this.handleAdditionalDetails(r)})),this.handleSubmit=this.handleSubmit.bind(this),this.handleOnShippingAddressChange=this.handleOnShippingAddressChange.bind(this),this.handleOnShippingOptionsChange=this.handleOnShippingOptionsChange.bind(this)}}c(y,"type",a.paypal),c(y,"subtype","sdk"),c(y,"defaultProps",r);export{y as default};
|
|
2
2
|
//# sourceMappingURL=Paypal.js.map
|
|
@@ -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 { CoreProvider } from '../../core/Context/CoreProvider';\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 } from '../../types/global-types';\nimport type { Intent, PayPalConfiguration } from './types';\n\nimport './Paypal.scss';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\n\nclass PaypalElement extends UIElement<PayPalConfiguration> {\n public static type = TxVariants.paypal;\n public static subtype = 'sdk';\n\n public paymentData: string = null;\n\n private resolve = null;\n private reject = null;\n\n protected static 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 = 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 submitAnalytics(analyticsObj: SendAnalyticsObject) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n super.submitAnalytics({ ...analyticsObj }, this.props);\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 handleOnApprove = (data: any, actions: any): Promise<void> | void => {\n const { onAuthorized } = this.props;\n const state = { data: { details: data, paymentData: this.paymentData } };\n\n if (!onAuthorized) {\n this.handleAdditionalDetails(state);\n return;\n }\n\n return actions.order\n .get()\n .then((paypalOrder: any) => {\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<void> {\n super.submit();\n\n return new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\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: any, actions: any): Promise<void> {\n return this.props.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: any, actions: any): Promise<void> {\n return this.props.onShippingOptionsChange(data, actions, this);\n }\n\n render() {\n if (!this.props.showPayButton) return null;\n\n const { onShippingAddressChange, onShippingOptionsChange, ...rest } = this.props;\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <PaypalComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n {...rest}\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', error.toString(), { cause: error }));\n }}\n onScriptLoadFailure={error => this.handleError(error)}\n onSubmit={this.handleSubmit}\n />\n </CoreProvider>\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","commit","submitAnalytics","analyticsObj","super","_object_spread","this","updatePaymentData","paymentData","console","warn","formatData","isExpress","paymentMethod","type","subtype","isValid","handleResolve","token","resolve","handleError","AdyenCheckoutError","ERRORS","WRONG_INSTANCE","handleReject","errorMessage","reject","Error","handleSubmit","submit","Promise","handleOnShippingAddressChange","data","actions","onShippingAddressChange","handleOnShippingOptionsChange","onShippingOptionsChange","render","showPayButton","_this_props","rest","_object_without_properties","h","CoreProvider","i18n","loadingContext","resources","PaypalComponent","ref","componentRef","onCancel","onChange","setState","onApprove","handleOnApprove","onError","error","toString","cause","onScriptLoadFailure","onSubmit","constructor","checkout","_define_property","SUBMIT_NOT_SUPPORTED","handleAction","action","updateWithAction","paymentMethodType","sdkData","onActionHandled","componentType","actionDescription","originalAction","NO_TOKEN_PROVIDED","onAuthorized","state","details","order","get","then","paypalOrder","billingAddress","formatPaypalOrderContactToAdyenFormat","payer","deliveryAddress","purchase_units","shipping","authorizedEvent","handleAdditionalDetails","catch","bind","TxVariants","paypal","defaultProps"],"mappings":"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"}
|
|
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 { CoreProvider } from '../../core/Context/CoreProvider';\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 } from '../../types/global-types';\nimport type { Intent, PayPalConfiguration } from './types';\n\nimport './Paypal.scss';\nimport { ANALYTICS_EXPRESS_PAGES_ARRAY, ANALYTICS_RENDERED_STR } from '../../core/Analytics/constants';\nimport { AnalyticsInfoEvent } from '../../core/Analytics/AnalyticsInfoEvent';\nimport { AnalyticsEvent } from '../../core/Analytics/AnalyticsEvent';\n\nclass PaypalElement extends UIElement<PayPalConfiguration> {\n public static type = TxVariants.paypal;\n public static subtype = 'sdk';\n\n public paymentData: string = null;\n\n private resolve = null;\n private reject = null;\n\n protected static 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 = 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 submitAnalytics(analyticsObj: AnalyticsEvent) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n if (analyticsObj instanceof AnalyticsInfoEvent && analyticsObj.type === ANALYTICS_RENDERED_STR) {\n const { isExpress, expressPage } = this.props;\n const hasExpressPage = expressPage && ANALYTICS_EXPRESS_PAGES_ARRAY.includes(expressPage);\n\n if (typeof isExpress === 'boolean') {\n analyticsObj.isExpress = isExpress;\n }\n\n if (isExpress === true && hasExpressPage) {\n analyticsObj.expressPage = expressPage; // We only care about the expressPage value if isExpress is true\n }\n }\n\n super.submitAnalytics(analyticsObj);\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 handleOnApprove = (data: any, actions: any): Promise<void> | void => {\n const { onAuthorized } = this.props;\n const state = { data: { details: data, paymentData: this.paymentData } };\n\n if (!onAuthorized) {\n this.handleAdditionalDetails(state);\n return;\n }\n\n return actions.order\n .get()\n .then((paypalOrder: any) => {\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<void> {\n super.submit();\n\n return new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\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: any, actions: any): Promise<void> {\n return this.props.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: any, actions: any): Promise<void> {\n return this.props.onShippingOptionsChange(data, actions, this);\n }\n\n render() {\n if (!this.props.showPayButton) return null;\n\n const { onShippingAddressChange, onShippingOptionsChange, ...rest } = this.props;\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <PaypalComponent\n ref={ref => {\n this.componentRef = ref;\n }}\n {...rest}\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', error.toString(), { cause: error }));\n }}\n onScriptLoadFailure={error => this.handleError(error)}\n onSubmit={this.handleSubmit}\n />\n </CoreProvider>\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","commit","submitAnalytics","analyticsObj","AnalyticsInfoEvent","type","ANALYTICS_RENDERED_STR","isExpress","expressPage","this","hasExpressPage","ANALYTICS_EXPRESS_PAGES_ARRAY","includes","super","updatePaymentData","paymentData","console","warn","formatData","paymentMethod","subtype","isValid","handleResolve","token","resolve","handleError","AdyenCheckoutError","ERRORS","WRONG_INSTANCE","handleReject","errorMessage","reject","Error","handleSubmit","submit","Promise","handleOnShippingAddressChange","data","actions","onShippingAddressChange","handleOnShippingOptionsChange","onShippingOptionsChange","render","showPayButton","_this_props","rest","_object_without_properties","h","CoreProvider","i18n","loadingContext","resources","PaypalComponent","ref","componentRef","onCancel","onChange","setState","onApprove","handleOnApprove","onError","error","toString","cause","onScriptLoadFailure","onSubmit","constructor","checkout","_define_property","SUBMIT_NOT_SUPPORTED","handleAction","action","updateWithAction","paymentMethodType","sdkData","onActionHandled","componentType","actionDescription","originalAction","NO_TOKEN_PROVIDED","onAuthorized","state","details","order","get","then","paypalOrder","billingAddress","formatPaypalOrderContactToAdyenFormat","payer","deliveryAddress","purchase_units","shipping","_object_spread","authorizedEvent","handleAdditionalDetails","catch","bind","TxVariants","paypal","defaultProps"],"mappings":"o3DAmBA,MAAMA,UAAsBC,EAkBxBC,WAAAA,CAAYC,GACWA,IAAAA,EACMA,EACNA,EAFnB,MAAMC,EAAaD,QAAAA,EAAAA,EAAME,qBAANF,IAAAA,OAAAA,EAAAA,EAAqBC,WAClCE,EAAmBH,QAAAA,EAAAA,EAAME,qBAANF,IAAAA,OAAAA,EAAAA,EAAqBI,OAExCA,EADqC,KAAxBJ,QAAAA,EAAAA,EAAMK,cAANL,IAAAA,OAAAA,EAAAA,EAAcM,OACG,WAAaN,EAAMI,QAAUD,EAC3DI,EAAmB,aAAXH,GAAyBJ,EAAMO,MAEvCC,EAAyD,aAArBR,EAAMS,WAEhD,OAAOC,EACAV,EAAAA,CAAAA,EAAAA,GAAAA,CACHW,QAAQH,GAA4CR,EAAMW,OAC1DJ,QACAL,cAAe,CACXE,SACAH,eAGZ,CAEUW,eAAAA,CAAgBC,GAEtB,GAAIA,aAAwBC,GAAsBD,EAAaE,OAASC,EAAwB,CAC5F,MAAMC,UAAEA,EAASC,YAAEA,GAAgBC,KAAKnB,MAClCoB,EAAiBF,GAAeG,EAA8BC,SAASJ,GAEpD,kBAAdD,IACPJ,EAAaI,UAAYA,IAGX,IAAdA,GAAsBG,IACtBP,EAAaK,YAAcA,EAEnC,CAEAK,MAAMX,gBAAgBC,EAC1B,CAUOW,iBAAAA,CAAkBC,GAChBA,GAAaC,QAAQC,KAAK,wDAC/BR,KAAKM,YAAcA,CACvB,CAKA,UAAAG,GACI,MAAMX,UAAEA,EAASR,WAAEA,GAAeU,KAAKnB,MAEvC,MAAO,CACH6B,cAAe,CACXd,KAAMlB,EAAckB,KACpBN,aACAqB,QAASb,EAAY,UAAYpB,EAAciC,SAG3D,CA6BA,WAAIC,GACA,OAAO,CACX,CAsCAC,aAAAA,CAAcC,GACV,IAAKd,KAAKe,QAAS,OAAOf,KAAKgB,YAAY,IAAIC,EAAmB,QAASC,EAAOC,iBAClFnB,KAAKe,QAAQD,EACjB,CAEAM,YAAAA,CAAaC,GACT,IAAKrB,KAAKsB,OAAQ,OAAOtB,KAAKgB,YAAY,IAAIC,EAAmB,QAASC,EAAOC,iBACjFnB,KAAKsB,OAAO,IAAIC,MAAMF,GAC1B,CAEQG,YAAAA,GAGJ,OAFApB,MAAMqB,SAEC,IAAIC,SAAQ,CAACX,EAASO,KACzBtB,KAAKe,QAAUA,EACff,KAAKsB,OAASA,CAAAA,GAEtB,CAUA,6BAAAK,CAAsCC,EAAWC,GAC7C,OAAO7B,KAAKnB,MAAMiD,wBAAwBF,EAAMC,EAAS7B,KAC7D,CAUA,6BAAA+B,CAAsCH,EAAWC,GAC7C,OAAO7B,KAAKnB,MAAMmD,wBAAwBJ,EAAMC,EAAS7B,KAC7D,CAEAiC,MAAAA,GACI,IAAKjC,KAAKnB,MAAMqD,cAAe,OAAO,KAEtC,MAAsEC,EAAAnC,KAAKnB,OAArEiD,wBAAEA,EAAuBE,wBAAEA,GAAqCG,EAATC,EAASC,EAAAF,EAAA,CAA9DL,0BAAyBE,4BAEjC,OACIM,EAACC,EAAAA,CAAaC,KAAMxC,KAAKnB,MAAM2D,KAAMC,eAAgBzC,KAAKnB,MAAM4D,eAAgBC,UAAW1C,KAAK0C,WAC5FJ,EAACK,EAAAA,EAAAA,EAAAA,CACGC,IAAKA,IACD5C,KAAK6C,aAAeD,CAAAA,GAEpBR,EACCN,GAA2B,CAAEA,wBAAyB9B,KAAK2B,+BAC3DK,GAA2B,CAAEA,wBAAyBhC,KAAK+B,gCAA8B,CAC9Fe,SAAU,IAAM9C,KAAKgB,YAAY,IAAIC,EAAmB,WACxD8B,SAAU/C,KAAKgD,SACfC,UAAWjD,KAAKkD,gBAChBC,QAASC,IACLpD,KAAKgB,YAAY,IAAIC,EAAmB,QAASmC,EAAMC,WAAY,CAAEC,MAAOF,IAAM,EAEtFG,oBAAqBH,GAASpD,KAAKgB,YAAYoC,GAC/CI,SAAUxD,KAAKwB,gBAI/B,CAhNAiC,WAAAA,CAAYC,EAAiB7E,GACzBuB,MAAMsD,EAAU7E,GARpB8E,EAAA3D,KAAOM,cAAsB,MAE7BqD,EAAQ5C,KAAAA,UAAU,MAClB4C,EAAA3D,KAAQsB,SAAS,MAiDjBqC,OAAOlC,UAAS,KACZzB,KAAKgB,YAAY,IAAIC,EAAmB,uBAAwBC,EAAO0C,sBAAoB,IA2B/FD,EAAA3D,KAAO6D,gBAAgBC,GACZ9D,KAAK+D,iBAAiBD,KAGjCH,EAAA3D,KAAO+D,oBAAoBD,IACvB,GAAIA,EAAOE,oBAAsBhE,KAAKJ,KAAM,MAAM,IAAI2B,MAAM,kBAa5D,OAXIuC,EAAOxD,cACPN,KAAKM,YAAcwD,EAAOxD,aAG1BwD,EAAOG,SAAWH,EAAOG,QAAQnD,OACjCd,KAAKkE,gBAAgB,CAAEC,cAAenE,KAAKJ,KAAMwE,kBAAmB,aAAcC,eAAgBP,IAClG9D,KAAKa,cAAciD,EAAOG,QAAQnD,QAElCd,KAAKoB,aAAaF,EAAOoD,mBAGtB,IAAA,IAaXX,EAAA3D,KAAQkD,mBAAkB,CAACtB,EAAWC,KAClC,MAAM0C,aAAEA,GAAiBvE,KAAKnB,MACxB2F,EAAQ,CAAE5C,KAAM,CAAE6C,QAAS7C,EAAMtB,YAAaN,KAAKM,cAEzD,GAAKiE,EAKL,OAAO1C,EAAQ6C,MACVC,MACAC,MAAMC,IAE2DA,IAAAA,EAD9D,MAAMC,EAAiBC,EAAsCF,aAAAA,EAAAA,EAAaG,OACpEC,EAAkBF,EAAsCF,SAAAA,QAAAA,EAAAA,EAAaK,sBAAbL,IAAAA,OAAAA,EAAAA,EAA8B,GAAGM,UAAU,GAQzG,OANAnF,KAAKgD,SAASoC,EAAA,CACVC,gBAAiBR,GACbC,GAAkB,CAAEA,kBACpBG,GAAmB,CAAEA,qBAGtB,IAAIvD,SAAc,CAACX,EAASO,IAC/BiD,EACIa,EAAA,CACIC,gBAAiBR,GACbC,GAAkB,CAAEA,kBACpBG,GAAmB,CAAEA,oBAE7B,CAAElE,UAASO,YAAO,IAI7BsD,MAAK,IAAM5E,KAAKsF,wBAAwBd,KACxCe,OAAMnC,GAASpD,KAAKgB,YAAY,IAAIC,EAAmB,QAAS,kDAAmD,CAAEqC,MAAOF,OA5B7HpD,KAAKsF,wBAAwBd,EA4BsG,IAvIvIxE,KAAKwB,aAAexB,KAAKwB,aAAagE,KAAKxF,MAC3CA,KAAK2B,8BAAgC3B,KAAK2B,8BAA8B6D,KAAKxF,MAC7EA,KAAK+B,8BAAgC/B,KAAK+B,8BAA8ByD,KAAKxF,KACjF,EAfA2D,EADEjF,EACYkB,OAAO6F,EAAWC,QAChC/B,EAFEjF,EAEYiC,UAAU,OAOxBgD,EATEjF,EASeiH,eAAeA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import o from"./components/RedirectShopper/RedirectShopper.js";import n from"../internal/RedirectButton/RedirectButton.js";import{TxVariants as s}from"../tx-variants.js";import i from"../../utils/browserInfo.js";import{ANALYTICS_ERROR_CODE as p,ANALYTICS_ERROR_TYPE as c
|
|
1
|
+
import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import o from"./components/RedirectShopper/RedirectShopper.js";import n from"../internal/RedirectButton/RedirectButton.js";import{TxVariants as s}from"../tx-variants.js";import i from"../../utils/browserInfo.js";import{ANALYTICS_ERROR_CODE as p,ANALYTICS_ERROR_TYPE as c}from"../../core/Analytics/constants.js";import{AnalyticsErrorEvent as a}from"../../core/Analytics/AnalyticsErrorEvent.js";function u(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function l(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable})))),o.forEach((function(e){u(t,e,r[e])}))}return t}function m(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})),t}class y extends e{formatData(){return{paymentMethod:{type:this.type},browserInfo:this.browserInfo}}get isValid(){return!0}get browserInfo(){return i()}render(){return this.props.url&&this.props.method?t(o,m(l({url:this.props.url},this.props),{onActionHandled:this.onActionHandled,onRedirectError:this.handleRedirectError})):this.props.showPayButton?t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(n,m(l({},this.props),{showPayButton:this.props.showPayButton,name:this.displayName,onSubmit:this.submit,payButton:this.payButton,ref:t=>{this.componentRef=t}}))):null}constructor(...t){super(...t),u(this,"handleRedirectError",(()=>{const t=new a({component:this.props.paymentMethodType,errorType:c.redirect,code:p.redirect});super.submitAnalytics(t)}))}}u(y,"type",s.redirect),u(y,"defaultProps",{type:y.type});export{y as default};
|
|
2
2
|
//# sourceMappingURL=Redirect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Redirect.js","sources":["../../../../src/components/Redirect/Redirect.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport RedirectShopper from './components/RedirectShopper';\nimport RedirectButton from '../internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport { RedirectConfiguration } from './types';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { ANALYTICS_ERROR_CODE, ANALYTICS_ERROR_TYPE
|
|
1
|
+
{"version":3,"file":"Redirect.js","sources":["../../../../src/components/Redirect/Redirect.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport RedirectShopper from './components/RedirectShopper';\nimport RedirectButton from '../internal/RedirectButton';\nimport { TxVariants } from '../tx-variants';\nimport { RedirectConfiguration } from './types';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { ANALYTICS_ERROR_CODE, ANALYTICS_ERROR_TYPE } from '../../core/Analytics/constants';\nimport { AnalyticsErrorEvent } from '../../core/Analytics/AnalyticsErrorEvent';\n\nclass RedirectElement extends UIElement<RedirectConfiguration> {\n public static type = TxVariants.redirect;\n\n public static defaultProps = {\n type: RedirectElement.type\n };\n\n formatData() {\n return {\n paymentMethod: {\n type: this.type\n },\n browserInfo: this.browserInfo\n };\n }\n\n private handleRedirectError = () => {\n const event = new AnalyticsErrorEvent({\n component: this.props.paymentMethodType,\n errorType: ANALYTICS_ERROR_TYPE.redirect,\n code: ANALYTICS_ERROR_CODE.redirect\n });\n super.submitAnalytics(event);\n };\n\n get isValid() {\n return true;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n render() {\n if (this.props.url && this.props.method) {\n return (\n <RedirectShopper\n url={this.props.url}\n {...this.props}\n onActionHandled={this.onActionHandled}\n onRedirectError={this.handleRedirectError}\n />\n );\n }\n\n if (this.props.showPayButton) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <RedirectButton\n {...this.props}\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n onSubmit={this.submit}\n payButton={this.payButton}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n </CoreProvider>\n );\n }\n\n return null;\n }\n}\n\nexport default RedirectElement;\n"],"names":["RedirectElement","UIElement","formatData","paymentMethod","type","this","browserInfo","isValid","collectBrowserInfo","render","props","url","method","h","RedirectShopper","onActionHandled","onRedirectError","handleRedirectError","showPayButton","CoreProvider","i18n","loadingContext","resources","RedirectButton","name","displayName","onSubmit","submit","payButton","ref","componentRef","super","args","_define_property","event","AnalyticsErrorEvent","component","paymentMethodType","errorType","ANALYTICS_ERROR_TYPE","redirect","code","ANALYTICS_ERROR_CODE","submitAnalytics","TxVariants","defaultProps"],"mappings":"83CAWA,MAAMA,UAAwBC,EAO1BC,UAAAA,GACI,MAAO,CACHC,cAAe,CACXC,KAAMC,KAAKD,MAEfE,YAAaD,KAAKC,YAE1B,CAWA,WAAIC,GACA,OAAO,CACX,CAEA,eAAID,GACA,OAAOE,GACX,CAEAC,MAAAA,GACI,OAAIJ,KAAKK,MAAMC,KAAON,KAAKK,MAAME,OAEzBC,EAACC,EAAAA,EAAAA,EAAAA,CACGH,IAAKN,KAAKK,MAAMC,KACZN,KAAKK,OAAK,CACdK,gBAAiBV,KAAKU,gBACtBC,gBAAiBX,KAAKY,uBAK9BZ,KAAKK,MAAMQ,cAEPL,EAACM,EAAAA,CAAaC,KAAMf,KAAKK,MAAMU,KAAMC,eAAgBhB,KAAKK,MAAMW,eAAgBC,UAAWjB,KAAKiB,WAC5FT,EAACU,EAAAA,EAAAA,EAAAA,GACOlB,KAAKK,OAAK,CACdQ,cAAeb,KAAKK,MAAMQ,cAC1BM,KAAMnB,KAAKoB,YACXC,SAAUrB,KAAKsB,OACfC,UAAWvB,KAAKuB,UAChBC,IAAKA,IACDxB,KAAKyB,aAAeD,CAAAA,MAOjC,IACX,mBA/DJE,SAAAC,GAgBIC,OAAQhB,uBAAsB,KAC1B,MAAMiB,EAAQ,IAAIC,EAAoB,CAClCC,UAAW/B,KAAKK,MAAM2B,kBACtBC,UAAWC,EAAqBC,SAChCC,KAAMC,EAAqBF,WAE/BT,MAAMY,gBAAgBT,EAAAA,KArB1BD,EADEjC,EACYI,OAAOwC,EAAWJ,UAEhCP,EAHEjC,EAGY6C,eAAe,CACzBzC,KAAMJ,EAAgBI"}
|