@adyen/adyen-web 6.4.0 → 6.5.1

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 (348) hide show
  1. package/README.md +16 -5
  2. package/dist/cjs/adyen.css +7 -3
  3. package/dist/cjs/adyen.css.map +1 -1
  4. package/dist/cjs/index.cjs +2 -2
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/index.d.cts +27 -19
  7. package/dist/es/adyen.css +7 -3
  8. package/dist/es/adyen.css.map +1 -1
  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/Ach/Ach.js +1 -1
  12. package/dist/es/components/Ach/Ach.js.map +1 -1
  13. package/dist/es/components/Address/Address.js +1 -1
  14. package/dist/es/components/Address/Address.js.map +1 -1
  15. package/dist/es/components/Affirm/Affirm.js +1 -1
  16. package/dist/es/components/Affirm/Affirm.js.map +1 -1
  17. package/dist/es/components/AfterPay/AfterPay.js +1 -1
  18. package/dist/es/components/AfterPay/AfterPay.js.map +1 -1
  19. package/dist/es/components/AfterPay/AfterPayB2B.js +1 -1
  20. package/dist/es/components/AfterPay/AfterPayB2B.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/ApplePay/ApplePay.js +1 -1
  24. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  25. package/dist/es/components/ApplePay/ApplePayService.js +1 -1
  26. package/dist/es/components/ApplePay/ApplePayService.js.map +1 -1
  27. package/dist/es/components/ApplePay/components/ApplePayButton.js +1 -1
  28. package/dist/es/components/ApplePay/components/ApplePayButton.js.map +1 -1
  29. package/dist/es/components/Atome/Atome.js +1 -1
  30. package/dist/es/components/Atome/Atome.js.map +1 -1
  31. package/dist/es/components/BacsDD/BacsDD.js +1 -1
  32. package/dist/es/components/BacsDD/BacsDD.js.map +1 -1
  33. package/dist/es/components/BankTransfer/BankTransfer.js +1 -1
  34. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  35. package/dist/es/components/BcmcMobile/BcmcMobile.js +1 -1
  36. package/dist/es/components/BcmcMobile/BcmcMobile.js.map +1 -1
  37. package/dist/es/components/BillDesk/BillDeskOnline.js +1 -1
  38. package/dist/es/components/BillDesk/BillDeskOnline.js.map +1 -1
  39. package/dist/es/components/BillDesk/BillDeskWallet.js +1 -1
  40. package/dist/es/components/BillDesk/BillDeskWallet.js.map +1 -1
  41. package/dist/es/components/Blik/Blik.js +1 -1
  42. package/dist/es/components/Blik/Blik.js.map +1 -1
  43. package/dist/es/components/Boleto/Boleto.js +1 -1
  44. package/dist/es/components/Boleto/Boleto.js.map +1 -1
  45. package/dist/es/components/Card/Bancontact.js +1 -1
  46. package/dist/es/components/Card/Bancontact.js.map +1 -1
  47. package/dist/es/components/Card/Card.js +1 -1
  48. package/dist/es/components/Card/Card.js.map +1 -1
  49. package/dist/es/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  50. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  51. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  52. package/dist/es/components/CashAppPay/services/CashAppService.js +1 -1
  53. package/dist/es/components/CashAppPay/services/CashAppService.js.map +1 -1
  54. package/dist/es/components/ClickToPay/ClickToPay.js +1 -1
  55. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  56. package/dist/es/components/CustomCard/CustomCard.js +1 -1
  57. package/dist/es/components/CustomCard/CustomCard.js.map +1 -1
  58. package/dist/es/components/Doku/Doku.js +1 -1
  59. package/dist/es/components/Doku/Doku.js.map +1 -1
  60. package/dist/es/components/Donation/Donation.js +1 -1
  61. package/dist/es/components/Donation/Donation.js.map +1 -1
  62. package/dist/es/components/Dotpay/index.js +1 -1
  63. package/dist/es/components/Dotpay/index.js.map +1 -1
  64. package/dist/es/components/Dragonpay/Dragonpay.js +1 -1
  65. package/dist/es/components/Dragonpay/Dragonpay.js.map +1 -1
  66. package/dist/es/components/Dropin/Dropin.js +1 -1
  67. package/dist/es/components/Dropin/Dropin.js.map +1 -1
  68. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  69. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  70. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js +1 -1
  71. package/dist/es/components/Dropin/components/PaymentMethod/PaymentMethodItem/PaymentMethodItem.js.map +1 -1
  72. package/dist/es/components/DuitNow/DuitNow.js +1 -1
  73. package/dist/es/components/DuitNow/DuitNow.js.map +1 -1
  74. package/dist/es/components/EPS/index.js +1 -1
  75. package/dist/es/components/EPS/index.js.map +1 -1
  76. package/dist/es/components/Econtext/Econtext.js +1 -1
  77. package/dist/es/components/Econtext/Econtext.js.map +1 -1
  78. package/dist/es/components/FacilyPay/FacilyPay10x.js +1 -1
  79. package/dist/es/components/FacilyPay/FacilyPay10x.js.map +1 -1
  80. package/dist/es/components/FacilyPay/FacilyPay12x.js +1 -1
  81. package/dist/es/components/FacilyPay/FacilyPay12x.js.map +1 -1
  82. package/dist/es/components/FacilyPay/FacilyPay3x.js +1 -1
  83. package/dist/es/components/FacilyPay/FacilyPay3x.js.map +1 -1
  84. package/dist/es/components/FacilyPay/FacilyPay4x.js +1 -1
  85. package/dist/es/components/FacilyPay/FacilyPay4x.js.map +1 -1
  86. package/dist/es/components/FacilyPay/FacilyPay6x.js +1 -1
  87. package/dist/es/components/FacilyPay/FacilyPay6x.js.map +1 -1
  88. package/dist/es/components/Giftcard/Giftcard.js +1 -1
  89. package/dist/es/components/Giftcard/Giftcard.js.map +1 -1
  90. package/dist/es/components/Giftcard/components/GiftcardComponent.js +1 -1
  91. package/dist/es/components/Giftcard/components/GiftcardComponent.js.map +1 -1
  92. package/dist/es/components/Giropay/Giropay.js +1 -1
  93. package/dist/es/components/Giropay/Giropay.js.map +1 -1
  94. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  95. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  96. package/dist/es/components/GooglePay/GooglePayService.js +1 -1
  97. package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
  98. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  99. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  100. package/dist/es/components/MBWay/MBWay.js +1 -1
  101. package/dist/es/components/MBWay/MBWay.js.map +1 -1
  102. package/dist/es/components/MealVoucherFR/MealVoucherFR.js +1 -1
  103. package/dist/es/components/MealVoucherFR/MealVoucherFR.js.map +1 -1
  104. package/dist/es/components/MolPayEBanking/MolPayEBankingMY.js +1 -1
  105. package/dist/es/components/MolPayEBanking/MolPayEBankingMY.js.map +1 -1
  106. package/dist/es/components/MolPayEBanking/MolPayEBankingTH.js +1 -1
  107. package/dist/es/components/MolPayEBanking/MolPayEBankingTH.js.map +1 -1
  108. package/dist/es/components/MolPayEBanking/MolPayEBankingVN.js +1 -1
  109. package/dist/es/components/MolPayEBanking/MolPayEBankingVN.js.map +1 -1
  110. package/dist/es/components/Multibanco/Multibanco.js +1 -1
  111. package/dist/es/components/Multibanco/Multibanco.js.map +1 -1
  112. package/dist/es/components/OnlineBankingCZ/index.js +1 -1
  113. package/dist/es/components/OnlineBankingCZ/index.js.map +1 -1
  114. package/dist/es/components/OnlineBankingFI/OnlineBankingFI.js +1 -1
  115. package/dist/es/components/OnlineBankingFI/OnlineBankingFI.js.map +1 -1
  116. package/dist/es/components/OnlineBankingIN/index.js +1 -1
  117. package/dist/es/components/OnlineBankingIN/index.js.map +1 -1
  118. package/dist/es/components/OnlineBankingPL/OnlineBankingPL.js +1 -1
  119. package/dist/es/components/OnlineBankingPL/OnlineBankingPL.js.map +1 -1
  120. package/dist/es/components/OnlineBankingSK/index.js +1 -1
  121. package/dist/es/components/OnlineBankingSK/index.js.map +1 -1
  122. package/dist/es/components/Oxxo/Oxxo.js +1 -1
  123. package/dist/es/components/Oxxo/Oxxo.js.map +1 -1
  124. package/dist/es/components/PayByBank/PayByBank.js +1 -1
  125. package/dist/es/components/PayByBank/PayByBank.js.map +1 -1
  126. package/dist/es/components/PayByBankUS/PayByBankUS.js +1 -1
  127. package/dist/es/components/PayByBankUS/PayByBankUS.js.map +1 -1
  128. package/dist/es/components/PayMe/PayMe.js +1 -1
  129. package/dist/es/components/PayMe/PayMe.js.map +1 -1
  130. package/dist/es/components/PayMe/components/PayMeInstructions.js +2 -0
  131. package/dist/es/components/PayMe/components/PayMeInstructions.js.map +1 -0
  132. package/dist/es/components/PayMe/components/PayMeIntroduction.js +2 -0
  133. package/dist/es/components/PayMe/components/PayMeIntroduction.js.map +1 -0
  134. package/dist/es/components/PayNow/PayNow.js +1 -1
  135. package/dist/es/components/PayNow/PayNow.js.map +1 -1
  136. package/dist/es/components/PayNow/components/PayNowInstructions.js +2 -0
  137. package/dist/es/components/PayNow/components/PayNowInstructions.js.map +1 -0
  138. package/dist/es/components/PayNow/components/PayNowIntroduction.js +2 -0
  139. package/dist/es/components/PayNow/components/PayNowIntroduction.js.map +1 -0
  140. package/dist/es/components/PayPal/Paypal.js +1 -1
  141. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  142. package/dist/es/components/PayU/PayuCashcard.js +1 -1
  143. package/dist/es/components/PayU/PayuCashcard.js.map +1 -1
  144. package/dist/es/components/PayU/PayuNetBanking.js +1 -1
  145. package/dist/es/components/PayU/PayuNetBanking.js.map +1 -1
  146. package/dist/es/components/PersonalDetails/PersonalDetails.js +1 -1
  147. package/dist/es/components/PersonalDetails/PersonalDetails.js.map +1 -1
  148. package/dist/es/components/Pix/Pix.js +1 -1
  149. package/dist/es/components/Pix/Pix.js.map +1 -1
  150. package/dist/es/components/PromptPay/PromptPay.js +1 -1
  151. package/dist/es/components/PromptPay/PromptPay.js.map +1 -1
  152. package/dist/es/components/RatePay/RatePay.js +1 -1
  153. package/dist/es/components/RatePay/RatePay.js.map +1 -1
  154. package/dist/es/components/RatePay/RatePayDirectDebit.js +1 -1
  155. package/dist/es/components/RatePay/RatePayDirectDebit.js.map +1 -1
  156. package/dist/es/components/Redirect/Redirect.js +1 -1
  157. package/dist/es/components/Redirect/Redirect.js.map +1 -1
  158. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js +1 -1
  159. package/dist/es/components/Redirect/components/RedirectShopper/RedirectShopper.js.map +1 -1
  160. package/dist/es/components/Riverty/Riverty.js +1 -1
  161. package/dist/es/components/Riverty/Riverty.js.map +1 -1
  162. package/dist/es/components/Sepa/Sepa.js +1 -1
  163. package/dist/es/components/Sepa/Sepa.js.map +1 -1
  164. package/dist/es/components/Swish/Swish.js +1 -1
  165. package/dist/es/components/Swish/Swish.js.map +1 -1
  166. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js +1 -1
  167. package/dist/es/components/ThreeDS2/ThreeDS2Challenge.js.map +1 -1
  168. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js +1 -1
  169. package/dist/es/components/ThreeDS2/ThreeDS2DeviceFingerprint.js.map +1 -1
  170. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js +1 -1
  171. package/dist/es/components/ThreeDS2/components/Challenge/DoChallenge3DS2.js.map +1 -1
  172. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js +1 -1
  173. package/dist/es/components/ThreeDS2/components/Challenge/PrepareChallenge3DS2.js.map +1 -1
  174. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js +1 -1
  175. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/DoFingerprint3DS2.js.map +1 -1
  176. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js +1 -1
  177. package/dist/es/components/ThreeDS2/components/DeviceFingerprint/PrepareFingerprint3DS2.js.map +1 -1
  178. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js +1 -1
  179. package/dist/es/components/ThreeDS2/components/Form/ThreeDS2Form.js.map +1 -1
  180. package/dist/es/components/Trustly/Trustly.js +1 -1
  181. package/dist/es/components/Trustly/Trustly.js.map +1 -1
  182. package/dist/es/components/Twint/Twint.js +1 -1
  183. package/dist/es/components/Twint/Twint.js.map +1 -1
  184. package/dist/es/components/UPI/UPI.js +1 -1
  185. package/dist/es/components/UPI/UPI.js.map +1 -1
  186. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  187. package/dist/es/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  188. package/dist/es/components/Vipps/Vipps.js +1 -1
  189. package/dist/es/components/Vipps/Vipps.js.map +1 -1
  190. package/dist/es/components/WalletIN/index.js +1 -1
  191. package/dist/es/components/WalletIN/index.js.map +1 -1
  192. package/dist/es/components/WeChat/WeChat.js +1 -1
  193. package/dist/es/components/WeChat/WeChat.js.map +1 -1
  194. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js +1 -1
  195. package/dist/es/components/helpers/IssuerListContainer/IssuerListContainer.js.map +1 -1
  196. package/dist/es/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js +1 -1
  197. package/dist/es/components/helpers/OpenInvoiceContainer/OpenInvoiceContainer.js.map +1 -1
  198. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  199. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  200. package/dist/es/components/internal/Address/Address.js +1 -1
  201. package/dist/es/components/internal/Address/Address.js.map +1 -1
  202. package/dist/es/components/internal/Address/Specifications.js +1 -1
  203. package/dist/es/components/internal/Address/Specifications.js.map +1 -1
  204. package/dist/es/components/internal/BaseElement/BaseElement.js +1 -1
  205. package/dist/es/components/internal/BaseElement/BaseElement.js.map +1 -1
  206. package/dist/es/components/internal/Button/Button.js +1 -1
  207. package/dist/es/components/internal/Button/Button.js.map +1 -1
  208. package/dist/es/components/internal/ClickToPay/errors/TimeoutError.js +1 -1
  209. package/dist/es/components/internal/ClickToPay/errors/TimeoutError.js.map +1 -1
  210. package/dist/es/components/internal/ClickToPay/models/ShopperCard.js +1 -1
  211. package/dist/es/components/internal/ClickToPay/models/ShopperCard.js.map +1 -1
  212. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js +1 -1
  213. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  214. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js +1 -1
  215. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  216. package/dist/es/components/internal/ClickToPay/services/sdks/MastercardSdk.js +1 -1
  217. package/dist/es/components/internal/ClickToPay/services/sdks/MastercardSdk.js.map +1 -1
  218. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js +1 -1
  219. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  220. package/dist/es/components/internal/ClickToPay/services/sdks/SrciError.js +1 -1
  221. package/dist/es/components/internal/ClickToPay/services/sdks/SrciError.js.map +1 -1
  222. package/dist/es/components/internal/ClickToPay/services/sdks/VisaSdk.js +1 -1
  223. package/dist/es/components/internal/ClickToPay/services/sdks/VisaSdk.js.map +1 -1
  224. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js +1 -1
  225. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  226. package/dist/es/components/internal/FormFields/ConsentCheckbox/ConsentCheckbox.js +1 -1
  227. package/dist/es/components/internal/FormFields/ConsentCheckbox/ConsentCheckbox.js.map +1 -1
  228. package/dist/es/components/internal/IFrame/Iframe.js +1 -1
  229. package/dist/es/components/internal/IFrame/Iframe.js.map +1 -1
  230. package/dist/es/components/internal/IbanInput/IbanInput.js +1 -1
  231. package/dist/es/components/internal/IbanInput/IbanInput.js.map +1 -1
  232. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  233. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  234. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js +1 -1
  235. package/dist/es/components/internal/SecuredFields/SFP/SecuredFieldsProvider.js.map +1 -1
  236. package/dist/es/components/internal/SecuredFields/lib/CSF/AbstractCSF.js +1 -1
  237. package/dist/es/components/internal/SecuredFields/lib/CSF/AbstractCSF.js.map +1 -1
  238. package/dist/es/components/internal/SecuredFields/lib/CSF/CSF.js +1 -1
  239. package/dist/es/components/internal/SecuredFields/lib/CSF/CSF.js.map +1 -1
  240. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleIOSTouchEvents.js.map +1 -1
  241. package/dist/es/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  242. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  243. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  244. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js +1 -1
  245. package/dist/es/components/internal/SecuredFields/lib/securedField/AbstractSecuredField.js.map +1 -1
  246. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js +1 -1
  247. package/dist/es/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  248. package/dist/es/components/internal/SecuredFields/lib/utilities/logger.js.map +1 -1
  249. package/dist/es/components/internal/Timeline/Timeline.js +2 -0
  250. package/dist/es/components/internal/Timeline/Timeline.js.map +1 -0
  251. package/dist/es/components/internal/Timeline/TimelineWrapper.js +2 -0
  252. package/dist/es/components/internal/Timeline/TimelineWrapper.js.map +1 -0
  253. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  254. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  255. package/dist/es/core/CheckoutSession/CheckoutSession.js +1 -1
  256. package/dist/es/core/CheckoutSession/CheckoutSession.js.map +1 -1
  257. package/dist/es/core/Context/Resources.js +1 -1
  258. package/dist/es/core/Context/Resources.js.map +1 -1
  259. package/dist/es/core/Errors/AdyenCheckoutError.js +1 -1
  260. package/dist/es/core/Errors/AdyenCheckoutError.js.map +1 -1
  261. package/dist/es/core/Errors/SRPanel.js +1 -1
  262. package/dist/es/core/Errors/SRPanel.js.map +1 -1
  263. package/dist/es/core/ProcessResponse/PaymentMethods/PaymentMethods.js +1 -1
  264. package/dist/es/core/ProcessResponse/PaymentMethods/PaymentMethods.js.map +1 -1
  265. package/dist/es/core/RiskModule/RiskModule.js +1 -1
  266. package/dist/es/core/RiskModule/RiskModule.js.map +1 -1
  267. package/dist/es/core/RiskModule/components/DeviceFingerprint/DeviceFingerprint.js +1 -1
  268. package/dist/es/core/RiskModule/components/DeviceFingerprint/DeviceFingerprint.js.map +1 -1
  269. package/dist/es/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js +1 -1
  270. package/dist/es/core/RiskModule/components/DeviceFingerprint/GetDeviceFingerprint.js.map +1 -1
  271. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  272. package/dist/es/core/core.js +1 -1
  273. package/dist/es/core/core.js.map +1 -1
  274. package/dist/es/core/core.registry.js +1 -1
  275. package/dist/es/core/core.registry.js.map +1 -1
  276. package/dist/es/index.d.ts +27 -19
  277. package/dist/es/language/Language.js +1 -1
  278. package/dist/es/language/Language.js.map +1 -1
  279. package/dist/es/utils/Script.js +1 -1
  280. package/dist/es/utils/Script.js.map +1 -1
  281. package/dist/es/utils/Storage.js +1 -1
  282. package/dist/es/utils/Storage.js.map +1 -1
  283. package/dist/es/utils/Validator/ValidationRuleResult.js +1 -1
  284. package/dist/es/utils/Validator/ValidationRuleResult.js.map +1 -1
  285. package/dist/es/utils/Validator/Validator.js +1 -1
  286. package/dist/es/utils/Validator/Validator.js.map +1 -1
  287. package/dist/es/utils/constants/currency-decimals.js +1 -1
  288. package/dist/es/utils/constants/currency-decimals.js.map +1 -1
  289. package/dist/es/utils/constants/currency-minor-units.js.map +1 -1
  290. package/dist/es/utils/useForm/reducer.js +1 -1
  291. package/dist/es/utils/useForm/reducer.js.map +1 -1
  292. package/dist/es/utils/useForm/useForm.js +1 -1
  293. package/dist/es/utils/useForm/useForm.js.map +1 -1
  294. package/dist/es/utils/useIsMobile.js +2 -0
  295. package/dist/es/utils/useIsMobile.js.map +1 -0
  296. package/dist/es-legacy/adyen.css +7 -3
  297. package/dist/es-legacy/adyen.css.map +1 -1
  298. package/dist/es-legacy/components/ApplePay/components/ApplePayButton.js.map +1 -1
  299. package/dist/es-legacy/components/BcmcMobile/BcmcMobile.js +1 -1
  300. package/dist/es-legacy/components/BcmcMobile/BcmcMobile.js.map +1 -1
  301. package/dist/es-legacy/components/Card/components/CardInput/components/CVCHint.js.map +1 -1
  302. package/dist/es-legacy/components/PayMe/PayMe.js +1 -1
  303. package/dist/es-legacy/components/PayMe/PayMe.js.map +1 -1
  304. package/dist/es-legacy/components/PayMe/components/PayMeInstructions.js +2 -0
  305. package/dist/es-legacy/components/PayMe/components/PayMeInstructions.js.map +1 -0
  306. package/dist/es-legacy/components/PayMe/components/PayMeIntroduction.js +2 -0
  307. package/dist/es-legacy/components/PayMe/components/PayMeIntroduction.js.map +1 -0
  308. package/dist/es-legacy/components/PayNow/PayNow.js +1 -1
  309. package/dist/es-legacy/components/PayNow/PayNow.js.map +1 -1
  310. package/dist/es-legacy/components/PayNow/components/PayNowInstructions.js +2 -0
  311. package/dist/es-legacy/components/PayNow/components/PayNowInstructions.js.map +1 -0
  312. package/dist/es-legacy/components/PayNow/components/PayNowIntroduction.js +2 -0
  313. package/dist/es-legacy/components/PayNow/components/PayNowIntroduction.js.map +1 -0
  314. package/dist/es-legacy/components/Swish/Swish.js.map +1 -1
  315. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js +1 -1
  316. package/dist/es-legacy/components/UPI/components/UPIComponent/UPIComponent.js.map +1 -1
  317. package/dist/es-legacy/components/internal/Address/Address.js +1 -1
  318. package/dist/es-legacy/components/internal/Address/Address.js.map +1 -1
  319. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  320. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  321. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleIOSTouchEvents.js.map +1 -1
  322. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/utils/cardType.js.map +1 -1
  323. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  324. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  325. package/dist/es-legacy/components/internal/SecuredFields/lib/securedField/SecuredField.js.map +1 -1
  326. package/dist/es-legacy/components/internal/SecuredFields/lib/utilities/logger.js.map +1 -1
  327. package/dist/es-legacy/components/internal/Timeline/Timeline.js +2 -0
  328. package/dist/es-legacy/components/internal/Timeline/Timeline.js.map +1 -0
  329. package/dist/es-legacy/components/internal/Timeline/TimelineWrapper.js +2 -0
  330. package/dist/es-legacy/components/internal/Timeline/TimelineWrapper.js.map +1 -0
  331. package/dist/es-legacy/core/CheckoutSession/CheckoutSession.js.map +1 -1
  332. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  333. package/dist/es-legacy/core/core.js +1 -1
  334. package/dist/es-legacy/utils/constants/currency-decimals.js +1 -1
  335. package/dist/es-legacy/utils/constants/currency-decimals.js.map +1 -1
  336. package/dist/es-legacy/utils/constants/currency-minor-units.js.map +1 -1
  337. package/dist/es-legacy/utils/useForm/reducer.js +1 -1
  338. package/dist/es-legacy/utils/useForm/reducer.js.map +1 -1
  339. package/dist/es-legacy/utils/useForm/useForm.js +1 -1
  340. package/dist/es-legacy/utils/useForm/useForm.js.map +1 -1
  341. package/dist/es-legacy/utils/useIsMobile.js +2 -0
  342. package/dist/es-legacy/utils/useIsMobile.js.map +1 -0
  343. package/package.json +7 -2
  344. package/styles/adyen.css +7 -3
  345. package/dist/es/components/PayMe/Instructions.js +0 -2
  346. package/dist/es/components/PayMe/Instructions.js.map +0 -1
  347. package/dist/es-legacy/components/PayMe/Instructions.js +0 -2
  348. package/dist/es-legacy/components/PayMe/Instructions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cardType.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/utils/cardType.ts"],"sourcesContent":["import { CardObject } from '../../types';\nimport { hasOwnProperty } from '../../../../../../utils/hasOwnProperty';\n\nlet shortestPermittedCardLength;\n\ninterface CardType {\n __NO_BRAND?: string;\n cards?: CardObject[];\n}\n\nconst CardType: CardType = {};\nCardType.__NO_BRAND = 'noBrand';\n\nCardType.cards = [];\n\nCardType.cards.push({\n cardType: 'mc',\n startingRules: [51, 52, 53, 54, 55, 22, 23, 24, 25, 26, 27],\n permittedLengths: [16],\n pattern: /^(5[1-5][0-9]{0,14}|2[2-7][0-9]{0,14})$/,\n securityCode: 'CVC'\n});\n\nCardType.cards.push({ cardType: 'visadankort', startingRules: [4571], permittedLengths: [16], pattern: /^(4571)[0-9]{0,12}$/ });\n\nCardType.cards.push({\n cardType: 'visa',\n startingRules: [4],\n permittedLengths: [13, 16, 19],\n pattern: /^4[0-9]{0,18}$/,\n securityCode: 'CVV'\n});\n\nCardType.cards.push({ cardType: 'amex', startingRules: [34, 37], permittedLengths: [15], pattern: /^3[47][0-9]{0,13}$/, securityCode: 'CID' });\n\nCardType.cards.push({ cardType: 'diners', startingRules: [36], permittedLengths: [14, 16], pattern: /^(36)[0-9]{0,12}$/ });\n\nCardType.cards.push({ cardType: 'maestrouk', startingRules: [6759], permittedLengths: [16, 18, 19], pattern: /^(6759)[0-9]{0,15}$/ });\n\nCardType.cards.push({ cardType: 'solo', startingRules: [6767], permittedLengths: [16, 18, 19], pattern: /^(6767)[0-9]{0,15}$/ });\n\nCardType.cards.push({\n cardType: 'laser',\n startingRules: [6304, 6706, 677117, 677120],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(6304|6706|6709|6771)[0-9]{0,15}$/,\n cvcPolicy: 'optional'\n});\n\nCardType.cards.push({\n cardType: 'discover',\n startingRules: [6011, 644, 645, 646, 647, 648, 649, 65],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(6011[0-9]{0,12}|(644|645|646|647|648|649)[0-9]{0,13}|65[0-9]{0,14})$/\n});\n\nCardType.cards.push({\n cardType: 'jcb',\n startingRules: [3528, 3529, 353, 354, 355, 356, 357, 358],\n permittedLengths: [16, 19],\n pattern: /^(352[8,9]{1}[0-9]{0,15}|35[4-8]{1}[0-9]{0,16})$/,\n securityCode: 'CAV'\n});\n\nCardType.cards.push({\n cardType: 'bcmc',\n startingRules: [6703, 479658, 606005],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^((6703)[0-9]{0,15}|(479658|606005)[0-9]{0,13})$/,\n cvcPolicy: 'hidden'\n});\n\nCardType.cards.push({ cardType: 'bijcard', startingRules: [5100081], permittedLengths: [16], pattern: /^(5100081)[0-9]{0,9}$/ });\n\nCardType.cards.push({ cardType: 'dankort', startingRules: [5019], permittedLengths: [16], pattern: /^(5019)[0-9]{0,12}$/ });\n\nCardType.cards.push({ cardType: 'hipercard', startingRules: [606282], permittedLengths: [16], pattern: /^(606282)[0-9]{0,10}$/ });\n\n// Moved above maestro (from position below uatp) to stop maestro being recognised over cup\nCardType.cards.push({ cardType: 'cup', startingRules: [62, 81], permittedLengths: [14, 15, 16, 17, 18, 19], pattern: /^(62|81)[0-9]{0,17}$/ }); // orig & android v1 + modified to include our test cards (81...)\n\nCardType.cards.push({\n cardType: 'maestro',\n startingRules: [50, 56, 57, 58, 6],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(5[0|6-8][0-9]{0,17}|6[0-9]{0,18})$/,\n cvcPolicy: 'optional'\n});\n\nCardType.cards.push({\n cardType: 'elo',\n // prettier-ignore\n startingRules: [506699, 50670, 50671, 50672, 50673, 50674, 50675, 50676, 506770, 506771, 506772, 506773, 506774, 506775, 506776, 506777, 506778, 401178, 438935, 451416, 457631, 457632, 504175, 627780, 636297, 636368], \n permittedLengths: [16],\n // prettier-ignore\n pattern:\n /^((((506699)|(506770)|(506771)|(506772)|(506773)|(506774)|(506775)|(506776)|(506777)|(506778)|(401178)|(438935)|(451416)|(457631)|(457632)|(504175)|(627780)|(636368)|(636297))[0-9]{0,10})|((50676)|(50675)|(50674)|(50673)|(50672)|(50671)|(50670))[0-9]{0,11})$/ \n});\n\nCardType.cards.push({ cardType: 'uatp', startingRules: [1], permittedLengths: [15], pattern: /^1[0-9]{0,14}$/, cvcPolicy: 'optional' });\n\nCardType.cards.push({\n cardType: 'cartebancaire',\n startingRules: [4, 5, 6],\n permittedLengths: [16],\n pattern: /^[4-6][0-9]{0,15}$/\n});\n\nCardType.cards.push({ cardType: 'visaalphabankbonus', startingRules: [450903], permittedLengths: [16], pattern: /^(450903)[0-9]{0,10}$/ });\n\nCardType.cards.push({ cardType: 'mcalphabankbonus', startingRules: [510099], permittedLengths: [16], pattern: /^(510099)[0-9]{0,10}$/ });\n\nCardType.cards.push({\n cardType: 'hiper',\n startingRules: [637095, 637568, 637599, 637609, 637612],\n permittedLengths: [16],\n pattern: /^(637095|637568|637599|637609|637612)[0-9]{0,10}$/\n});\n\nCardType.cards.push({ cardType: 'oasis', startingRules: [982616], permittedLengths: [16], pattern: /^(982616)[0-9]{0,10}$/, cvcPolicy: 'optional' });\n\nCardType.cards.push({\n cardType: 'karenmillen',\n startingRules: [98261465],\n permittedLengths: [16],\n pattern: /^(98261465)[0-9]{0,8}$/,\n cvcPolicy: 'optional'\n});\n\nCardType.cards.push({\n cardType: 'warehouse',\n startingRules: [982633],\n permittedLengths: [16],\n pattern: /^(982633)[0-9]{0,10}$/,\n cvcPolicy: 'optional'\n});\n\nCardType.cards.push({ cardType: 'mir', startingRules: [220], permittedLengths: [16, 17, 18, 19], pattern: /^(220)[0-9]{0,16}$/ });\n\nCardType.cards.push({ cardType: 'codensa', startingRules: [590712], permittedLengths: [16], pattern: /^(590712)[0-9]{0,10}$/ });\n\nCardType.cards.push({\n cardType: 'naranja',\n startingRules: [377798, 377799, 402917, 402918, 527571, 527572, 589562],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(37|40|5[28])([279])\\d*$/\n});\n\n// TODO: 589657 clashes with naranja, rest ok\nCardType.cards.push({\n cardType: 'cabal',\n startingRules: [589657, 600691, 603522, 6042, 6043, 636908],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(58|6[03])([03469])\\d*$/\n});\n\nCardType.cards.push({\n cardType: 'shopping',\n startingRules: [2799, 589407, 603488],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(27|58|60)([39])\\d*$/\n});\n\nCardType.cards.push({ cardType: 'argencard', startingRules: [501], permittedLengths: [16, 17, 18, 19], pattern: /^(50)(1)\\d*$/ }); // NOTE: starting rule changed, from 501105, to not clash with dankort. Plus it now matches its regEx!\n\nCardType.cards.push({ cardType: 'troy', startingRules: [9792], permittedLengths: [16], pattern: /^(97)(9)\\d*$/ });\n\n// TODO: clashes with cabal\nCardType.cards.push({ cardType: 'forbrugsforeningen', startingRules: [600722], permittedLengths: [16], pattern: /^(60)(0)\\d*$/ });\n\nCardType.cards.push({\n cardType: 'vpay',\n startingRules: [401, 408, 413, 434, 435, 437, 439, 441, 442, 443, 444, 446, 447, 455, 458, 460, 461, 463, 466, 471, 479, 482, 483, 487],\n permittedLengths: [13, 14, 15, 16, 17, 18, 19],\n pattern: /^(40[1,8]|413|43[4,5]|44[1,2,3,4,6,7]|45[5,8]|46[0,1,3,6]|47[1,9]|48[2,3,7])[0-9]{0,16}$/ // ^(4[0-1|3-8][0-9]{1,17})$\n});\n\nCardType.cards.push({\n cardType: 'rupay',\n startingRules: [508528],\n permittedLengths: [16],\n // prettier-ignore\n pattern:\n /^(100003|508(2|[5-9])|60(69|[7-8])|652(1[5-9]|[2-5][0-9]|8[5-9])|65300[3-4]|8172([0-1]|[3-5]|7|9)|817(3[3-8]|40[6-9]|410)|35380([0-2]|[5-6]|9))[0-9]{0,12}$/ \n});\n\nCardType.cards.push({\n cardType: 'ticket',\n expiryDatePolicy: 'hidden'\n});\n\nconst detectCard = (pCardNumber, pAvailableCards?) => {\n let matchedCards;\n let i;\n let len;\n\n if (pAvailableCards) {\n // Filter CardType.cards down to those that are found in pAvailableCards\n matchedCards = CardType.cards\n .filter(card => pAvailableCards.includes(card.cardType))\n // Further filter them to those with a regEx pattern that matches pCardNumber\n .filter(card => hasOwnProperty(card, 'pattern') && pCardNumber.match(card.pattern));\n\n // If we have matched cards: if there's only one - return it; else return the one with the longest startingRule\n if (matchedCards.length) {\n if (matchedCards.length === 1) {\n return matchedCards[0];\n }\n\n // Find longest rule for each matched card & store it as a property on the card\n for (i = 0, len = matchedCards.length; i < len; i += 1) {\n if (!matchedCards[i].longestRule) {\n const longestRule = matchedCards[i].startingRules.reduce((a, b) => (a > b ? a : b));\n // What we actually store is how many chars are in the rule\n matchedCards[i].longestRule = String(longestRule).length;\n }\n }\n\n // Based on each matched cards longest rule - find the card with the longest one!\n return matchedCards.reduce((a, b) => (a.longestRule >= b.longestRule ? a : b));\n }\n\n return { cardType: CardType.__NO_BRAND };\n }\n\n return { cardType: CardType.__NO_BRAND };\n};\n\nconst detectCardLength = (pCard, pUnformattedVal) => {\n let maxLength;\n let shortenedNewValue;\n let lengthDiff = 0;\n let reachedValidLength = false;\n let unformattedVal = pUnformattedVal;\n\n // Find the longest of the permitted card number lengths for this card brand\n const maxPermittedLength = pCard.cardType !== CardType.__NO_BRAND ? pCard.permittedLengths[pCard.permittedLengths.length - 1] : 0;\n\n // If the input value is longer than it's max permitted length then shorten it to that length\n if (maxPermittedLength && unformattedVal > maxPermittedLength) {\n lengthDiff = unformattedVal.length - maxPermittedLength;\n\n if (lengthDiff > 0) {\n unformattedVal = unformattedVal.substring(0, unformattedVal.length - lengthDiff);\n shortenedNewValue = unformattedVal;\n }\n }\n\n // If cardNumber has reached one of the cardBrand's 'permitted lengths' - mark it as 'valid'\n pCard.permittedLengths.forEach(pItem => {\n if (unformattedVal.length === pItem) {\n reachedValidLength = true;\n }\n });\n\n // If cardNumber is as long as the cardBrand's maximum permitted length then set the maxLength var\n if (unformattedVal.length === maxPermittedLength) {\n // Set maxlength to max + the right amount of spaces (one for every 4 digits, but not on the last block)\n const div = Math.floor(unformattedVal.length / 4);\n const mod = unformattedVal.length % 4;\n const numSpaces = mod > 0 ? div : div - 1;\n\n maxLength = maxPermittedLength + numSpaces;\n\n if (pCard.cardType.toLowerCase() === 'amex') {\n maxLength = maxPermittedLength + 2; // = 17 = 15 digits with space after 4th & 10th\n }\n }\n\n return {\n shortenedNewValue,\n maxLength,\n reachedValidLength\n };\n};\n\nconst getShortestPermittedCardLength = () => {\n if (!shortestPermittedCardLength) {\n let permittedLengthsArray = [];\n\n CardType.cards.forEach(pItem => {\n permittedLengthsArray = permittedLengthsArray.concat(pItem.permittedLengths ?? []);\n });\n\n shortestPermittedCardLength = Math.min.apply(null, permittedLengthsArray);\n }\n\n return shortestPermittedCardLength;\n};\n\nconst getCardByBrand = pBrand => {\n const cardType = CardType.cards.filter(card => card.cardType === pBrand);\n\n return cardType[0];\n};\n\nconst isGenericCardType = type => {\n if (!type) throw new Error('Error: isGenericCardType: type param has not been specified');\n return type === 'card' || type === 'scheme';\n};\n\nexport default {\n detectCard,\n detectCardLength,\n getShortestPermittedCardLength,\n getCardByBrand,\n isGenericCardType,\n __NO_BRAND: CardType.__NO_BRAND,\n allCards: CardType.cards\n};\n"],"names":["shortestPermittedCardLength","CardType","cards","push","cardType","startingRules","permittedLengths","pattern","securityCode","cvcPolicy","expiryDatePolicy","detectCard","pCardNumber","pAvailableCards","matchedCards","i","len","filter","card","includes","hasOwnProperty","match","length","longestRule","reduce","a","b","String","__NO_BRAND","detectCardLength","pCard","pUnformattedVal","maxLength","shortenedNewValue","lengthDiff","reachedValidLength","unformattedVal","maxPermittedLength","substring","forEach","pItem","div","Math","floor","toLowerCase","getShortestPermittedCardLength","permittedLengthsArray","concat","min","apply","getCardByBrand","pBrand","isGenericCardType","type","Error","allCards"],"mappings":"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"}
1
+ {"version":3,"file":"cardType.js","sources":["../../../../../../../../src/components/internal/SecuredFields/lib/CSF/utils/cardType.ts"],"sourcesContent":["import { CardObject } from '../../types';\nimport { hasOwnProperty } from '../../../../../../utils/hasOwnProperty';\n\nlet shortestPermittedCardLength;\n\ninterface CardType {\n __NO_BRAND?: string;\n cards?: CardObject[];\n}\n\nconst CardType: CardType = {};\nCardType.__NO_BRAND = 'noBrand';\n\nCardType.cards = [];\n\nCardType.cards.push({\n cardType: 'mc',\n startingRules: [51, 52, 53, 54, 55, 22, 23, 24, 25, 26, 27],\n permittedLengths: [16],\n pattern: /^(5[1-5][0-9]{0,14}|2[2-7][0-9]{0,14})$/,\n securityCode: 'CVC'\n});\n\nCardType.cards.push({ cardType: 'visadankort', startingRules: [4571], permittedLengths: [16], pattern: /^(4571)[0-9]{0,12}$/ });\n\nCardType.cards.push({\n cardType: 'visa',\n startingRules: [4],\n permittedLengths: [13, 16, 19],\n pattern: /^4[0-9]{0,18}$/,\n securityCode: 'CVV'\n});\n\nCardType.cards.push({ cardType: 'amex', startingRules: [34, 37], permittedLengths: [15], pattern: /^3[47][0-9]{0,13}$/, securityCode: 'CID' });\n\nCardType.cards.push({ cardType: 'diners', startingRules: [36], permittedLengths: [14, 16], pattern: /^(36)[0-9]{0,12}$/ });\n\nCardType.cards.push({ cardType: 'maestrouk', startingRules: [6759], permittedLengths: [16, 18, 19], pattern: /^(6759)[0-9]{0,15}$/ });\n\nCardType.cards.push({ cardType: 'solo', startingRules: [6767], permittedLengths: [16, 18, 19], pattern: /^(6767)[0-9]{0,15}$/ });\n\nCardType.cards.push({\n cardType: 'laser',\n startingRules: [6304, 6706, 677117, 677120],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(6304|6706|6709|6771)[0-9]{0,15}$/,\n cvcPolicy: 'optional'\n});\n\nCardType.cards.push({\n cardType: 'discover',\n startingRules: [6011, 644, 645, 646, 647, 648, 649, 65],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(6011[0-9]{0,12}|(644|645|646|647|648|649)[0-9]{0,13}|65[0-9]{0,14})$/\n});\n\nCardType.cards.push({\n cardType: 'jcb',\n startingRules: [3528, 3529, 353, 354, 355, 356, 357, 358],\n permittedLengths: [16, 19],\n pattern: /^(352[8,9]{1}[0-9]{0,15}|35[4-8]{1}[0-9]{0,16})$/,\n securityCode: 'CAV'\n});\n\nCardType.cards.push({\n cardType: 'bcmc',\n startingRules: [6703, 479658, 606005],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^((6703)[0-9]{0,15}|(479658|606005)[0-9]{0,13})$/,\n cvcPolicy: 'hidden'\n});\n\nCardType.cards.push({ cardType: 'bijcard', startingRules: [5100081], permittedLengths: [16], pattern: /^(5100081)[0-9]{0,9}$/ });\n\nCardType.cards.push({ cardType: 'dankort', startingRules: [5019], permittedLengths: [16], pattern: /^(5019)[0-9]{0,12}$/ });\n\nCardType.cards.push({ cardType: 'hipercard', startingRules: [606282], permittedLengths: [16], pattern: /^(606282)[0-9]{0,10}$/ });\n\n// Moved above maestro (from position below uatp) to stop maestro being recognised over cup\nCardType.cards.push({ cardType: 'cup', startingRules: [62, 81], permittedLengths: [14, 15, 16, 17, 18, 19], pattern: /^(62|81)[0-9]{0,17}$/ }); // orig & android v1 + modified to include our test cards (81...)\n\nCardType.cards.push({\n cardType: 'maestro',\n startingRules: [50, 56, 57, 58, 6],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(5[0|6-8][0-9]{0,17}|6[0-9]{0,18})$/,\n cvcPolicy: 'optional'\n});\n\nCardType.cards.push({\n cardType: 'elo',\n // prettier-ignore\n startingRules: [506699, 50670, 50671, 50672, 50673, 50674, 50675, 50676, 506770, 506771, 506772, 506773, 506774, 506775, 506776, 506777, 506778, 401178, 438935, 451416, 457631, 457632, 504175, 627780, 636297, 636368],\n permittedLengths: [16],\n // prettier-ignore\n pattern:\n /^((((506699)|(506770)|(506771)|(506772)|(506773)|(506774)|(506775)|(506776)|(506777)|(506778)|(401178)|(438935)|(451416)|(457631)|(457632)|(504175)|(627780)|(636368)|(636297))[0-9]{0,10})|((50676)|(50675)|(50674)|(50673)|(50672)|(50671)|(50670))[0-9]{0,11})$/\n});\n\nCardType.cards.push({ cardType: 'uatp', startingRules: [1], permittedLengths: [15], pattern: /^1[0-9]{0,14}$/, cvcPolicy: 'optional' });\n\nCardType.cards.push({\n cardType: 'cartebancaire',\n startingRules: [4, 5, 6],\n permittedLengths: [16],\n pattern: /^[4-6][0-9]{0,15}$/\n});\n\nCardType.cards.push({ cardType: 'visaalphabankbonus', startingRules: [450903], permittedLengths: [16], pattern: /^(450903)[0-9]{0,10}$/ });\n\nCardType.cards.push({ cardType: 'mcalphabankbonus', startingRules: [510099], permittedLengths: [16], pattern: /^(510099)[0-9]{0,10}$/ });\n\nCardType.cards.push({\n cardType: 'hiper',\n startingRules: [637095, 637568, 637599, 637609, 637612],\n permittedLengths: [16],\n pattern: /^(637095|637568|637599|637609|637612)[0-9]{0,10}$/\n});\n\nCardType.cards.push({ cardType: 'oasis', startingRules: [982616], permittedLengths: [16], pattern: /^(982616)[0-9]{0,10}$/, cvcPolicy: 'optional' });\n\nCardType.cards.push({\n cardType: 'karenmillen',\n startingRules: [98261465],\n permittedLengths: [16],\n pattern: /^(98261465)[0-9]{0,8}$/,\n cvcPolicy: 'optional'\n});\n\nCardType.cards.push({\n cardType: 'warehouse',\n startingRules: [982633],\n permittedLengths: [16],\n pattern: /^(982633)[0-9]{0,10}$/,\n cvcPolicy: 'optional'\n});\n\nCardType.cards.push({ cardType: 'mir', startingRules: [220], permittedLengths: [16, 17, 18, 19], pattern: /^(220)[0-9]{0,16}$/ });\n\nCardType.cards.push({ cardType: 'codensa', startingRules: [590712], permittedLengths: [16], pattern: /^(590712)[0-9]{0,10}$/ });\n\nCardType.cards.push({\n cardType: 'naranja',\n startingRules: [377798, 377799, 402917, 402918, 527571, 527572, 589562],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(37|40|5[28])([279])\\d*$/\n});\n\n// TODO: 589657 clashes with naranja, rest ok\nCardType.cards.push({\n cardType: 'cabal',\n startingRules: [589657, 600691, 603522, 6042, 6043, 636908],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(58|6[03])([03469])\\d*$/\n});\n\nCardType.cards.push({\n cardType: 'shopping',\n startingRules: [2799, 589407, 603488],\n permittedLengths: [16, 17, 18, 19],\n pattern: /^(27|58|60)([39])\\d*$/\n});\n\nCardType.cards.push({ cardType: 'argencard', startingRules: [501], permittedLengths: [16, 17, 18, 19], pattern: /^(50)(1)\\d*$/ }); // NOTE: starting rule changed, from 501105, to not clash with dankort. Plus it now matches its regEx!\n\nCardType.cards.push({ cardType: 'troy', startingRules: [9792], permittedLengths: [16], pattern: /^(97)(9)\\d*$/ });\n\n// TODO: clashes with cabal\nCardType.cards.push({ cardType: 'forbrugsforeningen', startingRules: [600722], permittedLengths: [16], pattern: /^(60)(0)\\d*$/ });\n\nCardType.cards.push({\n cardType: 'vpay',\n startingRules: [401, 408, 413, 434, 435, 437, 439, 441, 442, 443, 444, 446, 447, 455, 458, 460, 461, 463, 466, 471, 479, 482, 483, 487],\n permittedLengths: [13, 14, 15, 16, 17, 18, 19],\n pattern: /^(40[1,8]|413|43[4,5]|44[1,2,3,4,6,7]|45[5,8]|46[0,1,3,6]|47[1,9]|48[2,3,7])[0-9]{0,16}$/ // ^(4[0-1|3-8][0-9]{1,17})$\n});\n\nCardType.cards.push({\n cardType: 'rupay',\n startingRules: [508528],\n permittedLengths: [16],\n // prettier-ignore\n pattern:\n /^(100003|508(2|[5-9])|60(69|[7-8])|652(1[5-9]|[2-5][0-9]|8[5-9])|65300[3-4]|8172([0-1]|[3-5]|7|9)|817(3[3-8]|40[6-9]|410)|35380([0-2]|[5-6]|9))[0-9]{0,12}$/\n});\n\nCardType.cards.push({\n cardType: 'ticket',\n expiryDatePolicy: 'hidden'\n});\n\nconst detectCard = (pCardNumber, pAvailableCards?) => {\n let matchedCards;\n let i;\n let len;\n\n if (pAvailableCards) {\n // Filter CardType.cards down to those that are found in pAvailableCards\n matchedCards = CardType.cards\n .filter(card => pAvailableCards.includes(card.cardType))\n // Further filter them to those with a regEx pattern that matches pCardNumber\n .filter(card => hasOwnProperty(card, 'pattern') && pCardNumber.match(card.pattern));\n\n // If we have matched cards: if there's only one - return it; else return the one with the longest startingRule\n if (matchedCards.length) {\n if (matchedCards.length === 1) {\n return matchedCards[0];\n }\n\n // Find longest rule for each matched card & store it as a property on the card\n for (i = 0, len = matchedCards.length; i < len; i += 1) {\n if (!matchedCards[i].longestRule) {\n const longestRule = matchedCards[i].startingRules.reduce((a, b) => (a > b ? a : b));\n // What we actually store is how many chars are in the rule\n matchedCards[i].longestRule = String(longestRule).length;\n }\n }\n\n // Based on each matched cards longest rule - find the card with the longest one!\n return matchedCards.reduce((a, b) => (a.longestRule >= b.longestRule ? a : b));\n }\n\n return { cardType: CardType.__NO_BRAND };\n }\n\n return { cardType: CardType.__NO_BRAND };\n};\n\nconst detectCardLength = (pCard, pUnformattedVal) => {\n let maxLength;\n let shortenedNewValue;\n let lengthDiff = 0;\n let reachedValidLength = false;\n let unformattedVal = pUnformattedVal;\n\n // Find the longest of the permitted card number lengths for this card brand\n const maxPermittedLength = pCard.cardType !== CardType.__NO_BRAND ? pCard.permittedLengths[pCard.permittedLengths.length - 1] : 0;\n\n // If the input value is longer than it's max permitted length then shorten it to that length\n if (maxPermittedLength && unformattedVal > maxPermittedLength) {\n lengthDiff = unformattedVal.length - maxPermittedLength;\n\n if (lengthDiff > 0) {\n unformattedVal = unformattedVal.substring(0, unformattedVal.length - lengthDiff);\n shortenedNewValue = unformattedVal;\n }\n }\n\n // If cardNumber has reached one of the cardBrand's 'permitted lengths' - mark it as 'valid'\n pCard.permittedLengths.forEach(pItem => {\n if (unformattedVal.length === pItem) {\n reachedValidLength = true;\n }\n });\n\n // If cardNumber is as long as the cardBrand's maximum permitted length then set the maxLength var\n if (unformattedVal.length === maxPermittedLength) {\n // Set maxlength to max + the right amount of spaces (one for every 4 digits, but not on the last block)\n const div = Math.floor(unformattedVal.length / 4);\n const mod = unformattedVal.length % 4;\n const numSpaces = mod > 0 ? div : div - 1;\n\n maxLength = maxPermittedLength + numSpaces;\n\n if (pCard.cardType.toLowerCase() === 'amex') {\n maxLength = maxPermittedLength + 2; // = 17 = 15 digits with space after 4th & 10th\n }\n }\n\n return {\n shortenedNewValue,\n maxLength,\n reachedValidLength\n };\n};\n\nconst getShortestPermittedCardLength = () => {\n if (!shortestPermittedCardLength) {\n let permittedLengthsArray = [];\n\n CardType.cards.forEach(pItem => {\n permittedLengthsArray = permittedLengthsArray.concat(pItem.permittedLengths ?? []);\n });\n\n shortestPermittedCardLength = Math.min.apply(null, permittedLengthsArray);\n }\n\n return shortestPermittedCardLength;\n};\n\nconst getCardByBrand = pBrand => {\n const cardType = CardType.cards.filter(card => card.cardType === pBrand);\n\n return cardType[0];\n};\n\nconst isGenericCardType = type => {\n if (!type) throw new Error('Error: isGenericCardType: type param has not been specified');\n return type === 'card' || type === 'scheme';\n};\n\nexport default {\n detectCard,\n detectCardLength,\n getShortestPermittedCardLength,\n getCardByBrand,\n isGenericCardType,\n __NO_BRAND: CardType.__NO_BRAND,\n allCards: CardType.cards\n};\n"],"names":["shortestPermittedCardLength","CardType","cards","push","cardType","startingRules","permittedLengths","pattern","securityCode","cvcPolicy","expiryDatePolicy","detectCard","pCardNumber","pAvailableCards","matchedCards","i","len","filter","card","includes","hasOwnProperty","match","length","longestRule","reduce","a","b","String","__NO_BRAND","detectCardLength","pCard","pUnformattedVal","maxLength","shortenedNewValue","lengthDiff","reachedValidLength","unformattedVal","maxPermittedLength","substring","forEach","pItem","div","Math","floor","toLowerCase","getShortestPermittedCardLength","permittedLengthsArray","concat","min","apply","getCardByBrand","pBrand","isGenericCardType","type","Error","allCards"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e="encrypted",r="encryptedCardNumber",c="encryptedExpiryDate",t="encryptedExpiryMonth",a="encryptedExpiryYear",d="encryptedSecurityCode",i="encryptedPassword",n="encryptedBankAccountNumber",o="encryptedBankLocationId",s="encryptedSecurityCode3digits",y="encryptedSecurityCode4digits",p="giftcard",u="5.3.0",m=["amex","mc","visa"],C=["ach",p],b=[r,c,t,a,d,i],x=[n,o],h=b.concat(x),D=["bcmc"],g="required",k="optional",B="hidden",l=g,v=k,A=B,E=g,M=k,N=B,S="data-cse",f="data-info",j="data-uid",I=["accel","pulse","star","nyce"],w={visa:"VISA",mc:"MasterCard",amex:"American Express",discover:"Discover",cup:"China Union Pay",jcb:"JCB",diners:"Diners Club",maestro:"Maestro",bcmc:"Bancontact card",bijcard:"de Bijenkorf Card"},L={[r]:"cardNumber",[c]:"expiryDate",[d]:"securityCode",[t]:"expiryMonth",[a]:"expiryYear",[i]:"password",[n]:"bankAccountNumber",[o]:"bankLocationId",[s]:"securityCodeThreeDigits",[y]:"securityCodeFourDigits"},P=6e3;export{h as ALL_SECURED_FIELDS,I as BRAND_ICON_UI_EXCLUSION_LIST,w as BRAND_READABLE_NAME_MAP,b as CREDIT_CARD_SF_FIELDS,A as CVC_POLICY_HIDDEN,v as CVC_POLICY_OPTIONAL,l as CVC_POLICY_REQUIRED,S as DATA_ENCRYPTED_FIELD_ATTR,f as DATA_INFO,j as DATA_UID,N as DATE_POLICY_HIDDEN,M as DATE_POLICY_OPTIONAL,E as DATE_POLICY_REQUIRED,D as DEDICATED_CARD_COMPONENTS,m as DEFAULT_CARD_GROUP_TYPES,e as ENCRYPTED,n as ENCRYPTED_BANK_ACCNT_NUMBER_FIELD,o as ENCRYPTED_BANK_LOCATION_FIELD,r as ENCRYPTED_CARD_NUMBER,c as ENCRYPTED_EXPIRY_DATE,t as ENCRYPTED_EXPIRY_MONTH,a as ENCRYPTED_EXPIRY_YEAR,i as ENCRYPTED_PWD_FIELD,d as ENCRYPTED_SECURITY_CODE,s as ENCRYPTED_SECURITY_CODE_3_DIGITS,y as ENCRYPTED_SECURITY_CODE_4_DIGITS,p as GIFT_CARD,B as HIDDEN,C as NON_CREDIT_CARD_TYPE_SECURED_FIELDS,k as OPTIONAL,x as OTHER_SF_FIELDS,g as REQUIRED,P as SF_CONFIG_TIMEOUT,L as SF_FIELDS_MAP,u as SF_VERSION};
1
+ const e="encrypted",r="encryptedCardNumber",c="encryptedExpiryDate",t="encryptedExpiryMonth",a="encryptedExpiryYear",d="encryptedSecurityCode",i="encryptedPassword",n="encryptedBankAccountNumber",o="encryptedBankLocationId",s="encryptedSecurityCode3digits",y="encryptedSecurityCode4digits",p="giftcard",u="5.3.1",m=["amex","mc","visa"],C=["ach",p],b=[r,c,t,a,d,i],x=[n,o],h=b.concat(x),D=["bcmc"],g="required",k="optional",B="hidden",l=g,v=k,A=B,E=g,M=k,N=B,S="data-cse",f="data-info",j="data-uid",I=["accel","pulse","star","nyce"],w={visa:"VISA",mc:"MasterCard",amex:"American Express",discover:"Discover",cup:"China Union Pay",jcb:"JCB",diners:"Diners Club",maestro:"Maestro",bcmc:"Bancontact card",bijcard:"de Bijenkorf Card"},L={[r]:"cardNumber",[c]:"expiryDate",[d]:"securityCode",[t]:"expiryMonth",[a]:"expiryYear",[i]:"password",[n]:"bankAccountNumber",[o]:"bankLocationId",[s]:"securityCodeThreeDigits",[y]:"securityCodeFourDigits"},P=6e3;export{h as ALL_SECURED_FIELDS,I as BRAND_ICON_UI_EXCLUSION_LIST,w as BRAND_READABLE_NAME_MAP,b as CREDIT_CARD_SF_FIELDS,A as CVC_POLICY_HIDDEN,v as CVC_POLICY_OPTIONAL,l as CVC_POLICY_REQUIRED,S as DATA_ENCRYPTED_FIELD_ATTR,f as DATA_INFO,j as DATA_UID,N as DATE_POLICY_HIDDEN,M as DATE_POLICY_OPTIONAL,E as DATE_POLICY_REQUIRED,D as DEDICATED_CARD_COMPONENTS,m as DEFAULT_CARD_GROUP_TYPES,e as ENCRYPTED,n as ENCRYPTED_BANK_ACCNT_NUMBER_FIELD,o as ENCRYPTED_BANK_LOCATION_FIELD,r as ENCRYPTED_CARD_NUMBER,c as ENCRYPTED_EXPIRY_DATE,t as ENCRYPTED_EXPIRY_MONTH,a as ENCRYPTED_EXPIRY_YEAR,i as ENCRYPTED_PWD_FIELD,d as ENCRYPTED_SECURITY_CODE,s as ENCRYPTED_SECURITY_CODE_3_DIGITS,y as ENCRYPTED_SECURITY_CODE_4_DIGITS,p as GIFT_CARD,B as HIDDEN,C as NON_CREDIT_CARD_TYPE_SECURED_FIELDS,k as OPTIONAL,x as OTHER_SF_FIELDS,g as REQUIRED,P as SF_CONFIG_TIMEOUT,L as SF_FIELDS_MAP,u as SF_VERSION};
2
2
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../../src/components/internal/SecuredFields/lib/constants.ts"],"sourcesContent":["import { CVCPolicyType, DatePolicyType } from './types';\n\nexport const ENCRYPTED = 'encrypted';\n\nexport const ENCRYPTED_CARD_NUMBER = 'encryptedCardNumber';\nexport const ENCRYPTED_EXPIRY_DATE = 'encryptedExpiryDate';\nexport const ENCRYPTED_EXPIRY_MONTH = 'encryptedExpiryMonth';\nexport const ENCRYPTED_EXPIRY_YEAR = 'encryptedExpiryYear';\nexport const ENCRYPTED_SECURITY_CODE = 'encryptedSecurityCode';\nexport const ENCRYPTED_PWD_FIELD = 'encryptedPassword';\nexport const ENCRYPTED_PIN_FIELD = 'encryptedPin';\nexport const ENCRYPTED_BANK_ACCNT_NUMBER_FIELD = 'encryptedBankAccountNumber';\nexport const ENCRYPTED_BANK_LOCATION_FIELD = 'encryptedBankLocationId';\n\nexport const ENCRYPTED_SECURITY_CODE_3_DIGITS = 'encryptedSecurityCode3digits';\nexport const ENCRYPTED_SECURITY_CODE_4_DIGITS = 'encryptedSecurityCode4digits';\n\nexport const GIFT_CARD = 'giftcard';\n\nexport const SF_VERSION = '5.3.0';\n\nexport const DEFAULT_CARD_GROUP_TYPES = ['amex', 'mc', 'visa'];\n\nexport const NON_CREDIT_CARD_TYPE_SECURED_FIELDS = ['ach', GIFT_CARD]; // Maybe, sometime in the future will include 'sepa' & 'sepadirectdebit'\n\n// Credit card (CardInput) related securedFields (based on the data-cse attribute)\nexport const CREDIT_CARD_SF_FIELDS = [\n ENCRYPTED_CARD_NUMBER,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_EXPIRY_MONTH,\n ENCRYPTED_EXPIRY_YEAR,\n ENCRYPTED_SECURITY_CODE,\n ENCRYPTED_PWD_FIELD\n // ENCRYPTED_PIN_FIELD,// probably redundant - it was an alt. name for KCP's encryptedPassword. But maybe has a role to play if we ever encrypt ibans.\n];\n\nexport const OTHER_SF_FIELDS = [ENCRYPTED_BANK_ACCNT_NUMBER_FIELD, ENCRYPTED_BANK_LOCATION_FIELD]; // ACH fields\n\n/** A list of all the data-cse attributes that relate to securedFields (as found in card, giftcard or ach) */\nexport const ALL_SECURED_FIELDS = CREDIT_CARD_SF_FIELDS.concat(OTHER_SF_FIELDS);\n\n// Card components created as: checkout.create({BRAND}) e.g. checkout.create('bcmc')\n// - which are dedicated to a single, core, brand e.g. 'bcmc' BUT which can in effect handle multiple brands e.g. \"bcmc\", \"maestro\", \"visa\"\nexport const DEDICATED_CARD_COMPONENTS = ['bcmc'];\n\nexport const REQUIRED = 'required';\nexport const OPTIONAL = 'optional';\nexport const HIDDEN = 'hidden';\n\nexport const CVC_POLICY_REQUIRED: CVCPolicyType = REQUIRED;\nexport const CVC_POLICY_OPTIONAL: CVCPolicyType = OPTIONAL;\nexport const CVC_POLICY_HIDDEN: CVCPolicyType = HIDDEN;\n\nexport const DATE_POLICY_REQUIRED: DatePolicyType = REQUIRED;\nexport const DATE_POLICY_OPTIONAL: DatePolicyType = OPTIONAL;\nexport const DATE_POLICY_HIDDEN: DatePolicyType = HIDDEN;\n\nexport const DATA_ENCRYPTED_FIELD_ATTR = 'data-cse';\nexport const DATA_INFO = 'data-info';\nexport const DATA_UID = 'data-uid';\n\nexport const BRAND_ICON_UI_EXCLUSION_LIST = ['accel', 'pulse', 'star', 'nyce'];\n\nexport const BRAND_READABLE_NAME_MAP = {\n visa: 'VISA',\n mc: 'MasterCard',\n amex: 'American Express',\n discover: 'Discover',\n cup: 'China Union Pay',\n jcb: 'JCB',\n diners: 'Diners Club',\n maestro: 'Maestro',\n bcmc: 'Bancontact card',\n bijcard: 'de Bijenkorf Card'\n};\n\nexport const SF_FIELDS_MAP = {\n [ENCRYPTED_CARD_NUMBER]: 'cardNumber', // ph\n [ENCRYPTED_EXPIRY_DATE]: 'expiryDate', // ph\n [ENCRYPTED_SECURITY_CODE]: 'securityCode',\n [ENCRYPTED_EXPIRY_MONTH]: 'expiryMonth', // ph\n [ENCRYPTED_EXPIRY_YEAR]: 'expiryYear', // ph\n //\n [ENCRYPTED_PWD_FIELD]: 'password',\n [ENCRYPTED_BANK_ACCNT_NUMBER_FIELD]: 'bankAccountNumber',\n [ENCRYPTED_BANK_LOCATION_FIELD]: 'bankLocationId',\n //\n [ENCRYPTED_SECURITY_CODE_3_DIGITS]: 'securityCodeThreeDigits', // ph\n [ENCRYPTED_SECURITY_CODE_4_DIGITS]: 'securityCodeFourDigits' // ph\n};\n\n/** time within which we expect to receive a \"configured\" message from a securedField iframe, once it has registered as having loaded */\nexport const SF_CONFIG_TIMEOUT = 6000;\n"],"names":["ENCRYPTED","ENCRYPTED_CARD_NUMBER","ENCRYPTED_EXPIRY_DATE","ENCRYPTED_EXPIRY_MONTH","ENCRYPTED_EXPIRY_YEAR","ENCRYPTED_SECURITY_CODE","ENCRYPTED_PWD_FIELD","ENCRYPTED_BANK_ACCNT_NUMBER_FIELD","ENCRYPTED_BANK_LOCATION_FIELD","ENCRYPTED_SECURITY_CODE_3_DIGITS","ENCRYPTED_SECURITY_CODE_4_DIGITS","GIFT_CARD","SF_VERSION","DEFAULT_CARD_GROUP_TYPES","NON_CREDIT_CARD_TYPE_SECURED_FIELDS","CREDIT_CARD_SF_FIELDS","OTHER_SF_FIELDS","ALL_SECURED_FIELDS","concat","DEDICATED_CARD_COMPONENTS","REQUIRED","OPTIONAL","HIDDEN","CVC_POLICY_REQUIRED","CVC_POLICY_OPTIONAL","CVC_POLICY_HIDDEN","DATE_POLICY_REQUIRED","DATE_POLICY_OPTIONAL","DATE_POLICY_HIDDEN","DATA_ENCRYPTED_FIELD_ATTR","DATA_INFO","DATA_UID","BRAND_ICON_UI_EXCLUSION_LIST","BRAND_READABLE_NAME_MAP","visa","mc","amex","discover","cup","jcb","diners","maestro","bcmc","bijcard","SF_FIELDS_MAP","SF_CONFIG_TIMEOUT"],"mappings":"AAEO,MAAMA,EAAY,YAEZC,EAAwB,sBACxBC,EAAwB,sBACxBC,EAAyB,uBACzBC,EAAwB,sBACxBC,EAA0B,wBAC1BC,EAAsB,oBAEtBC,EAAoC,6BACpCC,EAAgC,0BAEhCC,EAAmC,+BACnCC,EAAmC,+BAEnCC,EAAY,WAEZC,EAAa,QAEbC,EAA2B,CAAC,OAAQ,KAAM,QAE1CC,EAAsC,CAAC,MAAOH,GAG9CI,EAAwB,CACjCd,EACAC,EACAC,EACAC,EACAC,EACAC,GAISU,EAAkB,CAACT,EAAmCC,GAGtDS,EAAqBF,EAAsBG,OAAOF,GAIlDG,EAA4B,CAAC,QAE7BC,EAAW,WACXC,EAAW,WACXC,EAAS,SAETC,EAAqCH,EACrCI,EAAqCH,EACrCI,EAAmCH,EAEnCI,EAAuCN,EACvCO,EAAuCN,EACvCO,EAAqCN,EAErCO,EAA4B,WAC5BC,EAAY,YACZC,EAAW,WAEXC,EAA+B,CAAC,QAAS,QAAS,OAAQ,QAE1DC,EAA0B,CACnCC,KAAM,OACNC,GAAI,aACJC,KAAM,mBACNC,SAAU,WACVC,IAAK,kBACLC,IAAK,MACLC,OAAQ,cACRC,QAAS,UACTC,KAAM,kBACNC,QAAS,qBAGAC,EAAgB,CACzB3C,CAACA,GAAwB,aACzBC,CAACA,GAAwB,aACzBG,CAACA,GAA0B,eAC3BF,CAACA,GAAyB,cAC1BC,CAACA,GAAwB,aAEzBE,CAACA,GAAsB,WACvBC,CAACA,GAAoC,oBACrCC,CAACA,GAAgC,iBAEjCC,CAACA,GAAmC,0BACpCC,CAACA,GAAmC,0BAI3BmC,EAAoB"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../../../src/components/internal/SecuredFields/lib/constants.ts"],"sourcesContent":["import { CVCPolicyType, DatePolicyType } from './types';\n\nexport const ENCRYPTED = 'encrypted';\n\nexport const ENCRYPTED_CARD_NUMBER = 'encryptedCardNumber';\nexport const ENCRYPTED_EXPIRY_DATE = 'encryptedExpiryDate';\nexport const ENCRYPTED_EXPIRY_MONTH = 'encryptedExpiryMonth';\nexport const ENCRYPTED_EXPIRY_YEAR = 'encryptedExpiryYear';\nexport const ENCRYPTED_SECURITY_CODE = 'encryptedSecurityCode';\nexport const ENCRYPTED_PWD_FIELD = 'encryptedPassword';\nexport const ENCRYPTED_PIN_FIELD = 'encryptedPin';\nexport const ENCRYPTED_BANK_ACCNT_NUMBER_FIELD = 'encryptedBankAccountNumber';\nexport const ENCRYPTED_BANK_LOCATION_FIELD = 'encryptedBankLocationId';\n\nexport const ENCRYPTED_SECURITY_CODE_3_DIGITS = 'encryptedSecurityCode3digits';\nexport const ENCRYPTED_SECURITY_CODE_4_DIGITS = 'encryptedSecurityCode4digits';\n\nexport const GIFT_CARD = 'giftcard';\n\nexport const SF_VERSION = '5.3.1';\n\nexport const DEFAULT_CARD_GROUP_TYPES = ['amex', 'mc', 'visa'];\n\nexport const NON_CREDIT_CARD_TYPE_SECURED_FIELDS = ['ach', GIFT_CARD]; // Maybe, sometime in the future will include 'sepa' & 'sepadirectdebit'\n\n// Credit card (CardInput) related securedFields (based on the data-cse attribute)\nexport const CREDIT_CARD_SF_FIELDS = [\n ENCRYPTED_CARD_NUMBER,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_EXPIRY_MONTH,\n ENCRYPTED_EXPIRY_YEAR,\n ENCRYPTED_SECURITY_CODE,\n ENCRYPTED_PWD_FIELD\n // ENCRYPTED_PIN_FIELD,// probably redundant - it was an alt. name for KCP's encryptedPassword. But maybe has a role to play if we ever encrypt ibans.\n];\n\nexport const OTHER_SF_FIELDS = [ENCRYPTED_BANK_ACCNT_NUMBER_FIELD, ENCRYPTED_BANK_LOCATION_FIELD]; // ACH fields\n\n/** A list of all the data-cse attributes that relate to securedFields (as found in card, giftcard or ach) */\nexport const ALL_SECURED_FIELDS = CREDIT_CARD_SF_FIELDS.concat(OTHER_SF_FIELDS);\n\n// Card components created as: checkout.create({BRAND}) e.g. checkout.create('bcmc')\n// - which are dedicated to a single, core, brand e.g. 'bcmc' BUT which can in effect handle multiple brands e.g. \"bcmc\", \"maestro\", \"visa\"\nexport const DEDICATED_CARD_COMPONENTS = ['bcmc'];\n\nexport const REQUIRED = 'required';\nexport const OPTIONAL = 'optional';\nexport const HIDDEN = 'hidden';\n\nexport const CVC_POLICY_REQUIRED: CVCPolicyType = REQUIRED;\nexport const CVC_POLICY_OPTIONAL: CVCPolicyType = OPTIONAL;\nexport const CVC_POLICY_HIDDEN: CVCPolicyType = HIDDEN;\n\nexport const DATE_POLICY_REQUIRED: DatePolicyType = REQUIRED;\nexport const DATE_POLICY_OPTIONAL: DatePolicyType = OPTIONAL;\nexport const DATE_POLICY_HIDDEN: DatePolicyType = HIDDEN;\n\nexport const DATA_ENCRYPTED_FIELD_ATTR = 'data-cse';\nexport const DATA_INFO = 'data-info';\nexport const DATA_UID = 'data-uid';\n\nexport const BRAND_ICON_UI_EXCLUSION_LIST = ['accel', 'pulse', 'star', 'nyce'];\n\nexport const BRAND_READABLE_NAME_MAP = {\n visa: 'VISA',\n mc: 'MasterCard',\n amex: 'American Express',\n discover: 'Discover',\n cup: 'China Union Pay',\n jcb: 'JCB',\n diners: 'Diners Club',\n maestro: 'Maestro',\n bcmc: 'Bancontact card',\n bijcard: 'de Bijenkorf Card'\n};\n\nexport const SF_FIELDS_MAP = {\n [ENCRYPTED_CARD_NUMBER]: 'cardNumber', // ph\n [ENCRYPTED_EXPIRY_DATE]: 'expiryDate', // ph\n [ENCRYPTED_SECURITY_CODE]: 'securityCode',\n [ENCRYPTED_EXPIRY_MONTH]: 'expiryMonth', // ph\n [ENCRYPTED_EXPIRY_YEAR]: 'expiryYear', // ph\n //\n [ENCRYPTED_PWD_FIELD]: 'password',\n [ENCRYPTED_BANK_ACCNT_NUMBER_FIELD]: 'bankAccountNumber',\n [ENCRYPTED_BANK_LOCATION_FIELD]: 'bankLocationId',\n //\n [ENCRYPTED_SECURITY_CODE_3_DIGITS]: 'securityCodeThreeDigits', // ph\n [ENCRYPTED_SECURITY_CODE_4_DIGITS]: 'securityCodeFourDigits' // ph\n};\n\n/** time within which we expect to receive a \"configured\" message from a securedField iframe, once it has registered as having loaded */\nexport const SF_CONFIG_TIMEOUT = 6000;\n"],"names":["ENCRYPTED","ENCRYPTED_CARD_NUMBER","ENCRYPTED_EXPIRY_DATE","ENCRYPTED_EXPIRY_MONTH","ENCRYPTED_EXPIRY_YEAR","ENCRYPTED_SECURITY_CODE","ENCRYPTED_PWD_FIELD","ENCRYPTED_BANK_ACCNT_NUMBER_FIELD","ENCRYPTED_BANK_LOCATION_FIELD","ENCRYPTED_SECURITY_CODE_3_DIGITS","ENCRYPTED_SECURITY_CODE_4_DIGITS","GIFT_CARD","SF_VERSION","DEFAULT_CARD_GROUP_TYPES","NON_CREDIT_CARD_TYPE_SECURED_FIELDS","CREDIT_CARD_SF_FIELDS","OTHER_SF_FIELDS","ALL_SECURED_FIELDS","concat","DEDICATED_CARD_COMPONENTS","REQUIRED","OPTIONAL","HIDDEN","CVC_POLICY_REQUIRED","CVC_POLICY_OPTIONAL","CVC_POLICY_HIDDEN","DATE_POLICY_REQUIRED","DATE_POLICY_OPTIONAL","DATE_POLICY_HIDDEN","DATA_ENCRYPTED_FIELD_ATTR","DATA_INFO","DATA_UID","BRAND_ICON_UI_EXCLUSION_LIST","BRAND_READABLE_NAME_MAP","visa","mc","amex","discover","cup","jcb","diners","maestro","bcmc","bijcard","SF_FIELDS_MAP","SF_CONFIG_TIMEOUT"],"mappings":"AAEO,MAAMA,EAAY,YAEZC,EAAwB,sBACxBC,EAAwB,sBACxBC,EAAyB,uBACzBC,EAAwB,sBACxBC,EAA0B,wBAC1BC,EAAsB,oBAEtBC,EAAoC,6BACpCC,EAAgC,0BAEhCC,EAAmC,+BACnCC,EAAmC,+BAEnCC,EAAY,WAEZC,EAAa,QAEbC,EAA2B,CAAC,OAAQ,KAAM,QAE1CC,EAAsC,CAAC,MAAOH,GAG9CI,EAAwB,CACjCd,EACAC,EACAC,EACAC,EACAC,EACAC,GAISU,EAAkB,CAACT,EAAmCC,GAGtDS,EAAqBF,EAAsBG,OAAOF,GAIlDG,EAA4B,CAAC,QAE7BC,EAAW,WACXC,EAAW,WACXC,EAAS,SAETC,EAAqCH,EACrCI,EAAqCH,EACrCI,EAAmCH,EAEnCI,EAAuCN,EACvCO,EAAuCN,EACvCO,EAAqCN,EAErCO,EAA4B,WAC5BC,EAAY,YACZC,EAAW,WAEXC,EAA+B,CAAC,QAAS,QAAS,OAAQ,QAE1DC,EAA0B,CACnCC,KAAM,OACNC,GAAI,aACJC,KAAM,mBACNC,SAAU,WACVC,IAAK,kBACLC,IAAK,MACLC,OAAQ,cACRC,QAAS,UACTC,KAAM,kBACNC,QAAS,qBAGAC,EAAgB,CACzB3C,CAACA,GAAwB,aACzBC,CAACA,GAAwB,aACzBG,CAACA,GAA0B,eAC3BF,CAACA,GAAyB,cAC1BC,CAACA,GAAwB,aAEzBE,CAACA,GAAsB,WACvBC,CAACA,GAAoC,oBACrCC,CAACA,GAAgC,iBAEjCC,CAACA,GAAmC,0BACpCC,CAACA,GAAmC,0BAI3BmC,EAAoB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SecuredField.js","sources":["../../../../../../../src/components/internal/SecuredFields/lib/securedField/SecuredField.ts"],"sourcesContent":["import * as logger from '../utilities/logger';\nimport createIframe from './utils/createIframe';\nimport { removeAllChildren, selectOne } from '../utilities/dom';\nimport { off, on } from '../../../../../utils/listenerUtils';\nimport postMessageToIframe from '../CSF/utils/iframes/postMessageToIframe';\nimport { isChromeVoxPostMsg, isWebpackPostMsg, originCheckPassed } from '../CSF/utils/iframes/postMessageValidation';\nimport {\n CVC_POLICY_HIDDEN,\n CVC_POLICY_OPTIONAL,\n DATE_POLICY_HIDDEN,\n DATE_POLICY_OPTIONAL,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_EXPIRY_MONTH,\n ENCRYPTED_EXPIRY_YEAR,\n ENCRYPTED_SECURITY_CODE\n} from '../constants';\nimport { generateRandomNumber } from '../utilities/commonUtils';\nimport { CVCPolicyType, DatePolicyType, RtnType_callbackFn, RtnType_noParamVoidFn, RtnType_postMessageListener, SFFeedbackObj } from '../types';\nimport AbstractSecuredField from './AbstractSecuredField';\nimport { AriaConfig, IframeConfigObject, SecuredFieldSetupObject, SecuredFieldCommonProps } from '../types';\nimport { reject } from '../../../../../utils/commonUtils';\nimport { processAriaConfig } from './utils/processAriaConfig';\nimport { processPlaceholders } from './utils/processPlaceholders';\nimport Language from '../../../../../language/Language';\nimport { hasOwnProperty } from '../../../../../utils/hasOwnProperty';\nimport { Placeholders } from '../../SFP/types';\nimport './SecuredField.scss';\n\nconst logPostMsg = false;\nconst doLog = false;\n\nclass SecuredField extends AbstractSecuredField {\n constructor(pSetupObj: SecuredFieldSetupObject, i18n: Language) {\n super();\n\n /**\n * List of props to exclude from being set on this.sfConfig.\n * These props are only required for internal purposes. They do not get sent to the iframe\n */\n const deltaPropsArr: string[] = ['loadingContext', 'holderEl', 'iframeSrc', 'showContextualElement', 'placeholders'];\n\n /**\n * List of props from setup object that will be set on this.sfConfig\n * These props will all end up being sent to the iframe\n */\n const configVarsFromSetUpObj = reject(deltaPropsArr).from(pSetupObj);\n\n // Copy passed setup object values to this.sfConfig\n this.sfConfig = {\n // ...this.sfConfig, // Do we need to do this? Pretty sure we don't\n ...configVarsFromSetUpObj,\n // Break references on iframeUIConfig object so we can overwrite its properties in each securedField instance\n iframeUIConfig: { ...configVarsFromSetUpObj.iframeUIConfig }\n } as SecuredFieldCommonProps;\n\n /**\n * Extract values only needed for init\n */\n const { iframeSrc, placeholders, showContextualElement } = pSetupObj;\n\n /**\n * Store those passed setup object values that are needed in multiple functions\n */\n this.loadingContext = pSetupObj.loadingContext;\n this.holderEl = pSetupObj.holderEl;\n\n /**\n * Initiate other values on 'this' through setters\n */\n this.isValid = false;\n this.iframeContentWindow = null;\n this.numKey = generateRandomNumber();\n this.isEncrypted = false;\n this.hasError = false;\n this.errorType = '';\n this.cvcPolicy = pSetupObj.cvcPolicy;\n this.expiryDatePolicy = pSetupObj.expiryDatePolicy;\n\n if (process.env.NODE_ENV === 'development' && doLog) {\n logger.log(\n '### SecuredField::constructor:: this.sfConfig.fieldType=',\n this.sfConfig.fieldType,\n 'isValid=',\n this._isValid,\n 'numKey=',\n this.numKey\n );\n logger.log('\\n');\n }\n\n return this.init(i18n, iframeSrc, placeholders, showContextualElement);\n }\n\n init(i18n: Language, iframeSrc: string, placeholders: Placeholders, showContextualElement: boolean): SecuredField {\n /**\n * Ensure all fields have a related ariaConfig object containing, at minimum, an iframeTitle property and a (translated) errors object\n */\n const processedAriaConfig: AriaConfig = processAriaConfig(this.sfConfig.txVariant, this.sfConfig.fieldType, i18n, showContextualElement);\n // Set result back onto config object\n this.sfConfig.iframeUIConfig.ariaConfig = processedAriaConfig;\n\n // Set result back onto config object\n this.sfConfig.iframeUIConfig.placeholders = processPlaceholders(this.sfConfig.txVariant, this.sfConfig.fieldType, placeholders);\n\n /**\n * Configure, create & reference iframe and add load listener\n */\n const iframeConfig = {\n src: iframeSrc,\n title: processedAriaConfig[this.sfConfig.fieldType].iframeTitle,\n policy: 'origin'\n };\n\n const iframeEl: HTMLIFrameElement = createIframe(iframeConfig);\n\n // Place the iframe into the holder\n this.holderEl.appendChild(iframeEl);\n\n // Now examine the holder to get an actual DOM node\n const iframe: HTMLIFrameElement = selectOne(this.holderEl, '.js-iframe');\n\n if (iframe) {\n this.iframeContentWindow = iframe.contentWindow;\n\n // Create reference to bound fn (see getters/setters for binding)\n this.iframeOnLoadListener = this.iframeOnLoadListenerFn;\n\n on(iframe, 'load', this.iframeOnLoadListener, false);\n }\n\n this.iframeRef = iframe;\n\n return this;\n }\n\n iframeOnLoadListenerFn(): void {\n // Create reference to bound fn (see getters/setters for binding)\n this.postMessageListener = this.postMessageListenerFn;\n\n // Add general listener for 'message' EVENT - the event that 'powers' postMessage\n on(window, 'message', this.postMessageListener, false);\n\n // Create and send config object to iframe\n const configObj: IframeConfigObject = {\n ...this.sfConfig,\n numKey: this.numKey\n };\n\n if (window._b$dl) console.log('### SecuredField:::: onIframeLoaded:: created configObj=', configObj);\n\n postMessageToIframe(configObj, this.iframeContentWindow, this.loadingContext);\n //--\n\n // Callback to say iframe loaded\n this.onIframeLoadedCallback();\n }\n\n postMessageListenerFn(event: MessageEvent): void {\n // Check message is from expected domain\n if (!originCheckPassed(event, this.loadingContext, this.sfConfig.showWarnings)) {\n return;\n }\n\n // TODO - for debugging purposes this would always be useful to see\n // logger.log('\\n',this.sfConfig.fieldType,'### CSF SecuredField::postMessageListener:: event.data=',event.data);\n\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log(\n '\\n###CSF SecuredField::postMessageListener:: DOMAIN & ORIGIN MATCH, NO WEBPACK WEIRDNESS fieldType=',\n this.sfConfig.fieldType,\n 'txVariant=',\n this.sfConfig.txVariant,\n 'this.numKey=',\n this.numKey\n );\n }\n\n // PARSE DATA OBJECT (thus testing if it is a JSON string) - OR TRY & WORK OUT WHY THE PARSING FAILED\n let feedbackObj: SFFeedbackObj;\n\n try {\n feedbackObj = JSON.parse(event.data);\n } catch (e) {\n // Was the message generated by webpack?\n if (isWebpackPostMsg(event)) {\n if (this.sfConfig.showWarnings) logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - WEBPACK');\n return;\n }\n\n // Was the message generated by ChromeVox?\n if (isChromeVoxPostMsg(event)) {\n if (this.sfConfig.showWarnings) logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - CHROMEVOX');\n return;\n }\n\n if (this.sfConfig.showWarnings)\n logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - UNKNOWN REASON: event.data=', event.data);\n return;\n }\n\n // CHECK FOR EXPECTED PROPS\n const hasMainProps: boolean = hasOwnProperty(feedbackObj, 'action') && hasOwnProperty(feedbackObj, 'numKey');\n\n if (!hasMainProps) {\n if (this.sfConfig.showWarnings) logger.warn('WARNING SecuredField :: postMessage listener for iframe :: data mismatch!');\n return;\n }\n\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log('### SecuredField::postMessageListener:: feedbackObj.numKey=', feedbackObj.numKey);\n }\n\n if (this.numKey !== feedbackObj.numKey) {\n if (this.sfConfig.showWarnings) {\n logger.warn(\n 'WARNING SecuredField :: postMessage listener for iframe :: data mismatch! (Probably a message from an unrelated securedField)'\n );\n }\n return;\n }\n\n // VALIDATION CHECKS PASSED - DECIDE ON COURSE OF ACTION\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log(\n '### SecuredField::postMessageListener:: numkeys match PROCEED WITH POST MESSAGE PROCESSING fieldType=',\n this.sfConfig.fieldType,\n 'txVariant=',\n this.sfConfig.txVariant\n );\n }\n\n switch (feedbackObj.action) {\n case 'encryption':\n this.isValid = true;\n this.onEncryptionCallback(feedbackObj);\n break;\n\n case 'config':\n if (window._b$dl)\n console.log('### SecuredField::postMessageListenerFn:: configured - calling onConfigCallback', feedbackObj.fieldType);\n this.onConfigCallback(feedbackObj);\n break;\n\n case 'focus':\n this.onFocusCallback(feedbackObj);\n\n // HORRIBLE HORRIBLE HACK to get round bug in TestCafe - see comment on 3rd test in packages/e2e/tests/cards/branding/branding.test.js\n if (process.env.NODE_ENV === 'development' && window.location.origin.indexOf('3024') > -1) {\n if (window['testCafeForceClick'] === true) {\n window['testCafeForceClick'] = false;\n this.onTouchstartCallback(feedbackObj);\n }\n }\n break;\n\n case 'binValue':\n this.onBinValueCallback(feedbackObj);\n break;\n\n // iOS ONLY - RE. iOS BUGS AROUND BLUR AND FOCUS EVENTS\n case 'touch':\n this.onTouchstartCallback(feedbackObj);\n break;\n\n // Only happens for Firefox & IE <= 11\n case 'shifttab':\n this.onShiftTabCallback(feedbackObj);\n break;\n\n case 'autoComplete':\n this.onAutoCompleteCallback(feedbackObj);\n break;\n\n case 'enterKeyPressed':\n this.onKeyPressedCallback(feedbackObj);\n break;\n\n /**\n * Validate, because action =\n *\n * 'brand'\n * 'delete'\n * 'luhnCheck'\n * //'incomplete field' (an error that follows from a focus (blur) event)\n * 'incorrectly filled field' (an error that follows from a focus (blur) event) // NEW\n * 'numberKeyPressed' (or date-, month-, year-, cvc-, pin-, or iban- KeyPressed)\n * - since we have no \"error\" action \"...KeyPressed\" is the action type on most error events (other than \"incomplete field\" or \"luhnCheck\")\n * and often these error events representing the clearing of an existing error\n */\n default:\n // If we're validation handling (& not encryption handling) field must be invalid\n this.isValid = false;\n this.onValidationCallback(feedbackObj);\n }\n }\n\n destroy(): void {\n off(window, 'message', this.postMessageListener, false);\n off(this.iframeRef, 'load', this.iframeOnLoadListener, false);\n this.iframeContentWindow = null;\n removeAllChildren(this.holderEl);\n }\n\n /**\n * Returns whether the securedField is hidden OR whether it is optional and not in error\n */\n isOptionalOrHidden(): boolean {\n if (\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_DATE ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_MONTH ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_YEAR\n ) {\n switch (this.expiryDatePolicy) {\n case DATE_POLICY_HIDDEN:\n return true;\n case DATE_POLICY_OPTIONAL:\n return !this.hasError;\n default:\n return false;\n }\n }\n\n if (this.sfConfig.fieldType === ENCRYPTED_SECURITY_CODE) {\n switch (this.cvcPolicy) {\n case CVC_POLICY_HIDDEN:\n return true;\n case CVC_POLICY_OPTIONAL:\n return !this.hasError;\n default:\n return false;\n }\n }\n\n // Any other type of securedField is not optional & can't be hidden\n return false;\n }\n\n // /////// ALLOCATE CALLBACKS /////////\n onIframeLoaded(callbackFn: RtnType_noParamVoidFn): SecuredField {\n this.onIframeLoadedCallback = callbackFn;\n return this;\n }\n\n onEncryption(callbackFn: RtnType_callbackFn): SecuredField {\n this.onEncryptionCallback = callbackFn;\n return this;\n }\n\n onValidation(callbackFn: RtnType_callbackFn): SecuredField {\n this.onValidationCallback = callbackFn;\n return this;\n }\n\n onConfig(callbackFn: RtnType_callbackFn): SecuredField {\n this.onConfigCallback = callbackFn;\n return this;\n }\n\n onFocus(callbackFn: RtnType_callbackFn): SecuredField {\n this.onFocusCallback = callbackFn;\n return this;\n }\n\n onBinValue(callbackFn: RtnType_callbackFn): SecuredField {\n this.onBinValueCallback = callbackFn;\n return this;\n }\n\n onTouchstart(callbackFn: RtnType_callbackFn): SecuredField {\n this.onTouchstartCallback = callbackFn;\n return this;\n }\n\n onShiftTab(callbackFn: RtnType_callbackFn): SecuredField {\n this.onShiftTabCallback = callbackFn;\n return this;\n }\n\n onAutoComplete(callbackFn: RtnType_callbackFn): SecuredField {\n this.onAutoCompleteCallback = callbackFn;\n return this;\n }\n\n onKeyPressed(callbackFn: RtnType_callbackFn): SecuredField {\n this.onKeyPressedCallback = callbackFn;\n return this;\n }\n //------------------------------------\n\n // ///////////// GETTERS/SETTERS //////////////\n\n get errorType(): string {\n return this._errorType;\n }\n set errorType(value: string) {\n this._errorType = value;\n }\n\n get hasError(): boolean {\n return this._hasError;\n }\n set hasError(value: boolean) {\n this._hasError = value;\n }\n\n get isValid(): boolean {\n if (this.sfConfig.fieldType === ENCRYPTED_SECURITY_CODE) {\n switch (this.cvcPolicy) {\n case CVC_POLICY_HIDDEN:\n // If cvc is hidden then the field is always valid\n return true;\n case CVC_POLICY_OPTIONAL:\n // If cvc is optional then the field is always valid UNLESS it has an error\n return !this.hasError;\n default:\n return this._isValid;\n }\n }\n\n if (\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_DATE ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_MONTH ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_YEAR\n ) {\n switch (this.expiryDatePolicy) {\n case DATE_POLICY_HIDDEN:\n // If date is hidden then the field is always valid\n return true;\n case DATE_POLICY_OPTIONAL:\n // If date is optional then the field is always valid UNLESS it has an error\n return !this.hasError;\n default:\n return this._isValid;\n }\n }\n\n return this._isValid;\n }\n set isValid(value: boolean) {\n this._isValid = value;\n }\n\n get cvcPolicy(): CVCPolicyType {\n return this._cvcPolicy;\n }\n\n set cvcPolicy(value: CVCPolicyType) {\n // Only set if this is a CVC field\n if (this.sfConfig.fieldType !== ENCRYPTED_SECURITY_CODE) return;\n\n // Only set if value has changed\n if (value === this.cvcPolicy) return;\n\n if (process.env.NODE_ENV === 'development' && doLog) logger.log(this.sfConfig.fieldType, '### SecuredField::cvcPolicy:: value=', value);\n\n this._cvcPolicy = value;\n\n // If the field has changed status (required <--> not required) AND it's error state was due to an isValidated call\n // NOTE: fixes issue in Components where you first validate and then start typing a maestro number\n // - w/o this and the fix in CSF the maestro PM will never register as valid\n if (this.hasError && this.errorType === 'isValidated') {\n this.hasError = false;\n }\n }\n\n get expiryDatePolicy(): DatePolicyType {\n return this._expiryDatePolicy;\n }\n\n set expiryDatePolicy(value: DatePolicyType) {\n // Only set if this is a date field type of securedField\n if (\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_DATE &&\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_MONTH &&\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_YEAR\n )\n return;\n\n // Only set if value has changed\n if (value === this.expiryDatePolicy) return;\n\n if (process.env.NODE_ENV === 'development' && doLog) logger.log(this.sfConfig.fieldType, '### SecuredField:expiryDatePolicy:: value=', value);\n\n this._expiryDatePolicy = value;\n\n // If the field has changed status (required <--> not required) AND it's error state was due to an isValidated call\n if (this.hasError && this.errorType === 'isValidated') {\n this.hasError = false;\n }\n }\n\n get iframeContentWindow(): Window {\n return this._iframeContentWindow;\n }\n set iframeContentWindow(value: Window) {\n this._iframeContentWindow = value;\n }\n\n get isEncrypted(): boolean {\n return this._isEncrypted;\n }\n set isEncrypted(value: boolean) {\n this._isEncrypted = value;\n }\n\n get numKey(): number {\n return this._numKey;\n }\n set numKey(value: number) {\n this._numKey = value;\n }\n\n // Internal use - way to create listener refs that we can add/remove\n get iframeOnLoadListener(): RtnType_noParamVoidFn {\n return this._iframeOnLoadListener;\n }\n set iframeOnLoadListener(value: RtnType_noParamVoidFn) {\n this._iframeOnLoadListener = value.bind(this);\n }\n\n get postMessageListener(): RtnType_postMessageListener {\n return this._postMessageListener;\n }\n set postMessageListener(value: RtnType_postMessageListener) {\n this._postMessageListener = value.bind(this);\n }\n}\n\nexport default SecuredField;\n"],"names":["SecuredField","AbstractSecuredField","init","i18n","iframeSrc","placeholders","showContextualElement","processedAriaConfig","processAriaConfig","this","sfConfig","txVariant","fieldType","iframeUIConfig","ariaConfig","processPlaceholders","iframeConfig","src","title","iframeTitle","policy","iframeEl","createIframe","holderEl","appendChild","iframe","selectOne","iframeContentWindow","contentWindow","iframeOnLoadListener","iframeOnLoadListenerFn","on","iframeRef","postMessageListener","postMessageListenerFn","window","configObj","_object_spread_props","_object_spread","numKey","_b$dl","console","log","postMessageToIframe","loadingContext","onIframeLoadedCallback","event","originCheckPassed","showWarnings","feedbackObj","JSON","parse","data","e","isWebpackPostMsg","logger","isChromeVoxPostMsg","hasOwnProperty","action","isValid","onEncryptionCallback","onConfigCallback","onFocusCallback","onBinValueCallback","onTouchstartCallback","onShiftTabCallback","onAutoCompleteCallback","onKeyPressedCallback","onValidationCallback","destroy","off","removeAllChildren","isOptionalOrHidden","ENCRYPTED_EXPIRY_DATE","ENCRYPTED_EXPIRY_MONTH","ENCRYPTED_EXPIRY_YEAR","expiryDatePolicy","DATE_POLICY_HIDDEN","DATE_POLICY_OPTIONAL","hasError","ENCRYPTED_SECURITY_CODE","cvcPolicy","CVC_POLICY_HIDDEN","CVC_POLICY_OPTIONAL","onIframeLoaded","callbackFn","onEncryption","onValidation","onConfig","onFocus","onBinValue","onTouchstart","onShiftTab","onAutoComplete","onKeyPressed","errorType","_errorType","value","_hasError","_isValid","_cvcPolicy","_expiryDatePolicy","_iframeContentWindow","isEncrypted","_isEncrypted","_numKey","_iframeOnLoadListener","bind","_postMessageListener","constructor","pSetupObj","super","configVarsFromSetUpObj","reject","from","generateRandomNumber"],"mappings":"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"}
1
+ {"version":3,"file":"SecuredField.js","sources":["../../../../../../../src/components/internal/SecuredFields/lib/securedField/SecuredField.ts"],"sourcesContent":["import * as logger from '../utilities/logger';\nimport createIframe from './utils/createIframe';\nimport { removeAllChildren, selectOne } from '../utilities/dom';\nimport { off, on } from '../../../../../utils/listenerUtils';\nimport postMessageToIframe from '../CSF/utils/iframes/postMessageToIframe';\nimport { isChromeVoxPostMsg, isWebpackPostMsg, originCheckPassed } from '../CSF/utils/iframes/postMessageValidation';\nimport {\n CVC_POLICY_HIDDEN,\n CVC_POLICY_OPTIONAL,\n DATE_POLICY_HIDDEN,\n DATE_POLICY_OPTIONAL,\n ENCRYPTED_EXPIRY_DATE,\n ENCRYPTED_EXPIRY_MONTH,\n ENCRYPTED_EXPIRY_YEAR,\n ENCRYPTED_SECURITY_CODE\n} from '../constants';\nimport { generateRandomNumber } from '../utilities/commonUtils';\nimport { CVCPolicyType, DatePolicyType, RtnType_callbackFn, RtnType_noParamVoidFn, RtnType_postMessageListener, SFFeedbackObj } from '../types';\nimport AbstractSecuredField from './AbstractSecuredField';\nimport { AriaConfig, IframeConfigObject, SecuredFieldSetupObject, SecuredFieldCommonProps } from '../types';\nimport { reject } from '../../../../../utils/commonUtils';\nimport { processAriaConfig } from './utils/processAriaConfig';\nimport { processPlaceholders } from './utils/processPlaceholders';\nimport Language from '../../../../../language/Language';\nimport { hasOwnProperty } from '../../../../../utils/hasOwnProperty';\nimport { Placeholders } from '../../SFP/types';\nimport './SecuredField.scss';\n\nconst logPostMsg = false;\nconst doLog = false;\n\nclass SecuredField extends AbstractSecuredField {\n constructor(pSetupObj: SecuredFieldSetupObject, i18n: Language) {\n super();\n\n /**\n * List of props to exclude from being set on this.sfConfig.\n * These props are only required for internal purposes. They do not get sent to the iframe\n */\n const deltaPropsArr: string[] = ['loadingContext', 'holderEl', 'iframeSrc', 'showContextualElement', 'placeholders'];\n\n /**\n * List of props from setup object that will be set on this.sfConfig\n * These props will all end up being sent to the iframe\n */\n const configVarsFromSetUpObj = reject(deltaPropsArr).from(pSetupObj);\n\n // Copy passed setup object values to this.sfConfig\n this.sfConfig = {\n // ...this.sfConfig, // Do we need to do this? Pretty sure we don't\n ...configVarsFromSetUpObj,\n // Break references on iframeUIConfig object so we can overwrite its properties in each securedField instance\n iframeUIConfig: { ...configVarsFromSetUpObj.iframeUIConfig }\n } as SecuredFieldCommonProps;\n\n /**\n * Extract values only needed for init\n */\n const { iframeSrc, placeholders, showContextualElement } = pSetupObj;\n\n /**\n * Store those passed setup object values that are needed in multiple functions\n */\n this.loadingContext = pSetupObj.loadingContext;\n this.holderEl = pSetupObj.holderEl;\n\n /**\n * Initiate other values on 'this' through setters\n */\n this.isValid = false;\n this.iframeContentWindow = null;\n this.numKey = generateRandomNumber();\n this.isEncrypted = false;\n this.hasError = false;\n this.errorType = '';\n this.cvcPolicy = pSetupObj.cvcPolicy;\n this.expiryDatePolicy = pSetupObj.expiryDatePolicy;\n\n if (process.env.NODE_ENV === 'development' && doLog) {\n logger.log(\n '### SecuredField::constructor:: this.sfConfig.fieldType=',\n this.sfConfig.fieldType,\n 'isValid=',\n this._isValid,\n 'numKey=',\n this.numKey\n );\n logger.log('\\n');\n }\n\n return this.init(i18n, iframeSrc, placeholders, showContextualElement);\n }\n\n init(i18n: Language, iframeSrc: string, placeholders: Placeholders, showContextualElement: boolean): SecuredField {\n /**\n * Ensure all fields have a related ariaConfig object containing, at minimum, an iframeTitle property and a (translated) errors object\n */\n const processedAriaConfig: AriaConfig = processAriaConfig(this.sfConfig.txVariant, this.sfConfig.fieldType, i18n, showContextualElement);\n // Set result back onto config object\n this.sfConfig.iframeUIConfig.ariaConfig = processedAriaConfig;\n\n // Set result back onto config object\n this.sfConfig.iframeUIConfig.placeholders = processPlaceholders(this.sfConfig.txVariant, this.sfConfig.fieldType, placeholders);\n\n /**\n * Configure, create & reference iframe and add load listener\n */\n const iframeConfig = {\n src: iframeSrc,\n title: processedAriaConfig[this.sfConfig.fieldType].iframeTitle,\n policy: 'origin'\n };\n\n const iframeEl: HTMLIFrameElement = createIframe(iframeConfig);\n\n // Place the iframe into the holder\n this.holderEl.appendChild(iframeEl);\n\n // Now examine the holder to get an actual DOM node\n const iframe: HTMLIFrameElement = selectOne(this.holderEl, '.js-iframe');\n\n if (iframe) {\n this.iframeContentWindow = iframe.contentWindow;\n\n // Create reference to bound fn (see getters/setters for binding)\n this.iframeOnLoadListener = this.iframeOnLoadListenerFn;\n\n on(iframe, 'load', this.iframeOnLoadListener, false);\n }\n\n this.iframeRef = iframe;\n\n return this;\n }\n\n iframeOnLoadListenerFn(): void {\n // Create reference to bound fn (see getters/setters for binding)\n this.postMessageListener = this.postMessageListenerFn;\n\n // Add general listener for 'message' EVENT - the event that 'powers' postMessage\n on(window, 'message', this.postMessageListener, false);\n\n // Create and send config object to iframe\n const configObj: IframeConfigObject = {\n ...this.sfConfig,\n numKey: this.numKey\n };\n\n if (window._b$dl) console.log('### SecuredField:::: onIframeLoaded:: created configObj=', configObj);\n\n postMessageToIframe(configObj, this.iframeContentWindow, this.loadingContext);\n //--\n\n // Callback to say iframe loaded\n this.onIframeLoadedCallback();\n }\n\n postMessageListenerFn(event: MessageEvent): void {\n // Check message is from expected domain\n if (!originCheckPassed(event, this.loadingContext, this.sfConfig.showWarnings)) {\n return;\n }\n\n // TODO - for debugging purposes this would always be useful to see\n // logger.log('\\n',this.sfConfig.fieldType,'### CSF SecuredField::postMessageListener:: event.data=',event.data);\n\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log(\n '\\n###CSF SecuredField::postMessageListener:: DOMAIN & ORIGIN MATCH, NO WEBPACK WEIRDNESS fieldType=',\n this.sfConfig.fieldType,\n 'txVariant=',\n this.sfConfig.txVariant,\n 'this.numKey=',\n this.numKey\n );\n }\n\n // PARSE DATA OBJECT (thus testing if it is a JSON string) - OR TRY & WORK OUT WHY THE PARSING FAILED\n let feedbackObj: SFFeedbackObj;\n\n try {\n feedbackObj = JSON.parse(event.data);\n } catch (e) {\n // Was the message generated by webpack?\n if (isWebpackPostMsg(event)) {\n if (this.sfConfig.showWarnings) logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - WEBPACK');\n return;\n }\n\n // Was the message generated by ChromeVox?\n if (isChromeVoxPostMsg(event)) {\n if (this.sfConfig.showWarnings) logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - CHROMEVOX');\n return;\n }\n\n if (this.sfConfig.showWarnings)\n logger.log('### SecuredField::postMessageListenerFn:: PARSE FAIL - UNKNOWN REASON: event.data=', event.data);\n return;\n }\n\n // CHECK FOR EXPECTED PROPS\n const hasMainProps: boolean = hasOwnProperty(feedbackObj, 'action') && hasOwnProperty(feedbackObj, 'numKey');\n\n if (!hasMainProps) {\n if (this.sfConfig.showWarnings) logger.warn('WARNING SecuredField :: postMessage listener for iframe :: data mismatch!');\n return;\n }\n\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log('### SecuredField::postMessageListener:: feedbackObj.numKey=', feedbackObj.numKey);\n }\n\n if (this.numKey !== feedbackObj.numKey) {\n if (this.sfConfig.showWarnings) {\n logger.warn(\n 'WARNING SecuredField :: postMessage listener for iframe :: data mismatch! (Probably a message from an unrelated securedField)'\n );\n }\n return;\n }\n\n // VALIDATION CHECKS PASSED - DECIDE ON COURSE OF ACTION\n if (process.env.NODE_ENV === 'development' && logPostMsg) {\n logger.log(\n '### SecuredField::postMessageListener:: numkeys match PROCEED WITH POST MESSAGE PROCESSING fieldType=',\n this.sfConfig.fieldType,\n 'txVariant=',\n this.sfConfig.txVariant\n );\n }\n\n switch (feedbackObj.action) {\n case 'encryption':\n this.isValid = true;\n this.onEncryptionCallback(feedbackObj);\n break;\n\n case 'config':\n if (window._b$dl)\n console.log('### SecuredField::postMessageListenerFn:: configured - calling onConfigCallback', feedbackObj.fieldType);\n this.onConfigCallback(feedbackObj);\n break;\n\n case 'focus':\n this.onFocusCallback(feedbackObj);\n break;\n\n case 'binValue':\n this.onBinValueCallback(feedbackObj);\n break;\n\n // iOS ONLY - RE. iOS BUGS AROUND BLUR AND FOCUS EVENTS\n case 'touch':\n this.onTouchstartCallback(feedbackObj);\n break;\n\n // Only happens for Firefox & IE <= 11\n case 'shifttab':\n this.onShiftTabCallback(feedbackObj);\n break;\n\n case 'autoComplete':\n this.onAutoCompleteCallback(feedbackObj);\n break;\n\n case 'enterKeyPressed':\n this.onKeyPressedCallback(feedbackObj);\n break;\n\n /**\n * Validate, because action =\n *\n * 'brand'\n * 'delete'\n * 'luhnCheck'\n * //'incomplete field' (an error that follows from a focus (blur) event)\n * 'incorrectly filled field' (an error that follows from a focus (blur) event) // NEW\n * 'numberKeyPressed' (or date-, month-, year-, cvc-, pin-, or iban- KeyPressed)\n * - since we have no \"error\" action \"...KeyPressed\" is the action type on most error events (other than \"incomplete field\" or \"luhnCheck\")\n * and often these error events representing the clearing of an existing error\n */\n default:\n // If we're validation handling (& not encryption handling) field must be invalid\n this.isValid = false;\n this.onValidationCallback(feedbackObj);\n }\n }\n\n destroy(): void {\n off(window, 'message', this.postMessageListener, false);\n off(this.iframeRef, 'load', this.iframeOnLoadListener, false);\n this.iframeContentWindow = null;\n removeAllChildren(this.holderEl);\n }\n\n /**\n * Returns whether the securedField is hidden OR whether it is optional and not in error\n */\n isOptionalOrHidden(): boolean {\n if (\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_DATE ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_MONTH ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_YEAR\n ) {\n switch (this.expiryDatePolicy) {\n case DATE_POLICY_HIDDEN:\n return true;\n case DATE_POLICY_OPTIONAL:\n return !this.hasError;\n default:\n return false;\n }\n }\n\n if (this.sfConfig.fieldType === ENCRYPTED_SECURITY_CODE) {\n switch (this.cvcPolicy) {\n case CVC_POLICY_HIDDEN:\n return true;\n case CVC_POLICY_OPTIONAL:\n return !this.hasError;\n default:\n return false;\n }\n }\n\n // Any other type of securedField is not optional & can't be hidden\n return false;\n }\n\n // /////// ALLOCATE CALLBACKS /////////\n onIframeLoaded(callbackFn: RtnType_noParamVoidFn): SecuredField {\n this.onIframeLoadedCallback = callbackFn;\n return this;\n }\n\n onEncryption(callbackFn: RtnType_callbackFn): SecuredField {\n this.onEncryptionCallback = callbackFn;\n return this;\n }\n\n onValidation(callbackFn: RtnType_callbackFn): SecuredField {\n this.onValidationCallback = callbackFn;\n return this;\n }\n\n onConfig(callbackFn: RtnType_callbackFn): SecuredField {\n this.onConfigCallback = callbackFn;\n return this;\n }\n\n onFocus(callbackFn: RtnType_callbackFn): SecuredField {\n this.onFocusCallback = callbackFn;\n return this;\n }\n\n onBinValue(callbackFn: RtnType_callbackFn): SecuredField {\n this.onBinValueCallback = callbackFn;\n return this;\n }\n\n onTouchstart(callbackFn: RtnType_callbackFn): SecuredField {\n this.onTouchstartCallback = callbackFn;\n return this;\n }\n\n onShiftTab(callbackFn: RtnType_callbackFn): SecuredField {\n this.onShiftTabCallback = callbackFn;\n return this;\n }\n\n onAutoComplete(callbackFn: RtnType_callbackFn): SecuredField {\n this.onAutoCompleteCallback = callbackFn;\n return this;\n }\n\n onKeyPressed(callbackFn: RtnType_callbackFn): SecuredField {\n this.onKeyPressedCallback = callbackFn;\n return this;\n }\n //------------------------------------\n\n // ///////////// GETTERS/SETTERS //////////////\n\n get errorType(): string {\n return this._errorType;\n }\n set errorType(value: string) {\n this._errorType = value;\n }\n\n get hasError(): boolean {\n return this._hasError;\n }\n set hasError(value: boolean) {\n this._hasError = value;\n }\n\n get isValid(): boolean {\n if (this.sfConfig.fieldType === ENCRYPTED_SECURITY_CODE) {\n switch (this.cvcPolicy) {\n case CVC_POLICY_HIDDEN:\n // If cvc is hidden then the field is always valid\n return true;\n case CVC_POLICY_OPTIONAL:\n // If cvc is optional then the field is always valid UNLESS it has an error\n return !this.hasError;\n default:\n return this._isValid;\n }\n }\n\n if (\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_DATE ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_MONTH ||\n this.sfConfig.fieldType === ENCRYPTED_EXPIRY_YEAR\n ) {\n switch (this.expiryDatePolicy) {\n case DATE_POLICY_HIDDEN:\n // If date is hidden then the field is always valid\n return true;\n case DATE_POLICY_OPTIONAL:\n // If date is optional then the field is always valid UNLESS it has an error\n return !this.hasError;\n default:\n return this._isValid;\n }\n }\n\n return this._isValid;\n }\n set isValid(value: boolean) {\n this._isValid = value;\n }\n\n get cvcPolicy(): CVCPolicyType {\n return this._cvcPolicy;\n }\n\n set cvcPolicy(value: CVCPolicyType) {\n // Only set if this is a CVC field\n if (this.sfConfig.fieldType !== ENCRYPTED_SECURITY_CODE) return;\n\n // Only set if value has changed\n if (value === this.cvcPolicy) return;\n\n if (process.env.NODE_ENV === 'development' && doLog) logger.log(this.sfConfig.fieldType, '### SecuredField::cvcPolicy:: value=', value);\n\n this._cvcPolicy = value;\n\n // If the field has changed status (required <--> not required) AND it's error state was due to an isValidated call\n // NOTE: fixes issue in Components where you first validate and then start typing a maestro number\n // - w/o this and the fix in CSF the maestro PM will never register as valid\n if (this.hasError && this.errorType === 'isValidated') {\n this.hasError = false;\n }\n }\n\n get expiryDatePolicy(): DatePolicyType {\n return this._expiryDatePolicy;\n }\n\n set expiryDatePolicy(value: DatePolicyType) {\n // Only set if this is a date field type of securedField\n if (\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_DATE &&\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_MONTH &&\n this.sfConfig.fieldType !== ENCRYPTED_EXPIRY_YEAR\n )\n return;\n\n // Only set if value has changed\n if (value === this.expiryDatePolicy) return;\n\n if (process.env.NODE_ENV === 'development' && doLog) logger.log(this.sfConfig.fieldType, '### SecuredField:expiryDatePolicy:: value=', value);\n\n this._expiryDatePolicy = value;\n\n // If the field has changed status (required <--> not required) AND it's error state was due to an isValidated call\n if (this.hasError && this.errorType === 'isValidated') {\n this.hasError = false;\n }\n }\n\n get iframeContentWindow(): Window {\n return this._iframeContentWindow;\n }\n set iframeContentWindow(value: Window) {\n this._iframeContentWindow = value;\n }\n\n get isEncrypted(): boolean {\n return this._isEncrypted;\n }\n set isEncrypted(value: boolean) {\n this._isEncrypted = value;\n }\n\n get numKey(): number {\n return this._numKey;\n }\n set numKey(value: number) {\n this._numKey = value;\n }\n\n // Internal use - way to create listener refs that we can add/remove\n get iframeOnLoadListener(): RtnType_noParamVoidFn {\n return this._iframeOnLoadListener;\n }\n set iframeOnLoadListener(value: RtnType_noParamVoidFn) {\n this._iframeOnLoadListener = value.bind(this);\n }\n\n get postMessageListener(): RtnType_postMessageListener {\n return this._postMessageListener;\n }\n set postMessageListener(value: RtnType_postMessageListener) {\n this._postMessageListener = value.bind(this);\n }\n}\n\nexport default SecuredField;\n"],"names":["SecuredField","AbstractSecuredField","init","i18n","iframeSrc","placeholders","showContextualElement","processedAriaConfig","processAriaConfig","this","sfConfig","txVariant","fieldType","iframeUIConfig","ariaConfig","processPlaceholders","iframeConfig","src","title","iframeTitle","policy","iframeEl","createIframe","holderEl","appendChild","iframe","selectOne","iframeContentWindow","contentWindow","iframeOnLoadListener","iframeOnLoadListenerFn","on","iframeRef","postMessageListener","postMessageListenerFn","window","configObj","_object_spread_props","_object_spread","numKey","_b$dl","console","log","postMessageToIframe","loadingContext","onIframeLoadedCallback","event","originCheckPassed","showWarnings","feedbackObj","JSON","parse","data","e","isWebpackPostMsg","logger","isChromeVoxPostMsg","hasOwnProperty","action","isValid","onEncryptionCallback","onConfigCallback","onFocusCallback","onBinValueCallback","onTouchstartCallback","onShiftTabCallback","onAutoCompleteCallback","onKeyPressedCallback","onValidationCallback","destroy","off","removeAllChildren","isOptionalOrHidden","ENCRYPTED_EXPIRY_DATE","ENCRYPTED_EXPIRY_MONTH","ENCRYPTED_EXPIRY_YEAR","expiryDatePolicy","DATE_POLICY_HIDDEN","DATE_POLICY_OPTIONAL","hasError","ENCRYPTED_SECURITY_CODE","cvcPolicy","CVC_POLICY_HIDDEN","CVC_POLICY_OPTIONAL","onIframeLoaded","callbackFn","onEncryption","onValidation","onConfig","onFocus","onBinValue","onTouchstart","onShiftTab","onAutoComplete","onKeyPressed","errorType","_errorType","value","_hasError","_isValid","_cvcPolicy","_expiryDatePolicy","_iframeContentWindow","isEncrypted","_isEncrypted","_numKey","_iframeOnLoadListener","bind","_postMessageListener","constructor","pSetupObj","super","configVarsFromSetUpObj","reject","from","generateRandomNumber"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sources":["../../../../../../../src/components/internal/SecuredFields/lib/utilities/logger.ts"],"sourcesContent":["/**\n * @internal\n * Utility class for logging messages/errors\n * Usage:\n * logger.log('Log message, always visible');\n *\n * For debug only messages:\n * window._b$dl && logger.log('Log message only visible on dev env');\n *\n * Or just use a conditional:\n * ```\n * if (window._b$dl) {\n * logger.log('Log message only visible on dev env');\n * }\n * ```\n */\n\n/**\n * @internal\n * Logs errors\n * NOTE: changed to 'let' from 'const' for the purpose of running unit tests\n */\n// eslint-disable-next-line prefer-const\nexport let error = typeof window !== 'undefined' && window.console && window.console.error && window.console.error.bind(window.console);\n\n/**\n * @internal\n * Logs info\n */\nexport const info = typeof window !== 'undefined' && window.console && window.console.info && window.console.info.bind(window.console);\n\n/**\n * @internal\n * Logs\n * NOTE: changed to 'let' from 'const' for the purpose of running unit tests\n */\n \nexport let log = typeof window !== 'undefined' && window.console && window.console.log && window.console.log.bind(window.console); // eslint-disable-line\n\n/**\n * @internal\n * Logs warnings\n * NOTE: changed to 'let' from 'const' for the purpose of running unit tests\n */\n \nexport let warn = typeof window !== 'undefined' && window.console && window.console.warn && window.console.warn.bind(window.console); // eslint-disable-line\n"],"names":["error","window","console","bind","info","log","warn"],"mappings":"AAuBO,IAAIA,EAA0B,oBAAXC,QAA0BA,OAAOC,SAAWD,OAAOC,QAAQF,OAASC,OAAOC,QAAQF,MAAMG,KAAKF,OAAOC,SAMzF,oBAAXD,QAA0BA,OAAOC,SAAWD,OAAOC,QAAQE,MAAQH,OAAOC,QAAQE,KAAKD,KAAKF,OAAOC,SAQnHG,IAAAA,EAAwB,oBAAXJ,QAA0BA,OAAOC,SAAWD,OAAOC,QAAQG,KAAOJ,OAAOC,QAAQG,IAAIF,KAAKF,OAAOC,SAQ9GI,EAAyB,oBAAXL,QAA0BA,OAAOC,SAAWD,OAAOC,QAAQI,MAAQL,OAAOC,QAAQI,KAAKH,KAAKF,OAAOC"}
1
+ {"version":3,"file":"logger.js","sources":["../../../../../../../src/components/internal/SecuredFields/lib/utilities/logger.ts"],"sourcesContent":["/**\n * @internal\n * Utility class for logging messages/errors\n * Usage:\n * logger.log('Log message, always visible');\n *\n * For debug only messages:\n * window._b$dl && logger.log('Log message only visible on dev env');\n *\n * Or just use a conditional:\n * ```\n * if (window._b$dl) {\n * logger.log('Log message only visible on dev env');\n * }\n * ```\n */\n\n/**\n * @internal\n * Logs errors\n * NOTE: changed to 'let' from 'const' for the purpose of running unit tests\n */\n// eslint-disable-next-line prefer-const\nexport let error = typeof window !== 'undefined' && window.console && window.console.error && window.console.error.bind(window.console);\n\n/**\n * @internal\n * Logs info\n */\nexport const info = typeof window !== 'undefined' && window.console && window.console.info && window.console.info.bind(window.console);\n\n/**\n * @internal\n * Logs\n * NOTE: changed to 'let' from 'const' for the purpose of running unit tests\n */\n\nexport let log = typeof window !== 'undefined' && window.console && window.console.log && window.console.log.bind(window.console); // eslint-disable-line\n\n/**\n * @internal\n * Logs warnings\n * NOTE: changed to 'let' from 'const' for the purpose of running unit tests\n */\n\nexport let warn = typeof window !== 'undefined' && window.console && window.console.warn && window.console.warn.bind(window.console); // eslint-disable-line\n"],"names":["error","window","console","bind","info","log","warn"],"mappings":"AAuBO,IAAIA,EAA0B,oBAAXC,QAA0BA,OAAOC,SAAWD,OAAOC,QAAQF,OAASC,OAAOC,QAAQF,MAAMG,KAAKF,OAAOC,SAMzF,oBAAXD,QAA0BA,OAAOC,SAAWD,OAAOC,QAAQE,MAAQH,OAAOC,QAAQE,KAAKD,KAAKF,OAAOC,SAQnHG,IAAAA,EAAwB,oBAAXJ,QAA0BA,OAAOC,SAAWD,OAAOC,QAAQG,KAAOJ,OAAOC,QAAQG,IAAIF,KAAKF,OAAOC,SAQ9GI,EAAyB,oBAAXL,QAA0BA,OAAOC,SAAWD,OAAOC,QAAQI,MAAQL,OAAOC,QAAQI,KAAKH,KAAKF,OAAOC"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";const t=({instructions:t})=>t&&0!==t.length?e("div",{className:"adyen-checkout-timeline"},e("ol",{className:"adyen-checkout-timeline__items"},t.map(((t,i)=>e("li",{className:"adyen-checkout-timeline-item",key:i},e("div",{className:"adyen-checkout-timeline-item__row"},e("div",{"aria-hidden":"true",className:"adyen-checkout-timeline-item__marker"},e("svg",{role:"img",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none"},e("path",{fill:"#00112C",d:"M5.5 3.25C4.25736 3.25 3.25 4.25736 3.25 5.5V10.5C3.25 11.7426 4.25736 12.75 5.5 12.75H10.5C11.7426 12.75 12.75 11.7426 12.75 10.5V5.5C12.75 4.25736 11.7426 3.25 10.5 3.25H5.5Z"})),e("div",{className:"adyen-checkout-timeline-item__separator"})),e("div",{className:"adyen-checkout-timeline-item__content"},e("div",{className:"adyen-checkout-timeline-item__title"},t)))))))):null;export{t as Timeline};
2
+ //# sourceMappingURL=Timeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Timeline.js","sources":["../../../../../src/components/internal/Timeline/Timeline.tsx"],"sourcesContent":["import { h } from 'preact';\nimport './Timeline.scss';\n\ninterface Timeline {\n instructions: string[];\n}\n\nconst Timeline = ({ instructions }: Timeline) => {\n if (!instructions || instructions.length === 0) {\n return null;\n }\n\n return (\n <div className=\"adyen-checkout-timeline\">\n <ol className=\"adyen-checkout-timeline__items\">\n {instructions.map((value, index) => (\n <li className=\"adyen-checkout-timeline-item\" key={index}>\n <div className=\"adyen-checkout-timeline-item__row\">\n <div aria-hidden=\"true\" className=\"adyen-checkout-timeline-item__marker\">\n <svg role=\"img\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\">\n <path\n fill=\"#00112C\"\n d=\"M5.5 3.25C4.25736 3.25 3.25 4.25736 3.25 5.5V10.5C3.25 11.7426 4.25736 12.75 5.5 12.75H10.5C11.7426 12.75 12.75 11.7426 12.75 10.5V5.5C12.75 4.25736 11.7426 3.25 10.5 3.25H5.5Z\"\n ></path>\n </svg>\n <div className=\"adyen-checkout-timeline-item__separator\"></div>\n </div>\n <div className=\"adyen-checkout-timeline-item__content\">\n <div className=\"adyen-checkout-timeline-item__title\">{value}</div>\n </div>\n </div>\n </li>\n ))}\n </ol>\n </div>\n );\n};\n\nexport { Timeline };\n"],"names":["Timeline","instructions","length","h","div","className","ol","map","value","index","li","key","aria-hidden","svg","role","xmlns","width","height","fill","path","d"],"mappings":"wEAOA,MAAMA,EAAW,EAAGC,kBACXA,GAAwC,IAAxBA,EAAaC,OAK9BC,EAACC,MAAAA,CAAIC,UAAU,2BACXF,EAACG,KAAAA,CAAGD,UAAU,kCACTJ,EAAaM,KAAI,CAACC,EAAOC,IACtBN,EAACO,KAAAA,CAAGL,UAAU,+BAA+BM,IAAKF,GAC9CN,EAACC,MAAAA,CAAIC,UAAU,qCACXF,EAACC,MAAAA,CAAIQ,cAAY,OAAOP,UAAU,wCAC9BF,EAACU,MAAAA,CAAIC,KAAK,MAAMC,MAAM,6BAA6BC,MAAM,KAAKC,OAAO,KAAKC,KAAK,QAC3Ef,EAACgB,OAAAA,CACGD,KAAK,UACLE,EAAE,sLAGVjB,EAACC,MAAAA,CAAIC,UAAU,6CAEnBF,EAACC,MAAAA,CAAIC,UAAU,yCACXF,EAACC,MAAAA,CAAIC,UAAU,uCAAuCG,UAnBvE"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";const a=({children:a,className:t})=>e("div",{className:`adyen-checkout-timeline-wrapper ${t}`},a);export{a as TimelineWrapper};
2
+ //# sourceMappingURL=TimelineWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimelineWrapper.js","sources":["../../../../../src/components/internal/Timeline/TimelineWrapper.tsx"],"sourcesContent":["import { ComponentChildren, h } from 'preact';\nimport './TimelineWrapper.scss';\n\ninterface TimelineWrapperProps {\n children: ComponentChildren;\n className?: string;\n}\n\nconst TimelineWrapper = ({ children, className }: TimelineWrapperProps) => {\n return <div className={`adyen-checkout-timeline-wrapper ${className}`}>{children}</div>;\n};\n\nexport { TimelineWrapper };\n"],"names":["TimelineWrapper","children","className","h","div"],"mappings":"wEAQA,MAAMA,EAAkB,EAAGC,WAAUC,eAC1BC,EAACC,MAAAA,CAAIF,UAAW,mCAAmCA,KAAcD"}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckoutSession.js","sources":["../../../../src/core/CheckoutSession/CheckoutSession.ts"],"sourcesContent":["import makePayment from '../Services/sessions/make-payment';\nimport submitDetails from '../Services/sessions/submit-details';\nimport setupSession from '../Services/sessions/setup-session';\nimport checkBalance from '../Services/sessions/check-balance';\nimport Storage from '../../utils/Storage';\nimport createOrder from '../Services/sessions/create-order';\nimport { sanitizeSession } from './utils';\nimport {\n CheckoutSession,\n CheckoutSessionBalanceResponse,\n CheckoutSessionDetailsResponse,\n CheckoutSessionOrdersResponse,\n CheckoutSessionPaymentResponse,\n CheckoutSessionSetupResponse,\n SessionConfiguration,\n SetupSessionOptions\n} from './types';\nimport cancelOrder from '../Services/sessions/cancel-order';\nimport { onOrderCancelData } from '../../components/Dropin/types';\nimport type { AdditionalDetailsData } from '../types';\nimport collectBrowserInfo from '../../utils/browserInfo';\n\nclass Session {\n private readonly session: CheckoutSession;\n private readonly storage: Storage<CheckoutSession>;\n public readonly clientKey: string;\n public readonly loadingContext: string;\n public configuration: SessionConfiguration;\n\n constructor(rawSession: Partial<CheckoutSession>, clientKey: string, loadingContext: string) {\n const session = sanitizeSession(rawSession) as CheckoutSession;\n\n if (!clientKey) throw new Error('No clientKey available');\n if (!loadingContext) throw new Error('No loadingContext available');\n\n this.storage = new Storage('session', 'localStorage');\n this.clientKey = clientKey;\n this.loadingContext = loadingContext;\n this.session = session;\n\n if (!this.session.sessionData) {\n this.session = this.getStoredSession();\n } else {\n this.storeSession();\n }\n }\n\n get shopperLocale() {\n return this.session.shopperLocale;\n }\n\n get id() {\n return this.session.id;\n }\n\n get data() {\n return this.session.sessionData;\n }\n\n /**\n * Updates the session.data with the latest data blob\n */\n private updateSessionData(latestData: string): void {\n this.session.sessionData = latestData;\n this.storeSession();\n }\n\n /**\n * Fetches data from a session\n */\n setupSession(options: SetupSessionOptions): Promise<CheckoutSessionSetupResponse> {\n const mergedOptions = { ...options, browserInfo: collectBrowserInfo() }\n return setupSession(this, mergedOptions).then(response => {\n if (response.configuration) {\n this.configuration = { ...response.configuration };\n }\n\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Submits a session payment\n */\n submitPayment(data): Promise<CheckoutSessionPaymentResponse> {\n return makePayment(data, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Submits session payment additional details\n */\n submitDetails(data: AdditionalDetailsData['data']): Promise<CheckoutSessionDetailsResponse> {\n return submitDetails(data, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Checks the balance for a payment method\n */\n checkBalance(data): Promise<CheckoutSessionBalanceResponse> {\n return checkBalance(data, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Creates an order for the current session\n */\n createOrder(): Promise<CheckoutSessionOrdersResponse> {\n return createOrder(this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Cancels an order for the current session\n */\n cancelOrder(data: onOrderCancelData): Promise<CheckoutSessionOrdersResponse> {\n return cancelOrder(data.order, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Gets the stored session but only if the current id and the stored id match\n */\n getStoredSession(): CheckoutSession {\n const storedSession = this.storage.get();\n return this.id === storedSession?.id ? storedSession : this.session;\n }\n\n /**\n * Stores the session\n */\n storeSession(): void {\n this.storage.set({ id: this.session.id, sessionData: this.session.sessionData });\n }\n\n /**\n * Clears the stored session\n */\n removeStoredSession(): void {\n this.storage.remove();\n }\n}\n\nexport default Session;\n"],"names":["Session","shopperLocale","this","session","id","data","sessionData","updateSessionData","latestData","storeSession","setupSession","options","mergedOptions","_object_spread_props","browserInfo","collectBrowserInfo","then","response","configuration","_object_spread","submitPayment","makePayment","submitDetails","checkBalance","createOrder","cancelOrder","order","getStoredSession","storedSession","storage","get","set","removeStoredSession","remove","constructor","rawSession","clientKey","loadingContext","_define_property","sanitizeSession","Error","Storage"],"mappings":"wuCAsBA,MAAMA,EAyBF,iBAAIC,GACA,OAAOC,KAAKC,QAAQF,aACxB,CAEA,MAAIG,GACA,OAAOF,KAAKC,QAAQC,EACxB,CAEA,QAAIC,GACA,OAAOH,KAAKC,QAAQG,WACxB,CAKQC,iBAAAA,CAAkBC,GACtBN,KAAKC,QAAQG,YAAcE,EAC3BN,KAAKO,cACT,CAKAC,YAAAA,CAAaC,GACT,MAAMC,EAAgBC,EAAKF,EAAAA,CAAAA,EAAAA,GAAAA,CAASG,YAAaC,MACjD,OAAOL,EAAaR,KAAMU,GAAeI,MAAKC,IACtCA,EAASC,gBACThB,KAAKgB,cAAgBC,EAAA,CAAA,EAAKF,EAASC,gBAGnCD,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAG,aAAAA,CAAcf,GACV,OAAOgB,EAAYhB,EAAMH,MAAMc,MAAKC,IAC5BA,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAK,aAAAA,CAAcjB,GACV,OAAOiB,EAAcjB,EAAMH,MAAMc,MAAKC,IAC9BA,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAM,YAAAA,CAAalB,GACT,OAAOkB,EAAalB,EAAMH,MAAMc,MAAKC,IAC7BA,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAO,WAAAA,GACI,OAAOA,EAAYtB,MAAMc,MAAKC,IACtBA,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAQ,WAAAA,CAAYpB,GACR,OAAOoB,EAAYpB,EAAKqB,MAAOxB,MAAMc,MAAKC,IAClCA,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAU,gBAAAA,GACI,MAAMC,EAAgB1B,KAAK2B,QAAQC,MACnC,OAAO5B,KAAKE,MAAOwB,aAAAA,EAAAA,EAAexB,IAAKwB,EAAgB1B,KAAKC,OAChE,CAKAM,YAAAA,GACIP,KAAK2B,QAAQE,IAAI,CAAE3B,GAAIF,KAAKC,QAAQC,GAAIE,YAAaJ,KAAKC,QAAQG,aACtE,CAKA0B,mBAAAA,GACI9B,KAAK2B,QAAQI,QACjB,CA7IAC,WAAAA,CAAYC,EAAsCC,EAAmBC,GANrEC,EAAApC,KAAiBC,eAAjB,GACAmC,EAAApC,KAAiB2B,eAAjB,GACAS,EAAApC,KAAgBkC,iBAAhB,GACAE,EAAApC,KAAgBmC,sBAAhB,GACAC,EAAApC,KAAOgB,qBAAP,GAGI,MAAMf,EAAUoC,EAAgBJ,GAEhC,IAAKC,EAAW,MAAM,IAAII,MAAM,0BAChC,IAAKH,EAAgB,MAAM,IAAIG,MAAM,+BAErCtC,KAAK2B,QAAU,IAAIY,EAAQ,UAAW,gBACtCvC,KAAKkC,UAAYA,EACjBlC,KAAKmC,eAAiBA,EACtBnC,KAAKC,QAAUA,EAEVD,KAAKC,QAAQG,YAGdJ,KAAKO,eAFLP,KAAKC,QAAUD,KAAKyB,kBAI5B"}
1
+ {"version":3,"file":"CheckoutSession.js","sources":["../../../../src/core/CheckoutSession/CheckoutSession.ts"],"sourcesContent":["import makePayment from '../Services/sessions/make-payment';\nimport submitDetails from '../Services/sessions/submit-details';\nimport setupSession from '../Services/sessions/setup-session';\nimport checkBalance from '../Services/sessions/check-balance';\nimport Storage from '../../utils/Storage';\nimport createOrder from '../Services/sessions/create-order';\nimport { sanitizeSession } from './utils';\nimport {\n CheckoutSession,\n CheckoutSessionBalanceResponse,\n CheckoutSessionDetailsResponse,\n CheckoutSessionOrdersResponse,\n CheckoutSessionPaymentResponse,\n CheckoutSessionSetupResponse,\n SessionConfiguration,\n SetupSessionOptions\n} from './types';\nimport cancelOrder from '../Services/sessions/cancel-order';\nimport { onOrderCancelData } from '../../components/Dropin/types';\nimport type { AdditionalDetailsData } from '../types';\nimport collectBrowserInfo from '../../utils/browserInfo';\n\nclass Session {\n private readonly session: CheckoutSession;\n private readonly storage: Storage<CheckoutSession>;\n public readonly clientKey: string;\n public readonly loadingContext: string;\n public configuration: SessionConfiguration;\n\n constructor(rawSession: Partial<CheckoutSession>, clientKey: string, loadingContext: string) {\n const session = sanitizeSession(rawSession) as CheckoutSession;\n\n if (!clientKey) throw new Error('No clientKey available');\n if (!loadingContext) throw new Error('No loadingContext available');\n\n this.storage = new Storage('session', 'localStorage');\n this.clientKey = clientKey;\n this.loadingContext = loadingContext;\n this.session = session;\n\n if (!this.session.sessionData) {\n this.session = this.getStoredSession();\n } else {\n this.storeSession();\n }\n }\n\n get shopperLocale() {\n return this.session.shopperLocale;\n }\n\n get id() {\n return this.session.id;\n }\n\n get data() {\n return this.session.sessionData;\n }\n\n /**\n * Updates the session.data with the latest data blob\n */\n private updateSessionData(latestData: string): void {\n this.session.sessionData = latestData;\n this.storeSession();\n }\n\n /**\n * Fetches data from a session\n */\n setupSession(options: SetupSessionOptions): Promise<CheckoutSessionSetupResponse> {\n const mergedOptions = { ...options, browserInfo: collectBrowserInfo() };\n return setupSession(this, mergedOptions).then(response => {\n if (response.configuration) {\n this.configuration = { ...response.configuration };\n }\n\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Submits a session payment\n */\n submitPayment(data): Promise<CheckoutSessionPaymentResponse> {\n return makePayment(data, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Submits session payment additional details\n */\n submitDetails(data: AdditionalDetailsData['data']): Promise<CheckoutSessionDetailsResponse> {\n return submitDetails(data, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Checks the balance for a payment method\n */\n checkBalance(data): Promise<CheckoutSessionBalanceResponse> {\n return checkBalance(data, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Creates an order for the current session\n */\n createOrder(): Promise<CheckoutSessionOrdersResponse> {\n return createOrder(this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Cancels an order for the current session\n */\n cancelOrder(data: onOrderCancelData): Promise<CheckoutSessionOrdersResponse> {\n return cancelOrder(data.order, this).then(response => {\n if (response.sessionData) {\n this.updateSessionData(response.sessionData);\n }\n\n return response;\n });\n }\n\n /**\n * Gets the stored session but only if the current id and the stored id match\n */\n getStoredSession(): CheckoutSession {\n const storedSession = this.storage.get();\n return this.id === storedSession?.id ? storedSession : this.session;\n }\n\n /**\n * Stores the session\n */\n storeSession(): void {\n this.storage.set({ id: this.session.id, sessionData: this.session.sessionData });\n }\n\n /**\n * Clears the stored session\n */\n removeStoredSession(): void {\n this.storage.remove();\n }\n}\n\nexport default Session;\n"],"names":["Session","shopperLocale","this","session","id","data","sessionData","updateSessionData","latestData","storeSession","setupSession","options","mergedOptions","_object_spread_props","browserInfo","collectBrowserInfo","then","response","configuration","_object_spread","submitPayment","makePayment","submitDetails","checkBalance","createOrder","cancelOrder","order","getStoredSession","storedSession","storage","get","set","removeStoredSession","remove","constructor","rawSession","clientKey","loadingContext","_define_property","sanitizeSession","Error","Storage"],"mappings":"wuCAsBA,MAAMA,EAyBF,iBAAIC,GACA,OAAOC,KAAKC,QAAQF,aACxB,CAEA,MAAIG,GACA,OAAOF,KAAKC,QAAQC,EACxB,CAEA,QAAIC,GACA,OAAOH,KAAKC,QAAQG,WACxB,CAKQC,iBAAAA,CAAkBC,GACtBN,KAAKC,QAAQG,YAAcE,EAC3BN,KAAKO,cACT,CAKAC,YAAAA,CAAaC,GACT,MAAMC,EAAgBC,EAAKF,EAAAA,CAAAA,EAAAA,GAAAA,CAASG,YAAaC,MACjD,OAAOL,EAAaR,KAAMU,GAAeI,MAAKC,IACtCA,EAASC,gBACThB,KAAKgB,cAAgBC,EAAA,CAAA,EAAKF,EAASC,gBAGnCD,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAG,aAAAA,CAAcf,GACV,OAAOgB,EAAYhB,EAAMH,MAAMc,MAAKC,IAC5BA,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAK,aAAAA,CAAcjB,GACV,OAAOiB,EAAcjB,EAAMH,MAAMc,MAAKC,IAC9BA,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAM,YAAAA,CAAalB,GACT,OAAOkB,EAAalB,EAAMH,MAAMc,MAAKC,IAC7BA,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAO,WAAAA,GACI,OAAOA,EAAYtB,MAAMc,MAAKC,IACtBA,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAQ,WAAAA,CAAYpB,GACR,OAAOoB,EAAYpB,EAAKqB,MAAOxB,MAAMc,MAAKC,IAClCA,EAASX,aACTJ,KAAKK,kBAAkBU,EAASX,aAG7BW,IAEf,CAKAU,gBAAAA,GACI,MAAMC,EAAgB1B,KAAK2B,QAAQC,MACnC,OAAO5B,KAAKE,MAAOwB,aAAAA,EAAAA,EAAexB,IAAKwB,EAAgB1B,KAAKC,OAChE,CAKAM,YAAAA,GACIP,KAAK2B,QAAQE,IAAI,CAAE3B,GAAIF,KAAKC,QAAQC,GAAIE,YAAaJ,KAAKC,QAAQG,aACtE,CAKA0B,mBAAAA,GACI9B,KAAK2B,QAAQI,QACjB,CA7IAC,WAAAA,CAAYC,EAAsCC,EAAmBC,GANrEC,EAAApC,KAAiBC,eAAjB,GACAmC,EAAApC,KAAiB2B,eAAjB,GACAS,EAAApC,KAAgBkC,iBAAhB,GACAE,EAAApC,KAAgBmC,sBAAhB,GACAC,EAAApC,KAAOgB,qBAAP,GAGI,MAAMf,EAAUoC,EAAgBJ,GAEhC,IAAKC,EAAW,MAAM,IAAII,MAAM,0BAChC,IAAKH,EAAgB,MAAM,IAAIG,MAAM,+BAErCtC,KAAK2B,QAAU,IAAIY,EAAQ,UAAW,gBACtCvC,KAAKkC,UAAYA,EACjBlC,KAAKmC,eAAiBA,EACtBnC,KAAKC,QAAUA,EAEVD,KAAKC,QAAQG,YAGdJ,KAAKO,eAFLP,KAAKC,QAAUD,KAAKyB,kBAI5B"}
@@ -1,2 +1,2 @@
1
- import{httpPost as e}from"../http.js";import t from"../../../utils/Storage.js";function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const r='WARNING: Failed to retrieve "checkoutAttemptId". Consequently, analytics will not be available for this payment. The payment process, however, will not be affected.';const o=({analyticsContext:o,clientKey:i,locale:c,analyticsPath:l,bundleType:a})=>{let s;const u={errorLevel:"fatal",loadingContext:o,path:`${l}?clientKey=${i}`};return o=>{const l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),o.forEach((function(t){n(e,t,r[t])}))}return e}({version:"6.4.0",channel:"Web",platform:"Web",buildType:a,locale:c,referrer:window.location.href,screenWidth:window.screen.width},o);if(s)return s;if(!i)return Promise.reject("no-client-key");const f=new t("checkout-attempt-id","sessionStorage"),p=f.get();return function(e){if(!(null==e?void 0:e.id))return!1;const t=Date.now()-9e5;return e.timestamp>t}(p)?Promise.resolve(p.id):(s=e(u,l).then((e=>{if(null==e?void 0:e.checkoutAttemptId)return f.set({id:e.checkoutAttemptId,timestamp:Date.now()}),e.checkoutAttemptId})).catch((()=>Promise.reject(r))),s)}};export{r as FAILURE_MSG,o as default};
1
+ import{httpPost as e}from"../http.js";import t from"../../../utils/Storage.js";function n(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const r='WARNING: Failed to retrieve "checkoutAttemptId". Consequently, analytics will not be available for this payment. The payment process, however, will not be affected.';const o=({analyticsContext:o,clientKey:i,locale:c,analyticsPath:l,bundleType:a})=>{let s;const u={errorLevel:"fatal",loadingContext:o,path:`${l}?clientKey=${i}`};return o=>{const l=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},o=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(r).filter((function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable})))),o.forEach((function(t){n(e,t,r[t])}))}return e}({version:"6.5.1",channel:"Web",platform:"Web",buildType:a,locale:c,referrer:window.location.href,screenWidth:window.screen.width},o);if(s)return s;if(!i)return Promise.reject("no-client-key");const f=new t("checkout-attempt-id","sessionStorage"),p=f.get();return function(e){if(!(null==e?void 0:e.id))return!1;const t=Date.now()-9e5;return e.timestamp>t}(p)?Promise.resolve(p.id):(s=e(u,l).then((e=>{if(null==e?void 0:e.checkoutAttemptId)return f.set({id:e.checkoutAttemptId,timestamp:Date.now()}),e.checkoutAttemptId})).catch((()=>Promise.reject(r))),s)}};export{r as FAILURE_MSG,o as default};
2
2
  //# sourceMappingURL=collect-id.js.map
@@ -1,2 +1,2 @@
1
- import{Language as t}from"../language/Language.js";import o from"./RiskModule/RiskModule.js";import e from"./ProcessResponse/PaymentMethods/PaymentMethods.js";import{getComponentForAction as s}from"./ProcessResponse/PaymentAction/PaymentAction.js";import n from"./Analytics/Analytics.js";import{processGlobalOptions as i,assertConfigurationPropertiesAreValid as r}from"./utils.js";import a from"./CheckoutSession/CheckoutSession.js";import{hasOwnProperty as l}from"../utils/hasOwnProperty.js";import{Resources as c}from"./Context/Resources.js";import{SRPanel as h}from"./Errors/SRPanel.js";import p from"./core.registry.js";import{sanitizeResponse as d,verifyPaymentDidNotFail as m,cleanupFinalResult as u}from"../components/internal/UIElement/utils.js";import y,{IMPLEMENTATION_ERROR as f}from"./Errors/AdyenCheckoutError.js";import{ANALYTICS_ACTION_STR as g}from"./Analytics/constants.js";import{THREEDS2_FULL as v}from"../components/ThreeDS2/constants.js";import{DEFAULT_LOCALE as b}from"../language/constants.js";import C from"./Services/get-translations.js";import{defaultProps as j}from"./core.defaultProps.js";import{formatLocale as w,formatCustomTranslations as O}from"../language/utils.js";import{resolveEnvironments as P}from"./Environment/Environment.js";function E(t,o,e){return o in t?Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[o]=e,t}function A(t){for(var o=1;o<arguments.length;o++){var e=null!=arguments[o]?arguments[o]:{},s=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(e).filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})))),s.forEach((function(o){E(t,o,e[o])}))}return t}function M(t,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):function(t){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);o.push.apply(o,e)}return o}(Object(o)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))})),t}function x(t,o){if(null==t)return{};var e,s,n=function(t,o){if(null==t)return{};var e,s,n={},i=Object.keys(t);for(s=0;s<i.length;s++)e=i[s],o.indexOf(e)>=0||(n[e]=t[e]);return n}(t,o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(s=0;s<i.length;s++)e=i[s],o.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(n[e]=t[e])}return n}class T{static setBundleType(t){T.metadata.bundleType=t}static register(...t){p.add(...t)}register(...t){p.add(...t)}getComponent(t){return p.getComponent(t)}async initialize(){return await this.initializeCore(),this.validateCoreConfiguration(),await this.createCoreModules(),this}async initializeCore(){return this.session?this.session.setupSession(this.options).then((t=>{const{amount:o,shopperLocale:e,countryCode:s,paymentMethods:n}=t,i=x(t,["amount","shopperLocale","countryCode","paymentMethods"]);return this.setOptions(M(A({},i),{amount:this.options.order?this.options.order.remainingAmount:o,locale:this.options.locale||e,countryCode:this.options.countryCode||s})),this.createPaymentMethodsList(n),this})).catch((t=>(this.options.onError&&this.options.onError(t),Promise.reject(t)))):(this.createPaymentMethodsList(),Promise.resolve(this))}async fetchLocaleTranslations(){try{return await C(this.cdnTranslationsUrl,T.metadata.version,this.options.locale)}catch(n){var t,o,e,s;n instanceof y?null===(t=(o=this.options).onError)||void 0===t||t.call(o,n):null===(e=(s=this.options).onError)||void 0===e||e.call(s,new y("ERROR","Failed to fetch translation",{cause:n}))}}validateCoreConfiguration(){if(this.options.paymentMethodsConfiguration&&console.warn('WARNING: "paymentMethodsConfiguration" is supported only by Drop-in.'),!this.options.countryCode)throw new y(f,"You must specify a countryCode when initializing checkout.");this.options.locale||this.setOptions({locale:b}),this.options.locale=w(this.options.locale),this.options.translations=O(this.options.translations)}submitDetails(t){let o=null;var e,s;(this.options.onAdditionalDetails&&(o=new Promise(((o,e)=>{this.options.onAdditionalDetails({data:t},void 0,{resolve:o,reject:e})}))),this.session&&(o=this.session.submitDetails(t).catch((t=>{var o,e;return null===(o=(e=this.options).onError)||void 0===o||o.call(e,t),Promise.reject(t)}))),o)?o.then(d).then(m).then((t=>{var o,e;u(t),null===(o=(e=this.options).onPaymentCompleted)||void 0===o||o.call(e,t)})).catch((t=>{var o,e;u(t),null===(o=(e=this.options).onPaymentFailed)||void 0===o||o.call(e,t)})):null===(e=(s=this.options).onError)||void 0===e||e.call(s,new y("IMPLEMENTATION_ERROR",'It can not submit the details. The callback "onAdditionalDetails" or the Session is not setup correctly.'))}createFromAction(t,o={}){if(!t||!t.type){if(l(t,"action")&&l(t,"resultCode"))throw new Error('createFromAction::Invalid Action - the passed action object itself has an "action" property and a "resultCode": have you passed in the whole response object by mistake?');throw new Error('createFromAction::Invalid Action - the passed action object does not have a "type" property')}if(t.type){const e=t.type===v?`${t.type}${t.subtype}`:t.paymentMethodType;this.modules.analytics.sendAnalytics(e,{type:g,subtype:t.type,message:`${e} action was handled by the SDK`});const n=A({},this.getCorePropsForComponent(),o);return s(this,p,t,n)}return this.handleCreateError()}getCorePropsForComponent(){return M(A({},i(this.options)),{core:this,i18n:this.modules.i18n,modules:this.modules,session:this.session,loadingContext:this.loadingContext,cdnContext:this.cdnImagesUrl,createFromAction:this.createFromAction})}storeElementReference(t){t&&this.components.push(t)}handleCreateError(t){var o;const e=null!==(o=null==t?void 0:t.name)&&void 0!==o?o:"The passed payment method",s=t?`${e} is not a valid Checkout Component. What was passed as a txVariant was: ${JSON.stringify(t)}. Check if this payment method is configured in the Backoffice or if the txVariant is a valid one`:"No Payment Method component was passed";throw new Error(s)}createPaymentMethodsList(t){this.paymentMethodsResponse=new e(this.options.paymentMethodsResponse||t,this.options)}async createCoreModules(){if(this.modules)return;const e=await this.fetchLocaleTranslations();this.modules=Object.freeze({risk:new o(this,M(A({},this.options),{loadingContext:this.loadingContext})),analytics:n({loadingContext:this.loadingContext,analyticsContext:this.analyticsContext,clientKey:this.options.clientKey,locale:this.options.locale,analytics:this.options.analytics,amount:this.options.amount,bundleType:T.metadata.bundleType}),resources:new c(this.cdnImagesUrl),i18n:new t({locale:this.options.locale,translations:e,customTranslations:this.options.translations}),srPanel:new h(this,A({},this.options.srConfig))})}constructor(t){var o;E(this,"session",void 0),E(this,"paymentMethodsResponse",void 0),E(this,"modules",void 0),E(this,"options",void 0),E(this,"analyticsContext",void 0),E(this,"loadingContext",void 0),E(this,"cdnImagesUrl",void 0),E(this,"cdnTranslationsUrl",void 0),E(this,"components",[]),E(this,"update",((t={})=>(this.setOptions(t),this.initialize().then((()=>(this.components.forEach((o=>{const e=A({},t,this.session&&{session:this.session});o.update(e)})),this)))))),E(this,"remove",(t=>(this.components=this.components.filter((o=>o._id!==t._id)),t.unmount(),this))),E(this,"setOptions",(t=>{var o;this.options=M(A({},this.options,t),{locale:(null==t?void 0:t.locale)||(null===(o=this.options)||void 0===o?void 0:o.locale)})})),r(t),this.createFromAction=this.createFromAction.bind(this),this.setOptions(A({},j,t));const{apiUrl:e,analyticsUrl:s,cdnImagesUrl:n,cdnTranslationsUrl:i}=P(this.options.environment,this.options._environmentUrls);this.loadingContext=e,this.analyticsContext=s,this.cdnImagesUrl=n,this.cdnTranslationsUrl=i,this.session=this.options.session&&new a(this.options.session,this.options.clientKey,this.loadingContext);const l=null===(o=this.options.clientKey)||void 0===o?void 0:o.substring(0,4);var c,h;if(("test"===l||"live"===l)&&!this.loadingContext.includes(l))throw new y("IMPLEMENTATION_ERROR",`Error: you are using a ${l} clientKey against the ${(null===(c=this.options._environmentUrls)||void 0===c?void 0:c.api)||this.options.environment} environment`);"pub."===l&&console.debug(`The value you are passing as your "clientKey" looks like an originKey (${null===(h=this.options.clientKey)||void 0===h?void 0:h.substring(0,12)}..). Although this is supported it is not the recommended way to integrate. To generate a clientKey, see the documentation (https://docs.adyen.com/development-resources/client-side-authentication/migrate-from-origin-key-to-client-key/) for more details.`);this.options.exposeLibraryMetadata&&(window.AdyenWebMetadata=T.metadata)}}E(T,"metadata",{version:"6.4.0",bundleType:"eslegacy"}),E(T,"registry",p);export{T as default};
1
+ import{Language as t}from"../language/Language.js";import o from"./RiskModule/RiskModule.js";import e from"./ProcessResponse/PaymentMethods/PaymentMethods.js";import{getComponentForAction as s}from"./ProcessResponse/PaymentAction/PaymentAction.js";import n from"./Analytics/Analytics.js";import{processGlobalOptions as i,assertConfigurationPropertiesAreValid as r}from"./utils.js";import a from"./CheckoutSession/CheckoutSession.js";import{hasOwnProperty as l}from"../utils/hasOwnProperty.js";import{Resources as c}from"./Context/Resources.js";import{SRPanel as h}from"./Errors/SRPanel.js";import p from"./core.registry.js";import{sanitizeResponse as d,verifyPaymentDidNotFail as m,cleanupFinalResult as u}from"../components/internal/UIElement/utils.js";import y,{IMPLEMENTATION_ERROR as f}from"./Errors/AdyenCheckoutError.js";import{ANALYTICS_ACTION_STR as g}from"./Analytics/constants.js";import{THREEDS2_FULL as v}from"../components/ThreeDS2/constants.js";import{DEFAULT_LOCALE as b}from"../language/constants.js";import C from"./Services/get-translations.js";import{defaultProps as j}from"./core.defaultProps.js";import{formatLocale as w,formatCustomTranslations as O}from"../language/utils.js";import{resolveEnvironments as P}from"./Environment/Environment.js";function E(t,o,e){return o in t?Object.defineProperty(t,o,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[o]=e,t}function A(t){for(var o=1;o<arguments.length;o++){var e=null!=arguments[o]?arguments[o]:{},s=Object.keys(e);"function"==typeof Object.getOwnPropertySymbols&&(s=s.concat(Object.getOwnPropertySymbols(e).filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})))),s.forEach((function(o){E(t,o,e[o])}))}return t}function M(t,o){return o=null!=o?o:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):function(t){var o=Object.keys(t);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(t);o.push.apply(o,e)}return o}(Object(o)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))})),t}function x(t,o){if(null==t)return{};var e,s,n=function(t,o){if(null==t)return{};var e,s,n={},i=Object.keys(t);for(s=0;s<i.length;s++)e=i[s],o.indexOf(e)>=0||(n[e]=t[e]);return n}(t,o);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);for(s=0;s<i.length;s++)e=i[s],o.indexOf(e)>=0||Object.prototype.propertyIsEnumerable.call(t,e)&&(n[e]=t[e])}return n}class T{static setBundleType(t){T.metadata.bundleType=t}static register(...t){p.add(...t)}register(...t){p.add(...t)}getComponent(t){return p.getComponent(t)}async initialize(){return await this.initializeCore(),this.validateCoreConfiguration(),await this.createCoreModules(),this}async initializeCore(){return this.session?this.session.setupSession(this.options).then((t=>{const{amount:o,shopperLocale:e,countryCode:s,paymentMethods:n}=t,i=x(t,["amount","shopperLocale","countryCode","paymentMethods"]);return this.setOptions(M(A({},i),{amount:this.options.order?this.options.order.remainingAmount:o,locale:this.options.locale||e,countryCode:this.options.countryCode||s})),this.createPaymentMethodsList(n),this})).catch((t=>(this.options.onError&&this.options.onError(t),Promise.reject(t)))):(this.createPaymentMethodsList(),Promise.resolve(this))}async fetchLocaleTranslations(){try{return await C(this.cdnTranslationsUrl,T.metadata.version,this.options.locale)}catch(n){var t,o,e,s;n instanceof y?null===(t=(o=this.options).onError)||void 0===t||t.call(o,n):null===(e=(s=this.options).onError)||void 0===e||e.call(s,new y("ERROR","Failed to fetch translation",{cause:n}))}}validateCoreConfiguration(){if(this.options.paymentMethodsConfiguration&&console.warn('WARNING: "paymentMethodsConfiguration" is supported only by Drop-in.'),!this.options.countryCode)throw new y(f,"You must specify a countryCode when initializing checkout.");this.options.locale||this.setOptions({locale:b}),this.options.locale=w(this.options.locale),this.options.translations=O(this.options.translations)}submitDetails(t){let o=null;var e,s;(this.options.onAdditionalDetails&&(o=new Promise(((o,e)=>{this.options.onAdditionalDetails({data:t},void 0,{resolve:o,reject:e})}))),this.session&&(o=this.session.submitDetails(t).catch((t=>{var o,e;return null===(o=(e=this.options).onError)||void 0===o||o.call(e,t),Promise.reject(t)}))),o)?o.then(d).then(m).then((t=>{var o,e;u(t),null===(o=(e=this.options).onPaymentCompleted)||void 0===o||o.call(e,t)})).catch((t=>{var o,e;u(t),null===(o=(e=this.options).onPaymentFailed)||void 0===o||o.call(e,t)})):null===(e=(s=this.options).onError)||void 0===e||e.call(s,new y("IMPLEMENTATION_ERROR",'It can not submit the details. The callback "onAdditionalDetails" or the Session is not setup correctly.'))}createFromAction(t,o={}){if(!t||!t.type){if(l(t,"action")&&l(t,"resultCode"))throw new Error('createFromAction::Invalid Action - the passed action object itself has an "action" property and a "resultCode": have you passed in the whole response object by mistake?');throw new Error('createFromAction::Invalid Action - the passed action object does not have a "type" property')}if(t.type){const e=t.type===v?`${t.type}${t.subtype}`:t.paymentMethodType;this.modules.analytics.sendAnalytics(e,{type:g,subtype:t.type,message:`${e} action was handled by the SDK`});const n=A({},this.getCorePropsForComponent(),o);return s(this,p,t,n)}return this.handleCreateError()}getCorePropsForComponent(){return M(A({},i(this.options)),{core:this,i18n:this.modules.i18n,modules:this.modules,session:this.session,loadingContext:this.loadingContext,cdnContext:this.cdnImagesUrl,createFromAction:this.createFromAction})}storeElementReference(t){t&&this.components.push(t)}handleCreateError(t){var o;const e=null!==(o=null==t?void 0:t.name)&&void 0!==o?o:"The passed payment method",s=t?`${e} is not a valid Checkout Component. What was passed as a txVariant was: ${JSON.stringify(t)}. Check if this payment method is configured in the Backoffice or if the txVariant is a valid one`:"No Payment Method component was passed";throw new Error(s)}createPaymentMethodsList(t){this.paymentMethodsResponse=new e(this.options.paymentMethodsResponse||t,this.options)}async createCoreModules(){if(this.modules)return;const e=await this.fetchLocaleTranslations();this.modules=Object.freeze({risk:new o(this,M(A({},this.options),{loadingContext:this.loadingContext})),analytics:n({loadingContext:this.loadingContext,analyticsContext:this.analyticsContext,clientKey:this.options.clientKey,locale:this.options.locale,analytics:this.options.analytics,amount:this.options.amount,bundleType:T.metadata.bundleType}),resources:new c(this.cdnImagesUrl),i18n:new t({locale:this.options.locale,translations:e,customTranslations:this.options.translations}),srPanel:new h(this,A({},this.options.srConfig))})}constructor(t){var o;E(this,"session",void 0),E(this,"paymentMethodsResponse",void 0),E(this,"modules",void 0),E(this,"options",void 0),E(this,"analyticsContext",void 0),E(this,"loadingContext",void 0),E(this,"cdnImagesUrl",void 0),E(this,"cdnTranslationsUrl",void 0),E(this,"components",[]),E(this,"update",((t={})=>(this.setOptions(t),this.initialize().then((()=>(this.components.forEach((o=>{const e=A({},t,this.session&&{session:this.session});o.update(e)})),this)))))),E(this,"remove",(t=>(this.components=this.components.filter((o=>o._id!==t._id)),t.unmount(),this))),E(this,"setOptions",(t=>{var o;this.options=M(A({},this.options,t),{locale:(null==t?void 0:t.locale)||(null===(o=this.options)||void 0===o?void 0:o.locale)})})),r(t),this.createFromAction=this.createFromAction.bind(this),this.setOptions(A({},j,t));const{apiUrl:e,analyticsUrl:s,cdnImagesUrl:n,cdnTranslationsUrl:i}=P(this.options.environment,this.options._environmentUrls);this.loadingContext=e,this.analyticsContext=s,this.cdnImagesUrl=n,this.cdnTranslationsUrl=i,this.session=this.options.session&&new a(this.options.session,this.options.clientKey,this.loadingContext);const l=null===(o=this.options.clientKey)||void 0===o?void 0:o.substring(0,4);var c,h;if(("test"===l||"live"===l)&&!this.loadingContext.includes(l))throw new y("IMPLEMENTATION_ERROR",`Error: you are using a ${l} clientKey against the ${(null===(c=this.options._environmentUrls)||void 0===c?void 0:c.api)||this.options.environment} environment`);"pub."===l&&console.debug(`The value you are passing as your "clientKey" looks like an originKey (${null===(h=this.options.clientKey)||void 0===h?void 0:h.substring(0,12)}..). Although this is supported it is not the recommended way to integrate. To generate a clientKey, see the documentation (https://docs.adyen.com/development-resources/client-side-authentication/migrate-from-origin-key-to-client-key/) for more details.`);this.options.exposeLibraryMetadata&&(window.AdyenWebMetadata=T.metadata)}}E(T,"metadata",{version:"6.5.1",bundleType:"eslegacy"}),E(T,"registry",p);export{T as default};
2
2
  //# sourceMappingURL=core.js.map
@@ -1,2 +1,2 @@
1
- const e={IDR:1,JPY:1,KRW:1,VND:1,BYR:1,CVE:1,DJF:1,GHC:1,GNF:1,KMF:1,ISK:1,PYG:1,RWF:1,UGX:1,VUV:1,XAF:1,XOF:1,XPF:1,MRO:10,BHD:1e3,IQD:1e3,JOD:1e3,KWD:1e3,OMR:1e3,LYD:1e3,TND:1e3};export{e as default};
1
+ const e={IDR:1,JPY:1,KRW:1,VND:1,BYR:1,CVE:1,DJF:1,GHC:1,GNF:1,KMF:1,PYG:1,RWF:1,UGX:1,VUV:1,XAF:1,XOF:1,XPF:1,MRO:10,BHD:1e3,IQD:1e3,JOD:1e3,KWD:1e3,OMR:1e3,LYD:1e3,TND:1e3};export{e as default};
2
2
  //# sourceMappingURL=currency-decimals.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"currency-decimals.js","sources":["../../../../src/utils/constants/currency-decimals.ts"],"sourcesContent":["const CURRENCY_DECIMALS = {\n // ZERO_DECIMAL_CURRENCIES\n IDR: 1,\n JPY: 1,\n KRW: 1,\n VND: 1,\n BYR: 1,\n CVE: 1,\n DJF: 1,\n GHC: 1,\n GNF: 1,\n KMF: 1,\n ISK: 1,\n PYG: 1,\n RWF: 1,\n UGX: 1,\n VUV: 1,\n XAF: 1,\n XOF: 1,\n XPF: 1,\n\n // ONE_DECIMAL_CURRENCIES\n MRO: 10,\n\n // THREE_DECIMAL_CURRENCIES\n BHD: 1000,\n IQD: 1000,\n JOD: 1000,\n KWD: 1000,\n OMR: 1000,\n LYD: 1000,\n TND: 1000\n};\n\nexport default CURRENCY_DECIMALS;\n"],"names":["CURRENCY_DECIMALS","IDR","JPY","KRW","VND","BYR","CVE","DJF","GHC","GNF","KMF","ISK","PYG","RWF","UGX","VUV","XAF","XOF","XPF","MRO","BHD","IQD","JOD","KWD","OMR","LYD","TND"],"mappings":"AAAA,MAAMA,EAAoB,CAEtBC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EAGLC,IAAK,GAGLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK"}
1
+ {"version":3,"file":"currency-decimals.js","sources":["../../../../src/utils/constants/currency-decimals.ts"],"sourcesContent":["const CURRENCY_DECIMALS = {\n // ZERO_DECIMAL_CURRENCIES\n IDR: 1,\n JPY: 1,\n KRW: 1,\n VND: 1,\n BYR: 1,\n CVE: 1,\n DJF: 1,\n GHC: 1,\n GNF: 1,\n KMF: 1,\n PYG: 1,\n RWF: 1,\n UGX: 1,\n VUV: 1,\n XAF: 1,\n XOF: 1,\n XPF: 1,\n\n // ONE_DECIMAL_CURRENCIES\n MRO: 10,\n\n // THREE_DECIMAL_CURRENCIES\n BHD: 1000,\n IQD: 1000,\n JOD: 1000,\n KWD: 1000,\n OMR: 1000,\n LYD: 1000,\n TND: 1000\n};\n\nexport default CURRENCY_DECIMALS;\n"],"names":["CURRENCY_DECIMALS","IDR","JPY","KRW","VND","BYR","CVE","DJF","GHC","GNF","KMF","PYG","RWF","UGX","VUV","XAF","XOF","XPF","MRO","BHD","IQD","JOD","KWD","OMR","LYD","TND"],"mappings":"AAAA,MAAMA,EAAoB,CAEtBC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EACLC,IAAK,EAGLC,IAAK,GAGLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,IAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"currency-minor-units.js","sources":["../../../../src/utils/constants/currency-minor-units.ts"],"sourcesContent":["/** Work around solution until chromium bug is fixed https://bugs.chromium.org/p/chromium/issues/detail?id=1381996\n * We need to hardcode minimumFractionDigits for the following currencies\n */\nexport const currencyMinorUnitsConfig = {\n RSD: { minimumFractionDigits: 2 },\n AFN: { minimumFractionDigits: 2 },\n ALL: { minimumFractionDigits: 2 },\n IRR: { minimumFractionDigits: 2 },\n LAK: { minimumFractionDigits: 2 },\n LBP: { minimumFractionDigits: 2 },\n MMK: { minimumFractionDigits: 2 },\n SOS: { minimumFractionDigits: 2 },\n SYP: { minimumFractionDigits: 2 },\n YER: { minimumFractionDigits: 2 },\n IQD: { minimumFractionDigits: 3 }\n};\n"],"names":["currencyMinorUnitsConfig","RSD","minimumFractionDigits","AFN","ALL","IRR","LAK","LBP","MMK","SOS","SYP","YER","IQD"],"mappings":"MAGaA,EAA2B,CACpCC,IAAK,CAAEC,sBAAuB,GAC9BC,IAAK,CAAED,sBAAuB,GAC9BE,IAAK,CAAEF,sBAAuB,GAC9BG,IAAK,CAAEH,sBAAuB,GAC9BI,IAAK,CAAEJ,sBAAuB,GAC9BK,IAAK,CAAEL,sBAAuB,GAC9BM,IAAK,CAAEN,sBAAuB,GAC9BO,IAAK,CAAEP,sBAAuB,GAC9BQ,IAAK,CAAER,sBAAuB,GAC9BS,IAAK,CAAET,sBAAuB,GAC9BU,IAAK,CAAEV,sBAAuB"}
1
+ {"version":3,"file":"currency-minor-units.js","sources":["../../../../src/utils/constants/currency-minor-units.ts"],"sourcesContent":["/** Work around solution until chromium bug is fixed https://bugs.chromium.org/p/chromium/issues/detail?id=1381996\n * We need to hardcode minimumFractionDigits for the following currencies in order to force them to have 2 decimal places and\n * not be rounded up to a major unit\n */\nexport const currencyMinorUnitsConfig = {\n RSD: { minimumFractionDigits: 2 },\n AFN: { minimumFractionDigits: 2 },\n ALL: { minimumFractionDigits: 2 },\n IRR: { minimumFractionDigits: 2 },\n LAK: { minimumFractionDigits: 2 },\n LBP: { minimumFractionDigits: 2 },\n MMK: { minimumFractionDigits: 2 },\n SOS: { minimumFractionDigits: 2 },\n SYP: { minimumFractionDigits: 2 },\n YER: { minimumFractionDigits: 2 },\n IQD: { minimumFractionDigits: 3 }\n};\n"],"names":["currencyMinorUnitsConfig","RSD","minimumFractionDigits","AFN","ALL","IRR","LAK","LBP","MMK","SOS","SYP","YER","IQD"],"mappings":"MAIaA,EAA2B,CACpCC,IAAK,CAAEC,sBAAuB,GAC9BC,IAAK,CAAED,sBAAuB,GAC9BE,IAAK,CAAEF,sBAAuB,GAC9BG,IAAK,CAAEH,sBAAuB,GAC9BI,IAAK,CAAEJ,sBAAuB,GAC9BK,IAAK,CAAEL,sBAAuB,GAC9BM,IAAK,CAAEN,sBAAuB,GAC9BO,IAAK,CAAEP,sBAAuB,GAC9BQ,IAAK,CAAER,sBAAuB,GAC9BS,IAAK,CAAET,sBAAuB,GAC9BU,IAAK,CAAEV,sBAAuB"}
@@ -1,2 +1,2 @@
1
- function r(r,e,l){return e in r?Object.defineProperty(r,e,{value:l,enumerable:!0,configurable:!0,writable:!0}):r[e]=l,r}function e(e){for(var l=1;l<arguments.length;l++){var a=null!=arguments[l]?arguments[l]:{},t=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(a).filter((function(r){return Object.getOwnPropertyDescriptor(a,r).enumerable})))),t.forEach((function(l){r(e,l,a[l])}))}return e}function l(r,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):function(r){var e=Object.keys(r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(r);e.push.apply(e,l)}return e}(Object(e)).forEach((function(l){Object.defineProperty(r,l,Object.getOwnPropertyDescriptor(e,l))})),r}const a=(r,e)=>Object.keys(r).filter((r=>!e.includes(r))).reduce(((e,l)=>(e[l]=r[l],e)),{}),t=(r,a,t,o,d)=>a.reduce(((r,a)=>{var i,s,n;return l(e({},r),{[a]:null!==(n=null!==(s=null!==(i=r[a])&&void 0!==i?i:null==d?void 0:d[a])&&void 0!==s?s:null==o?void 0:o[a])&&void 0!==n?n:t})}),r);function o({schema:r,defaultData:a,processField:t,fieldProblems:o}){const d=r=>{var e;if(void 0===a[r])return{valid:!1,errors:null,data:null,fieldProblems:null!==(e=null==o?void 0:o[r])&&void 0!==e?e:null};const[l,d]=t({key:r,value:a[r],mode:"blur"},{state:{data:a}});var i;return{valid:d.isValid&&!(null==o?void 0:o[r])||!1,errors:d.hasError()?d.getError():null,data:l,fieldProblems:null!==(i=null==o?void 0:o[r])&&void 0!==i?i:null}},i=r.reduce(((r,a)=>{const{valid:t,errors:o,data:i,fieldProblems:s}=d(a);return{valid:l(e({},r.valid),{[a]:t}),errors:l(e({},r.errors),{[a]:o}),data:l(e({},r.data),{[a]:i}),fieldProblems:l(e({},r.fieldProblems),{[a]:s})}}),{data:{},valid:{},errors:{},fieldProblems:{}});return{schema:r,data:i.data,valid:i.valid,errors:i.errors,fieldProblems:i.fieldProblems}}function d(r){return function(d,{type:i,key:s,value:n,mode:u,schema:c,defaultData:v,formValue:f,selectedSchema:b,fieldProblems:m}){const P=b||d.schema;switch(i){case"setData":return l(e({},d),{data:l(e({},d.data),{[s]:n})});case"setValid":return l(e({},d),{valid:l(e({},d.valid),{[s]:n})});case"setErrors":return l(e({},d),{errors:l(e({},d.errors),{[s]:n})});case"setFieldProblems":var y,p;return null!==(p=null==d||null===(y=d.schema)||void 0===y?void 0:y.reduce(((r,a)=>{var t,o;return l(e({},r),{fieldProblems:l(e({},d.fieldProblems),{[a]:null!==(o=null==m?void 0:m[a])&&void 0!==o?o:null}),valid:l(e({},d.valid),{[a]:(null===(t=d.valid)||void 0===t?void 0:t[a])&&!m[a]})})}),d))&&void 0!==p?p:d;case"updateField":{const[a,t]=r({key:s,value:n,mode:u},{state:d}),o=d.data[s],i=e({},d.fieldProblems);return o!==a&&(i[s]=null),l(e({},d),{data:l(e({},d.data),{[s]:a}),errors:l(e({},d.errors),{[s]:t.hasError()?t.getError():null}),valid:l(e({},d.valid),{[s]:t.isValid&&!i[s]||!1}),fieldProblems:i})}case"mergeForm":{const r=l(e({},d),{data:e({},d.data,f.data),errors:e({},d.errors,f.errors),valid:e({},d.valid,f.valid),fieldProblems:e({},d.fieldProblems,f.fieldProblems)});return r.valid&&(r.isValid=Object.values(r.valid).every((r=>r))),r}case"setSchema":{var O,h,j;const i=o({schema:c,defaultData:v,processField:r,fieldProblems:m}),s=d.schema.filter((r=>!c.includes(r))),n=c.filter((r=>!d.schema.includes(r))),u={data:a(d.data,n),errors:a(d.errors,n),valid:a(d.valid,n)},f=t(a(d.data,s),n,null,i.data,null===(O=d.local)||void 0===O?void 0:O.data),b=t(a(d.valid,s),n,!1,i.valid,null===(h=d.local)||void 0===h?void 0:h.valid),P=t(a(d.errors,s),n,null,i.errors,null===(j=d.local)||void 0===j?void 0:j.errors);return l(e({},d),{schema:c,data:f,valid:b,errors:P,local:u})}case"validateForm":{const a=P.reduce(((a,t)=>{const[,o]=r({key:t,value:d.data[t],mode:"blur"},{state:d});return{valid:l(e({},a.valid),{[t]:o.isValid&&!d.fieldProblems[t]||!1}),errors:l(e({},a.errors),{[t]:o.hasError(!0)?o.getError(!0):null})}}),{valid:d.valid,errors:d.errors});return l(e({},d),{valid:a.valid,errors:a.errors})}default:throw new Error("Undefined useForm action")}}}export{d as getReducer,o as init};
1
+ function r(r,e,l){return e in r?Object.defineProperty(r,e,{value:l,enumerable:!0,configurable:!0,writable:!0}):r[e]=l,r}function e(e){for(var l=1;l<arguments.length;l++){var a=null!=arguments[l]?arguments[l]:{},t=Object.keys(a);"function"==typeof Object.getOwnPropertySymbols&&(t=t.concat(Object.getOwnPropertySymbols(a).filter((function(r){return Object.getOwnPropertyDescriptor(a,r).enumerable})))),t.forEach((function(l){r(e,l,a[l])}))}return e}function l(r,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(e)):function(r){var e=Object.keys(r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(r);e.push.apply(e,l)}return e}(Object(e)).forEach((function(l){Object.defineProperty(r,l,Object.getOwnPropertyDescriptor(e,l))})),r}const a=(r,e)=>Object.keys(r).filter((r=>!e.includes(r))).reduce(((e,l)=>(e[l]=r[l],e)),{}),t=(r,a,t,o,d)=>a.reduce(((r,a)=>{var i,s,n;return l(e({},r),{[a]:null!==(n=null!==(s=null!==(i=r[a])&&void 0!==i?i:null==d?void 0:d[a])&&void 0!==s?s:null==o?void 0:o[a])&&void 0!==n?n:t})}),r);function o({schema:r,defaultData:a,processField:t,fieldProblems:o}){const d=r=>{var e;if(void 0===a[r])return{valid:!1,errors:null,data:null,fieldProblems:null!==(e=null==o?void 0:o[r])&&void 0!==e?e:null};const[l,d]=t({key:r,value:a[r],mode:"blur"},{state:{data:a}});var i;return{valid:d.isValid&&!(null==o?void 0:o[r])||!1,errors:d.hasError()?d.getError():null,data:l,fieldProblems:null!==(i=null==o?void 0:o[r])&&void 0!==i?i:null}},i=r.reduce(((r,a)=>{const{valid:t,errors:o,data:i,fieldProblems:s}=d(a);return{valid:l(e({},r.valid),{[a]:t}),errors:l(e({},r.errors),{[a]:o}),data:l(e({},r.data),{[a]:i}),fieldProblems:l(e({},r.fieldProblems),{[a]:s})}}),{data:{},valid:{},errors:{},fieldProblems:{}});return{schema:r,data:i.data,valid:i.valid,errors:i.errors,fieldProblems:i.fieldProblems}}function d(r){return function(d,{type:i,key:s,value:n,mode:u,schema:c,defaultData:v,formValue:f,selectedSchema:m,fieldProblems:b,data:P}){const y=m||d.schema;switch(i){case"setData":return l(e({},d),{data:l(e({},d.data),{[s]:n})});case"mergeData":return l(e({},d),{data:e({},d.data,P)});case"setValid":return l(e({},d),{valid:l(e({},d.valid),{[s]:n})});case"setErrors":return l(e({},d),{errors:l(e({},d.errors),{[s]:n})});case"setFieldProblems":var p,O;return null!==(O=null==d||null===(p=d.schema)||void 0===p?void 0:p.reduce(((r,a)=>{var t,o;return l(e({},r),{fieldProblems:l(e({},d.fieldProblems),{[a]:null!==(o=null==b?void 0:b[a])&&void 0!==o?o:null}),valid:l(e({},d.valid),{[a]:(null===(t=d.valid)||void 0===t?void 0:t[a])&&!b[a]})})}),d))&&void 0!==O?O:d;case"updateField":{const[a,t]=r({key:s,value:n,mode:u},{state:d}),o=d.data[s],i=e({},d.fieldProblems);return o!==a&&(i[s]=null),l(e({},d),{data:l(e({},d.data),{[s]:a}),errors:l(e({},d.errors),{[s]:t.hasError()?t.getError():null}),valid:l(e({},d.valid),{[s]:t.isValid&&!i[s]||!1}),fieldProblems:i})}case"mergeForm":{const r=l(e({},d),{data:e({},d.data,f.data),errors:e({},d.errors,f.errors),valid:e({},d.valid,f.valid),fieldProblems:e({},d.fieldProblems,f.fieldProblems)});return r.valid&&(r.isValid=Object.values(r.valid).every((r=>r))),r}case"setSchema":{var h,j,g;const i=o({schema:c,defaultData:v,processField:r,fieldProblems:b}),s=d.schema.filter((r=>!c.includes(r))),n=c.filter((r=>!d.schema.includes(r))),u={data:a(d.data,n),errors:a(d.errors,n),valid:a(d.valid,n)},f=t(a(d.data,s),n,null,i.data,null===(h=d.local)||void 0===h?void 0:h.data),m=t(a(d.valid,s),n,!1,i.valid,null===(j=d.local)||void 0===j?void 0:j.valid),P=t(a(d.errors,s),n,null,i.errors,null===(g=d.local)||void 0===g?void 0:g.errors);return l(e({},d),{schema:c,data:f,valid:m,errors:P,local:u})}case"validateForm":{const a=y.reduce(((a,t)=>{const[,o]=r({key:t,value:d.data[t],mode:"blur"},{state:d});return{valid:l(e({},a.valid),{[t]:o.isValid&&!d.fieldProblems[t]||!1}),errors:l(e({},a.errors),{[t]:o.hasError(!0)?o.getError(!0):null})}}),{valid:d.valid,errors:d.errors});return l(e({},d),{valid:a.valid,errors:a.errors})}default:throw new Error("Undefined useForm action")}}}export{d as getReducer,o as init};
2
2
  //# sourceMappingURL=reducer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sources":["../../../../src/utils/useForm/reducer.ts"],"sourcesContent":["const omitKeys = (obj, omit) =>\n Object.keys(obj)\n .filter(k => !omit.includes(k))\n .reduce((a, c) => {\n a[c] = obj[c];\n return a;\n }, {});\n\nconst addKeys = (obj, add, initialValue, defaultData, pendingData) =>\n add.reduce((a, c) => ({ ...a, [c]: a[c] ?? pendingData?.[c] ?? defaultData?.[c] ?? initialValue }), obj);\n\n/**\n * Processes default data and sets as default in state\n */\nexport function init({ schema, defaultData, processField, fieldProblems }) {\n const getProcessedState = fieldKey => {\n if (typeof defaultData[fieldKey] === 'undefined')\n return { valid: false, errors: null, data: null, fieldProblems: fieldProblems?.[fieldKey] ?? null };\n\n const [formattedValue, validationResult] = processField(\n { key: fieldKey, value: defaultData[fieldKey], mode: 'blur' },\n { state: { data: defaultData } }\n );\n\n return {\n valid: (validationResult.isValid && !fieldProblems?.[fieldKey]) || false,\n errors: validationResult.hasError() ? validationResult.getError() : null,\n data: formattedValue,\n fieldProblems: fieldProblems?.[fieldKey] ?? null\n };\n };\n\n const formData = schema.reduce(\n (acc: any, fieldKey) => {\n const { valid, errors, data, fieldProblems } = getProcessedState(fieldKey);\n\n return {\n valid: { ...acc.valid, [fieldKey]: valid },\n errors: { ...acc.errors, [fieldKey]: errors },\n data: { ...acc.data, [fieldKey]: data },\n fieldProblems: { ...acc.fieldProblems, [fieldKey]: fieldProblems }\n };\n },\n { data: {}, valid: {}, errors: {}, fieldProblems: {} }\n );\n\n return {\n schema,\n data: formData.data,\n valid: formData.valid,\n errors: formData.errors,\n fieldProblems: formData.fieldProblems\n };\n}\n\nexport function getReducer(processField) {\n return function reducer(state, { type, key, value, mode, schema, defaultData, formValue, selectedSchema, fieldProblems }: any) {\n const validationSchema: string[] = selectedSchema || state.schema;\n\n switch (type) {\n case 'setData': {\n return { ...state, data: { ...state['data'], [key]: value } };\n }\n case 'setValid': {\n return { ...state, valid: { ...state['valid'], [key]: value } };\n }\n case 'setErrors': {\n return { ...state, errors: { ...state['errors'], [key]: value } };\n }\n case 'setFieldProblems': {\n return (\n state?.schema?.reduce(\n (acc, key) => ({\n ...acc,\n fieldProblems: { ...state['fieldProblems'], [key]: fieldProblems?.[key] ?? null },\n valid: { ...state['valid'], [key]: state['valid']?.[key] && !fieldProblems[key] }\n }),\n state\n ) ?? state\n );\n }\n case 'updateField': {\n const [formattedValue, validation] = processField({ key, value, mode }, { state });\n const oldValue = state.data[key];\n const fieldProblems = { ...state.fieldProblems };\n if (oldValue !== formattedValue) {\n fieldProblems[key] = null;\n }\n return {\n ...state,\n data: { ...state['data'], [key]: formattedValue },\n errors: { ...state['errors'], [key]: validation.hasError() ? validation.getError() : null },\n valid: { ...state['valid'], [key]: (validation.isValid && !fieldProblems[key]) || false },\n fieldProblems\n };\n }\n case 'mergeForm': {\n // To provide a uniform result from forms even if there are multiple levels of nested forms are present\n const mergedState = {\n ...state,\n data: { ...state['data'], ...formValue['data'] },\n errors: { ...state['errors'], ...formValue['errors'] },\n valid: { ...state['valid'], ...formValue['valid'] },\n fieldProblems: { ...state['fieldProblems'], ...formValue['fieldProblems'] }\n };\n if (mergedState['valid']) {\n mergedState.isValid = Object.values(mergedState.valid).every(isValid => isValid);\n }\n return mergedState;\n }\n case 'setSchema': {\n const defaultState = init({ schema, defaultData, processField, fieldProblems });\n const removedSchemaFields = state.schema.filter(x => !schema.includes(x));\n const newSchemaFields = schema.filter(x => !state.schema.includes(x));\n\n // if we remove a key from the schema we also lost the latest value of the field\n // to prevent this we have to store the value in a local state so we can recover it when the key is re-added to the schema\n const local = {\n data: omitKeys(state.data, newSchemaFields),\n errors: omitKeys(state.errors, newSchemaFields),\n valid: omitKeys(state.valid, newSchemaFields)\n };\n\n // reindex data and validation according to the new schema\n const data = addKeys(omitKeys(state.data, removedSchemaFields), newSchemaFields, null, defaultState.data, state.local?.data);\n const valid = addKeys(omitKeys(state.valid, removedSchemaFields), newSchemaFields, false, defaultState.valid, state.local?.valid);\n const errors = addKeys(omitKeys(state.errors, removedSchemaFields), newSchemaFields, null, defaultState.errors, state.local?.errors);\n\n return { ...state, schema, data, valid, errors, local };\n }\n case 'validateForm': {\n const formValidation = validationSchema.reduce(\n (acc, cur) => {\n const [, validation] = processField({ key: cur, value: state.data[cur], mode: 'blur' }, { state });\n return {\n valid: { ...acc['valid'], [cur]: (validation.isValid && !state.fieldProblems[cur]) || false },\n errors: { ...acc['errors'], [cur]: validation.hasError(true) ? validation.getError(true) : null }\n };\n },\n { valid: state.valid, errors: state.errors }\n );\n\n return { ...state, valid: formValidation.valid, errors: formValidation.errors };\n }\n default:\n throw new Error('Undefined useForm action');\n }\n };\n}\n"],"names":["omitKeys","obj","omit","Object","keys","filter","k","includes","reduce","a","c","addKeys","add","initialValue","defaultData","pendingData","_object_spread_props","init","schema","processField","fieldProblems","getProcessedState","fieldKey","valid","errors","data","formattedValue","validationResult","key","value","mode","state","isValid","hasError","getError","formData","acc","_object_spread","getReducer","type","formValue","selectedSchema","validationSchema","validation","oldValue","mergedState","values","every","defaultState","removedSchemaFields","x","newSchemaFields","local","formValidation","cur","Error"],"mappings":"+yBAAA,MAAMA,EAAW,CAACC,EAAKC,IACnBC,OAAOC,KAAKH,GACPI,QAAOC,IAAMJ,EAAKK,SAASD,KAC3BE,QAAO,CAACC,EAAGC,KACRD,EAAEC,GAAKT,EAAIS,GACJD,IACR,CAAC,GAENE,EAAU,CAACV,EAAKW,EAAKC,EAAcC,EAAaC,IAClDH,EAAIJ,QAAO,CAACC,EAAGC,KAAoBD,IAAAA,EAAAA,EAAAA,SAAbO,EAAKP,EAAAA,CAAAA,EAAAA,GAAAA,CAAGC,CAACA,GAAgD,QAA5CD,EAAwB,QAAxBA,EAAI,QAAJA,EAAAA,EAAEC,UAAFD,IAAAA,EAAAA,EAAQM,aAAAA,EAAAA,EAAcL,UAAtBD,IAAAA,EAAAA,EAA4BK,aAAAA,EAAAA,EAAcJ,cAA1CD,EAAAA,EAAgDI,MAAiBZ,GAKjG,SAASgB,GAAKC,OAAEA,EAAMJ,YAAEA,EAAWK,aAAEA,EAAYC,cAAEA,IACtD,MAAMC,EAAoBC,IAE8CF,IAAAA,EADpE,QAAqC,IAA1BN,EAAYQ,GACnB,MAAO,CAAEC,OAAO,EAAOC,OAAQ,KAAMC,KAAM,KAAML,cAAeA,QAAAA,EAAAA,aAAAA,EAAAA,EAAgBE,UAAhBF,IAAAA,EAAAA,EAA6B,MAEjG,MAAOM,EAAgBC,GAAoBR,EACvC,CAAES,IAAKN,EAAUO,MAAOf,EAAYQ,GAAWQ,KAAM,QACrD,CAAEC,MAAO,CAAEN,KAAMX,KAOFM,IAAAA,EAJnB,MAAO,CACHG,MAAQI,EAAiBK,WAAYZ,aAAAA,EAAAA,EAAgBE,MAAc,EACnEE,OAAQG,EAAiBM,WAAaN,EAAiBO,WAAa,KACpET,KAAMC,EACNN,cAAeA,QAAAA,EAAAA,aAAAA,EAAAA,EAAgBE,UAAhBF,IAAAA,EAAAA,EAA6B,KAChD,EAGEe,EAAWjB,EAAOV,QACpB,CAAC4B,EAAUd,KACP,MAAMC,MAAEA,EAAKC,OAAEA,EAAMC,KAAEA,EAAIL,cAAEA,GAAkBC,EAAkBC,GAEjE,MAAO,CACHC,MAAOP,EAAAqB,EAAA,CAAA,EAAKD,EAAIb,OAAK,CAAED,CAACA,GAAWC,IACnCC,OAAQR,EAAAqB,EAAA,CAAA,EAAKD,EAAIZ,QAAM,CAAEF,CAACA,GAAWE,IACrCC,KAAMT,EAAAqB,EAAA,CAAA,EAAKD,EAAIX,MAAI,CAAEH,CAACA,GAAWG,IACjCL,cAAeJ,EAAAqB,EAAA,CAAA,EAAKD,EAAIhB,eAAa,CAAEE,CAACA,GAAWF,IACvD,GAEJ,CAAEK,KAAM,CAAC,EAAGF,MAAO,CAAC,EAAGC,OAAQ,CAAC,EAAGJ,cAAe,CAAC,IAGvD,MAAO,CACHF,SACAO,KAAMU,EAASV,KACfF,MAAOY,EAASZ,MAChBC,OAAQW,EAASX,OACjBJ,cAAee,EAASf,cAEhC,CAEO,SAASkB,EAAWnB,GACvB,OAAO,SAAiBY,GAAOQ,KAAEA,EAAIX,IAAEA,EAAGC,MAAEA,EAAKC,KAAEA,EAAIZ,OAAEA,EAAMJ,YAAEA,EAAW0B,UAAEA,EAASC,eAAEA,EAAcrB,cAAEA,IACrG,MAAMsB,EAA6BD,GAAkBV,EAAMb,OAE3D,OAAQqB,GACJ,IAAK,UACD,OAAOvB,EAAKe,EAAAA,CAAAA,EAAAA,GAAAA,CAAON,KAAMT,EAAAqB,EAAA,CAAA,EAAKN,EAAa,MAAA,CAAEH,CAACA,GAAMC,MAExD,IAAK,WACD,OAAOb,EAAKe,EAAAA,CAAAA,EAAAA,GAAAA,CAAOR,MAAOP,EAAAqB,EAAA,CAAA,EAAKN,EAAc,OAAA,CAAEH,CAACA,GAAMC,MAE1D,IAAK,YACD,OAAOb,EAAKe,EAAAA,CAAAA,EAAAA,GAAAA,CAAOP,OAAQR,EAAAqB,EAAA,CAAA,EAAKN,EAAe,QAAA,CAAEH,CAACA,GAAMC,MAE5D,IAAK,mBAEGE,IAAAA,EAAAA,EADJ,OAOQA,QANJA,EAAAA,SAAa,QAAbA,EAAAA,EAAOb,cAAPa,IAAAA,OAAAA,EAAAA,EAAevB,QACX,CAAC4B,EAAKR,KAGiCG,IAAAA,EADgBX,SAFxCJ,EACRoB,EAAAA,CAAAA,EAAAA,GAAAA,CACHhB,cAAeJ,EAAAqB,EAAA,CAAA,EAAKN,EAAsB,eAAA,CAAEH,CAACA,GAAMR,QAAAA,EAAAA,aAAAA,EAAAA,EAAgBQ,UAAhBR,IAAAA,EAAAA,EAAwB,OAC3EG,MAAOP,EAAAqB,EAAA,CAAA,EAAKN,EAAc,OAAA,CAAEH,CAACA,IAAoB,QAAdG,EAAAA,EAAc,aAAdA,IAAAA,OAAAA,EAAAA,EAAiBH,MAASR,EAAcQ,SAE/EG,cANJA,EAAAA,EAOKA,EAGb,IAAK,cAAe,CAChB,MAAOL,EAAgBiB,GAAcxB,EAAa,CAAES,MAAKC,QAAOC,QAAQ,CAAEC,UACpEa,EAAWb,EAAMN,KAAKG,GACtBR,EAAgBiB,EAAKN,CAAAA,EAAAA,EAAMX,eAIjC,OAHIwB,IAAalB,IACbN,EAAcQ,GAAO,MAElBZ,EACAe,EAAAA,CAAAA,EAAAA,GAAAA,CACHN,KAAMT,EAAAqB,EAAA,CAAA,EAAKN,EAAa,MAAA,CAAEH,CAACA,GAAMF,IACjCF,OAAQR,EAAAqB,EAAA,CAAA,EAAKN,EAAe,QAAA,CAAEH,CAACA,GAAMe,EAAWV,WAAaU,EAAWT,WAAa,OACrFX,MAAOP,EAAAqB,EAAA,CAAA,EAAKN,EAAc,OAAA,CAAEH,CAACA,GAAOe,EAAWX,UAAYZ,EAAcQ,KAAS,IAClFR,iBAER,CACA,IAAK,YAAa,CAEd,MAAMyB,EAAc7B,EACbe,EAAAA,CAAAA,EAAAA,GAAAA,CACHN,KAAMY,KAAKN,OAAkBS,EAAiB,MAC9ChB,OAAQa,KAAKN,SAAoBS,EAAmB,QACpDjB,MAAOc,KAAKN,QAAmBS,EAAkB,OACjDpB,cAAeiB,KAAKN,gBAA2BS,EAA0B,iBAK7E,OAHIK,EAAY,QACZA,EAAYb,QAAU7B,OAAO2C,OAAOD,EAAYtB,OAAOwB,OAAMf,GAAWA,KAErEa,CACX,CACA,IAAK,YAAa,CAc4Fd,IAAAA,EACIA,EACEA,EAfhH,MAAMiB,EAAe/B,EAAK,CAAEC,SAAQJ,cAAaK,eAAcC,kBACzD6B,EAAsBlB,EAAMb,OAAOb,QAAO6C,IAAMhC,EAAOX,SAAS2C,KAChEC,EAAkBjC,EAAOb,QAAO6C,IAAMnB,EAAMb,OAAOX,SAAS2C,KAI5DE,EAAQ,CACV3B,KAAMzB,EAAS+B,EAAMN,KAAM0B,GAC3B3B,OAAQxB,EAAS+B,EAAMP,OAAQ2B,GAC/B5B,MAAOvB,EAAS+B,EAAMR,MAAO4B,IAI3B1B,EAAOd,EAAQX,EAAS+B,EAAMN,KAAMwB,GAAsBE,EAAiB,KAAMH,EAAavB,KAAMM,QAAAA,EAAAA,EAAMqB,aAANrB,IAAAA,OAAAA,EAAAA,EAAaN,MACjHF,EAAQZ,EAAQX,EAAS+B,EAAMR,MAAO0B,GAAsBE,GAAiB,EAAOH,EAAazB,MAAOQ,QAAAA,EAAAA,EAAMqB,aAANrB,IAAAA,OAAAA,EAAAA,EAAaR,OACrHC,EAASb,EAAQX,EAAS+B,EAAMP,OAAQyB,GAAsBE,EAAiB,KAAMH,EAAaxB,OAAQO,QAAAA,EAAAA,EAAMqB,aAANrB,IAAAA,OAAAA,EAAAA,EAAaP,QAE7H,OAAOR,EAAKe,EAAAA,CAAAA,EAAAA,GAAAA,CAAOb,SAAQO,OAAMF,QAAOC,SAAQ4B,SACpD,CACA,IAAK,eAAgB,CACjB,MAAMC,EAAiBX,EAAiBlC,QACpC,CAAC4B,EAAKkB,KACF,MAASX,CAAAA,GAAcxB,EAAa,CAAES,IAAK0B,EAAKzB,MAAOE,EAAMN,KAAK6B,GAAMxB,KAAM,QAAU,CAAEC,UAC1F,MAAO,CACHR,MAAOP,EAAAqB,EAAA,CAAA,EAAKD,EAAY,OAAA,CAAEkB,CAACA,GAAOX,EAAWX,UAAYD,EAAMX,cAAckC,KAAS,IACtF9B,OAAQR,EAAAqB,EAAA,CAAA,EAAKD,EAAa,QAAA,CAAEkB,CAACA,GAAMX,EAAWV,UAAS,GAAQU,EAAWT,UAAS,GAAQ,OAC/F,GAEJ,CAAEX,MAAOQ,EAAMR,MAAOC,OAAQO,EAAMP,SAGxC,OAAOR,EAAKe,EAAAA,CAAAA,EAAAA,GAAAA,CAAOR,MAAO8B,EAAe9B,MAAOC,OAAQ6B,EAAe7B,QAC3E,CACA,QACI,MAAM,IAAI+B,MAAM,4BAE5B,CACJ"}
1
+ {"version":3,"file":"reducer.js","sources":["../../../../src/utils/useForm/reducer.ts"],"sourcesContent":["const omitKeys = (obj, omit) =>\n Object.keys(obj)\n .filter(k => !omit.includes(k))\n .reduce((a, c) => {\n a[c] = obj[c];\n return a;\n }, {});\n\nconst addKeys = (obj, add, initialValue, defaultData, pendingData) =>\n add.reduce((a, c) => ({ ...a, [c]: a[c] ?? pendingData?.[c] ?? defaultData?.[c] ?? initialValue }), obj);\n\n/**\n * Processes default data and sets as default in state\n */\nexport function init({ schema, defaultData, processField, fieldProblems }) {\n const getProcessedState = fieldKey => {\n if (typeof defaultData[fieldKey] === 'undefined')\n return { valid: false, errors: null, data: null, fieldProblems: fieldProblems?.[fieldKey] ?? null };\n\n const [formattedValue, validationResult] = processField(\n { key: fieldKey, value: defaultData[fieldKey], mode: 'blur' },\n { state: { data: defaultData } }\n );\n\n return {\n valid: (validationResult.isValid && !fieldProblems?.[fieldKey]) || false,\n errors: validationResult.hasError() ? validationResult.getError() : null,\n data: formattedValue,\n fieldProblems: fieldProblems?.[fieldKey] ?? null\n };\n };\n\n const formData = schema.reduce(\n (acc: any, fieldKey) => {\n const { valid, errors, data, fieldProblems } = getProcessedState(fieldKey);\n\n return {\n valid: { ...acc.valid, [fieldKey]: valid },\n errors: { ...acc.errors, [fieldKey]: errors },\n data: { ...acc.data, [fieldKey]: data },\n fieldProblems: { ...acc.fieldProblems, [fieldKey]: fieldProblems }\n };\n },\n { data: {}, valid: {}, errors: {}, fieldProblems: {} }\n );\n\n return {\n schema,\n data: formData.data,\n valid: formData.valid,\n errors: formData.errors,\n fieldProblems: formData.fieldProblems\n };\n}\n\nexport function getReducer(processField) {\n return function reducer(state, { type, key, value, mode, schema, defaultData, formValue, selectedSchema, fieldProblems, data }) {\n const validationSchema: string[] = selectedSchema || state.schema;\n\n switch (type) {\n case 'setData': {\n return { ...state, data: { ...state['data'], [key]: value } };\n }\n case 'mergeData': {\n return { ...state, data: { ...state['data'], ...data } };\n }\n case 'setValid': {\n return { ...state, valid: { ...state['valid'], [key]: value } };\n }\n case 'setErrors': {\n return { ...state, errors: { ...state['errors'], [key]: value } };\n }\n case 'setFieldProblems': {\n return (\n state?.schema?.reduce(\n (acc, key) => ({\n ...acc,\n fieldProblems: { ...state['fieldProblems'], [key]: fieldProblems?.[key] ?? null },\n valid: { ...state['valid'], [key]: state['valid']?.[key] && !fieldProblems[key] }\n }),\n state\n ) ?? state\n );\n }\n case 'updateField': {\n const [formattedValue, validation] = processField({ key, value, mode }, { state });\n const oldValue = state.data[key];\n const fieldProblems = { ...state.fieldProblems };\n if (oldValue !== formattedValue) {\n fieldProblems[key] = null;\n }\n return {\n ...state,\n data: { ...state['data'], [key]: formattedValue },\n errors: { ...state['errors'], [key]: validation.hasError() ? validation.getError() : null },\n valid: { ...state['valid'], [key]: (validation.isValid && !fieldProblems[key]) || false },\n fieldProblems\n };\n }\n case 'mergeForm': {\n // To provide a uniform result from forms even if there are multiple levels of nested forms are present\n const mergedState = {\n ...state,\n data: { ...state['data'], ...formValue['data'] },\n errors: { ...state['errors'], ...formValue['errors'] },\n valid: { ...state['valid'], ...formValue['valid'] },\n fieldProblems: { ...state['fieldProblems'], ...formValue['fieldProblems'] }\n };\n if (mergedState['valid']) {\n mergedState.isValid = Object.values(mergedState.valid).every(isValid => isValid);\n }\n return mergedState;\n }\n case 'setSchema': {\n const defaultState = init({ schema, defaultData, processField, fieldProblems });\n const removedSchemaFields = state.schema.filter(x => !schema.includes(x));\n const newSchemaFields = schema.filter(x => !state.schema.includes(x));\n\n // if we remove a key from the schema we also lost the latest value of the field\n // to prevent this we have to store the value in a local state so we can recover it when the key is re-added to the schema\n const local = {\n data: omitKeys(state.data, newSchemaFields),\n errors: omitKeys(state.errors, newSchemaFields),\n valid: omitKeys(state.valid, newSchemaFields)\n };\n\n // reindex data and validation according to the new schema\n const data = addKeys(omitKeys(state.data, removedSchemaFields), newSchemaFields, null, defaultState.data, state.local?.data);\n const valid = addKeys(omitKeys(state.valid, removedSchemaFields), newSchemaFields, false, defaultState.valid, state.local?.valid);\n const errors = addKeys(omitKeys(state.errors, removedSchemaFields), newSchemaFields, null, defaultState.errors, state.local?.errors);\n\n return { ...state, schema, data, valid, errors, local };\n }\n case 'validateForm': {\n const formValidation = validationSchema.reduce(\n (acc, cur) => {\n const [, validation] = processField({ key: cur, value: state.data[cur], mode: 'blur' }, { state });\n return {\n valid: { ...acc['valid'], [cur]: (validation.isValid && !state.fieldProblems[cur]) || false },\n errors: { ...acc['errors'], [cur]: validation.hasError(true) ? validation.getError(true) : null }\n };\n },\n { valid: state.valid, errors: state.errors }\n );\n\n return { ...state, valid: formValidation.valid, errors: formValidation.errors };\n }\n default:\n throw new Error('Undefined useForm action');\n }\n };\n}\n"],"names":["omitKeys","obj","omit","Object","keys","filter","k","includes","reduce","a","c","addKeys","add","initialValue","defaultData","pendingData","_object_spread_props","init","schema","processField","fieldProblems","getProcessedState","fieldKey","valid","errors","data","formattedValue","validationResult","key","value","mode","state","isValid","hasError","getError","formData","acc","_object_spread","getReducer","type","formValue","selectedSchema","validationSchema","validation","oldValue","mergedState","values","every","defaultState","removedSchemaFields","x","newSchemaFields","local","formValidation","cur","Error"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{useMemo as e,useReducer as a,useCallback as t,useEffect as r}from"../../external/preact/hooks/dist/hooks.js";import l from"../Validator/Validator.js";import{getReducer as s,init as o}from"./reducer.js";function d(d){const{rules:m={},formatters:i={},defaultData:u={},fieldProblems:c={},schema:n=[]}=d,f=e((()=>new l(m)),[m]),h=({key:e,value:a,mode:t},r)=>{const l=null==i?void 0:i[e],s=function(e){return e&&"formatterFn"in e}(l)?l.formatterFn:l,o=s&&"function"==typeof s?s(null!=a?a:"",r):a;return[o,f.validate({key:e,value:o,mode:t},r)]},[p,y]=a(s(h),{defaultData:u,schema:null!=n?n:[],processField:h,fieldProblems:c},o),v=e((()=>p.schema.reduce(((e,a)=>e&&p.valid[a]),!0)),[p.schema,p.valid]),k=t(((e=null)=>{y({type:"validateForm",selectedSchema:e})}),[]),F=t(((e,a)=>y({type:"setErrors",key:e,value:a})),[]),b=t(((e,a)=>y({type:"setValid",key:e,value:a})),[]),g=t(((e,a)=>y({type:"setData",key:e,value:a})),[]),P=t((e=>y({type:"setSchema",schema:e,defaultData:u})),[p.schema]),V=t((e=>y({type:"mergeForm",formValue:e})),[]),D=t((e=>y({type:"setFieldProblems",fieldProblems:e})),[p.schema]);return r((()=>{D(null!=c?c:{})}),[JSON.stringify(c)]),{handleChangeFor:(e,a)=>t=>{const r=((e,a)=>a.target?"checkbox"===a.target.type?!p.data[e]:a.target.value:a)(e,t);y({type:"updateField",key:e,value:r,mode:a})},triggerValidation:k,setSchema:P,setData:g,setValid:b,setErrors:F,isValid:v,mergeForm:V,setFieldProblems:D,schema:p.schema,valid:p.valid,errors:p.errors,data:p.data,fieldProblems:p.fieldProblems}}export{d as default};
1
+ import{useMemo as e,useReducer as a,useCallback as t,useEffect as r}from"../../external/preact/hooks/dist/hooks.js";import l from"../Validator/Validator.js";import{getReducer as s,init as o}from"./reducer.js";function d(d){const{rules:m={},formatters:i={},defaultData:u={},fieldProblems:c={},schema:n=[]}=d,f=e((()=>new l(m)),[m]),p=({key:e,value:a,mode:t},r)=>{const l=null==i?void 0:i[e],s=function(e){return e&&"formatterFn"in e}(l)?l.formatterFn:l,o=s&&"function"==typeof s?s(null!=a?a:"",r):a;return[o,f.validate({key:e,value:o,mode:t},r)]},[y,h]=a(s(p),{defaultData:u,schema:null!=n?n:[],processField:p,fieldProblems:c},o),v=e((()=>y.schema.reduce(((e,a)=>e&&y.valid[a]),!0)),[y.schema,y.valid]),g=t(((e=null)=>{h({type:"validateForm",selectedSchema:e})}),[]),k=t(((e,a)=>h({type:"setErrors",key:e,value:a})),[]),F=t(((e,a)=>h({type:"setValid",key:e,value:a})),[]),b=t(((e,a)=>h({type:"setData",key:e,value:a})),[]),D=t((e=>h({type:"mergeData",data:e})),[]),P=t((e=>h({type:"setSchema",schema:e,defaultData:u})),[y.schema]),V=t((e=>h({type:"mergeForm",formValue:e})),[]),S=t((e=>h({type:"setFieldProblems",fieldProblems:e})),[y.schema]);return r((()=>{S(null!=c?c:{})}),[JSON.stringify(c)]),{handleChangeFor:(e,a)=>t=>{const r=((e,a)=>a.target?"checkbox"===a.target.type?!y.data[e]:a.target.value:a)(e,t);h({type:"updateField",key:e,value:r,mode:a})},triggerValidation:g,setSchema:P,setData:b,mergeData:D,setValid:F,setErrors:k,isValid:v,mergeForm:V,setFieldProblems:S,schema:y.schema,valid:y.valid,errors:y.errors,data:y.data,fieldProblems:y.fieldProblems}}export{d as default};
2
2
  //# sourceMappingURL=useForm.js.map