@adyen/adyen-web 6.0.0-alpha.3 → 6.0.0-alpha.4

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 (1054) hide show
  1. package/README.md +4 -0
  2. package/auto/auto.cjs +7 -0
  3. package/auto/auto.js +5 -2
  4. package/dist/cjs/adyen.css +10 -10
  5. package/dist/cjs/index.cjs +2 -2
  6. package/dist/cjs/index.cjs.map +1 -1
  7. package/dist/cjs/index.d.cts +1515 -1464
  8. package/dist/es/adyen.css +10 -10
  9. package/dist/es/components/ANCV/ANCV.js +1 -1
  10. package/dist/es/components/ANCV/ANCV.js.map +1 -1
  11. package/dist/es/components/ANCV/components/ANCVInput.js +1 -1
  12. package/dist/es/components/ANCV/components/ANCVInput.js.map +1 -1
  13. package/dist/es/components/Ach/Ach.js +1 -1
  14. package/dist/es/components/Ach/Ach.js.map +1 -1
  15. package/dist/es/components/Ach/components/AchInput/AchInput.js +1 -1
  16. package/dist/es/components/Ach/components/AchInput/AchInput.js.map +1 -1
  17. package/dist/es/components/Ach/components/AchInput/components/AchSecuredFields.js +1 -1
  18. package/dist/es/components/Ach/components/AchInput/components/AchSecuredFields.js.map +1 -1
  19. package/dist/es/components/Address/Address.js +1 -1
  20. package/dist/es/components/Address/Address.js.map +1 -1
  21. package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
  22. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  23. package/dist/es/components/AmazonPay/components/AmazonPayButton.js +1 -1
  24. package/dist/es/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  25. package/dist/es/components/AmazonPay/components/ChangePaymentDetailsButton.js +1 -1
  26. package/dist/es/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
  27. package/dist/es/components/AmazonPay/components/OrderButton.js +1 -1
  28. package/dist/es/components/AmazonPay/components/OrderButton.js.map +1 -1
  29. package/dist/es/components/AmazonPay/components/SignOutButton.js +1 -1
  30. package/dist/es/components/AmazonPay/components/SignOutButton.js.map +1 -1
  31. package/dist/es/components/AmazonPay/defaultProps.js +1 -1
  32. package/dist/es/components/AmazonPay/defaultProps.js.map +1 -1
  33. package/dist/es/components/ApplePay/ApplePay.js +1 -1
  34. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  35. package/dist/es/components/BacsDD/BacsDD.js +1 -1
  36. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  37. package/dist/es/components/BacsDD/components/BacsInput.js +1 -1
  38. package/dist/es/components/BacsDD/components/BacsInput.js.map +1 -1
  39. package/dist/es/components/BacsDD/components/BacsResult.js +1 -1
  40. package/dist/es/components/BacsDD/components/BacsResult.js.map +1 -1
  41. package/dist/es/components/BankTransfer/BankTransfer.js +1 -1
  42. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  43. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  44. package/dist/es/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  45. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js +1 -1
  46. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  47. package/dist/es/components/Blik/Blik.js +1 -1
  48. package/dist/es/components/Blik/Blik.js.map +1 -1
  49. package/dist/es/components/Blik/components/BlikInput.js +1 -1
  50. package/dist/es/components/Blik/components/BlikInput.js.map +1 -1
  51. package/dist/es/components/Boleto/Boleto.js +1 -1
  52. package/dist/es/components/Boleto/Boleto.js.map +1 -1
  53. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js +1 -1
  54. package/dist/es/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  55. package/dist/es/components/Boleto/components/BoletoVoucherResult/BoletoVoucherResult.js +1 -1
  56. package/dist/es/components/Boleto/components/BoletoVoucherResult/BoletoVoucherResult.js.map +1 -1
  57. package/dist/es/components/Card/Bancontact.js +1 -1
  58. package/dist/es/components/Card/Bancontact.js.map +1 -1
  59. package/dist/es/components/Card/Card.js +1 -1
  60. package/dist/es/components/Card/Card.js.map +1 -1
  61. package/dist/es/components/Card/components/CardInput/CardInput.js +1 -1
  62. package/dist/es/components/Card/components/CardInput/CardInput.js.map +1 -1
  63. package/dist/es/components/Card/components/CardInput/components/CVC.js +1 -1
  64. package/dist/es/components/Card/components/CardInput/components/CVC.js.map +1 -1
  65. package/dist/es/components/Card/components/CardInput/components/CardFields.js +1 -1
  66. package/dist/es/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  67. package/dist/es/components/Card/components/CardInput/components/CardHolderName.js +1 -1
  68. package/dist/es/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
  69. package/dist/es/components/Card/components/CardInput/components/CardNumber.js +1 -1
  70. package/dist/es/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  71. package/dist/es/components/Card/components/CardInput/components/DataSfSpan.js +1 -1
  72. package/dist/es/components/Card/components/CardInput/components/DataSfSpan.js.map +1 -1
  73. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  74. package/dist/es/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  75. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  76. package/dist/es/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  77. package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js +1 -1
  78. package/dist/es/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  79. package/dist/es/components/Card/components/CardInput/components/StoredCardFields.js +1 -1
  80. package/dist/es/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  81. package/dist/es/components/Card/components/CardInput/handlers.js +1 -1
  82. package/dist/es/components/Card/components/CardInput/handlers.js.map +1 -1
  83. package/dist/es/components/Card/components/CardInput/layouts.js +1 -1
  84. package/dist/es/components/Card/components/CardInput/layouts.js.map +1 -1
  85. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  86. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  87. package/dist/es/components/Card/components/ClickToPayHolder.js +1 -1
  88. package/dist/es/components/Card/components/ClickToPayHolder.js.map +1 -1
  89. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  90. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  91. package/dist/es/components/ClickToPay/ClickToPay.js +1 -1
  92. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  93. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  94. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  95. package/dist/es/components/Doku/Doku.js +1 -1
  96. package/dist/es/components/Doku/Doku.js.map +1 -1
  97. package/dist/es/components/Doku/components/DokuInput/DokuInput.js +1 -1
  98. package/dist/es/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  99. package/dist/es/components/Doku/components/DokuVoucherResult/DokuVoucherResult.js +1 -1
  100. package/dist/es/components/Doku/components/DokuVoucherResult/DokuVoucherResult.js.map +1 -1
  101. package/dist/es/components/Donation/Donation.js +1 -1
  102. package/dist/es/components/Donation/Donation.js.map +1 -1
  103. package/dist/es/components/Donation/components/DonationComponent.js +1 -1
  104. package/dist/es/components/Donation/components/DonationComponent.js.map +1 -1
  105. package/dist/es/components/Dragonpay/Dragonpay.js +1 -1
  106. package/dist/es/components/Dragonpay/Dragonpay.js.map +1 -1
  107. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  108. package/dist/es/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  109. package/dist/es/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js +1 -1
  110. package/dist/es/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js.map +1 -1
  111. package/dist/es/components/Dropin/Dropin.js +1 -1
  112. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  113. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  114. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  115. package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
  116. package/dist/es/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
  117. package/dist/es/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js +1 -1
  118. package/dist/es/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js.map +1 -1
  119. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  120. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  121. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  122. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  123. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  124. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  125. package/dist/es/components/Dropin/components/status/Error.js +1 -1
  126. package/dist/es/components/Dropin/components/status/Error.js.map +1 -1
  127. package/dist/es/components/Dropin/components/status/Success.js +1 -1
  128. package/dist/es/components/Dropin/components/status/Success.js.map +1 -1
  129. package/dist/es/components/Econtext/Econtext.js +1 -1
  130. package/dist/es/components/Econtext/Econtext.js.map +1 -1
  131. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js +1 -1
  132. package/dist/es/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  133. package/dist/es/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js +1 -1
  134. package/dist/es/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js.map +1 -1
  135. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  136. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  137. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  138. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  139. package/dist/es/components/Giftcard/components/GiftcardResult.js +1 -1
  140. package/dist/es/components/Giftcard/components/GiftcardResult.js.map +1 -1
  141. package/dist/es/components/Giropay/Giropay.js +1 -1
  142. package/dist/es/components/Giropay/Giropay.js.map +1 -1
  143. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  144. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  145. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  146. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  147. package/dist/es/components/MBWay/MBWay.js +1 -1
  148. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  149. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  150. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  151. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  152. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  153. package/dist/es/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js +1 -1
  154. package/dist/es/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
  155. package/dist/es/components/Oxxo/Oxxo.js +1 -1
  156. package/dist/es/components/Oxxo/Oxxo.js.map +1 -1
  157. package/dist/es/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js +1 -1
  158. package/dist/es/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  159. package/dist/es/components/PayMe/Instructions.js +1 -1
  160. package/dist/es/components/PayMe/Instructions.js.map +1 -1
  161. package/dist/es/components/PayPal/Paypal.js +1 -1
  162. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  163. package/dist/es/components/PayPal/components/PaypalButtons.js +1 -1
  164. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  165. package/dist/es/components/PersonalDetails/PersonalDetails.js +1 -1
  166. package/dist/es/components/PersonalDetails/PersonalDetails.js.map +1 -1
  167. package/dist/es/components/Pix/Pix.js +1 -1
  168. package/dist/es/components/Pix/Pix.js.map +1 -1
  169. package/dist/es/components/Pix/PixInput/PixInput.js +1 -1
  170. package/dist/es/components/Pix/PixInput/PixInput.js.map +1 -1
  171. package/dist/es/components/Redirect/Redirect.js +1 -1
  172. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  173. package/dist/es/components/Riverty/Riverty.js +1 -1
  174. package/dist/es/components/Riverty/Riverty.js.map +1 -1
  175. package/dist/es/components/Sepa/Sepa.js +1 -1
  176. package/dist/es/components/Sepa/Sepa.js.map +1 -1
  177. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  178. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  179. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  180. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  181. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  182. package/dist/es/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  183. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
  184. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
  185. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  186. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  187. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js +1 -1
  188. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  189. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  190. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  191. package/dist/es/components/ThreeDS2/components/utils.js +1 -1
  192. package/dist/es/components/ThreeDS2/components/utils.js.map +1 -1
  193. package/dist/es/components/ThreeDS2/constants.js +2 -0
  194. package/dist/es/components/ThreeDS2/constants.js.map +1 -0
  195. package/dist/es/components/Trustly/Trustly.js +1 -1
  196. package/dist/es/components/Trustly/Trustly.js.map +1 -1
  197. package/dist/es/components/UPI/UPI.js +1 -1
  198. package/dist/es/components/UPI/UPI.js.map +1 -1
  199. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  200. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  201. package/dist/es/components/components-name-map.js +1 -1
  202. package/dist/es/components/components-name-map.js.map +1 -1
  203. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  204. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  205. package/dist/es/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js +1 -1
  206. package/dist/es/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  207. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  208. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  209. package/dist/es/components/internal/Address/Address.js +1 -1
  210. package/dist/es/components/internal/Address/Address.js.map +1 -1
  211. package/dist/es/components/internal/Address/Specifications.js.map +1 -1
  212. package/dist/es/components/internal/Address/components/AddressSearch.js +1 -1
  213. package/dist/es/components/internal/Address/components/AddressSearch.js.map +1 -1
  214. package/dist/es/components/internal/Address/components/CountryField.js +1 -1
  215. package/dist/es/components/internal/Address/components/CountryField.js.map +1 -1
  216. package/dist/es/components/internal/Address/components/FieldContainer.js +1 -1
  217. package/dist/es/components/internal/Address/components/FieldContainer.js.map +1 -1
  218. package/dist/es/components/internal/Address/components/StateField.js +1 -1
  219. package/dist/es/components/internal/Address/components/StateField.js.map +1 -1
  220. package/dist/es/components/internal/Await/Await.js +1 -1
  221. package/dist/es/components/internal/Await/Await.js.map +1 -1
  222. package/dist/es/components/internal/Button/Button.js +1 -1
  223. package/dist/es/components/internal/Button/Button.js.map +1 -1
  224. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
  225. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  226. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCardsList/CtPCardsList.js +1 -1
  227. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPCardsList/CtPCardsList.js.map +1 -1
  228. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js +1 -1
  229. package/dist/es/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  230. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfo.js +1 -1
  231. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfo.js.map +1 -1
  232. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  233. package/dist/es/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  234. package/dist/es/components/internal/ClickToPay/components/CtPLoader/CtPLoader.js +1 -1
  235. package/dist/es/components/internal/ClickToPay/components/CtPLoader/CtPLoader.js.map +1 -1
  236. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLogin.js +1 -1
  237. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLogin.js.map +1 -1
  238. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
  239. package/dist/es/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  240. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js +1 -1
  241. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  242. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js +1 -1
  243. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  244. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
  245. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  246. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js +1 -1
  247. package/dist/es/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js.map +1 -1
  248. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
  249. package/dist/es/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
  250. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  251. package/dist/es/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  252. package/dist/es/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js +1 -1
  253. package/dist/es/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
  254. package/dist/es/components/internal/ContentSeparator/ContentSeparator.js +1 -1
  255. package/dist/es/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  256. package/dist/es/components/internal/Countdown/useCountdownA11yReporter.js +1 -1
  257. package/dist/es/components/internal/Countdown/useCountdownA11yReporter.js.map +1 -1
  258. package/dist/es/components/internal/FormFields/Field/Field.js +1 -1
  259. package/dist/es/components/internal/FormFields/Field/Field.js.map +1 -1
  260. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  261. package/dist/es/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  262. package/dist/es/components/internal/FormFields/RadioGroup/RadioGroup.js +1 -1
  263. package/dist/es/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  264. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  265. package/dist/es/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  266. package/dist/es/components/internal/FormFields/Select/components/SelectList.js +1 -1
  267. package/dist/es/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  268. package/dist/es/components/internal/FormInstruction/FormInstruction.js +1 -1
  269. package/dist/es/components/internal/FormInstruction/FormInstruction.js.map +1 -1
  270. package/dist/es/components/internal/IbanInput/IbanInput.js +1 -1
  271. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  272. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js +1 -1
  273. package/dist/es/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js.map +1 -1
  274. package/dist/es/components/internal/IssuerList/IssuerList.js +1 -1
  275. package/dist/es/components/internal/IssuerList/IssuerList.js.map +1 -1
  276. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  277. package/dist/es/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  278. package/dist/es/components/internal/OpenInvoice/utils.js +1 -1
  279. package/dist/es/components/internal/OpenInvoice/utils.js.map +1 -1
  280. package/dist/es/components/internal/PayButton/PayButton.js +1 -1
  281. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  282. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  283. package/dist/es/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  284. package/dist/es/components/internal/PersonalDetails/utils.js +1 -1
  285. package/dist/es/components/internal/PersonalDetails/utils.js.map +1 -1
  286. package/dist/es/components/internal/PhoneInput/PhoneInput.js +1 -1
  287. package/dist/es/components/internal/PhoneInput/PhoneInput.js.map +1 -1
  288. package/dist/es/components/internal/PhoneInput/usePhonePrefixes.js +1 -1
  289. package/dist/es/components/internal/PhoneInput/usePhonePrefixes.js.map +1 -1
  290. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  291. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  292. package/dist/es/components/internal/RedirectButton/RedirectButton.js +1 -1
  293. package/dist/es/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  294. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  295. package/dist/es/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  296. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  297. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  298. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  299. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  300. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  301. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  302. package/dist/es/components/internal/SecuredFields/binLookup/triggerBinLookUp.js +1 -1
  303. package/dist/es/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  304. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  305. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  306. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js +1 -1
  307. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js.map +1 -1
  308. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js +1 -1
  309. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  310. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js +1 -1
  311. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js.map +1 -1
  312. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleValidation.js +1 -1
  313. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleValidation.js.map +1 -1
  314. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js +1 -1
  315. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js.map +1 -1
  316. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js +1 -1
  317. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  318. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/processBrand.js +1 -1
  319. package/dist/es/components/internal/SecuredFields/lib/CSF/partials/processBrand.js.map +1 -1
  320. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/callbackUtils.js +1 -1
  321. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/callbackUtils.js.map +1 -1
  322. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/getCardGroupTypes.js +1 -1
  323. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/getCardGroupTypes.js.map +1 -1
  324. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioACH.js +1 -1
  325. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioACH.js.map +1 -1
  326. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioCreditCard.js +1 -1
  327. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioCreditCard.js.map +1 -1
  328. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioGiftCard.js +1 -1
  329. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioGiftCard.js.map +1 -1
  330. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioKCP.js +1 -1
  331. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioKCP.js.map +1 -1
  332. package/dist/{es-legacy/components/internal/SecuredFields/lib/configuration → es/components/internal/SecuredFields/lib}/constants.js +1 -1
  333. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -0
  334. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  335. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  336. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js +1 -1
  337. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
  338. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js +1 -1
  339. package/dist/es/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js.map +1 -1
  340. package/dist/es/components/internal/SecuredFields/lib/utilities/addContextTranslations.js +1 -1
  341. package/dist/es/components/internal/SecuredFields/lib/utilities/addContextTranslations.js.map +1 -1
  342. package/dist/es/components/internal/SecuredFields/utils.js +1 -1
  343. package/dist/es/components/internal/SecuredFields/utils.js.map +1 -1
  344. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  345. package/dist/es/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  346. package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
  347. package/dist/es/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
  348. package/dist/es/components/internal/StoreDetails/StoreDetails.js +1 -1
  349. package/dist/es/components/internal/StoreDetails/StoreDetails.js.map +1 -1
  350. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  351. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  352. package/dist/es/components/internal/Voucher/Voucher.js +1 -1
  353. package/dist/es/components/internal/Voucher/Voucher.js.map +1 -1
  354. package/dist/es/components/tx-variants.js +1 -1
  355. package/dist/es/components/tx-variants.js.map +1 -1
  356. package/dist/es/core/Analytics/Analytics.js +1 -1
  357. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  358. package/dist/es/core/Analytics/analyticsPreProcessor.js +1 -1
  359. package/dist/es/core/Analytics/analyticsPreProcessor.js.map +1 -1
  360. package/dist/es/core/Analytics/constants.js +1 -1
  361. package/dist/es/core/Analytics/constants.js.map +1 -1
  362. package/dist/es/core/Analytics/utils.js +1 -1
  363. package/dist/es/core/Analytics/utils.js.map +1 -1
  364. package/dist/es/core/Context/CoreProvider.js +1 -1
  365. package/dist/es/core/Context/CoreProvider.js.map +1 -1
  366. package/dist/es/core/Context/useImage.js +1 -1
  367. package/dist/es/core/Context/useImage.js.map +1 -1
  368. package/dist/es/core/Errors/AdyenCheckoutError.js +1 -1
  369. package/dist/es/core/Errors/AdyenCheckoutError.js.map +1 -1
  370. package/dist/es/core/Errors/SRMessages.js +1 -1
  371. package/dist/es/core/Errors/SRMessages.js.map +1 -1
  372. package/dist/es/core/Errors/SRPanel.js +1 -1
  373. package/dist/es/core/Errors/SRPanel.js.map +1 -1
  374. package/dist/es/core/Errors/SRPanelProvider.js +1 -1
  375. package/dist/es/core/Errors/SRPanelProvider.js.map +1 -1
  376. package/dist/es/core/Errors/constants.js +1 -1
  377. package/dist/es/core/Errors/constants.js.map +1 -1
  378. package/dist/es/core/Errors/utils.js +1 -1
  379. package/dist/es/core/Errors/utils.js.map +1 -1
  380. package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
  381. package/dist/es/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  382. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  383. package/dist/es/core/Services/analytics/log-event.js +1 -1
  384. package/dist/es/core/Services/get-translations.js +2 -0
  385. package/dist/es/core/Services/get-translations.js.map +1 -0
  386. package/dist/es/core/core.defaultProps.js +2 -0
  387. package/dist/es/core/core.defaultProps.js.map +1 -0
  388. package/dist/es/core/core.js +1 -1
  389. package/dist/es/core/core.js.map +1 -1
  390. package/dist/es/core/utils.js +1 -1
  391. package/dist/es/core/utils.js.map +1 -1
  392. package/dist/es/index.d.ts +1515 -1464
  393. package/dist/es/index.js +1 -1
  394. package/dist/es/language/Language.js +1 -1
  395. package/dist/es/language/Language.js.map +1 -1
  396. package/dist/es/language/constants.js +2 -0
  397. package/dist/es/language/constants.js.map +1 -0
  398. package/dist/es/language/utils.js +1 -1
  399. package/dist/es/language/utils.js.map +1 -1
  400. package/dist/es/utils/validator-utils.js +1 -1
  401. package/dist/es/utils/validator-utils.js.map +1 -1
  402. package/dist/es-legacy/adyen.css +10 -10
  403. package/dist/es-legacy/components/ANCV/ANCV.js +1 -1
  404. package/dist/es-legacy/components/ANCV/ANCV.js.map +1 -1
  405. package/dist/es-legacy/components/ANCV/components/ANCVInput.js +1 -1
  406. package/dist/es-legacy/components/ANCV/components/ANCVInput.js.map +1 -1
  407. package/dist/es-legacy/components/Ach/Ach.js +1 -1
  408. package/dist/es-legacy/components/Ach/Ach.js.map +1 -1
  409. package/dist/es-legacy/components/Ach/components/AchInput/AchInput.js +1 -1
  410. package/dist/es-legacy/components/Ach/components/AchInput/AchInput.js.map +1 -1
  411. package/dist/es-legacy/components/Ach/components/AchInput/components/AchSecuredFields.js +1 -1
  412. package/dist/es-legacy/components/Ach/components/AchInput/components/AchSecuredFields.js.map +1 -1
  413. package/dist/es-legacy/components/Address/Address.js +1 -1
  414. package/dist/es-legacy/components/Address/Address.js.map +1 -1
  415. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  416. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  417. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js +1 -1
  418. package/dist/es-legacy/components/AmazonPay/components/AmazonPayButton.js.map +1 -1
  419. package/dist/es-legacy/components/AmazonPay/components/ChangePaymentDetailsButton.js +1 -1
  420. package/dist/es-legacy/components/AmazonPay/components/ChangePaymentDetailsButton.js.map +1 -1
  421. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js +1 -1
  422. package/dist/es-legacy/components/AmazonPay/components/OrderButton.js.map +1 -1
  423. package/dist/es-legacy/components/AmazonPay/components/SignOutButton.js +1 -1
  424. package/dist/es-legacy/components/AmazonPay/components/SignOutButton.js.map +1 -1
  425. package/dist/es-legacy/components/AmazonPay/defaultProps.js +1 -1
  426. package/dist/es-legacy/components/AmazonPay/defaultProps.js.map +1 -1
  427. package/dist/es-legacy/components/ApplePay/ApplePay.js +1 -1
  428. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  429. package/dist/es-legacy/components/BacsDD/BacsDD.js +1 -1
  430. package/dist/es-legacy/components/BacsDD/BacsDD.js.map +1 -1
  431. package/dist/es-legacy/components/BacsDD/components/BacsInput.js +1 -1
  432. package/dist/es-legacy/components/BacsDD/components/BacsInput.js.map +1 -1
  433. package/dist/es-legacy/components/BacsDD/components/BacsResult.js +1 -1
  434. package/dist/es-legacy/components/BacsDD/components/BacsResult.js.map +1 -1
  435. package/dist/es-legacy/components/BankTransfer/BankTransfer.js +1 -1
  436. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  437. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js +1 -1
  438. package/dist/es-legacy/components/BankTransfer/components/BankTransferInput/BankTransferInput.js.map +1 -1
  439. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js +1 -1
  440. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  441. package/dist/es-legacy/components/Blik/Blik.js +1 -1
  442. package/dist/es-legacy/components/Blik/Blik.js.map +1 -1
  443. package/dist/es-legacy/components/Blik/components/BlikInput.js +1 -1
  444. package/dist/es-legacy/components/Blik/components/BlikInput.js.map +1 -1
  445. package/dist/es-legacy/components/Boleto/Boleto.js +1 -1
  446. package/dist/es-legacy/components/Boleto/Boleto.js.map +1 -1
  447. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js +1 -1
  448. package/dist/es-legacy/components/Boleto/components/BoletoInput/BoletoInput.js.map +1 -1
  449. package/dist/es-legacy/components/Boleto/components/BoletoVoucherResult/BoletoVoucherResult.js +1 -1
  450. package/dist/es-legacy/components/Boleto/components/BoletoVoucherResult/BoletoVoucherResult.js.map +1 -1
  451. package/dist/es-legacy/components/Card/Bancontact.js +1 -1
  452. package/dist/es-legacy/components/Card/Bancontact.js.map +1 -1
  453. package/dist/es-legacy/components/Card/Card.js +1 -1
  454. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  455. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js +1 -1
  456. package/dist/es-legacy/components/Card/components/CardInput/CardInput.js.map +1 -1
  457. package/dist/es-legacy/components/Card/components/CardInput/components/CVC.js +1 -1
  458. package/dist/es-legacy/components/Card/components/CardInput/components/CVC.js.map +1 -1
  459. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js +1 -1
  460. package/dist/es-legacy/components/Card/components/CardInput/components/CardFields.js.map +1 -1
  461. package/dist/es-legacy/components/Card/components/CardInput/components/CardHolderName.js +1 -1
  462. package/dist/es-legacy/components/Card/components/CardInput/components/CardHolderName.js.map +1 -1
  463. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js +1 -1
  464. package/dist/es-legacy/components/Card/components/CardInput/components/CardNumber.js.map +1 -1
  465. package/dist/es-legacy/components/Card/components/CardInput/components/DataSfSpan.js +1 -1
  466. package/dist/es-legacy/components/Card/components/CardInput/components/DataSfSpan.js.map +1 -1
  467. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js +1 -1
  468. package/dist/es-legacy/components/Card/components/CardInput/components/ExpirationDate.js.map +1 -1
  469. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js +1 -1
  470. package/dist/es-legacy/components/Card/components/CardInput/components/Installments/Installments.js.map +1 -1
  471. package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js +1 -1
  472. package/dist/es-legacy/components/Card/components/CardInput/components/KCPAuthentication.js.map +1 -1
  473. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFields.js +1 -1
  474. package/dist/es-legacy/components/Card/components/CardInput/components/StoredCardFields.js.map +1 -1
  475. package/dist/es-legacy/components/Card/components/CardInput/handlers.js +1 -1
  476. package/dist/es-legacy/components/Card/components/CardInput/handlers.js.map +1 -1
  477. package/dist/es-legacy/components/Card/components/CardInput/layouts.js +1 -1
  478. package/dist/es-legacy/components/Card/components/CardInput/layouts.js.map +1 -1
  479. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  480. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  481. package/dist/es-legacy/components/Card/components/ClickToPayHolder.js +1 -1
  482. package/dist/es-legacy/components/Card/components/ClickToPayHolder.js.map +1 -1
  483. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  484. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  485. package/dist/es-legacy/components/ClickToPay/ClickToPay.js +1 -1
  486. package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
  487. package/dist/es-legacy/components/CustomCard/CustomCard.js +1 -1
  488. package/dist/es-legacy/components/CustomCard/CustomCard.js.map +1 -1
  489. package/dist/es-legacy/components/Doku/Doku.js +1 -1
  490. package/dist/es-legacy/components/Doku/Doku.js.map +1 -1
  491. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js +1 -1
  492. package/dist/es-legacy/components/Doku/components/DokuInput/DokuInput.js.map +1 -1
  493. package/dist/es-legacy/components/Doku/components/DokuVoucherResult/DokuVoucherResult.js +1 -1
  494. package/dist/es-legacy/components/Doku/components/DokuVoucherResult/DokuVoucherResult.js.map +1 -1
  495. package/dist/es-legacy/components/Donation/Donation.js +1 -1
  496. package/dist/es-legacy/components/Donation/Donation.js.map +1 -1
  497. package/dist/es-legacy/components/Donation/components/DonationComponent.js +1 -1
  498. package/dist/es-legacy/components/Donation/components/DonationComponent.js.map +1 -1
  499. package/dist/es-legacy/components/Dragonpay/Dragonpay.js +1 -1
  500. package/dist/es-legacy/components/Dragonpay/Dragonpay.js.map +1 -1
  501. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js +1 -1
  502. package/dist/es-legacy/components/Dragonpay/components/DragonpayInput/DragonpayInput.js.map +1 -1
  503. package/dist/es-legacy/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js +1 -1
  504. package/dist/es-legacy/components/Dragonpay/components/DragonpayVoucherResult/DragonpayVoucherResult.js.map +1 -1
  505. package/dist/es-legacy/components/Dropin/Dropin.js +1 -1
  506. package/dist/es-legacy/components/Dropin/Dropin.js.map +1 -1
  507. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  508. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  509. package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js +1 -1
  510. package/dist/es-legacy/components/Dropin/components/PaymentMethod/DisableOneClickConfirmation.js.map +1 -1
  511. package/dist/es-legacy/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js +1 -1
  512. package/dist/es-legacy/components/Dropin/components/PaymentMethod/OrderPaymentMethods.js.map +1 -1
  513. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  514. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  515. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js +1 -1
  516. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodList.js.map +1 -1
  517. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js +1 -1
  518. package/dist/es-legacy/components/Dropin/components/PaymentMethod/PaymentMethodsContainer.js.map +1 -1
  519. package/dist/es-legacy/components/Dropin/components/status/Error.js +1 -1
  520. package/dist/es-legacy/components/Dropin/components/status/Error.js.map +1 -1
  521. package/dist/es-legacy/components/Dropin/components/status/Success.js +1 -1
  522. package/dist/es-legacy/components/Dropin/components/status/Success.js.map +1 -1
  523. package/dist/es-legacy/components/Econtext/Econtext.js +1 -1
  524. package/dist/es-legacy/components/Econtext/Econtext.js.map +1 -1
  525. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js +1 -1
  526. package/dist/es-legacy/components/Econtext/components/EcontextInput/EcontextInput.js.map +1 -1
  527. package/dist/es-legacy/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js +1 -1
  528. package/dist/es-legacy/components/Econtext/components/EcontextVoucherResult/EcontextVoucherResult.js.map +1 -1
  529. package/dist/es-legacy/components/Giftcard/Giftcard.js +1 -1
  530. package/dist/es-legacy/components/Giftcard/Giftcard.js.map +1 -1
  531. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js +1 -1
  532. package/dist/es-legacy/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  533. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js +1 -1
  534. package/dist/es-legacy/components/Giftcard/components/GiftcardResult.js.map +1 -1
  535. package/dist/es-legacy/components/Giropay/Giropay.js +1 -1
  536. package/dist/es-legacy/components/Giropay/Giropay.js.map +1 -1
  537. package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
  538. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  539. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  540. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  541. package/dist/es-legacy/components/MBWay/MBWay.js +1 -1
  542. package/dist/es-legacy/components/MBWay/MBWay.js.map +1 -1
  543. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  544. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  545. package/dist/es-legacy/components/Multibanco/Multibanco.js +1 -1
  546. package/dist/es-legacy/components/Multibanco/Multibanco.js.map +1 -1
  547. package/dist/es-legacy/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js +1 -1
  548. package/dist/es-legacy/components/Multibanco/components/MultibancoVoucherResult/MultibancoVoucherResult.js.map +1 -1
  549. package/dist/es-legacy/components/Oxxo/Oxxo.js +1 -1
  550. package/dist/es-legacy/components/Oxxo/Oxxo.js.map +1 -1
  551. package/dist/es-legacy/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js +1 -1
  552. package/dist/es-legacy/components/Oxxo/components/OxxoVoucherResult/OxxoVoucherResult.js.map +1 -1
  553. package/dist/es-legacy/components/PayMe/Instructions.js +1 -1
  554. package/dist/es-legacy/components/PayMe/Instructions.js.map +1 -1
  555. package/dist/es-legacy/components/PayPal/Paypal.js +1 -1
  556. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  557. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js +1 -1
  558. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  559. package/dist/es-legacy/components/PersonalDetails/PersonalDetails.js +1 -1
  560. package/dist/es-legacy/components/PersonalDetails/PersonalDetails.js.map +1 -1
  561. package/dist/es-legacy/components/Pix/Pix.js +1 -1
  562. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  563. package/dist/es-legacy/components/Pix/PixInput/PixInput.js +1 -1
  564. package/dist/es-legacy/components/Pix/PixInput/PixInput.js.map +1 -1
  565. package/dist/es-legacy/components/Redirect/Redirect.js +1 -1
  566. package/dist/es-legacy/components/Redirect/Redirect.js.map +1 -1
  567. package/dist/es-legacy/components/Riverty/Riverty.js +1 -1
  568. package/dist/es-legacy/components/Riverty/Riverty.js.map +1 -1
  569. package/dist/es-legacy/components/Sepa/Sepa.js +1 -1
  570. package/dist/es-legacy/components/Sepa/Sepa.js.map +1 -1
  571. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  572. package/dist/es-legacy/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  573. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  574. package/dist/es-legacy/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  575. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js +1 -1
  576. package/dist/es-legacy/components/ThreeDS2/callSubmit3DS2Fingerprint.js.map +1 -1
  577. package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
  578. package/dist/es-legacy/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
  579. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  580. package/dist/es-legacy/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  581. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js +1 -1
  582. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  583. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  584. package/dist/es-legacy/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  585. package/dist/es-legacy/components/ThreeDS2/components/utils.js +1 -1
  586. package/dist/es-legacy/components/ThreeDS2/components/utils.js.map +1 -1
  587. package/dist/es-legacy/components/ThreeDS2/constants.js +2 -0
  588. package/dist/es-legacy/components/ThreeDS2/constants.js.map +1 -0
  589. package/dist/es-legacy/components/Trustly/Trustly.js +1 -1
  590. package/dist/es-legacy/components/Trustly/Trustly.js.map +1 -1
  591. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  592. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  593. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  594. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  595. package/dist/es-legacy/components/components-name-map.js +1 -1
  596. package/dist/es-legacy/components/components-name-map.js.map +1 -1
  597. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  598. package/dist/es-legacy/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  599. package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js +1 -1
  600. package/dist/es-legacy/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  601. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  602. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  603. package/dist/es-legacy/components/internal/Address/Address.js +1 -1
  604. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  605. package/dist/es-legacy/components/internal/Address/Specifications.js.map +1 -1
  606. package/dist/es-legacy/components/internal/Address/components/AddressSearch.js +1 -1
  607. package/dist/es-legacy/components/internal/Address/components/AddressSearch.js.map +1 -1
  608. package/dist/es-legacy/components/internal/Address/components/CountryField.js +1 -1
  609. package/dist/es-legacy/components/internal/Address/components/CountryField.js.map +1 -1
  610. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js +1 -1
  611. package/dist/es-legacy/components/internal/Address/components/FieldContainer.js.map +1 -1
  612. package/dist/es-legacy/components/internal/Address/components/StateField.js +1 -1
  613. package/dist/es-legacy/components/internal/Address/components/StateField.js.map +1 -1
  614. package/dist/es-legacy/components/internal/Await/Await.js +1 -1
  615. package/dist/es-legacy/components/internal/Await/Await.js.map +1 -1
  616. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  617. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  618. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js +1 -1
  619. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCards.js.map +1 -1
  620. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCardsList/CtPCardsList.js +1 -1
  621. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPCardsList/CtPCardsList.js.map +1 -1
  622. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js +1 -1
  623. package/dist/es-legacy/components/internal/ClickToPay/components/CtPCards/CtPSingleCard/CtPSingleCard.js.map +1 -1
  624. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfo.js +1 -1
  625. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfo.js.map +1 -1
  626. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js +1 -1
  627. package/dist/es-legacy/components/internal/ClickToPay/components/CtPInfo/CtPInfoModal/CtPInfoModal.js.map +1 -1
  628. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLoader/CtPLoader.js +1 -1
  629. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLoader/CtPLoader.js.map +1 -1
  630. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLogin.js +1 -1
  631. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLogin.js.map +1 -1
  632. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js +1 -1
  633. package/dist/es-legacy/components/internal/ClickToPay/components/CtPLogin/CtPLoginInput.js.map +1 -1
  634. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js +1 -1
  635. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePassword.js.map +1 -1
  636. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js +1 -1
  637. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPOneTimePasswordInput.js.map +1 -1
  638. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js +1 -1
  639. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPOneTimePasswordInput/CtPResendOtpLink.js.map +1 -1
  640. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js +1 -1
  641. package/dist/es-legacy/components/internal/ClickToPay/components/CtPOneTimePassword/CtPSaveCookiesCheckbox/CtPSaveCookiesCheckbox.js.map +1 -1
  642. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js +1 -1
  643. package/dist/es-legacy/components/internal/ClickToPay/components/CtPSection/CtPLogoutLink.js.map +1 -1
  644. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js +1 -1
  645. package/dist/es-legacy/components/internal/CompanyDetails/CompanyDetails.js.map +1 -1
  646. package/dist/es-legacy/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js +1 -1
  647. package/dist/es-legacy/components/internal/ConsentCheckboxLabel/ConsentCheckboxLabel.js.map +1 -1
  648. package/dist/es-legacy/components/internal/ContentSeparator/ContentSeparator.js +1 -1
  649. package/dist/es-legacy/components/internal/ContentSeparator/ContentSeparator.js.map +1 -1
  650. package/dist/es-legacy/components/internal/Countdown/useCountdownA11yReporter.js +1 -1
  651. package/dist/es-legacy/components/internal/Countdown/useCountdownA11yReporter.js.map +1 -1
  652. package/dist/es-legacy/components/internal/FormFields/Field/Field.js +1 -1
  653. package/dist/es-legacy/components/internal/FormFields/Field/Field.js.map +1 -1
  654. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js +1 -1
  655. package/dist/es-legacy/components/internal/FormFields/Fieldset/Fieldset.js.map +1 -1
  656. package/dist/es-legacy/components/internal/FormFields/RadioGroup/RadioGroup.js +1 -1
  657. package/dist/es-legacy/components/internal/FormFields/RadioGroup/RadioGroup.js.map +1 -1
  658. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js +1 -1
  659. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectButton.js.map +1 -1
  660. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js +1 -1
  661. package/dist/es-legacy/components/internal/FormFields/Select/components/SelectList.js.map +1 -1
  662. package/dist/es-legacy/components/internal/FormInstruction/FormInstruction.js +1 -1
  663. package/dist/es-legacy/components/internal/FormInstruction/FormInstruction.js.map +1 -1
  664. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js +1 -1
  665. package/dist/es-legacy/components/internal/IbanInput/IbanInput.js.map +1 -1
  666. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js +1 -1
  667. package/dist/es-legacy/components/internal/IssuerList/IssuerButtonGroup/IssuerButtonGroup.js.map +1 -1
  668. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js +1 -1
  669. package/dist/es-legacy/components/internal/IssuerList/IssuerList.js.map +1 -1
  670. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js +1 -1
  671. package/dist/es-legacy/components/internal/OpenInvoice/OpenInvoice.js.map +1 -1
  672. package/dist/es-legacy/components/internal/OpenInvoice/utils.js +1 -1
  673. package/dist/es-legacy/components/internal/OpenInvoice/utils.js.map +1 -1
  674. package/dist/es-legacy/components/internal/PayButton/PayButton.js +1 -1
  675. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  676. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js +1 -1
  677. package/dist/es-legacy/components/internal/PersonalDetails/PersonalDetails.js.map +1 -1
  678. package/dist/es-legacy/components/internal/PersonalDetails/utils.js +1 -1
  679. package/dist/es-legacy/components/internal/PersonalDetails/utils.js.map +1 -1
  680. package/dist/es-legacy/components/internal/PhoneInput/PhoneInput.js +1 -1
  681. package/dist/es-legacy/components/internal/PhoneInput/PhoneInput.js.map +1 -1
  682. package/dist/es-legacy/components/internal/PhoneInput/usePhonePrefixes.js +1 -1
  683. package/dist/es-legacy/components/internal/PhoneInput/usePhonePrefixes.js.map +1 -1
  684. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  685. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  686. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js +1 -1
  687. package/dist/es-legacy/components/internal/RedirectButton/RedirectButton.js.map +1 -1
  688. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js +1 -1
  689. package/dist/es-legacy/components/internal/SecuredFields/SFP/SFPUtils.js.map +1 -1
  690. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  691. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  692. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js +1 -1
  693. package/dist/es-legacy/components/internal/SecuredFields/SFP/SecuredFieldsProviderHandlers.js.map +1 -1
  694. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  695. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  696. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js +1 -1
  697. package/dist/es-legacy/components/internal/SecuredFields/binLookup/triggerBinLookUp.js.map +1 -1
  698. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js +1 -1
  699. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.js.map +1 -1
  700. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js +1 -1
  701. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.js.map +1 -1
  702. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js +1 -1
  703. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  704. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js +1 -1
  705. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.js.map +1 -1
  706. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleValidation.js +1 -1
  707. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleValidation.js.map +1 -1
  708. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js +1 -1
  709. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/isConfigured.js.map +1 -1
  710. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js +1 -1
  711. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.js.map +1 -1
  712. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processBrand.js +1 -1
  713. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/partials/processBrand.js.map +1 -1
  714. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/callbackUtils.js +1 -1
  715. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/callbackUtils.js.map +1 -1
  716. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/getCardGroupTypes.js +1 -1
  717. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/getCardGroupTypes.js.map +1 -1
  718. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioACH.js +1 -1
  719. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioACH.js.map +1 -1
  720. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioCreditCard.js +1 -1
  721. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioCreditCard.js.map +1 -1
  722. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioGiftCard.js +1 -1
  723. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioGiftCard.js.map +1 -1
  724. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioKCP.js +1 -1
  725. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/tabbing/tabScenarioKCP.js.map +1 -1
  726. package/dist/{es/components/internal/SecuredFields/lib/configuration → es-legacy/components/internal/SecuredFields/lib}/constants.js +1 -1
  727. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -0
  728. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  729. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  730. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js +1 -1
  731. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processAriaConfig.js.map +1 -1
  732. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js +1 -1
  733. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/utils/processPlaceholders.js.map +1 -1
  734. package/dist/es-legacy/components/internal/SecuredFields/lib/utilities/addContextTranslations.js +1 -1
  735. package/dist/es-legacy/components/internal/SecuredFields/lib/utilities/addContextTranslations.js.map +1 -1
  736. package/dist/es-legacy/components/internal/SecuredFields/utils.js +1 -1
  737. package/dist/es-legacy/components/internal/SecuredFields/utils.js.map +1 -1
  738. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js +1 -1
  739. package/dist/es-legacy/components/internal/SendCopyToEmail/SendCopyToEmail.js.map +1 -1
  740. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js +1 -1
  741. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/SocialSecurityNumberBrazil.js.map +1 -1
  742. package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js +1 -1
  743. package/dist/es-legacy/components/internal/StoreDetails/StoreDetails.js.map +1 -1
  744. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  745. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  746. package/dist/es-legacy/components/internal/Voucher/Voucher.js +1 -1
  747. package/dist/es-legacy/components/internal/Voucher/Voucher.js.map +1 -1
  748. package/dist/es-legacy/components/tx-variants.js +1 -1
  749. package/dist/es-legacy/components/tx-variants.js.map +1 -1
  750. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  751. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  752. package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js +1 -1
  753. package/dist/es-legacy/core/Analytics/analyticsPreProcessor.js.map +1 -1
  754. package/dist/es-legacy/core/Analytics/constants.js +1 -1
  755. package/dist/es-legacy/core/Analytics/constants.js.map +1 -1
  756. package/dist/es-legacy/core/Analytics/utils.js +1 -1
  757. package/dist/es-legacy/core/Analytics/utils.js.map +1 -1
  758. package/dist/es-legacy/core/Context/CoreProvider.js +1 -1
  759. package/dist/es-legacy/core/Context/CoreProvider.js.map +1 -1
  760. package/dist/es-legacy/core/Context/useImage.js +1 -1
  761. package/dist/es-legacy/core/Context/useImage.js.map +1 -1
  762. package/dist/es-legacy/core/Errors/AdyenCheckoutError.js +1 -1
  763. package/dist/es-legacy/core/Errors/AdyenCheckoutError.js.map +1 -1
  764. package/dist/es-legacy/core/Errors/SRMessages.js +1 -1
  765. package/dist/es-legacy/core/Errors/SRMessages.js.map +1 -1
  766. package/dist/es-legacy/core/Errors/SRPanel.js +1 -1
  767. package/dist/es-legacy/core/Errors/SRPanel.js.map +1 -1
  768. package/dist/es-legacy/core/Errors/SRPanelProvider.js +1 -1
  769. package/dist/es-legacy/core/Errors/SRPanelProvider.js.map +1 -1
  770. package/dist/es-legacy/core/Errors/constants.js +1 -1
  771. package/dist/es-legacy/core/Errors/constants.js.map +1 -1
  772. package/dist/es-legacy/core/Errors/utils.js +1 -1
  773. package/dist/es-legacy/core/Errors/utils.js.map +1 -1
  774. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js +1 -1
  775. package/dist/es-legacy/core/ProcessResponse/PaymentAction/actionTypes.js.map +1 -1
  776. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  777. package/dist/es-legacy/core/Services/analytics/log-event.js +1 -1
  778. package/dist/es-legacy/core/Services/get-translations.js +2 -0
  779. package/dist/es-legacy/core/Services/get-translations.js.map +1 -0
  780. package/dist/es-legacy/core/core.defaultProps.js +2 -0
  781. package/dist/es-legacy/core/core.defaultProps.js.map +1 -0
  782. package/dist/es-legacy/core/core.js +1 -1
  783. package/dist/es-legacy/core/core.js.map +1 -1
  784. package/dist/es-legacy/core/utils.js +1 -1
  785. package/dist/es-legacy/core/utils.js.map +1 -1
  786. package/dist/es-legacy/index.js +1 -1
  787. package/dist/es-legacy/language/Language.js +1 -1
  788. package/dist/es-legacy/language/Language.js.map +1 -1
  789. package/dist/es-legacy/language/constants.js +2 -0
  790. package/dist/es-legacy/language/constants.js.map +1 -0
  791. package/dist/es-legacy/language/utils.js +1 -1
  792. package/dist/es-legacy/language/utils.js.map +1 -1
  793. package/dist/es-legacy/utils/validator-utils.js +1 -1
  794. package/dist/es-legacy/utils/validator-utils.js.map +1 -1
  795. package/dist/umd/adyen.css +10 -10
  796. package/dist/umd/adyen.js +2 -2
  797. package/dist/umd/adyen.js.map +1 -1
  798. package/package.json +3 -4
  799. package/translations/ar.json +306 -0
  800. package/translations/cs-CZ.json +302 -0
  801. package/translations/da-DK.json +303 -0
  802. package/translations/de-DE.json +302 -0
  803. package/translations/el-GR.json +305 -0
  804. package/translations/en-US.json +307 -0
  805. package/translations/es-ES.json +300 -0
  806. package/translations/fi-FI.json +302 -0
  807. package/translations/fr-FR.json +305 -0
  808. package/translations/hr-HR.json +305 -0
  809. package/translations/hu-HU.json +305 -0
  810. package/translations/it-IT.json +305 -0
  811. package/translations/ja-JP.json +305 -0
  812. package/translations/ko-KR.json +305 -0
  813. package/translations/nl-NL.json +302 -0
  814. package/translations/no-NO.json +302 -0
  815. package/translations/pl-PL.json +305 -0
  816. package/translations/pt-BR.json +306 -0
  817. package/translations/pt-PT.json +307 -0
  818. package/translations/ro-RO.json +305 -0
  819. package/translations/ru-RU.json +303 -0
  820. package/translations/sk-SK.json +305 -0
  821. package/translations/sl-SI.json +305 -0
  822. package/translations/sv-SE.json +303 -0
  823. package/translations/zh-CN.json +305 -0
  824. package/translations/zh-TW.json +305 -0
  825. package/dist/es/components/ThreeDS2/config.js +0 -2
  826. package/dist/es/components/ThreeDS2/config.js.map +0 -1
  827. package/dist/es/components/internal/SecuredFields/lib/configuration/constants.js.map +0 -1
  828. package/dist/es/core/Context/CoreContext.js +0 -2
  829. package/dist/es/core/Context/CoreContext.js.map +0 -1
  830. package/dist/es/core/Context/useCoreContext.js +0 -2
  831. package/dist/es/core/Context/useCoreContext.js.map +0 -1
  832. package/dist/es/language/config.js +0 -2
  833. package/dist/es/language/config.js.map +0 -1
  834. package/dist/es/language/locales/ar.js +0 -2
  835. package/dist/es/language/locales/ar.js.map +0 -1
  836. package/dist/es/language/locales/ar.json.js +0 -2
  837. package/dist/es/language/locales/ar.json.js.map +0 -1
  838. package/dist/es/language/locales/cs-CZ.js +0 -2
  839. package/dist/es/language/locales/cs-CZ.js.map +0 -1
  840. package/dist/es/language/locales/cs-CZ.json.js +0 -2
  841. package/dist/es/language/locales/cs-CZ.json.js.map +0 -1
  842. package/dist/es/language/locales/da-DK.js +0 -2
  843. package/dist/es/language/locales/da-DK.js.map +0 -1
  844. package/dist/es/language/locales/da-DK.json.js +0 -2
  845. package/dist/es/language/locales/da-DK.json.js.map +0 -1
  846. package/dist/es/language/locales/de-DE.js +0 -2
  847. package/dist/es/language/locales/de-DE.js.map +0 -1
  848. package/dist/es/language/locales/de-DE.json.js +0 -2
  849. package/dist/es/language/locales/de-DE.json.js.map +0 -1
  850. package/dist/es/language/locales/el-GR.js +0 -2
  851. package/dist/es/language/locales/el-GR.js.map +0 -1
  852. package/dist/es/language/locales/el-GR.json.js +0 -2
  853. package/dist/es/language/locales/el-GR.json.js.map +0 -1
  854. package/dist/es/language/locales/en-US.js +0 -2
  855. package/dist/es/language/locales/en-US.js.map +0 -1
  856. package/dist/es/language/locales/en-US.json.js +0 -2
  857. package/dist/es/language/locales/en-US.json.js.map +0 -1
  858. package/dist/es/language/locales/es-ES.js +0 -2
  859. package/dist/es/language/locales/es-ES.js.map +0 -1
  860. package/dist/es/language/locales/es-ES.json.js +0 -2
  861. package/dist/es/language/locales/es-ES.json.js.map +0 -1
  862. package/dist/es/language/locales/fi-FI.js +0 -2
  863. package/dist/es/language/locales/fi-FI.js.map +0 -1
  864. package/dist/es/language/locales/fi-FI.json.js +0 -2
  865. package/dist/es/language/locales/fi-FI.json.js.map +0 -1
  866. package/dist/es/language/locales/fr-FR.js +0 -2
  867. package/dist/es/language/locales/fr-FR.js.map +0 -1
  868. package/dist/es/language/locales/fr-FR.json.js +0 -2
  869. package/dist/es/language/locales/fr-FR.json.js.map +0 -1
  870. package/dist/es/language/locales/hr-HR.js +0 -2
  871. package/dist/es/language/locales/hr-HR.js.map +0 -1
  872. package/dist/es/language/locales/hr-HR.json.js +0 -2
  873. package/dist/es/language/locales/hr-HR.json.js.map +0 -1
  874. package/dist/es/language/locales/hu-HU.js +0 -2
  875. package/dist/es/language/locales/hu-HU.js.map +0 -1
  876. package/dist/es/language/locales/hu-HU.json.js +0 -2
  877. package/dist/es/language/locales/hu-HU.json.js.map +0 -1
  878. package/dist/es/language/locales/it-IT.js +0 -2
  879. package/dist/es/language/locales/it-IT.js.map +0 -1
  880. package/dist/es/language/locales/it-IT.json.js +0 -2
  881. package/dist/es/language/locales/it-IT.json.js.map +0 -1
  882. package/dist/es/language/locales/ja-JP.js +0 -2
  883. package/dist/es/language/locales/ja-JP.js.map +0 -1
  884. package/dist/es/language/locales/ja-JP.json.js +0 -2
  885. package/dist/es/language/locales/ja-JP.json.js.map +0 -1
  886. package/dist/es/language/locales/ko-KR.js +0 -2
  887. package/dist/es/language/locales/ko-KR.js.map +0 -1
  888. package/dist/es/language/locales/ko-KR.json.js +0 -2
  889. package/dist/es/language/locales/ko-KR.json.js.map +0 -1
  890. package/dist/es/language/locales/nl-NL.js +0 -2
  891. package/dist/es/language/locales/nl-NL.js.map +0 -1
  892. package/dist/es/language/locales/nl-NL.json.js +0 -2
  893. package/dist/es/language/locales/nl-NL.json.js.map +0 -1
  894. package/dist/es/language/locales/no-NO.js +0 -2
  895. package/dist/es/language/locales/no-NO.js.map +0 -1
  896. package/dist/es/language/locales/no-NO.json.js +0 -2
  897. package/dist/es/language/locales/no-NO.json.js.map +0 -1
  898. package/dist/es/language/locales/pl-PL.js +0 -2
  899. package/dist/es/language/locales/pl-PL.js.map +0 -1
  900. package/dist/es/language/locales/pl-PL.json.js +0 -2
  901. package/dist/es/language/locales/pl-PL.json.js.map +0 -1
  902. package/dist/es/language/locales/pt-BR.js +0 -2
  903. package/dist/es/language/locales/pt-BR.js.map +0 -1
  904. package/dist/es/language/locales/pt-BR.json.js +0 -2
  905. package/dist/es/language/locales/pt-BR.json.js.map +0 -1
  906. package/dist/es/language/locales/pt-PT.js +0 -2
  907. package/dist/es/language/locales/pt-PT.js.map +0 -1
  908. package/dist/es/language/locales/pt-PT.json.js +0 -2
  909. package/dist/es/language/locales/pt-PT.json.js.map +0 -1
  910. package/dist/es/language/locales/ro-RO.js +0 -2
  911. package/dist/es/language/locales/ro-RO.js.map +0 -1
  912. package/dist/es/language/locales/ro-RO.json.js +0 -2
  913. package/dist/es/language/locales/ro-RO.json.js.map +0 -1
  914. package/dist/es/language/locales/ru-RU.js +0 -2
  915. package/dist/es/language/locales/ru-RU.js.map +0 -1
  916. package/dist/es/language/locales/ru-RU.json.js +0 -2
  917. package/dist/es/language/locales/ru-RU.json.js.map +0 -1
  918. package/dist/es/language/locales/sk-SK.js +0 -2
  919. package/dist/es/language/locales/sk-SK.js.map +0 -1
  920. package/dist/es/language/locales/sk-SK.json.js +0 -2
  921. package/dist/es/language/locales/sk-SK.json.js.map +0 -1
  922. package/dist/es/language/locales/sl-SI.js +0 -2
  923. package/dist/es/language/locales/sl-SI.js.map +0 -1
  924. package/dist/es/language/locales/sl-SI.json.js +0 -2
  925. package/dist/es/language/locales/sl-SI.json.js.map +0 -1
  926. package/dist/es/language/locales/sv-SE.js +0 -2
  927. package/dist/es/language/locales/sv-SE.js.map +0 -1
  928. package/dist/es/language/locales/sv-SE.json.js +0 -2
  929. package/dist/es/language/locales/sv-SE.json.js.map +0 -1
  930. package/dist/es/language/locales/zh-CN.js +0 -2
  931. package/dist/es/language/locales/zh-CN.js.map +0 -1
  932. package/dist/es/language/locales/zh-CN.json.js +0 -2
  933. package/dist/es/language/locales/zh-CN.json.js.map +0 -1
  934. package/dist/es/language/locales/zh-TW.js +0 -2
  935. package/dist/es/language/locales/zh-TW.js.map +0 -1
  936. package/dist/es/language/locales/zh-TW.json.js +0 -2
  937. package/dist/es/language/locales/zh-TW.json.js.map +0 -1
  938. package/dist/es/utils/getFlagEmoji.js +0 -2
  939. package/dist/es/utils/getFlagEmoji.js.map +0 -1
  940. package/dist/es-legacy/components/ThreeDS2/config.js +0 -2
  941. package/dist/es-legacy/components/ThreeDS2/config.js.map +0 -1
  942. package/dist/es-legacy/components/internal/SecuredFields/lib/configuration/constants.js.map +0 -1
  943. package/dist/es-legacy/core/Context/CoreContext.js +0 -2
  944. package/dist/es-legacy/core/Context/CoreContext.js.map +0 -1
  945. package/dist/es-legacy/core/Context/useCoreContext.js +0 -2
  946. package/dist/es-legacy/core/Context/useCoreContext.js.map +0 -1
  947. package/dist/es-legacy/language/config.js +0 -2
  948. package/dist/es-legacy/language/config.js.map +0 -1
  949. package/dist/es-legacy/language/locales/ar.js +0 -2
  950. package/dist/es-legacy/language/locales/ar.js.map +0 -1
  951. package/dist/es-legacy/language/locales/ar.json.js +0 -2
  952. package/dist/es-legacy/language/locales/ar.json.js.map +0 -1
  953. package/dist/es-legacy/language/locales/cs-CZ.js +0 -2
  954. package/dist/es-legacy/language/locales/cs-CZ.js.map +0 -1
  955. package/dist/es-legacy/language/locales/cs-CZ.json.js +0 -2
  956. package/dist/es-legacy/language/locales/cs-CZ.json.js.map +0 -1
  957. package/dist/es-legacy/language/locales/da-DK.js +0 -2
  958. package/dist/es-legacy/language/locales/da-DK.js.map +0 -1
  959. package/dist/es-legacy/language/locales/da-DK.json.js +0 -2
  960. package/dist/es-legacy/language/locales/da-DK.json.js.map +0 -1
  961. package/dist/es-legacy/language/locales/de-DE.js +0 -2
  962. package/dist/es-legacy/language/locales/de-DE.js.map +0 -1
  963. package/dist/es-legacy/language/locales/de-DE.json.js +0 -2
  964. package/dist/es-legacy/language/locales/de-DE.json.js.map +0 -1
  965. package/dist/es-legacy/language/locales/el-GR.js +0 -2
  966. package/dist/es-legacy/language/locales/el-GR.js.map +0 -1
  967. package/dist/es-legacy/language/locales/el-GR.json.js +0 -2
  968. package/dist/es-legacy/language/locales/el-GR.json.js.map +0 -1
  969. package/dist/es-legacy/language/locales/en-US.js +0 -2
  970. package/dist/es-legacy/language/locales/en-US.js.map +0 -1
  971. package/dist/es-legacy/language/locales/en-US.json.js +0 -2
  972. package/dist/es-legacy/language/locales/en-US.json.js.map +0 -1
  973. package/dist/es-legacy/language/locales/es-ES.js +0 -2
  974. package/dist/es-legacy/language/locales/es-ES.js.map +0 -1
  975. package/dist/es-legacy/language/locales/es-ES.json.js +0 -2
  976. package/dist/es-legacy/language/locales/es-ES.json.js.map +0 -1
  977. package/dist/es-legacy/language/locales/fi-FI.js +0 -2
  978. package/dist/es-legacy/language/locales/fi-FI.js.map +0 -1
  979. package/dist/es-legacy/language/locales/fi-FI.json.js +0 -2
  980. package/dist/es-legacy/language/locales/fi-FI.json.js.map +0 -1
  981. package/dist/es-legacy/language/locales/fr-FR.js +0 -2
  982. package/dist/es-legacy/language/locales/fr-FR.js.map +0 -1
  983. package/dist/es-legacy/language/locales/fr-FR.json.js +0 -2
  984. package/dist/es-legacy/language/locales/fr-FR.json.js.map +0 -1
  985. package/dist/es-legacy/language/locales/hr-HR.js +0 -2
  986. package/dist/es-legacy/language/locales/hr-HR.js.map +0 -1
  987. package/dist/es-legacy/language/locales/hr-HR.json.js +0 -2
  988. package/dist/es-legacy/language/locales/hr-HR.json.js.map +0 -1
  989. package/dist/es-legacy/language/locales/hu-HU.js +0 -2
  990. package/dist/es-legacy/language/locales/hu-HU.js.map +0 -1
  991. package/dist/es-legacy/language/locales/hu-HU.json.js +0 -2
  992. package/dist/es-legacy/language/locales/hu-HU.json.js.map +0 -1
  993. package/dist/es-legacy/language/locales/it-IT.js +0 -2
  994. package/dist/es-legacy/language/locales/it-IT.js.map +0 -1
  995. package/dist/es-legacy/language/locales/it-IT.json.js +0 -2
  996. package/dist/es-legacy/language/locales/it-IT.json.js.map +0 -1
  997. package/dist/es-legacy/language/locales/ja-JP.js +0 -2
  998. package/dist/es-legacy/language/locales/ja-JP.js.map +0 -1
  999. package/dist/es-legacy/language/locales/ja-JP.json.js +0 -2
  1000. package/dist/es-legacy/language/locales/ja-JP.json.js.map +0 -1
  1001. package/dist/es-legacy/language/locales/ko-KR.js +0 -2
  1002. package/dist/es-legacy/language/locales/ko-KR.js.map +0 -1
  1003. package/dist/es-legacy/language/locales/ko-KR.json.js +0 -2
  1004. package/dist/es-legacy/language/locales/ko-KR.json.js.map +0 -1
  1005. package/dist/es-legacy/language/locales/nl-NL.js +0 -2
  1006. package/dist/es-legacy/language/locales/nl-NL.js.map +0 -1
  1007. package/dist/es-legacy/language/locales/nl-NL.json.js +0 -2
  1008. package/dist/es-legacy/language/locales/nl-NL.json.js.map +0 -1
  1009. package/dist/es-legacy/language/locales/no-NO.js +0 -2
  1010. package/dist/es-legacy/language/locales/no-NO.js.map +0 -1
  1011. package/dist/es-legacy/language/locales/no-NO.json.js +0 -2
  1012. package/dist/es-legacy/language/locales/no-NO.json.js.map +0 -1
  1013. package/dist/es-legacy/language/locales/pl-PL.js +0 -2
  1014. package/dist/es-legacy/language/locales/pl-PL.js.map +0 -1
  1015. package/dist/es-legacy/language/locales/pl-PL.json.js +0 -2
  1016. package/dist/es-legacy/language/locales/pl-PL.json.js.map +0 -1
  1017. package/dist/es-legacy/language/locales/pt-BR.js +0 -2
  1018. package/dist/es-legacy/language/locales/pt-BR.js.map +0 -1
  1019. package/dist/es-legacy/language/locales/pt-BR.json.js +0 -2
  1020. package/dist/es-legacy/language/locales/pt-BR.json.js.map +0 -1
  1021. package/dist/es-legacy/language/locales/pt-PT.js +0 -2
  1022. package/dist/es-legacy/language/locales/pt-PT.js.map +0 -1
  1023. package/dist/es-legacy/language/locales/pt-PT.json.js +0 -2
  1024. package/dist/es-legacy/language/locales/pt-PT.json.js.map +0 -1
  1025. package/dist/es-legacy/language/locales/ro-RO.js +0 -2
  1026. package/dist/es-legacy/language/locales/ro-RO.js.map +0 -1
  1027. package/dist/es-legacy/language/locales/ro-RO.json.js +0 -2
  1028. package/dist/es-legacy/language/locales/ro-RO.json.js.map +0 -1
  1029. package/dist/es-legacy/language/locales/ru-RU.js +0 -2
  1030. package/dist/es-legacy/language/locales/ru-RU.js.map +0 -1
  1031. package/dist/es-legacy/language/locales/ru-RU.json.js +0 -2
  1032. package/dist/es-legacy/language/locales/ru-RU.json.js.map +0 -1
  1033. package/dist/es-legacy/language/locales/sk-SK.js +0 -2
  1034. package/dist/es-legacy/language/locales/sk-SK.js.map +0 -1
  1035. package/dist/es-legacy/language/locales/sk-SK.json.js +0 -2
  1036. package/dist/es-legacy/language/locales/sk-SK.json.js.map +0 -1
  1037. package/dist/es-legacy/language/locales/sl-SI.js +0 -2
  1038. package/dist/es-legacy/language/locales/sl-SI.js.map +0 -1
  1039. package/dist/es-legacy/language/locales/sl-SI.json.js +0 -2
  1040. package/dist/es-legacy/language/locales/sl-SI.json.js.map +0 -1
  1041. package/dist/es-legacy/language/locales/sv-SE.js +0 -2
  1042. package/dist/es-legacy/language/locales/sv-SE.js.map +0 -1
  1043. package/dist/es-legacy/language/locales/sv-SE.json.js +0 -2
  1044. package/dist/es-legacy/language/locales/sv-SE.json.js.map +0 -1
  1045. package/dist/es-legacy/language/locales/zh-CN.js +0 -2
  1046. package/dist/es-legacy/language/locales/zh-CN.js.map +0 -1
  1047. package/dist/es-legacy/language/locales/zh-CN.json.js +0 -2
  1048. package/dist/es-legacy/language/locales/zh-CN.json.js.map +0 -1
  1049. package/dist/es-legacy/language/locales/zh-TW.js +0 -2
  1050. package/dist/es-legacy/language/locales/zh-TW.js.map +0 -1
  1051. package/dist/es-legacy/language/locales/zh-TW.json.js +0 -2
  1052. package/dist/es-legacy/language/locales/zh-TW.json.js.map +0 -1
  1053. package/dist/es-legacy/utils/getFlagEmoji.js +0 -2
  1054. package/dist/es-legacy/utils/getFlagEmoji.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"extensions.js","sources":["../../../../../../src/components/internal/SecuredFields/binLookup/extensions.ts"],"sourcesContent":["import { SingleBrandResetObject } from '../SFP/types';\nimport { BrandObject } from '../../../Card/types';\nimport createCardVariantSwitcher from './createCardVariantSwitcher';\nimport { BRAND_ICON_UI_EXCLUSION_LIST } from '../lib/configuration/constants';\n\n// Externally testable utils\nexport const containsExcludedBrand = (brandsArr: BrandObject[], excludedBrands: string[]): boolean => {\n return brandsArr.reduce((acc, brandObj) => acc || excludedBrands.includes(brandObj.brand), false);\n};\n\nexport const cloneBrandsArr = (brandsArr: BrandObject[]): BrandObject[] => brandsArr.map(item => ({ ...item }));\n\nexport const removeExcludedBrand = (brandsArr: BrandObject[], mainBrand1 = 'mc', mainBrand2 = 'visa'): BrandObject[] => {\n const clonedBrands: BrandObject[] = cloneBrandsArr(brandsArr);\n\n if (clonedBrands[0].brand !== mainBrand1 && clonedBrands[0].brand !== mainBrand2) clonedBrands.reverse();\n clonedBrands.length = 1;\n return clonedBrands;\n};\n// --\n\nexport default function extensions(props, refs, states, hasPanLengthRef: Partial<{ current }> = {}) {\n // Destructure props, refs and state hooks\n const { type, cvcPolicy } = props;\n const { sfp } = refs;\n const { dualBrandSelectElements, setDualBrandSelectElements, setSelectedBrandValue, issuingCountryCode, setIssuingCountryCode } = states;\n\n return {\n /**\n * Handle the binLookup response object generated in triggerBinLookup and process it in relation to the CardInput and it's sub-components.\n * e.g. we might need to add/remove additional markup (a selector for brands), and inform SFP of the issuingCountryCode & detected brand(s).\n *\n * @param binLookupResponse -\n * @param isReset -\n */\n processBinLookup: (binLookupResponse, isReset) => {\n const issuingCode = binLookupResponse?.issuingCountryCode ? binLookupResponse.issuingCountryCode.toLowerCase() : null;\n setIssuingCountryCode(issuingCode);\n\n // Reset UI\n if (!binLookupResponse || !Object.keys(binLookupResponse).length) {\n setDualBrandSelectElements([]);\n setSelectedBrandValue('');\n\n // If /binLookup has 'reset' then for a generic card the internal regex will kick in to show the right brand icon - so set to null\n // However for a single-branded card we need to pass the \"base\" type so the brand logo is reset - so set to type\n const brandToReset = isReset && type !== 'card' ? type : null;\n\n sfp.current.processBinLookupResponse(binLookupResponse, {\n brand: brandToReset,\n cvcPolicy: cvcPolicy // undefined except for Bancontact\n } as SingleBrandResetObject);\n\n // Reset storage var\n hasPanLengthRef.current = 0;\n return;\n }\n\n // RESULT: binLookup has found a result so proceed accordingly\n if (binLookupResponse.supportedBrands?.length) {\n const hasExcludedBrand: boolean = containsExcludedBrand(binLookupResponse.supportedBrands, BRAND_ICON_UI_EXCLUSION_LIST);\n\n const supportedBrands: BrandObject[] = hasExcludedBrand\n ? removeExcludedBrand(binLookupResponse.supportedBrands)\n : cloneBrandsArr(binLookupResponse.supportedBrands);\n\n // 1) Multiple options found - add to the UI & inform SFP\n if (supportedBrands.length > 1) {\n // --\n const switcherObj = createCardVariantSwitcher(supportedBrands);\n\n // Set properties on state to trigger the dual branding icons in the UI\n setDualBrandSelectElements(switcherObj.dualBrandSelectElements);\n setSelectedBrandValue(switcherObj.selectedBrandValue); // initially this value from switcherObj will be ''\n\n // Pass an object through to SFP\n sfp.current.processBinLookupResponse({\n issuingCountryCode: binLookupResponse.issuingCountryCode,\n supportedBrands: [switcherObj.leadBrand]\n });\n\n // Store the fact the binLookup obj has a panLength prop\n if (switcherObj.leadBrand.panLength > 0) {\n hasPanLengthRef.current = switcherObj.leadBrand.panLength;\n }\n\n // 2) Single option found (binValueObject.supportedBrands.length === 1)\n } else {\n // Reset UI\n setDualBrandSelectElements([]);\n setSelectedBrandValue('');\n\n // Set (single) value from binLookup so it will be added to the 'brand' property in the paymentMethod object\n // EXCEPT - if we are dealing with a brand that we exclude from the UI\n if (!hasExcludedBrand) setSelectedBrandValue(supportedBrands[0].brand);\n\n // Pass object through to SFP\n sfp.current.processBinLookupResponse({\n issuingCountryCode: binLookupResponse.issuingCountryCode,\n supportedBrands\n });\n\n // Store the fact the binLookup obj has a panLength prop\n if (supportedBrands[0].panLength > 0) {\n hasPanLengthRef.current = supportedBrands[0].panLength;\n }\n }\n }\n },\n /**\n * Handler for clicks on the icons added in response to the /binLookup call\n * Inform SFP of the brand changes when these selections are made\n */\n handleDualBrandSelection: (e: Event | string): void => {\n let value: Event | string = e;\n\n if (e instanceof Event) {\n const target = e.target as HTMLLIElement;\n value = target.getAttribute('data-value') || target.getAttribute('alt');\n }\n\n // Check if we have a value and whether that value corresponds to a brandObject we can propagate\n // If either are false then abandon the process\n let brandObjArr: BrandObject[] = [];\n if (value) {\n // Find the brandObject with the matching brand value and place into an array\n brandObjArr = dualBrandSelectElements.reduce((acc, item) => {\n if (item.brandObject.brand === value) {\n acc.push(item.brandObject);\n }\n return acc;\n }, []);\n\n if (!brandObjArr.length) {\n return; // no brand object associated with value was found\n }\n } else {\n return; // no value passed\n }\n\n setSelectedBrandValue(value);\n\n // Pass brand object into SecuredFields\n sfp.current.processBinLookupResponse({\n issuingCountryCode,\n supportedBrands: brandObjArr\n });\n }\n };\n}\n"],"names":["containsExcludedBrand","brandsArr","excludedBrands","reduce","acc","brandObj","includes","brand","cloneBrandsArr","map","item","removeExcludedBrand","mainBrand1","mainBrand2","clonedBrands","reverse","length","extensions","props","refs","states","hasPanLengthRef","type","cvcPolicy","sfp","dualBrandSelectElements","setDualBrandSelectElements","setSelectedBrandValue","issuingCountryCode","setIssuingCountryCode","processBinLookup","binLookupResponse","isReset","issuingCode","toLowerCase","Object","keys","brandToReset","current","processBinLookupResponse","supportedBrands","hasExcludedBrand","BRAND_ICON_UI_EXCLUSION_LIST","switcherObj","createCardVariantSwitcher","selectedBrandValue","leadBrand","panLength","handleDualBrandSelection","e","value","Event","target","getAttribute","brandObjArr","brandObject","push"],"mappings":"+HAMO,MAAMA,EAAwB,CAACC,EAA0BC,IACrDD,EAAUE,QAAO,CAACC,EAAKC,IAAaD,GAAOF,EAAeI,SAASD,EAASE,SAAQ,GAGlFC,EAAkBP,GAA4CA,EAAUQ,KAAIC,IAAS,IAAKA,MAE1FC,EAAsB,CAACV,EAA0BW,EAAa,KAAMC,EAAa,UAC1F,MAAMC,EAA8BN,EAAeP,GAInD,OAFIa,EAAa,GAAGP,QAAUK,GAAcE,EAAa,GAAGP,QAAUM,GAAYC,EAAaC,UAC/FD,EAAaE,OAAS,EACfF,CAAAA,EAII,SAASG,EAAWC,EAAOC,EAAMC,EAAQC,EAAwC,CAAA,GAE5F,MAAMC,KAAEA,EAAIC,UAAEA,GAAcL,GACtBM,IAAEA,GAAQL,GACVM,wBAAEA,EAAuBC,2BAAEA,EAA0BC,sBAAEA,EAAqBC,mBAAEA,EAAkBC,sBAAEA,GAA0BT,EAElI,MAAO,CAQHU,iBAAkB,CAACC,EAAmBC,KAClC,MAAMC,EAAcF,GAAmBH,mBAAqBG,EAAkBH,mBAAmBM,cAAgB,KAIjH,GAHAL,EAAsBI,IAGjBF,IAAsBI,OAAOC,KAAKL,GAAmBf,OAAQ,CAC9DU,EAA2B,IAC3BC,EAAsB,IAItB,MAAMU,EAAeL,GAAoB,SAATV,EAAkBA,EAAO,KASzD,OAPAE,EAAIc,QAAQC,yBAAyBR,EAAmB,CACpDxB,MAAO8B,EACPd,UAAWA,SAIfF,EAAgBiB,QAAU,EAE9B,CAGA,GAAIP,EAAkBS,iBAAiBxB,OAAQ,CAC3C,MAAMyB,EAA4BzC,EAAsB+B,EAAkBS,gBAAiBE,GAErFF,EAAiCC,EACjC9B,EAAoBoB,EAAkBS,iBACtChC,EAAeuB,EAAkBS,iBAGvC,GAAIA,EAAgBxB,OAAS,EAAG,CAE5B,MAAM2B,EAAcC,EAA0BJ,GAG9Cd,EAA2BiB,EAAYlB,yBACvCE,EAAsBgB,EAAYE,oBAGlCrB,EAAIc,QAAQC,yBAAyB,CACjCX,mBAAoBG,EAAkBH,mBACtCY,gBAAiB,CAACG,EAAYG,aAI9BH,EAAYG,UAAUC,UAAY,IAClC1B,EAAgBiB,QAAUK,EAAYG,UAAUC,gBAMpDrB,EAA2B,IAC3BC,EAAsB,IAIjBc,GAAkBd,EAAsBa,EAAgB,GAAGjC,OAGhEiB,EAAIc,QAAQC,yBAAyB,CACjCX,mBAAoBG,EAAkBH,mBACtCY,oBAIAA,EAAgB,GAAGO,UAAY,IAC/B1B,EAAgBiB,QAAUE,EAAgB,GAAGO,UAGzD,GAMJC,yBAA2BC,IACvB,IAAIC,EAAwBD,EAE5B,GAAIA,aAAaE,MAAO,CACpB,MAAMC,EAASH,EAAEG,OACjBF,EAAQE,EAAOC,aAAa,eAAiBD,EAAOC,aAAa,MACrE,CAIA,IAAIC,EAA6B,GAC7BJ,IAEAI,EAAc7B,EAAwBtB,QAAO,CAACC,EAAKM,KAC3CA,EAAK6C,YAAYhD,QAAU2C,GAC3B9C,EAAIoD,KAAK9C,EAAK6C,aAEXnD,IACR,IAEEkD,EAAYtC,SAOrBW,EAAsBuB,GAGtB1B,EAAIc,QAAQC,yBAAyB,CACjCX,qBACAY,gBAAiBc,KACrB,EAGZ"}
1
+ {"version":3,"file":"extensions.js","sources":["../../../../../../src/components/internal/SecuredFields/binLookup/extensions.ts"],"sourcesContent":["import { SingleBrandResetObject } from '../SFP/types';\nimport { BrandObject } from '../../../Card/types';\nimport createCardVariantSwitcher from './createCardVariantSwitcher';\nimport { BRAND_ICON_UI_EXCLUSION_LIST } from '../lib/constants';\n\n// Externally testable utils\nexport const containsExcludedBrand = (brandsArr: BrandObject[], excludedBrands: string[]): boolean => {\n return brandsArr.reduce((acc, brandObj) => acc || excludedBrands.includes(brandObj.brand), false);\n};\n\nexport const cloneBrandsArr = (brandsArr: BrandObject[]): BrandObject[] => brandsArr.map(item => ({ ...item }));\n\nexport const removeExcludedBrand = (brandsArr: BrandObject[], mainBrand1 = 'mc', mainBrand2 = 'visa'): BrandObject[] => {\n const clonedBrands: BrandObject[] = cloneBrandsArr(brandsArr);\n\n if (clonedBrands[0].brand !== mainBrand1 && clonedBrands[0].brand !== mainBrand2) clonedBrands.reverse();\n clonedBrands.length = 1;\n return clonedBrands;\n};\n// --\n\nexport default function extensions(props, refs, states, hasPanLengthRef: Partial<{ current }> = {}) {\n // Destructure props, refs and state hooks\n const { type, cvcPolicy } = props;\n const { sfp } = refs;\n const { dualBrandSelectElements, setDualBrandSelectElements, setSelectedBrandValue, issuingCountryCode, setIssuingCountryCode } = states;\n\n return {\n /**\n * Handle the binLookup response object generated in triggerBinLookup and process it in relation to the CardInput and it's sub-components.\n * e.g. we might need to add/remove additional markup (a selector for brands), and inform SFP of the issuingCountryCode & detected brand(s).\n *\n * @param binLookupResponse -\n * @param isReset -\n */\n processBinLookup: (binLookupResponse, isReset) => {\n const issuingCode = binLookupResponse?.issuingCountryCode ? binLookupResponse.issuingCountryCode.toLowerCase() : null;\n setIssuingCountryCode(issuingCode);\n\n // Reset UI\n if (!binLookupResponse || !Object.keys(binLookupResponse).length) {\n setDualBrandSelectElements([]);\n setSelectedBrandValue('');\n\n // If /binLookup has 'reset' then for a generic card the internal regex will kick in to show the right brand icon - so set to null\n // However for a single-branded card we need to pass the \"base\" type so the brand logo is reset - so set to type\n const brandToReset = isReset && type !== 'card' ? type : null;\n\n sfp.current.processBinLookupResponse(binLookupResponse, {\n brand: brandToReset,\n cvcPolicy: cvcPolicy // undefined except for Bancontact\n } as SingleBrandResetObject);\n\n // Reset storage var\n hasPanLengthRef.current = 0;\n return;\n }\n\n // RESULT: binLookup has found a result so proceed accordingly\n if (binLookupResponse.supportedBrands?.length) {\n const hasExcludedBrand: boolean = containsExcludedBrand(binLookupResponse.supportedBrands, BRAND_ICON_UI_EXCLUSION_LIST);\n\n const supportedBrands: BrandObject[] = hasExcludedBrand\n ? removeExcludedBrand(binLookupResponse.supportedBrands)\n : cloneBrandsArr(binLookupResponse.supportedBrands);\n\n // 1) Multiple options found - add to the UI & inform SFP\n if (supportedBrands.length > 1) {\n // --\n const switcherObj = createCardVariantSwitcher(supportedBrands);\n\n // Set properties on state to trigger the dual branding icons in the UI\n setDualBrandSelectElements(switcherObj.dualBrandSelectElements);\n setSelectedBrandValue(switcherObj.selectedBrandValue); // initially this value from switcherObj will be ''\n\n // Pass an object through to SFP\n sfp.current.processBinLookupResponse({\n issuingCountryCode: binLookupResponse.issuingCountryCode,\n supportedBrands: [switcherObj.leadBrand]\n });\n\n // Store the fact the binLookup obj has a panLength prop\n if (switcherObj.leadBrand.panLength > 0) {\n hasPanLengthRef.current = switcherObj.leadBrand.panLength;\n }\n\n // 2) Single option found (binValueObject.supportedBrands.length === 1)\n } else {\n // Reset UI\n setDualBrandSelectElements([]);\n setSelectedBrandValue('');\n\n // Set (single) value from binLookup so it will be added to the 'brand' property in the paymentMethod object\n // EXCEPT - if we are dealing with a brand that we exclude from the UI\n if (!hasExcludedBrand) setSelectedBrandValue(supportedBrands[0].brand);\n\n // Pass object through to SFP\n sfp.current.processBinLookupResponse({\n issuingCountryCode: binLookupResponse.issuingCountryCode,\n supportedBrands\n });\n\n // Store the fact the binLookup obj has a panLength prop\n if (supportedBrands[0].panLength > 0) {\n hasPanLengthRef.current = supportedBrands[0].panLength;\n }\n }\n }\n },\n /**\n * Handler for clicks on the icons added in response to the /binLookup call\n * Inform SFP of the brand changes when these selections are made\n */\n handleDualBrandSelection: (e: Event | string): void => {\n let value: Event | string = e;\n\n if (e instanceof Event) {\n const target = e.target as HTMLLIElement;\n value = target.getAttribute('data-value') || target.getAttribute('alt');\n }\n\n // Check if we have a value and whether that value corresponds to a brandObject we can propagate\n // If either are false then abandon the process\n let brandObjArr: BrandObject[] = [];\n if (value) {\n // Find the brandObject with the matching brand value and place into an array\n brandObjArr = dualBrandSelectElements.reduce((acc, item) => {\n if (item.brandObject.brand === value) {\n acc.push(item.brandObject);\n }\n return acc;\n }, []);\n\n if (!brandObjArr.length) {\n return; // no brand object associated with value was found\n }\n } else {\n return; // no value passed\n }\n\n setSelectedBrandValue(value);\n\n // Pass brand object into SecuredFields\n sfp.current.processBinLookupResponse({\n issuingCountryCode,\n supportedBrands: brandObjArr\n });\n }\n };\n}\n"],"names":["containsExcludedBrand","brandsArr","excludedBrands","reduce","acc","brandObj","includes","brand","cloneBrandsArr","map","item","removeExcludedBrand","mainBrand1","mainBrand2","clonedBrands","reverse","length","extensions","props","refs","states","hasPanLengthRef","type","cvcPolicy","sfp","dualBrandSelectElements","setDualBrandSelectElements","setSelectedBrandValue","issuingCountryCode","setIssuingCountryCode","processBinLookup","binLookupResponse","isReset","issuingCode","toLowerCase","Object","keys","brandToReset","current","processBinLookupResponse","supportedBrands","hasExcludedBrand","BRAND_ICON_UI_EXCLUSION_LIST","switcherObj","createCardVariantSwitcher","selectedBrandValue","leadBrand","panLength","handleDualBrandSelection","e","value","Event","target","getAttribute","brandObjArr","brandObject","push"],"mappings":"iHAMO,MAAMA,EAAwB,CAACC,EAA0BC,IACrDD,EAAUE,QAAO,CAACC,EAAKC,IAAaD,GAAOF,EAAeI,SAASD,EAASE,SAAQ,GAGlFC,EAAkBP,GAA4CA,EAAUQ,KAAIC,IAAS,IAAKA,MAE1FC,EAAsB,CAACV,EAA0BW,EAAa,KAAMC,EAAa,UAC1F,MAAMC,EAA8BN,EAAeP,GAInD,OAFIa,EAAa,GAAGP,QAAUK,GAAcE,EAAa,GAAGP,QAAUM,GAAYC,EAAaC,UAC/FD,EAAaE,OAAS,EACfF,CAAAA,EAII,SAASG,EAAWC,EAAOC,EAAMC,EAAQC,EAAwC,CAAA,GAE5F,MAAMC,KAAEA,EAAIC,UAAEA,GAAcL,GACtBM,IAAEA,GAAQL,GACVM,wBAAEA,EAAuBC,2BAAEA,EAA0BC,sBAAEA,EAAqBC,mBAAEA,EAAkBC,sBAAEA,GAA0BT,EAElI,MAAO,CAQHU,iBAAkB,CAACC,EAAmBC,KAClC,MAAMC,EAAcF,GAAmBH,mBAAqBG,EAAkBH,mBAAmBM,cAAgB,KAIjH,GAHAL,EAAsBI,IAGjBF,IAAsBI,OAAOC,KAAKL,GAAmBf,OAAQ,CAC9DU,EAA2B,IAC3BC,EAAsB,IAItB,MAAMU,EAAeL,GAAoB,SAATV,EAAkBA,EAAO,KASzD,OAPAE,EAAIc,QAAQC,yBAAyBR,EAAmB,CACpDxB,MAAO8B,EACPd,UAAWA,SAIfF,EAAgBiB,QAAU,EAE9B,CAGA,GAAIP,EAAkBS,iBAAiBxB,OAAQ,CAC3C,MAAMyB,EAA4BzC,EAAsB+B,EAAkBS,gBAAiBE,GAErFF,EAAiCC,EACjC9B,EAAoBoB,EAAkBS,iBACtChC,EAAeuB,EAAkBS,iBAGvC,GAAIA,EAAgBxB,OAAS,EAAG,CAE5B,MAAM2B,EAAcC,EAA0BJ,GAG9Cd,EAA2BiB,EAAYlB,yBACvCE,EAAsBgB,EAAYE,oBAGlCrB,EAAIc,QAAQC,yBAAyB,CACjCX,mBAAoBG,EAAkBH,mBACtCY,gBAAiB,CAACG,EAAYG,aAI9BH,EAAYG,UAAUC,UAAY,IAClC1B,EAAgBiB,QAAUK,EAAYG,UAAUC,gBAMpDrB,EAA2B,IAC3BC,EAAsB,IAIjBc,GAAkBd,EAAsBa,EAAgB,GAAGjC,OAGhEiB,EAAIc,QAAQC,yBAAyB,CACjCX,mBAAoBG,EAAkBH,mBACtCY,oBAIAA,EAAgB,GAAGO,UAAY,IAC/B1B,EAAgBiB,QAAUE,EAAgB,GAAGO,UAGzD,GAMJC,yBAA2BC,IACvB,IAAIC,EAAwBD,EAE5B,GAAIA,aAAaE,MAAO,CACpB,MAAMC,EAASH,EAAEG,OACjBF,EAAQE,EAAOC,aAAa,eAAiBD,EAAOC,aAAa,MACrE,CAIA,IAAIC,EAA6B,GAC7BJ,IAEAI,EAAc7B,EAAwBtB,QAAO,CAACC,EAAKM,KAC3CA,EAAK6C,YAAYhD,QAAU2C,GAC3B9C,EAAIoD,KAAK9C,EAAK6C,aAEXnD,IACR,IAEEkD,EAAYtC,SAOrBW,EAAsBuB,GAGtB1B,EAAIc,QAAQC,yBAAyB,CACjCX,qBACAY,gBAAiBc,KACrB,EAGZ"}
@@ -1,2 +1,2 @@
1
- import{httpPost as e}from"../../../../core/Services/http.js";import{DEFAULT_CARD_GROUP_TYPES as r}from"../lib/configuration/constants.js";import{SF_ErrorCodes as n}from"../../../../core/Errors/constants.js";var o=o=>{let s=null;return t=>{if(!1!==o.props.doBinLookup){if(t.encryptedBin&&o.props.clientKey)s=t.uuid,e({loadingContext:o.props.loadingContext,path:`v3/bin/binLookup?token=${o.props.clientKey}`},{type:o.props.brand,supportedBrands:o.props.brands||r,encryptedBin:t.encryptedBin,requestId:t.uuid}).then((e=>{if(e?.requestId===s)if(e.brands?.length){const s=e.brands.reduce(((e,r)=>(e.detectedBrands.push(r.brand),e.paymentMethodVariants.push(r.paymentMethodVariant),!0===r.supported?(e.supportedBrands.push(r),e):e)),{supportedBrands:[],detectedBrands:[],paymentMethodVariants:[]});if(s.supportedBrands.length)return o.processBinLookupResponse({issuingCountryCode:e.issuingCountryCode,supportedBrands:s.supportedBrands,...e.showSocialSecurityNumber?{showSocialSecurityNumber:e.showSocialSecurityNumber}:{}}),void o.onBinLookup({type:t.type,detectedBrands:s.detectedBrands,supportedBrands:s.supportedBrands.map((e=>e.brand)),paymentMethodVariants:s.paymentMethodVariants,supportedBrandsRaw:s.supportedBrands,brands:o.props.brands||r,issuingCountryCode:e.issuingCountryCode});if(s.detectedBrands.length){const e={type:"card",fieldType:"encryptedCardNumber",error:n.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,detectedBrands:s.detectedBrands};return o.handleUnsupportedCard(e),void o.onBinLookup({type:t.type,detectedBrands:s.detectedBrands,supportedBrands:null,paymentMethodVariants:s.paymentMethodVariants,brands:o.props.brands||r})}}else o.onBinLookup({type:t.type,detectedBrands:null,supportedBrands:null,paymentMethodVariants:null,brands:o.props.brands||r}),o.processBinLookupResponse({},!0);else e?.requestId||o.props.onError(e||{errorType:"binLookup",message:"unknownError"})}));else if(s){o.processBinLookupResponse(null,!0),s=null;const e={type:"card",fieldType:"encryptedCardNumber",error:""};o.handleUnsupportedCard(e),o.onBinLookup({isReset:!0})}o.props.onBinValue&&o.props.onBinValue(t)}else o.props.onBinValue&&o.props.onBinValue(t)}};export{o as default};
1
+ import{httpPost as e}from"../../../../core/Services/http.js";import{DEFAULT_CARD_GROUP_TYPES as r}from"../lib/constants.js";import{SF_ErrorCodes as n}from"../../../../core/Errors/constants.js";var s=s=>{let o=null;return t=>{if(!1!==s.props.doBinLookup){if(t.encryptedBin&&s.props.clientKey)o=t.uuid,e({loadingContext:s.props.loadingContext,path:`v3/bin/binLookup?token=${s.props.clientKey}`},{type:s.props.brand,supportedBrands:s.props.brands||r,encryptedBin:t.encryptedBin,requestId:t.uuid}).then((e=>{if(e?.requestId===o)if(e.brands?.length){const o=e.brands.reduce(((e,r)=>(e.detectedBrands.push(r.brand),e.paymentMethodVariants.push(r.paymentMethodVariant),!0===r.supported?(e.supportedBrands.push(r),e):e)),{supportedBrands:[],detectedBrands:[],paymentMethodVariants:[]});if(o.supportedBrands.length)return s.processBinLookupResponse({issuingCountryCode:e.issuingCountryCode,supportedBrands:o.supportedBrands,...e.showSocialSecurityNumber?{showSocialSecurityNumber:e.showSocialSecurityNumber}:{}}),void s.onBinLookup({type:t.type,detectedBrands:o.detectedBrands,supportedBrands:o.supportedBrands.map((e=>e.brand)),paymentMethodVariants:o.paymentMethodVariants,supportedBrandsRaw:o.supportedBrands,brands:s.props.brands||r,issuingCountryCode:e.issuingCountryCode});if(o.detectedBrands.length){const e={type:"card",fieldType:"encryptedCardNumber",error:n.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,detectedBrands:o.detectedBrands};return s.handleUnsupportedCard(e),void s.onBinLookup({type:t.type,detectedBrands:o.detectedBrands,supportedBrands:null,paymentMethodVariants:o.paymentMethodVariants,brands:s.props.brands||r})}}else s.onBinLookup({type:t.type,detectedBrands:null,supportedBrands:null,paymentMethodVariants:null,brands:s.props.brands||r}),s.processBinLookupResponse({},!0);else e?.requestId||s.props.onError(e||{errorType:"binLookup",message:"unknownError"})}));else if(o){s.processBinLookupResponse(null,!0),o=null;const e={type:"card",fieldType:"encryptedCardNumber",error:""};s.handleUnsupportedCard(e),s.onBinLookup({isReset:!0})}s.props.onBinValue&&s.props.onBinValue(t)}else s.props.onBinValue&&s.props.onBinValue(t)}};export{s as default};
2
2
  //# sourceMappingURL=triggerBinLookUp.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"triggerBinLookUp.js","sources":["../../../../../../src/components/internal/SecuredFields/binLookup/triggerBinLookUp.ts"],"sourcesContent":["import { httpPost } from '../../../../core/Services/http';\nimport { CbObjOnBinLookup, CbObjOnBinValue, CbObjOnError } from '../lib/types';\nimport { DEFAULT_CARD_GROUP_TYPES } from '../lib/configuration/constants';\nimport { SF_ErrorCodes } from '../../../../core/Errors/constants';\nimport { BinLookupResponse, BinLookupResponseRaw } from '../../../Card/types';\n\nif (process.env.NODE_ENV === 'development') {\n window.mockBinCount = 0; // Set to 0 to turn off mocking, 1 to turn it on\n}\n\nexport default parent => {\n let currentRequestId = null;\n\n return (callbackObj: CbObjOnBinValue) => {\n // Allow way for merchant to disallow binLookup by specifically setting the prop to false\n if (parent.props.doBinLookup === false) {\n if (parent.props.onBinValue) parent.props.onBinValue(callbackObj);\n return;\n }\n\n // Do binLookup when encryptedBin property is present (and only if the merchant is using a clientKey)\n if (callbackObj.encryptedBin && parent.props.clientKey) {\n // Store id of request we're about to make\n currentRequestId = callbackObj.uuid;\n\n httpPost(\n {\n loadingContext: parent.props.loadingContext,\n path: `v3/bin/binLookup?token=${parent.props.clientKey}`\n },\n {\n type: parent.props.brand,\n supportedBrands: parent.props.brands || DEFAULT_CARD_GROUP_TYPES,\n encryptedBin: callbackObj.encryptedBin,\n requestId: callbackObj.uuid // Pass id of request\n }\n ).then((data: BinLookupResponseRaw) => {\n // If response is the one we were waiting for...\n if (data?.requestId === currentRequestId) {\n if (process.env.NODE_ENV === 'development') {\n // TODO mocking\n if (window.mockBinCount >= 1) {\n switch (window.mockBinCount) {\n case 1:\n console.log('\\n### triggerBinLookUp::mock first response:: ');\n data.brands = [\n {\n brand: 'mc',\n cvcPolicy: 'optional',\n enableLuhnCheck: true,\n // showExpiryDate: true, // deprecated in /binLookup v3\n expiryDatePolicy: 'optional',\n // panLength: 16,\n supported: true\n }\n ];\n // data.issuingCountryCode = 'KR'; // needed to mock korean_local_card\n // increment to alter second response\n window.mockBinCount++;\n\n break;\n case 2:\n console.log('\\n### triggerBinLookUp::mock second response:: ');\n // data.brands = null;\n data.brands = [\n {\n brand: 'maestro',\n cvcPolicy: 'required',\n enableLuhnCheck: true,\n showExpiryDate: true,\n supported: true,\n showSocialSecurityNumber: false\n // panLength: 16\n }\n ];\n break;\n default:\n }\n }\n // TODO end\n }\n\n if (data.brands?.length) {\n const mappedResponse = data.brands.reduce(\n (acc, item) => {\n // All brand strings end up in the detectedBrands array\n acc.detectedBrands.push(item.brand);\n // Also add the paymentMethodVariants (more granular description of the txvariant)\n acc.paymentMethodVariants.push(item.paymentMethodVariant);\n\n // Add supported brand objects to the supportedBrands array\n if (item.supported === true) {\n acc.supportedBrands.push(item);\n return acc;\n }\n\n return acc;\n },\n { supportedBrands: [], detectedBrands: [], paymentMethodVariants: [] }\n );\n\n /**\n * supportedBrands = merchant supports this brand(s); we have detected the card number to be of this brand(s); carry on!\n */\n if (mappedResponse.supportedBrands.length) {\n // ...call processBinLookupResponse with, a simplified, response object if it contains at least one supported brand\n parent.processBinLookupResponse({\n issuingCountryCode: data.issuingCountryCode,\n supportedBrands: mappedResponse.supportedBrands,\n ...(data.showSocialSecurityNumber ? { showSocialSecurityNumber: data.showSocialSecurityNumber } : {})\n } as BinLookupResponse);\n\n // Inform merchant of the result\n parent.onBinLookup({\n type: callbackObj.type,\n detectedBrands: mappedResponse.detectedBrands,\n // supportedBrands contains the subset of this.props.brands that matches the card number that the shopper has typed\n supportedBrands: mappedResponse.supportedBrands.map(item => item.brand),\n paymentMethodVariants: mappedResponse.paymentMethodVariants,\n supportedBrandsRaw: mappedResponse.supportedBrands, // full supportedBrands data (for customCard comp)\n brands: parent.props.brands || DEFAULT_CARD_GROUP_TYPES,\n issuingCountryCode: data.issuingCountryCode\n } as CbObjOnBinLookup);\n\n return;\n }\n\n /**\n * detectedBrands = no brands the merchant supports were found; what we did detect the shopper to be entering was this brand;\n * error!\n */\n if (mappedResponse.detectedBrands.length) {\n const errObj: CbObjOnError = {\n type: 'card',\n fieldType: 'encryptedCardNumber',\n error: SF_ErrorCodes.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,\n detectedBrands: mappedResponse.detectedBrands\n };\n parent.handleUnsupportedCard(errObj);\n\n // Inform merchant of the result\n parent.onBinLookup({\n type: callbackObj.type,\n detectedBrands: mappedResponse.detectedBrands,\n supportedBrands: null,\n paymentMethodVariants: mappedResponse.paymentMethodVariants,\n brands: parent.props.brands || DEFAULT_CARD_GROUP_TYPES\n } as CbObjOnBinLookup);\n\n return;\n }\n } else {\n /**\n * BIN not in DB (a failed lookup will just contain a requestId)\n */\n parent.onBinLookup({\n type: callbackObj.type,\n detectedBrands: null,\n supportedBrands: null,\n paymentMethodVariants: null,\n brands: parent.props.brands || DEFAULT_CARD_GROUP_TYPES\n } as CbObjOnBinLookup);\n\n // Reset the UI and let the native, regex branding happen (for the generic card)\n // For a single-branded card we need to pass a boolean to prompt resetting the brand logo to the 'base' type\n parent.processBinLookupResponse({}, true);\n }\n } else {\n if (!data?.requestId) {\n // Some other kind of error on the backend\n parent.props.onError(data || { errorType: 'binLookup', message: 'unknownError' });\n }\n // Else - response with wrong requestId\n }\n });\n } else if (currentRequestId) {\n /**\n * If onBinValue callback is called AND we have been doing binLookup BUT passed object doesn't have an encryptedBin property\n * - then THE NUMBER OF DIGITS IN NUMBER FIELD HAS DROPPED BELOW THRESHOLD for BIN lookup - so reset the UI\n */\n parent.processBinLookupResponse(null, true);\n\n currentRequestId = null; // Ignore any pending responses\n\n // Reset any errors\n const errObj: CbObjOnError = {\n type: 'card',\n fieldType: 'encryptedCardNumber',\n error: ''\n };\n parent.handleUnsupportedCard(errObj);\n\n // CustomCard needs this to reset the UI\n parent.onBinLookup({\n isReset: true\n } as CbObjOnBinLookup);\n }\n\n if (parent.props.onBinValue) parent.props.onBinValue(callbackObj);\n };\n};\n"],"names":["parent","currentRequestId","callbackObj","props","doBinLookup","encryptedBin","clientKey","uuid","httpPost","loadingContext","path","type","brand","supportedBrands","brands","DEFAULT_CARD_GROUP_TYPES","requestId","then","data","length","mappedResponse","reduce","acc","item","detectedBrands","push","paymentMethodVariants","paymentMethodVariant","supported","processBinLookupResponse","issuingCountryCode","showSocialSecurityNumber","onBinLookup","map","supportedBrandsRaw","errObj","fieldType","error","SF_ErrorCodes","ERROR_MSG_UNSUPPORTED_CARD_ENTERED","handleUnsupportedCard","onError","errorType","message","isReset","onBinValue"],"mappings":"+MAUA,IAAeA,EAAAA,IACX,IAAIC,EAAmB,KAEvB,OAAQC,IAEJ,IAAiC,IAA7BF,EAAOG,MAAMC,YAAjB,CAMA,GAAIF,EAAYG,cAAgBL,EAAOG,MAAMG,UAEzCL,EAAmBC,EAAYK,KAE/BC,EACI,CACIC,eAAgBT,EAAOG,MAAMM,eAC7BC,KAAM,0BAA0BV,EAAOG,MAAMG,aAEjD,CACIK,KAAMX,EAAOG,MAAMS,MACnBC,gBAAiBb,EAAOG,MAAMW,QAAUC,EACxCV,aAAcH,EAAYG,aAC1BW,UAAWd,EAAYK,OAE7BU,MAAMC,IAEJ,GAAIA,GAAMF,YAAcf,EA4CpB,GAAIiB,EAAKJ,QAAQK,OAAQ,CACrB,MAAMC,EAAiBF,EAAKJ,OAAOO,QAC/B,CAACC,EAAKC,KAEFD,EAAIE,eAAeC,KAAKF,EAAKX,OAE7BU,EAAII,sBAAsBD,KAAKF,EAAKI,uBAGb,IAAnBJ,EAAKK,WACLN,EAAIT,gBAAgBY,KAAKF,GAClBD,GAGJA,IAEX,CAAET,gBAAiB,GAAIW,eAAgB,GAAIE,sBAAuB,KAMtE,GAAIN,EAAeP,gBAAgBM,OAoB/B,OAlBAnB,EAAO6B,yBAAyB,CAC5BC,mBAAoBZ,EAAKY,mBACzBjB,gBAAiBO,EAAeP,mBAC5BK,EAAKa,yBAA2B,CAAEA,yBAA0Bb,EAAKa,0BAA6B,CAAE,SAIxG/B,EAAOgC,YAAY,CACfrB,KAAMT,EAAYS,KAClBa,eAAgBJ,EAAeI,eAE/BX,gBAAiBO,EAAeP,gBAAgBoB,KAAIV,GAAQA,EAAKX,QACjEc,sBAAuBN,EAAeM,sBACtCQ,mBAAoBd,EAAeP,gBACnCC,OAAQd,EAAOG,MAAMW,QAAUC,EAC/Be,mBAAoBZ,EAAKY,qBAUjC,GAAIV,EAAeI,eAAeL,OAAQ,CACtC,MAAMgB,EAAuB,CACzBxB,KAAM,OACNyB,UAAW,sBACXC,MAAOC,EAAcC,mCACrBf,eAAgBJ,EAAeI,gBAanC,OAXAxB,EAAOwC,sBAAsBL,QAG7BnC,EAAOgC,YAAY,CACfrB,KAAMT,EAAYS,KAClBa,eAAgBJ,EAAeI,eAC/BX,gBAAiB,KACjBa,sBAAuBN,EAAeM,sBACtCZ,OAAQd,EAAOG,MAAMW,QAAUC,GAIvC,OAKAf,EAAOgC,YAAY,CACfrB,KAAMT,EAAYS,KAClBa,eAAgB,KAChBX,gBAAiB,KACjBa,sBAAuB,KACvBZ,OAAQd,EAAOG,MAAMW,QAAUC,IAKnCf,EAAO6B,yBAAyB,IAAI,QAGnCX,GAAMF,WAEPhB,EAAOG,MAAMsC,QAAQvB,GAAQ,CAAEwB,UAAW,YAAaC,QAAS,gBAGxE,SAED,GAAI1C,EAAkB,CAKzBD,EAAO6B,yBAAyB,MAAM,GAEtC5B,EAAmB,KAGnB,MAAMkC,EAAuB,CACzBxB,KAAM,OACNyB,UAAW,sBACXC,MAAO,IAEXrC,EAAOwC,sBAAsBL,GAG7BnC,EAAOgC,YAAY,CACfY,SAAS,GAEjB,CAEI5C,EAAOG,MAAM0C,YAAY7C,EAAOG,MAAM0C,WAAW3C,EApLrD,MAFQF,EAAOG,MAAM0C,YAAY7C,EAAOG,MAAM0C,WAAW3C,EAsLJA,CAE7D"}
1
+ {"version":3,"file":"triggerBinLookUp.js","sources":["../../../../../../src/components/internal/SecuredFields/binLookup/triggerBinLookUp.ts"],"sourcesContent":["import { httpPost } from '../../../../core/Services/http';\nimport { CbObjOnBinLookup, CbObjOnBinValue, CbObjOnError } from '../lib/types';\nimport { DEFAULT_CARD_GROUP_TYPES } from '../lib/constants';\nimport { SF_ErrorCodes } from '../../../../core/Errors/constants';\nimport { BinLookupResponse, BinLookupResponseRaw } from '../../../Card/types';\n\nif (process.env.NODE_ENV === 'development') {\n window.mockBinCount = 0; // Set to 0 to turn off mocking, 1 to turn it on\n}\n\nexport default parent => {\n let currentRequestId = null;\n\n return (callbackObj: CbObjOnBinValue) => {\n // Allow way for merchant to disallow binLookup by specifically setting the prop to false\n if (parent.props.doBinLookup === false) {\n if (parent.props.onBinValue) parent.props.onBinValue(callbackObj);\n return;\n }\n\n // Do binLookup when encryptedBin property is present (and only if the merchant is using a clientKey)\n if (callbackObj.encryptedBin && parent.props.clientKey) {\n // Store id of request we're about to make\n currentRequestId = callbackObj.uuid;\n\n httpPost(\n {\n loadingContext: parent.props.loadingContext,\n path: `v3/bin/binLookup?token=${parent.props.clientKey}`\n },\n {\n type: parent.props.brand,\n supportedBrands: parent.props.brands || DEFAULT_CARD_GROUP_TYPES,\n encryptedBin: callbackObj.encryptedBin,\n requestId: callbackObj.uuid // Pass id of request\n }\n ).then((data: BinLookupResponseRaw) => {\n // If response is the one we were waiting for...\n if (data?.requestId === currentRequestId) {\n if (process.env.NODE_ENV === 'development') {\n // TODO mocking\n if (window.mockBinCount >= 1) {\n switch (window.mockBinCount) {\n case 1:\n console.log('\\n### triggerBinLookUp::mock first response:: ');\n data.brands = [\n {\n brand: 'mc',\n cvcPolicy: 'optional',\n enableLuhnCheck: true,\n // showExpiryDate: true, // deprecated in /binLookup v3\n expiryDatePolicy: 'optional',\n // panLength: 16,\n supported: true\n }\n ];\n // data.issuingCountryCode = 'KR'; // needed to mock korean_local_card\n // increment to alter second response\n window.mockBinCount++;\n\n break;\n case 2:\n console.log('\\n### triggerBinLookUp::mock second response:: ');\n // data.brands = null;\n data.brands = [\n {\n brand: 'maestro',\n cvcPolicy: 'required',\n enableLuhnCheck: true,\n showExpiryDate: true,\n supported: true,\n showSocialSecurityNumber: false\n // panLength: 16\n }\n ];\n break;\n default:\n }\n }\n // TODO end\n }\n\n if (data.brands?.length) {\n const mappedResponse = data.brands.reduce(\n (acc, item) => {\n // All brand strings end up in the detectedBrands array\n acc.detectedBrands.push(item.brand);\n // Also add the paymentMethodVariants (more granular description of the txvariant)\n acc.paymentMethodVariants.push(item.paymentMethodVariant);\n\n // Add supported brand objects to the supportedBrands array\n if (item.supported === true) {\n acc.supportedBrands.push(item);\n return acc;\n }\n\n return acc;\n },\n { supportedBrands: [], detectedBrands: [], paymentMethodVariants: [] }\n );\n\n /**\n * supportedBrands = merchant supports this brand(s); we have detected the card number to be of this brand(s); carry on!\n */\n if (mappedResponse.supportedBrands.length) {\n // ...call processBinLookupResponse with, a simplified, response object if it contains at least one supported brand\n parent.processBinLookupResponse({\n issuingCountryCode: data.issuingCountryCode,\n supportedBrands: mappedResponse.supportedBrands,\n ...(data.showSocialSecurityNumber ? { showSocialSecurityNumber: data.showSocialSecurityNumber } : {})\n } as BinLookupResponse);\n\n // Inform merchant of the result\n parent.onBinLookup({\n type: callbackObj.type,\n detectedBrands: mappedResponse.detectedBrands,\n // supportedBrands contains the subset of this.props.brands that matches the card number that the shopper has typed\n supportedBrands: mappedResponse.supportedBrands.map(item => item.brand),\n paymentMethodVariants: mappedResponse.paymentMethodVariants,\n supportedBrandsRaw: mappedResponse.supportedBrands, // full supportedBrands data (for customCard comp)\n brands: parent.props.brands || DEFAULT_CARD_GROUP_TYPES,\n issuingCountryCode: data.issuingCountryCode\n } as CbObjOnBinLookup);\n\n return;\n }\n\n /**\n * detectedBrands = no brands the merchant supports were found; what we did detect the shopper to be entering was this brand;\n * error!\n */\n if (mappedResponse.detectedBrands.length) {\n const errObj: CbObjOnError = {\n type: 'card',\n fieldType: 'encryptedCardNumber',\n error: SF_ErrorCodes.ERROR_MSG_UNSUPPORTED_CARD_ENTERED,\n detectedBrands: mappedResponse.detectedBrands\n };\n parent.handleUnsupportedCard(errObj);\n\n // Inform merchant of the result\n parent.onBinLookup({\n type: callbackObj.type,\n detectedBrands: mappedResponse.detectedBrands,\n supportedBrands: null,\n paymentMethodVariants: mappedResponse.paymentMethodVariants,\n brands: parent.props.brands || DEFAULT_CARD_GROUP_TYPES\n } as CbObjOnBinLookup);\n\n return;\n }\n } else {\n /**\n * BIN not in DB (a failed lookup will just contain a requestId)\n */\n parent.onBinLookup({\n type: callbackObj.type,\n detectedBrands: null,\n supportedBrands: null,\n paymentMethodVariants: null,\n brands: parent.props.brands || DEFAULT_CARD_GROUP_TYPES\n } as CbObjOnBinLookup);\n\n // Reset the UI and let the native, regex branding happen (for the generic card)\n // For a single-branded card we need to pass a boolean to prompt resetting the brand logo to the 'base' type\n parent.processBinLookupResponse({}, true);\n }\n } else {\n if (!data?.requestId) {\n // Some other kind of error on the backend\n parent.props.onError(data || { errorType: 'binLookup', message: 'unknownError' });\n }\n // Else - response with wrong requestId\n }\n });\n } else if (currentRequestId) {\n /**\n * If onBinValue callback is called AND we have been doing binLookup BUT passed object doesn't have an encryptedBin property\n * - then THE NUMBER OF DIGITS IN NUMBER FIELD HAS DROPPED BELOW THRESHOLD for BIN lookup - so reset the UI\n */\n parent.processBinLookupResponse(null, true);\n\n currentRequestId = null; // Ignore any pending responses\n\n // Reset any errors\n const errObj: CbObjOnError = {\n type: 'card',\n fieldType: 'encryptedCardNumber',\n error: ''\n };\n parent.handleUnsupportedCard(errObj);\n\n // CustomCard needs this to reset the UI\n parent.onBinLookup({\n isReset: true\n } as CbObjOnBinLookup);\n }\n\n if (parent.props.onBinValue) parent.props.onBinValue(callbackObj);\n };\n};\n"],"names":["parent","currentRequestId","callbackObj","props","doBinLookup","encryptedBin","clientKey","uuid","httpPost","loadingContext","path","type","brand","supportedBrands","brands","DEFAULT_CARD_GROUP_TYPES","requestId","then","data","length","mappedResponse","reduce","acc","item","detectedBrands","push","paymentMethodVariants","paymentMethodVariant","supported","processBinLookupResponse","issuingCountryCode","showSocialSecurityNumber","onBinLookup","map","supportedBrandsRaw","errObj","fieldType","error","SF_ErrorCodes","ERROR_MSG_UNSUPPORTED_CARD_ENTERED","handleUnsupportedCard","onError","errorType","message","isReset","onBinValue"],"mappings":"iMAUA,IAAeA,EAAAA,IACX,IAAIC,EAAmB,KAEvB,OAAQC,IAEJ,IAAiC,IAA7BF,EAAOG,MAAMC,YAAjB,CAMA,GAAIF,EAAYG,cAAgBL,EAAOG,MAAMG,UAEzCL,EAAmBC,EAAYK,KAE/BC,EACI,CACIC,eAAgBT,EAAOG,MAAMM,eAC7BC,KAAM,0BAA0BV,EAAOG,MAAMG,aAEjD,CACIK,KAAMX,EAAOG,MAAMS,MACnBC,gBAAiBb,EAAOG,MAAMW,QAAUC,EACxCV,aAAcH,EAAYG,aAC1BW,UAAWd,EAAYK,OAE7BU,MAAMC,IAEJ,GAAIA,GAAMF,YAAcf,EA4CpB,GAAIiB,EAAKJ,QAAQK,OAAQ,CACrB,MAAMC,EAAiBF,EAAKJ,OAAOO,QAC/B,CAACC,EAAKC,KAEFD,EAAIE,eAAeC,KAAKF,EAAKX,OAE7BU,EAAII,sBAAsBD,KAAKF,EAAKI,uBAGb,IAAnBJ,EAAKK,WACLN,EAAIT,gBAAgBY,KAAKF,GAClBD,GAGJA,IAEX,CAAET,gBAAiB,GAAIW,eAAgB,GAAIE,sBAAuB,KAMtE,GAAIN,EAAeP,gBAAgBM,OAoB/B,OAlBAnB,EAAO6B,yBAAyB,CAC5BC,mBAAoBZ,EAAKY,mBACzBjB,gBAAiBO,EAAeP,mBAC5BK,EAAKa,yBAA2B,CAAEA,yBAA0Bb,EAAKa,0BAA6B,CAAE,SAIxG/B,EAAOgC,YAAY,CACfrB,KAAMT,EAAYS,KAClBa,eAAgBJ,EAAeI,eAE/BX,gBAAiBO,EAAeP,gBAAgBoB,KAAIV,GAAQA,EAAKX,QACjEc,sBAAuBN,EAAeM,sBACtCQ,mBAAoBd,EAAeP,gBACnCC,OAAQd,EAAOG,MAAMW,QAAUC,EAC/Be,mBAAoBZ,EAAKY,qBAUjC,GAAIV,EAAeI,eAAeL,OAAQ,CACtC,MAAMgB,EAAuB,CACzBxB,KAAM,OACNyB,UAAW,sBACXC,MAAOC,EAAcC,mCACrBf,eAAgBJ,EAAeI,gBAanC,OAXAxB,EAAOwC,sBAAsBL,QAG7BnC,EAAOgC,YAAY,CACfrB,KAAMT,EAAYS,KAClBa,eAAgBJ,EAAeI,eAC/BX,gBAAiB,KACjBa,sBAAuBN,EAAeM,sBACtCZ,OAAQd,EAAOG,MAAMW,QAAUC,GAIvC,OAKAf,EAAOgC,YAAY,CACfrB,KAAMT,EAAYS,KAClBa,eAAgB,KAChBX,gBAAiB,KACjBa,sBAAuB,KACvBZ,OAAQd,EAAOG,MAAMW,QAAUC,IAKnCf,EAAO6B,yBAAyB,IAAI,QAGnCX,GAAMF,WAEPhB,EAAOG,MAAMsC,QAAQvB,GAAQ,CAAEwB,UAAW,YAAaC,QAAS,gBAGxE,SAED,GAAI1C,EAAkB,CAKzBD,EAAO6B,yBAAyB,MAAM,GAEtC5B,EAAmB,KAGnB,MAAMkC,EAAuB,CACzBxB,KAAM,OACNyB,UAAW,sBACXC,MAAO,IAEXrC,EAAOwC,sBAAsBL,GAG7BnC,EAAOgC,YAAY,CACfY,SAAS,GAEjB,CAEI5C,EAAOG,MAAM0C,YAAY7C,EAAOG,MAAM0C,WAAW3C,EApLrD,MAFQF,EAAOG,MAAM0C,YAAY7C,EAAOG,MAAM0C,WAAW3C,EAsLJA,CAE7D"}
@@ -1,2 +1,2 @@
1
- import{select as e,getAttribute as t}from"../../utilities/dom.js";import{DATA_ENCRYPTED_FIELD_ATTR as i,CVC_POLICY_REQUIRED as o,DATE_POLICY_REQUIRED as s,ENCRYPTED_EXPIRY_YEAR as n,SF_CONFIG_TIMEOUT as r,ALL_SECURED_FIELDS as a,DATA_INFO as d,DATA_UID as l}from"../../configuration/constants.js";import{existy as c}from"../../utilities/commonUtils.js";import h from"../utils/cardType.js";import u from"../../securedField/SecuredField.js";import p from"../../../../../../core/Errors/AdyenCheckoutError.js";function f(){this.encryptedAttrName=i;const n=e(this.props.rootNode,`[${this.encryptedAttrName}]`).filter((e=>{const i=t(e,this.encryptedAttrName),o=a.includes(i);return o||console.warn(`WARNING: '${i}' is not a valid type for the '${this.encryptedAttrName}' attribute. A SecuredField will not be created for this element.`),o})),r=o,d=s;return this.config.isCreditCardType?(this.isSingleBrandedCard=!1,this.securityCode="",this.createCardSecuredFields(n,r,d),n.length):(this.createNonCardSecuredFields(n),n.length)}async function m(e){for(let t=0;t<e.length;t++){const i=e[t];await this.setupSecuredField(i).catch((e=>{window._b$dl&&console.log("Secured fields setup failure. e=",e)}))}}async function y(e,t,i){let n=this.state.type;if("card"===n&&1===this.config.cardGroupTypes.length&&(n=this.config.cardGroupTypes[0],this.state.type=n),this.isSingleBrandedCard="card"!==n,this.isSingleBrandedCard){const e=h.getCardByBrand(n);c(e)?(t=e.cvcPolicy||o,i=e.expiryDatePolicy||s,this.securityCode=e.securityCode):this.state.type="unrecognised-single-brand"}for(let o=0;o<e.length;o++){const s=e[o];window._b$dl&&console.log("\nAbout to set up securedField:",s),await this.setupSecuredField(s,t,i).catch((e=>{window._b$dl&&console.log("Secured fields setup failure. e=",e)})),window._b$dl&&console.log("Finished setting up securedField:",s)}if(window._b$dl&&console.log("Finished setting up all securedFields"),this.isSingleBrandedCard){const e={type:this.state.type,rootNode:this.props.rootNode,brand:n,cvcPolicy:t,expiryDatePolicy:i,cvcText:this.securityCode};setTimeout((()=>{this.callbacks.onBrand(e)}),0)}}function g(e,i,o){return new Promise(((s,a)=>{const c=t(e,this.encryptedAttrName);c===n&&(this.state.hasSeparateDateFields=!0);const h={fieldType:c,extraFieldData:t(e,d),uid:t(e,l),cvcPolicy:i,holderEl:e,expiryDatePolicy:o,txVariant:this.state.type,cardGroupTypes:this.config.cardGroupTypes,iframeUIConfig:this.config.iframeUIConfig,sfLogAtStart:this.config.sfLogAtStart,trimTrailingSeparator:this.config.trimTrailingSeparator,isCreditCardType:this.config.isCreditCardType,iframeSrc:this.config.iframeSrc,loadingContext:this.config.loadingContext,showWarnings:this.config.showWarnings,legacyInputMode:this.config.legacyInputMode,minimumExpiryDate:this.config.minimumExpiryDate,maskSecurityCode:this.props.maskSecurityCode,disableIOSArrowKeys:this.props.shouldDisableIOSArrowKeys,implementationType:this.props.implementationType,showContextualElement:this.props.showContextualElement,placeholders:this.props.placeholders},f=new u(h,this.props.i18n).onIframeLoaded((()=>{if(this.state.iframeCount+=1,window._b$dl&&console.log("### createSecuredFields::onIframeLoaded:: this.state.iframeCount=",this.state.iframeCount),this.state.iframeCount>this.state.numIframes)throw this.destroySecuredFields(),new p("ERROR",`One or more securedFields has just loaded new content. This should never happen. securedFields have been removed.\n iframe load count=${this.state.iframeCount}. Expected count:${this.state.numIframes}`);if(f.loadToConfigTimeout=setTimeout((()=>{a({type:h.fieldType,failReason:"sf took too long to config"})}),r),this.state.iframeCount===this.state.originalNumIframes){const e={iframesLoaded:!0};this.callbacks.onLoad(e)}})).onConfig((e=>{this.handleIframeConfigFeedback(e),clearTimeout(f.loadToConfigTimeout),f.loadToConfigTimeout=null,s(e)})).onFocus((e=>{this.handleFocus(e)})).onBinValue((e=>{this.handleBinValue(e)})).onTouchstart((e=>{this.props.shouldDisableIOSArrowKeys&&(this.hasGenuineTouchEvents||e.hasGenuineTouchEvents)&&this.callbacks.onTouchstartIOS({fieldType:e.fieldType}),(e.hasGenuineTouchEvents||this.hasGenuineTouchEvents)&&this.postMessageToAllIframes({fieldType:e.fieldType,fieldClick:!0})})).onShiftTab((e=>{this.handleSFShiftTab(e.fieldType)})).onEncryption((e=>{this.handleEncryption(e)})).onValidation((e=>{this.handleValidation(e)})).onAutoComplete((e=>{this.processAutoComplete(e)}));this.state.securedFields[c]=f}))}export{y as createCardSecuredFields,m as createNonCardSecuredFields,f as createSecuredFields,g as setupSecuredField};
1
+ import{select as e,getAttribute as t}from"../../utilities/dom.js";import{DATA_ENCRYPTED_FIELD_ATTR as i,CVC_POLICY_REQUIRED as s,DATE_POLICY_REQUIRED as o,ENCRYPTED_EXPIRY_YEAR as n,SF_CONFIG_TIMEOUT as r,ALL_SECURED_FIELDS as a,DATA_INFO as d,DATA_UID as l}from"../../constants.js";import{existy as c}from"../../utilities/commonUtils.js";import h from"../utils/cardType.js";import u from"../../securedField/SecuredField.js";import p from"../../../../../../core/Errors/AdyenCheckoutError.js";function f(){this.encryptedAttrName=i;const n=e(this.props.rootNode,`[${this.encryptedAttrName}]`).filter((e=>{const i=t(e,this.encryptedAttrName),s=a.includes(i);return s||console.warn(`WARNING: '${i}' is not a valid type for the '${this.encryptedAttrName}' attribute. A SecuredField will not be created for this element.`),s})),r=s,d=o;return this.config.isCreditCardType?(this.isSingleBrandedCard=!1,this.securityCode="",this.createCardSecuredFields(n,r,d),n.length):(this.createNonCardSecuredFields(n),n.length)}async function m(e){for(let t=0;t<e.length;t++){const i=e[t];await this.setupSecuredField(i).catch((e=>{window._b$dl&&console.log("Secured fields setup failure. e=",e)}))}}async function y(e,t,i){let n=this.state.type;if("card"===n&&1===this.config.cardGroupTypes.length&&(n=this.config.cardGroupTypes[0],this.state.type=n),this.isSingleBrandedCard="card"!==n,this.isSingleBrandedCard){const e=h.getCardByBrand(n);c(e)?(t=e.cvcPolicy||s,i=e.expiryDatePolicy||o,this.securityCode=e.securityCode):this.state.type="unrecognised-single-brand"}for(let s=0;s<e.length;s++){const o=e[s];window._b$dl&&console.log("\nAbout to set up securedField:",o),await this.setupSecuredField(o,t,i).catch((e=>{window._b$dl&&console.log("Secured fields setup failure. e=",e)})),window._b$dl&&console.log("Finished setting up securedField:",o)}if(window._b$dl&&console.log("Finished setting up all securedFields"),this.isSingleBrandedCard){const e={type:this.state.type,rootNode:this.props.rootNode,brand:n,cvcPolicy:t,expiryDatePolicy:i,cvcText:this.securityCode};setTimeout((()=>{this.callbacks.onBrand(e)}),0)}}function g(e,i,s){return new Promise(((o,a)=>{const c=t(e,this.encryptedAttrName);c===n&&(this.state.hasSeparateDateFields=!0);const h={fieldType:c,extraFieldData:t(e,d),uid:t(e,l),cvcPolicy:i,holderEl:e,expiryDatePolicy:s,txVariant:this.state.type,cardGroupTypes:this.config.cardGroupTypes,iframeUIConfig:this.config.iframeUIConfig,sfLogAtStart:this.config.sfLogAtStart,trimTrailingSeparator:this.config.trimTrailingSeparator,isCreditCardType:this.config.isCreditCardType,iframeSrc:this.config.iframeSrc,loadingContext:this.config.loadingContext,showWarnings:this.config.showWarnings,legacyInputMode:this.config.legacyInputMode,minimumExpiryDate:this.config.minimumExpiryDate,maskSecurityCode:this.props.maskSecurityCode,disableIOSArrowKeys:this.props.shouldDisableIOSArrowKeys,implementationType:this.props.implementationType,showContextualElement:this.props.showContextualElement,placeholders:this.props.placeholders},f=new u(h,this.props.i18n).onIframeLoaded((()=>{if(this.state.iframeCount+=1,window._b$dl&&console.log("### createSecuredFields::onIframeLoaded:: this.state.iframeCount=",this.state.iframeCount),this.state.iframeCount>this.state.numIframes)throw this.destroySecuredFields(),new p("ERROR",`One or more securedFields has just loaded new content. This should never happen. securedFields have been removed.\n iframe load count=${this.state.iframeCount}. Expected count:${this.state.numIframes}`);if(f.loadToConfigTimeout=setTimeout((()=>{a({type:h.fieldType,failReason:"sf took too long to config"})}),r),this.state.iframeCount===this.state.originalNumIframes){const e={iframesLoaded:!0};this.callbacks.onLoad(e)}})).onConfig((e=>{this.handleIframeConfigFeedback(e),clearTimeout(f.loadToConfigTimeout),f.loadToConfigTimeout=null,o(e)})).onFocus((e=>{this.handleFocus(e)})).onBinValue((e=>{this.handleBinValue(e)})).onTouchstart((e=>{this.props.shouldDisableIOSArrowKeys&&(this.hasGenuineTouchEvents||e.hasGenuineTouchEvents)&&this.callbacks.onTouchstartIOS({fieldType:e.fieldType}),(e.hasGenuineTouchEvents||this.hasGenuineTouchEvents)&&this.postMessageToAllIframes({fieldType:e.fieldType,fieldClick:!0})})).onShiftTab((e=>{this.handleSFShiftTab(e.fieldType)})).onEncryption((e=>{this.handleEncryption(e)})).onValidation((e=>{this.handleValidation(e)})).onAutoComplete((e=>{this.processAutoComplete(e)}));this.state.securedFields[c]=f}))}export{y as createCardSecuredFields,m as createNonCardSecuredFields,f as createSecuredFields,g as setupSecuredField};
2
2
  //# sourceMappingURL=createSecuredFields.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createSecuredFields.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.ts"],"sourcesContent":["import { select, getAttribute } from '../../utilities/dom';\nimport {\n ENCRYPTED_EXPIRY_YEAR,\n DATE_POLICY_REQUIRED,\n CVC_POLICY_REQUIRED,\n DATA_ENCRYPTED_FIELD_ATTR,\n DATA_INFO,\n DATA_UID,\n SF_CONFIG_TIMEOUT,\n ALL_SECURED_FIELDS,\n ENCRYPTED_EXPIRY_MONTH\n} from '../../configuration/constants';\nimport { existy } from '../../utilities/commonUtils';\nimport cardType from '../utils/cardType';\nimport { SecuredFieldSetupObject } from '../../types';\nimport SecuredField from '../../securedField/SecuredField';\nimport { CardObject, CbObjOnBrand, SFFeedbackObj, CbObjOnLoad, CVCPolicyType, DatePolicyType } from '../../types';\nimport AdyenCheckoutError from '../../../../../../core/Errors/AdyenCheckoutError';\n\n/**\n * Bound to the instance of CSF\n * Handles specific functionality related to configuring & creating SecuredFields\n */\nexport function createSecuredFields(): number {\n this.encryptedAttrName = DATA_ENCRYPTED_FIELD_ATTR;\n\n // Detect DOM elements that qualify as securedField holders & filter them for valid types\n const securedFields: HTMLElement[] = select(this.props.rootNode, `[${this.encryptedAttrName}]`).filter(field => {\n const fieldType: string = getAttribute(field, this.encryptedAttrName);\n\n if (fieldType === ENCRYPTED_EXPIRY_MONTH) {\n // TODO send analytics about separate date fields\n }\n\n const isValidType = ALL_SECURED_FIELDS.includes(fieldType);\n if (!isValidType) {\n console.warn(\n `WARNING: '${fieldType}' is not a valid type for the '${this.encryptedAttrName}' attribute. A SecuredField will not be created for this element.`\n );\n }\n return isValidType;\n });\n\n /**\n * cvcPolicy - 'required' | 'optional' | 'hidden'\n * - Always 'required' for GiftCards\n * - Usually 'required' for single branded Credit Cards but with exceptions e.g. maestro ('optional'), bcmc ('hidden').\n * - Always 'required' for generic Credit Cards at start up - in this case, subsequent, supporting information about whether cvc stops being required\n * comes from the SF in the brand information (as the shopper inputs the cc number)\n */\n const cvcPolicy: CVCPolicyType = CVC_POLICY_REQUIRED;\n\n /** Usually 'required' for single branded Credit Cards but with exceptions e.g. ticket ('hidden', *technically* a meal voucher) */\n const expiryDatePolicy: DatePolicyType = DATE_POLICY_REQUIRED;\n\n // CHECK IF THIS SECURED FIELD IS NOT OF A CREDIT CARD TYPE\n if (!this.config.isCreditCardType) {\n this.createNonCardSecuredFields(securedFields);\n return securedFields.length;\n }\n\n // CONTINUE AS CREDIT-CARD TYPE...\n this.isSingleBrandedCard = false;\n\n this.securityCode = '';\n\n this.createCardSecuredFields(securedFields, cvcPolicy, expiryDatePolicy);\n\n // Return the number of iframes we're going to create\n return securedFields.length;\n}\n\n/**\n * i.e. giftcard and ach fields\n *\n * Create a new SecuredField for each detected holding element\n */\nexport async function createNonCardSecuredFields(securedFields: HTMLElement[]): Promise<any> {\n for (let i = 0; i < securedFields.length; i++) {\n const securedField = securedFields[i];\n await this.setupSecuredField(securedField).catch(e => {\n if (window._b$dl) console.log('Secured fields setup failure. e=', e);\n });\n }\n}\n\nexport async function createCardSecuredFields(\n securedFields: HTMLElement[],\n cvcPolicy: CVCPolicyType,\n expiryDatePolicy: DatePolicyType\n): Promise<any> {\n // Declared card type from the initialisation of CSF\n let type: string = this.state.type;\n\n // Maybe it's a single branded card defined by setting type: 'card' & a single item in cardGroupTypes\n // In which case update the type var both locally AND in State\n if (type === 'card' && this.config.cardGroupTypes.length === 1) {\n type = this.config.cardGroupTypes[0];\n this.state.type = type;\n }\n\n // So, is it a single branded card?\n this.isSingleBrandedCard = type !== 'card';\n\n // If single branded card field...\n if (this.isSingleBrandedCard) {\n // Check that type exists\n const card: CardObject = cardType.getCardByBrand(type);\n\n // It's possible we don't recognise the card type -\n // scenario: frontend initially recognises card as e.g. Visa - but then backend tokenises it as a sub-brand which we currently don't recognise\n if (!existy(card)) {\n this.state.type = 'unrecognised-single-brand'; // Will let CVC field accept 4 digits in the input\n } else {\n // Assess whether cvc field is required based on the card type & whether the cvc field should even be visible\n cvcPolicy = (card.cvcPolicy as CVCPolicyType) || CVC_POLICY_REQUIRED;\n expiryDatePolicy = (card.expiryDatePolicy as DatePolicyType) || DATE_POLICY_REQUIRED;\n\n this.securityCode = card.securityCode;\n }\n }\n\n /**\n * Create a new SecuredField for each detected holding element\n *\n * - we do this in sequence, waiting until one has configured before creating the next.\n * We do it this way to avoid the 'bug' whereby if something interrupts the loading of an iframe the listener we have for its load event\n * never fires; which means the iframe never configures.\n * (NB - you can recreate this 'bug' by creating the securedFields in a synchronous loop:\n * securedFields.forEach(this.setupSecuredField.bind(this));\n * and putting a breakpoint on the line where we declare the setupSecuredField function)\n *\n * Also note we tried the Array.map/Promise.all way of asynchronously looping through an array - but it didn't fix the issue,\n * - so we fall back to a good old for-loop\n */\n for (let i = 0; i < securedFields.length; i++) {\n const securedField = securedFields[i];\n if (window._b$dl) console.log('\\nAbout to set up securedField:', securedField);\n await this.setupSecuredField(securedField, cvcPolicy, expiryDatePolicy).catch(e => {\n if (window._b$dl) console.log('Secured fields setup failure. e=', e);\n });\n if (window._b$dl) console.log('Finished setting up securedField:', securedField);\n }\n if (window._b$dl) console.log('Finished setting up all securedFields');\n\n /**\n * Now the securedFields have all been created and configured...\n *\n * For a single branded card we call to onBrand callback once.\n * This allows the UI to set the correct logo if they haven't already,\n * and we also pass the cvcPolicy & expiryDatePolicy so the UI can hide the iframe holders if necessary\n */\n if (this.isSingleBrandedCard) {\n const callbackObj: CbObjOnBrand = {\n type: this.state.type,\n rootNode: this.props.rootNode,\n brand: type,\n cvcPolicy,\n expiryDatePolicy,\n cvcText: this.securityCode\n };\n\n // Allow a tick for the securedField to finish rendering\n setTimeout(() => {\n this.callbacks.onBrand(callbackObj);\n }, 0);\n }\n}\n\n// Run for each detected holder of a securedField...\nexport function setupSecuredField(pItem: HTMLElement, cvcPolicy?: CVCPolicyType, expiryDatePolicy?: DatePolicyType): Promise<any> {\n return new Promise((resolve, reject) => {\n /**\n * possible values:\n * encryptedCardNumber\n * encryptedExpiryDate\n * encryptedExpiryMonth\n * encryptedExpiryYear\n * encryptedSecurityCode\n * encryptedPassword\n * encryptedPin???\n * encryptedBankAccountNumber\n * encryptedBankLocationId\n * encryptedIBAN\n */\n const fieldType: string = getAttribute(pItem, this.encryptedAttrName);\n\n if (fieldType === ENCRYPTED_EXPIRY_YEAR) {\n this.state.hasSeparateDateFields = true;\n }\n\n const extraFieldData: string = getAttribute(pItem, DATA_INFO);\n const uid = getAttribute(pItem, DATA_UID);\n\n // CREATE SecuredField passing config object\n const sfInitObj: SecuredFieldSetupObject = {\n fieldType,\n extraFieldData,\n uid,\n cvcPolicy,\n holderEl: pItem,\n expiryDatePolicy,\n txVariant: this.state.type,\n // from this.config (calculated)\n cardGroupTypes: this.config.cardGroupTypes,\n iframeUIConfig: this.config.iframeUIConfig,\n sfLogAtStart: this.config.sfLogAtStart,\n trimTrailingSeparator: this.config.trimTrailingSeparator,\n isCreditCardType: this.config.isCreditCardType,\n iframeSrc: this.config.iframeSrc,\n loadingContext: this.config.loadingContext,\n showWarnings: this.config.showWarnings,\n legacyInputMode: this.config.legacyInputMode,\n minimumExpiryDate: this.config.minimumExpiryDate,\n // from this.props (passed straight thru)\n maskSecurityCode: this.props.maskSecurityCode,\n disableIOSArrowKeys: this.props.shouldDisableIOSArrowKeys,\n implementationType: this.props.implementationType,\n showContextualElement: this.props.showContextualElement,\n placeholders: this.props.placeholders\n };\n\n const sf: SecuredField = new SecuredField(sfInitObj, this.props.i18n)\n .onIframeLoaded((): void => {\n // Count\n this.state.iframeCount += 1;\n\n if (window._b$dl) console.log('### createSecuredFields::onIframeLoaded:: this.state.iframeCount=', this.state.iframeCount);\n\n // One of our existing securedFields has just loaded new content!\n if (this.state.iframeCount > this.state.numIframes) {\n this.destroySecuredFields();\n // TODO send analytics about this error\n throw new AdyenCheckoutError(\n 'ERROR',\n `One or more securedFields has just loaded new content. This should never happen. securedFields have been removed.\n iframe load count=${this.state.iframeCount}. Expected count:${this.state.numIframes}`\n );\n }\n\n /** Create timeout within which time we expect the securedField to configure */\n // @ts-ignore - timeout 'type' *is* a number\n sf.loadToConfigTimeout = setTimeout(() => {\n reject({ type: sfInitObj.fieldType, failReason: 'sf took too long to config' });\n }, SF_CONFIG_TIMEOUT);\n\n // If all iframes are loaded - call onLoad callback\n if (this.state.iframeCount === this.state.originalNumIframes) {\n const callbackObj: CbObjOnLoad = { iframesLoaded: true };\n this.callbacks.onLoad(callbackObj);\n }\n })\n .onConfig((pFeedbackObj: SFFeedbackObj): void => {\n this.handleIframeConfigFeedback(pFeedbackObj);\n\n // Clear timeout since the securedField has configured\n clearTimeout(sf.loadToConfigTimeout);\n sf.loadToConfigTimeout = null;\n\n resolve(pFeedbackObj);\n })\n .onFocus((pFeedbackObj: SFFeedbackObj): void => {\n this.handleFocus(pFeedbackObj);\n })\n .onBinValue((pFeedbackObj: SFFeedbackObj): void => {\n this.handleBinValue(pFeedbackObj);\n })\n .onTouchstart((pFeedbackObj: SFFeedbackObj): void => {\n // re. Disabling arrow keys in iOS - need to disable all other fields in the form\n if (this.props.shouldDisableIOSArrowKeys) {\n /**\n * re. this.hasGenuineTouchEvents...\n * There seems to be an issue with Responsive Design mode in Safari that means it allows setting focus on cross-origin iframes,\n * without enabling the touch events that allow the \"disableIOSArrowKeys\" workaround to fully function.\n * This results in a click on an securedFields *label* leading to, for example, the holderName field being disabled, but w/o access\n * to the touch events that would let it re-enable itself.\n *\n * So we prevent the \"disableIOSArrowKeys\" workaround unless we genuinely have touch events available.\n */\n if (this.hasGenuineTouchEvents || pFeedbackObj.hasGenuineTouchEvents) {\n this.callbacks.onTouchstartIOS({ fieldType: pFeedbackObj.fieldType });\n }\n }\n\n // Only perform this step if we genuinely have touch events available\n if (pFeedbackObj.hasGenuineTouchEvents || this.hasGenuineTouchEvents) {\n // iOS ONLY - RE. iOS BUGS AROUND BLUR AND FOCUS EVENTS\n // - pass information about which field has just been clicked (gained focus) to the other iframes\n this.postMessageToAllIframes({ fieldType: pFeedbackObj.fieldType, fieldClick: true });\n }\n })\n .onShiftTab((pFeedbackObj: SFFeedbackObj): void => {\n // Only happens for Firefox & IE <= 11\n this.handleSFShiftTab(pFeedbackObj.fieldType);\n })\n .onEncryption((pFeedbackObj: SFFeedbackObj): void => {\n this.handleEncryption(pFeedbackObj);\n })\n .onValidation((pFeedbackObj: SFFeedbackObj): void => {\n this.handleValidation(pFeedbackObj);\n })\n .onAutoComplete((pFeedbackObj: SFFeedbackObj): void => {\n this.processAutoComplete(pFeedbackObj);\n });\n\n // Store reference to securedField in this.state (under fieldType)\n this.state.securedFields[fieldType] = sf;\n });\n}\n"],"names":["createSecuredFields","this","encryptedAttrName","DATA_ENCRYPTED_FIELD_ATTR","securedFields","select","props","rootNode","filter","field","fieldType","getAttribute","isValidType","ALL_SECURED_FIELDS","includes","console","warn","cvcPolicy","CVC_POLICY_REQUIRED","expiryDatePolicy","DATE_POLICY_REQUIRED","config","isCreditCardType","isSingleBrandedCard","securityCode","createCardSecuredFields","length","createNonCardSecuredFields","async","i","securedField","setupSecuredField","catch","e","window","_b$dl","log","type","state","cardGroupTypes","card","cardType","getCardByBrand","existy","callbackObj","brand","cvcText","setTimeout","callbacks","onBrand","pItem","Promise","resolve","reject","ENCRYPTED_EXPIRY_YEAR","hasSeparateDateFields","sfInitObj","extraFieldData","DATA_INFO","uid","DATA_UID","holderEl","txVariant","iframeUIConfig","sfLogAtStart","trimTrailingSeparator","iframeSrc","loadingContext","showWarnings","legacyInputMode","minimumExpiryDate","maskSecurityCode","disableIOSArrowKeys","shouldDisableIOSArrowKeys","implementationType","showContextualElement","placeholders","sf","SecuredField","i18n","onIframeLoaded","iframeCount","numIframes","destroySecuredFields","AdyenCheckoutError","loadToConfigTimeout","failReason","SF_CONFIG_TIMEOUT","originalNumIframes","iframesLoaded","onLoad","onConfig","pFeedbackObj","handleIframeConfigFeedback","clearTimeout","onFocus","handleFocus","onBinValue","handleBinValue","onTouchstart","hasGenuineTouchEvents","onTouchstartIOS","postMessageToAllIframes","fieldClick","onShiftTab","handleSFShiftTab","onEncryption","handleEncryption","onValidation","handleValidation","onAutoComplete","processAutoComplete"],"mappings":"0fAuBO,SAASA,IACZC,KAAKC,kBAAoBC,EAGzB,MAAMC,EAA+BC,EAAOJ,KAAKK,MAAMC,SAAU,IAAIN,KAAKC,sBAAsBM,QAAOC,IACnG,MAAMC,EAAoBC,EAAaF,EAAOR,KAAKC,mBAM7CU,EAAcC,EAAmBC,SAASJ,GAMhD,OALKE,GACDG,QAAQC,KACJ,aAAaN,mCAA2CT,KAAKC,sFAG9DU,CAAAA,IAULK,EAA2BC,EAG3BC,EAAmCC,EAGzC,OAAKnB,KAAKoB,OAAOC,kBAMjBrB,KAAKsB,qBAAsB,EAE3BtB,KAAKuB,aAAe,GAEpBvB,KAAKwB,wBAAwBrB,EAAea,EAAWE,GAGhDf,EAAcsB,SAZjBzB,KAAK0B,2BAA2BvB,GACzBA,EAAcsB,OAY7B,CAOOE,eAAeD,EAA2BvB,GAC7C,IAAK,IAAIyB,EAAI,EAAGA,EAAIzB,EAAcsB,OAAQG,IAAK,CAC3C,MAAMC,EAAe1B,EAAcyB,SAC7B5B,KAAK8B,kBAAkBD,GAAcE,OAAMC,IACzCC,OAAOC,OAAOpB,QAAQqB,IAAI,mCAAoCH,EAAAA,GAE1E,CACJ,CAEOL,eAAeH,EAClBrB,EACAa,EACAE,GAGA,IAAIkB,EAAepC,KAAKqC,MAAMD,KAa9B,GATa,SAATA,GAAyD,IAAtCpC,KAAKoB,OAAOkB,eAAeb,SAC9CW,EAAOpC,KAAKoB,OAAOkB,eAAe,GAClCtC,KAAKqC,MAAMD,KAAOA,GAItBpC,KAAKsB,oBAA+B,SAATc,EAGvBpC,KAAKsB,oBAAqB,CAE1B,MAAMiB,EAAmBC,EAASC,eAAeL,GAI5CM,EAAOH,IAIRvB,EAAauB,EAAKvB,WAA+BC,EACjDC,EAAoBqB,EAAKrB,kBAAuCC,EAEhEnB,KAAKuB,aAAegB,EAAKhB,cANzBvB,KAAKqC,MAAMD,KAAO,2BAQ1B,CAeA,IAAK,IAAIR,EAAI,EAAGA,EAAIzB,EAAcsB,OAAQG,IAAK,CAC3C,MAAMC,EAAe1B,EAAcyB,GAC/BK,OAAOC,OAAOpB,QAAQqB,IAAI,kCAAmCN,SAC3D7B,KAAK8B,kBAAkBD,EAAcb,EAAWE,GAAkBa,OAAMC,IACtEC,OAAOC,OAAOpB,QAAQqB,IAAI,mCAAoCH,EAAAA,IAElEC,OAAOC,OAAOpB,QAAQqB,IAAI,oCAAqCN,EACvE,CAUA,GATII,OAAOC,OAAOpB,QAAQqB,IAAI,yCAS1BnC,KAAKsB,oBAAqB,CAC1B,MAAMqB,EAA4B,CAC9BP,KAAMpC,KAAKqC,MAAMD,KACjB9B,SAAUN,KAAKK,MAAMC,SACrBsC,MAAOR,EACPpB,YACAE,mBACA2B,QAAS7C,KAAKuB,cAIlBuB,YAAW,KACP9C,KAAK+C,UAAUC,QAAQL,EAAAA,GACxB,EACP,CACJ,CAGO,SAASb,EAAkBmB,EAAoBjC,EAA2BE,GAC7E,OAAO,IAAIgC,SAAQ,CAACC,EAASC,KAczB,MAAM3C,EAAoBC,EAAauC,EAAOjD,KAAKC,mBAE/CQ,IAAc4C,IACdrD,KAAKqC,MAAMiB,uBAAwB,GAGvC,MAIMC,EAAqC,CACvC9C,YACA+C,eAN2B9C,EAAauC,EAAOQ,GAO/CC,IANQhD,EAAauC,EAAOU,GAO5B3C,YACA4C,SAAUX,EACV/B,mBACA2C,UAAW7D,KAAKqC,MAAMD,KAEtBE,eAAgBtC,KAAKoB,OAAOkB,eAC5BwB,eAAgB9D,KAAKoB,OAAO0C,eAC5BC,aAAc/D,KAAKoB,OAAO2C,aAC1BC,sBAAuBhE,KAAKoB,OAAO4C,sBACnC3C,iBAAkBrB,KAAKoB,OAAOC,iBAC9B4C,UAAWjE,KAAKoB,OAAO6C,UACvBC,eAAgBlE,KAAKoB,OAAO8C,eAC5BC,aAAcnE,KAAKoB,OAAO+C,aAC1BC,gBAAiBpE,KAAKoB,OAAOgD,gBAC7BC,kBAAmBrE,KAAKoB,OAAOiD,kBAE/BC,iBAAkBtE,KAAKK,MAAMiE,iBAC7BC,oBAAqBvE,KAAKK,MAAMmE,0BAChCC,mBAAoBzE,KAAKK,MAAMoE,mBAC/BC,sBAAuB1E,KAAKK,MAAMqE,sBAClCC,aAAc3E,KAAKK,MAAMsE,cAGvBC,EAAmB,IAAIC,EAAatB,EAAWvD,KAAKK,MAAMyE,MAC3DC,gBAAe,KAOZ,GALA/E,KAAKqC,MAAM2C,aAAe,EAEtB/C,OAAOC,OAAOpB,QAAQqB,IAAI,oEAAqEnC,KAAKqC,MAAM2C,aAG1GhF,KAAKqC,MAAM2C,YAAchF,KAAKqC,MAAM4C,WAGpC,MAFAjF,KAAKkF,uBAEC,IAAIC,EACN,QACA,gKACoBnF,KAAKqC,MAAM2C,+BAA+BhF,KAAKqC,MAAM4C,cAWjF,GALAL,EAAGQ,oBAAsBtC,YAAW,KAChCM,EAAO,CAAEhB,KAAMmB,EAAU9C,UAAW4E,WAAY,8BAA6B,GAC9EC,GAGCtF,KAAKqC,MAAM2C,cAAgBhF,KAAKqC,MAAMkD,mBAAoB,CAC1D,MAAM5C,EAA2B,CAAE6C,eAAe,GAClDxF,KAAK+C,UAAU0C,OAAO9C,EAC1B,KAEH+C,UAAUC,IACP3F,KAAK4F,2BAA2BD,GAGhCE,aAAajB,EAAGQ,qBAChBR,EAAGQ,oBAAsB,KAEzBjC,EAAQwC,EAAAA,IAEXG,SAASH,IACN3F,KAAK+F,YAAYJ,EAAAA,IAEpBK,YAAYL,IACT3F,KAAKiG,eAAeN,EAAAA,IAEvBO,cAAcP,IAEP3F,KAAKK,MAAMmE,4BAUPxE,KAAKmG,uBAAyBR,EAAaQ,wBAC3CnG,KAAK+C,UAAUqD,gBAAgB,CAAE3F,UAAWkF,EAAalF,aAK7DkF,EAAaQ,uBAAyBnG,KAAKmG,wBAG3CnG,KAAKqG,wBAAwB,CAAE5F,UAAWkF,EAAalF,UAAW6F,YAAY,GAClF,IAEHC,YAAYZ,IAET3F,KAAKwG,iBAAiBb,EAAalF,UAAS,IAE/CgG,cAAcd,IACX3F,KAAK0G,iBAAiBf,EAAAA,IAEzBgB,cAAchB,IACX3F,KAAK4G,iBAAiBjB,EAAAA,IAEzBkB,gBAAgBlB,IACb3F,KAAK8G,oBAAoBnB,EAAAA,IAIjC3F,KAAKqC,MAAMlC,cAAcM,GAAamE,CAAAA,GAE9C"}
1
+ {"version":3,"file":"createSecuredFields.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/extensions/createSecuredFields.ts"],"sourcesContent":["import { select, getAttribute } from '../../utilities/dom';\nimport {\n ENCRYPTED_EXPIRY_YEAR,\n DATE_POLICY_REQUIRED,\n CVC_POLICY_REQUIRED,\n DATA_ENCRYPTED_FIELD_ATTR,\n DATA_INFO,\n DATA_UID,\n SF_CONFIG_TIMEOUT,\n ALL_SECURED_FIELDS,\n ENCRYPTED_EXPIRY_MONTH\n} from '../../constants';\nimport { existy } from '../../utilities/commonUtils';\nimport cardType from '../utils/cardType';\nimport { SecuredFieldSetupObject } from '../../types';\nimport SecuredField from '../../securedField/SecuredField';\nimport { CardObject, CbObjOnBrand, SFFeedbackObj, CbObjOnLoad, CVCPolicyType, DatePolicyType } from '../../types';\nimport AdyenCheckoutError from '../../../../../../core/Errors/AdyenCheckoutError';\n\n/**\n * Bound to the instance of CSF\n * Handles specific functionality related to configuring & creating SecuredFields\n */\nexport function createSecuredFields(): number {\n this.encryptedAttrName = DATA_ENCRYPTED_FIELD_ATTR;\n\n // Detect DOM elements that qualify as securedField holders & filter them for valid types\n const securedFields: HTMLElement[] = select(this.props.rootNode, `[${this.encryptedAttrName}]`).filter(field => {\n const fieldType: string = getAttribute(field, this.encryptedAttrName);\n\n if (fieldType === ENCRYPTED_EXPIRY_MONTH) {\n // TODO send analytics about separate date fields\n }\n\n const isValidType = ALL_SECURED_FIELDS.includes(fieldType);\n if (!isValidType) {\n console.warn(\n `WARNING: '${fieldType}' is not a valid type for the '${this.encryptedAttrName}' attribute. A SecuredField will not be created for this element.`\n );\n }\n return isValidType;\n });\n\n /**\n * cvcPolicy - 'required' | 'optional' | 'hidden'\n * - Always 'required' for GiftCards\n * - Usually 'required' for single branded Credit Cards but with exceptions e.g. maestro ('optional'), bcmc ('hidden').\n * - Always 'required' for generic Credit Cards at start up - in this case, subsequent, supporting information about whether cvc stops being required\n * comes from the SF in the brand information (as the shopper inputs the cc number)\n */\n const cvcPolicy: CVCPolicyType = CVC_POLICY_REQUIRED;\n\n /** Usually 'required' for single branded Credit Cards but with exceptions e.g. ticket ('hidden', *technically* a meal voucher) */\n const expiryDatePolicy: DatePolicyType = DATE_POLICY_REQUIRED;\n\n // CHECK IF THIS SECURED FIELD IS NOT OF A CREDIT CARD TYPE\n if (!this.config.isCreditCardType) {\n this.createNonCardSecuredFields(securedFields);\n return securedFields.length;\n }\n\n // CONTINUE AS CREDIT-CARD TYPE...\n this.isSingleBrandedCard = false;\n\n this.securityCode = '';\n\n this.createCardSecuredFields(securedFields, cvcPolicy, expiryDatePolicy);\n\n // Return the number of iframes we're going to create\n return securedFields.length;\n}\n\n/**\n * i.e. giftcard and ach fields\n *\n * Create a new SecuredField for each detected holding element\n */\nexport async function createNonCardSecuredFields(securedFields: HTMLElement[]): Promise<any> {\n for (let i = 0; i < securedFields.length; i++) {\n const securedField = securedFields[i];\n await this.setupSecuredField(securedField).catch(e => {\n if (window._b$dl) console.log('Secured fields setup failure. e=', e);\n });\n }\n}\n\nexport async function createCardSecuredFields(\n securedFields: HTMLElement[],\n cvcPolicy: CVCPolicyType,\n expiryDatePolicy: DatePolicyType\n): Promise<any> {\n // Declared card type from the initialisation of CSF\n let type: string = this.state.type;\n\n // Maybe it's a single branded card defined by setting type: 'card' & a single item in cardGroupTypes\n // In which case update the type var both locally AND in State\n if (type === 'card' && this.config.cardGroupTypes.length === 1) {\n type = this.config.cardGroupTypes[0];\n this.state.type = type;\n }\n\n // So, is it a single branded card?\n this.isSingleBrandedCard = type !== 'card';\n\n // If single branded card field...\n if (this.isSingleBrandedCard) {\n // Check that type exists\n const card: CardObject = cardType.getCardByBrand(type);\n\n // It's possible we don't recognise the card type -\n // scenario: frontend initially recognises card as e.g. Visa - but then backend tokenises it as a sub-brand which we currently don't recognise\n if (!existy(card)) {\n this.state.type = 'unrecognised-single-brand'; // Will let CVC field accept 4 digits in the input\n } else {\n // Assess whether cvc field is required based on the card type & whether the cvc field should even be visible\n cvcPolicy = (card.cvcPolicy as CVCPolicyType) || CVC_POLICY_REQUIRED;\n expiryDatePolicy = (card.expiryDatePolicy as DatePolicyType) || DATE_POLICY_REQUIRED;\n\n this.securityCode = card.securityCode;\n }\n }\n\n /**\n * Create a new SecuredField for each detected holding element\n *\n * - we do this in sequence, waiting until one has configured before creating the next.\n * We do it this way to avoid the 'bug' whereby if something interrupts the loading of an iframe the listener we have for its load event\n * never fires; which means the iframe never configures.\n * (NB - you can recreate this 'bug' by creating the securedFields in a synchronous loop:\n * securedFields.forEach(this.setupSecuredField.bind(this));\n * and putting a breakpoint on the line where we declare the setupSecuredField function)\n *\n * Also note we tried the Array.map/Promise.all way of asynchronously looping through an array - but it didn't fix the issue,\n * - so we fall back to a good old for-loop\n */\n for (let i = 0; i < securedFields.length; i++) {\n const securedField = securedFields[i];\n if (window._b$dl) console.log('\\nAbout to set up securedField:', securedField);\n await this.setupSecuredField(securedField, cvcPolicy, expiryDatePolicy).catch(e => {\n if (window._b$dl) console.log('Secured fields setup failure. e=', e);\n });\n if (window._b$dl) console.log('Finished setting up securedField:', securedField);\n }\n if (window._b$dl) console.log('Finished setting up all securedFields');\n\n /**\n * Now the securedFields have all been created and configured...\n *\n * For a single branded card we call to onBrand callback once.\n * This allows the UI to set the correct logo if they haven't already,\n * and we also pass the cvcPolicy & expiryDatePolicy so the UI can hide the iframe holders if necessary\n */\n if (this.isSingleBrandedCard) {\n const callbackObj: CbObjOnBrand = {\n type: this.state.type,\n rootNode: this.props.rootNode,\n brand: type,\n cvcPolicy,\n expiryDatePolicy,\n cvcText: this.securityCode\n };\n\n // Allow a tick for the securedField to finish rendering\n setTimeout(() => {\n this.callbacks.onBrand(callbackObj);\n }, 0);\n }\n}\n\n// Run for each detected holder of a securedField...\nexport function setupSecuredField(pItem: HTMLElement, cvcPolicy?: CVCPolicyType, expiryDatePolicy?: DatePolicyType): Promise<any> {\n return new Promise((resolve, reject) => {\n /**\n * possible values:\n * encryptedCardNumber\n * encryptedExpiryDate\n * encryptedExpiryMonth\n * encryptedExpiryYear\n * encryptedSecurityCode\n * encryptedPassword\n * encryptedPin???\n * encryptedBankAccountNumber\n * encryptedBankLocationId\n * encryptedIBAN\n */\n const fieldType: string = getAttribute(pItem, this.encryptedAttrName);\n\n if (fieldType === ENCRYPTED_EXPIRY_YEAR) {\n this.state.hasSeparateDateFields = true;\n }\n\n const extraFieldData: string = getAttribute(pItem, DATA_INFO);\n const uid = getAttribute(pItem, DATA_UID);\n\n // CREATE SecuredField passing config object\n const sfInitObj: SecuredFieldSetupObject = {\n fieldType,\n extraFieldData,\n uid,\n cvcPolicy,\n holderEl: pItem,\n expiryDatePolicy,\n txVariant: this.state.type,\n // from this.config (calculated)\n cardGroupTypes: this.config.cardGroupTypes,\n iframeUIConfig: this.config.iframeUIConfig,\n sfLogAtStart: this.config.sfLogAtStart,\n trimTrailingSeparator: this.config.trimTrailingSeparator,\n isCreditCardType: this.config.isCreditCardType,\n iframeSrc: this.config.iframeSrc,\n loadingContext: this.config.loadingContext,\n showWarnings: this.config.showWarnings,\n legacyInputMode: this.config.legacyInputMode,\n minimumExpiryDate: this.config.minimumExpiryDate,\n // from this.props (passed straight thru)\n maskSecurityCode: this.props.maskSecurityCode,\n disableIOSArrowKeys: this.props.shouldDisableIOSArrowKeys,\n implementationType: this.props.implementationType,\n showContextualElement: this.props.showContextualElement,\n placeholders: this.props.placeholders\n };\n\n const sf: SecuredField = new SecuredField(sfInitObj, this.props.i18n)\n .onIframeLoaded((): void => {\n // Count\n this.state.iframeCount += 1;\n\n if (window._b$dl) console.log('### createSecuredFields::onIframeLoaded:: this.state.iframeCount=', this.state.iframeCount);\n\n // One of our existing securedFields has just loaded new content!\n if (this.state.iframeCount > this.state.numIframes) {\n this.destroySecuredFields();\n // TODO send analytics about this error\n throw new AdyenCheckoutError(\n 'ERROR',\n `One or more securedFields has just loaded new content. This should never happen. securedFields have been removed.\n iframe load count=${this.state.iframeCount}. Expected count:${this.state.numIframes}`\n );\n }\n\n /** Create timeout within which time we expect the securedField to configure */\n // @ts-ignore - timeout 'type' *is* a number\n sf.loadToConfigTimeout = setTimeout(() => {\n reject({ type: sfInitObj.fieldType, failReason: 'sf took too long to config' });\n }, SF_CONFIG_TIMEOUT);\n\n // If all iframes are loaded - call onLoad callback\n if (this.state.iframeCount === this.state.originalNumIframes) {\n const callbackObj: CbObjOnLoad = { iframesLoaded: true };\n this.callbacks.onLoad(callbackObj);\n }\n })\n .onConfig((pFeedbackObj: SFFeedbackObj): void => {\n this.handleIframeConfigFeedback(pFeedbackObj);\n\n // Clear timeout since the securedField has configured\n clearTimeout(sf.loadToConfigTimeout);\n sf.loadToConfigTimeout = null;\n\n resolve(pFeedbackObj);\n })\n .onFocus((pFeedbackObj: SFFeedbackObj): void => {\n this.handleFocus(pFeedbackObj);\n })\n .onBinValue((pFeedbackObj: SFFeedbackObj): void => {\n this.handleBinValue(pFeedbackObj);\n })\n .onTouchstart((pFeedbackObj: SFFeedbackObj): void => {\n // re. Disabling arrow keys in iOS - need to disable all other fields in the form\n if (this.props.shouldDisableIOSArrowKeys) {\n /**\n * re. this.hasGenuineTouchEvents...\n * There seems to be an issue with Responsive Design mode in Safari that means it allows setting focus on cross-origin iframes,\n * without enabling the touch events that allow the \"disableIOSArrowKeys\" workaround to fully function.\n * This results in a click on an securedFields *label* leading to, for example, the holderName field being disabled, but w/o access\n * to the touch events that would let it re-enable itself.\n *\n * So we prevent the \"disableIOSArrowKeys\" workaround unless we genuinely have touch events available.\n */\n if (this.hasGenuineTouchEvents || pFeedbackObj.hasGenuineTouchEvents) {\n this.callbacks.onTouchstartIOS({ fieldType: pFeedbackObj.fieldType });\n }\n }\n\n // Only perform this step if we genuinely have touch events available\n if (pFeedbackObj.hasGenuineTouchEvents || this.hasGenuineTouchEvents) {\n // iOS ONLY - RE. iOS BUGS AROUND BLUR AND FOCUS EVENTS\n // - pass information about which field has just been clicked (gained focus) to the other iframes\n this.postMessageToAllIframes({ fieldType: pFeedbackObj.fieldType, fieldClick: true });\n }\n })\n .onShiftTab((pFeedbackObj: SFFeedbackObj): void => {\n // Only happens for Firefox & IE <= 11\n this.handleSFShiftTab(pFeedbackObj.fieldType);\n })\n .onEncryption((pFeedbackObj: SFFeedbackObj): void => {\n this.handleEncryption(pFeedbackObj);\n })\n .onValidation((pFeedbackObj: SFFeedbackObj): void => {\n this.handleValidation(pFeedbackObj);\n })\n .onAutoComplete((pFeedbackObj: SFFeedbackObj): void => {\n this.processAutoComplete(pFeedbackObj);\n });\n\n // Store reference to securedField in this.state (under fieldType)\n this.state.securedFields[fieldType] = sf;\n });\n}\n"],"names":["createSecuredFields","this","encryptedAttrName","DATA_ENCRYPTED_FIELD_ATTR","securedFields","select","props","rootNode","filter","field","fieldType","getAttribute","isValidType","ALL_SECURED_FIELDS","includes","console","warn","cvcPolicy","CVC_POLICY_REQUIRED","expiryDatePolicy","DATE_POLICY_REQUIRED","config","isCreditCardType","isSingleBrandedCard","securityCode","createCardSecuredFields","length","createNonCardSecuredFields","async","i","securedField","setupSecuredField","catch","e","window","_b$dl","log","type","state","cardGroupTypes","card","cardType","getCardByBrand","existy","callbackObj","brand","cvcText","setTimeout","callbacks","onBrand","pItem","Promise","resolve","reject","ENCRYPTED_EXPIRY_YEAR","hasSeparateDateFields","sfInitObj","extraFieldData","DATA_INFO","uid","DATA_UID","holderEl","txVariant","iframeUIConfig","sfLogAtStart","trimTrailingSeparator","iframeSrc","loadingContext","showWarnings","legacyInputMode","minimumExpiryDate","maskSecurityCode","disableIOSArrowKeys","shouldDisableIOSArrowKeys","implementationType","showContextualElement","placeholders","sf","SecuredField","i18n","onIframeLoaded","iframeCount","numIframes","destroySecuredFields","AdyenCheckoutError","loadToConfigTimeout","failReason","SF_CONFIG_TIMEOUT","originalNumIframes","iframesLoaded","onLoad","onConfig","pFeedbackObj","handleIframeConfigFeedback","clearTimeout","onFocus","handleFocus","onBinValue","handleBinValue","onTouchstart","hasGenuineTouchEvents","onTouchstartIOS","postMessageToAllIframes","fieldClick","onShiftTab","handleSFShiftTab","onEncryption","handleEncryption","onValidation","handleValidation","onAutoComplete","processAutoComplete"],"mappings":"4eAuBO,SAASA,IACZC,KAAKC,kBAAoBC,EAGzB,MAAMC,EAA+BC,EAAOJ,KAAKK,MAAMC,SAAU,IAAIN,KAAKC,sBAAsBM,QAAOC,IACnG,MAAMC,EAAoBC,EAAaF,EAAOR,KAAKC,mBAM7CU,EAAcC,EAAmBC,SAASJ,GAMhD,OALKE,GACDG,QAAQC,KACJ,aAAaN,mCAA2CT,KAAKC,sFAG9DU,CAAAA,IAULK,EAA2BC,EAG3BC,EAAmCC,EAGzC,OAAKnB,KAAKoB,OAAOC,kBAMjBrB,KAAKsB,qBAAsB,EAE3BtB,KAAKuB,aAAe,GAEpBvB,KAAKwB,wBAAwBrB,EAAea,EAAWE,GAGhDf,EAAcsB,SAZjBzB,KAAK0B,2BAA2BvB,GACzBA,EAAcsB,OAY7B,CAOOE,eAAeD,EAA2BvB,GAC7C,IAAK,IAAIyB,EAAI,EAAGA,EAAIzB,EAAcsB,OAAQG,IAAK,CAC3C,MAAMC,EAAe1B,EAAcyB,SAC7B5B,KAAK8B,kBAAkBD,GAAcE,OAAMC,IACzCC,OAAOC,OAAOpB,QAAQqB,IAAI,mCAAoCH,EAAAA,GAE1E,CACJ,CAEOL,eAAeH,EAClBrB,EACAa,EACAE,GAGA,IAAIkB,EAAepC,KAAKqC,MAAMD,KAa9B,GATa,SAATA,GAAyD,IAAtCpC,KAAKoB,OAAOkB,eAAeb,SAC9CW,EAAOpC,KAAKoB,OAAOkB,eAAe,GAClCtC,KAAKqC,MAAMD,KAAOA,GAItBpC,KAAKsB,oBAA+B,SAATc,EAGvBpC,KAAKsB,oBAAqB,CAE1B,MAAMiB,EAAmBC,EAASC,eAAeL,GAI5CM,EAAOH,IAIRvB,EAAauB,EAAKvB,WAA+BC,EACjDC,EAAoBqB,EAAKrB,kBAAuCC,EAEhEnB,KAAKuB,aAAegB,EAAKhB,cANzBvB,KAAKqC,MAAMD,KAAO,2BAQ1B,CAeA,IAAK,IAAIR,EAAI,EAAGA,EAAIzB,EAAcsB,OAAQG,IAAK,CAC3C,MAAMC,EAAe1B,EAAcyB,GAC/BK,OAAOC,OAAOpB,QAAQqB,IAAI,kCAAmCN,SAC3D7B,KAAK8B,kBAAkBD,EAAcb,EAAWE,GAAkBa,OAAMC,IACtEC,OAAOC,OAAOpB,QAAQqB,IAAI,mCAAoCH,EAAAA,IAElEC,OAAOC,OAAOpB,QAAQqB,IAAI,oCAAqCN,EACvE,CAUA,GATII,OAAOC,OAAOpB,QAAQqB,IAAI,yCAS1BnC,KAAKsB,oBAAqB,CAC1B,MAAMqB,EAA4B,CAC9BP,KAAMpC,KAAKqC,MAAMD,KACjB9B,SAAUN,KAAKK,MAAMC,SACrBsC,MAAOR,EACPpB,YACAE,mBACA2B,QAAS7C,KAAKuB,cAIlBuB,YAAW,KACP9C,KAAK+C,UAAUC,QAAQL,EAAAA,GACxB,EACP,CACJ,CAGO,SAASb,EAAkBmB,EAAoBjC,EAA2BE,GAC7E,OAAO,IAAIgC,SAAQ,CAACC,EAASC,KAczB,MAAM3C,EAAoBC,EAAauC,EAAOjD,KAAKC,mBAE/CQ,IAAc4C,IACdrD,KAAKqC,MAAMiB,uBAAwB,GAGvC,MAIMC,EAAqC,CACvC9C,YACA+C,eAN2B9C,EAAauC,EAAOQ,GAO/CC,IANQhD,EAAauC,EAAOU,GAO5B3C,YACA4C,SAAUX,EACV/B,mBACA2C,UAAW7D,KAAKqC,MAAMD,KAEtBE,eAAgBtC,KAAKoB,OAAOkB,eAC5BwB,eAAgB9D,KAAKoB,OAAO0C,eAC5BC,aAAc/D,KAAKoB,OAAO2C,aAC1BC,sBAAuBhE,KAAKoB,OAAO4C,sBACnC3C,iBAAkBrB,KAAKoB,OAAOC,iBAC9B4C,UAAWjE,KAAKoB,OAAO6C,UACvBC,eAAgBlE,KAAKoB,OAAO8C,eAC5BC,aAAcnE,KAAKoB,OAAO+C,aAC1BC,gBAAiBpE,KAAKoB,OAAOgD,gBAC7BC,kBAAmBrE,KAAKoB,OAAOiD,kBAE/BC,iBAAkBtE,KAAKK,MAAMiE,iBAC7BC,oBAAqBvE,KAAKK,MAAMmE,0BAChCC,mBAAoBzE,KAAKK,MAAMoE,mBAC/BC,sBAAuB1E,KAAKK,MAAMqE,sBAClCC,aAAc3E,KAAKK,MAAMsE,cAGvBC,EAAmB,IAAIC,EAAatB,EAAWvD,KAAKK,MAAMyE,MAC3DC,gBAAe,KAOZ,GALA/E,KAAKqC,MAAM2C,aAAe,EAEtB/C,OAAOC,OAAOpB,QAAQqB,IAAI,oEAAqEnC,KAAKqC,MAAM2C,aAG1GhF,KAAKqC,MAAM2C,YAAchF,KAAKqC,MAAM4C,WAGpC,MAFAjF,KAAKkF,uBAEC,IAAIC,EACN,QACA,gKACoBnF,KAAKqC,MAAM2C,+BAA+BhF,KAAKqC,MAAM4C,cAWjF,GALAL,EAAGQ,oBAAsBtC,YAAW,KAChCM,EAAO,CAAEhB,KAAMmB,EAAU9C,UAAW4E,WAAY,8BAA6B,GAC9EC,GAGCtF,KAAKqC,MAAM2C,cAAgBhF,KAAKqC,MAAMkD,mBAAoB,CAC1D,MAAM5C,EAA2B,CAAE6C,eAAe,GAClDxF,KAAK+C,UAAU0C,OAAO9C,EAC1B,KAEH+C,UAAUC,IACP3F,KAAK4F,2BAA2BD,GAGhCE,aAAajB,EAAGQ,qBAChBR,EAAGQ,oBAAsB,KAEzBjC,EAAQwC,EAAAA,IAEXG,SAASH,IACN3F,KAAK+F,YAAYJ,EAAAA,IAEpBK,YAAYL,IACT3F,KAAKiG,eAAeN,EAAAA,IAEvBO,cAAcP,IAEP3F,KAAKK,MAAMmE,4BAUPxE,KAAKmG,uBAAyBR,EAAaQ,wBAC3CnG,KAAK+C,UAAUqD,gBAAgB,CAAE3F,UAAWkF,EAAalF,aAK7DkF,EAAaQ,uBAAyBnG,KAAKmG,wBAG3CnG,KAAKqG,wBAAwB,CAAE5F,UAAWkF,EAAalF,UAAW6F,YAAY,GAClF,IAEHC,YAAYZ,IAET3F,KAAKwG,iBAAiBb,EAAalF,UAAS,IAE/CgG,cAAcd,IACX3F,KAAK0G,iBAAiBf,EAAAA,IAEzBgB,cAAchB,IACX3F,KAAK4G,iBAAiBjB,EAAAA,IAEzBkB,gBAAgBlB,IACb3F,KAAK8G,oBAAoBnB,EAAAA,IAIjC3F,KAAKqC,MAAMlC,cAAcM,GAAamE,CAAAA,GAE9C"}
@@ -1,2 +1,2 @@
1
- import{DATE_POLICY_REQUIRED as e,ENCRYPTED_CARD_NUMBER as t,ENCRYPTED_EXPIRY_DATE as s,DATE_POLICY_HIDDEN as i,ENCRYPTED_SECURITY_CODE as a,ENCRYPTED_EXPIRY_MONTH as r,ENCRYPTED_EXPIRY_YEAR as c}from"../../configuration/constants.js";import o from"../utils/iframes/postMessageToIframe.js";import{hasOwnProperty as d}from"../../../../../../utils/hasOwnProperty.js";import n from"../utils/iframes/getIframeContentWin.js";function l(e){if(d(this.state.securedFields,t)){const s={txVariant:this.state.type,...e,fieldType:t,numKey:this.state.securedFields[t].numKey};o(s,n(this.state,t),this.config.loadingContext)}}function h(e){(d(this.state.securedFields,r)&&d(this.state.securedFields,c)?[r,c]:[s]).forEach((t=>{const s={txVariant:this.state.type,...e,fieldType:t,numKey:this.state.securedFields[t].numKey};o(s,n(this.state,t),this.config.loadingContext)}))}function y(o,n){const l="card"===this.state.type;if(!o||!Object.keys(o).length)return l?(this.sendBrandToCardSF({brand:"reset"}),this.sendExpiryDatePolicyToSF({expiryDatePolicy:e})):n&&this.processBrand({...n,fieldType:t}),void("card"===this.state.type&&d(this.state.securedFields,s)&&(this.state.securedFields[s].expiryDatePolicy=e));const h=o.supportedBrands[0],y=h.brand,u=h.expiryDatePolicy??(!0===h.showExpiryDate?e:i),p={brand:y,cvcPolicy:h.cvcPolicy,expiryDatePolicy:u,cvcText:"Security code",showSocialSecurityNumber:h.showSocialSecurityNumber??!1,fieldType:t};if(this.processBrand(p),l){const e={brand:y,enableLuhnCheck:!1!==o.supportedBrands[0].enableLuhnCheck,...h?.panLength&&{panLength:h?.panLength}};this.sendBrandToCardSF(e),this.sendExpiryDatePolicyToSF({expiryDatePolicy:u})}d(this.state.securedFields,a)&&(this.state.securedFields[a].cvcPolicy=h.cvcPolicy),d(this.state.securedFields,s)?this.state.securedFields[s].expiryDatePolicy=u:d(this.state.securedFields,r)&&d(this.state.securedFields,c)&&(this.state.securedFields[r].expiryDatePolicy=u,this.state.securedFields[c].expiryDatePolicy=u),this.validateForm()}export{y as default,l as sendBrandToCardSF,h as sendExpiryDatePolicyToSF};
1
+ import{DATE_POLICY_REQUIRED as e,ENCRYPTED_CARD_NUMBER as t,ENCRYPTED_EXPIRY_DATE as s,DATE_POLICY_HIDDEN as i,ENCRYPTED_SECURITY_CODE as a,ENCRYPTED_EXPIRY_MONTH as r,ENCRYPTED_EXPIRY_YEAR as c}from"../../constants.js";import d from"../utils/iframes/postMessageToIframe.js";import{hasOwnProperty as o}from"../../../../../../utils/hasOwnProperty.js";import n from"../utils/iframes/getIframeContentWin.js";function l(e){if(o(this.state.securedFields,t)){const s={txVariant:this.state.type,...e,fieldType:t,numKey:this.state.securedFields[t].numKey};d(s,n(this.state,t),this.config.loadingContext)}}function h(e){(o(this.state.securedFields,r)&&o(this.state.securedFields,c)?[r,c]:[s]).forEach((t=>{const s={txVariant:this.state.type,...e,fieldType:t,numKey:this.state.securedFields[t].numKey};d(s,n(this.state,t),this.config.loadingContext)}))}function y(d,n){const l="card"===this.state.type;if(!d||!Object.keys(d).length)return l?(this.sendBrandToCardSF({brand:"reset"}),this.sendExpiryDatePolicyToSF({expiryDatePolicy:e})):n&&this.processBrand({...n,fieldType:t}),void("card"===this.state.type&&o(this.state.securedFields,s)&&(this.state.securedFields[s].expiryDatePolicy=e));const h=d.supportedBrands[0],y=h.brand,u=h.expiryDatePolicy??(!0===h.showExpiryDate?e:i),p={brand:y,cvcPolicy:h.cvcPolicy,expiryDatePolicy:u,cvcText:"Security code",showSocialSecurityNumber:h.showSocialSecurityNumber??!1,fieldType:t};if(this.processBrand(p),l){const e={brand:y,enableLuhnCheck:!1!==d.supportedBrands[0].enableLuhnCheck,...h?.panLength&&{panLength:h?.panLength}};this.sendBrandToCardSF(e),this.sendExpiryDatePolicyToSF({expiryDatePolicy:u})}o(this.state.securedFields,a)&&(this.state.securedFields[a].cvcPolicy=h.cvcPolicy),o(this.state.securedFields,s)?this.state.securedFields[s].expiryDatePolicy=u:o(this.state.securedFields,r)&&o(this.state.securedFields,c)&&(this.state.securedFields[r].expiryDatePolicy=u,this.state.securedFields[c].expiryDatePolicy=u),this.validateForm()}export{y as default,l as sendBrandToCardSF,h as sendExpiryDatePolicyToSF};
2
2
  //# sourceMappingURL=handleBrandFromBinLookup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleBrandFromBinLookup.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.ts"],"sourcesContent":["import {\n ENCRYPTED_SECURITY_CODE,\n ENCRYPTED_CARD_NUMBER,\n DATE_POLICY_REQUIRED,\n DATE_POLICY_HIDDEN,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_EXPIRY_MONTH,\n ENCRYPTED_EXPIRY_YEAR\n} from '../../configuration/constants';\nimport postMessageToIframe from '../utils/iframes/postMessageToIframe';\nimport { SFFeedbackObj, SendBrandObject, SendExpiryDateObject } from '../../types';\nimport { BinLookupResponse, BrandObject } from '../../../../../Card/types';\nimport { hasOwnProperty } from '../../../../../../utils/hasOwnProperty';\nimport getIframeContentWin from '../utils/iframes/getIframeContentWin';\nimport { SingleBrandResetObject } from '../../../SFP/types';\n\nexport function sendBrandToCardSF(brandObj: SendBrandObject): void {\n if (hasOwnProperty(this.state.securedFields, ENCRYPTED_CARD_NUMBER)) {\n const dataObj: object = {\n txVariant: this.state.type,\n ...brandObj,\n fieldType: ENCRYPTED_CARD_NUMBER,\n numKey: this.state.securedFields[ENCRYPTED_CARD_NUMBER].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(this.state, ENCRYPTED_CARD_NUMBER), this.config.loadingContext);\n }\n}\n\nexport function sendExpiryDatePolicyToSF(expiryDateObj: SendExpiryDateObject): void {\n const separateDateFields =\n hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_MONTH) && hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_YEAR);\n\n const dateIframesArr = separateDateFields ? [ENCRYPTED_EXPIRY_MONTH, ENCRYPTED_EXPIRY_YEAR] : [ENCRYPTED_EXPIRY_DATE];\n\n dateIframesArr.forEach((key: string) => {\n const dataObj: object = {\n txVariant: this.state.type,\n ...expiryDateObj,\n fieldType: key,\n numKey: this.state.securedFields[key].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(this.state, key), this.config.loadingContext);\n });\n}\n\nexport default function handleBrandFromBinLookup(binLookupResponse: BinLookupResponse, resetObj: SingleBrandResetObject): void {\n const isGenericCard: boolean = this.state.type === 'card';\n\n /**\n * The number of digits in number field has dropped below threshold for BIN lookup (or the bin wasn't found in the DB)\n * - so tell SF to reset & republish the brand it detects\n */\n if (!binLookupResponse || !Object.keys(binLookupResponse).length) {\n if (isGenericCard) {\n // This will be sent to CardNumber SF which will trigger the brand to be re-evaluated and broadcast\n // (which will reset cvcPolicy & expiryDatePolicy in state, here in Checkout)\n this.sendBrandToCardSF({ brand: 'reset' });\n // Also pass the reset expiryDatePolicy to the date related SFs so they can reset visibility & aria-required attrs\n this.sendExpiryDatePolicyToSF({ expiryDatePolicy: DATE_POLICY_REQUIRED });\n } else {\n /**\n * For \"dedicated\" card components, i.e a card component created as: checkout.create('bcmc') but which can accept multiple brands,\n * there will be no to-and-fro with the securedField iframe to reset brand.\n * The presence of a resetObj indicates we are in this \"dedicated\"\" scenario, so we need to use the information contained within this object\n * to internally reset the brand\n */\n if (resetObj) {\n this.processBrand({ ...resetObj, fieldType: ENCRYPTED_CARD_NUMBER } as SFFeedbackObj);\n }\n }\n\n // Reset expiryDatePolicy - which never comes from SF // TODO find out under which circumstances this clause is still required\n if (this.state.type === 'card' && hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_DATE)) {\n this.state.securedFields[ENCRYPTED_EXPIRY_DATE].expiryDatePolicy = DATE_POLICY_REQUIRED;\n }\n\n return;\n }\n\n const binBrandObj: BrandObject = binLookupResponse.supportedBrands[0];\n\n const passedBrand: string = binBrandObj.brand;\n\n // Look first for expiryDatePolicy string otherwise use showExpiryDate boolean\n const expiryDatePolicy = binBrandObj.expiryDatePolicy ?? (binBrandObj.showExpiryDate === true ? DATE_POLICY_REQUIRED : DATE_POLICY_HIDDEN);\n\n const brandObj: object = {\n brand: passedBrand,\n cvcPolicy: binBrandObj.cvcPolicy,\n expiryDatePolicy,\n cvcText: 'Security code',\n showSocialSecurityNumber: binBrandObj.showSocialSecurityNumber ?? false,\n fieldType: ENCRYPTED_CARD_NUMBER\n };\n\n // Take advantage of function used to handle brand messages from SF in order to process this new brand information\n this.processBrand(brandObj as SFFeedbackObj);\n\n if (isGenericCard) {\n // Pass brand to CardNumber SF\n const cardObj: SendBrandObject = {\n brand: passedBrand,\n enableLuhnCheck: binLookupResponse.supportedBrands[0].enableLuhnCheck !== false,\n ...(binBrandObj?.panLength && { panLength: binBrandObj?.panLength })\n };\n this.sendBrandToCardSF(cardObj);\n\n // Inform the date related securedFields\n // - if expiryDatePolicy is 'optional' or 'hidden' they need to set the aria-required attribute / hide themselves\n this.sendExpiryDatePolicyToSF({ expiryDatePolicy });\n }\n\n /**\n * CHECK IF BRAND CHANGE MEANS FORM IS NOW VALID e.g maestro/bcmc (which don't require cvc) OR bcmc/visa (one of which doesn't require cvc, one of which does)\n */\n\n /**\n * First set the cvcPolicy value on the relevant SecuredFields instance (which will reflect in the cvc field being considered valid,\n * as long as it is not in error)...\n */\n if (hasOwnProperty(this.state.securedFields, ENCRYPTED_SECURITY_CODE)) {\n this.state.securedFields[ENCRYPTED_SECURITY_CODE].cvcPolicy = binBrandObj.cvcPolicy;\n }\n\n /**\n * ...then set the expiryDatePolicy...\n */\n if (hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_DATE)) {\n this.state.securedFields[ENCRYPTED_EXPIRY_DATE].expiryDatePolicy = expiryDatePolicy;\n } else if (hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_MONTH) && hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_YEAR)) {\n this.state.securedFields[ENCRYPTED_EXPIRY_MONTH].expiryDatePolicy = expiryDatePolicy;\n this.state.securedFields[ENCRYPTED_EXPIRY_YEAR].expiryDatePolicy = expiryDatePolicy;\n }\n\n /**\n * ...and now re-check if form i.e all the SecuredFields, are valid\n */\n this.validateForm();\n}\n"],"names":["sendBrandToCardSF","brandObj","hasOwnProperty","this","state","securedFields","ENCRYPTED_CARD_NUMBER","dataObj","txVariant","type","fieldType","numKey","postMessageToIframe","getIframeContentWin","config","loadingContext","sendExpiryDatePolicyToSF","expiryDateObj","ENCRYPTED_EXPIRY_MONTH","ENCRYPTED_EXPIRY_YEAR","ENCRYPTED_EXPIRY_DATE","forEach","key","handleBrandFromBinLookup","binLookupResponse","resetObj","isGenericCard","Object","keys","length","brand","expiryDatePolicy","DATE_POLICY_REQUIRED","processBrand","binBrandObj","supportedBrands","passedBrand","showExpiryDate","DATE_POLICY_HIDDEN","cvcPolicy","cvcText","showSocialSecurityNumber","cardObj","enableLuhnCheck","panLength","ENCRYPTED_SECURITY_CODE","validateForm"],"mappings":"maAgBO,SAASA,EAAkBC,GAC9B,GAAIC,EAAeC,KAAKC,MAAMC,cAAeC,GAAwB,CACjE,MAAMC,EAAkB,CACpBC,UAAWL,KAAKC,MAAMK,QACnBR,EACHS,UAAWJ,EACXK,OAAQR,KAAKC,MAAMC,cAAcC,GAAuBK,QAE5DC,EAAoBL,EAASM,EAAoBV,KAAKC,MAAOE,GAAwBH,KAAKW,OAAOC,eACrG,CACJ,CAEO,SAASC,EAAyBC,IAEjCf,EAAeC,KAAKC,MAAMC,cAAea,IAA2BhB,EAAeC,KAAKC,MAAMC,cAAec,GAErE,CAACD,EAAwBC,GAAyB,CAACC,IAEhFC,SAASC,IACpB,MAAMf,EAAkB,CACpBC,UAAWL,KAAKC,MAAMK,QACnBQ,EACHP,UAAWY,EACXX,OAAQR,KAAKC,MAAMC,cAAciB,GAAKX,QAE1CC,EAAoBL,EAASM,EAAoBV,KAAKC,MAAOkB,GAAMnB,KAAKW,OAAOC,eAAc,GAErG,CAEe,SAASQ,EAAyBC,EAAsCC,GACnF,MAAMC,EAA6C,SAApBvB,KAAKC,MAAMK,KAM1C,IAAKe,IAAsBG,OAAOC,KAAKJ,GAAmBK,OAwBtD,OAvBIH,GAGAvB,KAAKH,kBAAkB,CAAE8B,MAAO,UAEhC3B,KAAKa,yBAAyB,CAAEe,iBAAkBC,KAQ9CP,GACAtB,KAAK8B,aAAa,IAAKR,EAAUf,UAAWJ,SAK5B,SAApBH,KAAKC,MAAMK,MAAmBP,EAAeC,KAAKC,MAAMC,cAAee,KACvEjB,KAAKC,MAAMC,cAAce,GAAuBW,iBAAmBC,IAM3E,MAAME,EAA2BV,EAAkBW,gBAAgB,GAE7DC,EAAsBF,EAAYJ,MAGlCC,EAAmBG,EAAYH,oBAAoD,IAA/BG,EAAYG,eAA0BL,EAAuBM,GAEjHrC,EAAmB,CACrB6B,MAAOM,EACPG,UAAWL,EAAYK,UACvBR,mBACAS,QAAS,gBACTC,yBAA0BP,EAAYO,2BAA4B,EAClE/B,UAAWJ,GAMf,GAFAH,KAAK8B,aAAahC,GAEdyB,EAAe,CAEf,MAAMgB,EAA2B,CAC7BZ,MAAOM,EACPO,iBAA0E,IAAzDnB,EAAkBW,gBAAgB,GAAGQ,mBAClDT,GAAaU,WAAa,CAAEA,UAAWV,GAAaU,YAE5DzC,KAAKH,kBAAkB0C,GAIvBvC,KAAKa,yBAAyB,CAAEe,oBACpC,CAUI7B,EAAeC,KAAKC,MAAMC,cAAewC,KACzC1C,KAAKC,MAAMC,cAAcwC,GAAyBN,UAAYL,EAAYK,WAM1ErC,EAAeC,KAAKC,MAAMC,cAAee,GACzCjB,KAAKC,MAAMC,cAAce,GAAuBW,iBAAmBA,EAC5D7B,EAAeC,KAAKC,MAAMC,cAAea,IAA2BhB,EAAeC,KAAKC,MAAMC,cAAec,KACpHhB,KAAKC,MAAMC,cAAca,GAAwBa,iBAAmBA,EACpE5B,KAAKC,MAAMC,cAAcc,GAAuBY,iBAAmBA,GAMvE5B,KAAK2C,cACT"}
1
+ {"version":3,"file":"handleBrandFromBinLookup.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/extensions/handleBrandFromBinLookup.ts"],"sourcesContent":["import {\n ENCRYPTED_SECURITY_CODE,\n ENCRYPTED_CARD_NUMBER,\n DATE_POLICY_REQUIRED,\n DATE_POLICY_HIDDEN,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_EXPIRY_MONTH,\n ENCRYPTED_EXPIRY_YEAR\n} from '../../constants';\nimport postMessageToIframe from '../utils/iframes/postMessageToIframe';\nimport { SFFeedbackObj, SendBrandObject, SendExpiryDateObject } from '../../types';\nimport { BinLookupResponse, BrandObject } from '../../../../../Card/types';\nimport { hasOwnProperty } from '../../../../../../utils/hasOwnProperty';\nimport getIframeContentWin from '../utils/iframes/getIframeContentWin';\nimport { SingleBrandResetObject } from '../../../SFP/types';\n\nexport function sendBrandToCardSF(brandObj: SendBrandObject): void {\n if (hasOwnProperty(this.state.securedFields, ENCRYPTED_CARD_NUMBER)) {\n const dataObj: object = {\n txVariant: this.state.type,\n ...brandObj,\n fieldType: ENCRYPTED_CARD_NUMBER,\n numKey: this.state.securedFields[ENCRYPTED_CARD_NUMBER].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(this.state, ENCRYPTED_CARD_NUMBER), this.config.loadingContext);\n }\n}\n\nexport function sendExpiryDatePolicyToSF(expiryDateObj: SendExpiryDateObject): void {\n const separateDateFields =\n hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_MONTH) && hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_YEAR);\n\n const dateIframesArr = separateDateFields ? [ENCRYPTED_EXPIRY_MONTH, ENCRYPTED_EXPIRY_YEAR] : [ENCRYPTED_EXPIRY_DATE];\n\n dateIframesArr.forEach((key: string) => {\n const dataObj: object = {\n txVariant: this.state.type,\n ...expiryDateObj,\n fieldType: key,\n numKey: this.state.securedFields[key].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(this.state, key), this.config.loadingContext);\n });\n}\n\nexport default function handleBrandFromBinLookup(binLookupResponse: BinLookupResponse, resetObj: SingleBrandResetObject): void {\n const isGenericCard: boolean = this.state.type === 'card';\n\n /**\n * The number of digits in number field has dropped below threshold for BIN lookup (or the bin wasn't found in the DB)\n * - so tell SF to reset & republish the brand it detects\n */\n if (!binLookupResponse || !Object.keys(binLookupResponse).length) {\n if (isGenericCard) {\n // This will be sent to CardNumber SF which will trigger the brand to be re-evaluated and broadcast\n // (which will reset cvcPolicy & expiryDatePolicy in state, here in Checkout)\n this.sendBrandToCardSF({ brand: 'reset' });\n // Also pass the reset expiryDatePolicy to the date related SFs so they can reset visibility & aria-required attrs\n this.sendExpiryDatePolicyToSF({ expiryDatePolicy: DATE_POLICY_REQUIRED });\n } else {\n /**\n * For \"dedicated\" card components, i.e a card component created as: checkout.create('bcmc') but which can accept multiple brands,\n * there will be no to-and-fro with the securedField iframe to reset brand.\n * The presence of a resetObj indicates we are in this \"dedicated\"\" scenario, so we need to use the information contained within this object\n * to internally reset the brand\n */\n if (resetObj) {\n this.processBrand({ ...resetObj, fieldType: ENCRYPTED_CARD_NUMBER } as SFFeedbackObj);\n }\n }\n\n // Reset expiryDatePolicy - which never comes from SF // TODO find out under which circumstances this clause is still required\n if (this.state.type === 'card' && hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_DATE)) {\n this.state.securedFields[ENCRYPTED_EXPIRY_DATE].expiryDatePolicy = DATE_POLICY_REQUIRED;\n }\n\n return;\n }\n\n const binBrandObj: BrandObject = binLookupResponse.supportedBrands[0];\n\n const passedBrand: string = binBrandObj.brand;\n\n // Look first for expiryDatePolicy string otherwise use showExpiryDate boolean\n const expiryDatePolicy = binBrandObj.expiryDatePolicy ?? (binBrandObj.showExpiryDate === true ? DATE_POLICY_REQUIRED : DATE_POLICY_HIDDEN);\n\n const brandObj: object = {\n brand: passedBrand,\n cvcPolicy: binBrandObj.cvcPolicy,\n expiryDatePolicy,\n cvcText: 'Security code',\n showSocialSecurityNumber: binBrandObj.showSocialSecurityNumber ?? false,\n fieldType: ENCRYPTED_CARD_NUMBER\n };\n\n // Take advantage of function used to handle brand messages from SF in order to process this new brand information\n this.processBrand(brandObj as SFFeedbackObj);\n\n if (isGenericCard) {\n // Pass brand to CardNumber SF\n const cardObj: SendBrandObject = {\n brand: passedBrand,\n enableLuhnCheck: binLookupResponse.supportedBrands[0].enableLuhnCheck !== false,\n ...(binBrandObj?.panLength && { panLength: binBrandObj?.panLength })\n };\n this.sendBrandToCardSF(cardObj);\n\n // Inform the date related securedFields\n // - if expiryDatePolicy is 'optional' or 'hidden' they need to set the aria-required attribute / hide themselves\n this.sendExpiryDatePolicyToSF({ expiryDatePolicy });\n }\n\n /**\n * CHECK IF BRAND CHANGE MEANS FORM IS NOW VALID e.g maestro/bcmc (which don't require cvc) OR bcmc/visa (one of which doesn't require cvc, one of which does)\n */\n\n /**\n * First set the cvcPolicy value on the relevant SecuredFields instance (which will reflect in the cvc field being considered valid,\n * as long as it is not in error)...\n */\n if (hasOwnProperty(this.state.securedFields, ENCRYPTED_SECURITY_CODE)) {\n this.state.securedFields[ENCRYPTED_SECURITY_CODE].cvcPolicy = binBrandObj.cvcPolicy;\n }\n\n /**\n * ...then set the expiryDatePolicy...\n */\n if (hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_DATE)) {\n this.state.securedFields[ENCRYPTED_EXPIRY_DATE].expiryDatePolicy = expiryDatePolicy;\n } else if (hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_MONTH) && hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_YEAR)) {\n this.state.securedFields[ENCRYPTED_EXPIRY_MONTH].expiryDatePolicy = expiryDatePolicy;\n this.state.securedFields[ENCRYPTED_EXPIRY_YEAR].expiryDatePolicy = expiryDatePolicy;\n }\n\n /**\n * ...and now re-check if form i.e all the SecuredFields, are valid\n */\n this.validateForm();\n}\n"],"names":["sendBrandToCardSF","brandObj","hasOwnProperty","this","state","securedFields","ENCRYPTED_CARD_NUMBER","dataObj","txVariant","type","fieldType","numKey","postMessageToIframe","getIframeContentWin","config","loadingContext","sendExpiryDatePolicyToSF","expiryDateObj","ENCRYPTED_EXPIRY_MONTH","ENCRYPTED_EXPIRY_YEAR","ENCRYPTED_EXPIRY_DATE","forEach","key","handleBrandFromBinLookup","binLookupResponse","resetObj","isGenericCard","Object","keys","length","brand","expiryDatePolicy","DATE_POLICY_REQUIRED","processBrand","binBrandObj","supportedBrands","passedBrand","showExpiryDate","DATE_POLICY_HIDDEN","cvcPolicy","cvcText","showSocialSecurityNumber","cardObj","enableLuhnCheck","panLength","ENCRYPTED_SECURITY_CODE","validateForm"],"mappings":"qZAgBO,SAASA,EAAkBC,GAC9B,GAAIC,EAAeC,KAAKC,MAAMC,cAAeC,GAAwB,CACjE,MAAMC,EAAkB,CACpBC,UAAWL,KAAKC,MAAMK,QACnBR,EACHS,UAAWJ,EACXK,OAAQR,KAAKC,MAAMC,cAAcC,GAAuBK,QAE5DC,EAAoBL,EAASM,EAAoBV,KAAKC,MAAOE,GAAwBH,KAAKW,OAAOC,eACrG,CACJ,CAEO,SAASC,EAAyBC,IAEjCf,EAAeC,KAAKC,MAAMC,cAAea,IAA2BhB,EAAeC,KAAKC,MAAMC,cAAec,GAErE,CAACD,EAAwBC,GAAyB,CAACC,IAEhFC,SAASC,IACpB,MAAMf,EAAkB,CACpBC,UAAWL,KAAKC,MAAMK,QACnBQ,EACHP,UAAWY,EACXX,OAAQR,KAAKC,MAAMC,cAAciB,GAAKX,QAE1CC,EAAoBL,EAASM,EAAoBV,KAAKC,MAAOkB,GAAMnB,KAAKW,OAAOC,eAAc,GAErG,CAEe,SAASQ,EAAyBC,EAAsCC,GACnF,MAAMC,EAA6C,SAApBvB,KAAKC,MAAMK,KAM1C,IAAKe,IAAsBG,OAAOC,KAAKJ,GAAmBK,OAwBtD,OAvBIH,GAGAvB,KAAKH,kBAAkB,CAAE8B,MAAO,UAEhC3B,KAAKa,yBAAyB,CAAEe,iBAAkBC,KAQ9CP,GACAtB,KAAK8B,aAAa,IAAKR,EAAUf,UAAWJ,SAK5B,SAApBH,KAAKC,MAAMK,MAAmBP,EAAeC,KAAKC,MAAMC,cAAee,KACvEjB,KAAKC,MAAMC,cAAce,GAAuBW,iBAAmBC,IAM3E,MAAME,EAA2BV,EAAkBW,gBAAgB,GAE7DC,EAAsBF,EAAYJ,MAGlCC,EAAmBG,EAAYH,oBAAoD,IAA/BG,EAAYG,eAA0BL,EAAuBM,GAEjHrC,EAAmB,CACrB6B,MAAOM,EACPG,UAAWL,EAAYK,UACvBR,mBACAS,QAAS,gBACTC,yBAA0BP,EAAYO,2BAA4B,EAClE/B,UAAWJ,GAMf,GAFAH,KAAK8B,aAAahC,GAEdyB,EAAe,CAEf,MAAMgB,EAA2B,CAC7BZ,MAAOM,EACPO,iBAA0E,IAAzDnB,EAAkBW,gBAAgB,GAAGQ,mBAClDT,GAAaU,WAAa,CAAEA,UAAWV,GAAaU,YAE5DzC,KAAKH,kBAAkB0C,GAIvBvC,KAAKa,yBAAyB,CAAEe,oBACpC,CAUI7B,EAAeC,KAAKC,MAAMC,cAAewC,KACzC1C,KAAKC,MAAMC,cAAcwC,GAAyBN,UAAYL,EAAYK,WAM1ErC,EAAeC,KAAKC,MAAMC,cAAee,GACzCjB,KAAKC,MAAMC,cAAce,GAAuBW,iBAAmBA,EAC5D7B,EAAeC,KAAKC,MAAMC,cAAea,IAA2BhB,EAAeC,KAAKC,MAAMC,cAAec,KACpHhB,KAAKC,MAAMC,cAAca,GAAwBa,iBAAmBA,EACpE5B,KAAKC,MAAMC,cAAcc,GAAuBY,iBAAmBA,GAMvE5B,KAAK2C,cACT"}
@@ -1,2 +1,2 @@
1
- import{getCardGroupTypes as i}from"../utils/getCardGroupTypes.js";import{NON_CREDIT_CARD_TYPE_SECURED_FIELDS as o,SF_VERSION as t}from"../../configuration/constants.js";import{warn as n}from"../../utilities/logger.js";function e(e){this.config.cardGroupTypes=i(e.cardGroupTypes);const r=e.loadingContext;if(!r)return void n("WARNING Config :: no loadingContext has been specified!");var a;this.config.loadingContext="/"===(a=r).charAt(a.length-1)?r:`${r}/`,this.config.isCreditCardType=!1===o.includes(e.type),this.config.iframeUIConfig=e.iframeUIConfig??{},this.config.autoFocus=!(!1===e.autoFocus||"false"===e.autoFocus),this.config.showWarnings=!0===e.showWarnings||"true"===e.showWarnings,this.config.trimTrailingSeparator=!(!1===e.trimTrailingSeparator||"false"===e.trimTrailingSeparator),this.config.keypadFix=!(!1===e.keypadFix||"false"===e.keypadFix),this.config.legacyInputMode=e.legacyInputMode||null,this.config.minimumExpiryDate=e.minimumExpiryDate||null,this.config.sfLogAtStart=!0===window._b$dl;let s=this.config.isCreditCardType?"card":e.type;s.indexOf("sepa")>-1&&(s="iban");const c=btoa(window.location.origin),f=`${s}${!!e.forceCompat||!("function"==typeof window.TextEncoder)?"Compat":""}`;this.config.iframeSrc=`${this.config.loadingContext}securedfields/${e.clientKey}/${t}/securedFields.html?type=${f}&d=${c}`}export{e as handleConfig};
1
+ import{getCardGroupTypes as i}from"../utils/getCardGroupTypes.js";import{NON_CREDIT_CARD_TYPE_SECURED_FIELDS as o,SF_VERSION as t}from"../../constants.js";import{warn as n}from"../../utilities/logger.js";function e(e){this.config.cardGroupTypes=i(e.cardGroupTypes);const r=e.loadingContext;if(!r)return void n("WARNING Config :: no loadingContext has been specified!");var a;this.config.loadingContext="/"===(a=r).charAt(a.length-1)?r:`${r}/`,this.config.isCreditCardType=!1===o.includes(e.type),this.config.iframeUIConfig=e.iframeUIConfig??{},this.config.autoFocus=!(!1===e.autoFocus||"false"===e.autoFocus),this.config.showWarnings=!0===e.showWarnings||"true"===e.showWarnings,this.config.trimTrailingSeparator=!(!1===e.trimTrailingSeparator||"false"===e.trimTrailingSeparator),this.config.keypadFix=!(!1===e.keypadFix||"false"===e.keypadFix),this.config.legacyInputMode=e.legacyInputMode||null,this.config.minimumExpiryDate=e.minimumExpiryDate||null,this.config.sfLogAtStart=!0===window._b$dl;let s=this.config.isCreditCardType?"card":e.type;s.indexOf("sepa")>-1&&(s="iban");const c=btoa(window.location.origin),f=`${s}${!!e.forceCompat||!("function"==typeof window.TextEncoder)?"Compat":""}`;this.config.iframeSrc=`${this.config.loadingContext}securedfields/${e.clientKey}/${t}/securedFields.html?type=${f}&d=${c}`}export{e as handleConfig};
2
2
  //# sourceMappingURL=handleConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleConfig.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.ts"],"sourcesContent":["import { getCardGroupTypes } from '../utils/getCardGroupTypes';\nimport { NON_CREDIT_CARD_TYPE_SECURED_FIELDS, SF_VERSION } from '../../configuration/constants';\nimport * as logger from '../../utilities/logger';\nimport { CSFSetupObject } from '../types';\n\n/**\n * Parses this.props to set 'config' type vars on this (CSFComp)\n * - properties that just need to be set once, at startup, and then don't change\n *\n * See interface CSFConfigObject in types.ts\n */\nexport function handleConfig(props: CSFSetupObject): void {\n // --\n this.config.cardGroupTypes = getCardGroupTypes(props.cardGroupTypes);\n\n if (process.env.NODE_ENV === 'development' && window._b$dl) {\n logger.log('### StoreCls::init:: this.config.cardGroupTypes=', this.config.cardGroupTypes);\n }\n\n const loadingContext: string = props.loadingContext;\n\n if (!loadingContext) {\n logger.warn('WARNING Config :: no loadingContext has been specified!');\n return;\n }\n\n // Ensure passed loadingContext has trailing slash\n const lastChar = str => str.charAt(str.length - 1);\n this.config.loadingContext = lastChar(loadingContext) === '/' ? loadingContext : `${loadingContext}/`;\n\n // Is this for the regular creditCard or for another use-case for securedFields e.g. 'ach' or 'giftcard'\n this.config.isCreditCardType = NON_CREDIT_CARD_TYPE_SECURED_FIELDS.includes(props.type) === false;\n\n // Configuration object for individual txVariants - contains styling object values for securedFields inputs\n this.config.iframeUIConfig = props.iframeUIConfig ?? {};\n\n // By default CSF is allowed to automatically shift focus from the date to CVC fields - user of CSF must explicitly 'opt-out' to prevent this happening\n this.config.autoFocus = !(props.autoFocus === false || props.autoFocus === 'false');\n\n // By default CSF will NOT perform a console.warn when receiving postMessages with origin or numKey mismatches - user of CSF must explicitly 'opt-in' to get this\n this.config.showWarnings = props.showWarnings === true || props.showWarnings === 'true';\n\n // By default CSF will strip the trailing separator character from valid credit card numbers - user of CSF must explicitly 'opt-out' to prevent this happening\n this.config.trimTrailingSeparator = !(props.trimTrailingSeparator === false || props.trimTrailingSeparator === 'false');\n\n // By default CSF is allowed to add a fix for iOS to force the keypad to retract - user of CSF must explicitly 'opt-out' to prevent this happening\n this.config.keypadFix = !(props.keypadFix === false || props.keypadFix === 'false');\n\n // To set the type on the iframe input fields to 'tel' c.f. the default 'text' (with inputmode='numeric')\n this.config.legacyInputMode = props.legacyInputMode || null;\n\n // To configure the minimum expiry date to a merchant defined value - this means the card has to be valid until at least this date\n this.config.minimumExpiryDate = props.minimumExpiryDate || null;\n\n this.config.sfLogAtStart = window._b$dl === true;\n\n let sfBundleType: string = this.config.isCreditCardType ? 'card' : props.type;\n if (sfBundleType.indexOf('sepa') > -1) sfBundleType = 'iban';\n\n // Add a hash of the origin to ensure urls are different across domains\n const d = btoa(window.location.origin);\n\n /**\n * Unless we are forcing the use of the compat version via card config\n * - detect Edge vn \\<= 18 & IE11 - who don't support TextEncoder; and use this as an indicator to load a different, compatible, version of SF\n */\n const needsJWECompatVersion = props.forceCompat ? true : !(typeof window.TextEncoder === 'function');\n\n const bundleType = `${sfBundleType}${needsJWECompatVersion ? 'Compat' : ''}`; // e.g. 'card' or 'cardCompat'\n\n this.config.iframeSrc = `${this.config.loadingContext}securedfields/${props.clientKey}/${SF_VERSION}/securedFields.html?type=${bundleType}&d=${d}`;\n\n // TODO###### FOR QUICK LOCAL TESTING of sf\n if (process.env.NODE_ENV === 'development' && process.env.__SF_ENV__ !== 'build') {\n this.config.iframeSrc = `${process.env.__SF_ENV__}securedFields.${SF_VERSION}.html?type=${sfBundleType}`;\n }\n // TODO######\n}\n"],"names":["handleConfig","props","this","config","cardGroupTypes","getCardGroupTypes","loadingContext","logger","str","charAt","length","isCreditCardType","NON_CREDIT_CARD_TYPE_SECURED_FIELDS","includes","type","iframeUIConfig","autoFocus","showWarnings","trimTrailingSeparator","keypadFix","legacyInputMode","minimumExpiryDate","sfLogAtStart","window","_b$dl","sfBundleType","indexOf","d","btoa","location","origin","bundleType","forceCompat","TextEncoder","iframeSrc","clientKey","SF_VERSION"],"mappings":"0NAWO,SAASA,EAAaC,GAEzBC,KAAKC,OAAOC,eAAiBC,EAAkBJ,EAAMG,gBAMrD,MAAME,EAAyBL,EAAMK,eAErC,IAAKA,EAED,YADAC,EAAY,2DAKCC,IAAAA,EACjBN,KAAKC,OAAOG,eAA8C,OADzCE,EACqBF,GADVG,OAAOD,EAAIE,OAAS,GACgBJ,EAAiB,GAAGA,KAGpFJ,KAAKC,OAAOQ,kBAAgF,IAA7DC,EAAoCC,SAASZ,EAAMa,MAGlFZ,KAAKC,OAAOY,eAAiBd,EAAMc,gBAAkB,CAAA,EAGrDb,KAAKC,OAAOa,aAAkC,IAApBf,EAAMe,WAA2C,UAApBf,EAAMe,WAG7Dd,KAAKC,OAAOc,cAAsC,IAAvBhB,EAAMgB,cAAgD,SAAvBhB,EAAMgB,aAGhEf,KAAKC,OAAOe,yBAA0D,IAAhCjB,EAAMiB,uBAAmE,UAAhCjB,EAAMiB,uBAGrFhB,KAAKC,OAAOgB,aAAkC,IAApBlB,EAAMkB,WAA2C,UAApBlB,EAAMkB,WAG7DjB,KAAKC,OAAOiB,gBAAkBnB,EAAMmB,iBAAmB,KAGvDlB,KAAKC,OAAOkB,kBAAoBpB,EAAMoB,mBAAqB,KAE3DnB,KAAKC,OAAOmB,cAAgC,IAAjBC,OAAOC,MAElC,IAAIC,EAAuBvB,KAAKC,OAAOQ,iBAAmB,OAASV,EAAMa,KACrEW,EAAaC,QAAQ,SAAW,IAAGD,EAAe,QAGtD,MAAME,EAAIC,KAAKL,OAAOM,SAASC,QAQzBC,EAAa,GAAGN,MAFQxB,EAAM+B,eAAqD,mBAAvBT,OAAOU,aAEZ,SAAW,KAExE/B,KAAKC,OAAO+B,UAAY,GAAGhC,KAAKC,OAAOG,+BAA+BL,EAAMkC,aAAaC,6BAAsCL,OAAgBJ,GAOnJ"}
1
+ {"version":3,"file":"handleConfig.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.ts"],"sourcesContent":["import { getCardGroupTypes } from '../utils/getCardGroupTypes';\nimport { NON_CREDIT_CARD_TYPE_SECURED_FIELDS, SF_VERSION } from '../../constants';\nimport * as logger from '../../utilities/logger';\nimport { CSFSetupObject } from '../types';\n\n/**\n * Parses this.props to set 'config' type vars on this (CSFComp)\n * - properties that just need to be set once, at startup, and then don't change\n *\n * See interface CSFConfigObject in types.ts\n */\nexport function handleConfig(props: CSFSetupObject): void {\n // --\n this.config.cardGroupTypes = getCardGroupTypes(props.cardGroupTypes);\n\n if (process.env.NODE_ENV === 'development' && window._b$dl) {\n logger.log('### StoreCls::init:: this.config.cardGroupTypes=', this.config.cardGroupTypes);\n }\n\n const loadingContext: string = props.loadingContext;\n\n if (!loadingContext) {\n logger.warn('WARNING Config :: no loadingContext has been specified!');\n return;\n }\n\n // Ensure passed loadingContext has trailing slash\n const lastChar = str => str.charAt(str.length - 1);\n this.config.loadingContext = lastChar(loadingContext) === '/' ? loadingContext : `${loadingContext}/`;\n\n // Is this for the regular creditCard or for another use-case for securedFields e.g. 'ach' or 'giftcard'\n this.config.isCreditCardType = NON_CREDIT_CARD_TYPE_SECURED_FIELDS.includes(props.type) === false;\n\n // Configuration object for individual txVariants - contains styling object values for securedFields inputs\n this.config.iframeUIConfig = props.iframeUIConfig ?? {};\n\n // By default CSF is allowed to automatically shift focus from the date to CVC fields - user of CSF must explicitly 'opt-out' to prevent this happening\n this.config.autoFocus = !(props.autoFocus === false || props.autoFocus === 'false');\n\n // By default CSF will NOT perform a console.warn when receiving postMessages with origin or numKey mismatches - user of CSF must explicitly 'opt-in' to get this\n this.config.showWarnings = props.showWarnings === true || props.showWarnings === 'true';\n\n // By default CSF will strip the trailing separator character from valid credit card numbers - user of CSF must explicitly 'opt-out' to prevent this happening\n this.config.trimTrailingSeparator = !(props.trimTrailingSeparator === false || props.trimTrailingSeparator === 'false');\n\n // By default CSF is allowed to add a fix for iOS to force the keypad to retract - user of CSF must explicitly 'opt-out' to prevent this happening\n this.config.keypadFix = !(props.keypadFix === false || props.keypadFix === 'false');\n\n // To set the type on the iframe input fields to 'tel' c.f. the default 'text' (with inputmode='numeric')\n this.config.legacyInputMode = props.legacyInputMode || null;\n\n // To configure the minimum expiry date to a merchant defined value - this means the card has to be valid until at least this date\n this.config.minimumExpiryDate = props.minimumExpiryDate || null;\n\n this.config.sfLogAtStart = window._b$dl === true;\n\n let sfBundleType: string = this.config.isCreditCardType ? 'card' : props.type;\n if (sfBundleType.indexOf('sepa') > -1) sfBundleType = 'iban';\n\n // Add a hash of the origin to ensure urls are different across domains\n const d = btoa(window.location.origin);\n\n /**\n * Unless we are forcing the use of the compat version via card config\n * - detect Edge vn \\<= 18 & IE11 - who don't support TextEncoder; and use this as an indicator to load a different, compatible, version of SF\n */\n const needsJWECompatVersion = props.forceCompat ? true : !(typeof window.TextEncoder === 'function');\n\n const bundleType = `${sfBundleType}${needsJWECompatVersion ? 'Compat' : ''}`; // e.g. 'card' or 'cardCompat'\n\n this.config.iframeSrc = `${this.config.loadingContext}securedfields/${props.clientKey}/${SF_VERSION}/securedFields.html?type=${bundleType}&d=${d}`;\n\n // TODO###### FOR QUICK LOCAL TESTING of sf\n if (process.env.NODE_ENV === 'development' && process.env.__SF_ENV__ !== 'build') {\n this.config.iframeSrc = `${process.env.__SF_ENV__}securedFields.${SF_VERSION}.html?type=${sfBundleType}`;\n }\n // TODO######\n}\n"],"names":["handleConfig","props","this","config","cardGroupTypes","getCardGroupTypes","loadingContext","logger","str","charAt","length","isCreditCardType","NON_CREDIT_CARD_TYPE_SECURED_FIELDS","includes","type","iframeUIConfig","autoFocus","showWarnings","trimTrailingSeparator","keypadFix","legacyInputMode","minimumExpiryDate","sfLogAtStart","window","_b$dl","sfBundleType","indexOf","d","btoa","location","origin","bundleType","forceCompat","TextEncoder","iframeSrc","clientKey","SF_VERSION"],"mappings":"4MAWO,SAASA,EAAaC,GAEzBC,KAAKC,OAAOC,eAAiBC,EAAkBJ,EAAMG,gBAMrD,MAAME,EAAyBL,EAAMK,eAErC,IAAKA,EAED,YADAC,EAAY,2DAKCC,IAAAA,EACjBN,KAAKC,OAAOG,eAA8C,OADzCE,EACqBF,GADVG,OAAOD,EAAIE,OAAS,GACgBJ,EAAiB,GAAGA,KAGpFJ,KAAKC,OAAOQ,kBAAgF,IAA7DC,EAAoCC,SAASZ,EAAMa,MAGlFZ,KAAKC,OAAOY,eAAiBd,EAAMc,gBAAkB,CAAA,EAGrDb,KAAKC,OAAOa,aAAkC,IAApBf,EAAMe,WAA2C,UAApBf,EAAMe,WAG7Dd,KAAKC,OAAOc,cAAsC,IAAvBhB,EAAMgB,cAAgD,SAAvBhB,EAAMgB,aAGhEf,KAAKC,OAAOe,yBAA0D,IAAhCjB,EAAMiB,uBAAmE,UAAhCjB,EAAMiB,uBAGrFhB,KAAKC,OAAOgB,aAAkC,IAApBlB,EAAMkB,WAA2C,UAApBlB,EAAMkB,WAG7DjB,KAAKC,OAAOiB,gBAAkBnB,EAAMmB,iBAAmB,KAGvDlB,KAAKC,OAAOkB,kBAAoBpB,EAAMoB,mBAAqB,KAE3DnB,KAAKC,OAAOmB,cAAgC,IAAjBC,OAAOC,MAElC,IAAIC,EAAuBvB,KAAKC,OAAOQ,iBAAmB,OAASV,EAAMa,KACrEW,EAAaC,QAAQ,SAAW,IAAGD,EAAe,QAGtD,MAAME,EAAIC,KAAKL,OAAOM,SAASC,QAQzBC,EAAa,GAAGN,MAFQxB,EAAM+B,eAAqD,mBAAvBT,OAAOU,aAEZ,SAAW,KAExE/B,KAAKC,OAAO+B,UAAY,GAAGhC,KAAKC,OAAOG,+BAA+BL,EAAMkC,aAAaC,6BAAsCL,OAAgBJ,GAOnJ"}
@@ -1,2 +1,2 @@
1
- import{makeCallbackObjectsEncryption as t}from"../utils/callbackUtils.js";import{ENCRYPTED_EXPIRY_YEAR as s,ENCRYPTED_SECURITY_CODE as e,ENCRYPTED_EXPIRY_MONTH as i,ENCRYPTED_CARD_NUMBER as o}from"../../configuration/constants.js";import{processErrors as r}from"../utils/processErrors.js";import{truthy as n}from"../../utilities/commonUtils.js";import a from"../utils/iframes/postMessageToIframe.js";import{hasOwnProperty as l}from"../../../../../../utils/hasOwnProperty.js";import c from"../utils/iframes/getIframeContentWin.js";function d(d){const m=d.fieldType;let p,f;this.config.autoFocus&&("year"!==d.type&&m!==s||this.setFocusOnFrame(e),m===i&&this.setFocusOnFrame(s));const u=d[m];this.state.securedFields[m].isEncrypted=!0,r({error:"",fieldType:m},this.state.securedFields[m],this.state.type,this.props.rootNode,this.callbacks.onError);const h=t({fieldType:m,txVariant:this.state.type,rootNode:this.props.rootNode,encryptedObjArr:u});if(m===i&&l(this.state.securedFields,s)){const t={txVariant:this.state.type,code:d.code,blob:u[0].blob,fieldType:s,numKey:this.state.securedFields[s].numKey};a(t,c(this.state,s),this.config.loadingContext)}for(m===o&&n(d.endDigits)&&(h[0].endDigits=d.endDigits),m===o&&n(d.issuerBin)&&(h[0].issuerBin=+d.issuerBin),p=0,f=h.length;p<f;p+=1)this.callbacks.onFieldValid(h[p]);this.validateForm()}export{d as handleEncryption};
1
+ import{makeCallbackObjectsEncryption as t}from"../utils/callbackUtils.js";import{ENCRYPTED_EXPIRY_YEAR as s,ENCRYPTED_SECURITY_CODE as e,ENCRYPTED_EXPIRY_MONTH as i,ENCRYPTED_CARD_NUMBER as o}from"../../constants.js";import{processErrors as r}from"../utils/processErrors.js";import{truthy as n}from"../../utilities/commonUtils.js";import a from"../utils/iframes/postMessageToIframe.js";import{hasOwnProperty as l}from"../../../../../../utils/hasOwnProperty.js";import c from"../utils/iframes/getIframeContentWin.js";function d(d){const m=d.fieldType;let p,f;this.config.autoFocus&&("year"!==d.type&&m!==s||this.setFocusOnFrame(e),m===i&&this.setFocusOnFrame(s));const u=d[m];this.state.securedFields[m].isEncrypted=!0,r({error:"",fieldType:m},this.state.securedFields[m],this.state.type,this.props.rootNode,this.callbacks.onError);const h=t({fieldType:m,txVariant:this.state.type,rootNode:this.props.rootNode,encryptedObjArr:u});if(m===i&&l(this.state.securedFields,s)){const t={txVariant:this.state.type,code:d.code,blob:u[0].blob,fieldType:s,numKey:this.state.securedFields[s].numKey};a(t,c(this.state,s),this.config.loadingContext)}for(m===o&&n(d.endDigits)&&(h[0].endDigits=d.endDigits),m===o&&n(d.issuerBin)&&(h[0].issuerBin=+d.issuerBin),p=0,f=h.length;p<f;p+=1)this.callbacks.onFieldValid(h[p]);this.validateForm()}export{d as handleEncryption};
2
2
  //# sourceMappingURL=handleEncryption.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleEncryption.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.ts"],"sourcesContent":["import { makeCallbackObjectsEncryption } from '../utils/callbackUtils';\nimport { ENCRYPTED_EXPIRY_MONTH, ENCRYPTED_EXPIRY_YEAR, ENCRYPTED_SECURITY_CODE, ENCRYPTED_CARD_NUMBER } from '../../configuration/constants';\nimport { processErrors } from '../utils/processErrors';\nimport { truthy } from '../../utilities/commonUtils';\nimport { SFFeedbackObj, CbObjOnFieldValid, EncryptionObj } from '../../types';\nimport postMessageToIframe from '../utils/iframes/postMessageToIframe';\nimport { hasOwnProperty } from '../../../../../../utils/hasOwnProperty';\nimport getIframeContentWin from '../utils/iframes/getIframeContentWin';\n\nexport function handleEncryption(pFeedbackObj: SFFeedbackObj): void {\n // EXTRACT VARS\n const fieldType: string = pFeedbackObj.fieldType;\n\n // SET FOCUS ON OTHER INPUT - If user has just typed a correct expiryDate - set focus on the cvc field OR typed a correct expiryMonth - focus on year field\n if (this.config.autoFocus) {\n // pFeedbackObj.type === 'year' when the encryption is happening on an expiryDate field c.f. a separate year field (when it equals ENCRYPTED_EXPIRY_YEAR)\n if (pFeedbackObj.type === 'year' || fieldType === ENCRYPTED_EXPIRY_YEAR) {\n this.setFocusOnFrame(ENCRYPTED_SECURITY_CODE);\n }\n if (fieldType === ENCRYPTED_EXPIRY_MONTH) {\n this.setFocusOnFrame(ENCRYPTED_EXPIRY_YEAR);\n }\n }\n //--\n\n let i: number;\n let len: number;\n\n const encryptedObjArr: EncryptionObj[] = pFeedbackObj[fieldType];\n\n // Set boolean saying this securedField is in an encryptedState\n this.state.securedFields[fieldType].isEncrypted = true;\n\n // REMOVE ANY ERRORS ON FIELD e.g. was a full number that failed the luhnCheck, then we corrected the number and now it passes\n processErrors(\n { error: '', fieldType } as any as SFFeedbackObj,\n this.state.securedFields[fieldType],\n this.state.type,\n this.props.rootNode,\n this.callbacks.onError\n );\n\n // MAKE ENCRYPTION OBJECTS FOR EACH OF THE INDIVIDUAL INPUTS\n // N.B. when considering \"individual inputs\" we are concerned with the 4 fields that the checkoutAPI expects to receive for a credit card payment:\n // encryptedCardNumber, encryptedSecurityCode, encryptedExpiryMonth, encryptedExpiryYear\n const callbackObjectsArr: CbObjOnFieldValid[] = makeCallbackObjectsEncryption({\n fieldType,\n txVariant: this.state.type,\n rootNode: this.props.rootNode,\n encryptedObjArr\n });\n\n // For standalone month field\n if (fieldType === ENCRYPTED_EXPIRY_MONTH) {\n if (hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_YEAR)) {\n const dataObj: object = {\n txVariant: this.state.type,\n code: pFeedbackObj.code,\n blob: encryptedObjArr[0].blob,\n fieldType: ENCRYPTED_EXPIRY_YEAR,\n numKey: this.state.securedFields[ENCRYPTED_EXPIRY_YEAR].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(this.state, ENCRYPTED_EXPIRY_YEAR), this.config.loadingContext);\n }\n }\n\n // For number field - add the endDigits to the encryption object\n if (fieldType === ENCRYPTED_CARD_NUMBER && truthy(pFeedbackObj.endDigits)) {\n callbackObjectsArr[0].endDigits = pFeedbackObj.endDigits;\n }\n\n // For number field - add the 8 digit issuerBin to the encryption object\n if (fieldType === ENCRYPTED_CARD_NUMBER && truthy(pFeedbackObj.issuerBin)) {\n callbackObjectsArr[0].issuerBin = +pFeedbackObj.issuerBin;\n }\n\n // BROADCAST VALID STATE OF INDIVIDUAL INPUTS - passing the encryption objects\n for (i = 0, len = callbackObjectsArr.length; i < len; i += 1) {\n this.callbacks.onFieldValid(callbackObjectsArr[i]);\n }\n //--------------------------------------------\n\n // STORE & BROADCAST VALID STATE OF THE FORM AS A WHOLE ///////\n this.validateForm();\n}\n"],"names":["handleEncryption","pFeedbackObj","fieldType","i","len","this","config","autoFocus","type","ENCRYPTED_EXPIRY_YEAR","setFocusOnFrame","ENCRYPTED_SECURITY_CODE","ENCRYPTED_EXPIRY_MONTH","encryptedObjArr","state","securedFields","isEncrypted","processErrors","error","props","rootNode","callbacks","onError","callbackObjectsArr","makeCallbackObjectsEncryption","txVariant","hasOwnProperty","dataObj","code","blob","numKey","postMessageToIframe","getIframeContentWin","loadingContext","ENCRYPTED_CARD_NUMBER","truthy","endDigits","issuerBin","length","onFieldValid","validateForm"],"mappings":"khBASO,SAASA,EAAiBC,GAE7B,MAAMC,EAAoBD,EAAaC,UAcvC,IAAIC,EACAC,EAZAC,KAAKC,OAAOC,YAEc,SAAtBN,EAAaO,MAAmBN,IAAcO,GAC9CJ,KAAKK,gBAAgBC,GAErBT,IAAcU,GACdP,KAAKK,gBAAgBD,IAQ7B,MAAMI,EAAmCZ,EAAaC,GAGtDG,KAAKS,MAAMC,cAAcb,GAAWc,aAAc,EAGlDC,EACI,CAAEC,MAAO,GAAIhB,aACbG,KAAKS,MAAMC,cAAcb,GACzBG,KAAKS,MAAMN,KACXH,KAAKc,MAAMC,SACXf,KAAKgB,UAAUC,SAMnB,MAAMC,EAA0CC,EAA8B,CAC1EtB,YACAuB,UAAWpB,KAAKS,MAAMN,KACtBY,SAAUf,KAAKc,MAAMC,SACrBP,oBAIJ,GAAIX,IAAcU,GACVc,EAAerB,KAAKS,MAAMC,cAAeN,GAAwB,CACjE,MAAMkB,EAAkB,CACpBF,UAAWpB,KAAKS,MAAMN,KACtBoB,KAAM3B,EAAa2B,KACnBC,KAAMhB,EAAgB,GAAGgB,KACzB3B,UAAWO,EACXqB,OAAQzB,KAAKS,MAAMC,cAAcN,GAAuBqB,QAE5DC,EAAoBJ,EAASK,EAAoB3B,KAAKS,MAAOL,GAAwBJ,KAAKC,OAAO2B,eACrG,CAcJ,IAVI/B,IAAcgC,GAAyBC,EAAOlC,EAAamC,aAC3Db,EAAmB,GAAGa,UAAYnC,EAAamC,WAI/ClC,IAAcgC,GAAyBC,EAAOlC,EAAaoC,aAC3Dd,EAAmB,GAAGc,WAAapC,EAAaoC,WAI/ClC,EAAI,EAAGC,EAAMmB,EAAmBe,OAAQnC,EAAIC,EAAKD,GAAK,EACvDE,KAAKgB,UAAUkB,aAAahB,EAAmBpB,IAKnDE,KAAKmC,cACT"}
1
+ {"version":3,"file":"handleEncryption.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/extensions/handleEncryption.ts"],"sourcesContent":["import { makeCallbackObjectsEncryption } from '../utils/callbackUtils';\nimport { ENCRYPTED_EXPIRY_MONTH, ENCRYPTED_EXPIRY_YEAR, ENCRYPTED_SECURITY_CODE, ENCRYPTED_CARD_NUMBER } from '../../constants';\nimport { processErrors } from '../utils/processErrors';\nimport { truthy } from '../../utilities/commonUtils';\nimport { SFFeedbackObj, CbObjOnFieldValid, EncryptionObj } from '../../types';\nimport postMessageToIframe from '../utils/iframes/postMessageToIframe';\nimport { hasOwnProperty } from '../../../../../../utils/hasOwnProperty';\nimport getIframeContentWin from '../utils/iframes/getIframeContentWin';\n\nexport function handleEncryption(pFeedbackObj: SFFeedbackObj): void {\n // EXTRACT VARS\n const fieldType: string = pFeedbackObj.fieldType;\n\n // SET FOCUS ON OTHER INPUT - If user has just typed a correct expiryDate - set focus on the cvc field OR typed a correct expiryMonth - focus on year field\n if (this.config.autoFocus) {\n // pFeedbackObj.type === 'year' when the encryption is happening on an expiryDate field c.f. a separate year field (when it equals ENCRYPTED_EXPIRY_YEAR)\n if (pFeedbackObj.type === 'year' || fieldType === ENCRYPTED_EXPIRY_YEAR) {\n this.setFocusOnFrame(ENCRYPTED_SECURITY_CODE);\n }\n if (fieldType === ENCRYPTED_EXPIRY_MONTH) {\n this.setFocusOnFrame(ENCRYPTED_EXPIRY_YEAR);\n }\n }\n //--\n\n let i: number;\n let len: number;\n\n const encryptedObjArr: EncryptionObj[] = pFeedbackObj[fieldType];\n\n // Set boolean saying this securedField is in an encryptedState\n this.state.securedFields[fieldType].isEncrypted = true;\n\n // REMOVE ANY ERRORS ON FIELD e.g. was a full number that failed the luhnCheck, then we corrected the number and now it passes\n processErrors(\n { error: '', fieldType } as any as SFFeedbackObj,\n this.state.securedFields[fieldType],\n this.state.type,\n this.props.rootNode,\n this.callbacks.onError\n );\n\n // MAKE ENCRYPTION OBJECTS FOR EACH OF THE INDIVIDUAL INPUTS\n // N.B. when considering \"individual inputs\" we are concerned with the 4 fields that the checkoutAPI expects to receive for a credit card payment:\n // encryptedCardNumber, encryptedSecurityCode, encryptedExpiryMonth, encryptedExpiryYear\n const callbackObjectsArr: CbObjOnFieldValid[] = makeCallbackObjectsEncryption({\n fieldType,\n txVariant: this.state.type,\n rootNode: this.props.rootNode,\n encryptedObjArr\n });\n\n // For standalone month field\n if (fieldType === ENCRYPTED_EXPIRY_MONTH) {\n if (hasOwnProperty(this.state.securedFields, ENCRYPTED_EXPIRY_YEAR)) {\n const dataObj: object = {\n txVariant: this.state.type,\n code: pFeedbackObj.code,\n blob: encryptedObjArr[0].blob,\n fieldType: ENCRYPTED_EXPIRY_YEAR,\n numKey: this.state.securedFields[ENCRYPTED_EXPIRY_YEAR].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(this.state, ENCRYPTED_EXPIRY_YEAR), this.config.loadingContext);\n }\n }\n\n // For number field - add the endDigits to the encryption object\n if (fieldType === ENCRYPTED_CARD_NUMBER && truthy(pFeedbackObj.endDigits)) {\n callbackObjectsArr[0].endDigits = pFeedbackObj.endDigits;\n }\n\n // For number field - add the 8 digit issuerBin to the encryption object\n if (fieldType === ENCRYPTED_CARD_NUMBER && truthy(pFeedbackObj.issuerBin)) {\n callbackObjectsArr[0].issuerBin = +pFeedbackObj.issuerBin;\n }\n\n // BROADCAST VALID STATE OF INDIVIDUAL INPUTS - passing the encryption objects\n for (i = 0, len = callbackObjectsArr.length; i < len; i += 1) {\n this.callbacks.onFieldValid(callbackObjectsArr[i]);\n }\n //--------------------------------------------\n\n // STORE & BROADCAST VALID STATE OF THE FORM AS A WHOLE ///////\n this.validateForm();\n}\n"],"names":["handleEncryption","pFeedbackObj","fieldType","i","len","this","config","autoFocus","type","ENCRYPTED_EXPIRY_YEAR","setFocusOnFrame","ENCRYPTED_SECURITY_CODE","ENCRYPTED_EXPIRY_MONTH","encryptedObjArr","state","securedFields","isEncrypted","processErrors","error","props","rootNode","callbacks","onError","callbackObjectsArr","makeCallbackObjectsEncryption","txVariant","hasOwnProperty","dataObj","code","blob","numKey","postMessageToIframe","getIframeContentWin","loadingContext","ENCRYPTED_CARD_NUMBER","truthy","endDigits","issuerBin","length","onFieldValid","validateForm"],"mappings":"ogBASO,SAASA,EAAiBC,GAE7B,MAAMC,EAAoBD,EAAaC,UAcvC,IAAIC,EACAC,EAZAC,KAAKC,OAAOC,YAEc,SAAtBN,EAAaO,MAAmBN,IAAcO,GAC9CJ,KAAKK,gBAAgBC,GAErBT,IAAcU,GACdP,KAAKK,gBAAgBD,IAQ7B,MAAMI,EAAmCZ,EAAaC,GAGtDG,KAAKS,MAAMC,cAAcb,GAAWc,aAAc,EAGlDC,EACI,CAAEC,MAAO,GAAIhB,aACbG,KAAKS,MAAMC,cAAcb,GACzBG,KAAKS,MAAMN,KACXH,KAAKc,MAAMC,SACXf,KAAKgB,UAAUC,SAMnB,MAAMC,EAA0CC,EAA8B,CAC1EtB,YACAuB,UAAWpB,KAAKS,MAAMN,KACtBY,SAAUf,KAAKc,MAAMC,SACrBP,oBAIJ,GAAIX,IAAcU,GACVc,EAAerB,KAAKS,MAAMC,cAAeN,GAAwB,CACjE,MAAMkB,EAAkB,CACpBF,UAAWpB,KAAKS,MAAMN,KACtBoB,KAAM3B,EAAa2B,KACnBC,KAAMhB,EAAgB,GAAGgB,KACzB3B,UAAWO,EACXqB,OAAQzB,KAAKS,MAAMC,cAAcN,GAAuBqB,QAE5DC,EAAoBJ,EAASK,EAAoB3B,KAAKS,MAAOL,GAAwBJ,KAAKC,OAAO2B,eACrG,CAcJ,IAVI/B,IAAcgC,GAAyBC,EAAOlC,EAAamC,aAC3Db,EAAmB,GAAGa,UAAYnC,EAAamC,WAI/ClC,IAAcgC,GAAyBC,EAAOlC,EAAaoC,aAC3Dd,EAAmB,GAAGc,WAAapC,EAAaoC,WAI/ClC,EAAI,EAAGC,EAAMmB,EAAmBe,OAAQnC,EAAIC,EAAKD,GAAK,EACvDE,KAAKgB,UAAUkB,aAAahB,EAAmBpB,IAKnDE,KAAKmC,cACT"}
@@ -1,2 +1,2 @@
1
- import{makeCallbackObjectsValidation as t}from"../utils/callbackUtils.js";import{processErrors as s}from"../utils/processErrors.js";import{existy as i}from"../../utilities/commonUtils.js";import{ENCRYPTED_SECURITY_CODE as e,ENCRYPTED_CARD_NUMBER as o}from"../../configuration/constants.js";import{hasOwnProperty as r}from"../../../../../../utils/hasOwnProperty.js";function c(c){let l;const a=c.fieldType;if("card"===this.state.type&&r(c,"cvcPolicy")&&i(c.cvcPolicy)&&r(this.state.securedFields,e)&&(this.state.securedFields[e].cvcPolicy=c.cvcPolicy),s(c,this.state.securedFields[a],this.state.type,this.props.rootNode,this.callbacks.onError),this.state.securedFields[a].isEncrypted){l=t({fieldType:a,txVariant:this.state.type,rootNode:this.props.rootNode}),a===o&&(l[0].endDigits="");for(let t=0,s=l.length;t<s;t+=1)this.callbacks.onFieldValid(l[t]);this.state.securedFields[a].isEncrypted=!1}this.validateForm(),r(c,"brand")&&this.processBrand(c)}export{c as handleValidation};
1
+ import{makeCallbackObjectsValidation as t}from"../utils/callbackUtils.js";import{processErrors as s}from"../utils/processErrors.js";import{existy as i}from"../../utilities/commonUtils.js";import{ENCRYPTED_SECURITY_CODE as e,ENCRYPTED_CARD_NUMBER as o}from"../../constants.js";import{hasOwnProperty as r}from"../../../../../../utils/hasOwnProperty.js";function c(c){let l;const a=c.fieldType;if("card"===this.state.type&&r(c,"cvcPolicy")&&i(c.cvcPolicy)&&r(this.state.securedFields,e)&&(this.state.securedFields[e].cvcPolicy=c.cvcPolicy),s(c,this.state.securedFields[a],this.state.type,this.props.rootNode,this.callbacks.onError),this.state.securedFields[a].isEncrypted){l=t({fieldType:a,txVariant:this.state.type,rootNode:this.props.rootNode}),a===o&&(l[0].endDigits="");for(let t=0,s=l.length;t<s;t+=1)this.callbacks.onFieldValid(l[t]);this.state.securedFields[a].isEncrypted=!1}this.validateForm(),r(c,"brand")&&this.processBrand(c)}export{c as handleValidation};
2
2
  //# sourceMappingURL=handleValidation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handleValidation.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/extensions/handleValidation.ts"],"sourcesContent":["import { makeCallbackObjectsValidation } from '../utils/callbackUtils';\nimport { processErrors } from '../utils/processErrors';\nimport { existy } from '../../utilities/commonUtils';\nimport { ENCRYPTED_SECURITY_CODE, ENCRYPTED_CARD_NUMBER } from '../../configuration/constants';\nimport { SFFeedbackObj, CbObjOnFieldValid } from '../../types';\nimport { hasOwnProperty } from '../../../../../../utils/hasOwnProperty';\n\nexport function handleValidation(pFeedbackObj: SFFeedbackObj): void {\n // --\n let callbackObjectsArr: CbObjOnFieldValid[];\n const fieldType: string = pFeedbackObj.fieldType;\n const isGenericCard: boolean = this.state.type === 'card';\n\n /**\n * CHECK IF CVC IS OPTIONAL\n */\n // Brand information (from setting the CC number) now contains information about\n // whether cvc is optional for that brand e.g. maestro\n // If it is optional, and we're dealing with the generic card type,\n // (re)set the property that indicates this (in the CVC SecuredField instance)\n if (\n isGenericCard &&\n hasOwnProperty(pFeedbackObj, 'cvcPolicy') &&\n existy(pFeedbackObj.cvcPolicy) &&\n hasOwnProperty(this.state.securedFields, ENCRYPTED_SECURITY_CODE)\n ) {\n this.state.securedFields[ENCRYPTED_SECURITY_CODE].cvcPolicy = pFeedbackObj.cvcPolicy;\n }\n\n /**\n * PROCESS & BROADCAST ERRORS (OR LACK OF)\n */\n processErrors(pFeedbackObj, this.state.securedFields[fieldType], this.state.type, this.props.rootNode, this.callbacks.onError);\n\n /**\n * REMOVE ANY EXISTING ENCRYPTED ELEMENT & CHECK VALIDITY OF THE FORM AS A WHOLE\n */\n // If the field was previously encrypted...\n if (this.state.securedFields[fieldType].isEncrypted) {\n // callbackObjectsArr will be an array containing 1 or 2 objects that need to be broadcast\n callbackObjectsArr = makeCallbackObjectsValidation({ fieldType, txVariant: this.state.type, rootNode: this.props.rootNode });\n\n // Add the endDigits to the object we send to the onFieldValid callback\n // NOTE: in this case (validation) this will be an empty string\n if (fieldType === ENCRYPTED_CARD_NUMBER) {\n callbackObjectsArr[0].endDigits = '';\n }\n\n for (let i = 0, len = callbackObjectsArr.length; i < len; i += 1) {\n // ...BROADCAST VALID STATE OF INDIVIDUAL INPUTS\n this.callbacks.onFieldValid(callbackObjectsArr[i]);\n }\n\n // Remove the field's encrypted state\n this.state.securedFields[fieldType].isEncrypted = false;\n }\n\n /**\n * STORE & BROADCAST VALID STATE OF THE FORM AS A WHOLE\n */\n this.validateForm();\n\n /**\n * PROCESS & BROADCAST CARD BRANDS\n */\n if (hasOwnProperty(pFeedbackObj, 'brand')) {\n this.processBrand(pFeedbackObj);\n }\n}\n"],"names":["handleValidation","pFeedbackObj","callbackObjectsArr","fieldType","this","state","type","hasOwnProperty","existy","cvcPolicy","securedFields","ENCRYPTED_SECURITY_CODE","processErrors","props","rootNode","callbacks","onError","isEncrypted","makeCallbackObjectsValidation","txVariant","ENCRYPTED_CARD_NUMBER","endDigits","i","len","length","onFieldValid","validateForm","processBrand"],"mappings":"6WAOO,SAASA,EAAiBC,GAE7B,IAAIC,EACJ,MAAMC,EAAoBF,EAAaE,UA4BvC,GA3BmD,SAApBC,KAAKC,MAAMC,MAWtCC,EAAeN,EAAc,cAC7BO,EAAOP,EAAaQ,YACpBF,EAAeH,KAAKC,MAAMK,cAAeC,KAEzCP,KAAKC,MAAMK,cAAcC,GAAyBF,UAAYR,EAAaQ,WAM/EG,EAAcX,EAAcG,KAAKC,MAAMK,cAAcP,GAAYC,KAAKC,MAAMC,KAAMF,KAAKS,MAAMC,SAAUV,KAAKW,UAAUC,SAMlHZ,KAAKC,MAAMK,cAAcP,GAAWc,YAAa,CAEjDf,EAAqBgB,EAA8B,CAAEf,YAAWgB,UAAWf,KAAKC,MAAMC,KAAMQ,SAAUV,KAAKS,MAAMC,WAI7GX,IAAciB,IACdlB,EAAmB,GAAGmB,UAAY,IAGtC,IAAK,IAAIC,EAAI,EAAGC,EAAMrB,EAAmBsB,OAAQF,EAAIC,EAAKD,GAAK,EAE3DlB,KAAKW,UAAUU,aAAavB,EAAmBoB,IAInDlB,KAAKC,MAAMK,cAAcP,GAAWc,aAAc,CACtD,CAKAb,KAAKsB,eAKDnB,EAAeN,EAAc,UAC7BG,KAAKuB,aAAa1B,EAE1B"}
1
+ {"version":3,"file":"handleValidation.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/extensions/handleValidation.ts"],"sourcesContent":["import { makeCallbackObjectsValidation } from '../utils/callbackUtils';\nimport { processErrors } from '../utils/processErrors';\nimport { existy } from '../../utilities/commonUtils';\nimport { ENCRYPTED_SECURITY_CODE, ENCRYPTED_CARD_NUMBER } from '../../constants';\nimport { SFFeedbackObj, CbObjOnFieldValid } from '../../types';\nimport { hasOwnProperty } from '../../../../../../utils/hasOwnProperty';\n\nexport function handleValidation(pFeedbackObj: SFFeedbackObj): void {\n // --\n let callbackObjectsArr: CbObjOnFieldValid[];\n const fieldType: string = pFeedbackObj.fieldType;\n const isGenericCard: boolean = this.state.type === 'card';\n\n /**\n * CHECK IF CVC IS OPTIONAL\n */\n // Brand information (from setting the CC number) now contains information about\n // whether cvc is optional for that brand e.g. maestro\n // If it is optional, and we're dealing with the generic card type,\n // (re)set the property that indicates this (in the CVC SecuredField instance)\n if (\n isGenericCard &&\n hasOwnProperty(pFeedbackObj, 'cvcPolicy') &&\n existy(pFeedbackObj.cvcPolicy) &&\n hasOwnProperty(this.state.securedFields, ENCRYPTED_SECURITY_CODE)\n ) {\n this.state.securedFields[ENCRYPTED_SECURITY_CODE].cvcPolicy = pFeedbackObj.cvcPolicy;\n }\n\n /**\n * PROCESS & BROADCAST ERRORS (OR LACK OF)\n */\n processErrors(pFeedbackObj, this.state.securedFields[fieldType], this.state.type, this.props.rootNode, this.callbacks.onError);\n\n /**\n * REMOVE ANY EXISTING ENCRYPTED ELEMENT & CHECK VALIDITY OF THE FORM AS A WHOLE\n */\n // If the field was previously encrypted...\n if (this.state.securedFields[fieldType].isEncrypted) {\n // callbackObjectsArr will be an array containing 1 or 2 objects that need to be broadcast\n callbackObjectsArr = makeCallbackObjectsValidation({ fieldType, txVariant: this.state.type, rootNode: this.props.rootNode });\n\n // Add the endDigits to the object we send to the onFieldValid callback\n // NOTE: in this case (validation) this will be an empty string\n if (fieldType === ENCRYPTED_CARD_NUMBER) {\n callbackObjectsArr[0].endDigits = '';\n }\n\n for (let i = 0, len = callbackObjectsArr.length; i < len; i += 1) {\n // ...BROADCAST VALID STATE OF INDIVIDUAL INPUTS\n this.callbacks.onFieldValid(callbackObjectsArr[i]);\n }\n\n // Remove the field's encrypted state\n this.state.securedFields[fieldType].isEncrypted = false;\n }\n\n /**\n * STORE & BROADCAST VALID STATE OF THE FORM AS A WHOLE\n */\n this.validateForm();\n\n /**\n * PROCESS & BROADCAST CARD BRANDS\n */\n if (hasOwnProperty(pFeedbackObj, 'brand')) {\n this.processBrand(pFeedbackObj);\n }\n}\n"],"names":["handleValidation","pFeedbackObj","callbackObjectsArr","fieldType","this","state","type","hasOwnProperty","existy","cvcPolicy","securedFields","ENCRYPTED_SECURITY_CODE","processErrors","props","rootNode","callbacks","onError","isEncrypted","makeCallbackObjectsValidation","txVariant","ENCRYPTED_CARD_NUMBER","endDigits","i","len","length","onFieldValid","validateForm","processBrand"],"mappings":"+VAOO,SAASA,EAAiBC,GAE7B,IAAIC,EACJ,MAAMC,EAAoBF,EAAaE,UA4BvC,GA3BmD,SAApBC,KAAKC,MAAMC,MAWtCC,EAAeN,EAAc,cAC7BO,EAAOP,EAAaQ,YACpBF,EAAeH,KAAKC,MAAMK,cAAeC,KAEzCP,KAAKC,MAAMK,cAAcC,GAAyBF,UAAYR,EAAaQ,WAM/EG,EAAcX,EAAcG,KAAKC,MAAMK,cAAcP,GAAYC,KAAKC,MAAMC,KAAMF,KAAKS,MAAMC,SAAUV,KAAKW,UAAUC,SAMlHZ,KAAKC,MAAMK,cAAcP,GAAWc,YAAa,CAEjDf,EAAqBgB,EAA8B,CAAEf,YAAWgB,UAAWf,KAAKC,MAAMC,KAAMQ,SAAUV,KAAKS,MAAMC,WAI7GX,IAAciB,IACdlB,EAAmB,GAAGmB,UAAY,IAGtC,IAAK,IAAIC,EAAI,EAAGC,EAAMrB,EAAmBsB,OAAQF,EAAIC,EAAKD,GAAK,EAE3DlB,KAAKW,UAAUU,aAAavB,EAAmBoB,IAInDlB,KAAKC,MAAMK,cAAcP,GAAWc,aAAc,CACtD,CAKAb,KAAKsB,eAKDnB,EAAeN,EAAc,UAC7BG,KAAKuB,aAAa1B,EAE1B"}
@@ -1,2 +1,2 @@
1
- import t from"../utils/cardType.js";import{error as e}from"../../utilities/logger.js";import{CVC_POLICY_REQUIRED as o}from"../../configuration/constants.js";function r({csfState:r,csfConfig:i,csfProps:s,csfCallbacks:n},c){r.isConfigured=!0;const f={iframesConfigured:!0,type:r.type,rootNode:s.rootNode};if(n.onConfigSuccess(f),1===r.numIframes&&i.isCreditCardType){if("card"===r.type)return e("ERROR: Payment method with a single secured field - but 'type' has not been set to a specific card brand"),!1;const i=t.getCardByBrand(r.type);if(i){(i.cvcPolicy??o)!==o&&c()}}return!0}export{r as isConfigured};
1
+ import e from"../utils/cardType.js";import{error as t}from"../../utilities/logger.js";import{CVC_POLICY_REQUIRED as o}from"../../constants.js";function r({csfState:r,csfConfig:s,csfProps:i,csfCallbacks:c},n){r.isConfigured=!0;const f={iframesConfigured:!0,type:r.type,rootNode:i.rootNode};if(c.onConfigSuccess(f),1===r.numIframes&&s.isCreditCardType){if("card"===r.type)return t("ERROR: Payment method with a single secured field - but 'type' has not been set to a specific card brand"),!1;const s=e.getCardByBrand(r.type);if(s){(s.cvcPolicy??o)!==o&&n()}}return!0}export{r as isConfigured};
2
2
  //# sourceMappingURL=isConfigured.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"isConfigured.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/partials/isConfigured.ts"],"sourcesContent":["import cardType from '../utils/cardType';\nimport { CardObject, CbObjOnConfigSuccess } from '../../types';\nimport * as logger from '../../utilities/logger';\nimport { CVC_POLICY_REQUIRED } from '../../configuration/constants';\nimport { CSFThisObject } from '../types';\n\n/**\n * @param csfState - comes from initial, partial, implementation\n * @param csfConfig - comes from initial, partial, implementation\n * @param csfProps - comes from initial, partial, implementation\n * @param csfCallbacks - comes from initial, partial, implementation\n * @param validateForm - comes from initial, partial, implementation\n */\nexport function isConfigured({ csfState, csfConfig, csfProps, csfCallbacks }: CSFThisObject, validateForm): boolean {\n csfState.isConfigured = true;\n\n const callbackObj: CbObjOnConfigSuccess = { iframesConfigured: true, type: csfState.type, rootNode: csfProps.rootNode as HTMLElement };\n\n csfCallbacks.onConfigSuccess(callbackObj);\n\n // If a recurring card\n if (csfState.numIframes === 1 && csfConfig.isCreditCardType) {\n if (csfState.type === 'card') {\n logger.error(\"ERROR: Payment method with a single secured field - but 'type' has not been set to a specific card brand\");\n return false;\n }\n\n // Get card object from txVariant\n const card: CardObject = cardType.getCardByBrand(csfState.type);\n\n // It's possible we don't recognise the card type -\n // scenario: frontend initially recognises card as e.g. Visa - but then backend tokenises it as a sub-brand which we currently don't recognise\n if (card) {\n // Assess whether cvc field is required\n const cvcPolicy = card.cvcPolicy ?? CVC_POLICY_REQUIRED;\n\n // If cvc is optional - the form can be considered valid\n if (cvcPolicy !== CVC_POLICY_REQUIRED) {\n validateForm();\n }\n }\n }\n return true;\n}\n"],"names":["isConfigured","csfState","csfConfig","csfProps","csfCallbacks","validateForm","callbackObj","iframesConfigured","type","rootNode","onConfigSuccess","numIframes","isCreditCardType","logger","card","cardType","getCardByBrand","cvcPolicy","CVC_POLICY_REQUIRED"],"mappings":"6JAaO,SAASA,GAAaC,SAAEA,EAAQC,UAAEA,EAASC,SAAEA,EAAQC,aAAEA,GAA+BC,GACzFJ,EAASD,cAAe,EAExB,MAAMM,EAAoC,CAAEC,mBAAmB,EAAMC,KAAMP,EAASO,KAAMC,SAAUN,EAASM,UAK7G,GAHAL,EAAaM,gBAAgBJ,GAGD,IAAxBL,EAASU,YAAoBT,EAAUU,iBAAkB,CACzD,GAAsB,SAAlBX,EAASO,KAET,OADAK,EAAa,6GACN,EAIX,MAAMC,EAAmBC,EAASC,eAAef,EAASO,MAI1D,GAAIM,EAAM,EAEYA,EAAKG,WAAaC,KAGlBA,GACdb,GAER,CACJ,CACA,OAAO,CACX"}
1
+ {"version":3,"file":"isConfigured.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/partials/isConfigured.ts"],"sourcesContent":["import cardType from '../utils/cardType';\nimport { CardObject, CbObjOnConfigSuccess } from '../../types';\nimport * as logger from '../../utilities/logger';\nimport { CVC_POLICY_REQUIRED } from '../../constants';\nimport { CSFThisObject } from '../types';\n\n/**\n * @param csfState - comes from initial, partial, implementation\n * @param csfConfig - comes from initial, partial, implementation\n * @param csfProps - comes from initial, partial, implementation\n * @param csfCallbacks - comes from initial, partial, implementation\n * @param validateForm - comes from initial, partial, implementation\n */\nexport function isConfigured({ csfState, csfConfig, csfProps, csfCallbacks }: CSFThisObject, validateForm): boolean {\n csfState.isConfigured = true;\n\n const callbackObj: CbObjOnConfigSuccess = { iframesConfigured: true, type: csfState.type, rootNode: csfProps.rootNode as HTMLElement };\n\n csfCallbacks.onConfigSuccess(callbackObj);\n\n // If a recurring card\n if (csfState.numIframes === 1 && csfConfig.isCreditCardType) {\n if (csfState.type === 'card') {\n logger.error(\"ERROR: Payment method with a single secured field - but 'type' has not been set to a specific card brand\");\n return false;\n }\n\n // Get card object from txVariant\n const card: CardObject = cardType.getCardByBrand(csfState.type);\n\n // It's possible we don't recognise the card type -\n // scenario: frontend initially recognises card as e.g. Visa - but then backend tokenises it as a sub-brand which we currently don't recognise\n if (card) {\n // Assess whether cvc field is required\n const cvcPolicy = card.cvcPolicy ?? CVC_POLICY_REQUIRED;\n\n // If cvc is optional - the form can be considered valid\n if (cvcPolicy !== CVC_POLICY_REQUIRED) {\n validateForm();\n }\n }\n }\n return true;\n}\n"],"names":["isConfigured","csfState","csfConfig","csfProps","csfCallbacks","validateForm","callbackObj","iframesConfigured","type","rootNode","onConfigSuccess","numIframes","isCreditCardType","logger","card","cardType","getCardByBrand","cvcPolicy","CVC_POLICY_REQUIRED"],"mappings":"+IAaO,SAASA,GAAaC,SAAEA,EAAQC,UAAEA,EAASC,SAAEA,EAAQC,aAAEA,GAA+BC,GACzFJ,EAASD,cAAe,EAExB,MAAMM,EAAoC,CAAEC,mBAAmB,EAAMC,KAAMP,EAASO,KAAMC,SAAUN,EAASM,UAK7G,GAHAL,EAAaM,gBAAgBJ,GAGD,IAAxBL,EAASU,YAAoBT,EAAUU,iBAAkB,CACzD,GAAsB,SAAlBX,EAASO,KAET,OADAK,EAAa,6GACN,EAIX,MAAMC,EAAmBC,EAASC,eAAef,EAASO,MAI1D,GAAIM,EAAM,EAEYA,EAAKG,WAAaC,KAGlBA,GACdb,GAER,CACJ,CACA,OAAO,CACX"}
@@ -1,2 +1,2 @@
1
- import e from"../utils/iframes/postMessageToIframe.js";import{ENCRYPTED_EXPIRY_DATE as t,ENCRYPTED_EXPIRY_MONTH as n,ENCRYPTED_EXPIRY_YEAR as s}from"../../configuration/constants.js";import{hasOwnProperty as o}from"../../../../../../utils/hasOwnProperty.js";import i from"../utils/iframes/getIframeContentWin.js";function r({csfState:r,csfConfig:a,csfCallbacks:l},u){if("cc-name"===u.name){const e={...u};delete e.numKey;const t=e;return l.onAutoComplete(t),!0}if("cc-exp"===u.name){const l=u.value.replace(/[^0-9]/gi,"/").split("/");if(2!==l.length)return!1;1===l[0].length&&(l[0]=`0${l[0]}`);const c=l[0],m=l[1];if(!((4===m?.length||2===m?.length)&&!isNaN(parseInt(m))))return!1;const f=m.slice(-2),p=`${c}/${f}`;if(o(r.securedFields,t)){const n={txVariant:r.type,fieldType:t,autoComplete:p,numKey:r.securedFields[t].numKey};return e(n,i(r,t),a.loadingContext),!0}if(o(r.securedFields,n)){const t={txVariant:r.type,fieldType:n,autoComplete:c,numKey:r.securedFields[n].numKey};e(t,i(r,n),a.loadingContext)}return o(r.securedFields,s)&&setTimeout((()=>{const t={txVariant:r.type,fieldType:s,autoComplete:f,numKey:r.securedFields[s].numKey};e(t,i(r,s),a.loadingContext)}),0),!0}return!1}export{r as processAutoComplete};
1
+ import e from"../utils/iframes/postMessageToIframe.js";import{ENCRYPTED_EXPIRY_DATE as t,ENCRYPTED_EXPIRY_MONTH as n,ENCRYPTED_EXPIRY_YEAR as s}from"../../constants.js";import{hasOwnProperty as o}from"../../../../../../utils/hasOwnProperty.js";import i from"../utils/iframes/getIframeContentWin.js";function r({csfState:r,csfConfig:l,csfCallbacks:a},u){if("cc-name"===u.name){const e={...u};delete e.numKey;const t=e;return a.onAutoComplete(t),!0}if("cc-exp"===u.name){const a=u.value.replace(/[^0-9]/gi,"/").split("/");if(2!==a.length)return!1;1===a[0].length&&(a[0]=`0${a[0]}`);const m=a[0],c=a[1];if(!((4===c?.length||2===c?.length)&&!isNaN(parseInt(c))))return!1;const f=c.slice(-2),p=`${m}/${f}`;if(o(r.securedFields,t)){const n={txVariant:r.type,fieldType:t,autoComplete:p,numKey:r.securedFields[t].numKey};return e(n,i(r,t),l.loadingContext),!0}if(o(r.securedFields,n)){const t={txVariant:r.type,fieldType:n,autoComplete:m,numKey:r.securedFields[n].numKey};e(t,i(r,n),l.loadingContext)}return o(r.securedFields,s)&&setTimeout((()=>{const t={txVariant:r.type,fieldType:s,autoComplete:f,numKey:r.securedFields[s].numKey};e(t,i(r,s),l.loadingContext)}),0),!0}return!1}export{r as processAutoComplete};
2
2
  //# sourceMappingURL=processAutoComplete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"processAutoComplete.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.ts"],"sourcesContent":["import postMessageToIframe from '../utils/iframes/postMessageToIframe';\nimport { ENCRYPTED_EXPIRY_DATE, ENCRYPTED_EXPIRY_MONTH, ENCRYPTED_EXPIRY_YEAR } from '../../configuration/constants';\nimport { SFFeedbackObj, CbObjOnAutoComplete } from '../../types';\nimport { hasOwnProperty } from '../../../../../../utils/hasOwnProperty';\nimport getIframeContentWin from '../utils/iframes/getIframeContentWin';\nimport { CSFThisObject } from '../types';\n\n/**\n *\n * @param csfState - comes from initial, partial, implementation\n * @param csfConfig - comes from initial, partial, implementation\n * @param csfCallbacks - comes from initial, partial, implementation\n *\n * @param pFeedbackObj -\n */\nexport function processAutoComplete({ csfState, csfConfig, csfCallbacks }: CSFThisObject, pFeedbackObj: SFFeedbackObj): boolean {\n /**\n * NOTE: It seems Chrome has started autofilling across cross-origin iframes. Have tested as far back as v104 but have no resources to test further back\n * So, in theory for Chrome \\>= v104 we don't need to do any of this, including having special listeners in the securedFields\n */\n\n // Specifically for cc-name (but no reason not to propagate all AC objects to the merchant)\n if (pFeedbackObj.name === 'cc-name') {\n const feedbackObj: SFFeedbackObj = { ...pFeedbackObj };\n delete feedbackObj.numKey;\n const ACFeedbackObj: CbObjOnAutoComplete = feedbackObj as CbObjOnAutoComplete;\n csfCallbacks.onAutoComplete(ACFeedbackObj);\n return true;\n }\n\n // Send date info to relevant secured fields (needed for Safari whose Security model won't allow direct population of fields in 3rd party iframes)\n if (pFeedbackObj.name === 'cc-exp') {\n const splittableDateVal = pFeedbackObj.value.replace(/[^0-9]/gi, '/'); // Replace any non-digits with a fwd-slash so we can always split it\n\n const dateValArr: string[] = splittableDateVal.split('/');\n\n if (dateValArr.length !== 2) {\n // To avoid bug in some versions of Safari where date doesn't come through as expected\n return false;\n }\n\n if (dateValArr[0].length === 1) dateValArr[0] = `0${dateValArr[0]}`; // pad, if required\n\n const acMonthVal: string = dateValArr[0];\n\n // Extra checks that passed year is a valid value\n const year = dateValArr[1];\n const isValidYear = (year?.length === 4 || year?.length === 2) && !isNaN(parseInt(year));\n if (!isValidYear) {\n return false;\n }\n\n const acYearVal: string = year.slice(-2); // take last 2 digits of year\n const acDateVal = `${acMonthVal}/${acYearVal}`;\n\n if (hasOwnProperty(csfState.securedFields, ENCRYPTED_EXPIRY_DATE)) {\n const dataObj: object = {\n txVariant: csfState.type,\n fieldType: ENCRYPTED_EXPIRY_DATE,\n autoComplete: acDateVal,\n numKey: csfState.securedFields[ENCRYPTED_EXPIRY_DATE].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(csfState, ENCRYPTED_EXPIRY_DATE), csfConfig.loadingContext);\n return true;\n }\n\n if (hasOwnProperty(csfState.securedFields, ENCRYPTED_EXPIRY_MONTH)) {\n const dataObj: object = {\n txVariant: csfState.type,\n fieldType: ENCRYPTED_EXPIRY_MONTH,\n autoComplete: acMonthVal,\n numKey: csfState.securedFields[ENCRYPTED_EXPIRY_MONTH].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(csfState, ENCRYPTED_EXPIRY_MONTH), csfConfig.loadingContext);\n }\n\n if (hasOwnProperty(csfState.securedFields, ENCRYPTED_EXPIRY_YEAR)) {\n // Dirty! - Need to wait til next page draw if setting month and year at the same time, otherwise only year gets set\n setTimeout(() => {\n const dataObj: object = {\n txVariant: csfState.type,\n fieldType: ENCRYPTED_EXPIRY_YEAR,\n autoComplete: acYearVal,\n numKey: csfState.securedFields[ENCRYPTED_EXPIRY_YEAR].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(csfState, ENCRYPTED_EXPIRY_YEAR), csfConfig.loadingContext);\n }, 0);\n }\n return true;\n }\n\n return false;\n}\n"],"names":["processAutoComplete","csfState","csfConfig","csfCallbacks","pFeedbackObj","name","feedbackObj","numKey","ACFeedbackObj","onAutoComplete","dateValArr","value","replace","split","length","acMonthVal","year","isNaN","parseInt","acYearVal","slice","acDateVal","hasOwnProperty","securedFields","ENCRYPTED_EXPIRY_DATE","dataObj","txVariant","type","fieldType","autoComplete","postMessageToIframe","getIframeContentWin","loadingContext","ENCRYPTED_EXPIRY_MONTH","ENCRYPTED_EXPIRY_YEAR","setTimeout"],"mappings":"yTAeO,SAASA,GAAoBC,SAAEA,EAAQC,UAAEA,EAASC,aAAEA,GAA+BC,GAOtF,GAA0B,YAAtBA,EAAaC,KAAoB,CACjC,MAAMC,EAA6B,IAAKF,UACjCE,EAAYC,OACnB,MAAMC,EAAqCF,EAE3C,OADAH,EAAaM,eAAeD,IACrB,CACX,CAGA,GAA0B,WAAtBJ,EAAaC,KAAmB,CAChC,MAEMK,EAFoBN,EAAaO,MAAMC,QAAQ,WAAY,KAElBC,MAAM,KAErD,GAA0B,IAAtBH,EAAWI,OAEX,OAAO,EAGkB,IAAzBJ,EAAW,GAAGI,SAAcJ,EAAW,GAAK,IAAIA,EAAW,MAE/D,MAAMK,EAAqBL,EAAW,GAGhCM,EAAON,EAAW,GAExB,MADsC,IAAjBM,GAAMF,QAAiC,IAAjBE,GAAMF,UAAkBG,MAAMC,SAASF,KAE9E,OAAO,EAGX,MAAMG,EAAoBH,EAAKI,OAAO,GAChCC,EAAY,GAAGN,KAAcI,IAEnC,GAAIG,EAAerB,EAASsB,cAAeC,GAAwB,CAC/D,MAAMC,EAAkB,CACpBC,UAAWzB,EAAS0B,KACpBC,UAAWJ,EACXK,aAAcR,EACdd,OAAQN,EAASsB,cAAcC,GAAuBjB,QAG1D,OADAuB,EAAoBL,EAASM,EAAoB9B,EAAUuB,GAAwBtB,EAAU8B,iBACtF,CACX,CAEA,GAAIV,EAAerB,EAASsB,cAAeU,GAAyB,CAChE,MAAMR,EAAkB,CACpBC,UAAWzB,EAAS0B,KACpBC,UAAWK,EACXJ,aAAcd,EACdR,OAAQN,EAASsB,cAAcU,GAAwB1B,QAE3DuB,EAAoBL,EAASM,EAAoB9B,EAAUgC,GAAyB/B,EAAU8B,eAClG,CAcA,OAZIV,EAAerB,EAASsB,cAAeW,IAEvCC,YAAW,KACP,MAAMV,EAAkB,CACpBC,UAAWzB,EAAS0B,KACpBC,UAAWM,EACXL,aAAcV,EACdZ,OAAQN,EAASsB,cAAcW,GAAuB3B,QAE1DuB,EAAoBL,EAASM,EAAoB9B,EAAUiC,GAAwBhC,EAAU8B,eAAc,GAC5G,IAEA,CACX,CAEA,OAAO,CACX"}
1
+ {"version":3,"file":"processAutoComplete.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/partials/processAutoComplete.ts"],"sourcesContent":["import postMessageToIframe from '../utils/iframes/postMessageToIframe';\nimport { ENCRYPTED_EXPIRY_DATE, ENCRYPTED_EXPIRY_MONTH, ENCRYPTED_EXPIRY_YEAR } from '../../constants';\nimport { SFFeedbackObj, CbObjOnAutoComplete } from '../../types';\nimport { hasOwnProperty } from '../../../../../../utils/hasOwnProperty';\nimport getIframeContentWin from '../utils/iframes/getIframeContentWin';\nimport { CSFThisObject } from '../types';\n\n/**\n *\n * @param csfState - comes from initial, partial, implementation\n * @param csfConfig - comes from initial, partial, implementation\n * @param csfCallbacks - comes from initial, partial, implementation\n *\n * @param pFeedbackObj -\n */\nexport function processAutoComplete({ csfState, csfConfig, csfCallbacks }: CSFThisObject, pFeedbackObj: SFFeedbackObj): boolean {\n /**\n * NOTE: It seems Chrome has started autofilling across cross-origin iframes. Have tested as far back as v104 but have no resources to test further back\n * So, in theory for Chrome \\>= v104 we don't need to do any of this, including having special listeners in the securedFields\n */\n\n // Specifically for cc-name (but no reason not to propagate all AC objects to the merchant)\n if (pFeedbackObj.name === 'cc-name') {\n const feedbackObj: SFFeedbackObj = { ...pFeedbackObj };\n delete feedbackObj.numKey;\n const ACFeedbackObj: CbObjOnAutoComplete = feedbackObj as CbObjOnAutoComplete;\n csfCallbacks.onAutoComplete(ACFeedbackObj);\n return true;\n }\n\n // Send date info to relevant secured fields (needed for Safari whose Security model won't allow direct population of fields in 3rd party iframes)\n if (pFeedbackObj.name === 'cc-exp') {\n const splittableDateVal = pFeedbackObj.value.replace(/[^0-9]/gi, '/'); // Replace any non-digits with a fwd-slash so we can always split it\n\n const dateValArr: string[] = splittableDateVal.split('/');\n\n if (dateValArr.length !== 2) {\n // To avoid bug in some versions of Safari where date doesn't come through as expected\n return false;\n }\n\n if (dateValArr[0].length === 1) dateValArr[0] = `0${dateValArr[0]}`; // pad, if required\n\n const acMonthVal: string = dateValArr[0];\n\n // Extra checks that passed year is a valid value\n const year = dateValArr[1];\n const isValidYear = (year?.length === 4 || year?.length === 2) && !isNaN(parseInt(year));\n if (!isValidYear) {\n return false;\n }\n\n const acYearVal: string = year.slice(-2); // take last 2 digits of year\n const acDateVal = `${acMonthVal}/${acYearVal}`;\n\n if (hasOwnProperty(csfState.securedFields, ENCRYPTED_EXPIRY_DATE)) {\n const dataObj: object = {\n txVariant: csfState.type,\n fieldType: ENCRYPTED_EXPIRY_DATE,\n autoComplete: acDateVal,\n numKey: csfState.securedFields[ENCRYPTED_EXPIRY_DATE].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(csfState, ENCRYPTED_EXPIRY_DATE), csfConfig.loadingContext);\n return true;\n }\n\n if (hasOwnProperty(csfState.securedFields, ENCRYPTED_EXPIRY_MONTH)) {\n const dataObj: object = {\n txVariant: csfState.type,\n fieldType: ENCRYPTED_EXPIRY_MONTH,\n autoComplete: acMonthVal,\n numKey: csfState.securedFields[ENCRYPTED_EXPIRY_MONTH].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(csfState, ENCRYPTED_EXPIRY_MONTH), csfConfig.loadingContext);\n }\n\n if (hasOwnProperty(csfState.securedFields, ENCRYPTED_EXPIRY_YEAR)) {\n // Dirty! - Need to wait til next page draw if setting month and year at the same time, otherwise only year gets set\n setTimeout(() => {\n const dataObj: object = {\n txVariant: csfState.type,\n fieldType: ENCRYPTED_EXPIRY_YEAR,\n autoComplete: acYearVal,\n numKey: csfState.securedFields[ENCRYPTED_EXPIRY_YEAR].numKey\n };\n postMessageToIframe(dataObj, getIframeContentWin(csfState, ENCRYPTED_EXPIRY_YEAR), csfConfig.loadingContext);\n }, 0);\n }\n return true;\n }\n\n return false;\n}\n"],"names":["processAutoComplete","csfState","csfConfig","csfCallbacks","pFeedbackObj","name","feedbackObj","numKey","ACFeedbackObj","onAutoComplete","dateValArr","value","replace","split","length","acMonthVal","year","isNaN","parseInt","acYearVal","slice","acDateVal","hasOwnProperty","securedFields","ENCRYPTED_EXPIRY_DATE","dataObj","txVariant","type","fieldType","autoComplete","postMessageToIframe","getIframeContentWin","loadingContext","ENCRYPTED_EXPIRY_MONTH","ENCRYPTED_EXPIRY_YEAR","setTimeout"],"mappings":"2SAeO,SAASA,GAAoBC,SAAEA,EAAQC,UAAEA,EAASC,aAAEA,GAA+BC,GAOtF,GAA0B,YAAtBA,EAAaC,KAAoB,CACjC,MAAMC,EAA6B,IAAKF,UACjCE,EAAYC,OACnB,MAAMC,EAAqCF,EAE3C,OADAH,EAAaM,eAAeD,IACrB,CACX,CAGA,GAA0B,WAAtBJ,EAAaC,KAAmB,CAChC,MAEMK,EAFoBN,EAAaO,MAAMC,QAAQ,WAAY,KAElBC,MAAM,KAErD,GAA0B,IAAtBH,EAAWI,OAEX,OAAO,EAGkB,IAAzBJ,EAAW,GAAGI,SAAcJ,EAAW,GAAK,IAAIA,EAAW,MAE/D,MAAMK,EAAqBL,EAAW,GAGhCM,EAAON,EAAW,GAExB,MADsC,IAAjBM,GAAMF,QAAiC,IAAjBE,GAAMF,UAAkBG,MAAMC,SAASF,KAE9E,OAAO,EAGX,MAAMG,EAAoBH,EAAKI,OAAO,GAChCC,EAAY,GAAGN,KAAcI,IAEnC,GAAIG,EAAerB,EAASsB,cAAeC,GAAwB,CAC/D,MAAMC,EAAkB,CACpBC,UAAWzB,EAAS0B,KACpBC,UAAWJ,EACXK,aAAcR,EACdd,OAAQN,EAASsB,cAAcC,GAAuBjB,QAG1D,OADAuB,EAAoBL,EAASM,EAAoB9B,EAAUuB,GAAwBtB,EAAU8B,iBACtF,CACX,CAEA,GAAIV,EAAerB,EAASsB,cAAeU,GAAyB,CAChE,MAAMR,EAAkB,CACpBC,UAAWzB,EAAS0B,KACpBC,UAAWK,EACXJ,aAAcd,EACdR,OAAQN,EAASsB,cAAcU,GAAwB1B,QAE3DuB,EAAoBL,EAASM,EAAoB9B,EAAUgC,GAAyB/B,EAAU8B,eAClG,CAcA,OAZIV,EAAerB,EAASsB,cAAeW,IAEvCC,YAAW,KACP,MAAMV,EAAkB,CACpBC,UAAWzB,EAAS0B,KACpBC,UAAWM,EACXL,aAAcV,EACdZ,OAAQN,EAASsB,cAAcW,GAAuB3B,QAE1DuB,EAAoBL,EAASM,EAAoB9B,EAAUiC,GAAwBhC,EAAU8B,eAAc,GAC5G,IAEA,CACX,CAEA,OAAO,CACX"}
@@ -1,2 +1,2 @@
1
- import{ENCRYPTED_CARD_NUMBER as o,ENCRYPTED_SECURITY_CODE as r}from"../../configuration/constants.js";import t from"../utils/iframes/postMessageToIframe.js";import{objectsDeepEqual as e}from"../../utilities/commonUtils.js";import{pick as i}from"../../../utils.js";import{hasOwnProperty as c}from"../../../../../../utils/hasOwnProperty.js";import s from"../utils/iframes/getIframeContentWin.js";function n({csfState:n,csfConfig:a,csfProps:l,csfCallbacks:f},m){if(m.fieldType===o){const o={brand:m.brand,cvcPolicy:m.cvcPolicy,expiryDatePolicy:m.expiryDatePolicy,showSocialSecurityNumber:m.showSocialSecurityNumber},d=(y=o,u=n.brand,!e(y,u));if(!d)return null;const p="card"===n.type||"bcmc"===n.type;if(p&&d&&(n.brand=o,c(n.securedFields,r))){const e={txVariant:n.type,brand:o.brand,fieldType:r,cvcPolicy:m.cvcPolicy,numKey:n.securedFields[r].numKey};t(e,s(n,r),a.loadingContext)}const b=p?i(["brand","cvcPolicy","cvcText","expiryDatePolicy","showSocialSecurityNumber"]).from(m):null;if(b&&b.brand){const o=b;o.type=n.type,o.rootNode=l.rootNode,f.onBrand(o)}return!0}var y,u;return!1}export{n as default};
1
+ import{ENCRYPTED_CARD_NUMBER as o,ENCRYPTED_SECURITY_CODE as r}from"../../constants.js";import t from"../utils/iframes/postMessageToIframe.js";import{objectsDeepEqual as e}from"../../utilities/commonUtils.js";import{pick as i}from"../../../utils.js";import{hasOwnProperty as c}from"../../../../../../utils/hasOwnProperty.js";import s from"../utils/iframes/getIframeContentWin.js";function n({csfState:n,csfConfig:a,csfProps:l,csfCallbacks:m},f){if(f.fieldType===o){const o={brand:f.brand,cvcPolicy:f.cvcPolicy,expiryDatePolicy:f.expiryDatePolicy,showSocialSecurityNumber:f.showSocialSecurityNumber},d=(y=o,u=n.brand,!e(y,u));if(!d)return null;const p="card"===n.type||"bcmc"===n.type;if(p&&d&&(n.brand=o,c(n.securedFields,r))){const e={txVariant:n.type,brand:o.brand,fieldType:r,cvcPolicy:f.cvcPolicy,numKey:n.securedFields[r].numKey};t(e,s(n,r),a.loadingContext)}const b=p?i(["brand","cvcPolicy","cvcText","expiryDatePolicy","showSocialSecurityNumber"]).from(f):null;if(b&&b.brand){const o=b;o.type=n.type,o.rootNode=l.rootNode,m.onBrand(o)}return!0}var y,u;return!1}export{n as default};
2
2
  //# sourceMappingURL=processBrand.js.map