@adyen/adyen-web 6.46.0 → 6.47.0-alpha.eada81f

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.
Files changed (188) hide show
  1. package/dist/cjs/adyen.css +14 -12
  2. package/dist/cjs/adyen.css.map +1 -1
  3. package/dist/cjs/index.cjs +2 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +525 -4
  6. package/dist/es/adyen.css +14 -12
  7. package/dist/es/adyen.css.map +1 -1
  8. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  9. package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
  10. package/dist/es/components/Donation/components/FixedAmounts.js.map +1 -1
  11. package/dist/es/components/PayPal/PayPalCredit.js +2 -0
  12. package/dist/es/components/PayPal/PayPalCredit.js.map +1 -0
  13. package/dist/es/components/PayPal/PayPalPaylater.js +2 -0
  14. package/dist/es/components/PayPal/PayPalPaylater.js.map +1 -0
  15. package/dist/es/components/PayPal/Paypal.js +1 -1
  16. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  17. package/dist/es/components/PayPal/Venmo.js +2 -0
  18. package/dist/es/components/PayPal/Venmo.js.map +1 -0
  19. package/dist/es/components/PayPal/components/PayPalButton.js +2 -0
  20. package/dist/es/components/PayPal/components/PayPalButton.js.map +1 -0
  21. package/dist/es/components/PayPal/components/PayPalComponentV6.js +2 -0
  22. package/dist/es/components/PayPal/components/PayPalComponentV6.js.map +1 -0
  23. package/dist/es/components/PayPal/components/PayPalComponentV6.module.scss.js +2 -0
  24. package/dist/es/components/PayPal/components/PayPalComponentV6.module.scss.js.map +1 -0
  25. package/dist/es/components/PayPal/components/PayPalCreditButton.js +2 -0
  26. package/dist/es/components/PayPal/components/PayPalCreditButton.js.map +1 -0
  27. package/dist/es/components/PayPal/components/PayPalCreditComponent.js +2 -0
  28. package/dist/es/components/PayPal/components/PayPalCreditComponent.js.map +1 -0
  29. package/dist/es/components/PayPal/components/PayPalMessaging.js +2 -0
  30. package/dist/es/components/PayPal/components/PayPalMessaging.js.map +1 -0
  31. package/dist/es/components/PayPal/components/PayPalPayLaterButton.js +2 -0
  32. package/dist/es/components/PayPal/components/PayPalPayLaterButton.js.map +1 -0
  33. package/dist/es/components/PayPal/components/PayPalPaylaterComponent.js +2 -0
  34. package/dist/es/components/PayPal/components/PayPalPaylaterComponent.js.map +1 -0
  35. package/dist/es/components/PayPal/components/PayPalPaylaterComponent.module.scss.js +2 -0
  36. package/dist/es/components/PayPal/components/PayPalPaylaterComponent.module.scss.js.map +1 -0
  37. package/dist/es/components/PayPal/components/PayPalProcessingSpinner.js +2 -0
  38. package/dist/es/components/PayPal/components/PayPalProcessingSpinner.js.map +1 -0
  39. package/dist/es/components/PayPal/components/PayPalSpinner.js +2 -0
  40. package/dist/es/components/PayPal/components/PayPalSpinner.js.map +1 -0
  41. package/dist/es/components/PayPal/components/PaypalButtons.js +1 -1
  42. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  43. package/dist/es/components/PayPal/components/PaypalComponent.js +1 -1
  44. package/dist/es/components/PayPal/components/PaypalComponent.js.map +1 -1
  45. package/dist/es/components/PayPal/components/VenmoButton.js +2 -0
  46. package/dist/es/components/PayPal/components/VenmoButton.js.map +1 -0
  47. package/dist/es/components/PayPal/components/VenmoComponent.js +2 -0
  48. package/dist/es/components/PayPal/components/VenmoComponent.js.map +1 -0
  49. package/dist/es/components/PayPal/config.js +1 -1
  50. package/dist/es/components/PayPal/config.js.map +1 -1
  51. package/dist/es/components/PayPal/hooks/usePayPalButtonEligibility.js +2 -0
  52. package/dist/es/components/PayPal/hooks/usePayPalButtonEligibility.js.map +1 -0
  53. package/dist/es/components/PayPal/hooks/usePayPalOneTimeSession.js +2 -0
  54. package/dist/es/components/PayPal/hooks/usePayPalOneTimeSession.js.map +1 -0
  55. package/dist/es/components/PayPal/hooks/usePayPalSaveSession.js +2 -0
  56. package/dist/es/components/PayPal/hooks/usePayPalSaveSession.js.map +1 -0
  57. package/dist/es/components/PayPal/hooks/usePayPalSessionOptions.js +2 -0
  58. package/dist/es/components/PayPal/hooks/usePayPalSessionOptions.js.map +1 -0
  59. package/dist/es/components/PayPal/hooks/usePayPalStatus.js +2 -0
  60. package/dist/es/components/PayPal/hooks/usePayPalStatus.js.map +1 -0
  61. package/dist/es/components/PayPal/hooks/useStartPayPalSession.js +2 -0
  62. package/dist/es/components/PayPal/hooks/useStartPayPalSession.js.map +1 -0
  63. package/dist/es/components/PayPal/models/BasePayPalElement.js +2 -0
  64. package/dist/es/components/PayPal/models/BasePayPalElement.js.map +1 -0
  65. package/dist/es/components/PayPal/services/PayPalSdkLoader.js +2 -0
  66. package/dist/es/components/PayPal/services/PayPalSdkLoader.js.map +1 -0
  67. package/dist/es/components/PayPal/services/PayPalService.js +2 -0
  68. package/dist/es/components/PayPal/services/PayPalService.js.map +1 -0
  69. package/dist/es/components/PayPal/services/request-paypal-oauth-token.js +2 -0
  70. package/dist/es/components/PayPal/services/request-paypal-oauth-token.js.map +1 -0
  71. package/dist/es/components/PayPal/services/request-paypal-order-details.js +2 -0
  72. package/dist/es/components/PayPal/services/request-paypal-order-details.js.map +1 -0
  73. package/dist/es/components/PayPal/utils/get-paypal-locale.js +1 -1
  74. package/dist/es/components/PayPal/utils/get-paypal-locale.js.map +1 -1
  75. package/dist/es/components/PayPal/utils/get-paypal-settings.js +1 -1
  76. package/dist/es/components/PayPal/utils/get-paypal-settings.js.map +1 -1
  77. package/dist/es/components/PayPal/utils/get-paypal-url.js +1 -1
  78. package/dist/es/components/PayPal/utils/get-paypal-url.js.map +1 -1
  79. package/dist/es/components/PayPal/utils/is-paypal-service-config-equal.js +2 -0
  80. package/dist/es/components/PayPal/utils/is-paypal-service-config-equal.js.map +1 -0
  81. package/dist/es/components/components-name-map.js +1 -1
  82. package/dist/es/components/components-name-map.js.map +1 -1
  83. package/dist/es/components/index.js +1 -1
  84. package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
  85. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  86. package/dist/es/components/internal/PayButton/utils.js.map +1 -1
  87. package/dist/es/components/tx-variants.js +1 -1
  88. package/dist/es/components/tx-variants.js.map +1 -1
  89. package/dist/es/core/config.js +1 -1
  90. package/dist/es/core/config.js.map +1 -1
  91. package/dist/es/index.d.ts +525 -4
  92. package/dist/es/index.js +1 -1
  93. package/dist/es/utils/createSdkData.js +1 -1
  94. package/dist/es/utils/createSdkData.js.map +1 -1
  95. package/dist/es/utils/is-live-environment.js +2 -0
  96. package/dist/es/utils/is-live-environment.js.map +1 -0
  97. package/dist/es-legacy/adyen.css +14 -12
  98. package/dist/es-legacy/adyen.css.map +1 -1
  99. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  100. package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
  101. package/dist/es-legacy/components/Donation/components/FixedAmounts.js.map +1 -1
  102. package/dist/es-legacy/components/PayPal/PayPalCredit.js +2 -0
  103. package/dist/es-legacy/components/PayPal/PayPalCredit.js.map +1 -0
  104. package/dist/es-legacy/components/PayPal/PayPalPaylater.js +2 -0
  105. package/dist/es-legacy/components/PayPal/PayPalPaylater.js.map +1 -0
  106. package/dist/es-legacy/components/PayPal/Paypal.js +1 -1
  107. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  108. package/dist/es-legacy/components/PayPal/Venmo.js +2 -0
  109. package/dist/es-legacy/components/PayPal/Venmo.js.map +1 -0
  110. package/dist/es-legacy/components/PayPal/components/PayPalButton.js +2 -0
  111. package/dist/es-legacy/components/PayPal/components/PayPalButton.js.map +1 -0
  112. package/dist/es-legacy/components/PayPal/components/PayPalComponentV6.js +2 -0
  113. package/dist/es-legacy/components/PayPal/components/PayPalComponentV6.js.map +1 -0
  114. package/dist/es-legacy/components/PayPal/components/PayPalComponentV6.module.scss.js +2 -0
  115. package/dist/es-legacy/components/PayPal/components/PayPalComponentV6.module.scss.js.map +1 -0
  116. package/dist/es-legacy/components/PayPal/components/PayPalCreditButton.js +2 -0
  117. package/dist/es-legacy/components/PayPal/components/PayPalCreditButton.js.map +1 -0
  118. package/dist/es-legacy/components/PayPal/components/PayPalCreditComponent.js +2 -0
  119. package/dist/es-legacy/components/PayPal/components/PayPalCreditComponent.js.map +1 -0
  120. package/dist/es-legacy/components/PayPal/components/PayPalMessaging.js +2 -0
  121. package/dist/es-legacy/components/PayPal/components/PayPalMessaging.js.map +1 -0
  122. package/dist/es-legacy/components/PayPal/components/PayPalPayLaterButton.js +2 -0
  123. package/dist/es-legacy/components/PayPal/components/PayPalPayLaterButton.js.map +1 -0
  124. package/dist/es-legacy/components/PayPal/components/PayPalPaylaterComponent.js +2 -0
  125. package/dist/es-legacy/components/PayPal/components/PayPalPaylaterComponent.js.map +1 -0
  126. package/dist/es-legacy/components/PayPal/components/PayPalPaylaterComponent.module.scss.js +2 -0
  127. package/dist/es-legacy/components/PayPal/components/PayPalPaylaterComponent.module.scss.js.map +1 -0
  128. package/dist/es-legacy/components/PayPal/components/PayPalProcessingSpinner.js +2 -0
  129. package/dist/es-legacy/components/PayPal/components/PayPalProcessingSpinner.js.map +1 -0
  130. package/dist/es-legacy/components/PayPal/components/PayPalSpinner.js +2 -0
  131. package/dist/es-legacy/components/PayPal/components/PayPalSpinner.js.map +1 -0
  132. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js +1 -1
  133. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  134. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js +1 -1
  135. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js.map +1 -1
  136. package/dist/es-legacy/components/PayPal/components/VenmoButton.js +2 -0
  137. package/dist/es-legacy/components/PayPal/components/VenmoButton.js.map +1 -0
  138. package/dist/es-legacy/components/PayPal/components/VenmoComponent.js +2 -0
  139. package/dist/es-legacy/components/PayPal/components/VenmoComponent.js.map +1 -0
  140. package/dist/es-legacy/components/PayPal/config.js +1 -1
  141. package/dist/es-legacy/components/PayPal/config.js.map +1 -1
  142. package/dist/es-legacy/components/PayPal/hooks/usePayPalButtonEligibility.js +2 -0
  143. package/dist/es-legacy/components/PayPal/hooks/usePayPalButtonEligibility.js.map +1 -0
  144. package/dist/es-legacy/components/PayPal/hooks/usePayPalOneTimeSession.js +2 -0
  145. package/dist/es-legacy/components/PayPal/hooks/usePayPalOneTimeSession.js.map +1 -0
  146. package/dist/es-legacy/components/PayPal/hooks/usePayPalSaveSession.js +2 -0
  147. package/dist/es-legacy/components/PayPal/hooks/usePayPalSaveSession.js.map +1 -0
  148. package/dist/es-legacy/components/PayPal/hooks/usePayPalSessionOptions.js +2 -0
  149. package/dist/es-legacy/components/PayPal/hooks/usePayPalSessionOptions.js.map +1 -0
  150. package/dist/es-legacy/components/PayPal/hooks/usePayPalStatus.js +2 -0
  151. package/dist/es-legacy/components/PayPal/hooks/usePayPalStatus.js.map +1 -0
  152. package/dist/es-legacy/components/PayPal/hooks/useStartPayPalSession.js +2 -0
  153. package/dist/es-legacy/components/PayPal/hooks/useStartPayPalSession.js.map +1 -0
  154. package/dist/es-legacy/components/PayPal/models/BasePayPalElement.js +2 -0
  155. package/dist/es-legacy/components/PayPal/models/BasePayPalElement.js.map +1 -0
  156. package/dist/es-legacy/components/PayPal/services/PayPalSdkLoader.js +2 -0
  157. package/dist/es-legacy/components/PayPal/services/PayPalSdkLoader.js.map +1 -0
  158. package/dist/es-legacy/components/PayPal/services/PayPalService.js +2 -0
  159. package/dist/es-legacy/components/PayPal/services/PayPalService.js.map +1 -0
  160. package/dist/es-legacy/components/PayPal/services/request-paypal-oauth-token.js +2 -0
  161. package/dist/es-legacy/components/PayPal/services/request-paypal-oauth-token.js.map +1 -0
  162. package/dist/es-legacy/components/PayPal/services/request-paypal-order-details.js +2 -0
  163. package/dist/es-legacy/components/PayPal/services/request-paypal-order-details.js.map +1 -0
  164. package/dist/es-legacy/components/PayPal/utils/get-paypal-locale.js +1 -1
  165. package/dist/es-legacy/components/PayPal/utils/get-paypal-locale.js.map +1 -1
  166. package/dist/es-legacy/components/PayPal/utils/get-paypal-settings.js +1 -1
  167. package/dist/es-legacy/components/PayPal/utils/get-paypal-settings.js.map +1 -1
  168. package/dist/es-legacy/components/PayPal/utils/get-paypal-url.js +1 -1
  169. package/dist/es-legacy/components/PayPal/utils/get-paypal-url.js.map +1 -1
  170. package/dist/es-legacy/components/PayPal/utils/is-paypal-service-config-equal.js +2 -0
  171. package/dist/es-legacy/components/PayPal/utils/is-paypal-service-config-equal.js.map +1 -0
  172. package/dist/es-legacy/components/components-name-map.js +1 -1
  173. package/dist/es-legacy/components/components-name-map.js.map +1 -1
  174. package/dist/es-legacy/components/index.js +1 -1
  175. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
  176. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  177. package/dist/es-legacy/components/internal/PayButton/utils.js.map +1 -1
  178. package/dist/es-legacy/components/tx-variants.js +1 -1
  179. package/dist/es-legacy/components/tx-variants.js.map +1 -1
  180. package/dist/es-legacy/core/config.js +1 -1
  181. package/dist/es-legacy/core/config.js.map +1 -1
  182. package/dist/es-legacy/index.js +1 -1
  183. package/dist/es-legacy/utils/createSdkData.js +1 -1
  184. package/dist/es-legacy/utils/createSdkData.js.map +1 -1
  185. package/dist/es-legacy/utils/is-live-environment.js +2 -0
  186. package/dist/es-legacy/utils/is-live-environment.js.map +1 -0
  187. package/package.json +1 -1
  188. package/styles/adyen.css +14 -12
@@ -1 +1 @@
1
- {"version":3,"file":"ApplePaySdkLoader.js","sources":["../../../../../src/components/ApplePay/services/ApplePaySdkLoader.ts"],"sourcesContent":["import Script from '../../../utils/Script';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport { IAnalytics } from '../../../core/Analytics/Analytics';\n\nexport const APPLE_PAY_SDK_URL = 'https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js';\n\nclass ApplePaySdkLoader {\n private sdkLoadingPromise: Promise<void>;\n private readonly analytics: IAnalytics;\n\n constructor({ analytics }: { analytics: IAnalytics }) {\n this.analytics = analytics;\n }\n\n public async load(): Promise<ApplePaySession> {\n try {\n const scriptElement = new Script({\n src: APPLE_PAY_SDK_URL,\n component: 'applepay',\n attributes: { crossOrigin: 'anonymous' },\n analytics: this.analytics\n });\n\n this.sdkLoadingPromise = scriptElement.load();\n await this.sdkLoadingPromise;\n\n return window?.ApplePaySession;\n } catch (error) {\n throw new AdyenCheckoutError('SCRIPT_ERROR', 'ApplePaySDK failed to load', { cause: error });\n }\n }\n\n public isSdkLoaded(): Promise<void> {\n if (this.sdkLoadingPromise === undefined) {\n return Promise.reject();\n }\n\n return this.sdkLoadingPromise;\n }\n}\n\nexport default ApplePaySdkLoader;\n"],"names":["APPLE_PAY_SDK_URL","ApplePaySdkLoader","load","window","scriptElement","Script","src","component","attributes","crossOrigin","analytics","this","sdkLoadingPromise","ApplePaySession","error","AdyenCheckoutError","cause","isSdkLoaded","undefined","Promise","reject","constructor","_define_property"],"mappings":"0NAIO,MAAMA,EAAoB,iEAEjC,MAAMC,EAQF,UAAaC,GACT,IAWWC,IAAAA,EAVP,MAAMC,EAAgB,IAAIC,EAAO,CAC7BC,IAAKN,EACLO,UAAW,WACXC,WAAY,CAAEC,YAAa,aAC3BC,UAAWC,KAAKD,YAMpB,OAHAC,KAAKC,kBAAoBR,EAAcF,aACjCS,KAAKC,kBAEJT,QAAAA,EAAAA,cAAAA,IAAAA,OAAAA,EAAAA,EAAQU,eACnB,CAAE,MAAOC,GACL,MAAM,IAAIC,EAAmB,eAAgB,6BAA8B,CAAEC,MAAOF,GACxF,CACJ,CAEOG,WAAAA,GACH,YAA+BC,IAA3BP,KAAKC,kBACEO,QAAQC,SAGZT,KAAKC,iBAChB,CA5BA,WAAAS,EAAYX,UAAEA,IAHdY,EAAAX,KAAQC,4BACRU,EAAAX,KAAiBD,oBAGbC,KAAKD,UAAYA,CACrB"}
1
+ {"version":3,"file":"ApplePaySdkLoader.js","sources":["../../../../../src/components/ApplePay/services/ApplePaySdkLoader.ts"],"sourcesContent":["import Script from '../../../utils/Script';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport { IAnalytics } from '../../../core/Analytics/Analytics';\n\nexport const APPLE_PAY_SDK_URL = 'https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js';\n\nclass ApplePaySdkLoader {\n private sdkLoadingPromise: Promise<void>;\n private readonly analytics: IAnalytics;\n\n constructor({ analytics }: { analytics: IAnalytics }) {\n this.analytics = analytics;\n }\n\n public async load(): Promise<typeof ApplePaySession | undefined> {\n try {\n const scriptElement = new Script({\n src: APPLE_PAY_SDK_URL,\n component: 'applepay',\n attributes: { crossOrigin: 'anonymous' },\n analytics: this.analytics\n });\n\n this.sdkLoadingPromise = scriptElement.load();\n await this.sdkLoadingPromise;\n\n return window?.ApplePaySession;\n } catch (error) {\n throw new AdyenCheckoutError('SCRIPT_ERROR', 'ApplePaySDK failed to load', { cause: error });\n }\n }\n\n public isSdkLoaded(): Promise<void> {\n if (this.sdkLoadingPromise === undefined) {\n return Promise.reject();\n }\n\n return this.sdkLoadingPromise;\n }\n}\n\nexport default ApplePaySdkLoader;\n"],"names":["APPLE_PAY_SDK_URL","ApplePaySdkLoader","load","window","scriptElement","Script","src","component","attributes","crossOrigin","analytics","this","sdkLoadingPromise","ApplePaySession","error","AdyenCheckoutError","cause","isSdkLoaded","undefined","Promise","reject","constructor","_define_property"],"mappings":"0NAIO,MAAMA,EAAoB,iEAEjC,MAAMC,EAQF,UAAaC,GACT,IAWWC,IAAAA,EAVP,MAAMC,EAAgB,IAAIC,EAAO,CAC7BC,IAAKN,EACLO,UAAW,WACXC,WAAY,CAAEC,YAAa,aAC3BC,UAAWC,KAAKD,YAMpB,OAHAC,KAAKC,kBAAoBR,EAAcF,aACjCS,KAAKC,kBAEJT,QAAAA,EAAAA,cAAAA,IAAAA,OAAAA,EAAAA,EAAQU,eACnB,CAAE,MAAOC,GACL,MAAM,IAAIC,EAAmB,eAAgB,6BAA8B,CAAEC,MAAOF,GACxF,CACJ,CAEOG,WAAAA,GACH,YAA+BC,IAA3BP,KAAKC,kBACEO,QAAQC,SAGZT,KAAKC,iBAChB,CA5BA,WAAAS,EAAYX,UAAEA,IAHdY,EAAAX,KAAQC,4BACRU,EAAAX,KAAiBD,oBAGbC,KAAKD,UAAYA,CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"DonationComponent.js","sources":["../../../../../src/components/Donation/components/DonationComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport CampaignContent from './CampaignContent';\nimport Button from '../../internal/Button';\nimport Img from '../../internal/Img';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport '../Donation.scss';\nimport DisclaimerMessage from '../../internal/DisclaimerMessage';\nimport { DonationAmount, DonationComponentProps, Status } from './types';\nimport useImage from '../../../core/Context/useImage';\nimport FixedAmounts from './FixedAmounts';\nimport Roundup from './Roundup';\nimport { getAmountLabel, getRoundupAmount, getRoundupAmountLabel } from './utils';\nimport { ComponentMethodsRef } from '../../types';\n\nexport default function DonationComponent(props: Readonly<DonationComponentProps>) {\n const { donation, commercialTxAmount, onAmountSelected, onCancel, onDonate, showCancelButton = true, termsAndConditionsUrl } = props;\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const { currency, type } = donation;\n const isRoundupDonation = type === 'roundup';\n const [status, setStatus] = useState<Status>('ready');\n const [isValid, setIsValid] = useState<boolean>(isRoundupDonation);\n const [amount, setAmount] = useState<DonationAmount>({\n currency,\n value: isRoundupDonation ? getRoundupAmount(donation.maxRoundupAmount, commercialTxAmount) : null\n });\n\n const donationComponentRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus\n });\n\n useEffect(() => {\n props.setComponentRef(donationComponentRef.current);\n }, [props.setComponentRef]);\n\n const handleAmountSelected = ({ target }) => {\n const value = parseInt(target.value, 10);\n setIsValid(true);\n setAmount((amount: DonationAmount) => ({ ...amount, value }));\n\n onAmountSelected({ data: { amount: { ...amount, value } } });\n };\n\n const handleDonate = () => {\n setStatus('loading');\n onDonate({ data: { amount } });\n };\n\n const handleDecline = () => {\n setStatus('ready');\n onCancel({ data: { amount }, isValid });\n };\n\n useEffect(() => {\n props.onChange({ data: { amount }, isValid });\n }, [amount, isValid]);\n\n if (status === 'error') {\n return (\n <div className=\"adyen-checkout__adyen-giving\">\n <Img\n className=\"adyen-checkout__status__icon adyen-checkout__status__icon--error\"\n src={getImage({ imageFolder: 'components/' })('error')}\n alt={i18n.get('error.message.unknown')}\n />\n <div className=\"adyen-checkout__status__text\">{i18n.get('error.message.unknown')}</div>\n </div>\n );\n }\n\n if (status === 'success') {\n return (\n <div className=\"adyen-checkout__adyen-giving\">\n <Img\n className=\"adyen-checkout__status__icon adyen-checkout__status__icon--success\"\n src={getImage({ imageFolder: 'components/' })('heart')}\n alt={i18n.get('thanksForYourSupport')}\n />\n\n <div className=\"adyen-checkout__status__text\">{i18n.get('thanksForYourSupport')}</div>\n </div>\n );\n }\n\n return (\n <div className=\"adyen-checkout__adyen-giving\">\n <CampaignContent {...props} />\n\n <div className=\"adyen-checkout__adyen-giving-actions\">\n {termsAndConditionsUrl && <DisclaimerMessage message={i18n.get('donationTermsCondition')} urls={[termsAndConditionsUrl]} />}\n {isRoundupDonation ? (\n <Roundup\n donationAmount={getRoundupAmountLabel(i18n, { maxRoundupAmount: donation.maxRoundupAmount, commercialTxAmount, currency })}\n originalPaymentAmount={getAmountLabel(i18n, { value: commercialTxAmount, currency })}\n status={status}\n onDonateButtonClicked={handleDonate}\n ></Roundup>\n ) : (\n <FixedAmounts\n selectedAmount={amount.value}\n values={donation.values}\n currency={currency}\n status={status}\n onAmountSelected={handleAmountSelected}\n onDonateButtonClicked={handleDonate}\n ></FixedAmounts>\n )}\n {showCancelButton && (\n <Button\n classNameModifiers={['decline']}\n variant=\"ghost\"\n onClick={handleDecline}\n disabled={status === 'loading'}\n label={`${i18n.get('notNowButton')} ›`}\n />\n )}\n </div>\n </div>\n );\n}\n\nDonationComponent.defaultProps = {\n onCancel: () => {},\n onChange: () => {},\n onDonate: () => {},\n donation: {},\n showCancelButton: true\n};\n"],"names":["DonationComponent","props","donation","commercialTxAmount","onAmountSelected","onCancel","onDonate","showCancelButton","termsAndConditionsUrl","i18n","useCoreContext","getImage","useImage","currency","type","isRoundupDonation","status","setStatus","useState","isValid","setIsValid","amount","setAmount","value","getRoundupAmount","maxRoundupAmount","donationComponentRef","useRef","useEffect","setComponentRef","current","handleDonate","data","onChange","h","div","className","Img","src","imageFolder","alt","get","CampaignContent","DisclaimerMessage","message","urls","Roundup","donationAmount","getRoundupAmountLabel","originalPaymentAmount","getAmountLabel","onDonateButtonClicked","FixedAmounts","selectedAmount","values","target","parseInt","_object_spread_props","_object_spread","Button","classNameModifiers","variant","onClick","disabled","label","defaultProps"],"mappings":"u6CAee,SAASA,EAAkBC,GACtC,MAAMC,SAAEA,EAAQC,mBAAEA,EAAkBC,iBAAEA,EAAgBC,SAAEA,EAAQC,SAAEA,EAAQC,iBAAEA,GAAmB,EAAIC,sBAAEA,GAA0BP,GACzHQ,KAAEA,GAASC,IACXC,EAAWC,KACXC,SAAEA,EAAQC,KAAEA,GAASZ,EACrBa,EAA6B,YAATD,GACnBE,EAAQC,GAAaC,EAAiB,UACtCC,EAASC,GAAcF,EAAkBH,IACzCM,EAAQC,GAAaJ,EAAyB,CACjDL,WACAU,MAAOR,EAAoBS,EAAiBtB,EAASuB,iBAAkBtB,GAAsB,OAG3FuB,EAAuBC,EAA4B,CACrDV,UAAWA,IAGfW,EAAU,KACN3B,EAAM4B,gBAAgBH,EAAqBI,UAC5C,CAAC7B,EAAM4B,kBAEV,MAQME,EAAe,KACjBd,EAAU,WACVX,EAAS,CAAE0B,KAAM,CAAEX,aAYvB,OAJAO,EAAU,KACN3B,EAAMgC,SAAS,CAAED,KAAM,CAAEX,UAAUF,aACpC,CAACE,EAAQF,IAEG,UAAXH,EAEIkB,EAACC,MAAAA,CAAIC,UAAU,gCACXF,EAACG,EAAAA,CACGD,UAAU,mEACVE,IAAK3B,EAAS,CAAE4B,YAAa,eAAxB5B,CAAyC,SAC9C6B,IAAK/B,EAAKgC,IAAI,2BAElBP,EAACC,MAAAA,CAAIC,UAAU,gCAAgC3B,EAAKgC,IAAI,2BAKrD,YAAXzB,EAEIkB,EAACC,MAAAA,CAAIC,UAAU,gCACXF,EAACG,EAAAA,CACGD,UAAU,qEACVE,IAAK3B,EAAS,CAAE4B,YAAa,eAAxB5B,CAAyC,SAC9C6B,IAAK/B,EAAKgC,IAAI,0BAGlBP,EAACC,MAAAA,CAAIC,UAAU,gCAAgC3B,EAAKgC,IAAI,0BAMhEP,EAACC,MAAAA,CAAIC,UAAU,gCACXF,EAACQ,EAAoBzC,GAErBiC,EAACC,MAAAA,CAAIC,UAAU,wCACV5B,GAAyB0B,EAACS,EAAAA,CAAkBC,QAASnC,EAAKgC,IAAI,0BAA2BI,KAAM,CAACrC,KAChGO,EACGmB,EAACY,EAAAA,CACGC,eAAgBC,EAAsBvC,EAAM,CAAEgB,iBAAkBvB,EAASuB,iBAAkBtB,qBAAoBU,aAC/GoC,sBAAuBC,EAAezC,EAAM,CAAEc,MAAOpB,EAAoBU,aACzEG,OAAQA,EACRmC,sBAAuBpB,IAG3BG,EAACkB,EAAAA,CACGC,eAAgBhC,EAAOE,MACvB+B,OAAQpD,EAASoD,OACjBzC,SAAUA,EACVG,OAAQA,EACRZ,iBApES,EAAGmD,aAC5B,MAAMhC,EAAQiC,SAASD,EAAOhC,MAAO,IACrCH,GAAW,GACXE,EAAWD,GAA4BoC,EAAAC,EAAA,CAAA,EAAKrC,GAAAA,CAAQE,WAEpDnB,EAAiB,CAAE4B,KAAM,CAAEX,OAAQoC,EAAAC,EAAA,CAAA,EAAKrC,GAAAA,CAAQE,cAgEhC4B,sBAAuBpB,IAG9BxB,GACG2B,EAACyB,EAAAA,CACGC,mBAAoB,CAAC,WACrBC,QAAQ,QACRC,QA/DE,KAClB7C,EAAU,SACVZ,EAAS,CAAE2B,KAAM,CAAEX,UAAUF,aA8Db4C,SAAqB,YAAX/C,EACVgD,MAAO,GAAGvD,EAAKgC,IAAI,uBAM3C,CAEAzC,EAAkBiE,aAAe,CAC7B5D,SAAU,OACV4B,SAAU,OACV3B,SAAU,OACVJ,SAAU,CAAA,EACVK,kBAAkB"}
1
+ {"version":3,"file":"DonationComponent.js","sources":["../../../../../src/components/Donation/components/DonationComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport CampaignContent from './CampaignContent';\nimport Button from '../../internal/Button';\nimport Img from '../../internal/Img';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport DisclaimerMessage from '../../internal/DisclaimerMessage';\nimport { DonationAmount, DonationComponentProps } from './types';\nimport useImage from '../../../core/Context/useImage';\nimport FixedAmounts from './FixedAmounts';\nimport Roundup from './Roundup';\nimport { getAmountLabel, getRoundupAmount, getRoundupAmountLabel } from './utils';\nimport { ComponentMethodsRef, UIElementStatus } from '../../types';\nimport '../Donation.scss';\n\nexport default function DonationComponent(props: Readonly<DonationComponentProps>) {\n const { donation, commercialTxAmount, onAmountSelected, onCancel, onDonate, showCancelButton = true, termsAndConditionsUrl } = props;\n const { i18n } = useCoreContext();\n const getImage = useImage();\n const { currency, type } = donation;\n const isRoundupDonation = type === 'roundup';\n const [status, setStatus] = useState<UIElementStatus>('ready');\n const [isValid, setIsValid] = useState<boolean>(isRoundupDonation);\n const [amount, setAmount] = useState<DonationAmount>({\n currency,\n value: isRoundupDonation ? getRoundupAmount(donation.maxRoundupAmount, commercialTxAmount) : null\n });\n\n const donationComponentRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus\n });\n\n useEffect(() => {\n props.setComponentRef(donationComponentRef.current);\n }, [props.setComponentRef]);\n\n const handleAmountSelected = ({ target }) => {\n const value = parseInt(target.value, 10);\n setIsValid(true);\n setAmount((amount: DonationAmount) => ({ ...amount, value }));\n\n onAmountSelected({ data: { amount: { ...amount, value } } });\n };\n\n const handleDonate = () => {\n setStatus('loading');\n onDonate({ data: { amount } });\n };\n\n const handleDecline = () => {\n setStatus('ready');\n onCancel({ data: { amount }, isValid });\n };\n\n useEffect(() => {\n props.onChange({ data: { amount }, isValid });\n }, [amount, isValid]);\n\n if (status === 'error') {\n return (\n <div className=\"adyen-checkout__adyen-giving\">\n <Img\n className=\"adyen-checkout__status__icon adyen-checkout__status__icon--error\"\n src={getImage({ imageFolder: 'components/' })('error')}\n alt={i18n.get('error.message.unknown')}\n />\n <div className=\"adyen-checkout__status__text\">{i18n.get('error.message.unknown')}</div>\n </div>\n );\n }\n\n if (status === 'success') {\n return (\n <div className=\"adyen-checkout__adyen-giving\">\n <Img\n className=\"adyen-checkout__status__icon adyen-checkout__status__icon--success\"\n src={getImage({ imageFolder: 'components/' })('heart')}\n alt={i18n.get('thanksForYourSupport')}\n />\n\n <div className=\"adyen-checkout__status__text\">{i18n.get('thanksForYourSupport')}</div>\n </div>\n );\n }\n\n return (\n <div className=\"adyen-checkout__adyen-giving\">\n <CampaignContent {...props} />\n\n <div className=\"adyen-checkout__adyen-giving-actions\">\n {termsAndConditionsUrl && <DisclaimerMessage message={i18n.get('donationTermsCondition')} urls={[termsAndConditionsUrl]} />}\n {isRoundupDonation ? (\n <Roundup\n donationAmount={getRoundupAmountLabel(i18n, { maxRoundupAmount: donation.maxRoundupAmount, commercialTxAmount, currency })}\n originalPaymentAmount={getAmountLabel(i18n, { value: commercialTxAmount, currency })}\n status={status}\n onDonateButtonClicked={handleDonate}\n ></Roundup>\n ) : (\n <FixedAmounts\n selectedAmount={amount.value}\n values={donation.values}\n currency={currency}\n status={status}\n onAmountSelected={handleAmountSelected}\n onDonateButtonClicked={handleDonate}\n ></FixedAmounts>\n )}\n {showCancelButton && (\n <Button\n classNameModifiers={['decline']}\n variant=\"ghost\"\n onClick={handleDecline}\n disabled={status === 'loading'}\n label={`${i18n.get('notNowButton')} ›`}\n />\n )}\n </div>\n </div>\n );\n}\n\nDonationComponent.defaultProps = {\n onCancel: () => {},\n onChange: () => {},\n onDonate: () => {},\n donation: {},\n showCancelButton: true\n};\n"],"names":["DonationComponent","props","donation","commercialTxAmount","onAmountSelected","onCancel","onDonate","showCancelButton","termsAndConditionsUrl","i18n","useCoreContext","getImage","useImage","currency","type","isRoundupDonation","status","setStatus","useState","isValid","setIsValid","amount","setAmount","value","getRoundupAmount","maxRoundupAmount","donationComponentRef","useRef","useEffect","setComponentRef","current","handleDonate","data","onChange","h","div","className","Img","src","imageFolder","alt","get","CampaignContent","DisclaimerMessage","message","urls","Roundup","donationAmount","getRoundupAmountLabel","originalPaymentAmount","getAmountLabel","onDonateButtonClicked","FixedAmounts","selectedAmount","values","target","parseInt","_object_spread_props","_object_spread","Button","classNameModifiers","variant","onClick","disabled","label","defaultProps"],"mappings":"u6CAee,SAASA,EAAkBC,GACtC,MAAMC,SAAEA,EAAQC,mBAAEA,EAAkBC,iBAAEA,EAAgBC,SAAEA,EAAQC,SAAEA,EAAQC,iBAAEA,GAAmB,EAAIC,sBAAEA,GAA0BP,GACzHQ,KAAEA,GAASC,IACXC,EAAWC,KACXC,SAAEA,EAAQC,KAAEA,GAASZ,EACrBa,EAA6B,YAATD,GACnBE,EAAQC,GAAaC,EAA0B,UAC/CC,EAASC,GAAcF,EAAkBH,IACzCM,EAAQC,GAAaJ,EAAyB,CACjDL,WACAU,MAAOR,EAAoBS,EAAiBtB,EAASuB,iBAAkBtB,GAAsB,OAG3FuB,EAAuBC,EAA4B,CACrDV,UAAWA,IAGfW,EAAU,KACN3B,EAAM4B,gBAAgBH,EAAqBI,UAC5C,CAAC7B,EAAM4B,kBAEV,MAQME,EAAe,KACjBd,EAAU,WACVX,EAAS,CAAE0B,KAAM,CAAEX,aAYvB,OAJAO,EAAU,KACN3B,EAAMgC,SAAS,CAAED,KAAM,CAAEX,UAAUF,aACpC,CAACE,EAAQF,IAEG,UAAXH,EAEIkB,EAACC,MAAAA,CAAIC,UAAU,gCACXF,EAACG,EAAAA,CACGD,UAAU,mEACVE,IAAK3B,EAAS,CAAE4B,YAAa,eAAxB5B,CAAyC,SAC9C6B,IAAK/B,EAAKgC,IAAI,2BAElBP,EAACC,MAAAA,CAAIC,UAAU,gCAAgC3B,EAAKgC,IAAI,2BAKrD,YAAXzB,EAEIkB,EAACC,MAAAA,CAAIC,UAAU,gCACXF,EAACG,EAAAA,CACGD,UAAU,qEACVE,IAAK3B,EAAS,CAAE4B,YAAa,eAAxB5B,CAAyC,SAC9C6B,IAAK/B,EAAKgC,IAAI,0BAGlBP,EAACC,MAAAA,CAAIC,UAAU,gCAAgC3B,EAAKgC,IAAI,0BAMhEP,EAACC,MAAAA,CAAIC,UAAU,gCACXF,EAACQ,EAAoBzC,GAErBiC,EAACC,MAAAA,CAAIC,UAAU,wCACV5B,GAAyB0B,EAACS,EAAAA,CAAkBC,QAASnC,EAAKgC,IAAI,0BAA2BI,KAAM,CAACrC,KAChGO,EACGmB,EAACY,EAAAA,CACGC,eAAgBC,EAAsBvC,EAAM,CAAEgB,iBAAkBvB,EAASuB,iBAAkBtB,qBAAoBU,aAC/GoC,sBAAuBC,EAAezC,EAAM,CAAEc,MAAOpB,EAAoBU,aACzEG,OAAQA,EACRmC,sBAAuBpB,IAG3BG,EAACkB,EAAAA,CACGC,eAAgBhC,EAAOE,MACvB+B,OAAQpD,EAASoD,OACjBzC,SAAUA,EACVG,OAAQA,EACRZ,iBApES,EAAGmD,aAC5B,MAAMhC,EAAQiC,SAASD,EAAOhC,MAAO,IACrCH,GAAW,GACXE,EAAWD,GAA4BoC,EAAAC,EAAA,CAAA,EAAKrC,GAAAA,CAAQE,WAEpDnB,EAAiB,CAAE4B,KAAM,CAAEX,OAAQoC,EAAAC,EAAA,CAAA,EAAKrC,GAAAA,CAAQE,cAgEhC4B,sBAAuBpB,IAG9BxB,GACG2B,EAACyB,EAAAA,CACGC,mBAAoB,CAAC,WACrBC,QAAQ,QACRC,QA/DE,KAClB7C,EAAU,SACVZ,EAAS,CAAE2B,KAAM,CAAEX,UAAUF,aA8Db4C,SAAqB,YAAX/C,EACVgD,MAAO,GAAGvD,EAAKgC,IAAI,uBAM3C,CAEAzC,EAAkBiE,aAAe,CAC7B5D,SAAU,OACV4B,SAAU,OACV3B,SAAU,OACVJ,SAAU,CAAA,EACVK,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"FixedAmounts.js","sources":["../../../../../src/components/Donation/components/FixedAmounts.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport ButtonGroup from '../../internal/ButtonGroup';\nimport Button from '../../internal/Button';\nimport { getAmountLabel } from './utils';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { Status } from './types';\n\ninterface FixedAmountsProps {\n selectedAmount: number;\n currency: string;\n values: Array<number>;\n status: Status;\n onAmountSelected: ({ target }) => void;\n onDonateButtonClicked: () => void;\n}\nexport default function FixedAmounts(props: Readonly<FixedAmountsProps>) {\n const { currency, values, selectedAmount, status, onAmountSelected, onDonateButtonClicked } = props;\n const { i18n } = useCoreContext();\n\n return (\n <Fragment>\n <div className=\"adyen-checkout__amounts\">\n <ButtonGroup\n options={values.map(value => ({\n value,\n label: getAmountLabel(i18n, { value, currency }),\n disabled: status === 'loading',\n selected: value === selectedAmount\n }))}\n name=\"amount\"\n onChange={onAmountSelected}\n />\n </div>\n <Button\n classNameModifiers={['donate']}\n onClick={onDonateButtonClicked}\n label={i18n.get('donateButton')}\n disabled={selectedAmount === null}\n status={status}\n />\n </Fragment>\n );\n}\n"],"names":["FixedAmounts","props","currency","values","selectedAmount","status","onAmountSelected","onDonateButtonClicked","i18n","useCoreContext","h","Fragment","div","className","ButtonGroup","options","map","value","label","getAmountLabel","disabled","selected","name","onChange","Button","classNameModifiers","onClick","get"],"mappings":"iTAee,SAASA,EAAaC,GACjC,MAAMC,SAAEA,EAAQC,OAAEA,EAAMC,eAAEA,EAAcC,OAAEA,EAAMC,iBAAEA,EAAgBC,sBAAEA,GAA0BN,GACxFO,KAAEA,GAASC,IAEjB,OACIC,EAACC,OACGD,EAACE,MAAAA,CAAIC,UAAU,2BACXH,EAACI,EAAAA,CACGC,QAASZ,EAAOa,IAAIC,KAChBA,QACAC,MAAOC,EAAeX,EAAM,CAAES,QAAOf,aACrCkB,SAAqB,YAAXf,EACVgB,SAAUJ,IAAUb,KAExBkB,KAAK,SACLC,SAAUjB,KAGlBI,EAACc,EAAAA,CACGC,mBAAoB,CAAC,UACrBC,QAASnB,EACTW,MAAOV,EAAKmB,IAAI,gBAChBP,SAA6B,OAAnBhB,EACVC,OAAQA,IAIxB"}
1
+ {"version":3,"file":"FixedAmounts.js","sources":["../../../../../src/components/Donation/components/FixedAmounts.tsx"],"sourcesContent":["import { h, Fragment } from 'preact';\nimport ButtonGroup from '../../internal/ButtonGroup';\nimport Button from '../../internal/Button';\nimport { getAmountLabel } from './utils';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { UIElementStatus } from '../../types';\n\ninterface FixedAmountsProps {\n selectedAmount: number;\n currency: string;\n values: Array<number>;\n status: UIElementStatus;\n onAmountSelected: ({ target }) => void;\n onDonateButtonClicked: () => void;\n}\nexport default function FixedAmounts(props: Readonly<FixedAmountsProps>) {\n const { currency, values, selectedAmount, status, onAmountSelected, onDonateButtonClicked } = props;\n const { i18n } = useCoreContext();\n\n return (\n <Fragment>\n <div className=\"adyen-checkout__amounts\">\n <ButtonGroup\n options={values.map(value => ({\n value,\n label: getAmountLabel(i18n, { value, currency }),\n disabled: status === 'loading',\n selected: value === selectedAmount\n }))}\n name=\"amount\"\n onChange={onAmountSelected}\n />\n </div>\n <Button\n classNameModifiers={['donate']}\n onClick={onDonateButtonClicked}\n label={i18n.get('donateButton')}\n disabled={selectedAmount === null}\n status={status}\n />\n </Fragment>\n );\n}\n"],"names":["FixedAmounts","props","currency","values","selectedAmount","status","onAmountSelected","onDonateButtonClicked","i18n","useCoreContext","h","Fragment","div","className","ButtonGroup","options","map","value","label","getAmountLabel","disabled","selected","name","onChange","Button","classNameModifiers","onClick","get"],"mappings":"iTAee,SAASA,EAAaC,GACjC,MAAMC,SAAEA,EAAQC,OAAEA,EAAMC,eAAEA,EAAcC,OAAEA,EAAMC,iBAAEA,EAAgBC,sBAAEA,GAA0BN,GACxFO,KAAEA,GAASC,IAEjB,OACIC,EAACC,OACGD,EAACE,MAAAA,CAAIC,UAAU,2BACXH,EAACI,EAAAA,CACGC,QAASZ,EAAOa,IAAIC,KAChBA,QACAC,MAAOC,EAAeX,EAAM,CAAES,QAAOf,aACrCkB,SAAqB,YAAXf,EACVgB,SAAUJ,IAAUb,KAExBkB,KAAK,SACLC,SAAUjB,KAGlBI,EAACc,EAAAA,CACGC,mBAAoB,CAAC,UACrBC,QAASnB,EACTW,MAAOV,EAAKmB,IAAI,gBAChBP,SAA6B,OAAnBhB,EACVC,OAAQA,IAIxB"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import t from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as r}from"../tx-variants.js";import{BasePayPalElement as n}from"./models/BasePayPalElement.js";import{PayPalCreditComponent as o}from"./components/PayPalCreditComponent.js";function i(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t.push.apply(t,r)}return t}(Object(t)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}),e}class s extends n{componentToRender(){const{onShippingAddressChange:r,onShippingOptionsChange:n}=this.props;return this.paypalService?e(o,p(function(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){i(e,t,r[t])})}return e}({setComponentRef:this.setComponentRef,paypalService:this.paypalService},r&&{onShippingAddressChange:this.handleOnShippingAddressChange},n&&{onShippingOptionsChange:this.handleOnShippingOptionsChange}),{commit:this.props.commit,vault:this.props.vault,presentationModeOptions:this.props.presentationModeOptions,onSubmit:this.handleSubmit,onApprove:this.handleOnApprove,onCancel:()=>this.handleError(new t("CANCEL")),onError:e=>this.handleError(new t("ERROR",String(e),{cause:e}))})):null}constructor(...e){super(...e),i(this,"fundingSource","credit")}}i(s,"type",r.paypal_credit);export{s as default};
2
+ //# sourceMappingURL=PayPalCredit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalCredit.js","sources":["../../../../src/components/PayPal/PayPalCredit.tsx"],"sourcesContent":["import { h } from 'preact';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\n\nimport type { PayPalCreditConfiguration, SupportedPayPalFundingSources } from './types';\n\nimport { BasePayPalElement } from './models/BasePayPalElement';\nimport { PayPalCreditComponent } from './components/PayPalCreditComponent';\n\nclass PayPalCreditElement extends BasePayPalElement<PayPalCreditConfiguration> {\n public static readonly type = TxVariants.paypal_credit;\n\n protected override fundingSource: SupportedPayPalFundingSources = 'credit';\n\n protected override componentToRender(): h.JSX.Element | null {\n const { onShippingAddressChange, onShippingOptionsChange } = this.props;\n\n if (!this.paypalService) return null;\n\n return (\n <PayPalCreditComponent\n setComponentRef={this.setComponentRef}\n paypalService={this.paypalService}\n {...(onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChange })}\n {...(onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChange })}\n commit={this.props.commit}\n vault={this.props.vault}\n presentationModeOptions={this.props.presentationModeOptions}\n onSubmit={this.handleSubmit}\n onApprove={this.handleOnApprove}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onError={error => this.handleError(new AdyenCheckoutError('ERROR', String(error), { cause: error }))}\n />\n );\n }\n}\n\nexport default PayPalCreditElement;\n"],"names":["PayPalCreditElement","BasePayPalElement","componentToRender","onShippingAddressChange","onShippingOptionsChange","this","props","paypalService","h","PayPalCreditComponent","setComponentRef","handleOnShippingAddressChange","handleOnShippingOptionsChange","commit","vault","presentationModeOptions","onSubmit","handleSubmit","onApprove","handleOnApprove","onCancel","handleError","AdyenCheckoutError","onError","error","String","cause","super","args","_define_property","fundingSource","type","TxVariants","paypal_credit"],"mappings":"gyBASA,MAAMA,UAA4BC,EAKXC,iBAAAA,GACf,MAAMC,wBAAEA,EAAuBC,wBAAEA,GAA4BC,KAAKC,MAElE,OAAKD,KAAKE,cAGNC,EAACC,EAAAA,oUAAAA,CAAAA,CACGC,gBAAiBL,KAAKK,gBACtBH,cAAeF,KAAKE,eACfJ,GAA2B,CAAEA,wBAAyBE,KAAKM,+BAC3DP,GAA2B,CAAEA,wBAAyBC,KAAKO,gCAA8B,CAC9FC,OAAQR,KAAKC,MAAMO,OACnBC,MAAOT,KAAKC,MAAMQ,MAClBC,wBAAyBV,KAAKC,MAAMS,wBACpCC,SAAUX,KAAKY,aACfC,UAAWb,KAAKc,gBAChBC,SAAU,IAAMf,KAAKgB,YAAY,IAAIC,EAAmB,WACxDC,QAASC,GAASnB,KAAKgB,YAAY,IAAIC,EAAmB,QAASG,OAAOD,GAAQ,CAAEE,MAAOF,QAdnE,IAiBpC,mBAzBJG,SAAAC,GAGIC,OAAmBC,gBAA+C,WAFlED,EADE7B,EACqB+B,OAAOC,EAAWC"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import t from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as n}from"../tx-variants.js";import{BasePayPalElement as r}from"./models/BasePayPalElement.js";import{PayPalPaylaterComponent as o}from"./components/PayPalPaylaterComponent.js";function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}class i extends r{formatData(){const{isExpress:e}=this.props;return{paymentMethod:{type:this.type,subtype:e?"express":i.subtype},browserInfo:this.browserInfo}}get paypalComponents(){return["paypal-payments","paypal-messages"]}componentToRender(){const{onShippingAddressChange:n,onShippingOptionsChange:r}=this.props;return this.paypalService?e(o,p(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){s(e,t,n[t])})}return e}({setComponentRef:this.setComponentRef,paypalService:this.paypalService},n&&{onShippingAddressChange:this.handleOnShippingAddressChange},r&&{onShippingOptionsChange:this.handleOnShippingOptionsChange}),{commit:this.props.commit,presentationModeOptions:this.props.presentationModeOptions,hidePayPalMessaging:this.props.hidePayPalMessaging,messagingContentOptions:this.props.messagingContentOptions,countryCode:this.props.countryCode,onSubmit:this.handleSubmit,onApprove:this.handleOnApprove,onCancel:()=>this.handleError(new t("CANCEL")),onError:e=>this.handleError(new t("ERROR",String(e),{cause:e}))})):null}constructor(...e){super(...e),s(this,"fundingSource","paylater")}}s(i,"type",n.paypal_paylater);export{i as default};
2
+ //# sourceMappingURL=PayPalPaylater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalPaylater.js","sources":["../../../../src/components/PayPal/PayPalPaylater.tsx"],"sourcesContent":["import { h } from 'preact';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\n\nimport type { PayPalPayLaterConfiguration, SupportedPayPalFundingSources } from './types';\n\nimport { BasePayPalElement } from './models/BasePayPalElement';\nimport { PayPalPaylaterComponent } from './components/PayPalPaylaterComponent';\nimport { PayPalComponents } from './paypal-js-types';\n\nclass PayPalPaylaterElement extends BasePayPalElement<PayPalPayLaterConfiguration> {\n public static readonly type = TxVariants.paypal_paylater;\n\n protected override fundingSource: SupportedPayPalFundingSources = 'paylater';\n\n protected formatData() {\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: this.type,\n subtype: isExpress ? 'express' : PayPalPaylaterElement.subtype\n },\n browserInfo: this.browserInfo\n };\n }\n\n protected override get paypalComponents(): PayPalComponents {\n return ['paypal-payments', 'paypal-messages'];\n }\n\n protected override componentToRender(): h.JSX.Element | null {\n const { onShippingAddressChange, onShippingOptionsChange } = this.props;\n\n if (!this.paypalService) return null;\n\n return (\n <PayPalPaylaterComponent\n setComponentRef={this.setComponentRef}\n paypalService={this.paypalService}\n {...(onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChange })}\n {...(onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChange })}\n commit={this.props.commit}\n presentationModeOptions={this.props.presentationModeOptions}\n hidePayPalMessaging={this.props.hidePayPalMessaging}\n messagingContentOptions={this.props.messagingContentOptions}\n countryCode={this.props.countryCode}\n onSubmit={this.handleSubmit}\n onApprove={this.handleOnApprove}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onError={error => this.handleError(new AdyenCheckoutError('ERROR', String(error), { cause: error }))}\n />\n );\n }\n}\n\nexport default PayPalPaylaterElement;\n"],"names":["PayPalPaylaterElement","BasePayPalElement","formatData","isExpress","this","props","paymentMethod","type","subtype","browserInfo","paypalComponents","componentToRender","onShippingAddressChange","onShippingOptionsChange","paypalService","h","PayPalPaylaterComponent","setComponentRef","handleOnShippingAddressChange","handleOnShippingOptionsChange","commit","presentationModeOptions","hidePayPalMessaging","messagingContentOptions","countryCode","onSubmit","handleSubmit","onApprove","handleOnApprove","onCancel","handleError","AdyenCheckoutError","onError","error","String","cause","super","args","_define_property","fundingSource","TxVariants","paypal_paylater"],"mappings":"oyBAUA,MAAMA,UAA8BC,EAKtBC,UAAAA,GACN,MAAMC,UAAEA,GAAcC,KAAKC,MAE3B,MAAO,CACHC,cAAe,CACXC,KAAMH,KAAKG,KACXC,QAASL,EAAY,UAAYH,EAAsBQ,SAE3DC,YAAaL,KAAKK,YAE1B,CAEA,oBAAuBC,GACnB,MAAO,CAAC,kBAAmB,kBAC/B,CAEmBC,iBAAAA,GACf,MAAMC,wBAAEA,EAAuBC,wBAAEA,GAA4BT,KAAKC,MAElE,OAAKD,KAAKU,cAGNC,EAACC,EAAAA,oUAAAA,CAAAA,CACGC,gBAAiBb,KAAKa,gBACtBH,cAAeV,KAAKU,eACfF,GAA2B,CAAEA,wBAAyBR,KAAKc,+BAC3DL,GAA2B,CAAEA,wBAAyBT,KAAKe,gCAA8B,CAC9FC,OAAQhB,KAAKC,MAAMe,OACnBC,wBAAyBjB,KAAKC,MAAMgB,wBACpCC,oBAAqBlB,KAAKC,MAAMiB,oBAChCC,wBAAyBnB,KAAKC,MAAMkB,wBACpCC,YAAapB,KAAKC,MAAMmB,YACxBC,SAAUrB,KAAKsB,aACfC,UAAWvB,KAAKwB,gBAChBC,SAAU,IAAMzB,KAAK0B,YAAY,IAAIC,EAAmB,WACxDC,QAASC,GAAS7B,KAAK0B,YAAY,IAAIC,EAAmB,QAASG,OAAOD,GAAQ,CAAEE,MAAOF,QAhBnE,IAmBpC,mBA3CJG,SAAAC,GAGIC,OAAmBC,gBAA+C,aAFlED,EADEtC,EACqBO,OAAOiC,EAAWC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import n from"./components/PaypalComponent.js";import r from"./defaultProps.js";import i from"../../core/Errors/AdyenCheckoutError.js";import{ERRORS as o}from"./constants.js";import{TxVariants as s}from"../tx-variants.js";import{formatPaypalOrderContactToAdyenFormat as a}from"./utils/format-paypal-order-contact-to-adyen-format.js";import{AnalyticsInfoEvent as p,InfoEventType as l}from"../../core/Analytics/events/AnalyticsInfoEvent.js";import{sanitizeResponse as h,verifyPaymentDidNotFail as d}from"../internal/UIElement/utils.js";import c from"../../core/Errors/CancelError.js";function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},r=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){u(e,t,n[t])})}return e}function y(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function O(e,t){if(null==e)return{};var n,r,i,o={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(n=Reflect.ownKeys(Object(e)),i=0;i<n.length;i++)r=n[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}if(o=function(e,t){if(null==e)return{};var n,r,i={},o=Object.getOwnPropertyNames(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n]);return i}(e,t),Object.getOwnPropertySymbols)for(n=Object.getOwnPropertySymbols(e),i=0;i<n.length;i++)r=n[i],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}class f extends t{formatProps(e){var t,n,r;const i=null===(t=e.configuration)||void 0===t?void 0:t.merchantId,o=null===(n=e.configuration)||void 0===n?void 0:n.intent,s=0===(null===(r=e.amount)||void 0===r?void 0:r.value)?"tokenize":e.intent||o,a="tokenize"===s||e.vault,p="continue"===e.userAction;return y(m({},e),{commit:!p&&e.commit,vault:a,configuration:{intent:s,merchantId:i}})}beforeRender(e){const t=new p(m({type:l.rendered,component:this.type,configData:y(m({},e),{showPayButton:this.props.showPayButton})},(null==e?void 0:e.isExpress)&&{isExpress:e.isExpress},(null==e?void 0:e.expressPage)&&{expressPage:e.expressPage}));this.analytics.sendAnalytics(t)}updatePaymentData(e){e||console.warn("PayPal - Updating payment data with an invalid value"),this.paymentData=e}formatData(){const{isExpress:e,userAction:t}=this.props;return{paymentMethod:{type:f.type,userAction:t,subtype:e?"express":f.subtype}}}get isValid(){return!0}handleResolve(e){if(!this.resolve)return this.handleError(new i("ERROR",o.WRONG_INSTANCE));this.resolve(e)}handleReject(e){if(!this.reject)return this.handleError(new i("ERROR",o.WRONG_INSTANCE));this.reject(new Error(e))}handleSubmit(){return new Promise((e,t)=>{this.resolve=e,this.reject=t,this.makePaymentsCall().then(h).then(d).then(this.handleResponse).catch(e=>{if(e instanceof c)return void this.setElementStatus("ready");this.handleFailedResult(e);const t=e instanceof Error?e.message:JSON.stringify(e),n=e?`: ${t}`:"";this.handleReject(`${o.PAYMENT_FAILED}${n}`)})})}handleOnShippingAddressChange(e,t){const{onShippingAddressChange:n}=this.props;return n?n(e,t,this):Promise.resolve()}handleOnShippingOptionsChange(e,t){const{onShippingOptionsChange:n}=this.props;return n?n(e,t,this):Promise.resolve()}componentToRender(){if(!this.props.showPayButton)return null;const t=this.props,{onShippingAddressChange:r,onShippingOptionsChange:o}=t,s=O(t,["onShippingAddressChange","onShippingOptionsChange"]);return e(n,y(m(y(m({},s),{setComponentRef:this.setComponentRef}),r&&{onShippingAddressChange:this.handleOnShippingAddressChange},o&&{onShippingOptionsChange:this.handleOnShippingOptionsChange}),{onCancel:()=>this.handleError(new i("CANCEL")),onChange:this.setState,onApprove:this.handleOnApprove,onError:e=>{this.handleError(new i("ERROR",String(e),{cause:e}))},onScriptLoadFailure:e=>this.handleError(e),onSubmit:this.handleSubmit}))}constructor(e,t){super(e,t),u(this,"paymentData",null),u(this,"resolve",null),u(this,"reject",null),u(this,"submit",()=>{this.handleError(new i("IMPLEMENTATION_ERROR",o.SUBMIT_NOT_SUPPORTED))}),u(this,"handleAction",e=>this.updateWithAction(e)),u(this,"updateWithAction",e=>{if(e.paymentMethodType!==this.type)throw new Error("Invalid Action");return e.paymentData&&(this.paymentData=e.paymentData),e.sdkData&&e.sdkData.token?(this.onActionHandled({componentType:this.type,actionDescription:"sdk-loaded",originalAction:e}),this.handleResolve(e.sdkData.token)):this.handleReject(o.NO_TOKEN_PROVIDED),null}),u(this,"handleOnApprove",(e,t)=>{var n;const{onAuthorized:r}=this.props,o={data:{details:Object.entries(e).reduce((e,[t,n])=>(e[t]=null!=n?n:void 0,e),{}),paymentData:null!==(n=this.paymentData)&&void 0!==n?n:void 0}};return r?t.order?t.order.get().then(e=>{var t;const n=a(null==e?void 0:e.payer),i=a(null==e||null===(t=e.purchase_units)||void 0===t?void 0:t[0].shipping,!0);return this.setState(m({authorizedEvent:e},n&&{billingAddress:n},i&&{deliveryAddress:i})),new Promise((t,o)=>r(m({authorizedEvent:e},n&&{billingAddress:n},i&&{deliveryAddress:i}),{resolve:t,reject:o}))}).then(()=>this.handleAdditionalDetails(o)).catch(e=>this.handleError(new i("ERROR","Something went wrong while parsing PayPal Order",{cause:e}))):(this.handleError(new i("ERROR","PayPal order actions are not available")),Promise.resolve()):(this.handleAdditionalDetails(o),Promise.resolve())}),this.handleSubmit=this.handleSubmit.bind(this),this.handleOnShippingAddressChange=this.handleOnShippingAddressChange.bind(this),this.handleOnShippingOptionsChange=this.handleOnShippingOptionsChange.bind(this)}}u(f,"type",s.paypal),u(f,"subtype","sdk"),u(f,"defaultProps",r);export{f as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import n from"./components/PaypalComponent.js";import i from"./defaultProps.js";import r from"../../core/Errors/AdyenCheckoutError.js";import{ERRORS as o}from"./constants.js";import{TxVariants as s}from"../tx-variants.js";import{formatPaypalOrderContactToAdyenFormat as a}from"./utils/format-paypal-order-contact-to-adyen-format.js";import{AnalyticsInfoEvent as l,InfoEventType as p}from"../../core/Analytics/events/AnalyticsInfoEvent.js";import{sanitizeResponse as h,verifyPaymentDidNotFail as d}from"../internal/UIElement/utils.js";import u from"../../core/Errors/CancelError.js";import{PayPalSdkLoader as c}from"./services/PayPalSdkLoader.js";import{PayPalService as y}from"./services/PayPalService.js";import{PayPalComponentV6 as v}from"./components/PayPalComponentV6.js";import m from"./services/request-paypal-order-details.js";import{isPayPalServiceConfigEqual as g}from"./utils/is-paypal-service-config-equal.js";import{SUPPORTED_EXPRESS_PRESENTATION_MODE_OPTIONS as P}from"./config.js";import f from"../../utils/browserInfo.js";function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function S(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){O(e,t,n[t])})}return e}function b(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function E(e,t){if(null==e)return{};var n,i,r,o={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(n=Reflect.ownKeys(Object(e)),r=0;r<n.length;r++)i=n[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i]);return o}if(o=function(e,t){if(null==e)return{};var n,i,r={},o=Object.getOwnPropertyNames(e);for(i=0;i<o.length;i++)n=o[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n]);return r}(e,t),Object.getOwnPropertySymbols)for(n=Object.getOwnPropertySymbols(e),r=0;r<n.length;r++)i=n[r],t.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(o[i]=e[i]);return o}class A extends t{initializePayPalV6(){var e;const t=new c({analytics:this.analytics,environment:this.props.environment,nonce:null===(e=this.props.usePayPalV6)||void 0===e?void 0:e.nonce});this.paypalService=new y(S({sdkLoader:t},this.paypalServiceConfig)),this.onPayPalServiceReady(this.paypalService.initialize())}update(e){const t=this.paypalServiceConfig;return this.props=this.formatProps(S({},this.props,e)),this.state={},this.refreshPayPalService(t),this.unmount().mount(this._node)}refreshPayPalService(e){if(!this.paypalService)return;const t=this.paypalServiceConfig;g(e,t)||this.onPayPalServiceReady(this.paypalService.refresh(t))}get paypalServiceConfig(){var e,t,n,i,r;const o=this.props.usePayPalV6,s=["paypal-payments"];return(null==o?void 0:o.blockPayPalVenmoButton)||s.push("venmo-payments"),(null==o?void 0:o.onCreatePayPalMessages)&&s.push("paypal-messages"),{loadingContext:null!==(e=this.props.loadingContext)&&void 0!==e?e:"",clientKey:null!==(t=this.props.clientKey)&&void 0!==t?t:"",merchantId:null!==(n=null===(r=this.props.configuration)||void 0===r?void 0:r.merchantId)&&void 0!==n?n:"",countryCode:null!==(i=this.props.countryCode)&&void 0!==i?i:"",amount:this.props.amount,vault:Boolean(null==o?void 0:o.vault),locale:null==o?void 0:o.locale,pageType:null==o?void 0:o.pageType,environment:this.props.environment,components:s}}onPayPalServiceReady(e){e.then(()=>{var e,t,n;const{onCreatePayPalMessages:i}=null!==(e=this.props.usePayPalV6)&&void 0!==e?e:{};i&&(null===(n=this.paypalService)||void 0===n||null===(t=n.getInstance())||void 0===t?void 0:t.createPayPalMessages)&&i(this.paypalService.getInstance().createPayPalMessages)}).catch(e=>{this.handleError(e instanceof r?e:new r("ERROR","Something went wrong while initializing PayPal",{cause:e}))})}async isAvailable(){if(this.props.usePayPalV6){if(!this.paypalService)throw new r("ERROR","PayPal is not available");if(await this.paypalService.isSdkLoaded(),!this.paypalService.getEligiblePaymentMethods().isEligible("paypal"))throw new r("ERROR","PayPal is not available")}}get sdkDataPaymentMethodConfiguration(){return this.props.usePayPalV6?{supportsPayPalV6:!0}:void 0}formatProps(e){var t,n,i;const r=null===(t=e.configuration)||void 0===t?void 0:t.merchantId,o=null===(n=e.configuration)||void 0===n?void 0:n.intent,s=0===(null===(i=e.amount)||void 0===i?void 0:i.value)?"tokenize":e.intent||o,a="tokenize"===s||e.vault,l="continue"===e.userAction;return b(S({},e),{commit:!l&&e.commit,vault:a,configuration:{intent:s,merchantId:r}})}beforeRender(e){const t=new l(S({type:p.rendered,component:this.type,configData:b(S({},e),{showPayButton:this.props.showPayButton})},(null==e?void 0:e.isExpress)&&{isExpress:e.isExpress},(null==e?void 0:e.expressPage)&&{expressPage:e.expressPage}));this.analytics.sendAnalytics(t)}updatePaymentData(e){e||console.warn("PayPal - Updating payment data with an invalid value"),this.paymentData=e}get browserInfo(){return f()}formatData(){var e;const{isExpress:t,userAction:n,usePayPalV6:i}=this.props,r=0===(null===(e=this.props.amount)||void 0===e?void 0:e.value);return S({paymentMethod:S({type:A.type,subtype:t?"express":A.subtype},!i&&{userAction:n})},i&&{browserInfo:this.browserInfo},i&&(i.vault||r)&&{storePaymentMethod:!0})}get isValid(){return!0}handleOnApprove(e,t){var n;const{onAuthorized:i}=this.props,o={data:{details:Object.entries(e).reduce((e,[t,n])=>(e[t]=null!=n?n:void 0,e),{}),paymentData:null!==(n=this.paymentData)&&void 0!==n?n:void 0}};return i?t.order?t.order.get().then(e=>{var t;const n=a(null==e?void 0:e.payer),r=a(null==e||null===(t=e.purchase_units)||void 0===t?void 0:t[0].shipping,!0);return this.setState(S({authorizedEvent:e},n&&{billingAddress:n},r&&{deliveryAddress:r})),new Promise((t,o)=>i(S({authorizedEvent:e},n&&{billingAddress:n},r&&{deliveryAddress:r}),{resolve:t,reject:o}))}).then(()=>this.handleAdditionalDetails(o)).catch(e=>this.handleError(new r("ERROR","Something went wrong with finalizing the PayPal order",{cause:e}))):(this.handleError(new r("ERROR","PayPal order actions are not available")),Promise.resolve()):(this.handleAdditionalDetails(o),Promise.resolve())}handleOnApproveV6(e){var t,n,i,o,s;const a=null===(o=this.props.usePayPalV6)||void 0===o?void 0:o.onAuthorized;let l;if("orderId"in e){var p;const{orderId:t,payerId:n,fundingSource:i}=e;l={data:{details:{orderID:t,payerID:n,paymentSource:i},paymentData:null!==(p=this.paymentData)&&void 0!==p?p:void 0}}}if("vaultSetupToken"in e){var h;const{vaultSetupToken:t,payerId:n,fundingSource:i}=e;l={data:{details:{vaultToken:t,payerID:n,paymentSource:i},paymentData:null!==(h=this.paymentData)&&void 0!==h?h:void 0}}}return l?a&&"orderId"in e?m(null!==(t=this.props.loadingContext)&&void 0!==t?t:"",{clientKey:null!==(n=this.props.clientKey)&&void 0!==n?n:"",merchantId:null!==(i=null===(s=this.props.configuration)||void 0===s?void 0:s.merchantId)&&void 0!==i?i:"",orderId:e.orderId}).then(e=>(this.setState(S({authorizedEvent:e.payPalOrder},e.billingAddress&&{billingAddress:e.billingAddress},e.deliveryAddress&&{deliveryAddress:e.deliveryAddress},e.shopperName&&{shopperName:e.shopperName})),new Promise((t,n)=>a(S({authorizedEvent:e.payPalOrder},e.billingAddress&&{billingAddress:e.billingAddress},e.deliveryAddress&&{deliveryAddress:e.deliveryAddress},e.shopperName&&{shopperName:e.shopperName}),{resolve:t,reject:n})))).then(()=>this.handleAdditionalDetails(l)).catch(e=>this.handleError(new r("ERROR","Something went wrong with finalizing the PayPal order",{cause:e}))):(this.handleAdditionalDetails(l),Promise.resolve()):(this.handleError(new r("ERROR","Missing `orderId` or `vaultSetupToken` in PayPal approval data")),Promise.resolve())}handleResolve(e){if(!this.resolve)return this.handleError(new r("ERROR",o.WRONG_INSTANCE));this.resolve(e)}handleReject(e){if(!this.reject)return this.handleError(new r("ERROR",o.WRONG_INSTANCE));this.reject(new Error(e))}handleSubmit(){return new Promise((e,t)=>{this.resolve=e,this.reject=t,this.makePaymentsCall().then(h).then(d).then(this.handleResponse).catch(e=>{if(e instanceof u)return void this.setElementStatus("ready");this.handleFailedResult(e);const t=e instanceof Error?e.message:JSON.stringify(e),n=e?`: ${t}`:"";this.handleReject(`${o.PAYMENT_FAILED}${n}`)})})}handleOnShippingAddressChange(e,t){const{onShippingAddressChange:n}=this.props;return n?n(e,t,this):Promise.resolve()}handleOnShippingOptionsChange(e,t){const{onShippingOptionsChange:n}=this.props;return n?n(e,t,this):Promise.resolve()}handleOnShippingAddressChangeV6(e){const{usePayPalV6:t}=this.props;return(null==t?void 0:t.onShippingAddressChange)?t.onShippingAddressChange(e,this):Promise.resolve()}handleOnShippingOptionsChangeV6(e){const{usePayPalV6:t}=this.props;return(null==t?void 0:t.onShippingOptionsChange)?t.onShippingOptionsChange(e,this):Promise.resolve()}componentToRender(){if(this.props.usePayPalV6){const{usePayPalV6:t}=this.props;return this.paypalService?e(v,b(S({setComponentRef:this.setComponentRef,paypalService:this.paypalService},t.onShippingAddressChange&&{onShippingAddressChange:this.handleOnShippingAddressChangeV6},t.onShippingOptionsChange&&{onShippingOptionsChange:this.handleOnShippingOptionsChangeV6}),{style:t.style,commit:t.commit,vault:t.vault,blockPayPalButtonVariants:t.blockPayPalButtonVariants,blockPayPalCreditButton:t.blockPayPalCreditButton,blockPayPalPayLaterButton:t.blockPayPalPayLaterButton,blockPayPalVenmoButton:t.blockPayPalVenmoButton,presentationModeOptions:t.presentationModeOptions,environment:this.props.environment,onSubmit:this.handleSubmit,onApprove:this.handleOnApproveV6,onCancel:()=>this.handleError(new r("CANCEL")),onError:e=>this.handleError(new r("ERROR",String(e),{cause:e}))})):null}if(!this.props.showPayButton)return null;const t=this.props,{onShippingAddressChange:i,onShippingOptionsChange:o}=t,s=E(t,["onShippingAddressChange","onShippingOptionsChange"]);return e(n,b(S(b(S({},s),{setComponentRef:this.setComponentRef}),i&&{onShippingAddressChange:this.handleOnShippingAddressChange},o&&{onShippingOptionsChange:this.handleOnShippingOptionsChange}),{onCancel:()=>this.handleError(new r("CANCEL")),onChange:this.setState,onApprove:this.handleOnApprove,onError:e=>{this.handleError(new r("ERROR",String(e),{cause:e}))},onScriptLoadFailure:e=>this.handleError(e),onSubmit:this.handleSubmit}))}constructor(e,t){if(super(e,t),O(this,"paymentData",null),O(this,"resolve",null),O(this,"reject",null),O(this,"paypalService",void 0),O(this,"submit",()=>{this.handleError(new r("IMPLEMENTATION_ERROR",o.SUBMIT_NOT_SUPPORTED))}),O(this,"handleAction",e=>this.updateWithAction(e)),O(this,"updateWithAction",e=>{var t;if(e.paymentMethodType!==this.type)throw new Error("Invalid Action");return e.paymentData&&(this.paymentData=e.paymentData),(null==e||null===(t=e.sdkData)||void 0===t?void 0:t.token)?(this.onActionHandled({componentType:this.type,actionDescription:"sdk-loaded",originalAction:e}),this.handleResolve(e.sdkData.token)):this.handleReject(o.NO_TOKEN_PROVIDED),null}),this.handleSubmit=this.handleSubmit.bind(this),this.handleOnShippingAddressChange=this.handleOnShippingAddressChange.bind(this),this.handleOnShippingOptionsChange=this.handleOnShippingOptionsChange.bind(this),this.handleOnApprove=this.handleOnApprove.bind(this),this.handleOnShippingAddressChangeV6=this.handleOnShippingAddressChangeV6.bind(this),this.handleOnShippingOptionsChangeV6=this.handleOnShippingOptionsChangeV6.bind(this),this.handleOnApproveV6=this.handleOnApproveV6.bind(this),this.initializePayPalV6=this.initializePayPalV6.bind(this),this.props.usePayPalV6){const{isExpress:e}=this.props,{onShippingAddressChange:t,onShippingOptionsChange:n,presentationModeOptions:i}=this.props.usePayPalV6;if(!e&&(t||n))throw new r("IMPLEMENTATION_ERROR",'PayPal - You must set "isExpress" flag to "true" in order to use "onShippingAddressChange" and/or "onShippingOptionsChange" callbacks');if(e&&(null==i?void 0:i.presentationMode)&&!P.includes(i.presentationMode))throw new r("IMPLEMENTATION_ERROR",`PayPal - Unsupported presentation mode: ${i.presentationMode} for express checkout`);this.initializePayPalV6()}}}O(A,"type",s.paypal),O(A,"subtype","sdk"),O(A,"defaultProps",i);export{A 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 AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { ERRORS } from './constants';\nimport { TxVariants } from '../tx-variants';\nimport { formatPaypalOrderContactToAdyenFormat } from './utils/format-paypal-order-contact-to-adyen-format';\n\nimport type { ICore } from '../../core/types';\nimport type { PaymentAction, PaymentResponseData } from '../../types/global-types';\nimport type { Intent, PayPalConfiguration } from './types';\nimport type {\n PayPalOnApproveActions,\n PayPalOnApproveData,\n PayPalOnShippingAddressChangeActions,\n PayPalOnShippingAddressChangeData,\n PayPalOnShippingOptionsChangeActions,\n PayPalOnShippingOptionsChangeData,\n PayPalOrderResponseBody\n} from './paypal-js-types';\n\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport CancelError from '../../core/Errors/CancelError';\nimport './Paypal.scss';\n\nclass PaypalElement extends UIElement<PayPalConfiguration> {\n public static readonly type = TxVariants.paypal;\n public static readonly subtype = 'sdk';\n\n public paymentData: string | null = null;\n\n private resolve: ((value: string) => void) | null = null;\n private reject: ((error?: Error) => void) | null = null;\n\n protected static readonly defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: PayPalConfiguration) {\n super(checkout, props);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleOnShippingAddressChange = this.handleOnShippingAddressChange.bind(this);\n this.handleOnShippingOptionsChange = this.handleOnShippingOptionsChange.bind(this);\n }\n\n formatProps(props: PayPalConfiguration): PayPalConfiguration {\n const merchantId = props.configuration?.merchantId;\n const intentFromConfig = props.configuration?.intent;\n const isZeroAuth = props.amount?.value === 0;\n const intent: Intent | undefined = isZeroAuth ? 'tokenize' : props.intent || intentFromConfig;\n const vault = intent === 'tokenize' || props.vault;\n\n const displayContinueToReviewPageButton = props.userAction === 'continue';\n\n return {\n ...props,\n commit: displayContinueToReviewPageButton ? false : props.commit,\n vault,\n configuration: {\n intent,\n merchantId\n }\n };\n }\n\n protected override beforeRender(configSetByMerchant?: PayPalConfiguration) {\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.isExpress && { isExpress: configSetByMerchant.isExpress }),\n ...(configSetByMerchant?.expressPage && { expressPage: configSetByMerchant.expressPage })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n public submit = () => {\n this.handleError(new AdyenCheckoutError('IMPLEMENTATION_ERROR', ERRORS.SUBMIT_NOT_SUPPORTED));\n };\n\n /**\n * Updates the paymentData value. It must be used in the PayPal Express flow, when patching the amount\n * @param paymentData - Payment data value\n */\n public updatePaymentData(paymentData: string): void {\n if (!paymentData) console.warn('PayPal - Updating payment data with an invalid value');\n this.paymentData = paymentData;\n }\n\n /**\n * Formats the component data output\n */\n protected formatData() {\n const { isExpress, userAction } = this.props;\n\n return {\n paymentMethod: {\n type: PaypalElement.type,\n userAction,\n subtype: isExpress ? 'express' : PaypalElement.subtype\n }\n };\n }\n\n public handleAction = (action: PaymentAction) => {\n return this.updateWithAction(action);\n };\n\n public updateWithAction = (action: PaymentAction) => {\n if (action.paymentMethodType !== this.type) throw new Error('Invalid Action');\n\n if (action.paymentData) {\n this.paymentData = action.paymentData;\n }\n\n if (action.sdkData && action.sdkData.token) {\n this.onActionHandled({ componentType: this.type, actionDescription: 'sdk-loaded', originalAction: action });\n this.handleResolve(action.sdkData.token);\n } else {\n this.handleReject(ERRORS.NO_TOKEN_PROVIDED);\n }\n\n return null;\n };\n\n /**\n * Dropin Validation\n *\n * @remarks\n * Paypal does not require any specific Dropin validation\n */\n get isValid() {\n return true;\n }\n\n private readonly handleOnApprove = (data: PayPalOnApproveData, actions: PayPalOnApproveActions): Promise<void> => {\n const { onAuthorized } = this.props;\n\n const details = Object.entries(data).reduce<Record<string, string | undefined>>((result, [key, value]) => {\n result[key] = value ?? undefined;\n return result;\n }, {});\n\n const state = { data: { details, paymentData: this.paymentData ?? undefined } };\n\n if (!onAuthorized) {\n this.handleAdditionalDetails(state);\n return Promise.resolve();\n }\n\n if (!actions.order) {\n this.handleError(new AdyenCheckoutError('ERROR', 'PayPal order actions are not available'));\n return Promise.resolve();\n }\n\n return actions.order\n .get()\n .then((paypalOrder: PayPalOrderResponseBody) => {\n const billingAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.payer);\n const deliveryAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.purchase_units?.[0].shipping, true);\n\n this.setState({\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<void>((resolve, reject) =>\n onAuthorized(\n {\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n )\n );\n })\n .then(() => this.handleAdditionalDetails(state))\n .catch(error => this.handleError(new AdyenCheckoutError('ERROR', 'Something went wrong while parsing PayPal Order', { cause: error })));\n };\n\n handleResolve(token: string) {\n if (!this.resolve) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.resolve(token);\n }\n\n handleReject(errorMessage: string) {\n if (!this.reject) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.reject(new Error(errorMessage));\n }\n\n private handleSubmit(): Promise<string> {\n return new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n\n this.makePaymentsCall()\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.handleResponse)\n .catch((e: PaymentResponseData | Error) => {\n if (e instanceof CancelError) {\n this.setElementStatus('ready');\n return;\n }\n this.handleFailedResult(e as PaymentResponseData);\n const errorDetail = e instanceof Error ? e.message : JSON.stringify(e);\n const errorMessage = e ? `: ${errorDetail}` : '';\n this.handleReject(`${ERRORS.PAYMENT_FAILED}${errorMessage}`);\n });\n });\n }\n\n /**\n * If the merchant provides the 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingAddressChange(data: PayPalOnShippingAddressChangeData, actions: PayPalOnShippingAddressChangeActions): Promise<void> {\n const { onShippingAddressChange } = this.props;\n\n if (!onShippingAddressChange) return Promise.resolve();\n\n return onShippingAddressChange(data, actions, this);\n }\n\n /**\n * If the merchant provides the 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingOptionsChange(data: PayPalOnShippingOptionsChangeData, actions: PayPalOnShippingOptionsChangeActions): Promise<void> {\n const { onShippingOptionsChange } = this.props;\n\n if (!onShippingOptionsChange) return Promise.resolve();\n\n return onShippingOptionsChange(data, actions, this);\n }\n\n protected override componentToRender(): h.JSX.Element | null {\n if (!this.props.showPayButton) return null;\n\n const { onShippingAddressChange, onShippingOptionsChange, ...rest } = this.props;\n\n return (\n <PaypalComponent\n {...rest}\n setComponentRef={this.setComponentRef}\n {...(onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChange })}\n {...(onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChange })}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onChange={this.setState}\n onApprove={this.handleOnApprove}\n onError={error => {\n this.handleError(new AdyenCheckoutError('ERROR', String(error), { cause: error }));\n }}\n onScriptLoadFailure={error => this.handleError(error)}\n onSubmit={this.handleSubmit}\n />\n );\n }\n}\n\nexport default PaypalElement;\n"],"names":["PaypalElement","UIElement","formatProps","props","merchantId","configuration","intentFromConfig","intent","amount","value","vault","displayContinueToReviewPageButton","userAction","_object_spread_props","_object_spread","commit","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","type","InfoEventType","rendered","component","this","configData","showPayButton","isExpress","expressPage","analytics","sendAnalytics","updatePaymentData","paymentData","console","warn","formatData","paymentMethod","subtype","isValid","handleResolve","token","resolve","handleError","AdyenCheckoutError","ERRORS","WRONG_INSTANCE","handleReject","errorMessage","reject","Error","handleSubmit","Promise","makePaymentsCall","then","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","catch","e","CancelError","setElementStatus","handleFailedResult","errorDetail","message","JSON","stringify","PAYMENT_FAILED","handleOnShippingAddressChange","data","actions","onShippingAddressChange","handleOnShippingOptionsChange","onShippingOptionsChange","componentToRender","_this_props","rest","h","PaypalComponent","setComponentRef","onCancel","onChange","setState","onApprove","handleOnApprove","onError","error","String","cause","onScriptLoadFailure","onSubmit","constructor","checkout","super","_define_property","submit","SUBMIT_NOT_SUPPORTED","handleAction","action","updateWithAction","paymentMethodType","sdkData","onActionHandled","componentType","actionDescription","originalAction","NO_TOKEN_PROVIDED","_this_paymentData","onAuthorized","state","details","Object","entries","reduce","result","key","undefined","order","get","paypalOrder","billingAddress","formatPaypalOrderContactToAdyenFormat","payer","deliveryAddress","purchase_units","shipping","authorizedEvent","handleAdditionalDetails","bind","TxVariants","paypal","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Paypal.js","sources":["../../../../src/components/PayPal/Paypal.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport PaypalComponent from './components/PaypalComponent';\nimport defaultProps from './defaultProps';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { ERRORS } from './constants';\nimport { TxVariants } from '../tx-variants';\nimport { formatPaypalOrderContactToAdyenFormat } from './utils/format-paypal-order-contact-to-adyen-format';\n\nimport type { AdditionalDetailsData, ICore } from '../../core/types';\nimport type { PaymentAction, PaymentResponseData } from '../../types/global-types';\nimport type { Intent, PayPalConfiguration } from './types';\nimport type {\n PayPalComponents,\n PayPalOnApproveActions,\n PayPalOnApproveData,\n PayPalOnShippingAddressChangeActions,\n PayPalOnShippingAddressChangeData,\n PayPalOnShippingOptionsChangeActions,\n PayPalOnShippingOptionsChangeData,\n PayPalOrderResponseBody,\n PayPalV6OnApproveData,\n PayPalV6OnShippingAddressChangeData,\n PayPalV6OnShippingOptionsChangeData\n} from './paypal-js-types';\nimport type { BaseElementState } from '../internal/BaseElement/types';\nimport type { PayPalServiceRefreshConfig } from './services/PayPalService';\n\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport CancelError from '../../core/Errors/CancelError';\nimport { PayPalSdkLoader } from './services/PayPalSdkLoader';\nimport { PayPalService } from './services/PayPalService';\nimport { PayPalComponentV6 } from './components/PayPalComponentV6';\nimport requestPayPalOrderDetails from './services/request-paypal-order-details';\nimport { isPayPalServiceConfigEqual } from './utils/is-paypal-service-config-equal';\nimport { SUPPORTED_EXPRESS_PRESENTATION_MODE_OPTIONS } from './config';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport './Paypal.scss';\n\nclass PaypalElement extends UIElement<PayPalConfiguration> {\n public static readonly type = TxVariants.paypal;\n public static readonly subtype = 'sdk';\n\n public paymentData: string | null = null;\n\n private resolve: ((value: string) => void) | null = null;\n private reject: ((error?: Error) => void) | null = null;\n\n protected static readonly defaultProps = defaultProps;\n\n private paypalService?: PayPalService;\n\n constructor(checkout: ICore, props?: PayPalConfiguration) {\n super(checkout, props);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleOnShippingAddressChange = this.handleOnShippingAddressChange.bind(this);\n this.handleOnShippingOptionsChange = this.handleOnShippingOptionsChange.bind(this);\n this.handleOnApprove = this.handleOnApprove.bind(this);\n this.handleOnShippingAddressChangeV6 = this.handleOnShippingAddressChangeV6.bind(this);\n this.handleOnShippingOptionsChangeV6 = this.handleOnShippingOptionsChangeV6.bind(this);\n this.handleOnApproveV6 = this.handleOnApproveV6.bind(this);\n this.initializePayPalV6 = this.initializePayPalV6.bind(this);\n\n if (this.props.usePayPalV6) {\n const { isExpress } = this.props;\n const { onShippingAddressChange, onShippingOptionsChange, presentationModeOptions } = this.props.usePayPalV6;\n\n if (!isExpress && (onShippingAddressChange || onShippingOptionsChange)) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'PayPal - You must set \"isExpress\" flag to \"true\" in order to use \"onShippingAddressChange\" and/or \"onShippingOptionsChange\" callbacks'\n );\n }\n\n if (\n isExpress &&\n presentationModeOptions?.presentationMode &&\n !SUPPORTED_EXPRESS_PRESENTATION_MODE_OPTIONS.includes(presentationModeOptions.presentationMode)\n ) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n `PayPal - Unsupported presentation mode: ${presentationModeOptions.presentationMode} for express checkout`\n );\n }\n\n this.initializePayPalV6();\n }\n }\n\n private initializePayPalV6() {\n const sdkLoader = new PayPalSdkLoader({\n analytics: this.analytics,\n environment: this.props.environment,\n nonce: this.props.usePayPalV6?.nonce\n });\n\n this.paypalService = new PayPalService({ sdkLoader, ...this.paypalServiceConfig });\n\n this.onPayPalServiceReady(this.paypalService.initialize());\n }\n\n /**\n * Updates the props, refreshes the PayPal SDK instance and the eligible payment methods if needed, and then\n * re-mounts the element. The refresh is needed because both the SDK instance and the eligible payment methods\n * are derived from props that the merchant can update, like the amount, the country code or the locale.\n *\n * @param props - props to update\n * @returns this - the element instance\n */\n public override update(props: Partial<PayPalConfiguration>): this {\n const previousServiceConfig = this.paypalServiceConfig;\n\n this.props = this.formatProps({ ...this.props, ...props });\n this.state = {} as BaseElementState;\n\n this.refreshPayPalService(previousServiceConfig);\n\n return this.unmount().mount(this._node);\n }\n\n /**\n * Re-creates the PayPal SDK instance and the eligible payment methods, but only if the updated props changed\n * the configuration they are derived from. Any other prop change just re-renders the element.\n *\n * @param previousServiceConfig - The service configuration before the props were updated\n */\n private refreshPayPalService(previousServiceConfig: PayPalServiceRefreshConfig): void {\n if (!this.paypalService) return;\n\n const serviceConfig = this.paypalServiceConfig;\n\n if (isPayPalServiceConfigEqual(previousServiceConfig, serviceConfig)) return;\n\n this.onPayPalServiceReady(this.paypalService.refresh(serviceConfig));\n }\n\n /**\n * Configuration used to create and to refresh the PayPal service. It is kept in a single place to guarantee\n * that the service is always created and refreshed with the same set of props.\n */\n private get paypalServiceConfig(): PayPalServiceRefreshConfig {\n const paypalV6Props = this.props.usePayPalV6;\n\n const components: PayPalComponents = ['paypal-payments'];\n\n if (!paypalV6Props?.blockPayPalVenmoButton) {\n components.push('venmo-payments');\n }\n\n if (paypalV6Props?.onCreatePayPalMessages) {\n components.push('paypal-messages');\n }\n\n return {\n loadingContext: this.props.loadingContext ?? '',\n clientKey: this.props.clientKey ?? '',\n merchantId: this.props.configuration?.merchantId ?? '',\n countryCode: this.props.countryCode ?? '',\n amount: this.props.amount,\n vault: Boolean(paypalV6Props?.vault),\n locale: paypalV6Props?.locale,\n pageType: paypalV6Props?.pageType,\n environment: this.props.environment,\n components\n };\n }\n\n private onPayPalServiceReady(sdkReadyPromise: Promise<void>): void {\n sdkReadyPromise\n .then(() => {\n const { onCreatePayPalMessages } = this.props.usePayPalV6 ?? {};\n\n if (onCreatePayPalMessages && this.paypalService?.getInstance()?.createPayPalMessages) {\n onCreatePayPalMessages(this.paypalService.getInstance().createPayPalMessages);\n }\n })\n .catch(error => {\n this.handleError(\n error instanceof AdyenCheckoutError\n ? error\n : new AdyenCheckoutError('ERROR', 'Something went wrong while initializing PayPal', { cause: error })\n );\n });\n }\n\n public override async isAvailable(): Promise<void> {\n if (this.props.usePayPalV6) {\n if (!this.paypalService) {\n throw new AdyenCheckoutError('ERROR', 'PayPal is not available');\n }\n\n await this.paypalService.isSdkLoaded();\n\n if (!this.paypalService.getEligiblePaymentMethods().isEligible('paypal')) {\n throw new AdyenCheckoutError('ERROR', 'PayPal is not available');\n }\n }\n }\n\n protected override get sdkDataPaymentMethodConfiguration() {\n return this.props.usePayPalV6 ? { supportsPayPalV6: true } : undefined;\n }\n\n formatProps(props: PayPalConfiguration): PayPalConfiguration {\n const merchantId = props.configuration?.merchantId;\n const intentFromConfig = props.configuration?.intent;\n const isZeroAuth = props.amount?.value === 0;\n const intent: Intent | undefined = isZeroAuth ? 'tokenize' : props.intent || intentFromConfig;\n const vault = intent === 'tokenize' || props.vault;\n\n const displayContinueToReviewPageButton = props.userAction === 'continue';\n\n return {\n ...props,\n commit: displayContinueToReviewPageButton ? false : props.commit,\n vault,\n configuration: {\n intent,\n merchantId\n }\n };\n }\n\n protected override beforeRender(configSetByMerchant?: PayPalConfiguration) {\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.isExpress && { isExpress: configSetByMerchant.isExpress }),\n ...(configSetByMerchant?.expressPage && { expressPage: configSetByMerchant.expressPage })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n public submit = () => {\n this.handleError(new AdyenCheckoutError('IMPLEMENTATION_ERROR', ERRORS.SUBMIT_NOT_SUPPORTED));\n };\n\n /**\n * Updates the paymentData value. It must be used in the PayPal Express flow, when patching the amount\n * @param paymentData - Payment data value\n */\n public updatePaymentData(paymentData: string): void {\n if (!paymentData) console.warn('PayPal - Updating payment data with an invalid value');\n this.paymentData = paymentData;\n }\n\n private get browserInfo() {\n return collectBrowserInfo();\n }\n\n /**\n * Formats the component data output\n */\n protected formatData() {\n const { isExpress, userAction, usePayPalV6 } = this.props;\n const isZeroAuth = this.props.amount?.value === 0;\n\n return {\n paymentMethod: {\n type: PaypalElement.type,\n subtype: isExpress ? 'express' : PaypalElement.subtype,\n ...(!usePayPalV6 && { userAction })\n },\n ...(usePayPalV6 && { browserInfo: this.browserInfo }),\n ...(usePayPalV6 && (usePayPalV6.vault || isZeroAuth) && { storePaymentMethod: true })\n };\n }\n\n public handleAction = (action: PaymentAction) => {\n return this.updateWithAction(action);\n };\n\n public updateWithAction = (action: PaymentAction) => {\n if (action.paymentMethodType !== this.type) throw new Error('Invalid Action');\n\n if (action.paymentData) {\n this.paymentData = action.paymentData;\n }\n\n if (action?.sdkData?.token) {\n this.onActionHandled({ componentType: this.type, actionDescription: 'sdk-loaded', originalAction: action });\n this.handleResolve(action.sdkData.token);\n } else {\n this.handleReject(ERRORS.NO_TOKEN_PROVIDED);\n }\n\n return null;\n };\n\n /**\n * Dropin Validation\n *\n * @remarks\n * Paypal does not require any specific Dropin validation\n */\n get isValid() {\n return true;\n }\n\n private handleOnApprove(data: PayPalOnApproveData, actions: PayPalOnApproveActions): Promise<void> {\n const { onAuthorized } = this.props;\n\n const details = Object.entries(data).reduce<Record<string, string | undefined>>((result, [key, value]) => {\n result[key] = value ?? undefined;\n return result;\n }, {});\n\n const state = { data: { details, paymentData: this.paymentData ?? undefined } };\n\n if (!onAuthorized) {\n this.handleAdditionalDetails(state);\n return Promise.resolve();\n }\n\n if (!actions.order) {\n this.handleError(new AdyenCheckoutError('ERROR', 'PayPal order actions are not available'));\n return Promise.resolve();\n }\n\n return actions.order\n .get()\n .then((paypalOrder: PayPalOrderResponseBody) => {\n const billingAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.payer);\n const deliveryAddress = formatPaypalOrderContactToAdyenFormat(paypalOrder?.purchase_units?.[0].shipping, true);\n\n this.setState({\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<void>((resolve, reject) =>\n onAuthorized(\n {\n authorizedEvent: paypalOrder,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n )\n );\n })\n .then(() => this.handleAdditionalDetails(state))\n .catch(error =>\n this.handleError(new AdyenCheckoutError('ERROR', 'Something went wrong with finalizing the PayPal order', { cause: error }))\n );\n }\n\n /**\n * Handles the PayPal SDK v6 'onApprove' event. The shape of the data depends on which session type was started:\n * a one-time payment session returns an 'orderId', whereas a save payment session (zero-auth) returns a\n * 'vaultSetupToken'.\n *\n * @param data - Approve data from the PayPal SDK\n */\n private handleOnApproveV6(data: PayPalV6OnApproveData): Promise<void> {\n const onAuthorized = this.props.usePayPalV6?.onAuthorized;\n\n let state: AdditionalDetailsData | undefined;\n\n // 'orderId' is only present when the shopper approved a one-time payment session, meaning an actual\n // PayPal order was created. The SDK v6 keys are remapped to the casing expected by the /payments/details API.\n if ('orderId' in data) {\n // @ts-expect-error - fundingSource is not in the type but is present in the data\n const { orderId, payerId, fundingSource } = data;\n state = {\n data: {\n details: {\n orderID: orderId,\n payerID: payerId,\n paymentSource: fundingSource\n },\n paymentData: this.paymentData ?? undefined\n }\n };\n }\n\n // 'vaultSetupToken' is only present when the shopper approved a save payment session (zero-auth\n // tokenization). No PayPal order exists in this flow, so the vault token is sent instead of an order id.\n if ('vaultSetupToken' in data) {\n // @ts-expect-error - fundingSource is not in the type but is present in the data\n const { vaultSetupToken, payerId, fundingSource } = data;\n state = {\n data: {\n details: {\n vaultToken: vaultSetupToken,\n payerID: payerId,\n paymentSource: fundingSource\n },\n paymentData: this.paymentData ?? undefined\n }\n };\n }\n\n if (!state) {\n this.handleError(new AdyenCheckoutError('ERROR', 'Missing `orderId` or `vaultSetupToken` in PayPal approval data'));\n return Promise.resolve();\n }\n\n // The order details can only be fetched for a one-time payment session, since the save payment session\n // does not create a PayPal order. Therefore 'onAuthorized' is skipped in the zero-auth flow.\n if (!onAuthorized || !('orderId' in data)) {\n this.handleAdditionalDetails(state);\n return Promise.resolve();\n }\n\n return requestPayPalOrderDetails(this.props.loadingContext ?? '', {\n clientKey: this.props.clientKey ?? '',\n merchantId: this.props.configuration?.merchantId ?? '',\n orderId: data.orderId\n })\n .then(res => {\n this.setState({\n authorizedEvent: res.payPalOrder,\n ...(res.billingAddress && { billingAddress: res.billingAddress }),\n ...(res.deliveryAddress && { deliveryAddress: res.deliveryAddress }),\n ...(res.shopperName && { shopperName: res.shopperName })\n });\n\n return new Promise<void>((resolve, reject) =>\n onAuthorized(\n {\n authorizedEvent: res.payPalOrder,\n ...(res.billingAddress && { billingAddress: res.billingAddress }),\n ...(res.deliveryAddress && { deliveryAddress: res.deliveryAddress }),\n ...(res.shopperName && { shopperName: res.shopperName })\n },\n { resolve, reject }\n )\n );\n })\n .then(() => this.handleAdditionalDetails(state))\n .catch(error =>\n this.handleError(new AdyenCheckoutError('ERROR', 'Something went wrong with finalizing the PayPal order', { cause: error }))\n );\n }\n\n handleResolve(token: string) {\n if (!this.resolve) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.resolve(token);\n }\n\n handleReject(errorMessage: string) {\n if (!this.reject) return this.handleError(new AdyenCheckoutError('ERROR', ERRORS.WRONG_INSTANCE));\n this.reject(new Error(errorMessage));\n }\n\n private handleSubmit(): Promise<string> {\n return new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n\n this.makePaymentsCall()\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then(this.handleResponse)\n .catch((e: PaymentResponseData | Error) => {\n if (e instanceof CancelError) {\n this.setElementStatus('ready');\n return;\n }\n this.handleFailedResult(e as PaymentResponseData);\n const errorDetail = e instanceof Error ? e.message : JSON.stringify(e);\n const errorMessage = e ? `: ${errorDetail}` : '';\n this.handleReject(`${ERRORS.PAYMENT_FAILED}${errorMessage}`);\n });\n });\n }\n\n /**\n * If the merchant provides the 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingAddressChange(data: PayPalOnShippingAddressChangeData, actions: PayPalOnShippingAddressChangeActions): Promise<void> {\n const { onShippingAddressChange } = this.props;\n\n if (!onShippingAddressChange) return Promise.resolve();\n\n return onShippingAddressChange(data, actions, this);\n }\n\n /**\n * If the merchant provides the 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - PayPal data\n * @param actions - PayPal actions.\n */\n private handleOnShippingOptionsChange(data: PayPalOnShippingOptionsChangeData, actions: PayPalOnShippingOptionsChangeActions): Promise<void> {\n const { onShippingOptionsChange } = this.props;\n\n if (!onShippingOptionsChange) return Promise.resolve();\n\n return onShippingOptionsChange(data, actions, this);\n }\n\n /**\n * If the merchant provides the 'usePayPalV6' prop with an 'onShippingAddressChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - The shipping address change data\n */\n private handleOnShippingAddressChangeV6(data: PayPalV6OnShippingAddressChangeData): Promise<void> {\n const { usePayPalV6 } = this.props;\n\n if (!usePayPalV6?.onShippingAddressChange) return Promise.resolve();\n\n return usePayPalV6.onShippingAddressChange(data, this);\n }\n\n /**\n * If the merchant provides the 'usePayPalV6' prop with an 'onShippingOptionsChange' callback, then this method is used as a wrapper to it, in order\n * to expose to the merchant the 'component' instance. The merchant needs the 'component' in order to manipulate the\n * paymentData\n *\n * @param data - The shipping options change data\n */\n private handleOnShippingOptionsChangeV6(data: PayPalV6OnShippingOptionsChangeData): Promise<void> {\n const { usePayPalV6 } = this.props;\n\n if (!usePayPalV6?.onShippingOptionsChange) return Promise.resolve();\n\n return usePayPalV6.onShippingOptionsChange(data, this);\n }\n\n protected override componentToRender(): h.JSX.Element | null {\n if (this.props.usePayPalV6) {\n const { usePayPalV6: paypalv6Props } = this.props;\n\n if (!this.paypalService) return null;\n\n return (\n <PayPalComponentV6\n setComponentRef={this.setComponentRef}\n paypalService={this.paypalService}\n {...(paypalv6Props.onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChangeV6 })}\n {...(paypalv6Props.onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChangeV6 })}\n style={paypalv6Props.style}\n commit={paypalv6Props.commit}\n vault={paypalv6Props.vault}\n blockPayPalButtonVariants={paypalv6Props.blockPayPalButtonVariants}\n blockPayPalCreditButton={paypalv6Props.blockPayPalCreditButton}\n blockPayPalPayLaterButton={paypalv6Props.blockPayPalPayLaterButton}\n blockPayPalVenmoButton={paypalv6Props.blockPayPalVenmoButton}\n presentationModeOptions={paypalv6Props.presentationModeOptions}\n environment={this.props.environment}\n onSubmit={this.handleSubmit}\n onApprove={this.handleOnApproveV6}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onError={error => this.handleError(new AdyenCheckoutError('ERROR', String(error), { cause: error }))}\n />\n );\n }\n\n // TODO: remove this check in adyen-web v7 as the PayPal buttons do not support custom pay buttons\n if (!this.props.showPayButton) return null;\n\n const { onShippingAddressChange, onShippingOptionsChange, ...rest } = this.props;\n\n return (\n <PaypalComponent\n {...rest}\n setComponentRef={this.setComponentRef}\n {...(onShippingAddressChange && { onShippingAddressChange: this.handleOnShippingAddressChange })}\n {...(onShippingOptionsChange && { onShippingOptionsChange: this.handleOnShippingOptionsChange })}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onChange={this.setState}\n onApprove={this.handleOnApprove}\n onError={error => {\n this.handleError(new AdyenCheckoutError('ERROR', String(error), { cause: error }));\n }}\n onScriptLoadFailure={error => this.handleError(error)}\n onSubmit={this.handleSubmit}\n />\n );\n }\n}\n\nexport default PaypalElement;\n"],"names":["PaypalElement","UIElement","initializePayPalV6","_this_props_usePayPalV6","sdkLoader","PayPalSdkLoader","analytics","this","environment","props","nonce","usePayPalV6","paypalService","PayPalService","_object_spread","paypalServiceConfig","onPayPalServiceReady","initialize","update","previousServiceConfig","formatProps","state","refreshPayPalService","unmount","mount","_node","serviceConfig","isPayPalServiceConfigEqual","refresh","_this_props_loadingContext","_this_props_clientKey","_ref","_this_props_countryCode","_this_props_configuration","paypalV6Props","components","blockPayPalVenmoButton","push","onCreatePayPalMessages","loadingContext","clientKey","merchantId","configuration","countryCode","amount","vault","Boolean","locale","pageType","sdkReadyPromise","then","_this_paypalService_getInstance","_this_paypalService","getInstance","createPayPalMessages","catch","error","handleError","AdyenCheckoutError","cause","isAvailable","isSdkLoaded","getEligiblePaymentMethods","isEligible","sdkDataPaymentMethodConfiguration","supportsPayPalV6","undefined","intentFromConfig","intent","value","displayContinueToReviewPageButton","userAction","_object_spread_props","commit","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","type","InfoEventType","rendered","component","configData","showPayButton","isExpress","expressPage","sendAnalytics","updatePaymentData","paymentData","console","warn","browserInfo","collectBrowserInfo","formatData","_this_props_amount","isZeroAuth","paymentMethod","subtype","storePaymentMethod","isValid","handleOnApprove","data","actions","_this_paymentData","onAuthorized","details","Object","entries","reduce","result","key","order","get","paypalOrder","billingAddress","formatPaypalOrderContactToAdyenFormat","payer","deliveryAddress","purchase_units","shipping","setState","authorizedEvent","Promise","resolve","reject","handleAdditionalDetails","handleOnApproveV6","orderId","payerId","fundingSource","orderID","payerID","paymentSource","_this_paymentData1","vaultSetupToken","vaultToken","requestPayPalOrderDetails","res","payPalOrder","shopperName","handleResolve","token","ERRORS","WRONG_INSTANCE","handleReject","errorMessage","Error","handleSubmit","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","e","CancelError","setElementStatus","handleFailedResult","errorDetail","message","JSON","stringify","PAYMENT_FAILED","handleOnShippingAddressChange","onShippingAddressChange","handleOnShippingOptionsChange","onShippingOptionsChange","handleOnShippingAddressChangeV6","handleOnShippingOptionsChangeV6","componentToRender","paypalv6Props","h","PayPalComponentV6","setComponentRef","style","blockPayPalButtonVariants","blockPayPalCreditButton","blockPayPalPayLaterButton","presentationModeOptions","onSubmit","onApprove","onCancel","onError","String","_this_props","rest","PaypalComponent","onChange","onScriptLoadFailure","constructor","checkout","super","_define_property","submit","SUBMIT_NOT_SUPPORTED","handleAction","action","updateWithAction","paymentMethodType","sdkData","onActionHandled","componentType","actionDescription","originalAction","NO_TOKEN_PROVIDED","bind","presentationMode","SUPPORTED_EXPRESS_PRESENTATION_MODE_OPTIONS","includes","TxVariants","paypal","defaultProps"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import t from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as n}from"../tx-variants.js";import{BasePayPalElement as o}from"./models/BasePayPalElement.js";import{VenmoComponent as r}from"./components/VenmoComponent.js";function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class p extends o{get paypalComponents(){return["venmo-payments"]}componentToRender(){return this.paypalService?e(r,{setComponentRef:this.setComponentRef,paypalService:this.paypalService,commit:this.props.commit,vault:this.props.vault,presentationModeOptions:this.props.presentationModeOptions,environment:this.props.environment,onSubmit:this.handleSubmit,onApprove:this.handleOnApprove,onCancel:()=>this.handleError(new t("CANCEL")),onError:e=>this.handleError(new t("ERROR",String(e),{cause:e}))}):null}constructor(...e){super(...e),s(this,"fundingSource","venmo")}}s(p,"type",n.venmo);export{p as default};
2
+ //# sourceMappingURL=Venmo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Venmo.js","sources":["../../../../src/components/PayPal/Venmo.tsx"],"sourcesContent":["import { h } from 'preact';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\n\nimport type { SupportedPayPalFundingSources, VenmoConfiguration } from './types';\n\nimport { BasePayPalElement } from './models/BasePayPalElement';\nimport { VenmoComponent } from './components/VenmoComponent';\nimport { PayPalComponents } from './paypal-js-types';\n\nclass VenmoElement extends BasePayPalElement<VenmoConfiguration> {\n public static readonly type = TxVariants.venmo;\n\n protected override fundingSource: SupportedPayPalFundingSources = 'venmo';\n\n protected override get paypalComponents(): PayPalComponents {\n return ['venmo-payments'];\n }\n\n protected override componentToRender(): h.JSX.Element | null {\n if (!this.paypalService) return null;\n\n return (\n <VenmoComponent\n setComponentRef={this.setComponentRef}\n paypalService={this.paypalService}\n commit={this.props.commit}\n vault={this.props.vault}\n presentationModeOptions={this.props.presentationModeOptions}\n environment={this.props.environment}\n onSubmit={this.handleSubmit}\n onApprove={this.handleOnApprove}\n onCancel={() => this.handleError(new AdyenCheckoutError('CANCEL'))}\n onError={error => this.handleError(new AdyenCheckoutError('ERROR', String(error), { cause: error }))}\n />\n );\n }\n}\n\nexport default VenmoElement;\n"],"names":["VenmoElement","BasePayPalElement","paypalComponents","componentToRender","this","paypalService","h","VenmoComponent","setComponentRef","commit","props","vault","presentationModeOptions","environment","onSubmit","handleSubmit","onApprove","handleOnApprove","onCancel","handleError","AdyenCheckoutError","onError","error","String","cause","super","args","_define_property","fundingSource","type","TxVariants","venmo"],"mappings":"qaAUA,MAAMA,UAAqBC,EAKvB,oBAAuBC,GACnB,MAAO,CAAC,iBACZ,CAEmBC,iBAAAA,GACf,OAAKC,KAAKC,cAGNC,EAACC,EAAAA,CACGC,gBAAiBJ,KAAKI,gBACtBH,cAAeD,KAAKC,cACpBI,OAAQL,KAAKM,MAAMD,OACnBE,MAAOP,KAAKM,MAAMC,MAClBC,wBAAyBR,KAAKM,MAAME,wBACpCC,YAAaT,KAAKM,MAAMG,YACxBC,SAAUV,KAAKW,aACfC,UAAWZ,KAAKa,gBAChBC,SAAU,IAAMd,KAAKe,YAAY,IAAIC,EAAmB,WACxDC,QAASC,GAASlB,KAAKe,YAAY,IAAIC,EAAmB,QAASG,OAAOD,GAAQ,CAAEE,MAAOF,OAbnE,IAgBpC,mBA1BJG,SAAAC,GAGIC,OAAmBC,gBAA+C,UAFlED,EADE3B,EACqB6B,OAAOC,EAAWC"}
@@ -0,0 +1,2 @@
1
+ import{createElement as o}from"../../../external/preact/dist/preact.js";import{useMemo as e}from"../../../external/preact/hooks/dist/hooks.js";import{usePayPalSessionOptions as n}from"../hooks/usePayPalSessionOptions.js";import{useAmount as s}from"../../../core/Context/AmountProvider.js";import{usePayPalOneTimeSession as t}from"../hooks/usePayPalOneTimeSession.js";import{usePayPalSaveSession as i}from"../hooks/usePayPalSaveSession.js";import{usePayPalButtonEligibility as a}from"../hooks/usePayPalButtonEligibility.js";const r=({paypalService:r,commit:p,vault:l,style:m,presentationModeOptions:c,onApprove:S,onShippingAddressChange:u,onShippingOptionsChange:y,onCancel:h,onError:P,onSubmit:d})=>{const g=e(()=>r.getInstance(),[r]),{isZeroAuth:O}=s(),{oneTimeSessionOptions:k,saveSessionOptions:v}=n({commit:p,vault:l,onApprove:S,onShippingAddressChange:u,onShippingOptionsChange:y,onCancel:h,onError:P}),{onClick:C}=t(e(()=>({presentationModeOptions:c,createSession:()=>g.createPayPalOneTimePaymentSession(k),onSubmit:d,onError:P}),[g,k,d,P,c])),{onClick:b}=i(e(()=>({presentationModeOptions:c,createSession:()=>g.createPayPalSavePaymentSession(v),onSubmit:d,onError:P}),[g,v,d,P,c])),{isEligible:f}=a(r,"paypal");return f?o("paypal-button",{onclick:O?b:C,type:m.type,class:m.class,"data-testid":"paypal-button"}):null};export{r as PayPalButton};
2
+ //# sourceMappingURL=PayPalButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalButton.js","sources":["../../../../../src/components/PayPal/components/PayPalButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useMemo } from 'preact/hooks';\n\nimport type { PayPalButtonStyle, PayPalComponentV6Props } from './types';\nimport { usePayPalSessionOptions } from '../hooks/usePayPalSessionOptions';\nimport { useAmount } from '../../../core/Context/AmountProvider';\nimport { usePayPalOneTimeSession } from '../hooks/usePayPalOneTimeSession';\nimport { usePayPalSaveSession } from '../hooks/usePayPalSaveSession';\nimport { usePayPalButtonEligibility } from '../hooks/usePayPalButtonEligibility';\n\nexport const PayPalButton = ({\n paypalService,\n commit,\n vault,\n style,\n presentationModeOptions,\n onApprove,\n onShippingAddressChange,\n onShippingOptionsChange,\n onCancel,\n onError,\n onSubmit\n}: Readonly<\n Omit<PayPalComponentV6Props, 'style' | 'setComponentRef'> & {\n style: PayPalButtonStyle;\n }\n>) => {\n const payPalSDKInstance = useMemo(() => paypalService.getInstance(), [paypalService]);\n\n const { isZeroAuth } = useAmount();\n\n const { oneTimeSessionOptions, saveSessionOptions } = usePayPalSessionOptions({\n paypalService,\n commit,\n vault,\n onApprove,\n onShippingAddressChange,\n onShippingOptionsChange,\n onCancel,\n onError\n });\n\n const { onClick: oneTimePaymentClick } = usePayPalOneTimeSession(\n useMemo(\n () => ({\n presentationModeOptions,\n createSession: () => payPalSDKInstance.createPayPalOneTimePaymentSession(oneTimeSessionOptions),\n onSubmit,\n onError\n }),\n [payPalSDKInstance, oneTimeSessionOptions, onSubmit, onError, presentationModeOptions]\n )\n );\n\n const { onClick: savePaymentClick } = usePayPalSaveSession(\n useMemo(\n () => ({\n presentationModeOptions,\n createSession: () => payPalSDKInstance.createPayPalSavePaymentSession(saveSessionOptions),\n onSubmit,\n onError\n }),\n [payPalSDKInstance, saveSessionOptions, onSubmit, onError, presentationModeOptions]\n )\n );\n\n const { isEligible } = usePayPalButtonEligibility(paypalService, 'paypal');\n\n if (!isEligible) {\n return null;\n }\n\n return (\n <paypal-button\n onclick={isZeroAuth ? savePaymentClick : oneTimePaymentClick}\n type={style.type}\n class={style.class}\n data-testid=\"paypal-button\"\n />\n );\n};\n"],"names":["PayPalButton","paypalService","commit","vault","style","presentationModeOptions","onApprove","onShippingAddressChange","onShippingOptionsChange","onCancel","onError","onSubmit","payPalSDKInstance","useMemo","getInstance","isZeroAuth","useAmount","oneTimeSessionOptions","saveSessionOptions","usePayPalSessionOptions","onClick","oneTimePaymentClick","usePayPalOneTimeSession","createSession","createPayPalOneTimePaymentSession","savePaymentClick","usePayPalSaveSession","createPayPalSavePaymentSession","isEligible","usePayPalButtonEligibility","h","paypal-button","onclick","type","class","data-testid"],"mappings":"2gBAUO,MAAMA,EAAe,EACxBC,gBACAC,SACAC,QACAC,QACAC,0BACAC,YACAC,0BACAC,0BACAC,WACAC,UACAC,eAMA,MAAMC,EAAoBC,EAAQ,IAAMZ,EAAca,cAAe,CAACb,KAEhEc,WAAEA,GAAeC,KAEjBC,sBAAEA,EAAqBC,mBAAEA,GAAuBC,EAAwB,CAE1EjB,SACAC,QACAG,YACAC,0BACAC,0BACAC,WACAC,aAGIU,QAASC,GAAwBC,EACrCT,EACI,KAAA,CACIR,0BACAkB,cAAe,IAAMX,EAAkBY,kCAAkCP,GACzEN,WACAD,YAEJ,CAACE,EAAmBK,EAAuBN,EAAUD,EAASL,MAI9De,QAASK,GAAqBC,EAClCb,EACI,KAAA,CACIR,0BACAkB,cAAe,IAAMX,EAAkBe,+BAA+BT,GACtEP,WACAD,YAEJ,CAACE,EAAmBM,EAAoBP,EAAUD,EAASL,MAI7DuB,WAAEA,GAAeC,EAA2B5B,EAAe,UAEjE,OAAK2B,EAKDE,EAACC,gBAAAA,CACGC,QAASjB,EAAaU,EAAmBJ,EACzCY,KAAM7B,EAAM6B,KACZC,MAAO9B,EAAM8B,MACbC,cAAY,kBART"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e,Fragment as t}from"../../../external/preact/dist/preact.js";import{useMemo as n}from"../../../external/preact/hooks/dist/hooks.js";import{usePayPalStatus as o}from"../hooks/usePayPalStatus.js";import{PayPalButton as r}from"./PayPalButton.js";import{PayPalCreditButton as a}from"./PayPalCreditButton.js";import{PayPalPayLaterButton as p}from"./PayPalPayLaterButton.js";import{PayPalProcessingSpinner as i}from"./PayPalProcessingSpinner.js";import{PayPalSpinner as s}from"./PayPalSpinner.js";import{VenmoButton as l}from"./VenmoButton.js";import c from"./PayPalComponentV6.module.scss.js";function m(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){m(e,t,n[t])})}return e}function y(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}const P=({paypalService:m,style:P={},commit:g=!0,vault:f,blockPayPalButtonVariants:O,blockPayPalCreditButton:b,blockPayPalPayLaterButton:d,blockPayPalVenmoButton:h,presentationModeOptions:j,onSubmit:v,onApprove:S,onShippingAddressChange:C,onShippingOptionsChange:w,onCancel:k,onError:A,setComponentRef:B,environment:E})=>{var D,V;const{status:x,handleOnApprove:M}=o({paypalService:m,onApprove:S,setComponentRef:B}),R=n(()=>({paypalService:m,presentationModeOptions:j,commit:g,onSubmit:v,onApprove:M,onError:A,onCancel:k}),[m,v,M,A,C,w,k,g]);return"pending"===x?e(s,null):"processing"===x?e(i,{withoutReviewPage:g}):e("div",{className:c.payPalComponent,"data-testid":"paypal-component"},e(r,y(u({},R),{style:null!==(D=P.paypal)&&void 0!==D?D:{},vault:f,onShippingAddressChange:C,onShippingOptionsChange:w})),!O&&e(t,null,!d&&e(p,y(u({},R),{onShippingAddressChange:C,onShippingOptionsChange:w})),!b&&e(a,y(u({},R),{vault:f,onShippingAddressChange:C,onShippingOptionsChange:w})),!h&&e(l,y(u({},R),{style:null!==(V=P.venmo)&&void 0!==V?V:{},vault:f,environment:E}))))};export{P as PayPalComponentV6};
2
+ //# sourceMappingURL=PayPalComponentV6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalComponentV6.js","sources":["../../../../../src/components/PayPal/components/PayPalComponentV6.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useMemo } from 'preact/hooks';\n\nimport { usePayPalStatus } from '../hooks/usePayPalStatus';\nimport { PayPalButton } from './PayPalButton';\nimport { PayPalCreditButton } from './PayPalCreditButton';\nimport { PayPalPayLaterButton } from './PayPalPayLaterButton';\nimport { PayPalProcessingSpinner } from './PayPalProcessingSpinner';\nimport { PayPalSpinner } from './PayPalSpinner';\nimport { PayPalComponentV6Props } from './types';\nimport { VenmoButton } from './VenmoButton';\n\nimport styles from './PayPalComponentV6.module.scss';\n\nconst PayPalComponentV6 = ({\n paypalService,\n style = {},\n commit = true,\n vault,\n blockPayPalButtonVariants,\n blockPayPalCreditButton,\n blockPayPalPayLaterButton,\n blockPayPalVenmoButton,\n presentationModeOptions,\n onSubmit,\n onApprove,\n onShippingAddressChange,\n onShippingOptionsChange,\n onCancel,\n onError,\n setComponentRef,\n environment\n}: Readonly<PayPalComponentV6Props>) => {\n const { status, handleOnApprove } = usePayPalStatus({\n paypalService,\n onApprove,\n setComponentRef\n });\n\n const commonProps = useMemo(\n () => ({\n paypalService,\n presentationModeOptions,\n commit,\n onSubmit,\n onApprove: handleOnApprove,\n onError,\n onCancel\n }),\n [paypalService, onSubmit, handleOnApprove, onError, onShippingAddressChange, onShippingOptionsChange, onCancel, commit]\n );\n\n if (status === 'pending') {\n return <PayPalSpinner />;\n }\n\n if (status === 'processing') {\n return <PayPalProcessingSpinner withoutReviewPage={commit} />;\n }\n\n return (\n <div className={styles.payPalComponent} data-testid=\"paypal-component\">\n <PayPalButton\n {...commonProps}\n style={style.paypal ?? {}}\n vault={vault}\n onShippingAddressChange={onShippingAddressChange}\n onShippingOptionsChange={onShippingOptionsChange}\n />\n {!blockPayPalButtonVariants && (\n <Fragment>\n {!blockPayPalPayLaterButton && (\n <PayPalPayLaterButton\n {...commonProps}\n onShippingAddressChange={onShippingAddressChange}\n onShippingOptionsChange={onShippingOptionsChange}\n />\n )}\n {!blockPayPalCreditButton && (\n <PayPalCreditButton\n {...commonProps}\n vault={vault}\n onShippingAddressChange={onShippingAddressChange}\n onShippingOptionsChange={onShippingOptionsChange}\n />\n )}\n {!blockPayPalVenmoButton && <VenmoButton {...commonProps} style={style.venmo ?? {}} vault={vault} environment={environment} />}\n </Fragment>\n )}\n </div>\n );\n};\n\nexport { PayPalComponentV6 };\n"],"names":["PayPalComponentV6","paypalService","style","commit","vault","blockPayPalButtonVariants","blockPayPalCreditButton","blockPayPalPayLaterButton","blockPayPalVenmoButton","presentationModeOptions","onSubmit","onApprove","onShippingAddressChange","onShippingOptionsChange","onCancel","onError","setComponentRef","environment","status","handleOnApprove","usePayPalStatus","commonProps","useMemo","h","PayPalSpinner","PayPalProcessingSpinner","withoutReviewPage","div","className","styles","payPalComponent","data-testid","PayPalButton","paypal","Fragment","PayPalPayLaterButton","PayPalCreditButton","VenmoButton","venmo"],"mappings":"84CAcA,MAAMA,EAAoB,EACtBC,gBACAC,QAAQ,CAAA,EACRC,UAAS,EACTC,QACAC,4BACAC,0BACAC,4BACAC,yBACAC,0BACAC,WACAC,YACAC,0BACAC,0BACAC,WACAC,UACAC,kBACAC,sBAiCmBf,EAsB8DA,EArDjF,MAAMgB,OAAEA,EAAMC,gBAAEA,GAAoBC,EAAgB,CAChDnB,gBACAU,YACAK,oBAGEK,EAAcC,EAChB,KAAA,CACIrB,gBACAQ,0BACAN,SACAO,WACAC,UAAWQ,EACXJ,UACAD,aAEJ,CAACb,EAAeS,EAAUS,EAAiBJ,EAASH,EAAyBC,EAAyBC,EAAUX,IAGpH,MAAe,YAAXe,EACOK,EAACC,EAAAA,MAGG,eAAXN,EACOK,EAACE,EAAAA,CAAwBC,kBAAmBvB,IAInDoB,EAACI,MAAAA,CAAIC,UAAWC,EAAOC,gBAAiBC,cAAY,oBAChDR,EAACS,EAAAA,EAAAA,EAAAA,CAAAA,EACOX,GAAAA,CACJnB,MAAmB,QAAZA,EAAAA,EAAM+B,kBAAN/B,EAAAA,EAAgB,CAAA,EACvBE,MAAOA,EACPQ,wBAAyBA,EACzBC,wBAAyBA,MAE3BR,GACEkB,EAACW,EAAAA,MACK3B,GACEgB,EAACY,EAAAA,EAAAA,EAAAA,CAAAA,EACOd,GAAAA,CACJT,wBAAyBA,EACzBC,wBAAyBA,MAG/BP,GACEiB,EAACa,EAAAA,EAAAA,EAAAA,GACOf,GAAAA,CACJjB,MAAOA,EACPQ,wBAAyBA,EACzBC,wBAAyBA,MAG/BL,GAA0Be,EAACc,EAAAA,EAAAA,EAAAA,GAAgBhB,GAAAA,CAAanB,MAAkB,QAAXA,EAAAA,EAAMoC,iBAANpC,EAAAA,EAAe,CAAA,EAAIE,MAAOA,EAAOa,YAAaA"}
@@ -0,0 +1,2 @@
1
+ var a={payPalComponent:"PayPalComponentV6-module_payPalComponent__c64KU"};export{a as default};
2
+ //# sourceMappingURL=PayPalComponentV6.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalComponentV6.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useState as o,useMemo as t,useEffect as n}from"../../../external/preact/hooks/dist/hooks.js";import{usePayPalSessionOptions as i}from"../hooks/usePayPalSessionOptions.js";import{usePayPalOneTimeSession as s}from"../hooks/usePayPalOneTimeSession.js";import{usePayPalButtonEligibility as r}from"../hooks/usePayPalButtonEligibility.js";import{usePayPalSaveSession as a}from"../hooks/usePayPalSaveSession.js";import{useAmount as p}from"../../../core/Context/AmountProvider.js";const l=({paypalService:l,commit:m,vault:c,presentationModeOptions:u,onApprove:d,onShippingAddressChange:S,onShippingOptionsChange:h,onCancel:P,onError:y,onSubmit:g})=>{const[C,f]=o(""),v=t(()=>l.getInstance(),[l]),{isZeroAuth:O}=p(),{oneTimeSessionOptions:k,saveSessionOptions:E}=i({commit:m,onApprove:d,onShippingAddressChange:S,onShippingOptionsChange:h,onCancel:P,onError:y,vault:c}),{onClick:b}=s(t(()=>({presentationModeOptions:u,createSession:()=>v.createPayPalCreditOneTimePaymentSession(k),onSubmit:g,onError:y}),[v,k,g,y,u])),{onClick:j}=a(t(()=>({presentationModeOptions:u,createSession:()=>v.createPayPalCreditSavePaymentSession(E),onSubmit:g,onError:y}),[v,E,g,y,u])),{isEligible:A}=r(l,"credit");return n(()=>{if(!A)return;const e=l.getEligiblePaymentMethods().getDetails("credit");f(null==e?void 0:e.countryCode)},[A,l]),A?e("paypal-credit-button",{onclick:O?j:b,countryCode:C,"data-testid":"paypal-credit-button"}):null};export{l as PayPalCreditButton};
2
+ //# sourceMappingURL=PayPalCreditButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalCreditButton.js","sources":["../../../../../src/components/PayPal/components/PayPalCreditButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useMemo, useState } from 'preact/hooks';\n\nimport type { PayPalComponentV6Props } from './types';\nimport { usePayPalSessionOptions } from '../hooks/usePayPalSessionOptions';\nimport { usePayPalOneTimeSession } from '../hooks/usePayPalOneTimeSession';\nimport { usePayPalButtonEligibility } from '../hooks/usePayPalButtonEligibility';\nimport { usePayPalSaveSession } from '../hooks/usePayPalSaveSession';\nimport { useAmount } from '../../../core/Context/AmountProvider';\n\nexport const PayPalCreditButton = ({\n paypalService,\n commit,\n vault,\n presentationModeOptions,\n onApprove,\n onShippingAddressChange,\n onShippingOptionsChange,\n onCancel,\n onError,\n onSubmit\n}: Readonly<Omit<PayPalComponentV6Props, 'style' | 'setComponentRef'>>) => {\n const [countryCode, setCountryCode] = useState<string>('');\n\n const payPalSDKInstance = useMemo(() => paypalService.getInstance(), [paypalService]);\n\n const { isZeroAuth } = useAmount();\n\n const { oneTimeSessionOptions, saveSessionOptions } = usePayPalSessionOptions({\n paypalService,\n commit,\n onApprove,\n onShippingAddressChange,\n onShippingOptionsChange,\n onCancel,\n onError,\n vault\n });\n\n const { onClick: oneTimePaymentClick } = usePayPalOneTimeSession(\n useMemo(\n () => ({\n presentationModeOptions,\n createSession: () => payPalSDKInstance.createPayPalCreditOneTimePaymentSession(oneTimeSessionOptions),\n onSubmit,\n onError\n }),\n [payPalSDKInstance, oneTimeSessionOptions, onSubmit, onError, presentationModeOptions]\n )\n );\n\n const { onClick: savePaymentClick } = usePayPalSaveSession(\n useMemo(\n () => ({\n presentationModeOptions,\n createSession: () => payPalSDKInstance.createPayPalCreditSavePaymentSession(saveSessionOptions),\n onSubmit,\n onError\n }),\n [payPalSDKInstance, saveSessionOptions, onSubmit, onError, presentationModeOptions]\n )\n );\n\n const { isEligible } = usePayPalButtonEligibility(paypalService, 'credit');\n\n useEffect(() => {\n if (!isEligible) return;\n\n const details = paypalService.getEligiblePaymentMethods().getDetails('credit');\n setCountryCode(details?.countryCode);\n }, [isEligible, paypalService]);\n\n if (!isEligible) {\n return null;\n }\n\n return (\n <paypal-credit-button\n onclick={isZeroAuth ? savePaymentClick : oneTimePaymentClick}\n countryCode={countryCode}\n data-testid=\"paypal-credit-button\"\n />\n );\n};\n"],"names":["PayPalCreditButton","paypalService","commit","vault","presentationModeOptions","onApprove","onShippingAddressChange","onShippingOptionsChange","onCancel","onError","onSubmit","countryCode","setCountryCode","useState","payPalSDKInstance","useMemo","getInstance","isZeroAuth","useAmount","oneTimeSessionOptions","saveSessionOptions","usePayPalSessionOptions","onClick","oneTimePaymentClick","usePayPalOneTimeSession","createSession","createPayPalCreditOneTimePaymentSession","savePaymentClick","usePayPalSaveSession","createPayPalCreditSavePaymentSession","isEligible","usePayPalButtonEligibility","useEffect","details","getEligiblePaymentMethods","getDetails","h","paypal-credit-button","onclick","data-testid"],"mappings":"wiBAUO,MAAMA,EAAqB,EAC9BC,gBACAC,SACAC,QACAC,0BACAC,YACAC,0BACAC,0BACAC,WACAC,UACAC,eAEA,MAAOC,EAAaC,GAAkBC,EAAiB,IAEjDC,EAAoBC,EAAQ,IAAMd,EAAce,cAAe,CAACf,KAEhEgB,WAAEA,GAAeC,KAEjBC,sBAAEA,EAAqBC,mBAAEA,GAAuBC,EAAwB,CAE1EnB,SACAG,YACAC,0BACAC,0BACAC,WACAC,UACAN,WAGImB,QAASC,GAAwBC,EACrCT,EACI,KAAA,CACIX,0BACAqB,cAAe,IAAMX,EAAkBY,wCAAwCP,GAC/ET,WACAD,YAEJ,CAACK,EAAmBK,EAAuBT,EAAUD,EAASL,MAI9DkB,QAASK,GAAqBC,EAClCb,EACI,KAAA,CACIX,0BACAqB,cAAe,IAAMX,EAAkBe,qCAAqCT,GAC5EV,WACAD,YAEJ,CAACK,EAAmBM,EAAoBV,EAAUD,EAASL,MAI7D0B,WAAEA,GAAeC,EAA2B9B,EAAe,UASjE,OAPA+B,EAAU,KACN,IAAKF,EAAY,OAEjB,MAAMG,EAAUhC,EAAciC,4BAA4BC,WAAW,UACrEvB,EAAeqB,aAAAA,EAAAA,EAAStB,cACzB,CAACmB,EAAY7B,IAEX6B,EAKDM,EAACC,uBAAAA,CACGC,QAASrB,EAAaU,EAAmBJ,EACzCZ,YAAaA,EACb4B,cAAY,yBAPT"}
@@ -0,0 +1,2 @@
1
+ import{createElement as n}from"../../../external/preact/dist/preact.js";import{usePayPalStatus as o}from"../hooks/usePayPalStatus.js";import{PayPalCreditButton as e}from"./PayPalCreditButton.js";import{PayPalProcessingSpinner as p}from"./PayPalProcessingSpinner.js";import{PayPalSpinner as t}from"./PayPalSpinner.js";const r=({paypalService:r,commit:i=!0,presentationModeOptions:a,vault:s,onSubmit:m,onApprove:l,onShippingAddressChange:c,onShippingOptionsChange:g,onCancel:S,onError:h,setComponentRef:u})=>{const{status:d,handleOnApprove:v}=o({paypalService:r,onApprove:l,setComponentRef:u});return"pending"===d?n(t,null):"processing"===d?n(p,{withoutReviewPage:i}):n(e,{paypalService:r,presentationModeOptions:a,commit:i,vault:s,onSubmit:m,onApprove:v,onError:h,onCancel:S,onShippingAddressChange:c,onShippingOptionsChange:g})};export{r as PayPalCreditComponent};
2
+ //# sourceMappingURL=PayPalCreditComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalCreditComponent.js","sources":["../../../../../src/components/PayPal/components/PayPalCreditComponent.tsx"],"sourcesContent":["import { h } from 'preact';\n\nimport { usePayPalStatus } from '../hooks/usePayPalStatus';\nimport { PayPalCreditButton } from './PayPalCreditButton';\nimport { PayPalProcessingSpinner } from './PayPalProcessingSpinner';\nimport { PayPalSpinner } from './PayPalSpinner';\nimport { PayPalComponentV6Props } from './types';\n\nexport const PayPalCreditComponent = ({\n paypalService,\n commit = true,\n presentationModeOptions,\n vault,\n onSubmit,\n onApprove,\n onShippingAddressChange,\n onShippingOptionsChange,\n onCancel,\n onError,\n setComponentRef\n}: Readonly<Omit<PayPalComponentV6Props, 'style'>>) => {\n const { status, handleOnApprove } = usePayPalStatus({\n paypalService,\n onApprove,\n setComponentRef\n });\n\n if (status === 'pending') {\n return <PayPalSpinner />;\n }\n\n if (status === 'processing') {\n return <PayPalProcessingSpinner withoutReviewPage={commit} />;\n }\n\n return (\n <PayPalCreditButton\n paypalService={paypalService}\n presentationModeOptions={presentationModeOptions}\n commit={commit}\n vault={vault}\n onSubmit={onSubmit}\n onApprove={handleOnApprove}\n onError={onError}\n onCancel={onCancel}\n onShippingAddressChange={onShippingAddressChange}\n onShippingOptionsChange={onShippingOptionsChange}\n />\n );\n};\n"],"names":["PayPalCreditComponent","paypalService","commit","presentationModeOptions","vault","onSubmit","onApprove","onShippingAddressChange","onShippingOptionsChange","onCancel","onError","setComponentRef","status","handleOnApprove","usePayPalStatus","h","PayPalSpinner","PayPalProcessingSpinner","withoutReviewPage","PayPalCreditButton"],"mappings":"6TAQO,MAAMA,EAAwB,EACjCC,gBACAC,UAAS,EACTC,0BACAC,QACAC,WACAC,YACAC,0BACAC,0BACAC,WACAC,UACAC,sBAEA,MAAMC,OAAEA,EAAMC,gBAAEA,GAAoBC,EAAgB,CAChDb,gBACAK,YACAK,oBAGJ,MAAe,YAAXC,EACOG,EAACC,EAAAA,MAGG,eAAXJ,EACOG,EAACE,EAAAA,CAAwBC,kBAAmBhB,IAInDa,EAACI,EAAAA,CACGlB,cAAeA,EACfE,wBAAyBA,EACzBD,OAAQA,EACRE,MAAOA,EACPC,SAAUA,EACVC,UAAWO,EACXH,QAASA,EACTD,SAAUA,EACVF,wBAAyBA,EACzBC,wBAAyBA"}
@@ -0,0 +1,2 @@
1
+ import{createElement as o}from"../../../external/preact/dist/preact.js";import{useMemo as e,useRef as t,useEffect as n}from"../../../external/preact/hooks/dist/hooks.js";import{useAmount as r}from"../../../core/Context/AmountProvider.js";import{getDecimalAmount as a}from"../../../utils/amount-util.js";const l=({paypalService:l,countryCode:s,messagingContentOptions:i,onError:u})=>{const c=e(()=>l.getInstance(),[l]),d=t(null),{amount:p}=r();return n(()=>{(async()=>{try{var o,e,t;const n=c.createPayPalMessages({buyerCountry:s,currencyCode:null==p?void 0:p.currency}),r=p?String(a(p.value,p.currency)):void 0;await n.fetchContent({textColor:null!==(o=null==i?void 0:i.textColor)&&void 0!==o?o:"BLACK",logoPosition:null!==(e=null==i?void 0:i.logoPosition)&&void 0!==e?e:"LEFT",logoType:null!==(t=null==i?void 0:i.logoType)&&void 0!==t?t:"TEXT",amount:r,onReady:o=>{var e;null===(e=d.current)||void 0===e||e.setContent(o)}})}catch(o){u(o)}})()},[c,s,null==p?void 0:p.currency,null==p?void 0:p.value,u]),o("paypal-message",{id:"paypal-message",ref:d,"data-testid":"paypal-message"})};export{l as PayPalMessaging};
2
+ //# sourceMappingURL=PayPalMessaging.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalMessaging.js","sources":["../../../../../src/components/PayPal/components/PayPalMessaging.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useMemo, useEffect, useRef } from 'preact/hooks';\n\nimport { PayPalService } from '../services/PayPalService';\nimport { useAmount } from '../../../core/Context/AmountProvider';\nimport type { PayPalFetchContentOptions, PayPalMessageElement } from '../paypal-js-types';\nimport { getDecimalAmount } from '../../../utils/amount-util';\n\nexport const PayPalMessaging = ({\n paypalService,\n countryCode,\n messagingContentOptions,\n onError\n}: Readonly<{\n paypalService: PayPalService;\n countryCode?: string;\n messagingContentOptions?: Pick<PayPalFetchContentOptions, 'logoType' | 'logoPosition' | 'textColor'>;\n onError: (error: Error) => void;\n}>) => {\n const payPalSDKInstance = useMemo(() => paypalService.getInstance(), [paypalService]);\n const messageElementRef = useRef<PayPalMessageElement | null>(null);\n const { amount } = useAmount();\n\n useEffect(() => {\n const fetchMessageContent = async (): Promise<void> => {\n try {\n const messagesInstance = payPalSDKInstance.createPayPalMessages({\n buyerCountry: countryCode,\n currencyCode: amount?.currency\n });\n\n const amountString = amount ? String(getDecimalAmount(amount.value, amount.currency)) : undefined;\n\n await messagesInstance.fetchContent({\n textColor: messagingContentOptions?.textColor ?? 'BLACK',\n logoPosition: messagingContentOptions?.logoPosition ?? 'LEFT',\n logoType: messagingContentOptions?.logoType ?? 'TEXT',\n amount: amountString,\n onReady: content => {\n messageElementRef.current?.setContent(content);\n }\n });\n } catch (error) {\n onError(error as Error);\n }\n };\n\n void fetchMessageContent();\n }, [payPalSDKInstance, countryCode, amount?.currency, amount?.value, onError]);\n\n return <paypal-message id=\"paypal-message\" ref={messageElementRef} data-testid=\"paypal-message\"></paypal-message>;\n};\n"],"names":["PayPalMessaging","paypalService","countryCode","messagingContentOptions","onError","payPalSDKInstance","useMemo","getInstance","messageElementRef","useRef","amount","useAmount","useEffect","async","messagesInstance","createPayPalMessages","buyerCountry","currencyCode","currency","amountString","String","getDecimalAmount","value","undefined","fetchContent","textColor","_ref","logoPosition","_ref1","logoType","_ref2","onReady","content","current","setContent","error","fetchMessageContent","h","paypal-message","id","ref","data-testid"],"mappings":"+SAQO,MAAMA,EAAkB,EAC3BC,gBACAC,cACAC,0BACAC,cAOA,MAAMC,EAAoBC,EAAQ,IAAML,EAAcM,cAAe,CAACN,IAChEO,EAAoBC,EAAoC,OACxDC,OAAEA,GAAWC,IA6BnB,OA3BAC,EAAU,KACsBC,WACxB,cACI,MAAMC,EAAmBT,EAAkBU,qBAAqB,CAC5DC,aAAcd,EACde,aAAcP,aAAAA,EAAAA,EAAQQ,WAGpBC,EAAeT,EAASU,OAAOC,EAAiBX,EAAOY,MAAOZ,EAAOQ,gBAAaK,QAElFT,EAAiBU,aAAa,CAChCC,UAA6C,QAApCC,EAAEvB,aAAAA,EAAAA,EAAyBsB,iBAAS,IAAAC,EAAAA,EAAI,QACjDC,aAAmD,QAAvCC,EAAEzB,aAAAA,EAAAA,EAAyBwB,oBAAY,IAAAC,EAAAA,EAAI,OACvDC,SAA2C,QAAnCC,EAAE3B,aAAAA,EAAAA,EAAyB0B,gBAAQ,IAAAC,EAAAA,EAAI,OAC/CpB,OAAQS,EACRY,QAASC,IACLxB,IAAAA,EAAyB,QAAzBA,EAAAA,EAAkByB,eAAlBzB,IAAAA,GAAAA,EAA2B0B,WAAWF,KAGlD,CAAE,MAAOG,GACL/B,EAAQ+B,EACZ,GAGCC,IACN,CAAC/B,EAAmBH,EAAaQ,aAAAA,EAAAA,EAAQQ,SAAUR,aAAAA,EAAAA,EAAQY,MAAOlB,IAE9DiC,EAACC,iBAAAA,CAAeC,GAAG,iBAAiBC,IAAKhC,EAAmBiC,cAAY"}
@@ -0,0 +1,2 @@
1
+ import{createElement as o}from"../../../external/preact/dist/preact.js";import{useState as e,useMemo as t,useEffect as n}from"../../../external/preact/hooks/dist/hooks.js";import{usePayPalSessionOptions as i}from"../hooks/usePayPalSessionOptions.js";import{usePayPalOneTimeSession as s}from"../hooks/usePayPalOneTimeSession.js";import{usePayPalButtonEligibility as a}from"../hooks/usePayPalButtonEligibility.js";const r=({paypalService:r,commit:p,presentationModeOptions:l,onApprove:c,onShippingAddressChange:m,onShippingOptionsChange:u,onCancel:d,onError:y,onSubmit:g})=>{const[h,S]=e(""),[C,P]=e(""),f=t(()=>r.getInstance(),[r]),{oneTimeSessionOptions:E}=i({commit:p,onApprove:c,onShippingAddressChange:m,onShippingOptionsChange:u,onCancel:d,onError:y}),{onClick:O}=s(t(()=>({presentationModeOptions:l,createSession:()=>f.createPayLaterOneTimePaymentSession(E),onSubmit:g,onError:y}),[f,E,g,y,l])),{isEligible:b}=a(r,"paylater");return n(()=>{if(!b)return;const o=r.getEligiblePaymentMethods().getDetails("paylater");P(null==o?void 0:o.productCode),S(null==o?void 0:o.countryCode)},[b,r]),b?o("paypal-pay-later-button",{onclick:O,productCode:C,countryCode:h,"data-testid":"paypal-paylater-button"}):null};export{r as PayPalPayLaterButton};
2
+ //# sourceMappingURL=PayPalPayLaterButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalPayLaterButton.js","sources":["../../../../../src/components/PayPal/components/PayPalPayLaterButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useMemo, useState } from 'preact/hooks';\n\nimport type { PayPalComponentV6Props } from './types';\nimport { usePayPalSessionOptions } from '../hooks/usePayPalSessionOptions';\nimport { usePayPalOneTimeSession } from '../hooks/usePayPalOneTimeSession';\nimport { usePayPalButtonEligibility } from '../hooks/usePayPalButtonEligibility';\n\nexport const PayPalPayLaterButton = ({\n paypalService,\n commit,\n presentationModeOptions,\n onApprove,\n onShippingAddressChange,\n onShippingOptionsChange,\n onCancel,\n onError,\n onSubmit\n}: Readonly<Omit<PayPalComponentV6Props, 'style' | 'setComponentRef'>>) => {\n const [countryCode, setCountryCode] = useState<string>('');\n const [productCode, setProductCode] = useState<string>('');\n\n const payPalSDKInstance = useMemo(() => paypalService.getInstance(), [paypalService]);\n\n const { oneTimeSessionOptions } = usePayPalSessionOptions({\n paypalService,\n commit,\n onApprove,\n onShippingAddressChange,\n onShippingOptionsChange,\n onCancel,\n onError\n });\n\n const { onClick } = usePayPalOneTimeSession(\n useMemo(\n () => ({\n presentationModeOptions,\n createSession: () => payPalSDKInstance.createPayLaterOneTimePaymentSession(oneTimeSessionOptions),\n onSubmit,\n onError\n }),\n [payPalSDKInstance, oneTimeSessionOptions, onSubmit, onError, presentationModeOptions]\n )\n );\n\n const { isEligible } = usePayPalButtonEligibility(paypalService, 'paylater');\n\n useEffect(() => {\n if (!isEligible) return;\n\n const details = paypalService.getEligiblePaymentMethods().getDetails('paylater');\n setProductCode(details?.productCode);\n setCountryCode(details?.countryCode);\n }, [isEligible, paypalService]);\n\n if (!isEligible) {\n return null;\n }\n\n return <paypal-pay-later-button onclick={onClick} productCode={productCode} countryCode={countryCode} data-testid=\"paypal-paylater-button\" />;\n};\n"],"names":["PayPalPayLaterButton","paypalService","commit","presentationModeOptions","onApprove","onShippingAddressChange","onShippingOptionsChange","onCancel","onError","onSubmit","countryCode","setCountryCode","useState","productCode","setProductCode","payPalSDKInstance","useMemo","getInstance","oneTimeSessionOptions","usePayPalSessionOptions","onClick","usePayPalOneTimeSession","createSession","createPayLaterOneTimePaymentSession","isEligible","usePayPalButtonEligibility","useEffect","details","getEligiblePaymentMethods","getDetails","h","paypal-pay-later-button","onclick","data-testid"],"mappings":"4ZAQO,MAAMA,EAAuB,EAChCC,gBACAC,SACAC,0BACAC,YACAC,0BACAC,0BACAC,WACAC,UACAC,eAEA,MAAOC,EAAaC,GAAkBC,EAAiB,KAChDC,EAAaC,GAAkBF,EAAiB,IAEjDG,EAAoBC,EAAQ,IAAMf,EAAcgB,cAAe,CAAChB,KAEhEiB,sBAAEA,GAA0BC,EAAwB,CAEtDjB,SACAE,YACAC,0BACAC,0BACAC,WACAC,aAGEY,QAAEA,GAAYC,EAChBL,EACI,KAAA,CACIb,0BACAmB,cAAe,IAAMP,EAAkBQ,oCAAoCL,GAC3ET,WACAD,YAEJ,CAACO,EAAmBG,EAAuBT,EAAUD,EAASL,MAIhEqB,WAAEA,GAAeC,EAA2BxB,EAAe,YAUjE,OARAyB,EAAU,KACN,IAAKF,EAAY,OAEjB,MAAMG,EAAU1B,EAAc2B,4BAA4BC,WAAW,YACrEf,EAAea,aAAAA,EAAAA,EAASd,aACxBF,EAAegB,aAAAA,EAAAA,EAASjB,cACzB,CAACc,EAAYvB,IAEXuB,EAIEM,EAACC,0BAAAA,CAAwBC,QAASZ,EAASP,YAAaA,EAAaH,YAAaA,EAAauB,cAAY,2BAHvG"}
@@ -0,0 +1,2 @@
1
+ import{createElement as o}from"../../../external/preact/dist/preact.js";import{usePayPalStatus as n}from"../hooks/usePayPalStatus.js";import{PayPalMessaging as e}from"./PayPalMessaging.js";import{PayPalPayLaterButton as t}from"./PayPalPayLaterButton.js";import{PayPalProcessingSpinner as a}from"./PayPalProcessingSpinner.js";import{PayPalSpinner as p}from"./PayPalSpinner.js";import r from"./PayPalPaylaterComponent.module.scss.js";const s=({paypalService:s,commit:i=!0,presentationModeOptions:m,hidePayPalMessaging:l,messagingContentOptions:g,countryCode:P,onSubmit:c,onApprove:y,onShippingAddressChange:d,onShippingOptionsChange:C,onCancel:S,onError:h,setComponentRef:u})=>{const{status:v,handleOnApprove:f}=n({paypalService:s,onApprove:y,setComponentRef:u});return"pending"===v?o(p,null):"processing"===v?o(a,{withoutReviewPage:i}):o("div",{className:r.payPalPaylaterComponent},!l&&o(e,{paypalService:s,countryCode:P,messagingContentOptions:g,onError:h}),o(t,{paypalService:s,presentationModeOptions:m,commit:i,onSubmit:c,onApprove:f,onError:h,onCancel:S,onShippingAddressChange:d,onShippingOptionsChange:C}))};export{s as PayPalPaylaterComponent};
2
+ //# sourceMappingURL=PayPalPaylaterComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalPaylaterComponent.js","sources":["../../../../../src/components/PayPal/components/PayPalPaylaterComponent.tsx"],"sourcesContent":["import { h } from 'preact';\n\nimport { usePayPalStatus } from '../hooks/usePayPalStatus';\nimport { PayPalMessaging } from './PayPalMessaging';\nimport { PayPalPayLaterButton } from './PayPalPayLaterButton';\nimport { PayPalProcessingSpinner } from './PayPalProcessingSpinner';\nimport { PayPalSpinner } from './PayPalSpinner';\nimport { PayPalComponentV6Props } from './types';\nimport { PayPalFetchContentOptions } from '../paypal-js-types';\n\nimport styles from './PayPalPaylaterComponent.module.scss';\n\nexport const PayPalPaylaterComponent = ({\n paypalService,\n commit = true,\n presentationModeOptions,\n hidePayPalMessaging,\n messagingContentOptions,\n countryCode,\n onSubmit,\n onApprove,\n onShippingAddressChange,\n onShippingOptionsChange,\n onCancel,\n onError,\n setComponentRef\n}: Readonly<\n Omit<PayPalComponentV6Props, 'style' | 'vault'> & {\n hidePayPalMessaging?: boolean;\n countryCode?: string;\n messagingContentOptions?: Pick<PayPalFetchContentOptions, 'logoType' | 'logoPosition' | 'textColor'>;\n }\n>) => {\n const { status, handleOnApprove } = usePayPalStatus({\n paypalService,\n onApprove,\n setComponentRef\n });\n\n if (status === 'pending') {\n return <PayPalSpinner />;\n }\n\n if (status === 'processing') {\n return <PayPalProcessingSpinner withoutReviewPage={commit} />;\n }\n\n return (\n <div className={styles.payPalPaylaterComponent}>\n {!hidePayPalMessaging && (\n <PayPalMessaging\n paypalService={paypalService}\n countryCode={countryCode}\n messagingContentOptions={messagingContentOptions}\n onError={onError}\n />\n )}\n <PayPalPayLaterButton\n paypalService={paypalService}\n presentationModeOptions={presentationModeOptions}\n commit={commit}\n onSubmit={onSubmit}\n onApprove={handleOnApprove}\n onError={onError}\n onCancel={onCancel}\n onShippingAddressChange={onShippingAddressChange}\n onShippingOptionsChange={onShippingOptionsChange}\n />\n </div>\n );\n};\n"],"names":["PayPalPaylaterComponent","paypalService","commit","presentationModeOptions","hidePayPalMessaging","messagingContentOptions","countryCode","onSubmit","onApprove","onShippingAddressChange","onShippingOptionsChange","onCancel","onError","setComponentRef","status","handleOnApprove","usePayPalStatus","h","PayPalSpinner","PayPalProcessingSpinner","withoutReviewPage","div","className","styles","payPalPaylaterComponent","PayPalMessaging","PayPalPayLaterButton"],"mappings":"gbAYO,MAAMA,EAA0B,EACnCC,gBACAC,UAAS,EACTC,0BACAC,sBACAC,0BACAC,cACAC,WACAC,YACAC,0BACAC,0BACAC,WACAC,UACAC,sBAQA,MAAMC,OAAEA,EAAMC,gBAAEA,GAAoBC,EAAgB,CAChDf,gBACAO,YACAK,oBAGJ,MAAe,YAAXC,EACOG,EAACC,EAAAA,MAGG,eAAXJ,EACOG,EAACE,EAAAA,CAAwBC,kBAAmBlB,IAInDe,EAACI,MAAAA,CAAIC,UAAWC,EAAOC,0BACjBpB,GACEa,EAACQ,EAAAA,CACGxB,cAAeA,EACfK,YAAaA,EACbD,wBAAyBA,EACzBO,QAASA,IAGjBK,EAACS,EAAAA,CACGzB,cAAeA,EACfE,wBAAyBA,EACzBD,OAAQA,EACRK,SAAUA,EACVC,UAAWO,EACXH,QAASA,EACTD,SAAUA,EACVF,wBAAyBA,EACzBC,wBAAyBA"}
@@ -0,0 +1,2 @@
1
+ var a={payPalPaylaterComponent:"PayPalPaylaterComponent-module_payPalPaylaterComponent__VqIZX"};export{a as default};
2
+ //# sourceMappingURL=PayPalPaylaterComponent.module.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalPaylaterComponent.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";import r from"../../internal/Spinner/Spinner.js";const a=({withoutReviewPage:a})=>{const{i18n:i}=t();return e("div",{className:"adyen-checkout__paypal__status adyen-checkout__paypal__status--processing","aria-live":"polite","aria-busy":"true"},e(r,{size:"medium",inline:!0}),a&&i.get("paypal.processingPayment"))};export{a as PayPalProcessingSpinner};
2
+ //# sourceMappingURL=PayPalProcessingSpinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalProcessingSpinner.js","sources":["../../../../../src/components/PayPal/components/PayPalProcessingSpinner.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Spinner from '../../internal/Spinner';\n\nexport const PayPalProcessingSpinner = ({ withoutReviewPage }: Readonly<{ withoutReviewPage: boolean }>) => {\n const { i18n } = useCoreContext();\n\n return (\n <div className=\"adyen-checkout__paypal__status adyen-checkout__paypal__status--processing\" aria-live=\"polite\" aria-busy=\"true\">\n <Spinner size=\"medium\" inline />\n {withoutReviewPage && i18n.get('paypal.processingPayment')}\n </div>\n );\n};\n"],"names":["PayPalProcessingSpinner","withoutReviewPage","i18n","useCoreContext","h","div","className","aria-live","aria-busy","Spinner","size","inline","get"],"mappings":"gMAIO,MAAMA,EAA0B,EAAGC,wBACtC,MAAMC,KAAEA,GAASC,IAEjB,OACIC,EAACC,MAAAA,CAAIC,UAAU,4EAA4EC,YAAU,SAASC,YAAU,QACpHJ,EAACK,EAAAA,CAAQC,KAAK,SAASC,QAAAA,IACtBV,GAAqBC,EAAKU,IAAI"}
@@ -0,0 +1,2 @@
1
+ import{createElement as a}from"../../../external/preact/dist/preact.js";import e from"../../internal/Spinner/Spinner.js";const t=()=>a("div",{className:"adyen-checkout__paypal__status adyen-checkout__paypal__status--pending","aria-live":"polite","aria-busy":"true","data-testid":"paypal-loader"},a(e,null));export{t as PayPalSpinner};
2
+ //# sourceMappingURL=PayPalSpinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PayPalSpinner.js","sources":["../../../../../src/components/PayPal/components/PayPalSpinner.tsx"],"sourcesContent":["import { h } from 'preact';\n\nimport Spinner from '../../internal/Spinner';\n\nexport const PayPalSpinner = () => {\n return (\n <div\n className=\"adyen-checkout__paypal__status adyen-checkout__paypal__status--pending\"\n aria-live=\"polite\"\n aria-busy=\"true\"\n data-testid=\"paypal-loader\"\n >\n <Spinner />\n </div>\n );\n};\n"],"names":["PayPalSpinner","h","div","className","aria-live","aria-busy","data-testid","Spinner"],"mappings":"+HAIaA,EAAgB,IAErBC,EAACC,MAAAA,CACGC,UAAU,yEACVC,YAAU,SACVC,YAAU,OACVC,cAAY,iBAEZL,EAACM,EAAAA"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as t,useEffect as n}from"../../../external/preact/hooks/dist/hooks.js";import o from"../../../_virtual/index.js";import{getStyle as r}from"../utils/get-paypal-styles.js";import a from"../../internal/Spinner/Spinner.js";import{useCoreContext as c}from"../../../core/Context/CoreProvider.js";function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function p(e,t){if(null==e)return{};var n,o,r,a={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(n=Reflect.ownKeys(Object(e)),r=0;r<n.length;r++)o=n[r],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o]);return a}if(a=function(e,t){if(null==e)return{};var n,o,r={},a=Object.getOwnPropertyNames(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n]);return r}(e,t),Object.getOwnPropertySymbols)for(n=Object.getOwnPropertySymbols(e),r=0;r<n.length;r++)o=n[r],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o]);return a}function s(s){let{onInit:u,onApprove:y,onClick:f,onCancel:d,onError:b,onShippingAddressChange:_,onShippingOptionsChange:m,onSubmit:g,isProcessingPayment:O,paypalRef:h,style:P}=s,v=p(s,["onInit","onApprove","onClick","onCancel","onError","onShippingAddressChange","onShippingOptionsChange","onSubmit","isProcessingPayment","paypalRef","style"]);var j;const{i18n:k}=c(),S="tokenize"===(null===(j=v.configuration)||void 0===j?void 0:j.intent),C=t(null),w=t(null),E=t(null),A=t(null),N=(e,t)=>{var n;const o=i(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){l(e,t,n[t])})}return e}({},S&&{createBillingAgreement:g},!S&&{createOrder:g},!S&&"venmo"!==e&&_&&{onShippingAddressChange:_},!S&&"venmo"!==e&&m&&{onShippingOptionsChange:m}),{fundingSource:e,style:r(e,P),onInit:u,onClick:f,onCancel:d,onError:b,onApprove:y}),a=null==h||null===(n=h.Buttons)||void 0===n?void 0:n.call(h,o);(null==a?void 0:a.isEligible())&&t.current&&a.render(t.current)};n(()=>{const{PAYPAL:e,CREDIT:t,PAYLATER:n,VENMO:o}=null==h?void 0:h.FUNDING;v.blockPayPalButton||N(e,C),v.blockPayPalCreditButton||N(t,w),v.blockPayPalPayLaterButton||N(n,E),v.blockPayPalVenmoButton||N(o,A)},[]);const x=!0===v.commit;return e("div",{className:o("adyen-checkout__paypal__buttons",{"adyen-checkout__paypal-processing":O})},e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--paypal",ref:C}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--credit",ref:w}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--pay-later",ref:E}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--venmo",ref:A}),O&&e("div",{className:"adyen-checkout__paypal"},e("div",{className:"adyen-checkout__paypal__status adyen-checkout__paypal__status--processing"},e(a,{size:"medium",inline:!0}),x&&k.get("paypal.processingPayment"))))}export{s as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useRef as t,useEffect as n}from"../../../external/preact/hooks/dist/hooks.js";import o from"../../../_virtual/index.js";import{getStyle as r}from"../utils/get-paypal-styles.js";import{PayPalProcessingSpinner as a}from"./PayPalProcessingSpinner.js";function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t}(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}function i(e,t){if(null==e)return{};var n,o,r,a={};if("undefined"!=typeof Reflect&&Reflect.ownKeys){for(n=Reflect.ownKeys(Object(e)),r=0;r<n.length;r++)o=n[r],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o]);return a}if(a=function(e,t){if(null==e)return{};var n,o,r={},a=Object.getOwnPropertyNames(e);for(o=0;o<a.length;o++)n=a[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n]);return r}(e,t),Object.getOwnPropertySymbols)for(n=Object.getOwnPropertySymbols(e),r=0;r<n.length;r++)o=n[r],t.indexOf(o)>=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o]);return a}function p(p){let{onInit:u,onApprove:s,onClick:y,onCancel:f,onError:b,onShippingAddressChange:d,onShippingOptionsChange:_,onSubmit:m,isProcessingPayment:O,paypalRef:g,style:P}=p,h=i(p,["onInit","onApprove","onClick","onCancel","onError","onShippingAddressChange","onShippingOptionsChange","onSubmit","isProcessingPayment","paypalRef","style"]);var v;const j="tokenize"===(null===(v=h.configuration)||void 0===v?void 0:v.intent),k=t(null),w=t(null),S=t(null),C=t(null),E=(e,t)=>{var n;const o=c(function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),o.forEach(function(t){l(e,t,n[t])})}return e}({},j&&{createBillingAgreement:m},!j&&{createOrder:m},!j&&"venmo"!==e&&d&&{onShippingAddressChange:d},!j&&"venmo"!==e&&_&&{onShippingOptionsChange:_}),{fundingSource:e,style:r(e,P),onInit:u,onClick:y,onCancel:f,onError:b,onApprove:s}),a=null==g||null===(n=g.Buttons)||void 0===n?void 0:n.call(g,o);(null==a?void 0:a.isEligible())&&t.current&&a.render(t.current)};return n(()=>{const{PAYPAL:e,CREDIT:t,PAYLATER:n,VENMO:o}=null==g?void 0:g.FUNDING;h.blockPayPalButton||E(e,k),h.blockPayPalCreditButton||E(t,w),h.blockPayPalPayLaterButton||E(n,S),h.blockPayPalVenmoButton||E(o,C)},[]),e("div",{className:o("adyen-checkout__paypal__buttons",{"adyen-checkout__paypal-processing":O})},e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--paypal",ref:k}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--credit",ref:w}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--pay-later",ref:S}),e("div",{className:"adyen-checkout__paypal__button adyen-checkout__paypal__button--venmo",ref:C}),O&&e("div",{className:"adyen-checkout__paypal"},e(a,{withoutReviewPage:Boolean(h.commit)})))}export{p as default};
2
2
  //# sourceMappingURL=PaypalButtons.js.map