@adyen/adyen-web 6.22.0 → 6.23.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 (329) hide show
  1. package/README.md +8 -7
  2. package/dist/cjs/adyen.css +5 -4
  3. package/dist/cjs/adyen.css.map +1 -1
  4. package/dist/cjs/index.cjs +2 -2
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/index.d.cts +292 -117
  7. package/dist/es/adyen.css +5 -4
  8. package/dist/es/adyen.css.map +1 -1
  9. package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
  10. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  11. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  12. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  13. package/dist/es/components/ApplePay/ApplePay.js +1 -1
  14. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  15. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js +1 -1
  16. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  17. package/dist/es/components/BankTransfer/BankTransfer.js +1 -1
  18. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  19. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js +1 -1
  20. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  21. package/dist/es/components/Card/Card.js +1 -1
  22. package/dist/es/components/Card/Card.js.map +1 -1
  23. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  24. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  25. package/dist/es/components/Card/components/CardInput/defaultProps.js +1 -1
  26. package/dist/es/components/Card/components/CardInput/defaultProps.js.map +1 -1
  27. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  28. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  29. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js +1 -1
  30. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  31. package/dist/es/components/Card/constants.js +2 -0
  32. package/dist/es/components/Card/constants.js.map +1 -0
  33. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  34. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  35. package/dist/es/components/CashAppPay/services/CashAppSdkLoader.js +1 -1
  36. package/dist/es/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  37. package/dist/es/components/ClickToPay/ClickToPay.js +1 -1
  38. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  39. package/dist/es/components/Donation/components/FixedAmounts.js.map +1 -1
  40. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  41. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  42. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  43. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  44. package/dist/es/components/GooglePay/GooglePayService.js +1 -1
  45. package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
  46. package/dist/es/components/GooglePay/defaultProps.js +1 -1
  47. package/dist/es/components/GooglePay/defaultProps.js.map +1 -1
  48. package/dist/es/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js +2 -0
  49. package/dist/es/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js.map +1 -0
  50. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  51. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  52. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js +1 -1
  53. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  54. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  55. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  56. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  57. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  58. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js +1 -1
  59. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  60. package/dist/es/components/PayByBankPix/services/PasskeyService.js +1 -1
  61. package/dist/es/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  62. package/dist/es/components/PayPal/Paypal.js +1 -1
  63. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  64. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  65. package/dist/es/components/PayPal/components/PaypalComponent.js +1 -1
  66. package/dist/es/components/PayPal/components/PaypalComponent.js.map +1 -1
  67. package/dist/es/components/PayPalFastlane/FastlaneSDK.js +1 -1
  68. package/dist/es/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  69. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  70. package/dist/es/components/PayTo/components/PayIDInput.js +1 -1
  71. package/dist/es/components/PayTo/components/PayIDInput.js.map +1 -1
  72. package/dist/es/components/PayTo/components/PayToPhone.js +1 -1
  73. package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -1
  74. package/dist/es/components/PayTo/components/validate.js +1 -1
  75. package/dist/es/components/PayTo/components/validate.js.map +1 -1
  76. package/dist/es/components/Pix/Pix.js +1 -1
  77. package/dist/es/components/Pix/Pix.js.map +1 -1
  78. package/dist/es/components/Pix/components/PixInput/PixInput.js +2 -0
  79. package/dist/es/components/Pix/components/PixInput/PixInput.js.map +1 -0
  80. package/dist/es/components/Pix/components/PixInput/utils.js +2 -0
  81. package/dist/es/components/Pix/components/PixInput/utils.js.map +1 -0
  82. package/dist/es/components/Pix/components/PixInput/validate.js +2 -0
  83. package/dist/es/components/Pix/components/PixInput/validate.js.map +1 -0
  84. package/dist/es/components/Pix/components/PixQRDetails.js +2 -0
  85. package/dist/es/components/Pix/components/PixQRDetails.js.map +1 -0
  86. package/dist/es/components/UPI/UPI.js +1 -1
  87. package/dist/es/components/UPI/UPI.js.map +1 -1
  88. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  89. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  90. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  91. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  92. package/dist/es/components/internal/Button/Button.js +1 -1
  93. package/dist/es/components/internal/Button/Button.js.map +1 -1
  94. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js +1 -1
  95. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  96. package/dist/es/components/internal/ClickToPay/services/create-clicktopay-service.js +1 -1
  97. package/dist/es/components/internal/ClickToPay/services/create-clicktopay-service.js.map +1 -1
  98. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js +1 -1
  99. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  100. package/dist/es/components/internal/ClickToPay/services/sdks/MastercardSdk.js +1 -1
  101. package/dist/es/components/internal/ClickToPay/services/sdks/MastercardSdk.js.map +1 -1
  102. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js +1 -1
  103. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  104. package/dist/es/components/internal/ClickToPay/services/sdks/VisaSdk.js +1 -1
  105. package/dist/es/components/internal/ClickToPay/services/sdks/VisaSdk.js.map +1 -1
  106. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js +1 -1
  107. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  108. package/dist/es/components/internal/Countdown/index.js +1 -1
  109. package/dist/es/components/internal/Countdown/index.js.map +1 -1
  110. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  111. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  112. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  113. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  114. package/dist/es/components/internal/QRLoader/QRLoaderDetailsProvider.js +2 -0
  115. package/dist/es/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -0
  116. package/dist/es/components/internal/QRLoader/components/QRCodeCopyButton.js +2 -0
  117. package/dist/es/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -0
  118. package/dist/es/components/internal/QRLoader/components/QRCountdown.js +2 -0
  119. package/dist/es/components/internal/QRLoader/components/QRCountdown.js.map +1 -0
  120. package/dist/es/components/internal/QRLoader/components/QRDetails.js +2 -0
  121. package/dist/es/components/internal/QRLoader/components/QRDetails.js.map +1 -0
  122. package/dist/es/components/internal/QRLoader/components/QRImage.js +2 -0
  123. package/dist/es/components/internal/QRLoader/components/QRImage.js.map +1 -0
  124. package/dist/es/components/internal/QRLoader/components/QRIntructions.js +2 -0
  125. package/dist/es/components/internal/QRLoader/components/QRIntructions.js.map +1 -0
  126. package/dist/es/components/internal/QRLoader/components/QRProgressbar.js +2 -0
  127. package/dist/es/components/internal/QRLoader/components/QRProgressbar.js.map +1 -0
  128. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  129. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  130. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js +1 -1
  131. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  132. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  133. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  134. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  135. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  136. package/dist/es/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js +1 -1
  137. package/dist/es/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js.map +1 -1
  138. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  139. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  140. package/dist/es/components/tx-variants.js +1 -1
  141. package/dist/es/components/tx-variants.js.map +1 -1
  142. package/dist/es/core/Analytics/Analytics.js +1 -1
  143. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  144. package/dist/es/core/Analytics/AnalyticsInfoEvent.js +1 -1
  145. package/dist/es/core/Analytics/AnalyticsInfoEvent.js.map +1 -1
  146. package/dist/es/core/Analytics/constants.js +1 -1
  147. package/dist/es/core/Analytics/constants.js.map +1 -1
  148. package/dist/es/core/Analytics/useAnalytics.js +2 -0
  149. package/dist/es/core/Analytics/useAnalytics.js.map +1 -0
  150. package/dist/es/core/Context/CoreProvider.js +1 -1
  151. package/dist/es/core/Context/CoreProvider.js.map +1 -1
  152. package/dist/es/core/Environment/Environment.js.map +1 -1
  153. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  154. package/dist/es/core/Services/analytics/collect-id.js.map +1 -1
  155. package/dist/es/core/config.js +1 -1
  156. package/dist/es/core/config.js.map +1 -1
  157. package/dist/es/core/core.js +1 -1
  158. package/dist/es/core/core.js.map +1 -1
  159. package/dist/es/index.d.ts +292 -117
  160. package/dist/es/utils/Script.js +1 -1
  161. package/dist/es/utils/Script.js.map +1 -1
  162. package/dist/es-legacy/adyen.css +5 -4
  163. package/dist/es-legacy/adyen.css.map +1 -1
  164. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  165. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  166. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  167. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  168. package/dist/es-legacy/components/ApplePay/ApplePay.js +1 -1
  169. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  170. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js +1 -1
  171. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  172. package/dist/es-legacy/components/BankTransfer/BankTransfer.js +1 -1
  173. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  174. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js +1 -1
  175. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  176. package/dist/es-legacy/components/Card/Card.js +1 -1
  177. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  178. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  179. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  180. package/dist/es-legacy/components/Card/components/CardInput/defaultProps.js +1 -1
  181. package/dist/es-legacy/components/Card/components/CardInput/defaultProps.js.map +1 -1
  182. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  183. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  184. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js +1 -1
  185. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  186. package/dist/es-legacy/components/Card/constants.js +2 -0
  187. package/dist/es-legacy/components/Card/constants.js.map +1 -0
  188. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  189. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  190. package/dist/es-legacy/components/CashAppPay/services/CashAppSdkLoader.js +1 -1
  191. package/dist/es-legacy/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  192. package/dist/es-legacy/components/ClickToPay/ClickToPay.js +1 -1
  193. package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
  194. package/dist/es-legacy/components/Donation/components/FixedAmounts.js.map +1 -1
  195. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  196. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  197. package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
  198. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  199. package/dist/es-legacy/components/GooglePay/GooglePayService.js +1 -1
  200. package/dist/es-legacy/components/GooglePay/GooglePayService.js.map +1 -1
  201. package/dist/es-legacy/components/GooglePay/defaultProps.js +1 -1
  202. package/dist/es-legacy/components/GooglePay/defaultProps.js.map +1 -1
  203. package/dist/es-legacy/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js +2 -0
  204. package/dist/es-legacy/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js.map +1 -0
  205. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  206. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  207. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js +1 -1
  208. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  209. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  210. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  211. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  212. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  213. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js +1 -1
  214. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  215. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js +1 -1
  216. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  217. package/dist/es-legacy/components/PayPal/Paypal.js +1 -1
  218. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  219. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  220. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js +1 -1
  221. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js.map +1 -1
  222. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js +1 -1
  223. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  224. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  225. package/dist/es-legacy/components/PayTo/components/PayIDInput.js +1 -1
  226. package/dist/es-legacy/components/PayTo/components/PayIDInput.js.map +1 -1
  227. package/dist/es-legacy/components/PayTo/components/PayToPhone.js +1 -1
  228. package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -1
  229. package/dist/es-legacy/components/PayTo/components/validate.js +1 -1
  230. package/dist/es-legacy/components/PayTo/components/validate.js.map +1 -1
  231. package/dist/es-legacy/components/Pix/Pix.js +1 -1
  232. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  233. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js +2 -0
  234. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js.map +1 -0
  235. package/dist/es-legacy/components/Pix/components/PixInput/utils.js +2 -0
  236. package/dist/es-legacy/components/Pix/components/PixInput/utils.js.map +1 -0
  237. package/dist/es-legacy/components/Pix/components/PixInput/validate.js +2 -0
  238. package/dist/es-legacy/components/Pix/components/PixInput/validate.js.map +1 -0
  239. package/dist/es-legacy/components/Pix/components/PixQRDetails.js +2 -0
  240. package/dist/es-legacy/components/Pix/components/PixQRDetails.js.map +1 -0
  241. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  242. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  243. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  244. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  245. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  246. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  247. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  248. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  249. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js +1 -1
  250. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  251. package/dist/es-legacy/components/internal/ClickToPay/services/create-clicktopay-service.js +1 -1
  252. package/dist/es-legacy/components/internal/ClickToPay/services/create-clicktopay-service.js.map +1 -1
  253. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js +1 -1
  254. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  255. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/MastercardSdk.js +1 -1
  256. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/MastercardSdk.js.map +1 -1
  257. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js +1 -1
  258. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  259. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/VisaSdk.js +1 -1
  260. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/VisaSdk.js.map +1 -1
  261. package/dist/es-legacy/components/internal/Countdown/CountdownA11yReporter.js +1 -1
  262. package/dist/es-legacy/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  263. package/dist/es-legacy/components/internal/Countdown/index.js +1 -1
  264. package/dist/es-legacy/components/internal/Countdown/index.js.map +1 -1
  265. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  266. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  267. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  268. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  269. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js +2 -0
  270. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -0
  271. package/dist/es-legacy/components/internal/QRLoader/components/QRCodeCopyButton.js +2 -0
  272. package/dist/es-legacy/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -0
  273. package/dist/es-legacy/components/internal/QRLoader/components/QRCountdown.js +2 -0
  274. package/dist/es-legacy/components/internal/QRLoader/components/QRCountdown.js.map +1 -0
  275. package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js +2 -0
  276. package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js.map +1 -0
  277. package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js +2 -0
  278. package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js.map +1 -0
  279. package/dist/es-legacy/components/internal/QRLoader/components/QRIntructions.js +2 -0
  280. package/dist/es-legacy/components/internal/QRLoader/components/QRIntructions.js.map +1 -0
  281. package/dist/es-legacy/components/internal/QRLoader/components/QRProgressbar.js +2 -0
  282. package/dist/es-legacy/components/internal/QRLoader/components/QRProgressbar.js.map +1 -0
  283. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  284. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  285. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js +1 -1
  286. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  287. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  288. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  289. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  290. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  291. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js +1 -1
  292. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js.map +1 -1
  293. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  294. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  295. package/dist/es-legacy/components/tx-variants.js +1 -1
  296. package/dist/es-legacy/components/tx-variants.js.map +1 -1
  297. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  298. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  299. package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js +1 -1
  300. package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js.map +1 -1
  301. package/dist/es-legacy/core/Analytics/constants.js +1 -1
  302. package/dist/es-legacy/core/Analytics/constants.js.map +1 -1
  303. package/dist/es-legacy/core/Analytics/useAnalytics.js +2 -0
  304. package/dist/es-legacy/core/Analytics/useAnalytics.js.map +1 -0
  305. package/dist/es-legacy/core/Context/CoreProvider.js +1 -1
  306. package/dist/es-legacy/core/Context/CoreProvider.js.map +1 -1
  307. package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
  308. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  309. package/dist/es-legacy/core/Services/analytics/collect-id.js.map +1 -1
  310. package/dist/es-legacy/core/config.js +1 -1
  311. package/dist/es-legacy/core/config.js.map +1 -1
  312. package/dist/es-legacy/core/core.js +1 -1
  313. package/dist/es-legacy/core/core.js.map +1 -1
  314. package/dist/es-legacy/utils/Script.js +1 -1
  315. package/dist/es-legacy/utils/Script.js.map +1 -1
  316. package/package.json +13 -13
  317. package/styles/adyen.css +5 -4
  318. package/dist/es/components/Pix/PixInput/PixInput.js +0 -2
  319. package/dist/es/components/Pix/PixInput/PixInput.js.map +0 -1
  320. package/dist/es/components/Pix/PixInput/utils.js +0 -2
  321. package/dist/es/components/Pix/PixInput/utils.js.map +0 -1
  322. package/dist/es/components/Pix/PixInput/validate.js +0 -2
  323. package/dist/es/components/Pix/PixInput/validate.js.map +0 -1
  324. package/dist/es-legacy/components/Pix/PixInput/PixInput.js +0 -2
  325. package/dist/es-legacy/components/Pix/PixInput/PixInput.js.map +0 -1
  326. package/dist/es-legacy/components/Pix/PixInput/utils.js +0 -2
  327. package/dist/es-legacy/components/Pix/PixInput/utils.js.map +0 -1
  328. package/dist/es-legacy/components/Pix/PixInput/validate.js +0 -2
  329. package/dist/es-legacy/components/Pix/PixInput/validate.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Card.js","sources":["../../../../src/components/Card/Card.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardInput from './components/CardInput';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { BinLookupResponse, CardElementData, CardConfiguration } from './types';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardConfigSuccessData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { fieldTypeToSnakeCase } from '../internal/SecuredFields/utils';\nimport { reject } from '../../utils/commonUtils';\nimport { hasValidInstallmentsObject } from './components/CardInput/utils';\nimport createClickToPayService from '../internal/ClickToPay/services/create-clicktopay-service';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../internal/ClickToPay/services/types';\nimport ClickToPayWrapper from './components/ClickToPayWrapper';\nimport { ComponentFocusObject } from '../../types/global-types';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport { TxVariants } from '../tx-variants';\nimport type { PayButtonFunctionProps, UIElementStatus } from '../internal/UIElement/types';\nimport UIElement from '../internal/UIElement';\nimport PayButton from '../internal/PayButton';\nimport type { ICore } from '../../core/types';\nimport { ANALYTICS_FOCUS_STR, ANALYTICS_CONFIGURED_STR, ANALYTICS_UNFOCUS_STR, ANALYTICS_RENDERED_STR } from '../../core/Analytics/constants';\nimport { ALL_SECURED_FIELDS } from '../internal/SecuredFields/lib/constants';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport CardInputDefaultProps from './components/CardInput/defaultProps';\nimport { getCardConfigData } from './components/CardInput/utils';\nimport { AnalyticsEvent } from '../../core/Analytics/AnalyticsEvent';\nimport { AnalyticsInfoEvent } from '../../core/Analytics/AnalyticsInfoEvent';\n\nexport const DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM = ['cartebancaire', 'bcmc', 'dankort'];\n\nexport class CardElement extends UIElement<CardConfiguration> {\n public static type = TxVariants.scheme;\n\n private readonly clickToPayService: IClickToPayService | null;\n\n /**\n * Reference to the 'ClickToPayComponent'\n */\n private clickToPayRef = null;\n\n constructor(checkout: ICore, props?: CardConfiguration) {\n super(checkout, props);\n\n if (props && !props._disableClickToPay) {\n this.clickToPayService = createClickToPayService(this.props.configuration, this.props.clickToPayConfiguration, this.props.environment);\n void this.clickToPayService?.initialize();\n }\n }\n\n protected static defaultProps = {\n showFormInstruction: true,\n _disableClickToPay: false,\n doBinLookup: true,\n // Merge most of CardInput's defaultProps\n ...reject(['type', 'setComponentRef']).from(CardInputDefaultProps)\n };\n\n public setStatus(status: UIElementStatus, props?): this {\n if (this.componentRef?.setStatus) {\n this.componentRef.setStatus(status, props);\n }\n if (this.clickToPayRef?.setStatus) {\n this.clickToPayRef.setStatus(status, props);\n }\n return this;\n }\n\n private setClickToPayRef = ref => {\n this.clickToPayRef = ref;\n };\n\n formatProps(props: CardConfiguration): CardConfiguration {\n // The value from a session should be used, before falling back to the merchant configuration\n const enableStoreDetails = props.session?.configuration?.enableStoreDetails ?? props.enableStoreDetails;\n\n const isZeroAuth = props.amount?.value === 0;\n const showStoreDetailsCheckbox = isZeroAuth ? false : enableStoreDetails;\n\n const storedCardID = props.storedPaymentMethodId || props.id; // check if we've been passed a (checkout) processed storedCard or one that merchant has pulled from the PMs response\n const isEcommerceStoredCard = storedCardID && props?.supportedShopperInteractions?.includes('Ecommerce'); // If we have a storedCard does it support Ecommerce (it might not if the merchant has pulled it from the PMs response)\n\n // If we have a storedPM but it doesn't support Ecommerce - we can't make a storedCard component from it\n if (storedCardID && !isEcommerceStoredCard) {\n // TODO - Decide if an error is too severe? Would a console.warning suffice?\n throw new AdyenCheckoutError(\n IMPLEMENTATION_ERROR,\n 'You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions'\n );\n }\n\n return {\n ...props,\n // Mismatch between hasHolderName & holderNameRequired which can mean card can never be valid\n holderNameRequired: !props.hasHolderName ? false : props.holderNameRequired,\n // False for *stored* BCMC cards & if merchant explicitly wants to hide the CVC field\n hasCVC: !((props.brand && props.brand === 'bcmc') || props.hideCVC),\n // billingAddressRequired only available for non-stored cards\n billingAddressRequired: props.storedPaymentMethodId ? false : props.billingAddressRequired,\n // edge case where merchant has defined both an onAddressLookup callback AND set billingAddressMode: 'partial' - which leads to some strange behaviour in the address UI\n billingAddressMode: props.onAddressLookup ? CardInputDefaultProps.billingAddressMode : props.billingAddressMode,\n /** props.brand will be specified in the case of a StoredCard or a Bancontact component, for a regular Card we default it to 'card' */\n brand: props.brand ?? TxVariants.card,\n countryCode: props.countryCode ? props.countryCode.toLowerCase() : null,\n // Required for transition period (until configuration object becomes the norm)\n // - if merchant has defined value directly in props, use this instead\n configuration: {\n ...props.configuration,\n socialSecurityNumberMode: props.configuration?.socialSecurityNumberMode ?? 'auto'\n },\n brandsConfiguration: props.brandsConfiguration || props.configuration?.brandsConfiguration || {},\n icon: props.icon || props.configuration?.icon,\n // installmentOptions of a session should be used before falling back to the merchant configuration\n installmentOptions: props.session?.configuration?.installmentOptions || props.installmentOptions,\n enableStoreDetails,\n showStoreDetailsCheckbox,\n /**\n * Click to Pay configuration\n * - If email is set explicitly in the configuration, then it can override the one used in the session creation\n */\n clickToPayConfiguration: {\n ...props.clickToPayConfiguration,\n disableOtpAutoFocus: props.clickToPayConfiguration?.disableOtpAutoFocus || false,\n shopperEmail: props.clickToPayConfiguration?.shopperEmail || this.core.options?.session?.shopperEmail,\n telephoneNumber: props.clickToPayConfiguration?.telephoneNumber || this.core.options?.session?.telephoneNumber,\n locale: props.clickToPayConfiguration?.locale || props.i18n?.locale?.replace('-', '_')\n },\n ...(storedCardID && { storedPaymentMethodId: storedCardID })\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): CardElementData {\n /**\n * this.state.selectedBrandValue will be set when:\n * - /binLookup detects a single brand,\n * - when /binLookup detects a dual-branded card and the shopper makes a brand selection\n * - or, in the case of a storedCard\n */\n const cardBrand = this.state.selectedBrandValue;\n\n return {\n paymentMethod: {\n type: CardElement.type,\n ...this.state.data,\n ...(this.props.storedPaymentMethodId && {\n storedPaymentMethodId: this.props.storedPaymentMethodId,\n holderName: this.props.holderName ?? ''\n }),\n ...(cardBrand && { brand: cardBrand }),\n ...(this.props.fundingSource && { fundingSource: this.props.fundingSource }),\n ...(this.state.fastlaneData && { fastlaneData: btoa(JSON.stringify(this.state.fastlaneData)) })\n },\n ...(this.state.billingAddress && { billingAddress: this.state.billingAddress }),\n ...(this.state.socialSecurityNumber && { socialSecurityNumber: this.state.socialSecurityNumber }),\n ...this.storePaymentMethodPayload,\n ...(hasValidInstallmentsObject(this.state.installments) && { installments: this.state.installments }),\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(fieldName) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(fieldName);\n return this;\n }\n\n public onBrand = event => {\n this.props.onBrand?.(event);\n };\n\n processBinLookupResponse(binLookupResponse: BinLookupResponse, isReset = false) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse, isReset);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n private handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n onBinLookup(obj: CardBinLookupData) {\n // Handler for regular card comp doesn't need this 'raw' data or to know about 'resets'\n if (!obj.isReset) {\n const nuObj = reject('supportedBrandsRaw').from(obj);\n this.props.onBinLookup?.(nuObj);\n }\n }\n\n protected submitAnalytics(analyticsObj: AnalyticsEvent) {\n const isInfoType = analyticsObj instanceof AnalyticsInfoEvent;\n\n if ((isInfoType && analyticsObj.type === ANALYTICS_RENDERED_STR) || (isInfoType && analyticsObj.type === ANALYTICS_CONFIGURED_STR)) {\n // Check if it's a storedCard\n if (this.constructor['type'] === 'scheme') {\n if (hasOwnProperty(this.props, 'supportedShopperInteractions')) {\n analyticsObj.isStoredPaymentMethod = true;\n analyticsObj.brand = this.props.brand;\n }\n }\n\n // Add config data\n if (isInfoType && analyticsObj.type === ANALYTICS_RENDERED_STR) {\n analyticsObj.configData = getCardConfigData(this.props);\n }\n }\n\n super.submitAnalytics(analyticsObj);\n }\n\n private onConfigSuccess = (obj: CardConfigSuccessData) => {\n const event = new AnalyticsInfoEvent({ type: ANALYTICS_CONFIGURED_STR });\n this.submitAnalytics(event);\n\n this.props.onConfigSuccess?.(obj);\n };\n\n private onFocus = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({ type: ANALYTICS_FOCUS_STR, target: fieldTypeToSnakeCase(obj.fieldType) });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (ALL_SECURED_FIELDS.includes(obj.fieldType)) {\n this.props.onFocus?.(obj.event as CardFocusData);\n } else {\n this.props.onFocus?.(obj);\n }\n };\n\n private onBlur = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({ type: ANALYTICS_UNFOCUS_STR, target: fieldTypeToSnakeCase(obj.fieldType) });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (ALL_SECURED_FIELDS.includes(obj.fieldType)) {\n this.props.onBlur?.(obj.event as CardFocusData);\n } else {\n this.props.onBlur?.(obj);\n }\n };\n\n public onBinValue = triggerBinLookUp(this);\n\n get storePaymentMethodPayload() {\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n if (isStoredCard) {\n return {};\n }\n\n /**\n * For regular card, zero auth payments, we store the payment method, *if* the configuration says we should:\n * - For sessions, this means if the session has been created with storePaymentMethodMode: 'askForConsent'\n * - For the advanced flow, this means if the merchant has still set enableStoreDetails: true\n *\n * What we are doing is.. if for a normal payment we would show the \"Save for my next payment\" checkbox,\n * for a zero-auth payment we effectively click the checkbox on behalf of the shopper.\n */\n const isZeroAuth = this.props.amount?.value === 0;\n if (isZeroAuth) {\n return this.props.enableStoreDetails ? { storePaymentMethod: true } : {};\n }\n\n // For regular card, non-zero auth payments, we store the payment method based on the checkbox value.\n const includeStorePaymentMethod = this.props.showStoreDetailsCheckbox && typeof this.state.storePaymentMethod !== 'undefined';\n return includeStorePaymentMethod ? { storePaymentMethod: Boolean(this.state.storePaymentMethod) } : {};\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.icon ?? this.resources.getImage()(this.props.brand);\n }\n\n get brands(): { icon: any; name: string }[] {\n const { brands, brandsConfiguration } = this.props;\n if (brands) {\n return brands.map(brand => {\n const brandIcon = brandsConfiguration[brand]?.icon ?? this.props.modules.resources.getImage()(brand);\n return { icon: brandIcon, name: brand };\n });\n }\n\n return [];\n }\n\n get displayName(): string {\n if (this.props.storedPaymentMethodId) {\n return `•••• ${this.props.lastFour}`;\n }\n\n return this.props.name || CardElement.type;\n }\n\n get accessibleName(): string {\n // Use display name, unless it's a stored payment method, there inform user\n return (\n (this.props.name || CardElement.type) +\n (this.props.storedPaymentMethodId\n ? ' ' + this.props.i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', this.props.lastFour)\n : '')\n );\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n protected override payButton = (props: PayButtonFunctionProps) => {\n const isZeroAuth = this.props.amount?.value === 0;\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n return (\n <PayButton\n {...props}\n amount={this.props.amount}\n secondaryAmount={this.props.secondaryAmount}\n label={isZeroAuth && !isStoredCard ? this.props.i18n.get('payButton.saveDetails') : ''}\n onClick={this.submit}\n />\n );\n };\n\n private renderCardInput(isCardPrimaryInput = true): h.JSX.Element {\n return (\n <CardInput\n setComponentRef={this.setComponentRef}\n {...this.props}\n {...this.state}\n onSubmitAnalytics={this.submitAnalytics}\n onChange={this.setState}\n onSubmit={this.submit}\n handleKeyPress={this.handleKeyPress}\n payButton={this.payButton}\n onBrand={this.onBrand}\n onBinValue={this.onBinValue}\n brand={this.props.brand}\n brandsIcons={this.brands}\n isPayButtonPrimaryVariant={isCardPrimaryInput}\n resources={this.resources}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onConfigSuccess={this.onConfigSuccess}\n />\n );\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <ClickToPayWrapper\n amount={this.props.amount}\n configuration={this.props.clickToPayConfiguration}\n clickToPayService={this.clickToPayService}\n isStandaloneComponent={false}\n setClickToPayRef={this.setClickToPayRef}\n onSetStatus={this.setElementStatus}\n onSubmit={this.handleClickToPaySubmit}\n onError={this.handleError}\n >\n {isCardPrimaryInput => this.renderCardInput(isCardPrimaryInput)}\n </ClickToPayWrapper>\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default CardElement;\n"],"names":["DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM","CardElement","UIElement","setStatus","status","props","_this_componentRef","_this_clickToPayRef","this","componentRef","clickToPayRef","formatProps","_this_core_options_session","_this_core_options","_this_core_options_session1","_this_core_options1","enableStoreDetails","session","configuration","showStoreDetailsCheckbox","amount","value","storedCardID","storedPaymentMethodId","id","isEcommerceStoredCard","supportedShopperInteractions","includes","AdyenCheckoutError","IMPLEMENTATION_ERROR","_object_spread","_object_spread_props","holderNameRequired","hasHolderName","hasCVC","brand","hideCVC","billingAddressRequired","billingAddressMode","onAddressLookup","CardInputDefaultProps","TxVariants","card","countryCode","toLowerCase","socialSecurityNumberMode","brandsConfiguration","icon","installmentOptions","clickToPayConfiguration","disableOtpAutoFocus","shopperEmail","core","options","telephoneNumber","locale","i18n","replace","formatData","cardBrand","state","selectedBrandValue","_this_props_holderName","paymentMethod","type","data","holderName","fundingSource","fastlaneData","btoa","JSON","stringify","billingAddress","socialSecurityNumber","storePaymentMethodPayload","hasValidInstallmentsObject","installments","browserInfo","origin","window","location","updateStyles","stylesObj","setFocusOn","fieldName","processBinLookupResponse","binLookupResponse","isReset","handleUnsupportedCard","errObj","onBinLookup","obj","_this_props_onBinLookup","_this_props","nuObj","reject","from","call","submitAnalytics","analyticsObj","isInfoType","AnalyticsInfoEvent","ANALYTICS_RENDERED_STR","ANALYTICS_CONFIGURED_STR","constructor","hasOwnProperty","isStoredPaymentMethod","configData","getCardConfigData","super","_this_props_storedPaymentMethodId","_this_props_amount","length","storePaymentMethod","Boolean","isValid","_this_props_icon","resources","getImage","brands","map","modules","name","displayName","lastFour","accessibleName","get","collectBrowserInfo","renderCardInput","isCardPrimaryInput","h","CardInput","setComponentRef","onSubmitAnalytics","onChange","setState","onSubmit","submit","handleKeyPress","payButton","onBrand","onBinValue","brandsIcons","isPayButtonPrimaryVariant","onFocus","onBlur","onConfigSuccess","render","CoreProvider","loadingContext","SRPanelProvider","srPanel","ClickToPayWrapper","clickToPayService","isStandaloneComponent","setClickToPayRef","onSetStatus","setElementStatus","handleClickToPaySubmit","onError","handleError","checkout","_this_clickToPayService","_define_property","ref","event","_this_props_onBrand","payload","valid","errors","_this_props_onConfigSuccess","ANALYTICS_FOCUS_STR","target","fieldTypeToSnakeCase","fieldType","_this_props_onFocus","_this_props_onFocus1","_this_props1","ALL_SECURED_FIELDS","ANALYTICS_UNFOCUS_STR","_this_props_onBlur","_this_props_onBlur1","triggerBinLookUp","isZeroAuth","isStoredCard","PayButton","secondaryAmount","label","onClick","_disableClickToPay","createClickToPayService","environment","initialize","scheme","defaultProps","showFormInstruction","doBinLookup"],"mappings":"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"}
1
+ {"version":3,"file":"Card.js","sources":["../../../../src/components/Card/Card.tsx"],"sourcesContent":["import { h } from 'preact';\nimport CardInput from './components/CardInput';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport collectBrowserInfo from '../../utils/browserInfo';\nimport { BinLookupResponse, CardElementData, CardConfiguration } from './types';\nimport triggerBinLookUp from '../internal/SecuredFields/binLookup/triggerBinLookUp';\nimport { CardBinLookupData, CardConfigSuccessData, CardFocusData } from '../internal/SecuredFields/lib/types';\nimport { fieldTypeToSnakeCase } from '../internal/SecuredFields/utils';\nimport { reject } from '../../utils/commonUtils';\nimport { hasValidInstallmentsObject } from './components/CardInput/utils';\nimport createClickToPayService from '../internal/ClickToPay/services/create-clicktopay-service';\nimport { ClickToPayCheckoutPayload, IClickToPayService } from '../internal/ClickToPay/services/types';\nimport ClickToPayWrapper from './components/ClickToPayWrapper';\nimport { ComponentFocusObject } from '../../types/global-types';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport { TxVariants } from '../tx-variants';\nimport type { PayButtonFunctionProps, UIElementStatus } from '../internal/UIElement/types';\nimport UIElement from '../internal/UIElement';\nimport PayButton from '../internal/PayButton';\nimport type { ICore } from '../../core/types';\nimport { ANALYTICS_FOCUS_STR, ANALYTICS_CONFIGURED_STR, ANALYTICS_UNFOCUS_STR, ANALYTICS_RENDERED_STR } from '../../core/Analytics/constants';\nimport { ALL_SECURED_FIELDS } from '../internal/SecuredFields/lib/constants';\nimport { hasOwnProperty } from '../../utils/hasOwnProperty';\nimport AdyenCheckoutError, { IMPLEMENTATION_ERROR } from '../../core/Errors/AdyenCheckoutError';\nimport CardInputDefaultProps from './components/CardInput/defaultProps';\nimport { getCardConfigData } from './components/CardInput/utils';\nimport { AnalyticsEvent } from '../../core/Analytics/AnalyticsEvent';\nimport { AnalyticsInfoEvent } from '../../core/Analytics/AnalyticsInfoEvent';\n\nexport class CardElement extends UIElement<CardConfiguration> {\n public static type = TxVariants.scheme;\n\n private readonly clickToPayService: IClickToPayService | null;\n\n /**\n * Reference to the 'ClickToPayComponent'\n */\n private clickToPayRef = null;\n\n constructor(checkout: ICore, props?: CardConfiguration) {\n super(checkout, props);\n\n if (props && !props._disableClickToPay) {\n this.clickToPayService = createClickToPayService(\n this.props.configuration,\n this.props.clickToPayConfiguration,\n this.props.environment,\n this.analytics\n );\n\n void this.clickToPayService?.initialize();\n }\n }\n\n protected static defaultProps = {\n showFormInstruction: true,\n _disableClickToPay: false,\n doBinLookup: true,\n // Merge most of CardInput's defaultProps\n ...reject(['type', 'setComponentRef']).from(CardInputDefaultProps)\n };\n\n public setStatus(status: UIElementStatus, props?): this {\n if (this.componentRef?.setStatus) {\n this.componentRef.setStatus(status, props);\n }\n if (this.clickToPayRef?.setStatus) {\n this.clickToPayRef.setStatus(status, props);\n }\n return this;\n }\n\n private setClickToPayRef = ref => {\n this.clickToPayRef = ref;\n };\n\n formatProps(props: CardConfiguration): CardConfiguration {\n // The value from a session should be used, before falling back to the merchant configuration\n const enableStoreDetails = props.session?.configuration?.enableStoreDetails ?? props.enableStoreDetails;\n\n const isZeroAuth = props.amount?.value === 0;\n const showStoreDetailsCheckbox = isZeroAuth ? false : enableStoreDetails;\n\n const storedCardID = props.storedPaymentMethodId || props.id; // check if we've been passed a (checkout) processed storedCard or one that merchant has pulled from the PMs response\n const isEcommerceStoredCard = storedCardID && props?.supportedShopperInteractions?.includes('Ecommerce'); // If we have a storedCard does it support Ecommerce (it might not if the merchant has pulled it from the PMs response)\n\n // If we have a storedPM but it doesn't support Ecommerce - we can't make a storedCard component from it\n if (storedCardID && !isEcommerceStoredCard) {\n // TODO - Decide if an error is too severe? Would a console.warning suffice?\n throw new AdyenCheckoutError(\n IMPLEMENTATION_ERROR,\n 'You are trying to create a storedCard from a stored PM that does not support Ecommerce interactions'\n );\n }\n\n return {\n ...props,\n // Mismatch between hasHolderName & holderNameRequired which can mean card can never be valid\n holderNameRequired: !props.hasHolderName ? false : props.holderNameRequired,\n // False for *stored* BCMC cards & if merchant explicitly wants to hide the CVC field\n hasCVC: !((props.brand && props.brand === 'bcmc') || props.hideCVC),\n // billingAddressRequired only available for non-stored cards\n billingAddressRequired: props.storedPaymentMethodId ? false : props.billingAddressRequired,\n // edge case where merchant has defined both an onAddressLookup callback AND set billingAddressMode: 'partial' - which leads to some strange behaviour in the address UI\n billingAddressMode: props.onAddressLookup ? CardInputDefaultProps.billingAddressMode : props.billingAddressMode,\n /** props.brand will be specified in the case of a StoredCard or a Bancontact component, for a regular Card we default it to 'card' */\n brand: props.brand ?? TxVariants.card,\n countryCode: props.countryCode ? props.countryCode.toLowerCase() : null,\n // Required for transition period (until configuration object becomes the norm)\n // - if merchant has defined value directly in props, use this instead\n configuration: {\n ...props.configuration,\n socialSecurityNumberMode: props.configuration?.socialSecurityNumberMode ?? 'auto'\n },\n brandsConfiguration: props.brandsConfiguration || props.configuration?.brandsConfiguration || {},\n icon: props.icon || props.configuration?.icon,\n // installmentOptions of a session should be used before falling back to the merchant configuration\n installmentOptions: props.session?.configuration?.installmentOptions || props.installmentOptions,\n enableStoreDetails,\n showStoreDetailsCheckbox,\n /**\n * Click to Pay configuration\n * - If email is set explicitly in the configuration, then it can override the one used in the session creation\n */\n clickToPayConfiguration: {\n ...props.clickToPayConfiguration,\n disableOtpAutoFocus: props.clickToPayConfiguration?.disableOtpAutoFocus || false,\n shopperEmail: props.clickToPayConfiguration?.shopperEmail || this.core.options?.session?.shopperEmail,\n telephoneNumber: props.clickToPayConfiguration?.telephoneNumber || this.core.options?.session?.telephoneNumber,\n locale: props.clickToPayConfiguration?.locale || props.i18n?.locale?.replace('-', '_')\n },\n ...(storedCardID && { storedPaymentMethodId: storedCardID })\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData(): CardElementData {\n /**\n * this.state.selectedBrandValue will be set when:\n * - /binLookup detects a single brand,\n * - when /binLookup detects a dual-branded card and the shopper makes a brand selection\n * - or, in the case of a storedCard\n */\n const cardBrand = this.state.selectedBrandValue;\n\n return {\n paymentMethod: {\n type: CardElement.type,\n ...this.state.data,\n ...(this.props.storedPaymentMethodId && {\n storedPaymentMethodId: this.props.storedPaymentMethodId,\n holderName: this.props.holderName ?? ''\n }),\n ...(cardBrand && { brand: cardBrand }),\n ...(this.props.fundingSource && { fundingSource: this.props.fundingSource }),\n ...(this.state.fastlaneData && { fastlaneData: btoa(JSON.stringify(this.state.fastlaneData)) })\n },\n ...(this.state.billingAddress && { billingAddress: this.state.billingAddress }),\n ...(this.state.socialSecurityNumber && { socialSecurityNumber: this.state.socialSecurityNumber }),\n ...this.storePaymentMethodPayload,\n ...(hasValidInstallmentsObject(this.state.installments) && { installments: this.state.installments }),\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(fieldName) {\n if (this.componentRef?.setFocusOn) this.componentRef.setFocusOn(fieldName);\n return this;\n }\n\n public onBrand = event => {\n this.props.onBrand?.(event);\n };\n\n processBinLookupResponse(binLookupResponse: BinLookupResponse, isReset = false) {\n if (this.componentRef?.processBinLookupResponse) this.componentRef.processBinLookupResponse(binLookupResponse, isReset);\n return this;\n }\n\n handleUnsupportedCard(errObj) {\n if (this.componentRef?.handleUnsupportedCard) this.componentRef.handleUnsupportedCard(errObj);\n return this;\n }\n\n private handleClickToPaySubmit = (payload: ClickToPayCheckoutPayload) => {\n this.setState({ data: { ...payload }, valid: {}, errors: {}, isValid: true });\n this.submit();\n };\n\n onBinLookup(obj: CardBinLookupData) {\n // Handler for regular card comp doesn't need this 'raw' data or to know about 'resets'\n if (!obj.isReset) {\n const nuObj = reject('supportedBrandsRaw').from(obj);\n this.props.onBinLookup?.(nuObj);\n }\n }\n\n protected submitAnalytics(analyticsObj: AnalyticsEvent) {\n const isInfoType = analyticsObj instanceof AnalyticsInfoEvent;\n\n if ((isInfoType && analyticsObj.type === ANALYTICS_RENDERED_STR) || (isInfoType && analyticsObj.type === ANALYTICS_CONFIGURED_STR)) {\n // Check if it's a storedCard\n if (this.constructor['type'] === 'scheme') {\n if (hasOwnProperty(this.props, 'supportedShopperInteractions')) {\n analyticsObj.isStoredPaymentMethod = true;\n analyticsObj.brand = this.props.brand;\n }\n }\n\n // Add config data\n if (isInfoType && analyticsObj.type === ANALYTICS_RENDERED_STR) {\n analyticsObj.configData = getCardConfigData(this.props);\n }\n }\n\n super.submitAnalytics(analyticsObj);\n }\n\n private onConfigSuccess = (obj: CardConfigSuccessData) => {\n const event = new AnalyticsInfoEvent({ type: ANALYTICS_CONFIGURED_STR });\n this.submitAnalytics(event);\n\n this.props.onConfigSuccess?.(obj);\n };\n\n private onFocus = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({ type: ANALYTICS_FOCUS_STR, target: fieldTypeToSnakeCase(obj.fieldType) });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (ALL_SECURED_FIELDS.includes(obj.fieldType)) {\n this.props.onFocus?.(obj.event as CardFocusData);\n } else {\n this.props.onFocus?.(obj);\n }\n };\n\n private onBlur = (obj: ComponentFocusObject) => {\n const event = new AnalyticsInfoEvent({ type: ANALYTICS_UNFOCUS_STR, target: fieldTypeToSnakeCase(obj.fieldType) });\n this.submitAnalytics(event);\n\n // Call merchant defined callback\n if (ALL_SECURED_FIELDS.includes(obj.fieldType)) {\n this.props.onBlur?.(obj.event as CardFocusData);\n } else {\n this.props.onBlur?.(obj);\n }\n };\n\n public onBinValue = triggerBinLookUp(this);\n\n get storePaymentMethodPayload() {\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n if (isStoredCard) {\n return {};\n }\n\n /**\n * For regular card, zero auth payments, we store the payment method, *if* the configuration says we should:\n * - For sessions, this means if the session has been created with storePaymentMethodMode: 'askForConsent'\n * - For the advanced flow, this means if the merchant has still set enableStoreDetails: true\n *\n * What we are doing is.. if for a normal payment we would show the \"Save for my next payment\" checkbox,\n * for a zero-auth payment we effectively click the checkbox on behalf of the shopper.\n */\n const isZeroAuth = this.props.amount?.value === 0;\n if (isZeroAuth) {\n return this.props.enableStoreDetails ? { storePaymentMethod: true } : {};\n }\n\n // For regular card, non-zero auth payments, we store the payment method based on the checkbox value.\n const includeStorePaymentMethod = this.props.showStoreDetailsCheckbox && typeof this.state.storePaymentMethod !== 'undefined';\n return includeStorePaymentMethod ? { storePaymentMethod: Boolean(this.state.storePaymentMethod) } : {};\n }\n\n get isValid() {\n return !!this.state.isValid;\n }\n\n get icon() {\n return this.props.icon ?? this.resources.getImage()(this.props.brand);\n }\n\n get brands(): { icon: any; name: string }[] {\n const { brands, brandsConfiguration } = this.props;\n if (brands) {\n return brands.map(brand => {\n const brandIcon = brandsConfiguration[brand]?.icon ?? this.props.modules.resources.getImage()(brand);\n return { icon: brandIcon, name: brand };\n });\n }\n\n return [];\n }\n\n get displayName(): string {\n if (this.props.storedPaymentMethodId) {\n return `•••• ${this.props.lastFour}`;\n }\n\n return this.props.name || CardElement.type;\n }\n\n get accessibleName(): string {\n // Use display name, unless it's a stored payment method, there inform user\n return (\n (this.props.name || CardElement.type) +\n (this.props.storedPaymentMethodId\n ? ' ' + this.props.i18n.get('creditCard.storedCard.description.ariaLabel').replace('%@', this.props.lastFour)\n : '')\n );\n }\n\n get browserInfo() {\n return collectBrowserInfo();\n }\n\n protected override payButton = (props: PayButtonFunctionProps) => {\n const isZeroAuth = this.props.amount?.value === 0;\n const isStoredCard = this.props.storedPaymentMethodId?.length > 0;\n return (\n <PayButton\n {...props}\n amount={this.props.amount}\n secondaryAmount={this.props.secondaryAmount}\n label={isZeroAuth && !isStoredCard ? this.props.i18n.get('payButton.saveDetails') : ''}\n onClick={this.submit}\n />\n );\n };\n\n private renderCardInput(isCardPrimaryInput = true): h.JSX.Element {\n return (\n <CardInput\n setComponentRef={this.setComponentRef}\n {...this.props}\n {...this.state}\n onSubmitAnalytics={this.submitAnalytics}\n onChange={this.setState}\n onSubmit={this.submit}\n handleKeyPress={this.handleKeyPress}\n payButton={this.payButton}\n onBrand={this.onBrand}\n onBinValue={this.onBinValue}\n brand={this.props.brand}\n brandsIcons={this.brands}\n isPayButtonPrimaryVariant={isCardPrimaryInput}\n resources={this.resources}\n onFocus={this.onFocus}\n onBlur={this.onBlur}\n onConfigSuccess={this.onConfigSuccess}\n />\n );\n }\n\n render() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <ClickToPayWrapper\n amount={this.props.amount}\n configuration={this.props.clickToPayConfiguration}\n clickToPayService={this.clickToPayService}\n isStandaloneComponent={false}\n setClickToPayRef={this.setClickToPayRef}\n onSetStatus={this.setElementStatus}\n onSubmit={this.handleClickToPaySubmit}\n onError={this.handleError}\n >\n {isCardPrimaryInput => this.renderCardInput(isCardPrimaryInput)}\n </ClickToPayWrapper>\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default CardElement;\n"],"names":["CardElement","UIElement","setStatus","status","props","_this_componentRef","_this_clickToPayRef","this","componentRef","clickToPayRef","formatProps","_this_core_options_session","_this_core_options","_this_core_options_session1","_this_core_options1","enableStoreDetails","session","configuration","showStoreDetailsCheckbox","amount","value","storedCardID","storedPaymentMethodId","id","isEcommerceStoredCard","supportedShopperInteractions","includes","AdyenCheckoutError","IMPLEMENTATION_ERROR","_object_spread","_object_spread_props","holderNameRequired","hasHolderName","hasCVC","brand","hideCVC","billingAddressRequired","billingAddressMode","onAddressLookup","CardInputDefaultProps","TxVariants","card","countryCode","toLowerCase","socialSecurityNumberMode","brandsConfiguration","icon","installmentOptions","clickToPayConfiguration","disableOtpAutoFocus","shopperEmail","core","options","telephoneNumber","locale","i18n","replace","formatData","cardBrand","state","selectedBrandValue","_this_props_holderName","paymentMethod","type","data","holderName","fundingSource","fastlaneData","btoa","JSON","stringify","billingAddress","socialSecurityNumber","storePaymentMethodPayload","hasValidInstallmentsObject","installments","browserInfo","origin","window","location","updateStyles","stylesObj","setFocusOn","fieldName","processBinLookupResponse","binLookupResponse","isReset","handleUnsupportedCard","errObj","onBinLookup","obj","_this_props_onBinLookup","_this_props","nuObj","reject","from","call","submitAnalytics","analyticsObj","isInfoType","AnalyticsInfoEvent","ANALYTICS_RENDERED_STR","ANALYTICS_CONFIGURED_STR","constructor","hasOwnProperty","isStoredPaymentMethod","configData","getCardConfigData","super","_this_props_storedPaymentMethodId","_this_props_amount","length","storePaymentMethod","Boolean","isValid","_this_props_icon","resources","getImage","brands","map","modules","name","displayName","lastFour","accessibleName","get","collectBrowserInfo","renderCardInput","isCardPrimaryInput","h","CardInput","setComponentRef","onSubmitAnalytics","onChange","setState","onSubmit","submit","handleKeyPress","payButton","onBrand","onBinValue","brandsIcons","isPayButtonPrimaryVariant","onFocus","onBlur","onConfigSuccess","render","CoreProvider","loadingContext","SRPanelProvider","srPanel","ClickToPayWrapper","clickToPayService","isStandaloneComponent","setClickToPayRef","onSetStatus","setElementStatus","handleClickToPaySubmit","onError","handleError","checkout","_this_clickToPayService","_define_property","ref","event","_this_props_onBrand","payload","valid","errors","_this_props_onConfigSuccess","ANALYTICS_FOCUS_STR","target","fieldTypeToSnakeCase","fieldType","_this_props_onFocus","_this_props_onFocus1","_this_props1","ALL_SECURED_FIELDS","ANALYTICS_UNFOCUS_STR","_this_props_onBlur","_this_props_onBlur1","triggerBinLookUp","isZeroAuth","isStoredCard","PayButton","secondaryAmount","label","onClick","_disableClickToPay","createClickToPayService","environment","analytics","initialize","scheme","defaultProps","showFormInstruction","doBinLookup"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../external/preact/dist/preact.js";import r from"../../../../internal/LoadingWrapper/LoadingWrapper.js";import s from"./CardFields.js";import a from"./KCPAuthentication.js";import l from"../../../../internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js";import o from"../../../../internal/StoreDetails/StoreDetails.js";import i from"../../../../internal/Address/Address.js";import n from"./CardHolderName.js";import t from"./Installments/Installments.js";import d from"../../../../internal/DisclaimerMessage/DisclaimerMessage.js";import u from"../../../../internal/FormFields/RadioGroupExtended/RadioGroupExtended.js";import{mustHandleDualBrandingAccordingToEURegulations as c,mapDualBrandButtons as m}from"../utils.js";import p from"../../../../internal/FormFields/Fieldset/Fieldset.js";import{useCoreContext as h}from"../../../../../core/Context/CoreProvider.js";import{DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM as b}from"../../../Card.js";const F=({data:F,valid:y,errors:N,handleChangeFor:S,sfpState:f,setFocusOn:A,cvcPolicy:C,focusedElement:g,hasInstallments:x,handleInstallments:B,showAmountsInInstallments:w,brandsIcons:v,formData:j,formErrors:D,formValid:I,expiryDatePolicy:E,dualBrandSelectElements:P,extensions:k,selectedBrandValue:O,showKCP:R,showBrazilianSSN:q,socialSecurityNumber:V,handleOnStoreDetails:M,billingAddress:T,handleAddress:L,setAddressRef:_,partialAddressSchema:z,onAddressLookup:H,onAddressSelected:G,addressSearchDebounceMs:K,amount:W,billingAddressRequired:$,billingAddressRequiredFields:J,billingAddressAllowedCountries:Q,billingAddressValidationRules:U=null,brandsConfiguration:X,showStoreDetailsCheckbox:Y,hasCVC:Z,hasHolderName:ee,holderNameRequired:re,installmentOptions:se,placeholders:ae,positionHolderNameOnTop:le,showBrandIcon:oe,showContextualElement:ie,iOSFocusedField:ne,disclaimerMessage:te,onFieldFocusAnalytics:de,onFieldBlurAnalytics:ue})=>{const{i18n:ce}=h(),me=e(n,{required:re,placeholder:ae.holderName,value:j.holderName,error:!!D.holderName&&re,isValid:!!I.holderName,onBlur:S("holderName","blur"),onInput:S("holderName","input"),disabled:ne&&"holderName"!==ne,onFieldFocusAnalytics:de,onFieldBlurAnalytics:ue}),pe=c(b,P,"id");return e(r,{status:f.status},ee&&le&&me,e(s,{showBrandIcon:oe,showContextualElement:ie,brand:f.brand,brandsIcons:v,brandsConfiguration:X,focusedElement:g,onFocusField:A,hasCVC:Z,cvcPolicy:C,expiryDatePolicy:E,errors:f.errors,valid:f.valid,dualBrandingElements:P.length>0&&P}),ee&&!le&&me,pe&&P.length>0&&P&&e(p,{classNameModifiers:["dual-brand-switcher"],label:ce.get("creditCard.dualBrand.title")},e("p",{className:"adyen-checkout-form-instruction"},ce.get("creditCard.dualBrand.description")),e(u,{name:"dualBrandSwitcher",value:O,items:m(P,X),onChange:k.handleDualBrandSelection,required:!0,showSelectedTick:!0})),R&&e(a,{onFocusField:A,focusedElement:g,encryptedPasswordState:{data:f.encryptedPassword,valid:!!f.valid&&f.valid.encryptedPassword,errors:!!f.errors&&f.errors.encryptedPassword},value:F.taxNumber,error:!!N.taxNumber,isValid:!!y.taxNumber,onBlur:S("taxNumber","blur"),onInput:S("taxNumber","input"),disabled:ne&&"kcpTaxNumberOrDOB"!==ne,placeholder:ae.taxNumber,onFieldFocusAnalytics:de,onFieldBlurAnalytics:ue}),q&&e("div",{className:"adyen-checkout__card__socialSecurityNumber"},e(l,{onBlur:S("socialSecurityNumber","blur"),onInput:S("socialSecurityNumber","input"),error:null==N?void 0:N.socialSecurityNumber,valid:null==y?void 0:y.socialSecurityNumber,data:V,required:!0,disabled:ne&&"socialSecurityNumber"!==ne,onFieldFocusAnalytics:de,onFieldBlurAnalytics:ue})),Y&&e(o,{onChange:M}),x&&e(t,{amount:W,brand:f.brand,installmentOptions:se,onChange:B,type:w?"amount":"months"}),$&&e(i,{label:"billingAddress",data:T,onChange:L,allowedCountries:Q,requiredFields:J,setComponentRef:_,validationRules:U,specifications:z,iOSFocusedField:ne,onAddressLookup:H,showContextualElement:ie,onAddressSelected:G,addressSearchDebounceMs:K,onFieldFocusAnalytics:de,onFieldBlurAnalytics:ue}),te&&e(d,{message:te.message.replace("%{linkText}",`%#${te.linkText}%#`),urls:[te.link]}))};export{F as CardFieldsWrapper};
1
+ import{createElement as e}from"../../../../../external/preact/dist/preact.js";import r from"../../../../internal/LoadingWrapper/LoadingWrapper.js";import s from"./CardFields.js";import a from"./KCPAuthentication.js";import l from"../../../../internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js";import o from"../../../../internal/StoreDetails/StoreDetails.js";import i from"../../../../internal/Address/Address.js";import n from"./CardHolderName.js";import t from"./Installments/Installments.js";import d from"../../../../internal/DisclaimerMessage/DisclaimerMessage.js";import u from"../../../../internal/FormFields/RadioGroupExtended/RadioGroupExtended.js";import{mustHandleDualBrandingAccordingToEURegulations as c,mapDualBrandButtons as m}from"../utils.js";import p from"../../../../internal/FormFields/Fieldset/Fieldset.js";import{useCoreContext as h}from"../../../../../core/Context/CoreProvider.js";import{DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM as b}from"../../../constants.js";const F=({data:F,valid:y,errors:N,handleChangeFor:S,sfpState:f,setFocusOn:A,cvcPolicy:C,focusedElement:g,hasInstallments:x,handleInstallments:B,showAmountsInInstallments:w,brandsIcons:v,formData:j,formErrors:D,formValid:I,expiryDatePolicy:E,dualBrandSelectElements:P,extensions:k,selectedBrandValue:O,showKCP:R,showBrazilianSSN:q,socialSecurityNumber:V,handleOnStoreDetails:M,billingAddress:T,handleAddress:L,setAddressRef:_,partialAddressSchema:z,onAddressLookup:H,onAddressSelected:G,addressSearchDebounceMs:K,amount:W,billingAddressRequired:$,billingAddressRequiredFields:J,billingAddressAllowedCountries:Q,billingAddressValidationRules:U=null,brandsConfiguration:X,showStoreDetailsCheckbox:Y,hasCVC:Z,hasHolderName:ee,holderNameRequired:re,installmentOptions:se,placeholders:ae,positionHolderNameOnTop:le,showBrandIcon:oe,showContextualElement:ie,iOSFocusedField:ne,disclaimerMessage:te,onFieldFocusAnalytics:de,onFieldBlurAnalytics:ue})=>{const{i18n:ce}=h(),me=e(n,{required:re,placeholder:ae.holderName,value:j.holderName,error:!!D.holderName&&re,isValid:!!I.holderName,onBlur:S("holderName","blur"),onInput:S("holderName","input"),disabled:ne&&"holderName"!==ne,onFieldFocusAnalytics:de,onFieldBlurAnalytics:ue}),pe=c(b,P,"id");return e(r,{status:f.status},ee&&le&&me,e(s,{showBrandIcon:oe,showContextualElement:ie,brand:f.brand,brandsIcons:v,brandsConfiguration:X,focusedElement:g,onFocusField:A,hasCVC:Z,cvcPolicy:C,expiryDatePolicy:E,errors:f.errors,valid:f.valid,dualBrandingElements:P.length>0&&P}),ee&&!le&&me,pe&&P.length>0&&P&&e(p,{classNameModifiers:["dual-brand-switcher"],label:ce.get("creditCard.dualBrand.title")},e("p",{className:"adyen-checkout-form-instruction"},ce.get("creditCard.dualBrand.description")),e(u,{name:"dualBrandSwitcher",value:O,items:m(P,X),onChange:k.handleDualBrandSelection,required:!0,showSelectedTick:!0})),R&&e(a,{onFocusField:A,focusedElement:g,encryptedPasswordState:{data:f.encryptedPassword,valid:!!f.valid&&f.valid.encryptedPassword,errors:!!f.errors&&f.errors.encryptedPassword},value:F.taxNumber,error:!!N.taxNumber,isValid:!!y.taxNumber,onBlur:S("taxNumber","blur"),onInput:S("taxNumber","input"),disabled:ne&&"kcpTaxNumberOrDOB"!==ne,placeholder:ae.taxNumber,onFieldFocusAnalytics:de,onFieldBlurAnalytics:ue}),q&&e("div",{className:"adyen-checkout__card__socialSecurityNumber"},e(l,{onBlur:S("socialSecurityNumber","blur"),onInput:S("socialSecurityNumber","input"),error:null==N?void 0:N.socialSecurityNumber,valid:null==y?void 0:y.socialSecurityNumber,data:V,required:!0,disabled:ne&&"socialSecurityNumber"!==ne,onFieldFocusAnalytics:de,onFieldBlurAnalytics:ue})),Y&&e(o,{onChange:M}),x&&e(t,{amount:W,brand:f.brand,installmentOptions:se,onChange:B,type:w?"amount":"months"}),$&&e(i,{label:"billingAddress",data:T,onChange:L,allowedCountries:Q,requiredFields:J,setComponentRef:_,validationRules:U,specifications:z,iOSFocusedField:ne,onAddressLookup:H,showContextualElement:ie,onAddressSelected:G,addressSearchDebounceMs:K,onFieldFocusAnalytics:de,onFieldBlurAnalytics:ue}),te&&e(d,{message:te.message.replace("%{linkText}",`%#${te.linkText}%#`),urls:[te.link]}))};export{F as CardFieldsWrapper};
2
2
  //# sourceMappingURL=CardFieldsWrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CardFieldsWrapper.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardFieldsWrapper.tsx"],"sourcesContent":["import { h } from 'preact';\nimport LoadingWrapper from '../../../../internal/LoadingWrapper';\nimport CardFields from './CardFields';\nimport KCPAuthentication from './KCPAuthentication';\nimport SocialSecurityNumberBrazil from '../../../../internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil';\nimport StoreDetails from '../../../../internal/StoreDetails';\nimport Address from '../../../../internal/Address';\nimport CardHolderName from './CardHolderName';\nimport Installments from './Installments';\nimport DisclaimerMessage from '../../../../internal/DisclaimerMessage';\nimport RadioGroupExtended from '../../../../internal/FormFields/RadioGroupExtended';\nimport { mapDualBrandButtons, mustHandleDualBrandingAccordingToEURegulations } from '../utils';\nimport Fieldset from '../../../../internal/FormFields/Fieldset';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM } from '../../../Card';\n\nexport const CardFieldsWrapper = ({\n // vars created in CardInput:\n // base (shared)\n data,\n valid,\n errors,\n handleChangeFor,\n sfpState,\n setFocusOn,\n cvcPolicy,\n focusedElement,\n hasInstallments,\n handleInstallments,\n showAmountsInInstallments,\n // Card\n brandsIcons,\n formData,\n formErrors,\n formValid,\n expiryDatePolicy,\n dualBrandSelectElements,\n extensions,\n selectedBrandValue,\n // KCP\n showKCP,\n // SSN\n showBrazilianSSN,\n socialSecurityNumber,\n // Store details\n handleOnStoreDetails,\n // Address\n billingAddress,\n handleAddress,\n setAddressRef,\n partialAddressSchema,\n onAddressLookup,\n onAddressSelected,\n addressSearchDebounceMs,\n // For this comp (props passed through from CardInput)\n amount,\n billingAddressRequired,\n billingAddressRequiredFields,\n billingAddressAllowedCountries,\n billingAddressValidationRules = null,\n brandsConfiguration,\n showStoreDetailsCheckbox,\n hasCVC,\n hasHolderName,\n holderNameRequired,\n installmentOptions,\n placeholders,\n positionHolderNameOnTop,\n // For CardFields > CardNumber\n showBrandIcon,\n showContextualElement,\n //\n iOSFocusedField,\n disclaimerMessage,\n //\n onFieldFocusAnalytics,\n onFieldBlurAnalytics\n}) => {\n const { i18n } = useCoreContext();\n\n const cardHolderField = (\n <CardHolderName\n required={holderNameRequired}\n placeholder={placeholders.holderName}\n value={formData.holderName}\n error={!!formErrors.holderName && holderNameRequired}\n isValid={!!formValid.holderName}\n onBlur={handleChangeFor('holderName', 'blur')}\n onInput={handleChangeFor('holderName', 'input')}\n disabled={iOSFocusedField && iOSFocusedField !== 'holderName'}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n );\n\n // Only if the brands in DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM are present in the binLookup response should we handle dual branding based on EU regulations\n const showDualBrandSelectElements = mustHandleDualBrandingAccordingToEURegulations(\n DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM,\n dualBrandSelectElements,\n 'id'\n );\n\n return (\n <LoadingWrapper status={sfpState.status}>\n {hasHolderName && positionHolderNameOnTop && cardHolderField}\n\n <CardFields\n showBrandIcon={showBrandIcon}\n showContextualElement={showContextualElement}\n brand={sfpState.brand}\n brandsIcons={brandsIcons}\n brandsConfiguration={brandsConfiguration}\n focusedElement={focusedElement}\n onFocusField={setFocusOn}\n hasCVC={hasCVC}\n cvcPolicy={cvcPolicy}\n expiryDatePolicy={expiryDatePolicy}\n errors={sfpState.errors}\n valid={sfpState.valid}\n dualBrandingElements={dualBrandSelectElements.length > 0 && dualBrandSelectElements}\n />\n\n {hasHolderName && !positionHolderNameOnTop && cardHolderField}\n\n {showDualBrandSelectElements && dualBrandSelectElements.length > 0 && dualBrandSelectElements && (\n <Fieldset classNameModifiers={['dual-brand-switcher']} label={i18n.get('creditCard.dualBrand.title')}>\n <p className={'adyen-checkout-form-instruction'}>{i18n.get('creditCard.dualBrand.description')}</p>\n <RadioGroupExtended\n name={'dualBrandSwitcher'}\n value={selectedBrandValue} // Set which button is in a selected (checked) state\n items={mapDualBrandButtons(dualBrandSelectElements, brandsConfiguration)}\n onChange={extensions.handleDualBrandSelection}\n required={true}\n showSelectedTick={true}\n />\n </Fieldset>\n )}\n\n {showKCP && (\n <KCPAuthentication\n onFocusField={setFocusOn}\n focusedElement={focusedElement}\n encryptedPasswordState={{\n data: sfpState.encryptedPassword,\n valid: sfpState.valid ? sfpState.valid.encryptedPassword : false,\n errors: sfpState.errors ? sfpState.errors.encryptedPassword : false\n }}\n value={data.taxNumber}\n error={!!errors.taxNumber}\n isValid={!!valid.taxNumber}\n onBlur={handleChangeFor('taxNumber', 'blur')}\n onInput={handleChangeFor('taxNumber', 'input')}\n disabled={iOSFocusedField && iOSFocusedField !== 'kcpTaxNumberOrDOB'}\n placeholder={placeholders.taxNumber}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n )}\n\n {showBrazilianSSN && (\n <div className=\"adyen-checkout__card__socialSecurityNumber\">\n <SocialSecurityNumberBrazil\n onBlur={handleChangeFor('socialSecurityNumber', 'blur')}\n onInput={handleChangeFor('socialSecurityNumber', 'input')}\n error={errors?.socialSecurityNumber}\n valid={valid?.socialSecurityNumber}\n data={socialSecurityNumber}\n required={true}\n disabled={iOSFocusedField && iOSFocusedField !== 'socialSecurityNumber'}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n </div>\n )}\n\n {showStoreDetailsCheckbox && <StoreDetails onChange={handleOnStoreDetails} />}\n\n {hasInstallments && (\n <Installments\n amount={amount}\n brand={sfpState.brand}\n installmentOptions={installmentOptions}\n onChange={handleInstallments}\n type={showAmountsInInstallments ? 'amount' : 'months'}\n />\n )}\n\n {billingAddressRequired && (\n <Address\n label=\"billingAddress\"\n data={billingAddress}\n onChange={handleAddress}\n allowedCountries={billingAddressAllowedCountries}\n requiredFields={billingAddressRequiredFields}\n setComponentRef={setAddressRef}\n validationRules={billingAddressValidationRules}\n specifications={partialAddressSchema}\n iOSFocusedField={iOSFocusedField}\n onAddressLookup={onAddressLookup}\n showContextualElement={showContextualElement}\n onAddressSelected={onAddressSelected}\n addressSearchDebounceMs={addressSearchDebounceMs}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n )}\n\n {disclaimerMessage && (\n <DisclaimerMessage\n message={disclaimerMessage.message.replace('%{linkText}', `%#${disclaimerMessage.linkText}%#`)}\n urls={[disclaimerMessage.link]}\n />\n )}\n </LoadingWrapper>\n );\n};\n"],"names":["CardFieldsWrapper","data","valid","errors","handleChangeFor","sfpState","setFocusOn","cvcPolicy","focusedElement","hasInstallments","handleInstallments","showAmountsInInstallments","brandsIcons","formData","formErrors","formValid","expiryDatePolicy","dualBrandSelectElements","extensions","selectedBrandValue","showKCP","showBrazilianSSN","socialSecurityNumber","handleOnStoreDetails","billingAddress","handleAddress","setAddressRef","partialAddressSchema","onAddressLookup","onAddressSelected","addressSearchDebounceMs","amount","billingAddressRequired","billingAddressRequiredFields","billingAddressAllowedCountries","billingAddressValidationRules","brandsConfiguration","showStoreDetailsCheckbox","hasCVC","hasHolderName","holderNameRequired","installmentOptions","placeholders","positionHolderNameOnTop","showBrandIcon","showContextualElement","iOSFocusedField","disclaimerMessage","onFieldFocusAnalytics","onFieldBlurAnalytics","i18n","useCoreContext","cardHolderField","h","CardHolderName","required","placeholder","holderName","value","error","isValid","onBlur","onInput","disabled","showDualBrandSelectElements","mustHandleDualBrandingAccordingToEURegulations","DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM","LoadingWrapper","status","CardFields","brand","onFocusField","dualBrandingElements","length","Fieldset","classNameModifiers","label","get","p","className","RadioGroupExtended","name","items","mapDualBrandButtons","onChange","handleDualBrandSelection","showSelectedTick","KCPAuthentication","encryptedPasswordState","encryptedPassword","taxNumber","div","SocialSecurityNumberBrazil","StoreDetails","Installments","type","Address","allowedCountries","requiredFields","setComponentRef","validationRules","specifications","DisclaimerMessage","message","replace","linkText","urls","link"],"mappings":"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"}
1
+ {"version":3,"file":"CardFieldsWrapper.js","sources":["../../../../../../../src/components/Card/components/CardInput/components/CardFieldsWrapper.tsx"],"sourcesContent":["import { h } from 'preact';\nimport LoadingWrapper from '../../../../internal/LoadingWrapper';\nimport CardFields from './CardFields';\nimport KCPAuthentication from './KCPAuthentication';\nimport SocialSecurityNumberBrazil from '../../../../internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil';\nimport StoreDetails from '../../../../internal/StoreDetails';\nimport Address from '../../../../internal/Address';\nimport CardHolderName from './CardHolderName';\nimport Installments from './Installments';\nimport DisclaimerMessage from '../../../../internal/DisclaimerMessage';\nimport RadioGroupExtended from '../../../../internal/FormFields/RadioGroupExtended';\nimport { mapDualBrandButtons, mustHandleDualBrandingAccordingToEURegulations } from '../utils';\nimport Fieldset from '../../../../internal/FormFields/Fieldset';\nimport { useCoreContext } from '../../../../../core/Context/CoreProvider';\nimport { DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM } from '../../../constants';\n\nexport const CardFieldsWrapper = ({\n // vars created in CardInput:\n // base (shared)\n data,\n valid,\n errors,\n handleChangeFor,\n sfpState,\n setFocusOn,\n cvcPolicy,\n focusedElement,\n hasInstallments,\n handleInstallments,\n showAmountsInInstallments,\n // Card\n brandsIcons,\n formData,\n formErrors,\n formValid,\n expiryDatePolicy,\n dualBrandSelectElements,\n extensions,\n selectedBrandValue,\n // KCP\n showKCP,\n // SSN\n showBrazilianSSN,\n socialSecurityNumber,\n // Store details\n handleOnStoreDetails,\n // Address\n billingAddress,\n handleAddress,\n setAddressRef,\n partialAddressSchema,\n onAddressLookup,\n onAddressSelected,\n addressSearchDebounceMs,\n // For this comp (props passed through from CardInput)\n amount,\n billingAddressRequired,\n billingAddressRequiredFields,\n billingAddressAllowedCountries,\n billingAddressValidationRules = null,\n brandsConfiguration,\n showStoreDetailsCheckbox,\n hasCVC,\n hasHolderName,\n holderNameRequired,\n installmentOptions,\n placeholders,\n positionHolderNameOnTop,\n // For CardFields > CardNumber\n showBrandIcon,\n showContextualElement,\n //\n iOSFocusedField,\n disclaimerMessage,\n //\n onFieldFocusAnalytics,\n onFieldBlurAnalytics\n}) => {\n const { i18n } = useCoreContext();\n\n const cardHolderField = (\n <CardHolderName\n required={holderNameRequired}\n placeholder={placeholders.holderName}\n value={formData.holderName}\n error={!!formErrors.holderName && holderNameRequired}\n isValid={!!formValid.holderName}\n onBlur={handleChangeFor('holderName', 'blur')}\n onInput={handleChangeFor('holderName', 'input')}\n disabled={iOSFocusedField && iOSFocusedField !== 'holderName'}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n );\n\n // Only if the brands in DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM are present in the binLookup response should we handle dual branding based on EU regulations\n const showDualBrandSelectElements = mustHandleDualBrandingAccordingToEURegulations(\n DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM,\n dualBrandSelectElements,\n 'id'\n );\n\n return (\n <LoadingWrapper status={sfpState.status}>\n {hasHolderName && positionHolderNameOnTop && cardHolderField}\n\n <CardFields\n showBrandIcon={showBrandIcon}\n showContextualElement={showContextualElement}\n brand={sfpState.brand}\n brandsIcons={brandsIcons}\n brandsConfiguration={brandsConfiguration}\n focusedElement={focusedElement}\n onFocusField={setFocusOn}\n hasCVC={hasCVC}\n cvcPolicy={cvcPolicy}\n expiryDatePolicy={expiryDatePolicy}\n errors={sfpState.errors}\n valid={sfpState.valid}\n dualBrandingElements={dualBrandSelectElements.length > 0 && dualBrandSelectElements}\n />\n\n {hasHolderName && !positionHolderNameOnTop && cardHolderField}\n\n {showDualBrandSelectElements && dualBrandSelectElements.length > 0 && dualBrandSelectElements && (\n <Fieldset classNameModifiers={['dual-brand-switcher']} label={i18n.get('creditCard.dualBrand.title')}>\n <p className={'adyen-checkout-form-instruction'}>{i18n.get('creditCard.dualBrand.description')}</p>\n <RadioGroupExtended\n name={'dualBrandSwitcher'}\n value={selectedBrandValue} // Set which button is in a selected (checked) state\n items={mapDualBrandButtons(dualBrandSelectElements, brandsConfiguration)}\n onChange={extensions.handleDualBrandSelection}\n required={true}\n showSelectedTick={true}\n />\n </Fieldset>\n )}\n\n {showKCP && (\n <KCPAuthentication\n onFocusField={setFocusOn}\n focusedElement={focusedElement}\n encryptedPasswordState={{\n data: sfpState.encryptedPassword,\n valid: sfpState.valid ? sfpState.valid.encryptedPassword : false,\n errors: sfpState.errors ? sfpState.errors.encryptedPassword : false\n }}\n value={data.taxNumber}\n error={!!errors.taxNumber}\n isValid={!!valid.taxNumber}\n onBlur={handleChangeFor('taxNumber', 'blur')}\n onInput={handleChangeFor('taxNumber', 'input')}\n disabled={iOSFocusedField && iOSFocusedField !== 'kcpTaxNumberOrDOB'}\n placeholder={placeholders.taxNumber}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n )}\n\n {showBrazilianSSN && (\n <div className=\"adyen-checkout__card__socialSecurityNumber\">\n <SocialSecurityNumberBrazil\n onBlur={handleChangeFor('socialSecurityNumber', 'blur')}\n onInput={handleChangeFor('socialSecurityNumber', 'input')}\n error={errors?.socialSecurityNumber}\n valid={valid?.socialSecurityNumber}\n data={socialSecurityNumber}\n required={true}\n disabled={iOSFocusedField && iOSFocusedField !== 'socialSecurityNumber'}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n </div>\n )}\n\n {showStoreDetailsCheckbox && <StoreDetails onChange={handleOnStoreDetails} />}\n\n {hasInstallments && (\n <Installments\n amount={amount}\n brand={sfpState.brand}\n installmentOptions={installmentOptions}\n onChange={handleInstallments}\n type={showAmountsInInstallments ? 'amount' : 'months'}\n />\n )}\n\n {billingAddressRequired && (\n <Address\n label=\"billingAddress\"\n data={billingAddress}\n onChange={handleAddress}\n allowedCountries={billingAddressAllowedCountries}\n requiredFields={billingAddressRequiredFields}\n setComponentRef={setAddressRef}\n validationRules={billingAddressValidationRules}\n specifications={partialAddressSchema}\n iOSFocusedField={iOSFocusedField}\n onAddressLookup={onAddressLookup}\n showContextualElement={showContextualElement}\n onAddressSelected={onAddressSelected}\n addressSearchDebounceMs={addressSearchDebounceMs}\n onFieldFocusAnalytics={onFieldFocusAnalytics}\n onFieldBlurAnalytics={onFieldBlurAnalytics}\n />\n )}\n\n {disclaimerMessage && (\n <DisclaimerMessage\n message={disclaimerMessage.message.replace('%{linkText}', `%#${disclaimerMessage.linkText}%#`)}\n urls={[disclaimerMessage.link]}\n />\n )}\n </LoadingWrapper>\n );\n};\n"],"names":["CardFieldsWrapper","data","valid","errors","handleChangeFor","sfpState","setFocusOn","cvcPolicy","focusedElement","hasInstallments","handleInstallments","showAmountsInInstallments","brandsIcons","formData","formErrors","formValid","expiryDatePolicy","dualBrandSelectElements","extensions","selectedBrandValue","showKCP","showBrazilianSSN","socialSecurityNumber","handleOnStoreDetails","billingAddress","handleAddress","setAddressRef","partialAddressSchema","onAddressLookup","onAddressSelected","addressSearchDebounceMs","amount","billingAddressRequired","billingAddressRequiredFields","billingAddressAllowedCountries","billingAddressValidationRules","brandsConfiguration","showStoreDetailsCheckbox","hasCVC","hasHolderName","holderNameRequired","installmentOptions","placeholders","positionHolderNameOnTop","showBrandIcon","showContextualElement","iOSFocusedField","disclaimerMessage","onFieldFocusAnalytics","onFieldBlurAnalytics","i18n","useCoreContext","cardHolderField","h","CardHolderName","required","placeholder","holderName","value","error","isValid","onBlur","onInput","disabled","showDualBrandSelectElements","mustHandleDualBrandingAccordingToEURegulations","DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM","LoadingWrapper","status","CardFields","brand","onFocusField","dualBrandingElements","length","Fieldset","classNameModifiers","label","get","p","className","RadioGroupExtended","name","items","mapDualBrandButtons","onChange","handleDualBrandSelection","showSelectedTick","KCPAuthentication","encryptedPasswordState","encryptedPassword","taxNumber","div","SocialSecurityNumberBrazil","StoreDetails","Installments","type","Address","allowedCountries","requiredFields","setComponentRef","validationRules","specifications","DisclaimerMessage","message","replace","linkText","urls","link"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{AddressModeOptions as e}from"./types.js";var o={type:"scheme",setComponentRef:()=>{},autoFocus:!0,billingAddressAllowedCountries:[],billingAddressMode:e.full,billingAddressRequired:!1,billingAddressRequiredFields:["street","houseNumberOrName","postalCode","city","stateOrProvince","country"],configuration:{koreanAuthenticationRequired:!1,socialSecurityNumberMode:"auto"},data:{billingAddress:{}},disableIOSArrowKeys:!1,enableStoreDetails:!1,exposeExpiryDate:!1,forceCompat:!1,hasHolderName:!1,holderNameRequired:!1,hasCVC:!0,hideCVC:!1,installmentOptions:{},keypadFix:!0,legacyInputMode:!1,maskSecurityCode:!1,minimumExpiryDate:null,name:null,placeholders:{},positionHolderNameOnTop:!1,showBrandIcon:!0,showInstallmentAmounts:null,styles:{},isPayButtonPrimaryVariant:!0,showContextualElement:!0,onLoad:()=>{},onConfigSuccess:()=>{},onAllValid:()=>{},onFieldValid:()=>{},onBrand:()=>{},onError:()=>{},onBinValue:()=>{},onBlur:()=>{},onFocus:()=>{},onChange:()=>{}};export{o as default};
1
+ import{AddressModeOptions as e}from"./types.js";var o={type:"scheme",setComponentRef:()=>{},autoFocus:!0,billingAddressAllowedCountries:[],billingAddressMode:e.full,billingAddressRequired:!1,billingAddressRequiredFields:["street","houseNumberOrName","postalCode","city","stateOrProvince","country"],configuration:{koreanAuthenticationRequired:!1,socialSecurityNumberMode:"auto"},data:{billingAddress:{}},disableIOSArrowKeys:!1,enableStoreDetails:!1,exposeExpiryDate:!1,forceCompat:!1,hasHolderName:!1,holderNameRequired:!1,hasCVC:!0,hideCVC:!1,installmentOptions:{},keypadFix:!0,legacyInputMode:!1,maskSecurityCode:!1,minimumExpiryDate:null,name:null,placeholders:{},positionHolderNameOnTop:!1,showBrandIcon:!0,showInstallmentAmounts:null,styles:{},trimTrailingSeparator:!0,isPayButtonPrimaryVariant:!0,showContextualElement:!0,onLoad:()=>{},onConfigSuccess:()=>{},onAllValid:()=>{},onFieldValid:()=>{},onBrand:()=>{},onError:()=>{},onBinValue:()=>{},onBlur:()=>{},onFocus:()=>{},onChange:()=>{}};export{o as default};
2
2
  //# sourceMappingURL=defaultProps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultProps.js","sources":["../../../../../../src/components/Card/components/CardInput/defaultProps.ts"],"sourcesContent":["import { SocialSecurityMode } from '../../types';\nimport { AddressModeOptions } from './types';\n\nexport default {\n type: 'scheme',\n\n setComponentRef: () => {},\n\n // Settings\n autoFocus: true,\n billingAddressAllowedCountries: [],\n billingAddressMode: AddressModeOptions.full,\n billingAddressRequired: false,\n billingAddressRequiredFields: ['street', 'houseNumberOrName', 'postalCode', 'city', 'stateOrProvince', 'country'],\n\n configuration: { koreanAuthenticationRequired: false, socialSecurityNumberMode: 'auto' as SocialSecurityMode },\n data: {\n billingAddress: {}\n },\n disableIOSArrowKeys: false,\n enableStoreDetails: false,\n exposeExpiryDate: false,\n forceCompat: false,\n hasHolderName: false,\n holderNameRequired: false,\n hasCVC: true,\n hideCVC: false,\n installmentOptions: {},\n keypadFix: true,\n legacyInputMode: false,\n maskSecurityCode: false,\n minimumExpiryDate: null,\n name: null, // Affects Dropin only, the name displayed in the PMList item\n placeholders: {},\n positionHolderNameOnTop: false,\n showBrandIcon: true,\n showInstallmentAmounts: null,\n styles: {},\n\n isPayButtonPrimaryVariant: true,\n showContextualElement: true,\n\n // Events\n onLoad: (): any => {},\n onConfigSuccess: (): any => {},\n onAllValid: (): any => {},\n onFieldValid: (): any => {},\n onBrand: (): any => {},\n onError: (): any => {},\n onBinValue: (): any => {},\n onBlur: (): any => {},\n onFocus: (): any => {},\n onChange: (): any => {}\n};\n"],"names":["CardInputDefaultProps","type","setComponentRef","autoFocus","billingAddressAllowedCountries","billingAddressMode","AddressModeOptions","full","billingAddressRequired","billingAddressRequiredFields","configuration","koreanAuthenticationRequired","socialSecurityNumberMode","data","billingAddress","disableIOSArrowKeys","enableStoreDetails","exposeExpiryDate","forceCompat","hasHolderName","holderNameRequired","hasCVC","hideCVC","installmentOptions","keypadFix","legacyInputMode","maskSecurityCode","minimumExpiryDate","name","placeholders","positionHolderNameOnTop","showBrandIcon","showInstallmentAmounts","styles","isPayButtonPrimaryVariant","showContextualElement","onLoad","onConfigSuccess","onAllValid","onFieldValid","onBrand","onError","onBinValue","onBlur","onFocus","onChange"],"mappings":"gDAGA,IAAAA,EAAe,CACXC,KAAM,SAENC,gBAAiB,OAGjBC,WAAW,EACXC,+BAAgC,GAChCC,mBAAoBC,EAAmBC,KACvCC,wBAAwB,EACxBC,6BAA8B,CAAC,SAAU,oBAAqB,aAAc,OAAQ,kBAAmB,WAEvGC,cAAe,CAAEC,8BAA8B,EAAOC,yBAA0B,QAChFC,KAAM,CACFC,eAAgB,CAAA,GAEpBC,qBAAqB,EACrBC,oBAAoB,EACpBC,kBAAkB,EAClBC,aAAa,EACbC,eAAe,EACfC,oBAAoB,EACpBC,QAAQ,EACRC,SAAS,EACTC,mBAAoB,CAAA,EACpBC,WAAW,EACXC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAmB,KACnBC,KAAM,KACNC,aAAc,CAAA,EACdC,yBAAyB,EACzBC,eAAe,EACfC,uBAAwB,KACxBC,OAAQ,CAAA,EAERC,2BAA2B,EAC3BC,uBAAuB,EAGvBC,OAAQ,OACRC,gBAAiB,OACjBC,WAAY,OACZC,aAAc,OACdC,QAAS,OACTC,QAAS,OACTC,WAAY,OACZC,OAAQ,OACRC,QAAS,OACTC,SAAU"}
1
+ {"version":3,"file":"defaultProps.js","sources":["../../../../../../src/components/Card/components/CardInput/defaultProps.ts"],"sourcesContent":["import { SocialSecurityMode } from '../../types';\nimport { AddressModeOptions } from './types';\n\nexport default {\n type: 'scheme',\n\n setComponentRef: () => {},\n\n // Settings\n autoFocus: true,\n billingAddressAllowedCountries: [],\n billingAddressMode: AddressModeOptions.full,\n billingAddressRequired: false,\n billingAddressRequiredFields: ['street', 'houseNumberOrName', 'postalCode', 'city', 'stateOrProvince', 'country'],\n\n configuration: { koreanAuthenticationRequired: false, socialSecurityNumberMode: 'auto' as SocialSecurityMode },\n data: {\n billingAddress: {}\n },\n disableIOSArrowKeys: false,\n enableStoreDetails: false,\n exposeExpiryDate: false,\n forceCompat: false,\n hasHolderName: false,\n holderNameRequired: false,\n hasCVC: true,\n hideCVC: false,\n installmentOptions: {},\n keypadFix: true,\n legacyInputMode: false,\n maskSecurityCode: false,\n minimumExpiryDate: null,\n name: null, // Affects Dropin only, the name displayed in the PMList item\n placeholders: {},\n positionHolderNameOnTop: false,\n showBrandIcon: true,\n showInstallmentAmounts: null,\n styles: {},\n trimTrailingSeparator: true,\n\n isPayButtonPrimaryVariant: true,\n showContextualElement: true,\n\n // Events\n onLoad: (): any => {},\n onConfigSuccess: (): any => {},\n onAllValid: (): any => {},\n onFieldValid: (): any => {},\n onBrand: (): any => {},\n onError: (): any => {},\n onBinValue: (): any => {},\n onBlur: (): any => {},\n onFocus: (): any => {},\n onChange: (): any => {}\n};\n"],"names":["CardInputDefaultProps","type","setComponentRef","autoFocus","billingAddressAllowedCountries","billingAddressMode","AddressModeOptions","full","billingAddressRequired","billingAddressRequiredFields","configuration","koreanAuthenticationRequired","socialSecurityNumberMode","data","billingAddress","disableIOSArrowKeys","enableStoreDetails","exposeExpiryDate","forceCompat","hasHolderName","holderNameRequired","hasCVC","hideCVC","installmentOptions","keypadFix","legacyInputMode","maskSecurityCode","minimumExpiryDate","name","placeholders","positionHolderNameOnTop","showBrandIcon","showInstallmentAmounts","styles","trimTrailingSeparator","isPayButtonPrimaryVariant","showContextualElement","onLoad","onConfigSuccess","onAllValid","onFieldValid","onBrand","onError","onBinValue","onBlur","onFocus","onChange"],"mappings":"gDAGA,IAAAA,EAAe,CACXC,KAAM,SAENC,gBAAiB,OAGjBC,WAAW,EACXC,+BAAgC,GAChCC,mBAAoBC,EAAmBC,KACvCC,wBAAwB,EACxBC,6BAA8B,CAAC,SAAU,oBAAqB,aAAc,OAAQ,kBAAmB,WAEvGC,cAAe,CAAEC,8BAA8B,EAAOC,yBAA0B,QAChFC,KAAM,CACFC,eAAgB,CAAA,GAEpBC,qBAAqB,EACrBC,oBAAoB,EACpBC,kBAAkB,EAClBC,aAAa,EACbC,eAAe,EACfC,oBAAoB,EACpBC,QAAQ,EACRC,SAAS,EACTC,mBAAoB,CAAA,EACpBC,WAAW,EACXC,iBAAiB,EACjBC,kBAAkB,EAClBC,kBAAmB,KACnBC,KAAM,KACNC,aAAc,CAAA,EACdC,yBAAyB,EACzBC,eAAe,EACfC,uBAAwB,KACxBC,OAAQ,CAAA,EACRC,uBAAuB,EAEvBC,2BAA2B,EAC3BC,uBAAuB,EAGvBC,OAAQ,OACRC,gBAAiB,OACjBC,WAAY,OACZC,aAAc,OACdC,QAAS,OACTC,QAAS,OACTC,WAAY,OACZC,OAAQ,OACRC,QAAS,OACTC,SAAU"}
@@ -1,2 +1,2 @@
1
- import{AddressModeOptions as e}from"./types.js";import{CREDIT_CARD_NAME_TOP as o,CREDIT_CARD_NAME_BOTTOM as n,KCP_CARD_NAME_TOP as i,KCP_CARD_NAME_BOTTOM as r,SSN_CARD_NAME_TOP as t,SSN_CARD_NAME_BOTTOM as l,CREDIT_CARD as s,KCP_CARD as a,SSN_CARD as d}from"./layouts.js";import{PARTIAL_ADDRESS_SCHEMA as u}from"../../../internal/Address/constants.js";import{DEFAULT_CARD_GROUP_TYPES as c,BRAND_READABLE_NAME_MAP as m}from"../../../internal/SecuredFields/lib/constants.js";import p from"../../../../core/Context/useImage.js";import{SF_ErrorCodes as g}from"../../../../core/Errors/constants.js";import{DEFAULT_CHALLENGE_WINDOW_SIZE as h}from"../../../ThreeDS2/constants.js";import y from"./defaultProps.js";import{isConfigurationValid as b}from"../Fastlane/utils/validate-configuration.js";import{notFalsy as O}from"../../../../utils/commonUtils.js";function f(e,o,n){return o in e?Object.defineProperty(e,o,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[o]=n,e}function C(e){for(var o=1;o<arguments.length;o++){var n=null!=arguments[o]?arguments[o]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(o){f(e,o,n[o])})}return e}function S(e,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):function(e){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o.push.apply(o,n)}return o}(Object(o)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))}),e}const v=(e,o)=>o({type:"card"===e?"nocard":e||"nocard",extension:"svg"})(e),A=e=>"revolving"===(null==e?void 0:e.plan)||(null==e?void 0:e.value)>1,R=({props:e,showKCP:u,showBrazilianSSN:c,countrySpecificSchemas:m=null,billingAddressRequiredFields:p=null})=>{let g=s;const h=e.hasHolderName&&e.holderNameRequired;if(h&&(g=e.positionHolderNameOnTop?o:n),u&&(g=a,h&&(g=e.positionHolderNameOnTop?i:r)),c&&(g=d,h&&(g=e.positionHolderNameOnTop?t:l)),m){const i=m.flat(2).filter(e=>"number"!=typeof e);let r=i;p&&(r=i.filter(e=>p.includes(e))),g=s.concat(r),h&&(g=e.positionHolderNameOnTop?o.concat(r):n.concat(r))}return g},w=(e,o,n)=>{switch(e){case"socialSecurityNumber":return o.get(`boleto.${e}`);case"street":case"houseNumberOrName":case"postalCode":case"stateOrProvince":case"city":case"country":return(null==n?void 0:n[e])?o.get(null==n?void 0:n[e]):o.get(e);default:return null}},F=e=>({amount:e.amount,billingAddressRequired:e.billingAddressRequired,billingAddressRequiredFields:e.billingAddressRequiredFields,billingAddressAllowedCountries:e.billingAddressAllowedCountries,brandsConfiguration:e.brandsConfiguration,showStoreDetailsCheckbox:e.showStoreDetailsCheckbox,hasCVC:e.hasCVC,hasHolderName:e.hasHolderName,holderNameRequired:e.holderNameRequired,installmentOptions:e.installmentOptions,placeholders:e.placeholders,positionHolderNameOnTop:e.positionHolderNameOnTop,showBrandIcon:e.showBrandIcon,showContextualElement:e.showContextualElement,lastFour:e.lastFour,expiryMonth:e.expiryMonth,expiryYear:e.expiryYear,disclaimerMessage:e.disclaimerMessage}),E=e=>({autoFocus:e.autoFocus,brands:e.brands,brandsConfiguration:e.brandsConfiguration,clientKey:e.clientKey,countryCode:e.countryCode,forceCompat:e.forceCompat,i18n:e.i18n,implementationType:e.implementationType,keypadFix:e.keypadFix,legacyInputMode:e.legacyInputMode,loadingContext:e.loadingContext,maskSecurityCode:e.maskSecurityCode,exposeExpiryDate:e.exposeExpiryDate,minimumExpiryDate:e.minimumExpiryDate,onAdditionalSFConfig:e.onAdditionalSFConfig,onAdditionalSFRemoved:e.onAdditionalSFRemoved,onAllValid:e.onAllValid,onAutoComplete:e.onAutoComplete,onBinValue:e.onBinValue,onConfigSuccess:e.onConfigSuccess,handleKeyPress:e.handleKeyPress,onError:e.onError,onFieldValid:e.onFieldValid,onLoad:e.onLoad,placeholders:e.placeholders,resources:e.resources,showContextualElement:e.showContextualElement,showWarnings:e.showWarnings,trimTrailingSeparator:e.trimTrailingSeparator}),x=o=>o==e.partial?u:null;function N(e){return![g.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,g.ERROR_MSG_CARD_TOO_OLD,g.ERROR_MSG_CARD_TOO_FAR_IN_FUTURE,g.ERROR_MSG_CARD_EXPIRES_TOO_SOON].includes(e)}function P(e){var o;return null!==(o=m[e])&&void 0!==o?o:e}const D=e=>{var o,n,i,r,t,l,s,a;const{autoFocus:d,billingAddressAllowedCountries:u,billingAddressMode:m,billingAddressRequired:p,billingAddressRequiredFields:g,brands:f=c,brandsConfiguration:v,challengeWindowSize:A=h,configuration:R,countryCode:w,data:F,disclaimerMessage:E,disableIOSArrowKeys:x,doBinLookup:N,enableStoreDetails:P,exposeExpiryDate:D,fastlaneConfiguration:j,forceCompat:B,hasHolderName:k,hideCVC:T,holderNameRequired:M,installmentOptions:V,keypadFix:_,legacyInputMode:I,maskSecurityCode:q,minimumExpiryDate:H,name:L,placeholders:K,positionHolderNameOnTop:U,showBrandIcon:G,showInstallmentAmounts:W,showPayButton:z=!1,styles:J,onAllValid:Y,onBinLookup:X,onBinValue:$,onBlur:Q,onBrand:Z,onConfigSuccess:ee,onEnterKeyPressed:oe,onFieldValid:ne,onFocus:ie,onLoad:re}=e,te=JSON.stringify(y.data),le=null===(n=e.modules)||void 0===n||null===(o=n.srPanel)||void 0===o?void 0:o.enabled,se=null===(r=e.modules)||void 0===r||null===(i=r.srPanel)||void 0===i?void 0:i.moveFocus,ae=null===(l=e.modules)||void 0===l||null===(t=l.risk)||void 0===t?void 0:t.enabled,de=b(j),ue=e.onAddressLookup?"lookup":m;let ce="none";!0===(null==R?void 0:R.koreanAuthenticationRequired)&&(ce="kr"===(null==w?void 0:w.toLowerCase())?"atStart":"auto");return C(S(C({autoFocus:d},(null==u?void 0:u.length)>0&&{billingAddressAllowedCountries:u.toString().substring(0,128)}),{billingAddressMode:ue,billingAddressRequired:p,billingAddressRequiredFields:null==g||null===(s=g.toString())||void 0===s?void 0:s.substring(0,128),brands:null==f||null===(a=f.toString())||void 0===a?void 0:a.substring(0,128),challengeWindowSize:A,disableIOSArrowKeys:x,doBinLookup:N,enableStoreDetails:P,exposeExpiryDate:D,forceCompat:B,hasBrandsConfiguration:O(v),hasData:F&&JSON.stringify(e.data)!==te,hasDisclaimerMessage:!!E,hasHolderName:k,hasInstallmentOptions:O(V),hasPlaceholders:O(K),hasStylesConfigured:O(J),hideCVC:T,holderNameRequired:M,keypadFix:_,legacyInputMode:I,maskSecurityCode:q,minimumExpiryDate:!!H,name:L,positionHolderNameOnTop:U,riskEnabled:ae,showBrandIcon:G,showInstallmentAmounts:!!W,showKCPType:ce,showPayButton:z,socialSecurityNumberMode:null==R?void 0:R.socialSecurityNumberMode,srPanelEnabled:le,srPanelMoveFocus:se,hasOnAllValid:Y!==y.onAllValid,hasOnBinValue:$!==y.onBinValue,hasOnBlur:Q!==y.onBlur,hasOnBrand:Z!==y.onBrand,hasOnConfigSuccess:ee!==y.onConfigSuccess,hasOnFieldValid:ne!==y.onFieldValid,hasOnFocus:ie!==y.onFocus,hasOnLoad:re!==y.onLoad,hasOnBinLookup:!!X,hasOnEnterKeyPressed:!!oe}),de&&{hasFastlaneConfigured:!0,isFastlaneConsentDefaultOn:j.defaultToggleState})},j=(e,o)=>e.map(e=>{var n;const i=e.id,r=p(),t="card"===i?"nocard":i;var l;const s=null!==(l=null===(n=o[i])||void 0===n?void 0:n.icon)&&void 0!==l?l:v(t,r);return{id:e.id,name:e.brandObject.localeBrand||e.brandObject.brand,imageURL:s,altName:P(i)}}),B=(e,o,n)=>!!o.filter(o=>e.includes(o[n])).length;export{F as extractPropsForCardFields,E as extractPropsForSFP,D as getCardConfigData,v as getCardImageUrl,P as getFullBrandName,R as getLayout,x as handlePartialAddressMode,A as hasValidInstallmentsObject,N as lookupBlurBasedErrors,j as mapDualBrandButtons,w as mapFieldKey,B as mustHandleDualBrandingAccordingToEURegulations};
1
+ import{AddressModeOptions as e}from"./types.js";import{CREDIT_CARD_NAME_TOP as o,CREDIT_CARD_NAME_BOTTOM as n,KCP_CARD_NAME_TOP as i,KCP_CARD_NAME_BOTTOM as r,SSN_CARD_NAME_TOP as t,SSN_CARD_NAME_BOTTOM as l,CREDIT_CARD as a,KCP_CARD as s,SSN_CARD as d}from"./layouts.js";import{PARTIAL_ADDRESS_SCHEMA as u}from"../../../internal/Address/constants.js";import{DEFAULT_CARD_GROUP_TYPES as c,BRAND_READABLE_NAME_MAP as m}from"../../../internal/SecuredFields/lib/constants.js";import p from"../../../../core/Context/useImage.js";import{SF_ErrorCodes as g}from"../../../../core/Errors/constants.js";import{DEFAULT_CHALLENGE_WINDOW_SIZE as h}from"../../../ThreeDS2/constants.js";import y from"./defaultProps.js";import{isConfigurationValid as b}from"../Fastlane/utils/validate-configuration.js";import{notFalsy as O}from"../../../../utils/commonUtils.js";function f(e,o,n){return o in e?Object.defineProperty(e,o,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[o]=n,e}function C(e){for(var o=1;o<arguments.length;o++){var n=null!=arguments[o]?arguments[o]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(o){f(e,o,n[o])})}return e}function S(e,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):function(e){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);o.push.apply(o,n)}return o}(Object(o)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(o,n))}),e}const v=(e,o)=>o({type:"card"===e?"nocard":e||"nocard",extension:"svg"})(e),A=e=>"revolving"===(null==e?void 0:e.plan)||(null==e?void 0:e.value)>1,R=({props:e,showKCP:u,showBrazilianSSN:c,countrySpecificSchemas:m=null,billingAddressRequiredFields:p=null})=>{let g=a;const h=e.hasHolderName&&e.holderNameRequired;if(h&&(g=e.positionHolderNameOnTop?o:n),u&&(g=s,h&&(g=e.positionHolderNameOnTop?i:r)),c&&(g=d,h&&(g=e.positionHolderNameOnTop?t:l)),m){const i=m.flat(2).filter(e=>"number"!=typeof e);let r=i;p&&(r=i.filter(e=>p.includes(e))),g=a.concat(r),h&&(g=e.positionHolderNameOnTop?o.concat(r):n.concat(r))}return g},w=(e,o,n)=>{switch(e){case"socialSecurityNumber":return o.get(`boleto.${e}`);case"street":case"houseNumberOrName":case"postalCode":case"stateOrProvince":case"city":case"country":return(null==n?void 0:n[e])?o.get(null==n?void 0:n[e]):o.get(e);default:return null}},F=e=>({amount:e.amount,billingAddressRequired:e.billingAddressRequired,billingAddressRequiredFields:e.billingAddressRequiredFields,billingAddressAllowedCountries:e.billingAddressAllowedCountries,brandsConfiguration:e.brandsConfiguration,showStoreDetailsCheckbox:e.showStoreDetailsCheckbox,hasCVC:e.hasCVC,hasHolderName:e.hasHolderName,holderNameRequired:e.holderNameRequired,installmentOptions:e.installmentOptions,placeholders:e.placeholders,positionHolderNameOnTop:e.positionHolderNameOnTop,showBrandIcon:e.showBrandIcon,showContextualElement:e.showContextualElement,lastFour:e.lastFour,expiryMonth:e.expiryMonth,expiryYear:e.expiryYear,disclaimerMessage:e.disclaimerMessage}),E=e=>({autoFocus:e.autoFocus,brands:e.brands,brandsConfiguration:e.brandsConfiguration,clientKey:e.clientKey,countryCode:e.countryCode,forceCompat:e.forceCompat,i18n:e.i18n,implementationType:e.implementationType,keypadFix:e.keypadFix,legacyInputMode:e.legacyInputMode,loadingContext:e.loadingContext,maskSecurityCode:e.maskSecurityCode,exposeExpiryDate:e.exposeExpiryDate,minimumExpiryDate:e.minimumExpiryDate,onAdditionalSFConfig:e.onAdditionalSFConfig,onAdditionalSFRemoved:e.onAdditionalSFRemoved,onAllValid:e.onAllValid,onAutoComplete:e.onAutoComplete,onBinValue:e.onBinValue,onConfigSuccess:e.onConfigSuccess,handleKeyPress:e.handleKeyPress,onError:e.onError,onFieldValid:e.onFieldValid,onLoad:e.onLoad,placeholders:e.placeholders,resources:e.resources,showContextualElement:e.showContextualElement,showWarnings:e.showWarnings,trimTrailingSeparator:e.trimTrailingSeparator}),x=o=>o==e.partial?u:null;function N(e){return![g.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,g.ERROR_MSG_CARD_TOO_OLD,g.ERROR_MSG_CARD_TOO_FAR_IN_FUTURE,g.ERROR_MSG_CARD_EXPIRES_TOO_SOON].includes(e)}function P(e){var o;return null!==(o=m[e])&&void 0!==o?o:e}const D=e=>{var o,n,i,r,t,l,a,s;const{autoFocus:d,billingAddressAllowedCountries:u,billingAddressMode:m,billingAddressRequired:p,billingAddressRequiredFields:g,brands:f=c,brandsConfiguration:v,challengeWindowSize:A=h,configuration:R,countryCode:w,data:F,disclaimerMessage:E,disableIOSArrowKeys:x,doBinLookup:N,enableStoreDetails:P,exposeExpiryDate:D,fastlaneConfiguration:j,forceCompat:B,hasHolderName:T,hideCVC:k,holderNameRequired:M,installmentOptions:V,keypadFix:_,legacyInputMode:I,maskSecurityCode:q,minimumExpiryDate:H,name:L,placeholders:K,positionHolderNameOnTop:U,showBrandIcon:G,showInstallmentAmounts:W,showPayButton:z=!1,styles:J,trimTrailingSeparator:Y,onAllValid:X,onBinLookup:$,onBinValue:Q,onBlur:Z,onBrand:ee,onConfigSuccess:oe,onEnterKeyPressed:ne,onFieldValid:ie,onFocus:re,onLoad:te}=e,le=JSON.stringify(y.data),ae=null===(n=e.modules)||void 0===n||null===(o=n.srPanel)||void 0===o?void 0:o.enabled,se=null===(r=e.modules)||void 0===r||null===(i=r.srPanel)||void 0===i?void 0:i.moveFocus,de=null===(l=e.modules)||void 0===l||null===(t=l.risk)||void 0===t?void 0:t.enabled,ue=b(j),ce=e.onAddressLookup?"lookup":m;let me="none";!0===(null==R?void 0:R.koreanAuthenticationRequired)&&(me="kr"===(null==w?void 0:w.toLowerCase())?"atStart":"auto");return C(S(C({autoFocus:d},(null==u?void 0:u.length)>0&&{billingAddressAllowedCountries:u.toString().substring(0,128)}),{billingAddressMode:ce,billingAddressRequired:p,billingAddressRequiredFields:null==g||null===(a=g.toString())||void 0===a?void 0:a.substring(0,128),brands:null==f||null===(s=f.toString())||void 0===s?void 0:s.substring(0,128),challengeWindowSize:A,disableIOSArrowKeys:x,doBinLookup:N,enableStoreDetails:P,exposeExpiryDate:D,forceCompat:B,hasBrandsConfiguration:O(v),hasData:F&&JSON.stringify(e.data)!==le,hasDisclaimerMessage:!!E,hasHolderName:T,hasInstallmentOptions:O(V),hasPlaceholders:O(K),hasStylesConfigured:O(J),hideCVC:k,holderNameRequired:M,keypadFix:_,legacyInputMode:I,maskSecurityCode:q,minimumExpiryDate:!!H,name:L,positionHolderNameOnTop:U,riskEnabled:de,showBrandIcon:G,showInstallmentAmounts:!!W,showKCPType:me,showPayButton:z,socialSecurityNumberMode:null==R?void 0:R.socialSecurityNumberMode,srPanelEnabled:ae,srPanelMoveFocus:se,trimTrailingSeparator:Y,hasOnAllValid:X!==y.onAllValid,hasOnBinValue:Q!==y.onBinValue,hasOnBlur:Z!==y.onBlur,hasOnBrand:ee!==y.onBrand,hasOnConfigSuccess:oe!==y.onConfigSuccess,hasOnFieldValid:ie!==y.onFieldValid,hasOnFocus:re!==y.onFocus,hasOnLoad:te!==y.onLoad,hasOnBinLookup:!!$,hasOnEnterKeyPressed:!!ne}),ue&&{hasFastlaneConfigured:!0,isFastlaneConsentDefaultOn:j.defaultToggleState})},j=(e,o)=>e.map(e=>{var n;const i=e.id,r=p(),t="card"===i?"nocard":i;var l;const a=null!==(l=null===(n=o[i])||void 0===n?void 0:n.icon)&&void 0!==l?l:v(t,r);return{id:e.id,name:e.brandObject.localeBrand||e.brandObject.brand,imageURL:a,altName:P(i)}}),B=(e,o,n)=>o.some(o=>e.includes(o[n]));export{F as extractPropsForCardFields,E as extractPropsForSFP,D as getCardConfigData,v as getCardImageUrl,P as getFullBrandName,R as getLayout,x as handlePartialAddressMode,A as hasValidInstallmentsObject,N as lookupBlurBasedErrors,j as mapDualBrandButtons,w as mapFieldKey,B as mustHandleDualBrandingAccordingToEURegulations};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../src/components/Card/components/CardInput/utils.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport { AddressModeOptions, CardInputProps, LayoutObj } from './types';\nimport {\n CREDIT_CARD,\n CREDIT_CARD_NAME_BOTTOM,\n CREDIT_CARD_NAME_TOP,\n KCP_CARD,\n KCP_CARD_NAME_BOTTOM,\n KCP_CARD_NAME_TOP,\n SSN_CARD,\n SSN_CARD_NAME_BOTTOM,\n SSN_CARD_NAME_TOP\n} from './layouts';\nimport { AddressSpecifications, StringObject } from '../../../internal/Address/types';\nimport { PARTIAL_ADDRESS_SCHEMA } from '../../../internal/Address/constants';\nimport { InstallmentsObj } from './components/Installments/Installments';\nimport { SFPProps } from '../../../internal/SecuredFields/SFP/types';\nimport { BRAND_READABLE_NAME_MAP, DEFAULT_CARD_GROUP_TYPES } from '../../../internal/SecuredFields/lib/constants';\nimport useImage, { UseImageHookType } from '../../../../core/Context/useImage';\nimport { SF_ErrorCodes } from '../../../../core/Errors/constants';\nimport { BrandObject, CardBrandsConfiguration, CardConfiguration, DualBrandSelectElement } from '../../types';\nimport { CardConfigData } from '../../../../core/Analytics/types';\nimport { DEFAULT_CHALLENGE_WINDOW_SIZE } from '../../../ThreeDS2/constants';\nimport CardInputDefaultProps from './defaultProps';\nimport { isConfigurationValid as isFastlaneComponentConfigValid } from '../Fastlane/utils/validate-configuration';\nimport { notFalsy } from '../../../../utils/commonUtils';\n\nexport const getCardImageUrl = (brand: string, getImage: UseImageHookType): string => {\n const imageOptions = {\n type: brand === 'card' ? 'nocard' : brand || 'nocard',\n extension: 'svg'\n };\n\n return getImage(imageOptions)(brand);\n};\n\n/**\n * Verifies that installment object is valid to send to the Backend.\n * Valid means that it has 'revolving' plan set, or the number of installments is bigger than one\n */\nexport const hasValidInstallmentsObject = (installments?: InstallmentsObj) => {\n return installments?.plan === 'revolving' || installments?.value > 1;\n};\n\nexport const getLayout = ({\n props,\n showKCP,\n showBrazilianSSN,\n countrySpecificSchemas = null,\n billingAddressRequiredFields = null\n}: LayoutObj): string[] => {\n let layout = CREDIT_CARD;\n const hasRequiredHolderName = props.hasHolderName && props.holderNameRequired;\n\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? CREDIT_CARD_NAME_TOP : CREDIT_CARD_NAME_BOTTOM;\n }\n\n if (showKCP) {\n layout = KCP_CARD;\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? KCP_CARD_NAME_TOP : KCP_CARD_NAME_BOTTOM;\n }\n }\n\n if (showBrazilianSSN) {\n layout = SSN_CARD;\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? SSN_CARD_NAME_TOP : SSN_CARD_NAME_BOTTOM;\n }\n }\n\n // w. Billing address\n if (countrySpecificSchemas) {\n // Flatten array and remove any numbers that describe how fields should be aligned\n const countrySpecificSchemasFlat: string[] = countrySpecificSchemas['flat'](2).filter(item => typeof item !== 'number') as string[];\n\n let countryBasedAddressLayout = countrySpecificSchemasFlat;\n\n if (billingAddressRequiredFields) {\n // Get intersection of the 2 arrays\n countryBasedAddressLayout = countrySpecificSchemasFlat.filter(x => billingAddressRequiredFields.includes(x));\n }\n\n layout = CREDIT_CARD.concat(countryBasedAddressLayout);\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop\n ? CREDIT_CARD_NAME_TOP.concat(countryBasedAddressLayout)\n : CREDIT_CARD_NAME_BOTTOM.concat(countryBasedAddressLayout);\n }\n // TODO we are not yet creating a layout for AVS + SSN field (w. or w/o holderName) - is AVS + SSN a real world scenario?\n }\n return layout;\n};\n\n/**\n * Lookup service to map local (CardInput) field refs to a key, possibly region specific, by which to retrieve the translation\n */\nexport const mapFieldKey = (key: string, i18n: Language, countrySpecificLabels: StringObject): string => {\n // console.log('### utils::mapFieldKey:: key', key);\n switch (key) {\n case 'socialSecurityNumber':\n return i18n.get(`boleto.${key}`);\n // Address related - if we have a country specific key for the field - use that to get the translation\n case 'street':\n case 'houseNumberOrName':\n case 'postalCode':\n case 'stateOrProvince':\n case 'city':\n case 'country':\n return countrySpecificLabels?.[key] ? i18n.get(countrySpecificLabels?.[key]) : i18n.get(key);\n // We know that the translated error messages do contain a reference to the field they refer to, so we won't need to map them (currently applies mostly to SecuredFields related errors)\n default:\n return null;\n }\n};\n\nexport const extractPropsForCardFields = (props: CardInputProps) => {\n return {\n // Extract props for CardFieldsWrapper & StoredCardFieldsWrapper(just needs amount, hasCVC, installmentOptions)\n amount: props.amount,\n billingAddressRequired: props.billingAddressRequired,\n billingAddressRequiredFields: props.billingAddressRequiredFields,\n billingAddressAllowedCountries: props.billingAddressAllowedCountries,\n brandsConfiguration: props.brandsConfiguration,\n showStoreDetailsCheckbox: props.showStoreDetailsCheckbox,\n hasCVC: props.hasCVC,\n hasHolderName: props.hasHolderName,\n holderNameRequired: props.holderNameRequired,\n installmentOptions: props.installmentOptions,\n placeholders: props.placeholders,\n positionHolderNameOnTop: props.positionHolderNameOnTop,\n // Extract props for CardFields > CardNumber\n showBrandIcon: props.showBrandIcon,\n showContextualElement: props.showContextualElement,\n // Extract props for StoredCardFields\n lastFour: props.lastFour,\n expiryMonth: props.expiryMonth,\n expiryYear: props.expiryYear,\n disclaimerMessage: props.disclaimerMessage\n };\n};\n\nexport const extractPropsForSFP = (props: CardInputProps) => {\n return {\n autoFocus: props.autoFocus,\n brands: props.brands,\n brandsConfiguration: props.brandsConfiguration,\n clientKey: props.clientKey,\n countryCode: props.countryCode,\n forceCompat: props.forceCompat,\n i18n: props.i18n,\n implementationType: props.implementationType,\n keypadFix: props.keypadFix,\n legacyInputMode: props.legacyInputMode,\n loadingContext: props.loadingContext,\n maskSecurityCode: props.maskSecurityCode,\n exposeExpiryDate: props.exposeExpiryDate,\n minimumExpiryDate: props.minimumExpiryDate,\n onAdditionalSFConfig: props.onAdditionalSFConfig,\n onAdditionalSFRemoved: props.onAdditionalSFRemoved,\n onAllValid: props.onAllValid,\n onAutoComplete: props.onAutoComplete,\n onBinValue: props.onBinValue,\n onConfigSuccess: props.onConfigSuccess,\n handleKeyPress: props.handleKeyPress,\n onError: props.onError,\n onFieldValid: props.onFieldValid,\n onLoad: props.onLoad,\n placeholders: props.placeholders,\n resources: props.resources,\n showContextualElement: props.showContextualElement,\n showWarnings: props.showWarnings,\n trimTrailingSeparator: props.trimTrailingSeparator\n } as SFPProps; // Can't set as return type on fn or it will complain about missing, mandatory, props\n};\n\nexport const handlePartialAddressMode = (addressMode: AddressModeOptions): AddressSpecifications | null => {\n return addressMode == AddressModeOptions.partial ? PARTIAL_ADDRESS_SCHEMA : null;\n};\n\n// Almost all errors are blur based, but some SF ones are not i.e. when an unsupported card is entered or the expiry date is out of range\nexport function lookupBlurBasedErrors(errorCode) {\n // If it's NOT one of these, then it's a blur based error\n return ![\n SF_ErrorCodes.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,\n SF_ErrorCodes.ERROR_MSG_CARD_TOO_OLD,\n SF_ErrorCodes.ERROR_MSG_CARD_TOO_FAR_IN_FUTURE,\n SF_ErrorCodes.ERROR_MSG_CARD_EXPIRES_TOO_SOON\n ].includes(errorCode);\n}\n\nexport function getFullBrandName(brand) {\n return BRAND_READABLE_NAME_MAP[brand] ?? brand;\n}\n\nexport const getCardConfigData = (cardProps: CardConfiguration): CardConfigData => {\n const MAX_LENGTH = 128;\n\n // Extract props from cardProps - mostly setting a default value, if prop not found\n const {\n autoFocus,\n billingAddressAllowedCountries,\n billingAddressMode,\n billingAddressRequired,\n billingAddressRequiredFields,\n brands = DEFAULT_CARD_GROUP_TYPES,\n brandsConfiguration,\n challengeWindowSize = DEFAULT_CHALLENGE_WINDOW_SIZE,\n configuration,\n countryCode,\n data,\n disclaimerMessage,\n disableIOSArrowKeys,\n doBinLookup,\n enableStoreDetails,\n exposeExpiryDate,\n fastlaneConfiguration,\n forceCompat,\n hasHolderName,\n hideCVC,\n holderNameRequired,\n installmentOptions,\n keypadFix,\n legacyInputMode,\n maskSecurityCode,\n minimumExpiryDate,\n name, // = 'none',\n placeholders,\n positionHolderNameOnTop,\n showBrandIcon,\n showInstallmentAmounts,\n showPayButton = false, // hard coded default\n styles,\n onAllValid,\n onBinLookup,\n onBinValue,\n onBlur,\n onBrand,\n onConfigSuccess,\n onEnterKeyPressed,\n onFieldValid,\n onFocus,\n onLoad\n } = cardProps;\n\n const dataString = JSON.stringify(CardInputDefaultProps.data);\n\n const srPanelEnabled = cardProps.modules?.srPanel?.enabled;\n const srPanelMoveFocus = cardProps.modules?.srPanel?.moveFocus;\n\n const riskEnabled = cardProps.modules?.risk?.enabled;\n\n const isFastlaneConfigValid = isFastlaneComponentConfigValid(fastlaneConfiguration);\n\n const billingAddressModeValue = cardProps.onAddressLookup ? 'lookup' : billingAddressMode;\n\n let showKCPType: 'none' | 'auto' | 'atStart' = 'none';\n if (configuration?.koreanAuthenticationRequired === true) {\n showKCPType = countryCode?.toLowerCase() === 'kr' ? 'atStart' : 'auto';\n }\n\n const configData: CardConfigData = {\n autoFocus,\n ...(billingAddressAllowedCountries?.length > 0 && {\n billingAddressAllowedCountries: billingAddressAllowedCountries.toString().substring(0, MAX_LENGTH)\n }),\n billingAddressMode: billingAddressModeValue,\n billingAddressRequired,\n billingAddressRequiredFields: billingAddressRequiredFields?.toString()?.substring(0, MAX_LENGTH),\n // Probably just for development - in real life we wouldn't expect the number of supported brands to push the endpoint limit on 128 chars\n brands: brands?.toString()?.substring(0, MAX_LENGTH),\n challengeWindowSize,\n disableIOSArrowKeys,\n doBinLookup,\n enableStoreDetails,\n exposeExpiryDate,\n forceCompat,\n hasBrandsConfiguration: notFalsy(brandsConfiguration),\n hasData: data && JSON.stringify(cardProps.data) !== dataString,\n hasDisclaimerMessage: !!disclaimerMessage,\n hasHolderName,\n hasInstallmentOptions: notFalsy(installmentOptions),\n hasPlaceholders: notFalsy(placeholders), // has merchant defined placeholders\n hasStylesConfigured: notFalsy(styles),\n hideCVC,\n holderNameRequired,\n keypadFix,\n legacyInputMode,\n maskSecurityCode,\n minimumExpiryDate: !!minimumExpiryDate, // Potentially, in the future, we can send the actual string value\n name,\n positionHolderNameOnTop,\n riskEnabled,\n showBrandIcon,\n showInstallmentAmounts: !!showInstallmentAmounts,\n showKCPType,\n showPayButton,\n socialSecurityNumberMode: configuration?.socialSecurityNumberMode,\n srPanelEnabled,\n srPanelMoveFocus,\n /** callbacks */\n // We need to detect if the merchant themselves has defined these, not if we've set them as a default\n hasOnAllValid: onAllValid !== CardInputDefaultProps.onAllValid,\n hasOnBinValue: onBinValue !== CardInputDefaultProps.onBinValue,\n hasOnBlur: onBlur !== CardInputDefaultProps.onBlur,\n hasOnBrand: onBrand !== CardInputDefaultProps.onBrand,\n hasOnConfigSuccess: onConfigSuccess !== CardInputDefaultProps.onConfigSuccess,\n hasOnFieldValid: onFieldValid !== CardInputDefaultProps.onFieldValid,\n hasOnFocus: onFocus !== CardInputDefaultProps.onFocus,\n hasOnLoad: onLoad !== CardInputDefaultProps.onLoad,\n // Card level props\n hasOnBinLookup: !!onBinLookup,\n hasOnEnterKeyPressed: !!onEnterKeyPressed,\n /**\n * Fastlane\n */\n ...(isFastlaneConfigValid && {\n hasFastlaneConfigured: true,\n isFastlaneConsentDefaultOn: fastlaneConfiguration.defaultToggleState\n })\n };\n\n return configData;\n};\n\nexport const mapDualBrandButtons = (dualBrandSelectElements: DualBrandSelectElement[], brandsConfiguration: CardBrandsConfiguration): any => {\n return dualBrandSelectElements.map(item => {\n const brand = item.id;\n const getImage = useImage();\n const imageName = brand === 'card' ? 'nocard' : brand;\n const imageURL = brandsConfiguration[brand]?.icon ?? getCardImageUrl(imageName, getImage);\n\n // TODO - check below if we have to still generate altName through the mapping function or whether it just\n // corresponds to item.brandObject.localeBrand\n return {\n id: item.id,\n name: item.brandObject.localeBrand || item.brandObject.brand,\n imageURL,\n altName: getFullBrandName(brand)\n };\n });\n};\n\n/**\n * Only if the brands in EU_BrandArray are present in the binLookup response should we handle dual branding based on EU regulations\n *\n * If the result from Array.filter contains anything - then we are in a EU dual branding regulation scenario, i.e.\n * - Show the new dualBranding UI Buttons\n * - Preselect a card brand\n */\nexport const mustHandleDualBrandingAccordingToEURegulations = (\n EU_BrandArray: string[],\n returnedDualBrandingObjects: DualBrandSelectElement[] | BrandObject[],\n key: string\n) => !!returnedDualBrandingObjects.filter(item => EU_BrandArray.includes(item[key])).length;\n"],"names":["getCardImageUrl","brand","getImage","type","extension","hasValidInstallmentsObject","installments","plan","value","getLayout","props","showKCP","showBrazilianSSN","countrySpecificSchemas","billingAddressRequiredFields","layout","CREDIT_CARD","hasRequiredHolderName","hasHolderName","holderNameRequired","positionHolderNameOnTop","CREDIT_CARD_NAME_TOP","CREDIT_CARD_NAME_BOTTOM","KCP_CARD","KCP_CARD_NAME_TOP","KCP_CARD_NAME_BOTTOM","SSN_CARD","SSN_CARD_NAME_TOP","SSN_CARD_NAME_BOTTOM","countrySpecificSchemasFlat","filter","item","countryBasedAddressLayout","x","includes","concat","mapFieldKey","key","i18n","countrySpecificLabels","get","extractPropsForCardFields","amount","billingAddressRequired","billingAddressAllowedCountries","brandsConfiguration","showStoreDetailsCheckbox","hasCVC","installmentOptions","placeholders","showBrandIcon","showContextualElement","lastFour","expiryMonth","expiryYear","disclaimerMessage","extractPropsForSFP","autoFocus","brands","clientKey","countryCode","forceCompat","implementationType","keypadFix","legacyInputMode","loadingContext","maskSecurityCode","exposeExpiryDate","minimumExpiryDate","onAdditionalSFConfig","onAdditionalSFRemoved","onAllValid","onAutoComplete","onBinValue","onConfigSuccess","handleKeyPress","onError","onFieldValid","onLoad","resources","showWarnings","trimTrailingSeparator","handlePartialAddressMode","addressMode","AddressModeOptions","partial","PARTIAL_ADDRESS_SCHEMA","lookupBlurBasedErrors","errorCode","SF_ErrorCodes","ERROR_MSG_UNSUPPORTED_CARD_ENTERED","ERROR_MSG_CARD_TOO_OLD","ERROR_MSG_CARD_TOO_FAR_IN_FUTURE","ERROR_MSG_CARD_EXPIRES_TOO_SOON","getFullBrandName","BRAND_READABLE_NAME_MAP","getCardConfigData","cardProps","billingAddressMode","DEFAULT_CARD_GROUP_TYPES","challengeWindowSize","DEFAULT_CHALLENGE_WINDOW_SIZE","configuration","data","disableIOSArrowKeys","doBinLookup","enableStoreDetails","fastlaneConfiguration","hideCVC","name","showInstallmentAmounts","showPayButton","styles","onBinLookup","onBlur","onBrand","onEnterKeyPressed","onFocus","dataString","JSON","stringify","CardInputDefaultProps","srPanelEnabled","modules","srPanel","enabled","srPanelMoveFocus","moveFocus","riskEnabled","risk","isFastlaneConfigValid","isFastlaneComponentConfigValid","billingAddressModeValue","onAddressLookup","showKCPType","koreanAuthenticationRequired","toLowerCase","_object_spread","_object_spread_props","length","toString","substring","hasBrandsConfiguration","notFalsy","hasData","hasDisclaimerMessage","hasInstallmentOptions","hasPlaceholders","hasStylesConfigured","socialSecurityNumberMode","hasOnAllValid","hasOnBinValue","hasOnBlur","hasOnBrand","hasOnConfigSuccess","hasOnFieldValid","hasOnFocus","hasOnLoad","hasOnBinLookup","hasOnEnterKeyPressed","hasFastlaneConfigured","isFastlaneConsentDefaultOn","defaultToggleState","mapDualBrandButtons","dualBrandSelectElements","map","id","useImage","imageName","imageURL","icon","brandObject","localeBrand","altName","mustHandleDualBrandingAccordingToEURegulations","EU_BrandArray","returnedDualBrandingObjects"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/components/Card/components/CardInput/utils.ts"],"sourcesContent":["import Language from '../../../../language/Language';\nimport { AddressModeOptions, CardInputProps, LayoutObj } from './types';\nimport {\n CREDIT_CARD,\n CREDIT_CARD_NAME_BOTTOM,\n CREDIT_CARD_NAME_TOP,\n KCP_CARD,\n KCP_CARD_NAME_BOTTOM,\n KCP_CARD_NAME_TOP,\n SSN_CARD,\n SSN_CARD_NAME_BOTTOM,\n SSN_CARD_NAME_TOP\n} from './layouts';\nimport { AddressSpecifications, StringObject } from '../../../internal/Address/types';\nimport { PARTIAL_ADDRESS_SCHEMA } from '../../../internal/Address/constants';\nimport { InstallmentsObj } from './components/Installments/Installments';\nimport { SFPProps } from '../../../internal/SecuredFields/SFP/types';\nimport { BRAND_READABLE_NAME_MAP, DEFAULT_CARD_GROUP_TYPES } from '../../../internal/SecuredFields/lib/constants';\nimport useImage, { UseImageHookType } from '../../../../core/Context/useImage';\nimport { SF_ErrorCodes } from '../../../../core/Errors/constants';\nimport { BrandObject, CardBrandsConfiguration, CardConfiguration, DualBrandSelectElement } from '../../types';\nimport { CardConfigData } from '../../../../core/Analytics/types';\nimport { DEFAULT_CHALLENGE_WINDOW_SIZE } from '../../../ThreeDS2/constants';\nimport CardInputDefaultProps from './defaultProps';\nimport { isConfigurationValid as isFastlaneComponentConfigValid } from '../Fastlane/utils/validate-configuration';\nimport { notFalsy } from '../../../../utils/commonUtils';\n\nexport const getCardImageUrl = (brand: string, getImage: UseImageHookType): string => {\n const imageOptions = {\n type: brand === 'card' ? 'nocard' : brand || 'nocard',\n extension: 'svg'\n };\n\n return getImage(imageOptions)(brand);\n};\n\n/**\n * Verifies that installment object is valid to send to the Backend.\n * Valid means that it has 'revolving' plan set, or the number of installments is bigger than one\n */\nexport const hasValidInstallmentsObject = (installments?: InstallmentsObj) => {\n return installments?.plan === 'revolving' || installments?.value > 1;\n};\n\nexport const getLayout = ({\n props,\n showKCP,\n showBrazilianSSN,\n countrySpecificSchemas = null,\n billingAddressRequiredFields = null\n}: LayoutObj): string[] => {\n let layout = CREDIT_CARD;\n const hasRequiredHolderName = props.hasHolderName && props.holderNameRequired;\n\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? CREDIT_CARD_NAME_TOP : CREDIT_CARD_NAME_BOTTOM;\n }\n\n if (showKCP) {\n layout = KCP_CARD;\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? KCP_CARD_NAME_TOP : KCP_CARD_NAME_BOTTOM;\n }\n }\n\n if (showBrazilianSSN) {\n layout = SSN_CARD;\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop ? SSN_CARD_NAME_TOP : SSN_CARD_NAME_BOTTOM;\n }\n }\n\n // w. Billing address\n if (countrySpecificSchemas) {\n // Flatten array and remove any numbers that describe how fields should be aligned\n const countrySpecificSchemasFlat: string[] = countrySpecificSchemas['flat'](2).filter(item => typeof item !== 'number') as string[];\n\n let countryBasedAddressLayout = countrySpecificSchemasFlat;\n\n if (billingAddressRequiredFields) {\n // Get intersection of the 2 arrays\n countryBasedAddressLayout = countrySpecificSchemasFlat.filter(x => billingAddressRequiredFields.includes(x));\n }\n\n layout = CREDIT_CARD.concat(countryBasedAddressLayout);\n if (hasRequiredHolderName) {\n layout = props.positionHolderNameOnTop\n ? CREDIT_CARD_NAME_TOP.concat(countryBasedAddressLayout)\n : CREDIT_CARD_NAME_BOTTOM.concat(countryBasedAddressLayout);\n }\n // TODO we are not yet creating a layout for AVS + SSN field (w. or w/o holderName) - is AVS + SSN a real world scenario?\n }\n return layout;\n};\n\n/**\n * Lookup service to map local (CardInput) field refs to a key, possibly region specific, by which to retrieve the translation\n */\nexport const mapFieldKey = (key: string, i18n: Language, countrySpecificLabels: StringObject): string => {\n // console.log('### utils::mapFieldKey:: key', key);\n switch (key) {\n case 'socialSecurityNumber':\n return i18n.get(`boleto.${key}`);\n // Address related - if we have a country specific key for the field - use that to get the translation\n case 'street':\n case 'houseNumberOrName':\n case 'postalCode':\n case 'stateOrProvince':\n case 'city':\n case 'country':\n return countrySpecificLabels?.[key] ? i18n.get(countrySpecificLabels?.[key]) : i18n.get(key);\n // We know that the translated error messages do contain a reference to the field they refer to, so we won't need to map them (currently applies mostly to SecuredFields related errors)\n default:\n return null;\n }\n};\n\nexport const extractPropsForCardFields = (props: CardInputProps) => {\n return {\n // Extract props for CardFieldsWrapper & StoredCardFieldsWrapper(just needs amount, hasCVC, installmentOptions)\n amount: props.amount,\n billingAddressRequired: props.billingAddressRequired,\n billingAddressRequiredFields: props.billingAddressRequiredFields,\n billingAddressAllowedCountries: props.billingAddressAllowedCountries,\n brandsConfiguration: props.brandsConfiguration,\n showStoreDetailsCheckbox: props.showStoreDetailsCheckbox,\n hasCVC: props.hasCVC,\n hasHolderName: props.hasHolderName,\n holderNameRequired: props.holderNameRequired,\n installmentOptions: props.installmentOptions,\n placeholders: props.placeholders,\n positionHolderNameOnTop: props.positionHolderNameOnTop,\n // Extract props for CardFields > CardNumber\n showBrandIcon: props.showBrandIcon,\n showContextualElement: props.showContextualElement,\n // Extract props for StoredCardFields\n lastFour: props.lastFour,\n expiryMonth: props.expiryMonth,\n expiryYear: props.expiryYear,\n disclaimerMessage: props.disclaimerMessage\n };\n};\n\nexport const extractPropsForSFP = (props: CardInputProps) => {\n return {\n autoFocus: props.autoFocus,\n brands: props.brands,\n brandsConfiguration: props.brandsConfiguration,\n clientKey: props.clientKey,\n countryCode: props.countryCode,\n forceCompat: props.forceCompat,\n i18n: props.i18n,\n implementationType: props.implementationType,\n keypadFix: props.keypadFix,\n legacyInputMode: props.legacyInputMode,\n loadingContext: props.loadingContext,\n maskSecurityCode: props.maskSecurityCode,\n exposeExpiryDate: props.exposeExpiryDate,\n minimumExpiryDate: props.minimumExpiryDate,\n onAdditionalSFConfig: props.onAdditionalSFConfig,\n onAdditionalSFRemoved: props.onAdditionalSFRemoved,\n onAllValid: props.onAllValid,\n onAutoComplete: props.onAutoComplete,\n onBinValue: props.onBinValue,\n onConfigSuccess: props.onConfigSuccess,\n handleKeyPress: props.handleKeyPress,\n onError: props.onError,\n onFieldValid: props.onFieldValid,\n onLoad: props.onLoad,\n placeholders: props.placeholders,\n resources: props.resources,\n showContextualElement: props.showContextualElement,\n showWarnings: props.showWarnings,\n trimTrailingSeparator: props.trimTrailingSeparator\n } as SFPProps; // Can't set as return type on fn or it will complain about missing, mandatory, props\n};\n\nexport const handlePartialAddressMode = (addressMode: AddressModeOptions): AddressSpecifications | null => {\n return addressMode == AddressModeOptions.partial ? PARTIAL_ADDRESS_SCHEMA : null;\n};\n\n// Almost all errors are blur based, but some SF ones are not i.e. when an unsupported card is entered or the expiry date is out of range\nexport function lookupBlurBasedErrors(errorCode) {\n // If it's NOT one of these, then it's a blur based error\n return ![\n SF_ErrorCodes.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,\n SF_ErrorCodes.ERROR_MSG_CARD_TOO_OLD,\n SF_ErrorCodes.ERROR_MSG_CARD_TOO_FAR_IN_FUTURE,\n SF_ErrorCodes.ERROR_MSG_CARD_EXPIRES_TOO_SOON\n ].includes(errorCode);\n}\n\nexport function getFullBrandName(brand) {\n return BRAND_READABLE_NAME_MAP[brand] ?? brand;\n}\n\nexport const getCardConfigData = (cardProps: CardConfiguration): CardConfigData => {\n const MAX_LENGTH = 128;\n\n // Extract props from cardProps - mostly setting a default value, if prop not found\n const {\n autoFocus,\n billingAddressAllowedCountries,\n billingAddressMode,\n billingAddressRequired,\n billingAddressRequiredFields,\n brands = DEFAULT_CARD_GROUP_TYPES,\n brandsConfiguration,\n challengeWindowSize = DEFAULT_CHALLENGE_WINDOW_SIZE,\n configuration,\n countryCode,\n data,\n disclaimerMessage,\n disableIOSArrowKeys,\n doBinLookup,\n enableStoreDetails,\n exposeExpiryDate,\n fastlaneConfiguration,\n forceCompat,\n hasHolderName,\n hideCVC,\n holderNameRequired,\n installmentOptions,\n keypadFix,\n legacyInputMode,\n maskSecurityCode,\n minimumExpiryDate,\n name, // = 'none',\n placeholders,\n positionHolderNameOnTop,\n showBrandIcon,\n showInstallmentAmounts,\n showPayButton = false, // hard coded default\n styles,\n trimTrailingSeparator,\n onAllValid,\n onBinLookup,\n onBinValue,\n onBlur,\n onBrand,\n onConfigSuccess,\n onEnterKeyPressed,\n onFieldValid,\n onFocus,\n onLoad\n } = cardProps;\n\n const dataString = JSON.stringify(CardInputDefaultProps.data);\n\n const srPanelEnabled = cardProps.modules?.srPanel?.enabled;\n const srPanelMoveFocus = cardProps.modules?.srPanel?.moveFocus;\n\n const riskEnabled = cardProps.modules?.risk?.enabled;\n\n const isFastlaneConfigValid = isFastlaneComponentConfigValid(fastlaneConfiguration);\n\n const billingAddressModeValue = cardProps.onAddressLookup ? 'lookup' : billingAddressMode;\n\n let showKCPType: 'none' | 'auto' | 'atStart' = 'none';\n if (configuration?.koreanAuthenticationRequired === true) {\n showKCPType = countryCode?.toLowerCase() === 'kr' ? 'atStart' : 'auto';\n }\n\n const configData: CardConfigData = {\n autoFocus,\n ...(billingAddressAllowedCountries?.length > 0 && {\n billingAddressAllowedCountries: billingAddressAllowedCountries.toString().substring(0, MAX_LENGTH)\n }),\n billingAddressMode: billingAddressModeValue,\n billingAddressRequired,\n billingAddressRequiredFields: billingAddressRequiredFields?.toString()?.substring(0, MAX_LENGTH),\n // Probably just for development - in real life we wouldn't expect the number of supported brands to push the endpoint limit on 128 chars\n brands: brands?.toString()?.substring(0, MAX_LENGTH),\n challengeWindowSize,\n disableIOSArrowKeys,\n doBinLookup,\n enableStoreDetails,\n exposeExpiryDate,\n forceCompat,\n hasBrandsConfiguration: notFalsy(brandsConfiguration),\n hasData: data && JSON.stringify(cardProps.data) !== dataString,\n hasDisclaimerMessage: !!disclaimerMessage,\n hasHolderName,\n hasInstallmentOptions: notFalsy(installmentOptions),\n hasPlaceholders: notFalsy(placeholders), // has merchant defined placeholders\n hasStylesConfigured: notFalsy(styles),\n hideCVC,\n holderNameRequired,\n keypadFix,\n legacyInputMode,\n maskSecurityCode,\n minimumExpiryDate: !!minimumExpiryDate, // Potentially, in the future, we can send the actual string value\n name,\n positionHolderNameOnTop,\n riskEnabled,\n showBrandIcon,\n showInstallmentAmounts: !!showInstallmentAmounts,\n showKCPType,\n showPayButton,\n socialSecurityNumberMode: configuration?.socialSecurityNumberMode,\n srPanelEnabled,\n srPanelMoveFocus,\n trimTrailingSeparator,\n /** callbacks */\n // We need to detect if the merchant themselves has defined these, not if we've set them as a default\n hasOnAllValid: onAllValid !== CardInputDefaultProps.onAllValid,\n hasOnBinValue: onBinValue !== CardInputDefaultProps.onBinValue,\n hasOnBlur: onBlur !== CardInputDefaultProps.onBlur,\n hasOnBrand: onBrand !== CardInputDefaultProps.onBrand,\n hasOnConfigSuccess: onConfigSuccess !== CardInputDefaultProps.onConfigSuccess,\n hasOnFieldValid: onFieldValid !== CardInputDefaultProps.onFieldValid,\n hasOnFocus: onFocus !== CardInputDefaultProps.onFocus,\n hasOnLoad: onLoad !== CardInputDefaultProps.onLoad,\n // Card level props\n hasOnBinLookup: !!onBinLookup,\n hasOnEnterKeyPressed: !!onEnterKeyPressed,\n /**\n * Fastlane\n */\n ...(isFastlaneConfigValid && {\n hasFastlaneConfigured: true,\n isFastlaneConsentDefaultOn: fastlaneConfiguration.defaultToggleState\n })\n };\n\n return configData;\n};\n\nexport const mapDualBrandButtons = (dualBrandSelectElements: DualBrandSelectElement[], brandsConfiguration: CardBrandsConfiguration): any => {\n return dualBrandSelectElements.map(item => {\n const brand = item.id;\n const getImage = useImage();\n const imageName = brand === 'card' ? 'nocard' : brand;\n const imageURL = brandsConfiguration[brand]?.icon ?? getCardImageUrl(imageName, getImage);\n\n // TODO - check below if we have to still generate altName through the mapping function or whether it just\n // corresponds to item.brandObject.localeBrand\n return {\n id: item.id,\n name: item.brandObject.localeBrand || item.brandObject.brand,\n imageURL,\n altName: getFullBrandName(brand)\n };\n });\n};\n\n/**\n * Only if the brands in EU_BrandArray are present in the binLookup response should we handle dual branding based on EU regulations\n *\n * If the result from Array.some is true - then we are in a EU dual branding regulation scenario, i.e.\n * - Show the new dualBranding UI Buttons\n * - Preselect a card brand\n */\nexport const mustHandleDualBrandingAccordingToEURegulations = (\n EU_BrandArray: readonly string[],\n returnedDualBrandingObjects: DualBrandSelectElement[] | BrandObject[],\n key: string\n) => returnedDualBrandingObjects.some(item => EU_BrandArray.includes(item[key]));\n"],"names":["getCardImageUrl","brand","getImage","type","extension","hasValidInstallmentsObject","installments","plan","value","getLayout","props","showKCP","showBrazilianSSN","countrySpecificSchemas","billingAddressRequiredFields","layout","CREDIT_CARD","hasRequiredHolderName","hasHolderName","holderNameRequired","positionHolderNameOnTop","CREDIT_CARD_NAME_TOP","CREDIT_CARD_NAME_BOTTOM","KCP_CARD","KCP_CARD_NAME_TOP","KCP_CARD_NAME_BOTTOM","SSN_CARD","SSN_CARD_NAME_TOP","SSN_CARD_NAME_BOTTOM","countrySpecificSchemasFlat","filter","item","countryBasedAddressLayout","x","includes","concat","mapFieldKey","key","i18n","countrySpecificLabels","get","extractPropsForCardFields","amount","billingAddressRequired","billingAddressAllowedCountries","brandsConfiguration","showStoreDetailsCheckbox","hasCVC","installmentOptions","placeholders","showBrandIcon","showContextualElement","lastFour","expiryMonth","expiryYear","disclaimerMessage","extractPropsForSFP","autoFocus","brands","clientKey","countryCode","forceCompat","implementationType","keypadFix","legacyInputMode","loadingContext","maskSecurityCode","exposeExpiryDate","minimumExpiryDate","onAdditionalSFConfig","onAdditionalSFRemoved","onAllValid","onAutoComplete","onBinValue","onConfigSuccess","handleKeyPress","onError","onFieldValid","onLoad","resources","showWarnings","trimTrailingSeparator","handlePartialAddressMode","addressMode","AddressModeOptions","partial","PARTIAL_ADDRESS_SCHEMA","lookupBlurBasedErrors","errorCode","SF_ErrorCodes","ERROR_MSG_UNSUPPORTED_CARD_ENTERED","ERROR_MSG_CARD_TOO_OLD","ERROR_MSG_CARD_TOO_FAR_IN_FUTURE","ERROR_MSG_CARD_EXPIRES_TOO_SOON","getFullBrandName","BRAND_READABLE_NAME_MAP","getCardConfigData","cardProps","billingAddressMode","DEFAULT_CARD_GROUP_TYPES","challengeWindowSize","DEFAULT_CHALLENGE_WINDOW_SIZE","configuration","data","disableIOSArrowKeys","doBinLookup","enableStoreDetails","fastlaneConfiguration","hideCVC","name","showInstallmentAmounts","showPayButton","styles","onBinLookup","onBlur","onBrand","onEnterKeyPressed","onFocus","dataString","JSON","stringify","CardInputDefaultProps","srPanelEnabled","modules","srPanel","enabled","srPanelMoveFocus","moveFocus","riskEnabled","risk","isFastlaneConfigValid","isFastlaneComponentConfigValid","billingAddressModeValue","onAddressLookup","showKCPType","koreanAuthenticationRequired","toLowerCase","_object_spread","_object_spread_props","length","toString","substring","hasBrandsConfiguration","notFalsy","hasData","hasDisclaimerMessage","hasInstallmentOptions","hasPlaceholders","hasStylesConfigured","socialSecurityNumberMode","hasOnAllValid","hasOnBinValue","hasOnBlur","hasOnBrand","hasOnConfigSuccess","hasOnFieldValid","hasOnFocus","hasOnLoad","hasOnBinLookup","hasOnEnterKeyPressed","hasFastlaneConfigured","isFastlaneConsentDefaultOn","defaultToggleState","mapDualBrandButtons","dualBrandSelectElements","map","id","useImage","imageName","imageURL","icon","brandObject","localeBrand","altName","mustHandleDualBrandingAccordingToEURegulations","EU_BrandArray","returnedDualBrandingObjects","some"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as e,Fragment as t}from"../../../../external/preact/dist/preact.js";import{useMemo as n,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 c from"../../../internal/Img/Img.js";import l from"../../../../core/Context/useImage.js";import m from"./USOnlyPhoneInput.js";import{InfoButton as f}from"./InfoButton.js";import{useCoreContext as d}from"../../../../core/Context/CoreProvider.js";import{LabelOnlyDisclaimerMessage as u}from"../../../internal/DisclaimerMessage/DisclaimerMessage.js";import{isConfigurationValid as g}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 b}from"../../../../core/Analytics/AnalyticsInfoEvent.js";function h(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function j(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},a=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),a.forEach(function(t){h(e,t,n[t])})}return e}const k=["mc","visa"],_=({showConsent:h,defaultToggleState:_,termsAndConditionsLink:v,privacyPolicyLink:C,termsAndConditionsVersion:S,fastlaneSessionId:O,currentDetectedBrand:w,telephoneNumber:I,onChange:x,onSubmitAnalytics:A})=>{const P=n(()=>h&&k.includes(w),[h,w]),[T,D]=a(P),[N,L]=a(_),E=l(),[V,F]=a(""),{i18n:M}=d(),B=n(()=>g({showConsent:h,defaultToggleState:_,termsAndConditionsLink:v,privacyPolicyLink:C,termsAndConditionsVersion:S,fastlaneSessionId:O}),[h,_,v,C,S,O]),G=o(()=>{const e=!N;L(e);const t=new b({type:y.clicked,target:"fastlane_signup_consent_toggle",configData:{isToggleOn:e}});A(t)},[N,A]);return s(()=>{B&&x({fastlaneData:j({consentShown:T,fastlaneSessionId:O,consentGiven:!!P&&N},S&&{consentVersion:S},V&&{telephoneNumber:V})})},[P,T,S,N,O,V,x,B]),s(()=>{P&&D(!0)},[P]),s(()=>{if(!B)return;const e=new b({type:y.rendered,configData:{isFastlaneSignupRendered:P}});A(e)},[P,B,A]),P&&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":N})},e(i,{checked:N,onChange:G,ariaLabel:M.get("card.fastlane.consentToggle"),label:e("span",null,M.get("card.fastlane.consentToggle"))}),e(f,null)),N&&e(t,null,e(m,{initialValue:p(I),onChange:F}),e("div",{className:"adyen-checkout-card__fastlane-consent-text"},e(u,{message:M.get("card.fastlane.consentText"),urls:[v,C]})),e(c,{className:"adyen-checkout-card__fastlane-brand",src:E({imageFolder:"components/"})("paypal_fastlane_black"),alt:M.get("card.fastlane.a11y.logo")}))):null};export{_ 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 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 f}from"./InfoButton.js";import{useCoreContext as d}from"../../../../core/Context/CoreProvider.js";import{LabelOnlyDisclaimerMessage as u}from"../../../internal/DisclaimerMessage/DisclaimerMessage.js";import{isConfigurationValid as g}from"./utils/validate-configuration.js";import p from"./utils/mobile-number-formatter.js";import{AnalyticsInfoEvent as y,InfoEventType as b}from"../../../../core/Analytics/AnalyticsInfoEvent.js";function h(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function j(e){for(var n=1;n<arguments.length;n++){var t=null!=arguments[n]?arguments[n]:{},a=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(a=a.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.forEach(function(n){h(e,n,t[n])})}return e}const k=["mc","visa"],_=({showConsent:h,defaultToggleState:_,termsAndConditionsLink:v,privacyPolicyLink:C,termsAndConditionsVersion:S,fastlaneSessionId:O,currentDetectedBrand:w,telephoneNumber:I,onChange:x,onSubmitAnalytics:P})=>{const T=t(()=>h&&k.includes(w),[h,w]),[A,D]=a(T),[N,L]=a(_),E=c(),[V,F]=a(""),{i18n:M}=d(),B=t(()=>g({showConsent:h,defaultToggleState:_,termsAndConditionsLink:v,privacyPolicyLink:C,termsAndConditionsVersion:S,fastlaneSessionId:O}),[h,_,v,C,S,O]),G=o(()=>{const e=!N;L(e);const n=new y({type:b.clicked,target:"fastlane_signup_consent_toggle",configData:{isToggleOn:e}});P(n)},[N,P]);return s(()=>{B&&x({fastlaneData:j({consentShown:A,fastlaneSessionId:O,consentGiven:!!T&&N},S&&{consentVersion:S},V&&{telephoneNumber:V})})},[T,A,S,N,O,V,x,B]),s(()=>{T&&D(!0)},[T]),s(()=>{if(!B)return;const e=new y({type:b.rendered,configData:{isFastlaneSignupRendered:T}});P(e)},[T,B,P]),T&&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":N})},e(i,{checked:N,onChange:G,ariaLabel:M.get("card.fastlane.consentToggle"),label:e("span",null,M.get("card.fastlane.consentToggle"))}),e(f,null)),N&&e(n,null,e(m,{initialValue:p(I),onChange:F}),e("div",{className:"adyen-checkout-card__fastlane-consent-text"},e(u,{message:M.get("card.fastlane.consentText"),urls:[v,C]})),e(l,{className:"adyen-checkout-card__fastlane-brand",src:E({imageFolder:"components/"})("paypal_fastlane_black"),alt:M.get("card.fastlane.a11y.logo")}))):null};export{_ 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 { 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","_object_spread","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":"w2CAyBA,MAAMA,EAAmB,CAAC,KAAM,QAE1BC,EAAiB,EACnBC,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,oBACAC,uBACAC,gBAAiBC,EACjBC,WACAC,wBAEA,MAAMC,EAAsBC,EAAQ,IAAMZ,GAAeF,EAAiBe,SAASP,GAAuB,CAACN,EAAaM,KACjHQ,EAAyBC,GAA8BC,EAAkBL,IACzEM,EAAWC,GAAgBF,EAAkBf,GAC9CkB,EAAWC,KACVb,EAAiBc,GAAsBL,EAAiB,KACzDM,KAAEA,GAASC,IACXC,EAA+BZ,EAAQ,IAClCa,EAAqB,CACxBzB,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,sBAEL,CAACL,EAAaC,EAAoBC,EAAwBC,EAAmBC,EAA2BC,IAErGqB,EAAqBC,EAAY,KACnC,MAAMC,GAAYX,EAClBC,EAAaU,GAEb,MAAMC,EAAQ,IAAIC,EAAmB,CACjCC,KAAMC,EAAeC,QACrBC,OAAQ,iCACRC,WAAY,CACRC,WAAYR,KAGpBlB,EAAkBmB,IACnB,CAACZ,EAAWP,IAyDf,OAjDA2B,EAAU,KACDb,GAILf,EAAS,CACL6B,aAAcC,EAAA,CACVC,aAAc1B,EACdT,kBAAmBA,EACnBoC,eAAc9B,GAAsBM,GAChCb,GAA6B,CAAEsC,eAAgBtC,GAC/CG,GAAmB,CAAEA,uBAGlC,CACCI,EACAG,EACAV,EACAa,EACAZ,EACAE,EACAE,EACAe,IAMJa,EAAU,KACF1B,GACAI,GAA2B,IAEhC,CAACJ,IAEJ0B,EAAU,KACN,IAAKb,EACD,OAGJ,MAAMK,EAAQ,IAAIC,EAAmB,CACjCC,KAAMC,EAAeW,SACrBR,WAAY,CACRS,yBAA0BjC,KAIlCD,EAAkBmB,IACnB,CAAClB,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,EAAAA,OAGJvC,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 type { FastlaneSignupConfiguration } from '../../../PayPalFastlane/types';\n\nimport './FastlaneSignup.scss';\nimport { AnalyticsInfoEvent, InfoEventType } 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: InfoEventType.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: InfoEventType.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","InfoEventType","clicked","target","configData","isToggleOn","useEffect","fastlaneData","_object_spread","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":"kzCAwBA,MAAMA,EAAmB,CAAC,KAAM,QAE1BC,EAAiB,EACnBC,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,oBACAC,uBACAC,gBAAiBC,EACjBC,WACAC,wBAEA,MAAMC,EAAsBC,EAAQ,IAAMZ,GAAeF,EAAiBe,SAASP,GAAuB,CAACN,EAAaM,KACjHQ,EAAyBC,GAA8BC,EAAkBL,IACzEM,EAAWC,GAAgBF,EAAkBf,GAC9CkB,EAAWC,KACVb,EAAiBc,GAAsBL,EAAiB,KACzDM,KAAEA,GAASC,IACXC,EAA+BZ,EAAQ,IAClCa,EAAqB,CACxBzB,cACAC,qBACAC,yBACAC,oBACAC,4BACAC,sBAEL,CAACL,EAAaC,EAAoBC,EAAwBC,EAAmBC,EAA2BC,IAErGqB,EAAqBC,EAAY,KACnC,MAAMC,GAAYX,EAClBC,EAAaU,GAEb,MAAMC,EAAQ,IAAIC,EAAmB,CACjCC,KAAMC,EAAcC,QACpBC,OAAQ,iCACRC,WAAY,CACRC,WAAYR,KAGpBlB,EAAkBmB,IACnB,CAACZ,EAAWP,IAyDf,OAjDA2B,EAAU,KACDb,GAILf,EAAS,CACL6B,aAAcC,EAAA,CACVC,aAAc1B,EACdT,kBAAmBA,EACnBoC,eAAc9B,GAAsBM,GAChCb,GAA6B,CAAEsC,eAAgBtC,GAC/CG,GAAmB,CAAEA,uBAGlC,CACCI,EACAG,EACAV,EACAa,EACAZ,EACAE,EACAE,EACAe,IAMJa,EAAU,KACF1B,GACAI,GAA2B,IAEhC,CAACJ,IAEJ0B,EAAU,KACN,IAAKb,EACD,OAGJ,MAAMK,EAAQ,IAAIC,EAAmB,CACjCC,KAAMC,EAAcW,SACpBR,WAAY,CACRS,yBAA0BjC,KAIlCD,EAAkBmB,IACnB,CAAClB,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,EAAAA,OAGJvC,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"}
@@ -0,0 +1,2 @@
1
+ const c=["cartebancaire","bcmc","dankort"];export{c as DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM};
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/components/Card/constants.ts"],"sourcesContent":["export const DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM = ['cartebancaire', 'bcmc', 'dankort'] as const;\n"],"names":["DUAL_BRANDS_THAT_NEED_SELECTION_MECHANISM"],"mappings":"MAAaA,EAA4C,CAAC,gBAAiB,OAAQ"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import{CashAppComponent as o}from"./components/CashAppComponent.js";import s from"./services/CashAppService.js";import{CashAppSdkLoader as n}from"./services/CashAppSdkLoader.js";import i from"./defaultProps.js";import a from"../internal/RedirectButton/RedirectButton.js";import"../internal/Button/Button.js";import{payAmountLabel as p}from"../internal/PayButton/utils.js";import{TxVariants as h}from"../tx-variants.js";import{PREFIX as c}from"../internal/Icon/constants.js";function d(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function l(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),o.forEach(function(e){d(t,e,r[e])})}return t}function u(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}class m extends e{formatProps(t){var e,r;return u(l({},t),{enableStoreDetails:(null===(r=t.session)||void 0===r||null===(e=r.configuration)||void 0===e?void 0:e.enableStoreDetails)||t.enableStoreDetails})}formatData(){const{shopperWantsToStore:t,grantId:e,onFileGrantId:r,cashTag:o,customerId:s}=this.state.data||{},{storePaymentMethod:n,storedPaymentMethodId:i}=this.props,a=this.props.enableStoreDetails||!this.props.session&&n;if(i)return{paymentMethod:{type:m.type,storedPaymentMethodId:i}};return l({paymentMethod:l({type:m.type},e&&{grantId:e},s&&{customerId:s},r&&o&&{onFileGrantId:r,cashtag:o})},a&&{storePaymentMethod:n||t})}get displayName(){return this.props.storedPaymentMethodId&&this.props.cashtag?this.props.cashtag:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId?"Cash App Pay":""}get isValid(){return!0}render(){var e;return t(r,{i18n:this.props.i18n,resources:this.resources,loadingContext:this.props.loadingContext},this.props.storedPaymentMethodId?t(a,{showPayButton:this.props.showPayButton,label:p(this.props.i18n,this.props.amount),icon:null===(e=this.resources)||void 0===e?void 0:e.getImage({imageFolder:"components/"})(`${c}lock`),name:this.displayName,amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}}):t(o,{ref:t=>{this.componentRef=t},enableStoreDetails:this.props.enableStoreDetails,cashAppService:this.cashAppService,onChangeStoreDetails:this.handleOnChangeStoreDetails,onError:this.handleError,onClick:this.submit,onAuthorize:this.handleAuthorize}))}constructor(t,e){var r,o;super(t,e),d(this,"cashAppService",void 0),d(this,"submit",()=>{const{onClick:t,storedPaymentMethodId:e}=this.props;if(e)return void super.submit();let r=!1;new Promise((e,r)=>t({resolve:e,reject:r})).catch(()=>{throw r=!0,Error("onClick rejected")}).then(()=>this.cashAppService.createCustomerRequest()).then(()=>{this.cashAppService.begin()}).catch(t=>{r||this.handleError(t)})}),d(this,"handleOnChangeStoreDetails",t=>{const e=u(l({},this.state.data),{shopperWantsToStore:t});this.setState({data:e})}),d(this,"handleAuthorize",t=>{const e=l({},this.state.data,t);this.setState({data:e,valid:{},errors:{},isValid:!0}),super.submit()}),this.props.enableStoreDetails&&this.props.storePaymentMethod&&console.warn("CashAppPay: enableStoreDetails AND storePaymentMethod configuration properties should not be used together. That can lead to undesired behavior."),this.props.storedPaymentMethodId||(this.cashAppService=new s(new n,{storePaymentMethod:this.props.storePaymentMethod,useCashAppButtonUi:this.props.showPayButton,environment:this.props.environment,amount:this.props.amount,redirectURL:this.props.redirectURL,clientId:null===(r=this.props.configuration)||void 0===r?void 0:r.clientId,scopeId:null===(o=this.props.configuration)||void 0===o?void 0:o.scopeId,button:this.props.button,referenceId:this.props.referenceId}))}}d(m,"type",h.cashapp),d(m,"defaultProps",i);export{m as CashAppPay,m as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import{CashAppComponent as o}from"./components/CashAppComponent.js";import s from"./services/CashAppService.js";import{CashAppSdkLoader as n}from"./services/CashAppSdkLoader.js";import i from"./defaultProps.js";import a from"../internal/RedirectButton/RedirectButton.js";import"../internal/Button/Button.js";import{payAmountLabel as p}from"../internal/PayButton/utils.js";import{TxVariants as h}from"../tx-variants.js";import{PREFIX as c}from"../internal/Icon/constants.js";function d(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function l(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter(function(t){return Object.getOwnPropertyDescriptor(r,t).enumerable}))),o.forEach(function(e){d(t,e,r[e])})}return t}function u(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e.push.apply(e,r)}return e}(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}),t}class m extends e{formatProps(t){var e,r;return u(l({},t),{enableStoreDetails:(null===(r=t.session)||void 0===r||null===(e=r.configuration)||void 0===e?void 0:e.enableStoreDetails)||t.enableStoreDetails})}formatData(){const{shopperWantsToStore:t,grantId:e,onFileGrantId:r,cashTag:o,customerId:s}=this.state.data||{},{storePaymentMethod:n,storedPaymentMethodId:i}=this.props,a=this.props.enableStoreDetails||!this.props.session&&n;if(i)return{paymentMethod:{type:m.type,storedPaymentMethodId:i}};return l({paymentMethod:l({type:m.type},e&&{grantId:e},s&&{customerId:s},r&&o&&{onFileGrantId:r,cashtag:o})},a&&{storePaymentMethod:n||t})}get displayName(){return this.props.storedPaymentMethodId&&this.props.cashtag?this.props.cashtag:this.props.name}get additionalInfo(){return this.props.storedPaymentMethodId?"Cash App Pay":""}get isValid(){return!0}render(){var e;return t(r,{i18n:this.props.i18n,resources:this.resources,loadingContext:this.props.loadingContext},this.props.storedPaymentMethodId?t(a,{showPayButton:this.props.showPayButton,label:p(this.props.i18n,this.props.amount),icon:null===(e=this.resources)||void 0===e?void 0:e.getImage({imageFolder:"components/"})(`${c}lock`),name:this.displayName,amount:this.props.amount,payButton:this.payButton,onSubmit:this.submit,ref:t=>{this.componentRef=t}}):t(o,{ref:t=>{this.componentRef=t},enableStoreDetails:this.props.enableStoreDetails,cashAppService:this.cashAppService,onChangeStoreDetails:this.handleOnChangeStoreDetails,onError:this.handleError,onClick:this.submit,onAuthorize:this.handleAuthorize}))}constructor(t,e){var r,o;if(super(t,e),d(this,"cashAppService",void 0),d(this,"submit",()=>{const{onClick:t,storedPaymentMethodId:e}=this.props;if(e)return void super.submit();let r=!1;new Promise((e,r)=>t({resolve:e,reject:r})).catch(()=>{throw r=!0,Error("onClick rejected")}).then(()=>this.cashAppService.createCustomerRequest()).then(()=>{this.cashAppService.begin()}).catch(t=>{r||this.handleError(t)})}),d(this,"handleOnChangeStoreDetails",t=>{const e=u(l({},this.state.data),{shopperWantsToStore:t});this.setState({data:e})}),d(this,"handleAuthorize",t=>{const e=l({},this.state.data,t);this.setState({data:e,valid:{},errors:{},isValid:!0}),super.submit()}),this.props.enableStoreDetails&&this.props.storePaymentMethod&&console.warn("CashAppPay: enableStoreDetails AND storePaymentMethod configuration properties should not be used together. That can lead to undesired behavior."),this.props.storedPaymentMethodId)return;const i=new n({environment:this.props.environment,analytics:this.analytics});this.cashAppService=new s(i,{storePaymentMethod:this.props.storePaymentMethod,useCashAppButtonUi:this.props.showPayButton,environment:this.props.environment,amount:this.props.amount,redirectURL:this.props.redirectURL,clientId:null===(r=this.props.configuration)||void 0===r?void 0:r.clientId,scopeId:null===(o=this.props.configuration)||void 0===o?void 0:o.scopeId,button:this.props.button,referenceId:this.props.referenceId})}}d(m,"type",h.cashapp),d(m,"defaultProps",i);export{m as CashAppPay,m as default};
2
2
  //# sourceMappingURL=CashAppPay.js.map