@internetarchive/elements 1.1.2 → 1.1.3-l10n-demo.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. package/README.md +34 -1
  2. package/dist/src/elements/ia-button/ia-button.d.ts.map +1 -1
  3. package/dist/src/elements/ia-button/ia-button.js +2 -2
  4. package/dist/src/elements/ia-button/ia-button.js.map +1 -1
  5. package/dist/src/elements/ia-combo-box/ia-combo-box.d.ts.map +1 -1
  6. package/dist/src/elements/ia-combo-box/ia-combo-box.js +3 -2
  7. package/dist/src/elements/ia-combo-box/ia-combo-box.js.map +1 -1
  8. package/dist/src/elements/ia-donation-form/analytics.d.ts +12 -0
  9. package/dist/src/elements/ia-donation-form/analytics.d.ts.map +1 -0
  10. package/dist/src/elements/ia-donation-form/analytics.js +2 -0
  11. package/dist/src/elements/ia-donation-form/analytics.js.map +1 -0
  12. package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.d.ts +79 -0
  13. package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.d.ts.map +1 -0
  14. package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.js +2 -0
  15. package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.js.map +1 -0
  16. package/dist/src/elements/ia-donation-form/braintree/braintree-manager.d.ts +73 -0
  17. package/dist/src/elements/ia-donation-form/braintree/braintree-manager.d.ts.map +1 -0
  18. package/dist/src/elements/ia-donation-form/braintree/braintree-manager.js +126 -0
  19. package/dist/src/elements/ia-donation-form/braintree/braintree-manager.js.map +1 -0
  20. package/dist/src/elements/ia-donation-form/braintree/hosting-environment.d.ts +10 -0
  21. package/dist/src/elements/ia-donation-form/braintree/hosting-environment.d.ts.map +1 -0
  22. package/dist/src/elements/ia-donation-form/braintree/hosting-environment.js +9 -0
  23. package/dist/src/elements/ia-donation-form/braintree/hosting-environment.js.map +1 -0
  24. package/dist/src/elements/ia-donation-form/braintree/payment-clients.d.ts +47 -0
  25. package/dist/src/elements/ia-donation-form/braintree/payment-clients.d.ts.map +1 -0
  26. package/dist/src/elements/ia-donation-form/braintree/payment-clients.js +104 -0
  27. package/dist/src/elements/ia-donation-form/braintree/payment-clients.js.map +1 -0
  28. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.d.ts +11 -0
  29. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.d.ts.map +1 -0
  30. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.js +2 -0
  31. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.js.map +1 -0
  32. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts +20 -0
  33. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts.map +1 -0
  34. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.js +2 -0
  35. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.js.map +1 -0
  36. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.d.ts +21 -0
  37. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.d.ts.map +1 -0
  38. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.js +83 -0
  39. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.js.map +1 -0
  40. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.d.ts +11 -0
  41. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.d.ts.map +1 -0
  42. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.js +13 -0
  43. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.js.map +1 -0
  44. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.d.ts +27 -0
  45. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.d.ts.map +1 -0
  46. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.js +67 -0
  47. package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.js.map +1 -0
  48. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.d.ts +18 -0
  49. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.d.ts.map +1 -0
  50. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.js +2 -0
  51. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.js.map +1 -0
  52. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.d.ts +41 -0
  53. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.d.ts.map +1 -0
  54. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.js +95 -0
  55. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.js.map +1 -0
  56. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.d.ts +14 -0
  57. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.d.ts.map +1 -0
  58. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.js +9 -0
  59. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.js.map +1 -0
  60. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.d.ts +40 -0
  61. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.d.ts.map +1 -0
  62. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.js +58 -0
  63. package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.js.map +1 -0
  64. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.d.ts +8 -0
  65. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.d.ts.map +1 -0
  66. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.js +2 -0
  67. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.js.map +1 -0
  68. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.d.ts +19 -0
  69. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.d.ts.map +1 -0
  70. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.js +45 -0
  71. package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.js.map +1 -0
  72. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.d.ts +57 -0
  73. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.d.ts.map +1 -0
  74. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.js +44 -0
  75. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.js.map +1 -0
  76. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.d.ts +14 -0
  77. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.d.ts.map +1 -0
  78. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.js +2 -0
  79. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.js.map +1 -0
  80. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.d.ts +27 -0
  81. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.d.ts.map +1 -0
  82. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.js +44 -0
  83. package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.js.map +1 -0
  84. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.d.ts +8 -0
  85. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.d.ts.map +1 -0
  86. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.js +2 -0
  87. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.js.map +1 -0
  88. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.d.ts +40 -0
  89. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.d.ts.map +1 -0
  90. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.js +65 -0
  91. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.js.map +1 -0
  92. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.d.ts +25 -0
  93. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.d.ts.map +1 -0
  94. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.js +42 -0
  95. package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.js.map +1 -0
  96. package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.d.ts +18 -0
  97. package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.d.ts.map +1 -0
  98. package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.js +2 -0
  99. package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.js.map +1 -0
  100. package/dist/src/elements/ia-donation-form/braintree/payment-providers.d.ts +42 -0
  101. package/dist/src/elements/ia-donation-form/braintree/payment-providers.d.ts.map +1 -0
  102. package/dist/src/elements/ia-donation-form/braintree/payment-providers.js +99 -0
  103. package/dist/src/elements/ia-donation-form/braintree/payment-providers.js.map +1 -0
  104. package/dist/src/elements/ia-donation-form/currency-validator.d.ts +16 -0
  105. package/dist/src/elements/ia-donation-form/currency-validator.d.ts.map +1 -0
  106. package/dist/src/elements/ia-donation-form/currency-validator.js +37 -0
  107. package/dist/src/elements/ia-donation-form/currency-validator.js.map +1 -0
  108. package/dist/src/elements/ia-donation-form/donation-form-error.d.ts +5 -0
  109. package/dist/src/elements/ia-donation-form/donation-form-error.d.ts.map +1 -0
  110. package/dist/src/elements/ia-donation-form/donation-form-error.js +8 -0
  111. package/dist/src/elements/ia-donation-form/donation-form-error.js.map +1 -0
  112. package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.d.ts +118 -0
  113. package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.d.ts.map +1 -0
  114. package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.js +194 -0
  115. package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.js.map +1 -0
  116. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.d.ts +24 -0
  117. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.d.ts.map +1 -0
  118. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.js +70 -0
  119. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.js.map +1 -0
  120. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.d.ts +44 -0
  121. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.d.ts.map +1 -0
  122. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.js +110 -0
  123. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.js.map +1 -0
  124. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.d.ts +24 -0
  125. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.d.ts.map +1 -0
  126. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.js +74 -0
  127. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.js.map +1 -0
  128. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.d.ts +47 -0
  129. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.d.ts.map +1 -0
  130. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.js +204 -0
  131. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.js.map +1 -0
  132. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.d.ts +30 -0
  133. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.d.ts.map +1 -0
  134. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.js +77 -0
  135. package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.js.map +1 -0
  136. package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.d.ts +80 -0
  137. package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.d.ts.map +1 -0
  138. package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.js +72 -0
  139. package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.js.map +1 -0
  140. package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.d.ts +2 -0
  141. package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.d.ts.map +1 -0
  142. package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.js +2 -0
  143. package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.js.map +1 -0
  144. package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.d.ts +3 -0
  145. package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.d.ts.map +1 -0
  146. package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.js +254 -0
  147. package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.js.map +1 -0
  148. package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.d.ts +70 -0
  149. package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.d.ts.map +1 -0
  150. package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.js +497 -0
  151. package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.js.map +1 -0
  152. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.d.ts +26 -0
  153. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.d.ts.map +1 -0
  154. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.js +163 -0
  155. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.js.map +1 -0
  156. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.d.ts +118 -0
  157. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.d.ts.map +1 -0
  158. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.js +772 -0
  159. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.js.map +1 -0
  160. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.d.ts +31 -0
  161. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.d.ts.map +1 -0
  162. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.js +93 -0
  163. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.js.map +1 -0
  164. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.d.ts +33 -0
  165. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.d.ts.map +1 -0
  166. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.js +378 -0
  167. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.js.map +1 -0
  168. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.d.ts +21 -0
  169. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.d.ts.map +1 -0
  170. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.js +182 -0
  171. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.js.map +1 -0
  172. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.d.ts +11 -0
  173. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.d.ts.map +1 -0
  174. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.js +60 -0
  175. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.js.map +1 -0
  176. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.d.ts +10 -0
  177. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.d.ts.map +1 -0
  178. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.js +76 -0
  179. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.js.map +1 -0
  180. package/dist/src/elements/ia-donation-form/ia-donation-form-controller.d.ts +114 -0
  181. package/dist/src/elements/ia-donation-form/ia-donation-form-controller.d.ts.map +1 -0
  182. package/dist/src/elements/ia-donation-form/ia-donation-form-controller.js +586 -0
  183. package/dist/src/elements/ia-donation-form/ia-donation-form-controller.js.map +1 -0
  184. package/dist/src/elements/ia-donation-form/ia-donation-form.d.ts +94 -0
  185. package/dist/src/elements/ia-donation-form/ia-donation-form.d.ts.map +1 -0
  186. package/dist/src/elements/ia-donation-form/ia-donation-form.js +516 -0
  187. package/dist/src/elements/ia-donation-form/ia-donation-form.js.map +1 -0
  188. package/dist/src/elements/ia-donation-form/icons/apple-pay.svg +22 -0
  189. package/dist/src/elements/ia-donation-form/icons/calendar.svg +15 -0
  190. package/dist/src/elements/ia-donation-form/icons/credit-card.svg +15 -0
  191. package/dist/src/elements/ia-donation-form/icons/email.svg +3 -0
  192. package/dist/src/elements/ia-donation-form/icons/google-pay.svg +38 -0
  193. package/dist/src/elements/ia-donation-form/icons/locale-pin.svg +7 -0
  194. package/dist/src/elements/ia-donation-form/icons/lock.svg +6 -0
  195. package/dist/src/elements/ia-donation-form/icons/paypal.svg +39 -0
  196. package/dist/src/elements/ia-donation-form/icons/user.svg +6 -0
  197. package/dist/src/elements/ia-donation-form/icons/venmo.svg +9 -0
  198. package/dist/src/elements/ia-donation-form/icons.d.ts +12 -0
  199. package/dist/src/elements/ia-donation-form/icons.d.ts.map +1 -0
  200. package/dist/src/elements/ia-donation-form/icons.js +33 -0
  201. package/dist/src/elements/ia-donation-form/icons.js.map +1 -0
  202. package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.d.ts +27 -0
  203. package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.d.ts.map +1 -0
  204. package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.js +196 -0
  205. package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.js.map +1 -0
  206. package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.d.ts +7 -0
  207. package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.d.ts.map +1 -0
  208. package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.js +64 -0
  209. package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.js.map +1 -0
  210. package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.d.ts +28 -0
  211. package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.d.ts.map +1 -0
  212. package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.js +314 -0
  213. package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.js.map +1 -0
  214. package/dist/src/elements/ia-donation-form/models/donation-payment-info.d.ts +34 -0
  215. package/dist/src/elements/ia-donation-form/models/donation-payment-info.d.ts.map +1 -0
  216. package/dist/src/elements/ia-donation-form/models/donation-payment-info.js +54 -0
  217. package/dist/src/elements/ia-donation-form/models/donation-payment-info.js.map +1 -0
  218. package/dist/src/elements/ia-donation-form/models/donation-request.d.ts +62 -0
  219. package/dist/src/elements/ia-donation-form/models/donation-request.d.ts.map +1 -0
  220. package/dist/src/elements/ia-donation-form/models/donation-request.js +35 -0
  221. package/dist/src/elements/ia-donation-form/models/donation-request.js.map +1 -0
  222. package/dist/src/elements/ia-donation-form/models/donation-response.d.ts +67 -0
  223. package/dist/src/elements/ia-donation-form/models/donation-response.d.ts.map +1 -0
  224. package/dist/src/elements/ia-donation-form/models/donation-response.js +57 -0
  225. package/dist/src/elements/ia-donation-form/models/donation-response.js.map +1 -0
  226. package/dist/src/elements/ia-donation-form/models/donation-type.d.ts +8 -0
  227. package/dist/src/elements/ia-donation-form/models/donation-type.d.ts.map +1 -0
  228. package/dist/src/elements/ia-donation-form/models/donation-type.js +7 -0
  229. package/dist/src/elements/ia-donation-form/models/donation-type.js.map +1 -0
  230. package/dist/src/elements/ia-donation-form/models/donor-contact-info.d.ts +38 -0
  231. package/dist/src/elements/ia-donation-form/models/donor-contact-info.d.ts.map +1 -0
  232. package/dist/src/elements/ia-donation-form/models/donor-contact-info.js +27 -0
  233. package/dist/src/elements/ia-donation-form/models/donor-contact-info.js.map +1 -0
  234. package/dist/src/elements/ia-donation-form/models/payment-provider.d.ts +10 -0
  235. package/dist/src/elements/ia-donation-form/models/payment-provider.d.ts.map +1 -0
  236. package/dist/src/elements/ia-donation-form/models/payment-provider.js +9 -0
  237. package/dist/src/elements/ia-donation-form/models/payment-provider.js.map +1 -0
  238. package/dist/src/elements/ia-donation-form/recaptcha-manager.d.ts +36 -0
  239. package/dist/src/elements/ia-donation-form/recaptcha-manager.d.ts.map +1 -0
  240. package/dist/src/elements/ia-donation-form/recaptcha-manager.js +76 -0
  241. package/dist/src/elements/ia-donation-form/recaptcha-manager.js.map +1 -0
  242. package/dist/src/elements/ia-dropdown/assets/caret-down.svg +4 -0
  243. package/dist/src/elements/ia-dropdown/assets/caret-up.svg +4 -0
  244. package/dist/src/elements/ia-dropdown/ia-dropdown.d.ts +185 -0
  245. package/dist/src/elements/ia-dropdown/ia-dropdown.d.ts.map +1 -0
  246. package/dist/src/elements/ia-dropdown/ia-dropdown.js +762 -0
  247. package/dist/src/elements/ia-dropdown/ia-dropdown.js.map +1 -0
  248. package/dist/src/elements/ia-dropdown/ia-icon-label.d.ts +10 -0
  249. package/dist/src/elements/ia-dropdown/ia-icon-label.d.ts.map +1 -0
  250. package/dist/src/elements/ia-dropdown/ia-icon-label.js +103 -0
  251. package/dist/src/elements/ia-dropdown/ia-icon-label.js.map +1 -0
  252. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.d.ts +3 -3
  253. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.d.ts.map +1 -1
  254. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.js +5 -6
  255. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.js.map +1 -1
  256. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.d.ts +4 -4
  257. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.d.ts.map +1 -1
  258. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.js +5 -8
  259. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.js.map +1 -1
  260. package/dist/src/elements/ia-image-viewer/ia-image-viewer.d.ts.map +1 -1
  261. package/dist/src/elements/ia-image-viewer/ia-image-viewer.js +3 -2
  262. package/dist/src/elements/ia-image-viewer/ia-image-viewer.js.map +1 -1
  263. package/dist/src/elements/ia-image-viewer/ia-imgview-controls.d.ts.map +1 -1
  264. package/dist/src/elements/ia-image-viewer/ia-imgview-controls.js +3 -2
  265. package/dist/src/elements/ia-image-viewer/ia-imgview-controls.js.map +1 -1
  266. package/dist/src/elements/ia-image-viewer/ia-imgview-slide.d.ts.map +1 -1
  267. package/dist/src/elements/ia-image-viewer/ia-imgview-slide.js +3 -2
  268. package/dist/src/elements/ia-image-viewer/ia-imgview-slide.js.map +1 -1
  269. package/dist/src/elements/ia-otp-form/ia-otp-form.d.ts.map +1 -1
  270. package/dist/src/elements/ia-otp-form/ia-otp-form.js +3 -2
  271. package/dist/src/elements/ia-otp-form/ia-otp-form.js.map +1 -1
  272. package/dist/src/elements/ia-playback-controls/ia-playback-controls.d.ts.map +1 -1
  273. package/dist/src/elements/ia-playback-controls/ia-playback-controls.js +3 -2
  274. package/dist/src/elements/ia-playback-controls/ia-playback-controls.js.map +1 -1
  275. package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts.map +1 -1
  276. package/dist/src/elements/ia-radio-player/ia-radio-player.js +3 -2
  277. package/dist/src/elements/ia-radio-player/ia-radio-player.js.map +1 -1
  278. package/dist/src/elements/ia-radio-player/ia-search-results-switcher.d.ts.map +1 -1
  279. package/dist/src/elements/ia-radio-player/ia-search-results-switcher.js +3 -2
  280. package/dist/src/elements/ia-radio-player/ia-search-results-switcher.js.map +1 -1
  281. package/dist/src/elements/ia-reviews/assets/delete-icon.svg +8 -0
  282. package/dist/src/elements/ia-reviews/assets/star-basic.svg +6 -0
  283. package/dist/src/elements/ia-reviews/assets/star-selected.svg +8 -0
  284. package/dist/src/elements/ia-reviews/assets/star-unselected.svg +8 -0
  285. package/dist/src/elements/ia-reviews/ia-review-form.d.ts +103 -0
  286. package/dist/src/elements/ia-reviews/ia-review-form.d.ts.map +1 -0
  287. package/dist/src/elements/ia-reviews/ia-review-form.js +685 -0
  288. package/dist/src/elements/ia-reviews/ia-review-form.js.map +1 -0
  289. package/dist/src/elements/ia-reviews/ia-review.d.ts +51 -0
  290. package/dist/src/elements/ia-reviews/ia-review.d.ts.map +1 -0
  291. package/dist/src/elements/ia-reviews/ia-review.js +344 -0
  292. package/dist/src/elements/ia-reviews/ia-review.js.map +1 -0
  293. package/dist/src/elements/ia-reviews/ia-reviews.d.ts +68 -0
  294. package/dist/src/elements/ia-reviews/ia-reviews.d.ts.map +1 -0
  295. package/dist/src/elements/ia-reviews/ia-reviews.js +354 -0
  296. package/dist/src/elements/ia-reviews/ia-reviews.js.map +1 -0
  297. package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.d.ts +23 -0
  298. package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.d.ts.map +1 -0
  299. package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.js +37 -0
  300. package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.js.map +1 -0
  301. package/dist/src/elements/ia-reviews/mocks/mock-review-service.d.ts +12 -0
  302. package/dist/src/elements/ia-reviews/mocks/mock-review-service.d.ts.map +1 -0
  303. package/dist/src/elements/ia-reviews/mocks/mock-review-service.js +19 -0
  304. package/dist/src/elements/ia-reviews/mocks/mock-review-service.js.map +1 -0
  305. package/dist/src/elements/ia-reviews/models.d.ts +38 -0
  306. package/dist/src/elements/ia-reviews/models.d.ts.map +1 -0
  307. package/dist/src/elements/ia-reviews/models.js +2 -0
  308. package/dist/src/elements/ia-reviews/models.js.map +1 -0
  309. package/dist/src/elements/ia-reviews/review-service.d.ts +53 -0
  310. package/dist/src/elements/ia-reviews/review-service.d.ts.map +1 -0
  311. package/dist/src/elements/ia-reviews/review-service.js +97 -0
  312. package/dist/src/elements/ia-reviews/review-service.js.map +1 -0
  313. package/dist/src/elements/ia-reviews/utils/collapse-space.d.ts +13 -0
  314. package/dist/src/elements/ia-reviews/utils/collapse-space.d.ts.map +1 -0
  315. package/dist/src/elements/ia-reviews/utils/collapse-space.js +19 -0
  316. package/dist/src/elements/ia-reviews/utils/collapse-space.js.map +1 -0
  317. package/dist/src/elements/ia-reviews/utils/friendly-truncate.d.ts +14 -0
  318. package/dist/src/elements/ia-reviews/utils/friendly-truncate.d.ts.map +1 -0
  319. package/dist/src/elements/ia-reviews/utils/friendly-truncate.js +65 -0
  320. package/dist/src/elements/ia-reviews/utils/friendly-truncate.js.map +1 -0
  321. package/dist/src/elements/ia-reviews/utils/link-urls-in-text.d.ts +9 -0
  322. package/dist/src/elements/ia-reviews/utils/link-urls-in-text.d.ts.map +1 -0
  323. package/dist/src/elements/ia-reviews/utils/link-urls-in-text.js +40 -0
  324. package/dist/src/elements/ia-reviews/utils/link-urls-in-text.js.map +1 -0
  325. package/dist/src/elements/ia-reviews/utils/sanitize-review-body.d.ts +9 -0
  326. package/dist/src/elements/ia-reviews/utils/sanitize-review-body.d.ts.map +1 -0
  327. package/dist/src/elements/ia-reviews/utils/sanitize-review-body.js +29 -0
  328. package/dist/src/elements/ia-reviews/utils/sanitize-review-body.js.map +1 -0
  329. package/dist/src/elements/ia-reviews/utils/truncate-screenname.d.ts +13 -0
  330. package/dist/src/elements/ia-reviews/utils/truncate-screenname.d.ts.map +1 -0
  331. package/dist/src/elements/ia-reviews/utils/truncate-screenname.js +19 -0
  332. package/dist/src/elements/ia-reviews/utils/truncate-screenname.js.map +1 -0
  333. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.d.ts +2 -2
  334. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.d.ts.map +1 -1
  335. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.js +4 -5
  336. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.js.map +1 -1
  337. package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts +3 -3
  338. package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts.map +1 -1
  339. package/dist/src/elements/ia-status-indicator/ia-status-indicator.js +7 -12
  340. package/dist/src/elements/ia-status-indicator/ia-status-indicator.js.map +1 -1
  341. package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts +3 -0
  342. package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts.map +1 -0
  343. package/dist/src/elements/ia-topnav/assets/img/icon-audio.js +28 -0
  344. package/dist/src/elements/ia-topnav/assets/img/icon-audio.js.map +1 -0
  345. package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts +3 -0
  346. package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts.map +1 -0
  347. package/dist/src/elements/ia-topnav/assets/img/icon-close.js +20 -0
  348. package/dist/src/elements/ia-topnav/assets/img/icon-close.js.map +1 -0
  349. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts +3 -0
  350. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts.map +1 -0
  351. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js +19 -0
  352. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js.map +1 -0
  353. package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts +3 -0
  354. package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts.map +1 -0
  355. package/dist/src/elements/ia-topnav/assets/img/icon-donate.js +18 -0
  356. package/dist/src/elements/ia-topnav/assets/img/icon-donate.js.map +1 -0
  357. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts +3 -0
  358. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts.map +1 -0
  359. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js +19 -0
  360. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js.map +1 -0
  361. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts +3 -0
  362. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts.map +1 -0
  363. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js +30 -0
  364. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js.map +1 -0
  365. package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts +3 -0
  366. package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts.map +1 -0
  367. package/dist/src/elements/ia-topnav/assets/img/icon-images.js +19 -0
  368. package/dist/src/elements/ia-topnav/assets/img/icon-images.js.map +1 -0
  369. package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts +3 -0
  370. package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts.map +1 -0
  371. package/dist/src/elements/ia-topnav/assets/img/icon-search.js +19 -0
  372. package/dist/src/elements/ia-topnav/assets/img/icon-search.js.map +1 -0
  373. package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts +3 -0
  374. package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts.map +1 -0
  375. package/dist/src/elements/ia-topnav/assets/img/icon-software.js +18 -0
  376. package/dist/src/elements/ia-topnav/assets/img/icon-software.js.map +1 -0
  377. package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts +3 -0
  378. package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts.map +1 -0
  379. package/dist/src/elements/ia-topnav/assets/img/icon-texts.js +18 -0
  380. package/dist/src/elements/ia-topnav/assets/img/icon-texts.js.map +1 -0
  381. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts +3 -0
  382. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts.map +1 -0
  383. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js +18 -0
  384. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js.map +1 -0
  385. package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts +3 -0
  386. package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts.map +1 -0
  387. package/dist/src/elements/ia-topnav/assets/img/icon-upload.js +21 -0
  388. package/dist/src/elements/ia-topnav/assets/img/icon-upload.js.map +1 -0
  389. package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts +3 -0
  390. package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts.map +1 -0
  391. package/dist/src/elements/ia-topnav/assets/img/icon-user.js +19 -0
  392. package/dist/src/elements/ia-topnav/assets/img/icon-user.js.map +1 -0
  393. package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts +3 -0
  394. package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts.map +1 -0
  395. package/dist/src/elements/ia-topnav/assets/img/icon-video.js +19 -0
  396. package/dist/src/elements/ia-topnav/assets/img/icon-video.js.map +1 -0
  397. package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts +3 -0
  398. package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts.map +1 -0
  399. package/dist/src/elements/ia-topnav/assets/img/icon-web.js +19 -0
  400. package/dist/src/elements/ia-topnav/assets/img/icon-web.js.map +1 -0
  401. package/dist/src/elements/ia-topnav/assets/img/icon.d.ts +6 -0
  402. package/dist/src/elements/ia-topnav/assets/img/icon.d.ts.map +1 -0
  403. package/dist/src/elements/ia-topnav/assets/img/icon.js +17 -0
  404. package/dist/src/elements/ia-topnav/assets/img/icon.js.map +1 -0
  405. package/dist/src/elements/ia-topnav/assets/img/icons.d.ts +19 -0
  406. package/dist/src/elements/ia-topnav/assets/img/icons.d.ts.map +1 -0
  407. package/dist/src/elements/ia-topnav/assets/img/icons.js +33 -0
  408. package/dist/src/elements/ia-topnav/assets/img/icons.js.map +1 -0
  409. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts +3 -0
  410. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts.map +1 -0
  411. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js +21 -0
  412. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js.map +1 -0
  413. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts +3 -0
  414. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts.map +1 -0
  415. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js +13 -0
  416. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js.map +1 -0
  417. package/dist/src/elements/ia-topnav/data/menus.d.ts +17 -0
  418. package/dist/src/elements/ia-topnav/data/menus.d.ts.map +1 -0
  419. package/dist/src/elements/ia-topnav/data/menus.js +754 -0
  420. package/dist/src/elements/ia-topnav/data/menus.js.map +1 -0
  421. package/dist/src/elements/ia-topnav/dropdown-menu.d.ts +21 -0
  422. package/dist/src/elements/ia-topnav/dropdown-menu.d.ts.map +1 -0
  423. package/dist/src/elements/ia-topnav/dropdown-menu.js +315 -0
  424. package/dist/src/elements/ia-topnav/dropdown-menu.js.map +1 -0
  425. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts +11 -0
  426. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts.map +1 -0
  427. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js +89 -0
  428. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js.map +1 -0
  429. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts +6 -0
  430. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts.map +1 -0
  431. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js +47 -0
  432. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js.map +1 -0
  433. package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts +20 -0
  434. package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts.map +1 -0
  435. package/dist/src/elements/ia-topnav/ia-topnav-login-button.js +183 -0
  436. package/dist/src/elements/ia-topnav/ia-topnav-login-button.js.map +1 -0
  437. package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts +31 -0
  438. package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts.map +1 -0
  439. package/dist/src/elements/ia-topnav/ia-topnav-media-button.js +287 -0
  440. package/dist/src/elements/ia-topnav/ia-topnav-media-button.js.map +1 -0
  441. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts +21 -0
  442. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts.map +1 -0
  443. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js +222 -0
  444. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js.map +1 -0
  445. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts +16 -0
  446. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts.map +1 -0
  447. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js +221 -0
  448. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js.map +1 -0
  449. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts +20 -0
  450. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts.map +1 -0
  451. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js +285 -0
  452. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js.map +1 -0
  453. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts +12 -0
  454. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts.map +1 -0
  455. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js +65 -0
  456. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js.map +1 -0
  457. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts +53 -0
  458. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts.map +1 -0
  459. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js +653 -0
  460. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js.map +1 -0
  461. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts +12 -0
  462. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts.map +1 -0
  463. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js +128 -0
  464. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js.map +1 -0
  465. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts +4 -0
  466. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts.map +1 -0
  467. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js +10 -0
  468. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js.map +1 -0
  469. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts +7 -0
  470. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts.map +1 -0
  471. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js +39 -0
  472. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js.map +1 -0
  473. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts +10 -0
  474. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts.map +1 -0
  475. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js +64 -0
  476. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js.map +1 -0
  477. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts +20 -0
  478. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts.map +1 -0
  479. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js +131 -0
  480. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js.map +1 -0
  481. package/dist/src/elements/ia-topnav/ia-topnav.d.ts +88 -0
  482. package/dist/src/elements/ia-topnav/ia-topnav.d.ts.map +1 -0
  483. package/dist/src/elements/ia-topnav/ia-topnav.js +443 -0
  484. package/dist/src/elements/ia-topnav/ia-topnav.js.map +1 -0
  485. package/dist/src/elements/ia-topnav/lib/helpers.d.ts +13 -0
  486. package/dist/src/elements/ia-topnav/lib/helpers.d.ts.map +1 -0
  487. package/dist/src/elements/ia-topnav/lib/helpers.js +24 -0
  488. package/dist/src/elements/ia-topnav/lib/helpers.js.map +1 -0
  489. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts +46 -0
  490. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts.map +1 -0
  491. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js +136 -0
  492. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js.map +1 -0
  493. package/dist/src/elements/ia-topnav/models.d.ts +65 -0
  494. package/dist/src/elements/ia-topnav/models.d.ts.map +1 -0
  495. package/dist/src/elements/ia-topnav/models.js +10 -0
  496. package/dist/src/elements/ia-topnav/models.js.map +1 -0
  497. package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts +2 -0
  498. package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts.map +1 -0
  499. package/dist/src/elements/ia-topnav/subnav-list-styles.js +49 -0
  500. package/dist/src/elements/ia-topnav/subnav-list-styles.js.map +1 -0
  501. package/dist/src/elements/ia-topnav/tracked-element.d.ts +6 -0
  502. package/dist/src/elements/ia-topnav/tracked-element.d.ts.map +1 -0
  503. package/dist/src/elements/ia-topnav/tracked-element.js +29 -0
  504. package/dist/src/elements/ia-topnav/tracked-element.js.map +1 -0
  505. package/dist/src/elements/ia-transcript-view/ia-transcript-entry.d.ts.map +1 -1
  506. package/dist/src/elements/ia-transcript-view/ia-transcript-entry.js +4 -0
  507. package/dist/src/elements/ia-transcript-view/ia-transcript-entry.js.map +1 -1
  508. package/dist/src/elements/ia-transcript-view/ia-transcript-view.d.ts.map +1 -1
  509. package/dist/src/elements/ia-transcript-view/ia-transcript-view.js +3 -2
  510. package/dist/src/elements/ia-transcript-view/ia-transcript-view.js.map +1 -1
  511. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts +24 -0
  512. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts.map +1 -0
  513. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js +240 -0
  514. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js.map +1 -0
  515. package/dist/src/elements/index.d.ts +63 -0
  516. package/dist/src/elements/index.d.ts.map +1 -1
  517. package/dist/src/elements/index.js +63 -0
  518. package/dist/src/elements/index.js.map +1 -1
  519. package/dist/src/locales/es.d.ts +254 -0
  520. package/dist/src/locales/es.d.ts.map +1 -0
  521. package/dist/src/locales/es.js +304 -0
  522. package/dist/src/locales/es.js.map +1 -0
  523. package/package.json +43 -6
@@ -0,0 +1,586 @@
1
+ import { __decorate } from "tslib";
2
+ import { html, LitElement, } from 'lit';
3
+ import { property, query } from 'lit/decorators.js';
4
+ import { customElement } from '../../util/custom-element.js';
5
+ import { localized, msg } from '@lit/localize';
6
+ import currency from 'currency.js';
7
+ import { LazyLoaderService, } from '@internetarchive/lazy-loader-service';
8
+ import { BraintreeManager } from './braintree/braintree-manager.js';
9
+ import { PaymentClients, } from './braintree/payment-clients.js';
10
+ import { HostedFieldConfiguration } from './braintree/payment-providers/credit-card/hosted-field-configuration.js';
11
+ import { HostedFieldContainer } from './braintree/payment-providers/credit-card/hosted-field-container.js';
12
+ import { PaymentFlowHandlers, } from './flow-handlers/payment-flow-handlers.js';
13
+ import { EditDonationAmountSelectionLayout, EditDonationFrequencySelectionMode, } from './form-elements/ia-donation-edit-donation.js';
14
+ import { calendarIcon, creditCardIcon, lockIcon } from './icons.js';
15
+ import { DonationPaymentInfo, defaultDonationAmounts, defaultSelectedDonationInfo, } from './models/donation-payment-info.js';
16
+ import { DonationType } from './models/donation-type.js';
17
+ import { RecaptchaManager, } from './recaptcha-manager.js';
18
+ import './form-elements/contact-form/ia-donation-contact-form.js';
19
+ import './form-elements/ia-donation-badged-input.js';
20
+ import './ia-donation-form.js';
21
+ /**
22
+ * Wires the donation form to everything around it: Braintree and the payment
23
+ * libraries, the modal manager, recaptcha, and analytics. Give it the
24
+ * environment, tokens and an endpoint manager and it builds the rest.
25
+ *
26
+ * It renders into the light DOM, because Braintree's hosted fields, the
27
+ * PayPal button and recaptcha all refuse to work inside a shadow root. Those
28
+ * are rendered here and slotted into `<ia-donation-form>`.
29
+ */
30
+ let IADonationFormController = class IADonationFormController extends LitElement {
31
+ constructor() {
32
+ super(...arguments);
33
+ this.analyticsCategory = 'DonationForm';
34
+ this.amountOptions = defaultDonationAmounts;
35
+ this.donationInfo = defaultSelectedDonationInfo;
36
+ this.amountSelectionLayout = EditDonationAmountSelectionLayout.MultiLine;
37
+ this.frequencySelectionMode = EditDonationFrequencySelectionMode.Button;
38
+ this.donorEmail = '';
39
+ this.lazyLoaderService = new LazyLoaderService();
40
+ this.recaptchaManagerSetup = false;
41
+ }
42
+ updated(changedProperties) {
43
+ if (changedProperties.has('referrer') && this.referrer) {
44
+ this.braintreeManager?.setReferrer(this.referrer);
45
+ this.logDonationFlowEvent('referrer', this.referrer);
46
+ }
47
+ if (changedProperties.has('loggedInUser') && this.loggedInUser) {
48
+ this.braintreeManager?.setLoggedInUser(this.loggedInUser);
49
+ }
50
+ if (changedProperties.has('origin') && this.origin) {
51
+ this.braintreeManager?.setOrigin(this.origin);
52
+ this.logDonationFlowEvent('origin', this.origin);
53
+ }
54
+ if (changedProperties.has('paymentClients') ||
55
+ changedProperties.has('braintreeAuthToken') ||
56
+ changedProperties.has('endpointManager') ||
57
+ changedProperties.has('environment')) {
58
+ this.setupBraintreeManager();
59
+ this.setupRecaptchaManager();
60
+ }
61
+ if (changedProperties.has('recaptchaSiteKey')) {
62
+ this.setupRecaptchaManager();
63
+ }
64
+ if (changedProperties.has('braintreeManager') ||
65
+ changedProperties.has('recaptchaManager') ||
66
+ changedProperties.has('modalManager') ||
67
+ changedProperties.has('recaptchaElement')) {
68
+ this.setupPaymentFlowHandlers();
69
+ }
70
+ // Build the default clients for the environment, unless the consumer
71
+ // supplied their own
72
+ if ((changedProperties.has('environment') ||
73
+ changedProperties.has('lazyLoaderService')) &&
74
+ this.environment &&
75
+ (this.paymentClients === undefined ||
76
+ this.paymentClients === this.defaultPaymentClients)) {
77
+ this.defaultPaymentClients = new PaymentClients(this.lazyLoaderService, this.environment);
78
+ this.paymentClients = this.defaultPaymentClients;
79
+ }
80
+ }
81
+ /** Developer convenience: show the confirmation step without a payment. */
82
+ async showConfirmationStepDev(options) {
83
+ this.donationForm.showConfirmationModalDev(options);
84
+ }
85
+ /** Developer convenience: show the upsell modal without a payment. */
86
+ async showUpsellModalDev(options) {
87
+ this.donationForm.showUpsellModalDev(options);
88
+ }
89
+ setupBraintreeManager() {
90
+ if (this.braintreeManager === undefined &&
91
+ this.braintreeAuthToken &&
92
+ this.endpointManager &&
93
+ this.paymentClients &&
94
+ this.environment) {
95
+ this.braintreeManager = new BraintreeManager({
96
+ paymentClients: this.paymentClients,
97
+ endpointManager: this.endpointManager,
98
+ authorizationToken: this.braintreeAuthToken,
99
+ venmoProfileId: this.venmoProfileId,
100
+ googlePayMerchantId: this.googlePayMerchantId,
101
+ hostedFieldConfig: this.hostedFieldConfig,
102
+ hostingEnvironment: this.environment,
103
+ referrer: this.referrer,
104
+ loggedInUser: this.loggedInUser,
105
+ origin: this.origin,
106
+ });
107
+ this.braintreeManager.on('paymentProvidersHostedFieldsRetry', (retryNumber) => {
108
+ this.dispatchEvent(new CustomEvent('paymentProvidersHostedFieldsRetry', {
109
+ detail: { retryNumber },
110
+ }));
111
+ });
112
+ this.braintreeManager.on('paymentProvidersHostedFieldsFailed', (error) => {
113
+ this.dispatchEvent(new CustomEvent('paymentProvidersHostedFieldsFailed', {
114
+ detail: { error },
115
+ }));
116
+ });
117
+ }
118
+ }
119
+ async setupRecaptchaManager() {
120
+ if (!this.recaptchaSiteKey ||
121
+ !this.paymentClients ||
122
+ this.recaptchaManagerSetup) {
123
+ return;
124
+ }
125
+ this.recaptchaManagerSetup = true;
126
+ const grecaptchaLibrary = await this.paymentClients.recaptchaLibrary.get();
127
+ this.recaptchaManager = new RecaptchaManager({
128
+ grecaptchaLibrary,
129
+ siteKey: this.recaptchaSiteKey,
130
+ });
131
+ }
132
+ firstUpdated() {
133
+ this.configureFromQueryParams();
134
+ this.trackViewedEvent();
135
+ }
136
+ /**
137
+ * The donate page links carry the starting configuration in the query
138
+ * string: `amt`, `contrib_type`, `coverFees`, `dollarAmounts`,
139
+ * `amountLayout` and `frequencyMode`.
140
+ */
141
+ configureFromQueryParams() {
142
+ const urlParams = new URLSearchParams(window.location.search);
143
+ let amountOptions = this.amountOptions;
144
+ const amountOptionsParam = urlParams.get('dollarAmounts');
145
+ if (amountOptionsParam) {
146
+ // e.g. `[5,10,25]`
147
+ const stripBrackets = amountOptionsParam.slice(1, -1);
148
+ amountOptions = stripBrackets
149
+ .split(',')
150
+ .map((value) => parseFloat(value))
151
+ .filter((value) => !isNaN(value));
152
+ }
153
+ let coverFees = this.donationInfo.coverFees;
154
+ const coverFeesParam = urlParams.get('coverFees');
155
+ if (coverFeesParam) {
156
+ coverFees = coverFeesParam === 'true';
157
+ }
158
+ let frequency = this.donationInfo.donationType;
159
+ const frequencyParam = urlParams.get('contrib_type');
160
+ if (frequencyParam === 'monthly') {
161
+ frequency = DonationType.Monthly;
162
+ }
163
+ let amount = this.donationInfo.amount;
164
+ const amountParam = urlParams.get('amt');
165
+ if (amountParam) {
166
+ const parsedAmount = currency(amountParam).value;
167
+ if (parsedAmount > 0) {
168
+ amount = parsedAmount;
169
+ }
170
+ }
171
+ const amountLayoutParam = urlParams.get('amountLayout');
172
+ if (amountLayoutParam) {
173
+ const amountLayout = amountLayoutParam;
174
+ if (Object.values(EditDonationAmountSelectionLayout).includes(amountLayout)) {
175
+ this.amountSelectionLayout = amountLayout;
176
+ }
177
+ }
178
+ const frequencyModeParam = urlParams.get('frequencyMode');
179
+ if (frequencyModeParam) {
180
+ const frequencyMode = frequencyModeParam;
181
+ if (Object.values(EditDonationFrequencySelectionMode).includes(frequencyMode)) {
182
+ this.frequencySelectionMode = frequencyMode;
183
+ }
184
+ }
185
+ this.amountOptions = amountOptions;
186
+ this.donationInfo = new DonationPaymentInfo({
187
+ donationType: frequency,
188
+ amount,
189
+ coverFees,
190
+ });
191
+ }
192
+ setupPaymentFlowHandlers() {
193
+ if (this.paymentFlowHandlers) {
194
+ return;
195
+ }
196
+ if (!this.braintreeManager ||
197
+ !this.recaptchaManager ||
198
+ !this.modalManager ||
199
+ !this.recaptchaElement) {
200
+ return;
201
+ }
202
+ this.paymentFlowHandlers = new PaymentFlowHandlers({
203
+ braintreeManager: this.braintreeManager,
204
+ modalManager: this.modalManager,
205
+ recaptchaManager: this.recaptchaManager,
206
+ analytics: {
207
+ logEvent: this.logEvent.bind(this),
208
+ logDonationFlowEvent: this.logDonationFlowEvent.bind(this),
209
+ },
210
+ });
211
+ this.donationForm.braintreeManager = this.braintreeManager;
212
+ this.donationForm.paymentFlowHandlers = this.paymentFlowHandlers;
213
+ this.braintreeManager.startup();
214
+ this.paymentFlowHandlers.startup();
215
+ this.recaptchaManager.setup(this.recaptchaElement, 1, 'light', 'image');
216
+ }
217
+ get hostedFieldConfig() {
218
+ const hostedFieldStyle = {
219
+ input: {
220
+ 'font-size': '16px',
221
+ 'font-family': '"Helvetica Neue", Helvetica, Arial, sans-serif',
222
+ 'font-weight': '700',
223
+ color: '#333',
224
+ },
225
+ ':focus': {
226
+ color: '#333',
227
+ },
228
+ '.valid': {},
229
+ '.invalid': {
230
+ color: '#b00b00',
231
+ },
232
+ };
233
+ const hostedFieldFieldOptions = {
234
+ number: {
235
+ selector: '#braintree-creditcard',
236
+ placeholder: msg('Card number'),
237
+ },
238
+ cvv: {
239
+ selector: '#braintree-cvv',
240
+ placeholder: msg('CVC'),
241
+ },
242
+ expirationDate: {
243
+ selector: '#braintree-expiration',
244
+ placeholder: msg('MM / YY'),
245
+ },
246
+ };
247
+ const hostedFieldContainer = new HostedFieldContainer({
248
+ number: this.braintreeNumberInput,
249
+ cvv: this.braintreeCVVInput,
250
+ expirationDate: this.braintreeExpirationDateInput,
251
+ errorContainer: this.braintreeErrorMessage,
252
+ });
253
+ return new HostedFieldConfiguration({
254
+ hostedFieldStyle,
255
+ hostedFieldFieldOptions,
256
+ hostedFieldContainer,
257
+ });
258
+ }
259
+ render() {
260
+ return html `
261
+ <div class="ia-donation-form-controller-container">
262
+ <ia-donation-form
263
+ .braintreeManager=${this.braintreeManager}
264
+ .contactForm=${this.contactForm}
265
+ .amountOptions=${this.amountOptions}
266
+ .donationInfo=${this.donationInfo}
267
+ .amountSelectionLayout=${this.amountSelectionLayout}
268
+ .frequencySelectionMode=${this.frequencySelectionMode}
269
+ @donationInfoChanged=${this.donationInfoChanged}
270
+ @paymentProviderSelected=${this.paymentProviderSelected}
271
+ @paymentFlowStarted=${this.paymentFlowStarted}
272
+ @paymentFlowConfirmed=${this.paymentFlowConfirmed}
273
+ @paymentFlowCancelled=${this.paymentFlowCancelled}
274
+ @paymentFlowError=${this.paymentFlowError}
275
+ >
276
+ <!--
277
+ Braintree's hosted fields, the PayPal button and recaptcha can't
278
+ live in a shadow root, so they render here in the light DOM and
279
+ are slotted into the form. See
280
+ https://github.com/braintree/braintree-web-drop-in/issues/614
281
+ and https://github.com/paypal/paypal-checkout-components/issues/353
282
+ -->
283
+ <div slot="braintree-hosted-fields">
284
+ <div id="braintree-error-message"></div>
285
+ <div class="braintree-row">
286
+ <ia-donation-badged-input
287
+ .icon=${creditCardIcon}
288
+ required
289
+ class="creditcard"
290
+ >
291
+ <div class="braintree-input" id="braintree-creditcard"></div>
292
+ </ia-donation-badged-input>
293
+ </div>
294
+ <div class="braintree-row">
295
+ <ia-donation-badged-input
296
+ .icon=${calendarIcon}
297
+ required
298
+ class="expiration"
299
+ >
300
+ <div class="braintree-input" id="braintree-expiration"></div>
301
+ </ia-donation-badged-input>
302
+ <ia-donation-badged-input .icon=${lockIcon} required class="cvv">
303
+ <div class="braintree-input" id="braintree-cvv"></div>
304
+ </ia-donation-badged-input>
305
+ </div>
306
+ </div>
307
+
308
+ <!-- Autofill doesn't reach into shadow DOM, so the contact form is light DOM too -->
309
+ <div slot="contact-form">
310
+ <ia-donation-contact-form
311
+ .donorEmail=${this.donorEmail}
312
+ ></ia-donation-contact-form>
313
+ </div>
314
+
315
+ <div slot="paypal-button">
316
+ <div id="paypal-button"></div>
317
+ </div>
318
+
319
+ <slot name="recaptcha" slot="recaptcha"></slot>
320
+ </ia-donation-form>
321
+ </div>
322
+
323
+ ${this.getStyles}
324
+ `;
325
+ }
326
+ /** Light DOM, for the payment libraries that can't render into a shadow root */
327
+ createRenderRoot() {
328
+ return this;
329
+ }
330
+ donationInfoChanged(e) {
331
+ this.logEvent('DonationInfoChanged');
332
+ this.donationInfo = e.detail.donationInfo;
333
+ }
334
+ trackViewedEvent() {
335
+ this.logEvent('Viewed');
336
+ }
337
+ paymentProviderSelected(e) {
338
+ const paymentProvider = e.detail.paymentProvider;
339
+ const previousPaymentProvider = e.detail.previousPaymentProvider;
340
+ const providerNoSpaces = this.removeSpaces(paymentProvider ?? 'unset');
341
+ let eventName = `ProviderFirstSelected-${providerNoSpaces}`;
342
+ let previousProviderInfo;
343
+ if (previousPaymentProvider !== undefined) {
344
+ eventName = `ProviderChangedTo-${providerNoSpaces}`;
345
+ previousProviderInfo = `ProviderChangedFrom-${this.removeSpaces(previousPaymentProvider)}`;
346
+ }
347
+ this.logEvent(eventName, previousProviderInfo);
348
+ }
349
+ paymentFlowConfirmed(e) {
350
+ this.logEvent('PaymentFlowConfirmed', this.removeSpaces(e.detail.paymentProvider));
351
+ }
352
+ paymentFlowStarted(e) {
353
+ this.logEvent('PaymentFlowStarted', this.removeSpaces(e.detail.paymentProvider));
354
+ }
355
+ paymentFlowCancelled(e) {
356
+ this.logEvent('PaymentFlowCancelled', this.removeSpaces(e.detail.paymentProvider));
357
+ }
358
+ paymentFlowError(e) {
359
+ const providerNoSpaces = this.removeSpaces(e.detail.paymentProvider);
360
+ this.logEvent('PaymentFlowError', `${providerNoSpaces}-${e.detail.error}`);
361
+ }
362
+ removeSpaces(original) {
363
+ return original.replace(/\s+/g, '');
364
+ }
365
+ /** A sampled event in this form's category */
366
+ logEvent(action, label) {
367
+ const analyticEvent = {
368
+ action,
369
+ label,
370
+ category: this.analyticsCategory,
371
+ };
372
+ this.analyticsHandler?.sendEvent(analyticEvent);
373
+ }
374
+ /** An unsampled event in the `DonationFlow` category */
375
+ logDonationFlowEvent(action, label) {
376
+ const analyticEvent = {
377
+ action,
378
+ label,
379
+ category: 'DonationFlow',
380
+ };
381
+ this.analyticsHandler?.sendEventNoSampling(analyticEvent);
382
+ }
383
+ /**
384
+ * The element renders into the light DOM, so instead of a `styles` block
385
+ * it writes its own `<style>` tag, scoped to its container class.
386
+ *
387
+ * The `--ia-donation-form-*` variables set here are the consumer-facing
388
+ * theming for the whole form; they fan out to the sections, the amount
389
+ * picker and the payment buttons.
390
+ */
391
+ get getStyles() {
392
+ return html `
393
+ <style>
394
+ .ia-donation-form-controller-container {
395
+ --donation-form-controller-base-font-size--: var(
396
+ --ia-donation-form-base-font-size,
397
+ 10px
398
+ );
399
+ color: var(--ia-donation-form-text-color, #333);
400
+ background-color: var(
401
+ --ia-donation-form-background-color,
402
+ transparent
403
+ );
404
+
405
+ --ia-donation-section-background-color: var(
406
+ --ia-donation-form-background-color,
407
+ transparent
408
+ );
409
+ --ia-donation-edit-background-color: var(
410
+ --ia-donation-form-background-color,
411
+ transparent
412
+ );
413
+
414
+ --ia-donation-section-badge-background-color: var(
415
+ --ia-donation-form-badge-background-color,
416
+ #333
417
+ );
418
+ --ia-donation-edit-badge-background-color: var(
419
+ --ia-donation-form-badge-background-color,
420
+ #333
421
+ );
422
+
423
+ --ia-donation-section-badge-font-color: var(
424
+ --ia-donation-form-badge-text-color,
425
+ #fff
426
+ );
427
+ --ia-donation-edit-badge-font-color: var(
428
+ --ia-donation-form-badge-text-color,
429
+ #fff
430
+ );
431
+
432
+ --ia-donation-edit-button-font-color: var(
433
+ --ia-donation-form-payment-option-text-color
434
+ );
435
+ --ia-donation-edit-button-color: var(
436
+ --ia-donation-form-payment-option-background-color
437
+ );
438
+ --ia-donation-edit-button-selected-color: var(
439
+ --ia-donation-form-selected-option-background-color
440
+ );
441
+ --ia-donation-edit-button-selected-font-color: var(
442
+ --ia-donation-form-selected-option-text-color
443
+ );
444
+ }
445
+
446
+ .ia-donation-form-controller-container ia-donation-form:focus {
447
+ outline: none;
448
+ }
449
+
450
+ /* The real PayPal button, kept but nearly invisible under the local one */
451
+ .ia-donation-form-controller-container #paypal-button {
452
+ opacity: 0.001;
453
+ width: calc(var(--donation-form-controller-base-font-size--) * 5);
454
+ height: calc(var(--donation-form-controller-base-font-size--) * 3);
455
+ overflow: hidden;
456
+ }
457
+
458
+ .ia-donation-form-controller-container .braintree-row {
459
+ display: flex;
460
+ margin-top: -1px;
461
+ }
462
+
463
+ .ia-donation-form-controller-container ia-donation-badged-input {
464
+ width: 100%;
465
+ }
466
+
467
+ .ia-donation-form-controller-container ia-donation-badged-input.cvv {
468
+ margin-left: -1px;
469
+ }
470
+
471
+ .ia-donation-form-controller-container .braintree-input {
472
+ width: 100%;
473
+ height: 100%;
474
+ }
475
+
476
+ .ia-donation-form-controller-container #braintree-error-message {
477
+ color: var(--ia-theme-color-danger, #e51c23);
478
+ font-size: calc(
479
+ var(--donation-form-controller-base-font-size--) * 1.4
480
+ );
481
+ margin-bottom: calc(
482
+ var(--donation-form-controller-base-font-size--) * 0.6
483
+ );
484
+ }
485
+
486
+ .ia-donation-form-controller-container
487
+ div[slot='braintree-hosted-fields'] {
488
+ background-color: white;
489
+ }
490
+ </style>
491
+ `;
492
+ }
493
+ };
494
+ __decorate([
495
+ property({ type: String })
496
+ ], IADonationFormController.prototype, "environment", void 0);
497
+ __decorate([
498
+ property({ type: String })
499
+ ], IADonationFormController.prototype, "braintreeAuthToken", void 0);
500
+ __decorate([
501
+ property({ type: String })
502
+ ], IADonationFormController.prototype, "recaptchaSiteKey", void 0);
503
+ __decorate([
504
+ property({ type: String })
505
+ ], IADonationFormController.prototype, "venmoProfileId", void 0);
506
+ __decorate([
507
+ property({ type: String })
508
+ ], IADonationFormController.prototype, "googlePayMerchantId", void 0);
509
+ __decorate([
510
+ property({ type: String })
511
+ ], IADonationFormController.prototype, "analyticsCategory", void 0);
512
+ __decorate([
513
+ property({ type: Array })
514
+ ], IADonationFormController.prototype, "amountOptions", void 0);
515
+ __decorate([
516
+ property({ type: Object })
517
+ ], IADonationFormController.prototype, "donationInfo", void 0);
518
+ __decorate([
519
+ property({ type: String })
520
+ ], IADonationFormController.prototype, "amountSelectionLayout", void 0);
521
+ __decorate([
522
+ property({ type: String })
523
+ ], IADonationFormController.prototype, "frequencySelectionMode", void 0);
524
+ __decorate([
525
+ property({ type: String })
526
+ ], IADonationFormController.prototype, "referrer", void 0);
527
+ __decorate([
528
+ property({ type: String })
529
+ ], IADonationFormController.prototype, "loggedInUser", void 0);
530
+ __decorate([
531
+ property({ type: String })
532
+ ], IADonationFormController.prototype, "origin", void 0);
533
+ __decorate([
534
+ property({ type: String })
535
+ ], IADonationFormController.prototype, "donorEmail", void 0);
536
+ __decorate([
537
+ property({ type: Object })
538
+ ], IADonationFormController.prototype, "endpointManager", void 0);
539
+ __decorate([
540
+ property({ type: Object })
541
+ ], IADonationFormController.prototype, "analyticsHandler", void 0);
542
+ __decorate([
543
+ property({ type: Object })
544
+ ], IADonationFormController.prototype, "modalManager", void 0);
545
+ __decorate([
546
+ property({ type: Object })
547
+ ], IADonationFormController.prototype, "recaptchaElement", void 0);
548
+ __decorate([
549
+ property({ type: Object })
550
+ ], IADonationFormController.prototype, "braintreeManager", void 0);
551
+ __decorate([
552
+ property({ type: Object })
553
+ ], IADonationFormController.prototype, "recaptchaManager", void 0);
554
+ __decorate([
555
+ property({ type: Object })
556
+ ], IADonationFormController.prototype, "paymentFlowHandlers", void 0);
557
+ __decorate([
558
+ property({ type: Object })
559
+ ], IADonationFormController.prototype, "paymentClients", void 0);
560
+ __decorate([
561
+ property({ type: Object })
562
+ ], IADonationFormController.prototype, "lazyLoaderService", void 0);
563
+ __decorate([
564
+ query('ia-donation-form')
565
+ ], IADonationFormController.prototype, "donationForm", void 0);
566
+ __decorate([
567
+ query('#braintree-creditcard')
568
+ ], IADonationFormController.prototype, "braintreeNumberInput", void 0);
569
+ __decorate([
570
+ query('#braintree-cvv')
571
+ ], IADonationFormController.prototype, "braintreeCVVInput", void 0);
572
+ __decorate([
573
+ query('#braintree-expiration')
574
+ ], IADonationFormController.prototype, "braintreeExpirationDateInput", void 0);
575
+ __decorate([
576
+ query('#braintree-error-message')
577
+ ], IADonationFormController.prototype, "braintreeErrorMessage", void 0);
578
+ __decorate([
579
+ query('ia-donation-contact-form')
580
+ ], IADonationFormController.prototype, "contactForm", void 0);
581
+ IADonationFormController = __decorate([
582
+ customElement('ia-donation-form-controller'),
583
+ localized()
584
+ ], IADonationFormController);
585
+ export { IADonationFormController };
586
+ //# sourceMappingURL=ia-donation-form-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ia-donation-form-controller.js","sourceRoot":"","sources":["../../../../src/elements/ia-donation-form/ia-donation-form-controller.ts"],"names":[],"mappings":";AACA,OAAO,EACL,IAAI,EACJ,UAAU,GAGX,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,QAAQ,MAAM,aAAa,CAAC;AACnC,OAAO,EACL,iBAAiB,GAElB,MAAM,sCAAsC,CAAC;AAO9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAMjE,OAAO,EACL,cAAc,GAEf,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sEAAsE,CAAC;AAChH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kEAAkE,CAAC;AACxG,OAAO,EACL,mBAAmB,GAEpB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,iCAAiC,EACjC,kCAAkC,GACnC,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAGtD,OAAO,EACL,gBAAgB,GAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,uDAAuD,CAAC;AAC/D,OAAO,0CAA0C,CAAC;AAClD,OAAO,oBAAoB,CAAC;AAE5B;;;;;;;;GAQG;AAGI,IAAM,wBAAwB,GAA9B,MAAM,wBAAyB,SAAQ,UAAU;IAAjD;;QAWuB,sBAAiB,GAAG,cAAc,CAAC;QAEpC,kBAAa,GAAa,sBAAsB,CAAC;QAEhD,iBAAY,GACtC,2BAA2B,CAAC;QAG9B,0BAAqB,GACnB,iCAAiC,CAAC,SAAS,CAAC;QAG9C,2BAAsB,GACpB,kCAAkC,CAAC,MAAM,CAAC;QAQhB,eAAU,GAAW,EAAE,CAAC;QAyBpD,sBAAiB,GAA+B,IAAI,iBAAiB,EAAE,CAAC;QA4IhE,0BAAqB,GAAG,KAAK,CAAC;IAmbxC,CAAC;IA9iBC,OAAO,CAAC,iBAAiC;QACvC,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvD,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/D,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACnD,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QAED,IACE,iBAAiB,CAAC,GAAG,CAAC,gBAAgB,CAAC;YACvC,iBAAiB,CAAC,GAAG,CAAC,oBAAoB,CAAC;YAC3C,iBAAiB,CAAC,GAAG,CAAC,iBAAiB,CAAC;YACxC,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,EACpC,CAAC;YACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QAED,IAAI,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC;QAED,IACE,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACzC,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACzC,iBAAiB,CAAC,GAAG,CAAC,cAAc,CAAC;YACrC,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,CAAC,EACzC,CAAC;YACD,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAClC,CAAC;QAED,qEAAqE;QACrE,qBAAqB;QACrB,IACE,CAAC,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC;YACnC,iBAAiB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YAC7C,IAAI,CAAC,WAAW;YAChB,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS;gBAChC,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC,qBAAqB,CAAC,EACrD,CAAC;YACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,cAAc,CAC7C,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,WAAW,CACjB,CAAC;YACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAAC;QACnD,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,uBAAuB,CAAC,OAM7B;QACC,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,sEAAsE;IACtE,KAAK,CAAC,kBAAkB,CAAC,OAOxB;QACC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IAEO,qBAAqB;QAC3B,IACE,IAAI,CAAC,gBAAgB,KAAK,SAAS;YACnC,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,WAAW,EAChB,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;gBAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,kBAAkB,EAAE,IAAI,CAAC,WAAW;gBACpC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YAEH,IAAI,CAAC,gBAAgB,CAAC,EAAE,CACtB,mCAAmC,EACnC,CAAC,WAAmB,EAAE,EAAE;gBACtB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,mCAAmC,EAAE;oBACnD,MAAM,EAAE,EAAE,WAAW,EAAE;iBACxB,CAAC,CACH,CAAC;YACJ,CAAC,CACF,CAAC;YAEF,IAAI,CAAC,gBAAgB,CAAC,EAAE,CACtB,oCAAoC,EACpC,CAAC,KAAc,EAAE,EAAE;gBACjB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,oCAAoC,EAAE;oBACpD,MAAM,EAAE,EAAE,KAAK,EAAE;iBAClB,CAAC,CACH,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAIO,KAAK,CAAC,qBAAqB;QACjC,IACE,CAAC,IAAI,CAAC,gBAAgB;YACtB,CAAC,IAAI,CAAC,cAAc;YACpB,IAAI,CAAC,qBAAqB,EAC1B,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAClC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;QAC3E,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;YAC3C,iBAAiB;YACjB,OAAO,EAAE,IAAI,CAAC,gBAAgB;SAC/B,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED;;;;OAIG;IACK,wBAAwB;QAC9B,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE9D,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACvC,MAAM,kBAAkB,GAAG,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1D,IAAI,kBAAkB,EAAE,CAAC;YACvB,mBAAmB;YACnB,MAAM,aAAa,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,aAAa,GAAG,aAAa;iBAC1B,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;iBACjC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;QAC5C,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAClD,IAAI,cAAc,EAAE,CAAC;YACnB,SAAS,GAAG,cAAc,KAAK,MAAM,CAAC;QACxC,CAAC;QAED,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;QAC/C,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACrD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,SAAS,GAAG,YAAY,CAAC,OAAO,CAAC;QACnC,CAAC;QAED,IAAI,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QACtC,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;YACjD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,MAAM,GAAG,YAAY,CAAC;YACxB,CAAC;QACH,CAAC;QAED,MAAM,iBAAiB,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,YAAY,GAChB,iBAAsD,CAAC;YACzD,IACE,MAAM,CAAC,MAAM,CAAC,iCAAiC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EACvE,CAAC;gBACD,IAAI,CAAC,qBAAqB,GAAG,YAAY,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,MAAM,kBAAkB,GAAG,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC1D,IAAI,kBAAkB,EAAE,CAAC;YACvB,MAAM,aAAa,GACjB,kBAAwD,CAAC;YAC3D,IACE,MAAM,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,QAAQ,CACxD,aAAa,CACd,EACD,CAAC;gBACD,IAAI,CAAC,sBAAsB,GAAG,aAAa,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,IAAI,mBAAmB,CAAC;YAC1C,YAAY,EAAE,SAAS;YACvB,MAAM;YACN,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAEO,wBAAwB;QAC9B,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,IACE,CAAC,IAAI,CAAC,gBAAgB;YACtB,CAAC,IAAI,CAAC,gBAAgB;YACtB,CAAC,IAAI,CAAC,YAAY;YAClB,CAAC,IAAI,CAAC,gBAAgB,EACtB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAAC;YACjD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,SAAS,EAAE;gBACT,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;gBAClC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;aAC3D;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAC3D,IAAI,CAAC,YAAY,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAEjE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,IAAY,iBAAiB;QAC3B,MAAM,gBAAgB,GAA2C;YAC/D,KAAK,EAAE;gBACL,WAAW,EAAE,MAAM;gBACnB,aAAa,EAAE,gDAAgD;gBAC/D,aAAa,EAAE,KAAK;gBACpB,KAAK,EAAE,MAAM;aACd;YACD,QAAQ,EAAE;gBACR,KAAK,EAAE,MAAM;aACd;YACD,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE;gBACV,KAAK,EAAE,SAAS;aACjB;SACF,CAAC;QAEF,MAAM,uBAAuB,GAAsC;YACjE,MAAM,EAAE;gBACN,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,GAAG,CAAC,aAAa,CAAC;aAChC;YACD,GAAG,EAAE;gBACH,QAAQ,EAAE,gBAAgB;gBAC1B,WAAW,EAAE,GAAG,CAAC,KAAK,CAAC;aACxB;YACD,cAAc,EAAE;gBACd,QAAQ,EAAE,uBAAuB;gBACjC,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC;aAC5B;SACF,CAAC;QAEF,MAAM,oBAAoB,GAAG,IAAI,oBAAoB,CAAC;YACpD,MAAM,EAAE,IAAI,CAAC,oBAAoB;YACjC,GAAG,EAAE,IAAI,CAAC,iBAAiB;YAC3B,cAAc,EAAE,IAAI,CAAC,4BAA4B;YACjD,cAAc,EAAE,IAAI,CAAC,qBAAqB;SAC3C,CAAC,CAAC;QAEH,OAAO,IAAI,wBAAwB,CAAC;YAClC,gBAAgB;YAChB,uBAAuB;YACvB,oBAAoB;SACrB,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;;8BAGe,IAAI,CAAC,gBAAgB;yBAC1B,IAAI,CAAC,WAAW;2BACd,IAAI,CAAC,aAAa;0BACnB,IAAI,CAAC,YAAY;mCACR,IAAI,CAAC,qBAAqB;oCACzB,IAAI,CAAC,sBAAsB;iCAC9B,IAAI,CAAC,mBAAmB;qCACpB,IAAI,CAAC,uBAAuB;gCACjC,IAAI,CAAC,kBAAkB;kCACrB,IAAI,CAAC,oBAAoB;kCACzB,IAAI,CAAC,oBAAoB;8BAC7B,IAAI,CAAC,gBAAgB;;;;;;;;;;;;;wBAa3B,cAAc;;;;;;;;;wBASd,YAAY;;;;;;gDAMY,QAAQ;;;;;;;;;4BAS5B,IAAI,CAAC,UAAU;;;;;;;;;;;;QAYnC,IAAI,CAAC,SAAS;KACjB,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,gBAAgB;QACd,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,mBAAmB,CAAC,CAAc;QACxC,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;IAC5C,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAEO,uBAAuB,CAAC,CAAc;QAC5C,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,eAEpB,CAAC;QACd,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC,uBAE5B,CAAC;QACd,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,OAAO,CAAC,CAAC;QACvE,IAAI,SAAS,GAAG,yBAAyB,gBAAgB,EAAE,CAAC;QAC5D,IAAI,oBAAwC,CAAC;QAC7C,IAAI,uBAAuB,KAAK,SAAS,EAAE,CAAC;YAC1C,SAAS,GAAG,qBAAqB,gBAAgB,EAAE,CAAC;YACpD,oBAAoB,GAAG,uBAAuB,IAAI,CAAC,YAAY,CAC7D,uBAAuB,CACxB,EAAE,CAAC;QACN,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;IACjD,CAAC;IAEO,oBAAoB,CAAC,CAAc;QACzC,IAAI,CAAC,QAAQ,CACX,sBAAsB,EACtB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAC5C,CAAC;IACJ,CAAC;IAEO,kBAAkB,CAAC,CAAc;QACvC,IAAI,CAAC,QAAQ,CACX,oBAAoB,EACpB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAC5C,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,CAAc;QACzC,IAAI,CAAC,QAAQ,CACX,sBAAsB,EACtB,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAC5C,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,CAAc;QACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACrE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,gBAAgB,IAAI,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC7E,CAAC;IAEO,YAAY,CAAC,QAAgB;QACnC,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,8CAA8C;IACtC,QAAQ,CAAC,MAAc,EAAE,KAAc;QAC7C,MAAM,aAAa,GAAmB;YACpC,MAAM;YACN,KAAK;YACL,QAAQ,EAAE,IAAI,CAAC,iBAAiB;SACjC,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC;IAED,wDAAwD;IAChD,oBAAoB,CAAC,MAAc,EAAE,KAAc;QACzD,MAAM,aAAa,GAAmB;YACpC,MAAM;YACN,KAAK;YACL,QAAQ,EAAE,cAAc;SACzB,CAAC;QACF,IAAI,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;OAOG;IACH,IAAY,SAAS;QACnB,OAAO,IAAI,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmGV,CAAC;IACJ,CAAC;CACF,CAAA;AAvnB6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;6DAAkC;AAEjC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oEAA6B;AAE5B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kEAA2B;AAE1B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gEAAyB;AAExB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qEAA8B;AAE7B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mEAAoC;AAEpC;IAA1B,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;+DAAkD;AAEhD;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DACG;AAG9B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;uEAEmB;AAG9C;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wEAEiB;AAEhB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0DAAmB;AAElB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DAAuB;AAEtB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDAAiB;AAEhB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4DAAyB;AAGpD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iEACyB;AAExB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kEAA8C;AAE7C;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8DAAsC;AAGrC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kEAAgC;AAE/B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kEAA8C;AAE7C;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kEAA8C;AAGzE;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;qEACwB;AAEvB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gEAA0C;AAMrE;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mEAC6C;AAErC;IAAlC,KAAK,CAAC,kBAAkB,CAAC;8DAAuC;AAEzB;IAAvC,KAAK,CAAC,uBAAuB,CAAC;sEAA+C;AAE7C;IAAhC,KAAK,CAAC,gBAAgB,CAAC;mEAA4C;AAG5D;IADP,KAAK,CAAC,uBAAuB,CAAC;8EACuB;AAG9C;IADP,KAAK,CAAC,0BAA0B,CAAC;uEACa;AAGvC;IADP,KAAK,CAAC,0BAA0B,CAAC;6DACU;AAxEjC,wBAAwB;IAFpC,aAAa,CAAC,6BAA6B,CAAC;IAC5C,SAAS,EAAE;GACC,wBAAwB,CAwnBpC","sourcesContent":["import type * as braintree from 'braintree-web';\nimport {\n html,\n LitElement,\n type PropertyValues,\n type TemplateResult,\n} from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { customElement } from '@src/util/custom-element';\nimport { localized, msg } from '@lit/localize';\nimport currency from 'currency.js';\nimport {\n LazyLoaderService,\n type LazyLoaderServiceInterface,\n} from '@internetarchive/lazy-loader-service';\nimport type { ModalManagerInterface } from '@internetarchive/modal-manager';\nimport type {\n AnalyticsEvent,\n AnalyticsManagerInterface,\n} from '@internetarchive/analytics-manager';\n\nimport { BraintreeManager } from './braintree/braintree-manager';\nimport type {\n BraintreeEndpointManagerInterface,\n BraintreeManagerInterface,\n} from './braintree/braintree-manager-interface';\nimport type { HostingEnvironment } from './braintree/hosting-environment';\nimport {\n PaymentClients,\n type PaymentClientsInterface,\n} from './braintree/payment-clients';\nimport { HostedFieldConfiguration } from './braintree/payment-providers/credit-card/hosted-field-configuration';\nimport { HostedFieldContainer } from './braintree/payment-providers/credit-card/hosted-field-container';\nimport {\n PaymentFlowHandlers,\n type PaymentFlowHandlersInterface,\n} from './flow-handlers/payment-flow-handlers';\nimport type { IADonationContactForm } from './form-elements/contact-form/ia-donation-contact-form';\nimport {\n EditDonationAmountSelectionLayout,\n EditDonationFrequencySelectionMode,\n} from './form-elements/ia-donation-edit-donation';\nimport type { IADonationForm } from './ia-donation-form';\nimport { calendarIcon, creditCardIcon, lockIcon } from './icons';\nimport {\n DonationPaymentInfo,\n defaultDonationAmounts,\n defaultSelectedDonationInfo,\n} from './models/donation-payment-info';\nimport { DonationType } from './models/donation-type';\nimport type { PaymentProvider } from './models/payment-provider';\nimport type { UpsellModalCTAMode } from './modals/ia-donation-upsell-modal-content';\nimport {\n RecaptchaManager,\n type RecaptchaManagerInterface,\n} from './recaptcha-manager';\nimport './form-elements/contact-form/ia-donation-contact-form';\nimport './form-elements/ia-donation-badged-input';\nimport './ia-donation-form';\n\n/**\n * Wires the donation form to everything around it: Braintree and the payment\n * libraries, the modal manager, recaptcha, and analytics. Give it the\n * environment, tokens and an endpoint manager and it builds the rest.\n *\n * It renders into the light DOM, because Braintree's hosted fields, the\n * PayPal button and recaptcha all refuse to work inside a shadow root. Those\n * are rendered here and slotted into `<ia-donation-form>`.\n */\n@customElement('ia-donation-form-controller')\n@localized()\nexport class IADonationFormController extends LitElement {\n @property({ type: String }) environment?: HostingEnvironment;\n\n @property({ type: String }) braintreeAuthToken?: string;\n\n @property({ type: String }) recaptchaSiteKey?: string;\n\n @property({ type: String }) venmoProfileId?: string;\n\n @property({ type: String }) googlePayMerchantId?: string;\n\n @property({ type: String }) analyticsCategory = 'DonationForm';\n\n @property({ type: Array }) amountOptions: number[] = defaultDonationAmounts;\n\n @property({ type: Object }) donationInfo: DonationPaymentInfo =\n defaultSelectedDonationInfo;\n\n @property({ type: String })\n amountSelectionLayout: EditDonationAmountSelectionLayout =\n EditDonationAmountSelectionLayout.MultiLine;\n\n @property({ type: String })\n frequencySelectionMode: EditDonationFrequencySelectionMode =\n EditDonationFrequencySelectionMode.Button;\n\n @property({ type: String }) referrer?: string;\n\n @property({ type: String }) loggedInUser?: string;\n\n @property({ type: String }) origin?: string;\n\n @property({ type: String }) donorEmail: string = '';\n\n @property({ type: Object })\n endpointManager?: BraintreeEndpointManagerInterface;\n\n @property({ type: Object }) analyticsHandler?: AnalyticsManagerInterface;\n\n @property({ type: Object }) modalManager?: ModalManagerInterface;\n\n /** The element recaptcha renders its (invisible) widget into. Must be in the light DOM. */\n @property({ type: Object }) recaptchaElement?: HTMLElement;\n\n @property({ type: Object }) braintreeManager?: BraintreeManagerInterface;\n\n @property({ type: Object }) recaptchaManager?: RecaptchaManagerInterface;\n\n @property({ type: Object })\n paymentFlowHandlers?: PaymentFlowHandlersInterface;\n\n @property({ type: Object }) paymentClients?: PaymentClientsInterface;\n\n /** The clients this element built itself, so it knows when it may rebuild them */\n private defaultPaymentClients?: PaymentClientsInterface;\n\n @property({ type: Object })\n lazyLoaderService: LazyLoaderServiceInterface = new LazyLoaderService();\n\n @query('ia-donation-form') private donationForm!: IADonationForm;\n\n @query('#braintree-creditcard') private braintreeNumberInput!: HTMLDivElement;\n\n @query('#braintree-cvv') private braintreeCVVInput!: HTMLDivElement;\n\n @query('#braintree-expiration')\n private braintreeExpirationDateInput!: HTMLDivElement;\n\n @query('#braintree-error-message')\n private braintreeErrorMessage!: HTMLDivElement;\n\n @query('ia-donation-contact-form')\n private contactForm?: IADonationContactForm;\n\n updated(changedProperties: PropertyValues): void {\n if (changedProperties.has('referrer') && this.referrer) {\n this.braintreeManager?.setReferrer(this.referrer);\n this.logDonationFlowEvent('referrer', this.referrer);\n }\n\n if (changedProperties.has('loggedInUser') && this.loggedInUser) {\n this.braintreeManager?.setLoggedInUser(this.loggedInUser);\n }\n\n if (changedProperties.has('origin') && this.origin) {\n this.braintreeManager?.setOrigin(this.origin);\n this.logDonationFlowEvent('origin', this.origin);\n }\n\n if (\n changedProperties.has('paymentClients') ||\n changedProperties.has('braintreeAuthToken') ||\n changedProperties.has('endpointManager') ||\n changedProperties.has('environment')\n ) {\n this.setupBraintreeManager();\n this.setupRecaptchaManager();\n }\n\n if (changedProperties.has('recaptchaSiteKey')) {\n this.setupRecaptchaManager();\n }\n\n if (\n changedProperties.has('braintreeManager') ||\n changedProperties.has('recaptchaManager') ||\n changedProperties.has('modalManager') ||\n changedProperties.has('recaptchaElement')\n ) {\n this.setupPaymentFlowHandlers();\n }\n\n // Build the default clients for the environment, unless the consumer\n // supplied their own\n if (\n (changedProperties.has('environment') ||\n changedProperties.has('lazyLoaderService')) &&\n this.environment &&\n (this.paymentClients === undefined ||\n this.paymentClients === this.defaultPaymentClients)\n ) {\n this.defaultPaymentClients = new PaymentClients(\n this.lazyLoaderService,\n this.environment,\n );\n this.paymentClients = this.defaultPaymentClients;\n }\n }\n\n /** Developer convenience: show the confirmation step without a payment. */\n async showConfirmationStepDev(options: {\n donationType: DonationType;\n amount: number;\n currencyType: string;\n cancelDonationCB: () => void;\n confirmDonationCB: () => void;\n }): Promise<void> {\n this.donationForm.showConfirmationModalDev(options);\n }\n\n /** Developer convenience: show the upsell modal without a payment. */\n async showUpsellModalDev(options: {\n oneTimeAmount: number;\n ctaMode?: UpsellModalCTAMode;\n yesSelected?: (amount: number) => void;\n noSelected?: () => void;\n amountChanged?: (amount: number) => void;\n userClosedModalCallback?: () => void;\n }): Promise<void> {\n this.donationForm.showUpsellModalDev(options);\n }\n\n private setupBraintreeManager(): void {\n if (\n this.braintreeManager === undefined &&\n this.braintreeAuthToken &&\n this.endpointManager &&\n this.paymentClients &&\n this.environment\n ) {\n this.braintreeManager = new BraintreeManager({\n paymentClients: this.paymentClients,\n endpointManager: this.endpointManager,\n authorizationToken: this.braintreeAuthToken,\n venmoProfileId: this.venmoProfileId,\n googlePayMerchantId: this.googlePayMerchantId,\n hostedFieldConfig: this.hostedFieldConfig,\n hostingEnvironment: this.environment,\n referrer: this.referrer,\n loggedInUser: this.loggedInUser,\n origin: this.origin,\n });\n\n this.braintreeManager.on(\n 'paymentProvidersHostedFieldsRetry',\n (retryNumber: number) => {\n this.dispatchEvent(\n new CustomEvent('paymentProvidersHostedFieldsRetry', {\n detail: { retryNumber },\n }),\n );\n },\n );\n\n this.braintreeManager.on(\n 'paymentProvidersHostedFieldsFailed',\n (error: unknown) => {\n this.dispatchEvent(\n new CustomEvent('paymentProvidersHostedFieldsFailed', {\n detail: { error },\n }),\n );\n },\n );\n }\n }\n\n private recaptchaManagerSetup = false;\n\n private async setupRecaptchaManager(): Promise<void> {\n if (\n !this.recaptchaSiteKey ||\n !this.paymentClients ||\n this.recaptchaManagerSetup\n ) {\n return;\n }\n this.recaptchaManagerSetup = true;\n const grecaptchaLibrary = await this.paymentClients.recaptchaLibrary.get();\n this.recaptchaManager = new RecaptchaManager({\n grecaptchaLibrary,\n siteKey: this.recaptchaSiteKey,\n });\n }\n\n firstUpdated(): void {\n this.configureFromQueryParams();\n this.trackViewedEvent();\n }\n\n /**\n * The donate page links carry the starting configuration in the query\n * string: `amt`, `contrib_type`, `coverFees`, `dollarAmounts`,\n * `amountLayout` and `frequencyMode`.\n */\n private configureFromQueryParams(): void {\n const urlParams = new URLSearchParams(window.location.search);\n\n let amountOptions = this.amountOptions;\n const amountOptionsParam = urlParams.get('dollarAmounts');\n if (amountOptionsParam) {\n // e.g. `[5,10,25]`\n const stripBrackets = amountOptionsParam.slice(1, -1);\n amountOptions = stripBrackets\n .split(',')\n .map((value) => parseFloat(value))\n .filter((value) => !isNaN(value));\n }\n\n let coverFees = this.donationInfo.coverFees;\n const coverFeesParam = urlParams.get('coverFees');\n if (coverFeesParam) {\n coverFees = coverFeesParam === 'true';\n }\n\n let frequency = this.donationInfo.donationType;\n const frequencyParam = urlParams.get('contrib_type');\n if (frequencyParam === 'monthly') {\n frequency = DonationType.Monthly;\n }\n\n let amount = this.donationInfo.amount;\n const amountParam = urlParams.get('amt');\n if (amountParam) {\n const parsedAmount = currency(amountParam).value;\n if (parsedAmount > 0) {\n amount = parsedAmount;\n }\n }\n\n const amountLayoutParam = urlParams.get('amountLayout');\n if (amountLayoutParam) {\n const amountLayout =\n amountLayoutParam as EditDonationAmountSelectionLayout;\n if (\n Object.values(EditDonationAmountSelectionLayout).includes(amountLayout)\n ) {\n this.amountSelectionLayout = amountLayout;\n }\n }\n\n const frequencyModeParam = urlParams.get('frequencyMode');\n if (frequencyModeParam) {\n const frequencyMode =\n frequencyModeParam as EditDonationFrequencySelectionMode;\n if (\n Object.values(EditDonationFrequencySelectionMode).includes(\n frequencyMode,\n )\n ) {\n this.frequencySelectionMode = frequencyMode;\n }\n }\n\n this.amountOptions = amountOptions;\n this.donationInfo = new DonationPaymentInfo({\n donationType: frequency,\n amount,\n coverFees,\n });\n }\n\n private setupPaymentFlowHandlers(): void {\n if (this.paymentFlowHandlers) {\n return;\n }\n\n if (\n !this.braintreeManager ||\n !this.recaptchaManager ||\n !this.modalManager ||\n !this.recaptchaElement\n ) {\n return;\n }\n\n this.paymentFlowHandlers = new PaymentFlowHandlers({\n braintreeManager: this.braintreeManager,\n modalManager: this.modalManager,\n recaptchaManager: this.recaptchaManager,\n analytics: {\n logEvent: this.logEvent.bind(this),\n logDonationFlowEvent: this.logDonationFlowEvent.bind(this),\n },\n });\n\n this.donationForm.braintreeManager = this.braintreeManager;\n this.donationForm.paymentFlowHandlers = this.paymentFlowHandlers;\n\n this.braintreeManager.startup();\n this.paymentFlowHandlers.startup();\n this.recaptchaManager.setup(this.recaptchaElement, 1, 'light', 'image');\n }\n\n private get hostedFieldConfig(): HostedFieldConfiguration {\n const hostedFieldStyle: Record<string, Record<string, string>> = {\n input: {\n 'font-size': '16px',\n 'font-family': '\"Helvetica Neue\", Helvetica, Arial, sans-serif',\n 'font-weight': '700',\n color: '#333',\n },\n ':focus': {\n color: '#333',\n },\n '.valid': {},\n '.invalid': {\n color: '#b00b00',\n },\n };\n\n const hostedFieldFieldOptions: braintree.HostedFieldFieldOptions = {\n number: {\n selector: '#braintree-creditcard',\n placeholder: msg('Card number'),\n },\n cvv: {\n selector: '#braintree-cvv',\n placeholder: msg('CVC'),\n },\n expirationDate: {\n selector: '#braintree-expiration',\n placeholder: msg('MM / YY'),\n },\n };\n\n const hostedFieldContainer = new HostedFieldContainer({\n number: this.braintreeNumberInput,\n cvv: this.braintreeCVVInput,\n expirationDate: this.braintreeExpirationDateInput,\n errorContainer: this.braintreeErrorMessage,\n });\n\n return new HostedFieldConfiguration({\n hostedFieldStyle,\n hostedFieldFieldOptions,\n hostedFieldContainer,\n });\n }\n\n render(): TemplateResult {\n return html`\n <div class=\"ia-donation-form-controller-container\">\n <ia-donation-form\n .braintreeManager=${this.braintreeManager}\n .contactForm=${this.contactForm}\n .amountOptions=${this.amountOptions}\n .donationInfo=${this.donationInfo}\n .amountSelectionLayout=${this.amountSelectionLayout}\n .frequencySelectionMode=${this.frequencySelectionMode}\n @donationInfoChanged=${this.donationInfoChanged}\n @paymentProviderSelected=${this.paymentProviderSelected}\n @paymentFlowStarted=${this.paymentFlowStarted}\n @paymentFlowConfirmed=${this.paymentFlowConfirmed}\n @paymentFlowCancelled=${this.paymentFlowCancelled}\n @paymentFlowError=${this.paymentFlowError}\n >\n <!--\n Braintree's hosted fields, the PayPal button and recaptcha can't\n live in a shadow root, so they render here in the light DOM and\n are slotted into the form. See\n https://github.com/braintree/braintree-web-drop-in/issues/614\n and https://github.com/paypal/paypal-checkout-components/issues/353\n -->\n <div slot=\"braintree-hosted-fields\">\n <div id=\"braintree-error-message\"></div>\n <div class=\"braintree-row\">\n <ia-donation-badged-input\n .icon=${creditCardIcon}\n required\n class=\"creditcard\"\n >\n <div class=\"braintree-input\" id=\"braintree-creditcard\"></div>\n </ia-donation-badged-input>\n </div>\n <div class=\"braintree-row\">\n <ia-donation-badged-input\n .icon=${calendarIcon}\n required\n class=\"expiration\"\n >\n <div class=\"braintree-input\" id=\"braintree-expiration\"></div>\n </ia-donation-badged-input>\n <ia-donation-badged-input .icon=${lockIcon} required class=\"cvv\">\n <div class=\"braintree-input\" id=\"braintree-cvv\"></div>\n </ia-donation-badged-input>\n </div>\n </div>\n\n <!-- Autofill doesn't reach into shadow DOM, so the contact form is light DOM too -->\n <div slot=\"contact-form\">\n <ia-donation-contact-form\n .donorEmail=${this.donorEmail}\n ></ia-donation-contact-form>\n </div>\n\n <div slot=\"paypal-button\">\n <div id=\"paypal-button\"></div>\n </div>\n\n <slot name=\"recaptcha\" slot=\"recaptcha\"></slot>\n </ia-donation-form>\n </div>\n\n ${this.getStyles}\n `;\n }\n\n /** Light DOM, for the payment libraries that can't render into a shadow root */\n createRenderRoot(): this {\n return this;\n }\n\n private donationInfoChanged(e: CustomEvent): void {\n this.logEvent('DonationInfoChanged');\n this.donationInfo = e.detail.donationInfo;\n }\n\n private trackViewedEvent(): void {\n this.logEvent('Viewed');\n }\n\n private paymentProviderSelected(e: CustomEvent): void {\n const paymentProvider = e.detail.paymentProvider as\n | PaymentProvider\n | undefined;\n const previousPaymentProvider = e.detail.previousPaymentProvider as\n | PaymentProvider\n | undefined;\n const providerNoSpaces = this.removeSpaces(paymentProvider ?? 'unset');\n let eventName = `ProviderFirstSelected-${providerNoSpaces}`;\n let previousProviderInfo: string | undefined;\n if (previousPaymentProvider !== undefined) {\n eventName = `ProviderChangedTo-${providerNoSpaces}`;\n previousProviderInfo = `ProviderChangedFrom-${this.removeSpaces(\n previousPaymentProvider,\n )}`;\n }\n\n this.logEvent(eventName, previousProviderInfo);\n }\n\n private paymentFlowConfirmed(e: CustomEvent): void {\n this.logEvent(\n 'PaymentFlowConfirmed',\n this.removeSpaces(e.detail.paymentProvider),\n );\n }\n\n private paymentFlowStarted(e: CustomEvent): void {\n this.logEvent(\n 'PaymentFlowStarted',\n this.removeSpaces(e.detail.paymentProvider),\n );\n }\n\n private paymentFlowCancelled(e: CustomEvent): void {\n this.logEvent(\n 'PaymentFlowCancelled',\n this.removeSpaces(e.detail.paymentProvider),\n );\n }\n\n private paymentFlowError(e: CustomEvent): void {\n const providerNoSpaces = this.removeSpaces(e.detail.paymentProvider);\n this.logEvent('PaymentFlowError', `${providerNoSpaces}-${e.detail.error}`);\n }\n\n private removeSpaces(original: string): string {\n return original.replace(/\\s+/g, '');\n }\n\n /** A sampled event in this form's category */\n private logEvent(action: string, label?: string): void {\n const analyticEvent: AnalyticsEvent = {\n action,\n label,\n category: this.analyticsCategory,\n };\n this.analyticsHandler?.sendEvent(analyticEvent);\n }\n\n /** An unsampled event in the `DonationFlow` category */\n private logDonationFlowEvent(action: string, label?: string): void {\n const analyticEvent: AnalyticsEvent = {\n action,\n label,\n category: 'DonationFlow',\n };\n this.analyticsHandler?.sendEventNoSampling(analyticEvent);\n }\n\n /**\n * The element renders into the light DOM, so instead of a `styles` block\n * it writes its own `<style>` tag, scoped to its container class.\n *\n * The `--ia-donation-form-*` variables set here are the consumer-facing\n * theming for the whole form; they fan out to the sections, the amount\n * picker and the payment buttons.\n */\n private get getStyles(): TemplateResult {\n return html`\n <style>\n .ia-donation-form-controller-container {\n --donation-form-controller-base-font-size--: var(\n --ia-donation-form-base-font-size,\n 10px\n );\n color: var(--ia-donation-form-text-color, #333);\n background-color: var(\n --ia-donation-form-background-color,\n transparent\n );\n\n --ia-donation-section-background-color: var(\n --ia-donation-form-background-color,\n transparent\n );\n --ia-donation-edit-background-color: var(\n --ia-donation-form-background-color,\n transparent\n );\n\n --ia-donation-section-badge-background-color: var(\n --ia-donation-form-badge-background-color,\n #333\n );\n --ia-donation-edit-badge-background-color: var(\n --ia-donation-form-badge-background-color,\n #333\n );\n\n --ia-donation-section-badge-font-color: var(\n --ia-donation-form-badge-text-color,\n #fff\n );\n --ia-donation-edit-badge-font-color: var(\n --ia-donation-form-badge-text-color,\n #fff\n );\n\n --ia-donation-edit-button-font-color: var(\n --ia-donation-form-payment-option-text-color\n );\n --ia-donation-edit-button-color: var(\n --ia-donation-form-payment-option-background-color\n );\n --ia-donation-edit-button-selected-color: var(\n --ia-donation-form-selected-option-background-color\n );\n --ia-donation-edit-button-selected-font-color: var(\n --ia-donation-form-selected-option-text-color\n );\n }\n\n .ia-donation-form-controller-container ia-donation-form:focus {\n outline: none;\n }\n\n /* The real PayPal button, kept but nearly invisible under the local one */\n .ia-donation-form-controller-container #paypal-button {\n opacity: 0.001;\n width: calc(var(--donation-form-controller-base-font-size--) * 5);\n height: calc(var(--donation-form-controller-base-font-size--) * 3);\n overflow: hidden;\n }\n\n .ia-donation-form-controller-container .braintree-row {\n display: flex;\n margin-top: -1px;\n }\n\n .ia-donation-form-controller-container ia-donation-badged-input {\n width: 100%;\n }\n\n .ia-donation-form-controller-container ia-donation-badged-input.cvv {\n margin-left: -1px;\n }\n\n .ia-donation-form-controller-container .braintree-input {\n width: 100%;\n height: 100%;\n }\n\n .ia-donation-form-controller-container #braintree-error-message {\n color: var(--ia-theme-color-danger, #e51c23);\n font-size: calc(\n var(--donation-form-controller-base-font-size--) * 1.4\n );\n margin-bottom: calc(\n var(--donation-form-controller-base-font-size--) * 0.6\n );\n }\n\n .ia-donation-form-controller-container\n div[slot='braintree-hosted-fields'] {\n background-color: white;\n }\n </style>\n `;\n }\n}\n"]}