@adyen/adyen-web 6.46.0 → 6.47.0-alpha.41c41fe

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 (273) hide show
  1. package/dist/cjs/index.cjs +2 -2
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/cjs/index.d.cts +63 -46
  4. package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
  5. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  6. package/dist/es/components/AmazonPay/components/AmazonPayButton.js +1 -1
  7. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  8. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  9. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  10. package/dist/es/components/AmazonPay/components/OrderButton.js +1 -1
  11. package/dist/es/components/AmazonPay/components/OrderButton.js.map +1 -1
  12. package/dist/es/components/AmazonPay/components/SignOutButton.js +1 -1
  13. package/dist/es/components/AmazonPay/components/SignOutButton.js.map +1 -1
  14. package/dist/es/components/AmazonPay/utils.js +1 -1
  15. package/dist/es/components/AmazonPay/utils.js.map +1 -1
  16. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  17. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  18. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  19. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  20. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  21. package/dist/es/components/CashAppPay/components/CashAppComponent.js +1 -1
  22. package/dist/es/components/CashAppPay/components/CashAppComponent.js.map +1 -1
  23. package/dist/es/components/CashAppPay/services/CashAppService.js +1 -1
  24. package/dist/es/components/CashAppPay/services/CashAppService.js.map +1 -1
  25. package/dist/es/components/CashAppPay/services/types.js.map +1 -1
  26. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  27. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  28. package/dist/es/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js +1 -1
  29. package/dist/es/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js.map +1 -1
  30. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  31. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  32. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  33. package/dist/es/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js +1 -1
  34. package/dist/es/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -1
  35. package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
  36. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  37. package/dist/es/components/PayPal/Paypal.js +1 -1
  38. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  39. package/dist/es/components/PayPal/utils/get-paypal-locale.js.map +1 -1
  40. package/dist/es/components/PayPal/utils/get-paypal-settings.js +1 -1
  41. package/dist/es/components/PayPal/utils/get-paypal-settings.js.map +1 -1
  42. package/dist/es/components/PayPalFastlane/Fastlane.js +1 -1
  43. package/dist/es/components/PayPalFastlane/Fastlane.js.map +1 -1
  44. package/dist/es/components/PayPalFastlane/FastlaneSDK.js +1 -1
  45. package/dist/es/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  46. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  47. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  48. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  49. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  50. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  51. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  52. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  53. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  54. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  55. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js +1 -1
  56. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  57. package/dist/es/components/ThreeDS2/components/utils.js +1 -1
  58. package/dist/es/components/ThreeDS2/components/utils.js.map +1 -1
  59. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  60. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  61. package/dist/es/components/internal/Address/Address.js +1 -1
  62. package/dist/es/components/internal/Address/Address.js.map +1 -1
  63. package/dist/es/components/internal/Address/Specifications.js +1 -1
  64. package/dist/es/components/internal/Address/Specifications.js.map +1 -1
  65. package/dist/es/components/internal/Address/components/AddressSearch.js +1 -1
  66. package/dist/es/components/internal/Address/components/AddressSearch.js.map +1 -1
  67. package/dist/es/components/internal/Address/components/FieldContainer.js +1 -1
  68. package/dist/es/components/internal/Address/components/FieldContainer.js.map +1 -1
  69. package/dist/es/components/internal/Address/constants.js.map +1 -1
  70. package/dist/es/components/internal/Address/utils.js.map +1 -1
  71. package/dist/es/components/internal/Address/validate.formats.js +1 -1
  72. package/dist/es/components/internal/Address/validate.formats.js.map +1 -1
  73. package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
  74. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  75. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  76. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  77. package/dist/es/components/internal/CompanyDetails/validate.js +1 -1
  78. package/dist/es/components/internal/CompanyDetails/validate.js.map +1 -1
  79. package/dist/es/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
  80. package/dist/es/components/internal/FormFields/Field/Field.js +1 -1
  81. package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
  82. package/dist/es/components/internal/FormFields/InputBase.js +1 -1
  83. package/dist/es/components/internal/FormFields/InputBase.js.map +1 -1
  84. package/dist/es/components/internal/FormFields/InputDate/InputDate.js +1 -1
  85. package/dist/es/components/internal/FormFields/InputDate/InputDate.js.map +1 -1
  86. package/dist/es/components/internal/FormFields/InputDate/utils.js.map +1 -1
  87. package/dist/es/components/internal/FormFields/Select/Select.js +1 -1
  88. package/dist/es/components/internal/FormFields/Select/Select.js.map +1 -1
  89. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  90. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  91. package/dist/es/components/internal/IbanInput/IbanInput.js +1 -1
  92. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  93. package/dist/es/components/internal/IbanInput/specifications.js.map +1 -1
  94. package/dist/es/components/internal/IbanInput/utils.js +1 -1
  95. package/dist/es/components/internal/IbanInput/utils.js.map +1 -1
  96. package/dist/es/components/internal/PayButton/utils.js.map +1 -1
  97. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  98. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  99. package/dist/es/components/internal/PersonalDetails/validate.js +1 -1
  100. package/dist/es/components/internal/PersonalDetails/validate.js.map +1 -1
  101. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js +1 -1
  102. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  103. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js +1 -1
  104. package/dist/es/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  105. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  106. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  107. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  108. package/dist/es/components/internal/UIElement/utils.js.map +1 -1
  109. package/dist/es/core/config.js +1 -1
  110. package/dist/es/core/config.js.map +1 -1
  111. package/dist/es/core/core.js +1 -1
  112. package/dist/es/core/core.js.map +1 -1
  113. package/dist/es/core/utils.js +1 -1
  114. package/dist/es/core/utils.js.map +1 -1
  115. package/dist/es/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js +1 -1
  116. package/dist/es/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  117. package/dist/es/index.d.ts +63 -46
  118. package/dist/es/utils/Script.js.map +1 -1
  119. package/dist/es/utils/Validator/ValidationRuleResult.js.map +1 -1
  120. package/dist/es/utils/Validator/Validator.js +1 -1
  121. package/dist/es/utils/Validator/Validator.js.map +1 -1
  122. package/dist/es/utils/Validator/defaultRules.js +1 -1
  123. package/dist/es/utils/Validator/defaultRules.js.map +1 -1
  124. package/dist/es/utils/browserInfo.js.map +1 -1
  125. package/dist/es/utils/createSdkData.js.map +1 -1
  126. package/dist/es/utils/get-issuer-image.js +1 -1
  127. package/dist/es/utils/get-issuer-image.js.map +1 -1
  128. package/dist/es/utils/get-process-message-handler.js.map +1 -1
  129. package/dist/es/utils/getConsentUrl.js +1 -1
  130. package/dist/es/utils/getConsentUrl.js.map +1 -1
  131. package/dist/es/utils/getErrorMessage.js.map +1 -1
  132. package/dist/es/utils/getOrigin.js.map +1 -1
  133. package/dist/es/utils/isValidURL.js +1 -1
  134. package/dist/es/utils/isValidURL.js.map +1 -1
  135. package/dist/es/utils/promiseTimeout.js.map +1 -1
  136. package/dist/es/utils/useAutoFocus.js.map +1 -1
  137. package/dist/es/utils/validator-utils.js +1 -1
  138. package/dist/es/utils/validator-utils.js.map +1 -1
  139. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  140. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  141. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js +1 -1
  142. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  143. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  144. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  145. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js +1 -1
  146. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js.map +1 -1
  147. package/dist/es-legacy/components/AmazonPay/components/SignOutButton.js +1 -1
  148. package/dist/es-legacy/components/AmazonPay/components/SignOutButton.js.map +1 -1
  149. package/dist/es-legacy/components/AmazonPay/utils.js +1 -1
  150. package/dist/es-legacy/components/AmazonPay/utils.js.map +1 -1
  151. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  152. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  153. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  154. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  155. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  156. package/dist/es-legacy/components/CashAppPay/components/CashAppComponent.js +1 -1
  157. package/dist/es-legacy/components/CashAppPay/components/CashAppComponent.js.map +1 -1
  158. package/dist/es-legacy/components/CashAppPay/services/CashAppService.js +1 -1
  159. package/dist/es-legacy/components/CashAppPay/services/CashAppService.js.map +1 -1
  160. package/dist/es-legacy/components/CashAppPay/services/types.js.map +1 -1
  161. package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
  162. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  163. package/dist/es-legacy/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js +1 -1
  164. package/dist/es-legacy/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js.map +1 -1
  165. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  166. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  167. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  168. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js +1 -1
  169. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -1
  170. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js +1 -1
  171. package/dist/es-legacy/components/PayByBankUS/PayByBankUS.js.map +1 -1
  172. package/dist/es-legacy/components/PayPal/Paypal.js +1 -1
  173. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  174. package/dist/es-legacy/components/PayPal/utils/get-paypal-locale.js.map +1 -1
  175. package/dist/es-legacy/components/PayPal/utils/get-paypal-settings.js +1 -1
  176. package/dist/es-legacy/components/PayPal/utils/get-paypal-settings.js.map +1 -1
  177. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js +1 -1
  178. package/dist/es-legacy/components/PayPalFastlane/Fastlane.js.map +1 -1
  179. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js +1 -1
  180. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  181. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  182. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  183. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  184. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  185. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  186. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  187. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  188. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  189. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  190. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js +1 -1
  191. package/dist/es-legacy/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  192. package/dist/es-legacy/components/ThreeDS2/components/utils.js +1 -1
  193. package/dist/es-legacy/components/ThreeDS2/components/utils.js.map +1 -1
  194. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  195. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  196. package/dist/es-legacy/components/internal/Address/Address.js +1 -1
  197. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  198. package/dist/es-legacy/components/internal/Address/Specifications.js +1 -1
  199. package/dist/es-legacy/components/internal/Address/Specifications.js.map +1 -1
  200. package/dist/es-legacy/components/internal/Address/components/AddressSearch.js +1 -1
  201. package/dist/es-legacy/components/internal/Address/components/AddressSearch.js.map +1 -1
  202. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js +1 -1
  203. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js.map +1 -1
  204. package/dist/es-legacy/components/internal/Address/constants.js.map +1 -1
  205. package/dist/es-legacy/components/internal/Address/utils.js.map +1 -1
  206. package/dist/es-legacy/components/internal/Address/validate.formats.js +1 -1
  207. package/dist/es-legacy/components/internal/Address/validate.formats.js.map +1 -1
  208. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
  209. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  210. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  211. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  212. package/dist/es-legacy/components/internal/CompanyDetails/validate.js +1 -1
  213. package/dist/es-legacy/components/internal/CompanyDetails/validate.js.map +1 -1
  214. package/dist/es-legacy/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
  215. package/dist/es-legacy/components/internal/FormFields/Field/Field.js +1 -1
  216. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  217. package/dist/es-legacy/components/internal/FormFields/InputBase.js +1 -1
  218. package/dist/es-legacy/components/internal/FormFields/InputBase.js.map +1 -1
  219. package/dist/es-legacy/components/internal/FormFields/InputDate/InputDate.js +1 -1
  220. package/dist/es-legacy/components/internal/FormFields/InputDate/InputDate.js.map +1 -1
  221. package/dist/es-legacy/components/internal/FormFields/InputDate/utils.js.map +1 -1
  222. package/dist/es-legacy/components/internal/FormFields/Select/Select.js +1 -1
  223. package/dist/es-legacy/components/internal/FormFields/Select/Select.js.map +1 -1
  224. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  225. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  226. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js +1 -1
  227. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  228. package/dist/es-legacy/components/internal/IbanInput/specifications.js.map +1 -1
  229. package/dist/es-legacy/components/internal/IbanInput/utils.js +1 -1
  230. package/dist/es-legacy/components/internal/IbanInput/utils.js.map +1 -1
  231. package/dist/es-legacy/components/internal/PayButton/utils.js.map +1 -1
  232. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  233. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  234. package/dist/es-legacy/components/internal/PersonalDetails/validate.js +1 -1
  235. package/dist/es-legacy/components/internal/PersonalDetails/validate.js.map +1 -1
  236. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js +1 -1
  237. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  238. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js +1 -1
  239. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputForm.js.map +1 -1
  240. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  241. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  242. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  243. package/dist/es-legacy/components/internal/UIElement/utils.js.map +1 -1
  244. package/dist/es-legacy/core/config.js +1 -1
  245. package/dist/es-legacy/core/config.js.map +1 -1
  246. package/dist/es-legacy/core/core.js +1 -1
  247. package/dist/es-legacy/core/core.js.map +1 -1
  248. package/dist/es-legacy/core/utils.js +1 -1
  249. package/dist/es-legacy/core/utils.js.map +1 -1
  250. package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js +1 -1
  251. package/dist/es-legacy/hooks/usePaymentStatusTimer/usePaymentStatusTimer.js.map +1 -1
  252. package/dist/es-legacy/utils/Script.js.map +1 -1
  253. package/dist/es-legacy/utils/Validator/ValidationRuleResult.js.map +1 -1
  254. package/dist/es-legacy/utils/Validator/Validator.js +1 -1
  255. package/dist/es-legacy/utils/Validator/Validator.js.map +1 -1
  256. package/dist/es-legacy/utils/Validator/defaultRules.js +1 -1
  257. package/dist/es-legacy/utils/Validator/defaultRules.js.map +1 -1
  258. package/dist/es-legacy/utils/browserInfo.js.map +1 -1
  259. package/dist/es-legacy/utils/createSdkData.js.map +1 -1
  260. package/dist/es-legacy/utils/get-issuer-image.js +1 -1
  261. package/dist/es-legacy/utils/get-issuer-image.js.map +1 -1
  262. package/dist/es-legacy/utils/get-process-message-handler.js.map +1 -1
  263. package/dist/es-legacy/utils/getConsentUrl.js +1 -1
  264. package/dist/es-legacy/utils/getConsentUrl.js.map +1 -1
  265. package/dist/es-legacy/utils/getErrorMessage.js.map +1 -1
  266. package/dist/es-legacy/utils/getOrigin.js.map +1 -1
  267. package/dist/es-legacy/utils/isValidURL.js +1 -1
  268. package/dist/es-legacy/utils/isValidURL.js.map +1 -1
  269. package/dist/es-legacy/utils/promiseTimeout.js.map +1 -1
  270. package/dist/es-legacy/utils/useAutoFocus.js.map +1 -1
  271. package/dist/es-legacy/utils/validator-utils.js +1 -1
  272. package/dist/es-legacy/utils/validator-utils.js.map +1 -1
  273. package/package.json +3 -2
@@ -1,2 +1,2 @@
1
- const e=(e,t,n,r)=>{if(e[n]?.[t]?.formatterFn)return null;const u=e[n]?.[t]?.maxlength;return u||30},t=e=>!(null!=e&&!/^[\s]*$/.test(e)),n="(?:[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\p{Cc}\\p{Cf}]|[0-9#*]\\uFE0F?\\u20E3)",[r,u]=(()=>{try{return[new RegExp(n,"u"),new RegExp(n,"gu")]}catch{const e="[\\u0000-\\u001F\\u007F-\\u009F]";return[new RegExp(e),new RegExp(e,"g")]}})(),g=(e,t="g")=>new RegExp(`[${e}]`,t),p=e=>!e.length||!r.test(e),c=e=>e.replace(u,""),l=e=>e.trim().replace(/\s+/g," ");export{g as getFormattingRegEx,e as getMaxLengthByFieldAndCountry,t as isEmpty,c as stripInvalidChars,l as trimValWithOneSpace,p as validateForSpecialChars};
1
+ const e=(e,t,n,r)=>{if(n&&e[n]?.[t]?.formatterFn)return;const g=n?e[n]?.[t]?.maxlength:void 0;return g||30},t=e=>!(null!=e&&!/^[\s]*$/.test(e)),n="(?:[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\p{Cc}\\p{Cf}]|[0-9#*]\\uFE0F?\\u20E3)",[r,g]=(()=>{try{return[new RegExp(n,"u"),new RegExp(n,"gu")]}catch{const e="[\\u0000-\\u001F\\u007F-\\u009F]";return[new RegExp(e),new RegExp(e,"g")]}})(),p=(e,t="g")=>new RegExp(`[${e}]`,t),u=e=>!e.length||!r.test(e),c=e=>e.replace(g,""),o=e=>e.trim().replace(/\s+/g," ");export{p as getFormattingRegEx,e as getMaxLengthByFieldAndCountry,t as isEmpty,c as stripInvalidChars,o as trimValWithOneSpace,u as validateForSpecialChars};
2
2
  //# sourceMappingURL=validator-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator-utils.js","sources":["../../../src/utils/validator-utils.ts"],"sourcesContent":["import { CountryFormatRules } from './Validator/types';\n\nconst MAX_LENGTH = 30;\n\nexport const getMaxLengthByFieldAndCountry = (\n formattingRules: CountryFormatRules,\n field: string,\n country: string,\n ignoreIfFormatterExists: boolean\n): number | null => {\n // In ignoreIfFormatterExists is true we expect the formatter function to also act to limit length\n if (ignoreIfFormatterExists && formattingRules[country]?.[field]?.formatterFn) {\n return null;\n }\n const maxLength = formattingRules[country]?.[field]?.maxlength;\n return maxLength ? maxLength : MAX_LENGTH;\n};\n\n// Not null or undefined or only spaces\nexport const isEmpty = (input: string) => !!(input == null || /^[\\s]*$/.test(input));\n\nexport const isString = (input: unknown) => typeof input === 'string' || input instanceof String;\nexport const hasText = (input: string) => isString(input) && !isEmpty(input);\n\n// Block emojis and control/format characters, allow everything else\nconst INVALID_CHARS_REGEX_SOURCE = '(?:[\\\\p{Extended_Pictographic}\\\\p{Regional_Indicator}\\\\p{Cc}\\\\p{Cf}]|[0-9#*]\\\\uFE0F?\\\\u20E3)';\nconst [INVALID_CHARS_TEST, INVALID_CHARS_STRIP] = ((): [RegExp, RegExp] => {\n try {\n // This is inside a try/catch just in case the browser doesn't support Unicode property escapes\n return [new RegExp(INVALID_CHARS_REGEX_SOURCE, 'u'), new RegExp(INVALID_CHARS_REGEX_SOURCE, 'gu')];\n } catch {\n // Fallback for browsers without Unicode property escapes - just block control chars\n const fallbackRegex = '[\\\\u0000-\\\\u001F\\\\u007F-\\\\u009F]';\n return [new RegExp(fallbackRegex), new RegExp(fallbackRegex, 'g')];\n }\n})();\n\n// Generates a regEx ideal for use in a String.replace call for use in a formatter\n// e.g. getFormattingRegEx('^\\\\d', 'g') will generate: /[^\\d]/g which is a regEx to match anything that is not a digit\nexport const getFormattingRegEx = (specChars: string, flags = 'g') => new RegExp(`[${specChars}]`, flags);\n\nexport const exactLength = (input: string, length: number) => {\n if (isEmpty(input)) {\n return true;\n }\n return input.length === length;\n};\n\nexport const validateForSpecialChars = (text: string): boolean => {\n if (!text.length) return true;\n // Returns true if no invalid characters found\n return !INVALID_CHARS_TEST.test(text);\n};\n\nexport const stripInvalidChars = (text: string): string => text.replace(INVALID_CHARS_STRIP, '');\n\n// Trim both ends and never allow more than 1 space in between\nexport const trimValWithOneSpace = (val: string) => val.trim().replace(/\\s+/g, ' ');\n"],"names":["getMaxLengthByFieldAndCountry","formattingRules","field","country","ignoreIfFormatterExists","formatterFn","maxLength","maxlength","isEmpty","input","test","INVALID_CHARS_REGEX_SOURCE","INVALID_CHARS_TEST","INVALID_CHARS_STRIP","RegExp","fallbackRegex","getFormattingRegEx","specChars","flags","validateForSpecialChars","text","length","stripInvalidChars","replace","trimValWithOneSpace","val","trim"],"mappings":"AAEA,MAEaA,EAAgC,CACzCC,EACAC,EACAC,EACAC,KAGA,GAA+BH,EAAgBE,KAAWD,IAAQG,YAC9D,OAAO,KAEX,MAAMC,EAAYL,EAAgBE,KAAWD,IAAQK,UACrD,OAAOD,GAbQ,IAiBNE,EAAWC,KAA8B,MAATA,IAAiB,UAAUC,KAAKD,IAMvEE,EAA6B,gGAC5BC,EAAoBC,GAAuB,MAC9C,IAEI,MAAO,CAAC,IAAIC,OAAOH,EAA4B,KAAM,IAAIG,OAAOH,EAA4B,MAChG,CAAE,MAEE,MAAMI,EAAgB,mCACtB,MAAO,CAAC,IAAID,OAAOC,GAAgB,IAAID,OAAOC,EAAe,KACjE,CACJ,EATkD,GAarCC,EAAqB,CAACC,EAAmBC,EAAQ,MAAQ,IAAIJ,OAAO,IAAIG,KAAcC,GAStFC,EAA2BC,IAC/BA,EAAKC,SAEFT,EAAmBF,KAAKU,GAGvBE,EAAqBF,GAAyBA,EAAKG,QAAQV,EAAqB,IAGhFW,EAAuBC,GAAgBA,EAAIC,OAAOH,QAAQ,OAAQ"}
1
+ {"version":3,"file":"validator-utils.js","sources":["../../../src/utils/validator-utils.ts"],"sourcesContent":["import { CountryFormatRules } from './Validator/types';\n\nconst MAX_LENGTH = 30;\n\nexport const getMaxLengthByFieldAndCountry = (\n formattingRules: CountryFormatRules,\n field: string,\n country: string | undefined,\n ignoreIfFormatterExists: boolean\n): number | undefined => {\n // In ignoreIfFormatterExists is true we expect the formatter function to also act to limit length\n if (ignoreIfFormatterExists && country && formattingRules[country]?.[field]?.formatterFn) {\n return undefined;\n }\n const maxLength = country ? formattingRules[country]?.[field]?.maxlength : undefined;\n return maxLength ? maxLength : MAX_LENGTH;\n};\n\n// Not null or undefined or only spaces\nexport const isEmpty = (input: string) => !!(input == null || /^[\\s]*$/.test(input));\n\nexport const isString = (input: unknown) => typeof input === 'string' || input instanceof String;\nexport const hasText = (input: string) => isString(input) && !isEmpty(input);\n\n// Block emojis and control/format characters, allow everything else\nconst INVALID_CHARS_REGEX_SOURCE = '(?:[\\\\p{Extended_Pictographic}\\\\p{Regional_Indicator}\\\\p{Cc}\\\\p{Cf}]|[0-9#*]\\\\uFE0F?\\\\u20E3)';\nconst [INVALID_CHARS_TEST, INVALID_CHARS_STRIP] = ((): [RegExp, RegExp] => {\n try {\n // This is inside a try/catch just in case the browser doesn't support Unicode property escapes\n return [new RegExp(INVALID_CHARS_REGEX_SOURCE, 'u'), new RegExp(INVALID_CHARS_REGEX_SOURCE, 'gu')];\n } catch {\n // Fallback for browsers without Unicode property escapes - just block control chars\n const fallbackRegex = '[\\\\u0000-\\\\u001F\\\\u007F-\\\\u009F]';\n return [new RegExp(fallbackRegex), new RegExp(fallbackRegex, 'g')];\n }\n})();\n\n// Generates a regEx ideal for use in a String.replace call for use in a formatter\n// e.g. getFormattingRegEx('^\\\\d', 'g') will generate: /[^\\d]/g which is a regEx to match anything that is not a digit\nexport const getFormattingRegEx = (specChars: string, flags = 'g') => new RegExp(`[${specChars}]`, flags);\n\nexport const exactLength = (input: string, length: number) => {\n if (isEmpty(input)) {\n return true;\n }\n return input.length === length;\n};\n\nexport const validateForSpecialChars = (text: string): boolean => {\n if (!text.length) return true;\n // Returns true if no invalid characters found\n return !INVALID_CHARS_TEST.test(text);\n};\n\nexport const stripInvalidChars = (text: string): string => text.replace(INVALID_CHARS_STRIP, '');\n\n// Trim both ends and never allow more than 1 space in between\nexport const trimValWithOneSpace = (val: string) => val.trim().replace(/\\s+/g, ' ');\n"],"names":["getMaxLengthByFieldAndCountry","formattingRules","field","country","ignoreIfFormatterExists","formatterFn","maxLength","maxlength","undefined","isEmpty","input","test","INVALID_CHARS_REGEX_SOURCE","INVALID_CHARS_TEST","INVALID_CHARS_STRIP","RegExp","fallbackRegex","getFormattingRegEx","specChars","flags","validateForSpecialChars","text","length","stripInvalidChars","replace","trimValWithOneSpace","val","trim"],"mappings":"AAEA,MAEaA,EAAgC,CACzCC,EACAC,EACAC,EACAC,KAGA,GAA+BD,GAAWF,EAAgBE,KAAWD,IAAQG,YACzE,OAEJ,MAAMC,EAAYH,EAAUF,EAAgBE,KAAWD,IAAQK,eAAYC,EAC3E,OAAOF,GAbQ,IAiBNG,EAAWC,KAA8B,MAATA,IAAiB,UAAUC,KAAKD,IAMvEE,EAA6B,gGAC5BC,EAAoBC,GAAuB,MAC9C,IAEI,MAAO,CAAC,IAAIC,OAAOH,EAA4B,KAAM,IAAIG,OAAOH,EAA4B,MAChG,CAAE,MAEE,MAAMI,EAAgB,mCACtB,MAAO,CAAC,IAAID,OAAOC,GAAgB,IAAID,OAAOC,EAAe,KACjE,CACJ,EATkD,GAarCC,EAAqB,CAACC,EAAmBC,EAAQ,MAAQ,IAAIJ,OAAO,IAAIG,KAAcC,GAStFC,EAA2BC,IAC/BA,EAAKC,SAEFT,EAAmBF,KAAKU,GAGvBE,EAAqBF,GAAyBA,EAAKG,QAAQV,EAAqB,IAGhFW,EAAuBC,GAAgBA,EAAIC,OAAOH,QAAQ,OAAQ"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as o}from"../internal/UIElement/UIElement.js";import t from"../../utils/browserInfo.js";import n from"./components/AmazonPayComponent.js";import r from"./defaultProps.js";import{getCheckoutDetails as s}from"./services.js";import{TxVariants as i}from"../tx-variants.js";import{sanitizeResponse as l,verifyPaymentDidNotFail as c}from"../internal/UIElement/utils.js";import{AnalyticsInfoEvent as p,InfoEventType as a}from"../../core/Analytics/events/AnalyticsInfoEvent.js";function u(e,o,t){return o in e?Object.defineProperty(e,o,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[o]=t,e}function d(e){for(var o=1;o<arguments.length;o++){var t=null!=arguments[o]?arguments[o]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(o){u(e,o,t[o])})}return e}function h(e,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):function(e){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);o.push.apply(o,t)}return o}(Object(o)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}),e}class f extends o{formatProps(e){var o,t;return h(d({},e),{checkoutMode:e.isDropin?"ProcessOrder":e.checkoutMode,environment:null===(o=e.environment)||void 0===o?void 0:o.toUpperCase(),locale:null===(t=e.locale)||void 0===t?void 0:t.replace("-","_"),productType:e.isDropin&&!e.addressDetails?"PayOnly":e.productType})}formatData(){const{amazonCheckoutSessionId:e}=this.props;return{paymentMethod:d({type:f.type},e&&{checkoutSessionId:e}),browserInfo:this.browserInfo}}beforeRender(e){const o=new p(d({type:a.rendered,component:this.type,configData:h(d({},e),{showPayButton:this.props.showPayButton})},(null==e?void 0:e.isExpress)&&{isExpress:e.isExpress},(null==e?void 0:e.expressPage)&&{expressPage:e.expressPage}));this.analytics.sendAnalytics(o)}getShopperDetails(){const{amazonCheckoutSessionId:e,configuration:o={},loadingContext:t,clientKey:n}=this.props;if(!e)return console.error("Could not shopper details. Missing checkoutSessionId.");const r={checkoutSessionId:e,getDeliveryAddress:!0,publicKeyId:(null==o?void 0:o.publicKeyId)||"",region:o.region};return s(null!=t?t:"",null!=n?n:"",r)}handleDeclineFlow(){var e;const{amazonCheckoutSessionId:o,configuration:t={},loadingContext:n,clientKey:r}=this.props;if(!o)return console.error("Could handle the decline flow. Missing checkoutSessionId.");const i={checkoutSessionId:o,getDeclineFlowUrl:!0,publicKeyId:null!==(e=t.publicKeyId)&&void 0!==e?e:"",region:t.region};s(null!=n?n:"",null!=r?r:"",i).then((e={})=>{if(!(null==e?void 0:e.declineFlowUrl))throw e;window.location.assign(e.declineFlowUrl)}).catch(e=>{this.props.onError&&this.props.onError(e,this)})}get isValid(){return!0}get browserInfo(){return t()}submit(){var e,o;const t=(null===(o=this.componentRef)||void 0===o||null===(e=o.getSubmitFunction)||void 0===e?void 0:e.call(o))||null;if(t)return t();this.makePaymentsCall().then(l).then(c).then(this.handleResponse).catch(this.handleFailedResult)}componentToRender(){return e(n,d({setComponentRef:this.setComponentRef,showPayButton:this.props.showPayButton,onClick:this.props.onClick,onError:this.props.onError,onSignOut:this.props.onSignOut},this.props))}}u(f,"type",i.amazonpay),u(f,"defaultProps",r);export{f as AmazonPayElement,f as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as o}from"../internal/UIElement/UIElement.js";import t from"../../utils/browserInfo.js";import n from"./components/AmazonPayComponent.js";import r from"./defaultProps.js";import{getCheckoutDetails as s}from"./services.js";import{TxVariants as i}from"../tx-variants.js";import{sanitizeResponse as l,verifyPaymentDidNotFail as c}from"../internal/UIElement/utils.js";import{AnalyticsInfoEvent as p,InfoEventType as a}from"../../core/Analytics/events/AnalyticsInfoEvent.js";function u(e,o,t){return o in e?Object.defineProperty(e,o,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[o]=t,e}function d(e){for(var o=1;o<arguments.length;o++){var t=null!=arguments[o]?arguments[o]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(o){u(e,o,t[o])})}return e}function h(e,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):function(e){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);o.push.apply(o,t)}return o}(Object(o)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))}),e}class f extends o{formatProps(e){var o,t;return h(d({},e),{checkoutMode:e.isDropin?"ProcessOrder":e.checkoutMode,environment:null===(o=e.environment)||void 0===o?void 0:o.toUpperCase(),locale:null===(t=e.locale)||void 0===t?void 0:t.replace("-","_"),productType:e.isDropin&&!e.addressDetails?"PayOnly":e.productType})}formatData(){const{amazonCheckoutSessionId:e}=this.props;return{paymentMethod:d({type:f.type},e&&{checkoutSessionId:e}),browserInfo:this.browserInfo}}beforeRender(e){const o=new p(d({type:a.rendered,component:this.type,configData:h(d({},e),{showPayButton:this.props.showPayButton})},(null==e?void 0:e.isExpress)&&{isExpress:e.isExpress},(null==e?void 0:e.expressPage)&&{expressPage:e.expressPage}));this.analytics.sendAnalytics(o)}getShopperDetails(){const{amazonCheckoutSessionId:e,configuration:o={},loadingContext:t,clientKey:n}=this.props;if(!e)return console.error("Could not shopper details. Missing checkoutSessionId.");const r={checkoutSessionId:e,getDeliveryAddress:!0,publicKeyId:(null==o?void 0:o.publicKeyId)||"",region:o.region};return s(null!=t?t:"",null!=n?n:"",r)}handleDeclineFlow(){var e;const{amazonCheckoutSessionId:o,configuration:t={},loadingContext:n,clientKey:r}=this.props;if(!o)return console.error("Could handle the decline flow. Missing checkoutSessionId.");const i={checkoutSessionId:o,getDeclineFlowUrl:!0,publicKeyId:null!==(e=t.publicKeyId)&&void 0!==e?e:"",region:t.region};s(null!=n?n:"",null!=r?r:"",i).then((e={})=>{if(!(null==e?void 0:e.declineFlowUrl))throw e;window.location.assign(e.declineFlowUrl)}).catch(e=>{this.props.onError&&this.props.onError(e,this)})}get isValid(){return!0}get browserInfo(){return t()}submit(){var e,o,t;const n=(null===(o=this.componentRef)||void 0===o||null===(e=o.getSubmitFunction)||void 0===e?void 0:e.call(o))||null;if(n)return n();null===(t=this.makePaymentsCall())||void 0===t||t.then(l).then(c).then(this.handleResponse).catch(this.handleFailedResult)}componentToRender(){return e(n,d({setComponentRef:this.setComponentRef,showPayButton:this.props.showPayButton,onClick:this.props.onClick,onError:this.props.onError,onSignOut:this.props.onSignOut},this.props))}}u(f,"type",i.amazonpay),u(f,"defaultProps",r);export{f as AmazonPayElement,f as default};
2
2
  //# sourceMappingURL=AmazonPay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AmazonPay.js","sources":["../../../../src/components/AmazonPay/AmazonPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AmazonPayComponent from './components/AmazonPayComponent';\nimport { AmazonPayElementData, AmazonPayConfiguration, CheckoutDetailsRequest, AmazonPayComponentRef } from './types';\nimport defaultProps from './defaultProps';\nimport { getCheckoutDetails } from './services';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\nimport './AmazonPay.scss';\n\nexport class AmazonPayElement extends UIElement<AmazonPayConfiguration> {\n public static readonly type = TxVariants.amazonpay;\n\n protected static readonly defaultProps = defaultProps;\n\n declare protected componentRef: AmazonPayComponentRef | undefined;\n\n formatProps(props: AmazonPayConfiguration): AmazonPayConfiguration {\n return {\n ...props,\n checkoutMode: props.isDropin ? 'ProcessOrder' : props.checkoutMode,\n environment: props.environment?.toUpperCase(),\n locale: props.locale?.replace('-', '_'),\n productType: props.isDropin && !props.addressDetails ? 'PayOnly' : props.productType\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): AmazonPayElementData {\n const { amazonCheckoutSessionId: checkoutSessionId } = this.props;\n return {\n paymentMethod: {\n type: AmazonPayElement.type,\n ...(checkoutSessionId && { checkoutSessionId })\n },\n browserInfo: this.browserInfo\n };\n }\n\n protected override beforeRender(configSetByMerchant?: AmazonPayConfiguration) {\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.isExpress && { isExpress: configSetByMerchant.isExpress }),\n ...(configSetByMerchant?.expressPage && { expressPage: configSetByMerchant.expressPage })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n getShopperDetails() {\n const { amazonCheckoutSessionId, configuration = {}, loadingContext, clientKey } = this.props;\n if (!amazonCheckoutSessionId) return console.error('Could not shopper details. Missing checkoutSessionId.');\n\n const request: CheckoutDetailsRequest = {\n checkoutSessionId: amazonCheckoutSessionId,\n getDeliveryAddress: true,\n publicKeyId: configuration?.publicKeyId || '',\n region: configuration.region\n };\n\n return getCheckoutDetails(loadingContext ?? '', clientKey ?? '', request);\n }\n\n public handleDeclineFlow() {\n const { amazonCheckoutSessionId, configuration = {}, loadingContext, clientKey } = this.props;\n if (!amazonCheckoutSessionId) return console.error('Could handle the decline flow. Missing checkoutSessionId.');\n\n const request: CheckoutDetailsRequest = {\n checkoutSessionId: amazonCheckoutSessionId,\n getDeclineFlowUrl: true,\n publicKeyId: configuration.publicKeyId ?? '',\n region: configuration.region\n };\n\n getCheckoutDetails(loadingContext ?? '', clientKey ?? '', request)\n .then((response = {}) => {\n if (!response?.declineFlowUrl) throw response;\n window.location.assign(response.declineFlowUrl);\n })\n .catch(error => {\n if (this.props.onError) this.props.onError(error, this);\n });\n }\n\n get isValid() {\n return true;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n public submit(): void {\n const amazonComponentSubmitFunction = this.componentRef?.getSubmitFunction?.() || null;\n if (amazonComponentSubmitFunction) {\n return amazonComponentSubmitFunction();\n }\n this.makePaymentsCall().then(sanitizeResponse).then(verifyPaymentDidNotFail).then(this.handleResponse).catch(this.handleFailedResult);\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <AmazonPayComponent\n setComponentRef={this.setComponentRef}\n showPayButton={this.props.showPayButton}\n onClick={this.props.onClick}\n onError={this.props.onError}\n onSignOut={this.props.onSignOut}\n {...this.props}\n />\n );\n }\n}\n\nexport default AmazonPayElement;\n"],"names":["AmazonPayElement","UIElement","formatProps","props","_object_spread_props","_object_spread","checkoutMode","isDropin","environment","toUpperCase","locale","replace","productType","addressDetails","formatData","amazonCheckoutSessionId","checkoutSessionId","this","paymentMethod","type","browserInfo","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","InfoEventType","rendered","component","configData","showPayButton","isExpress","expressPage","analytics","sendAnalytics","getShopperDetails","configuration","loadingContext","clientKey","console","error","request","getDeliveryAddress","publicKeyId","region","getCheckoutDetails","handleDeclineFlow","getDeclineFlowUrl","then","response","declineFlowUrl","window","location","assign","catch","onError","isValid","collectBrowserInfo","submit","_this_componentRef_getSubmitFunction","_this_componentRef","amazonComponentSubmitFunction","componentRef","getSubmitFunction","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","handleFailedResult","componentToRender","h","AmazonPayComponent","setComponentRef","onClick","onSignOut","_define_property","TxVariants","amazonpay","defaultProps"],"mappings":"q1CAaO,MAAMA,UAAyBC,EAOlCC,WAAAA,CAAYC,OAISA,EACLA,EAJZ,OAAOC,EAAAC,EAAA,CAAA,EACAF,GAAAA,CACHG,aAAcH,EAAMI,SAAW,eAAiBJ,EAAMG,aACtDE,YAA8B,QAAjBL,EAAAA,EAAMK,uBAANL,OAAAA,EAAAA,EAAmBM,cAChCC,eAAQP,EAAAA,EAAMO,cAANP,IAAAA,OAAAA,EAAAA,EAAcQ,QAAQ,IAAK,KACnCC,YAAaT,EAAMI,WAAaJ,EAAMU,eAAiB,UAAYV,EAAMS,aAEjF,CAKAE,UAAAA,GACI,MAAQC,wBAAyBC,GAAsBC,KAAKd,MAC5D,MAAO,CACHe,cAAeb,EAAA,CACXc,KAAMnB,EAAiBmB,MACnBH,GAAqB,CAAEA,sBAE/BI,YAAaH,KAAKG,YAE1B,CAEmBC,YAAAA,CAAaC,GAC5B,MAAMC,EAAQ,IAAIC,EAAmBnB,EAAA,CACjCc,KAAMM,EAAcC,SACpBC,UAAWV,KAAKE,KAChBS,WAAYxB,EAAAC,EAAA,CAAA,EAAKiB,GAAAA,CAAqBO,cAAeZ,KAAKd,MAAM0B,kBAC5DP,aAAAA,EAAAA,EAAqBQ,YAAa,CAAEA,UAAWR,EAAoBQ,YACnER,aAAAA,EAAAA,EAAqBS,cAAe,CAAEA,YAAaT,EAAoBS,eAG/Ed,KAAKe,UAAUC,cAAcV,EACjC,CAEAW,iBAAAA,GACI,MAAMnB,wBAAEA,EAAuBoB,cAAEA,EAAgB,CAAA,EAAEC,eAAEA,EAAcC,UAAEA,GAAcpB,KAAKd,MACxF,IAAKY,EAAyB,OAAOuB,QAAQC,MAAM,yDAEnD,MAAMC,EAAkC,CACpCxB,kBAAmBD,EACnB0B,oBAAoB,EACpBC,aAAaP,aAAAA,EAAAA,EAAeO,cAAe,GAC3CC,OAAQR,EAAcQ,QAG1B,OAAOC,EAAmBR,QAAAA,EAAkB,GAAIC,QAAAA,EAAa,GAAIG,EACrE,CAEOK,iBAAAA,GAOcV,IAAAA,EANjB,MAAMpB,wBAAEA,EAAuBoB,cAAEA,EAAgB,CAAA,EAAEC,eAAEA,EAAcC,UAAEA,GAAcpB,KAAKd,MACxF,IAAKY,EAAyB,OAAOuB,QAAQC,MAAM,6DAEnD,MAAMC,EAAkC,CACpCxB,kBAAmBD,EACnB+B,mBAAmB,EACnBJ,YAAsC,QAAzBP,EAAAA,EAAcO,uBAAdP,EAAAA,EAA6B,GAC1CQ,OAAQR,EAAcQ,QAG1BC,EAAmBR,QAAAA,EAAkB,GAAIC,QAAAA,EAAa,GAAIG,GACrDO,KAAK,CAACC,EAAW,MACd,KAAKA,aAAAA,EAAAA,EAAUC,gBAAgB,MAAMD,EACrCE,OAAOC,SAASC,OAAOJ,EAASC,kBAEnCI,MAAMd,IACCtB,KAAKd,MAAMmD,SAASrC,KAAKd,MAAMmD,QAAQf,EAAOtB,OAE9D,CAEA,WAAIsC,GACA,OAAO,CACX,CAEA,eAAInC,GACA,OAAOoC,GACX,CAEOC,MAAAA,OACmCC,EAAAC,EAAtC,MAAMC,GAAiD,QAAjBD,EAAA1C,KAAK4C,oBAAL,IAAAF,GAAoC,QAApCD,EAAAC,EAAmBG,yBAAnB,IAAAJ,SAAAA,OAAAC,KAA4C,KAClF,GAAIC,EACA,OAAOA,IAEX3C,KAAK8C,mBAAmBhB,KAAKiB,GAAkBjB,KAAKkB,GAAyBlB,KAAK9B,KAAKiD,gBAAgBb,MAAMpC,KAAKkD,mBACtH,CAEmBC,iBAAAA,GACf,OACIC,EAACC,EAAAA,EAAAA,CACGC,gBAAiBtD,KAAKsD,gBACtB1C,cAAeZ,KAAKd,MAAM0B,cAC1B2C,QAASvD,KAAKd,MAAMqE,QACpBlB,QAASrC,KAAKd,MAAMmD,QACpBmB,UAAWxD,KAAKd,MAAMsE,WAClBxD,KAAKd,OAGrB,EAxGAuE,EADS1E,EACcmB,OAAOwD,EAAWC,WAEzCF,EAHS1E,EAGiB6E,eAAeA"}
1
+ {"version":3,"file":"AmazonPay.js","sources":["../../../../src/components/AmazonPay/AmazonPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AmazonPayComponent from './components/AmazonPayComponent';\nimport { AmazonPayElementData, AmazonPayConfiguration, CheckoutDetailsRequest, AmazonPayComponentRef } from './types';\nimport defaultProps from './defaultProps';\nimport { getCheckoutDetails } from './services';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/events/AnalyticsInfoEvent';\n\nimport './AmazonPay.scss';\n\nexport class AmazonPayElement extends UIElement<AmazonPayConfiguration> {\n public static readonly type = TxVariants.amazonpay;\n\n protected static readonly defaultProps = defaultProps;\n\n declare protected componentRef: AmazonPayComponentRef | undefined;\n\n formatProps(props: AmazonPayConfiguration): AmazonPayConfiguration {\n return {\n ...props,\n checkoutMode: props.isDropin ? 'ProcessOrder' : props.checkoutMode,\n environment: props.environment?.toUpperCase(),\n locale: props.locale?.replace('-', '_'),\n productType: props.isDropin && !props.addressDetails ? 'PayOnly' : props.productType\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): AmazonPayElementData {\n const { amazonCheckoutSessionId: checkoutSessionId } = this.props;\n return {\n paymentMethod: {\n type: AmazonPayElement.type,\n ...(checkoutSessionId && { checkoutSessionId })\n },\n browserInfo: this.browserInfo\n };\n }\n\n protected override beforeRender(configSetByMerchant?: AmazonPayConfiguration) {\n const event = new AnalyticsInfoEvent({\n type: InfoEventType.rendered,\n component: this.type,\n configData: { ...configSetByMerchant, showPayButton: this.props.showPayButton },\n ...(configSetByMerchant?.isExpress && { isExpress: configSetByMerchant.isExpress }),\n ...(configSetByMerchant?.expressPage && { expressPage: configSetByMerchant.expressPage })\n });\n\n this.analytics.sendAnalytics(event);\n }\n\n getShopperDetails() {\n const { amazonCheckoutSessionId, configuration = {}, loadingContext, clientKey } = this.props;\n if (!amazonCheckoutSessionId) return console.error('Could not shopper details. Missing checkoutSessionId.');\n\n const request: CheckoutDetailsRequest = {\n checkoutSessionId: amazonCheckoutSessionId,\n getDeliveryAddress: true,\n publicKeyId: configuration?.publicKeyId || '',\n region: configuration.region\n };\n\n return getCheckoutDetails(loadingContext ?? '', clientKey ?? '', request);\n }\n\n public handleDeclineFlow() {\n const { amazonCheckoutSessionId, configuration = {}, loadingContext, clientKey } = this.props;\n if (!amazonCheckoutSessionId) return console.error('Could handle the decline flow. Missing checkoutSessionId.');\n\n const request: CheckoutDetailsRequest = {\n checkoutSessionId: amazonCheckoutSessionId,\n getDeclineFlowUrl: true,\n publicKeyId: configuration.publicKeyId ?? '',\n region: configuration.region\n };\n\n getCheckoutDetails(loadingContext ?? '', clientKey ?? '', request)\n .then((response = {}) => {\n if (!response?.declineFlowUrl) throw response;\n window.location.assign(response.declineFlowUrl);\n })\n .catch(error => {\n if (this.props.onError) this.props.onError(error, this);\n });\n }\n\n get isValid() {\n return true;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n public submit(): void {\n const amazonComponentSubmitFunction = this.componentRef?.getSubmitFunction?.() || null;\n if (amazonComponentSubmitFunction) {\n return amazonComponentSubmitFunction();\n }\n this.makePaymentsCall()?.then(sanitizeResponse).then(verifyPaymentDidNotFail).then(this.handleResponse).catch(this.handleFailedResult);\n }\n\n protected override componentToRender(): h.JSX.Element {\n return (\n <AmazonPayComponent\n setComponentRef={this.setComponentRef}\n showPayButton={this.props.showPayButton}\n onClick={this.props.onClick}\n onError={this.props.onError}\n onSignOut={this.props.onSignOut}\n {...this.props}\n />\n );\n }\n}\n\nexport default AmazonPayElement;\n"],"names":["AmazonPayElement","UIElement","formatProps","props","_object_spread_props","_object_spread","checkoutMode","isDropin","environment","toUpperCase","locale","replace","productType","addressDetails","formatData","amazonCheckoutSessionId","checkoutSessionId","this","paymentMethod","type","browserInfo","beforeRender","configSetByMerchant","event","AnalyticsInfoEvent","InfoEventType","rendered","component","configData","showPayButton","isExpress","expressPage","analytics","sendAnalytics","getShopperDetails","configuration","loadingContext","clientKey","console","error","request","getDeliveryAddress","publicKeyId","region","getCheckoutDetails","handleDeclineFlow","getDeclineFlowUrl","then","response","declineFlowUrl","window","location","assign","catch","onError","isValid","collectBrowserInfo","submit","_this_componentRef_getSubmitFunction","_this_componentRef","_this_makePaymentsCall","amazonComponentSubmitFunction","componentRef","getSubmitFunction","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","handleResponse","handleFailedResult","componentToRender","h","AmazonPayComponent","setComponentRef","onClick","onSignOut","_define_property","TxVariants","amazonpay","defaultProps"],"mappings":"q1CAaO,MAAMA,UAAyBC,EAOlCC,WAAAA,CAAYC,OAISA,EACLA,EAJZ,OAAOC,EAAAC,EAAA,CAAA,EACAF,GAAAA,CACHG,aAAcH,EAAMI,SAAW,eAAiBJ,EAAMG,aACtDE,YAA8B,QAAjBL,EAAAA,EAAMK,uBAANL,OAAAA,EAAAA,EAAmBM,cAChCC,eAAQP,EAAAA,EAAMO,cAANP,IAAAA,OAAAA,EAAAA,EAAcQ,QAAQ,IAAK,KACnCC,YAAaT,EAAMI,WAAaJ,EAAMU,eAAiB,UAAYV,EAAMS,aAEjF,CAKAE,UAAAA,GACI,MAAQC,wBAAyBC,GAAsBC,KAAKd,MAC5D,MAAO,CACHe,cAAeb,EAAA,CACXc,KAAMnB,EAAiBmB,MACnBH,GAAqB,CAAEA,sBAE/BI,YAAaH,KAAKG,YAE1B,CAEmBC,YAAAA,CAAaC,GAC5B,MAAMC,EAAQ,IAAIC,EAAmBnB,EAAA,CACjCc,KAAMM,EAAcC,SACpBC,UAAWV,KAAKE,KAChBS,WAAYxB,EAAAC,EAAA,CAAA,EAAKiB,GAAAA,CAAqBO,cAAeZ,KAAKd,MAAM0B,kBAC5DP,aAAAA,EAAAA,EAAqBQ,YAAa,CAAEA,UAAWR,EAAoBQ,YACnER,aAAAA,EAAAA,EAAqBS,cAAe,CAAEA,YAAaT,EAAoBS,eAG/Ed,KAAKe,UAAUC,cAAcV,EACjC,CAEAW,iBAAAA,GACI,MAAMnB,wBAAEA,EAAuBoB,cAAEA,EAAgB,CAAA,EAAEC,eAAEA,EAAcC,UAAEA,GAAcpB,KAAKd,MACxF,IAAKY,EAAyB,OAAOuB,QAAQC,MAAM,yDAEnD,MAAMC,EAAkC,CACpCxB,kBAAmBD,EACnB0B,oBAAoB,EACpBC,aAAaP,aAAAA,EAAAA,EAAeO,cAAe,GAC3CC,OAAQR,EAAcQ,QAG1B,OAAOC,EAAmBR,QAAAA,EAAkB,GAAIC,QAAAA,EAAa,GAAIG,EACrE,CAEOK,iBAAAA,GAOcV,IAAAA,EANjB,MAAMpB,wBAAEA,EAAuBoB,cAAEA,EAAgB,CAAA,EAAEC,eAAEA,EAAcC,UAAEA,GAAcpB,KAAKd,MACxF,IAAKY,EAAyB,OAAOuB,QAAQC,MAAM,6DAEnD,MAAMC,EAAkC,CACpCxB,kBAAmBD,EACnB+B,mBAAmB,EACnBJ,YAAsC,QAAzBP,EAAAA,EAAcO,uBAAdP,EAAAA,EAA6B,GAC1CQ,OAAQR,EAAcQ,QAG1BC,EAAmBR,QAAAA,EAAkB,GAAIC,QAAAA,EAAa,GAAIG,GACrDO,KAAK,CAACC,EAAW,MACd,KAAKA,aAAAA,EAAAA,EAAUC,gBAAgB,MAAMD,EACrCE,OAAOC,SAASC,OAAOJ,EAASC,kBAEnCI,MAAMd,IACCtB,KAAKd,MAAMmD,SAASrC,KAAKd,MAAMmD,QAAQf,EAAOtB,OAE9D,CAEA,WAAIsC,GACA,OAAO,CACX,CAEA,eAAInC,GACA,OAAOoC,GACX,CAEOC,MAAAA,GACmC,IAAAC,EAAAC,EAItCC,EAJA,MAAMC,GAAiD,QAAjBF,EAAA1C,KAAK6C,oBAAL,IAAAH,GAAoC,QAApCD,EAAAC,EAAmBI,yBAAnB,IAAAL,SAAAA,OAAAC,KAA4C,KAClF,GAAIE,EACA,OAAOA,IAEU,QAArBD,EAAA3C,KAAK+C,8BAALJ,GAAAA,EAAyBb,KAAKkB,GAAkBlB,KAAKmB,GAAyBnB,KAAK9B,KAAKkD,gBAAgBd,MAAMpC,KAAKmD,mBACvH,CAEmBC,iBAAAA,GACf,OACIC,EAACC,EAAAA,EAAAA,CACGC,gBAAiBvD,KAAKuD,gBACtB3C,cAAeZ,KAAKd,MAAM0B,cAC1B4C,QAASxD,KAAKd,MAAMsE,QACpBnB,QAASrC,KAAKd,MAAMmD,QACpBoB,UAAWzD,KAAKd,MAAMuE,WAClBzD,KAAKd,OAGrB,EAxGAwE,EADS3E,EACcmB,OAAOyD,EAAWC,WAEzCF,EAHS3E,EAGiB8E,eAAeA"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../../external/preact/dist/preact.js";import{useState as e,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import{getAmazonSignature as r}from"../services.js";import{getPayloadJSON as n,getAmazonPaySettings as i}from"../utils.js";import{useCoreContext as c}from"../../../core/Context/CoreProvider.js";import{useAmount as a}from"../../../core/Context/AmountProvider.js";function s(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function u(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}function l(l){const{amount:p}=a(),{loadingContext:f}=c(),{amazonRef:y,configuration:m={}}=l,[b,O]=e(null),h=n(l,p),P=i(l,p),d=()=>new Promise((t,e)=>{l.onClick(t,e)}).then(this.initCheckout).catch(t=>{l.onError&&l.onError(t,this.componentRef)});return this.initCheckout=()=>{const t={payloadJSON:JSON.stringify(h),publicKeyId:m.publicKeyId,signature:b};y.Pay.initCheckout(u(function(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),r.forEach(function(e){s(t,e,o[e])})}return t}({},P),{createCheckoutSessionConfig:t}))},o(()=>{const{clientKey:t}=l;r(f,t,h).then(t=>{if(!(null==t?void 0:t.signature))return console.error("Could not get AmazonPay signature");O(t.signature),l.showPayButton&&y.Pay.renderButton("#amazonPayButton",P).onClick(()=>{d()})}).catch(t=>{console.error(t),l.onError&&l.onError(t,this.componentRef)})},[]),l.showPayButton?t("div",{className:"adyen-checkout__amazonpay__button",id:"amazonPayButton","data-testid":"amazon-pay-button"}):null}export{l as default};
1
+ import{createElement as t}from"../../../external/preact/dist/preact.js";import{useState as e,useEffect as o}from"../../../external/preact/hooks/dist/hooks.js";import{getAmazonSignature as r}from"../services.js";import{getPayloadJSON as n,getAmazonPaySettings as i}from"../utils.js";import{useCoreContext as c}from"../../../core/Context/CoreProvider.js";import{useAmount as a}from"../../../core/Context/AmountProvider.js";function s(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function u(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}function l(l){const{amount:p}=a(),{loadingContext:f}=c(),{amazonRef:y,configuration:m={}}=l,[b,O]=e(null),P=n(l,p),d=i(l,p),h=()=>{(l.onClick?new Promise((t,e)=>{var o;null===(o=l.onClick)||void 0===o||o.call(l,t,e)}):Promise.resolve()).then(this.initCheckout).catch(t=>{l.onError&&l.onError(t,this.componentRef)})};return this.initCheckout=()=>{const t={payloadJSON:JSON.stringify(P),publicKeyId:m.publicKeyId,signature:b};y.Pay.initCheckout(u(function(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),r.forEach(function(e){s(t,e,o[e])})}return t}({},d),{createCheckoutSessionConfig:t}))},o(()=>{const{clientKey:t}=l;r(f,null!=t?t:"",P).then(t=>{if(!(null==t?void 0:t.signature))return console.error("Could not get AmazonPay signature");O(t.signature),l.showPayButton&&y.Pay.renderButton("#amazonPayButton",d).onClick(()=>{h()})}).catch(t=>{console.error(t),l.onError&&l.onError(t,this.componentRef)})},[]),l.showPayButton?t("div",{className:"adyen-checkout__amazonpay__button",id:"amazonPayButton","data-testid":"amazon-pay-button"}):null}export{l as default};
2
2
  //# sourceMappingURL=AmazonPayButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AmazonPayButton.js","sources":["../../../../../src/components/AmazonPay/components/AmazonPayButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { getAmazonSignature } from '../services';\nimport { getAmazonPaySettings, getPayloadJSON } from '../utils';\nimport { AmazonPayButtonProps, CheckoutSessionConfig, PayloadJSON } from '../types';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { useAmount } from '../../../core/Context/AmountProvider';\n\nexport default function AmazonPayButton(props: Readonly<AmazonPayButtonProps>) {\n const { amount } = useAmount();\n const { loadingContext } = useCoreContext();\n const { amazonRef, configuration = {} } = props;\n const [signature, setSignature] = useState<string>(null);\n const payloadJSON: PayloadJSON = getPayloadJSON(props, amount);\n const settings = getAmazonPaySettings(props, amount);\n\n const handleOnClick = () => {\n return new Promise((resolve, reject) => void props.onClick(resolve, reject)).then(this.initCheckout).catch(error => {\n if (props.onError) props.onError(error, this.componentRef);\n });\n };\n\n const renderAmazonPayButton = (): void => {\n const amazonPayButton = amazonRef.Pay.renderButton('#amazonPayButton', settings);\n amazonPayButton.onClick(() => void handleOnClick());\n };\n\n this.initCheckout = () => {\n const checkoutSessionConfig: CheckoutSessionConfig = {\n payloadJSON: JSON.stringify(payloadJSON),\n publicKeyId: configuration.publicKeyId,\n signature\n };\n\n amazonRef.Pay.initCheckout({\n ...settings,\n createCheckoutSessionConfig: checkoutSessionConfig\n });\n };\n\n useEffect(() => {\n const { clientKey } = props;\n\n getAmazonSignature(loadingContext, clientKey, payloadJSON)\n .then(response => {\n if (!response?.signature) return console.error('Could not get AmazonPay signature');\n setSignature(response.signature);\n if (props.showPayButton) renderAmazonPayButton();\n })\n .catch(error => {\n console.error(error);\n if (props.onError) props.onError(error, this.componentRef);\n });\n }, []);\n\n if (!props.showPayButton) return null;\n return <div className=\"adyen-checkout__amazonpay__button\" id=\"amazonPayButton\" data-testid=\"amazon-pay-button\" />;\n}\n"],"names":["AmazonPayButton","props","amount","useAmount","loadingContext","useCoreContext","amazonRef","configuration","signature","setSignature","useState","payloadJSON","getPayloadJSON","settings","getAmazonPaySettings","handleOnClick","Promise","resolve","reject","onClick","then","this","initCheckout","catch","error","onError","componentRef","checkoutSessionConfig","JSON","stringify","publicKeyId","Pay","_object_spread_props","_object_spread","createCheckoutSessionConfig","useEffect","clientKey","getAmazonSignature","response","console","showPayButton","renderButton","h","div","className","id","data-testid"],"mappings":"04BAQe,SAASA,EAAgBC,GACpC,MAAMC,OAAEA,GAAWC,KACbC,eAAEA,GAAmBC,KACrBC,UAAEA,EAASC,cAAEA,EAAgB,CAAA,GAAON,GACnCO,EAAWC,GAAgBC,EAAiB,MAC7CC,EAA2BC,EAAeX,EAAOC,GACjDW,EAAWC,EAAqBb,EAAOC,GAEvCa,EAAgB,IACX,IAAIC,QAAQ,CAACC,EAASC,KAAgBjB,EAAMkB,QAAQF,EAASC,KAASE,KAAKC,KAAKC,cAAcC,MAAMC,IACnGvB,EAAMwB,SAASxB,EAAMwB,QAAQD,EAAOH,KAAKK,gBAqCrD,OA5BAL,KAAKC,aAAe,KAChB,MAAMK,EAA+C,CACjDhB,YAAaiB,KAAKC,UAAUlB,GAC5BmB,YAAavB,EAAcuB,YAC3BtB,aAGJF,EAAUyB,IAAIT,aAAaU,oUAAAC,CAAA,CAAA,EACpBpB,GAAAA,CACHqB,4BAA6BP,MAIrCQ,EAAU,KACN,MAAMC,UAAEA,GAAcnC,EAEtBoC,EAAmBjC,EAAgBgC,EAAWzB,GACzCS,KAAKkB,IACF,KAAKA,aAAAA,EAAAA,EAAU9B,WAAW,OAAO+B,QAAQf,MAAM,qCAC/Cf,EAAa6B,EAAS9B,WAClBP,EAAMuC,eAxBMlC,EAAUyB,IAAIU,aAAa,mBAAoB5B,GACvDM,QAAQ,KAAWJ,QAyB9BQ,MAAMC,IACHe,QAAQf,MAAMA,GACVvB,EAAMwB,SAASxB,EAAMwB,QAAQD,EAAOH,KAAKK,iBAEtD,IAEEzB,EAAMuC,cACJE,EAACC,MAAAA,CAAIC,UAAU,oCAAoCC,GAAG,kBAAkBC,cAAY,sBAD1D,IAErC"}
1
+ {"version":3,"file":"AmazonPayButton.js","sources":["../../../../../src/components/AmazonPay/components/AmazonPayButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { getAmazonSignature } from '../services';\nimport { getAmazonPaySettings, getPayloadJSON } from '../utils';\nimport { AmazonPayButtonProps, CheckoutSessionConfig, PayloadJSON } from '../types';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { useAmount } from '../../../core/Context/AmountProvider';\n\nexport default function AmazonPayButton(props: Readonly<AmazonPayButtonProps>) {\n const { amount } = useAmount();\n const { loadingContext } = useCoreContext();\n const { amazonRef, configuration = {} } = props;\n const [signature, setSignature] = useState<string | null>(null);\n const payloadJSON: PayloadJSON = getPayloadJSON(props, amount);\n const settings = getAmazonPaySettings(props, amount);\n\n const handleOnClick = () => {\n const clickPromise = props.onClick ? new Promise((resolve, reject) => void props.onClick?.(resolve, reject)) : Promise.resolve();\n\n clickPromise.then(this.initCheckout).catch(error => {\n if (props.onError) props.onError(error, this.componentRef);\n });\n };\n\n const renderAmazonPayButton = (): void => {\n const amazonPayButton = amazonRef.Pay.renderButton('#amazonPayButton', settings);\n amazonPayButton.onClick(() => void handleOnClick());\n };\n\n this.initCheckout = () => {\n const checkoutSessionConfig: CheckoutSessionConfig = {\n payloadJSON: JSON.stringify(payloadJSON),\n publicKeyId: configuration.publicKeyId,\n signature\n };\n\n amazonRef.Pay.initCheckout({\n ...settings,\n createCheckoutSessionConfig: checkoutSessionConfig\n });\n };\n\n useEffect(() => {\n const { clientKey } = props;\n\n getAmazonSignature(loadingContext, clientKey ?? '', payloadJSON)\n .then(response => {\n if (!response?.signature) return console.error('Could not get AmazonPay signature');\n setSignature(response.signature);\n if (props.showPayButton) renderAmazonPayButton();\n })\n .catch(error => {\n console.error(error);\n if (props.onError) props.onError(error, this.componentRef);\n });\n }, []);\n\n if (!props.showPayButton) return null;\n return <div className=\"adyen-checkout__amazonpay__button\" id=\"amazonPayButton\" data-testid=\"amazon-pay-button\" />;\n}\n"],"names":["AmazonPayButton","props","amount","useAmount","loadingContext","useCoreContext","amazonRef","configuration","signature","setSignature","useState","payloadJSON","getPayloadJSON","settings","getAmazonPaySettings","handleOnClick","onClick","Promise","resolve","reject","then","this","initCheckout","catch","error","onError","componentRef","checkoutSessionConfig","JSON","stringify","publicKeyId","Pay","_object_spread_props","_object_spread","createCheckoutSessionConfig","useEffect","clientKey","getAmazonSignature","response","console","showPayButton","renderButton","h","div","className","id","data-testid"],"mappings":"04BAQe,SAASA,EAAgBC,GACpC,MAAMC,OAAEA,GAAWC,KACbC,eAAEA,GAAmBC,KACrBC,UAAEA,EAASC,cAAEA,EAAgB,CAAA,GAAON,GACnCO,EAAWC,GAAgBC,EAAwB,MACpDC,EAA2BC,EAAeX,EAAOC,GACjDW,EAAWC,EAAqBb,EAAOC,GAEvCa,EAAgB,MACGd,EAAMe,QAAU,IAAIC,QAAQ,CAACC,EAASC,KAAgBlB,IAAAA,UAAAA,EAAAA,EAAMe,eAANf,IAAAA,GAAAA,EAAAA,KAAAA,EAAgBiB,EAASC,KAAWF,QAAQC,WAE1GE,KAAKC,KAAKC,cAAcC,MAAMC,IACnCvB,EAAMwB,SAASxB,EAAMwB,QAAQD,EAAOH,KAAKK,iBAqCrD,OA5BAL,KAAKC,aAAe,KAChB,MAAMK,EAA+C,CACjDhB,YAAaiB,KAAKC,UAAUlB,GAC5BmB,YAAavB,EAAcuB,YAC3BtB,aAGJF,EAAUyB,IAAIT,aAAaU,oUAAAC,CAAA,CAAA,EACpBpB,GAAAA,CACHqB,4BAA6BP,MAIrCQ,EAAU,KACN,MAAMC,UAAEA,GAAcnC,EAEtBoC,EAAmBjC,EAAgBgC,QAAAA,EAAa,GAAIzB,GAC/CS,KAAKkB,IACF,KAAKA,aAAAA,EAAAA,EAAU9B,WAAW,OAAO+B,QAAQf,MAAM,qCAC/Cf,EAAa6B,EAAS9B,WAClBP,EAAMuC,eAxBMlC,EAAUyB,IAAIU,aAAa,mBAAoB5B,GACvDG,QAAQ,KAAWD,QAyB9BQ,MAAMC,IACHe,QAAQf,MAAMA,GACVvB,EAAMwB,SAASxB,EAAMwB,QAAQD,EAAOH,KAAKK,iBAEtD,IAEEzB,EAAMuC,cACJE,EAACC,MAAAA,CAAIC,UAAU,oCAAoCC,GAAG,kBAAkBC,cAAY,sBAD1D,IAErC"}
@@ -1,2 +1,2 @@
1
- import{createElement as n}from"../../../external/preact/dist/preact.js";import{useState as e,useRef as o,useEffect as t}from"../../../external/preact/hooks/dist/hooks.js";import r from"../../internal/Spinner/Spinner.js";import{getAmazonPayUrl as a}from"../utils.js";import i from"./AmazonPayButton.js";import c from"./ChangePaymentDetailsButton.js";import s from"./OrderButton.js";import u from"./SignOutButton.js";import l from"../../../utils/Script.js";import m from"../../../core/Analytics/useAnalytics.js";function d(d){const[p,y]=e("pending"),f=o(null),g=o(null),{analytics:h}=m(),v=()=>{y("ready")},z=o({getSubmitFunction:()=>{var n,e;return(null===(n=f.current)||void 0===n?void 0:n.initCheckout)?()=>f.current.initCheckout():(null===(e=g.current)||void 0===e?void 0:e.createOrder)?()=>g.current.createOrder():null}});return t(()=>{d.setComponentRef(z.current)},[d.setComponentRef]),t(()=>{const n=a(d.configuration.region),e=new l({src:n,component:"amazonpay",analytics:h});return window.amazon?v():e.load().then(v),()=>{e.remove()}},[h]),"pending"===p?n("div",{className:"adyen-checkout__amazonpay"},n("div",{className:"adyen-checkout__amazonpay__status adyen-checkout__amazonpay__status--pending"},n(r,null))):d.showSignOutButton?n("div",{className:"adyen-checkout__amazonpay"},n(u,{amazonRef:window.amazon,onSignOut:d.onSignOut})):d.amazonCheckoutSessionId?n("div",{className:"adyen-checkout__amazonpay"},d.showOrderButton&&n(s,{amazonCheckoutSessionId:d.amazonCheckoutSessionId,chargePermissionType:d.chargePermissionType,recurringMetadata:d.recurringMetadata,clientKey:d.clientKey,onError:d.onError,publicKeyId:null===(k=d.configuration)||void 0===k?void 0:k.publicKeyId,region:null===(S=d.configuration)||void 0===S?void 0:S.region,returnUrl:d.returnUrl,ref:g}),d.showChangePaymentDetailsButton&&n(c,{amazonCheckoutSessionId:d.amazonCheckoutSessionId,amazonRef:window.amazon})):n("div",{className:"adyen-checkout__amazonpay"},n(i,{showPayButton:d.showPayButton,amazonRef:window.amazon,ref:f,buttonColor:d.buttonColor,cancelUrl:d.cancelUrl,chargePermissionType:d.chargePermissionType,onClick:d.onClick,onError:d.onError,clientKey:d.clientKey,configuration:d.configuration,currency:d.currency,deliverySpecifications:d.deliverySpecifications,design:d.design,environment:d.environment,locale:d.locale,placement:d.placement,productType:d.productType,recurringMetadata:d.recurringMetadata,returnUrl:d.returnUrl}));var k,S}export{d as default};
1
+ import{createElement as n}from"../../../external/preact/dist/preact.js";import{useState as e,useRef as o,useEffect as r}from"../../../external/preact/hooks/dist/hooks.js";import t from"../../internal/Spinner/Spinner.js";import{getAmazonPayUrl as a}from"../utils.js";import i from"./AmazonPayButton.js";import c from"./ChangePaymentDetailsButton.js";import u from"./OrderButton.js";import s from"./SignOutButton.js";import l from"../../../utils/Script.js";import m from"../../../core/Analytics/useAnalytics.js";function d(d){const[p,y]=e("pending"),f=o(null),v=o(null),{analytics:g}=m(),h=()=>{y("ready")},z=o({getSubmitFunction:()=>{var n,e;return(null===(n=f.current)||void 0===n?void 0:n.initCheckout)?()=>{var n;return null===(n=f.current)||void 0===n?void 0:n.initCheckout()}:(null===(e=v.current)||void 0===e?void 0:e.createOrder)?()=>{var n;return null===(n=v.current)||void 0===n?void 0:n.createOrder()}:null}});r(()=>{d.setComponentRef(z.current)},[d.setComponentRef]),r(()=>{var n;const e=a(null===(n=d.configuration)||void 0===n?void 0:n.region),o=new l({src:e,component:"amazonpay",analytics:g});return window.amazon?h():o.load().then(h),()=>{o.remove()}},[g]);const k=window.amazon;return"pending"!==p&&k?d.showSignOutButton?n("div",{className:"adyen-checkout__amazonpay"},n(s,{amazonRef:k,onSignOut:d.onSignOut})):d.amazonCheckoutSessionId?n("div",{className:"adyen-checkout__amazonpay"},d.showOrderButton&&n(u,{amazonCheckoutSessionId:d.amazonCheckoutSessionId,chargePermissionType:d.chargePermissionType,recurringMetadata:d.recurringMetadata,clientKey:d.clientKey,onError:d.onError,publicKeyId:null===(S=d.configuration)||void 0===S?void 0:S.publicKeyId,region:null===(_=d.configuration)||void 0===_?void 0:_.region,returnUrl:d.returnUrl,ref:v}),d.showChangePaymentDetailsButton&&n(c,{amazonCheckoutSessionId:d.amazonCheckoutSessionId,amazonRef:k})):n("div",{className:"adyen-checkout__amazonpay"},n(i,{showPayButton:d.showPayButton,amazonRef:k,ref:f,buttonColor:d.buttonColor,cancelUrl:d.cancelUrl,chargePermissionType:d.chargePermissionType,onClick:d.onClick,onError:d.onError,clientKey:d.clientKey,configuration:d.configuration,currency:d.currency,deliverySpecifications:d.deliverySpecifications,design:d.design,environment:d.environment,locale:d.locale,placement:d.placement,productType:d.productType,recurringMetadata:d.recurringMetadata,returnUrl:d.returnUrl})):n("div",{className:"adyen-checkout__amazonpay"},n("div",{className:"adyen-checkout__amazonpay__status adyen-checkout__amazonpay__status--pending"},n(t,null)));var S,_}export{d as default};
2
2
  //# sourceMappingURL=AmazonPayComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AmazonPayComponent.js","sources":["../../../../../src/components/AmazonPay/components/AmazonPayComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport Spinner from '../../internal/Spinner';\nimport { getAmazonPayUrl } from '../utils';\nimport { AmazonPayComponentProps } from '../types';\nimport AmazonPayButton from './AmazonPayButton';\nimport ChangePaymentDetailsButton from './ChangePaymentDetailsButton';\nimport OrderButton from './OrderButton';\nimport SignOutButton from './SignOutButton';\nimport Script from '../../../utils/Script';\nimport useAnalytics from '../../../core/Analytics/useAnalytics';\n\nexport default function AmazonPayComponent(props: Readonly<AmazonPayComponentProps>) {\n const [status, setStatus] = useState('pending');\n const amazonPayButtonRef = useRef(null);\n const orderButtonRef = useRef(null);\n const { analytics } = useAnalytics();\n\n const handleLoad = () => {\n setStatus('ready');\n };\n\n const amazonPayRef = useRef({\n getSubmitFunction: () => {\n if (amazonPayButtonRef.current?.initCheckout) return () => amazonPayButtonRef.current.initCheckout();\n if (orderButtonRef.current?.createOrder) return () => orderButtonRef.current.createOrder();\n return null;\n }\n });\n\n useEffect(() => {\n props.setComponentRef(amazonPayRef.current);\n }, [props.setComponentRef]);\n\n useEffect(() => {\n const src = getAmazonPayUrl(props.configuration.region);\n const script = new Script({\n src,\n component: 'amazonpay',\n analytics\n });\n\n if (window.amazon) {\n handleLoad();\n } else {\n void script.load().then(handleLoad);\n }\n\n return () => {\n script.remove();\n };\n }, [analytics]);\n\n if (status === 'pending') {\n return (\n <div className=\"adyen-checkout__amazonpay\">\n <div className=\"adyen-checkout__amazonpay__status adyen-checkout__amazonpay__status--pending\">\n <Spinner />\n </div>\n </div>\n );\n }\n\n if (props.showSignOutButton) {\n return (\n <div className=\"adyen-checkout__amazonpay\">\n <SignOutButton amazonRef={window.amazon} onSignOut={props.onSignOut} />\n </div>\n );\n }\n\n if (props.amazonCheckoutSessionId) {\n return (\n <div className=\"adyen-checkout__amazonpay\">\n {props.showOrderButton && (\n <OrderButton\n amazonCheckoutSessionId={props.amazonCheckoutSessionId}\n chargePermissionType={props.chargePermissionType}\n recurringMetadata={props.recurringMetadata}\n clientKey={props.clientKey}\n onError={props.onError}\n publicKeyId={props.configuration?.publicKeyId}\n region={props.configuration?.region}\n returnUrl={props.returnUrl}\n ref={orderButtonRef}\n />\n )}\n\n {props.showChangePaymentDetailsButton && (\n <ChangePaymentDetailsButton amazonCheckoutSessionId={props.amazonCheckoutSessionId} amazonRef={window.amazon} />\n )}\n </div>\n );\n }\n\n return (\n <div className=\"adyen-checkout__amazonpay\">\n <AmazonPayButton\n showPayButton={props.showPayButton}\n amazonRef={window.amazon}\n ref={amazonPayButtonRef}\n buttonColor={props.buttonColor}\n cancelUrl={props.cancelUrl}\n chargePermissionType={props.chargePermissionType}\n onClick={props.onClick}\n onError={props.onError}\n clientKey={props.clientKey}\n configuration={props.configuration}\n currency={props.currency}\n deliverySpecifications={props.deliverySpecifications}\n design={props.design}\n environment={props.environment}\n locale={props.locale}\n placement={props.placement}\n productType={props.productType}\n recurringMetadata={props.recurringMetadata}\n returnUrl={props.returnUrl}\n />\n </div>\n );\n}\n"],"names":["AmazonPayComponent","props","status","setStatus","useState","amazonPayButtonRef","useRef","orderButtonRef","analytics","useAnalytics","handleLoad","amazonPayRef","getSubmitFunction","current","initCheckout","createOrder","useEffect","setComponentRef","src","getAmazonPayUrl","configuration","region","script","Script","component","window","amazon","load","then","remove","h","div","className","Spinner","showSignOutButton","SignOutButton","amazonRef","onSignOut","amazonCheckoutSessionId","showOrderButton","OrderButton","chargePermissionType","recurringMetadata","clientKey","onError","publicKeyId","returnUrl","ref","showChangePaymentDetailsButton","ChangePaymentDetailsButton","AmazonPayButton","showPayButton","buttonColor","cancelUrl","onClick","currency","deliverySpecifications","design","environment","locale","placement","productType"],"mappings":"8fAYe,SAASA,EAAmBC,GACvC,MAAOC,EAAQC,GAAaC,EAAS,WAC/BC,EAAqBC,EAAO,MAC5BC,EAAiBD,EAAO,OACxBE,UAAEA,GAAcC,IAEhBC,EAAa,KACfP,EAAU,UAGRQ,EAAeL,EAAO,CACxBM,kBAAmB,SACXP,EACAE,EADJ,OAA8B,QAA1BF,EAAAA,EAAmBQ,eAAnBR,IAAAA,OAAAA,EAAAA,EAA4BS,cAAqB,IAAMT,EAAmBQ,QAAQC,gBAC5D,QAAtBP,EAAAA,EAAeM,eAAfN,IAAAA,OAAAA,EAAAA,EAAwBQ,aAAoB,IAAMR,EAAeM,QAAQE,cACtE,QA2Bf,OAvBAC,EAAU,KACNf,EAAMgB,gBAAgBN,EAAaE,UACpC,CAACZ,EAAMgB,kBAEVD,EAAU,KACN,MAAME,EAAMC,EAAgBlB,EAAMmB,cAAcC,QAC1CC,EAAS,IAAIC,EAAO,CACtBL,MACAM,UAAW,YACXhB,cASJ,OANIiB,OAAOC,OACPhB,IAEKY,EAAOK,OAAOC,KAAKlB,GAGrB,KACHY,EAAOO,WAEZ,CAACrB,IAEW,YAAXN,EAEI4B,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACC,MAAAA,CAAIC,UAAU,gFACXF,EAACG,EAAAA,QAMbhC,EAAMiC,kBAEFJ,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACK,EAAAA,CAAcC,UAAWX,OAAOC,OAAQW,UAAWpC,EAAMoC,aAKlEpC,EAAMqC,wBAEFR,EAACC,MAAAA,CAAIC,UAAU,6BACV/B,EAAMsC,iBACHT,EAACU,EAAAA,CACGF,wBAAyBrC,EAAMqC,wBAC/BG,qBAAsBxC,EAAMwC,qBAC5BC,kBAAmBzC,EAAMyC,kBACzBC,UAAW1C,EAAM0C,UACjBC,QAAS3C,EAAM2C,QACfC,YAAgC,QAAnB5C,EAAAA,EAAMmB,qBAANnB,IAAAA,SAAAA,EAAqB4C,YAClCxB,OAA2B,QAAnBpB,EAAAA,EAAMmB,qBAANnB,IAAAA,SAAAA,EAAqBoB,OAC7ByB,UAAW7C,EAAM6C,UACjBC,IAAKxC,IAIZN,EAAM+C,gCACHlB,EAACmB,EAAAA,CAA2BX,wBAAyBrC,EAAMqC,wBAAyBF,UAAWX,OAAOC,UAOlHI,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACoB,EAAAA,CACGC,cAAelD,EAAMkD,cACrBf,UAAWX,OAAOC,OAClBqB,IAAK1C,EACL+C,YAAanD,EAAMmD,YACnBC,UAAWpD,EAAMoD,UACjBZ,qBAAsBxC,EAAMwC,qBAC5Ba,QAASrD,EAAMqD,QACfV,QAAS3C,EAAM2C,QACfD,UAAW1C,EAAM0C,UACjBvB,cAAenB,EAAMmB,cACrBmC,SAAUtD,EAAMsD,SAChBC,uBAAwBvD,EAAMuD,uBAC9BC,OAAQxD,EAAMwD,OACdC,YAAazD,EAAMyD,YACnBC,OAAQ1D,EAAM0D,OACdC,UAAW3D,EAAM2D,UACjBC,YAAa5D,EAAM4D,YACnBnB,kBAAmBzC,EAAMyC,kBACzBI,UAAW7C,EAAM6C,iBAnCI7C,EACLA,CAsChC"}
1
+ {"version":3,"file":"AmazonPayComponent.js","sources":["../../../../../src/components/AmazonPay/components/AmazonPayComponent.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useRef } from 'preact/hooks';\nimport Spinner from '../../internal/Spinner';\nimport { getAmazonPayUrl } from '../utils';\nimport { AmazonPayComponentProps } from '../types';\nimport AmazonPayButton from './AmazonPayButton';\nimport ChangePaymentDetailsButton from './ChangePaymentDetailsButton';\nimport OrderButton from './OrderButton';\nimport SignOutButton from './SignOutButton';\nimport Script from '../../../utils/Script';\nimport useAnalytics from '../../../core/Analytics/useAnalytics';\n\nexport default function AmazonPayComponent(props: Readonly<AmazonPayComponentProps>) {\n const [status, setStatus] = useState('pending');\n const amazonPayButtonRef = useRef<{ initCheckout(): void }>(null);\n const orderButtonRef = useRef<{ createOrder(): void }>(null);\n const { analytics } = useAnalytics();\n\n const handleLoad = () => {\n setStatus('ready');\n };\n\n const amazonPayRef = useRef({\n getSubmitFunction: () => {\n if (amazonPayButtonRef.current?.initCheckout) return () => amazonPayButtonRef.current?.initCheckout();\n if (orderButtonRef.current?.createOrder) return () => orderButtonRef.current?.createOrder();\n return null;\n }\n });\n\n useEffect(() => {\n props.setComponentRef(amazonPayRef.current);\n }, [props.setComponentRef]);\n\n useEffect(() => {\n const src = getAmazonPayUrl(props.configuration?.region);\n const script = new Script({\n src,\n component: 'amazonpay',\n analytics\n });\n\n if (window.amazon) {\n handleLoad();\n } else {\n void script.load().then(handleLoad);\n }\n\n return () => {\n script.remove();\n };\n }, [analytics]);\n\n const amazonRef = window.amazon;\n\n if (status === 'pending' || !amazonRef) {\n return (\n <div className=\"adyen-checkout__amazonpay\">\n <div className=\"adyen-checkout__amazonpay__status adyen-checkout__amazonpay__status--pending\">\n <Spinner />\n </div>\n </div>\n );\n }\n\n if (props.showSignOutButton) {\n return (\n <div className=\"adyen-checkout__amazonpay\">\n <SignOutButton amazonRef={amazonRef} onSignOut={props.onSignOut} />\n </div>\n );\n }\n\n if (props.amazonCheckoutSessionId) {\n return (\n <div className=\"adyen-checkout__amazonpay\">\n {props.showOrderButton && (\n <OrderButton\n amazonCheckoutSessionId={props.amazonCheckoutSessionId}\n chargePermissionType={props.chargePermissionType}\n recurringMetadata={props.recurringMetadata}\n clientKey={props.clientKey}\n onError={props.onError}\n publicKeyId={props.configuration?.publicKeyId}\n region={props.configuration?.region}\n returnUrl={props.returnUrl}\n ref={orderButtonRef}\n />\n )}\n\n {props.showChangePaymentDetailsButton && (\n <ChangePaymentDetailsButton amazonCheckoutSessionId={props.amazonCheckoutSessionId} amazonRef={amazonRef} />\n )}\n </div>\n );\n }\n\n return (\n <div className=\"adyen-checkout__amazonpay\">\n <AmazonPayButton\n showPayButton={props.showPayButton}\n amazonRef={amazonRef}\n ref={amazonPayButtonRef}\n buttonColor={props.buttonColor}\n cancelUrl={props.cancelUrl}\n chargePermissionType={props.chargePermissionType}\n onClick={props.onClick}\n onError={props.onError}\n clientKey={props.clientKey}\n configuration={props.configuration}\n currency={props.currency}\n deliverySpecifications={props.deliverySpecifications}\n design={props.design}\n environment={props.environment}\n locale={props.locale}\n placement={props.placement}\n productType={props.productType}\n recurringMetadata={props.recurringMetadata}\n returnUrl={props.returnUrl}\n />\n </div>\n );\n}\n"],"names":["AmazonPayComponent","props","status","setStatus","useState","amazonPayButtonRef","useRef","orderButtonRef","analytics","useAnalytics","handleLoad","amazonPayRef","getSubmitFunction","current","initCheckout","createOrder","useEffect","setComponentRef","src","getAmazonPayUrl","configuration","region","script","Script","component","window","amazon","load","then","remove","amazonRef","showSignOutButton","h","div","className","SignOutButton","onSignOut","amazonCheckoutSessionId","showOrderButton","OrderButton","chargePermissionType","recurringMetadata","clientKey","onError","publicKeyId","returnUrl","ref","showChangePaymentDetailsButton","ChangePaymentDetailsButton","AmazonPayButton","showPayButton","buttonColor","cancelUrl","onClick","currency","deliverySpecifications","design","environment","locale","placement","productType","Spinner"],"mappings":"8fAYe,SAASA,EAAmBC,GACvC,MAAOC,EAAQC,GAAaC,EAAS,WAC/BC,EAAqBC,EAAiC,MACtDC,EAAiBD,EAAgC,OACjDE,UAAEA,GAAcC,IAEhBC,EAAa,KACfP,EAAU,UAGRQ,EAAeL,EAAO,CACxBM,kBAAmB,SACXP,EACAE,EADJ,OAA8B,QAA1BF,EAAAA,EAAmBQ,mBAAnBR,SAAAA,EAA4BS,cAAqB,KAAMT,IAAAA,EAAAA,OAA0B,QAA1BA,EAAAA,EAAmBQ,mBAAnBR,OAAAA,EAAAA,EAA4BS,iBAC7D,QAAtBP,EAAAA,EAAeM,mBAAfN,SAAAA,EAAwBQ,aAAoB,KAAMR,IAAAA,EAAAA,OAAsB,QAAtBA,EAAAA,EAAeM,mBAAfN,OAAAA,EAAAA,EAAwBQ,eACvE,QAIfC,EAAU,KACNf,EAAMgB,gBAAgBN,EAAaE,UACpC,CAACZ,EAAMgB,kBAEVD,EAAU,KACsBf,IAAAA,EAA5B,MAAMiB,EAAMC,EAAmC,QAAnBlB,EAAAA,EAAMmB,qBAANnB,IAAAA,SAAAA,EAAqBoB,QAC3CC,EAAS,IAAIC,EAAO,CACtBL,MACAM,UAAW,YACXhB,cASJ,OANIiB,OAAOC,OACPhB,IAEKY,EAAOK,OAAOC,KAAKlB,GAGrB,KACHY,EAAOO,WAEZ,CAACrB,IAEJ,MAAMsB,EAAYL,OAAOC,OAEzB,MAAe,YAAXxB,GAAyB4B,EAUzB7B,EAAM8B,kBAEFC,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACG,EAAAA,CAAcL,UAAWA,EAAWM,UAAWnC,EAAMmC,aAK9DnC,EAAMoC,wBAEFL,EAACC,MAAAA,CAAIC,UAAU,6BACVjC,EAAMqC,iBACHN,EAACO,EAAAA,CACGF,wBAAyBpC,EAAMoC,wBAC/BG,qBAAsBvC,EAAMuC,qBAC5BC,kBAAmBxC,EAAMwC,kBACzBC,UAAWzC,EAAMyC,UACjBC,QAAS1C,EAAM0C,QACfC,YAAgC,QAAnB3C,EAAAA,EAAMmB,qBAANnB,IAAAA,SAAAA,EAAqB2C,YAClCvB,OAA2B,QAAnBpB,EAAAA,EAAMmB,qBAANnB,IAAAA,SAAAA,EAAqBoB,OAC7BwB,UAAW5C,EAAM4C,UACjBC,IAAKvC,IAIZN,EAAM8C,gCACHf,EAACgB,EAAAA,CAA2BX,wBAAyBpC,EAAMoC,wBAAyBP,UAAWA,KAO3GE,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACiB,EAAAA,CACGC,cAAejD,EAAMiD,cACrBpB,UAAWA,EACXgB,IAAKzC,EACL8C,YAAalD,EAAMkD,YACnBC,UAAWnD,EAAMmD,UACjBZ,qBAAsBvC,EAAMuC,qBAC5Ba,QAASpD,EAAMoD,QACfV,QAAS1C,EAAM0C,QACfD,UAAWzC,EAAMyC,UACjBtB,cAAenB,EAAMmB,cACrBkC,SAAUrD,EAAMqD,SAChBC,uBAAwBtD,EAAMsD,uBAC9BC,OAAQvD,EAAMuD,OACdC,YAAaxD,EAAMwD,YACnBC,OAAQzD,EAAMyD,OACdC,UAAW1D,EAAM0D,UACjBC,YAAa3D,EAAM2D,YACnBnB,kBAAmBxC,EAAMwC,kBACzBI,UAAW5C,EAAM4C,aA7DrBb,EAACC,MAAAA,CAAIC,UAAU,6BACXF,EAACC,MAAAA,CAAIC,UAAU,gFACXF,EAAC6B,EAAAA,YAwBgB5D,EACLA,CAsChC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useCoreContext as r}from"../../../core/Context/CoreProvider.js";import o from"../../internal/Button/Button.js";import{updateAmazonCheckoutSession as t}from"../services.js";import{useAmount as n}from"../../../core/Context/AmountProvider.js";function i(i){const{i18n:a,loadingContext:c}=r(),{amount:s}=n();return this.createOrder=()=>{const{amazonCheckoutSessionId:e,clientKey:r,chargePermissionType:o,publicKeyId:n,region:a,recurringMetadata:l,returnUrl:u}=i;t(c,r,{amount:s,chargePermissionType:o,checkoutResultReturnUrl:u,checkoutSessionId:e,publicKeyId:n,recurringMetadata:l,region:a}).then(e=>{var r;if(!(null==e||null===(r=e.action)||void 0===r?void 0:r.type))return console.error(e.errorMessage||"Could not get the AmazonPay URL");"redirect"===e.action.type&&window.location.assign(e.action.url)}).catch(e=>{i.onError&&i.onError(e,this.componentRef)})},e(o,{classNameModifiers:["standalone","pay"],label:a.get("confirmPurchase"),onClick:this.createOrder})}export{i as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useCoreContext as r}from"../../../core/Context/CoreProvider.js";import o from"../../internal/Button/Button.js";import{updateAmazonCheckoutSession as t}from"../services.js";import{useAmount as n}from"../../../core/Context/AmountProvider.js";function i(i){const{i18n:a,loadingContext:c}=r(),{amount:s}=n();return this.createOrder=()=>{const{amazonCheckoutSessionId:e,clientKey:r,chargePermissionType:o,publicKeyId:n,region:a,recurringMetadata:l,returnUrl:u}=i;t(c,null!=r?r:"",{amount:s,chargePermissionType:o,checkoutResultReturnUrl:u,checkoutSessionId:e,publicKeyId:n,recurringMetadata:l,region:a}).then(e=>{var r;if(!(null==e||null===(r=e.action)||void 0===r?void 0:r.type))return console.error(e.errorMessage||"Could not get the AmazonPay URL");"redirect"===e.action.type&&e.action.url&&window.location.assign(e.action.url)}).catch(e=>{i.onError&&i.onError(e,this.componentRef)})},e(o,{classNameModifiers:["standalone","pay"],label:a.get("confirmPurchase"),onClick:this.createOrder})}export{i as default};
2
2
  //# sourceMappingURL=OrderButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OrderButton.js","sources":["../../../../../src/components/AmazonPay/components/OrderButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Button from '../../internal/Button';\nimport { updateAmazonCheckoutSession } from '../services';\nimport { OrderButtonProps, UpdateAmazonCheckoutSessionRequest } from '../types';\nimport { useAmount } from '../../../core/Context/AmountProvider';\n\nexport default function OrderButton(props: Readonly<OrderButtonProps>) {\n const { i18n, loadingContext } = useCoreContext();\n const { amount } = useAmount();\n\n this.createOrder = () => {\n const { amazonCheckoutSessionId, clientKey, chargePermissionType, publicKeyId, region, recurringMetadata, returnUrl } = props;\n\n const request: UpdateAmazonCheckoutSessionRequest = {\n amount,\n chargePermissionType,\n checkoutResultReturnUrl: returnUrl,\n checkoutSessionId: amazonCheckoutSessionId,\n publicKeyId,\n recurringMetadata,\n region\n };\n\n updateAmazonCheckoutSession(loadingContext, clientKey, request)\n .then(response => {\n if (!response?.action?.type) return console.error(response.errorMessage || 'Could not get the AmazonPay URL');\n if (response.action.type === 'redirect') window.location.assign(response.action.url);\n })\n .catch(error => {\n if (props.onError) props.onError(error, this.componentRef);\n });\n };\n\n return <Button classNameModifiers={['standalone', 'pay']} label={i18n.get('confirmPurchase')} onClick={this.createOrder} />;\n}\n"],"names":["OrderButton","props","i18n","loadingContext","useCoreContext","amount","useAmount","this","createOrder","amazonCheckoutSessionId","clientKey","chargePermissionType","publicKeyId","region","recurringMetadata","returnUrl","updateAmazonCheckoutSession","checkoutResultReturnUrl","checkoutSessionId","then","response","action","type","console","error","errorMessage","window","location","assign","url","catch","onError","componentRef","h","Button","classNameModifiers","label","get","onClick"],"mappings":"+TAOe,SAASA,EAAYC,GAChC,MAAMC,KAAEA,EAAIC,eAAEA,GAAmBC,KAC3BC,OAAEA,GAAWC,IAyBnB,OAvBAC,KAAKC,YAAc,KACf,MAAMC,wBAAEA,EAAuBC,UAAEA,EAASC,qBAAEA,EAAoBC,YAAEA,EAAWC,OAAEA,EAAMC,kBAAEA,EAAiBC,UAAEA,GAAcd,EAYxHe,EAA4Bb,EAAgBO,EAVQ,CAChDL,SACAM,uBACAM,wBAAyBF,EACzBG,kBAAmBT,EACnBG,cACAE,oBACAD,WAICM,KAAKC,IACGA,IAAAA,EAAL,KAAKA,SAAgB,QAAhBA,EAAAA,EAAUC,kBAAVD,OAAAA,EAAAA,EAAkBE,MAAM,OAAOC,QAAQC,MAAMJ,EAASK,cAAgB,mCAC9C,aAAzBL,EAASC,OAAOC,MAAqBI,OAAOC,SAASC,OAAOR,EAASC,OAAOQ,OAEnFC,MAAMN,IACCvB,EAAM8B,SAAS9B,EAAM8B,QAAQP,EAAOjB,KAAKyB,iBAIlDC,EAACC,EAAAA,CAAOC,mBAAoB,CAAC,aAAc,OAAQC,MAAOlC,EAAKmC,IAAI,mBAAoBC,QAAS/B,KAAKC,aAChH"}
1
+ {"version":3,"file":"OrderButton.js","sources":["../../../../../src/components/AmazonPay/components/OrderButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Button from '../../internal/Button';\nimport { updateAmazonCheckoutSession } from '../services';\nimport { OrderButtonProps, UpdateAmazonCheckoutSessionRequest } from '../types';\nimport { useAmount } from '../../../core/Context/AmountProvider';\n\nexport default function OrderButton(props: Readonly<OrderButtonProps>) {\n const { i18n, loadingContext } = useCoreContext();\n const { amount } = useAmount();\n\n this.createOrder = () => {\n const { amazonCheckoutSessionId, clientKey, chargePermissionType, publicKeyId, region, recurringMetadata, returnUrl } = props;\n\n const request: UpdateAmazonCheckoutSessionRequest = {\n amount,\n chargePermissionType,\n checkoutResultReturnUrl: returnUrl,\n checkoutSessionId: amazonCheckoutSessionId,\n publicKeyId,\n recurringMetadata,\n region\n };\n\n updateAmazonCheckoutSession(loadingContext, clientKey ?? '', request)\n .then(response => {\n if (!response?.action?.type) return console.error(response.errorMessage || 'Could not get the AmazonPay URL');\n if (response.action.type === 'redirect' && response.action.url) window.location.assign(response.action.url);\n })\n .catch(error => {\n if (props.onError) props.onError(error, this.componentRef);\n });\n };\n\n return <Button classNameModifiers={['standalone', 'pay']} label={i18n.get('confirmPurchase')} onClick={this.createOrder} />;\n}\n"],"names":["OrderButton","props","i18n","loadingContext","useCoreContext","amount","useAmount","this","createOrder","amazonCheckoutSessionId","clientKey","chargePermissionType","publicKeyId","region","recurringMetadata","returnUrl","updateAmazonCheckoutSession","checkoutResultReturnUrl","checkoutSessionId","then","response","action","type","console","error","errorMessage","url","window","location","assign","catch","onError","componentRef","h","Button","classNameModifiers","label","get","onClick"],"mappings":"+TAOe,SAASA,EAAYC,GAChC,MAAMC,KAAEA,EAAIC,eAAEA,GAAmBC,KAC3BC,OAAEA,GAAWC,IAyBnB,OAvBAC,KAAKC,YAAc,KACf,MAAMC,wBAAEA,EAAuBC,UAAEA,EAASC,qBAAEA,EAAoBC,YAAEA,EAAWC,OAAEA,EAAMC,kBAAEA,EAAiBC,UAAEA,GAAcd,EAYxHe,EAA4Bb,EAAgBO,QAAAA,EAAa,GAVL,CAChDL,SACAM,uBACAM,wBAAyBF,EACzBG,kBAAmBT,EACnBG,cACAE,oBACAD,WAICM,KAAKC,IACGA,IAAAA,EAAL,KAAKA,SAAgB,QAAhBA,EAAAA,EAAUC,kBAAVD,OAAAA,EAAAA,EAAkBE,MAAM,OAAOC,QAAQC,MAAMJ,EAASK,cAAgB,mCAC9C,aAAzBL,EAASC,OAAOC,MAAuBF,EAASC,OAAOK,KAAKC,OAAOC,SAASC,OAAOT,EAASC,OAAOK,OAE1GI,MAAMN,IACCvB,EAAM8B,SAAS9B,EAAM8B,QAAQP,EAAOjB,KAAKyB,iBAIlDC,EAACC,EAAAA,CAAOC,mBAAoB,CAAC,aAAc,OAAQC,MAAOlC,EAAKmC,IAAI,mBAAoBC,QAAS/B,KAAKC,aAChH"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../../external/preact/dist/preact.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";function e(e){const{i18n:n}=o();return t("button",{type:"button",className:"adyen-checkout__button adyen-checkout__button--ghost adyen-checkout__amazonpay__button--signOut",onClick:()=>{new Promise((t,o)=>{e.onSignOut(t,o)}).then(()=>{e.amazonRef.Pay.signout()}).catch(console.error)}},n.get("amazonpay.signout"))}export{e as default};
1
+ import{createElement as t}from"../../../external/preact/dist/preact.js";import{useCoreContext as o}from"../../../core/Context/CoreProvider.js";function e(e){const{i18n:n}=o();return t("button",{type:"button",className:"adyen-checkout__button adyen-checkout__button--ghost adyen-checkout__amazonpay__button--signOut",onClick:()=>{(e.onSignOut?new Promise((t,o)=>{var n;null===(n=e.onSignOut)||void 0===n||n.call(e,t,o)}):Promise.resolve()).then(()=>{e.amazonRef.Pay.signout()}).catch(console.error)}},n.get("amazonpay.signout"))}export{e as default};
2
2
  //# sourceMappingURL=SignOutButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignOutButton.js","sources":["../../../../../src/components/AmazonPay/components/SignOutButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { SignOutButtonProps } from '../types';\n\nexport default function SignOutButton(props: Readonly<SignOutButtonProps>) {\n const { i18n } = useCoreContext();\n\n const handleClick = () => {\n new Promise((resolve, reject) => void props.onSignOut(resolve, reject))\n .then(() => {\n props.amazonRef.Pay.signout();\n })\n .catch(console.error);\n };\n\n return (\n <button\n type=\"button\"\n className=\"adyen-checkout__button adyen-checkout__button--ghost adyen-checkout__amazonpay__button--signOut\"\n onClick={handleClick}\n >\n {i18n.get('amazonpay.signout')}\n </button>\n );\n}\n"],"names":["SignOutButton","props","i18n","useCoreContext","h","button","type","className","onClick","Promise","resolve","reject","onSignOut","then","amazonRef","Pay","signout","catch","console","error","get"],"mappings":"+IAIe,SAASA,EAAcC,GAClC,MAAMC,KAAEA,GAASC,IAUjB,OACIC,EAACC,SAAAA,CACGC,KAAK,SACLC,UAAU,kGACVC,QAZY,KAChB,IAAIC,QAAQ,CAACC,EAASC,KAAgBV,EAAMW,UAAUF,EAASC,KAC1DE,KAAK,KACFZ,EAAMa,UAAUC,IAAIC,YAEvBC,MAAMC,QAAQC,SASdjB,EAAKkB,IAAI,qBAGtB"}
1
+ {"version":3,"file":"SignOutButton.js","sources":["../../../../../src/components/AmazonPay/components/SignOutButton.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport { SignOutButtonProps } from '../types';\n\nexport default function SignOutButton(props: Readonly<SignOutButtonProps>) {\n const { i18n } = useCoreContext();\n\n const handleClick = () => {\n const signOutPromise = props.onSignOut ? new Promise((resolve, reject) => void props.onSignOut?.(resolve, reject)) : Promise.resolve();\n\n signOutPromise\n .then(() => {\n props.amazonRef.Pay.signout();\n })\n .catch(console.error);\n };\n\n return (\n <button\n type=\"button\"\n className=\"adyen-checkout__button adyen-checkout__button--ghost adyen-checkout__amazonpay__button--signOut\"\n onClick={handleClick}\n >\n {i18n.get('amazonpay.signout')}\n </button>\n );\n}\n"],"names":["SignOutButton","props","i18n","useCoreContext","h","button","type","className","onClick","onSignOut","Promise","resolve","reject","then","amazonRef","Pay","signout","catch","console","error","get"],"mappings":"+IAIe,SAASA,EAAcC,GAClC,MAAMC,KAAEA,GAASC,IAYjB,OACIC,EAACC,SAAAA,CACGC,KAAK,SACLC,UAAU,kGACVC,QAdY,MACOP,EAAMQ,UAAY,IAAIC,QAAQ,CAACC,EAASC,KAAgBX,IAAAA,UAAAA,EAAAA,EAAMQ,iBAANR,IAAAA,GAAAA,EAAAA,KAAAA,EAAkBU,EAASC,KAAWF,QAAQC,WAGxHE,KAAK,KACFZ,EAAMa,UAAUC,IAAIC,YAEvBC,MAAMC,QAAQC,SASdjB,EAAKkB,IAAI,qBAGtB"}
@@ -1,2 +1,2 @@
1
- import{AMAZONPAY_URL_US as e,AMAZONPAY_URL_EU as r,LEDGER_CURRENCIES_PER_REGION as t,FALLBACK_LOCALE_US as n,FALLBACK_LOCALE_EU as o,SUPPORTED_LOCALES_US as c,SUPPORTED_LOCALES_EU as u}from"./config.js";import{getDecimalAmount as i}from"../../utils/amount-util.js";function a(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function l(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){a(e,r,t[r])})}return e}function s(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}function f(t){return"US"===t?e:r}function p(e,r){return s(l({},e.buttonColor&&{buttonColor:e.buttonColor},e.design&&{design:b(e.design)}),{checkoutLanguage:g(e.locale,e.configuration.region),ledgerCurrency:t[e.configuration.region]||e.currency||(null==r?void 0:r.currency),merchantId:e.configuration.merchantId,productType:e.productType,placement:e.placement,sandbox:"TEST"===e.environment})}function y(e){return"US"===e?n:o}function d(e){return"US"===e?c:u}function g(e,r){return d(r).includes(e)?e:y(r)}function b(e){return"noTagline"===e?"C0001":null}function m(e){return{amount:String(i(e.value,e.currency)),currencyCode:e.currency}}function O(e,r){const{addressDetails:t,cancelUrl:n,checkoutMode:o,deliverySpecifications:c,returnUrl:u,merchantMetadata:i,chargePermissionType:a,recurringMetadata:s}=e,{storeId:f}=e.configuration,p="ProcessOrder"===o,y=p?m(r):null;return l({storeId:f,chargePermissionType:a,webCheckoutDetails:l({},p?{checkoutResultReturnUrl:u}:{checkoutReviewReturnUrl:u},n&&{checkoutCancelUrl:n},p&&{checkoutMode:o})},p&&{paymentDetails:{chargeAmount:y,paymentIntent:"Confirm",presentmentCurrency:y.currencyCode,totalOrderAmount:y}},s&&{recurringMetadata:s},i&&{merchantMetadata:i},c&&{deliverySpecifications:c},t&&{addressDetails:t})}export{p as getAmazonPaySettings,f as getAmazonPayUrl,m as getChargeAmount,g as getCheckoutLocale,b as getDesignCode,y as getFallbackLocale,O as getPayloadJSON,d as getSupportedLocales};
1
+ import{AMAZONPAY_URL_US as e,AMAZONPAY_URL_EU as r,LEDGER_CURRENCIES_PER_REGION as t,FALLBACK_LOCALE_US as n,FALLBACK_LOCALE_EU as o,SUPPORTED_LOCALES_US as c,SUPPORTED_LOCALES_EU as u}from"./config.js";import{getDecimalAmount as i}from"../../utils/amount-util.js";import a from"../../core/Errors/AdyenCheckoutError.js";function l(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function s(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){l(e,r,t[r])})}return e}function d(e,r){return r=null!=r?r:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):function(e){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(e);r.push.apply(r,t)}return r}(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}),e}function f(t){return"US"===t?e:r}function p(e,r){var n,o;const c=null===(n=e.configuration)||void 0===n?void 0:n.region;return d(s({},e.buttonColor&&{buttonColor:e.buttonColor},e.design&&{design:b(e.design)}),{checkoutLanguage:g(e.locale,c),ledgerCurrency:c&&t[c]||e.currency||(null==r?void 0:r.currency),merchantId:null===(o=e.configuration)||void 0===o?void 0:o.merchantId,productType:e.productType,placement:e.placement,sandbox:"TEST"===e.environment})}function y(e){return"US"===e?n:o}function m(e){return"US"===e?c:u}function g(e,r){return m(r).includes(e)?e:y(r)}function b(e){return"noTagline"===e?"C0001":null}function O(e){return{amount:String(i(e.value,e.currency)),currencyCode:e.currency}}function h(e,r){var t;const{addressDetails:n,cancelUrl:o,checkoutMode:c,deliverySpecifications:u,returnUrl:i,merchantMetadata:l,chargePermissionType:d,recurringMetadata:f}=e,p=null===(t=e.configuration)||void 0===t?void 0:t.storeId,y="ProcessOrder"===c;let m=null;if(y){if(!r)throw new a("IMPLEMENTATION_ERROR","AmazonPay: 'amount' is required when checkoutMode is 'ProcessOrder'");m=O(r)}return s({storeId:p,chargePermissionType:d,webCheckoutDetails:s({},y?{checkoutResultReturnUrl:i}:{checkoutReviewReturnUrl:i},o&&{checkoutCancelUrl:o},y&&{checkoutMode:c})},m&&{paymentDetails:{chargeAmount:m,paymentIntent:"Confirm",presentmentCurrency:m.currencyCode,totalOrderAmount:m}},f&&{recurringMetadata:f},l&&{merchantMetadata:l},u&&{deliverySpecifications:u},n&&{addressDetails:n})}export{p as getAmazonPaySettings,f as getAmazonPayUrl,O as getChargeAmount,g as getCheckoutLocale,b as getDesignCode,y as getFallbackLocale,h as getPayloadJSON,m as getSupportedLocales};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/components/AmazonPay/utils.ts"],"sourcesContent":["import {\n AMAZONPAY_URL_EU,\n AMAZONPAY_URL_US,\n FALLBACK_LOCALE_EU,\n FALLBACK_LOCALE_US,\n LEDGER_CURRENCIES_PER_REGION,\n SUPPORTED_LOCALES_EU,\n SUPPORTED_LOCALES_US\n} from './config';\nimport { AmazonPayButtonProps, AmazonPayButtonSettings, ChargeAmount, Currency, PayloadJSON, Region, SupportedLocale } from './types';\nimport { PaymentAmount } from '../../types/global-types';\nimport { getDecimalAmount } from '../../utils/amount-util';\n\n/**\n * Returns the AmazonPay script URL for passed region.\n * @param region - Two-letter country code in ISO 3166 format\n * @returns the AmazonPay script URL\n */\nexport function getAmazonPayUrl(region: Region): string {\n return region === 'US' ? AMAZONPAY_URL_US : AMAZONPAY_URL_EU;\n}\n\n/**\n * Returns the AmazonPay button settings object\n * @param props -\n * @returns the AmazonPay button settings\n */\nexport function getAmazonPaySettings(props: AmazonPayButtonProps, amount?: PaymentAmount): AmazonPayButtonSettings {\n return {\n ...(props.buttonColor && { buttonColor: props.buttonColor }),\n ...(props.design && { design: getDesignCode(props.design) }),\n checkoutLanguage: getCheckoutLocale(props.locale, props.configuration.region),\n ledgerCurrency: LEDGER_CURRENCIES_PER_REGION[props.configuration.region] || props.currency || (amount?.currency as Currency),\n merchantId: props.configuration.merchantId,\n productType: props.productType,\n placement: props.placement,\n sandbox: props.environment === 'TEST'\n };\n}\n\n/**\n * Returns the fallback locale for passed region.\n * @param region - Two-letter country code in ISO 3166 format\n * @returns A fallback locale\n */\nexport function getFallbackLocale(region: Region): SupportedLocale {\n return region === 'US' ? FALLBACK_LOCALE_US : FALLBACK_LOCALE_EU;\n}\n\n/**\n * Returns an array of supported locales for passed region.\n * @param region - Two-letter country code in ISO 3166 format\n * @returns An array of supported locales\n */\nexport function getSupportedLocales(region: Region): SupportedLocale[] {\n const supportedLocales = region === 'US' ? SUPPORTED_LOCALES_US : SUPPORTED_LOCALES_EU;\n return supportedLocales as unknown as SupportedLocale[];\n}\n\n/**\n * Gets a locale and matches it with one of the supported locales for the given region.\n * If there's no match, it will return the region's fallback option.\n * @param locale - Locale to be processed\n * @param region - Two-letter country code in ISO 3166 format\n * @returns A supported locale\n */\nexport function getCheckoutLocale(locale: string, region: Region): SupportedLocale {\n const supportedLocales = getSupportedLocales(region);\n const isSupportedLocale = supportedLocales.includes(locale as SupportedLocale);\n const checkoutLocale = isSupportedLocale ? locale : getFallbackLocale(region);\n\n return checkoutLocale as SupportedLocale;\n}\n\n/**\n * Gets the design code from the given alias.\n * @param design - The alias of one of the possible designs.\n * @returns A design code\n */\nexport function getDesignCode(design: string): string {\n if (design === 'noTagline') return 'C0001';\n return null;\n}\n\n/**\n * Returns the amount in the format Amazon expects.\n * @param amount - The amount object in the Adyen format\n * @returns the charge amount object in the Amazon format\n */\nexport function getChargeAmount(amount: PaymentAmount): ChargeAmount {\n return {\n amount: String(getDecimalAmount(amount.value, amount.currency)),\n currencyCode: amount.currency as Currency\n };\n}\n\n/**\n * Returns a PayloadJSON object.\n * @param props -\n * @returns PayloadJSON\n */\nexport function getPayloadJSON(props, amount: PaymentAmount): PayloadJSON {\n const { addressDetails, cancelUrl, checkoutMode, deliverySpecifications, returnUrl, merchantMetadata, chargePermissionType, recurringMetadata } =\n props;\n\n const { storeId } = props.configuration;\n const isPayNow = checkoutMode === 'ProcessOrder';\n const finalAmount = isPayNow ? getChargeAmount(amount) : null;\n\n return {\n storeId,\n chargePermissionType,\n webCheckoutDetails: {\n ...(isPayNow ? { checkoutResultReturnUrl: returnUrl } : { checkoutReviewReturnUrl: returnUrl }),\n ...(cancelUrl && { checkoutCancelUrl: cancelUrl }),\n ...(isPayNow && { checkoutMode })\n },\n ...(isPayNow && {\n paymentDetails: {\n chargeAmount: finalAmount,\n paymentIntent: 'Confirm',\n presentmentCurrency: finalAmount.currencyCode,\n totalOrderAmount: finalAmount\n }\n }),\n ...(recurringMetadata && { recurringMetadata }),\n ...(merchantMetadata && { merchantMetadata }),\n ...(deliverySpecifications && { deliverySpecifications }),\n ...(addressDetails && { addressDetails })\n };\n}\n"],"names":["getAmazonPayUrl","region","AMAZONPAY_URL_US","AMAZONPAY_URL_EU","getAmazonPaySettings","props","amount","_object_spread_props","_object_spread","buttonColor","design","getDesignCode","checkoutLanguage","getCheckoutLocale","locale","configuration","ledgerCurrency","LEDGER_CURRENCIES_PER_REGION","currency","merchantId","productType","placement","sandbox","environment","getFallbackLocale","FALLBACK_LOCALE_US","FALLBACK_LOCALE_EU","getSupportedLocales","SUPPORTED_LOCALES_US","SUPPORTED_LOCALES_EU","includes","getChargeAmount","String","getDecimalAmount","value","currencyCode","getPayloadJSON","addressDetails","cancelUrl","checkoutMode","deliverySpecifications","returnUrl","merchantMetadata","chargePermissionType","recurringMetadata","storeId","isPayNow","finalAmount","webCheckoutDetails","checkoutResultReturnUrl","checkoutReviewReturnUrl","checkoutCancelUrl","paymentDetails","chargeAmount","paymentIntent","presentmentCurrency","totalOrderAmount"],"mappings":"kjCAkBO,SAASA,EAAgBC,GAC5B,MAAkB,OAAXA,EAAkBC,EAAmBC,CAChD,CAOO,SAASC,EAAqBC,EAA6BC,GAC9D,OAAOC,EAAAC,EAAA,GACCH,EAAMI,aAAe,CAAEA,YAAaJ,EAAMI,aAC1CJ,EAAMK,QAAU,CAAEA,OAAQC,EAAcN,EAAMK,UAAQ,CAC1DE,iBAAkBC,EAAkBR,EAAMS,OAAQT,EAAMU,cAAcd,QACtEe,eAAgBC,EAA6BZ,EAAMU,cAAcd,SAAWI,EAAMa,WAAaZ,aAAAA,EAAAA,EAAQY,UACvGC,WAAYd,EAAMU,cAAcI,WAChCC,YAAaf,EAAMe,YACnBC,UAAWhB,EAAMgB,UACjBC,QAA+B,SAAtBjB,EAAMkB,aAEvB,CAOO,SAASC,EAAkBvB,GAC9B,MAAkB,OAAXA,EAAkBwB,EAAqBC,CAClD,CAOO,SAASC,EAAoB1B,GAEhC,MADoC,OAAXA,EAAkB2B,EAAuBC,CAEtE,CASO,SAAShB,EAAkBC,EAAgBb,GAK9C,OAJyB0B,EAAoB1B,GACF6B,SAAShB,GACTA,EAASU,EAAkBvB,EAG1E,CAOO,SAASU,EAAcD,GAC1B,MAAe,cAAXA,EAA+B,QAC5B,IACX,CAOO,SAASqB,EAAgBzB,GAC5B,MAAO,CACHA,OAAQ0B,OAAOC,EAAiB3B,EAAO4B,MAAO5B,EAAOY,WACrDiB,aAAc7B,EAAOY,SAE7B,CAOO,SAASkB,EAAe/B,EAAOC,GAClC,MAAM+B,eAAEA,EAAcC,UAAEA,EAASC,aAAEA,EAAYC,uBAAEA,EAAsBC,UAAEA,EAASC,iBAAEA,EAAgBC,qBAAEA,EAAoBC,kBAAEA,GACxHvC,GAEEwC,QAAEA,GAAYxC,EAAMU,cACpB+B,EAA4B,iBAAjBP,EACXQ,EAAcD,EAAWf,EAAgBzB,GAAU,KAEzD,OAAOE,EAAA,CACHqC,UACAF,uBACAK,mBAAoBxC,KACZsC,EAAW,CAAEG,wBAAyBR,GAAc,CAAES,wBAAyBT,GAC/EH,GAAa,CAAEa,kBAAmBb,GAClCQ,GAAY,CAAEP,kBAElBO,GAAY,CACZM,eAAgB,CACZC,aAAcN,EACdO,cAAe,UACfC,oBAAqBR,EAAYZ,aACjCqB,iBAAkBT,IAGtBH,GAAqB,CAAEA,qBACvBF,GAAoB,CAAEA,oBACtBF,GAA0B,CAAEA,0BAC5BH,GAAkB,CAAEA,kBAEhC"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/components/AmazonPay/utils.ts"],"sourcesContent":["import {\n AMAZONPAY_URL_EU,\n AMAZONPAY_URL_US,\n FALLBACK_LOCALE_EU,\n FALLBACK_LOCALE_US,\n LEDGER_CURRENCIES_PER_REGION,\n SUPPORTED_LOCALES_EU,\n SUPPORTED_LOCALES_US\n} from './config';\nimport { AmazonPayButtonProps, AmazonPayButtonSettings, ChargeAmount, Currency, PayloadJSON, Region, SupportedLocale } from './types';\nimport { PaymentAmount } from '../../types/global-types';\nimport { getDecimalAmount } from '../../utils/amount-util';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\n\n/**\n * Returns the AmazonPay script URL for passed region.\n * @param region - Two-letter country code in ISO 3166 format\n * @returns the AmazonPay script URL\n */\nexport function getAmazonPayUrl(region?: Region): string {\n return region === 'US' ? AMAZONPAY_URL_US : AMAZONPAY_URL_EU;\n}\n\n/**\n * Returns the AmazonPay button settings object\n * @param props -\n * @returns the AmazonPay button settings\n */\nexport function getAmazonPaySettings(props: AmazonPayButtonProps, amount?: PaymentAmount): AmazonPayButtonSettings {\n const region = props.configuration?.region;\n return {\n ...(props.buttonColor && { buttonColor: props.buttonColor }),\n ...(props.design && { design: getDesignCode(props.design) }),\n checkoutLanguage: getCheckoutLocale(props.locale, region),\n ledgerCurrency: (region && LEDGER_CURRENCIES_PER_REGION[region]) || props.currency || (amount?.currency as Currency),\n merchantId: props.configuration?.merchantId,\n productType: props.productType,\n placement: props.placement,\n sandbox: props.environment === 'TEST'\n };\n}\n\n/**\n * Returns the fallback locale for passed region.\n * @param region - Two-letter country code in ISO 3166 format\n * @returns A fallback locale\n */\nexport function getFallbackLocale(region?: Region): SupportedLocale {\n return region === 'US' ? FALLBACK_LOCALE_US : FALLBACK_LOCALE_EU;\n}\n\n/**\n * Returns an array of supported locales for passed region.\n * @param region - Two-letter country code in ISO 3166 format\n * @returns An array of supported locales\n */\nexport function getSupportedLocales(region?: Region): SupportedLocale[] {\n const supportedLocales = region === 'US' ? SUPPORTED_LOCALES_US : SUPPORTED_LOCALES_EU;\n return supportedLocales as unknown as SupportedLocale[];\n}\n\n/**\n * Gets a locale and matches it with one of the supported locales for the given region.\n * If there's no match, it will return the region's fallback option.\n * @param locale - Locale to be processed\n * @param region - Two-letter country code in ISO 3166 format\n * @returns A supported locale\n */\nexport function getCheckoutLocale(locale?: string, region?: Region): SupportedLocale {\n const supportedLocales = getSupportedLocales(region);\n const isSupportedLocale = supportedLocales.includes(locale as SupportedLocale);\n const checkoutLocale = isSupportedLocale ? locale : getFallbackLocale(region);\n\n return checkoutLocale as SupportedLocale;\n}\n\n/**\n * Gets the design code from the given alias.\n * @param design - The alias of one of the possible designs.\n * @returns A design code\n */\nexport function getDesignCode(design: string): string | null {\n if (design === 'noTagline') return 'C0001';\n return null;\n}\n\n/**\n * Returns the amount in the format Amazon expects.\n * @param amount - The amount object in the Adyen format\n * @returns the charge amount object in the Amazon format\n */\nexport function getChargeAmount(amount: PaymentAmount): ChargeAmount {\n return {\n amount: String(getDecimalAmount(amount.value, amount.currency)),\n currencyCode: amount.currency as Currency\n };\n}\n\n/**\n * Returns a PayloadJSON object.\n * @param props -\n * @returns PayloadJSON\n */\nexport function getPayloadJSON(props, amount?: PaymentAmount): PayloadJSON {\n const { addressDetails, cancelUrl, checkoutMode, deliverySpecifications, returnUrl, merchantMetadata, chargePermissionType, recurringMetadata } =\n props;\n\n const storeId = props.configuration?.storeId;\n const isPayNow = checkoutMode === 'ProcessOrder';\n let finalAmount: ChargeAmount | null = null;\n\n if (isPayNow) {\n if (!amount) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"AmazonPay: 'amount' is required when checkoutMode is 'ProcessOrder'\");\n }\n finalAmount = getChargeAmount(amount);\n }\n\n return {\n storeId,\n chargePermissionType,\n webCheckoutDetails: {\n ...(isPayNow ? { checkoutResultReturnUrl: returnUrl } : { checkoutReviewReturnUrl: returnUrl }),\n ...(cancelUrl && { checkoutCancelUrl: cancelUrl }),\n ...(isPayNow && { checkoutMode })\n },\n ...(finalAmount && {\n paymentDetails: {\n chargeAmount: finalAmount,\n paymentIntent: 'Confirm',\n presentmentCurrency: finalAmount.currencyCode,\n totalOrderAmount: finalAmount\n }\n }),\n ...(recurringMetadata && { recurringMetadata }),\n ...(merchantMetadata && { merchantMetadata }),\n ...(deliverySpecifications && { deliverySpecifications }),\n ...(addressDetails && { addressDetails })\n };\n}\n"],"names":["getAmazonPayUrl","region","AMAZONPAY_URL_US","AMAZONPAY_URL_EU","getAmazonPaySettings","props","amount","configuration","_object_spread_props","_object_spread","buttonColor","design","getDesignCode","checkoutLanguage","getCheckoutLocale","locale","ledgerCurrency","LEDGER_CURRENCIES_PER_REGION","currency","merchantId","productType","placement","sandbox","environment","getFallbackLocale","FALLBACK_LOCALE_US","FALLBACK_LOCALE_EU","getSupportedLocales","SUPPORTED_LOCALES_US","SUPPORTED_LOCALES_EU","includes","getChargeAmount","String","getDecimalAmount","value","currencyCode","getPayloadJSON","addressDetails","cancelUrl","checkoutMode","deliverySpecifications","returnUrl","merchantMetadata","chargePermissionType","recurringMetadata","storeId","isPayNow","finalAmount","AdyenCheckoutError","webCheckoutDetails","checkoutResultReturnUrl","checkoutReviewReturnUrl","checkoutCancelUrl","paymentDetails","chargeAmount","paymentIntent","presentmentCurrency","totalOrderAmount"],"mappings":"ymCAmBO,SAASA,EAAgBC,GAC5B,MAAkB,OAAXA,EAAkBC,EAAmBC,CAChD,CAOO,SAASC,EAAqBC,EAA6BC,OAC/CD,EAMCA,EANhB,MAAMJ,EAA4B,QAAnBI,EAAAA,EAAME,qBAANF,IAAAA,SAAAA,EAAqBJ,OACpC,OAAOO,EAAAC,EAAA,GACCJ,EAAMK,aAAe,CAAEA,YAAaL,EAAMK,aAC1CL,EAAMM,QAAU,CAAEA,OAAQC,EAAcP,EAAMM,UAAQ,CAC1DE,iBAAkBC,EAAkBT,EAAMU,OAAQd,GAClDe,eAAgBf,GAAWgB,EAA6BhB,IAAYI,EAAMa,WAAaZ,aAAAA,EAAAA,EAAQY,UAC/FC,WAA+B,QAAnBd,EAAAA,EAAME,qBAANF,IAAAA,SAAAA,EAAqBc,WACjCC,YAAaf,EAAMe,YACnBC,UAAWhB,EAAMgB,UACjBC,QAA+B,SAAtBjB,EAAMkB,aAEvB,CAOO,SAASC,EAAkBvB,GAC9B,MAAkB,OAAXA,EAAkBwB,EAAqBC,CAClD,CAOO,SAASC,EAAoB1B,GAEhC,MADoC,OAAXA,EAAkB2B,EAAuBC,CAEtE,CASO,SAASf,EAAkBC,EAAiBd,GAK/C,OAJyB0B,EAAoB1B,GACF6B,SAASf,GACTA,EAASS,EAAkBvB,EAG1E,CAOO,SAASW,EAAcD,GAC1B,MAAe,cAAXA,EAA+B,QAC5B,IACX,CAOO,SAASoB,EAAgBzB,GAC5B,MAAO,CACHA,OAAQ0B,OAAOC,EAAiB3B,EAAO4B,MAAO5B,EAAOY,WACrDiB,aAAc7B,EAAOY,SAE7B,CAOO,SAASkB,EAAe/B,EAAOC,GAIlBD,IAAAA,EAHhB,MAAMgC,eAAEA,EAAcC,UAAEA,EAASC,aAAEA,EAAYC,uBAAEA,EAAsBC,UAAEA,EAASC,iBAAEA,EAAgBC,qBAAEA,EAAoBC,kBAAEA,GACxHvC,EAEEwC,EAA6B,QAAnBxC,EAAAA,EAAME,qBAANF,IAAAA,SAAAA,EAAqBwC,QAC/BC,EAA4B,iBAAjBP,EACjB,IAAIQ,EAAmC,KAEvC,GAAID,EAAU,CACV,IAAKxC,EACD,MAAM,IAAI0C,EAAmB,uBAAwB,uEAEzDD,EAAchB,EAAgBzB,EAClC,CAEA,OAAOG,EAAA,CACHoC,UACAF,uBACAM,mBAAoBxC,KACZqC,EAAW,CAAEI,wBAAyBT,GAAc,CAAEU,wBAAyBV,GAC/EH,GAAa,CAAEc,kBAAmBd,GAClCQ,GAAY,CAAEP,kBAElBQ,GAAe,CACfM,eAAgB,CACZC,aAAcP,EACdQ,cAAe,UACfC,oBAAqBT,EAAYZ,aACjCsB,iBAAkBV,IAGtBH,GAAqB,CAAEA,qBACvBF,GAAoB,CAAEA,oBACtBF,GAA0B,CAAEA,0BAC5BH,GAAkB,CAAEA,kBAEhC"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../../external/preact/dist/preact.js";import{useState as l,useMemo as n,useEffect as t}from"../../../../../../external/preact/hooks/dist/hooks.js";import a from"../../../../../internal/FormFields/Field/Field.js";import{useCoreContext as s}from"../../../../../../core/Context/CoreProvider.js";import i from"../../../../../internal/FormFields/Fieldset/Fieldset.js";import o from"../../../../../internal/FormFields/RadioGroup/RadioGroup.js";import r from"../../../../../internal/FormFields/Select/Select.js";import{alternativeLabelContent as u}from"../FieldLabelAlternative.js";import{useAmount as m}from"../../../../../../core/Context/AmountProvider.js";function d(e,l,n){return l in e?Object.defineProperty(e,l,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[l]=n,e}function v(v){var c,p,b;const{i18n:f}=s(),{amount:g}=m(),{brand:h,onChange:j,type:y}=v,F=v.installmentOptions[h]||v.installmentOptions.card,O=1===(null==F||null===(c=F.values)||void 0===c?void 0:c.length),[C,x]=l((null==F?void 0:F.preselectedValue)||(null==F?void 0:F.values[0])),[E,N]=l("onetime"),P=(null==F||null===(p=F.plans)||void 0===p?void 0:p.includes("revolving"))||(null==F||null===(b=F.plans)||void 0===b?void 0:b.includes("bonus")),_=n(()=>function(e,l){return e?[{id:"onetime",name:"installments.oneTime"},{id:"installments",name:"installments.installments"},...(null==l?void 0:l.includes("revolving"))?[{id:"revolving",name:"installments.revolving"}]:[],...(null==l?void 0:l.includes("bonus"))?[{id:"bonus",name:"installments.bonus"}]:[]]:[]}(P,null==F?void 0:F.plans),[P,F]),w=e=>{const l=e.target.value;x(Number(l))},k=e=>{const l=e.currentTarget.getAttribute("value");N(l)},L=e=>{let l,n;if("amount"===y){l="installmentOption",n={count:e,values:{times:e,partialValue:(e=>f.amount(g.value/e,g.currency))(e)}}}else l="installmentOptionMonths",n={count:e,values:{times:e}};return{id:e,name:g.value?f.get(l,n):`${e}`}};return t(()=>{var e,l;(null==F||null===(l=F.values)||void 0===l?void 0:l.includes(C))||x(null!==(e=null==F?void 0:F.preselectedValue)&&void 0!==e?e:null==F?void 0:F.values[0])},[h]),t(()=>{const e=function(e){for(var l=1;l<arguments.length;l++){var n=null!=arguments[l]?arguments[l]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(l){d(e,l,n[l])})}return e}({value:C},P&&"onetime"===E&&{value:1},P&&"revolving"===E&&{value:1,plan:"revolving"},P&&"bonus"===E&&{value:1,plan:"bonus"});j(F?e:{value:null})},[j,P,C,F,E]),F&&g&&0!==g.value?P?e("div",{className:"adyen-checkout__installments adyen-checkout__installments--revolving-plan"},e(a,{label:f.get("installments"),classNameModifiers:["installments"],name:"installmentsPseudoLabel",useLabelElement:!1,showContextualElement:!1,renderAlternativeToLabel:u},e(i,{classNameModifiers:["revolving-plan"],label:""},e(o,{items:_,onChange:k,value:E,ariaLabel:f.get("installments")}),e(a,{className:"installments"!==E?"revolving-plan-installments__disabled":"revolving-plan-installments",classNameModifiers:["revolving-plan-installments"],name:"",useLabelElement:!1,showContextualElement:!1},e(r,{filterable:!1,items:F.values.map(L),selectedValue:C,onChange:w,name:"installments",disabled:"installments"!==E}))))):e("div",{className:"adyen-checkout__installments"},e(a,{label:f.get("installments"),classNameModifiers:["installments"],name:"installments",showContextualElement:!1},e(r,{filterable:!1,items:F.values.map(L),selectedValue:C,onChange:w,name:"installments",readonly:O,disabled:O}))):null}v.defaultProps={brand:"",onChange:()=>{}};export{v as default};
1
+ import{createElement as e}from"../../../../../../external/preact/dist/preact.js";import{useState as l,useMemo as n,useEffect as t}from"../../../../../../external/preact/hooks/dist/hooks.js";import a from"../../../../../internal/FormFields/Field/Field.js";import{useCoreContext as i}from"../../../../../../core/Context/CoreProvider.js";import s from"../../../../../internal/FormFields/Fieldset/Fieldset.js";import o from"../../../../../internal/FormFields/RadioGroup/RadioGroup.js";import r from"../../../../../internal/FormFields/Select/Select.js";import{alternativeLabelContent as u}from"../FieldLabelAlternative.js";import{useAmount as m}from"../../../../../../core/Context/AmountProvider.js";function d(e,l,n){return l in e?Object.defineProperty(e,l,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[l]=n,e}function v(v){var c,p,b,f,g,h;const{i18n:j}=i(),{amount:y}=m(),{brand:F,onChange:O,type:C}=v,x=v.installmentOptions[F]||v.installmentOptions.card,E=!!x,N=null==x||null===(f=x.plans)||void 0===f?void 0:f.join(","),P=null!==(c=null==x?void 0:x.values)&&void 0!==c?c:[],_=P.length>0,w=1===P.length,[k,L]=l(null!==(p=null!==(b=null==x?void 0:x.preselectedValue)&&void 0!==b?b:P[0])&&void 0!==p?p:null),[M,S]=l("onetime"),V=(null==x||null===(g=x.plans)||void 0===g?void 0:g.includes("revolving"))||(null==x||null===(h=x.plans)||void 0===h?void 0:h.includes("bonus")),A=n(()=>function(e,l,n){return e?[{id:"onetime",name:"installments.oneTime"},...l?[{id:"installments",name:"installments.installments"}]:[],...(null==n?void 0:n.includes("revolving"))?[{id:"revolving",name:"installments.revolving"}]:[],...(null==n?void 0:n.includes("bonus"))?[{id:"bonus",name:"installments.bonus"}]:[]]:[]}(V,_,null==x?void 0:x.plans),[V,_,N]),T=A.some(e=>e.id===M)?M:"onetime",G=e=>{const l=e.target.value;L(Number(l))},R=e=>{const l=e.currentTarget.getAttribute("value");S(l)},D=e=>{let l,n;if("amount"===C){l="installmentOption",n={count:e,values:{times:e,partialValue:(e=>j.amount(y.value/e,y.currency))(e)}}}else l="installmentOptionMonths",n={count:e,values:{times:e}};return{id:e,name:y.value?j.get(l,n):`${e}`}};return t(()=>{var e,l;null!==k&&P.includes(k)||L(null!==(e=null!==(l=null==x?void 0:x.preselectedValue)&&void 0!==l?l:P[0])&&void 0!==e?e:null)},[F]),t(()=>{const e=function(e){for(var l=1;l<arguments.length;l++){var n=null!=arguments[l]?arguments[l]:{},t=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),t.forEach(function(l){d(e,l,n[l])})}return e}({value:k},V&&"onetime"===T&&{value:1},V&&"revolving"===T&&{value:1,plan:"revolving"},V&&"bonus"===T&&{value:1,plan:"bonus"});O(E?e:{value:null})},[O,V,k,E,T]),x&&y&&0!==y.value?V?e("div",{className:"adyen-checkout__installments adyen-checkout__installments--revolving-plan"},e(a,{label:j.get("installments"),classNameModifiers:["installments"],name:"installmentsPseudoLabel",useLabelElement:!1,showContextualElement:!1,renderAlternativeToLabel:u},e(s,{classNameModifiers:["revolving-plan"],label:""},e(o,{items:A,onChange:R,value:T,ariaLabel:j.get("installments")}),_&&e(a,{className:"installments"!==T?"revolving-plan-installments__disabled":"revolving-plan-installments",classNameModifiers:["revolving-plan-installments"],name:"",useLabelElement:!1,showContextualElement:!1},e(r,{filterable:!1,items:P.map(D),selectedValue:null!=k?k:void 0,onChange:G,name:"installments",disabled:"installments"!==T}))))):_?e("div",{className:"adyen-checkout__installments"},e(a,{label:j.get("installments"),classNameModifiers:["installments"],name:"installments",showContextualElement:!1},e(r,{filterable:!1,items:P.map(D),selectedValue:null!=k?k:void 0,onChange:G,name:"installments",readonly:w,disabled:w}))):null:null}v.defaultProps={brand:"",onChange:()=>{}};export{v as default};
2
2
  //# sourceMappingURL=Installments.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Installments.js","sources":["../../../../../../../../src/components/Card/components/CardInput/components/Installments/Installments.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useMemo } from 'preact/hooks';\nimport Field from '../../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../../core/Context/CoreProvider';\nimport { InstallmentsItem } from '../types';\nimport Fieldset from '../../../../../internal/FormFields/Fieldset/Fieldset';\nimport RadioGroup from '../../../../../internal/FormFields/RadioGroup';\nimport Select from '../../../../../internal/FormFields/Select';\nimport { alternativeLabelContent } from '../FieldLabelAlternative';\nimport { useAmount } from '../../../../../../core/Context/AmountProvider';\n\nimport './Installments.scss';\n\nexport type InstallmentPlan = 'revolving' | 'bonus' | 'regular';\n\nexport interface InstallmentsState {\n value: number | null;\n plan?: InstallmentPlan;\n}\n\nexport interface InstallmentOption {\n values: number[];\n plans?: InstallmentPlan[];\n preselectedValue?: number;\n}\n\nexport interface InstallmentOptions {\n [key: string]: InstallmentOption;\n}\nexport interface InstallmentsProps {\n brand?: string;\n onChange?: (installmentObject: InstallmentsState) => void;\n installmentOptions: InstallmentOptions;\n type?: string;\n}\n\nfunction createRadioGroupItems(hasRadioButtonUI: boolean, plans?: InstallmentPlan[]): { id: string; name: string }[] {\n if (!hasRadioButtonUI) {\n return [];\n }\n\n return [\n { id: 'onetime', name: 'installments.oneTime' },\n { id: 'installments', name: 'installments.installments' },\n ...(plans?.includes('revolving') ? [{ id: 'revolving', name: 'installments.revolving' }] : []),\n ...(plans?.includes('bonus') ? [{ id: 'bonus', name: 'installments.bonus' }] : [])\n ];\n}\n\nfunction Installments(props: Readonly<InstallmentsProps>) {\n const { i18n } = useCoreContext();\n const { amount } = useAmount();\n const { brand, onChange, type } = props;\n const installmentOptions = props.installmentOptions[brand] || props.installmentOptions.card;\n const readOnly = installmentOptions?.values?.length === 1;\n const [installmentAmount, setInstallmentAmount] = useState(installmentOptions?.preselectedValue || installmentOptions?.values[0]);\n const [radioBtnValue, setRadioBtnValue] = useState('onetime');\n\n const hasRadioButtonUI = installmentOptions?.plans?.includes('revolving') || installmentOptions?.plans?.includes('bonus');\n const radioGroupItems = useMemo(() => createRadioGroupItems(hasRadioButtonUI, installmentOptions?.plans), [hasRadioButtonUI, installmentOptions]);\n\n const onSelectInstallment = e => {\n const selectedInstallments = e.target.value;\n setInstallmentAmount(Number(selectedInstallments));\n };\n\n const onRadioSelect = e => {\n const selectedBtn = e.currentTarget.getAttribute('value');\n setRadioBtnValue(selectedBtn);\n };\n\n const installmentItemsMapper = (value: number): InstallmentsItem => {\n let translationKey;\n let translationObj;\n\n if (type === 'amount') {\n const getPartialAmount = (divider: number): string => i18n.amount(amount.value / divider, amount.currency);\n\n translationKey = 'installmentOption';\n translationObj = { count: value, values: { times: value, partialValue: getPartialAmount(value) } };\n } else {\n translationKey = `installmentOptionMonths`;\n translationObj = { count: value, values: { times: value } };\n }\n\n return {\n id: value,\n name: amount.value ? i18n.get(translationKey, translationObj) : `${value}`\n };\n };\n\n useEffect(() => {\n if (installmentOptions?.values?.includes(installmentAmount)) {\n return;\n }\n\n setInstallmentAmount(installmentOptions?.preselectedValue ?? installmentOptions?.values[0]);\n }, [brand]);\n\n useEffect(() => {\n const state: InstallmentsState = {\n value: installmentAmount,\n ...(hasRadioButtonUI && radioBtnValue === 'onetime' && { value: 1 }),\n ...(hasRadioButtonUI && radioBtnValue === 'revolving' && { value: 1, plan: 'revolving' }),\n ...(hasRadioButtonUI && radioBtnValue === 'bonus' && { value: 1, plan: 'bonus' })\n };\n\n onChange(installmentOptions ? state : { value: null });\n }, [onChange, hasRadioButtonUI, installmentAmount, installmentOptions, radioBtnValue]);\n\n if (!installmentOptions) return null;\n if (!amount || amount.value === 0) return null;\n\n if (hasRadioButtonUI) {\n return (\n <div className=\"adyen-checkout__installments adyen-checkout__installments--revolving-plan\">\n <Field\n label={i18n.get('installments')}\n classNameModifiers={['installments']}\n name={'installmentsPseudoLabel'}\n useLabelElement={false}\n showContextualElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n >\n <Fieldset classNameModifiers={['revolving-plan']} label={''}>\n <RadioGroup items={radioGroupItems} onChange={onRadioSelect} value={radioBtnValue} ariaLabel={i18n.get('installments')} />\n\n <Field\n className={radioBtnValue !== 'installments' ? 'revolving-plan-installments__disabled' : 'revolving-plan-installments'}\n classNameModifiers={['revolving-plan-installments']}\n name={''}\n useLabelElement={false}\n showContextualElement={false}\n >\n <Select\n filterable={false}\n items={installmentOptions.values.map(installmentItemsMapper)}\n selectedValue={installmentAmount}\n onChange={onSelectInstallment}\n name={'installments'}\n disabled={radioBtnValue !== 'installments'}\n />\n </Field>\n </Fieldset>\n </Field>\n </div>\n );\n }\n\n return (\n <div className=\"adyen-checkout__installments\">\n <Field label={i18n.get('installments')} classNameModifiers={['installments']} name={'installments'} showContextualElement={false}>\n <Select\n filterable={false}\n items={installmentOptions.values.map(installmentItemsMapper)}\n selectedValue={installmentAmount}\n onChange={onSelectInstallment}\n name={'installments'}\n readonly={readOnly}\n disabled={readOnly}\n />\n </Field>\n </div>\n );\n}\n\nInstallments.defaultProps = {\n brand: '',\n onChange: () => {}\n};\n\nexport default Installments;\n"],"names":["Installments","props","installmentOptions","i18n","useCoreContext","amount","useAmount","brand","onChange","type","card","readOnly","values","length","installmentAmount","setInstallmentAmount","useState","preselectedValue","radioBtnValue","setRadioBtnValue","hasRadioButtonUI","plans","includes","radioGroupItems","useMemo","id","name","createRadioGroupItems","onSelectInstallment","e","selectedInstallments","target","value","Number","onRadioSelect","selectedBtn","currentTarget","getAttribute","installmentItemsMapper","translationKey","translationObj","count","times","partialValue","divider","currency","getPartialAmount","get","useEffect","_ref","state","_object_spread","plan","h","div","className","Field","label","classNameModifiers","useLabelElement","showContextualElement","renderAlternativeToLabel","alternativeLabelContent","Fieldset","RadioGroup","items","ariaLabel","Select","filterable","map","selectedValue","disabled","readonly","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"Installments.js","sources":["../../../../../../../../src/components/Card/components/CardInput/components/Installments/Installments.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useState, useEffect, useMemo } from 'preact/hooks';\nimport Field from '../../../../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../../../../core/Context/CoreProvider';\nimport { InstallmentsItem } from '../types';\nimport Fieldset from '../../../../../internal/FormFields/Fieldset/Fieldset';\nimport RadioGroup from '../../../../../internal/FormFields/RadioGroup';\nimport Select from '../../../../../internal/FormFields/Select';\nimport { alternativeLabelContent } from '../FieldLabelAlternative';\nimport { useAmount } from '../../../../../../core/Context/AmountProvider';\n\nimport './Installments.scss';\n\nexport type InstallmentPlan = 'revolving' | 'bonus' | 'regular';\n\nexport interface InstallmentsState {\n value: number | null;\n plan?: InstallmentPlan;\n}\n\nexport interface InstallmentOption {\n values?: number[];\n plans?: InstallmentPlan[];\n preselectedValue?: number;\n}\n\nexport interface InstallmentOptions {\n [key: string]: InstallmentOption;\n}\nexport interface InstallmentsProps {\n brand?: string;\n onChange?: (installmentObject: InstallmentsState) => void;\n installmentOptions: InstallmentOptions;\n type?: string;\n}\n\nfunction createRadioGroupItems(hasRadioButtonUI: boolean, hasInstallmentValues: boolean, plans?: InstallmentPlan[]): { id: string; name: string }[] {\n if (!hasRadioButtonUI) {\n return [];\n }\n\n return [\n { id: 'onetime', name: 'installments.oneTime' },\n ...(hasInstallmentValues ? [{ id: 'installments', name: 'installments.installments' }] : []),\n ...(plans?.includes('revolving') ? [{ id: 'revolving', name: 'installments.revolving' }] : []),\n ...(plans?.includes('bonus') ? [{ id: 'bonus', name: 'installments.bonus' }] : [])\n ];\n}\n\nfunction Installments(props: Readonly<InstallmentsProps>) {\n const { i18n } = useCoreContext();\n const { amount } = useAmount();\n const { brand, onChange, type } = props;\n const installmentOptions = props.installmentOptions[brand] || props.installmentOptions.card;\n const hasInstallmentOptions = !!installmentOptions;\n const installmentPlansKey = installmentOptions?.plans?.join(',');\n const installmentValues = installmentOptions?.values ?? [];\n const hasInstallmentValues = installmentValues.length > 0;\n const readOnly = installmentValues.length === 1;\n const [installmentAmount, setInstallmentAmount] = useState<number | null>(installmentOptions?.preselectedValue ?? installmentValues[0] ?? null);\n const [radioBtnValue, setRadioBtnValue] = useState('onetime');\n\n const hasRadioButtonUI = installmentOptions?.plans?.includes('revolving') || installmentOptions?.plans?.includes('bonus');\n const radioGroupItems = useMemo(\n () => createRadioGroupItems(hasRadioButtonUI, hasInstallmentValues, installmentOptions?.plans),\n [hasRadioButtonUI, hasInstallmentValues, installmentPlansKey]\n );\n const selectedRadioValue = radioGroupItems.some(item => item.id === radioBtnValue) ? radioBtnValue : 'onetime';\n\n const onSelectInstallment = e => {\n const selectedInstallments = e.target.value;\n setInstallmentAmount(Number(selectedInstallments));\n };\n\n const onRadioSelect = e => {\n const selectedBtn = e.currentTarget.getAttribute('value');\n setRadioBtnValue(selectedBtn);\n };\n\n const installmentItemsMapper = (value: number): InstallmentsItem => {\n let translationKey;\n let translationObj;\n\n if (type === 'amount') {\n const getPartialAmount = (divider: number): string => i18n.amount(amount.value / divider, amount.currency);\n\n translationKey = 'installmentOption';\n translationObj = { count: value, values: { times: value, partialValue: getPartialAmount(value) } };\n } else {\n translationKey = `installmentOptionMonths`;\n translationObj = { count: value, values: { times: value } };\n }\n\n return {\n id: value,\n name: amount.value ? i18n.get(translationKey, translationObj) : `${value}`\n };\n };\n\n useEffect(() => {\n if (installmentAmount !== null && installmentValues.includes(installmentAmount)) {\n return;\n }\n\n setInstallmentAmount(installmentOptions?.preselectedValue ?? installmentValues[0] ?? null);\n }, [brand]);\n\n useEffect(() => {\n const state: InstallmentsState = {\n value: installmentAmount,\n ...(hasRadioButtonUI && selectedRadioValue === 'onetime' && { value: 1 }),\n ...(hasRadioButtonUI && selectedRadioValue === 'revolving' && { value: 1, plan: 'revolving' }),\n ...(hasRadioButtonUI && selectedRadioValue === 'bonus' && { value: 1, plan: 'bonus' })\n };\n\n onChange(hasInstallmentOptions ? state : { value: null });\n }, [onChange, hasRadioButtonUI, installmentAmount, hasInstallmentOptions, selectedRadioValue]);\n\n if (!installmentOptions) return null;\n if (!amount || amount.value === 0) return null;\n\n if (hasRadioButtonUI) {\n return (\n <div className=\"adyen-checkout__installments adyen-checkout__installments--revolving-plan\">\n <Field\n label={i18n.get('installments')}\n classNameModifiers={['installments']}\n name={'installmentsPseudoLabel'}\n useLabelElement={false}\n showContextualElement={false}\n renderAlternativeToLabel={alternativeLabelContent}\n >\n <Fieldset classNameModifiers={['revolving-plan']} label={''}>\n <RadioGroup\n items={radioGroupItems}\n onChange={onRadioSelect}\n value={selectedRadioValue}\n ariaLabel={i18n.get('installments')}\n />\n\n {hasInstallmentValues && (\n <Field\n className={\n selectedRadioValue !== 'installments' ? 'revolving-plan-installments__disabled' : 'revolving-plan-installments'\n }\n classNameModifiers={['revolving-plan-installments']}\n name={''}\n useLabelElement={false}\n showContextualElement={false}\n >\n <Select\n filterable={false}\n items={installmentValues.map(installmentItemsMapper)}\n selectedValue={installmentAmount ?? undefined}\n onChange={onSelectInstallment}\n name={'installments'}\n disabled={selectedRadioValue !== 'installments'}\n />\n </Field>\n )}\n </Fieldset>\n </Field>\n </div>\n );\n }\n\n if (!hasInstallmentValues) return null;\n\n return (\n <div className=\"adyen-checkout__installments\">\n <Field label={i18n.get('installments')} classNameModifiers={['installments']} name={'installments'} showContextualElement={false}>\n <Select\n filterable={false}\n items={installmentValues.map(installmentItemsMapper)}\n selectedValue={installmentAmount ?? undefined}\n onChange={onSelectInstallment}\n name={'installments'}\n readonly={readOnly}\n disabled={readOnly}\n />\n </Field>\n </div>\n );\n}\n\nInstallments.defaultProps = {\n brand: '',\n onChange: () => {}\n};\n\nexport default Installments;\n"],"names":["Installments","props","installmentOptions","i18n","useCoreContext","amount","useAmount","brand","onChange","type","card","hasInstallmentOptions","installmentPlansKey","plans","join","installmentValues","values","hasInstallmentValues","length","readOnly","installmentAmount","setInstallmentAmount","useState","preselectedValue","radioBtnValue","setRadioBtnValue","hasRadioButtonUI","includes","radioGroupItems","useMemo","id","name","createRadioGroupItems","selectedRadioValue","some","item","onSelectInstallment","e","selectedInstallments","target","value","Number","onRadioSelect","selectedBtn","currentTarget","getAttribute","installmentItemsMapper","translationKey","translationObj","count","times","partialValue","divider","currency","getPartialAmount","get","useEffect","_ref1","state","_object_spread","plan","h","div","className","Field","label","classNameModifiers","useLabelElement","showContextualElement","renderAlternativeToLabel","alternativeLabelContent","Fieldset","RadioGroup","items","ariaLabel","Select","filterable","map","selectedValue","undefined","disabled","readonly","defaultProps"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../../../src/components/Card/components/CardInput/types.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport type {\n BinLookupResponse,\n BrandConfiguration,\n CardBrandsConfiguration,\n CardBackendConfiguration,\n DualBrandSelectElement,\n CardPlaceholders\n} from '../../types';\nimport {\n CardAllValidData,\n CardAutoCompleteData,\n CardBinValueData,\n CardBrandData,\n CardConfigSuccessData,\n CardFieldValidData,\n CardFocusData,\n CardLoadData,\n CVCPolicyType,\n DatePolicyType\n} from '../../../internal/SecuredFields/lib/types';\nimport Specifications from '../../../internal/Address/Specifications';\nimport { AddressSchema } from '../../../internal/Address/types';\nimport { CardErrorData, StylesObject } from '../../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../../core/Context/Resources';\nimport { SRPanel } from '../../../../core/Errors/SRPanel';\nimport RiskElement from '../../../../core/RiskModule';\nimport { OnAddressLookupType, OnAddressSelectedType } from '../../../internal/Address/components/AddressSearch';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport { AddressData } from '../../../../types/global-types';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\nimport type { AbstractAnalyticsEvent } from '../../../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { IAnalytics } from '../../../../core/Analytics/Analytics';\nimport { PayButtonProps } from '../../../internal/PayButton/PayButton';\nimport { h } from 'preact';\nimport { InstallmentOptions } from './components/Installments/Installments';\nimport type { Form } from '../../../../utils/useForm/types';\nimport type { SecuredFieldsProviderRef } from '../../../internal/SecuredFields/SFP/types';\nimport { AdyenCheckoutError } from '../../../../types';\nimport { ValidationRuleResult } from '../../../../utils/Validator/ValidationRuleResult';\n\nexport interface CardInputValidState {\n holderName?: boolean;\n billingAddress?: boolean;\n socialSecurityNumber?: boolean;\n encryptedCardNumber?: boolean;\n encryptedExpiryMonth?: boolean;\n encryptedExpiryYear?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: boolean;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputErrorState {\n holderName?: ValidationRuleResult;\n billingAddress?: ValidationRuleResult;\n socialSecurityNumber?: ValidationRuleResult;\n encryptedCardNumber?: boolean;\n encryptedExpiryDate?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: ValidationRuleResult;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputDataState {\n holderName?: string;\n billingAddress?: AddressData | null;\n socialSecurityNumber?: string;\n taxNumber?: string;\n}\n\n/**\n * Should be the subset of the props sent to CardInput that are *actually* used by CardInput\n * - either in the comp itself or are passed on to its children\n */\nexport interface CardInputProps {\n isPayButtonPrimaryVariant?: boolean;\n autoFocus?: boolean;\n billingAddressAllowedCountries?: string[];\n billingAddressRequired?: boolean;\n billingAddressRequiredFields?: string[];\n billingAddressMode?: AddressModeOptions;\n brand?: string;\n brands?: string[];\n brandsConfiguration?: CardBrandsConfiguration;\n brandsIcons: Array<BrandConfiguration>;\n clientKey?: string;\n configuration: CardBackendConfiguration;\n countryCode?: string;\n cvcPolicy?: CVCPolicyType;\n data?: CardInputDataState;\n disableIOSArrowKeys?: boolean;\n enableStoreDetails?: boolean;\n expiryMonth?: string;\n expiryYear?: string;\n fastlaneConfiguration?: FastlaneSignupConfiguration;\n forceCompat?: boolean;\n fundingSource?: 'debit' | 'credit' | 'prepaid';\n hasCVC?: boolean;\n hasHolderName?: boolean;\n holderName?: string;\n holderNameRequired?: boolean;\n i18n?: Language;\n implementationType?: 'components' | 'custom';\n installmentOptions?: InstallmentOptions;\n keypadFix?: boolean;\n lastFour?: string;\n loadingContext?: string;\n legacyInputMode?: boolean;\n minimumExpiryDate?: string;\n modules?: {\n srPanel?: SRPanel;\n analytics?: IAnalytics;\n risk?: RiskElement;\n resources?: Resources;\n };\n onAdditionalSFConfig?: () => void;\n onAdditionalSFRemoved?: () => void;\n onAllValid?: (o: CardAllValidData) => void;\n onAutoComplete?: (o: CardAutoCompleteData) => void;\n onBinValue?: (o: CardBinValueData) => void;\n onBlur?: (e) => void;\n onBrand?: (o: CardBrandData) => void;\n onConfigSuccess?: (O: CardConfigSuccessData) => void;\n onChange: (state) => void;\n onError?: (e: AdyenCheckoutError) => void;\n onFieldValid?: (o: CardFieldValidData) => void;\n onFocus?: (e) => void;\n onLoad?: (o: CardLoadData) => void;\n onSubmitAnalytics: (event: AbstractAnalyticsEvent) => void;\n handleKeyDown?: (event: KeyboardEvent) => void;\n onAddressLookup?: OnAddressLookupType;\n onAddressSelected?: OnAddressSelectedType;\n onSubmit?: () => void;\n addressSearchDebounceMs?: number;\n payButton?: (props: PayButtonProps) => h.JSX.Element;\n placeholders?: CardPlaceholders;\n positionHolderNameOnTop?: boolean;\n resources: Resources;\n setComponentRef?: (ref) => void;\n showBrandIcon?: boolean;\n showInstallmentAmounts?: boolean;\n showStoreDetailsCheckbox?: boolean;\n showWarnings?: boolean;\n showContextualElement?: boolean;\n specifications?: Specifications;\n storedPaymentMethodId?: string;\n styles?: StylesObject;\n trimTrailingSeparator?: boolean;\n type: string;\n maskSecurityCode?: boolean;\n exposeExpiryDate?: boolean;\n}\n\nexport interface CardInputState {\n dualBrandSelectElements: DualBrandSelectElement[];\n selectedBrandValue: string;\n billingAddress: object;\n brand?: string;\n data?: object;\n errors?: object;\n focusedElement: string;\n cvcPolicy: CVCPolicyType;\n expiryDatePolicy: DatePolicyType;\n isValid: boolean;\n status: string;\n valid?: object;\n issuingCountryCode: string;\n showSocialSecurityNumber?: boolean;\n}\n\n// An interface for the members exposed by CardInput to its parent Card/UIElement\nexport interface CardInputRef extends ComponentMethodsRef {\n sfp?: SecuredFieldsProviderRef;\n setFocusOn?: (field: string) => void;\n processBinLookupResponse?: (binLookupResponse: BinLookupResponse, isReset: boolean) => void;\n updateStyles?: (stylesObj: StylesObject) => void;\n handleUnsupportedCard?: (errObj: CardErrorData) => boolean;\n}\n\nexport interface FieldError {\n errorMessage?: string;\n errorI18n?: string;\n}\n\nexport interface SFError {\n isValid?: boolean;\n errorMessage?: string;\n errorI18n?: string;\n error: string;\n rootNode: HTMLElement;\n detectedBrands?: string[];\n}\n\nexport interface SFStateErrorObj {\n [key: string]: SFError;\n}\n\nexport interface LayoutObj {\n props: CardInputProps;\n showKCP: boolean;\n showBrazilianSSN: boolean;\n countrySpecificSchemas: AddressSchema;\n billingAddressRequiredFields?: string[];\n}\n\nexport enum AddressModeOptions {\n full = 'full',\n partial = 'partial',\n none = 'none'\n}\n\nexport type CardSetFormData = Form<CardInputDataState>['setData'];\nexport type CardSetFormValid = Form<CardInputDataState>['setValid'];\nexport type CardSetFormErrors = Form<CardInputDataState>['setErrors'];\n\nexport type OnFieldFocus = (who: string, e: Event | CardFocusData) => void;\n"],"names":["AddressModeOptions"],"mappings":"AA8MO,IAAAA,EAAKA,SAAAA,GAAAA,uDAAAA,CAIX,CAJWA,CAIX,CAAA"}
1
+ {"version":3,"file":"types.js","sources":["../../../../../../src/components/Card/components/CardInput/types.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport type {\n BinLookupResponse,\n BrandConfiguration,\n CardBrandsConfiguration,\n CardBackendConfiguration,\n DualBrandSelectElement,\n CardPlaceholders\n} from '../../types';\nimport {\n CardAllValidData,\n CardAutoCompleteData,\n CardBinValueData,\n CardBrandData,\n CardConfigSuccessData,\n CardFieldValidData,\n CardFocusData,\n CardLoadData,\n CVCPolicyType,\n DatePolicyType\n} from '../../../internal/SecuredFields/lib/types';\nimport { AddressSchema, AddressSpecifications } from '../../../internal/Address/types';\nimport { CardErrorData, StylesObject } from '../../../internal/SecuredFields/lib/types';\nimport { Resources } from '../../../../core/Context/Resources';\nimport { SRPanel } from '../../../../core/Errors/SRPanel';\nimport RiskElement from '../../../../core/RiskModule';\nimport { OnAddressLookupType, OnAddressSelectedType } from '../../../internal/Address/components/AddressSearch';\nimport { ComponentMethodsRef } from '../../../internal/UIElement/types';\nimport { AddressData } from '../../../../types/global-types';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\nimport type { AbstractAnalyticsEvent } from '../../../../core/Analytics/events/AbstractAnalyticsEvent';\nimport { IAnalytics } from '../../../../core/Analytics/Analytics';\nimport { PayButtonProps } from '../../../internal/PayButton/PayButton';\nimport { h } from 'preact';\nimport { InstallmentOptions } from './components/Installments/Installments';\nimport type { Form } from '../../../../utils/useForm/types';\nimport type { SecuredFieldsProviderRef } from '../../../internal/SecuredFields/SFP/types';\nimport { AdyenCheckoutError } from '../../../../types';\nimport { ValidationRuleResult } from '../../../../utils/Validator/ValidationRuleResult';\n\nexport interface CardInputValidState {\n holderName?: boolean;\n billingAddress?: boolean;\n socialSecurityNumber?: boolean;\n encryptedCardNumber?: boolean;\n encryptedExpiryMonth?: boolean;\n encryptedExpiryYear?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: boolean;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputErrorState {\n holderName?: ValidationRuleResult;\n billingAddress?: ValidationRuleResult;\n socialSecurityNumber?: ValidationRuleResult;\n encryptedCardNumber?: boolean;\n encryptedExpiryDate?: boolean;\n encryptedSecurityCode?: boolean;\n taxNumber?: ValidationRuleResult;\n encryptedPassword?: boolean;\n}\n\nexport interface CardInputDataState {\n holderName?: string;\n billingAddress?: AddressData | null;\n socialSecurityNumber?: string;\n taxNumber?: string;\n}\n\n/**\n * Should be the subset of the props sent to CardInput that are *actually* used by CardInput\n * - either in the comp itself or are passed on to its children\n */\nexport interface CardInputProps {\n isPayButtonPrimaryVariant?: boolean;\n autoFocus?: boolean;\n billingAddressAllowedCountries?: string[];\n billingAddressRequired?: boolean;\n billingAddressRequiredFields?: string[];\n billingAddressMode?: AddressModeOptions;\n brand?: string;\n brands?: string[];\n brandsConfiguration?: CardBrandsConfiguration;\n brandsIcons: Array<BrandConfiguration>;\n clientKey?: string;\n configuration: CardBackendConfiguration;\n countryCode?: string;\n cvcPolicy?: CVCPolicyType;\n data?: CardInputDataState;\n disableIOSArrowKeys?: boolean;\n enableStoreDetails?: boolean;\n expiryMonth?: string;\n expiryYear?: string;\n fastlaneConfiguration?: FastlaneSignupConfiguration;\n forceCompat?: boolean;\n fundingSource?: 'debit' | 'credit' | 'prepaid';\n hasCVC?: boolean;\n hasHolderName?: boolean;\n holderName?: string;\n holderNameRequired?: boolean;\n i18n?: Language;\n implementationType?: 'components' | 'custom';\n installmentOptions?: InstallmentOptions;\n keypadFix?: boolean;\n lastFour?: string;\n loadingContext?: string;\n legacyInputMode?: boolean;\n minimumExpiryDate?: string;\n modules?: {\n srPanel?: SRPanel;\n analytics?: IAnalytics;\n risk?: RiskElement;\n resources?: Resources;\n };\n onAdditionalSFConfig?: () => void;\n onAdditionalSFRemoved?: () => void;\n onAllValid?: (o: CardAllValidData) => void;\n onAutoComplete?: (o: CardAutoCompleteData) => void;\n onBinValue?: (o: CardBinValueData) => void;\n onBlur?: (e) => void;\n onBrand?: (o: CardBrandData) => void;\n onConfigSuccess?: (O: CardConfigSuccessData) => void;\n onChange: (state) => void;\n onError?: (e: AdyenCheckoutError) => void;\n onFieldValid?: (o: CardFieldValidData) => void;\n onFocus?: (e) => void;\n onLoad?: (o: CardLoadData) => void;\n onSubmitAnalytics: (event: AbstractAnalyticsEvent) => void;\n handleKeyDown?: (event: KeyboardEvent) => void;\n onAddressLookup?: OnAddressLookupType;\n onAddressSelected?: OnAddressSelectedType;\n onSubmit?: () => void;\n addressSearchDebounceMs?: number;\n payButton?: (props: PayButtonProps) => h.JSX.Element;\n placeholders?: CardPlaceholders;\n positionHolderNameOnTop?: boolean;\n resources: Resources;\n setComponentRef?: (ref) => void;\n showBrandIcon?: boolean;\n showInstallmentAmounts?: boolean;\n showStoreDetailsCheckbox?: boolean;\n showWarnings?: boolean;\n showContextualElement?: boolean;\n specifications?: AddressSpecifications;\n storedPaymentMethodId?: string;\n styles?: StylesObject;\n trimTrailingSeparator?: boolean;\n type: string;\n maskSecurityCode?: boolean;\n exposeExpiryDate?: boolean;\n}\n\nexport interface CardInputState {\n dualBrandSelectElements: DualBrandSelectElement[];\n selectedBrandValue: string;\n billingAddress: object;\n brand?: string;\n data?: object;\n errors?: object;\n focusedElement: string;\n cvcPolicy: CVCPolicyType;\n expiryDatePolicy: DatePolicyType;\n isValid: boolean;\n status: string;\n valid?: object;\n issuingCountryCode: string;\n showSocialSecurityNumber?: boolean;\n}\n\n// An interface for the members exposed by CardInput to its parent Card/UIElement\nexport interface CardInputRef extends ComponentMethodsRef {\n sfp?: SecuredFieldsProviderRef;\n setFocusOn?: (field: string) => void;\n processBinLookupResponse?: (binLookupResponse: BinLookupResponse, isReset: boolean) => void;\n updateStyles?: (stylesObj: StylesObject) => void;\n handleUnsupportedCard?: (errObj: CardErrorData) => boolean;\n}\n\nexport interface FieldError {\n errorMessage?: string;\n errorI18n?: string;\n}\n\nexport interface SFError {\n isValid?: boolean;\n errorMessage?: string;\n errorI18n?: string;\n error: string;\n rootNode: HTMLElement;\n detectedBrands?: string[];\n}\n\nexport interface SFStateErrorObj {\n [key: string]: SFError;\n}\n\nexport interface LayoutObj {\n props: CardInputProps;\n showKCP: boolean;\n showBrazilianSSN: boolean;\n countrySpecificSchemas: AddressSchema;\n billingAddressRequiredFields?: string[];\n}\n\nexport enum AddressModeOptions {\n full = 'full',\n partial = 'partial',\n none = 'none'\n}\n\nexport type CardSetFormData = Form<CardInputDataState>['setData'];\nexport type CardSetFormValid = Form<CardInputDataState>['setValid'];\nexport type CardSetFormErrors = Form<CardInputDataState>['setErrors'];\n\nexport type OnFieldFocus = (who: string, e: Event | CardFocusData) => void;\n"],"names":["AddressModeOptions"],"mappings":"AA6MO,IAAAA,EAAKA,SAAAA,GAAAA,uDAAAA,CAIX,CAJWA,CAIX,CAAA"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CashAppComponent as r}from"./components/CashAppComponent.js";import o from"./services/CashAppService.js";import{CashAppSdkLoader as s}from"./services/CashAppSdkLoader.js";import n from"./defaultProps.js";import i from"../internal/RedirectButton/RedirectButton.js";import{payAmountLabel as a}from"../internal/PayButton/utils.js";import{TxVariants as p}from"../tx-variants.js";import{PREFIX as h}from"../internal/Icon/constants.js";function c(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function d(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),o.forEach(function(e){c(t,e,r[e])})}return t}function l(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}class m extends e{formatProps(t){var e,r;return l(d({},t),{enableStoreDetails:(null===(r=t.session)||void 0===r||null===(e=r.configuration)||void 0===e?void 0:e.enableStoreDetails)||t.enableStoreDetails})}formatData(){const{shopperWantsToStore:t,grantId:e,onFileGrantId:r,cashTag:o,customerId:s}=this.state.data||{},{storePaymentMethod:n,storedPaymentMethodId:i}=this.props,a=this.props.enableStoreDetails||!this.props.session&&n;if(i)return{paymentMethod:{type:m.type,storedPaymentMethodId:i}};return d({paymentMethod:d({type:m.type},e&&{grantId:e},s&&{customerId:s},r&&o&&{onFileGrantId:r,cashtag:o})},a&&{storePaymentMethod:n||t})}get displayName(){return this.props.storedPaymentMethodId&&this.props.cashtag?this.props.cashtag:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId?"Cash App Pay":""}get isValid(){return!0}componentToRender(){var e;return this.props.storedPaymentMethodId?t(i,{label:a(this.props.i18n,this.props.amount),icon:null===(e=this.resources)||void 0===e?void 0:e.getImage({imageFolder:"components/"})(`${h}lock`),name:this.displayName,payButton:this.payButton,onSubmit:this.submit,setComponentRef:this.setComponentRef}):t(r,{setComponentRef:this.setComponentRef,enableStoreDetails:this.props.enableStoreDetails,cashAppService:this.cashAppService,onChangeStoreDetails:this.handleOnChangeStoreDetails,onError:this.handleError,onClick:this.submit,onAuthorize:this.handleAuthorize})}constructor(t,e){var r,n;if(super(t,e),c(this,"cashAppService",void 0),c(this,"submit",()=>{const{onClick:t,storedPaymentMethodId:e}=this.props;if(e)return void super.submit();let r=!1;new Promise((e,r)=>t({resolve:e,reject:r})).catch(()=>{throw r=!0,new Error("onClick rejected")}).then(()=>this.cashAppService.createCustomerRequest(this.props.amount)).then(()=>{this.cashAppService.begin()}).catch(t=>{r||this.handleError(t)})}),c(this,"handleOnChangeStoreDetails",t=>{const e=l(d({},this.state.data),{shopperWantsToStore:t});this.setState({data:e})}),c(this,"handleAuthorize",t=>{const e=d({},this.state.data,t);this.setState({data:e,valid:{},errors:{},isValid:!0}),super.submit()}),this.props.enableStoreDetails&&this.props.storePaymentMethod&&console.warn("CashAppPay: enableStoreDetails AND storePaymentMethod configuration properties should not be used together. That can lead to undesired behavior."),this.props.storedPaymentMethodId)return;const i=new s({environment:this.props.environment,analytics:this.analytics});this.cashAppService=new o(i,{storePaymentMethod:this.props.storePaymentMethod,useCashAppButtonUi:this.props.showPayButton,environment:this.props.environment,redirectURL:this.props.redirectURL,clientId:null===(r=this.props.configuration)||void 0===r?void 0:r.clientId,scopeId:null===(n=this.props.configuration)||void 0===n?void 0:n.scopeId,button:this.props.button,referenceId:this.props.referenceId})}}c(m,"type",p.cashapp),c(m,"defaultProps",n);export{m as CashAppPay,m as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CashAppComponent as o}from"./components/CashAppComponent.js";import r from"./services/CashAppService.js";import{CashAppSdkLoader as s}from"./services/CashAppSdkLoader.js";import n from"./defaultProps.js";import i from"../internal/RedirectButton/RedirectButton.js";import{payAmountLabel as a}from"../internal/PayButton/utils.js";import{TxVariants as p}from"../tx-variants.js";import{PREFIX as h}from"../internal/Icon/constants.js";function l(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}function c(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{},r=Object.keys(o);"function"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(o).filter(function(t){return Object.getOwnPropertyDescriptor(o,t).enumerable}))),r.forEach(function(e){l(t,e,o[e])})}return t}function d(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e.push.apply(e,o)}return e}(Object(e)).forEach(function(o){Object.defineProperty(t,o,Object.getOwnPropertyDescriptor(e,o))}),t}class u extends e{formatProps(t){var e,o;return d(c({},t),{enableStoreDetails:(null===(o=t.session)||void 0===o||null===(e=o.configuration)||void 0===e?void 0:e.enableStoreDetails)||t.enableStoreDetails})}formatData(){const{shopperWantsToStore:t,grantId:e,onFileGrantId:o,cashTag:r,customerId:s}=this.state.data||{},{storePaymentMethod:n,storedPaymentMethodId:i}=this.props,a=this.props.enableStoreDetails||!this.props.session&&n;if(i)return{paymentMethod:{type:u.type,storedPaymentMethodId:i}};return c({paymentMethod:c({type:u.type},e&&{grantId:e},s&&{customerId:s},o&&r&&{onFileGrantId:o,cashtag:r})},a&&{storePaymentMethod:n||t})}get displayName(){var t;return this.props.storedPaymentMethodId&&this.props.cashtag?this.props.cashtag:null!==(t=this.props.name)&&void 0!==t?t:""}get additionalInfo(){return this.props.storedPaymentMethodId?"Cash App Pay":""}get isValid(){return!0}componentToRender(){var e,r;return this.props.storedPaymentMethodId?t(i,{label:a(null!==(e=this.props.i18n)&&void 0!==e?e:this.core.modules.i18n,this.props.amount),icon:null===(r=this.resources)||void 0===r?void 0:r.getImage({imageFolder:"components/"})(`${h}lock`),name:this.displayName,payButton:this.payButton,onSubmit:this.submit,setComponentRef:this.setComponentRef}):this.cashAppService?t(o,{setComponentRef:this.setComponentRef,enableStoreDetails:this.props.enableStoreDetails,cashAppService:this.cashAppService,onChangeStoreDetails:this.handleOnChangeStoreDetails,onError:this.handleError,onClick:this.submit,onAuthorize:this.handleAuthorize}):null}constructor(t,e){var o,n,i,a,p,h,u;if(super(t,e),l(this,"cashAppService",void 0),l(this,"submit",()=>{const{onClick:t,storedPaymentMethodId:e}=this.props;if(e)return void super.submit();let o=!1;(t?new Promise((e,o)=>t({resolve:e,reject:o})):Promise.resolve()).catch(()=>{throw o=!0,new Error("onClick rejected")}).then(()=>{var t;return null===(t=this.cashAppService)||void 0===t?void 0:t.createCustomerRequest(this.props.amount)}).then(()=>{var t;null===(t=this.cashAppService)||void 0===t||t.begin()}).catch(t=>{o||this.handleError(t)})}),l(this,"handleOnChangeStoreDetails",t=>{const e=d(c({},this.state.data),{shopperWantsToStore:t});this.setState({data:e})}),l(this,"handleAuthorize",t=>{const e=c({},this.state.data,t);this.setState({data:e,valid:{},errors:{},isValid:!0}),super.submit()}),this.props.enableStoreDetails&&this.props.storePaymentMethod&&console.warn("CashAppPay: enableStoreDetails AND storePaymentMethod configuration properties should not be used together. That can lead to undesired behavior."),this.props.storedPaymentMethodId)return;const m=null!==(o=this.props.environment)&&void 0!==o?o:"",v=new s({environment:m,analytics:this.analytics});this.cashAppService=new r(v,{storePaymentMethod:null!==(n=this.props.storePaymentMethod)&&void 0!==n&&n,useCashAppButtonUi:null!==(i=this.props.showPayButton)&&void 0!==i&&i,environment:m,redirectURL:this.props.redirectURL,clientId:null!==(a=null===(h=this.props.configuration)||void 0===h?void 0:h.clientId)&&void 0!==a?a:"",scopeId:null!==(p=null===(u=this.props.configuration)||void 0===u?void 0:u.scopeId)&&void 0!==p?p:"",button:this.props.button,referenceId:this.props.referenceId})}}l(u,"type",p.cashapp),l(u,"defaultProps",n);export{u as CashAppPay,u as default};
2
2
  //# sourceMappingURL=CashAppPay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CashAppPay.js","sources":["../../../../src/components/CashAppPay/CashAppPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CashAppComponent } from './components/CashAppComponent';\nimport CashAppService from './services/CashAppService';\nimport { CashAppSdkLoader } from './services/CashAppSdkLoader';\nimport { CashAppPayElementData, CashAppPayConfiguration, CashAppPayEventData } from './types';\nimport { ICashAppService } from './services/types';\nimport defaultProps from './defaultProps';\nimport RedirectButton from '../internal/RedirectButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\nimport { TxVariants } from '../tx-variants';\nimport type { ICore } from '../../core/types';\nimport { PREFIX } from '../internal/Icon/constants';\n\nexport class CashAppPay extends UIElement<CashAppPayConfiguration> {\n public static readonly type = TxVariants.cashapp;\n\n private readonly cashAppService: ICashAppService | undefined;\n\n protected static readonly defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: CashAppPayConfiguration) {\n super(checkout, props);\n\n if (this.props.enableStoreDetails && this.props.storePaymentMethod) {\n console.warn(\n 'CashAppPay: enableStoreDetails AND storePaymentMethod configuration properties should not be used together. That can lead to undesired behavior.'\n );\n }\n\n if (this.props.storedPaymentMethodId) {\n return;\n }\n\n const sdkLoader = new CashAppSdkLoader({\n environment: this.props.environment,\n analytics: this.analytics\n });\n\n this.cashAppService = new CashAppService(sdkLoader, {\n storePaymentMethod: this.props.storePaymentMethod,\n useCashAppButtonUi: this.props.showPayButton,\n environment: this.props.environment,\n redirectURL: this.props.redirectURL,\n clientId: this.props.configuration?.clientId,\n scopeId: this.props.configuration?.scopeId,\n button: this.props.button,\n referenceId: this.props.referenceId\n });\n }\n\n public formatProps(props: CashAppPayConfiguration) {\n return {\n ...props,\n enableStoreDetails: props.session?.configuration?.enableStoreDetails || props.enableStoreDetails\n };\n }\n\n public formatData(): CashAppPayElementData {\n const { shopperWantsToStore, grantId, onFileGrantId, cashTag, customerId } = this.state.data || {};\n const { storePaymentMethod: storePaymentMethodSetByMerchant, storedPaymentMethodId } = this.props;\n\n /**\n * We include 'storePaymentMethod' flag if we either Display the Checkbox OR if it is non-sessions flow AND the merchant wants to store the payment method\n */\n const includeStorePaymentMethod = this.props.enableStoreDetails || (!this.props.session && storePaymentMethodSetByMerchant);\n\n if (storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: CashAppPay.type,\n storedPaymentMethodId\n }\n };\n }\n\n const shouldAddOnFileProperties = onFileGrantId && cashTag;\n\n return {\n paymentMethod: {\n type: CashAppPay.type,\n ...(grantId && { grantId }),\n ...(customerId && { customerId }),\n ...(shouldAddOnFileProperties && { onFileGrantId, cashtag: cashTag })\n },\n ...(includeStorePaymentMethod && { storePaymentMethod: storePaymentMethodSetByMerchant || shopperWantsToStore })\n };\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.cashtag) {\n return this.props.cashtag;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? 'Cash App Pay' : '';\n }\n\n public submit = () => {\n const { onClick, storedPaymentMethodId } = this.props;\n\n if (storedPaymentMethodId) {\n super.submit();\n return;\n }\n\n let onClickPromiseRejected = false;\n\n new Promise<void>((resolve, reject) => onClick({ resolve, reject }))\n .catch(() => {\n onClickPromiseRejected = true;\n throw new Error('onClick rejected');\n })\n .then(() => {\n return this.cashAppService.createCustomerRequest(this.props.amount);\n })\n .then(() => {\n this.cashAppService.begin();\n })\n .catch(error => {\n if (onClickPromiseRejected) {\n // Swallow exception triggered by onClick reject\n return;\n }\n this.handleError(error);\n });\n };\n\n public get isValid(): boolean {\n return true;\n }\n\n private readonly handleOnChangeStoreDetails = (storePayment: boolean) => {\n const data = { ...this.state.data, shopperWantsToStore: storePayment };\n this.setState({ data });\n };\n\n private readonly handleAuthorize = (cashAppPaymentData: CashAppPayEventData): void => {\n const data = { ...this.state.data, ...cashAppPaymentData };\n this.setState({ data, valid: {}, errors: {}, isValid: true });\n super.submit();\n };\n\n protected override componentToRender(): h.JSX.Element {\n return this.props.storedPaymentMethodId ? (\n <RedirectButton\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n icon={this.resources?.getImage({ imageFolder: 'components/' })(`${PREFIX}lock`)}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n setComponentRef={this.setComponentRef}\n />\n ) : (\n <CashAppComponent\n setComponentRef={this.setComponentRef}\n enableStoreDetails={this.props.enableStoreDetails}\n cashAppService={this.cashAppService}\n onChangeStoreDetails={this.handleOnChangeStoreDetails}\n onError={this.handleError}\n onClick={this.submit}\n onAuthorize={this.handleAuthorize}\n />\n );\n }\n}\n\nexport default CashAppPay;\n"],"names":["CashAppPay","UIElement","formatProps","props","_object_spread_props","_object_spread","enableStoreDetails","session","configuration","formatData","shopperWantsToStore","grantId","onFileGrantId","cashTag","customerId","this","state","data","storePaymentMethod","storePaymentMethodSetByMerchant","storedPaymentMethodId","includeStorePaymentMethod","paymentMethod","type","cashtag","displayName","name","additionalInfo","isValid","componentToRender","_this_resources","h","RedirectButton","label","payAmountLabel","i18n","amount","icon","resources","getImage","imageFolder","PREFIX","payButton","onSubmit","submit","setComponentRef","CashAppComponent","cashAppService","onChangeStoreDetails","handleOnChangeStoreDetails","onError","handleError","onClick","onAuthorize","handleAuthorize","constructor","checkout","_this_props_configuration","_this_props_configuration1","super","_define_property","onClickPromiseRejected","Promise","resolve","reject","catch","Error","then","createCustomerRequest","begin","error","storePayment","setState","cashAppPaymentData","valid","errors","console","warn","sdkLoader","CashAppSdkLoader","environment","analytics","CashAppService","useCashAppButtonUi","showPayButton","redirectURL","clientId","scopeId","button","referenceId","TxVariants","cashapp","defaultProps"],"mappings":"k2CAcO,MAAMA,UAAmBC,EAqCrBC,WAAAA,CAAYC,OAGSA,EAAAA,EAFxB,OAAOC,EAAAC,EAAA,CAAA,EACAF,GAAAA,CACHG,4BAAoBH,EAAAA,EAAMI,eAANJ,IAAAA,WAAAA,EAAAA,EAAeK,qBAAfL,IAAAA,SAAAA,EAA8BG,qBAAsBH,EAAMG,oBAEtF,CAEOG,UAAAA,GACH,MAAMC,oBAAEA,EAAmBC,QAAEA,EAAOC,cAAEA,EAAaC,QAAEA,EAAOC,WAAEA,GAAeC,KAAKC,MAAMC,MAAQ,CAAA,GACxFC,mBAAoBC,EAA+BC,sBAAEA,GAA0BL,KAAKZ,MAKtFkB,EAA4BN,KAAKZ,MAAMG,qBAAwBS,KAAKZ,MAAMI,SAAWY,EAE3F,GAAIC,EACA,MAAO,CACHE,cAAe,CACXC,KAAMvB,EAAWuB,KACjBH,0BAOZ,OAAOf,EAAA,CACHiB,cAAejB,EAAA,CACXkB,KAAMvB,EAAWuB,MACbZ,GAAW,CAAEA,WACbG,GAAc,CAAEA,cANMF,GAAiBC,GAOV,CAAED,gBAAeY,QAASX,KAE3DQ,GAA6B,CAAEH,mBAAoBC,GAAmCT,GAElG,CAEA,eAAIe,GACA,OAAIV,KAAKZ,MAAMiB,uBAAyBL,KAAKZ,MAAMqB,QACxCT,KAAKZ,MAAMqB,QAEfT,KAAKZ,MAAMuB,IACtB,CAEA,kBAAIC,GACA,OAAOZ,KAAKZ,MAAMiB,sBAAwB,eAAiB,EAC/D,CAgCA,WAAWQ,GACP,OAAO,CACX,CAamBC,iBAAAA,GAID,IAAAC,EAHd,OAAOf,KAAKZ,MAAMiB,sBACdW,EAACC,EAAAA,CACGC,MAAOC,EAAenB,KAAKZ,MAAMgC,KAAMpB,KAAKZ,MAAMiC,QAClDC,KAAoB,QAAdP,EAAAf,KAAKuB,qBAALR,OAAA,EAAAA,EAAgBS,SAAS,CAAEC,YAAa,eAAxCV,CAAyD,GAAGW,SAClEf,KAAMX,KAAKU,YACXiB,UAAW3B,KAAK2B,UAChBC,SAAU5B,KAAK6B,OACfC,gBAAiB9B,KAAK8B,kBAG1Bd,EAACe,EAAAA,CACGD,gBAAiB9B,KAAK8B,gBACtBvC,mBAAoBS,KAAKZ,MAAMG,mBAC/ByC,eAAgBhC,KAAKgC,eACrBC,qBAAsBjC,KAAKkC,2BAC3BC,QAASnC,KAAKoC,YACdC,QAASrC,KAAK6B,OACdS,YAAatC,KAAKuC,iBAG9B,CAjJA,WAAAC,CAAYC,EAAiBrD,OAuBXsD,EACDC,EAfb,GARAC,MAAMH,EAAUrD,GALpByD,EAAA7C,KAAiBgC,sBAAjB,GAmFAa,OAAOhB,SAAS,KACZ,MAAMQ,QAAEA,EAAOhC,sBAAEA,GAA0BL,KAAKZ,MAEhD,GAAIiB,EAEA,YADAuC,MAAMf,SAIV,IAAIiB,GAAyB,EAE7B,IAAIC,QAAc,CAACC,EAASC,IAAWZ,EAAQ,CAAEW,UAASC,YACrDC,MAAM,KAEH,MADAJ,GAAyB,EACnB,IAAIK,MAAM,sBAEnBC,KAAK,IACKpD,KAAKgC,eAAeqB,sBAAsBrD,KAAKZ,MAAMiC,SAE/D+B,KAAK,KACFpD,KAAKgC,eAAesB,UAEvBJ,MAAMK,IACCT,GAIJ9C,KAAKoC,YAAYmB,OAQ7BV,EAAA7C,KAAiBkC,6BAA8BsB,IAC3C,MAAMtD,EAAOb,EAAAC,EAAA,CAAA,EAAKU,KAAKC,MAAMC,MAAI,CAAEP,oBAAqB6D,IACxDxD,KAAKyD,SAAS,CAAEvD,WAGpB2C,EAAA7C,KAAiBuC,kBAAmBmB,IAChC,MAAMxD,EAAOZ,EAAA,CAAA,EAAKU,KAAKC,MAAMC,KAASwD,GACtC1D,KAAKyD,SAAS,CAAEvD,OAAMyD,MAAO,CAAA,EAAIC,OAAQ,CAAA,EAAI/C,SAAS,IACtD+B,MAAMf,WAtHF7B,KAAKZ,MAAMG,oBAAsBS,KAAKZ,MAAMe,oBAC5C0D,QAAQC,KACJ,oJAIJ9D,KAAKZ,MAAMiB,sBACX,OAGJ,MAAM0D,EAAY,IAAIC,EAAiB,CACnCC,YAAajE,KAAKZ,MAAM6E,YACxBC,UAAWlE,KAAKkE,YAGpBlE,KAAKgC,eAAiB,IAAImC,EAAeJ,EAAW,CAChD5D,mBAAoBH,KAAKZ,MAAMe,mBAC/BiE,mBAAoBpE,KAAKZ,MAAMiF,cAC/BJ,YAAajE,KAAKZ,MAAM6E,YACxBK,YAAatE,KAAKZ,MAAMkF,YACxBC,SAAkC,QAAxB7B,EAAA1C,KAAKZ,MAAMK,qBAAX,IAAAiD,OAAA,EAAAA,EAA0B6B,SACpCC,QAAiC,QAAxB7B,EAAA3C,KAAKZ,MAAMK,qBAAX,IAAAkD,OAAA,EAAAA,EAA0B6B,QACnCC,OAAQzE,KAAKZ,MAAMqF,OACnBC,YAAa1E,KAAKZ,MAAMsF,aAEhC,EAlCA7B,EADS5D,EACcuB,OAAOmE,EAAWC,SAIzC/B,EALS5D,EAKiB4F,eAAeA"}
1
+ {"version":3,"file":"CashAppPay.js","sources":["../../../../src/components/CashAppPay/CashAppPay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CashAppComponent } from './components/CashAppComponent';\nimport CashAppService from './services/CashAppService';\nimport { CashAppSdkLoader } from './services/CashAppSdkLoader';\nimport { CashAppPayElementData, CashAppPayConfiguration, CashAppPayEventData } from './types';\nimport { ICashAppService } from './services/types';\nimport defaultProps from './defaultProps';\nimport RedirectButton from '../internal/RedirectButton';\nimport { payAmountLabel } from '../internal/PayButton/utils';\nimport { TxVariants } from '../tx-variants';\nimport type { ICore } from '../../core/types';\nimport { PREFIX } from '../internal/Icon/constants';\n\nexport class CashAppPay extends UIElement<CashAppPayConfiguration> {\n public static readonly type = TxVariants.cashapp;\n\n private readonly cashAppService: ICashAppService | undefined;\n\n protected static readonly defaultProps = defaultProps;\n\n constructor(checkout: ICore, props?: CashAppPayConfiguration) {\n super(checkout, props);\n\n if (this.props.enableStoreDetails && this.props.storePaymentMethod) {\n console.warn(\n 'CashAppPay: enableStoreDetails AND storePaymentMethod configuration properties should not be used together. That can lead to undesired behavior.'\n );\n }\n\n if (this.props.storedPaymentMethodId) {\n return;\n }\n\n const environment = this.props.environment ?? '';\n\n const sdkLoader = new CashAppSdkLoader({\n environment,\n analytics: this.analytics\n });\n\n this.cashAppService = new CashAppService(sdkLoader, {\n storePaymentMethod: this.props.storePaymentMethod ?? false,\n useCashAppButtonUi: this.props.showPayButton ?? false,\n environment,\n redirectURL: this.props.redirectURL,\n clientId: this.props.configuration?.clientId ?? '',\n scopeId: this.props.configuration?.scopeId ?? '',\n button: this.props.button,\n referenceId: this.props.referenceId\n });\n }\n\n public formatProps(props: CashAppPayConfiguration) {\n return {\n ...props,\n enableStoreDetails: props.session?.configuration?.enableStoreDetails || props.enableStoreDetails\n };\n }\n\n public formatData(): CashAppPayElementData {\n const { shopperWantsToStore, grantId, onFileGrantId, cashTag, customerId } = this.state.data || {};\n const { storePaymentMethod: storePaymentMethodSetByMerchant, storedPaymentMethodId } = this.props;\n\n /**\n * We include 'storePaymentMethod' flag if we either Display the Checkbox OR if it is non-sessions flow AND the merchant wants to store the payment method\n */\n const includeStorePaymentMethod = this.props.enableStoreDetails || (!this.props.session && storePaymentMethodSetByMerchant);\n\n if (storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: CashAppPay.type,\n storedPaymentMethodId\n }\n };\n }\n\n const shouldAddOnFileProperties = onFileGrantId && cashTag;\n\n return {\n paymentMethod: {\n type: CashAppPay.type,\n ...(grantId && { grantId }),\n ...(customerId && { customerId }),\n ...(shouldAddOnFileProperties && { onFileGrantId, cashtag: cashTag })\n },\n ...(includeStorePaymentMethod && { storePaymentMethod: storePaymentMethodSetByMerchant || shopperWantsToStore })\n };\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.cashtag) {\n return this.props.cashtag;\n }\n return this.props.name ?? '';\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? 'Cash App Pay' : '';\n }\n\n public submit = () => {\n const { onClick, storedPaymentMethodId } = this.props;\n\n if (storedPaymentMethodId) {\n super.submit();\n return;\n }\n\n let onClickPromiseRejected = false;\n\n const clickPromise = onClick ? new Promise<void>((resolve, reject) => onClick({ resolve, reject })) : Promise.resolve();\n\n clickPromise\n .catch(() => {\n onClickPromiseRejected = true;\n throw new Error('onClick rejected');\n })\n .then(() => {\n return this.cashAppService?.createCustomerRequest(this.props.amount);\n })\n .then(() => {\n this.cashAppService?.begin();\n })\n .catch(error => {\n if (onClickPromiseRejected) {\n // Swallow exception triggered by onClick reject\n return;\n }\n this.handleError(error);\n });\n };\n\n public get isValid(): boolean {\n return true;\n }\n\n private readonly handleOnChangeStoreDetails = (storePayment: boolean) => {\n const data = { ...this.state.data, shopperWantsToStore: storePayment };\n this.setState({ data });\n };\n\n private readonly handleAuthorize = (cashAppPaymentData: CashAppPayEventData): void => {\n const data = { ...this.state.data, ...cashAppPaymentData };\n this.setState({ data, valid: {}, errors: {}, isValid: true });\n super.submit();\n };\n\n protected override componentToRender(): h.JSX.Element | null {\n if (this.props.storedPaymentMethodId) {\n return (\n <RedirectButton\n label={payAmountLabel(this.props.i18n ?? this.core.modules.i18n, this.props.amount)}\n icon={this.resources?.getImage({ imageFolder: 'components/' })(`${PREFIX}lock`)}\n name={this.displayName}\n payButton={this.payButton}\n onSubmit={this.submit}\n setComponentRef={this.setComponentRef}\n />\n );\n }\n\n if (!this.cashAppService) return null;\n\n return (\n <CashAppComponent\n setComponentRef={this.setComponentRef}\n enableStoreDetails={this.props.enableStoreDetails}\n cashAppService={this.cashAppService}\n onChangeStoreDetails={this.handleOnChangeStoreDetails}\n onError={this.handleError}\n onClick={this.submit}\n onAuthorize={this.handleAuthorize}\n />\n );\n }\n}\n\nexport default CashAppPay;\n"],"names":["CashAppPay","UIElement","formatProps","props","_object_spread_props","_object_spread","enableStoreDetails","session","configuration","formatData","shopperWantsToStore","grantId","onFileGrantId","cashTag","customerId","this","state","data","storePaymentMethod","storePaymentMethodSetByMerchant","storedPaymentMethodId","includeStorePaymentMethod","paymentMethod","type","cashtag","displayName","_this_props_name","name","additionalInfo","isValid","componentToRender","_this_props_i18n","_this_resources","h","RedirectButton","label","payAmountLabel","i18n","core","modules","amount","icon","resources","getImage","imageFolder","PREFIX","payButton","onSubmit","submit","setComponentRef","cashAppService","CashAppComponent","onChangeStoreDetails","handleOnChangeStoreDetails","onError","handleError","onClick","onAuthorize","handleAuthorize","constructor","checkout","_this_props_environment","_this_props_storePaymentMethod","_this_props_showPayButton","_ref","_ref1","_this_props_configuration","_this_props_configuration1","super","_define_property","onClickPromiseRejected","Promise","resolve","reject","catch","Error","then","_this_cashAppService","createCustomerRequest","begin","error","storePayment","setState","cashAppPaymentData","valid","errors","console","warn","environment","sdkLoader","CashAppSdkLoader","analytics","CashAppService","useCashAppButtonUi","showPayButton","redirectURL","clientId","scopeId","button","referenceId","TxVariants","cashapp","defaultProps"],"mappings":"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"}