@adyen/adyen-web 6.22.0 → 6.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (329) hide show
  1. package/README.md +8 -7
  2. package/dist/cjs/adyen.css +5 -4
  3. package/dist/cjs/adyen.css.map +1 -1
  4. package/dist/cjs/index.cjs +2 -2
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/index.d.cts +292 -117
  7. package/dist/es/adyen.css +5 -4
  8. package/dist/es/adyen.css.map +1 -1
  9. package/dist/es/components/AmazonPay/AmazonPay.js +1 -1
  10. package/dist/es/components/AmazonPay/AmazonPay.js.map +1 -1
  11. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  12. package/dist/es/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  13. package/dist/es/components/ApplePay/ApplePay.js +1 -1
  14. package/dist/es/components/ApplePay/ApplePay.js.map +1 -1
  15. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js +1 -1
  16. package/dist/es/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  17. package/dist/es/components/BankTransfer/BankTransfer.js +1 -1
  18. package/dist/es/components/BankTransfer/BankTransfer.js.map +1 -1
  19. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js +1 -1
  20. package/dist/es/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  21. package/dist/es/components/Card/Card.js +1 -1
  22. package/dist/es/components/Card/Card.js.map +1 -1
  23. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  24. package/dist/es/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  25. package/dist/es/components/Card/components/CardInput/defaultProps.js +1 -1
  26. package/dist/es/components/Card/components/CardInput/defaultProps.js.map +1 -1
  27. package/dist/es/components/Card/components/CardInput/utils.js +1 -1
  28. package/dist/es/components/Card/components/CardInput/utils.js.map +1 -1
  29. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js +1 -1
  30. package/dist/es/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  31. package/dist/es/components/Card/constants.js +2 -0
  32. package/dist/es/components/Card/constants.js.map +1 -0
  33. package/dist/es/components/CashAppPay/CashAppPay.js +1 -1
  34. package/dist/es/components/CashAppPay/CashAppPay.js.map +1 -1
  35. package/dist/es/components/CashAppPay/services/CashAppSdkLoader.js +1 -1
  36. package/dist/es/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  37. package/dist/es/components/ClickToPay/ClickToPay.js +1 -1
  38. package/dist/es/components/ClickToPay/ClickToPay.js.map +1 -1
  39. package/dist/es/components/Donation/components/FixedAmounts.js.map +1 -1
  40. package/dist/es/components/Dropin/components/DropinComponent.js +1 -1
  41. package/dist/es/components/Dropin/components/DropinComponent.js.map +1 -1
  42. package/dist/es/components/GooglePay/GooglePay.js +1 -1
  43. package/dist/es/components/GooglePay/GooglePay.js.map +1 -1
  44. package/dist/es/components/GooglePay/GooglePayService.js +1 -1
  45. package/dist/es/components/GooglePay/GooglePayService.js.map +1 -1
  46. package/dist/es/components/GooglePay/defaultProps.js +1 -1
  47. package/dist/es/components/GooglePay/defaultProps.js.map +1 -1
  48. package/dist/es/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js +2 -0
  49. package/dist/es/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js.map +1 -0
  50. package/dist/es/components/Klarna/KlarnaPayments.js +1 -1
  51. package/dist/es/components/Klarna/KlarnaPayments.js.map +1 -1
  52. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js +1 -1
  53. package/dist/es/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  54. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  55. package/dist/es/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  56. package/dist/es/components/PayByBankPix/PayByBankPix.js +1 -1
  57. package/dist/es/components/PayByBankPix/PayByBankPix.js.map +1 -1
  58. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js +1 -1
  59. package/dist/es/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  60. package/dist/es/components/PayByBankPix/services/PasskeyService.js +1 -1
  61. package/dist/es/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  62. package/dist/es/components/PayPal/Paypal.js +1 -1
  63. package/dist/es/components/PayPal/Paypal.js.map +1 -1
  64. package/dist/es/components/PayPal/components/PaypalButtons.js.map +1 -1
  65. package/dist/es/components/PayPal/components/PaypalComponent.js +1 -1
  66. package/dist/es/components/PayPal/components/PaypalComponent.js.map +1 -1
  67. package/dist/es/components/PayPalFastlane/FastlaneSDK.js +1 -1
  68. package/dist/es/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  69. package/dist/es/components/PayTo/PayTo.js.map +1 -1
  70. package/dist/es/components/PayTo/components/PayIDInput.js +1 -1
  71. package/dist/es/components/PayTo/components/PayIDInput.js.map +1 -1
  72. package/dist/es/components/PayTo/components/PayToPhone.js +1 -1
  73. package/dist/es/components/PayTo/components/PayToPhone.js.map +1 -1
  74. package/dist/es/components/PayTo/components/validate.js +1 -1
  75. package/dist/es/components/PayTo/components/validate.js.map +1 -1
  76. package/dist/es/components/Pix/Pix.js +1 -1
  77. package/dist/es/components/Pix/Pix.js.map +1 -1
  78. package/dist/es/components/Pix/components/PixInput/PixInput.js +2 -0
  79. package/dist/es/components/Pix/components/PixInput/PixInput.js.map +1 -0
  80. package/dist/es/components/Pix/components/PixInput/utils.js +2 -0
  81. package/dist/es/components/Pix/components/PixInput/utils.js.map +1 -0
  82. package/dist/es/components/Pix/components/PixInput/validate.js +2 -0
  83. package/dist/es/components/Pix/components/PixInput/validate.js.map +1 -0
  84. package/dist/es/components/Pix/components/PixQRDetails.js +2 -0
  85. package/dist/es/components/Pix/components/PixQRDetails.js.map +1 -0
  86. package/dist/es/components/UPI/UPI.js +1 -1
  87. package/dist/es/components/UPI/UPI.js.map +1 -1
  88. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  89. package/dist/es/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  90. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  91. package/dist/es/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  92. package/dist/es/components/internal/Button/Button.js +1 -1
  93. package/dist/es/components/internal/Button/Button.js.map +1 -1
  94. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js +1 -1
  95. package/dist/es/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  96. package/dist/es/components/internal/ClickToPay/services/create-clicktopay-service.js +1 -1
  97. package/dist/es/components/internal/ClickToPay/services/create-clicktopay-service.js.map +1 -1
  98. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js +1 -1
  99. package/dist/es/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  100. package/dist/es/components/internal/ClickToPay/services/sdks/MastercardSdk.js +1 -1
  101. package/dist/es/components/internal/ClickToPay/services/sdks/MastercardSdk.js.map +1 -1
  102. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js +1 -1
  103. package/dist/es/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  104. package/dist/es/components/internal/ClickToPay/services/sdks/VisaSdk.js +1 -1
  105. package/dist/es/components/internal/ClickToPay/services/sdks/VisaSdk.js.map +1 -1
  106. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js +1 -1
  107. package/dist/es/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  108. package/dist/es/components/internal/Countdown/index.js +1 -1
  109. package/dist/es/components/internal/Countdown/index.js.map +1 -1
  110. package/dist/es/components/internal/PayButton/PayButton.js.map +1 -1
  111. package/dist/es/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  112. package/dist/es/components/internal/QRLoader/QRLoader.js +1 -1
  113. package/dist/es/components/internal/QRLoader/QRLoader.js.map +1 -1
  114. package/dist/es/components/internal/QRLoader/QRLoaderDetailsProvider.js +2 -0
  115. package/dist/es/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -0
  116. package/dist/es/components/internal/QRLoader/components/QRCodeCopyButton.js +2 -0
  117. package/dist/es/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -0
  118. package/dist/es/components/internal/QRLoader/components/QRCountdown.js +2 -0
  119. package/dist/es/components/internal/QRLoader/components/QRCountdown.js.map +1 -0
  120. package/dist/es/components/internal/QRLoader/components/QRDetails.js +2 -0
  121. package/dist/es/components/internal/QRLoader/components/QRDetails.js.map +1 -0
  122. package/dist/es/components/internal/QRLoader/components/QRImage.js +2 -0
  123. package/dist/es/components/internal/QRLoader/components/QRImage.js.map +1 -0
  124. package/dist/es/components/internal/QRLoader/components/QRIntructions.js +2 -0
  125. package/dist/es/components/internal/QRLoader/components/QRIntructions.js.map +1 -0
  126. package/dist/es/components/internal/QRLoader/components/QRProgressbar.js +2 -0
  127. package/dist/es/components/internal/QRLoader/components/QRProgressbar.js.map +1 -0
  128. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  129. package/dist/es/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  130. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js +1 -1
  131. package/dist/es/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  132. package/dist/es/components/internal/SecuredFields/lib/constants.js +1 -1
  133. package/dist/es/components/internal/SecuredFields/lib/constants.js.map +1 -1
  134. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  135. package/dist/es/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  136. package/dist/es/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js +1 -1
  137. package/dist/es/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js.map +1 -1
  138. package/dist/es/components/internal/UIElement/UIElement.js +1 -1
  139. package/dist/es/components/internal/UIElement/UIElement.js.map +1 -1
  140. package/dist/es/components/tx-variants.js +1 -1
  141. package/dist/es/components/tx-variants.js.map +1 -1
  142. package/dist/es/core/Analytics/Analytics.js +1 -1
  143. package/dist/es/core/Analytics/Analytics.js.map +1 -1
  144. package/dist/es/core/Analytics/AnalyticsInfoEvent.js +1 -1
  145. package/dist/es/core/Analytics/AnalyticsInfoEvent.js.map +1 -1
  146. package/dist/es/core/Analytics/constants.js +1 -1
  147. package/dist/es/core/Analytics/constants.js.map +1 -1
  148. package/dist/es/core/Analytics/useAnalytics.js +2 -0
  149. package/dist/es/core/Analytics/useAnalytics.js.map +1 -0
  150. package/dist/es/core/Context/CoreProvider.js +1 -1
  151. package/dist/es/core/Context/CoreProvider.js.map +1 -1
  152. package/dist/es/core/Environment/Environment.js.map +1 -1
  153. package/dist/es/core/Services/analytics/collect-id.js +1 -1
  154. package/dist/es/core/Services/analytics/collect-id.js.map +1 -1
  155. package/dist/es/core/config.js +1 -1
  156. package/dist/es/core/config.js.map +1 -1
  157. package/dist/es/core/core.js +1 -1
  158. package/dist/es/core/core.js.map +1 -1
  159. package/dist/es/index.d.ts +292 -117
  160. package/dist/es/utils/Script.js +1 -1
  161. package/dist/es/utils/Script.js.map +1 -1
  162. package/dist/es-legacy/adyen.css +5 -4
  163. package/dist/es-legacy/adyen.css.map +1 -1
  164. package/dist/es-legacy/components/AmazonPay/AmazonPay.js +1 -1
  165. package/dist/es-legacy/components/AmazonPay/AmazonPay.js.map +1 -1
  166. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js +1 -1
  167. package/dist/es-legacy/components/AmazonPay/components/AmazonPayComponent.js.map +1 -1
  168. package/dist/es-legacy/components/ApplePay/ApplePay.js +1 -1
  169. package/dist/es-legacy/components/ApplePay/ApplePay.js.map +1 -1
  170. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js +1 -1
  171. package/dist/es-legacy/components/ApplePay/services/ApplePaySdkLoader.js.map +1 -1
  172. package/dist/es-legacy/components/BankTransfer/BankTransfer.js +1 -1
  173. package/dist/es-legacy/components/BankTransfer/BankTransfer.js.map +1 -1
  174. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js +1 -1
  175. package/dist/es-legacy/components/BankTransfer/components/BankTransferResult/BankTransferResult.js.map +1 -1
  176. package/dist/es-legacy/components/Card/Card.js +1 -1
  177. package/dist/es-legacy/components/Card/Card.js.map +1 -1
  178. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js +1 -1
  179. package/dist/es-legacy/components/Card/components/CardInput/components/CardFieldsWrapper.js.map +1 -1
  180. package/dist/es-legacy/components/Card/components/CardInput/defaultProps.js +1 -1
  181. package/dist/es-legacy/components/Card/components/CardInput/defaultProps.js.map +1 -1
  182. package/dist/es-legacy/components/Card/components/CardInput/utils.js +1 -1
  183. package/dist/es-legacy/components/Card/components/CardInput/utils.js.map +1 -1
  184. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js +1 -1
  185. package/dist/es-legacy/components/Card/components/Fastlane/FastlaneSignup.js.map +1 -1
  186. package/dist/es-legacy/components/Card/constants.js +2 -0
  187. package/dist/es-legacy/components/Card/constants.js.map +1 -0
  188. package/dist/es-legacy/components/CashAppPay/CashAppPay.js +1 -1
  189. package/dist/es-legacy/components/CashAppPay/CashAppPay.js.map +1 -1
  190. package/dist/es-legacy/components/CashAppPay/services/CashAppSdkLoader.js +1 -1
  191. package/dist/es-legacy/components/CashAppPay/services/CashAppSdkLoader.js.map +1 -1
  192. package/dist/es-legacy/components/ClickToPay/ClickToPay.js +1 -1
  193. package/dist/es-legacy/components/ClickToPay/ClickToPay.js.map +1 -1
  194. package/dist/es-legacy/components/Donation/components/FixedAmounts.js.map +1 -1
  195. package/dist/es-legacy/components/Dropin/components/DropinComponent.js +1 -1
  196. package/dist/es-legacy/components/Dropin/components/DropinComponent.js.map +1 -1
  197. package/dist/es-legacy/components/GooglePay/GooglePay.js +1 -1
  198. package/dist/es-legacy/components/GooglePay/GooglePay.js.map +1 -1
  199. package/dist/es-legacy/components/GooglePay/GooglePayService.js +1 -1
  200. package/dist/es-legacy/components/GooglePay/GooglePayService.js.map +1 -1
  201. package/dist/es-legacy/components/GooglePay/defaultProps.js +1 -1
  202. package/dist/es-legacy/components/GooglePay/defaultProps.js.map +1 -1
  203. package/dist/es-legacy/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js +2 -0
  204. package/dist/es-legacy/components/GooglePay/utils/map-adyen-brands-to-googlepay-brands.js.map +1 -0
  205. package/dist/es-legacy/components/Klarna/KlarnaPayments.js +1 -1
  206. package/dist/es-legacy/components/Klarna/KlarnaPayments.js.map +1 -1
  207. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js +1 -1
  208. package/dist/es-legacy/components/Klarna/components/KlarnaWidget/KlarnaWidget.js.map +1 -1
  209. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js +1 -1
  210. package/dist/es-legacy/components/MBWay/components/MBWayInput/MBWayInput.js.map +1 -1
  211. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js +1 -1
  212. package/dist/es-legacy/components/PayByBankPix/PayByBankPix.js.map +1 -1
  213. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js +1 -1
  214. package/dist/es-legacy/components/PayByBankPix/services/PasskeySdkLoader.js.map +1 -1
  215. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js +1 -1
  216. package/dist/es-legacy/components/PayByBankPix/services/PasskeyService.js.map +1 -1
  217. package/dist/es-legacy/components/PayPal/Paypal.js +1 -1
  218. package/dist/es-legacy/components/PayPal/Paypal.js.map +1 -1
  219. package/dist/es-legacy/components/PayPal/components/PaypalButtons.js.map +1 -1
  220. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js +1 -1
  221. package/dist/es-legacy/components/PayPal/components/PaypalComponent.js.map +1 -1
  222. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js +1 -1
  223. package/dist/es-legacy/components/PayPalFastlane/FastlaneSDK.js.map +1 -1
  224. package/dist/es-legacy/components/PayTo/PayTo.js.map +1 -1
  225. package/dist/es-legacy/components/PayTo/components/PayIDInput.js +1 -1
  226. package/dist/es-legacy/components/PayTo/components/PayIDInput.js.map +1 -1
  227. package/dist/es-legacy/components/PayTo/components/PayToPhone.js +1 -1
  228. package/dist/es-legacy/components/PayTo/components/PayToPhone.js.map +1 -1
  229. package/dist/es-legacy/components/PayTo/components/validate.js +1 -1
  230. package/dist/es-legacy/components/PayTo/components/validate.js.map +1 -1
  231. package/dist/es-legacy/components/Pix/Pix.js +1 -1
  232. package/dist/es-legacy/components/Pix/Pix.js.map +1 -1
  233. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js +2 -0
  234. package/dist/es-legacy/components/Pix/components/PixInput/PixInput.js.map +1 -0
  235. package/dist/es-legacy/components/Pix/components/PixInput/utils.js +2 -0
  236. package/dist/es-legacy/components/Pix/components/PixInput/utils.js.map +1 -0
  237. package/dist/es-legacy/components/Pix/components/PixInput/validate.js +2 -0
  238. package/dist/es-legacy/components/Pix/components/PixInput/validate.js.map +1 -0
  239. package/dist/es-legacy/components/Pix/components/PixQRDetails.js +2 -0
  240. package/dist/es-legacy/components/Pix/components/PixQRDetails.js.map +1 -0
  241. package/dist/es-legacy/components/UPI/UPI.js +1 -1
  242. package/dist/es-legacy/components/UPI/UPI.js.map +1 -1
  243. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js +1 -1
  244. package/dist/es-legacy/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.js.map +1 -1
  245. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js +1 -1
  246. package/dist/es-legacy/components/helpers/QRLoaderContainer/QRLoaderContainer.js.map +1 -1
  247. package/dist/es-legacy/components/internal/Button/Button.js +1 -1
  248. package/dist/es-legacy/components/internal/Button/Button.js.map +1 -1
  249. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js +1 -1
  250. package/dist/es-legacy/components/internal/ClickToPay/services/ClickToPayService.js.map +1 -1
  251. package/dist/es-legacy/components/internal/ClickToPay/services/create-clicktopay-service.js +1 -1
  252. package/dist/es-legacy/components/internal/ClickToPay/services/create-clicktopay-service.js.map +1 -1
  253. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js +1 -1
  254. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/AbstractSrcInitiator.js.map +1 -1
  255. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/MastercardSdk.js +1 -1
  256. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/MastercardSdk.js.map +1 -1
  257. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js +1 -1
  258. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/SrcSdkLoader.js.map +1 -1
  259. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/VisaSdk.js +1 -1
  260. package/dist/es-legacy/components/internal/ClickToPay/services/sdks/VisaSdk.js.map +1 -1
  261. package/dist/es-legacy/components/internal/Countdown/CountdownA11yReporter.js +1 -1
  262. package/dist/es-legacy/components/internal/Countdown/CountdownA11yReporter.js.map +1 -1
  263. package/dist/es-legacy/components/internal/Countdown/index.js +1 -1
  264. package/dist/es-legacy/components/internal/Countdown/index.js.map +1 -1
  265. package/dist/es-legacy/components/internal/PayButton/PayButton.js.map +1 -1
  266. package/dist/es-legacy/components/internal/PhoneInput/PhoneInputFields.js.map +1 -1
  267. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js +1 -1
  268. package/dist/es-legacy/components/internal/QRLoader/QRLoader.js.map +1 -1
  269. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js +2 -0
  270. package/dist/es-legacy/components/internal/QRLoader/QRLoaderDetailsProvider.js.map +1 -0
  271. package/dist/es-legacy/components/internal/QRLoader/components/QRCodeCopyButton.js +2 -0
  272. package/dist/es-legacy/components/internal/QRLoader/components/QRCodeCopyButton.js.map +1 -0
  273. package/dist/es-legacy/components/internal/QRLoader/components/QRCountdown.js +2 -0
  274. package/dist/es-legacy/components/internal/QRLoader/components/QRCountdown.js.map +1 -0
  275. package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js +2 -0
  276. package/dist/es-legacy/components/internal/QRLoader/components/QRDetails.js.map +1 -0
  277. package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js +2 -0
  278. package/dist/es-legacy/components/internal/QRLoader/components/QRImage.js.map +1 -0
  279. package/dist/es-legacy/components/internal/QRLoader/components/QRIntructions.js +2 -0
  280. package/dist/es-legacy/components/internal/QRLoader/components/QRIntructions.js.map +1 -0
  281. package/dist/es-legacy/components/internal/QRLoader/components/QRProgressbar.js +2 -0
  282. package/dist/es-legacy/components/internal/QRLoader/components/QRProgressbar.js.map +1 -0
  283. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js +1 -1
  284. package/dist/es-legacy/components/internal/SecuredFields/binLookup/extensions.js.map +1 -1
  285. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js +1 -1
  286. package/dist/es-legacy/components/internal/SecuredFields/lib/CSF/extensions/handleConfig.js.map +1 -1
  287. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js +1 -1
  288. package/dist/es-legacy/components/internal/SecuredFields/lib/constants.js.map +1 -1
  289. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js +1 -1
  290. package/dist/es-legacy/components/internal/SegmentedControl/SegmentedControl.js.map +1 -1
  291. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js +1 -1
  292. package/dist/es-legacy/components/internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js.map +1 -1
  293. package/dist/es-legacy/components/internal/UIElement/UIElement.js +1 -1
  294. package/dist/es-legacy/components/internal/UIElement/UIElement.js.map +1 -1
  295. package/dist/es-legacy/components/tx-variants.js +1 -1
  296. package/dist/es-legacy/components/tx-variants.js.map +1 -1
  297. package/dist/es-legacy/core/Analytics/Analytics.js +1 -1
  298. package/dist/es-legacy/core/Analytics/Analytics.js.map +1 -1
  299. package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js +1 -1
  300. package/dist/es-legacy/core/Analytics/AnalyticsInfoEvent.js.map +1 -1
  301. package/dist/es-legacy/core/Analytics/constants.js +1 -1
  302. package/dist/es-legacy/core/Analytics/constants.js.map +1 -1
  303. package/dist/es-legacy/core/Analytics/useAnalytics.js +2 -0
  304. package/dist/es-legacy/core/Analytics/useAnalytics.js.map +1 -0
  305. package/dist/es-legacy/core/Context/CoreProvider.js +1 -1
  306. package/dist/es-legacy/core/Context/CoreProvider.js.map +1 -1
  307. package/dist/es-legacy/core/Environment/Environment.js.map +1 -1
  308. package/dist/es-legacy/core/Services/analytics/collect-id.js +1 -1
  309. package/dist/es-legacy/core/Services/analytics/collect-id.js.map +1 -1
  310. package/dist/es-legacy/core/config.js +1 -1
  311. package/dist/es-legacy/core/config.js.map +1 -1
  312. package/dist/es-legacy/core/core.js +1 -1
  313. package/dist/es-legacy/core/core.js.map +1 -1
  314. package/dist/es-legacy/utils/Script.js +1 -1
  315. package/dist/es-legacy/utils/Script.js.map +1 -1
  316. package/package.json +13 -13
  317. package/styles/adyen.css +5 -4
  318. package/dist/es/components/Pix/PixInput/PixInput.js +0 -2
  319. package/dist/es/components/Pix/PixInput/PixInput.js.map +0 -1
  320. package/dist/es/components/Pix/PixInput/utils.js +0 -2
  321. package/dist/es/components/Pix/PixInput/utils.js.map +0 -1
  322. package/dist/es/components/Pix/PixInput/validate.js +0 -2
  323. package/dist/es/components/Pix/PixInput/validate.js.map +0 -1
  324. package/dist/es-legacy/components/Pix/PixInput/PixInput.js +0 -2
  325. package/dist/es-legacy/components/Pix/PixInput/PixInput.js.map +0 -1
  326. package/dist/es-legacy/components/Pix/PixInput/utils.js +0 -2
  327. package/dist/es-legacy/components/Pix/PixInput/utils.js.map +0 -1
  328. package/dist/es-legacy/components/Pix/PixInput/validate.js +0 -2
  329. package/dist/es-legacy/components/Pix/PixInput/validate.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FastlaneSDK.js","sources":["../../../../src/components/PayPalFastlane/FastlaneSDK.ts"],"sourcesContent":["import { resolveEnvironments } from '../../core/Environment';\nimport requestFastlaneToken from './services/request-fastlane-token';\nimport { convertAdyenLocaleToFastlaneLocale } from './utils/convert-locale';\nimport Script from '../../utils/Script';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport type {\n FastlanePaymentMethodConfiguration,\n FastlaneWindowInstance,\n FastlaneAuthenticatedCustomerResult,\n FastlaneShippingAddressSelectorResult,\n FastlaneSDKConfiguration,\n FastlaneConsentRenderState\n} from './types';\nimport type { FastlaneTokenData } from './services/request-fastlane-token';\n\nclass FastlaneSDK {\n private readonly clientKey: string;\n private readonly checkoutShopperURL: string;\n private readonly locale: string;\n private readonly forceConsentDetails: boolean;\n\n private fastlaneSdk?: FastlaneWindowInstance;\n private latestShopperDetails?: { email: string; customerId: string };\n private fastlaneSessionId?: string;\n\n constructor(configuration: FastlaneSDKConfiguration) {\n if (!configuration?.environment) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'environment' property is required\");\n if (!configuration?.clientKey) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'clientKey' property is required\");\n\n if (configuration.forceConsentDetails && configuration.environment.includes('live'))\n console.warn(\"Fastlane SDK: 'forceConsentDetails' should not be used on 'live' environment\");\n\n const { apiUrl } = resolveEnvironments(configuration.environment);\n\n this.checkoutShopperURL = apiUrl;\n this.clientKey = configuration.clientKey;\n this.forceConsentDetails = configuration.forceConsentDetails || false;\n this.locale = convertAdyenLocaleToFastlaneLocale(configuration.locale || 'en-US');\n }\n\n /**\n * Initializes the Fastlane SDK\n */\n public async initialize(): Promise<FastlaneSDK> {\n const tokenData = await this.requestClientToken();\n await this.fetchSdk(tokenData.value, tokenData.clientId);\n await this.initializeFastlaneInstance();\n return this;\n }\n\n /**\n * Triggers the authentication for Fastlane using shopper's email.\n * If shopper is recognized, the OTP flow is initialized.\n *\n * @param email\n */\n public async authenticate(email: string): Promise<FastlaneAuthenticatedCustomerResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'authenticate(): Fastlane SDK is not initialized');\n }\n\n const { customerContextId } = await this.fastlaneSdk.identity.lookupCustomerByEmail(email);\n\n if (customerContextId) {\n this.latestShopperDetails = { email, customerId: customerContextId };\n return this.fastlaneSdk.identity.triggerAuthenticationFlow(customerContextId);\n } else {\n return {\n authenticationState: 'not_found',\n profileData: undefined\n };\n }\n }\n\n /**\n * Creates the Adyen Component configuration based on the Fastlane authentication result.\n *\n * In case the shopper authenticated successfully, it returns config to be used in the Fastlane component\n * Otherwise, it returns the configuration to be used in the Card component\n *\n * @param authResult\n */\n public async getComponentConfiguration(authResult: FastlaneAuthenticatedCustomerResult): Promise<FastlanePaymentMethodConfiguration> {\n if (!authResult) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'FastlaneSDK: you must pass the authentication result to get the component configuration'\n );\n }\n\n if (authResult.authenticationState === 'succeeded') {\n const hasCard = !!authResult.profileData?.card;\n\n if (!hasCard) {\n throw new AdyenCheckoutError('ERROR', 'getComponentConfiguration(): There is no card associated with the authenticated profile');\n }\n\n return {\n paymentType: 'fastlane',\n configuration: {\n fastlaneSessionId: this.fastlaneSessionId,\n email: this.latestShopperDetails.email,\n tokenId: authResult.profileData.card.id,\n lastFour: authResult.profileData.card.paymentSource.card.lastDigits,\n brand: authResult.profileData.card.paymentSource.card.brand.toLowerCase()\n }\n };\n } else {\n const consentDetails = await this.fetchConsentDetails();\n return {\n paymentType: 'card',\n configuration: {\n ...(consentDetails && {\n fastlaneConfiguration: {\n fastlaneSessionId: this.fastlaneSessionId,\n ...consentDetails\n }\n })\n }\n };\n }\n }\n\n /**\n * Displays the Fastlane Shipping Address selector UI\n */\n public showShippingAddressSelector(): Promise<FastlaneShippingAddressSelectorResult> {\n return this.fastlaneSdk.profile.showShippingAddressSelector();\n }\n\n /**\n * Render the \"Fastlane by PayPal\" logo in the specified HTML container\n */\n public async mountWatermark(container: HTMLElement | string, options = { includeAdditionalInfo: true }): Promise<void> {\n const component = await this.fastlaneSdk.FastlaneWatermarkComponent(options);\n component.render(container);\n }\n\n private requestClientToken(): Promise<FastlaneTokenData> {\n return requestFastlaneToken(this.checkoutShopperURL, this.clientKey);\n }\n\n private async fetchSdk(clientToken: string, clientId: string): Promise<void> {\n const url = `https://www.paypal.com/sdk/js?client-id=${clientId}&components=buttons,fastlane`;\n const script = new Script(url, 'body', {}, { sdkClientToken: clientToken });\n\n await script.load();\n }\n\n /**\n * Fetch the fastlane session ID used internally by PayPal for Network Token Usage event\n * This ID is not critical for the payment processing part\n *\n * @private\n */\n private async fetchSessionIdAsync(): Promise<void> {\n try {\n const { sessionId } = await this.fastlaneSdk.identity.getSession();\n this.fastlaneSessionId = sessionId;\n } catch (error) {\n console.warn('Fastlane SDK: Failed to fetch session ID', error);\n }\n }\n\n /**\n * Fetch object containing that details that will be used to display the sign-up UI\n * inside the card component\n * @private\n */\n private async fetchConsentDetails(): Promise<FastlaneConsentRenderState> {\n try {\n const consentComponent = await this.fastlaneSdk.ConsentComponent();\n return await consentComponent.getRenderState();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'fetchConsentDetails(): failed to fetch consent details', { cause: error });\n }\n }\n\n private async initializeFastlaneInstance(): Promise<void> {\n try {\n this.fastlaneSdk = await window.paypal.Fastlane({\n intendedExperience: 'externalProcessorCustomConsent',\n ...(this.forceConsentDetails && {\n metadata: {\n geoLocOverride: 'US'\n }\n })\n });\n this.fastlaneSdk.setLocale(this.locale);\n\n void this.fetchSessionIdAsync();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: Failed to initialize fastlane using the window.paypal.Fastlane constructor', {\n cause: error\n });\n }\n }\n}\n\nexport default FastlaneSDK;\n"],"names":["FastlaneSDK","initialize","tokenData","this","requestClientToken","fetchSdk","value","clientId","initializeFastlaneInstance","authenticate","email","fastlaneSdk","AdyenCheckoutError","customerContextId","identity","lookupCustomerByEmail","latestShopperDetails","customerId","triggerAuthenticationFlow","authenticationState","profileData","undefined","getComponentConfiguration","authResult","card","paymentType","configuration","fastlaneSessionId","tokenId","id","lastFour","paymentSource","lastDigits","brand","toLowerCase","consentDetails","fetchConsentDetails","fastlaneConfiguration","showShippingAddressSelector","profile","mountWatermark","container","options","includeAdditionalInfo","FastlaneWatermarkComponent","render","requestFastlaneToken","checkoutShopperURL","clientKey","clientToken","script","Script","sdkClientToken","load","fetchSessionIdAsync","sessionId","getSession","error","console","warn","consentComponent","ConsentComponent","getRenderState","cause","window","paypal","Fastlane","intendedExperience","forceConsentDetails","metadata","geoLocOverride","setLocale","locale","constructor","_define_property","environment","includes","apiUrl","resolveEnvironments","convertAdyenLocaleToFastlaneLocale"],"mappings":"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"}
1
+ {"version":3,"file":"FastlaneSDK.js","sources":["../../../../src/components/PayPalFastlane/FastlaneSDK.ts"],"sourcesContent":["import { resolveEnvironments } from '../../core/Environment';\nimport type { FastlaneTokenData } from './services/request-fastlane-token';\nimport requestFastlaneToken from './services/request-fastlane-token';\nimport { convertAdyenLocaleToFastlaneLocale } from './utils/convert-locale';\nimport Script from '../../utils/Script';\nimport AdyenCheckoutError from '../../core/Errors/AdyenCheckoutError';\nimport {\n FastlaneAuthenticatedCustomerResult,\n FastlaneConsentRenderState,\n FastlanePaymentMethodConfiguration,\n FastlaneSDKConfiguration,\n FastlaneShippingAddressSelectorResult,\n FastlaneSignupConfiguration,\n FastlaneWindowInstance\n} from './types';\n\nimport Analytics from '../../core/Analytics';\nimport { AnalyticsInfoEvent, InfoEventType } from '../../core/Analytics/AnalyticsInfoEvent';\nimport type { AnalyticsModule } from '../../types/global-types';\n\nclass FastlaneSDK {\n private readonly clientKey: string;\n private readonly checkoutShopperURL: string;\n private readonly fastlaneLocale: string;\n private readonly forceConsentDetails: boolean;\n\n private readonly analytics: AnalyticsModule;\n\n private fastlaneSdk?: FastlaneWindowInstance;\n private latestShopperDetails?: { email: string; customerId: string };\n private fastlaneSessionId?: string;\n\n constructor(configuration: FastlaneSDKConfiguration) {\n if (!configuration?.environment) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'environment' property is required\");\n if (!configuration?.clientKey) throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', \"FastlaneSDK: 'clientKey' property is required\");\n\n if (configuration.forceConsentDetails && configuration.environment.includes('live'))\n console.warn(\"Fastlane SDK: 'forceConsentDetails' should not be used on 'live' environment\");\n\n const { apiUrl, analyticsUrl } = resolveEnvironments(configuration.environment);\n\n this.checkoutShopperURL = apiUrl;\n this.clientKey = configuration.clientKey;\n this.forceConsentDetails = configuration.forceConsentDetails || false;\n this.fastlaneLocale = convertAdyenLocaleToFastlaneLocale(configuration.locale || 'en-US');\n\n this.analytics = Analytics({\n analytics: configuration.analytics,\n locale: configuration.locale || 'en-US',\n analyticsContext: analyticsUrl,\n clientKey: this.clientKey\n });\n\n document.addEventListener('visibilitychange', this.handlePageVisibilityChanges);\n }\n\n /**\n * Initializes the Fastlane SDK\n */\n public async initialize(): Promise<FastlaneSDK> {\n void this.analytics.setUp({\n checkoutStage: 'precheckout'\n });\n\n const tokenData = await this.requestClientToken();\n await this.fetchSdk(tokenData.value, tokenData.clientId);\n await this.initializeFastlaneInstance();\n this.trackEvent(InfoEventType.Initialized);\n return this;\n }\n\n public destroy(): void {\n document.removeEventListener('visibilitychange', this.handlePageVisibilityChanges);\n this.analytics.flush();\n }\n\n /**\n * Triggers the authentication for Fastlane using shopper's email.\n * If shopper is recognized, the OTP flow is initialized.\n *\n * @param email\n */\n public async authenticate(email: string): Promise<FastlaneAuthenticatedCustomerResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'authenticate(): Fastlane SDK is not initialized');\n }\n\n this.trackEvent(InfoEventType.LookupStarted);\n\n try {\n const { customerContextId } = await this.fastlaneSdk.identity.lookupCustomerByEmail(email);\n\n if (customerContextId) {\n this.latestShopperDetails = { email, customerId: customerContextId };\n this.trackEvent(InfoEventType.OtpStarted);\n\n const authResult = await this.fastlaneSdk.identity.triggerAuthenticationFlow(customerContextId);\n this.trackEvent(this.getOtpAnalyticsSubtype(authResult.authenticationState));\n\n return authResult;\n }\n\n this.trackEvent(InfoEventType.LookupUserNotFound);\n return {\n authenticationState: 'not_found',\n profileData: undefined\n };\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred during the authentication flow.', { cause: error });\n }\n }\n\n /**\n * Creates the Component configuration based on the Fastlane authentication result.\n *\n * In case the shopper authenticated successfully, it returns config to be used in the Fastlane component\n * Otherwise, it returns the configuration to be used in the Card component\n *\n * @param authResult\n */\n public async getComponentConfiguration(authResult: FastlaneAuthenticatedCustomerResult): Promise<FastlanePaymentMethodConfiguration> {\n if (!authResult) {\n throw new AdyenCheckoutError(\n 'IMPLEMENTATION_ERROR',\n 'FastlaneSDK: you must pass the authentication result to get the component configuration'\n );\n }\n\n this.analytics.flush();\n\n const isAuthSuccess = authResult.authenticationState === 'succeeded';\n const hasCardData = !!authResult.profileData?.card;\n const hasShopperDetails = !!this.latestShopperDetails?.email;\n\n if (isAuthSuccess && hasCardData && hasShopperDetails) {\n return this.createFastlaneComponentConfiguration(authResult);\n }\n\n return this.createCardComponentConfiguration();\n }\n\n /**\n * Displays the Fastlane Shipping Address selector UI\n */\n public async showShippingAddressSelector(): Promise<FastlaneShippingAddressSelectorResult> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'showShippingAddressSelector(): Fastlane SDK is not initialized');\n }\n\n this.trackEvent(InfoEventType.AddressSelectorClicked);\n\n try {\n const addressSelectorResult = await this.fastlaneSdk.profile.showShippingAddressSelector();\n if (addressSelectorResult.selectionChanged) {\n this.trackEvent(InfoEventType.AddressChanged);\n }\n this.trackEvent(InfoEventType.AddressSelectorClosed);\n\n return addressSelectorResult;\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred when showing the shipping address selector', { cause: error });\n }\n }\n\n /**\n * Render the \"Fastlane by PayPal\" logo in the specified HTML container\n */\n public async mountWatermark(container: HTMLElement | string, options = { includeAdditionalInfo: true }): Promise<void> {\n if (!this.fastlaneSdk) {\n throw new AdyenCheckoutError('IMPLEMENTATION_ERROR', 'mountWatermark(): Fastlane SDK is not initialized');\n }\n\n try {\n const component = await this.fastlaneSdk.FastlaneWatermarkComponent(options);\n component.render(container);\n } catch (error: unknown) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: An error occurred when rendering the watermark', { cause: error });\n }\n }\n\n private requestClientToken(): Promise<FastlaneTokenData> {\n return requestFastlaneToken(this.checkoutShopperURL, this.clientKey);\n }\n\n private async fetchSdk(clientToken: string, clientId: string): Promise<void> {\n const sdkUrl = new URL('https://www.paypal.com/sdk/js');\n sdkUrl.searchParams.set('client-id', clientId);\n sdkUrl.searchParams.set('components', 'buttons,fastlane');\n\n const script = new Script({\n src: sdkUrl.href,\n component: 'fastlane',\n dataAttributes: { sdkClientToken: clientToken },\n analytics: this.analytics\n });\n\n await script.load();\n }\n\n /**\n * Fetch the fastlane session ID used internally by PayPal for Network Token Usage event\n * This ID is not critical for the payment processing part\n *\n * @private\n */\n private async fetchSessionIdAsync(): Promise<void> {\n try {\n const { sessionId } = await this.fastlaneSdk.identity.getSession();\n this.fastlaneSessionId = sessionId;\n } catch (error) {\n console.warn('Fastlane SDK: Failed to fetch session ID', error);\n }\n }\n\n /**\n * Fetch object containing that details that will be used to display the sign-up UI\n * inside the card component\n * @private\n */\n private async fetchConsentDetails(): Promise<FastlaneConsentRenderState> {\n try {\n const consentComponent = await this.fastlaneSdk.ConsentComponent();\n return await consentComponent.getRenderState();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'fetchConsentDetails(): failed to fetch consent details', { cause: error });\n }\n }\n\n private async initializeFastlaneInstance(): Promise<void> {\n try {\n this.fastlaneSdk = await window.paypal.Fastlane({\n intendedExperience: 'externalProcessorCustomConsent',\n ...(this.forceConsentDetails && {\n metadata: {\n geoLocOverride: 'US'\n }\n })\n });\n this.fastlaneSdk.setLocale(this.fastlaneLocale);\n\n void this.fetchSessionIdAsync();\n } catch (error) {\n throw new AdyenCheckoutError('ERROR', 'Fastlane SDK: Failed to initialize fastlane using the window.paypal.Fastlane constructor', {\n cause: error\n });\n }\n }\n\n /**\n * Creates the configuration for the Fastlane component\n *\n * @param authResult\n * @private\n */\n private createFastlaneComponentConfiguration(authResult: FastlaneAuthenticatedCustomerResult): FastlanePaymentMethodConfiguration {\n return {\n paymentType: 'fastlane',\n configuration: {\n fastlaneSessionId: this.fastlaneSessionId,\n email: this.latestShopperDetails.email,\n tokenId: authResult.profileData.card.id,\n lastFour: authResult.profileData.card.paymentSource.card.lastDigits,\n brand: authResult.profileData.card.paymentSource.card.brand.toLowerCase()\n }\n };\n }\n\n /**\n * Creates the configuration for the Card component, including Fastlane sign-up details if available\n *\n * @private\n */\n private async createCardComponentConfiguration(): Promise<FastlanePaymentMethodConfiguration> {\n const consentDetails = await this.fetchConsentDetails();\n const configuration: { fastlaneConfiguration?: FastlaneSignupConfiguration } = {};\n\n if (consentDetails) {\n configuration.fastlaneConfiguration = {\n fastlaneSessionId: this.fastlaneSessionId,\n ...consentDetails\n };\n }\n\n return {\n paymentType: 'card',\n configuration\n };\n }\n\n private trackEvent(eventType: InfoEventType): void {\n const event = new AnalyticsInfoEvent({ type: eventType, component: 'fastlane' });\n this.analytics.sendAnalytics(event);\n }\n\n private handlePageVisibilityChanges = (): void => {\n if (document.visibilityState === 'hidden') {\n this.analytics.flush();\n }\n };\n\n /**\n * Returns the Info event subtype based on the 'authenticationState'\n * @param authenticationState\n * @private\n */\n private getOtpAnalyticsSubtype(authenticationState: FastlaneAuthenticatedCustomerResult['authenticationState']) {\n switch (authenticationState) {\n case 'succeeded':\n return InfoEventType.OtpSucceeded;\n case 'canceled':\n return InfoEventType.OtpCanceled;\n case 'failed':\n return InfoEventType.OtpFailed;\n case 'not_found':\n return InfoEventType.LookupUserNotFound;\n default:\n return InfoEventType.OtpFailed;\n }\n }\n}\n\nexport default FastlaneSDK;\n"],"names":["FastlaneSDK","initialize","this","analytics","setUp","checkoutStage","tokenData","requestClientToken","fetchSdk","value","clientId","initializeFastlaneInstance","trackEvent","InfoEventType","Initialized","destroy","document","removeEventListener","handlePageVisibilityChanges","flush","authenticate","email","fastlaneSdk","AdyenCheckoutError","LookupStarted","customerContextId","identity","lookupCustomerByEmail","latestShopperDetails","customerId","OtpStarted","authResult","triggerAuthenticationFlow","getOtpAnalyticsSubtype","authenticationState","LookupUserNotFound","profileData","undefined","error","cause","getComponentConfiguration","isAuthSuccess","hasCardData","card","hasShopperDetails","createFastlaneComponentConfiguration","createCardComponentConfiguration","showShippingAddressSelector","AddressSelectorClicked","addressSelectorResult","profile","selectionChanged","AddressChanged","AddressSelectorClosed","mountWatermark","container","options","includeAdditionalInfo","FastlaneWatermarkComponent","render","requestFastlaneToken","checkoutShopperURL","clientKey","clientToken","sdkUrl","URL","searchParams","set","script","Script","src","href","component","dataAttributes","sdkClientToken","load","fetchSessionIdAsync","sessionId","getSession","fastlaneSessionId","console","warn","fetchConsentDetails","consentComponent","ConsentComponent","getRenderState","window","paypal","Fastlane","intendedExperience","forceConsentDetails","metadata","geoLocOverride","setLocale","fastlaneLocale","paymentType","configuration","tokenId","id","lastFour","paymentSource","lastDigits","brand","toLowerCase","consentDetails","fastlaneConfiguration","eventType","event","AnalyticsInfoEvent","type","sendAnalytics","OtpSucceeded","OtpCanceled","OtpFailed","constructor","_define_property","visibilityState","environment","includes","apiUrl","analyticsUrl","resolveEnvironments","convertAdyenLocaleToFastlaneLocale","locale","Analytics","analyticsContext","addEventListener"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PayTo.js","sources":["../../../../src/components/PayTo/PayTo.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport Await from '../../components/internal/Await';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport { TxVariants } from '../tx-variants';\nimport { PayToIdentifierEnum } from './components/IdentifierSelector';\nimport PayToComponent from './components/PayToComponent';\nimport { PayToInstructions } from './components/PayToInstructions';\nimport MandateSummary from './components/MandateSummary';\nimport { PayToConfiguration, PayToData } from './types';\nimport PayButton, { payAmountLabel } from '../internal/PayButton';\n\n/*\nAwait Config (previously in its own file)\n */\nconst COUNTDOWN_MINUTES = 15; // min\nconst THROTTLE_TIME = 60000; // ms\nconst THROTTLE_INTERVAL = 10000; // ms\n\nconst config = {\n COUNTDOWN_MINUTES,\n THROTTLE_TIME,\n THROTTLE_INTERVAL,\n showCountdownTimer: false\n};\n\nconst getAccountIdentifier = (state: PayToData) => {\n // if it's BSB Input type merge bankAccount with BSB\n if (state.selectedInput === 'bsb-option') {\n return `${state.bsb}-${state.bankAccountNumber}`;\n } else if (state.selectedInput === 'payid-option') {\n // otherwise use the option in the dropdown\n switch (state.selectedIdentifier) {\n case PayToIdentifierEnum.email:\n return state.email;\n case PayToIdentifierEnum.abn:\n return state.abn;\n case PayToIdentifierEnum.orgid:\n return state.orgid;\n case PayToIdentifierEnum.phone:\n // merge the phone prefix and number - see comment in ticket\n return `${state.phonePrefix}-${state.phoneNumber}`;\n }\n }\n};\n/**\n *\n */\nexport class PayToElement extends UIElement<PayToConfiguration> {\n public static readonly type = TxVariants.payto;\n\n protected static defaultProps = {\n placeholders: {}\n };\n\n formatProps(props) {\n return {\n ...props,\n data: {\n ...props.data,\n phonePrefix: '+61' // hardcode +61\n }\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n if (this.props.storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: PayToElement.type,\n storedPaymentMethodId: this.props.storedPaymentMethodId\n }\n };\n }\n\n return {\n paymentMethod: {\n type: PayToElement.type,\n shopperAccountIdentifier: getAccountIdentifier(this.state.data)\n },\n shopperName: {\n firstName: this.state.data.firstName,\n lastName: this.state.data.lastName\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? this.props.name : '';\n }\n\n render() {\n // Stored\n if (this.props.storedPaymentMethodId) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n {this.props.showPayButton && (\n <PayButton\n {...this.props}\n classNameModifiers={['standalone']}\n amount={this.props.amount}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n onClick={this.submit}\n />\n )}\n </CoreProvider>\n );\n }\n // Await\n if (this.props.paymentData) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <Await\n ref={ref => {\n this.componentRef = ref;\n }}\n amount={this.props.amount}\n showAmount={true}\n instructions={PayToInstructions}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.props.onError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n type={this.constructor['type']}\n messageText={this.props.i18n.get('payto.confirmPayment')}\n awaitText={this.props.i18n.get('payto.await.waitForConfirmation')}\n showCountdownTimer={config.showCountdownTimer}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n endSlot={() =>\n !!this.props.mandate && (\n <MandateSummary mandate={this.props.mandate} payee={this.props.payee} currencyCode={this.props.amount.currency} />\n )\n }\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n // Input\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <PayToComponent\n data={this.props.data}\n placeholders={this.props.placeholders}\n setComponentRef={this.setComponentRef}\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default PayToElement;\n"],"names":["config","getAccountIdentifier","state","selectedInput","bsb","bankAccountNumber","selectedIdentifier","PayToIdentifierEnum","email","abn","orgid","phone","phonePrefix","phoneNumber","PayToElement","UIElement","formatProps","props","data","formatData","this","storedPaymentMethodId","paymentMethod","type","shopperAccountIdentifier","shopperName","firstName","lastName","isValid","displayName","label","name","additionalInfo","render","h","CoreProvider","i18n","loadingContext","resources","showPayButton","PayButton","classNameModifiers","amount","payAmountLabel","onClick","submit","paymentData","SRPanelProvider","srPanel","modules","Await","ref","componentRef","showAmount","instructions","PayToInstructions","clientKey","onError","onComplete","brandLogo","icon","constructor","messageText","get","awaitText","showCountdownTimer","throttleTime","throttleInterval","onActionHandled","endSlot","mandate","MandateSummary","payee","currencyCode","currency","PayToComponent","placeholders","setComponentRef","onChange","setState","payButton","_define_property","TxVariants","payto","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"PayTo.js","sources":["../../../../src/components/PayTo/PayTo.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport Await from '../../components/internal/Await';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport { TxVariants } from '../tx-variants';\nimport { PayToIdentifierEnum } from './components/IdentifierSelector';\nimport PayToComponent from './components/PayToComponent';\nimport { PayToInstructions } from './components/PayToInstructions';\nimport MandateSummary from './components/MandateSummary';\nimport { PayToConfiguration, PayToData } from './types';\nimport PayButton, { payAmountLabel } from '../internal/PayButton';\n\n/*\nAwait Config (previously in its own file)\n */\nconst COUNTDOWN_MINUTES = 15; // min\nconst THROTTLE_TIME = 60000; // ms\nconst THROTTLE_INTERVAL = 10000; // ms\n\nconst config = {\n COUNTDOWN_MINUTES,\n THROTTLE_TIME,\n THROTTLE_INTERVAL,\n showCountdownTimer: false\n};\n\nconst getAccountIdentifier = (state: PayToData) => {\n // if it's BSB Input type merge bankAccount with BSB\n if (state.selectedInput === 'bsb-option') {\n return `${state.bsb}-${state.bankAccountNumber}`;\n } else if (state.selectedInput === 'payid-option') {\n // otherwise use the option in the dropdown\n switch (state.selectedIdentifier) {\n case PayToIdentifierEnum.email:\n return state.email;\n case PayToIdentifierEnum.abn:\n return state.abn;\n case PayToIdentifierEnum.orgid:\n return state.orgid;\n case PayToIdentifierEnum.phone:\n // merge the phone prefix and number - see comment in ticket\n return `${state.phonePrefix}-${state.phoneNumber}`;\n }\n }\n};\n/**\n *\n */\nexport class PayToElement extends UIElement<PayToConfiguration> {\n public static readonly type = TxVariants.payto;\n\n protected static defaultProps = {\n placeholders: {}\n };\n\n formatProps(props: PayToConfiguration) {\n return {\n ...props,\n data: {\n ...props.data,\n phonePrefix: '+61' // hardcode +61\n }\n };\n }\n\n /**\n * Formats the component data output\n */\n formatData() {\n if (this.props.storedPaymentMethodId) {\n return {\n paymentMethod: {\n type: PayToElement.type,\n storedPaymentMethodId: this.props.storedPaymentMethodId\n }\n };\n }\n\n return {\n paymentMethod: {\n type: PayToElement.type,\n shopperAccountIdentifier: getAccountIdentifier(this.state.data)\n },\n shopperName: {\n firstName: this.state.data.firstName,\n lastName: this.state.data.lastName\n }\n };\n }\n\n get isValid(): boolean {\n if (this.props.storedPaymentMethodId) {\n return true;\n }\n\n return !!this.state.isValid;\n }\n\n get displayName() {\n if (this.props.storedPaymentMethodId && this.props.label) {\n return this.props.label;\n }\n return this.props.name;\n }\n\n get additionalInfo() {\n return this.props.storedPaymentMethodId ? this.props.name : '';\n }\n\n render() {\n // Stored\n if (this.props.storedPaymentMethodId) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n {this.props.showPayButton && (\n <PayButton\n {...this.props}\n classNameModifiers={['standalone']}\n amount={this.props.amount}\n label={payAmountLabel(this.props.i18n, this.props.amount)}\n onClick={this.submit}\n />\n )}\n </CoreProvider>\n );\n }\n // Await\n if (this.props.paymentData) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <Await\n ref={ref => {\n this.componentRef = ref;\n }}\n amount={this.props.amount}\n showAmount={true}\n instructions={PayToInstructions}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onError={this.props.onError}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n type={this.constructor['type']}\n messageText={this.props.i18n.get('payto.confirmPayment')}\n awaitText={this.props.i18n.get('payto.await.waitForConfirmation')}\n showCountdownTimer={config.showCountdownTimer}\n throttleTime={config.THROTTLE_TIME}\n throttleInterval={config.THROTTLE_INTERVAL}\n onActionHandled={this.onActionHandled}\n endSlot={() =>\n !!this.props.mandate && (\n <MandateSummary mandate={this.props.mandate} payee={this.props.payee} currencyCode={this.props.amount.currency} />\n )\n }\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n // Input\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <PayToComponent\n data={this.props.data}\n placeholders={this.props.placeholders}\n setComponentRef={this.setComponentRef}\n onChange={this.setState}\n payButton={this.payButton}\n showPayButton={this.props.showPayButton}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default PayToElement;\n"],"names":["config","getAccountIdentifier","state","selectedInput","bsb","bankAccountNumber","selectedIdentifier","PayToIdentifierEnum","email","abn","orgid","phone","phonePrefix","phoneNumber","PayToElement","UIElement","formatProps","props","data","formatData","this","storedPaymentMethodId","paymentMethod","type","shopperAccountIdentifier","shopperName","firstName","lastName","isValid","displayName","label","name","additionalInfo","render","h","CoreProvider","i18n","loadingContext","resources","showPayButton","PayButton","classNameModifiers","amount","payAmountLabel","onClick","submit","paymentData","SRPanelProvider","srPanel","modules","Await","ref","componentRef","showAmount","instructions","PayToInstructions","clientKey","onError","onComplete","brandLogo","icon","constructor","messageText","get","awaitText","showCountdownTimer","throttleTime","throttleInterval","onActionHandled","endSlot","mandate","MandateSummary","payee","currencyCode","currency","PayToComponent","placeholders","setComponentRef","onChange","setState","payButton","_define_property","TxVariants","payto","defaultProps"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/FormFields/Fieldset/Fieldset.js";import i,{PayToIdentifierEnum as a}from"./IdentifierSelector.js";import{useEffect as t,useRef as o}from"../../../external/preact/hooks/dist/hooks.js";import l from"../../../utils/useForm/useForm.js";import s from"./PayToPhone.js";import n from"../../internal/FormFields/InputEmail.js";import{getErrorMessage as d}from"../../../utils/getErrorMessage.js";import m from"../../internal/FormFields/Field/Field.js";import{useCoreContext as p}from"../../../core/Context/CoreProvider.js";import f from"../../internal/FormFields/InputText.js";import{payIdValidationRules as c}from"./validate.js";import{phoneFormatters as u}from"../../internal/PhoneInput/validate.js";import g from"./PayToNameFields.js";const h=["selectedIdentifier","firstName","lastName"],b={[a.email]:["email"],[a.phone]:["phoneNumber","phonePrefix"],[a.abn]:["abn"],[a.orgid]:["orgid"]};function I({setComponentRef:I,defaultData:F,placeholders:j,onChange:N,setStatus:y,id:M}){const{i18n:v}=p(),C=l({schema:h,defaultData:{selectedIdentifier:a.phone,...F},rules:c,formatters:u}),{handleChangeFor:P,triggerValidation:x,data:B,errors:E,valid:S,isValid:V,setSchema:q}=C;t(()=>{q([...b[B.selectedIdentifier],...h])},[B.selectedIdentifier]),t(()=>{N({data:B,valid:S,errors:E,isValid:V})},[B,S,E,V]);const A=o({setStatus:y,showValidation:x});return t(()=>{I(A.current)},[I]),e(r,{id:M,classNameModifiers:["payto__payid_input"],label:"PayID",description:"payto.payid.description"},e(i,{classNameModifiers:["col-40"],onSelectedIdentifier:P("selectedIdentifier"),selectedIdentifier:B.selectedIdentifier}),B.selectedIdentifier===a.phone&&e(s,{onChange:P("phone","blur"),data:B,form:C}),B.selectedIdentifier===a.email&&e(m,{label:v.get("shopperEmail"),classNameModifiers:["col-60","email"],errorMessage:d(v,E.email,v.get("shopperEmail")),dir:"ltr",name:"email",i18n:v},e(n,{name:"email",value:B.email,onInput:P("email","input"),onBlur:P("email","blur"),placeholder:j?.email,required:!0})),B.selectedIdentifier===a.abn&&e(m,{label:v.get("ABN"),classNameModifiers:["col-60","abn"],errorMessage:d(v,E.abn,v.get("ABN")),name:"ABN",i18n:v},e(f,{name:"abn",value:B.abn,onInput:P("abn","input"),onBlur:P("abn","blur"),placeholder:j?.abn,required:!0})),B.selectedIdentifier===a.orgid&&e(m,{label:v.get("payto.payid.label.orgid"),classNameModifiers:["col-60","orgid"],errorMessage:d(v,E.orgid,v.get("payto.payid.label.orgid")),name:"orgid",i18n:v},e(f,{name:"orgid",value:B.orgid,onInput:P("orgid","input"),onBlur:P("orgid","blur"),placeholder:j?.orgid,required:!0})),e(g,{i18n:v,data:B,handleChangeFor:P,errors:E,placeholders:j}))}export{I as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import r from"../../internal/FormFields/Fieldset/Fieldset.js";import i,{PayToIdentifierEnum as a}from"./IdentifierSelector.js";import{useEffect as t,useRef as o}from"../../../external/preact/hooks/dist/hooks.js";import l from"../../../utils/useForm/useForm.js";import s from"./PayToPhone.js";import n from"../../internal/FormFields/InputEmail.js";import{getErrorMessage as d}from"../../../utils/getErrorMessage.js";import m from"../../internal/FormFields/Field/Field.js";import{useCoreContext as p}from"../../../core/Context/CoreProvider.js";import f from"../../internal/FormFields/InputText.js";import{payIdValidationRules as c}from"./validate.js";import{phoneFormatters as u}from"../../internal/PhoneInput/validate.js";import g from"./PayToNameFields.js";const h=["selectedIdentifier","firstName","lastName"],b={[a.email]:["email"],[a.phone]:["phoneNumber","phonePrefix"],[a.abn]:["abn"],[a.orgid]:["orgid"]};function I({setComponentRef:I,defaultData:F,placeholders:j,onChange:N,setStatus:y,id:M}){const{i18n:v}=p(),P=l({schema:h,defaultData:{selectedIdentifier:a.phone,...F},rules:c,formatters:u}),{handleChangeFor:x,triggerValidation:B,data:C,errors:E,valid:S,isValid:V,setSchema:q}=P;t(()=>{q([...b[C.selectedIdentifier],...h])},[C.selectedIdentifier]),t(()=>{N({data:C,valid:S,errors:E,isValid:V})},[C,S,E,V]);const A=o({setStatus:y,showValidation:B});return t(()=>{I(A.current)},[I]),e(r,{id:M,classNameModifiers:["payto__payid_input"],label:"PayID",description:"payto.payid.description"},e(i,{classNameModifiers:["col-40"],onSelectedIdentifier:x("selectedIdentifier"),selectedIdentifier:C.selectedIdentifier}),C.selectedIdentifier===a.phone&&e(s,{form:P}),C.selectedIdentifier===a.email&&e(m,{label:v.get("shopperEmail"),classNameModifiers:["col-60","email"],errorMessage:d(v,E.email,v.get("shopperEmail")),dir:"ltr",name:"email",i18n:v},e(n,{name:"email",value:C.email,onInput:x("email","input"),onBlur:x("email","blur"),placeholder:j?.email,required:!0})),C.selectedIdentifier===a.abn&&e(m,{label:v.get("ABN"),classNameModifiers:["col-60","abn"],errorMessage:d(v,E.abn,v.get("ABN")),name:"ABN",i18n:v},e(f,{name:"abn",value:C.abn,onInput:x("abn","input"),onBlur:x("abn","blur"),placeholder:j?.abn,required:!0})),C.selectedIdentifier===a.orgid&&e(m,{label:v.get("payto.payid.label.orgid"),classNameModifiers:["col-60","orgid"],errorMessage:d(v,E.orgid,v.get("payto.payid.label.orgid")),name:"orgid",i18n:v},e(f,{name:"orgid",value:C.orgid,onInput:x("orgid","input"),onBlur:x("orgid","blur"),placeholder:j?.orgid,required:!0})),e(g,{i18n:v,data:C,handleChangeFor:x,errors:E,placeholders:j}))}export{I as default};
2
2
  //# sourceMappingURL=PayIDInput.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayIDInput.js","sources":["../../../../../src/components/PayTo/components/PayIDInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport IdentifierSelector, { PayToIdentifierEnum } from './IdentifierSelector';\nimport { useEffect, useRef } from 'preact/hooks';\nimport useForm from '../../../utils/useForm';\nimport PayToPhone from './PayToPhone';\nimport InputEmail from '../../internal/FormFields/InputEmail';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport Field from '../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport InputText from '../../internal/FormFields/InputText';\nimport { payIdValidationRules } from './validate';\nimport './PayIDInput.scss';\nimport { phoneFormatters } from '../../internal/PhoneInput/validate';\nimport { ComponentMethodsRef, UIElementStatus } from '../../internal/UIElement/types';\nimport PayToNameFields from './PayToNameFields';\nimport { PayToPlaceholdersType } from '../types';\n\nexport interface PayIdFormData {\n email: string;\n phone: string;\n abn: string;\n orgid: string;\n firstName: string;\n lastName: string;\n phoneNumber?: string;\n phonePrefix?: string;\n selectedIdentifier: PayToIdentifierEnum;\n}\n\nexport interface PayIDInputProps {\n status: UIElementStatus;\n setStatus: (status: UIElementStatus) => void;\n defaultData: PayIdFormData;\n placeholders: PayToPlaceholdersType;\n onChange: (e) => void;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n id?: string;\n}\n\nconst BASE_SCHEMA = ['selectedIdentifier', 'firstName', 'lastName'];\n\nconst IDENTIFIER_SCHEMA = {\n [PayToIdentifierEnum.email]: ['email'],\n [PayToIdentifierEnum.phone]: ['phoneNumber', 'phonePrefix'],\n [PayToIdentifierEnum.abn]: ['abn'],\n [PayToIdentifierEnum.orgid]: ['orgid']\n};\n\nexport default function PayIDInput({ setComponentRef, defaultData, placeholders, onChange, setStatus, id }: PayIDInputProps) {\n const { i18n } = useCoreContext();\n\n const form = useForm<PayIdFormData>({\n schema: BASE_SCHEMA,\n defaultData: { selectedIdentifier: PayToIdentifierEnum.phone, ...defaultData },\n rules: payIdValidationRules,\n formatters: phoneFormatters\n });\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid, setSchema } = form;\n\n // handle the changes of identifier, each identifier gets its own schema\n useEffect(() => {\n // get the correct schema for each identifier and merge it with the base\n setSchema([...IDENTIFIER_SCHEMA[data.selectedIdentifier], ...BASE_SCHEMA]);\n }, [data.selectedIdentifier]);\n\n // standard onChange propagate to parent state\n useEffect(() => {\n onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n const payToRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: triggerValidation\n });\n\n useEffect(() => {\n setComponentRef(payToRef.current);\n }, [setComponentRef]);\n\n return (\n <Fieldset id={id} classNameModifiers={['payto__payid_input']} label={'PayID'} description={'payto.payid.description'}>\n <IdentifierSelector\n classNameModifiers={['col-40']}\n onSelectedIdentifier={handleChangeFor('selectedIdentifier')}\n selectedIdentifier={data.selectedIdentifier}\n />\n {data.selectedIdentifier === PayToIdentifierEnum.phone && (\n <PayToPhone onChange={handleChangeFor('phone', 'blur')} data={data} form={form} />\n )}\n\n {/* TODO probably worth refactoring this into either re-usable components or builder */}\n {data.selectedIdentifier === PayToIdentifierEnum.email && (\n <Field\n label={i18n.get('shopperEmail')}\n classNameModifiers={['col-60', 'email']}\n errorMessage={getErrorMessage(i18n, errors.email, i18n.get('shopperEmail'))}\n dir={'ltr'}\n name={'email'}\n i18n={i18n}\n >\n <InputEmail\n name={'email'}\n value={data.email}\n onInput={handleChangeFor('email', 'input')}\n onBlur={handleChangeFor('email', 'blur')}\n placeholder={placeholders?.email}\n required={true}\n />\n </Field>\n )}\n\n {data.selectedIdentifier === PayToIdentifierEnum.abn && (\n <Field\n label={i18n.get('ABN')}\n classNameModifiers={['col-60', 'abn']}\n errorMessage={getErrorMessage(i18n, errors.abn, i18n.get('ABN'))}\n name={'ABN'}\n i18n={i18n}\n >\n <InputText\n name={'abn'}\n value={data.abn}\n onInput={handleChangeFor('abn', 'input')}\n onBlur={handleChangeFor('abn', 'blur')}\n placeholder={placeholders?.abn}\n required={true}\n />\n </Field>\n )}\n\n {data.selectedIdentifier === PayToIdentifierEnum.orgid && (\n <Field\n label={i18n.get('payto.payid.label.orgid')}\n classNameModifiers={['col-60', 'orgid']}\n errorMessage={getErrorMessage(i18n, errors.orgid, i18n.get('payto.payid.label.orgid'))}\n name={'orgid'}\n i18n={i18n}\n >\n <InputText\n name={'orgid'}\n value={data.orgid}\n onInput={handleChangeFor('orgid', 'input')}\n onBlur={handleChangeFor('orgid', 'blur')}\n placeholder={placeholders?.orgid}\n required={true}\n />\n </Field>\n )}\n\n <PayToNameFields i18n={i18n} data={data} handleChangeFor={handleChangeFor} errors={errors} placeholders={placeholders} />\n </Fieldset>\n );\n}\n"],"names":["BASE_SCHEMA","IDENTIFIER_SCHEMA","PayToIdentifierEnum","email","phone","abn","orgid","PayIDInput","setComponentRef","defaultData","placeholders","onChange","setStatus","id","i18n","useCoreContext","form","useForm","schema","selectedIdentifier","rules","payIdValidationRules","formatters","phoneFormatters","handleChangeFor","triggerValidation","data","errors","valid","isValid","setSchema","useEffect","payToRef","useRef","showValidation","current","h","Fieldset","classNameModifiers","label","description","IdentifierSelector","onSelectedIdentifier","PayToPhone","Field","get","errorMessage","getErrorMessage","dir","name","InputEmail","value","onInput","onBlur","placeholder","required","InputText","PayToNameFields"],"mappings":"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"}
1
+ {"version":3,"file":"PayIDInput.js","sources":["../../../../../src/components/PayTo/components/PayIDInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport Fieldset from '../../internal/FormFields/Fieldset';\nimport IdentifierSelector, { PayToIdentifierEnum } from './IdentifierSelector';\nimport { useEffect, useRef } from 'preact/hooks';\nimport useForm from '../../../utils/useForm';\nimport PayToPhone from './PayToPhone';\nimport InputEmail from '../../internal/FormFields/InputEmail';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport Field from '../../internal/FormFields/Field';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport InputText from '../../internal/FormFields/InputText';\nimport { payIdValidationRules } from './validate';\nimport './PayIDInput.scss';\nimport { phoneFormatters } from '../../internal/PhoneInput/validate';\nimport { ComponentMethodsRef, UIElementStatus } from '../../internal/UIElement/types';\nimport PayToNameFields from './PayToNameFields';\nimport { PayToPlaceholdersType } from '../types';\n\nexport interface PayIdFormData {\n email: string;\n phone: string;\n abn: string;\n orgid: string;\n firstName: string;\n lastName: string;\n phoneNumber?: string;\n phonePrefix?: string;\n selectedIdentifier: PayToIdentifierEnum;\n}\n\nexport interface PayIDInputProps {\n status: UIElementStatus;\n setStatus: (status: UIElementStatus) => void;\n defaultData: PayIdFormData;\n placeholders: PayToPlaceholdersType;\n onChange: (e) => void;\n setComponentRef: (ref: ComponentMethodsRef) => void;\n id?: string;\n}\n\nconst BASE_SCHEMA = ['selectedIdentifier', 'firstName', 'lastName'];\n\nconst IDENTIFIER_SCHEMA = {\n [PayToIdentifierEnum.email]: ['email'],\n [PayToIdentifierEnum.phone]: ['phoneNumber', 'phonePrefix'],\n [PayToIdentifierEnum.abn]: ['abn'],\n [PayToIdentifierEnum.orgid]: ['orgid']\n};\n\nexport default function PayIDInput({ setComponentRef, defaultData, placeholders, onChange, setStatus, id }: PayIDInputProps) {\n const { i18n } = useCoreContext();\n\n const form = useForm<PayIdFormData>({\n schema: BASE_SCHEMA,\n defaultData: { selectedIdentifier: PayToIdentifierEnum.phone, ...defaultData },\n rules: payIdValidationRules,\n formatters: phoneFormatters\n });\n const { handleChangeFor, triggerValidation, data, errors, valid, isValid, setSchema } = form;\n\n // handle the changes of identifier, each identifier gets its own schema\n useEffect(() => {\n // get the correct schema for each identifier and merge it with the base\n setSchema([...IDENTIFIER_SCHEMA[data.selectedIdentifier], ...BASE_SCHEMA]);\n }, [data.selectedIdentifier]);\n\n // standard onChange propagate to parent state\n useEffect(() => {\n onChange({ data, valid, errors, isValid });\n }, [data, valid, errors, isValid]);\n\n const payToRef = useRef<ComponentMethodsRef>({\n setStatus: setStatus,\n showValidation: triggerValidation\n });\n\n useEffect(() => {\n setComponentRef(payToRef.current);\n }, [setComponentRef]);\n\n return (\n <Fieldset id={id} classNameModifiers={['payto__payid_input']} label={'PayID'} description={'payto.payid.description'}>\n <IdentifierSelector\n classNameModifiers={['col-40']}\n onSelectedIdentifier={handleChangeFor('selectedIdentifier')}\n selectedIdentifier={data.selectedIdentifier}\n />\n {data.selectedIdentifier === PayToIdentifierEnum.phone && <PayToPhone form={form} />}\n\n {/* TODO probably worth refactoring this into either re-usable components or builder */}\n {data.selectedIdentifier === PayToIdentifierEnum.email && (\n <Field\n label={i18n.get('shopperEmail')}\n classNameModifiers={['col-60', 'email']}\n errorMessage={getErrorMessage(i18n, errors.email, i18n.get('shopperEmail'))}\n dir={'ltr'}\n name={'email'}\n i18n={i18n}\n >\n <InputEmail\n name={'email'}\n value={data.email}\n onInput={handleChangeFor('email', 'input')}\n onBlur={handleChangeFor('email', 'blur')}\n placeholder={placeholders?.email}\n required={true}\n />\n </Field>\n )}\n\n {data.selectedIdentifier === PayToIdentifierEnum.abn && (\n <Field\n label={i18n.get('ABN')}\n classNameModifiers={['col-60', 'abn']}\n errorMessage={getErrorMessage(i18n, errors.abn, i18n.get('ABN'))}\n name={'ABN'}\n i18n={i18n}\n >\n <InputText\n name={'abn'}\n value={data.abn}\n onInput={handleChangeFor('abn', 'input')}\n onBlur={handleChangeFor('abn', 'blur')}\n placeholder={placeholders?.abn}\n required={true}\n />\n </Field>\n )}\n\n {data.selectedIdentifier === PayToIdentifierEnum.orgid && (\n <Field\n label={i18n.get('payto.payid.label.orgid')}\n classNameModifiers={['col-60', 'orgid']}\n errorMessage={getErrorMessage(i18n, errors.orgid, i18n.get('payto.payid.label.orgid'))}\n name={'orgid'}\n i18n={i18n}\n >\n <InputText\n name={'orgid'}\n value={data.orgid}\n onInput={handleChangeFor('orgid', 'input')}\n onBlur={handleChangeFor('orgid', 'blur')}\n placeholder={placeholders?.orgid}\n required={true}\n />\n </Field>\n )}\n\n <PayToNameFields i18n={i18n} data={data} handleChangeFor={handleChangeFor} errors={errors} placeholders={placeholders} />\n </Fieldset>\n );\n}\n"],"names":["BASE_SCHEMA","IDENTIFIER_SCHEMA","PayToIdentifierEnum","email","phone","abn","orgid","PayIDInput","setComponentRef","defaultData","placeholders","onChange","setStatus","id","i18n","useCoreContext","form","useForm","schema","selectedIdentifier","rules","payIdValidationRules","formatters","phoneFormatters","handleChangeFor","triggerValidation","data","errors","valid","isValid","setSchema","useEffect","payToRef","useRef","showValidation","current","h","Fieldset","classNameModifiers","label","description","IdentifierSelector","onSelectedIdentifier","PayToPhone","Field","get","errorMessage","getErrorMessage","dir","name","InputEmail","value","onInput","onBlur","placeholder","required","InputText","PayToNameFields"],"mappings":"6zBAwCA,MAAMA,EAAc,CAAC,qBAAsB,YAAa,YAElDC,EAAoB,CACtB,CAACC,EAAoBC,OAAQ,CAAC,SAC9B,CAACD,EAAoBE,OAAQ,CAAC,cAAe,eAC7C,CAACF,EAAoBG,KAAM,CAAC,OAC5B,CAACH,EAAoBI,OAAQ,CAAC,UAGnB,SAASC,GAAWC,gBAAEA,EAAeC,YAAEA,EAAWC,aAAEA,EAAYC,SAAEA,EAAQC,UAAEA,EAASC,GAAEA,IAClG,MAAMC,KAAEA,GAASC,IAEXC,EAAOC,EAAuB,CAChCC,OAAQlB,EACRS,YAAa,CAAEU,mBAAoBjB,EAAoBE,SAAUK,GACjEW,MAAOC,EACPC,WAAYC,KAEVC,gBAAEA,EAAeC,kBAAEA,EAAiBC,KAAEA,EAAIC,OAAEA,EAAMC,MAAEA,EAAKC,QAAEA,EAAOC,UAAEA,GAAcd,EAGxFe,EAAU,KAEND,EAAU,IAAI7B,EAAkByB,EAAKP,uBAAwBnB,KAC9D,CAAC0B,EAAKP,qBAGTY,EAAU,KACNpB,EAAS,CAAEe,OAAME,QAAOD,SAAQE,aACjC,CAACH,EAAME,EAAOD,EAAQE,IAEzB,MAAMG,EAAWC,EAA4B,CACzCrB,UAAWA,EACXsB,eAAgBT,IAOpB,OAJAM,EAAU,KACNvB,EAAgBwB,EAASG,UAC1B,CAAC3B,IAGA4B,EAACC,EAAAA,CAASxB,GAAIA,EAAIyB,mBAAoB,CAAC,sBAAuBC,MAAO,QAASC,YAAa,2BACvFJ,EAACK,EAAAA,CACGH,mBAAoB,CAAC,UACrBI,qBAAsBlB,EAAgB,sBACtCL,mBAAoBO,EAAKP,qBAE5BO,EAAKP,qBAAuBjB,EAAoBE,OAASgC,EAACO,EAAAA,CAAW3B,KAAMA,IAG3EU,EAAKP,qBAAuBjB,EAAoBC,OAC7CiC,EAACQ,EAAAA,CACGL,MAAOzB,EAAK+B,IAAI,gBAChBP,mBAAoB,CAAC,SAAU,SAC/BQ,aAAcC,EAAgBjC,EAAMa,EAAOxB,MAAOW,EAAK+B,IAAI,iBAC3DG,IAAK,MACLC,KAAM,QACNnC,KAAMA,GAENsB,EAACc,EAAAA,CACGD,KAAM,QACNE,MAAOzB,EAAKvB,MACZiD,QAAS5B,EAAgB,QAAS,SAClC6B,OAAQ7B,EAAgB,QAAS,QACjC8B,YAAa5C,GAAcP,MAC3BoD,UAAU,KAKrB7B,EAAKP,qBAAuBjB,EAAoBG,KAC7C+B,EAACQ,EAAAA,CACGL,MAAOzB,EAAK+B,IAAI,OAChBP,mBAAoB,CAAC,SAAU,OAC/BQ,aAAcC,EAAgBjC,EAAMa,EAAOtB,IAAKS,EAAK+B,IAAI,QACzDI,KAAM,MACNnC,KAAMA,GAENsB,EAACoB,EAAAA,CACGP,KAAM,MACNE,MAAOzB,EAAKrB,IACZ+C,QAAS5B,EAAgB,MAAO,SAChC6B,OAAQ7B,EAAgB,MAAO,QAC/B8B,YAAa5C,GAAcL,IAC3BkD,UAAU,KAKrB7B,EAAKP,qBAAuBjB,EAAoBI,OAC7C8B,EAACQ,EAAAA,CACGL,MAAOzB,EAAK+B,IAAI,2BAChBP,mBAAoB,CAAC,SAAU,SAC/BQ,aAAcC,EAAgBjC,EAAMa,EAAOrB,MAAOQ,EAAK+B,IAAI,4BAC3DI,KAAM,QACNnC,KAAMA,GAENsB,EAACoB,EAAAA,CACGP,KAAM,QACNE,MAAOzB,EAAKpB,MACZ8C,QAAS5B,EAAgB,QAAS,SAClC6B,OAAQ7B,EAAgB,QAAS,QACjC8B,YAAa5C,GAAcJ,MAC3BiD,UAAU,KAKtBnB,EAACqB,EAAAA,CAAgB3C,KAAMA,EAAMY,KAAMA,EAAMF,gBAAiBA,EAAiBG,OAAQA,EAAQjB,aAAcA,IAGrH"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../external/preact/dist/preact.js";import{useCoreContext as r}from"../../../core/Context/CoreProvider.js";import o from"../../internal/PhoneInput/PhoneInputFields.js";import{getErrorMessage as t}from"../../../utils/getErrorMessage.js";import{useCallback as n}from"../../../external/preact/hooks/dist/hooks.js";const s={phonePrefixes:[{id:"+61",name:"+61 (AU)",selectedOptionName:"+61"}]};function a({form:a,onChange:i,data:m}){const{i18n:p}=r(),{phonePrefixes:f}=s,c=n(e=>t(p,a.errors[e]),[p,a]);return e(o,{phoneNumberKey:"mobileNumber",getError:c,items:f,data:m,onChange:i,canSelectPrefix:!1,showNumber:!0,showPrefix:!0,form:a})}export{a as default};
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import{useCoreContext as r}from"../../../core/Context/CoreProvider.js";import o from"../../internal/PhoneInput/PhoneInputFields.js";import{getErrorMessage as t}from"../../../utils/getErrorMessage.js";import{useCallback as s}from"../../../external/preact/hooks/dist/hooks.js";const m=[{id:"+61",name:"+61 (AU)",selectedOptionName:"+61"}];function n({form:n}){const{i18n:i}=r(),a=s(e=>t(i,n.errors[e]),[i,n]);return e(o,{phoneNumberKey:"mobileNumber",getError:a,items:m,canSelectPrefix:!1,showNumber:!0,showPrefix:!0,form:n})}export{n as default};
2
2
  //# sourceMappingURL=PayToPhone.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PayToPhone.js","sources":["../../../../../src/components/PayTo/components/PayToPhone.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport PhoneInputFields from '../../internal/PhoneInput/PhoneInputFields';\nimport { Form } from '../../../utils/useForm/types';\nimport { PayIdFormData } from './PayIDInput';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport { useCallback } from 'preact/hooks';\n\ninterface PayToPhoneProps {\n form: Form<PayIdFormData>;\n onChange: (value: string) => void;\n data: any; // Data\n}\n\n// we have decided to hardcode phone prefix as it's going to be always +61 for now\nconst HARDCODED_USE_PHONE_PREFIXES = {\n phonePrefixes: [\n {\n id: '+61',\n name: '+61 (AU)',\n selectedOptionName: '+61'\n }\n ]\n};\n\nexport default function PayToPhone({ form, onChange, data }: PayToPhoneProps) {\n const { i18n } = useCoreContext();\n\n const { phonePrefixes } = HARDCODED_USE_PHONE_PREFIXES;\n\n const getError = useCallback((field: string) => getErrorMessage(i18n, form.errors[field]), [i18n, form]);\n\n return (\n <PhoneInputFields\n phoneNumberKey={'mobileNumber'}\n getError={getError}\n items={phonePrefixes}\n data={data}\n onChange={onChange}\n canSelectPrefix={false}\n showNumber={true}\n showPrefix={true}\n form={form}\n />\n );\n}\n"],"names":["HARDCODED_USE_PHONE_PREFIXES","phonePrefixes","id","name","selectedOptionName","PayToPhone","form","onChange","data","i18n","useCoreContext","getError","useCallback","field","getErrorMessage","errors","h","PhoneInputFields","phoneNumberKey","items","canSelectPrefix","showNumber","showPrefix"],"mappings":"2VAeA,MAAMA,EAA+B,CACjCC,cAAe,CACX,CACIC,GAAI,MACJC,KAAM,WACNC,mBAAoB,SAKjB,SAASC,GAAWC,KAAEA,EAAIC,SAAEA,EAAQC,KAAEA,IACjD,MAAMC,KAAEA,GAASC,KAEXT,cAAEA,GAAkBD,EAEpBW,EAAWC,EAAaC,GAAkBC,EAAgBL,EAAMH,EAAKS,OAAOF,IAAS,CAACJ,EAAMH,IAElG,OACIU,EAACC,EAAAA,CACGC,eAAgB,eAChBP,SAAUA,EACVQ,MAAOlB,EACPO,KAAMA,EACND,SAAUA,EACVa,iBAAiB,EACjBC,YAAY,EACZC,YAAY,EACZhB,KAAMA,GAGlB"}
1
+ {"version":3,"file":"PayToPhone.js","sources":["../../../../../src/components/PayTo/components/PayToPhone.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport PhoneInputFields from '../../internal/PhoneInput/PhoneInputFields';\nimport { Form } from '../../../utils/useForm/types';\nimport { PayIdFormData } from './PayIDInput';\nimport { getErrorMessage } from '../../../utils/getErrorMessage';\nimport { useCallback } from 'preact/hooks';\n\ninterface PayToPhoneProps {\n form: Form<PayIdFormData>;\n}\n\n// we have decided to hardcode phone prefix as it's going to be always +61 for now\nconst AUSTRALIAN_PHONE_PREFIXES = [\n {\n id: '+61',\n name: '+61 (AU)',\n selectedOptionName: '+61'\n }\n];\n\nexport default function PayToPhone({ form }: PayToPhoneProps) {\n const { i18n } = useCoreContext();\n\n const getError = useCallback((field: string) => getErrorMessage(i18n, form.errors[field]), [i18n, form]);\n\n return (\n <PhoneInputFields\n phoneNumberKey={'mobileNumber'}\n getError={getError}\n items={AUSTRALIAN_PHONE_PREFIXES}\n canSelectPrefix={false}\n showNumber={true}\n showPrefix={true}\n form={form}\n />\n );\n}\n"],"names":["AUSTRALIAN_PHONE_PREFIXES","id","name","selectedOptionName","PayToPhone","form","i18n","useCoreContext","getError","useCallback","field","getErrorMessage","errors","h","PhoneInputFields","phoneNumberKey","items","canSelectPrefix","showNumber","showPrefix"],"mappings":"2VAaA,MAAMA,EAA4B,CAC9B,CACIC,GAAI,MACJC,KAAM,WACNC,mBAAoB,QAIb,SAASC,GAAWC,KAAEA,IACjC,MAAMC,KAAEA,GAASC,IAEXC,EAAWC,EAAaC,GAAkBC,EAAgBL,EAAMD,EAAKO,OAAOF,IAAS,CAACJ,EAAMD,IAElG,OACIQ,EAACC,EAAAA,CACGC,eAAgB,eAChBP,SAAUA,EACVQ,MAAOhB,EACPiB,iBAAiB,EACjBC,YAAY,EACZC,YAAY,EACZd,KAAMA,GAGlB"}
@@ -1,2 +1,2 @@
1
- import{isEmpty as e}from"../../../utils/validator-utils.js";import{ERROR_FIELD_REQUIRED as a,ERROR_FIELD_INVALID as r}from"../../../core/Errors/constants.js";const s=/^((\d{9})|(\d{11}))$/,l=/`^[!-@[-~][ -@[-~]{0,254}[!-@[-~]$`/,i=/^(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$/,o=/^[1-9]{1,1}[0-9]{1,29}$/,d=(s,l,i)=>e(s)?(i.errorMessage=a,null):(i.errorMessage=r,l.test(s)),t={validate:e=>d(e,i,t),errorMessage:"abn.invalid",modes:["blur"]},m={validate:e=>d(e,s,m),errorMessage:"abn.invalid",modes:["blur"]},n={validate:e=>d(e,l,n),errorMessage:"orgid.invalid",modes:["blur"]},b={default:{validate:e=>e&&e.length>0,errorMessage:a,modes:["blur"]},email:t,abn:m,orgid:n,firstName:{validate:a=>!e(a)||null,errorMessage:"firstName.invalid",modes:["blur"]},lastName:{validate:a=>!e(a)||null,errorMessage:"lastName.invalid",modes:["blur"]},phoneNumber:{modes:["blur"],validate:a=>e(a)?null:o.test(a),errorMessage:"mobileNumber.invalid"},phonePrefix:{modes:["blur"],validate:e=>!!e,errorMessage:"mobileNumber.invalid"}},u=/^\d{6}$/,v=/^[ -~]{1,28}$/,g={validate:e=>d(e,u,g),errorMessage:"bsb.invalid",modes:["blur"]},M={validate:e=>d(e,v,M),errorMessage:"bankAccountNumber.invalid",modes:["blur"]},N={bsb:g,bankAccountNumber:M,firstName:{validate:a=>!e(a)||null,errorMessage:"firstName.invalid",modes:["blur"]},lastName:{validate:a=>!e(a)||null,errorMessage:"lastName.invalid",modes:["blur"]}};export{N as bsbValidationRules,b as payIdValidationRules,d as validationFromRegex};
1
+ import{isEmpty as e}from"../../../utils/validator-utils.js";import{ERROR_FIELD_REQUIRED as a,ERROR_FIELD_INVALID as r}from"../../../core/Errors/constants.js";const s=/^((\d{9})|(\d{11}))$/,l=/`^[!-@[-~][ -@[-~]{0,254}[!-@[-~]$`/,i=/^(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$/,o=/^[0-9]{1,29}$/,d=(s,l,i)=>e(s)?(i.errorMessage=a,null):(i.errorMessage=r,l.test(s)),t={validate:e=>d(e,i,t),errorMessage:"abn.invalid",modes:["blur"]},m={validate:e=>d(e,s,m),errorMessage:"abn.invalid",modes:["blur"]},n={validate:e=>d(e,l,n),errorMessage:"orgid.invalid",modes:["blur"]},b={default:{validate:e=>e&&e.length>0,errorMessage:a,modes:["blur"]},email:t,abn:m,orgid:n,firstName:{validate:a=>!e(a)||null,errorMessage:"firstName.invalid",modes:["blur"]},lastName:{validate:a=>!e(a)||null,errorMessage:"lastName.invalid",modes:["blur"]},phoneNumber:{modes:["blur"],validate:a=>e(a)?null:o.test(a),errorMessage:"mobileNumber.invalid"},phonePrefix:{modes:["blur"],validate:e=>!!e,errorMessage:"mobileNumber.invalid"}},u=/^\d{6}$/,v=/^[ -~]{1,28}$/,g={validate:e=>d(e,u,g),errorMessage:"bsb.invalid",modes:["blur"]},M={validate:e=>d(e,v,M),errorMessage:"bankAccountNumber.invalid",modes:["blur"]},N={bsb:g,bankAccountNumber:M,firstName:{validate:a=>!e(a)||null,errorMessage:"firstName.invalid",modes:["blur"]},lastName:{validate:a=>!e(a)||null,errorMessage:"lastName.invalid",modes:["blur"]}};export{N as bsbValidationRules,b as payIdValidationRules,d as validationFromRegex};
2
2
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sources":["../../../../../src/components/PayTo/components/validate.ts"],"sourcesContent":["import { ValidatorRule, ValidatorRules } from '../../../utils/Validator/types';\nimport { isEmpty } from '../../../utils/validator-utils';\nimport { ERROR_FIELD_INVALID, ERROR_FIELD_REQUIRED } from '../../../core/Errors/constants';\n\nconst abnRegex = /^((\\d{9})|(\\d{11}))$/;\n\nconst orgidRegex = /`^[!-@[-~][ -@[-~]{0,254}[!-@[-~]$`/;\n\nconst emailRegex =\n /^(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$/;\n\n// full phone regex Phone: ^\\+[0-9]{1,3}-[1-9]{1,1}[0-9]{1,29}$\nconst phoneNumberRegex = /^[1-9]{1,1}[0-9]{1,29}$/;\n\nexport const validationFromRegex = (value: string, regex: RegExp, validationRule: ValidatorRule): boolean | null => {\n // null is returned here for legacy reasons\n // check comment on hasError() ValidatorRulesResult.ts:17\n if (isEmpty(value)) {\n validationRule.errorMessage = ERROR_FIELD_REQUIRED;\n return null;\n }\n validationRule.errorMessage = ERROR_FIELD_INVALID;\n return regex.test(value);\n};\n\nconst emailValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, emailRegex, emailValidatorRule),\n errorMessage: 'abn.invalid',\n modes: ['blur']\n};\n\nconst abnValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, abnRegex, abnValidatorRule),\n errorMessage: 'abn.invalid',\n modes: ['blur']\n};\n\nconst orgidValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, orgidRegex, orgidValidatorRule),\n errorMessage: 'orgid.invalid',\n modes: ['blur']\n};\n\nexport const payIdValidationRules: ValidatorRules = {\n default: {\n validate: value => {\n return value && value.length > 0;\n },\n errorMessage: ERROR_FIELD_REQUIRED,\n modes: ['blur']\n },\n email: emailValidatorRule,\n abn: abnValidatorRule,\n orgid: orgidValidatorRule,\n firstName: {\n validate: value => (isEmpty(value) ? null : true), // valid, if there are chars other than spaces,\n errorMessage: 'firstName.invalid',\n modes: ['blur']\n },\n lastName: {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'lastName.invalid',\n modes: ['blur']\n },\n phoneNumber: {\n modes: ['blur'],\n validate: value => {\n return isEmpty(value) ? null : phoneNumberRegex.test(value);\n },\n errorMessage: 'mobileNumber.invalid'\n },\n phonePrefix: {\n modes: ['blur'],\n validate: phonePrefix => !!phonePrefix,\n errorMessage: 'mobileNumber.invalid'\n }\n};\n\n//original regex /^\\d{6}-[ -~]{1,28}$/\nconst bsbRegex = /^\\d{6}$/;\nconst bankAccountNumberRegex = /^[ -~]{1,28}$/;\n\nconst bsbValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, bsbRegex, bsbValidatorRule),\n errorMessage: 'bsb.invalid',\n modes: ['blur']\n};\n\nconst bankAccountNumberValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, bankAccountNumberRegex, bankAccountNumberValidatorRule),\n errorMessage: 'bankAccountNumber.invalid',\n modes: ['blur']\n};\n\nexport const bsbValidationRules: ValidatorRules = {\n bsb: bsbValidatorRule,\n bankAccountNumber: bankAccountNumberValidatorRule,\n firstName: {\n validate: value => (isEmpty(value) ? null : true), // valid, if there are chars other than spaces,\n errorMessage: 'firstName.invalid',\n modes: ['blur']\n },\n lastName: {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'lastName.invalid',\n modes: ['blur']\n }\n};\n"],"names":["abnRegex","orgidRegex","emailRegex","phoneNumberRegex","validationFromRegex","value","regex","validationRule","isEmpty","errorMessage","ERROR_FIELD_REQUIRED","ERROR_FIELD_INVALID","test","emailValidatorRule","validate","modes","abnValidatorRule","orgidValidatorRule","payIdValidationRules","default","length","email","abn","orgid","firstName","lastName","phoneNumber","phonePrefix","bsbRegex","bankAccountNumberRegex","bsbValidatorRule","bankAccountNumberValidatorRule","bsbValidationRules","bsb","bankAccountNumber"],"mappings":"8JAIA,MAAMA,EAAW,uBAEXC,EAAa,sCAEbC,EACF,sKAGEC,EAAmB,0BAEZC,EAAsB,CAACC,EAAeC,EAAeC,IAG1DC,EAAQH,IACRE,EAAeE,aAAeC,EACvB,OAEXH,EAAeE,aAAeE,EACvBL,EAAMM,KAAKP,IAGhBQ,EAAoC,CACtCC,SAAUT,GAASD,EAAoBC,EAAOH,EAAYW,GAC1DJ,aAAc,cACdM,MAAO,CAAC,SAGNC,EAAkC,CACpCF,SAAUT,GAASD,EAAoBC,EAAOL,EAAUgB,GACxDP,aAAc,cACdM,MAAO,CAAC,SAGNE,EAAoC,CACtCH,SAAUT,GAASD,EAAoBC,EAAOJ,EAAYgB,GAC1DR,aAAc,gBACdM,MAAO,CAAC,SAGCG,EAAuC,CAChDC,QAAS,CACLL,SAAUT,GACCA,GAASA,EAAMe,OAAS,EAEnCX,aAAcC,EACdK,MAAO,CAAC,SAEZM,MAAOR,EACPS,IAAKN,EACLO,MAAON,EACPO,UAAW,CACPV,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,oBACdM,MAAO,CAAC,SAEZU,SAAU,CACNX,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,mBACdM,MAAO,CAAC,SAEZW,YAAa,CACTX,MAAO,CAAC,QACRD,SAAUT,GACCG,EAAQH,GAAS,KAAOF,EAAiBS,KAAKP,GAEzDI,aAAc,wBAElBkB,YAAa,CACTZ,MAAO,CAAC,QACRD,SAAUa,KAAiBA,EAC3BlB,aAAc,yBAKhBmB,EAAW,UACXC,EAAyB,gBAEzBC,EAAkC,CACpChB,SAAUT,GAASD,EAAoBC,EAAOuB,EAAUE,GACxDrB,aAAc,cACdM,MAAO,CAAC,SAGNgB,EAAgD,CAClDjB,SAAUT,GAASD,EAAoBC,EAAOwB,EAAwBE,GACtEtB,aAAc,4BACdM,MAAO,CAAC,SAGCiB,EAAqC,CAC9CC,IAAKH,EACLI,kBAAmBH,EACnBP,UAAW,CACPV,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,oBACdM,MAAO,CAAC,SAEZU,SAAU,CACNX,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,mBACdM,MAAO,CAAC"}
1
+ {"version":3,"file":"validate.js","sources":["../../../../../src/components/PayTo/components/validate.ts"],"sourcesContent":["import { ValidatorRule, ValidatorRules } from '../../../utils/Validator/types';\nimport { isEmpty } from '../../../utils/validator-utils';\nimport { ERROR_FIELD_INVALID, ERROR_FIELD_REQUIRED } from '../../../core/Errors/constants';\n\nconst abnRegex = /^((\\d{9})|(\\d{11}))$/;\n\nconst orgidRegex = /`^[!-@[-~][ -@[-~]{0,254}[!-@[-~]$`/;\n\nconst emailRegex =\n /^(?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$/;\n\n// Full phone number regex with country code: ^+\\[0-9\\]{1,3}-\\[1-9\\]{1,1}\\[0-9\\]{1,29}$\nconst phoneNumberRegexWithoutCountryCode = /^[0-9]{1,29}$/;\n\nexport const validationFromRegex = (value: string, regex: RegExp, validationRule: ValidatorRule): boolean | null => {\n // null is returned here for legacy reasons\n // check comment on hasError() ValidatorRulesResult.ts:17\n if (isEmpty(value)) {\n validationRule.errorMessage = ERROR_FIELD_REQUIRED;\n return null;\n }\n validationRule.errorMessage = ERROR_FIELD_INVALID;\n return regex.test(value);\n};\n\nconst emailValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, emailRegex, emailValidatorRule),\n errorMessage: 'abn.invalid',\n modes: ['blur']\n};\n\nconst abnValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, abnRegex, abnValidatorRule),\n errorMessage: 'abn.invalid',\n modes: ['blur']\n};\n\nconst orgidValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, orgidRegex, orgidValidatorRule),\n errorMessage: 'orgid.invalid',\n modes: ['blur']\n};\n\nexport const payIdValidationRules: ValidatorRules = {\n default: {\n validate: value => {\n return value && value.length > 0;\n },\n errorMessage: ERROR_FIELD_REQUIRED,\n modes: ['blur']\n },\n email: emailValidatorRule,\n abn: abnValidatorRule,\n orgid: orgidValidatorRule,\n firstName: {\n validate: value => (isEmpty(value) ? null : true), // valid, if there are chars other than spaces,\n errorMessage: 'firstName.invalid',\n modes: ['blur']\n },\n lastName: {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'lastName.invalid',\n modes: ['blur']\n },\n phoneNumber: {\n modes: ['blur'],\n validate: value => {\n return isEmpty(value) ? null : phoneNumberRegexWithoutCountryCode.test(value);\n },\n errorMessage: 'mobileNumber.invalid'\n },\n phonePrefix: {\n modes: ['blur'],\n validate: phonePrefix => !!phonePrefix,\n errorMessage: 'mobileNumber.invalid'\n }\n};\n\n//original regex /^\\d{6}-[ -~]{1,28}$/\nconst bsbRegex = /^\\d{6}$/;\nconst bankAccountNumberRegex = /^[ -~]{1,28}$/;\n\nconst bsbValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, bsbRegex, bsbValidatorRule),\n errorMessage: 'bsb.invalid',\n modes: ['blur']\n};\n\nconst bankAccountNumberValidatorRule: ValidatorRule = {\n validate: value => validationFromRegex(value, bankAccountNumberRegex, bankAccountNumberValidatorRule),\n errorMessage: 'bankAccountNumber.invalid',\n modes: ['blur']\n};\n\nexport const bsbValidationRules: ValidatorRules = {\n bsb: bsbValidatorRule,\n bankAccountNumber: bankAccountNumberValidatorRule,\n firstName: {\n validate: value => (isEmpty(value) ? null : true), // valid, if there are chars other than spaces,\n errorMessage: 'firstName.invalid',\n modes: ['blur']\n },\n lastName: {\n validate: value => (isEmpty(value) ? null : true),\n errorMessage: 'lastName.invalid',\n modes: ['blur']\n }\n};\n"],"names":["abnRegex","orgidRegex","emailRegex","phoneNumberRegexWithoutCountryCode","validationFromRegex","value","regex","validationRule","isEmpty","errorMessage","ERROR_FIELD_REQUIRED","ERROR_FIELD_INVALID","test","emailValidatorRule","validate","modes","abnValidatorRule","orgidValidatorRule","payIdValidationRules","default","length","email","abn","orgid","firstName","lastName","phoneNumber","phonePrefix","bsbRegex","bankAccountNumberRegex","bsbValidatorRule","bankAccountNumberValidatorRule","bsbValidationRules","bsb","bankAccountNumber"],"mappings":"8JAIA,MAAMA,EAAW,uBAEXC,EAAa,sCAEbC,EACF,sKAGEC,EAAqC,gBAE9BC,EAAsB,CAACC,EAAeC,EAAeC,IAG1DC,EAAQH,IACRE,EAAeE,aAAeC,EACvB,OAEXH,EAAeE,aAAeE,EACvBL,EAAMM,KAAKP,IAGhBQ,EAAoC,CACtCC,SAAUT,GAASD,EAAoBC,EAAOH,EAAYW,GAC1DJ,aAAc,cACdM,MAAO,CAAC,SAGNC,EAAkC,CACpCF,SAAUT,GAASD,EAAoBC,EAAOL,EAAUgB,GACxDP,aAAc,cACdM,MAAO,CAAC,SAGNE,EAAoC,CACtCH,SAAUT,GAASD,EAAoBC,EAAOJ,EAAYgB,GAC1DR,aAAc,gBACdM,MAAO,CAAC,SAGCG,EAAuC,CAChDC,QAAS,CACLL,SAAUT,GACCA,GAASA,EAAMe,OAAS,EAEnCX,aAAcC,EACdK,MAAO,CAAC,SAEZM,MAAOR,EACPS,IAAKN,EACLO,MAAON,EACPO,UAAW,CACPV,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,oBACdM,MAAO,CAAC,SAEZU,SAAU,CACNX,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,mBACdM,MAAO,CAAC,SAEZW,YAAa,CACTX,MAAO,CAAC,QACRD,SAAUT,GACCG,EAAQH,GAAS,KAAOF,EAAmCS,KAAKP,GAE3EI,aAAc,wBAElBkB,YAAa,CACTZ,MAAO,CAAC,QACRD,SAAUa,KAAiBA,EAC3BlB,aAAc,yBAKhBmB,EAAW,UACXC,EAAyB,gBAEzBC,EAAkC,CACpChB,SAAUT,GAASD,EAAoBC,EAAOuB,EAAUE,GACxDrB,aAAc,cACdM,MAAO,CAAC,SAGNgB,EAAgD,CAClDjB,SAAUT,GAASD,EAAoBC,EAAOwB,EAAwBE,GACtEtB,aAAc,4BACdM,MAAO,CAAC,SAGCiB,EAAqC,CAC9CC,IAAKH,EACLI,kBAAmBH,EACnBP,UAAW,CACPV,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,oBACdM,MAAO,CAAC,SAEZU,SAAU,CACNX,SAAUT,IAAUG,EAAQH,IAAS,KACrCI,aAAc,mBACdM,MAAO,CAAC"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import e from"../helpers/QRLoaderContainer/QRLoaderContainer.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import s from"./PixInput/PixInput.js";import{cleanCPFCNPJ as o}from"../internal/SocialSecurityNumberBrazil/utils.js";import{TxVariants as i}from"../tx-variants.js";function a(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class n extends e{get isValid(){return!!this.state.isValid}formatProps(t){return{copyBtn:!0,introduction:"pix.instructions",...super.formatProps(t)}}formatData(){const{data:t={}}=this.state,{firstName:e,lastName:r,socialSecurityNumber:s=""}=t;return{paymentMethod:{type:this.props.type||this.constructor.type},...e&&r&&{shopperName:{firstName:e,lastName:r}},...s&&{socialSecurityNumber:o(s)}}}render(){return this.props.paymentData?this.renderQRCode():t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(s,{ref:t=>{this.componentRef=t},...this.props,showPayButton:this.props.showPayButton,personalDetailsRequired:this.props.personalDetailsRequired,name:this.displayName,onChange:this.setState,payButton:this.payButton}))}}a(n,"type",i.pix),a(n,"defaultProps",{personalDetailsRequired:!1,countdownTime:15,delay:2e3,...e.defaultProps});export{n as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import e from"../helpers/QRLoaderContainer/QRLoaderContainer.js";import{CoreProvider as r}from"../../core/Context/CoreProvider.js";import o from"./components/PixInput/PixInput.js";import{cleanCPFCNPJ as s}from"../internal/SocialSecurityNumberBrazil/utils.js";import{TxVariants as i}from"../tx-variants.js";import"../../external/preact/hooks/dist/hooks.js";import"../../core/Errors/AdyenCheckoutError.js";import"../../core/Errors/SRPanelContext.js";import"../internal/Button/Button.js";import n from"../internal/QRLoader/QRLoader.js";import"../internal/QRLoader/QRLoaderDetailsProvider.js";import a from"../../core/Errors/SRPanelProvider.js";import p from"./components/PixQRDetails.js";function l(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}class m extends e{get isValid(){return!!this.state.isValid}formatProps(t){return{copyBtn:!0,introduction:"pix.instructions",...super.formatProps(t)}}formatData(){const{data:t={}}=this.state,{firstName:e,lastName:r,socialSecurityNumber:o=""}=t;return{paymentMethod:{type:this.props.type||this.constructor.type},...e&&r&&{shopperName:{firstName:e,lastName:r}},...o&&{socialSecurityNumber:s(o)}}}renderQRCode(){return t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(a,{srPanel:this.props.modules.srPanel},t(n,{ref:t=>{this.componentRef=t},...this.props,type:this.constructor.type,brandLogo:this.props.brandLogo||this.icon,onComplete:this.onComplete,onActionHandled:this.onActionHandled,brandName:this.displayName,onSubmitAnalytics:this.submitAnalytics},t(p,null))))}render(){return this.props.paymentData?this.renderQRCode():t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(o,{ref:t=>{this.componentRef=t},...this.props,showPayButton:this.props.showPayButton,personalDetailsRequired:this.props.personalDetailsRequired,name:this.displayName,onChange:this.setState,payButton:this.payButton}))}}l(m,"type",i.pix),l(m,"defaultProps",{personalDetailsRequired:!1,countdownTime:15,delay:2e3,...e.defaultProps});export{m as default};
2
2
  //# sourceMappingURL=Pix.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pix.js","sources":["../../../../src/components/Pix/Pix.tsx"],"sourcesContent":["import { h } from 'preact';\nimport QRLoaderContainer from '../helpers/QRLoaderContainer/QRLoaderContainer';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport PixInput from './PixInput';\nimport { cleanCPFCNPJ } from '../internal/SocialSecurityNumberBrazil/utils';\nimport { PixElementData, PixConfiguration } from './types';\nimport { TxVariants } from '../tx-variants';\n\nclass PixElement extends QRLoaderContainer<PixConfiguration> {\n public static type = TxVariants.pix;\n\n public static defaultProps = {\n personalDetailsRequired: false,\n countdownTime: 15,\n delay: 2000,\n ...QRLoaderContainer.defaultProps\n };\n\n get isValid(): boolean {\n return !!this.state.isValid;\n }\n\n formatProps(props): PixConfiguration {\n return {\n copyBtn: true,\n introduction: 'pix.instructions',\n ...super.formatProps(props)\n };\n }\n\n formatData(): PixElementData {\n const { data = {} } = this.state;\n const { firstName, lastName, socialSecurityNumber = '' } = data;\n\n return {\n paymentMethod: {\n type: this.props.type || this.constructor['type']\n },\n ...(firstName && lastName && { shopperName: { firstName, lastName } }),\n ...(socialSecurityNumber && { socialSecurityNumber: cleanCPFCNPJ(socialSecurityNumber) })\n };\n }\n\n render() {\n if (this.props.paymentData) {\n return this.renderQRCode();\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <PixInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n showPayButton={this.props.showPayButton}\n personalDetailsRequired={this.props.personalDetailsRequired}\n name={this.displayName}\n onChange={this.setState}\n payButton={this.payButton}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default PixElement;\n"],"names":["PixElement","QRLoaderContainer","isValid","this","state","formatProps","props","copyBtn","introduction","super","formatData","data","firstName","lastName","socialSecurityNumber","paymentMethod","type","constructor","shopperName","cleanCPFCNPJ","render","paymentData","renderQRCode","h","CoreProvider","i18n","loadingContext","resources","PixInput","ref","componentRef","showPayButton","personalDetailsRequired","name","displayName","onChange","setState","payButton","_define_property","TxVariants","pix","defaultProps","countdownTime","delay"],"mappings":"oeAQA,MAAMA,UAAmBC,EAUrB,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAEAG,WAAAA,CAAYC,GACR,MAAO,CACHC,SAAS,EACTC,aAAc,sBACXC,MAAMJ,YAAYC,GAE7B,CAEAI,UAAAA,GACI,MAAMC,KAAEA,EAAO,IAAOR,KAAKC,OACrBQ,UAAEA,EAASC,SAAEA,EAAQC,qBAAEA,EAAuB,IAAOH,EAE3D,MAAO,CACHI,cAAe,CACXC,KAAMb,KAAKG,MAAMU,MAAQb,KAAKc,YAAY,SAE1CL,GAAaC,GAAY,CAAEK,YAAa,CAAEN,YAAWC,gBACrDC,GAAwB,CAAEA,qBAAsBK,EAAaL,IAEzE,CAEAM,MAAAA,GACI,OAAIjB,KAAKG,MAAMe,YACJlB,KAAKmB,eAIZC,EAACC,EAAAA,CAAaC,KAAMtB,KAAKG,MAAMmB,KAAMC,eAAgBvB,KAAKG,MAAMoB,eAAgBC,UAAWxB,KAAKwB,WAC5FJ,EAACK,EAAAA,CACGC,IAAKA,IACD1B,KAAK2B,aAAeD,MAEpB1B,KAAKG,MACTyB,cAAe5B,KAAKG,MAAMyB,cAC1BC,wBAAyB7B,KAAKG,MAAM0B,wBACpCC,KAAM9B,KAAK+B,YACXC,SAAUhC,KAAKiC,SACfC,UAAWlC,KAAKkC,YAIhC,EAtDAC,EADEtC,EACYgB,OAAOuB,EAAWC,KAEhCF,EAHEtC,EAGYyC,eAAe,CACzBT,yBAAyB,EACzBU,cAAe,GACfC,MAAO,OACJ1C,EAAkBwC"}
1
+ {"version":3,"file":"Pix.js","sources":["../../../../src/components/Pix/Pix.tsx"],"sourcesContent":["import { h } from 'preact';\nimport QRLoaderContainer from '../helpers/QRLoaderContainer/QRLoaderContainer';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport PixInput from './components/PixInput';\nimport { cleanCPFCNPJ } from '../internal/SocialSecurityNumberBrazil/utils';\nimport { PixElementData, PixConfiguration } from './types';\nimport { TxVariants } from '../tx-variants';\nimport QRLoader from '../internal/QRLoader';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport PixQRDetails from './components/PixQRDetails';\nimport './Pix.scss';\n\nclass PixElement extends QRLoaderContainer<PixConfiguration> {\n public static type = TxVariants.pix;\n\n public static defaultProps = {\n personalDetailsRequired: false,\n countdownTime: 15,\n delay: 2000,\n ...QRLoaderContainer.defaultProps\n };\n\n get isValid(): boolean {\n return !!this.state.isValid;\n }\n\n formatProps(props: PixConfiguration): PixConfiguration {\n return {\n copyBtn: true,\n introduction: 'pix.instructions',\n ...super.formatProps(props)\n };\n }\n\n formatData(): PixElementData {\n const { data = {} } = this.state;\n const { firstName, lastName, socialSecurityNumber = '' } = data;\n\n return {\n paymentMethod: {\n type: this.props.type || this.constructor['type']\n },\n ...(firstName && lastName && { shopperName: { firstName, lastName } }),\n ...(socialSecurityNumber && { socialSecurityNumber: cleanCPFCNPJ(socialSecurityNumber) })\n };\n }\n\n renderQRCode() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <QRLoader\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n type={this.constructor['type']}\n brandLogo={this.props.brandLogo || this.icon}\n onComplete={this.onComplete}\n onActionHandled={this.onActionHandled}\n brandName={this.displayName}\n onSubmitAnalytics={this.submitAnalytics}\n >\n <PixQRDetails />\n </QRLoader>\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n\n render() {\n if (this.props.paymentData) {\n return this.renderQRCode();\n }\n\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <PixInput\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n showPayButton={this.props.showPayButton}\n personalDetailsRequired={this.props.personalDetailsRequired}\n name={this.displayName}\n onChange={this.setState}\n payButton={this.payButton}\n />\n </CoreProvider>\n );\n }\n}\n\nexport default PixElement;\n"],"names":["PixElement","QRLoaderContainer","isValid","this","state","formatProps","props","copyBtn","introduction","super","formatData","data","firstName","lastName","socialSecurityNumber","paymentMethod","type","constructor","shopperName","cleanCPFCNPJ","renderQRCode","h","CoreProvider","i18n","loadingContext","resources","SRPanelProvider","srPanel","modules","QRLoader","ref","componentRef","brandLogo","icon","onComplete","onActionHandled","brandName","displayName","onSubmitAnalytics","submitAnalytics","PixQRDetails","render","paymentData","PixInput","showPayButton","personalDetailsRequired","name","onChange","setState","payButton","_define_property","TxVariants","pix","defaultProps","countdownTime","delay"],"mappings":"02BAYA,MAAMA,UAAmBC,EAUrB,WAAIC,GACA,QAASC,KAAKC,MAAMF,OACxB,CAEAG,WAAAA,CAAYC,GACR,MAAO,CACHC,SAAS,EACTC,aAAc,sBACXC,MAAMJ,YAAYC,GAE7B,CAEAI,UAAAA,GACI,MAAMC,KAAEA,EAAO,IAAOR,KAAKC,OACrBQ,UAAEA,EAASC,SAAEA,EAAQC,qBAAEA,EAAuB,IAAOH,EAE3D,MAAO,CACHI,cAAe,CACXC,KAAMb,KAAKG,MAAMU,MAAQb,KAAKc,YAAY,SAE1CL,GAAaC,GAAY,CAAEK,YAAa,CAAEN,YAAWC,gBACrDC,GAAwB,CAAEA,qBAAsBK,EAAaL,IAEzE,CAEAM,YAAAA,GACI,OACIC,EAACC,EAAAA,CAAaC,KAAMpB,KAAKG,MAAMiB,KAAMC,eAAgBrB,KAAKG,MAAMkB,eAAgBC,UAAWtB,KAAKsB,WAC5FJ,EAACK,EAAAA,CAAgBC,QAASxB,KAAKG,MAAMsB,QAAQD,SACzCN,EAACQ,EAAAA,CACGC,IAAKA,IACD3B,KAAK4B,aAAeD,MAEpB3B,KAAKG,MACTU,KAAMb,KAAKc,YAAY,KACvBe,UAAW7B,KAAKG,MAAM0B,WAAa7B,KAAK8B,KACxCC,WAAY/B,KAAK+B,WACjBC,gBAAiBhC,KAAKgC,gBACtBC,UAAWjC,KAAKkC,YAChBC,kBAAmBnC,KAAKoC,iBAExBlB,EAACmB,EAAAA,QAKrB,CAEAC,MAAAA,GACI,OAAItC,KAAKG,MAAMoC,YACJvC,KAAKiB,eAIZC,EAACC,EAAAA,CAAaC,KAAMpB,KAAKG,MAAMiB,KAAMC,eAAgBrB,KAAKG,MAAMkB,eAAgBC,UAAWtB,KAAKsB,WAC5FJ,EAACsB,EAAAA,CACGb,IAAKA,IACD3B,KAAK4B,aAAeD,MAEpB3B,KAAKG,MACTsC,cAAezC,KAAKG,MAAMsC,cAC1BC,wBAAyB1C,KAAKG,MAAMuC,wBACpCC,KAAM3C,KAAKkC,YACXU,SAAU5C,KAAK6C,SACfC,UAAW9C,KAAK8C,YAIhC,EA7EAC,EADElD,EACYgB,OAAOmC,EAAWC,KAEhCF,EAHElD,EAGYqD,eAAe,CACzBR,yBAAyB,EACzBS,cAAe,GACfC,MAAO,OACJtD,EAAkBoD"}
@@ -0,0 +1,2 @@
1
+ import{createElement as a}from"../../../../external/preact/dist/preact.js";import{useEffect as e,useState as t}from"../../../../external/preact/hooks/dist/hooks.js";import{pixValidationRules as r}from"./validate.js";import{pixFormatters as s}from"./utils.js";import{useCoreContext as o}from"../../../../core/Context/CoreProvider.js";import i from"../../../../utils/useForm/useForm.js";import{BrazilPersonalDetail as l}from"../../../internal/SocialSecurityNumberBrazil/BrazilPersonalDetail.js";function n({name:n,data:d,personalDetailsRequired:m,showPayButton:u,onChange:c,payButton:f}){const{i18n:p}=o(),h=["firstName","lastName","socialSecurityNumber"],{handleChangeFor:y,triggerValidation:j,setSchema:g,data:v,valid:N,errors:S,isValid:x}=i({schema:h,defaultData:d,rules:r,formatters:s});e(()=>{const a=m?[...h]:[];g(a)},[m]);const[C,B]=t("ready");this.setStatus=B,this.showValidation=()=>{j()},e(()=>{c({data:v,valid:N,errors:S,isValid:x})},[c,v,N,S]);const F=m?[]:["standalone"];return a("div",{className:"adyen-checkout__pix-input__field",style:u||m?null:{display:"none"}},m&&a(l,{i18n:p,data:v,handleChangeFor:y,errors:S,valid:N}),u&&f({status:C,label:`${p.get("continueTo")} ${n}`,classNameModifiers:F}))}export{n as default};
2
+ //# sourceMappingURL=PixInput.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PixInput.js","sources":["../../../../../../src/components/Pix/components/PixInput/PixInput.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { pixValidationRules } from './validate';\nimport { pixFormatters } from './utils';\nimport { useCoreContext } from '../../../../core/Context/CoreProvider';\nimport useForm from '../../../../utils/useForm';\nimport { BrazilPersonalDetail } from '../../../internal/SocialSecurityNumberBrazil/BrazilPersonalDetail';\nimport { PixInputDataState, PixInputProps } from './types';\n\nfunction PixInput({ name, data: dataProps, personalDetailsRequired, showPayButton, onChange, payButton }: PixInputProps) {\n const { i18n } = useCoreContext();\n const formSchema = ['firstName', 'lastName', 'socialSecurityNumber'];\n\n const { handleChangeFor, triggerValidation, setSchema, data, valid, errors, isValid } = useForm<PixInputDataState>({\n schema: formSchema,\n defaultData: dataProps,\n rules: pixValidationRules,\n formatters: pixFormatters\n });\n\n // Handle form schema updates\n useEffect(() => {\n const newSchema = personalDetailsRequired ? [...formSchema] : [];\n setSchema(newSchema);\n }, [personalDetailsRequired]);\n\n const [status, setStatus] = useState('ready');\n this.setStatus = setStatus;\n\n this.showValidation = () => {\n triggerValidation();\n };\n\n useEffect(() => {\n onChange({ data, valid, errors, isValid });\n }, [onChange, data, valid, errors]);\n\n const buttonModifiers = !personalDetailsRequired ? ['standalone'] : [];\n\n return (\n <div className=\"adyen-checkout__pix-input__field\" style={!showPayButton && !personalDetailsRequired ? { display: 'none' } : null}>\n {personalDetailsRequired && (\n <BrazilPersonalDetail i18n={i18n} data={data} handleChangeFor={handleChangeFor} errors={errors} valid={valid} />\n )}\n\n {showPayButton &&\n payButton({\n status,\n label: `${i18n.get('continueTo')} ${name}`,\n classNameModifiers: buttonModifiers\n })}\n </div>\n );\n}\n\nexport default PixInput;\n"],"names":["PixInput","name","data","dataProps","personalDetailsRequired","showPayButton","onChange","payButton","i18n","useCoreContext","formSchema","handleChangeFor","triggerValidation","setSchema","valid","errors","isValid","useForm","schema","defaultData","rules","pixValidationRules","formatters","pixFormatters","useEffect","newSchema","status","setStatus","useState","this","showValidation","buttonModifiers","h","div","className","style","display","BrazilPersonalDetail","label","get","classNameModifiers"],"mappings":"6eASA,SAASA,GAASC,KAAEA,EAAMC,KAAMC,EAASC,wBAAEA,EAAuBC,cAAEA,EAAaC,SAAEA,EAAQC,UAAEA,IACzF,MAAMC,KAAEA,GAASC,IACXC,EAAa,CAAC,YAAa,WAAY,yBAEvCC,gBAAEA,EAAeC,kBAAEA,EAAiBC,UAAEA,EAASX,KAAEA,EAAIY,MAAEA,EAAKC,OAAEA,EAAMC,QAAEA,GAAYC,EAA2B,CAC/GC,OAAQR,EACRS,YAAahB,EACbiB,MAAOC,EACPC,WAAYC,IAIhBC,EAAU,KACN,MAAMC,EAAYrB,EAA0B,IAAIM,GAAc,GAC9DG,EAAUY,IACX,CAACrB,IAEJ,MAAOsB,EAAQC,GAAaC,EAAS,SACrCC,KAAKF,UAAYA,EAEjBE,KAAKC,eAAiB,KAClBlB,KAGJY,EAAU,KACNlB,EAAS,CAAEJ,OAAMY,QAAOC,SAAQC,aACjC,CAACV,EAAUJ,EAAMY,EAAOC,IAE3B,MAAMgB,EAAmB3B,EAA2C,GAAjB,CAAC,cAEpD,OACI4B,EAACC,MAAAA,CAAIC,UAAU,mCAAmCC,MAAQ9B,GAAkBD,EAAgD,KAAtB,CAAEgC,QAAS,SAC5GhC,GACG4B,EAACK,EAAAA,CAAqB7B,KAAMA,EAAMN,KAAMA,EAAMS,gBAAiBA,EAAiBI,OAAQA,EAAQD,MAAOA,IAG1GT,GACGE,EAAU,CACNmB,SACAY,MAAO,GAAG9B,EAAK+B,IAAI,iBAAiBtC,IACpCuC,mBAAoBT,IAIxC"}
@@ -0,0 +1,2 @@
1
+ import{formatCPFCNPJ as r}from"../../../internal/SocialSecurityNumberBrazil/utils.js";const i={socialSecurityNumber:i=>r(i)};export{i as pixFormatters};
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../src/components/Pix/components/PixInput/utils.ts"],"sourcesContent":["import { formatCPFCNPJ } from '../../../internal/SocialSecurityNumberBrazil/utils';\n\nexport const pixFormatters = {\n socialSecurityNumber: ssn => formatCPFCNPJ(ssn)\n};\n"],"names":["pixFormatters","socialSecurityNumber","ssn","formatCPFCNPJ"],"mappings":"4FAEaA,EAAgB,CACzBC,qBAAsBC,GAAOC,EAAcD"}
@@ -0,0 +1,2 @@
1
+ import e from"../../../internal/SocialSecurityNumberBrazil/validate.js";const r={socialSecurityNumber:{validate:e,errorMessage:"",modes:["blur"]},default:{validate:e=>!!e&&e.length>0,errorMessage:"",modes:["blur"]}};export{r as pixValidationRules};
2
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sources":["../../../../../../src/components/Pix/components/PixInput/validate.ts"],"sourcesContent":["import { ValidatorRules } from '../../../../utils/Validator/types';\nimport validateSSN from '../../../internal/SocialSecurityNumberBrazil/validate';\n\nexport const pixValidationRules: ValidatorRules = {\n socialSecurityNumber: {\n validate: validateSSN,\n errorMessage: '',\n modes: ['blur']\n },\n default: {\n validate: value => !!value && value.length > 0,\n errorMessage: '',\n modes: ['blur']\n }\n};\n"],"names":["pixValidationRules","socialSecurityNumber","validate","validateSSN","errorMessage","modes","default","value","length"],"mappings":"8EAGaA,EAAqC,CAC9CC,qBAAsB,CAClBC,SAAUC,EACVC,aAAc,GACdC,MAAO,CAAC,SAEZC,QAAS,CACLJ,SAAUK,KAAWA,GAASA,EAAMC,OAAS,EAC7CJ,aAAc,GACdC,MAAO,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{createElement as e}from"../../../external/preact/dist/preact.js";import o from"../../internal/QRLoader/components/QRImage.js";import r from"../../internal/QRLoader/components/QRProgressbar.js";import a from"../../internal/QRLoader/components/QRCountdown.js";import{useCoreContext as t}from"../../../core/Context/CoreProvider.js";import n from"../../internal/QRLoader/components/QRCodeCopyButton.js";import"../../internal/QRLoader/QRLoader.js";import{useQRLoaderDetails as i}from"../../internal/QRLoader/QRLoaderDetailsProvider.js";import d from"../../internal/FormFields/Field/Field.js";import l from"../../internal/FormFields/InputText.js";const m=()=>{const{i18n:m}=t(),{qrCodeData:p,qrCodeImage:c,percentage:s,timeToPay:_,onTick:L,countdownTime:Q,onQRCodeLoad:R,onTimeUp:u,handleCopy:x}=i();return e("div",{className:"adyen-checkout__qr-loader--pix__qr_details"},e(o,{src:c,onLoad:R}),e("div",{className:"adyen-checkout__qr-loader--pix__qr_details__timer"},e(r,{percentage:s}),e(a,{countdownTime:Q,timeToPay:_,onTick:L,onCompleted:u})),e(d,{name:"pix-code",useLabelElement:!1},e(l,{className:"adyen-checkout__qr-loader--pix__qr_details__code",value:p,readonly:!0,"aria-label":m.get("pix.code.label")})),e(n,{copyLabel:m.get("pix.code.copy.label"),copiedLabel:m.get("pix.code.copied.label"),handleCopy:x}))};export{m as default};
2
+ //# sourceMappingURL=PixQRDetails.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PixQRDetails.js","sources":["../../../../../src/components/Pix/components/PixQRDetails.tsx"],"sourcesContent":["import { h } from 'preact';\nimport { QRImage, QRProgressbar, QRCountdown, QRCodeCopyButton, useQRLoaderDetails } from '../../internal/QRLoader';\nimport { useCoreContext } from '../../../core/Context/CoreProvider';\nimport Field from '../../internal/FormFields/Field';\nimport InputText from '../../internal/FormFields/InputText';\n\nconst PixQRDetails = () => {\n const { i18n } = useCoreContext();\n const { qrCodeData, qrCodeImage, percentage, timeToPay, onTick, countdownTime, onQRCodeLoad, onTimeUp, handleCopy } = useQRLoaderDetails();\n\n return (\n <div className=\"adyen-checkout__qr-loader--pix__qr_details\">\n <QRImage src={qrCodeImage} onLoad={onQRCodeLoad} />\n <div className=\"adyen-checkout__qr-loader--pix__qr_details__timer\">\n <QRProgressbar percentage={percentage} />\n <QRCountdown countdownTime={countdownTime} timeToPay={timeToPay} onTick={onTick} onCompleted={onTimeUp} />\n </div>\n <Field name=\"pix-code\" useLabelElement={false}>\n <InputText\n className=\"adyen-checkout__qr-loader--pix__qr_details__code\"\n value={qrCodeData}\n readonly\n aria-label={i18n.get('pix.code.label')}\n />\n </Field>\n <QRCodeCopyButton copyLabel={i18n.get('pix.code.copy.label')} copiedLabel={i18n.get('pix.code.copied.label')} handleCopy={handleCopy} />\n </div>\n );\n};\n\nexport default PixQRDetails;\n"],"names":["PixQRDetails","i18n","useCoreContext","qrCodeData","qrCodeImage","percentage","timeToPay","onTick","countdownTime","onQRCodeLoad","onTimeUp","handleCopy","useQRLoaderDetails","h","div","className","QRImage","src","onLoad","QRProgressbar","QRCountdown","onCompleted","Field","name","useLabelElement","InputText","value","readonly","aria-label","get","QRCodeCopyButton","copyLabel","copiedLabel"],"mappings":"woBAMA,MAAMA,EAAe,KACjB,MAAMC,KAAEA,GAASC,KACXC,WAAEA,EAAUC,YAAEA,EAAWC,WAAEA,EAAUC,UAAEA,EAASC,OAAEA,EAAMC,cAAEA,EAAaC,aAAEA,EAAYC,SAAEA,EAAQC,WAAEA,GAAeC,IAEtH,OACIC,EAACC,MAAAA,CAAIC,UAAU,8CACXF,EAACG,EAAAA,CAAQC,IAAKb,EAAac,OAAQT,IACnCI,EAACC,MAAAA,CAAIC,UAAU,qDACXF,EAACM,EAAAA,CAAcd,WAAYA,IAC3BQ,EAACO,EAAAA,CAAYZ,cAAeA,EAAeF,UAAWA,EAAWC,OAAQA,EAAQc,YAAaX,KAElGG,EAACS,EAAAA,CAAMC,KAAK,WAAWC,iBAAiB,GACpCX,EAACY,EAAAA,CACGV,UAAU,mDACVW,MAAOvB,EACPwB,UAAAA,EACAC,aAAY3B,EAAK4B,IAAI,qBAG7BhB,EAACiB,EAAAA,CAAiBC,UAAW9B,EAAK4B,IAAI,uBAAwBG,YAAa/B,EAAK4B,IAAI,yBAA0BlB,WAAYA"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/UPIComponent/UPIComponent.js";import{CoreProvider as n}from"../../core/Context/CoreProvider.js";import s from"../internal/Await/Await.js";import r from"../internal/QRLoader/QRLoader.js";import i from"../../core/Errors/SRPanelProvider.js";import{TxVariants as p}from"../tx-variants.js";import a from"../../utils/isMobile.js";import{getQrOption as d,getVpaOption as u,getIntentOption as m}from"./constants.js";function l(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}class h extends e{formatProps(t){if(!a())return{...super.formatProps(t),defaultMode:["qrCode","vpa"].includes(t?.defaultMode)?t.defaultMode:"qrCode",apps:[],segmentedControlOptions:[d(t.i18n),u(t.i18n)]};const{i18n:e,apps:o=[]}=t;if(o.length>0){const n=["intent","vpa"].includes(t.defaultMode)?t.defaultMode:"intent";return{...super.formatProps(t),defaultMode:n,apps:o,segmentedControlOptions:[m(e),u(e)]}}return{...super.formatProps(t),defaultMode:"vpa",apps:[],segmentedControlOptions:[]}}get isValid(){return this.state.isValid}formatData(){const{virtualPaymentAddress:t,app:e}=this.state.data||{};return{paymentMethod:{type:this.paymentType,...this.paymentType===p.upi_collect&&t&&{virtualPaymentAddress:t},...this.paymentType===p.upi_intent&&e?.id&&{appId:e.id}}}}get paymentType(){return"qrCode"===this.selectedMode?p.upi_qr:"vpa"===this.selectedMode?p.upi_collect:p.upi_intent}renderContent(e,n,i){const a=!!this.props.mandate;switch(e){case"qrCode":return t(r,{ref:t=>{this.componentRef=t},...this.props,qrCodeData:this.props.qrCodeData?encodeURIComponent(this.props.qrCodeData):null,type:p.upi_qr,brandLogo:this.props.brandLogo||this.icon,onComplete:this.onComplete,introduction:this.props.i18n.get("upi.qrCodeWaitingMessage"),countdownTime:this.props.countdownTime??5,onActionHandled:this.onActionHandled,showAmount:!a});case"await":return t(s,{ref:t=>{this.componentRef=t},url:n,type:i,showCountdownTimer:!0,shouldRedirectAutomatically:!0,showAmount:!a,countdownTime:this.props.countdownTime??5,clientKey:this.props.clientKey,paymentData:this.props.paymentData,onActionHandled:this.onActionHandled,onError:this.props.onError,messageText:this.props.i18n.get("upi.vpaWaitingMessage"),awaitText:this.props.i18n.get("await.waitForConfirmation"),onComplete:this.onComplete,brandLogo:this.icon,amount:this.props.amount});default:return t(o,{ref:t=>{this.componentRef=t},payButton:this.payButton,onChange:this.setState,onUpdateMode:this.onUpdateMode,apps:this.props.apps,segmentedControlOptions:this.props.segmentedControlOptions,defaultMode:this.props.defaultMode,showPayButton:this.props.showPayButton,amount:this.props.amount,mandate:this.props.mandate})}}render(){const{type:e,url:o,paymentMethodType:s}=this.props;return t(n,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(i,{srPanel:this.props.modules.srPanel},this.renderContent(e,o,s)))}constructor(t,e){super(t,e),l(this,"selectedMode",void 0),l(this,"onUpdateMode",t=>{this.selectedMode=t}),this.selectedMode=this.props.defaultMode}}l(h,"type",p.upi),l(h,"txVariants",[p.upi,p.upi_qr,p.upi_collect,p.upi_intent]);export{h as default};
1
+ import{createElement as t}from"../../external/preact/dist/preact.js";import{UIElement as e}from"../internal/UIElement/UIElement.js";import o from"./components/UPIComponent/UPIComponent.js";import{CoreProvider as n}from"../../core/Context/CoreProvider.js";import r from"../internal/Await/Await.js";import"../../external/preact/hooks/dist/hooks.js";import"../../core/Errors/AdyenCheckoutError.js";import"../../core/Errors/SRPanelContext.js";import"../internal/Button/Button.js";import s from"../internal/QRLoader/QRLoader.js";import"../internal/QRLoader/QRLoaderDetailsProvider.js";import i from"../../core/Errors/SRPanelProvider.js";import{TxVariants as p}from"../tx-variants.js";import a from"../../utils/isMobile.js";import{getQrOption as d,getVpaOption as m,getIntentOption as l}from"./constants.js";function u(t,e,o){return e in t?Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0,writable:!0}):t[e]=o,t}class h extends e{formatProps(t){if(!a())return{...super.formatProps(t),defaultMode:["qrCode","vpa"].includes(t?.defaultMode)?t.defaultMode:"qrCode",apps:[],segmentedControlOptions:[d(t.i18n),m(t.i18n)]};const{i18n:e,apps:o=[]}=t;if(o.length>0){const n=["intent","vpa"].includes(t.defaultMode)?t.defaultMode:"intent";return{...super.formatProps(t),defaultMode:n,apps:o,segmentedControlOptions:[l(e),m(e)]}}return{...super.formatProps(t),defaultMode:"vpa",apps:[],segmentedControlOptions:[]}}get isValid(){return this.state.isValid}formatData(){const{virtualPaymentAddress:t,app:e}=this.state.data||{};return{paymentMethod:{type:this.paymentType,...this.paymentType===p.upi_collect&&t&&{virtualPaymentAddress:t},...this.paymentType===p.upi_intent&&e?.id&&{appId:e.id}}}}get paymentType(){return"qrCode"===this.selectedMode?p.upi_qr:"vpa"===this.selectedMode?p.upi_collect:p.upi_intent}renderContent(e,n,i){const a=!!this.props.mandate;switch(e){case"qrCode":return t(s,{ref:t=>{this.componentRef=t},...this.props,qrCodeData:this.props.qrCodeData?encodeURIComponent(this.props.qrCodeData):null,type:p.upi_qr,brandLogo:this.props.brandLogo||this.icon,onComplete:this.onComplete,introduction:this.props.i18n.get("upi.qrCodeWaitingMessage"),countdownTime:this.props.countdownTime??5,onActionHandled:this.onActionHandled,showAmount:!a});case"await":return t(r,{ref:t=>{this.componentRef=t},url:n,type:i,showCountdownTimer:!0,shouldRedirectAutomatically:!0,showAmount:!a,countdownTime:this.props.countdownTime??5,clientKey:this.props.clientKey,paymentData:this.props.paymentData,onActionHandled:this.onActionHandled,onError:this.props.onError,messageText:this.props.i18n.get("upi.vpaWaitingMessage"),awaitText:this.props.i18n.get("await.waitForConfirmation"),onComplete:this.onComplete,brandLogo:this.icon,amount:this.props.amount});default:return t(o,{ref:t=>{this.componentRef=t},payButton:this.payButton,onChange:this.setState,onUpdateMode:this.onUpdateMode,apps:this.props.apps,segmentedControlOptions:this.props.segmentedControlOptions,defaultMode:this.props.defaultMode,showPayButton:this.props.showPayButton,amount:this.props.amount,mandate:this.props.mandate})}}render(){const{type:e,url:o,paymentMethodType:r}=this.props;return t(n,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(i,{srPanel:this.props.modules.srPanel},this.renderContent(e,o,r)))}constructor(t,e){super(t,e),u(this,"selectedMode",void 0),u(this,"onUpdateMode",t=>{this.selectedMode=t}),this.selectedMode=this.props.defaultMode}}u(h,"type",p.upi),u(h,"txVariants",[p.upi,p.upi_qr,p.upi_collect,p.upi_intent]);export{h as default};
2
2
  //# sourceMappingURL=UPI.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UPI.js","sources":["../../../../src/components/UPI/UPI.tsx"],"sourcesContent":["import { h, RefObject } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport UPIComponent from './components/UPIComponent';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport Await from '../internal/Await';\nimport QRLoader from '../internal/QRLoader';\nimport { UPIConfiguration, UpiMode, UpiPaymentData, UpiType } from './types';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport { TxVariants } from '../tx-variants';\nimport isMobile from '../../utils/isMobile';\nimport type { ICore } from '../../core/types';\nimport { getIntentOption, getQrOption, getVpaOption } from './constants';\n\n/**\n * For mobile:\n * We should show upi_collect and upi_intent depending on if `apps` are returned in /paymentMethods response.\n * If there is no apps, hide segmented controls.\n * The upi_collect should always be on the second tab.\n * Never show QR code.\n *\n * For non-mobile:\n * We should never show the upi_intent (ignore `apps` in /paymentMethods response)\n * The upi_qr should be on the first tab and the upi_collect should be on second tab\n */\n\nclass UPI extends UIElement<UPIConfiguration> {\n public static type = TxVariants.upi;\n public static txVariants = [TxVariants.upi, TxVariants.upi_qr, TxVariants.upi_collect, TxVariants.upi_intent];\n\n private selectedMode: UpiMode;\n\n constructor(checkout: ICore, props: UPIConfiguration) {\n super(checkout, props);\n this.selectedMode = this.props.defaultMode;\n }\n\n formatProps(props: UPIConfiguration): UPIConfiguration {\n if (!isMobile()) {\n return {\n ...super.formatProps(props),\n defaultMode: ['qrCode', 'vpa'].includes(props?.defaultMode) ? props.defaultMode : 'qrCode',\n apps: [], // For desktop, ignore the apps\n segmentedControlOptions: [getQrOption(props.i18n), getVpaOption(props.i18n)]\n };\n }\n\n const { i18n, apps = [] } = props;\n const hasIntentApps = apps.length > 0;\n if (hasIntentApps) {\n // Mobile with UPI apps\n const allowedModes: UpiMode[] = ['intent', 'vpa'];\n const defaultMode = allowedModes.includes(props.defaultMode) ? props.defaultMode : 'intent';\n return {\n ...super.formatProps(props),\n defaultMode,\n apps,\n segmentedControlOptions: [getIntentOption(i18n), getVpaOption(i18n)]\n };\n }\n\n // Mobile, but no UPI apps\n return {\n ...super.formatProps(props),\n defaultMode: 'vpa', // Only VPA is possible\n apps: [],\n segmentedControlOptions: []\n };\n }\n\n public get isValid(): boolean {\n return this.state.isValid;\n }\n\n public formatData(): UpiPaymentData {\n const { virtualPaymentAddress, app } = this.state.data || {};\n\n return {\n paymentMethod: {\n type: this.paymentType,\n ...(this.paymentType === TxVariants.upi_collect && virtualPaymentAddress && { virtualPaymentAddress }),\n ...(this.paymentType === TxVariants.upi_intent && app?.id && { appId: app.id })\n }\n };\n }\n\n get paymentType(): UpiType {\n if (this.selectedMode === 'qrCode') {\n return TxVariants.upi_qr;\n }\n if (this.selectedMode === 'vpa') {\n return TxVariants.upi_collect;\n }\n return TxVariants.upi_intent;\n }\n\n private onUpdateMode = (mode: UpiMode): void => {\n this.selectedMode = mode;\n };\n\n private renderContent(type: string, url: string, paymentMethodType: string): h.JSX.Element {\n const isAutoPay = !!this.props.mandate;\n\n switch (type) {\n case 'qrCode':\n return (\n <QRLoader\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n qrCodeData={this.props.qrCodeData ? encodeURIComponent(this.props.qrCodeData) : null}\n type={TxVariants.upi_qr}\n brandLogo={this.props.brandLogo || this.icon}\n onComplete={this.onComplete}\n introduction={this.props.i18n.get('upi.qrCodeWaitingMessage')}\n countdownTime={this.props.countdownTime ?? 5}\n onActionHandled={this.onActionHandled}\n showAmount={!isAutoPay}\n />\n );\n case 'await':\n return (\n <Await\n ref={ref => {\n this.componentRef = ref;\n }}\n url={url}\n type={paymentMethodType}\n showCountdownTimer\n shouldRedirectAutomatically\n showAmount={!isAutoPay}\n countdownTime={this.props.countdownTime ?? 5}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onActionHandled={this.onActionHandled}\n onError={this.props.onError}\n messageText={this.props.i18n.get('upi.vpaWaitingMessage')}\n awaitText={this.props.i18n.get('await.waitForConfirmation')}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n amount={this.props.amount}\n />\n );\n default:\n return (\n <UPIComponent\n ref={(ref: RefObject<typeof UPIComponent>) => {\n this.componentRef = ref;\n }}\n payButton={this.payButton}\n onChange={this.setState}\n onUpdateMode={this.onUpdateMode}\n apps={this.props.apps}\n segmentedControlOptions={this.props.segmentedControlOptions}\n defaultMode={this.props.defaultMode}\n showPayButton={this.props.showPayButton}\n amount={this.props.amount}\n mandate={this.props.mandate}\n />\n );\n }\n }\n\n public render(): h.JSX.Element {\n const { type, url, paymentMethodType } = this.props;\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>{this.renderContent(type, url, paymentMethodType)}</SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default UPI;\n"],"names":["UPI","UIElement","formatProps","props","isMobile","super","defaultMode","includes","apps","segmentedControlOptions","getQrOption","i18n","getVpaOption","length","getIntentOption","isValid","this","state","formatData","virtualPaymentAddress","app","data","paymentMethod","type","paymentType","TxVariants","upi_collect","upi_intent","id","appId","selectedMode","upi_qr","renderContent","url","paymentMethodType","isAutoPay","mandate","h","QRLoader","ref","componentRef","qrCodeData","encodeURIComponent","brandLogo","icon","onComplete","introduction","get","countdownTime","onActionHandled","showAmount","Await","showCountdownTimer","shouldRedirectAutomatically","clientKey","paymentData","onError","messageText","awaitText","amount","UPIComponent","payButton","onChange","setState","onUpdateMode","showPayButton","render","CoreProvider","loadingContext","resources","SRPanelProvider","srPanel","modules","constructor","checkout","_define_property","mode","upi","txVariants"],"mappings":"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"}
1
+ {"version":3,"file":"UPI.js","sources":["../../../../src/components/UPI/UPI.tsx"],"sourcesContent":["import { h, RefObject } from 'preact';\nimport UIElement from '../internal/UIElement/UIElement';\nimport UPIComponent from './components/UPIComponent';\nimport { CoreProvider } from '../../core/Context/CoreProvider';\nimport Await from '../internal/Await';\nimport QRLoader from '../internal/QRLoader';\nimport { UPIConfiguration, UpiMode, UpiPaymentData, UpiType } from './types';\nimport SRPanelProvider from '../../core/Errors/SRPanelProvider';\nimport { TxVariants } from '../tx-variants';\nimport isMobile from '../../utils/isMobile';\nimport type { ICore } from '../../core/types';\nimport { getIntentOption, getQrOption, getVpaOption } from './constants';\n\n/**\n * For mobile:\n * We should show upi_collect and upi_intent depending on if `apps` are returned in /paymentMethods response.\n * If there is no apps, hide segmented controls.\n * The upi_collect should always be on the second tab.\n * Never show QR code.\n *\n * For non-mobile:\n * We should never show the upi_intent (ignore `apps` in /paymentMethods response)\n * The upi_qr should be on the first tab and the upi_collect should be on second tab\n */\n\nclass UPI extends UIElement<UPIConfiguration> {\n public static type = TxVariants.upi;\n public static txVariants = [TxVariants.upi, TxVariants.upi_qr, TxVariants.upi_collect, TxVariants.upi_intent];\n\n private selectedMode: UpiMode;\n\n constructor(checkout: ICore, props: UPIConfiguration) {\n super(checkout, props);\n this.selectedMode = this.props.defaultMode;\n }\n\n formatProps(props: UPIConfiguration): UPIConfiguration {\n if (!isMobile()) {\n return {\n ...super.formatProps(props),\n defaultMode: ['qrCode', 'vpa'].includes(props?.defaultMode) ? props.defaultMode : 'qrCode',\n apps: [], // For desktop, ignore the apps\n segmentedControlOptions: [getQrOption(props.i18n), getVpaOption(props.i18n)]\n };\n }\n\n const { i18n, apps = [] } = props;\n const hasIntentApps = apps.length > 0;\n if (hasIntentApps) {\n // Mobile with UPI apps\n const allowedModes: UpiMode[] = ['intent', 'vpa'];\n const defaultMode = allowedModes.includes(props.defaultMode) ? props.defaultMode : 'intent';\n return {\n ...super.formatProps(props),\n defaultMode,\n apps,\n segmentedControlOptions: [getIntentOption(i18n), getVpaOption(i18n)]\n };\n }\n\n // Mobile, but no UPI apps\n return {\n ...super.formatProps(props),\n defaultMode: 'vpa', // Only VPA is possible\n apps: [],\n segmentedControlOptions: []\n };\n }\n\n public get isValid(): boolean {\n return this.state.isValid;\n }\n\n public formatData(): UpiPaymentData {\n const { virtualPaymentAddress, app } = this.state.data || {};\n\n return {\n paymentMethod: {\n type: this.paymentType,\n ...(this.paymentType === TxVariants.upi_collect && virtualPaymentAddress && { virtualPaymentAddress }),\n ...(this.paymentType === TxVariants.upi_intent && app?.id && { appId: app.id })\n }\n };\n }\n\n get paymentType(): UpiType {\n if (this.selectedMode === 'qrCode') {\n return TxVariants.upi_qr;\n }\n if (this.selectedMode === 'vpa') {\n return TxVariants.upi_collect;\n }\n return TxVariants.upi_intent;\n }\n\n private onUpdateMode = (mode: UpiMode): void => {\n this.selectedMode = mode;\n };\n\n private renderContent(type: string, url: string, paymentMethodType: string): h.JSX.Element {\n const isAutoPay = !!this.props.mandate;\n\n switch (type) {\n case 'qrCode':\n return (\n <QRLoader\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n qrCodeData={this.props.qrCodeData ? encodeURIComponent(this.props.qrCodeData) : null}\n type={TxVariants.upi_qr}\n brandLogo={this.props.brandLogo || this.icon}\n onComplete={this.onComplete}\n introduction={this.props.i18n.get('upi.qrCodeWaitingMessage')}\n countdownTime={this.props.countdownTime ?? 5}\n onActionHandled={this.onActionHandled}\n showAmount={!isAutoPay}\n />\n );\n case 'await':\n return (\n <Await\n ref={ref => {\n this.componentRef = ref;\n }}\n url={url}\n type={paymentMethodType}\n showCountdownTimer\n shouldRedirectAutomatically\n showAmount={!isAutoPay}\n countdownTime={this.props.countdownTime ?? 5}\n clientKey={this.props.clientKey}\n paymentData={this.props.paymentData}\n onActionHandled={this.onActionHandled}\n onError={this.props.onError}\n messageText={this.props.i18n.get('upi.vpaWaitingMessage')}\n awaitText={this.props.i18n.get('await.waitForConfirmation')}\n onComplete={this.onComplete}\n brandLogo={this.icon}\n amount={this.props.amount}\n />\n );\n default:\n return (\n <UPIComponent\n ref={(ref: RefObject<typeof UPIComponent>) => {\n this.componentRef = ref;\n }}\n payButton={this.payButton}\n onChange={this.setState}\n onUpdateMode={this.onUpdateMode}\n apps={this.props.apps}\n segmentedControlOptions={this.props.segmentedControlOptions}\n defaultMode={this.props.defaultMode}\n showPayButton={this.props.showPayButton}\n amount={this.props.amount}\n mandate={this.props.mandate}\n />\n );\n }\n }\n\n public render(): h.JSX.Element {\n const { type, url, paymentMethodType } = this.props;\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>{this.renderContent(type, url, paymentMethodType)}</SRPanelProvider>\n </CoreProvider>\n );\n }\n}\n\nexport default UPI;\n"],"names":["UPI","UIElement","formatProps","props","isMobile","super","defaultMode","includes","apps","segmentedControlOptions","getQrOption","i18n","getVpaOption","length","getIntentOption","isValid","this","state","formatData","virtualPaymentAddress","app","data","paymentMethod","type","paymentType","TxVariants","upi_collect","upi_intent","id","appId","selectedMode","upi_qr","renderContent","url","paymentMethodType","isAutoPay","mandate","h","QRLoader","ref","componentRef","qrCodeData","encodeURIComponent","brandLogo","icon","onComplete","introduction","get","countdownTime","onActionHandled","showAmount","Await","showCountdownTimer","shouldRedirectAutomatically","clientKey","paymentData","onError","messageText","awaitText","amount","UPIComponent","payButton","onChange","setState","onUpdateMode","showPayButton","render","CoreProvider","loadingContext","resources","SRPanelProvider","srPanel","modules","constructor","checkout","_define_property","mode","upi","txVariants"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"../../../../../_virtual/index.js";import a from"../../../../Dropin/components/PaymentMethod/PaymentMethodIcon.js";import p from"../../../../internal/ExpandButton/ExpandButton.js";const c=({app:c,imgSrc:n,isSelected:i,onSelect:o=()=>{}})=>{const m=`adyen-checkout-upi-app-item-button-${c.id}`,s=`adyen-checkout-upi-app-${c.id}`;return e("li",{className:t({"adyen-checkout-upi-app-item":!0,"adyen-checkout-upi-app-item--selected":i}),onClick:()=>(e=>{o(e)})(c)},e("div",{className:"adyen-checkout-upi-app-item-header"},e(p,{classNameModifiers:["upi-app-item"],buttonId:m,isSelected:i,expandContentId:s},e(a,{src:n,altDescription:c.name,type:c.id}),e("label",{className:"adyen-checkout-upi-app-item__label",htmlFor:m},c.name))),i&&e("span",{className:"adyen-checkout-checkmark"}))};export{c as default};
1
+ import{createElement as e}from"../../../../../external/preact/dist/preact.js";import t from"../../../../../_virtual/index.js";import a from"../../../../Dropin/components/PaymentMethod/PaymentMethodIcon.js";import p from"../../../../internal/ExpandButton/ExpandButton.js";const i=({app:i,imgSrc:c,isSelected:n,onSelect:o=()=>{}})=>{const m=`adyen-checkout-upi-app-item-button-${i.id}`,s=`adyen-checkout-upi-app-${i.id}`;return e("li",{className:t({"adyen-checkout-upi-app-item":!0,"adyen-checkout-upi-app-item--selected":n}),onClick:()=>(e=>{o(e)})(i)},e("div",{className:"adyen-checkout-upi-app-item-header"},e(p,{classNameModifiers:["upi-app-item"],buttonId:m,isSelected:n,expandContentId:s},e(a,{src:c,altDescription:i.name,type:i.id}),e("label",{className:"adyen-checkout-upi-app-item__label",htmlFor:m},i.name))),n&&e("span",{className:"adyen-checkout-upi-app-item__checkmark"}))};export{i as default};
2
2
  //# sourceMappingURL=UPIIntentAppItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UPIIntentAppItem.js","sources":["../../../../../../../src/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport { App } from '../../../types';\nimport PaymentMethodIcon from '../../../../Dropin/components/PaymentMethod/PaymentMethodIcon';\nimport ExpandButton from '../../../../internal/ExpandButton';\nimport './UPIIntentAppItem.scss';\n\ninterface UPIIntentAppItemProps {\n app: App;\n imgSrc: string;\n isSelected: boolean;\n onSelect?: Function;\n}\n\nconst UPIIntentAppItem = ({ app, imgSrc, isSelected, onSelect = () => {} }: UPIIntentAppItemProps): h.JSX.Element => {\n const buttonId = `adyen-checkout-upi-app-item-button-${app.id}`;\n const containerId = `adyen-checkout-upi-app-${app.id}`;\n const handleAppSelected = (app: App) => {\n onSelect(app);\n };\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions\n <li\n className={cx({\n 'adyen-checkout-upi-app-item': true,\n 'adyen-checkout-upi-app-item--selected': isSelected\n })}\n onClick={() => handleAppSelected(app)}\n >\n <div className=\"adyen-checkout-upi-app-item-header\">\n <ExpandButton classNameModifiers={['upi-app-item']} buttonId={buttonId} isSelected={isSelected} expandContentId={containerId}>\n <PaymentMethodIcon src={imgSrc} altDescription={app.name} type={app.id}></PaymentMethodIcon>\n <label className=\"adyen-checkout-upi-app-item__label\" htmlFor={buttonId}>\n {app.name}\n </label>\n </ExpandButton>\n </div>\n {isSelected && <span className=\"adyen-checkout-checkmark\" />}\n </li>\n );\n};\n\nexport default UPIIntentAppItem;\n"],"names":["UPIIntentAppItem","app","imgSrc","isSelected","onSelect","buttonId","id","containerId","h","li","className","cx","onClick","handleAppSelected","div","ExpandButton","classNameModifiers","expandContentId","PaymentMethodIcon","src","altDescription","name","type","label","htmlFor","span"],"mappings":"+QAcA,MAAMA,EAAmB,EAAGC,MAAKC,SAAQC,aAAYC,WAAW,WAC5D,MAAMC,EAAW,sCAAsCJ,EAAIK,KACrDC,EAAc,0BAA0BN,EAAIK,KAKlD,OAEIE,EAACC,KAAAA,CACGC,UAAWC,EAAG,CACV,+BAA+B,EAC/B,wCAAyCR,IAE7CS,QAAS,IAXS,CAACX,IACvBG,EAASH,IAUUY,CAAkBZ,IAEjCO,EAACM,MAAAA,CAAIJ,UAAU,sCACXF,EAACO,EAAAA,CAAaC,mBAAoB,CAAC,gBAAiBX,SAAUA,EAAUF,WAAYA,EAAYc,gBAAiBV,GAC7GC,EAACU,EAAAA,CAAkBC,IAAKjB,EAAQkB,eAAgBnB,EAAIoB,KAAMC,KAAMrB,EAAIK,KACpEE,EAACe,QAAAA,CAAMb,UAAU,qCAAqCc,QAASnB,GAC1DJ,EAAIoB,QAIhBlB,GAAcK,EAACiB,OAAAA,CAAKf,UAAU"}
1
+ {"version":3,"file":"UPIIntentAppItem.js","sources":["../../../../../../../src/components/UPI/components/UPIIntentAppList/UPIIntentAppItem/UPIIntentAppItem.tsx"],"sourcesContent":["import { h } from 'preact';\nimport cx from 'classnames';\nimport { App } from '../../../types';\nimport PaymentMethodIcon from '../../../../Dropin/components/PaymentMethod/PaymentMethodIcon';\nimport ExpandButton from '../../../../internal/ExpandButton';\nimport './UPIIntentAppItem.scss';\n\ninterface UPIIntentAppItemProps {\n app: App;\n imgSrc: string;\n isSelected: boolean;\n onSelect?: Function;\n}\n\nconst UPIIntentAppItem = ({ app, imgSrc, isSelected, onSelect = () => {} }: UPIIntentAppItemProps): h.JSX.Element => {\n const buttonId = `adyen-checkout-upi-app-item-button-${app.id}`;\n const containerId = `adyen-checkout-upi-app-${app.id}`;\n const handleAppSelected = (app: App) => {\n onSelect(app);\n };\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events,jsx-a11y/no-noninteractive-element-interactions\n <li\n className={cx({\n 'adyen-checkout-upi-app-item': true,\n 'adyen-checkout-upi-app-item--selected': isSelected\n })}\n onClick={() => handleAppSelected(app)}\n >\n <div className=\"adyen-checkout-upi-app-item-header\">\n <ExpandButton classNameModifiers={['upi-app-item']} buttonId={buttonId} isSelected={isSelected} expandContentId={containerId}>\n <PaymentMethodIcon src={imgSrc} altDescription={app.name} type={app.id}></PaymentMethodIcon>\n <label className=\"adyen-checkout-upi-app-item__label\" htmlFor={buttonId}>\n {app.name}\n </label>\n </ExpandButton>\n </div>\n {isSelected && <span className=\"adyen-checkout-upi-app-item__checkmark\" />}\n </li>\n );\n};\n\nexport default UPIIntentAppItem;\n"],"names":["UPIIntentAppItem","app","imgSrc","isSelected","onSelect","buttonId","id","containerId","h","li","className","cx","onClick","handleAppSelected","div","ExpandButton","classNameModifiers","expandContentId","PaymentMethodIcon","src","altDescription","name","type","label","htmlFor","span"],"mappings":"+QAcA,MAAMA,EAAmB,EAAGC,MAAKC,SAAQC,aAAYC,WAAW,WAC5D,MAAMC,EAAW,sCAAsCJ,EAAIK,KACrDC,EAAc,0BAA0BN,EAAIK,KAKlD,OAEIE,EAACC,KAAAA,CACGC,UAAWC,EAAG,CACV,+BAA+B,EAC/B,wCAAyCR,IAE7CS,QAAS,IAXS,CAACX,IACvBG,EAASH,IAUUY,CAAkBZ,IAEjCO,EAACM,MAAAA,CAAIJ,UAAU,sCACXF,EAACO,EAAAA,CAAaC,mBAAoB,CAAC,gBAAiBX,SAAUA,EAAUF,WAAYA,EAAYc,gBAAiBV,GAC7GC,EAACU,EAAAA,CAAkBC,IAAKjB,EAAQkB,eAAgBnB,EAAIoB,KAAMC,KAAMrB,EAAIK,KACpEE,EAACe,QAAAA,CAAMb,UAAU,qCAAqCc,QAASnB,GAC1DJ,EAAIoB,QAIhBlB,GAAcK,EAACiB,OAAAA,CAAKf,UAAU"}
@@ -1,2 +1,2 @@
1
- import{createElement as t}from"../../../external/preact/dist/preact.js";import{UIElement as e}from"../../internal/UIElement/UIElement.js";import o from"../../internal/QRLoader/QRLoader.js";import{CoreProvider as r}from"../../../core/Context/CoreProvider.js";import n from"../../internal/RedirectButton/RedirectButton.js";import s from"../../../core/Errors/SRPanelProvider.js";class i extends e{formatData(){return{paymentMethod:{type:this.type,...this.state.data}}}get isValid(){return!0}renderQRCode(){return t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(s,{srPanel:this.props.modules.srPanel},t(o,{ref:t=>{this.componentRef=t},...this.props,type:this.constructor.type,brandLogo:this.props.brandLogo||this.icon,delay:this.props.delay,onComplete:this.onComplete,countdownTime:this.props.countdownTime,instructions:this.props.instructions,onActionHandled:this.onActionHandled,brandName:this.displayName,onSubmitAnalytics:this.submitAnalytics})))}render(){return this.props.paymentData?this.renderQRCode():this.props.showPayButton?t(r,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(n,{showPayButton:this.props.showPayButton,name:this.displayName,onSubmit:this.submit,payButton:this.payButton,ref:t=>{this.componentRef=t}})):null}}var a,p,l;l={qrCodeImage:"",amount:null,paymentData:null,onError:()=>{},onComplete:()=>{}},(p="defaultProps")in(a=i)?Object.defineProperty(a,p,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[p]=l;export{i as default};
1
+ import{createElement as t}from"../../../external/preact/dist/preact.js";import{UIElement as e}from"../../internal/UIElement/UIElement.js";import{CoreProvider as o}from"../../../core/Context/CoreProvider.js";import"../../../external/preact/hooks/dist/hooks.js";import"../../../core/Errors/AdyenCheckoutError.js";import"../../../core/Errors/SRPanelContext.js";import"../../internal/Button/Button.js";import r from"../../internal/QRLoader/QRLoader.js";import"../../internal/QRLoader/QRLoaderDetailsProvider.js";import n from"../../internal/RedirectButton/RedirectButton.js";import s from"../../../core/Errors/SRPanelProvider.js";class i extends e{formatData(){return{paymentMethod:{type:this.type,...this.state.data}}}get isValid(){return!0}renderQRCode(){return t(o,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(s,{srPanel:this.props.modules.srPanel},t(r,{ref:t=>{this.componentRef=t},...this.props,delay:this.props.delay,countdownTime:this.props.countdownTime,instructions:this.props.instructions,type:this.constructor.type,brandLogo:this.props.brandLogo||this.icon,onComplete:this.onComplete,onActionHandled:this.onActionHandled,brandName:this.displayName,onSubmitAnalytics:this.submitAnalytics})))}render(){return this.props.paymentData?this.renderQRCode():this.props.showPayButton?t(o,{i18n:this.props.i18n,loadingContext:this.props.loadingContext,resources:this.resources},t(n,{showPayButton:this.props.showPayButton,name:this.displayName,onSubmit:this.submit,payButton:this.payButton,ref:t=>{this.componentRef=t}})):null}}var a,p,l;l={qrCodeImage:"",amount:null,paymentData:null,onError:()=>{},onComplete:()=>{}},(p="defaultProps")in(a=i)?Object.defineProperty(a,p,{value:l,enumerable:!0,configurable:!0,writable:!0}):a[p]=l;export{i as default};
2
2
  //# sourceMappingURL=QRLoaderContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"QRLoaderContainer.js","sources":["../../../../../src/components/helpers/QRLoaderContainer/QRLoaderContainer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../../internal/UIElement/UIElement';\nimport QRLoader from '../../internal/QRLoader';\nimport { CoreProvider } from '../../../core/Context/CoreProvider';\nimport RedirectButton from '../../internal/RedirectButton';\nimport SRPanelProvider from '../../../core/Errors/SRPanelProvider';\nimport { QRLoaderConfiguration } from './types';\n\nclass QRLoaderContainer<T extends QRLoaderConfiguration = QRLoaderConfiguration> extends UIElement<T> {\n // Using the generic here allow to fully extend the QRLoaderContainer (including it's props)\n protected static defaultProps = {\n qrCodeImage: '',\n amount: null,\n paymentData: null,\n onError: () => {},\n onComplete: () => {}\n };\n\n formatData() {\n return {\n paymentMethod: {\n type: this.type,\n ...this.state.data\n }\n };\n }\n\n get isValid() {\n return true;\n }\n\n // Makes possible to extend the final QR code step\n public renderQRCode() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <QRLoader\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n type={this.constructor['type']}\n brandLogo={this.props.brandLogo || this.icon}\n delay={this.props.delay}\n onComplete={this.onComplete}\n countdownTime={this.props.countdownTime}\n instructions={this.props.instructions}\n onActionHandled={this.onActionHandled}\n brandName={this.displayName}\n onSubmitAnalytics={this.submitAnalytics}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n\n render() {\n if (this.props.paymentData) {\n return this.renderQRCode();\n }\n\n if (this.props.showPayButton) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n onSubmit={this.submit}\n payButton={this.payButton}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n </CoreProvider>\n );\n }\n\n return null;\n }\n}\n\nexport default QRLoaderContainer;\n"],"names":["QRLoaderContainer","UIElement","formatData","paymentMethod","type","this","state","data","isValid","renderQRCode","h","CoreProvider","i18n","props","loadingContext","resources","SRPanelProvider","srPanel","modules","QRLoader","ref","componentRef","constructor","brandLogo","icon","delay","onComplete","countdownTime","instructions","onActionHandled","brandName","displayName","onSubmitAnalytics","submitAnalytics","render","paymentData","showPayButton","RedirectButton","name","onSubmit","submit","payButton","qrCodeImage","amount","onError","defaultProps"],"mappings":"wXAQA,MAAMA,UAAmFC,EAUrFC,UAAAA,GACI,MAAO,CACHC,cAAe,CACXC,KAAMC,KAAKD,QACRC,KAAKC,MAAMC,MAG1B,CAEA,WAAIC,GACA,OAAO,CACX,CAGOC,YAAAA,GACH,OACIC,EAACC,EAAAA,CAAaC,KAAMP,KAAKQ,MAAMD,KAAME,eAAgBT,KAAKQ,MAAMC,eAAgBC,UAAWV,KAAKU,WAC5FL,EAACM,EAAAA,CAAgBC,QAASZ,KAAKQ,MAAMK,QAAQD,SACzCP,EAACS,EAAAA,CACGC,IAAKA,IACDf,KAAKgB,aAAeD,MAEpBf,KAAKQ,MACTT,KAAMC,KAAKiB,YAAY,KACvBC,UAAWlB,KAAKQ,MAAMU,WAAalB,KAAKmB,KACxCC,MAAOpB,KAAKQ,MAAMY,MAClBC,WAAYrB,KAAKqB,WACjBC,cAAetB,KAAKQ,MAAMc,cAC1BC,aAAcvB,KAAKQ,MAAMe,aACzBC,gBAAiBxB,KAAKwB,gBACtBC,UAAWzB,KAAK0B,YAChBC,kBAAmB3B,KAAK4B,mBAK5C,CAEAC,MAAAA,GACI,OAAI7B,KAAKQ,MAAMsB,YACJ9B,KAAKI,eAGZJ,KAAKQ,MAAMuB,cAEP1B,EAACC,EAAAA,CAAaC,KAAMP,KAAKQ,MAAMD,KAAME,eAAgBT,KAAKQ,MAAMC,eAAgBC,UAAWV,KAAKU,WAC5FL,EAAC2B,EAAAA,CACGD,cAAe/B,KAAKQ,MAAMuB,cAC1BE,KAAMjC,KAAK0B,YACXQ,SAAUlC,KAAKmC,OACfC,UAAWpC,KAAKoC,UAChBrB,IAAKA,IACDf,KAAKgB,aAAeD,MAOjC,IACX,cApEgC,CAC5BsB,YAAa,GACbC,OAAQ,KACRR,YAAa,KACbS,QAAS,OACTlB,WAAY,WALCmB,oBAFf7C"}
1
+ {"version":3,"file":"QRLoaderContainer.js","sources":["../../../../../src/components/helpers/QRLoaderContainer/QRLoaderContainer.tsx"],"sourcesContent":["import { h } from 'preact';\nimport UIElement from '../../internal/UIElement/UIElement';\nimport QRLoader from '../../internal/QRLoader';\nimport { CoreProvider } from '../../../core/Context/CoreProvider';\nimport RedirectButton from '../../internal/RedirectButton';\nimport SRPanelProvider from '../../../core/Errors/SRPanelProvider';\nimport { QRLoaderConfiguration } from './types';\n\nclass QRLoaderContainer<T extends QRLoaderConfiguration = QRLoaderConfiguration> extends UIElement<T> {\n // Using the generic here allow to fully extend the QRLoaderContainer (including it's props)\n protected static defaultProps = {\n qrCodeImage: '',\n amount: null,\n paymentData: null,\n onError: () => {},\n onComplete: () => {}\n };\n\n formatData() {\n return {\n paymentMethod: {\n type: this.type,\n ...this.state.data\n }\n };\n }\n\n get isValid() {\n return true;\n }\n\n // Makes possible to extend the final QR code step\n public renderQRCode() {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <SRPanelProvider srPanel={this.props.modules.srPanel}>\n <QRLoader\n ref={ref => {\n this.componentRef = ref;\n }}\n {...this.props}\n delay={this.props.delay}\n countdownTime={this.props.countdownTime}\n instructions={this.props.instructions}\n type={this.constructor['type']}\n brandLogo={this.props.brandLogo || this.icon}\n onComplete={this.onComplete}\n onActionHandled={this.onActionHandled}\n brandName={this.displayName}\n onSubmitAnalytics={this.submitAnalytics}\n />\n </SRPanelProvider>\n </CoreProvider>\n );\n }\n\n render() {\n if (this.props.paymentData) {\n return this.renderQRCode();\n }\n\n if (this.props.showPayButton) {\n return (\n <CoreProvider i18n={this.props.i18n} loadingContext={this.props.loadingContext} resources={this.resources}>\n <RedirectButton\n showPayButton={this.props.showPayButton}\n name={this.displayName}\n onSubmit={this.submit}\n payButton={this.payButton}\n ref={ref => {\n this.componentRef = ref;\n }}\n />\n </CoreProvider>\n );\n }\n\n return null;\n }\n}\n\nexport default QRLoaderContainer;\n"],"names":["QRLoaderContainer","UIElement","formatData","paymentMethod","type","this","state","data","isValid","renderQRCode","h","CoreProvider","i18n","props","loadingContext","resources","SRPanelProvider","srPanel","modules","QRLoader","ref","componentRef","delay","countdownTime","instructions","constructor","brandLogo","icon","onComplete","onActionHandled","brandName","displayName","onSubmitAnalytics","submitAnalytics","render","paymentData","showPayButton","RedirectButton","name","onSubmit","submit","payButton","qrCodeImage","amount","onError","defaultProps"],"mappings":"knBAQA,MAAMA,UAAmFC,EAUrFC,UAAAA,GACI,MAAO,CACHC,cAAe,CACXC,KAAMC,KAAKD,QACRC,KAAKC,MAAMC,MAG1B,CAEA,WAAIC,GACA,OAAO,CACX,CAGOC,YAAAA,GACH,OACIC,EAACC,EAAAA,CAAaC,KAAMP,KAAKQ,MAAMD,KAAME,eAAgBT,KAAKQ,MAAMC,eAAgBC,UAAWV,KAAKU,WAC5FL,EAACM,EAAAA,CAAgBC,QAASZ,KAAKQ,MAAMK,QAAQD,SACzCP,EAACS,EAAAA,CACGC,IAAKA,IACDf,KAAKgB,aAAeD,MAEpBf,KAAKQ,MACTS,MAAOjB,KAAKQ,MAAMS,MAClBC,cAAelB,KAAKQ,MAAMU,cAC1BC,aAAcnB,KAAKQ,MAAMW,aACzBpB,KAAMC,KAAKoB,YAAY,KACvBC,UAAWrB,KAAKQ,MAAMa,WAAarB,KAAKsB,KACxCC,WAAYvB,KAAKuB,WACjBC,gBAAiBxB,KAAKwB,gBACtBC,UAAWzB,KAAK0B,YAChBC,kBAAmB3B,KAAK4B,mBAK5C,CAEAC,MAAAA,GACI,OAAI7B,KAAKQ,MAAMsB,YACJ9B,KAAKI,eAGZJ,KAAKQ,MAAMuB,cAEP1B,EAACC,EAAAA,CAAaC,KAAMP,KAAKQ,MAAMD,KAAME,eAAgBT,KAAKQ,MAAMC,eAAgBC,UAAWV,KAAKU,WAC5FL,EAAC2B,EAAAA,CACGD,cAAe/B,KAAKQ,MAAMuB,cAC1BE,KAAMjC,KAAK0B,YACXQ,SAAUlC,KAAKmC,OACfC,UAAWpC,KAAKoC,UAChBrB,IAAKA,IACDf,KAAKgB,aAAeD,MAOjC,IACX,cApEgC,CAC5BsB,YAAa,GACbC,OAAQ,KACRR,YAAa,KACbS,QAAS,OACThB,WAAY,WALCiB,oBAFf7C"}
@@ -1,2 +1,2 @@
1
- import{Component as e,createElement as t}from"../../../external/preact/dist/preact.js";import n from"../../../_virtual/index.js";import o from"../Spinner/Spinner.js";import{useCoreContext as s}from"../../../core/Context/CoreProvider.js";function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class r extends e{render(){const{classNameModifiers:e=[],disabled:a,href:r,icon:i,inline:l,label:c,ariaLabel:u,ariaDescribedBy:d,status:p,variant:m,buttonRef:_,onMouseEnter:h,onMouseLeave:b,onFocus:y,onBlur:f,onKeyPress:g}=this.props,{completed:k}=this.state,{i18n:v}=s(),N=i?t("img",{className:"adyen-checkout__button__icon",src:i,alt:"","aria-hidden":"true"}):"",C=[...e,..."primary"!==m?[m]:[],...l?["inline"]:[],...k?["completed"]:[],..."loading"===p||"redirect"===p?["loading"]:[]],x=n(["adyen-checkout__button",...C.map(e=>`adyen-checkout__button--${e}`)]),K={loading:t("span",{className:"adyen-checkout__button__content"},t(o,{size:"medium",inline:!0}),t("span",{className:"adyen-checkout__button__text--sr-only"},v.get("loading"))),redirect:t("span",{className:"adyen-checkout__button__content"},t(o,{size:"medium",inline:!0}),v.get("payButton.redirecting")),default:t("span",{className:"adyen-checkout__button__content"},N,t("span",{className:"adyen-checkout__button__text"},c))},M=K[p]||K.default;return r?t("a",{className:x,href:r,disabled:a,target:this.props.target,rel:this.props.rel},M):t("button",{ref:_,className:x,type:"button",disabled:a,onClick:this.onClick,onKeyDown:this.onKeyDown,"aria-label":u,"aria-describedby":d,onMouseEnter:h,onMouseLeave:b,onFocus:y,onBlur:f,onKeyPress:g},M,"loading"!==p&&"redirect"!==p&&this.props.children)}constructor(...e){super(...e),a(this,"onClick",e=>{e.preventDefault(),this.props.disabled||this.props.onClick(e,{complete:this.complete})}),a(this,"complete",(e=1e3)=>{this.setState({completed:!0}),setTimeout(()=>{this.setState({completed:!1})},e)}),a(this,"onKeyDown",e=>{this.props.onKeyDown?.(e)})}}a(r,"defaultProps",{status:"default",variant:"primary",disabled:!1,label:"",inline:!1,target:"_self",onClick:()=>{},onMouseEnter:()=>{},onMouseLeave:()=>{},onFocus:()=>{},onBlur:()=>{},onKeyPress:()=>{}});export{r as default};
1
+ import{Component as e,createElement as t}from"../../../external/preact/dist/preact.js";import n from"../../../_virtual/index.js";import o from"../Spinner/Spinner.js";import{useCoreContext as a}from"../../../core/Context/CoreProvider.js";function s(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class i extends e{render(){const{classNameModifiers:e=[],disabled:s,href:i,icon:r,onClickCompletedIcon:l,inline:c,label:d,ariaLabel:u,ariaDescribedBy:p,status:m,variant:_,buttonRef:b,onClickCompletedLabel:h,onMouseEnter:y,onMouseLeave:f,onFocus:k,onBlur:g,onKeyDown:C,onKeyPress:N}=this.props,{completed:v}=this.state,{i18n:x}=a(),j=l||r?t("img",{className:"adyen-checkout__button__icon",src:this.state.completed?l??r:r,alt:"","aria-hidden":"true"}):"",M=[...e,..."primary"!==_?[_]:[],...c?["inline"]:[],...v?["completed"]:[],..."loading"===m||"redirect"===m?["loading"]:[]],P=n(["adyen-checkout__button",...M.map(e=>`adyen-checkout__button--${e}`)]),B={loading:t("span",{className:"adyen-checkout__button__content"},t(o,{size:"medium",inline:!0}),t("span",{className:"adyen-checkout__button__text--sr-only"},x.get("loading"))),redirect:t("span",{className:"adyen-checkout__button__content"},t(o,{size:"medium",inline:!0}),x.get("payButton.redirecting")),default:t("span",{className:"adyen-checkout__button__content"},j,t("span",{className:"adyen-checkout__button__text"},this.state.completed?h??d:d))},D=B[m]||B.default;return i?t("a",{className:P,href:i,disabled:s,target:this.props.target,rel:this.props.rel},D):t("button",{ref:b,className:P,type:"button",disabled:s,onClick:this.onClick,"aria-label":u,"aria-describedby":p,onMouseEnter:y,onMouseLeave:f,onKeyDown:C,onFocus:k,onBlur:g,onKeyPress:N},D,"loading"!==m&&"redirect"!==m&&this.props.children)}constructor(...e){super(...e),s(this,"onClick",e=>{e.preventDefault(),this.props.disabled||this.props.onClick?.(e,{complete:this.complete})}),s(this,"complete",(e=1e3)=>{this.setState({completed:!0}),setTimeout(()=>{this.setState({completed:!1})},e)})}}s(i,"defaultProps",{status:"default",variant:"primary",disabled:!1,label:"",inline:!1,target:"_self"});export{i as default};
2
2
  //# sourceMappingURL=Button.js.map