@internetarchive/elements 1.1.6 → 1.1.7-webdev-9054.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/dist/src/elements/ia-donation-form/analytics.d.ts +12 -0
  2. package/dist/src/elements/ia-donation-form/analytics.d.ts.map +1 -0
  3. package/dist/src/elements/ia-donation-form/analytics.js +2 -0
  4. package/dist/src/elements/ia-donation-form/analytics.js.map +1 -0
  5. package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.d.ts +79 -0
  6. package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.d.ts.map +1 -0
  7. package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.js +2 -0
  8. package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.js.map +1 -0
  9. package/dist/src/elements/ia-donation-form/braintree/braintree-manager.d.ts +73 -0
  10. package/dist/src/elements/ia-donation-form/braintree/braintree-manager.d.ts.map +1 -0
  11. package/dist/src/elements/ia-donation-form/braintree/braintree-manager.js +126 -0
  12. package/dist/src/elements/ia-donation-form/braintree/braintree-manager.js.map +1 -0
  13. package/dist/src/elements/ia-donation-form/braintree/hosting-environment.d.ts +10 -0
  14. package/dist/src/elements/ia-donation-form/braintree/hosting-environment.d.ts.map +1 -0
  15. package/dist/src/elements/ia-donation-form/braintree/hosting-environment.js +9 -0
  16. package/dist/src/elements/ia-donation-form/braintree/hosting-environment.js.map +1 -0
  17. package/dist/src/elements/ia-donation-form/braintree/payment-clients.d.ts +47 -0
  18. package/dist/src/elements/ia-donation-form/braintree/payment-clients.d.ts.map +1 -0
  19. package/dist/src/elements/ia-donation-form/braintree/payment-clients.js +104 -0
  20. package/dist/src/elements/ia-donation-form/braintree/payment-clients.js.map +1 -0
  21. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.d.ts +11 -0
  22. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.d.ts.map +1 -0
  23. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.js +2 -0
  24. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.js.map +1 -0
  25. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts +20 -0
  26. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts.map +1 -0
  27. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.js +2 -0
  28. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.js.map +1 -0
  29. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.d.ts +21 -0
  30. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.d.ts.map +1 -0
  31. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.js +83 -0
  32. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.js.map +1 -0
  33. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.d.ts +11 -0
  34. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.d.ts.map +1 -0
  35. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.js +13 -0
  36. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.js.map +1 -0
  37. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.d.ts +27 -0
  38. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.d.ts.map +1 -0
  39. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.js +67 -0
  40. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.js.map +1 -0
  41. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.d.ts +19 -0
  42. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.d.ts.map +1 -0
  43. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.js +2 -0
  44. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.js.map +1 -0
  45. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.d.ts +42 -0
  46. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.d.ts.map +1 -0
  47. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.js +99 -0
  48. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.js.map +1 -0
  49. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.d.ts +14 -0
  50. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.d.ts.map +1 -0
  51. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.js +9 -0
  52. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.js.map +1 -0
  53. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.d.ts +40 -0
  54. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.d.ts.map +1 -0
  55. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.js +58 -0
  56. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.js.map +1 -0
  57. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.d.ts +8 -0
  58. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.d.ts.map +1 -0
  59. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.js +2 -0
  60. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.js.map +1 -0
  61. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.d.ts +19 -0
  62. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.d.ts.map +1 -0
  63. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.js +45 -0
  64. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.js.map +1 -0
  65. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.d.ts +57 -0
  66. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.d.ts.map +1 -0
  67. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.js +44 -0
  68. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.js.map +1 -0
  69. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.d.ts +14 -0
  70. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.d.ts.map +1 -0
  71. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.js +2 -0
  72. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.js.map +1 -0
  73. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.d.ts +27 -0
  74. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.d.ts.map +1 -0
  75. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.js +44 -0
  76. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.js.map +1 -0
  77. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.d.ts +8 -0
  78. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.d.ts.map +1 -0
  79. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.js +2 -0
  80. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.js.map +1 -0
  81. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.d.ts +44 -0
  82. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.d.ts.map +1 -0
  83. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.js +65 -0
  84. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.js.map +1 -0
  85. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.d.ts +25 -0
  86. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.d.ts.map +1 -0
  87. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.js +42 -0
  88. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.js.map +1 -0
  89. package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.d.ts +18 -0
  90. package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.d.ts.map +1 -0
  91. package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.js +2 -0
  92. package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.js.map +1 -0
  93. package/dist/src/elements/ia-donation-form/braintree/payment-providers.d.ts +42 -0
  94. package/dist/src/elements/ia-donation-form/braintree/payment-providers.d.ts.map +1 -0
  95. package/dist/src/elements/ia-donation-form/braintree/payment-providers.js +99 -0
  96. package/dist/src/elements/ia-donation-form/braintree/payment-providers.js.map +1 -0
  97. package/dist/src/elements/ia-donation-form/donation-form-error.d.ts +5 -0
  98. package/dist/src/elements/ia-donation-form/donation-form-error.d.ts.map +1 -0
  99. package/dist/src/elements/ia-donation-form/donation-form-error.js +8 -0
  100. package/dist/src/elements/ia-donation-form/donation-form-error.js.map +1 -0
  101. package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.d.ts +118 -0
  102. package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.d.ts.map +1 -0
  103. package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.js +194 -0
  104. package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.js.map +1 -0
  105. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.d.ts +24 -0
  106. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.d.ts.map +1 -0
  107. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.js +70 -0
  108. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.js.map +1 -0
  109. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.d.ts +44 -0
  110. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.d.ts.map +1 -0
  111. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.js +116 -0
  112. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.js.map +1 -0
  113. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.d.ts +24 -0
  114. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.d.ts.map +1 -0
  115. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.js +74 -0
  116. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.js.map +1 -0
  117. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.d.ts +47 -0
  118. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.d.ts.map +1 -0
  119. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.js +204 -0
  120. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.js.map +1 -0
  121. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.d.ts +30 -0
  122. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.d.ts.map +1 -0
  123. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.js +77 -0
  124. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.js.map +1 -0
  125. package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.d.ts +80 -0
  126. package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.d.ts.map +1 -0
  127. package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.js +72 -0
  128. package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.js.map +1 -0
  129. package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.d.ts +2 -0
  130. package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.d.ts.map +1 -0
  131. package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.js +2 -0
  132. package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.js.map +1 -0
  133. package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.d.ts +3 -0
  134. package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.d.ts.map +1 -0
  135. package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.js +254 -0
  136. package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.js.map +1 -0
  137. package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.d.ts +68 -0
  138. package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.d.ts.map +1 -0
  139. package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.js +483 -0
  140. package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.js.map +1 -0
  141. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.d.ts +26 -0
  142. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.d.ts.map +1 -0
  143. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.js +163 -0
  144. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.js.map +1 -0
  145. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-credit-card-fields.d.ts +39 -0
  146. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-credit-card-fields.d.ts.map +1 -0
  147. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-credit-card-fields.js +212 -0
  148. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-credit-card-fields.js.map +1 -0
  149. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.d.ts +118 -0
  150. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.d.ts.map +1 -0
  151. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.js +774 -0
  152. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.js.map +1 -0
  153. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.d.ts +31 -0
  154. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.d.ts.map +1 -0
  155. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.js +93 -0
  156. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.js.map +1 -0
  157. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.d.ts +33 -0
  158. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.d.ts.map +1 -0
  159. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.js +380 -0
  160. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.js.map +1 -0
  161. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.d.ts +11 -0
  162. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.d.ts.map +1 -0
  163. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.js +59 -0
  164. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.js.map +1 -0
  165. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.d.ts +10 -0
  166. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.d.ts.map +1 -0
  167. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.js +75 -0
  168. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.js.map +1 -0
  169. package/dist/src/elements/ia-donation-form/ia-donation-form-controller.d.ts +111 -0
  170. package/dist/src/elements/ia-donation-form/ia-donation-form-controller.d.ts.map +1 -0
  171. package/dist/src/elements/ia-donation-form/ia-donation-form-controller.js +522 -0
  172. package/dist/src/elements/ia-donation-form/ia-donation-form-controller.js.map +1 -0
  173. package/dist/src/elements/ia-donation-form/ia-donation-form.d.ts +95 -0
  174. package/dist/src/elements/ia-donation-form/ia-donation-form.d.ts.map +1 -0
  175. package/dist/src/elements/ia-donation-form/ia-donation-form.js +522 -0
  176. package/dist/src/elements/ia-donation-form/ia-donation-form.js.map +1 -0
  177. package/dist/src/elements/ia-donation-form/icons/apple-pay.svg +22 -0
  178. package/dist/src/elements/ia-donation-form/icons/calendar.svg +15 -0
  179. package/dist/src/elements/ia-donation-form/icons/credit-card.svg +15 -0
  180. package/dist/src/elements/ia-donation-form/icons/google-pay.svg +38 -0
  181. package/dist/src/elements/ia-donation-form/icons/lock.svg +6 -0
  182. package/dist/src/elements/ia-donation-form/icons/paypal.svg +39 -0
  183. package/dist/src/elements/ia-donation-form/icons/venmo.svg +9 -0
  184. package/dist/src/elements/ia-donation-form/icons.d.ts +9 -0
  185. package/dist/src/elements/ia-donation-form/icons.d.ts.map +1 -0
  186. package/dist/src/elements/ia-donation-form/icons.js +27 -0
  187. package/dist/src/elements/ia-donation-form/icons.js.map +1 -0
  188. package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.d.ts +27 -0
  189. package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.d.ts.map +1 -0
  190. package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.js +195 -0
  191. package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.js.map +1 -0
  192. package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.d.ts +7 -0
  193. package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.d.ts.map +1 -0
  194. package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.js +63 -0
  195. package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.js.map +1 -0
  196. package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.d.ts +28 -0
  197. package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.d.ts.map +1 -0
  198. package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.js +313 -0
  199. package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.js.map +1 -0
  200. package/dist/src/elements/ia-donation-form/recaptcha-manager.d.ts +36 -0
  201. package/dist/src/elements/ia-donation-form/recaptcha-manager.d.ts.map +1 -0
  202. package/dist/src/elements/ia-donation-form/recaptcha-manager.js +76 -0
  203. package/dist/src/elements/ia-donation-form/recaptcha-manager.js.map +1 -0
  204. package/package.json +12 -1
@@ -0,0 +1,95 @@
1
+ import { LitElement, type CSSResultGroup, type PropertyValues, type TemplateResult } from 'lit';
2
+ import type { BraintreeManagerInterface } from './braintree/braintree-manager-interface.js';
3
+ import type { PaymentFlowHandlersInterface } from './flow-handlers/payment-flow-handlers.js';
4
+ import type { IADonationContactForm } from './form-elements/contact-form/ia-donation-contact-form.js';
5
+ import { EditDonationAmountSelectionLayout, EditDonationFrequencySelectionMode } from './form-elements/ia-donation-edit-donation.js';
6
+ import type { IADonationHeader } from './form-elements/ia-donation-header.js';
7
+ import type { IADonationPaymentSelector } from './form-elements/ia-donation-payment-selector.js';
8
+ import { type IADonationSection } from './form-elements/ia-donation-section.js';
9
+ import { DonationPaymentInfo } from './models/donation-payment-info.js';
10
+ import type { DonationRequest } from './models/donation-request.js';
11
+ import { DonationType } from './models/donation-type.js';
12
+ import { UpsellModalCTAMode } from './modals/ia-donation-upsell-modal-content.js';
13
+ import './form-elements/ia-donation-header.js';
14
+ import './form-elements/ia-donation-payment-selector.js';
15
+ import './form-elements/ia-donation-section.js';
16
+ import './form-elements/ia-donation-total-amount.js';
17
+ /**
18
+ * The donation form: amount picker, total, payment method buttons, then the
19
+ * contact form and Donate button for the methods that need them. The
20
+ * controller wires it to Braintree, the modals and recaptcha; on its own it
21
+ * renders and emits events.
22
+ */
23
+ export declare class IADonationForm extends LitElement {
24
+ braintreeManager?: BraintreeManagerInterface;
25
+ paymentFlowHandlers?: PaymentFlowHandlersInterface;
26
+ donationRequest?: DonationRequest;
27
+ donationInfo: DonationPaymentInfo;
28
+ /** The contact form lives in the light DOM (for autofill) and is handed in here */
29
+ contactForm?: IADonationContactForm;
30
+ amountOptions: number[];
31
+ amountSelectionLayout: EditDonationAmountSelectionLayout;
32
+ frequencySelectionMode: EditDonationFrequencySelectionMode;
33
+ private creditCardVisible;
34
+ private contactFormVisible;
35
+ private donationInfoValid;
36
+ private selectedPaymentProvider?;
37
+ contactFormSection?: IADonationSection;
38
+ donationFormHeader: IADonationHeader;
39
+ paymentSelector: IADonationPaymentSelector;
40
+ private paypalButtonNeedsRender;
41
+ render(): TemplateResult;
42
+ /** Developer convenience: show the confirmation step without a payment. */
43
+ showConfirmationModalDev(options: {
44
+ donationType: DonationType;
45
+ amount: number;
46
+ currencyType: string;
47
+ cancelDonationCB: () => void;
48
+ confirmDonationCB: () => void;
49
+ }): Promise<void>;
50
+ /**
51
+ * Developer convenience: show the upsell modal without going through a
52
+ * payment. With the PayPal slot mode it also renders the PayPal button.
53
+ */
54
+ showUpsellModalDev(options: {
55
+ oneTimeAmount: number;
56
+ ctaMode?: UpsellModalCTAMode;
57
+ yesSelected?: (amount: number) => void;
58
+ noSelected?: () => void;
59
+ amountChanged?: (amount: number) => void;
60
+ userClosedModalCallback?: () => void;
61
+ }): Promise<void>;
62
+ get contactFormSectionTemplate(): TemplateResult;
63
+ /**
64
+ * The step number of the payment selector. With the frequency buttons
65
+ * showing they're step 1 and the amount is 2, so payment is 3. In checkbox
66
+ * mode the amount picker is step 1 and payment is 2.
67
+ */
68
+ private get paymentSelectorNumberingStart();
69
+ private editDonationError;
70
+ private paymentSelectorFirstUpdated;
71
+ private applePaySelected;
72
+ private googlePaySelected;
73
+ private creditCardSelected;
74
+ private venmoSelected;
75
+ private paypalBlockerSelected;
76
+ private focusContactForm;
77
+ private focusCreditCardNumberField;
78
+ private donateClicked;
79
+ private handleCreditCardDonationFlow;
80
+ private handleVenmoDonationFlow;
81
+ private emitPaymentFlowEvent;
82
+ private emitPaymentFlowStartedEvent;
83
+ private emitPaymentFlowConfirmedEvent;
84
+ private emitPaymentFlowCancelledEvent;
85
+ private emitPaymentFlowErrorEvent;
86
+ private showInvalidDonationInfoAlert;
87
+ private renderPayPalButtonIfNeeded;
88
+ updated(changedProperties: PropertyValues): void;
89
+ private flowHandlersConfigured;
90
+ private setupFlowHandlers;
91
+ private bindFlowListenerEvents;
92
+ private donationInfoChanged;
93
+ static get styles(): CSSResultGroup;
94
+ }
95
+ //# sourceMappingURL=ia-donation-form.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ia-donation-form.d.ts","sourceRoot":"","sources":["../../../../src/elements/ia-donation-form/ia-donation-form.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,522 @@
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement, } from 'lit';
3
+ import { property, query, state } from 'lit/decorators.js';
4
+ import { customElement } from '../../util/custom-element.js';
5
+ import { msg } from '@lit/localize';
6
+ import themeStyles from '../../themes/theme-styles.js';
7
+ import { EditDonationAmountSelectionLayout, EditDonationFrequencySelectionMode, } from './form-elements/ia-donation-edit-donation.js';
8
+ import { DonationSectionBadgeMode, } from './form-elements/ia-donation-section.js';
9
+ import { HostedFieldName } from './braintree/payment-providers/credit-card/hosted-field-container.js';
10
+ import { lockIcon } from './icons.js';
11
+ import { DonationPaymentInfo, defaultDonationAmounts, defaultSelectedDonationInfo, } from './models/donation-payment-info.js';
12
+ import { DonationType } from './models/donation-type.js';
13
+ import { PaymentProvider } from './models/payment-provider.js';
14
+ import { UpsellModalCTAMode } from './modals/ia-donation-upsell-modal-content.js';
15
+ import './form-elements/ia-donation-header.js';
16
+ import './form-elements/ia-donation-payment-selector.js';
17
+ import './form-elements/ia-donation-section.js';
18
+ import './form-elements/ia-donation-total-amount.js';
19
+ /**
20
+ * The donation form: amount picker, total, payment method buttons, then the
21
+ * contact form and Donate button for the methods that need them. The
22
+ * controller wires it to Braintree, the modals and recaptcha; on its own it
23
+ * renders and emits events.
24
+ */
25
+ let IADonationForm = class IADonationForm extends LitElement {
26
+ constructor() {
27
+ super(...arguments);
28
+ this.donationInfo = defaultSelectedDonationInfo;
29
+ this.amountOptions = defaultDonationAmounts;
30
+ this.amountSelectionLayout = EditDonationAmountSelectionLayout.MultiLine;
31
+ this.frequencySelectionMode = EditDonationFrequencySelectionMode.Button;
32
+ this.creditCardVisible = false;
33
+ this.contactFormVisible = false;
34
+ this.donationInfoValid = true;
35
+ this.paypalButtonNeedsRender = true;
36
+ this.flowHandlersConfigured = false;
37
+ }
38
+ render() {
39
+ return html `
40
+ <ia-donation-header
41
+ .amountOptions=${this.amountOptions}
42
+ .amountSelectionLayout=${this.amountSelectionLayout}
43
+ .frequencySelectionMode=${this.frequencySelectionMode}
44
+ @donationInfoChanged=${this.donationInfoChanged}
45
+ @editDonationError=${this.editDonationError}
46
+ >
47
+ </ia-donation-header>
48
+
49
+ <ia-donation-section
50
+ .badgeMode=${DonationSectionBadgeMode.HideBadgeLeaveSpacing}
51
+ id="total-amount-section"
52
+ >
53
+ <ia-donation-total-amount .donationInfo=${this.donationInfo}>
54
+ </ia-donation-total-amount>
55
+ </ia-donation-section>
56
+
57
+ <ia-donation-section
58
+ .sectionBadge=${`${this.paymentSelectorNumberingStart}`}
59
+ headline=${msg('Choose a payment method')}
60
+ >
61
+ <ia-donation-payment-selector
62
+ .paymentProviders=${this.braintreeManager?.paymentProviders}
63
+ @firstUpdated=${this.paymentSelectorFirstUpdated}
64
+ @creditCardSelected=${this.creditCardSelected}
65
+ @venmoSelected=${this.venmoSelected}
66
+ @applePaySelected=${this.applePaySelected}
67
+ @googlePaySelected=${this.googlePaySelected}
68
+ @paypalBlockerSelected=${this.paypalBlockerSelected}
69
+ @resetPaymentMethod=${() => {
70
+ this.selectedPaymentProvider = undefined;
71
+ this.contactFormVisible = false;
72
+ }}
73
+ >
74
+ <slot name="paypal-button" slot="paypal-button"></slot>
75
+ <div
76
+ class="credit-card-fields ${this.creditCardVisible ? '' : 'hidden'}"
77
+ slot="credit-card-fields"
78
+ >
79
+ <slot name="braintree-hosted-fields"></slot>
80
+ </div>
81
+ </ia-donation-payment-selector>
82
+ </ia-donation-section>
83
+
84
+ <div
85
+ class="contact-form-section ${this.contactFormVisible ? '' : 'hidden'}"
86
+ >
87
+ ${this.contactFormSectionTemplate}
88
+ </div>
89
+ `;
90
+ }
91
+ /** Developer convenience: show the confirmation step without a payment. */
92
+ async showConfirmationModalDev(options) {
93
+ this.paymentFlowHandlers?.showConfirmationStepModal(options);
94
+ }
95
+ /**
96
+ * Developer convenience: show the upsell modal without going through a
97
+ * payment. With the PayPal slot mode it also renders the PayPal button.
98
+ */
99
+ async showUpsellModalDev(options) {
100
+ this.paymentFlowHandlers?.showUpsellModal(options);
101
+ if (options.ctaMode === UpsellModalCTAMode.PayPalUpsellSlot) {
102
+ const handler = await this.braintreeManager?.paymentProviders.paypalHandler.get();
103
+ const donationInfo = new DonationPaymentInfo({
104
+ amount: options.oneTimeAmount,
105
+ donationType: DonationType.OneTime,
106
+ coverFees: false,
107
+ });
108
+ handler?.renderPayPalButton({
109
+ selector: '#paypal-upsell-button',
110
+ style: {
111
+ color: 'blue',
112
+ label: 'paypal',
113
+ shape: 'rect',
114
+ size: 'responsive',
115
+ tagline: false,
116
+ },
117
+ donationInfo,
118
+ });
119
+ }
120
+ }
121
+ get contactFormSectionTemplate() {
122
+ const headline = this.selectedPaymentProvider === PaymentProvider.Venmo
123
+ ? msg('Help us stay in touch')
124
+ : msg('Enter contact information');
125
+ return html `
126
+ <ia-donation-section
127
+ .sectionBadge=${`${this.paymentSelectorNumberingStart + 1}`}
128
+ headline=${headline}
129
+ id="contactFormSection"
130
+ >
131
+ <slot name="contact-form"></slot>
132
+ </ia-donation-section>
133
+
134
+ <ia-donation-section
135
+ .sectionBadge=${`${this.paymentSelectorNumberingStart + 2}`}
136
+ >
137
+ <slot name="recaptcha"></slot>
138
+ <button id="donate-button" @click=${this.donateClicked}>
139
+ ${msg('Donate')}
140
+ </button>
141
+
142
+ <div class="secure-process-note">
143
+ ${lockIcon} ${msg('Your payment will be securely processed')}
144
+ </div>
145
+ </ia-donation-section>
146
+ `;
147
+ }
148
+ /**
149
+ * The step number of the payment selector. With the frequency buttons
150
+ * showing they're step 1 and the amount is 2, so payment is 3. In checkbox
151
+ * mode the amount picker is step 1 and payment is 2.
152
+ */
153
+ get paymentSelectorNumberingStart() {
154
+ return this.frequencySelectionMode ===
155
+ EditDonationFrequencySelectionMode.Button
156
+ ? 3
157
+ : 2;
158
+ }
159
+ editDonationError() {
160
+ this.donationInfoValid = false;
161
+ }
162
+ paymentSelectorFirstUpdated() {
163
+ if (this.paymentFlowHandlers?.paypalHandler) {
164
+ this.renderPayPalButtonIfNeeded();
165
+ }
166
+ }
167
+ applePaySelected(e) {
168
+ this.selectedPaymentProvider = PaymentProvider.ApplePay;
169
+ this.contactFormVisible = false;
170
+ this.creditCardVisible = false;
171
+ if (!this.donationInfoValid) {
172
+ this.showInvalidDonationInfoAlert();
173
+ return;
174
+ }
175
+ const originalEvent = e.detail.originalEvent;
176
+ if (this.donationInfo) {
177
+ this.paymentFlowHandlers?.applePayHandler?.paymentInitiated(this.donationInfo, originalEvent);
178
+ }
179
+ this.emitPaymentFlowStartedEvent();
180
+ }
181
+ googlePaySelected() {
182
+ this.selectedPaymentProvider = PaymentProvider.GooglePay;
183
+ this.contactFormVisible = false;
184
+ this.creditCardVisible = false;
185
+ if (!this.donationInfoValid) {
186
+ this.showInvalidDonationInfoAlert();
187
+ return;
188
+ }
189
+ if (this.donationInfo) {
190
+ this.paymentFlowHandlers?.googlePayHandler?.paymentInitiated(this.donationInfo);
191
+ }
192
+ this.emitPaymentFlowStartedEvent();
193
+ }
194
+ async creditCardSelected() {
195
+ if (!this.donationInfoValid) {
196
+ this.showInvalidDonationInfoAlert();
197
+ return;
198
+ }
199
+ this.selectedPaymentProvider = PaymentProvider.CreditCard;
200
+ this.contactFormVisible = true;
201
+ this.creditCardVisible = true;
202
+ this.focusCreditCardNumberField();
203
+ }
204
+ async venmoSelected() {
205
+ if (!this.donationInfoValid) {
206
+ this.showInvalidDonationInfoAlert();
207
+ return;
208
+ }
209
+ this.selectedPaymentProvider = PaymentProvider.Venmo;
210
+ this.contactFormVisible = true;
211
+ this.creditCardVisible = false;
212
+ this.focusContactForm();
213
+ }
214
+ paypalBlockerSelected() {
215
+ this.contactFormVisible = false;
216
+ this.creditCardVisible = false;
217
+ this.showInvalidDonationInfoAlert();
218
+ }
219
+ async focusContactForm() {
220
+ await this.updateComplete;
221
+ if (this.contactFormSection) {
222
+ this.contactForm?.focus();
223
+ }
224
+ }
225
+ async focusCreditCardNumberField() {
226
+ await this.updateComplete;
227
+ const creditCardHandler = await this.braintreeManager?.paymentProviders.creditCardHandler.get();
228
+ creditCardHandler?.focusField(HostedFieldName.Number);
229
+ }
230
+ async donateClicked() {
231
+ if (!this.contactForm) {
232
+ alert(msg('Please enter contact info.'));
233
+ return;
234
+ }
235
+ if (!this.donationInfoValid || !this.donationInfo) {
236
+ this.showInvalidDonationInfoAlert();
237
+ return;
238
+ }
239
+ const contactInfo = this.contactForm.donorContactInfo;
240
+ switch (this.selectedPaymentProvider) {
241
+ case PaymentProvider.CreditCard:
242
+ this.handleCreditCardDonationFlow(contactInfo, this.donationInfo);
243
+ break;
244
+ case PaymentProvider.Venmo:
245
+ this.handleVenmoDonationFlow(contactInfo, this.donationInfo);
246
+ break;
247
+ }
248
+ }
249
+ async handleCreditCardDonationFlow(contactInfo, donationInfo) {
250
+ const creditCardFlowHandler = this.paymentFlowHandlers?.creditCardHandler;
251
+ const creditCardHandler = await this.braintreeManager?.paymentProviders.creditCardHandler.get();
252
+ creditCardHandler?.hideErrorMessage();
253
+ const valid = this.contactForm?.reportValidity();
254
+ const hostedFieldsResponse = await creditCardFlowHandler?.tokenizeFields();
255
+ if (!valid || hostedFieldsResponse === undefined) {
256
+ return;
257
+ }
258
+ this.emitPaymentFlowStartedEvent();
259
+ creditCardFlowHandler?.paymentInitiated(hostedFieldsResponse, donationInfo, contactInfo);
260
+ }
261
+ async handleVenmoDonationFlow(contactInfo, donationInfo) {
262
+ const valid = this.contactForm?.reportValidity();
263
+ if (!valid) {
264
+ return;
265
+ }
266
+ this.paymentFlowHandlers?.venmoHandler?.paymentInitiated(contactInfo, donationInfo);
267
+ }
268
+ emitPaymentFlowEvent(name, extra = {}) {
269
+ if (!this.selectedPaymentProvider) {
270
+ return;
271
+ }
272
+ this.dispatchEvent(new CustomEvent(name, {
273
+ detail: { paymentProvider: this.selectedPaymentProvider, ...extra },
274
+ }));
275
+ }
276
+ emitPaymentFlowStartedEvent() {
277
+ this.emitPaymentFlowEvent('paymentFlowStarted');
278
+ }
279
+ emitPaymentFlowConfirmedEvent() {
280
+ this.emitPaymentFlowEvent('paymentFlowConfirmed');
281
+ }
282
+ emitPaymentFlowCancelledEvent() {
283
+ this.emitPaymentFlowEvent('paymentFlowCancelled');
284
+ }
285
+ emitPaymentFlowErrorEvent(error) {
286
+ this.emitPaymentFlowEvent('paymentFlowError', { error });
287
+ }
288
+ showInvalidDonationInfoAlert() {
289
+ alert(msg('Please enter a valid donation amount.'));
290
+ }
291
+ async renderPayPalButtonIfNeeded() {
292
+ if (!this.paypalButtonNeedsRender) {
293
+ return;
294
+ }
295
+ this.paypalButtonNeedsRender = false;
296
+ if (this.donationInfo) {
297
+ await this.paymentFlowHandlers?.paypalHandler?.renderPayPalButton(this.donationInfo);
298
+ }
299
+ this.paymentSelector.showPaypalButton();
300
+ }
301
+ updated(changedProperties) {
302
+ if (changedProperties.has('donationInfo') && this.donationInfo) {
303
+ // The PayPal button holds its own copy of the donation info, since the
304
+ // donor starts that payment from the button rather than from our code
305
+ this.paymentFlowHandlers?.paypalHandler?.updateDonationInfo(this.donationInfo);
306
+ this.donationFormHeader.donationInfo = this.donationInfo;
307
+ }
308
+ if ((changedProperties.has('paymentFlowHandlers') ||
309
+ changedProperties.has('donationInfo')) &&
310
+ this.donationInfo &&
311
+ this.paymentFlowHandlers) {
312
+ this.setupFlowHandlers();
313
+ }
314
+ if (changedProperties.has('donationInfoValid')) {
315
+ this.paymentSelector.donationInfoValid = this.donationInfoValid;
316
+ }
317
+ if (changedProperties.has('selectedPaymentProvider')) {
318
+ this.dispatchEvent(new CustomEvent('paymentProviderSelected', {
319
+ detail: {
320
+ paymentProvider: this.selectedPaymentProvider,
321
+ previousPaymentProvider: changedProperties.get('selectedPaymentProvider'),
322
+ },
323
+ }));
324
+ }
325
+ }
326
+ setupFlowHandlers() {
327
+ if (this.flowHandlersConfigured) {
328
+ return;
329
+ }
330
+ this.flowHandlersConfigured = true;
331
+ this.bindFlowListenerEvents();
332
+ this.renderPayPalButtonIfNeeded();
333
+ if (this.donationInfo) {
334
+ this.paymentFlowHandlers?.paypalHandler?.updateDonationInfo(this.donationInfo);
335
+ }
336
+ }
337
+ bindFlowListenerEvents() {
338
+ const paypal = this.paymentFlowHandlers?.paypalHandler;
339
+ paypal?.on('payPalPaymentStarted', () => {
340
+ this.selectedPaymentProvider = PaymentProvider.PayPal;
341
+ this.emitPaymentFlowStartedEvent();
342
+ });
343
+ paypal?.on('payPalPaymentConfirmed', () => {
344
+ this.selectedPaymentProvider = PaymentProvider.PayPal;
345
+ this.emitPaymentFlowConfirmedEvent();
346
+ });
347
+ paypal?.on('payPalPaymentCancelled', () => {
348
+ this.selectedPaymentProvider = PaymentProvider.PayPal;
349
+ this.emitPaymentFlowCancelledEvent();
350
+ });
351
+ paypal?.on('payPalPaymentError', (_datasource, error) => {
352
+ this.selectedPaymentProvider = PaymentProvider.PayPal;
353
+ this.emitPaymentFlowErrorEvent(error);
354
+ });
355
+ this.paymentFlowHandlers?.googlePayHandler?.on('paymentCancelled', () => {
356
+ this.selectedPaymentProvider = PaymentProvider.GooglePay;
357
+ this.emitPaymentFlowCancelledEvent();
358
+ });
359
+ }
360
+ donationInfoChanged(e) {
361
+ const donationInfo = e.detail.donationInfo;
362
+ this.donationInfo = new DonationPaymentInfo({
363
+ amount: donationInfo.amount,
364
+ donationType: donationInfo.donationType,
365
+ coverFees: donationInfo.coverFees,
366
+ });
367
+ this.donationInfoValid = true;
368
+ this.dispatchEvent(new CustomEvent('donationInfoChanged', { detail: { donationInfo } }));
369
+ }
370
+ static get styles() {
371
+ return [
372
+ themeStyles,
373
+ css `
374
+ :host {
375
+ /*
376
+ * The donation form was built for a 10px root font size. Sizing off
377
+ * this base keeps it self-contained, so it looks the same whatever
378
+ * the page's root size is. Every part of the form reads it, and the
379
+ * two parts with their own base variable get it passed through.
380
+ */
381
+ --donation-form-base-font-size--: var(
382
+ --ia-donation-form-base-font-size,
383
+ 10px
384
+ );
385
+ --ia-donation-section-base-font-size: var(
386
+ --donation-form-base-font-size--
387
+ );
388
+ --ia-donation-edit-base-font-size: var(
389
+ --donation-form-base-font-size--
390
+ );
391
+
392
+ --donation-form-donate-button-font-size--: var(
393
+ --ia-donation-form-donate-button-font-size,
394
+ calc(var(--donation-form-base-font-size--) * 2.6)
395
+ );
396
+ --donation-form-donate-button-height--: var(
397
+ --ia-donation-form-donate-button-height,
398
+ calc(var(--donation-form-base-font-size--) * 4)
399
+ );
400
+ --donation-form-donate-button-color--: var(
401
+ --ia-donation-form-donate-button-color,
402
+ var(--mint-green)
403
+ );
404
+ --donation-form-donate-button-text-color--: var(
405
+ --ia-donation-form-donate-button-text-color,
406
+ var(--true-white)
407
+ );
408
+ --donation-form-donate-button-hover-color--: var(
409
+ --ia-donation-form-donate-button-hover-color,
410
+ #278367
411
+ );
412
+ --donation-form-total-top-margin--: var(
413
+ --ia-donation-form-total-amount-top-margin,
414
+ calc(var(--donation-form-base-font-size--) * 1.5)
415
+ );
416
+ --donation-form-total-bottom-margin--: var(
417
+ --ia-donation-form-total-amount-bottom-margin,
418
+ calc(var(--donation-form-base-font-size--) * 1.2)
419
+ );
420
+ }
421
+
422
+ h1 {
423
+ margin: 0;
424
+ padding: 0;
425
+ }
426
+
427
+ .hidden {
428
+ display: none;
429
+ }
430
+
431
+ .secure-process-note {
432
+ margin-top: 0.5em;
433
+ font-size: 0.75em;
434
+ text-align: center;
435
+ }
436
+
437
+ .secure-process-note .ia-icon {
438
+ width: calc(var(--donation-form-base-font-size--) * 1.2);
439
+ height: calc(var(--donation-form-base-font-size--) * 1.5);
440
+ vertical-align: bottom;
441
+ background-color: currentColor;
442
+ }
443
+
444
+ #donate-button {
445
+ width: 100%;
446
+ appearance: none;
447
+ font-size: var(--donation-form-donate-button-font-size--);
448
+ font-weight: bold;
449
+ text-align: center;
450
+ color: var(--donation-form-donate-button-text-color--);
451
+ cursor: pointer;
452
+ border: none;
453
+ border-radius: 5px;
454
+ background-color: var(--donation-form-donate-button-color--);
455
+ padding-top: var(--padding-sm);
456
+ padding-bottom: var(--padding-sm);
457
+ height: var(--donation-form-donate-button-height--);
458
+ }
459
+
460
+ #donate-button:hover {
461
+ background-color: var(--donation-form-donate-button-hover-color--);
462
+ }
463
+
464
+ #total-amount-section {
465
+ display: block;
466
+ margin-top: var(--donation-form-total-top-margin--);
467
+ margin-bottom: var(--donation-form-total-bottom-margin--);
468
+ }
469
+ `,
470
+ ];
471
+ }
472
+ };
473
+ __decorate([
474
+ property({ type: Object })
475
+ ], IADonationForm.prototype, "braintreeManager", void 0);
476
+ __decorate([
477
+ property({ type: Object })
478
+ ], IADonationForm.prototype, "paymentFlowHandlers", void 0);
479
+ __decorate([
480
+ property({ type: Object })
481
+ ], IADonationForm.prototype, "donationRequest", void 0);
482
+ __decorate([
483
+ property({ type: Object })
484
+ ], IADonationForm.prototype, "donationInfo", void 0);
485
+ __decorate([
486
+ property({ type: Object })
487
+ ], IADonationForm.prototype, "contactForm", void 0);
488
+ __decorate([
489
+ property({ type: Array })
490
+ ], IADonationForm.prototype, "amountOptions", void 0);
491
+ __decorate([
492
+ property({ type: String })
493
+ ], IADonationForm.prototype, "amountSelectionLayout", void 0);
494
+ __decorate([
495
+ property({ type: String })
496
+ ], IADonationForm.prototype, "frequencySelectionMode", void 0);
497
+ __decorate([
498
+ state()
499
+ ], IADonationForm.prototype, "creditCardVisible", void 0);
500
+ __decorate([
501
+ state()
502
+ ], IADonationForm.prototype, "contactFormVisible", void 0);
503
+ __decorate([
504
+ state()
505
+ ], IADonationForm.prototype, "donationInfoValid", void 0);
506
+ __decorate([
507
+ state()
508
+ ], IADonationForm.prototype, "selectedPaymentProvider", void 0);
509
+ __decorate([
510
+ query('#contactFormSection')
511
+ ], IADonationForm.prototype, "contactFormSection", void 0);
512
+ __decorate([
513
+ query('ia-donation-header')
514
+ ], IADonationForm.prototype, "donationFormHeader", void 0);
515
+ __decorate([
516
+ query('ia-donation-payment-selector')
517
+ ], IADonationForm.prototype, "paymentSelector", void 0);
518
+ IADonationForm = __decorate([
519
+ customElement('ia-donation-form')
520
+ ], IADonationForm);
521
+ export { IADonationForm };
522
+ //# sourceMappingURL=ia-donation-form.js.map