@internetarchive/donation-form 0.5.18-alpha.1 → 0.5.18

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 (420) hide show
  1. package/LICENSE +661 -661
  2. package/README.md +115 -115
  3. package/dist/demo/braintree-endpoint-manager.d.ts +9 -9
  4. package/dist/demo/braintree-endpoint-manager.js +45 -45
  5. package/dist/demo/braintree-endpoint-manager.js.map +1 -1
  6. package/dist/demo/demo-analytics-handler.d.ts +17 -17
  7. package/dist/demo/demo-analytics-handler.js +13 -13
  8. package/dist/demo/demo-analytics-handler.js.map +1 -1
  9. package/dist/demo/submit-form-with.d.ts +7 -7
  10. package/dist/demo/submit-form-with.js +21 -21
  11. package/dist/demo/submit-form-with.js.map +1 -1
  12. package/dist/index.d.ts +7 -7
  13. package/dist/index.js +7 -7
  14. package/dist/index.js.map +1 -1
  15. package/dist/src/braintree-manager/braintree-interfaces.d.ts +147 -147
  16. package/dist/src/braintree-manager/braintree-interfaces.js +5 -5
  17. package/dist/src/braintree-manager/braintree-interfaces.js.map +1 -1
  18. package/dist/src/braintree-manager/braintree-manager.d.ts +124 -124
  19. package/dist/src/braintree-manager/braintree-manager.js +149 -149
  20. package/dist/src/braintree-manager/braintree-manager.js.map +1 -1
  21. package/dist/src/braintree-manager/payment-clients.d.ts +47 -47
  22. package/dist/src/braintree-manager/payment-clients.js +116 -116
  23. package/dist/src/braintree-manager/payment-clients.js.map +1 -1
  24. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.d.ts +8 -8
  25. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.js.map +1 -1
  26. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.d.ts +6 -6
  27. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.js.map +1 -1
  28. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts +10 -10
  29. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.js.map +1 -1
  30. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.d.ts +21 -21
  31. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.js +99 -99
  32. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.js.map +1 -1
  33. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.d.ts +10 -10
  34. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.js +12 -12
  35. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.js.map +1 -1
  36. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.d.ts +20 -20
  37. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.js +71 -71
  38. package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.js.map +1 -1
  39. package/dist/src/braintree-manager/payment-providers/credit-card/credit-card-interface.d.ts +16 -16
  40. package/dist/src/braintree-manager/payment-providers/credit-card/credit-card-interface.js.map +1 -1
  41. package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.d.ts +29 -29
  42. package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.js +99 -99
  43. package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.js.map +1 -1
  44. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.d.ts +11 -11
  45. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.js +7 -7
  46. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.js.map +1 -1
  47. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.d.ts +34 -34
  48. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.js +52 -52
  49. package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.js.map +1 -1
  50. package/dist/src/braintree-manager/payment-providers/google-pay-interface.d.ts +7 -7
  51. package/dist/src/braintree-manager/payment-providers/google-pay-interface.js.map +1 -1
  52. package/dist/src/braintree-manager/payment-providers/google-pay.d.ts +18 -18
  53. package/dist/src/braintree-manager/payment-providers/google-pay.js +40 -40
  54. package/dist/src/braintree-manager/payment-providers/google-pay.js.map +1 -1
  55. package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.d.ts +145 -145
  56. package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.js +60 -60
  57. package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.js.map +1 -1
  58. package/dist/src/braintree-manager/payment-providers/paypal/paypal-interface.d.ts +11 -11
  59. package/dist/src/braintree-manager/payment-providers/paypal/paypal-interface.js.map +1 -1
  60. package/dist/src/braintree-manager/payment-providers/paypal/paypal.d.ts +23 -23
  61. package/dist/src/braintree-manager/payment-providers/paypal/paypal.js +46 -46
  62. package/dist/src/braintree-manager/payment-providers/paypal/paypal.js.map +1 -1
  63. package/dist/src/braintree-manager/payment-providers/venmo-interface.d.ts +6 -6
  64. package/dist/src/braintree-manager/payment-providers/venmo-interface.js.map +1 -1
  65. package/dist/src/braintree-manager/payment-providers/venmo.d.ts +28 -28
  66. package/dist/src/braintree-manager/payment-providers/venmo.js +50 -50
  67. package/dist/src/braintree-manager/payment-providers/venmo.js.map +1 -1
  68. package/dist/src/braintree-manager/payment-providers-interface.d.ts +16 -16
  69. package/dist/src/braintree-manager/payment-providers-interface.js.map +1 -1
  70. package/dist/src/braintree-manager/payment-providers.d.ts +45 -45
  71. package/dist/src/braintree-manager/payment-providers.js +105 -105
  72. package/dist/src/braintree-manager/payment-providers.js.map +1 -1
  73. package/dist/src/donation-form-controller.d.ts +116 -116
  74. package/dist/src/donation-form-controller.js +562 -562
  75. package/dist/src/donation-form-controller.js.map +1 -1
  76. package/dist/src/donation-form-error.d.ts +3 -3
  77. package/dist/src/donation-form-error.js +6 -6
  78. package/dist/src/donation-form-error.js.map +1 -1
  79. package/dist/src/donation-form.d.ts +120 -120
  80. package/dist/src/donation-form.js +530 -530
  81. package/dist/src/donation-form.js.map +1 -1
  82. package/dist/src/form-elements/badged-input.d.ts +32 -32
  83. package/dist/src/form-elements/badged-input.js +124 -124
  84. package/dist/src/form-elements/badged-input.js.map +1 -1
  85. package/dist/src/form-elements/contact-form/autocomplete-field-options.d.ts +1 -1
  86. package/dist/src/form-elements/contact-form/autocomplete-field-options.js.map +1 -1
  87. package/dist/src/form-elements/contact-form/contact-form.d.ts +53 -53
  88. package/dist/src/form-elements/contact-form/contact-form.js +428 -428
  89. package/dist/src/form-elements/contact-form/contact-form.js.map +1 -1
  90. package/dist/src/form-elements/contact-form/countries.d.ts +3 -3
  91. package/dist/src/form-elements/contact-form/countries.js +252 -252
  92. package/dist/src/form-elements/contact-form/countries.js.map +1 -1
  93. package/dist/src/form-elements/header/donation-form-header.d.ts +27 -27
  94. package/dist/src/form-elements/header/donation-form-header.js +97 -97
  95. package/dist/src/form-elements/header/donation-form-header.js.map +1 -1
  96. package/dist/src/form-elements/header/donation-summary.d.ts +11 -11
  97. package/dist/src/form-elements/header/donation-summary.js +57 -57
  98. package/dist/src/form-elements/header/donation-summary.js.map +1 -1
  99. package/dist/src/form-elements/payment-selector.d.ts +25 -25
  100. package/dist/src/form-elements/payment-selector.js +286 -286
  101. package/dist/src/form-elements/payment-selector.js.map +1 -1
  102. package/dist/src/form-elements/total-amount.d.ts +8 -8
  103. package/dist/src/form-elements/total-amount.js +47 -47
  104. package/dist/src/form-elements/total-amount.js.map +1 -1
  105. package/dist/src/modals/confirm-donation-modal-content.d.ts +31 -31
  106. package/dist/src/modals/confirm-donation-modal-content.js +168 -168
  107. package/dist/src/modals/confirm-donation-modal-content.js.map +1 -1
  108. package/dist/src/modals/error-modal-content.d.ts +14 -14
  109. package/dist/src/modals/error-modal-content.js +49 -49
  110. package/dist/src/modals/error-modal-content.js.map +1 -1
  111. package/dist/src/modals/upsell-modal-content.d.ts +32 -32
  112. package/dist/src/modals/upsell-modal-content.js +294 -294
  113. package/dist/src/modals/upsell-modal-content.js.map +1 -1
  114. package/dist/src/payment-flow-handlers/donation-flow-modal-manager.d.ts +181 -181
  115. package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js +252 -252
  116. package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js.map +1 -1
  117. package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.d.ts +21 -21
  118. package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.js +76 -76
  119. package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.js.map +1 -1
  120. package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.d.ts +70 -70
  121. package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.js +140 -140
  122. package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.js.map +1 -1
  123. package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.d.ts +22 -22
  124. package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.js +74 -74
  125. package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.js.map +1 -1
  126. package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.d.ts +52 -52
  127. package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.js +239 -239
  128. package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.js.map +1 -1
  129. package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.d.ts +30 -30
  130. package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.js +89 -89
  131. package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.js.map +1 -1
  132. package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.d.ts +75 -75
  133. package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.js +94 -94
  134. package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.js.map +1 -1
  135. package/dist/src/payment-flow-handlers/payment-flow-handlers.d.ts +111 -111
  136. package/dist/src/payment-flow-handlers/payment-flow-handlers.js +107 -107
  137. package/dist/src/payment-flow-handlers/payment-flow-handlers.js.map +1 -1
  138. package/dist/src/recaptcha-manager/recaptcha-manager.d.ts +48 -48
  139. package/dist/src/recaptcha-manager/recaptcha-manager.js +88 -88
  140. package/dist/src/recaptcha-manager/recaptcha-manager.js.map +1 -1
  141. package/dist/src/util/promisedSleep.d.ts +1 -1
  142. package/dist/src/util/promisedSleep.js +3 -3
  143. package/dist/src/util/promisedSleep.js.map +1 -1
  144. package/dist/test/helpers/fillInContactForm.d.ts +2 -2
  145. package/dist/test/helpers/fillInContactForm.js +19 -19
  146. package/dist/test/helpers/fillInContactForm.js.map +1 -1
  147. package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.d.ts +7 -7
  148. package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.js +9 -9
  149. package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.js.map +1 -1
  150. package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.d.ts +15 -15
  151. package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.js +32 -32
  152. package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.js.map +1 -1
  153. package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.d.ts +9 -9
  154. package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.js +15 -15
  155. package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.js.map +1 -1
  156. package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.d.ts +15 -15
  157. package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.js +30 -30
  158. package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.js.map +1 -1
  159. package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.d.ts +9 -9
  160. package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.js +17 -17
  161. package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.js.map +1 -1
  162. package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.d.ts +30 -30
  163. package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.js +29 -29
  164. package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.js.map +1 -1
  165. package/dist/test/mocks/mock-analytics-handler.d.ts +8 -0
  166. package/dist/test/mocks/mock-analytics-handler.js +10 -0
  167. package/dist/test/mocks/mock-analytics-handler.js.map +1 -0
  168. package/dist/test/mocks/mock-braintree-manager.d.ts +45 -45
  169. package/dist/test/mocks/mock-braintree-manager.js +71 -71
  170. package/dist/test/mocks/mock-braintree-manager.js.map +1 -1
  171. package/dist/test/mocks/mock-donation-info.d.ts +4 -4
  172. package/dist/test/mocks/mock-donation-info.js +10 -10
  173. package/dist/test/mocks/mock-donation-info.js.map +1 -1
  174. package/dist/test/mocks/mock-endpoint-manager.d.ts +12 -12
  175. package/dist/test/mocks/mock-endpoint-manager.js +19 -19
  176. package/dist/test/mocks/mock-endpoint-manager.js.map +1 -1
  177. package/dist/test/mocks/mock-hosted-fields-config.d.ts +4 -4
  178. package/dist/test/mocks/mock-hosted-fields-config.js +37 -37
  179. package/dist/test/mocks/mock-hosted-fields-config.js.map +1 -1
  180. package/dist/test/mocks/mock-hosted-fields-container.d.ts +13 -13
  181. package/dist/test/mocks/mock-hosted-fields-container.js +27 -27
  182. package/dist/test/mocks/mock-hosted-fields-container.js.map +1 -1
  183. package/dist/test/mocks/mock-lazy-loader.d.ts +15 -15
  184. package/dist/test/mocks/mock-lazy-loader.js +20 -20
  185. package/dist/test/mocks/mock-lazy-loader.js.map +1 -1
  186. package/dist/test/mocks/mock-modal-manager.d.ts +17 -17
  187. package/dist/test/mocks/mock-modal-manager.js +26 -26
  188. package/dist/test/mocks/mock-modal-manager.js.map +1 -1
  189. package/dist/test/mocks/mock-payment-clients.d.ts +29 -29
  190. package/dist/test/mocks/mock-payment-clients.js +78 -78
  191. package/dist/test/mocks/mock-payment-clients.js.map +1 -1
  192. package/dist/test/mocks/mock-paypal-button-renderer.d.ts +5 -5
  193. package/dist/test/mocks/mock-paypal-button-renderer.js +6 -6
  194. package/dist/test/mocks/mock-paypal-button-renderer.js.map +1 -1
  195. package/dist/test/mocks/mock-recaptcha-manager.d.ts +7 -7
  196. package/dist/test/mocks/mock-recaptcha-manager.js +14 -14
  197. package/dist/test/mocks/mock-recaptcha-manager.js.map +1 -1
  198. package/dist/test/mocks/models/mock-billing-info.d.ts +2 -2
  199. package/dist/test/mocks/models/mock-billing-info.js +9 -9
  200. package/dist/test/mocks/models/mock-billing-info.js.map +1 -1
  201. package/dist/test/mocks/models/mock-custom-fields.d.ts +2 -2
  202. package/dist/test/mocks/models/mock-custom-fields.js +7 -7
  203. package/dist/test/mocks/models/mock-custom-fields.js.map +1 -1
  204. package/dist/test/mocks/models/mock-customer-info.d.ts +2 -2
  205. package/dist/test/mocks/models/mock-customer-info.js +6 -6
  206. package/dist/test/mocks/models/mock-customer-info.js.map +1 -1
  207. package/dist/test/mocks/models/mock-donation-request.d.ts +2 -2
  208. package/dist/test/mocks/models/mock-donation-request.js +18 -18
  209. package/dist/test/mocks/models/mock-donation-request.js.map +1 -1
  210. package/dist/test/mocks/models/mock-success-response.d.ts +2 -2
  211. package/dist/test/mocks/models/mock-success-response.js +14 -14
  212. package/dist/test/mocks/models/mock-success-response.js.map +1 -1
  213. package/dist/test/mocks/payment-clients/mock-applepay-client.d.ts +21 -21
  214. package/dist/test/mocks/payment-clients/mock-applepay-client.js +72 -72
  215. package/dist/test/mocks/payment-clients/mock-applepay-client.js.map +1 -1
  216. package/dist/test/mocks/payment-clients/mock-applepay-payment.d.ts +6 -6
  217. package/dist/test/mocks/payment-clients/mock-applepay-payment.js +42 -42
  218. package/dist/test/mocks/payment-clients/mock-applepay-payment.js.map +1 -1
  219. package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.d.ts +22 -22
  220. package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.js +35 -35
  221. package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.js.map +1 -1
  222. package/dist/test/mocks/payment-clients/mock-applepay-session.d.ts +30 -30
  223. package/dist/test/mocks/payment-clients/mock-applepay-session.js +52 -52
  224. package/dist/test/mocks/payment-clients/mock-applepay-session.js.map +1 -1
  225. package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.d.ts +10 -10
  226. package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.js +12 -12
  227. package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.js.map +1 -1
  228. package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.d.ts +22 -22
  229. package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.js +34 -34
  230. package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.js.map +1 -1
  231. package/dist/test/mocks/payment-clients/mock-braintree-client.d.ts +14 -14
  232. package/dist/test/mocks/payment-clients/mock-braintree-client.js +19 -19
  233. package/dist/test/mocks/payment-clients/mock-braintree-client.js.map +1 -1
  234. package/dist/test/mocks/payment-clients/mock-data-collector.d.ts +11 -11
  235. package/dist/test/mocks/payment-clients/mock-data-collector.js +17 -17
  236. package/dist/test/mocks/payment-clients/mock-data-collector.js.map +1 -1
  237. package/dist/test/mocks/payment-clients/mock-googlepay-client.d.ts +22 -22
  238. package/dist/test/mocks/payment-clients/mock-googlepay-client.js +42 -42
  239. package/dist/test/mocks/payment-clients/mock-googlepay-client.js.map +1 -1
  240. package/dist/test/mocks/payment-clients/mock-googlepay-library.d.ts +10 -10
  241. package/dist/test/mocks/payment-clients/mock-googlepay-library.js +22 -22
  242. package/dist/test/mocks/payment-clients/mock-googlepay-library.js.map +1 -1
  243. package/dist/test/mocks/payment-clients/mock-grecaptcha.d.ts +23 -23
  244. package/dist/test/mocks/payment-clients/mock-grecaptcha.js +62 -62
  245. package/dist/test/mocks/payment-clients/mock-grecaptcha.js.map +1 -1
  246. package/dist/test/mocks/payment-clients/mock-hostedfields-client.d.ts +33 -33
  247. package/dist/test/mocks/payment-clients/mock-hostedfields-client.js +54 -54
  248. package/dist/test/mocks/payment-clients/mock-hostedfields-client.js.map +1 -1
  249. package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.d.ts +1 -1
  250. package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.js +50 -50
  251. package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.js.map +1 -1
  252. package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.d.ts +1 -1
  253. package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.js +13 -13
  254. package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.js.map +1 -1
  255. package/dist/test/mocks/payment-clients/mock-paypal-client.d.ts +23 -23
  256. package/dist/test/mocks/payment-clients/mock-paypal-client.js +62 -62
  257. package/dist/test/mocks/payment-clients/mock-paypal-client.js.map +1 -1
  258. package/dist/test/mocks/payment-clients/mock-paypal-library.d.ts +4 -4
  259. package/dist/test/mocks/payment-clients/mock-paypal-library.js +9 -9
  260. package/dist/test/mocks/payment-clients/mock-paypal-library.js.map +1 -1
  261. package/dist/test/mocks/payment-clients/mock-venmo-client.d.ts +22 -22
  262. package/dist/test/mocks/payment-clients/mock-venmo-client.js +36 -36
  263. package/dist/test/mocks/payment-clients/mock-venmo-client.js.map +1 -1
  264. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.d.ts +10 -10
  265. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.js +14 -14
  266. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.js.map +1 -1
  267. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.d.ts +9 -9
  268. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.js +19 -19
  269. package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.js.map +1 -1
  270. package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.d.ts +18 -18
  271. package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js +41 -41
  272. package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js.map +1 -1
  273. package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.d.ts +8 -8
  274. package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.js +16 -16
  275. package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.js.map +1 -1
  276. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.d.ts +28 -28
  277. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.js +52 -52
  278. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.js.map +1 -1
  279. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.d.ts +11 -11
  280. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js +37 -37
  281. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js.map +1 -1
  282. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.d.ts +12 -12
  283. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.js +15 -15
  284. package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.js.map +1 -1
  285. package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.d.ts +7 -7
  286. package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.js +22 -22
  287. package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.js.map +1 -1
  288. package/dist/test/mocks/payment-providers/mock-payment-providers.d.ts +21 -21
  289. package/dist/test/mocks/payment-providers/mock-payment-providers.js +45 -45
  290. package/dist/test/mocks/payment-providers/mock-payment-providers.js.map +1 -1
  291. package/dist/test/tests/braintree-manager.test.d.ts +1 -1
  292. package/dist/test/tests/braintree-manager.test.js +166 -166
  293. package/dist/test/tests/braintree-manager.test.js.map +1 -1
  294. package/dist/test/tests/donation-form-controller.test.d.ts +1 -1
  295. package/dist/test/tests/donation-form-controller.test.js +188 -188
  296. package/dist/test/tests/donation-form-controller.test.js.map +1 -1
  297. package/dist/test/tests/donation-form.test.d.ts +1 -1
  298. package/dist/test/tests/donation-form.test.js +109 -109
  299. package/dist/test/tests/donation-form.test.js.map +1 -1
  300. package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.d.ts +1 -1
  301. package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js +216 -216
  302. package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js.map +1 -1
  303. package/dist/test/tests/form-elements/donation-summary.test.d.ts +1 -1
  304. package/dist/test/tests/form-elements/donation-summary.test.js +36 -36
  305. package/dist/test/tests/form-elements/donation-summary.test.js.map +1 -1
  306. package/dist/test/tests/form-elements/payment-selector.test.d.ts +1 -1
  307. package/dist/test/tests/form-elements/payment-selector.test.js +69 -69
  308. package/dist/test/tests/form-elements/payment-selector.test.js.map +1 -1
  309. package/dist/test/tests/modals/error-modal-content.test.d.ts +1 -1
  310. package/dist/test/tests/modals/error-modal-content.test.js +14 -14
  311. package/dist/test/tests/modals/error-modal-content.test.js.map +1 -1
  312. package/dist/test/tests/modals/upsell-modal-content.test.d.ts +1 -1
  313. package/dist/test/tests/modals/upsell-modal-content.test.js +163 -163
  314. package/dist/test/tests/modals/upsell-modal-content.test.js.map +1 -1
  315. package/dist/test/tests/models/donation-payment-info.test.d.ts +1 -1
  316. package/dist/test/tests/models/donation-payment-info.test.js +74 -74
  317. package/dist/test/tests/models/donation-payment-info.test.js.map +1 -1
  318. package/dist/test/tests/payment-clients.test.d.ts +1 -1
  319. package/dist/test/tests/payment-clients.test.js +130 -130
  320. package/dist/test/tests/payment-clients.test.js.map +1 -1
  321. package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.d.ts +1 -1
  322. package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.js +160 -160
  323. package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.js.map +1 -1
  324. package/dist/test/tests/payment-providers/applepay-sessionmanager.test.d.ts +1 -1
  325. package/dist/test/tests/payment-providers/applepay-sessionmanager.test.js +36 -36
  326. package/dist/test/tests/payment-providers/applepay-sessionmanager.test.js.map +1 -1
  327. package/dist/test/tests/payment-providers/applepay.test.d.ts +1 -1
  328. package/dist/test/tests/payment-providers/applepay.test.js +78 -78
  329. package/dist/test/tests/payment-providers/applepay.test.js.map +1 -1
  330. package/dist/test/tests/payment-providers/creditcard.test.d.ts +1 -1
  331. package/dist/test/tests/payment-providers/creditcard.test.js +190 -190
  332. package/dist/test/tests/payment-providers/creditcard.test.js.map +1 -1
  333. package/dist/test/tests/payment-providers/googlepay.test.d.ts +1 -1
  334. package/dist/test/tests/payment-providers/googlepay.test.js +48 -48
  335. package/dist/test/tests/payment-providers/googlepay.test.js.map +1 -1
  336. package/dist/test/tests/payment-providers/payment-providers.test.d.ts +1 -1
  337. package/dist/test/tests/payment-providers/payment-providers.test.js +38 -38
  338. package/dist/test/tests/payment-providers/payment-providers.test.js.map +1 -1
  339. package/dist/test/tests/payment-providers/paypal-button-datasource.test.d.ts +1 -1
  340. package/dist/test/tests/payment-providers/paypal-button-datasource.test.js +162 -162
  341. package/dist/test/tests/payment-providers/paypal-button-datasource.test.js.map +1 -1
  342. package/dist/test/tests/payment-providers/paypal.test.d.ts +1 -1
  343. package/dist/test/tests/payment-providers/paypal.test.js +38 -38
  344. package/dist/test/tests/payment-providers/paypal.test.js.map +1 -1
  345. package/dist/test/tests/payment-providers/venmo.test.d.ts +1 -1
  346. package/dist/test/tests/payment-providers/venmo.test.js +77 -77
  347. package/dist/test/tests/payment-providers/venmo.test.js.map +1 -1
  348. package/dist/test/tests/recaptcha-manager.test.d.ts +1 -1
  349. package/dist/test/tests/recaptcha-manager.test.js +70 -70
  350. package/dist/test/tests/recaptcha-manager.test.js.map +1 -1
  351. package/package.json +101 -101
  352. package/src/@types/analytics-handler/index.d.ts +8 -8
  353. package/src/@types/braintree-web/LICENSE +21 -21
  354. package/src/@types/braintree-web/index.d.ts +93 -93
  355. package/src/@types/braintree-web/modules/american-express.d.ts +50 -50
  356. package/src/@types/braintree-web/modules/apple-pay.d.ts +213 -213
  357. package/src/@types/braintree-web/modules/client.d.ts +103 -103
  358. package/src/@types/braintree-web/modules/core.d.ts +34 -34
  359. package/src/@types/braintree-web/modules/data-collector.d.ts +13 -13
  360. package/src/@types/braintree-web/modules/google-payment.d.ts +269 -269
  361. package/src/@types/braintree-web/modules/hosted-fields.d.ts +366 -366
  362. package/src/@types/braintree-web/modules/paypal-checkout.d.ts +262 -262
  363. package/src/@types/braintree-web/modules/paypal.d.ts +177 -177
  364. package/src/@types/braintree-web/modules/three-d-secure.d.ts +141 -141
  365. package/src/@types/braintree-web/modules/unionpay.d.ts +224 -224
  366. package/src/@types/braintree-web/modules/us-bank-account.d.ts +81 -81
  367. package/src/@types/braintree-web/modules/venmo.d.ts +110 -110
  368. package/src/@types/braintree-web/package.json +64 -64
  369. package/src/@types/paypal-checkout-components/LICENSE +21 -21
  370. package/src/@types/paypal-checkout-components/index.d.ts +67 -67
  371. package/src/@types/paypal-checkout-components/modules/button.d.ts +50 -50
  372. package/src/@types/paypal-checkout-components/modules/callback-data.d.ts +244 -244
  373. package/src/@types/paypal-checkout-components/modules/configuration.d.ts +114 -114
  374. package/src/@types/paypal-checkout-components/package.json +58 -58
  375. package/src/braintree-manager/braintree-interfaces.ts +172 -172
  376. package/src/braintree-manager/braintree-manager.ts +283 -283
  377. package/src/braintree-manager/payment-clients.ts +148 -148
  378. package/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.ts +13 -13
  379. package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.ts +8 -8
  380. package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.ts +10 -10
  381. package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.ts +119 -119
  382. package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.ts +21 -21
  383. package/src/braintree-manager/payment-providers/apple-pay/apple-pay.ts +98 -98
  384. package/src/braintree-manager/payment-providers/credit-card/credit-card-interface.ts +21 -21
  385. package/src/braintree-manager/payment-providers/credit-card/credit-card.ts +130 -130
  386. package/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.ts +19 -19
  387. package/src/braintree-manager/payment-providers/credit-card/hosted-field-container.ts +85 -85
  388. package/src/braintree-manager/payment-providers/google-pay-interface.ts +8 -8
  389. package/src/braintree-manager/payment-providers/google-pay.ts +59 -59
  390. package/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.ts +218 -218
  391. package/src/braintree-manager/payment-providers/paypal/paypal-interface.ts +13 -13
  392. package/src/braintree-manager/payment-providers/paypal/paypal.ts +78 -78
  393. package/src/braintree-manager/payment-providers/venmo-interface.ts +8 -8
  394. package/src/braintree-manager/payment-providers/venmo.ts +67 -67
  395. package/src/braintree-manager/payment-providers-interface.ts +25 -25
  396. package/src/braintree-manager/payment-providers.ts +147 -147
  397. package/src/donation-form-controller.ts +619 -619
  398. package/src/donation-form-error.ts +6 -6
  399. package/src/donation-form.ts +566 -566
  400. package/src/form-elements/badged-input.ts +113 -113
  401. package/src/form-elements/contact-form/autocomplete-field-options.ts +63 -63
  402. package/src/form-elements/contact-form/contact-form.ts +427 -427
  403. package/src/form-elements/contact-form/countries.ts +252 -252
  404. package/src/form-elements/header/donation-form-header.ts +100 -100
  405. package/src/form-elements/header/donation-summary.ts +61 -61
  406. package/src/form-elements/payment-selector.ts +293 -293
  407. package/src/form-elements/total-amount.ts +46 -46
  408. package/src/modals/confirm-donation-modal-content.ts +160 -160
  409. package/src/modals/error-modal-content.ts +48 -48
  410. package/src/modals/upsell-modal-content.ts +294 -294
  411. package/src/payment-flow-handlers/donation-flow-modal-manager.ts +450 -450
  412. package/src/payment-flow-handlers/handlers/applepay-flow-handler.ts +108 -108
  413. package/src/payment-flow-handlers/handlers/creditcard-flow-handler.ts +231 -231
  414. package/src/payment-flow-handlers/handlers/googlepay-flow-handler.ts +113 -113
  415. package/src/payment-flow-handlers/handlers/paypal-flow-handler.ts +332 -332
  416. package/src/payment-flow-handlers/handlers/venmo-flow-handler.ts +118 -118
  417. package/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.ts +127 -127
  418. package/src/payment-flow-handlers/payment-flow-handlers.ts +218 -218
  419. package/src/recaptcha-manager/recaptcha-manager.ts +123 -123
  420. package/src/util/promisedSleep.ts +3 -3
@@ -1,52 +1,52 @@
1
- import { Unsubscribe } from 'nanoevents';
2
- import { PayPalButtonDataSourceInterface, PayPalButtonDataSourceDelegate } from '../../braintree-manager/payment-providers/paypal/paypal-button-datasource';
3
- import { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';
4
- import { BraintreeManagerInterface } from '../../braintree-manager/braintree-interfaces';
5
- import { DonationFlowModalManagerInterface } from '../donation-flow-modal-manager';
6
- export interface PayPalFlowHandlerInterface {
7
- updateDonationInfo(donationInfo: DonationPaymentInfo): void;
8
- updateUpsellDonationInfo(donationInfo: DonationPaymentInfo): void;
9
- renderPayPalButton(donationInfo: DonationPaymentInfo): Promise<void>;
10
- on<E extends keyof PayPalFlowHandlerEvents>(event: E, callback: PayPalFlowHandlerEvents[E]): Unsubscribe;
11
- }
12
- export interface PayPalFlowHandlerEvents {
13
- payPalPaymentStarted: (dataSource: PayPalButtonDataSourceInterface, options: object) => void;
14
- payPalPaymentCancelled: (dataSource: PayPalButtonDataSourceInterface, data: object) => void;
15
- payPalPaymentError: (dataSource: PayPalButtonDataSourceInterface, error: string) => void;
16
- payPalPaymentConfirmed: (dataSource: PayPalButtonDataSourceInterface, data: object) => void;
17
- }
18
- /**
19
- * This class manages the user-flow for PayPal.
20
- *
21
- * @export
22
- * @class PayPalFlowHandler
23
- * @implements {PayPalFlowHandlerInterface}
24
- * @implements {PayPalButtonDataSourceDelegate}
25
- */
26
- export declare class PayPalFlowHandler implements PayPalFlowHandlerInterface, PayPalButtonDataSourceDelegate {
27
- private upsellButtonDataSourceContainer?;
28
- private buttonDataSource?;
29
- private donationFlowModalManager;
30
- private braintreeManager;
31
- private emitter;
32
- updateDonationInfo(donationInfo: DonationPaymentInfo): void;
33
- updateUpsellDonationInfo(donationInfo: DonationPaymentInfo): void;
34
- constructor(options: {
35
- braintreeManager: BraintreeManagerInterface;
36
- donationFlowModalManager: DonationFlowModalManagerInterface;
37
- });
38
- on<E extends keyof PayPalFlowHandlerEvents>(event: E, callback: PayPalFlowHandlerEvents[E]): Unsubscribe;
39
- payPalPaymentStarted(dataSource: PayPalButtonDataSourceInterface, options: object): Promise<void>;
40
- /**
41
- * Once we have the dataSource & payload, we ask patron to confirm donation.
42
- * Once confirmed, we move forward to: `payPalPaymentConfirmed`
43
- */
44
- payPalPaymentAuthorized(dataSource: PayPalButtonDataSourceInterface, payload: paypal.TokenizePayload): Promise<void>;
45
- payPalPaymentConfirmed(dataSource: PayPalButtonDataSourceInterface, payload: paypal.TokenizePayload): Promise<void>;
46
- payPalPaymentCancelled(dataSource: PayPalButtonDataSourceInterface, data: object): Promise<void>;
47
- payPalPaymentError(dataSource: PayPalButtonDataSourceInterface, error: string): Promise<void>;
48
- renderPayPalButton(donationInfo: DonationPaymentInfo): Promise<void>;
49
- private showUpsellModal;
50
- private upsellAmountChanged;
51
- private renderUpsellPayPalButton;
52
- }
1
+ import { Unsubscribe } from 'nanoevents';
2
+ import { PayPalButtonDataSourceInterface, PayPalButtonDataSourceDelegate } from '../../braintree-manager/payment-providers/paypal/paypal-button-datasource';
3
+ import { DonationPaymentInfo } from '@internetarchive/donation-form-data-models';
4
+ import { BraintreeManagerInterface } from '../../braintree-manager/braintree-interfaces';
5
+ import { DonationFlowModalManagerInterface } from '../donation-flow-modal-manager';
6
+ export interface PayPalFlowHandlerInterface {
7
+ updateDonationInfo(donationInfo: DonationPaymentInfo): void;
8
+ updateUpsellDonationInfo(donationInfo: DonationPaymentInfo): void;
9
+ renderPayPalButton(donationInfo: DonationPaymentInfo): Promise<void>;
10
+ on<E extends keyof PayPalFlowHandlerEvents>(event: E, callback: PayPalFlowHandlerEvents[E]): Unsubscribe;
11
+ }
12
+ export interface PayPalFlowHandlerEvents {
13
+ payPalPaymentStarted: (dataSource: PayPalButtonDataSourceInterface, options: object) => void;
14
+ payPalPaymentCancelled: (dataSource: PayPalButtonDataSourceInterface, data: object) => void;
15
+ payPalPaymentError: (dataSource: PayPalButtonDataSourceInterface, error: string) => void;
16
+ payPalPaymentConfirmed: (dataSource: PayPalButtonDataSourceInterface, data: object) => void;
17
+ }
18
+ /**
19
+ * This class manages the user-flow for PayPal.
20
+ *
21
+ * @export
22
+ * @class PayPalFlowHandler
23
+ * @implements {PayPalFlowHandlerInterface}
24
+ * @implements {PayPalButtonDataSourceDelegate}
25
+ */
26
+ export declare class PayPalFlowHandler implements PayPalFlowHandlerInterface, PayPalButtonDataSourceDelegate {
27
+ private upsellButtonDataSourceContainer?;
28
+ private buttonDataSource?;
29
+ private donationFlowModalManager;
30
+ private braintreeManager;
31
+ private emitter;
32
+ updateDonationInfo(donationInfo: DonationPaymentInfo): void;
33
+ updateUpsellDonationInfo(donationInfo: DonationPaymentInfo): void;
34
+ constructor(options: {
35
+ braintreeManager: BraintreeManagerInterface;
36
+ donationFlowModalManager: DonationFlowModalManagerInterface;
37
+ });
38
+ on<E extends keyof PayPalFlowHandlerEvents>(event: E, callback: PayPalFlowHandlerEvents[E]): Unsubscribe;
39
+ payPalPaymentStarted(dataSource: PayPalButtonDataSourceInterface, options: object): Promise<void>;
40
+ /**
41
+ * Once we have the dataSource & payload, we ask patron to confirm donation.
42
+ * Once confirmed, we move forward to: `payPalPaymentConfirmed`
43
+ */
44
+ payPalPaymentAuthorized(dataSource: PayPalButtonDataSourceInterface, payload: paypal.TokenizePayload): Promise<void>;
45
+ payPalPaymentConfirmed(dataSource: PayPalButtonDataSourceInterface, payload: paypal.TokenizePayload): Promise<void>;
46
+ payPalPaymentCancelled(dataSource: PayPalButtonDataSourceInterface, data: object): Promise<void>;
47
+ payPalPaymentError(dataSource: PayPalButtonDataSourceInterface, error: string): Promise<void>;
48
+ renderPayPalButton(donationInfo: DonationPaymentInfo): Promise<void>;
49
+ private showUpsellModal;
50
+ private upsellAmountChanged;
51
+ private renderUpsellPayPalButton;
52
+ }
@@ -1,240 +1,240 @@
1
- import { __awaiter } from "tslib";
2
- import { createNanoEvents } from 'nanoevents';
3
- import { DonationType, DonationPaymentInfo, CustomerInfo, BillingInfo, PaymentProvider, } from '@internetarchive/donation-form-data-models';
4
- import { UpsellModalCTAMode } from '../../modals/upsell-modal-content';
5
- import { DonationFlowModalManager, } from '../donation-flow-modal-manager';
6
- /**
7
- * This is a class to combine the data from the one-time purchase to the upsell
8
- *
9
- * @class UpsellDataSourceContainer
10
- */
11
- class UpsellDataSourceContainer {
12
- constructor(options) {
13
- this.upsellButtonDataSource = options.upsellButtonDataSource;
14
- this.oneTimePayload = options.oneTimePayload;
15
- this.oneTimeSuccessResponse = options.oneTimeSuccessResponse;
16
- }
17
- }
18
- /**
19
- * This class manages the user-flow for PayPal.
20
- *
21
- * @export
22
- * @class PayPalFlowHandler
23
- * @implements {PayPalFlowHandlerInterface}
24
- * @implements {PayPalButtonDataSourceDelegate}
25
- */
26
- export class PayPalFlowHandler {
27
- constructor(options) {
28
- this.emitter = createNanoEvents();
29
- this.braintreeManager = options.braintreeManager;
30
- this.donationFlowModalManager = options.donationFlowModalManager;
31
- }
32
- updateDonationInfo(donationInfo) {
33
- if (this.buttonDataSource) {
34
- this.buttonDataSource.donationInfo = donationInfo;
35
- }
36
- }
37
- updateUpsellDonationInfo(donationInfo) {
38
- if (this.upsellButtonDataSourceContainer) {
39
- this.upsellButtonDataSourceContainer.upsellButtonDataSource.donationInfo = donationInfo;
40
- }
41
- }
42
- on(event, callback) {
43
- return this.emitter.on(event, callback);
44
- }
45
- payPalPaymentStarted(
46
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
47
- dataSource,
48
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
49
- options) {
50
- return __awaiter(this, void 0, void 0, function* () {
51
- this.emitter.emit('payPalPaymentStarted', dataSource, options);
52
- });
53
- }
54
- /**
55
- * Once we have the dataSource & payload, we ask patron to confirm donation.
56
- * Once confirmed, we move forward to: `payPalPaymentConfirmed`
57
- */
58
- payPalPaymentAuthorized(dataSource, payload) {
59
- return __awaiter(this, void 0, void 0, function* () {
60
- const { donationType, total } = dataSource.donationInfo;
61
- this.donationFlowModalManager.showConfirmationStepModal({
62
- donationType,
63
- amount: total,
64
- currencyType: 'USD',
65
- confirmDonationCB: () => {
66
- this.payPalPaymentConfirmed(dataSource, payload);
67
- },
68
- cancelDonationCB: () => {
69
- this.donationFlowModalManager.closeModal();
70
- this.payPalPaymentCancelled(dataSource, {});
71
- }
72
- });
73
- });
74
- }
75
- payPalPaymentConfirmed(dataSource, payload) {
76
- return __awaiter(this, void 0, void 0, function* () {
77
- this.emitter.emit('payPalPaymentConfirmed', dataSource, {});
78
- this.donationFlowModalManager.showProcessingModal();
79
- const donationType = dataSource.donationInfo.donationType;
80
- const details = payload === null || payload === void 0 ? void 0 : payload.details;
81
- const customerInfo = new CustomerInfo({
82
- email: details === null || details === void 0 ? void 0 : details.email,
83
- firstName: details === null || details === void 0 ? void 0 : details.firstName,
84
- lastName: details === null || details === void 0 ? void 0 : details.lastName,
85
- });
86
- const shippingAddress = details.shippingAddress;
87
- const billingInfo = new BillingInfo({
88
- streetAddress: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.line1,
89
- extendedAddress: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.line2,
90
- locality: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.city,
91
- region: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.state,
92
- postalCode: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.postalCode,
93
- countryCodeAlpha2: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.countryCode,
94
- });
95
- const oneTimeTransaction = this.upsellButtonDataSourceContainer
96
- ? this.upsellButtonDataSourceContainer.oneTimeSuccessResponse.transaction_id
97
- : undefined;
98
- const response = yield this.braintreeManager.submitDonation({
99
- nonce: payload.nonce,
100
- paymentProvider: PaymentProvider.PayPal,
101
- donationInfo: dataSource.donationInfo,
102
- customerInfo: customerInfo,
103
- billingInfo: billingInfo,
104
- upsellOnetimeTransactionId: oneTimeTransaction,
105
- });
106
- if (!response.success) {
107
- const error = response.value;
108
- this.donationFlowModalManager.showErrorModal({
109
- message: error.message,
110
- });
111
- return;
112
- }
113
- const successResponse = response.value;
114
- switch (donationType) {
115
- case DonationType.OneTime:
116
- this.showUpsellModal(payload, successResponse);
117
- break;
118
- case DonationType.Monthly:
119
- // show thank you, redirect
120
- this.donationFlowModalManager.showThankYouModal({ successResponse });
121
- break;
122
- case DonationType.Upsell:
123
- if (this.upsellButtonDataSourceContainer) {
124
- this.donationFlowModalManager.showThankYouModal({
125
- successResponse: this.upsellButtonDataSourceContainer.oneTimeSuccessResponse,
126
- upsellSuccessResponse: successResponse,
127
- });
128
- }
129
- else {
130
- // we're in the upsell flow, but no upsell data source container.. this should not happen
131
- this.donationFlowModalManager.showErrorModal({
132
- message: 'Error setting up monthly donation',
133
- });
134
- }
135
- break;
136
- }
137
- });
138
- }
139
- payPalPaymentCancelled(
140
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
141
- dataSource,
142
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
143
- data) {
144
- return __awaiter(this, void 0, void 0, function* () {
145
- this.emitter.emit('payPalPaymentCancelled', dataSource, data);
146
- });
147
- }
148
- payPalPaymentError(dataSource, error) {
149
- return __awaiter(this, void 0, void 0, function* () {
150
- this.emitter.emit('payPalPaymentError', dataSource, error);
151
- console.error('PaymentSector:payPalPaymentError error:', dataSource, dataSource.donationInfo, error);
152
- });
153
- }
154
- renderPayPalButton(donationInfo) {
155
- var _a;
156
- return __awaiter(this, void 0, void 0, function* () {
157
- const handler = yield ((_a = this.braintreeManager) === null || _a === void 0 ? void 0 : _a.paymentProviders.paypalHandler.get());
158
- this.buttonDataSource = yield (handler === null || handler === void 0 ? void 0 : handler.renderPayPalButton({
159
- selector: '#paypal-button',
160
- style: {
161
- color: 'blue',
162
- label: 'paypal',
163
- shape: 'rect',
164
- size: 'medium',
165
- tagline: false,
166
- },
167
- donationInfo: donationInfo,
168
- }));
169
- if (this.buttonDataSource) {
170
- this.buttonDataSource.delegate = this;
171
- }
172
- });
173
- }
174
- showUpsellModal(oneTimePayload, oneTimeSuccessResponse) {
175
- return __awaiter(this, void 0, void 0, function* () {
176
- this.donationFlowModalManager.showUpsellModal({
177
- oneTimeAmount: oneTimeSuccessResponse.amount,
178
- amountChanged: this.upsellAmountChanged.bind(this),
179
- noSelected: () => {
180
- this.donationFlowModalManager.showThankYouModal({
181
- successResponse: oneTimeSuccessResponse,
182
- });
183
- },
184
- ctaMode: UpsellModalCTAMode.PayPalUpsellSlot,
185
- userClosedModalCallback: () => {
186
- this.donationFlowModalManager.showThankYouModal({
187
- successResponse: oneTimeSuccessResponse,
188
- });
189
- },
190
- });
191
- const amount = DonationFlowModalManager.getDefaultUpsellAmount(oneTimeSuccessResponse.amount);
192
- const upsellDonationInfo = new DonationPaymentInfo({
193
- amount: amount,
194
- donationType: DonationType.Upsell,
195
- coverFees: false,
196
- });
197
- if (!this.upsellButtonDataSourceContainer) {
198
- this.renderUpsellPayPalButton({
199
- donationInfo: upsellDonationInfo,
200
- oneTimePayload,
201
- oneTimeSuccessResponse,
202
- });
203
- }
204
- });
205
- }
206
- upsellAmountChanged(amount) {
207
- if (this.upsellButtonDataSourceContainer) {
208
- this.upsellButtonDataSourceContainer.upsellButtonDataSource.donationInfo.amount = amount;
209
- }
210
- }
211
- renderUpsellPayPalButton(options) {
212
- var _a;
213
- return __awaiter(this, void 0, void 0, function* () {
214
- const handler = yield ((_a = this.braintreeManager) === null || _a === void 0 ? void 0 : _a.paymentProviders.paypalHandler.get());
215
- const upsellButtonDataSource = yield (handler === null || handler === void 0 ? void 0 : handler.renderPayPalButton({
216
- selector: '#paypal-upsell-button',
217
- style: {
218
- color: 'blue',
219
- label: 'paypal',
220
- shape: 'rect',
221
- size: 'responsive',
222
- tagline: false,
223
- },
224
- donationInfo: options.donationInfo,
225
- }));
226
- if (upsellButtonDataSource) {
227
- upsellButtonDataSource.delegate = this;
228
- this.upsellButtonDataSourceContainer = new UpsellDataSourceContainer({
229
- upsellButtonDataSource: upsellButtonDataSource,
230
- oneTimePayload: options.oneTimePayload,
231
- oneTimeSuccessResponse: options.oneTimeSuccessResponse,
232
- });
233
- }
234
- else {
235
- console.error('error rendering paypal upsell button');
236
- }
237
- });
238
- }
239
- }
1
+ import { __awaiter } from "tslib";
2
+ import { createNanoEvents } from 'nanoevents';
3
+ import { DonationType, DonationPaymentInfo, CustomerInfo, BillingInfo, PaymentProvider, } from '@internetarchive/donation-form-data-models';
4
+ import { UpsellModalCTAMode } from '../../modals/upsell-modal-content';
5
+ import { DonationFlowModalManager, } from '../donation-flow-modal-manager';
6
+ /**
7
+ * This is a class to combine the data from the one-time purchase to the upsell
8
+ *
9
+ * @class UpsellDataSourceContainer
10
+ */
11
+ class UpsellDataSourceContainer {
12
+ constructor(options) {
13
+ this.upsellButtonDataSource = options.upsellButtonDataSource;
14
+ this.oneTimePayload = options.oneTimePayload;
15
+ this.oneTimeSuccessResponse = options.oneTimeSuccessResponse;
16
+ }
17
+ }
18
+ /**
19
+ * This class manages the user-flow for PayPal.
20
+ *
21
+ * @export
22
+ * @class PayPalFlowHandler
23
+ * @implements {PayPalFlowHandlerInterface}
24
+ * @implements {PayPalButtonDataSourceDelegate}
25
+ */
26
+ export class PayPalFlowHandler {
27
+ constructor(options) {
28
+ this.emitter = createNanoEvents();
29
+ this.braintreeManager = options.braintreeManager;
30
+ this.donationFlowModalManager = options.donationFlowModalManager;
31
+ }
32
+ updateDonationInfo(donationInfo) {
33
+ if (this.buttonDataSource) {
34
+ this.buttonDataSource.donationInfo = donationInfo;
35
+ }
36
+ }
37
+ updateUpsellDonationInfo(donationInfo) {
38
+ if (this.upsellButtonDataSourceContainer) {
39
+ this.upsellButtonDataSourceContainer.upsellButtonDataSource.donationInfo = donationInfo;
40
+ }
41
+ }
42
+ on(event, callback) {
43
+ return this.emitter.on(event, callback);
44
+ }
45
+ payPalPaymentStarted(
46
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
47
+ dataSource,
48
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
49
+ options) {
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ this.emitter.emit('payPalPaymentStarted', dataSource, options);
52
+ });
53
+ }
54
+ /**
55
+ * Once we have the dataSource & payload, we ask patron to confirm donation.
56
+ * Once confirmed, we move forward to: `payPalPaymentConfirmed`
57
+ */
58
+ payPalPaymentAuthorized(dataSource, payload) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const { donationType, total } = dataSource.donationInfo;
61
+ this.donationFlowModalManager.showConfirmationStepModal({
62
+ donationType,
63
+ amount: total,
64
+ currencyType: 'USD',
65
+ confirmDonationCB: () => {
66
+ this.payPalPaymentConfirmed(dataSource, payload);
67
+ },
68
+ cancelDonationCB: () => {
69
+ this.donationFlowModalManager.closeModal();
70
+ this.payPalPaymentCancelled(dataSource, {});
71
+ }
72
+ });
73
+ });
74
+ }
75
+ payPalPaymentConfirmed(dataSource, payload) {
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ this.emitter.emit('payPalPaymentConfirmed', dataSource, {});
78
+ this.donationFlowModalManager.showProcessingModal();
79
+ const donationType = dataSource.donationInfo.donationType;
80
+ const details = payload === null || payload === void 0 ? void 0 : payload.details;
81
+ const customerInfo = new CustomerInfo({
82
+ email: details === null || details === void 0 ? void 0 : details.email,
83
+ firstName: details === null || details === void 0 ? void 0 : details.firstName,
84
+ lastName: details === null || details === void 0 ? void 0 : details.lastName,
85
+ });
86
+ const shippingAddress = details.shippingAddress;
87
+ const billingInfo = new BillingInfo({
88
+ streetAddress: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.line1,
89
+ extendedAddress: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.line2,
90
+ locality: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.city,
91
+ region: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.state,
92
+ postalCode: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.postalCode,
93
+ countryCodeAlpha2: shippingAddress === null || shippingAddress === void 0 ? void 0 : shippingAddress.countryCode,
94
+ });
95
+ const oneTimeTransaction = this.upsellButtonDataSourceContainer
96
+ ? this.upsellButtonDataSourceContainer.oneTimeSuccessResponse.transaction_id
97
+ : undefined;
98
+ const response = yield this.braintreeManager.submitDonation({
99
+ nonce: payload.nonce,
100
+ paymentProvider: PaymentProvider.PayPal,
101
+ donationInfo: dataSource.donationInfo,
102
+ customerInfo: customerInfo,
103
+ billingInfo: billingInfo,
104
+ upsellOnetimeTransactionId: oneTimeTransaction,
105
+ });
106
+ if (!response.success) {
107
+ const error = response.value;
108
+ this.donationFlowModalManager.showErrorModal({
109
+ message: error.message,
110
+ });
111
+ return;
112
+ }
113
+ const successResponse = response.value;
114
+ switch (donationType) {
115
+ case DonationType.OneTime:
116
+ this.showUpsellModal(payload, successResponse);
117
+ break;
118
+ case DonationType.Monthly:
119
+ // show thank you, redirect
120
+ this.donationFlowModalManager.showThankYouModal({ successResponse });
121
+ break;
122
+ case DonationType.Upsell:
123
+ if (this.upsellButtonDataSourceContainer) {
124
+ this.donationFlowModalManager.showThankYouModal({
125
+ successResponse: this.upsellButtonDataSourceContainer.oneTimeSuccessResponse,
126
+ upsellSuccessResponse: successResponse,
127
+ });
128
+ }
129
+ else {
130
+ // we're in the upsell flow, but no upsell data source container.. this should not happen
131
+ this.donationFlowModalManager.showErrorModal({
132
+ message: 'Error setting up monthly donation',
133
+ });
134
+ }
135
+ break;
136
+ }
137
+ });
138
+ }
139
+ payPalPaymentCancelled(
140
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
141
+ dataSource,
142
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
143
+ data) {
144
+ return __awaiter(this, void 0, void 0, function* () {
145
+ this.emitter.emit('payPalPaymentCancelled', dataSource, data);
146
+ });
147
+ }
148
+ payPalPaymentError(dataSource, error) {
149
+ return __awaiter(this, void 0, void 0, function* () {
150
+ this.emitter.emit('payPalPaymentError', dataSource, error);
151
+ console.error('PaymentSector:payPalPaymentError error:', dataSource, dataSource.donationInfo, error);
152
+ });
153
+ }
154
+ renderPayPalButton(donationInfo) {
155
+ var _a;
156
+ return __awaiter(this, void 0, void 0, function* () {
157
+ const handler = yield ((_a = this.braintreeManager) === null || _a === void 0 ? void 0 : _a.paymentProviders.paypalHandler.get());
158
+ this.buttonDataSource = yield (handler === null || handler === void 0 ? void 0 : handler.renderPayPalButton({
159
+ selector: '#paypal-button',
160
+ style: {
161
+ color: 'blue',
162
+ label: 'paypal',
163
+ shape: 'rect',
164
+ size: 'medium',
165
+ tagline: false,
166
+ },
167
+ donationInfo: donationInfo,
168
+ }));
169
+ if (this.buttonDataSource) {
170
+ this.buttonDataSource.delegate = this;
171
+ }
172
+ });
173
+ }
174
+ showUpsellModal(oneTimePayload, oneTimeSuccessResponse) {
175
+ return __awaiter(this, void 0, void 0, function* () {
176
+ this.donationFlowModalManager.showUpsellModal({
177
+ oneTimeAmount: oneTimeSuccessResponse.amount,
178
+ amountChanged: this.upsellAmountChanged.bind(this),
179
+ noSelected: () => {
180
+ this.donationFlowModalManager.showThankYouModal({
181
+ successResponse: oneTimeSuccessResponse,
182
+ });
183
+ },
184
+ ctaMode: UpsellModalCTAMode.PayPalUpsellSlot,
185
+ userClosedModalCallback: () => {
186
+ this.donationFlowModalManager.showThankYouModal({
187
+ successResponse: oneTimeSuccessResponse,
188
+ });
189
+ },
190
+ });
191
+ const amount = DonationFlowModalManager.getDefaultUpsellAmount(oneTimeSuccessResponse.amount);
192
+ const upsellDonationInfo = new DonationPaymentInfo({
193
+ amount: amount,
194
+ donationType: DonationType.Upsell,
195
+ coverFees: false,
196
+ });
197
+ if (!this.upsellButtonDataSourceContainer) {
198
+ this.renderUpsellPayPalButton({
199
+ donationInfo: upsellDonationInfo,
200
+ oneTimePayload,
201
+ oneTimeSuccessResponse,
202
+ });
203
+ }
204
+ });
205
+ }
206
+ upsellAmountChanged(amount) {
207
+ if (this.upsellButtonDataSourceContainer) {
208
+ this.upsellButtonDataSourceContainer.upsellButtonDataSource.donationInfo.amount = amount;
209
+ }
210
+ }
211
+ renderUpsellPayPalButton(options) {
212
+ var _a;
213
+ return __awaiter(this, void 0, void 0, function* () {
214
+ const handler = yield ((_a = this.braintreeManager) === null || _a === void 0 ? void 0 : _a.paymentProviders.paypalHandler.get());
215
+ const upsellButtonDataSource = yield (handler === null || handler === void 0 ? void 0 : handler.renderPayPalButton({
216
+ selector: '#paypal-upsell-button',
217
+ style: {
218
+ color: 'blue',
219
+ label: 'paypal',
220
+ shape: 'rect',
221
+ size: 'responsive',
222
+ tagline: false,
223
+ },
224
+ donationInfo: options.donationInfo,
225
+ }));
226
+ if (upsellButtonDataSource) {
227
+ upsellButtonDataSource.delegate = this;
228
+ this.upsellButtonDataSourceContainer = new UpsellDataSourceContainer({
229
+ upsellButtonDataSource: upsellButtonDataSource,
230
+ oneTimePayload: options.oneTimePayload,
231
+ oneTimeSuccessResponse: options.oneTimeSuccessResponse,
232
+ });
233
+ }
234
+ else {
235
+ console.error('error rendering paypal upsell button');
236
+ }
237
+ });
238
+ }
239
+ }
240
240
  //# sourceMappingURL=paypal-flow-handler.js.map