@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,110 +1,110 @@
1
- import { __awaiter } from "tslib";
2
- import { html, fixture, expect, elementUpdated, oneEvent } from '@open-wc/testing';
3
- import '../../src/donation-form';
4
- import { DonationType, DonationPaymentInfo, PaymentProvider, } from '@internetarchive/donation-form-data-models';
5
- import { MockBraintreeManager } from '../mocks/mock-braintree-manager';
6
- import { MockPaymentFlowHandlers } from '../mocks/flow-handlers/mock-payment-flow-handlers';
7
- import { promisedSleep } from '../../src/util/promisedSleep';
8
- import { MockDonationInfo } from '../mocks/mock-donation-info';
9
- describe('Donation Form', () => {
10
- describe('Configuration', () => {
11
- it('has no configuration', () => __awaiter(void 0, void 0, void 0, function* () {
12
- const el = (yield fixture(html `
13
- <donation-form></donation-form>
14
- `));
15
- expect(el.braintreeManager).to.equal(undefined);
16
- expect(el.donationRequest).to.equal(undefined);
17
- }));
18
- it('updates donationInfo when user changes donation info', () => __awaiter(void 0, void 0, void 0, function* () {
19
- var _a, _b, _c, _d;
20
- const el = (yield fixture(html `
21
- <donation-form .donationInfo=${new MockDonationInfo()}></donation-form>
22
- `));
23
- const donationHeader = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('donation-form-header');
24
- const editDonation = (_b = donationHeader === null || donationHeader === void 0 ? void 0 : donationHeader.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('donation-form-edit-donation');
25
- const monthlyOption = (_c = editDonation === null || editDonation === void 0 ? void 0 : editDonation.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#donationType-monthly-option');
26
- const clickEvent = new MouseEvent('click');
27
- monthlyOption === null || monthlyOption === void 0 ? void 0 : monthlyOption.dispatchEvent(clickEvent);
28
- yield elementUpdated(el);
29
- expect((_d = el.donationInfo) === null || _d === void 0 ? void 0 : _d.donationType).to.equal(DonationType.Monthly);
30
- }));
31
- });
32
- it('shows the contact form when Credit Card is selected', () => __awaiter(void 0, void 0, void 0, function* () {
33
- var _a, _b, _c;
34
- const el = (yield fixture(html `
35
- <donation-form></donation-form>
36
- `));
37
- const contactFormSection = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.contact-form-section');
38
- const paymentSelector = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('payment-selector');
39
- const creditCardButton = (_c = paymentSelector.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.credit-card-button');
40
- expect(contactFormSection === null || contactFormSection === void 0 ? void 0 : contactFormSection.classList.contains('hidden')).to.be.true;
41
- const clickEvent = new MouseEvent('click');
42
- creditCardButton.dispatchEvent(clickEvent);
43
- yield elementUpdated(el);
44
- expect(contactFormSection === null || contactFormSection === void 0 ? void 0 : contactFormSection.classList.contains('hidden')).to.be.false;
45
- }));
46
- it('shows the contact form when Venmo is selected', () => __awaiter(void 0, void 0, void 0, function* () {
47
- var _d, _e, _f;
48
- const el = (yield fixture(html `
49
- <donation-form></donation-form>
50
- `));
51
- const braintreeManager = new MockBraintreeManager();
52
- el.braintreeManager = braintreeManager;
53
- yield elementUpdated(el);
54
- const contactFormSection = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.contact-form-section');
55
- const paymentSelector = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('payment-selector');
56
- const venmoButton = (_f = paymentSelector.shadowRoot) === null || _f === void 0 ? void 0 : _f.querySelector('.venmo');
57
- expect(contactFormSection === null || contactFormSection === void 0 ? void 0 : contactFormSection.classList.contains('hidden')).to.be.true;
58
- const clickEvent = new MouseEvent('click');
59
- venmoButton.dispatchEvent(clickEvent);
60
- yield elementUpdated(el);
61
- expect(contactFormSection === null || contactFormSection === void 0 ? void 0 : contactFormSection.classList.contains('hidden')).to.be.false;
62
- }));
63
- it('properly configures the flow handlers when they are set', () => __awaiter(void 0, void 0, void 0, function* () {
64
- const donationInfo = new DonationPaymentInfo({
65
- donationType: DonationType.Monthly,
66
- amount: 3.5,
67
- coverFees: false,
68
- });
69
- const el = (yield fixture(html `
70
- <donation-form .donationInfo=${donationInfo}></donation-form>
71
- `));
72
- const flowHandlers = new MockPaymentFlowHandlers();
73
- el.paymentFlowHandlers = flowHandlers;
74
- yield elementUpdated(el);
75
- yield promisedSleep(250);
76
- expect(flowHandlers.paypalHandler.donationInfo).to.equal(donationInfo);
77
- }));
78
- it('emits paymentProviderSelected when the selected provider changes', () => __awaiter(void 0, void 0, void 0, function* () {
79
- var _g, _h;
80
- const el = (yield fixture(html `
81
- <donation-form></donation-form>
82
- `));
83
- const braintreeManager = new MockBraintreeManager();
84
- el.braintreeManager = braintreeManager;
85
- yield elementUpdated(el);
86
- const paymentSelector = (_g = el.shadowRoot) === null || _g === void 0 ? void 0 : _g.querySelector('payment-selector');
87
- const creditCardButton = (_h = paymentSelector.shadowRoot) === null || _h === void 0 ? void 0 : _h.querySelector('.credit-card-button');
88
- // on the first payment provider chosen, the previousPaymentProvider is undefined
89
- setTimeout(() => {
90
- const ccClickEvent = new MouseEvent('click');
91
- creditCardButton.dispatchEvent(ccClickEvent);
92
- });
93
- const ccResponse = yield oneEvent(el, 'paymentProviderSelected');
94
- expect(ccResponse).to.exist;
95
- expect(ccResponse.detail.paymentProvider).to.equal(PaymentProvider.CreditCard);
96
- expect(ccResponse.detail.previousPaymentProvider).to.equal(undefined);
97
- // on subsequent payment provider choices, the previousPaymentProvider is populated
98
- setTimeout(() => {
99
- var _a;
100
- const venmoButton = (_a = paymentSelector.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.venmo');
101
- const venmoClickEvent = new MouseEvent('click');
102
- venmoButton.dispatchEvent(venmoClickEvent);
103
- });
104
- const venmoResponse = yield oneEvent(el, 'paymentProviderSelected');
105
- expect(venmoResponse).to.exist;
106
- expect(venmoResponse.detail.paymentProvider).to.equal(PaymentProvider.Venmo);
107
- expect(venmoResponse.detail.previousPaymentProvider).to.equal(PaymentProvider.CreditCard);
108
- }));
109
- });
1
+ import { __awaiter } from "tslib";
2
+ import { html, fixture, expect, elementUpdated, oneEvent } from '@open-wc/testing';
3
+ import '../../src/donation-form';
4
+ import { DonationType, DonationPaymentInfo, PaymentProvider, } from '@internetarchive/donation-form-data-models';
5
+ import { MockBraintreeManager } from '../mocks/mock-braintree-manager';
6
+ import { MockPaymentFlowHandlers } from '../mocks/flow-handlers/mock-payment-flow-handlers';
7
+ import { promisedSleep } from '../../src/util/promisedSleep';
8
+ import { MockDonationInfo } from '../mocks/mock-donation-info';
9
+ describe('Donation Form', () => {
10
+ describe('Configuration', () => {
11
+ it('has no configuration', () => __awaiter(void 0, void 0, void 0, function* () {
12
+ const el = (yield fixture(html `
13
+ <donation-form></donation-form>
14
+ `));
15
+ expect(el.braintreeManager).to.equal(undefined);
16
+ expect(el.donationRequest).to.equal(undefined);
17
+ }));
18
+ it('updates donationInfo when user changes donation info', () => __awaiter(void 0, void 0, void 0, function* () {
19
+ var _a, _b, _c, _d;
20
+ const el = (yield fixture(html `
21
+ <donation-form .donationInfo=${new MockDonationInfo()}></donation-form>
22
+ `));
23
+ const donationHeader = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('donation-form-header');
24
+ const editDonation = (_b = donationHeader === null || donationHeader === void 0 ? void 0 : donationHeader.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('donation-form-edit-donation');
25
+ const monthlyOption = (_c = editDonation === null || editDonation === void 0 ? void 0 : editDonation.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#donationType-monthly-option');
26
+ const clickEvent = new MouseEvent('click');
27
+ monthlyOption === null || monthlyOption === void 0 ? void 0 : monthlyOption.dispatchEvent(clickEvent);
28
+ yield elementUpdated(el);
29
+ expect((_d = el.donationInfo) === null || _d === void 0 ? void 0 : _d.donationType).to.equal(DonationType.Monthly);
30
+ }));
31
+ });
32
+ it('shows the contact form when Credit Card is selected', () => __awaiter(void 0, void 0, void 0, function* () {
33
+ var _a, _b, _c;
34
+ const el = (yield fixture(html `
35
+ <donation-form></donation-form>
36
+ `));
37
+ const contactFormSection = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.contact-form-section');
38
+ const paymentSelector = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('payment-selector');
39
+ const creditCardButton = (_c = paymentSelector.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.credit-card-button');
40
+ expect(contactFormSection === null || contactFormSection === void 0 ? void 0 : contactFormSection.classList.contains('hidden')).to.be.true;
41
+ const clickEvent = new MouseEvent('click');
42
+ creditCardButton.dispatchEvent(clickEvent);
43
+ yield elementUpdated(el);
44
+ expect(contactFormSection === null || contactFormSection === void 0 ? void 0 : contactFormSection.classList.contains('hidden')).to.be.false;
45
+ }));
46
+ it('shows the contact form when Venmo is selected', () => __awaiter(void 0, void 0, void 0, function* () {
47
+ var _d, _e, _f;
48
+ const el = (yield fixture(html `
49
+ <donation-form></donation-form>
50
+ `));
51
+ const braintreeManager = new MockBraintreeManager();
52
+ el.braintreeManager = braintreeManager;
53
+ yield elementUpdated(el);
54
+ const contactFormSection = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.contact-form-section');
55
+ const paymentSelector = (_e = el.shadowRoot) === null || _e === void 0 ? void 0 : _e.querySelector('payment-selector');
56
+ const venmoButton = (_f = paymentSelector.shadowRoot) === null || _f === void 0 ? void 0 : _f.querySelector('.venmo');
57
+ expect(contactFormSection === null || contactFormSection === void 0 ? void 0 : contactFormSection.classList.contains('hidden')).to.be.true;
58
+ const clickEvent = new MouseEvent('click');
59
+ venmoButton.dispatchEvent(clickEvent);
60
+ yield elementUpdated(el);
61
+ expect(contactFormSection === null || contactFormSection === void 0 ? void 0 : contactFormSection.classList.contains('hidden')).to.be.false;
62
+ }));
63
+ it('properly configures the flow handlers when they are set', () => __awaiter(void 0, void 0, void 0, function* () {
64
+ const donationInfo = new DonationPaymentInfo({
65
+ donationType: DonationType.Monthly,
66
+ amount: 3.5,
67
+ coverFees: false,
68
+ });
69
+ const el = (yield fixture(html `
70
+ <donation-form .donationInfo=${donationInfo}></donation-form>
71
+ `));
72
+ const flowHandlers = new MockPaymentFlowHandlers();
73
+ el.paymentFlowHandlers = flowHandlers;
74
+ yield elementUpdated(el);
75
+ yield promisedSleep(250);
76
+ expect(flowHandlers.paypalHandler.donationInfo).to.equal(donationInfo);
77
+ }));
78
+ it('emits paymentProviderSelected when the selected provider changes', () => __awaiter(void 0, void 0, void 0, function* () {
79
+ var _g, _h;
80
+ const el = (yield fixture(html `
81
+ <donation-form></donation-form>
82
+ `));
83
+ const braintreeManager = new MockBraintreeManager();
84
+ el.braintreeManager = braintreeManager;
85
+ yield elementUpdated(el);
86
+ const paymentSelector = (_g = el.shadowRoot) === null || _g === void 0 ? void 0 : _g.querySelector('payment-selector');
87
+ const creditCardButton = (_h = paymentSelector.shadowRoot) === null || _h === void 0 ? void 0 : _h.querySelector('.credit-card-button');
88
+ // on the first payment provider chosen, the previousPaymentProvider is undefined
89
+ setTimeout(() => {
90
+ const ccClickEvent = new MouseEvent('click');
91
+ creditCardButton.dispatchEvent(ccClickEvent);
92
+ });
93
+ const ccResponse = yield oneEvent(el, 'paymentProviderSelected');
94
+ expect(ccResponse).to.exist;
95
+ expect(ccResponse.detail.paymentProvider).to.equal(PaymentProvider.CreditCard);
96
+ expect(ccResponse.detail.previousPaymentProvider).to.equal(undefined);
97
+ // on subsequent payment provider choices, the previousPaymentProvider is populated
98
+ setTimeout(() => {
99
+ var _a;
100
+ const venmoButton = (_a = paymentSelector.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.venmo');
101
+ const venmoClickEvent = new MouseEvent('click');
102
+ venmoButton.dispatchEvent(venmoClickEvent);
103
+ });
104
+ const venmoResponse = yield oneEvent(el, 'paymentProviderSelected');
105
+ expect(venmoResponse).to.exist;
106
+ expect(venmoResponse.detail.paymentProvider).to.equal(PaymentProvider.Venmo);
107
+ expect(venmoResponse.detail.previousPaymentProvider).to.equal(PaymentProvider.CreditCard);
108
+ }));
109
+ });
110
110
  //# sourceMappingURL=donation-form.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"donation-form.test.js","sourceRoot":"","sources":["../../../test/tests/donation-form.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, fixture, expect, elementUpdated, oneEvent } from '@open-wc/testing';\r\n\r\nimport '../../src/donation-form';\r\nimport { DonationForm } from '../../src/donation-form';\r\nimport {\r\n DonationType,\r\n DonationPaymentInfo,\r\n PaymentProvider,\r\n} from '@internetarchive/donation-form-data-models';\r\nimport { PaymentSelector } from '../../src/form-elements/payment-selector';\r\nimport { MockBraintreeManager } from '../mocks/mock-braintree-manager';\r\nimport { MockPaymentFlowHandlers } from '../mocks/flow-handlers/mock-payment-flow-handlers';\r\nimport { promisedSleep } from '../../src/util/promisedSleep';\r\nimport { MockDonationInfo } from '../mocks/mock-donation-info';\r\n\r\ndescribe('Donation Form', () => {\r\n describe('Configuration', () => {\r\n it('has no configuration', async () => {\r\n const el = (await fixture(html`\r\n <donation-form></donation-form>\r\n `)) as DonationForm;\r\n\r\n expect(el.braintreeManager).to.equal(undefined);\r\n expect(el.donationRequest).to.equal(undefined);\r\n });\r\n\r\n it('updates donationInfo when user changes donation info', async () => {\r\n const el = (await fixture(html`\r\n <donation-form .donationInfo=${new MockDonationInfo()}></donation-form>\r\n `)) as DonationForm;\r\n const donationHeader = el.shadowRoot?.querySelector('donation-form-header');\r\n const editDonation = donationHeader?.shadowRoot?.querySelector('donation-form-edit-donation');\r\n const monthlyOption = editDonation?.shadowRoot?.querySelector('#donationType-monthly-option');\r\n const clickEvent = new MouseEvent('click');\r\n monthlyOption?.dispatchEvent(clickEvent);\r\n await elementUpdated(el);\r\n expect(el.donationInfo?.donationType).to.equal(DonationType.Monthly);\r\n });\r\n });\r\n\r\n it('shows the contact form when Credit Card is selected', async () => {\r\n const el = (await fixture(html`\r\n <donation-form></donation-form>\r\n `)) as DonationForm;\r\n const contactFormSection = el.shadowRoot?.querySelector('.contact-form-section');\r\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\r\n const creditCardButton = paymentSelector.shadowRoot?.querySelector(\r\n '.credit-card-button',\r\n ) as HTMLButtonElement;\r\n expect(contactFormSection?.classList.contains('hidden')).to.be.true;\r\n const clickEvent = new MouseEvent('click');\r\n creditCardButton.dispatchEvent(clickEvent);\r\n await elementUpdated(el);\r\n expect(contactFormSection?.classList.contains('hidden')).to.be.false;\r\n });\r\n\r\n it('shows the contact form when Venmo is selected', async () => {\r\n const el = (await fixture(html`\r\n <donation-form></donation-form>\r\n `)) as DonationForm;\r\n const braintreeManager = new MockBraintreeManager();\r\n el.braintreeManager = braintreeManager;\r\n await elementUpdated(el);\r\n const contactFormSection = el.shadowRoot?.querySelector('.contact-form-section');\r\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\r\n const venmoButton = paymentSelector.shadowRoot?.querySelector('.venmo') as HTMLButtonElement;\r\n expect(contactFormSection?.classList.contains('hidden')).to.be.true;\r\n const clickEvent = new MouseEvent('click');\r\n venmoButton.dispatchEvent(clickEvent);\r\n await elementUpdated(el);\r\n expect(contactFormSection?.classList.contains('hidden')).to.be.false;\r\n });\r\n\r\n it('properly configures the flow handlers when they are set', async () => {\r\n const donationInfo = new DonationPaymentInfo({\r\n donationType: DonationType.Monthly,\r\n amount: 3.5,\r\n coverFees: false,\r\n });\r\n const el = (await fixture(html`\r\n <donation-form .donationInfo=${donationInfo}></donation-form>\r\n `)) as DonationForm;\r\n const flowHandlers = new MockPaymentFlowHandlers();\r\n el.paymentFlowHandlers = flowHandlers;\r\n await elementUpdated(el);\r\n await promisedSleep(250);\r\n expect(flowHandlers.paypalHandler.donationInfo).to.equal(donationInfo);\r\n });\r\n\r\n it('emits paymentProviderSelected when the selected provider changes', async () => {\r\n const el = (await fixture(html`\r\n <donation-form></donation-form>\r\n `)) as DonationForm;\r\n const braintreeManager = new MockBraintreeManager();\r\n el.braintreeManager = braintreeManager;\r\n await elementUpdated(el);\r\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\r\n const creditCardButton = paymentSelector.shadowRoot?.querySelector(\r\n '.credit-card-button',\r\n ) as HTMLButtonElement;\r\n\r\n // on the first payment provider chosen, the previousPaymentProvider is undefined\r\n setTimeout(() => {\r\n const ccClickEvent = new MouseEvent('click');\r\n creditCardButton.dispatchEvent(ccClickEvent);\r\n });\r\n const ccResponse = await oneEvent(el, 'paymentProviderSelected');\r\n expect(ccResponse).to.exist;\r\n expect(ccResponse.detail.paymentProvider).to.equal(PaymentProvider.CreditCard);\r\n expect(ccResponse.detail.previousPaymentProvider).to.equal(undefined);\r\n\r\n // on subsequent payment provider choices, the previousPaymentProvider is populated\r\n setTimeout(() => {\r\n const venmoButton = paymentSelector.shadowRoot?.querySelector('.venmo') as HTMLButtonElement;\r\n const venmoClickEvent = new MouseEvent('click');\r\n venmoButton.dispatchEvent(venmoClickEvent);\r\n });\r\n const venmoResponse = await oneEvent(el, 'paymentProviderSelected');\r\n expect(venmoResponse).to.exist;\r\n expect(venmoResponse.detail.paymentProvider).to.equal(PaymentProvider.Venmo);\r\n expect(venmoResponse.detail.previousPaymentProvider).to.equal(PaymentProvider.CreditCard);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"donation-form.test.js","sourceRoot":"","sources":["../../../test/tests/donation-form.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, fixture, expect, elementUpdated, oneEvent } from '@open-wc/testing';\n\nimport '../../src/donation-form';\nimport { DonationForm } from '../../src/donation-form';\nimport {\n DonationType,\n DonationPaymentInfo,\n PaymentProvider,\n} from '@internetarchive/donation-form-data-models';\nimport { PaymentSelector } from '../../src/form-elements/payment-selector';\nimport { MockBraintreeManager } from '../mocks/mock-braintree-manager';\nimport { MockPaymentFlowHandlers } from '../mocks/flow-handlers/mock-payment-flow-handlers';\nimport { promisedSleep } from '../../src/util/promisedSleep';\nimport { MockDonationInfo } from '../mocks/mock-donation-info';\n\ndescribe('Donation Form', () => {\n describe('Configuration', () => {\n it('has no configuration', async () => {\n const el = (await fixture(html`\n <donation-form></donation-form>\n `)) as DonationForm;\n\n expect(el.braintreeManager).to.equal(undefined);\n expect(el.donationRequest).to.equal(undefined);\n });\n\n it('updates donationInfo when user changes donation info', async () => {\n const el = (await fixture(html`\n <donation-form .donationInfo=${new MockDonationInfo()}></donation-form>\n `)) as DonationForm;\n const donationHeader = el.shadowRoot?.querySelector('donation-form-header');\n const editDonation = donationHeader?.shadowRoot?.querySelector('donation-form-edit-donation');\n const monthlyOption = editDonation?.shadowRoot?.querySelector('#donationType-monthly-option');\n const clickEvent = new MouseEvent('click');\n monthlyOption?.dispatchEvent(clickEvent);\n await elementUpdated(el);\n expect(el.donationInfo?.donationType).to.equal(DonationType.Monthly);\n });\n });\n\n it('shows the contact form when Credit Card is selected', async () => {\n const el = (await fixture(html`\n <donation-form></donation-form>\n `)) as DonationForm;\n const contactFormSection = el.shadowRoot?.querySelector('.contact-form-section');\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\n const creditCardButton = paymentSelector.shadowRoot?.querySelector(\n '.credit-card-button',\n ) as HTMLButtonElement;\n expect(contactFormSection?.classList.contains('hidden')).to.be.true;\n const clickEvent = new MouseEvent('click');\n creditCardButton.dispatchEvent(clickEvent);\n await elementUpdated(el);\n expect(contactFormSection?.classList.contains('hidden')).to.be.false;\n });\n\n it('shows the contact form when Venmo is selected', async () => {\n const el = (await fixture(html`\n <donation-form></donation-form>\n `)) as DonationForm;\n const braintreeManager = new MockBraintreeManager();\n el.braintreeManager = braintreeManager;\n await elementUpdated(el);\n const contactFormSection = el.shadowRoot?.querySelector('.contact-form-section');\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\n const venmoButton = paymentSelector.shadowRoot?.querySelector('.venmo') as HTMLButtonElement;\n expect(contactFormSection?.classList.contains('hidden')).to.be.true;\n const clickEvent = new MouseEvent('click');\n venmoButton.dispatchEvent(clickEvent);\n await elementUpdated(el);\n expect(contactFormSection?.classList.contains('hidden')).to.be.false;\n });\n\n it('properly configures the flow handlers when they are set', async () => {\n const donationInfo = new DonationPaymentInfo({\n donationType: DonationType.Monthly,\n amount: 3.5,\n coverFees: false,\n });\n const el = (await fixture(html`\n <donation-form .donationInfo=${donationInfo}></donation-form>\n `)) as DonationForm;\n const flowHandlers = new MockPaymentFlowHandlers();\n el.paymentFlowHandlers = flowHandlers;\n await elementUpdated(el);\n await promisedSleep(250);\n expect(flowHandlers.paypalHandler.donationInfo).to.equal(donationInfo);\n });\n\n it('emits paymentProviderSelected when the selected provider changes', async () => {\n const el = (await fixture(html`\n <donation-form></donation-form>\n `)) as DonationForm;\n const braintreeManager = new MockBraintreeManager();\n el.braintreeManager = braintreeManager;\n await elementUpdated(el);\n const paymentSelector = el.shadowRoot?.querySelector('payment-selector') as PaymentSelector;\n const creditCardButton = paymentSelector.shadowRoot?.querySelector(\n '.credit-card-button',\n ) as HTMLButtonElement;\n\n // on the first payment provider chosen, the previousPaymentProvider is undefined\n setTimeout(() => {\n const ccClickEvent = new MouseEvent('click');\n creditCardButton.dispatchEvent(ccClickEvent);\n });\n const ccResponse = await oneEvent(el, 'paymentProviderSelected');\n expect(ccResponse).to.exist;\n expect(ccResponse.detail.paymentProvider).to.equal(PaymentProvider.CreditCard);\n expect(ccResponse.detail.previousPaymentProvider).to.equal(undefined);\n\n // on subsequent payment provider choices, the previousPaymentProvider is populated\n setTimeout(() => {\n const venmoButton = paymentSelector.shadowRoot?.querySelector('.venmo') as HTMLButtonElement;\n const venmoClickEvent = new MouseEvent('click');\n venmoButton.dispatchEvent(venmoClickEvent);\n });\n const venmoResponse = await oneEvent(el, 'paymentProviderSelected');\n expect(venmoResponse).to.exist;\n expect(venmoResponse.detail.paymentProvider).to.equal(PaymentProvider.Venmo);\n expect(venmoResponse.detail.previousPaymentProvider).to.equal(PaymentProvider.CreditCard);\n });\n});\n"]}
@@ -1 +1 @@
1
- import '../../mocks/mock-modal-manager';
1
+ import '../../mocks/mock-modal-manager';