@adyen/adyen-web 6.14.0 → 6.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/dist/cjs/adyen.css +12 -5
  2. package/dist/cjs/adyen.css.map +1 -1
  3. package/dist/cjs/index.cjs +2 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +282 -131
  6. package/dist/es/adyen.css +12 -5
  7. package/dist/es/adyen.css.map +1 -1
  8. package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
  9. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  10. package/dist/es/components/ApplePay/ApplePay.js +1 -1
  11. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  12. package/dist/es/components/Card/Card.js +1 -1
  13. package/dist/es/components/Card/Card.js.map +1 -1
  14. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  15. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  16. package/dist/es/components/Card/components/CardInput/components/CardFields.js +1 -1
  17. package/dist/es/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  18. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  19. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  20. package/dist/es/components/Card/components/CardInput/components/CardNumber.js +1 -1
  21. package/dist/es/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  22. package/dist/es/components/Card/components/CardInput/components/DualBrandingIcon/DualBrandingIcon.js +1 -1
  23. package/dist/es/components/Card/components/CardInput/components/DualBrandingIcon/DualBrandingIcon.js.map +1 -1
  24. package/dist/es/components/Card/components/CardInput/types.js.map +1 -1
  25. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  26. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  27. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js +1 -1
  28. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  29. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  30. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  31. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  32. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  33. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  34. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  35. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  36. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  37. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  38. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  39. package/dist/es/components/PayByBankPix/PayByBankPix.js +2 -0
  40. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -0
  41. package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js +2 -0
  42. package/dist/es/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -0
  43. package/dist/es/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js +2 -0
  44. package/dist/es/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js.map +1 -0
  45. package/dist/es/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js +2 -0
  46. package/dist/es/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js.map +1 -0
  47. package/dist/es/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js +2 -0
  48. package/dist/es/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -0
  49. package/dist/es/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js +2 -0
  50. package/dist/es/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js.map +1 -0
  51. package/dist/es/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js +2 -0
  52. package/dist/es/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -0
  53. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js +2 -0
  54. package/dist/es/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -0
  55. package/dist/es/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js +2 -0
  56. package/dist/es/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js.map +1 -0
  57. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js +2 -0
  58. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -0
  59. package/dist/es/components/PayByBankPix/services/PasskeyService.js +2 -0
  60. package/dist/es/components/PayByBankPix/services/PasskeyService.js.map +1 -0
  61. package/dist/es/components/PayByBankPix/services/authorizeEnrollment.js +2 -0
  62. package/dist/es/components/PayByBankPix/services/authorizeEnrollment.js.map +1 -0
  63. package/dist/es/components/PayByBankPix/services/authorizePayment.js +2 -0
  64. package/dist/es/components/PayByBankPix/services/authorizePayment.js.map +1 -0
  65. package/dist/es/components/PayByBankPix/services/types.js +2 -0
  66. package/dist/es/components/PayByBankPix/services/types.js.map +1 -0
  67. package/dist/es/components/PayPal/Paypal.js +1 -1
  68. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  69. package/dist/es/components/Redirect/Redirect.js +1 -1
  70. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  71. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  72. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  73. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  74. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  75. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  76. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  77. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  78. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  79. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  80. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  81. package/dist/es/components/ThreeDS2/constants.js +1 -1
  82. package/dist/es/components/ThreeDS2/constants.js.map +1 -1
  83. package/dist/es/components/UPI/components/VpaInput/VpaInput.js +1 -1
  84. package/dist/es/components/UPI/components/VpaInput/VpaInput.js.map +1 -1
  85. package/dist/es/components/components-name-map.js +1 -1
  86. package/dist/es/components/components-name-map.js.map +1 -1
  87. package/dist/es/components/index.js +1 -1
  88. package/dist/es/components/internal/Await/Await.js +1 -1
  89. package/dist/es/components/internal/Await/Await.js.map +1 -1
  90. package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
  91. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  92. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
  93. package/dist/es/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  94. package/dist/es/components/internal/ExpandButton/ExpandButton.js +1 -1
  95. package/dist/es/components/internal/ExpandButton/ExpandButton.js.map +1 -1
  96. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  97. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js +2 -0
  98. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +1 -0
  99. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js +2 -0
  100. package/dist/es/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -0
  101. package/dist/es/components/internal/IssuerList/IssuerList.js +1 -1
  102. package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
  103. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  104. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  105. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  106. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  107. package/dist/es/components/internal/SecuredFields/binLookup/createCardVariantSwitcher.js +1 -1
  108. package/dist/es/components/internal/SecuredFields/binLookup/createCardVariantSwitcher.js.map +1 -1
  109. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  110. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  111. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js +1 -1
  112. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js.map +1 -1
  113. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  114. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  115. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  116. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  117. package/dist/es/components/tx-variants.js +1 -1
  118. package/dist/es/components/tx-variants.js.map +1 -1
  119. package/dist/es/core/Analytics/Analytics.js +1 -1
  120. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  121. package/dist/es/core/Analytics/AnalyticsErrorEvent.js +2 -0
  122. package/dist/es/core/Analytics/AnalyticsErrorEvent.js.map +1 -0
  123. package/dist/es/core/Analytics/AnalyticsEvent.js +2 -0
  124. package/dist/es/core/Analytics/AnalyticsEvent.js.map +1 -0
  125. package/dist/es/core/Analytics/AnalyticsInfoEvent.js +2 -0
  126. package/dist/es/core/Analytics/AnalyticsInfoEvent.js.map +1 -0
  127. package/dist/es/core/Analytics/AnalyticsLogEvent.js +2 -0
  128. package/dist/es/core/Analytics/AnalyticsLogEvent.js.map +1 -0
  129. package/dist/es/core/Analytics/utils.js +1 -1
  130. package/dist/es/core/Analytics/utils.js.map +1 -1
  131. package/dist/es/core/Environment/Environment.js +1 -1
  132. package/dist/es/core/Environment/Environment.js.map +1 -1
  133. package/dist/es/core/ProcessResponse/PaymentMethods/filters.js +1 -1
  134. package/dist/es/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
  135. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  136. package/dist/es/core/core.js +1 -1
  137. package/dist/es/core/core.js.map +1 -1
  138. package/dist/es/core/utils.js +1 -1
  139. package/dist/es/core/utils.js.map +1 -1
  140. package/dist/es/index.d.ts +282 -131
  141. package/dist/es/index.js +1 -1
  142. package/dist/es/utils/base64.js.map +1 -1
  143. package/dist/es/utils/clipboard.js.map +1 -1
  144. package/dist/es-legacy/adyen.css +12 -5
  145. package/dist/es-legacy/adyen.css.map +1 -1
  146. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  147. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  148. package/dist/es-legacy/components/ApplePay/ApplePay.js +1 -1
  149. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  150. package/dist/es-legacy/components/Card/Card.js +1 -1
  151. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  152. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  153. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  154. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js +1 -1
  155. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  156. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  157. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  158. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js +1 -1
  159. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  160. package/dist/es-legacy/components/Card/components/CardInput/components/DualBrandingIcon/DualBrandingIcon.js +1 -1
  161. package/dist/es-legacy/components/Card/components/CardInput/components/DualBrandingIcon/DualBrandingIcon.js.map +1 -1
  162. package/dist/es-legacy/components/Card/components/CardInput/types.js.map +1 -1
  163. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  164. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  165. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js +1 -1
  166. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  167. package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
  168. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  169. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  170. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  171. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  172. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  173. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  174. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  175. package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
  176. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  177. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +2 -0
  178. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -0
  179. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js +2 -0
  180. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/Enrollment.js.map +1 -0
  181. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js +2 -0
  182. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/AwaitLogoContainer.js.map +1 -0
  183. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js +2 -0
  184. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/IssuerListIntroduction.js.map +1 -0
  185. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js +2 -0
  186. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/components/PayByBankPixAwait.js.map +1 -0
  187. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js +2 -0
  188. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/getEnrollmentStatus.js.map +1 -0
  189. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js +2 -0
  190. package/dist/es-legacy/components/PayByBankPix/components/Enrollment/useIssuerWithLogo.js.map +1 -0
  191. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js +2 -0
  192. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/StoredPayment.js.map +1 -0
  193. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js +2 -0
  194. package/dist/es-legacy/components/PayByBankPix/components/StoredPayment/getAuthorizationStatus.js.map +1 -0
  195. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js +2 -0
  196. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -0
  197. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js +2 -0
  198. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js.map +1 -0
  199. package/dist/es-legacy/components/PayByBankPix/services/authorizeEnrollment.js +2 -0
  200. package/dist/es-legacy/components/PayByBankPix/services/authorizeEnrollment.js.map +1 -0
  201. package/dist/es-legacy/components/PayByBankPix/services/authorizePayment.js +2 -0
  202. package/dist/es-legacy/components/PayByBankPix/services/authorizePayment.js.map +1 -0
  203. package/dist/es-legacy/components/PayByBankPix/services/types.js +2 -0
  204. package/dist/es-legacy/components/PayByBankPix/services/types.js.map +1 -0
  205. package/dist/es-legacy/components/PayPal/Paypal.js +1 -1
  206. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  207. package/dist/es-legacy/components/Redirect/Redirect.js +1 -1
  208. package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
  209. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  210. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  211. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  212. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  213. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  214. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  215. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  216. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  217. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  218. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  219. package/dist/es-legacy/components/ThreeDS2/constants.js +1 -1
  220. package/dist/es-legacy/components/ThreeDS2/constants.js.map +1 -1
  221. package/dist/es-legacy/components/UPI/components/VpaInput/VpaInput.js +1 -1
  222. package/dist/es-legacy/components/UPI/components/VpaInput/VpaInput.js.map +1 -1
  223. package/dist/es-legacy/components/components-name-map.js +1 -1
  224. package/dist/es-legacy/components/components-name-map.js.map +1 -1
  225. package/dist/es-legacy/components/index.js +1 -1
  226. package/dist/es-legacy/components/internal/Await/Await.js +1 -1
  227. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  228. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js +1 -1
  229. package/dist/es-legacy/components/internal/BaseElement/BaseElement.js.map +1 -1
  230. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js +1 -1
  231. package/dist/es-legacy/components/internal/DisclaimerMessage/DisclaimerMessage.js.map +1 -1
  232. package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js +1 -1
  233. package/dist/es-legacy/components/internal/ExpandButton/ExpandButton.js.map +1 -1
  234. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  235. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js +2 -0
  236. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioButtonIcon.js.map +1 -0
  237. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js +2 -0
  238. package/dist/es-legacy/components/internal/FormFields/RadioGroupExtended/RadioGroupExtended.js.map +1 -0
  239. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js +1 -1
  240. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  241. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  242. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  243. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  244. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  245. package/dist/es-legacy/components/internal/SecuredFields/binLookup/createCardVariantSwitcher.js +1 -1
  246. package/dist/es-legacy/components/internal/SecuredFields/binLookup/createCardVariantSwitcher.js.map +1 -1
  247. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  248. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  249. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js +1 -1
  250. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js.map +1 -1
  251. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  252. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  253. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  254. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  255. package/dist/es-legacy/components/tx-variants.js +1 -1
  256. package/dist/es-legacy/components/tx-variants.js.map +1 -1
  257. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  258. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  259. package/dist/es-legacy/core/Analytics/AnalyticsErrorEvent.js +2 -0
  260. package/dist/es-legacy/core/Analytics/AnalyticsErrorEvent.js.map +1 -0
  261. package/dist/es-legacy/core/Analytics/AnalyticsEvent.js +2 -0
  262. package/dist/es-legacy/core/Analytics/AnalyticsEvent.js.map +1 -0
  263. package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js +2 -0
  264. package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js.map +1 -0
  265. package/dist/es-legacy/core/Analytics/AnalyticsLogEvent.js +2 -0
  266. package/dist/es-legacy/core/Analytics/AnalyticsLogEvent.js.map +1 -0
  267. package/dist/es-legacy/core/Analytics/utils.js +1 -1
  268. package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
  269. package/dist/es-legacy/core/Environment/Environment.js +1 -1
  270. package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
  271. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js +1 -1
  272. package/dist/es-legacy/core/ProcessResponse/PaymentMethods/filters.js.map +1 -1
  273. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  274. package/dist/es-legacy/core/core.js +1 -1
  275. package/dist/es-legacy/core/core.js.map +1 -1
  276. package/dist/es-legacy/core/utils.js +1 -1
  277. package/dist/es-legacy/core/utils.js.map +1 -1
  278. package/dist/es-legacy/index.js +1 -1
  279. package/dist/es-legacy/utils/base64.js.map +1 -1
  280. package/dist/es-legacy/utils/clipboard.js.map +1 -1
  281. package/package.json +3 -4
  282. package/styles/adyen.css +12 -5
  283. package/dist/es/core/Analytics/analyticsPreProcessor.js +0 -2
  284. package/dist/es/core/Analytics/analyticsPreProcessor.js.map +0 -1
  285. package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js +0 -2
  286. package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js.map +0 -1
@@ -1,2 +1,2 @@
1
- import{createElement as e,Fragment as n}from"../../../../external/preact/dist/preact.js";import{useMemo as t,useState as a,useCallback as o,useEffect as s}from"../../../../external/preact/hooks/dist/hooks.js";import r from"../../../../_virtual/index.js";import i from"../../../internal/Toggle/Toggle.js";import l from"../../../internal/Img/Img.js";import c from"../../../../core/Context/useImage.js";import m from"./USOnlyPhoneInput.js";import{InfoButton as d}from"./InfoButton.js";import{useCoreContext as f}from"../../../../core/Context/CoreProvider.js";import{LabelOnlyDisclaimerMessage as g}from"../../../internal/DisclaimerMessage/DisclaimerMessage.js";import{isConfigurationValid as u}from"./utils/validate-configuration.js";import p from"./utils/mobile-number-formatter.js";import{InfoEventTypes as y,ANALYTICS_EVENT as h}from"../../../../core/Analytics/constants.js";const _=["mc","visa"],k=({showConsent:k,defaultToggleState:j,termsAndConditionsLink:C,privacyPolicyLink:v,termsAndConditionsVersion:b,fastlaneSessionId:S,currentDetectedBrand:T,telephoneNumber:x,onChange:I,onSubmitAnalytics:A})=>{const D=t((()=>k&&_.includes(T)),[k,T]),[N,L]=a(D),[P,V]=a(j),w=c(),[F,M]=a(""),{i18n:B}=f(),E=t((()=>u({showConsent:k,defaultToggleState:j,termsAndConditionsLink:C,privacyPolicyLink:v,termsAndConditionsVersion:b,fastlaneSessionId:S})),[k,j,C,v,b,S]),O=o((()=>{const e=!P;V(e),A({type:h.info,infoType:y.clicked,target:"fastlane_signup_consent_toggle",configData:{isToggleOn:e}})}),[P,A]);return s((()=>{E&&I({fastlaneData:{consentShown:N,fastlaneSessionId:S,consentGiven:!!D&&P,...b&&{consentVersion:b},...F&&{telephoneNumber:F}}})}),[D,N,b,P,S,F,I,E]),s((()=>{D&&L(!0)}),[D]),s((()=>{E&&A({type:h.info,infoType:y.rendered,configData:{isFastlaneSignupRendered:D}})}),[D,E,A]),D&&E?e("div",{className:"adyen-checkout-card__fastlane","data-testid":"fastlane-signup-component"},e("div",{className:r("adyen-checkout-card__fastlane-consent-toggle",{"adyen-checkout-card__fastlane-consent-toggle--active":P})},e(i,{checked:P,onChange:O,ariaLabel:B.get("card.fastlane.consentToggle"),label:e("span",null,B.get("card.fastlane.consentToggle"))}),e(d,null)),P&&e(n,null,e(m,{initialValue:p(x),onChange:M}),e("div",{className:"adyen-checkout-card__fastlane-consent-text"},e(g,{message:B.get("card.fastlane.consentText"),urls:[C,v]})),e(l,{className:"adyen-checkout-card__fastlane-brand",src:w({imageFolder:"components/"})("paypal_fastlane_black"),alt:B.get("card.fastlane.a11y.logo")}))):null};export{k as default};
1
+ import{createElement as e,Fragment as n}from"../../../../external/preact/dist/preact.js";import{useMemo as t,useState as a,useCallback as s,useEffect as o}from"../../../../external/preact/hooks/dist/hooks.js";import r from"../../../../_virtual/index.js";import i from"../../../internal/Toggle/Toggle.js";import l from"../../../internal/Img/Img.js";import c from"../../../../core/Context/useImage.js";import m from"./USOnlyPhoneInput.js";import{InfoButton as d}from"./InfoButton.js";import{useCoreContext as g}from"../../../../core/Context/CoreProvider.js";import{LabelOnlyDisclaimerMessage as f}from"../../../internal/DisclaimerMessage/DisclaimerMessage.js";import{isConfigurationValid as u}from"./utils/validate-configuration.js";import p from"./utils/mobile-number-formatter.js";import{InfoEventTypes as y}from"../../../../core/Analytics/constants.js";import{AnalyticsInfoEvent as h}from"../../../../core/Analytics/AnalyticsInfoEvent.js";const _=["mc","visa"],k=({showConsent:k,defaultToggleState:j,termsAndConditionsLink:C,privacyPolicyLink:v,termsAndConditionsVersion:b,fastlaneSessionId:S,currentDetectedBrand:I,telephoneNumber:x,onChange:A,onSubmitAnalytics:T})=>{const D=t((()=>k&&_.includes(I)),[k,I]),[N,w]=a(D),[L,P]=a(j),V=c(),[E,F]=a(""),{i18n:M}=g(),B=t((()=>u({showConsent:k,defaultToggleState:j,termsAndConditionsLink:C,privacyPolicyLink:v,termsAndConditionsVersion:b,fastlaneSessionId:S})),[k,j,C,v,b,S]),O=s((()=>{const e=!L;P(e);const n=new h({type:y.clicked,target:"fastlane_signup_consent_toggle",configData:{isToggleOn:e}});T(n)}),[L,T]);return o((()=>{B&&A({fastlaneData:{consentShown:N,fastlaneSessionId:S,consentGiven:!!D&&L,...b&&{consentVersion:b},...E&&{telephoneNumber:E}}})}),[D,N,b,L,S,E,A,B]),o((()=>{D&&w(!0)}),[D]),o((()=>{if(!B)return;const e=new h({type:y.rendered,configData:{isFastlaneSignupRendered:D}});T(e)}),[D,B,T]),D&&B?e("div",{className:"adyen-checkout-card__fastlane","data-testid":"fastlane-signup-component"},e("div",{className:r("adyen-checkout-card__fastlane-consent-toggle",{"adyen-checkout-card__fastlane-consent-toggle--active":L})},e(i,{checked:L,onChange:O,ariaLabel:M.get("card.fastlane.consentToggle"),label:e("span",null,M.get("card.fastlane.consentToggle"))}),e(d,null)),L&&e(n,null,e(m,{initialValue:p(x),onChange:F}),e("div",{className:"adyen-checkout-card__fastlane-consent-text"},e(f,{message:M.get("card.fastlane.consentText"),urls:[C,v]})),e(l,{className:"adyen-checkout-card__fastlane-brand",src:V({imageFolder:"components/"})("paypal_fastlane_black"),alt:M.get("card.fastlane.a11y.logo")}))):null};export{k as default};
2
2
  //# sourceMappingURL=FastlaneSignup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FastlaneSignup.js","sources":["../../../../../../src/components/Card/components/Fastlane/FastlaneSignup.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks';\nimport cx from 'classnames';\nimport Toggle from '../../../internal/Toggle';\nimport Img from '../../../internal/Img';\nimport useImage from '../../../../core/Context/useImage';\nimport USOnlyPhoneInput from './USOnlyPhoneInput';\nimport { InfoButton } from './InfoButton';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { LabelOnlyDisclaimerMessage } from '../../../internal/DisclaimerMessage/DisclaimerMessage';\nimport { isConfigurationValid } from './utils/validate-configuration';\nimport mobileNumberFormatter from './utils/mobile-number-formatter';\nimport { ANALYTICS_EVENT, InfoEventTypes } from '../../../../core/Analytics/constants';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\nimport type { SendAnalyticsObject } from '../../../../core/Analytics/types';\n\nimport './FastlaneSignup.scss';\n\ntype FastlaneSignupProps = FastlaneSignupConfiguration & {\n currentDetectedBrand: string;\n onChange(state: any): void;\n onSubmitAnalytics(event: SendAnalyticsObject): void;\n};\n\nconst SUPPORTED_BRANDS = ['mc', 'visa'];\n\nconst FastlaneSignup = ({\n showConsent,\n defaultToggleState,\n termsAndConditionsLink,\n privacyPolicyLink,\n termsAndConditionsVersion,\n fastlaneSessionId,\n currentDetectedBrand,\n telephoneNumber: telephoneNumberFromProps,\n onChange,\n onSubmitAnalytics\n}: FastlaneSignupProps) => {\n const shouldDisplaySignup = useMemo(() => showConsent && SUPPORTED_BRANDS.includes(currentDetectedBrand), [showConsent, currentDetectedBrand]);\n const [hasConsentFormBeenShown, setHasConsentFormBeenShown] = useState<boolean>(shouldDisplaySignup);\n const [isChecked, setIsChecked] = useState<boolean>(defaultToggleState);\n const getImage = useImage();\n const [telephoneNumber, setTelephoneNumber] = useState<string>('');\n const { i18n } = useCoreContext();\n const isFastlaneConfigurationValid = useMemo(() => {\n return isConfigurationValid({\n showConsent,\n defaultToggleState,\n termsAndConditionsLink,\n privacyPolicyLink,\n termsAndConditionsVersion,\n fastlaneSessionId\n });\n }, [showConsent, defaultToggleState, termsAndConditionsLink, privacyPolicyLink, termsAndConditionsVersion, fastlaneSessionId]);\n\n const handleToggleChange = useCallback(() => {\n const newValue = !isChecked;\n setIsChecked(newValue);\n\n onSubmitAnalytics({\n type: ANALYTICS_EVENT.info,\n infoType: InfoEventTypes.clicked,\n target: 'fastlane_signup_consent_toggle',\n configData: {\n isToggleOn: newValue\n }\n });\n }, [isChecked, onSubmitAnalytics]);\n\n /**\n * If the configuration is valid, the Component propagates fastlaneData to the Card component state\n *\n * 'telephoneNumber' is optional since the shopper can check out without passing it\n * 'termsAndConditionsVersion' is optional since the signup flow may not be available for the shopper, although we still add fastlaneData to the /payments request for analytics purposes\n */\n useEffect(() => {\n if (!isFastlaneConfigurationValid) {\n return;\n }\n\n onChange({\n fastlaneData: {\n consentShown: hasConsentFormBeenShown,\n fastlaneSessionId: fastlaneSessionId,\n consentGiven: shouldDisplaySignup ? isChecked : false,\n ...(termsAndConditionsVersion && { consentVersion: termsAndConditionsVersion }),\n ...(telephoneNumber && { telephoneNumber })\n }\n });\n }, [\n shouldDisplaySignup,\n hasConsentFormBeenShown,\n termsAndConditionsVersion,\n isChecked,\n fastlaneSessionId,\n telephoneNumber,\n onChange,\n isFastlaneConfigurationValid\n ]);\n\n /**\n * If the sign-up has been displayed at least once, we set hasConsentFormBeenShown: true\n */\n useEffect(() => {\n if (shouldDisplaySignup) {\n setHasConsentFormBeenShown(true);\n }\n }, [shouldDisplaySignup]);\n\n useEffect(() => {\n if (!isFastlaneConfigurationValid) {\n return;\n }\n\n onSubmitAnalytics({\n type: ANALYTICS_EVENT.info,\n infoType: InfoEventTypes.rendered,\n configData: {\n isFastlaneSignupRendered: shouldDisplaySignup\n }\n });\n }, [shouldDisplaySignup, isFastlaneConfigurationValid, onSubmitAnalytics]);\n\n if (!shouldDisplaySignup || !isFastlaneConfigurationValid) {\n return null;\n }\n\n return (\n <div className=\"adyen-checkout-card__fastlane\" data-testid=\"fastlane-signup-component\">\n <div\n className={cx('adyen-checkout-card__fastlane-consent-toggle', {\n 'adyen-checkout-card__fastlane-consent-toggle--active': isChecked\n })}\n >\n <Toggle\n checked={isChecked}\n onChange={handleToggleChange}\n ariaLabel={i18n.get('card.fastlane.consentToggle')}\n label={<span>{i18n.get('card.fastlane.consentToggle')}</span>}\n />\n <InfoButton />\n </div>\n\n {isChecked && (\n <Fragment>\n <USOnlyPhoneInput initialValue={mobileNumberFormatter(telephoneNumberFromProps)} onChange={setTelephoneNumber} />\n <div className=\"adyen-checkout-card__fastlane-consent-text\">\n <LabelOnlyDisclaimerMessage\n message={i18n.get('card.fastlane.consentText')}\n urls={[termsAndConditionsLink, privacyPolicyLink]}\n />\n </div>\n <Img\n className=\"adyen-checkout-card__fastlane-brand\"\n src={getImage({ imageFolder: 'components/' })(`paypal_fastlane_black`)}\n alt={i18n.get('card.fastlane.a11y.logo')}\n />\n </Fragment>\n )}\n </div>\n );\n};\n\nexport default FastlaneSignup;\n"],"names":["SUPPORTED_BRANDS","FastlaneSignup","showConsent","defaultToggleState","termsAndConditionsLink","privacyPolicyLink","termsAndConditionsVersion","fastlaneSessionId","currentDetectedBrand","telephoneNumber","telephoneNumberFromProps","onChange","onSubmitAnalytics","shouldDisplaySignup","useMemo","includes","hasConsentFormBeenShown","setHasConsentFormBeenShown","useState","isChecked","setIsChecked","getImage","useImage","setTelephoneNumber","i18n","useCoreContext","isFastlaneConfigurationValid","isConfigurationValid","handleToggleChange","useCallback","newValue","type","ANALYTICS_EVENT","info","infoType","InfoEventTypes","clicked","target","configData","isToggleOn","useEffect","fastlaneData","consentShown","consentGiven","consentVersion","rendered","isFastlaneSignupRendered","h","div","className","data-testid","cx","Toggle","checked","ariaLabel","get","label","span","InfoButton","Fragment","USOnlyPhoneInput","initialValue","mobileNumberFormatter","LabelOnlyDisclaimerMessage","message","urls","Img","src","imageFolder","alt"],"mappings":"22BAwBA,MAAMA,EAAmB,CAAC,KAAM,QAE1BC,EAAiB,EACnBC,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,oBACAC,uBACAC,gBAAiBC,EACjBC,WACAC,wBAEA,MAAMC,EAAsBC,GAAQ,IAAMZ,GAAeF,EAAiBe,SAASP,IAAuB,CAACN,EAAaM,KACjHQ,EAAyBC,GAA8BC,EAAkBL,IACzEM,EAAWC,GAAgBF,EAAkBf,GAC9CkB,EAAWC,KACVb,EAAiBc,GAAsBL,EAAiB,KACzDM,KAAEA,GAASC,IACXC,EAA+BZ,GAAQ,IAClCa,EAAqB,CACxBzB,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,uBAEL,CAACL,EAAaC,EAAoBC,EAAwBC,EAAmBC,EAA2BC,IAErGqB,EAAqBC,GAAY,KACnC,MAAMC,GAAYX,EAClBC,EAAaU,GAEblB,EAAkB,CACdmB,KAAMC,EAAgBC,KACtBC,SAAUC,EAAeC,QACzBC,OAAQ,iCACRC,WAAY,CACRC,WAAYT,IAEpB,GACD,CAACX,EAAWP,IAwDf,OAhDA4B,GAAU,KACDd,GAILf,EAAS,CACL8B,aAAc,CACVC,aAAc1B,EACdT,kBAAmBA,EACnBoC,eAAc9B,GAAsBM,KAChCb,GAA6B,CAAEsC,eAAgBtC,MAC/CG,GAAmB,CAAEA,qBAEjC,GACD,CACCI,EACAG,EACAV,EACAa,EACAZ,EACAE,EACAE,EACAe,IAMJc,GAAU,KACF3B,GACAI,GAA2B,EAC/B,GACD,CAACJ,IAEJ2B,GAAU,KACDd,GAILd,EAAkB,CACdmB,KAAMC,EAAgBC,KACtBC,SAAUC,EAAeU,SACzBP,WAAY,CACRQ,yBAA0BjC,IAElC,GACD,CAACA,EAAqBa,EAA8Bd,IAElDC,GAAwBa,EAKzBqB,EAACC,MAAAA,CAAIC,UAAU,gCAAgCC,cAAY,6BACvDH,EAACC,MAAAA,CACGC,UAAWE,EAAG,+CAAgD,CAC1D,uDAAwDhC,KAG5D4B,EAACK,EAAAA,CACGC,QAASlC,EACTR,SAAUiB,EACV0B,UAAW9B,EAAK+B,IAAI,+BACpBC,MAAOT,EAACU,OAAAA,KAAMjC,EAAK+B,IAAI,kCAE3BR,EAACW,EAGJvC,OAAAA,GACG4B,EAACY,EAAAA,KACGZ,EAACa,EAAAA,CAAiBC,aAAcC,EAAsBpD,GAA2BC,SAAUY,IAC3FwB,EAACC,MAAAA,CAAIC,UAAU,8CACXF,EAACgB,EAAAA,CACGC,QAASxC,EAAK+B,IAAI,6BAClBU,KAAM,CAAC7D,EAAwBC,MAGvC0C,EAACmB,EAAAA,CACGjB,UAAU,sCACVkB,IAAK9C,EAAS,CAAE+C,YAAa,eAAxB/C,CAAyC,yBAC9CgD,IAAK7C,EAAK+B,IAAI,+BA/BvB"}
1
+ {"version":3,"file":"FastlaneSignup.js","sources":["../../../../../../src/components/Card/components/Fastlane/FastlaneSignup.tsx"],"sourcesContent":["import { Fragment, h } from 'preact';\nimport { useCallback, useEffect, useMemo, useState } from 'preact/hooks';\nimport cx from 'classnames';\nimport Toggle from '../../../internal/Toggle';\nimport Img from '../../../internal/Img';\nimport useImage from '../../../../core/Context/useImage';\nimport USOnlyPhoneInput from './USOnlyPhoneInput';\nimport { InfoButton } from './InfoButton';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { LabelOnlyDisclaimerMessage } from '../../../internal/DisclaimerMessage/DisclaimerMessage';\nimport { isConfigurationValid } from './utils/validate-configuration';\nimport mobileNumberFormatter from './utils/mobile-number-formatter';\nimport { InfoEventTypes } from '../../../../core/Analytics/constants';\nimport type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\n\nimport './FastlaneSignup.scss';\nimport { AnalyticsInfoEvent } from '../../../../core/Analytics/AnalyticsInfoEvent';\nimport { AnalyticsEvent } from '../../../../core/Analytics/AnalyticsEvent';\n\ntype FastlaneSignupProps = FastlaneSignupConfiguration & {\n currentDetectedBrand: string;\n onChange(state: any): void;\n onSubmitAnalytics(event: AnalyticsEvent): void;\n};\n\nconst SUPPORTED_BRANDS = ['mc', 'visa'];\n\nconst FastlaneSignup = ({\n showConsent,\n defaultToggleState,\n termsAndConditionsLink,\n privacyPolicyLink,\n termsAndConditionsVersion,\n fastlaneSessionId,\n currentDetectedBrand,\n telephoneNumber: telephoneNumberFromProps,\n onChange,\n onSubmitAnalytics\n}: FastlaneSignupProps) => {\n const shouldDisplaySignup = useMemo(() => showConsent && SUPPORTED_BRANDS.includes(currentDetectedBrand), [showConsent, currentDetectedBrand]);\n const [hasConsentFormBeenShown, setHasConsentFormBeenShown] = useState<boolean>(shouldDisplaySignup);\n const [isChecked, setIsChecked] = useState<boolean>(defaultToggleState);\n const getImage = useImage();\n const [telephoneNumber, setTelephoneNumber] = useState<string>('');\n const { i18n } = useCoreContext();\n const isFastlaneConfigurationValid = useMemo(() => {\n return isConfigurationValid({\n showConsent,\n defaultToggleState,\n termsAndConditionsLink,\n privacyPolicyLink,\n termsAndConditionsVersion,\n fastlaneSessionId\n });\n }, [showConsent, defaultToggleState, termsAndConditionsLink, privacyPolicyLink, termsAndConditionsVersion, fastlaneSessionId]);\n\n const handleToggleChange = useCallback(() => {\n const newValue = !isChecked;\n setIsChecked(newValue);\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventTypes.clicked,\n target: 'fastlane_signup_consent_toggle',\n configData: {\n isToggleOn: newValue\n }\n });\n onSubmitAnalytics(event);\n }, [isChecked, onSubmitAnalytics]);\n\n /**\n * If the configuration is valid, the Component propagates fastlaneData to the Card component state\n *\n * 'telephoneNumber' is optional since the shopper can check out without passing it\n * 'termsAndConditionsVersion' is optional since the signup flow may not be available for the shopper, although we still add fastlaneData to the /payments request for analytics purposes\n */\n useEffect(() => {\n if (!isFastlaneConfigurationValid) {\n return;\n }\n\n onChange({\n fastlaneData: {\n consentShown: hasConsentFormBeenShown,\n fastlaneSessionId: fastlaneSessionId,\n consentGiven: shouldDisplaySignup ? isChecked : false,\n ...(termsAndConditionsVersion && { consentVersion: termsAndConditionsVersion }),\n ...(telephoneNumber && { telephoneNumber })\n }\n });\n }, [\n shouldDisplaySignup,\n hasConsentFormBeenShown,\n termsAndConditionsVersion,\n isChecked,\n fastlaneSessionId,\n telephoneNumber,\n onChange,\n isFastlaneConfigurationValid\n ]);\n\n /**\n * If the sign-up has been displayed at least once, we set hasConsentFormBeenShown: true\n */\n useEffect(() => {\n if (shouldDisplaySignup) {\n setHasConsentFormBeenShown(true);\n }\n }, [shouldDisplaySignup]);\n\n useEffect(() => {\n if (!isFastlaneConfigurationValid) {\n return;\n }\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventTypes.rendered,\n configData: {\n isFastlaneSignupRendered: shouldDisplaySignup\n }\n });\n\n onSubmitAnalytics(event);\n }, [shouldDisplaySignup, isFastlaneConfigurationValid, onSubmitAnalytics]);\n\n if (!shouldDisplaySignup || !isFastlaneConfigurationValid) {\n return null;\n }\n\n return (\n <div className=\"adyen-checkout-card__fastlane\" data-testid=\"fastlane-signup-component\">\n <div\n className={cx('adyen-checkout-card__fastlane-consent-toggle', {\n 'adyen-checkout-card__fastlane-consent-toggle--active': isChecked\n })}\n >\n <Toggle\n checked={isChecked}\n onChange={handleToggleChange}\n ariaLabel={i18n.get('card.fastlane.consentToggle')}\n label={<span>{i18n.get('card.fastlane.consentToggle')}</span>}\n />\n <InfoButton />\n </div>\n\n {isChecked && (\n <Fragment>\n <USOnlyPhoneInput initialValue={mobileNumberFormatter(telephoneNumberFromProps)} onChange={setTelephoneNumber} />\n <div className=\"adyen-checkout-card__fastlane-consent-text\">\n <LabelOnlyDisclaimerMessage\n message={i18n.get('card.fastlane.consentText')}\n urls={[termsAndConditionsLink, privacyPolicyLink]}\n />\n </div>\n <Img\n className=\"adyen-checkout-card__fastlane-brand\"\n src={getImage({ imageFolder: 'components/' })(`paypal_fastlane_black`)}\n alt={i18n.get('card.fastlane.a11y.logo')}\n />\n </Fragment>\n )}\n </div>\n );\n};\n\nexport default FastlaneSignup;\n"],"names":["SUPPORTED_BRANDS","FastlaneSignup","showConsent","defaultToggleState","termsAndConditionsLink","privacyPolicyLink","termsAndConditionsVersion","fastlaneSessionId","currentDetectedBrand","telephoneNumber","telephoneNumberFromProps","onChange","onSubmitAnalytics","shouldDisplaySignup","useMemo","includes","hasConsentFormBeenShown","setHasConsentFormBeenShown","useState","isChecked","setIsChecked","getImage","useImage","setTelephoneNumber","i18n","useCoreContext","isFastlaneConfigurationValid","isConfigurationValid","handleToggleChange","useCallback","newValue","event","AnalyticsInfoEvent","type","InfoEventTypes","clicked","target","configData","isToggleOn","useEffect","fastlaneData","consentShown","consentGiven","consentVersion","rendered","isFastlaneSignupRendered","h","div","className","data-testid","cx","Toggle","checked","ariaLabel","get","label","span","InfoButton","Fragment","USOnlyPhoneInput","initialValue","mobileNumberFormatter","LabelOnlyDisclaimerMessage","message","urls","Img","src","imageFolder","alt"],"mappings":"46BAyBA,MAAMA,EAAmB,CAAC,KAAM,QAE1BC,EAAiB,EACnBC,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,oBACAC,uBACAC,gBAAiBC,EACjBC,WACAC,wBAEA,MAAMC,EAAsBC,GAAQ,IAAMZ,GAAeF,EAAiBe,SAASP,IAAuB,CAACN,EAAaM,KACjHQ,EAAyBC,GAA8BC,EAAkBL,IACzEM,EAAWC,GAAgBF,EAAkBf,GAC9CkB,EAAWC,KACVb,EAAiBc,GAAsBL,EAAiB,KACzDM,KAAEA,GAASC,IACXC,EAA+BZ,GAAQ,IAClCa,EAAqB,CACxBzB,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,uBAEL,CAACL,EAAaC,EAAoBC,EAAwBC,EAAmBC,EAA2BC,IAErGqB,EAAqBC,GAAY,KACnC,MAAMC,GAAYX,EAClBC,EAAaU,GAEb,MAAMC,EAAQ,IAAIC,EAAmB,CACjCC,KAAMC,EAAeC,QACrBC,OAAQ,iCACRC,WAAY,CACRC,WAAYR,KAGpBlB,EAAkBmB,EAAAA,GACnB,CAACZ,EAAWP,IAyDf,OAjDA2B,GAAU,KACDb,GAILf,EAAS,CACL6B,aAAc,CACVC,aAAczB,EACdT,kBAAmBA,EACnBmC,eAAc7B,GAAsBM,KAChCb,GAA6B,CAAEqC,eAAgBrC,MAC/CG,GAAmB,CAAEA,qBAEjC,GACD,CACCI,EACAG,EACAV,EACAa,EACAZ,EACAE,EACAE,EACAe,IAMJa,GAAU,KACF1B,GACAI,GAA2B,EAC/B,GACD,CAACJ,IAEJ0B,GAAU,KACN,IAAKb,EACD,OAGJ,MAAMK,EAAQ,IAAIC,EAAmB,CACjCC,KAAMC,EAAeU,SACrBP,WAAY,CACRQ,yBAA0BhC,KAIlCD,EAAkBmB,EAAAA,GACnB,CAAClB,EAAqBa,EAA8Bd,IAElDC,GAAwBa,EAKzBoB,EAACC,MAAAA,CAAIC,UAAU,gCAAgCC,cAAY,6BACvDH,EAACC,MAAAA,CACGC,UAAWE,EAAG,+CAAgD,CAC1D,uDAAwD/B,KAG5D2B,EAACK,EAAAA,CACGC,QAASjC,EACTR,SAAUiB,EACVyB,UAAW7B,EAAK8B,IAAI,+BACpBC,MAAOT,EAACU,OAAAA,KAAMhC,EAAK8B,IAAI,kCAE3BR,EAACW,EAGJtC,OAAAA,GACG2B,EAACY,EAAAA,KACGZ,EAACa,EAAAA,CAAiBC,aAAcC,EAAsBnD,GAA2BC,SAAUY,IAC3FuB,EAACC,MAAAA,CAAIC,UAAU,8CACXF,EAACgB,EAAAA,CACGC,QAASvC,EAAK8B,IAAI,6BAClBU,KAAM,CAAC5D,EAAwBC,MAGvCyC,EAACmB,EAAAA,CACGjB,UAAU,sCACVkB,IAAK7C,EAAS,CAAE8C,YAAa,eAAxB9C,CAAyC,yBAC9C+C,IAAK5C,EAAK8B,IAAI,+BA/BvB"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import s from"./CustomCardInput/CustomCardInput.js";import{CoreProvider as o}from"../../core/Context/CoreProvider.js";import n from"../../utils/browserInfo.js";import r from"../internal/SecuredFields/binLookup/triggerBinLookUp.js";import{getCardImageUrl as i,fieldTypeToSnakeCase as a}from"../internal/SecuredFields/utils.js";import{TxVariants as p}from"../tx-variants.js";import{ANALYTICS_FOCUS_STR as u,ANALYTICS_UNFOCUS_STR as d}from"../../core/Analytics/constants.js";function c(e,t,s){return t in e?Object.defineProperty(e,t,{value:s,enumerable:!0,configurable:!0,writable:!0}):e[t]=s,e}class h extends t{formatProps(e){return{...e,type:p.customCard}}formatData(){const e=this.state.selectedBrandValue;return{paymentMethod:{type:"scheme",...this.state.data,...e&&{brand:e}},browserInfo:this.browserInfo,origin:!!window&&window.location.origin}}submitAnalytics(e){super.submitAnalytics(e,this.props)}updateStyles(e){return this.componentRef?.updateStyles&&this.componentRef.updateStyles(e),this}setFocusOn(e){return this.componentRef?.setFocusOn&&this.componentRef.setFocusOn(e),this}processBinLookupResponse(e){return this.componentRef?.processBinLookupResponse&&this.componentRef.processBinLookupResponse(e),this}dualBrandingChangeHandler(e){return this.componentRef?.dualBrandingChangeHandler&&this.componentRef.dualBrandingChangeHandler(e),this}handleUnsupportedCard(e){return this.componentRef?.handleUnsupportedCard&&this.componentRef.handleUnsupportedCard(e),this}onBinLookup(e){const t={...e};t.rootNode=this._node,t.isReset||(t.supportedBrandsRaw=e.supportedBrandsRaw?.map((e=>(e.brandImageUrl=this.props.brandsConfiguration[e.brand]?.icon??i(e.brand,this.resources),e)))),this.props.onBinLookup(t)}get isValid(){return!!this.state.isValid}get browserInfo(){return n()}render(){return e(o,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(s,{ref:e=>{this.componentRef=e},...this.props,...this.state,handleKeyPress:this.handleKeyPress,rootNode:this._node,onChange:this.setState,onBinValue:this.onBinValue,implementationType:"custom",resources:this.resources,brand:this.brand,onFocus:this.onFocus}))}constructor(...e){super(...e),c(this,"brand",p.card),c(this,"onBinValue",r(this)),c(this,"onFocus",(e=>{this.submitAnalytics({type:!0===e.focus?u:d,target:a(e.fieldType)}),this.props.onFocus?.(e)})),c(this,"onEnterKeyPressed",((e,t)=>{this.props.onEnterKeyPressed?.(e,t)}))}}c(h,"type",p.customCard),c(h,"analyticsType","custom-scheme"),c(h,"defaultProps",{onBinLookup:()=>{},brandsConfiguration:{}});export{h as CustomCard,h as default};
1
+ import{createElement as e}from"../../external/preact/dist/preact.js";import{UIElement as t}from"../internal/UIElement/UIElement.js";import o from"./CustomCardInput/CustomCardInput.js";import{CoreProvider as s}from"../../core/Context/CoreProvider.js";import n from"../../utils/browserInfo.js";import r from"../internal/SecuredFields/binLookup/triggerBinLookUp.js";import{getCardImageUrl as i,fieldTypeToSnakeCase as a}from"../internal/SecuredFields/utils.js";import{TxVariants as p}from"../tx-variants.js";import{ANALYTICS_FOCUS_STR as d,ANALYTICS_UNFOCUS_STR as u}from"../../core/Analytics/constants.js";import{AnalyticsInfoEvent as c}from"../../core/Analytics/AnalyticsInfoEvent.js";function h(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}class m extends t{formatProps(e){return{...e,type:p.customCard}}formatData(){const e=this.state.selectedBrandValue;return{paymentMethod:{type:"scheme",...this.state.data,...e&&{brand:e}},browserInfo:this.browserInfo,origin:!!window&&window.location.origin}}updateStyles(e){return this.componentRef?.updateStyles&&this.componentRef.updateStyles(e),this}setFocusOn(e){return this.componentRef?.setFocusOn&&this.componentRef.setFocusOn(e),this}processBinLookupResponse(e){return this.componentRef?.processBinLookupResponse&&this.componentRef.processBinLookupResponse(e),this}dualBrandingChangeHandler(e){return this.componentRef?.dualBrandingChangeHandler&&this.componentRef.dualBrandingChangeHandler(e),this}handleUnsupportedCard(e){return this.componentRef?.handleUnsupportedCard&&this.componentRef.handleUnsupportedCard(e),this}onBinLookup(e){const t={...e};t.rootNode=this._node,t.isReset||(t.supportedBrandsRaw=e.supportedBrandsRaw?.map((e=>(e.brandImageUrl=this.props.brandsConfiguration[e.brand]?.icon??i(e.brand,this.resources),e)))),this.props.onBinLookup(t)}get isValid(){return!!this.state.isValid}get browserInfo(){return n()}render(){return e(s,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},e(o,{ref:e=>{this.componentRef=e},...this.props,...this.state,handleKeyPress:this.handleKeyPress,rootNode:this._node,onChange:this.setState,onBinValue:this.onBinValue,implementationType:"custom",resources:this.resources,brand:this.brand,onFocus:this.onFocus}))}constructor(...e){super(...e),h(this,"brand",p.card),h(this,"onBinValue",r(this)),h(this,"onFocus",(e=>{const t=new c({type:!0===e.focus?d:u,target:a(e.fieldType)});this.submitAnalytics(t),this.props.onFocus?.(e)})),h(this,"onEnterKeyPressed",((e,t)=>{this.props.onEnterKeyPressed?.(e,t)}))}}h(m,"type",p.customCard),h(m,"analyticsType","custom-scheme"),h(m,"defaultProps",{onBinLookup:()=>{},brandsConfiguration:{}});export{m as CustomCard,m as default};
2
2
  //# sourceMappingURL=CustomCard.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CustomCard.js","sources":["../../../../src/components/CustomCard/CustomCard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport CustomCardInput from './CustomCardInput';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { BrandObject } from '../Card/types';\nimport { getCardImageUrl, fieldTypeToSnakeCase } from '../internal/SecuredFields/utils';\nimport { TxVariants } from '../tx-variants';\nimport { CustomCardConfiguration } from './types';\nimport { ANALYTICS_FOCUS_STR, ANALYTICS_UNFOCUS_STR } from '../../core/Analytics/constants';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\n\nexport class CustomCard extends UIElement<CustomCardConfiguration> {\n public static type = TxVariants.customCard;\n\n public static analyticsType = 'custom-scheme';\n\n protected static defaultProps = {\n onBinLookup: () => {},\n brandsConfiguration: {}\n };\n\n private brand = TxVariants.card;\n\n formatProps(props: CustomCardConfiguration) {\n return {\n ...props,\n type: TxVariants.customCard\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const sfBrand = this.state.selectedBrandValue;\n return {\n paymentMethod: {\n type: 'scheme',\n ...this.state.data,\n ...(sfBrand && { brand: sfBrand })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n super.submitAnalytics(analyticsObj, this.props);\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(frame) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(frame);\n return this;\n }\n\n processBinLookupResponse(binLookupResponse) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse);\n return this;\n }\n\n dualBrandingChangeHandler(e: Event | string) {\n if (this.componentRef?.dualBrandingChangeHandler) this.componentRef.dualBrandingChangeHandler(e);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n onBinLookup(obj: CardBinLookupData) {\n const nuObj = { ...obj };\n nuObj.rootNode = this._node;\n\n if (!nuObj.isReset) {\n // Add brandImage urls, first checking if the merchant has configured their own one for the brand\n nuObj.supportedBrandsRaw = obj.supportedBrandsRaw?.map((item: BrandObject) => {\n item.brandImageUrl = this.props.brandsConfiguration[item.brand]?.icon ?? getCardImageUrl(item.brand, this.resources);\n return item;\n });\n }\n\n this.props.onBinLookup(nuObj);\n }\n\n public onBinValue = triggerBinLookUp(this);\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n private onFocus = (obj: CardFocusData) => {\n this.submitAnalytics({\n type: obj.focus === true ? ANALYTICS_FOCUS_STR : ANALYTICS_UNFOCUS_STR,\n target: fieldTypeToSnakeCase(obj.fieldType)\n });\n\n // Call merchant defined callback\n this.props.onFocus?.(obj);\n };\n\n protected onEnterKeyPressed = (activeElement: Element, component: UIElement) => {\n this.props.onEnterKeyPressed?.(activeElement, component);\n };\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <CustomCardInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n {...this.state}\n handleKeyPress={this.handleKeyPress}\n rootNode={this._node}\n onChange={this.setState}\n onBinValue={this.onBinValue}\n implementationType={'custom'}\n resources={this.resources}\n brand={this.brand}\n onFocus={this.onFocus}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default CustomCard;\n"],"names":["CustomCard","UIElement","formatProps","props","type","TxVariants","customCard","formatData","sfBrand","this","state","selectedBrandValue","paymentMethod","data","brand","browserInfo","origin","window","location","submitAnalytics","analyticsObj","super","updateStyles","stylesObj","componentRef","setFocusOn","frame","processBinLookupResponse","binLookupResponse","dualBrandingChangeHandler","e","handleUnsupportedCard","errObj","onBinLookup","obj","nuObj","rootNode","_node","isReset","supportedBrandsRaw","map","item","brandImageUrl","brandsConfiguration","icon","getCardImageUrl","resources","isValid","collectBrowserInfo","render","h","CoreProvider","i18n","loadingContext","CustomCardInput","ref","handleKeyPress","onChange","setState","onBinValue","implementationType","onFocus","args","_define_property","card","triggerBinLookUp","focus","ANALYTICS_FOCUS_STR","ANALYTICS_UNFOCUS_STR","target","fieldTypeToSnakeCase","fieldType","onEnterKeyPressed","activeElement","component","analyticsType","defaultProps"],"mappings":"otBAcO,MAAMA,UAAmBC,EAY5BC,WAAAA,CAAYC,GACR,MAAO,IACAA,EACHC,KAAMC,EAAWC,WAEzB,CAKAC,UAAAA,GACI,MAAMC,EAAUC,KAAKC,MAAMC,mBAC3B,MAAO,CACHC,cAAe,CACXR,KAAM,YACHK,KAAKC,MAAMG,QACVL,GAAW,CAAEM,MAAON,IAE5BO,YAAaN,KAAKM,YAClBC,SAAUC,QAAUA,OAAOC,SAASF,OAE5C,CAEUG,eAAAA,CAAgBC,GACtBC,MAAMF,gBAAgBC,EAAcX,KAAKN,MAC7C,CAEAmB,YAAAA,CAAaC,GAET,OADId,KAAKe,cAAcF,cAAcb,KAAKe,aAAaF,aAAaC,GAC7Dd,IACX,CAEAgB,UAAAA,CAAWC,GAEP,OADIjB,KAAKe,cAAcC,YAAYhB,KAAKe,aAAaC,WAAWC,GACzDjB,IACX,CAEAkB,wBAAAA,CAAyBC,GAErB,OADInB,KAAKe,cAAcG,0BAA0BlB,KAAKe,aAAaG,yBAAyBC,GACrFnB,IACX,CAEAoB,yBAAAA,CAA0BC,GAEtB,OADIrB,KAAKe,cAAcK,2BAA2BpB,KAAKe,aAAaK,0BAA0BC,GACvFrB,IACX,CAEAsB,qBAAAA,CAAsBC,GAElB,OADIvB,KAAKe,cAAcO,uBAAuBtB,KAAKe,aAAaO,sBAAsBC,GAC/EvB,IACX,CAEAwB,WAAAA,CAAYC,GACR,MAAMC,EAAQ,IAAKD,GACnBC,EAAMC,SAAW3B,KAAK4B,MAEjBF,EAAMG,UAEPH,EAAMI,mBAAqBL,EAAIK,oBAAoBC,KAAKC,IACpDA,EAAKC,cAAgBjC,KAAKN,MAAMwC,oBAAoBF,EAAK3B,QAAQ8B,MAAQC,EAAgBJ,EAAK3B,MAAOL,KAAKqC,WACnGL,MAIfhC,KAAKN,MAAM8B,YAAYE,EAC3B,CAIA,WAAIY,GACA,QAAStC,KAAKC,MAAMqC,OACxB,CAEA,eAAIhC,GACA,OAAOiC,GACX,CAgBAC,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAM3C,KAAKN,MAAMiD,KAAMC,eAAgB5C,KAAKN,MAAMkD,eAAgBP,UAAWrC,KAAKqC,WAC5FI,EAACI,EAAAA,CACGC,IAAKA,IACD9C,KAAKe,aAAe+B,CAAAA,KAEpB9C,KAAKN,SACLM,KAAKC,MACT8C,eAAgB/C,KAAK+C,eACrBpB,SAAU3B,KAAK4B,MACfoB,SAAUhD,KAAKiD,SACfC,WAAYlD,KAAKkD,WACjBC,mBAAoB,SACpBd,UAAWrC,KAAKqC,UAChBhC,MAAOL,KAAKK,MACZ+C,QAASpD,KAAKoD,UAI9B,mBA3HGxC,SAAAyC,GAUHC,EAAQjD,KAAAA,QAAQT,EAAW2D,MAqE3BD,EAAAtD,KAAOkD,aAAaM,EAAiBxD,OAUrCsD,EAAQF,KAAAA,WAAW3B,IACfzB,KAAKU,gBAAgB,CACjBf,MAAoB,IAAd8B,EAAIgC,MAAiBC,EAAsBC,EACjDC,OAAQC,EAAqBpC,EAAIqC,aAIrC9D,KAAKN,MAAM0D,UAAU3B,EAAAA,IAGzB6B,EAAAtD,KAAU+D,qBAAoB,CAACC,EAAwBC,KACnDjE,KAAKN,MAAMqE,oBAAoBC,EAAeC,EAAAA,KAnGlDX,EADS/D,EACKI,OAAOC,EAAWC,YAEhCyD,EAHS/D,EAGK2E,gBAAgB,iBAE9BZ,EALS/D,EAKQ4E,eAAe,CAC5B3C,YAAa,OACbU,oBAAqB,CAAA"}
1
+ {"version":3,"file":"CustomCard.js","sources":["../../../../src/components/CustomCard/CustomCard.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement';\nimport CustomCardInput from './CustomCardInput';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { BrandObject } from '../Card/types';\nimport { getCardImageUrl, fieldTypeToSnakeCase } from '../internal/SecuredFields/utils';\nimport { TxVariants } from '../tx-variants';\nimport { CustomCardConfiguration } from './types';\nimport { ANALYTICS_FOCUS_STR, ANALYTICS_UNFOCUS_STR } from '../../core/Analytics/constants';\nimport { AnalyticsInfoEvent } from '../../core/Analytics/AnalyticsInfoEvent';\n\nexport class CustomCard extends UIElement<CustomCardConfiguration> {\n public static type = TxVariants.customCard;\n\n public static analyticsType = 'custom-scheme';\n\n protected static defaultProps = {\n onBinLookup: () => {},\n brandsConfiguration: {}\n };\n\n private brand = TxVariants.card;\n\n formatProps(props: CustomCardConfiguration) {\n return {\n ...props,\n type: TxVariants.customCard\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n const sfBrand = this.state.selectedBrandValue;\n return {\n paymentMethod: {\n type: 'scheme',\n ...this.state.data,\n ...(sfBrand && { brand: sfBrand })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin\n };\n }\n\n updateStyles(stylesObj) {\n if (this.componentRef?.updateStyles) this.componentRef.updateStyles(stylesObj);\n return this;\n }\n\n setFocusOn(frame) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(frame);\n return this;\n }\n\n processBinLookupResponse(binLookupResponse) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse);\n return this;\n }\n\n dualBrandingChangeHandler(e: Event | string) {\n if (this.componentRef?.dualBrandingChangeHandler) this.componentRef.dualBrandingChangeHandler(e);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n onBinLookup(obj: CardBinLookupData) {\n const nuObj = { ...obj };\n nuObj.rootNode = this._node;\n\n if (!nuObj.isReset) {\n // Add brandImage urls, first checking if the merchant has configured their own one for the brand\n nuObj.supportedBrandsRaw = obj.supportedBrandsRaw?.map((item: BrandObject) => {\n item.brandImageUrl = this.props.brandsConfiguration[item.brand]?.icon ?? getCardImageUrl(item.brand, this.resources);\n return item;\n });\n }\n\n this.props.onBinLookup(nuObj);\n }\n\n public onBinValue = triggerBinLookUp(this);\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n private onFocus = (obj: CardFocusData) => {\n const event = new AnalyticsInfoEvent({\n type: obj.focus === true ? ANALYTICS_FOCUS_STR : ANALYTICS_UNFOCUS_STR,\n target: fieldTypeToSnakeCase(obj.fieldType)\n });\n\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n this.props.onFocus?.(obj);\n };\n\n protected onEnterKeyPressed = (activeElement: Element, component: UIElement) => {\n this.props.onEnterKeyPressed?.(activeElement, component);\n };\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <CustomCardInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n {...this.state}\n handleKeyPress={this.handleKeyPress}\n rootNode={this._node}\n onChange={this.setState}\n onBinValue={this.onBinValue}\n implementationType={'custom'}\n resources={this.resources}\n brand={this.brand}\n onFocus={this.onFocus}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default CustomCard;\n"],"names":["CustomCard","UIElement","formatProps","props","type","TxVariants","customCard","formatData","sfBrand","this","state","selectedBrandValue","paymentMethod","data","brand","browserInfo","origin","window","location","updateStyles","stylesObj","componentRef","setFocusOn","frame","processBinLookupResponse","binLookupResponse","dualBrandingChangeHandler","e","handleUnsupportedCard","errObj","onBinLookup","obj","nuObj","rootNode","_node","isReset","supportedBrandsRaw","map","item","brandImageUrl","brandsConfiguration","icon","getCardImageUrl","resources","isValid","collectBrowserInfo","render","h","CoreProvider","i18n","loadingContext","CustomCardInput","ref","handleKeyPress","onChange","setState","onBinValue","implementationType","onFocus","super","args","_define_property","card","triggerBinLookUp","event","AnalyticsInfoEvent","focus","ANALYTICS_FOCUS_STR","ANALYTICS_UNFOCUS_STR","target","fieldTypeToSnakeCase","fieldType","submitAnalytics","onEnterKeyPressed","activeElement","component","analyticsType","defaultProps"],"mappings":"oyBAcO,MAAMA,UAAmBC,EAY5BC,WAAAA,CAAYC,GACR,MAAO,IACAA,EACHC,KAAMC,EAAWC,WAEzB,CAKAC,UAAAA,GACI,MAAMC,EAAUC,KAAKC,MAAMC,mBAC3B,MAAO,CACHC,cAAe,CACXR,KAAM,YACHK,KAAKC,MAAMG,QACVL,GAAW,CAAEM,MAAON,IAE5BO,YAAaN,KAAKM,YAClBC,SAAUC,QAAUA,OAAOC,SAASF,OAE5C,CAEAG,YAAAA,CAAaC,GAET,OADIX,KAAKY,cAAcF,cAAcV,KAAKY,aAAaF,aAAaC,GAC7DX,IACX,CAEAa,UAAAA,CAAWC,GAEP,OADId,KAAKY,cAAcC,YAAYb,KAAKY,aAAaC,WAAWC,GACzDd,IACX,CAEAe,wBAAAA,CAAyBC,GAErB,OADIhB,KAAKY,cAAcG,0BAA0Bf,KAAKY,aAAaG,yBAAyBC,GACrFhB,IACX,CAEAiB,yBAAAA,CAA0BC,GAEtB,OADIlB,KAAKY,cAAcK,2BAA2BjB,KAAKY,aAAaK,0BAA0BC,GACvFlB,IACX,CAEAmB,qBAAAA,CAAsBC,GAElB,OADIpB,KAAKY,cAAcO,uBAAuBnB,KAAKY,aAAaO,sBAAsBC,GAC/EpB,IACX,CAEAqB,WAAAA,CAAYC,GACR,MAAMC,EAAQ,IAAKD,GACnBC,EAAMC,SAAWxB,KAAKyB,MAEjBF,EAAMG,UAEPH,EAAMI,mBAAqBL,EAAIK,oBAAoBC,KAAKC,IACpDA,EAAKC,cAAgB9B,KAAKN,MAAMqC,oBAAoBF,EAAKxB,QAAQ2B,MAAQC,EAAgBJ,EAAKxB,MAAOL,KAAKkC,WACnGL,MAIf7B,KAAKN,MAAM2B,YAAYE,EAC3B,CAIA,WAAIY,GACA,QAASnC,KAAKC,MAAMkC,OACxB,CAEA,eAAI7B,GACA,OAAO8B,GACX,CAkBAC,MAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAMxC,KAAKN,MAAM8C,KAAMC,eAAgBzC,KAAKN,MAAM+C,eAAgBP,UAAWlC,KAAKkC,WAC5FI,EAACI,EAAAA,CACGC,IAAKA,IACD3C,KAAKY,aAAe+B,CAAAA,KAEpB3C,KAAKN,SACLM,KAAKC,MACT2C,eAAgB5C,KAAK4C,eACrBpB,SAAUxB,KAAKyB,MACfoB,SAAU7C,KAAK8C,SACfC,WAAY/C,KAAK+C,WACjBC,mBAAoB,SACpBd,UAAWlC,KAAKkC,UAChB7B,MAAOL,KAAKK,MACZ4C,QAASjD,KAAKiD,UAI9B,mBAzHGC,SAAAC,GAUHC,EAAQ/C,KAAAA,QAAQT,EAAWyD,MAiE3BD,EAAApD,KAAO+C,aAAaO,EAAiBtD,OAUrCoD,EAAQH,KAAAA,WAAW3B,IACf,MAAMiC,EAAQ,IAAIC,EAAmB,CACjC7D,MAAoB,IAAd2B,EAAImC,MAAiBC,EAAsBC,EACjDC,OAAQC,EAAqBvC,EAAIwC,aAGrC9D,KAAK+D,gBAAgBR,GAGrBvD,KAAKN,MAAMuD,UAAU3B,EAAAA,IAGzB8B,EAAApD,KAAUgE,qBAAoB,CAACC,EAAwBC,KACnDlE,KAAKN,MAAMsE,oBAAoBC,EAAeC,EAAAA,KAjGlDd,EADS7D,EACKI,OAAOC,EAAWC,YAEhCuD,EAHS7D,EAGK4E,gBAAgB,iBAE9Bf,EALS7D,EAKQ6E,eAAe,CAC5B/C,YAAa,OACbU,oBAAqB,CAAA"}
@@ -1,2 +1,2 @@
1
- import{Component as t,createElement as e,Fragment as s}from"../../../external/preact/dist/preact.js";import o from"./PaymentMethod/PaymentMethodList.js";import n from"./status/index.js";import a from"../../../core/Services/order-status.js";import{sanitizeOrder as r}from"../../internal/UIElement/utils.js";import{ANALYTICS_RENDERED_STR as i,InfoEventTypes as h,ANALYTICS_EVENT as d}from"../../../core/Analytics/constants.js";import p from"../../../core/Errors/AdyenCheckoutError.js";import m from"../../internal/Button/Button.js";function l(t,e,s){return e in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}class c extends t{componentDidMount(){this.prepareDropinData()}get analyticConfigData(){return{openFirstStoredPaymentMethod:this.props.openFirstStoredPaymentMethod,showStoredPaymentMethods:this.props.showStoredPaymentMethods}}componentDidUpdate(t,e){e.status.type!==this.state.status.type&&this.state.activePaymentMethod&&this.state.activePaymentMethod.setStatus(this.state.status.type),"ready"===this.state.status.type&&"ready"!==e.status.type&&this.props.onReady&&this.props.onReady()}closeActivePaymentMethod(){this.setState({activePaymentMethod:null})}render(){const{elements:t,fastlanePaymentElement:a,instantPaymentElements:r,storedPaymentElements:i,status:h,activePaymentMethod:d,cachedPaymentMethods:p,showDefaultPaymentMethodList:l}=this.state,c="loading"===h.type,y="redirect"===h.type,u=!!(t?.length||r?.length||i?.length);switch(h.type){case"success":return e(n.Success,{message:0===this.props?.amount?.value?"resultMessages.preauthorized":h.props?.message});case"error":return e(n.Error,{message:h.props?.message});case"custom":return h.props?.component?.render();default:return e("div",{className:`adyen-checkout__dropin adyen-checkout__dropin--${h.type}`},y&&h.props.component&&h.props.component.render(),c&&h.props&&h.props.component&&h.props.component.render(),!l&&e(s,null,e(o,{isLoading:c,paymentMethods:a,activePaymentMethod:d,cachedPaymentMethods:p,onSelect:this.handleOnSelectPaymentMethod,openFirstPaymentMethod:!0,showRadioButton:this.props.showRadioButton}),u&&e(m,{classNameModifiers:["dropin-show-paymentmethods"],variant:"link",inline:!0,label:"Other payment methods",onClick:this.onShowDefaultPaymentMethodListClick})),u&&l&&e(o,{isLoading:c||y,isDisablingPaymentMethod:this.state.isDisabling,paymentMethods:t,instantPaymentMethods:r,storedPaymentMethods:i,activePaymentMethod:d,cachedPaymentMethods:p,order:this.props.order,orderStatus:this.state.orderStatus,onOrderCancel:this.onOrderCancel,onSelect:this.handleOnSelectPaymentMethod,openPaymentMethod:this.props.openPaymentMethod,openFirstPaymentMethod:this.props.openFirstPaymentMethod,openFirstStoredPaymentMethod:this.props.openFirstStoredPaymentMethod,onDisableStoredPaymentMethod:this.handleDisableStoredPaymentMethod,showRemovePaymentMethodButton:this.props.showRemovePaymentMethodButton,showRadioButton:this.props.showRadioButton}))}}constructor(...t){super(...t),l(this,"state",{elements:[],fastlanePaymentElement:[],instantPaymentElements:[],storedPaymentElements:[],orderStatus:null,isDisabling:!1,status:{type:"loading",props:void 0},activePaymentMethod:null,cachedPaymentMethods:{},showDefaultPaymentMethodList:!0}),l(this,"prepareDropinData",(()=>{const{order:t,clientKey:e,loadingContext:s}=this.props,[o,n,r,h]=this.props.onCreateElements(),d=t?a({clientKey:e,loadingContext:s},t):null;Promise.all([o,n,r,h,d]).then((([t,e,s,o,n])=>{this.setState({orderStatus:n,elements:e,instantPaymentElements:s,storedPaymentElements:t,fastlanePaymentElement:o,showDefaultPaymentMethodList:0===o.length}),this.setStatus("ready"),this.props.modules?.analytics.sendAnalytics("dropin",{type:i,configData:this.analyticConfigData})})),this.onOrderCancel=this.getOnOrderCancel()})),l(this,"setStatus",((t,e={})=>{this.setState({status:{type:t,props:e}})})),l(this,"setActivePaymentMethod",(t=>{t!==this.state.activePaymentMethod&&(this.setState((e=>({activePaymentMethod:t,cachedPaymentMethods:{...e.cachedPaymentMethods,[t._id]:!0}}))),this.state.cachedPaymentMethods[t._id]&&t.activate())})),l(this,"handleOnSelectPaymentMethod",(t=>{const{activePaymentMethod:e}=this.state;this.setActivePaymentMethod(t),(e&&e._id!==t._id||!e)&&(this.props.onSelect?.(t),t.submitAnalytics({type:i}))})),l(this,"handleDisableStoredPaymentMethod",(t=>{this.setState({isDisabling:!0}),new Promise(((e,s)=>this.props.onDisableStoredPaymentMethod(t.props.storedPaymentMethodId,e,s))).then((()=>{this.setState((e=>({storedPaymentElements:e.storedPaymentElements.filter((e=>e._id!==t._id))}))),this.setState({isDisabling:!1})})).catch((()=>{this.setState({isDisabling:!1})}))})),l(this,"onShowDefaultPaymentMethodListClick",(()=>{this.setState({showDefaultPaymentMethodList:!0}),this.props.modules?.analytics.sendAnalytics("dropin",{type:d.info,infoType:h.clicked,target:"otherpaymentmethod_button"})})),l(this,"getOnOrderCancel",(()=>this.props.onOrderCancel?t=>{const e=r(t.order);new Promise(((t,s)=>{this.props.onOrderCancel({order:e},{resolve:t,reject:s})})).then((({amount:t})=>this.props.elementRef.handleAdvanceFlowPaymentMethodsUpdate(null,t))).catch((t=>{throw new p("NETWORK_ERROR",t)}))}:this.props.session?t=>this.props.session.cancelOrder(t).then((()=>this.props.core.update({order:null}))).catch((t=>{console.error(t),this.setStatus(t?.message||"error")})):null)),l(this,"onOrderCancel",void 0)}}export{c as DropinComponent,c as default};
1
+ import{Component as t,createElement as e,Fragment as s}from"../../../external/preact/dist/preact.js";import o from"./PaymentMethod/PaymentMethodList.js";import n from"./status/index.js";import a from"../../../core/Services/order-status.js";import{sanitizeOrder as r}from"../../internal/UIElement/utils.js";import{ANALYTICS_RENDERED_STR as i,InfoEventTypes as h}from"../../../core/Analytics/constants.js";import d from"../../../core/Errors/AdyenCheckoutError.js";import m from"../../internal/Button/Button.js";import{AnalyticsInfoEvent as p}from"../../../core/Analytics/AnalyticsInfoEvent.js";function l(t,e,s){return e in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}class c extends t{componentDidMount(){this.prepareDropinData()}get analyticConfigData(){return{openFirstStoredPaymentMethod:this.props.openFirstStoredPaymentMethod,showStoredPaymentMethods:this.props.showStoredPaymentMethods}}componentDidUpdate(t,e){e.status.type!==this.state.status.type&&this.state.activePaymentMethod&&this.state.activePaymentMethod.setStatus(this.state.status.type),"ready"===this.state.status.type&&"ready"!==e.status.type&&this.props.onReady&&this.props.onReady()}closeActivePaymentMethod(){this.setState({activePaymentMethod:null})}render(){const{elements:t,fastlanePaymentElement:a,instantPaymentElements:r,storedPaymentElements:i,status:h,activePaymentMethod:d,cachedPaymentMethods:p,showDefaultPaymentMethodList:l}=this.state,c="loading"===h.type,y="redirect"===h.type,u=!!(t?.length||r?.length||i?.length);switch(h.type){case"success":return e(n.Success,{message:0===this.props?.amount?.value?"resultMessages.preauthorized":h.props?.message});case"error":return e(n.Error,{message:h.props?.message});case"custom":return h.props?.component?.render();default:return e("div",{className:`adyen-checkout__dropin adyen-checkout__dropin--${h.type}`},y&&h.props.component&&h.props.component.render(),c&&h.props&&h.props.component&&h.props.component.render(),!l&&e(s,null,e(o,{isLoading:c,paymentMethods:a,activePaymentMethod:d,cachedPaymentMethods:p,onSelect:this.handleOnSelectPaymentMethod,openFirstPaymentMethod:!0,showRadioButton:this.props.showRadioButton}),u&&e(m,{classNameModifiers:["dropin-show-paymentmethods"],variant:"link",inline:!0,label:"Other payment methods",onClick:this.onShowDefaultPaymentMethodListClick})),u&&l&&e(o,{isLoading:c||y,isDisablingPaymentMethod:this.state.isDisabling,paymentMethods:t,instantPaymentMethods:r,storedPaymentMethods:i,activePaymentMethod:d,cachedPaymentMethods:p,order:this.props.order,orderStatus:this.state.orderStatus,onOrderCancel:this.onOrderCancel,onSelect:this.handleOnSelectPaymentMethod,openPaymentMethod:this.props.openPaymentMethod,openFirstPaymentMethod:this.props.openFirstPaymentMethod,openFirstStoredPaymentMethod:this.props.openFirstStoredPaymentMethod,onDisableStoredPaymentMethod:this.handleDisableStoredPaymentMethod,showRemovePaymentMethodButton:this.props.showRemovePaymentMethodButton,showRadioButton:this.props.showRadioButton}))}}constructor(...t){super(...t),l(this,"state",{elements:[],fastlanePaymentElement:[],instantPaymentElements:[],storedPaymentElements:[],orderStatus:null,isDisabling:!1,status:{type:"loading",props:void 0},activePaymentMethod:null,cachedPaymentMethods:{},showDefaultPaymentMethodList:!0}),l(this,"prepareDropinData",(()=>{const{order:t,clientKey:e,loadingContext:s}=this.props,[o,n,r,h]=this.props.onCreateElements(),d=t?a({clientKey:e,loadingContext:s},t):null;Promise.all([o,n,r,h,d]).then((([t,e,s,o,n])=>{this.setState({orderStatus:n,elements:e,instantPaymentElements:s,storedPaymentElements:t,fastlanePaymentElement:o,showDefaultPaymentMethodList:0===o.length}),this.setStatus("ready");const a=new p({type:i,component:"dropin",configData:this.analyticConfigData});this.props.modules?.analytics.sendAnalytics(a)})),this.onOrderCancel=this.getOnOrderCancel()})),l(this,"setStatus",((t,e={})=>{this.setState({status:{type:t,props:e}})})),l(this,"setActivePaymentMethod",(t=>{t!==this.state.activePaymentMethod&&(this.setState((e=>({activePaymentMethod:t,cachedPaymentMethods:{...e.cachedPaymentMethods,[t._id]:!0}}))),this.state.cachedPaymentMethods[t._id]&&t.activate())})),l(this,"handleOnSelectPaymentMethod",(t=>{const{activePaymentMethod:e}=this.state;if(this.setActivePaymentMethod(t),e&&e._id!==t._id||!e){this.props.onSelect?.(t);const e=new p({type:i});t.submitAnalytics(e)}})),l(this,"handleDisableStoredPaymentMethod",(t=>{this.setState({isDisabling:!0}),new Promise(((e,s)=>this.props.onDisableStoredPaymentMethod(t.props.storedPaymentMethodId,e,s))).then((()=>{this.setState((e=>({storedPaymentElements:e.storedPaymentElements.filter((e=>e._id!==t._id))}))),this.setState({isDisabling:!1})})).catch((()=>{this.setState({isDisabling:!1})}))})),l(this,"onShowDefaultPaymentMethodListClick",(()=>{this.setState({showDefaultPaymentMethodList:!0});const t=new p({type:h.clicked,target:"otherpaymentmethod_button",component:"dropin"});this.props.modules?.analytics.sendAnalytics(t)})),l(this,"getOnOrderCancel",(()=>this.props.onOrderCancel?t=>{const e=r(t.order);new Promise(((t,s)=>{this.props.onOrderCancel({order:e},{resolve:t,reject:s})})).then((({amount:t})=>this.props.elementRef.handleAdvanceFlowPaymentMethodsUpdate(null,t))).catch((t=>{throw new d("NETWORK_ERROR",t)}))}:this.props.session?t=>this.props.session.cancelOrder(t).then((()=>this.props.core.update({order:null}))).catch((t=>{console.error(t),this.setStatus(t?.message||"error")})):null)),l(this,"onOrderCancel",void 0)}}export{c as DropinComponent,c as default};
2
2
  //# sourceMappingURL=DropinComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropinComponent.js","sources":["../../../../../src/components/Dropin/components/DropinComponent.tsx"],"sourcesContent":["import { Component, Fragment, h } from 'preact';\nimport PaymentMethodList from './PaymentMethod/PaymentMethodList';\nimport Status from './status';\nimport getOrderStatus from '../../../core/Services/order-status';\nimport './DropinComponent.scss';\nimport { sanitizeOrder } from '../../internal/UIElement/utils';\nimport { PaymentAmount } from '../../../types/global-types';\nimport { ANALYTICS_EVENT, ANALYTICS_RENDERED_STR, InfoEventTypes } from '../../../core/Analytics/constants';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Button from '../../internal/Button';\nimport type { DropinComponentProps, DropinComponentState, DropinStatus, DropinStatusProps, onOrderCancelData } from '../types';\nimport UIElement from '../../internal/UIElement';\n\nexport class DropinComponent extends Component<DropinComponentProps, DropinComponentState> {\n public state: DropinComponentState = {\n elements: [],\n fastlanePaymentElement: [],\n instantPaymentElements: [],\n storedPaymentElements: [],\n orderStatus: null,\n isDisabling: false,\n status: { type: 'loading', props: undefined },\n activePaymentMethod: null,\n cachedPaymentMethods: {},\n showDefaultPaymentMethodList: true\n };\n\n componentDidMount() {\n this.prepareDropinData();\n }\n\n public prepareDropinData = () => {\n const { order, clientKey, loadingContext } = this.props;\n const [storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise] = this.props.onCreateElements();\n const orderStatusPromise = order ? getOrderStatus({ clientKey, loadingContext }, order) : null;\n\n void Promise.all([storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise, orderStatusPromise]).then(\n ([storedPaymentElements, elements, instantPaymentElements, fastlanePaymentElement, orderStatus]) => {\n this.setState({\n orderStatus,\n elements,\n instantPaymentElements,\n storedPaymentElements,\n fastlanePaymentElement,\n showDefaultPaymentMethodList: fastlanePaymentElement.length === 0\n });\n\n this.setStatus('ready');\n\n this.props.modules?.analytics.sendAnalytics('dropin', {\n type: ANALYTICS_RENDERED_STR,\n configData: this.analyticConfigData\n });\n }\n );\n\n this.onOrderCancel = this.getOnOrderCancel();\n };\n\n get analyticConfigData() {\n return {\n openFirstStoredPaymentMethod: this.props.openFirstStoredPaymentMethod,\n showStoredPaymentMethods: this.props.showStoredPaymentMethods\n };\n }\n\n public setStatus = (status: DropinStatus['type'], props: DropinStatusProps = {}) => {\n this.setState({ status: { type: status, props } });\n };\n\n private setActivePaymentMethod = (paymentMethod: UIElement): void => {\n if (paymentMethod === this.state.activePaymentMethod) {\n return;\n }\n\n this.setState(prevState => ({\n activePaymentMethod: paymentMethod,\n cachedPaymentMethods: { ...prevState.cachedPaymentMethods, [paymentMethod._id]: true }\n }));\n\n if (this.state.cachedPaymentMethods[paymentMethod._id]) {\n paymentMethod.activate();\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.status.type !== this.state.status.type && this.state.activePaymentMethod) {\n // @ts-ignore TODO: Drop-in has its own 'status' values ('custom' for ex) which differs from regular UIElementStatus. Need to investigate best way to define/use this status variable\n this.state.activePaymentMethod.setStatus(this.state.status.type);\n }\n\n if (this.state.status.type === 'ready' && prevState.status.type !== 'ready' && this.props.onReady) {\n this.props.onReady();\n }\n }\n\n private handleOnSelectPaymentMethod = paymentMethod => {\n const { activePaymentMethod } = this.state;\n\n this.setActivePaymentMethod(paymentMethod);\n\n // onSelect event\n if ((activePaymentMethod && activePaymentMethod._id !== paymentMethod._id) || !activePaymentMethod) {\n this.props.onSelect?.(paymentMethod);\n\n paymentMethod.submitAnalytics({ type: ANALYTICS_RENDERED_STR });\n }\n };\n\n private handleDisableStoredPaymentMethod = storedPaymentMethod => {\n this.setState({ isDisabling: true });\n\n new Promise((resolve, reject) => this.props.onDisableStoredPaymentMethod(storedPaymentMethod.props.storedPaymentMethodId, resolve, reject))\n .then(() => {\n this.setState(prevState => ({\n storedPaymentElements: prevState.storedPaymentElements.filter(pm => pm._id !== storedPaymentMethod._id)\n }));\n this.setState({ isDisabling: false });\n })\n .catch(() => {\n this.setState({ isDisabling: false });\n });\n };\n\n private readonly onShowDefaultPaymentMethodListClick = () => {\n this.setState({\n showDefaultPaymentMethodList: true\n });\n\n this.props.modules?.analytics.sendAnalytics('dropin', {\n type: ANALYTICS_EVENT.info,\n infoType: InfoEventTypes.clicked,\n target: 'otherpaymentmethod_button'\n });\n };\n\n closeActivePaymentMethod() {\n this.setState({ activePaymentMethod: null });\n }\n\n /**\n * getOnOrderCancel decides which onOrderCancel logic should be used, manual or sessions\n */\n private getOnOrderCancel = () => {\n if (this.props.onOrderCancel) {\n return (data: onOrderCancelData) => {\n const order = sanitizeOrder(data.order);\n new Promise<{ amount: PaymentAmount }>((resolve, reject) => {\n this.props.onOrderCancel({ order }, { resolve, reject });\n })\n .then(({ amount }) => this.props.elementRef.handleAdvanceFlowPaymentMethodsUpdate(null, amount))\n .catch(error => {\n throw new AdyenCheckoutError('NETWORK_ERROR', error);\n });\n };\n }\n if (this.props.session) {\n return (data: onOrderCancelData) =>\n this.props.session\n .cancelOrder(data)\n .then(() => this.props.core.update({ order: null }))\n .catch(error => {\n console.error(error);\n this.setStatus(error?.message || 'error');\n });\n }\n return null;\n };\n\n private onOrderCancel: (data: onOrderCancelData) => void;\n\n render() {\n const {\n elements,\n fastlanePaymentElement,\n instantPaymentElements,\n storedPaymentElements,\n status,\n activePaymentMethod,\n cachedPaymentMethods,\n showDefaultPaymentMethodList\n } = this.state;\n\n const isLoading = status.type === 'loading';\n const isRedirecting = status.type === 'redirect';\n const hasPaymentMethodsToBeDisplayed = !!(elements?.length || instantPaymentElements?.length || storedPaymentElements?.length);\n\n switch (status.type) {\n case 'success':\n return <Status.Success message={this.props?.amount?.value === 0 ? 'resultMessages.preauthorized' : status.props?.message} />;\n\n case 'error':\n return <Status.Error message={status.props?.message} />;\n\n case 'custom':\n return status.props?.component?.render();\n\n default:\n return (\n <div className={`adyen-checkout__dropin adyen-checkout__dropin--${status.type}`}>\n {isRedirecting && status.props.component && status.props.component.render()}\n {isLoading && status.props && status.props.component && status.props.component.render()}\n\n {!showDefaultPaymentMethodList && (\n <Fragment>\n <PaymentMethodList\n isLoading={isLoading}\n paymentMethods={fastlanePaymentElement}\n activePaymentMethod={activePaymentMethod}\n cachedPaymentMethods={cachedPaymentMethods}\n onSelect={this.handleOnSelectPaymentMethod}\n openFirstPaymentMethod\n showRadioButton={this.props.showRadioButton}\n />\n\n {hasPaymentMethodsToBeDisplayed && (\n <Button\n classNameModifiers={['dropin-show-paymentmethods']}\n variant=\"link\"\n inline\n label=\"Other payment methods\"\n onClick={this.onShowDefaultPaymentMethodListClick}\n />\n )}\n </Fragment>\n )}\n\n {hasPaymentMethodsToBeDisplayed && showDefaultPaymentMethodList && (\n <PaymentMethodList\n isLoading={isLoading || isRedirecting}\n isDisablingPaymentMethod={this.state.isDisabling}\n paymentMethods={elements}\n instantPaymentMethods={instantPaymentElements}\n storedPaymentMethods={storedPaymentElements}\n activePaymentMethod={activePaymentMethod}\n cachedPaymentMethods={cachedPaymentMethods}\n order={this.props.order}\n orderStatus={this.state.orderStatus}\n onOrderCancel={this.onOrderCancel}\n onSelect={this.handleOnSelectPaymentMethod}\n openPaymentMethod={this.props.openPaymentMethod}\n openFirstPaymentMethod={this.props.openFirstPaymentMethod}\n openFirstStoredPaymentMethod={this.props.openFirstStoredPaymentMethod}\n onDisableStoredPaymentMethod={this.handleDisableStoredPaymentMethod}\n showRemovePaymentMethodButton={this.props.showRemovePaymentMethodButton}\n showRadioButton={this.props.showRadioButton}\n />\n )}\n </div>\n );\n }\n }\n}\n\nexport default DropinComponent;\n"],"names":["DropinComponent","Component","componentDidMount","this","prepareDropinData","analyticConfigData","openFirstStoredPaymentMethod","props","showStoredPaymentMethods","componentDidUpdate","prevProps","prevState","status","type","state","activePaymentMethod","setStatus","onReady","closeActivePaymentMethod","setState","render","elements","fastlanePaymentElement","instantPaymentElements","storedPaymentElements","cachedPaymentMethods","showDefaultPaymentMethodList","isLoading","isRedirecting","hasPaymentMethodsToBeDisplayed","length","h","Status","Success","message","amount","value","Error","component","div","className","Fragment","PaymentMethodList","paymentMethods","onSelect","handleOnSelectPaymentMethod","openFirstPaymentMethod","showRadioButton","Button","classNameModifiers","variant","inline","label","onClick","onShowDefaultPaymentMethodListClick","isDisablingPaymentMethod","isDisabling","instantPaymentMethods","storedPaymentMethods","order","orderStatus","onOrderCancel","openPaymentMethod","onDisableStoredPaymentMethod","handleDisableStoredPaymentMethod","showRemovePaymentMethodButton","super","args","_define_property","undefined","clientKey","loadingContext","storedElementsPromises","elementsPromises","instantPaymentsPromises","fastlanePaymentElementPromise","onCreateElements","orderStatusPromise","getOrderStatus","Promise","all","then","modules","analytics","sendAnalytics","ANALYTICS_RENDERED_STR","configData","getOnOrderCancel","setActivePaymentMethod","paymentMethod","_id","activate","submitAnalytics","storedPaymentMethod","resolve","reject","storedPaymentMethodId","filter","pm","catch","ANALYTICS_EVENT","info","infoType","InfoEventTypes","clicked","target","data","sanitizeOrder","elementRef","handleAdvanceFlowPaymentMethodsUpdate","error","AdyenCheckoutError","session","cancelOrder","core","update","console"],"mappings":"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"}
1
+ {"version":3,"file":"DropinComponent.js","sources":["../../../../../src/components/Dropin/components/DropinComponent.tsx"],"sourcesContent":["import { Component, Fragment, h } from 'preact';\nimport PaymentMethodList from './PaymentMethod/PaymentMethodList';\nimport Status from './status';\nimport getOrderStatus from '../../../core/Services/order-status';\nimport './DropinComponent.scss';\nimport { sanitizeOrder } from '../../internal/UIElement/utils';\nimport { PaymentAmount } from '../../../types/global-types';\nimport { ANALYTICS_RENDERED_STR, InfoEventTypes } from '../../../core/Analytics/constants';\nimport AdyenCheckoutError from '../../../core/Errors/AdyenCheckoutError';\nimport Button from '../../internal/Button';\nimport type { DropinComponentProps, DropinComponentState, DropinStatus, DropinStatusProps, onOrderCancelData } from '../types';\nimport UIElement from '../../internal/UIElement';\nimport { AnalyticsInfoEvent } from '../../../core/Analytics/AnalyticsInfoEvent';\n\nexport class DropinComponent extends Component<DropinComponentProps, DropinComponentState> {\n public state: DropinComponentState = {\n elements: [],\n fastlanePaymentElement: [],\n instantPaymentElements: [],\n storedPaymentElements: [],\n orderStatus: null,\n isDisabling: false,\n status: { type: 'loading', props: undefined },\n activePaymentMethod: null,\n cachedPaymentMethods: {},\n showDefaultPaymentMethodList: true\n };\n\n componentDidMount() {\n this.prepareDropinData();\n }\n\n public prepareDropinData = () => {\n const { order, clientKey, loadingContext } = this.props;\n const [storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise] = this.props.onCreateElements();\n const orderStatusPromise = order ? getOrderStatus({ clientKey, loadingContext }, order) : null;\n\n void Promise.all([storedElementsPromises, elementsPromises, instantPaymentsPromises, fastlanePaymentElementPromise, orderStatusPromise]).then(\n ([storedPaymentElements, elements, instantPaymentElements, fastlanePaymentElement, orderStatus]) => {\n this.setState({\n orderStatus,\n elements,\n instantPaymentElements,\n storedPaymentElements,\n fastlanePaymentElement,\n showDefaultPaymentMethodList: fastlanePaymentElement.length === 0\n });\n\n this.setStatus('ready');\n\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_RENDERED_STR,\n component: 'dropin',\n configData: this.analyticConfigData\n });\n\n this.props.modules?.analytics.sendAnalytics(event);\n }\n );\n\n this.onOrderCancel = this.getOnOrderCancel();\n };\n\n get analyticConfigData() {\n return {\n openFirstStoredPaymentMethod: this.props.openFirstStoredPaymentMethod,\n showStoredPaymentMethods: this.props.showStoredPaymentMethods\n };\n }\n\n public setStatus = (status: DropinStatus['type'], props: DropinStatusProps = {}) => {\n this.setState({ status: { type: status, props } });\n };\n\n private setActivePaymentMethod = (paymentMethod: UIElement): void => {\n if (paymentMethod === this.state.activePaymentMethod) {\n return;\n }\n\n this.setState(prevState => ({\n activePaymentMethod: paymentMethod,\n cachedPaymentMethods: { ...prevState.cachedPaymentMethods, [paymentMethod._id]: true }\n }));\n\n if (this.state.cachedPaymentMethods[paymentMethod._id]) {\n paymentMethod.activate();\n }\n };\n\n componentDidUpdate(prevProps, prevState) {\n if (prevState.status.type !== this.state.status.type && this.state.activePaymentMethod) {\n // @ts-ignore TODO: Drop-in has its own 'status' values ('custom' for ex) which differs from regular UIElementStatus. Need to investigate best way to define/use this status variable\n this.state.activePaymentMethod.setStatus(this.state.status.type);\n }\n\n if (this.state.status.type === 'ready' && prevState.status.type !== 'ready' && this.props.onReady) {\n this.props.onReady();\n }\n }\n\n private handleOnSelectPaymentMethod = paymentMethod => {\n const { activePaymentMethod } = this.state;\n\n this.setActivePaymentMethod(paymentMethod);\n\n // onSelect event\n if ((activePaymentMethod && activePaymentMethod._id !== paymentMethod._id) || !activePaymentMethod) {\n this.props.onSelect?.(paymentMethod);\n\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_RENDERED_STR\n });\n\n paymentMethod.submitAnalytics(event);\n }\n };\n\n private handleDisableStoredPaymentMethod = storedPaymentMethod => {\n this.setState({ isDisabling: true });\n\n new Promise((resolve, reject) => this.props.onDisableStoredPaymentMethod(storedPaymentMethod.props.storedPaymentMethodId, resolve, reject))\n .then(() => {\n this.setState(prevState => ({\n storedPaymentElements: prevState.storedPaymentElements.filter(pm => pm._id !== storedPaymentMethod._id)\n }));\n this.setState({ isDisabling: false });\n })\n .catch(() => {\n this.setState({ isDisabling: false });\n });\n };\n\n private readonly onShowDefaultPaymentMethodListClick = () => {\n this.setState({\n showDefaultPaymentMethodList: true\n });\n\n const event = new AnalyticsInfoEvent({\n type: InfoEventTypes.clicked,\n target: 'otherpaymentmethod_button',\n component: 'dropin'\n });\n\n this.props.modules?.analytics.sendAnalytics(event);\n };\n\n closeActivePaymentMethod() {\n this.setState({ activePaymentMethod: null });\n }\n\n /**\n * getOnOrderCancel decides which onOrderCancel logic should be used, manual or sessions\n */\n private getOnOrderCancel = () => {\n if (this.props.onOrderCancel) {\n return (data: onOrderCancelData) => {\n const order = sanitizeOrder(data.order);\n new Promise<{ amount: PaymentAmount }>((resolve, reject) => {\n this.props.onOrderCancel({ order }, { resolve, reject });\n })\n .then(({ amount }) => this.props.elementRef.handleAdvanceFlowPaymentMethodsUpdate(null, amount))\n .catch(error => {\n throw new AdyenCheckoutError('NETWORK_ERROR', error);\n });\n };\n }\n if (this.props.session) {\n return (data: onOrderCancelData) =>\n this.props.session\n .cancelOrder(data)\n .then(() => this.props.core.update({ order: null }))\n .catch(error => {\n console.error(error);\n this.setStatus(error?.message || 'error');\n });\n }\n return null;\n };\n\n private onOrderCancel: (data: onOrderCancelData) => void;\n\n render() {\n const {\n elements,\n fastlanePaymentElement,\n instantPaymentElements,\n storedPaymentElements,\n status,\n activePaymentMethod,\n cachedPaymentMethods,\n showDefaultPaymentMethodList\n } = this.state;\n\n const isLoading = status.type === 'loading';\n const isRedirecting = status.type === 'redirect';\n const hasPaymentMethodsToBeDisplayed = !!(elements?.length || instantPaymentElements?.length || storedPaymentElements?.length);\n\n switch (status.type) {\n case 'success':\n return <Status.Success message={this.props?.amount?.value === 0 ? 'resultMessages.preauthorized' : status.props?.message} />;\n\n case 'error':\n return <Status.Error message={status.props?.message} />;\n\n case 'custom':\n return status.props?.component?.render();\n\n default:\n return (\n <div className={`adyen-checkout__dropin adyen-checkout__dropin--${status.type}`}>\n {isRedirecting && status.props.component && status.props.component.render()}\n {isLoading && status.props && status.props.component && status.props.component.render()}\n\n {!showDefaultPaymentMethodList && (\n <Fragment>\n <PaymentMethodList\n isLoading={isLoading}\n paymentMethods={fastlanePaymentElement}\n activePaymentMethod={activePaymentMethod}\n cachedPaymentMethods={cachedPaymentMethods}\n onSelect={this.handleOnSelectPaymentMethod}\n openFirstPaymentMethod\n showRadioButton={this.props.showRadioButton}\n />\n\n {hasPaymentMethodsToBeDisplayed && (\n <Button\n classNameModifiers={['dropin-show-paymentmethods']}\n variant=\"link\"\n inline\n label=\"Other payment methods\"\n onClick={this.onShowDefaultPaymentMethodListClick}\n />\n )}\n </Fragment>\n )}\n\n {hasPaymentMethodsToBeDisplayed && showDefaultPaymentMethodList && (\n <PaymentMethodList\n isLoading={isLoading || isRedirecting}\n isDisablingPaymentMethod={this.state.isDisabling}\n paymentMethods={elements}\n instantPaymentMethods={instantPaymentElements}\n storedPaymentMethods={storedPaymentElements}\n activePaymentMethod={activePaymentMethod}\n cachedPaymentMethods={cachedPaymentMethods}\n order={this.props.order}\n orderStatus={this.state.orderStatus}\n onOrderCancel={this.onOrderCancel}\n onSelect={this.handleOnSelectPaymentMethod}\n openPaymentMethod={this.props.openPaymentMethod}\n openFirstPaymentMethod={this.props.openFirstPaymentMethod}\n openFirstStoredPaymentMethod={this.props.openFirstStoredPaymentMethod}\n onDisableStoredPaymentMethod={this.handleDisableStoredPaymentMethod}\n showRemovePaymentMethodButton={this.props.showRemovePaymentMethodButton}\n showRadioButton={this.props.showRadioButton}\n />\n )}\n </div>\n );\n }\n }\n}\n\nexport default DropinComponent;\n"],"names":["DropinComponent","Component","componentDidMount","this","prepareDropinData","analyticConfigData","openFirstStoredPaymentMethod","props","showStoredPaymentMethods","componentDidUpdate","prevProps","prevState","status","type","state","activePaymentMethod","setStatus","onReady","closeActivePaymentMethod","setState","render","elements","fastlanePaymentElement","instantPaymentElements","storedPaymentElements","cachedPaymentMethods","showDefaultPaymentMethodList","isLoading","isRedirecting","hasPaymentMethodsToBeDisplayed","length","h","Status","Success","message","amount","value","Error","component","div","className","Fragment","PaymentMethodList","paymentMethods","onSelect","handleOnSelectPaymentMethod","openFirstPaymentMethod","showRadioButton","Button","classNameModifiers","variant","inline","label","onClick","onShowDefaultPaymentMethodListClick","isDisablingPaymentMethod","isDisabling","instantPaymentMethods","storedPaymentMethods","order","orderStatus","onOrderCancel","openPaymentMethod","onDisableStoredPaymentMethod","handleDisableStoredPaymentMethod","showRemovePaymentMethodButton","super","args","_define_property","undefined","clientKey","loadingContext","storedElementsPromises","elementsPromises","instantPaymentsPromises","fastlanePaymentElementPromise","onCreateElements","orderStatusPromise","getOrderStatus","Promise","all","then","event","AnalyticsInfoEvent","ANALYTICS_RENDERED_STR","configData","modules","analytics","sendAnalytics","getOnOrderCancel","setActivePaymentMethod","paymentMethod","_id","activate","submitAnalytics","storedPaymentMethod","resolve","reject","storedPaymentMethodId","filter","pm","catch","InfoEventTypes","clicked","target","data","sanitizeOrder","elementRef","handleAdvanceFlowPaymentMethodsUpdate","error","AdyenCheckoutError","session","cancelOrder","core","update","console"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{Component as e,createElement as t}from"../../../../../external/preact/dist/preact.js";import o from"../../../../../_virtual/index.js";import n from"../PaymentMethodDetails.js";import a from"../PaymentMethodIcon.js";import i from"../DisableOneClickConfirmation.js";import s from"../PaymentMethodBrands/PaymentMethodBrands.js";import{BRAND_ICON_UI_EXCLUSION_LIST as d}from"../../../../internal/SecuredFields/lib/constants.js";import r from"../PaymentMethodName.js";import{useCoreContext as m}from"../../../../../core/Context/CoreProvider.js";import h from"../../../../internal/ExpandButton/ExpandButton.js";function l(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}class p extends e{render({paymentMethod:e,isSelected:l,isDisablingPaymentMethod:p,isLoaded:c,isLoading:y,standalone:u,showRadioButton:b}){const{i18n:f}=m();if(!e)return null;const _="card"===e.props.type||"scheme"===e.props.type,k=o({"adyen-checkout__payment-method":!0,[`adyen-checkout__payment-method--${e.props.type}`]:!0,..._&&{[`adyen-checkout__payment-method--${e.props.fundingSource??"credit"}`]:!0},"adyen-checkout__payment-method--selected":l,"adyen-checkout__payment-method--loading":y,"adyen-checkout__payment-method--disabling":p,"adyen-checkout__payment-method--confirming":this.state.showDisableStoredPaymentMethodConfirmation,"adyen-checkout__payment-method--standalone":u,[e._id]:!0,[this.props.className]:!0}),C=this.props.showRemovePaymentMethodButton&&e.props.oneClick&&l,M=`remove-${e._id}`,P=`container-${e._id}`,D=`button-${e._id}`,S=!e.props.oneClick&&e.brands&&e.brands.length>0;return t("div",{key:e._id,className:k,onClick:this.handleOnListItemClick},t("div",{className:"adyen-checkout__payment-method__header"},t(h,{buttonId:D,showRadioButton:b,isSelected:l,expandContentId:P},t(a,{...e.props.oneClick&&{altDescription:e.props.name},type:e.type,src:e.icon}),t(r,{displayName:e.displayName,isSelected:l,additionalInfo:e.additionalInfo})),C&&t("button",{type:"button",className:"adyen-checkout__button adyen-checkout__button--inline adyen-checkout__button--link",onClick:this.toggleDisableConfirmation,"aria-expanded":this.state.showDisableStoredPaymentMethodConfirmation,"aria-controls":M},f.get("storedPaymentMethod.disable.button")),S&&t(s,{showOtherInsteafOfNumber:e.props.showOtherInsteafOfNumber,keepBrandsVisible:e.props.keepBrandsVisible,brands:e.brands,excludedUIBrands:d,isPaymentMethodSelected:l})),t("div",{className:"adyen-checkout-pm-details-wrapper","aria-hidden":!l},t("div",{className:"adyen-checkout__payment-method__details",id:P},C&&t(i,{id:M,open:this.state.showDisableStoredPaymentMethodConfirmation,onDisable:this.onDisableStoredPaymentMethod,onCancel:this.toggleDisableConfirmation}),t(n,{paymentMethodComponent:e.render(),isLoaded:c}))))}constructor(...e){super(...e),l(this,"state",{showDisableStoredPaymentMethodConfirmation:!1}),l(this,"toggleDisableConfirmation",(()=>{this.setState({showDisableStoredPaymentMethodConfirmation:!this.state.showDisableStoredPaymentMethodConfirmation})})),l(this,"onDisableStoredPaymentMethod",(()=>{this.props.onDisableStoredPaymentMethod(this.props.paymentMethod),this.toggleDisableConfirmation()})),l(this,"handleOnListItemClick",(()=>{const{onSelect:e,paymentMethod:t}=this.props;e(t)}))}}l(p,"defaultProps",{paymentMethod:null,isSelected:!1,isLoaded:!1,isLoading:!1,showDisableStoredPaymentMethodConfirmation:!1,showRadioButton:!1});export{p as default};
1
+ import{Component as e,createElement as t}from"../../../../../external/preact/dist/preact.js";import o from"../../../../../_virtual/index.js";import n from"../PaymentMethodDetails.js";import a from"../PaymentMethodIcon.js";import i from"../DisableOneClickConfirmation.js";import s from"../PaymentMethodBrands/PaymentMethodBrands.js";import{BRAND_ICON_UI_EXCLUSION_LIST as d}from"../../../../internal/SecuredFields/lib/constants.js";import r from"../PaymentMethodName.js";import{useCoreContext as m}from"../../../../../core/Context/CoreProvider.js";import h from"../../../../internal/ExpandButton/ExpandButton.js";function l(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}class p extends e{render({paymentMethod:e,isSelected:l,isDisablingPaymentMethod:p,isLoaded:c,isLoading:y,standalone:u,showRadioButton:b}){const{i18n:f}=m();if(!e)return null;const _="card"===e.props.type||"scheme"===e.props.type,k=o({"adyen-checkout__payment-method":!0,[`adyen-checkout__payment-method--${e.props.type}`]:!0,..._&&{[`adyen-checkout__payment-method--${e.props.fundingSource??"credit"}`]:!0},"adyen-checkout__payment-method--selected":l,"adyen-checkout__payment-method--loading":y,"adyen-checkout__payment-method--disabling":p,"adyen-checkout__payment-method--confirming":this.state.showDisableStoredPaymentMethodConfirmation,"adyen-checkout__payment-method--standalone":u,[e._id]:!0,[this.props.className]:!0}),C=this.props.showRemovePaymentMethodButton&&e.props.oneClick&&l,M=`remove-${e._id}`,P=`container-${e._id}`,D=`button-${e._id}`,S=!e.props.oneClick&&e.brands&&e.brands.length>0;return t("div",{key:e._id,className:k,onClick:this.handleOnListItemClick},t("div",{className:"adyen-checkout__payment-method__header"},t(h,{buttonId:D,showRadioButton:b,isSelected:l,expandContentId:P,standalone:u},t(a,{...e.props.oneClick&&{altDescription:e.props.name},type:e.type,src:e.icon}),t(r,{displayName:e.displayName,isSelected:l,additionalInfo:e.additionalInfo})),C&&t("button",{type:"button",className:"adyen-checkout__button adyen-checkout__button--inline adyen-checkout__button--link",onClick:this.toggleDisableConfirmation,"aria-expanded":this.state.showDisableStoredPaymentMethodConfirmation,"aria-controls":M},f.get("storedPaymentMethod.disable.button")),S&&t(s,{showOtherInsteafOfNumber:e.props.showOtherInsteafOfNumber,keepBrandsVisible:e.props.keepBrandsVisible,brands:e.brands,excludedUIBrands:d,isPaymentMethodSelected:l})),t("div",{className:"adyen-checkout-pm-details-wrapper","aria-hidden":!l},t("div",{className:"adyen-checkout__payment-method__details",id:P},C&&t(i,{id:M,open:this.state.showDisableStoredPaymentMethodConfirmation,onDisable:this.onDisableStoredPaymentMethod,onCancel:this.toggleDisableConfirmation}),t(n,{paymentMethodComponent:e.render(),isLoaded:c}))))}constructor(...e){super(...e),l(this,"state",{showDisableStoredPaymentMethodConfirmation:!1}),l(this,"toggleDisableConfirmation",(()=>{this.setState({showDisableStoredPaymentMethodConfirmation:!this.state.showDisableStoredPaymentMethodConfirmation})})),l(this,"onDisableStoredPaymentMethod",(()=>{this.props.onDisableStoredPaymentMethod(this.props.paymentMethod),this.toggleDisableConfirmation()})),l(this,"handleOnListItemClick",(()=>{const{onSelect:e,paymentMethod:t}=this.props;e(t)}))}}l(p,"defaultProps",{paymentMethod:null,isSelected:!1,isLoaded:!1,isLoading:!1,showDisableStoredPaymentMethodConfirmation:!1,showRadioButton:!1});export{p as default};
2
2
  //# sourceMappingURL=PaymentMethodItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentMethodItem.js","sources":["../../../../../../../src/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport PaymentMethodDetails from '../PaymentMethodDetails';\nimport PaymentMethodIcon from '../PaymentMethodIcon';\nimport DisableOneClickConfirmation from '../DisableOneClickConfirmation';\nimport './PaymentMethodItem.scss';\nimport UIElement from '../../../../internal/UIElement/UIElement';\nimport PaymentMethodBrands from '../PaymentMethodBrands/PaymentMethodBrands';\nimport { BRAND_ICON_UI_EXCLUSION_LIST } from '../../../../internal/SecuredFields/lib/constants';\nimport PaymentMethodName from '../PaymentMethodName';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport ExpandButton from '../../../../internal/ExpandButton';\n\nexport interface PaymentMethodItemProps {\n paymentMethod: UIElement;\n isSelected?: boolean;\n isLoaded?: boolean;\n isLoading?: boolean;\n isDisablingPaymentMethod: boolean;\n showRemovePaymentMethodButton: boolean;\n onDisableStoredPaymentMethod: (paymentMethod) => void;\n onSelect: (paymentMethod: UIElement) => void;\n standalone: boolean;\n className?: string;\n showRadioButton?: boolean;\n}\n\nclass PaymentMethodItem extends Component<PaymentMethodItemProps> {\n public static defaultProps = {\n paymentMethod: null,\n isSelected: false,\n isLoaded: false,\n isLoading: false,\n showDisableStoredPaymentMethodConfirmation: false,\n showRadioButton: false\n };\n\n public state = {\n showDisableStoredPaymentMethodConfirmation: false\n };\n\n public toggleDisableConfirmation = () => {\n this.setState({ showDisableStoredPaymentMethodConfirmation: !this.state.showDisableStoredPaymentMethodConfirmation });\n };\n\n public onDisableStoredPaymentMethod = () => {\n this.props.onDisableStoredPaymentMethod(this.props.paymentMethod);\n this.toggleDisableConfirmation();\n };\n\n private handleOnListItemClick = (): void => {\n const { onSelect, paymentMethod } = this.props;\n onSelect(paymentMethod);\n };\n\n // @ts-ignore need to refine the type for paymentMethod\n render({ paymentMethod, isSelected, isDisablingPaymentMethod, isLoaded, isLoading, standalone, showRadioButton }) {\n const { i18n } = useCoreContext();\n\n if (!paymentMethod) {\n return null;\n }\n\n const isCard = paymentMethod.props.type === 'card' || paymentMethod.props.type === 'scheme';\n\n const paymentMethodClassnames = classNames({\n 'adyen-checkout__payment-method': true,\n [`adyen-checkout__payment-method--${paymentMethod.props.type}`]: true,\n ...(isCard && { [`adyen-checkout__payment-method--${paymentMethod.props.fundingSource ?? 'credit'}`]: true }),\n 'adyen-checkout__payment-method--selected': isSelected,\n 'adyen-checkout__payment-method--loading': isLoading,\n 'adyen-checkout__payment-method--disabling': isDisablingPaymentMethod,\n 'adyen-checkout__payment-method--confirming': this.state.showDisableStoredPaymentMethodConfirmation,\n 'adyen-checkout__payment-method--standalone': standalone,\n [paymentMethod._id]: true,\n [this.props.className]: true\n });\n\n const showRemovePaymentMethodButton = this.props.showRemovePaymentMethodButton && paymentMethod.props.oneClick && isSelected;\n const disableConfirmationId = `remove-${paymentMethod._id}`;\n const containerId = `container-${paymentMethod._id}`;\n const buttonId = `button-${paymentMethod._id}`;\n\n const showBrands = !paymentMethod.props.oneClick && paymentMethod.brands && paymentMethod.brands.length > 0;\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div key={paymentMethod._id} className={paymentMethodClassnames} onClick={this.handleOnListItemClick}>\n <div className=\"adyen-checkout__payment-method__header\">\n <ExpandButton buttonId={buttonId} showRadioButton={showRadioButton} isSelected={isSelected} expandContentId={containerId}>\n <PaymentMethodIcon\n // Only add alt attribute to storedPaymentMethods (to avoid SR reading the PM name twice)\n {...(paymentMethod.props.oneClick && { altDescription: paymentMethod.props.name })}\n type={paymentMethod.type}\n src={paymentMethod.icon}\n />\n\n <PaymentMethodName\n displayName={paymentMethod.displayName}\n isSelected={isSelected}\n additionalInfo={paymentMethod.additionalInfo}\n />\n </ExpandButton>\n\n {showRemovePaymentMethodButton && (\n <button\n type=\"button\"\n className=\"adyen-checkout__button adyen-checkout__button--inline adyen-checkout__button--link\"\n onClick={this.toggleDisableConfirmation}\n aria-expanded={this.state.showDisableStoredPaymentMethodConfirmation}\n aria-controls={disableConfirmationId}\n >\n {i18n.get('storedPaymentMethod.disable.button')}\n </button>\n )}\n\n {showBrands && (\n <PaymentMethodBrands\n showOtherInsteafOfNumber={paymentMethod.props.showOtherInsteafOfNumber}\n keepBrandsVisible={paymentMethod.props.keepBrandsVisible}\n brands={paymentMethod.brands}\n excludedUIBrands={BRAND_ICON_UI_EXCLUSION_LIST}\n isPaymentMethodSelected={isSelected}\n />\n )}\n </div>\n\n <div className=\"adyen-checkout-pm-details-wrapper\" aria-hidden={!isSelected}>\n <div className=\"adyen-checkout__payment-method__details\" id={containerId}>\n {showRemovePaymentMethodButton && (\n <DisableOneClickConfirmation\n id={disableConfirmationId}\n open={this.state.showDisableStoredPaymentMethodConfirmation}\n onDisable={this.onDisableStoredPaymentMethod}\n onCancel={this.toggleDisableConfirmation}\n />\n )}\n\n <PaymentMethodDetails paymentMethodComponent={paymentMethod.render()} isLoaded={isLoaded} />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default PaymentMethodItem;\n"],"names":["PaymentMethodItem","Component","render","paymentMethod","isSelected","isDisablingPaymentMethod","isLoaded","isLoading","standalone","showRadioButton","i18n","useCoreContext","isCard","props","type","paymentMethodClassnames","classNames","fundingSource","this","state","showDisableStoredPaymentMethodConfirmation","_id","className","showRemovePaymentMethodButton","oneClick","disableConfirmationId","containerId","buttonId","showBrands","brands","length","h","div","key","onClick","handleOnListItemClick","ExpandButton","expandContentId","PaymentMethodIcon","altDescription","name","src","icon","PaymentMethodName","displayName","additionalInfo","button","toggleDisableConfirmation","aria-expanded","aria-controls","get","PaymentMethodBrands","showOtherInsteafOfNumber","keepBrandsVisible","excludedUIBrands","BRAND_ICON_UI_EXCLUSION_LIST","isPaymentMethodSelected","aria-hidden","id","DisableOneClickConfirmation","open","onDisable","onDisableStoredPaymentMethod","onCancel","PaymentMethodDetails","paymentMethodComponent","super","args","_define_property","setState","onSelect","defaultProps"],"mappings":"4tBA2BA,MAAMA,UAA0BC,EA6B5BC,MAAAA,EAAOC,cAAEA,EAAaC,WAAEA,EAAUC,yBAAEA,EAAwBC,SAAEA,EAAQC,UAAEA,EAASC,WAAEA,EAAUC,gBAAEA,IAC3F,MAAMC,KAAEA,GAASC,IAEjB,IAAKR,EACD,OAAO,KAGX,MAAMS,EAAsC,SAA7BT,EAAcU,MAAMC,MAAgD,WAA7BX,EAAcU,MAAMC,KAEpEC,EAA0BC,EAAW,CACvC,kCAAkC,EAClC,CAAC,mCAAmCb,EAAcU,MAAMC,SAAS,KAC7DF,GAAU,CAAE,CAAC,mCAAmCT,EAAcU,MAAMI,eAAiB,aAAa,GACtG,2CAA4Cb,EAC5C,0CAA2CG,EAC3C,4CAA6CF,EAC7C,6CAA8Ca,KAAKC,MAAMC,2CACzD,6CAA8CZ,EAC9C,CAACL,EAAckB,MAAM,EACrB,CAACH,KAAKL,MAAMS,YAAY,IAGtBC,EAAgCL,KAAKL,MAAMU,+BAAiCpB,EAAcU,MAAMW,UAAYpB,EAC5GqB,EAAwB,UAAUtB,EAAckB,MAChDK,EAAc,aAAavB,EAAckB,MACzCM,EAAW,UAAUxB,EAAckB,MAEnCO,GAAczB,EAAcU,MAAMW,UAAYrB,EAAc0B,QAAU1B,EAAc0B,OAAOC,OAAS,EAE1G,OAEIC,EAACC,MAAAA,CAAIC,IAAK9B,EAAckB,IAAKC,UAAWP,EAAyBmB,QAAShB,KAAKiB,uBAC3EJ,EAACC,MAAAA,CAAIV,UAAU,0CACXS,EAACK,EAAAA,CAAaT,SAAUA,EAAUlB,gBAAiBA,EAAiBL,WAAYA,EAAYiC,gBAAiBX,GACzGK,EAACO,EAAAA,IAEQnC,EAAcU,MAAMW,UAAY,CAAEe,eAAgBpC,EAAcU,MAAM2B,MAC3E1B,KAAMX,EAAcW,KACpB2B,IAAKtC,EAAcuC,OAGvBX,EAACY,EAAAA,CACGC,YAAazC,EAAcyC,YAC3BxC,WAAYA,EACZyC,eAAgB1C,EAAc0C,kBAIrCtB,GACGQ,EAACe,SAAAA,CACGhC,KAAK,SACLQ,UAAU,qFACVY,QAAShB,KAAK6B,0BACdC,gBAAe9B,KAAKC,MAAMC,2CAC1B6B,gBAAexB,GAEdf,EAAKwC,IAAI,uCAIjBtB,GACGG,EAACoB,EAAAA,CACGC,yBAA0BjD,EAAcU,MAAMuC,yBAC9CC,kBAAmBlD,EAAcU,MAAMwC,kBACvCxB,OAAQ1B,EAAc0B,OACtByB,iBAAkBC,EAClBC,wBAAyBpD,KAKrC2B,EAACC,MAAAA,CAAIV,UAAU,oCAAoCmC,eAAcrD,GAC7D2B,EAACC,MAAAA,CAAIV,UAAU,0CAA0CoC,GAAIhC,GACxDH,GACGQ,EAAC4B,EAAAA,CACGD,GAAIjC,EACJmC,KAAM1C,KAAKC,MAAMC,2CACjByC,UAAW3C,KAAK4C,6BAChBC,SAAU7C,KAAK6B,4BAIvBhB,EAACiC,EAAAA,CAAqBC,uBAAwB9D,EAAcD,SAAUI,SAAUA,MAKpG,mBApHJ4D,SAAAC,GAUIC,OAAOjD,QAAQ,CACXC,4CAA4C,IAGhDgD,OAAOrB,6BAA4B,KAC/B7B,KAAKmD,SAAS,CAAEjD,4CAA6CF,KAAKC,MAAMC,4CAA2C,IAGvHgD,OAAON,gCAA+B,KAClC5C,KAAKL,MAAMiD,6BAA6B5C,KAAKL,MAAMV,eACnDe,KAAK6B,2BAAyB,IAGlCqB,OAAQjC,yBAAwB,KAC5B,MAAMmC,SAAEA,EAAQnE,cAAEA,GAAkBe,KAAKL,MACzCyD,EAASnE,EAAAA,KAxBbiE,EADEpE,EACYuE,eAAe,CACzBpE,cAAe,KACfC,YAAY,EACZE,UAAU,EACVC,WAAW,EACXa,4CAA4C,EAC5CX,iBAAiB"}
1
+ {"version":3,"file":"PaymentMethodItem.js","sources":["../../../../../../../src/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.tsx"],"sourcesContent":["import { Component, h } from 'preact';\nimport classNames from 'classnames';\nimport PaymentMethodDetails from '../PaymentMethodDetails';\nimport PaymentMethodIcon from '../PaymentMethodIcon';\nimport DisableOneClickConfirmation from '../DisableOneClickConfirmation';\nimport './PaymentMethodItem.scss';\nimport UIElement from '../../../../internal/UIElement/UIElement';\nimport PaymentMethodBrands from '../PaymentMethodBrands/PaymentMethodBrands';\nimport { BRAND_ICON_UI_EXCLUSION_LIST } from '../../../../internal/SecuredFields/lib/constants';\nimport PaymentMethodName from '../PaymentMethodName';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport ExpandButton from '../../../../internal/ExpandButton';\n\nexport interface PaymentMethodItemProps {\n paymentMethod: UIElement;\n isSelected?: boolean;\n isLoaded?: boolean;\n isLoading?: boolean;\n isDisablingPaymentMethod: boolean;\n showRemovePaymentMethodButton: boolean;\n onDisableStoredPaymentMethod: (paymentMethod) => void;\n onSelect: (paymentMethod: UIElement) => void;\n standalone: boolean;\n className?: string;\n showRadioButton?: boolean;\n}\n\nclass PaymentMethodItem extends Component<PaymentMethodItemProps> {\n public static defaultProps = {\n paymentMethod: null,\n isSelected: false,\n isLoaded: false,\n isLoading: false,\n showDisableStoredPaymentMethodConfirmation: false,\n showRadioButton: false\n };\n\n public state = {\n showDisableStoredPaymentMethodConfirmation: false\n };\n\n public toggleDisableConfirmation = () => {\n this.setState({ showDisableStoredPaymentMethodConfirmation: !this.state.showDisableStoredPaymentMethodConfirmation });\n };\n\n public onDisableStoredPaymentMethod = () => {\n this.props.onDisableStoredPaymentMethod(this.props.paymentMethod);\n this.toggleDisableConfirmation();\n };\n\n private handleOnListItemClick = (): void => {\n const { onSelect, paymentMethod } = this.props;\n onSelect(paymentMethod);\n };\n\n // @ts-ignore need to refine the type for paymentMethod\n render({ paymentMethod, isSelected, isDisablingPaymentMethod, isLoaded, isLoading, standalone, showRadioButton }) {\n const { i18n } = useCoreContext();\n\n if (!paymentMethod) {\n return null;\n }\n\n const isCard = paymentMethod.props.type === 'card' || paymentMethod.props.type === 'scheme';\n\n const paymentMethodClassnames = classNames({\n 'adyen-checkout__payment-method': true,\n [`adyen-checkout__payment-method--${paymentMethod.props.type}`]: true,\n ...(isCard && { [`adyen-checkout__payment-method--${paymentMethod.props.fundingSource ?? 'credit'}`]: true }),\n 'adyen-checkout__payment-method--selected': isSelected,\n 'adyen-checkout__payment-method--loading': isLoading,\n 'adyen-checkout__payment-method--disabling': isDisablingPaymentMethod,\n 'adyen-checkout__payment-method--confirming': this.state.showDisableStoredPaymentMethodConfirmation,\n 'adyen-checkout__payment-method--standalone': standalone,\n [paymentMethod._id]: true,\n [this.props.className]: true\n });\n\n const showRemovePaymentMethodButton = this.props.showRemovePaymentMethodButton && paymentMethod.props.oneClick && isSelected;\n const disableConfirmationId = `remove-${paymentMethod._id}`;\n const containerId = `container-${paymentMethod._id}`;\n const buttonId = `button-${paymentMethod._id}`;\n\n const showBrands = !paymentMethod.props.oneClick && paymentMethod.brands && paymentMethod.brands.length > 0;\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-static-element-interactions\n <div key={paymentMethod._id} className={paymentMethodClassnames} onClick={this.handleOnListItemClick}>\n <div className=\"adyen-checkout__payment-method__header\">\n <ExpandButton\n buttonId={buttonId}\n showRadioButton={showRadioButton}\n isSelected={isSelected}\n expandContentId={containerId}\n standalone={standalone}\n >\n <PaymentMethodIcon\n // Only add alt attribute to storedPaymentMethods (to avoid SR reading the PM name twice)\n {...(paymentMethod.props.oneClick && { altDescription: paymentMethod.props.name })}\n type={paymentMethod.type}\n src={paymentMethod.icon}\n />\n\n <PaymentMethodName\n displayName={paymentMethod.displayName}\n isSelected={isSelected}\n additionalInfo={paymentMethod.additionalInfo}\n />\n </ExpandButton>\n\n {showRemovePaymentMethodButton && (\n <button\n type=\"button\"\n className=\"adyen-checkout__button adyen-checkout__button--inline adyen-checkout__button--link\"\n onClick={this.toggleDisableConfirmation}\n aria-expanded={this.state.showDisableStoredPaymentMethodConfirmation}\n aria-controls={disableConfirmationId}\n >\n {i18n.get('storedPaymentMethod.disable.button')}\n </button>\n )}\n\n {showBrands && (\n <PaymentMethodBrands\n showOtherInsteafOfNumber={paymentMethod.props.showOtherInsteafOfNumber}\n keepBrandsVisible={paymentMethod.props.keepBrandsVisible}\n brands={paymentMethod.brands}\n excludedUIBrands={BRAND_ICON_UI_EXCLUSION_LIST}\n isPaymentMethodSelected={isSelected}\n />\n )}\n </div>\n\n <div className=\"adyen-checkout-pm-details-wrapper\" aria-hidden={!isSelected}>\n <div className=\"adyen-checkout__payment-method__details\" id={containerId}>\n {showRemovePaymentMethodButton && (\n <DisableOneClickConfirmation\n id={disableConfirmationId}\n open={this.state.showDisableStoredPaymentMethodConfirmation}\n onDisable={this.onDisableStoredPaymentMethod}\n onCancel={this.toggleDisableConfirmation}\n />\n )}\n\n <PaymentMethodDetails paymentMethodComponent={paymentMethod.render()} isLoaded={isLoaded} />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default PaymentMethodItem;\n"],"names":["PaymentMethodItem","Component","render","paymentMethod","isSelected","isDisablingPaymentMethod","isLoaded","isLoading","standalone","showRadioButton","i18n","useCoreContext","isCard","props","type","paymentMethodClassnames","classNames","fundingSource","this","state","showDisableStoredPaymentMethodConfirmation","_id","className","showRemovePaymentMethodButton","oneClick","disableConfirmationId","containerId","buttonId","showBrands","brands","length","h","div","key","onClick","handleOnListItemClick","ExpandButton","expandContentId","PaymentMethodIcon","altDescription","name","src","icon","PaymentMethodName","displayName","additionalInfo","button","toggleDisableConfirmation","aria-expanded","aria-controls","get","PaymentMethodBrands","showOtherInsteafOfNumber","keepBrandsVisible","excludedUIBrands","BRAND_ICON_UI_EXCLUSION_LIST","isPaymentMethodSelected","aria-hidden","id","DisableOneClickConfirmation","open","onDisable","onDisableStoredPaymentMethod","onCancel","PaymentMethodDetails","paymentMethodComponent","super","args","_define_property","setState","onSelect","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../external/preact/dist/preact.js";import t from"./PaymentMethodItem/PaymentMethodItem.js";import{useCoreContext as o}from"../../../../core/Context/CoreProvider.js";import{useMemo as a}from"../../../../external/preact/hooks/dist/hooks.js";import n from"../../../../utils/uuid.js";import s from"../../../../_virtual/index.js";function d({label:d,classNameModifiers:i=[],paymentMethods:m=[],activePaymentMethod:l=null,cachedPaymentMethods:r={},isLoading:c=!1,isDisablingPaymentMethod:h=!1,showRemovePaymentMethodButton:y,onDisableStoredPaymentMethod:p=()=>{},onSelect:u,showRadioButton:M}){const{i18n:_}=o(),P=a((()=>`select-${n()}`),[]),b=s(["adyen-checkout__payment-methods-list",{"adyen-checkout__payment-methods-list--loading":c},...i.map((e=>`adyen-checkout__payment-methods-list--${e}`))]);return e("div",{className:"adyen-checkout-payment-methods-container"},!!d&&e("label",{htmlFor:P,className:"adyen-checkout-payment-methods-list-label"},d),e("div",{id:P,className:b,role:"radiogroup","aria-label":_.get("paymentMethodsList.aria.label"),required:!0},m.map(((o,a,n)=>{const d=l&&l._id===o._id,i=o._id in r,_=l&&n[a+1]&&l._id===n[a+1]._id;return e(t,{className:s({"adyen-checkout__payment-method--next-selected":_}),standalone:1===m.length,paymentMethod:o,isSelected:d,isDisablingPaymentMethod:d&&h,isLoaded:i,isLoading:c,onSelect:u,key:o._id,showRemovePaymentMethodButton:y,showRadioButton:M,onDisableStoredPaymentMethod:p})}))))}export{d as default};
1
+ import{createElement as e}from"../../../../external/preact/dist/preact.js";import t from"./PaymentMethodItem/PaymentMethodItem.js";import{useCoreContext as o}from"../../../../core/Context/CoreProvider.js";import{useMemo as a}from"../../../../external/preact/hooks/dist/hooks.js";import d from"../../../../utils/uuid.js";import n from"../../../../_virtual/index.js";function s({label:s,classNameModifiers:i=[],paymentMethods:m=[],activePaymentMethod:l=null,cachedPaymentMethods:r={},isLoading:c=!1,isDisablingPaymentMethod:h=!1,showRemovePaymentMethodButton:y,onDisableStoredPaymentMethod:p=()=>{},onSelect:u,showRadioButton:M}){const{i18n:_}=o(),P=a((()=>`select-${d()}`),[]),b=n(["adyen-checkout__payment-methods-list",{"adyen-checkout__payment-methods-list--loading":c},...i.map((e=>`adyen-checkout__payment-methods-list--${e}`))]),f=1===m.length;return e("div",{className:"adyen-checkout-payment-methods-container"},!!s&&e("label",{htmlFor:P,className:"adyen-checkout-payment-methods-list-label"},s),e("div",{id:P,className:b,role:f?void 0:"radiogroup","aria-label":f?void 0:_.get("paymentMethodsList.aria.label"),required:!0},m.map(((o,a,d)=>{const s=l&&l._id===o._id,i=o._id in r,m=l&&d[a+1]&&l._id===d[a+1]._id;return e(t,{className:n({"adyen-checkout__payment-method--next-selected":m}),standalone:f,paymentMethod:o,isSelected:s,isDisablingPaymentMethod:s&&h,isLoaded:i,isLoading:c,onSelect:u,key:o._id,showRemovePaymentMethodButton:y,showRadioButton:M,onDisableStoredPaymentMethod:p})}))))}export{s as default};
2
2
  //# sourceMappingURL=PaymentMethodsContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentMethodsContainer.js","sources":["../../../../../../src/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport PaymentMethodItem from './PaymentMethodItem/PaymentMethodItem';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { useMemo } from 'preact/hooks';\nimport uuid from '../../../../utils/uuid';\nimport classNames from 'classnames';\nimport UIElement from '../../../internal/UIElement';\n\nexport interface PaymentMethodsContainerProps {\n label?: string;\n classNameModifiers?: string[];\n paymentMethods: UIElement[];\n activePaymentMethod?: UIElement;\n /**\n * Map that keeps track of which Payment methods (UIElements) already got rendered in the UI\n */\n cachedPaymentMethods: Record<string, boolean>;\n showRemovePaymentMethodButton?: boolean;\n onSelect?: (paymentMethod: UIElement) => void;\n onDisableStoredPaymentMethod?: (storedPaymentMethod) => void;\n isDisablingPaymentMethod?: boolean;\n isLoading: boolean;\n showRadioButton?: boolean;\n}\n\nfunction PaymentMethodsContainer({\n label,\n classNameModifiers = [],\n paymentMethods = [],\n activePaymentMethod = null,\n cachedPaymentMethods = {},\n isLoading = false,\n isDisablingPaymentMethod = false,\n showRemovePaymentMethodButton,\n onDisableStoredPaymentMethod = () => {},\n onSelect,\n showRadioButton\n}: Readonly<PaymentMethodsContainerProps>) {\n const { i18n } = useCoreContext();\n const selectListId: string = useMemo(() => `select-${uuid()}`, []);\n const paymentMethodListClassnames = classNames([\n 'adyen-checkout__payment-methods-list',\n { 'adyen-checkout__payment-methods-list--loading': isLoading },\n ...classNameModifiers.map(m => `adyen-checkout__payment-methods-list--${m}`)\n ]);\n\n return (\n <div className=\"adyen-checkout-payment-methods-container\">\n {!!label && (\n <label htmlFor={selectListId} className=\"adyen-checkout-payment-methods-list-label\">\n {label}\n </label>\n )}\n <div\n id={selectListId}\n className={paymentMethodListClassnames}\n role=\"radiogroup\"\n aria-label={i18n.get('paymentMethodsList.aria.label')}\n required\n >\n {paymentMethods.map((paymentMethod, index, paymentMethodsCollection) => {\n const isSelected = activePaymentMethod && activePaymentMethod._id === paymentMethod._id;\n const isLoaded = paymentMethod._id in cachedPaymentMethods;\n const isNextOneSelected =\n activePaymentMethod &&\n paymentMethodsCollection[index + 1] &&\n activePaymentMethod._id === paymentMethodsCollection[index + 1]._id;\n\n return (\n <PaymentMethodItem\n className={classNames({ 'adyen-checkout__payment-method--next-selected': isNextOneSelected })}\n standalone={paymentMethods.length === 1}\n paymentMethod={paymentMethod}\n isSelected={isSelected}\n isDisablingPaymentMethod={isSelected && isDisablingPaymentMethod}\n isLoaded={isLoaded}\n isLoading={isLoading}\n onSelect={onSelect}\n key={paymentMethod._id}\n showRemovePaymentMethodButton={showRemovePaymentMethodButton}\n showRadioButton={showRadioButton}\n onDisableStoredPaymentMethod={onDisableStoredPaymentMethod}\n />\n );\n })}\n </div>\n </div>\n );\n}\n\nexport default PaymentMethodsContainer;\n"],"names":["PaymentMethodsContainer","label","classNameModifiers","paymentMethods","activePaymentMethod","cachedPaymentMethods","isLoading","isDisablingPaymentMethod","showRemovePaymentMethodButton","onDisableStoredPaymentMethod","onSelect","showRadioButton","i18n","useCoreContext","selectListId","useMemo","uuid","paymentMethodListClassnames","classNames","map","m","h","div","className","htmlFor","id","role","aria-label","get","required","paymentMethod","index","paymentMethodsCollection","isSelected","_id","isLoaded","isNextOneSelected","PaymentMethodItem","standalone","length","key"],"mappings":"6WAyBA,SAASA,GAAwBC,MAC7BA,EAAKC,mBACLA,EAAqB,GAAEC,eACvBA,EAAiB,GAAEC,oBACnBA,EAAsB,KAAIC,qBAC1BA,EAAuB,CAAA,EAAEC,UACzBA,GAAY,EAAKC,yBACjBA,GAA2B,EAAKC,8BAChCA,EAA6BC,6BAC7BA,EAA+B,OAAQC,SACvCA,EAAQC,gBACRA,IAEA,MAAMC,KAAEA,GAASC,IACXC,EAAuBC,GAAQ,IAAM,UAAUC,OAAU,IACzDC,EAA8BC,EAAW,CAC3C,uCACA,CAAE,gDAAiDZ,MAChDJ,EAAmBiB,KAAIC,GAAK,yCAAyCA,QAG5E,OACIC,EAACC,MAAAA,CAAIC,UAAU,8CACRtB,GACCoB,EAACpB,QAAAA,CAAMuB,QAASV,EAAcS,UAAU,6CACnCtB,GAGToB,EAACC,MAAAA,CACGG,GAAIX,EACJS,UAAWN,EACXS,KAAK,aACLC,aAAYf,EAAKgB,IAAI,iCACrBC,UAAAA,GAEC1B,EAAegB,KAAI,CAACW,EAAeC,EAAOC,KACvC,MAAMC,EAAa7B,GAAuBA,EAAoB8B,MAAQJ,EAAcI,IAC9EC,EAAWL,EAAcI,OAAO7B,EAChC+B,EACFhC,GACA4B,EAAyBD,EAAQ,IACjC3B,EAAoB8B,MAAQF,EAAyBD,EAAQ,GAAGG,IAEpE,OACIb,EAACgB,EAAAA,CACGd,UAAWL,EAAW,CAAE,gDAAiDkB,IACzEE,WAAsC,IAA1BnC,EAAeoC,OAC3BT,cAAeA,EACfG,WAAYA,EACZ1B,yBAA0B0B,GAAc1B,EACxC4B,SAAUA,EACV7B,UAAWA,EACXI,SAAUA,EACV8B,IAAKV,EAAcI,IACnB1B,8BAA+BA,EAC/BG,gBAAiBA,EACjBF,6BAA8BA,QAO1D"}
1
+ {"version":3,"file":"PaymentMethodsContainer.js","sources":["../../../../../../src/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport PaymentMethodItem from './PaymentMethodItem/PaymentMethodItem';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport { useMemo } from 'preact/hooks';\nimport uuid from '../../../../utils/uuid';\nimport classNames from 'classnames';\nimport UIElement from '../../../internal/UIElement';\n\nexport interface PaymentMethodsContainerProps {\n label?: string;\n classNameModifiers?: string[];\n paymentMethods: UIElement[];\n activePaymentMethod?: UIElement;\n /**\n * Map that keeps track of which Payment methods (UIElements) already got rendered in the UI\n */\n cachedPaymentMethods: Record<string, boolean>;\n showRemovePaymentMethodButton?: boolean;\n onSelect?: (paymentMethod: UIElement) => void;\n onDisableStoredPaymentMethod?: (storedPaymentMethod) => void;\n isDisablingPaymentMethod?: boolean;\n isLoading: boolean;\n showRadioButton?: boolean;\n}\n\nfunction PaymentMethodsContainer({\n label,\n classNameModifiers = [],\n paymentMethods = [],\n activePaymentMethod = null,\n cachedPaymentMethods = {},\n isLoading = false,\n isDisablingPaymentMethod = false,\n showRemovePaymentMethodButton,\n onDisableStoredPaymentMethod = () => {},\n onSelect,\n showRadioButton\n}: Readonly<PaymentMethodsContainerProps>) {\n const { i18n } = useCoreContext();\n const selectListId: string = useMemo(() => `select-${uuid()}`, []);\n const paymentMethodListClassnames = classNames([\n 'adyen-checkout__payment-methods-list',\n { 'adyen-checkout__payment-methods-list--loading': isLoading },\n ...classNameModifiers.map(m => `adyen-checkout__payment-methods-list--${m}`)\n ]);\n\n const standalone = paymentMethods.length === 1;\n\n return (\n <div className=\"adyen-checkout-payment-methods-container\">\n {!!label && (\n <label htmlFor={selectListId} className=\"adyen-checkout-payment-methods-list-label\">\n {label}\n </label>\n )}\n <div\n id={selectListId}\n className={paymentMethodListClassnames}\n role={standalone ? undefined : 'radiogroup'}\n aria-label={standalone ? undefined : i18n.get('paymentMethodsList.aria.label')}\n required\n >\n {paymentMethods.map((paymentMethod, index, paymentMethodsCollection) => {\n const isSelected = activePaymentMethod && activePaymentMethod._id === paymentMethod._id;\n const isLoaded = paymentMethod._id in cachedPaymentMethods;\n const isNextOneSelected =\n activePaymentMethod &&\n paymentMethodsCollection[index + 1] &&\n activePaymentMethod._id === paymentMethodsCollection[index + 1]._id;\n\n return (\n <PaymentMethodItem\n className={classNames({ 'adyen-checkout__payment-method--next-selected': isNextOneSelected })}\n standalone={standalone}\n paymentMethod={paymentMethod}\n isSelected={isSelected}\n isDisablingPaymentMethod={isSelected && isDisablingPaymentMethod}\n isLoaded={isLoaded}\n isLoading={isLoading}\n onSelect={onSelect}\n key={paymentMethod._id}\n showRemovePaymentMethodButton={showRemovePaymentMethodButton}\n showRadioButton={showRadioButton}\n onDisableStoredPaymentMethod={onDisableStoredPaymentMethod}\n />\n );\n })}\n </div>\n </div>\n );\n}\n\nexport default PaymentMethodsContainer;\n"],"names":["PaymentMethodsContainer","label","classNameModifiers","paymentMethods","activePaymentMethod","cachedPaymentMethods","isLoading","isDisablingPaymentMethod","showRemovePaymentMethodButton","onDisableStoredPaymentMethod","onSelect","showRadioButton","i18n","useCoreContext","selectListId","useMemo","uuid","paymentMethodListClassnames","classNames","map","m","standalone","length","h","div","className","htmlFor","id","role","undefined","aria-label","get","required","paymentMethod","index","paymentMethodsCollection","isSelected","_id","isLoaded","isNextOneSelected","PaymentMethodItem","key"],"mappings":"6WAyBA,SAASA,GAAwBC,MAC7BA,EAAKC,mBACLA,EAAqB,GAAEC,eACvBA,EAAiB,GAAEC,oBACnBA,EAAsB,KAAIC,qBAC1BA,EAAuB,CAAA,EAAEC,UACzBA,GAAY,EAAKC,yBACjBA,GAA2B,EAAKC,8BAChCA,EAA6BC,6BAC7BA,EAA+B,OAAQC,SACvCA,EAAQC,gBACRA,IAEA,MAAMC,KAAEA,GAASC,IACXC,EAAuBC,GAAQ,IAAM,UAAUC,OAAU,IACzDC,EAA8BC,EAAW,CAC3C,uCACA,CAAE,gDAAiDZ,MAChDJ,EAAmBiB,KAAIC,GAAK,yCAAyCA,QAGtEC,EAAuC,IAA1BlB,EAAemB,OAElC,OACIC,EAACC,MAAAA,CAAIC,UAAU,8CACRxB,GACCsB,EAACtB,QAAAA,CAAMyB,QAASZ,EAAcW,UAAU,6CACnCxB,GAGTsB,EAACC,MAAAA,CACGG,GAAIb,EACJW,UAAWR,EACXW,KAAMP,OAAaQ,EAAY,aAC/BC,aAAYT,OAAaQ,EAAYjB,EAAKmB,IAAI,iCAC9CC,UAAAA,GAEC7B,EAAegB,KAAI,CAACc,EAAeC,EAAOC,KACvC,MAAMC,EAAahC,GAAuBA,EAAoBiC,MAAQJ,EAAcI,IAC9EC,EAAWL,EAAcI,OAAOhC,EAChCkC,EACFnC,GACA+B,EAAyBD,EAAQ,IACjC9B,EAAoBiC,MAAQF,EAAyBD,EAAQ,GAAGG,IAEpE,OACId,EAACiB,EAAAA,CACGf,UAAWP,EAAW,CAAE,gDAAiDqB,IACzElB,WAAYA,EACZY,cAAeA,EACfG,WAAYA,EACZ7B,yBAA0B6B,GAAc7B,EACxC+B,SAAUA,EACVhC,UAAWA,EACXI,SAAUA,EACV+B,IAAKR,EAAcI,IACnB7B,8BAA+BA,EAC/BG,gBAAiBA,EACjBF,6BAA8BA,QAO1D"}
@@ -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 o from"./GooglePayService.js";import s from"./components/GooglePayButton.js";import r from"./defaultProps.js";import{getGooglePayLocale as n,formatGooglePayContactToAdyenAddressFormat as i}from"./utils.js";import a from"../../utils/browserInfo.js";import h from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as l}from"../tx-variants.js";import{sanitizeResponse as p,verifyPaymentDidNotFail as d}from"../internal/UIElement/utils.js";import{ANALYTICS_INSTANT_PAYMENT_BUTTON as y,ANALYTICS_SELECTED_STR as u}from"../../core/Analytics/constants.js";function c(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}class g extends e{getPaymentMethodFromPaymentMethodsResponse(t){return this.core.paymentMethodsResponse.find(t||this.constructor.type)||this.core.paymentMethodsResponse.find(l.paywithgoogle)}formatProps(t){const e=t.buttonSizeMode??(t.isDropin?"fill":"static"),o=n(t.buttonLocale??t.i18n?.locale),s=[...t.callbackIntents,"PAYMENT_AUTHORIZATION"];return{...t,configuration:t.configuration,buttonSizeMode:e,buttonLocale:o,callbackIntents:s}}formatData(){const{googlePayCardNetwork:t,googlePayToken:e,billingAddress:o,deliveryAddress:s}=this.state,{isExpress:r}=this.props;return{paymentMethod:{type:this.type,googlePayCardNetwork:t,googlePayToken:e,...r&&{subtype:"express"}},browserInfo:this.browserInfo,origin:!!window&&window.location.origin,...o&&{billingAddress:o},...s&&{deliveryAddress:s}}}submitAnalytics(t){super.submitAnalytics({...t},this.props)}showGooglePayPaymentSheet(){this.googlePay.initiatePayment(this.props,this.core.options.countryCode).catch((t=>{this.handleError(new h("CANCELED"===t.statusCode?"CANCEL":"ERROR",t.toString(),{cause:t}))}))}async handleAuthorization(){return new Promise(((t,e)=>{this.props.onAuthorized||t();const{authorizedEvent:o,billingAddress:s,deliveryAddress:r}=this.state;this.props.onAuthorized({authorizedEvent:o,...s&&{billingAddress:s},...r&&{deliveryAddress:r}},{resolve:t,reject:e})})).catch((t=>{const e={error:{googlePayError:t}};return Promise.reject(e)}))}get isValid(){return!0}async isAvailable(){return this.isReadyToPay().then((t=>{if(!t.result)throw new h("ERROR","GooglePay is not available");if(!1===t.paymentMethodPresent)throw new h("ERROR","GooglePay - No paymentMethodPresent");return Promise.resolve()})).catch((t=>Promise.reject(t)))}get browserInfo(){return a()}get icon(){return this.props.icon??this.resources.getImage()("googlepay")}render(){return this.props.showPayButton?t(s,{buttonColor:this.props.buttonColor,buttonType:this.props.buttonType,buttonSizeMode:this.props.buttonSizeMode,buttonLocale:this.props.buttonLocale,buttonRootNode:this.props.buttonRootNode,buttonRadius:this.props.buttonRadius,paymentsClient:this.googlePay.paymentsClient,onClick:this.submit}):null}constructor(t,e){super(t,e),c(this,"googlePay",void 0),c(this,"submit",(()=>{this.props.isInstantPayment&&this.submitAnalytics({type:u,target:y}),new Promise(((t,e)=>this.props.onClick(t,e))).then(this.showGooglePayPaymentSheet).catch((()=>{}))})),c(this,"onPaymentAuthorized",(async t=>{const e=i(t.paymentMethodData.info.billingAddress),o=i(t.shippingAddress,!0);return this.setState({authorizedEvent:t,googlePayToken:t.paymentMethodData.tokenizationData.token,googlePayCardNetwork:t.paymentMethodData.info.cardNetwork,...e&&{billingAddress:e},...o&&{deliveryAddress:o}}),new Promise((t=>{this.handleAuthorization().then(this.makePaymentsCall).then(p).then(d).then((e=>(t({transactionState:"SUCCESS"}),e))).then((t=>{this.handleResponse(t)})).catch((e=>{this.setElementStatus("ready");const o=e?.error?.googlePayError,s=this.props.i18n.get("error.subtitle.payment"),r="string"==typeof o?{intent:"PAYMENT_AUTHORIZATION",reason:"OTHER_ERROR",message:o||s}:{intent:o?.intent||"PAYMENT_AUTHORIZATION",reason:o?.reason||"OTHER_ERROR",message:o?.message||s};t({transactionState:"ERROR",error:r});const n={...e,error:{googlePayError:r}};this.handleFailedResult(n)}))}))})),c(this,"isReadyToPay",(()=>this.googlePay.isReadyToPay(this.props))),c(this,"prefetch",(()=>this.googlePay.prefetchPaymentData(this.props,this.core.options.countryCode))),this.handleAuthorization=this.handleAuthorization.bind(this),this.showGooglePayPaymentSheet=this.showGooglePayPaymentSheet.bind(this);const{isExpress:s,paymentDataCallbacks:r}=this.props;if(!1===s&&r?.onPaymentDataChanged)throw new h("IMPLEMENTATION_ERROR",'GooglePay - You must set "isExpress" flag to "true" in order to use "onPaymentDataChanged" callback');if(!this.props.configuration.merchantId)throw new h("IMPLEMENTATION_ERROR","GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.");this.googlePay=new o(this.props.environment,{...s&&r?.onPaymentDataChanged&&{onPaymentDataChanged:r.onPaymentDataChanged},onPaymentAuthorized:this.onPaymentAuthorized})}}c(g,"type",l.googlepay),c(g,"txVariants",[l.googlepay,l.paywithgoogle]),c(g,"defaultProps",r);export{g as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./GooglePayService.js";import s from"./components/GooglePayButton.js";import r from"./defaultProps.js";import{getGooglePayLocale as n,formatGooglePayContactToAdyenAddressFormat as i}from"./utils.js";import a from"../../utils/browserInfo.js";import h from"../../core/Errors/AdyenCheckoutError.js";import{TxVariants as l}from"../tx-variants.js";import{sanitizeResponse as p,verifyPaymentDidNotFail as d}from"../internal/UIElement/utils.js";import{ANALYTICS_RENDERED_STR as y,ANALYTICS_INSTANT_PAYMENT_BUTTON as c,ANALYTICS_SELECTED_STR as u,ANALYTICS_EXPRESS_PAGES_ARRAY as g}from"../../core/Analytics/constants.js";import{AnalyticsInfoEvent as m}from"../../core/Analytics/AnalyticsInfoEvent.js";function P(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}class b extends e{getPaymentMethodFromPaymentMethodsResponse(t){return this.core.paymentMethodsResponse.find(t||this.constructor.type)||this.core.paymentMethodsResponse.find(l.paywithgoogle)}formatProps(t){const e=t.buttonSizeMode??(t.isDropin?"fill":"static"),o=n(t.buttonLocale??t.i18n?.locale),s=[...t.callbackIntents,"PAYMENT_AUTHORIZATION"];return{...t,configuration:t.configuration,buttonSizeMode:e,buttonLocale:o,callbackIntents:s}}formatData(){const{googlePayCardNetwork:t,googlePayToken:e,billingAddress:o,deliveryAddress:s}=this.state,{isExpress:r}=this.props;return{paymentMethod:{type:this.type,googlePayCardNetwork:t,googlePayToken:e,...r&&{subtype:"express"}},browserInfo:this.browserInfo,origin:!!window&&window.location.origin,...o&&{billingAddress:o},...s&&{deliveryAddress:s}}}submitAnalytics(t){if(t instanceof m&&t.type===y){const{isExpress:e,expressPage:o}=this.props,s=o&&g.includes(o);"boolean"==typeof e&&(t.isExpress=e),!0===e&&s&&(t.expressPage=o)}super.submitAnalytics(t)}showGooglePayPaymentSheet(){this.googlePay.initiatePayment(this.props,this.core.options.countryCode).catch((t=>{this.handleError(new h("CANCELED"===t.statusCode?"CANCEL":"ERROR",t.toString(),{cause:t}))}))}async handleAuthorization(){return new Promise(((t,e)=>{this.props.onAuthorized||t();const{authorizedEvent:o,billingAddress:s,deliveryAddress:r}=this.state;this.props.onAuthorized({authorizedEvent:o,...s&&{billingAddress:s},...r&&{deliveryAddress:r}},{resolve:t,reject:e})})).catch((t=>{const e={error:{googlePayError:t}};return Promise.reject(e)}))}get isValid(){return!0}async isAvailable(){return this.isReadyToPay().then((t=>{if(!t.result)throw new h("ERROR","GooglePay is not available");if(!1===t.paymentMethodPresent)throw new h("ERROR","GooglePay - No paymentMethodPresent");return Promise.resolve()})).catch((t=>Promise.reject(t)))}get browserInfo(){return a()}get icon(){return this.props.icon??this.resources.getImage()("googlepay")}render(){return this.props.showPayButton?t(s,{buttonColor:this.props.buttonColor,buttonType:this.props.buttonType,buttonSizeMode:this.props.buttonSizeMode,buttonLocale:this.props.buttonLocale,buttonRootNode:this.props.buttonRootNode,buttonRadius:this.props.buttonRadius,paymentsClient:this.googlePay.paymentsClient,onClick:this.submit}):null}constructor(t,e){super(t,e),P(this,"googlePay",void 0),P(this,"submit",(()=>{if(this.props.isInstantPayment){const t=new m({type:u,target:c});this.submitAnalytics(t)}new Promise(((t,e)=>this.props.onClick(t,e))).then(this.showGooglePayPaymentSheet).catch((()=>{}))})),P(this,"onPaymentAuthorized",(async t=>{const e=i(t.paymentMethodData.info.billingAddress),o=i(t.shippingAddress,!0);return this.setState({authorizedEvent:t,googlePayToken:t.paymentMethodData.tokenizationData.token,googlePayCardNetwork:t.paymentMethodData.info.cardNetwork,...e&&{billingAddress:e},...o&&{deliveryAddress:o}}),new Promise((t=>{this.handleAuthorization().then(this.makePaymentsCall).then(p).then(d).then((e=>(t({transactionState:"SUCCESS"}),e))).then((t=>{this.handleResponse(t)})).catch((e=>{this.setElementStatus("ready");const o=e?.error?.googlePayError,s=this.props.i18n.get("error.subtitle.payment"),r="string"==typeof o?{intent:"PAYMENT_AUTHORIZATION",reason:"OTHER_ERROR",message:o||s}:{intent:o?.intent||"PAYMENT_AUTHORIZATION",reason:o?.reason||"OTHER_ERROR",message:o?.message||s};t({transactionState:"ERROR",error:r});const n={...e,error:{googlePayError:r}};this.handleFailedResult(n)}))}))})),P(this,"isReadyToPay",(()=>this.googlePay.isReadyToPay(this.props))),P(this,"prefetch",(()=>this.googlePay.prefetchPaymentData(this.props,this.core.options.countryCode))),this.handleAuthorization=this.handleAuthorization.bind(this),this.showGooglePayPaymentSheet=this.showGooglePayPaymentSheet.bind(this);const{isExpress:s,paymentDataCallbacks:r}=this.props;if(!1===s&&r?.onPaymentDataChanged)throw new h("IMPLEMENTATION_ERROR",'GooglePay - You must set "isExpress" flag to "true" in order to use "onPaymentDataChanged" callback');if(!this.props.configuration.merchantId)throw new h("IMPLEMENTATION_ERROR","GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.");this.googlePay=new o(this.props.environment,{...s&&r?.onPaymentDataChanged&&{onPaymentDataChanged:r.onPaymentDataChanged},onPaymentAuthorized:this.onPaymentAuthorized})}}P(b,"type",l.googlepay),P(b,"txVariants",[l.googlepay,l.paywithgoogle]),P(b,"defaultProps",r);export{b as default};
2
2
  //# sourceMappingURL=GooglePay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GooglePay.js","sources":["../../../../src/components/GooglePay/GooglePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GooglePayService from './GooglePayService';\nimport GooglePayButton from './components/GooglePayButton';\nimport defaultProps from './defaultProps';\nimport { formatGooglePayContactToAdyenAddressFormat, getGooglePayLocale } from './utils';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport { ANALYTICS_INSTANT_PAYMENT_BUTTON, ANALYTICS_SELECTED_STR } from '../../core/Analytics/constants';\nimport { SendAnalyticsObject } from '../../core/Analytics/types';\n\nimport type { AddressData, BrowserInfo, PaymentMethod, PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\nimport type { GooglePayConfiguration } from './types';\nimport type { ICore } from '../../core/types';\n\nclass GooglePay extends UIElement<GooglePayConfiguration> {\n public static type = TxVariants.googlepay;\n public static txVariants = [TxVariants.googlepay, TxVariants.paywithgoogle];\n public static defaultProps = defaultProps;\n\n protected readonly googlePay;\n\n constructor(checkout: ICore, props?: GooglePayConfiguration) {\n super(checkout, props);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n this.showGooglePayPaymentSheet = this.showGooglePayPaymentSheet.bind(this);\n\n const { isExpress, paymentDataCallbacks } = this.props;\n\n if (isExpress === false && paymentDataCallbacks?.onPaymentDataChanged) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - You must set \"isExpress\" flag to \"true\" in order to use \"onPaymentDataChanged\" callback'\n );\n }\n\n if (!this.props.configuration.merchantId) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.'\n );\n }\n\n this.googlePay = new GooglePayService(this.props.environment, {\n ...(isExpress && paymentDataCallbacks?.onPaymentDataChanged && { onPaymentDataChanged: paymentDataCallbacks.onPaymentDataChanged }),\n onPaymentAuthorized: this.onPaymentAuthorized\n });\n }\n\n /**\n * Google Pay requires custom logic due to supporting two Tx variants that lead to the same payment method.\n * If the merchant creates a standalone Google Pay component, we need to verify if the payment method is available using both tx variants\n *\n * @param type\n * @returns\n */\n protected override getPaymentMethodFromPaymentMethodsResponse(type?: string): PaymentMethod {\n return (\n this.core.paymentMethodsResponse.find(type || this.constructor['type']) || this.core.paymentMethodsResponse.find(TxVariants.paywithgoogle)\n );\n }\n\n protected override formatProps(props): GooglePayConfiguration {\n const buttonSizeMode = props.buttonSizeMode ?? (props.isDropin ? 'fill' : 'static');\n const buttonLocale = getGooglePayLocale(props.buttonLocale ?? props.i18n?.locale);\n\n const callbackIntents: google.payments.api.CallbackIntent[] = [...props.callbackIntents, 'PAYMENT_AUTHORIZATION'];\n\n return {\n ...props,\n configuration: props.configuration,\n buttonSizeMode,\n buttonLocale,\n callbackIntents\n };\n }\n\n /**\n * Formats the component data output\n */\n protected override formatData() {\n const { googlePayCardNetwork, googlePayToken, billingAddress, deliveryAddress } = this.state;\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: this.type,\n googlePayCardNetwork,\n googlePayToken,\n ...(isExpress && { subtype: 'express' })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n protected submitAnalytics(analyticsObj: SendAnalyticsObject) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n super.submitAnalytics({ ...analyticsObj }, this.props);\n }\n\n /**\n * Displays the Google Pay payment sheet overlay\n */\n private showGooglePayPaymentSheet() {\n this.googlePay.initiatePayment(this.props, this.core.options.countryCode).catch((error: google.payments.api.PaymentsError) => {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n this.handleError(new AdyenCheckoutError(error.statusCode === 'CANCELED' ? 'CANCEL' : 'ERROR', error.toString(), { cause: error }));\n });\n }\n\n public override submit = () => {\n if (this.props.isInstantPayment) {\n this.submitAnalytics({ type: ANALYTICS_SELECTED_STR, target: ANALYTICS_INSTANT_PAYMENT_BUTTON });\n }\n\n new Promise<void>((resolve, reject) => this.props.onClick(resolve, reject)).then(this.showGooglePayPaymentSheet).catch(() => {\n // Swallow exception triggered by onClick reject\n });\n };\n\n /**\n * Method called when the payment is authorized in the payment sheet\n *\n * @see https://developers.google.com/pay/api/web/reference/client#onPaymentAuthorized\n **/\n private onPaymentAuthorized = async (paymentData: google.payments.api.PaymentData): Promise<google.payments.api.PaymentAuthorizationResult> => {\n const billingAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.paymentMethodData.info.billingAddress);\n const deliveryAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.shippingAddress, true);\n\n this.setState({\n authorizedEvent: paymentData,\n googlePayToken: paymentData.paymentMethodData.tokenizationData.token,\n googlePayCardNetwork: paymentData.paymentMethodData.info.cardNetwork,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<google.payments.api.PaymentAuthorizationResult>(resolve => {\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then((paymentResponse: PaymentResponseData) => {\n resolve({ transactionState: 'SUCCESS' });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n this.setElementStatus('ready');\n\n const googlePayError = paymentResponse?.error?.googlePayError;\n const fallbackMessage = this.props.i18n.get('error.subtitle.payment');\n\n const error: google.payments.api.PaymentDataError =\n typeof googlePayError === 'string' || undefined\n ? {\n intent: 'PAYMENT_AUTHORIZATION',\n reason: 'OTHER_ERROR',\n message: (googlePayError as string) || fallbackMessage\n }\n : {\n intent: googlePayError?.intent || 'PAYMENT_AUTHORIZATION',\n reason: googlePayError?.reason || 'OTHER_ERROR',\n message: googlePayError?.message || fallbackMessage\n };\n\n resolve({\n transactionState: 'ERROR',\n error\n });\n\n const responseWithError = {\n ...paymentResponse,\n error: {\n googlePayError: error\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n });\n };\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: google.payments.api.PaymentDataError | string) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { googlePayError: error } };\n return Promise.reject(data);\n });\n }\n\n public get isValid(): boolean {\n return true;\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public override async isAvailable(): Promise<void> {\n return this.isReadyToPay()\n .then(response => {\n if (!response.result) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay is not available');\n }\n\n if (response.paymentMethodPresent === false) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay - No paymentMethodPresent');\n }\n\n return Promise.resolve();\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public isReadyToPay = (): Promise<google.payments.api.IsReadyToPayResponse> => {\n return this.googlePay.isReadyToPay(this.props);\n };\n\n /**\n * Use this method to prefetch a PaymentDataRequest configuration to improve loadPaymentData execution time on later user interaction. No value is returned.\n */\n public prefetch = (): void => {\n return this.googlePay.prefetchPaymentData(this.props, this.core.options.countryCode);\n };\n\n get browserInfo(): BrowserInfo {\n return collectBrowserInfo();\n }\n\n get icon(): string {\n return this.props.icon ?? this.resources.getImage()('googlepay');\n }\n\n render() {\n if (this.props.showPayButton) {\n return (\n <GooglePayButton\n buttonColor={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonSizeMode={this.props.buttonSizeMode}\n buttonLocale={this.props.buttonLocale}\n buttonRootNode={this.props.buttonRootNode}\n buttonRadius={this.props.buttonRadius}\n paymentsClient={this.googlePay.paymentsClient}\n onClick={this.submit}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default GooglePay;\n"],"names":["GooglePay","UIElement","getPaymentMethodFromPaymentMethodsResponse","type","this","core","paymentMethodsResponse","find","constructor","TxVariants","paywithgoogle","formatProps","props","buttonSizeMode","isDropin","buttonLocale","getGooglePayLocale","i18n","locale","callbackIntents","configuration","formatData","googlePayCardNetwork","googlePayToken","billingAddress","deliveryAddress","state","isExpress","paymentMethod","subtype","browserInfo","origin","window","location","submitAnalytics","analyticsObj","super","showGooglePayPaymentSheet","googlePay","initiatePayment","options","countryCode","catch","error","handleError","AdyenCheckoutError","statusCode","toString","cause","handleAuthorization","Promise","resolve","reject","onAuthorized","authorizedEvent","data","googlePayError","isValid","isAvailable","isReadyToPay","then","response","result","paymentMethodPresent","collectBrowserInfo","icon","resources","getImage","render","showPayButton","h","GooglePayButton","buttonColor","buttonType","buttonRootNode","buttonRadius","paymentsClient","onClick","submit","checkout","_define_property","isInstantPayment","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","onPaymentAuthorized","async","paymentData","formatGooglePayContactToAdyenAddressFormat","paymentMethodData","info","shippingAddress","setState","tokenizationData","token","cardNetwork","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","paymentResponse","transactionState","handleResponse","setElementStatus","fallbackMessage","get","intent","reason","message","responseWithError","handleFailedResult","prefetch","prefetchPaymentData","bind","paymentDataCallbacks","onPaymentDataChanged","merchantId","GooglePayService","environment","googlepay","txVariants","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"GooglePay.js","sources":["../../../../src/components/GooglePay/GooglePay.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport GooglePayService from './GooglePayService';\nimport GooglePayButton from './components/GooglePayButton';\nimport defaultProps from './defaultProps';\nimport { formatGooglePayContactToAdyenAddressFormat, getGooglePayLocale } from './utils';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport { TxVariants } from '../tx-variants';\nimport { sanitizeResponse, verifyPaymentDidNotFail } from '../internal/UIElement/utils';\nimport {\n ANALYTICS_EXPRESS_PAGES_ARRAY,\n ANALYTICS_INSTANT_PAYMENT_BUTTON,\n ANALYTICS_RENDERED_STR,\n ANALYTICS_SELECTED_STR\n} from '../../core/Analytics/constants';\n\nimport type { AddressData, BrowserInfo, PaymentMethod, PaymentResponseData, RawPaymentResponse } from '../../types/global-types';\nimport type { GooglePayConfiguration } from './types';\nimport type { ICore } from '../../core/types';\nimport { AnalyticsInfoEvent } from '../../core/Analytics/AnalyticsInfoEvent';\nimport { AnalyticsEvent } from '../../core/Analytics/AnalyticsEvent';\n\nclass GooglePay extends UIElement<GooglePayConfiguration> {\n public static type = TxVariants.googlepay;\n public static txVariants = [TxVariants.googlepay, TxVariants.paywithgoogle];\n public static defaultProps = defaultProps;\n\n protected readonly googlePay;\n\n constructor(checkout: ICore, props?: GooglePayConfiguration) {\n super(checkout, props);\n this.handleAuthorization = this.handleAuthorization.bind(this);\n this.showGooglePayPaymentSheet = this.showGooglePayPaymentSheet.bind(this);\n\n const { isExpress, paymentDataCallbacks } = this.props;\n\n if (isExpress === false && paymentDataCallbacks?.onPaymentDataChanged) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - You must set \"isExpress\" flag to \"true\" in order to use \"onPaymentDataChanged\" callback'\n );\n }\n\n if (!this.props.configuration.merchantId) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'GooglePay - Missing merchantId. Please ensure that it is correctly configured in your customer area.'\n );\n }\n\n this.googlePay = new GooglePayService(this.props.environment, {\n ...(isExpress && paymentDataCallbacks?.onPaymentDataChanged && { onPaymentDataChanged: paymentDataCallbacks.onPaymentDataChanged }),\n onPaymentAuthorized: this.onPaymentAuthorized\n });\n }\n\n /**\n * Google Pay requires custom logic due to supporting two Tx variants that lead to the same payment method.\n * If the merchant creates a standalone Google Pay component, we need to verify if the payment method is available using both tx variants\n *\n * @param type\n * @returns\n */\n protected override getPaymentMethodFromPaymentMethodsResponse(type?: string): PaymentMethod {\n return (\n this.core.paymentMethodsResponse.find(type || this.constructor['type']) || this.core.paymentMethodsResponse.find(TxVariants.paywithgoogle)\n );\n }\n\n protected override formatProps(props): GooglePayConfiguration {\n const buttonSizeMode = props.buttonSizeMode ?? (props.isDropin ? 'fill' : 'static');\n const buttonLocale = getGooglePayLocale(props.buttonLocale ?? props.i18n?.locale);\n\n const callbackIntents: google.payments.api.CallbackIntent[] = [...props.callbackIntents, 'PAYMENT_AUTHORIZATION'];\n\n return {\n ...props,\n configuration: props.configuration,\n buttonSizeMode,\n buttonLocale,\n callbackIntents\n };\n }\n\n /**\n * Formats the component data output\n */\n protected override formatData() {\n const { googlePayCardNetwork, googlePayToken, billingAddress, deliveryAddress } = this.state;\n const { isExpress } = this.props;\n\n return {\n paymentMethod: {\n type: this.type,\n googlePayCardNetwork,\n googlePayToken,\n ...(isExpress && { subtype: 'express' })\n },\n browserInfo: this.browserInfo,\n origin: !!window && window.location.origin,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n };\n }\n\n protected submitAnalytics(analyticsObj: AnalyticsEvent) {\n // Analytics will need to know about this.props.isExpress & this.props.expressPage\n if (analyticsObj instanceof AnalyticsInfoEvent && analyticsObj.type === ANALYTICS_RENDERED_STR) {\n const { isExpress, expressPage } = this.props;\n const hasExpressPage = expressPage && ANALYTICS_EXPRESS_PAGES_ARRAY.includes(expressPage);\n\n if (typeof isExpress === 'boolean') {\n analyticsObj.isExpress = isExpress;\n }\n\n if (isExpress === true && hasExpressPage) {\n analyticsObj.expressPage = expressPage; // We only care about the expressPage value if isExpress is true\n }\n }\n\n super.submitAnalytics(analyticsObj);\n }\n\n /**\n * Displays the Google Pay payment sheet overlay\n */\n private showGooglePayPaymentSheet() {\n this.googlePay.initiatePayment(this.props, this.core.options.countryCode).catch((error: google.payments.api.PaymentsError) => {\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n this.handleError(new AdyenCheckoutError(error.statusCode === 'CANCELED' ? 'CANCEL' : 'ERROR', error.toString(), { cause: error }));\n });\n }\n\n public override submit = () => {\n if (this.props.isInstantPayment) {\n const event = new AnalyticsInfoEvent({\n type: ANALYTICS_SELECTED_STR,\n target: ANALYTICS_INSTANT_PAYMENT_BUTTON\n });\n\n this.submitAnalytics(event);\n }\n\n new Promise<void>((resolve, reject) => this.props.onClick(resolve, reject)).then(this.showGooglePayPaymentSheet).catch(() => {\n // Swallow exception triggered by onClick reject\n });\n };\n\n /**\n * Method called when the payment is authorized in the payment sheet\n *\n * @see https://developers.google.com/pay/api/web/reference/client#onPaymentAuthorized\n **/\n private onPaymentAuthorized = async (paymentData: google.payments.api.PaymentData): Promise<google.payments.api.PaymentAuthorizationResult> => {\n const billingAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.paymentMethodData.info.billingAddress);\n const deliveryAddress: AddressData = formatGooglePayContactToAdyenAddressFormat(paymentData.shippingAddress, true);\n\n this.setState({\n authorizedEvent: paymentData,\n googlePayToken: paymentData.paymentMethodData.tokenizationData.token,\n googlePayCardNetwork: paymentData.paymentMethodData.info.cardNetwork,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n });\n\n return new Promise<google.payments.api.PaymentAuthorizationResult>(resolve => {\n this.handleAuthorization()\n .then(this.makePaymentsCall)\n .then(sanitizeResponse)\n .then(verifyPaymentDidNotFail)\n .then((paymentResponse: PaymentResponseData) => {\n resolve({ transactionState: 'SUCCESS' });\n return paymentResponse;\n })\n .then(paymentResponse => {\n this.handleResponse(paymentResponse);\n })\n .catch((paymentResponse?: RawPaymentResponse) => {\n this.setElementStatus('ready');\n\n const googlePayError = paymentResponse?.error?.googlePayError;\n const fallbackMessage = this.props.i18n.get('error.subtitle.payment');\n\n const error: google.payments.api.PaymentDataError =\n typeof googlePayError === 'string' || undefined\n ? {\n intent: 'PAYMENT_AUTHORIZATION',\n reason: 'OTHER_ERROR',\n message: (googlePayError as string) || fallbackMessage\n }\n : {\n intent: googlePayError?.intent || 'PAYMENT_AUTHORIZATION',\n reason: googlePayError?.reason || 'OTHER_ERROR',\n message: googlePayError?.message || fallbackMessage\n };\n\n resolve({\n transactionState: 'ERROR',\n error\n });\n\n const responseWithError = {\n ...paymentResponse,\n error: {\n googlePayError: error\n }\n };\n\n this.handleFailedResult(responseWithError);\n });\n });\n };\n\n /**\n * Call the 'onAuthorized' callback if available.\n * Must be resolved/reject for the payment flow to continue\n */\n private async handleAuthorization(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (!this.props.onAuthorized) {\n resolve();\n }\n\n const { authorizedEvent, billingAddress, deliveryAddress } = this.state;\n\n this.props.onAuthorized(\n {\n authorizedEvent,\n ...(billingAddress && { billingAddress }),\n ...(deliveryAddress && { deliveryAddress })\n },\n { resolve, reject }\n );\n }).catch((error?: google.payments.api.PaymentDataError | string) => {\n // Format error in a way that the 'catch' of the 'onPaymentAuthorize' block accepts it\n const data = { error: { googlePayError: error } };\n return Promise.reject(data);\n });\n }\n\n public get isValid(): boolean {\n return true;\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public override async isAvailable(): Promise<void> {\n return this.isReadyToPay()\n .then(response => {\n if (!response.result) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay is not available');\n }\n\n if (response.paymentMethodPresent === false) {\n throw new AdyenCheckoutError('ERROR', 'GooglePay - No paymentMethodPresent');\n }\n\n return Promise.resolve();\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Determine a shopper's ability to return a form of payment from the Google Pay API.\n */\n public isReadyToPay = (): Promise<google.payments.api.IsReadyToPayResponse> => {\n return this.googlePay.isReadyToPay(this.props);\n };\n\n /**\n * Use this method to prefetch a PaymentDataRequest configuration to improve loadPaymentData execution time on later user interaction. No value is returned.\n */\n public prefetch = (): void => {\n return this.googlePay.prefetchPaymentData(this.props, this.core.options.countryCode);\n };\n\n get browserInfo(): BrowserInfo {\n return collectBrowserInfo();\n }\n\n get icon(): string {\n return this.props.icon ?? this.resources.getImage()('googlepay');\n }\n\n render() {\n if (this.props.showPayButton) {\n return (\n <GooglePayButton\n buttonColor={this.props.buttonColor}\n buttonType={this.props.buttonType}\n buttonSizeMode={this.props.buttonSizeMode}\n buttonLocale={this.props.buttonLocale}\n buttonRootNode={this.props.buttonRootNode}\n buttonRadius={this.props.buttonRadius}\n paymentsClient={this.googlePay.paymentsClient}\n onClick={this.submit}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default GooglePay;\n"],"names":["GooglePay","UIElement","getPaymentMethodFromPaymentMethodsResponse","type","this","core","paymentMethodsResponse","find","constructor","TxVariants","paywithgoogle","formatProps","props","buttonSizeMode","isDropin","buttonLocale","getGooglePayLocale","i18n","locale","callbackIntents","configuration","formatData","googlePayCardNetwork","googlePayToken","billingAddress","deliveryAddress","state","isExpress","paymentMethod","subtype","browserInfo","origin","window","location","submitAnalytics","analyticsObj","AnalyticsInfoEvent","ANALYTICS_RENDERED_STR","expressPage","hasExpressPage","ANALYTICS_EXPRESS_PAGES_ARRAY","includes","super","showGooglePayPaymentSheet","googlePay","initiatePayment","options","countryCode","catch","error","handleError","AdyenCheckoutError","statusCode","toString","cause","handleAuthorization","Promise","resolve","reject","onAuthorized","authorizedEvent","data","googlePayError","isValid","isAvailable","isReadyToPay","then","response","result","paymentMethodPresent","collectBrowserInfo","icon","resources","getImage","render","showPayButton","h","GooglePayButton","buttonColor","buttonType","buttonRootNode","buttonRadius","paymentsClient","onClick","submit","checkout","_define_property","isInstantPayment","event","ANALYTICS_SELECTED_STR","target","ANALYTICS_INSTANT_PAYMENT_BUTTON","onPaymentAuthorized","async","paymentData","formatGooglePayContactToAdyenAddressFormat","paymentMethodData","info","shippingAddress","setState","tokenizationData","token","cardNetwork","makePaymentsCall","sanitizeResponse","verifyPaymentDidNotFail","paymentResponse","transactionState","handleResponse","setElementStatus","fallbackMessage","get","intent","reason","message","responseWithError","handleFailedResult","prefetch","prefetchPaymentData","bind","paymentDataCallbacks","onPaymentDataChanged","merchantId","GooglePayService","environment","googlepay","txVariants","defaultProps"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{CoreProvider as e}from"../../core/Context/CoreProvider.js";import{TxVariants as s}from"../tx-variants.js";import{UIElement as i}from"../internal/UIElement/UIElement.js";import n from"../../core/Errors/SRPanelProvider.js";import r from"../internal/RedirectButton/RedirectButton.js";import o,{ERROR as a}from"../../core/Errors/AdyenCheckoutError.js";import{PasskeyService as p}from"./services/PasskeyService.js";import{authorizeEnrollment as d}from"./services/authorizeEnrollment.js";import{authorizePayment as h}from"./services/authorizePayment.js";import l from"./components/StoredPayment/StoredPayment.js";import c from"./components/Enrollment/Enrollment.js";function m(t,e,s){return e in t?Object.defineProperty(t,e,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[e]=s,t}class y extends i{get isValid(){return!(this.props._isAdyenHosted&&!this.props.storedPaymentMethodId)||!!this.state?.isValid}get additionalInfo(){return this.props.storedPaymentMethodId?this.props.i18n.get("paybybankpix.storedPayment.additionalLabel",{values:{receiver:this.props?.payByBankPixDetails?.receiver}}):""}get icon(){return this.props.storedPaymentMethodId?this.resources.getImage({parentFolder:`${y.type}/`})(this.props?.payByBankPixDetails?.ispb):super.icon}async isAvailable(){const t=await this.passkeyService.getWebAuthnUnsupportedReason();if(t)return Promise.reject(new o(a,t));if(!this.props._isAdyenHosted)return Promise.resolve();try{if(await this.passkeyService.initialize(),this.props.storedPaymentMethodId){return await this.passkeyService.canUseStoredCredential()?Promise.resolve():Promise.reject(new o("ERROR","The stored payment method is not available on this device"))}return Promise.resolve()}catch(t){return Promise.reject(t instanceof Error?t?.message:"Unknown error")}}handleAction(t,e={}){const s=this.core.createFromAction(t,{...this.elementRef.props,...e,onAdditionalDetails:this.handleAdditionalDetails});return s?(this.unmount(),s.isAvailable().then((()=>{s.mount(this._node)})),s):null}formatData(){if(!this.props._isAdyenHosted)return{paymentMethod:{type:s.paybybank_pix}};const t=null==this.props.storedPaymentMethodId;return{paymentMethod:{type:s.paybybank_pix,...this.state.data},...t?{storePaymentMethod:!0}:{}}}render(){return this.props._isAdyenHosted?t(e,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(n,{srPanel:this.props.modules.srPanel},null!=this.props.storedPaymentMethodId?t(l,{txVariant:y.type,type:this.props.type,clientKey:this.props.clientKey,amount:this.props.amount,issuer:this.props?.payByBankPixDetails?.ispb,receiver:this.props?.payByBankPixDetails?.receiver,enrollmentId:this.props.paymentMethodData?.enrollmentId,initiationId:this.props.paymentMethodData?.initiationId,setComponentRef:this.setComponentRef,onPay:this.payWithStoredPayment,onAuthorize:this.authorizePayment}):t(c,{onError:this.handleError,txVariant:y.type,type:this.props.type,clientKey:this.props.clientKey,enrollmentId:this.props.paymentMethodData?.enrollmentId,countdownTime:this.props.countdownTime,onEnroll:this.authorizeEnrollment,issuers:this.props.issuers,payButton:this.payButton,onChange:this.onIssuerSelected,onSubmitAnalytics:this.submitAnalytics,setComponentRef:this.setComponentRef}))):t(e,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(n,{srPanel:this.props.modules.srPanel},t(r,{showPayButton:this.props.showPayButton,name:this.displayName,label:this.props.i18n.get("paybybankpix.redirectBtn.label"),amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}})))}constructor(t,e){super(t,e),m(this,"passkeyService",void 0),m(this,"onIssuerSelected",(async t=>{try{const{data:e={}}=t;if(!e.issuer)return;const{deviceId:s,...i}=await this.passkeyService.captureRiskSignalsEnrollment();this.setState({...t,data:{...e,riskSignals:i,deviceId:s}})}catch(t){const e=t instanceof Error?t.message:"Unknown error in the onIssuerSelected";this.handleError(t instanceof o?t:new o(a,e))}})),m(this,"authorizeEnrollment",(async t=>{try{const e=await this.passkeyService.createCredentialForEnrollment(t),s={enrollmentId:this.props.paymentMethodData?.enrollmentId,fidoAssertion:e},{redirectResult:i}=await d({enrollment:s,clientKey:this.props.clientKey,loadingContext:this.props.loadingContext});this.handleAdditionalDetails({data:{details:{redirectResult:i}}})}catch(t){const e=t instanceof Error?t.message:"Unknown error in the authorizeEnrollment";this.handleError(t instanceof o?t:new o(a,e))}})),m(this,"payWithStoredPayment",(async()=>{try{const{deviceId:t,...e}=await this.passkeyService.captureRiskSignalsAuthentication();this.state={...this.state,data:{storedPaymentMethodId:this.props.storedPaymentMethodId,riskSignals:e,deviceId:t}},super.submit()}catch(t){const e=t instanceof Error?t.message:"Unknown error in the payWithStoredPayment";this.handleError(t instanceof o?t:new o(a,e))}})),m(this,"authorizePayment",(async t=>{try{const e=await this.passkeyService.authenticateWithCredential(t),s={enrollmentId:this.props.paymentMethodData?.enrollmentId,initiationId:this.props.paymentMethodData?.initiationId,fidoAssertion:e},{redirectResult:i}=await h({payment:s,clientKey:this.props.clientKey,loadingContext:this.props.loadingContext});this.handleAdditionalDetails({data:{details:{redirectResult:i}}})}catch(t){const e=t instanceof Error?t.message:"Unknown error in the authorizePayment";this.handleError(t instanceof o?t:new o(a,e))}}));const s=this.props.storedPaymentMethodId?this.props?.payByBankPixDetails?.deviceId:this.props.deviceId;this.passkeyService=new p({environment:this.props.environment,deviceId:s}),this.props._isAdyenHosted&&this.passkeyService.initialize()}}m(y,"type",s.paybybank_pix),m(y,"TIMEOUT_MINUTES",1),m(y,"defaultProps",{showPayButton:!0,_isAdyenHosted:(()=>{try{return new URL(window.location.href).hostname.endsWith(".adyen.com")}catch(t){return!1}})(),countdownTime:y.TIMEOUT_MINUTES});export{y as default};
2
+ //# sourceMappingURL=PayByBankPix.js.map