@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.
- package/README.md +34 -1
- package/dist/src/elements/ia-button/ia-button.d.ts.map +1 -1
- package/dist/src/elements/ia-button/ia-button.js +2 -2
- package/dist/src/elements/ia-button/ia-button.js.map +1 -1
- package/dist/src/elements/ia-combo-box/ia-combo-box.d.ts.map +1 -1
- package/dist/src/elements/ia-combo-box/ia-combo-box.js +3 -2
- package/dist/src/elements/ia-combo-box/ia-combo-box.js.map +1 -1
- package/dist/src/elements/ia-donation-form/analytics.d.ts +12 -0
- package/dist/src/elements/ia-donation-form/analytics.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/analytics.js +2 -0
- package/dist/src/elements/ia-donation-form/analytics.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.d.ts +79 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager.d.ts +73 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager.js +126 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/hosting-environment.d.ts +10 -0
- package/dist/src/elements/ia-donation-form/braintree/hosting-environment.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/hosting-environment.js +9 -0
- package/dist/src/elements/ia-donation-form/braintree/hosting-environment.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-clients.d.ts +47 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-clients.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-clients.js +104 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-clients.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.d.ts +11 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts +20 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.d.ts +21 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.js +83 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.d.ts +11 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.js +13 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.d.ts +27 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.js +67 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.d.ts +18 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.d.ts +41 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.js +95 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.d.ts +14 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.js +9 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.d.ts +40 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.js +58 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.d.ts +8 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.d.ts +19 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.js +45 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.d.ts +57 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.js +44 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.d.ts +14 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.d.ts +27 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.js +44 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.d.ts +8 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.d.ts +40 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.js +65 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.d.ts +25 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.js +42 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.d.ts +18 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers.d.ts +42 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers.js +99 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers.js.map +1 -0
- package/dist/src/elements/ia-donation-form/currency-validator.d.ts +16 -0
- package/dist/src/elements/ia-donation-form/currency-validator.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/currency-validator.js +37 -0
- package/dist/src/elements/ia-donation-form/currency-validator.js.map +1 -0
- package/dist/src/elements/ia-donation-form/donation-form-error.d.ts +5 -0
- package/dist/src/elements/ia-donation-form/donation-form-error.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/donation-form-error.js +8 -0
- package/dist/src/elements/ia-donation-form/donation-form-error.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.d.ts +118 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.js +194 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.d.ts +24 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.js +70 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.d.ts +44 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.js +110 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.d.ts +24 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.js +74 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.d.ts +47 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.js +204 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.d.ts +30 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.js +77 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.d.ts +80 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.js +72 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.d.ts +2 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.js +2 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.d.ts +3 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.js +254 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.d.ts +70 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.js +497 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.d.ts +26 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.js +163 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.d.ts +118 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.js +772 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.d.ts +31 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.js +93 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.d.ts +33 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.js +378 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.d.ts +21 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.js +182 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.d.ts +11 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.js +60 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.d.ts +10 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.js +76 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.js.map +1 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form-controller.d.ts +114 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form-controller.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form-controller.js +586 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form-controller.js.map +1 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form.d.ts +94 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form.js +516 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form.js.map +1 -0
- package/dist/src/elements/ia-donation-form/icons/apple-pay.svg +22 -0
- package/dist/src/elements/ia-donation-form/icons/calendar.svg +15 -0
- package/dist/src/elements/ia-donation-form/icons/credit-card.svg +15 -0
- package/dist/src/elements/ia-donation-form/icons/email.svg +3 -0
- package/dist/src/elements/ia-donation-form/icons/google-pay.svg +38 -0
- package/dist/src/elements/ia-donation-form/icons/locale-pin.svg +7 -0
- package/dist/src/elements/ia-donation-form/icons/lock.svg +6 -0
- package/dist/src/elements/ia-donation-form/icons/paypal.svg +39 -0
- package/dist/src/elements/ia-donation-form/icons/user.svg +6 -0
- package/dist/src/elements/ia-donation-form/icons/venmo.svg +9 -0
- package/dist/src/elements/ia-donation-form/icons.d.ts +12 -0
- package/dist/src/elements/ia-donation-form/icons.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/icons.js +33 -0
- package/dist/src/elements/ia-donation-form/icons.js.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.d.ts +27 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.js +196 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.js.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.d.ts +7 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.js +64 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.js.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.d.ts +28 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.js +314 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-payment-info.d.ts +34 -0
- package/dist/src/elements/ia-donation-form/models/donation-payment-info.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-payment-info.js +54 -0
- package/dist/src/elements/ia-donation-form/models/donation-payment-info.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-request.d.ts +62 -0
- package/dist/src/elements/ia-donation-form/models/donation-request.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-request.js +35 -0
- package/dist/src/elements/ia-donation-form/models/donation-request.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-response.d.ts +67 -0
- package/dist/src/elements/ia-donation-form/models/donation-response.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-response.js +57 -0
- package/dist/src/elements/ia-donation-form/models/donation-response.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-type.d.ts +8 -0
- package/dist/src/elements/ia-donation-form/models/donation-type.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-type.js +7 -0
- package/dist/src/elements/ia-donation-form/models/donation-type.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donor-contact-info.d.ts +38 -0
- package/dist/src/elements/ia-donation-form/models/donor-contact-info.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donor-contact-info.js +27 -0
- package/dist/src/elements/ia-donation-form/models/donor-contact-info.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/payment-provider.d.ts +10 -0
- package/dist/src/elements/ia-donation-form/models/payment-provider.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/payment-provider.js +9 -0
- package/dist/src/elements/ia-donation-form/models/payment-provider.js.map +1 -0
- package/dist/src/elements/ia-donation-form/recaptcha-manager.d.ts +36 -0
- package/dist/src/elements/ia-donation-form/recaptcha-manager.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/recaptcha-manager.js +76 -0
- package/dist/src/elements/ia-donation-form/recaptcha-manager.js.map +1 -0
- package/dist/src/elements/ia-dropdown/assets/caret-down.svg +4 -0
- package/dist/src/elements/ia-dropdown/assets/caret-up.svg +4 -0
- package/dist/src/elements/ia-dropdown/ia-dropdown.d.ts +185 -0
- package/dist/src/elements/ia-dropdown/ia-dropdown.d.ts.map +1 -0
- package/dist/src/elements/ia-dropdown/ia-dropdown.js +762 -0
- package/dist/src/elements/ia-dropdown/ia-dropdown.js.map +1 -0
- package/dist/src/elements/ia-dropdown/ia-icon-label.d.ts +10 -0
- package/dist/src/elements/ia-dropdown/ia-icon-label.d.ts.map +1 -0
- package/dist/src/elements/ia-dropdown/ia-icon-label.js +103 -0
- package/dist/src/elements/ia-dropdown/ia-icon-label.js.map +1 -0
- package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.d.ts +3 -3
- package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.d.ts.map +1 -1
- package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.js +5 -6
- package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.js.map +1 -1
- package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.d.ts +4 -4
- package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.d.ts.map +1 -1
- package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.js +5 -8
- package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.js.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-image-viewer.d.ts.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-image-viewer.js +3 -2
- package/dist/src/elements/ia-image-viewer/ia-image-viewer.js.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-imgview-controls.d.ts.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-imgview-controls.js +3 -2
- package/dist/src/elements/ia-image-viewer/ia-imgview-controls.js.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-imgview-slide.d.ts.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-imgview-slide.js +3 -2
- package/dist/src/elements/ia-image-viewer/ia-imgview-slide.js.map +1 -1
- package/dist/src/elements/ia-otp-form/ia-otp-form.d.ts.map +1 -1
- package/dist/src/elements/ia-otp-form/ia-otp-form.js +3 -2
- package/dist/src/elements/ia-otp-form/ia-otp-form.js.map +1 -1
- package/dist/src/elements/ia-playback-controls/ia-playback-controls.d.ts.map +1 -1
- package/dist/src/elements/ia-playback-controls/ia-playback-controls.js +3 -2
- package/dist/src/elements/ia-playback-controls/ia-playback-controls.js.map +1 -1
- package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts.map +1 -1
- package/dist/src/elements/ia-radio-player/ia-radio-player.js +3 -2
- package/dist/src/elements/ia-radio-player/ia-radio-player.js.map +1 -1
- package/dist/src/elements/ia-radio-player/ia-search-results-switcher.d.ts.map +1 -1
- package/dist/src/elements/ia-radio-player/ia-search-results-switcher.js +3 -2
- package/dist/src/elements/ia-radio-player/ia-search-results-switcher.js.map +1 -1
- package/dist/src/elements/ia-reviews/assets/delete-icon.svg +8 -0
- package/dist/src/elements/ia-reviews/assets/star-basic.svg +6 -0
- package/dist/src/elements/ia-reviews/assets/star-selected.svg +8 -0
- package/dist/src/elements/ia-reviews/assets/star-unselected.svg +8 -0
- package/dist/src/elements/ia-reviews/ia-review-form.d.ts +103 -0
- package/dist/src/elements/ia-reviews/ia-review-form.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/ia-review-form.js +685 -0
- package/dist/src/elements/ia-reviews/ia-review-form.js.map +1 -0
- package/dist/src/elements/ia-reviews/ia-review.d.ts +51 -0
- package/dist/src/elements/ia-reviews/ia-review.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/ia-review.js +344 -0
- package/dist/src/elements/ia-reviews/ia-review.js.map +1 -0
- package/dist/src/elements/ia-reviews/ia-reviews.d.ts +68 -0
- package/dist/src/elements/ia-reviews/ia-reviews.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/ia-reviews.js +354 -0
- package/dist/src/elements/ia-reviews/ia-reviews.js.map +1 -0
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.d.ts +23 -0
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.js +37 -0
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.js.map +1 -0
- package/dist/src/elements/ia-reviews/mocks/mock-review-service.d.ts +12 -0
- package/dist/src/elements/ia-reviews/mocks/mock-review-service.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/mocks/mock-review-service.js +19 -0
- package/dist/src/elements/ia-reviews/mocks/mock-review-service.js.map +1 -0
- package/dist/src/elements/ia-reviews/models.d.ts +38 -0
- package/dist/src/elements/ia-reviews/models.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/models.js +2 -0
- package/dist/src/elements/ia-reviews/models.js.map +1 -0
- package/dist/src/elements/ia-reviews/review-service.d.ts +53 -0
- package/dist/src/elements/ia-reviews/review-service.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/review-service.js +97 -0
- package/dist/src/elements/ia-reviews/review-service.js.map +1 -0
- package/dist/src/elements/ia-reviews/utils/collapse-space.d.ts +13 -0
- package/dist/src/elements/ia-reviews/utils/collapse-space.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/utils/collapse-space.js +19 -0
- package/dist/src/elements/ia-reviews/utils/collapse-space.js.map +1 -0
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.d.ts +14 -0
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.js +65 -0
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.js.map +1 -0
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.d.ts +9 -0
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.js +40 -0
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.js.map +1 -0
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.d.ts +9 -0
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.js +29 -0
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.js.map +1 -0
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.d.ts +13 -0
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.js +19 -0
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.js.map +1 -0
- package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.d.ts +2 -2
- package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.d.ts.map +1 -1
- package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.js +4 -5
- package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.js.map +1 -1
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts +3 -3
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts.map +1 -1
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.js +7 -12
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.js.map +1 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.js +28 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-close.js +20 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-close.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.js +18 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js +30 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-images.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-images.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-search.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-search.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-software.js +18 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-software.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.js +18 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js +18 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.js +21 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-user.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-user.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-video.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-video.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-web.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-web.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon.d.ts +6 -0
- package/dist/src/elements/ia-topnav/assets/img/icon.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon.js +17 -0
- package/dist/src/elements/ia-topnav/assets/img/icon.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icons.d.ts +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icons.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icons.js +33 -0
- package/dist/src/elements/ia-topnav/assets/img/icons.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js +21 -0
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js +13 -0
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js.map +1 -0
- package/dist/src/elements/ia-topnav/data/menus.d.ts +17 -0
- package/dist/src/elements/ia-topnav/data/menus.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/data/menus.js +754 -0
- package/dist/src/elements/ia-topnav/data/menus.js.map +1 -0
- package/dist/src/elements/ia-topnav/dropdown-menu.d.ts +21 -0
- package/dist/src/elements/ia-topnav/dropdown-menu.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/dropdown-menu.js +315 -0
- package/dist/src/elements/ia-topnav/dropdown-menu.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts +11 -0
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js +89 -0
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts +6 -0
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js +47 -0
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts +20 -0
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.js +183 -0
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts +31 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.js +287 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts +21 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js +222 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts +16 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js +221 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts +20 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js +285 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts +12 -0
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js +65 -0
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts +53 -0
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js +653 -0
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts +12 -0
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js +128 -0
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts +4 -0
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js +10 -0
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts +7 -0
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js +39 -0
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts +10 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js +64 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts +20 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js +131 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav.d.ts +88 -0
- package/dist/src/elements/ia-topnav/ia-topnav.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav.js +443 -0
- package/dist/src/elements/ia-topnav/ia-topnav.js.map +1 -0
- package/dist/src/elements/ia-topnav/lib/helpers.d.ts +13 -0
- package/dist/src/elements/ia-topnav/lib/helpers.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/lib/helpers.js +24 -0
- package/dist/src/elements/ia-topnav/lib/helpers.js.map +1 -0
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts +46 -0
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js +136 -0
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js.map +1 -0
- package/dist/src/elements/ia-topnav/models.d.ts +65 -0
- package/dist/src/elements/ia-topnav/models.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/models.js +10 -0
- package/dist/src/elements/ia-topnav/models.js.map +1 -0
- package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts +2 -0
- package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/subnav-list-styles.js +49 -0
- package/dist/src/elements/ia-topnav/subnav-list-styles.js.map +1 -0
- package/dist/src/elements/ia-topnav/tracked-element.d.ts +6 -0
- package/dist/src/elements/ia-topnav/tracked-element.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/tracked-element.js +29 -0
- package/dist/src/elements/ia-topnav/tracked-element.js.map +1 -0
- package/dist/src/elements/ia-transcript-view/ia-transcript-entry.d.ts.map +1 -1
- package/dist/src/elements/ia-transcript-view/ia-transcript-entry.js +4 -0
- package/dist/src/elements/ia-transcript-view/ia-transcript-entry.js.map +1 -1
- package/dist/src/elements/ia-transcript-view/ia-transcript-view.d.ts.map +1 -1
- package/dist/src/elements/ia-transcript-view/ia-transcript-view.js +3 -2
- package/dist/src/elements/ia-transcript-view/ia-transcript-view.js.map +1 -1
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts +24 -0
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts.map +1 -0
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js +240 -0
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js.map +1 -0
- package/dist/src/elements/index.d.ts +63 -0
- package/dist/src/elements/index.d.ts.map +1 -1
- package/dist/src/elements/index.js +63 -0
- package/dist/src/elements/index.js.map +1 -1
- package/dist/src/locales/es.d.ts +254 -0
- package/dist/src/locales/es.d.ts.map +1 -0
- package/dist/src/locales/es.js +304 -0
- package/dist/src/locales/es.js.map +1 -0
- package/package.json +43 -6
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { createNanoEvents } from 'nanoevents';
|
|
2
|
+
import { msg } from '@lit/localize';
|
|
3
|
+
import { DonationPaymentInfo } from '../../models/donation-payment-info.js';
|
|
4
|
+
import { DonationType } from '../../models/donation-type.js';
|
|
5
|
+
import { BillingInfo, CustomerInfo } from '../../models/donor-contact-info.js';
|
|
6
|
+
import { PaymentProvider } from '../../models/payment-provider.js';
|
|
7
|
+
import { UpsellModalCTAMode } from '../../modals/ia-donation-upsell-modal-content.js';
|
|
8
|
+
import { DonationFlowModalManager, } from '../donation-flow-modal-manager.js';
|
|
9
|
+
/** The one-time donation's results, kept for the upsell that follows it. */
|
|
10
|
+
class UpsellDataSourceContainer {
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.upsellButtonDataSource = options.upsellButtonDataSource;
|
|
13
|
+
this.oneTimePayload = options.oneTimePayload;
|
|
14
|
+
this.oneTimeSuccessResponse = options.oneTimeSuccessResponse;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/** The PayPal flow: button press, authorization, our confirmation step, submit, upsell. */
|
|
18
|
+
export class PayPalFlowHandler {
|
|
19
|
+
updateDonationInfo(donationInfo) {
|
|
20
|
+
if (this.buttonDataSource) {
|
|
21
|
+
this.buttonDataSource.donationInfo = donationInfo;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
updateUpsellDonationInfo(donationInfo) {
|
|
25
|
+
if (this.upsellButtonDataSourceContainer) {
|
|
26
|
+
this.upsellButtonDataSourceContainer.upsellButtonDataSource.donationInfo =
|
|
27
|
+
donationInfo;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
constructor(options) {
|
|
31
|
+
this.emitter = createNanoEvents();
|
|
32
|
+
this.braintreeManager = options.braintreeManager;
|
|
33
|
+
this.donationFlowModalManager = options.donationFlowModalManager;
|
|
34
|
+
}
|
|
35
|
+
on(event, callback) {
|
|
36
|
+
return this.emitter.on(event, callback);
|
|
37
|
+
}
|
|
38
|
+
async payPalPaymentStarted(dataSource, options) {
|
|
39
|
+
this.emitter.emit('payPalPaymentStarted', dataSource, options);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* PayPal has authorized the payment. The donor confirms the amount in our
|
|
43
|
+
* own step before it's submitted, which leads to `payPalPaymentConfirmed`.
|
|
44
|
+
*/
|
|
45
|
+
async payPalPaymentAuthorized(dataSource, payload) {
|
|
46
|
+
const { donationType, total } = dataSource.donationInfo;
|
|
47
|
+
this.donationFlowModalManager.showConfirmationStepModal({
|
|
48
|
+
donationType,
|
|
49
|
+
amount: total,
|
|
50
|
+
currencyType: 'USD',
|
|
51
|
+
confirmDonationCB: () => {
|
|
52
|
+
this.payPalPaymentConfirmed(dataSource, payload);
|
|
53
|
+
},
|
|
54
|
+
cancelDonationCB: () => {
|
|
55
|
+
this.donationFlowModalManager.closeModal();
|
|
56
|
+
this.payPalPaymentCancelled(dataSource, {});
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
async payPalPaymentConfirmed(dataSource, payload) {
|
|
61
|
+
this.emitter.emit('payPalPaymentConfirmed', dataSource, {});
|
|
62
|
+
this.donationFlowModalManager.showProcessingModal();
|
|
63
|
+
const donationType = dataSource.donationInfo.donationType;
|
|
64
|
+
const details = payload.details;
|
|
65
|
+
const customerInfo = new CustomerInfo({
|
|
66
|
+
email: details?.email,
|
|
67
|
+
firstName: details?.firstName,
|
|
68
|
+
lastName: details?.lastName,
|
|
69
|
+
});
|
|
70
|
+
const shippingAddress = details?.shippingAddress;
|
|
71
|
+
const billingInfo = new BillingInfo({
|
|
72
|
+
streetAddress: shippingAddress?.line1,
|
|
73
|
+
extendedAddress: shippingAddress?.line2,
|
|
74
|
+
locality: shippingAddress?.city,
|
|
75
|
+
region: shippingAddress?.state,
|
|
76
|
+
postalCode: shippingAddress?.postalCode,
|
|
77
|
+
countryCodeAlpha2: shippingAddress?.countryCode,
|
|
78
|
+
});
|
|
79
|
+
const oneTimeTransaction = this.upsellButtonDataSourceContainer?.oneTimeSuccessResponse
|
|
80
|
+
.transaction_id;
|
|
81
|
+
const response = await this.braintreeManager.submitDonation({
|
|
82
|
+
nonce: payload.nonce,
|
|
83
|
+
paymentProvider: PaymentProvider.PayPal,
|
|
84
|
+
donationInfo: dataSource.donationInfo,
|
|
85
|
+
customerInfo,
|
|
86
|
+
billingInfo,
|
|
87
|
+
upsellOnetimeTransactionId: oneTimeTransaction,
|
|
88
|
+
});
|
|
89
|
+
if (!response.success) {
|
|
90
|
+
const error = response.value;
|
|
91
|
+
this.donationFlowModalManager.showErrorModal({ message: error.message });
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const successResponse = response.value;
|
|
95
|
+
switch (donationType) {
|
|
96
|
+
case DonationType.OneTime:
|
|
97
|
+
this.showUpsellModal(payload, successResponse);
|
|
98
|
+
break;
|
|
99
|
+
case DonationType.Monthly:
|
|
100
|
+
this.donationFlowModalManager.showThankYouModal({ successResponse });
|
|
101
|
+
break;
|
|
102
|
+
case DonationType.Upsell:
|
|
103
|
+
if (this.upsellButtonDataSourceContainer) {
|
|
104
|
+
this.donationFlowModalManager.showThankYouModal({
|
|
105
|
+
successResponse: this.upsellButtonDataSourceContainer.oneTimeSuccessResponse,
|
|
106
|
+
upsellSuccessResponse: successResponse,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
// An upsell with no record of the one-time donation it follows
|
|
111
|
+
this.donationFlowModalManager.showErrorModal({
|
|
112
|
+
message: msg('Error setting up monthly donation'),
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
async payPalPaymentCancelled(dataSource, data) {
|
|
119
|
+
this.emitter.emit('payPalPaymentCancelled', dataSource, data);
|
|
120
|
+
}
|
|
121
|
+
async payPalPaymentError(dataSource, error) {
|
|
122
|
+
this.emitter.emit('payPalPaymentError', dataSource, error);
|
|
123
|
+
console.error('PayPalFlowHandler payment error:', dataSource, dataSource.donationInfo, error);
|
|
124
|
+
}
|
|
125
|
+
async renderPayPalButton(donationInfo) {
|
|
126
|
+
const handler = await this.braintreeManager.paymentProviders.paypalHandler.get();
|
|
127
|
+
this.buttonDataSource = await handler.renderPayPalButton({
|
|
128
|
+
selector: '#paypal-button',
|
|
129
|
+
style: {
|
|
130
|
+
color: 'blue',
|
|
131
|
+
label: 'paypal',
|
|
132
|
+
shape: 'rect',
|
|
133
|
+
size: 'medium',
|
|
134
|
+
tagline: false,
|
|
135
|
+
},
|
|
136
|
+
donationInfo,
|
|
137
|
+
});
|
|
138
|
+
if (this.buttonDataSource) {
|
|
139
|
+
this.buttonDataSource.delegate = this;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async showUpsellModal(oneTimePayload, oneTimeSuccessResponse) {
|
|
143
|
+
this.donationFlowModalManager.showUpsellModal({
|
|
144
|
+
oneTimeAmount: oneTimeSuccessResponse.amount,
|
|
145
|
+
amountChanged: this.upsellAmountChanged.bind(this),
|
|
146
|
+
noSelected: () => {
|
|
147
|
+
this.donationFlowModalManager.showThankYouModal({
|
|
148
|
+
successResponse: oneTimeSuccessResponse,
|
|
149
|
+
});
|
|
150
|
+
},
|
|
151
|
+
ctaMode: UpsellModalCTAMode.PayPalUpsellSlot,
|
|
152
|
+
userClosedModalCallback: () => {
|
|
153
|
+
this.donationFlowModalManager.showThankYouModal({
|
|
154
|
+
successResponse: oneTimeSuccessResponse,
|
|
155
|
+
});
|
|
156
|
+
},
|
|
157
|
+
});
|
|
158
|
+
const amount = DonationFlowModalManager.getDefaultUpsellAmount(oneTimeSuccessResponse.amount);
|
|
159
|
+
const upsellDonationInfo = new DonationPaymentInfo({
|
|
160
|
+
amount,
|
|
161
|
+
donationType: DonationType.Upsell,
|
|
162
|
+
coverFees: false,
|
|
163
|
+
});
|
|
164
|
+
if (!this.upsellButtonDataSourceContainer) {
|
|
165
|
+
this.renderUpsellPayPalButton({
|
|
166
|
+
donationInfo: upsellDonationInfo,
|
|
167
|
+
oneTimePayload,
|
|
168
|
+
oneTimeSuccessResponse,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
upsellAmountChanged(amount) {
|
|
173
|
+
if (this.upsellButtonDataSourceContainer) {
|
|
174
|
+
this.upsellButtonDataSourceContainer.upsellButtonDataSource.donationInfo.amount =
|
|
175
|
+
amount;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
async renderUpsellPayPalButton(options) {
|
|
179
|
+
const handler = await this.braintreeManager.paymentProviders.paypalHandler.get();
|
|
180
|
+
const upsellButtonDataSource = await handler.renderPayPalButton({
|
|
181
|
+
selector: '#paypal-upsell-button',
|
|
182
|
+
style: {
|
|
183
|
+
color: 'blue',
|
|
184
|
+
label: 'paypal',
|
|
185
|
+
shape: 'rect',
|
|
186
|
+
size: 'responsive',
|
|
187
|
+
tagline: false,
|
|
188
|
+
},
|
|
189
|
+
donationInfo: options.donationInfo,
|
|
190
|
+
});
|
|
191
|
+
if (upsellButtonDataSource) {
|
|
192
|
+
upsellButtonDataSource.delegate = this;
|
|
193
|
+
this.upsellButtonDataSourceContainer = new UpsellDataSourceContainer({
|
|
194
|
+
upsellButtonDataSource,
|
|
195
|
+
oneTimePayload: options.oneTimePayload,
|
|
196
|
+
oneTimeSuccessResponse: options.oneTimeSuccessResponse,
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
console.error('error rendering paypal upsell button');
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=paypal-flow-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paypal-flow-handler.js","sourceRoot":"","sources":["../../../../../../src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import type * as paypal from 'paypal-checkout-components';\nimport { createNanoEvents, type Emitter, type Unsubscribe } from 'nanoevents';\nimport { msg } from '@lit/localize';\n\nimport type { BraintreeManagerInterface } from '../../braintree/braintree-manager-interface';\nimport type {\n PayPalButtonDataSourceDelegate,\n PayPalButtonDataSourceInterface,\n} from '../../braintree/payment-providers/paypal/paypal-button-datasource';\nimport { DonationPaymentInfo } from '../../models/donation-payment-info';\nimport type {\n DonationResponse,\n ErrorResponse,\n SuccessResponse,\n} from '../../models/donation-response';\nimport { DonationType } from '../../models/donation-type';\nimport { BillingInfo, CustomerInfo } from '../../models/donor-contact-info';\nimport { PaymentProvider } from '../../models/payment-provider';\nimport { UpsellModalCTAMode } from '../../modals/ia-donation-upsell-modal-content';\nimport {\n DonationFlowModalManager,\n type DonationFlowModalManagerInterface,\n} from '../donation-flow-modal-manager';\n\nexport interface PayPalFlowHandlerInterface {\n updateDonationInfo(donationInfo: DonationPaymentInfo): void;\n updateUpsellDonationInfo(donationInfo: DonationPaymentInfo): void;\n renderPayPalButton(donationInfo: DonationPaymentInfo): Promise<void>;\n on<E extends keyof PayPalFlowHandlerEvents>(\n event: E,\n callback: PayPalFlowHandlerEvents[E],\n ): Unsubscribe;\n}\n\n/** The one-time donation's results, kept for the upsell that follows it. */\nclass UpsellDataSourceContainer {\n upsellButtonDataSource: PayPalButtonDataSourceInterface;\n oneTimePayload: paypal.TokenizePayload;\n oneTimeSuccessResponse: SuccessResponse;\n\n constructor(options: {\n upsellButtonDataSource: PayPalButtonDataSourceInterface;\n oneTimePayload: paypal.TokenizePayload;\n oneTimeSuccessResponse: SuccessResponse;\n }) {\n this.upsellButtonDataSource = options.upsellButtonDataSource;\n this.oneTimePayload = options.oneTimePayload;\n this.oneTimeSuccessResponse = options.oneTimeSuccessResponse;\n }\n}\n\nexport interface PayPalFlowHandlerEvents {\n payPalPaymentStarted: (\n dataSource: PayPalButtonDataSourceInterface,\n options: object,\n ) => void;\n payPalPaymentCancelled: (\n dataSource: PayPalButtonDataSourceInterface,\n data: object,\n ) => void;\n payPalPaymentError: (\n dataSource: PayPalButtonDataSourceInterface,\n error: string,\n ) => void;\n payPalPaymentConfirmed: (\n dataSource: PayPalButtonDataSourceInterface,\n data: object,\n ) => void;\n}\n\n/** The PayPal flow: button press, authorization, our confirmation step, submit, upsell. */\nexport class PayPalFlowHandler\n implements PayPalFlowHandlerInterface, PayPalButtonDataSourceDelegate\n{\n private upsellButtonDataSourceContainer?: UpsellDataSourceContainer;\n\n private buttonDataSource?: PayPalButtonDataSourceInterface;\n\n private donationFlowModalManager: DonationFlowModalManagerInterface;\n\n private braintreeManager: BraintreeManagerInterface;\n\n private emitter: Emitter<PayPalFlowHandlerEvents> =\n createNanoEvents<PayPalFlowHandlerEvents>();\n\n updateDonationInfo(donationInfo: DonationPaymentInfo): void {\n if (this.buttonDataSource) {\n this.buttonDataSource.donationInfo = donationInfo;\n }\n }\n\n updateUpsellDonationInfo(donationInfo: DonationPaymentInfo): void {\n if (this.upsellButtonDataSourceContainer) {\n this.upsellButtonDataSourceContainer.upsellButtonDataSource.donationInfo =\n donationInfo;\n }\n }\n\n constructor(options: {\n braintreeManager: BraintreeManagerInterface;\n donationFlowModalManager: DonationFlowModalManagerInterface;\n }) {\n this.braintreeManager = options.braintreeManager;\n this.donationFlowModalManager = options.donationFlowModalManager;\n }\n\n on<E extends keyof PayPalFlowHandlerEvents>(\n event: E,\n callback: PayPalFlowHandlerEvents[E],\n ): Unsubscribe {\n return this.emitter.on(event, callback);\n }\n\n async payPalPaymentStarted(\n dataSource: PayPalButtonDataSourceInterface,\n options: object,\n ): Promise<void> {\n this.emitter.emit('payPalPaymentStarted', dataSource, options);\n }\n\n /**\n * PayPal has authorized the payment. The donor confirms the amount in our\n * own step before it's submitted, which leads to `payPalPaymentConfirmed`.\n */\n async payPalPaymentAuthorized(\n dataSource: PayPalButtonDataSourceInterface,\n payload: paypal.TokenizePayload,\n ): Promise<void> {\n const { donationType, total } = dataSource.donationInfo;\n this.donationFlowModalManager.showConfirmationStepModal({\n donationType,\n amount: total,\n currencyType: 'USD',\n confirmDonationCB: () => {\n this.payPalPaymentConfirmed(dataSource, payload);\n },\n cancelDonationCB: () => {\n this.donationFlowModalManager.closeModal();\n this.payPalPaymentCancelled(dataSource, {});\n },\n });\n }\n\n async payPalPaymentConfirmed(\n dataSource: PayPalButtonDataSourceInterface,\n payload: paypal.TokenizePayload,\n ): Promise<void> {\n this.emitter.emit('payPalPaymentConfirmed', dataSource, {});\n this.donationFlowModalManager.showProcessingModal();\n\n const donationType = dataSource.donationInfo.donationType;\n\n const details = payload.details;\n\n const customerInfo = new CustomerInfo({\n email: details?.email,\n firstName: details?.firstName,\n lastName: details?.lastName,\n });\n\n const shippingAddress = details?.shippingAddress;\n\n const billingInfo = new BillingInfo({\n streetAddress: shippingAddress?.line1,\n extendedAddress: shippingAddress?.line2,\n locality: shippingAddress?.city,\n region: shippingAddress?.state,\n postalCode: shippingAddress?.postalCode,\n countryCodeAlpha2: shippingAddress?.countryCode,\n });\n\n const oneTimeTransaction =\n this.upsellButtonDataSourceContainer?.oneTimeSuccessResponse\n .transaction_id;\n\n const response: DonationResponse =\n await this.braintreeManager.submitDonation({\n nonce: payload.nonce,\n paymentProvider: PaymentProvider.PayPal,\n donationInfo: dataSource.donationInfo,\n customerInfo,\n billingInfo,\n upsellOnetimeTransactionId: oneTimeTransaction,\n });\n\n if (!response.success) {\n const error = response.value as ErrorResponse;\n this.donationFlowModalManager.showErrorModal({ message: error.message });\n return;\n }\n\n const successResponse = response.value as SuccessResponse;\n\n switch (donationType) {\n case DonationType.OneTime:\n this.showUpsellModal(payload, successResponse);\n break;\n case DonationType.Monthly:\n this.donationFlowModalManager.showThankYouModal({ successResponse });\n break;\n case DonationType.Upsell:\n if (this.upsellButtonDataSourceContainer) {\n this.donationFlowModalManager.showThankYouModal({\n successResponse:\n this.upsellButtonDataSourceContainer.oneTimeSuccessResponse,\n upsellSuccessResponse: successResponse,\n });\n } else {\n // An upsell with no record of the one-time donation it follows\n this.donationFlowModalManager.showErrorModal({\n message: msg('Error setting up monthly donation'),\n });\n }\n break;\n }\n }\n\n async payPalPaymentCancelled(\n dataSource: PayPalButtonDataSourceInterface,\n data: object,\n ): Promise<void> {\n this.emitter.emit('payPalPaymentCancelled', dataSource, data);\n }\n\n async payPalPaymentError(\n dataSource: PayPalButtonDataSourceInterface,\n error: string,\n ): Promise<void> {\n this.emitter.emit('payPalPaymentError', dataSource, error);\n console.error(\n 'PayPalFlowHandler payment error:',\n dataSource,\n dataSource.donationInfo,\n error,\n );\n }\n\n async renderPayPalButton(donationInfo: DonationPaymentInfo): Promise<void> {\n const handler =\n await this.braintreeManager.paymentProviders.paypalHandler.get();\n\n this.buttonDataSource = await handler.renderPayPalButton({\n selector: '#paypal-button',\n style: {\n color: 'blue' as paypal.ButtonColorOption,\n label: 'paypal' as paypal.ButtonLabelOption,\n shape: 'rect' as paypal.ButtonShapeOption,\n size: 'medium' as paypal.ButtonSizeOption,\n tagline: false,\n },\n donationInfo,\n });\n\n if (this.buttonDataSource) {\n this.buttonDataSource.delegate = this;\n }\n }\n\n private async showUpsellModal(\n oneTimePayload: paypal.TokenizePayload,\n oneTimeSuccessResponse: SuccessResponse,\n ): Promise<void> {\n this.donationFlowModalManager.showUpsellModal({\n oneTimeAmount: oneTimeSuccessResponse.amount,\n amountChanged: this.upsellAmountChanged.bind(this),\n noSelected: () => {\n this.donationFlowModalManager.showThankYouModal({\n successResponse: oneTimeSuccessResponse,\n });\n },\n ctaMode: UpsellModalCTAMode.PayPalUpsellSlot,\n userClosedModalCallback: () => {\n this.donationFlowModalManager.showThankYouModal({\n successResponse: oneTimeSuccessResponse,\n });\n },\n });\n\n const amount = DonationFlowModalManager.getDefaultUpsellAmount(\n oneTimeSuccessResponse.amount,\n );\n\n const upsellDonationInfo = new DonationPaymentInfo({\n amount,\n donationType: DonationType.Upsell,\n coverFees: false,\n });\n\n if (!this.upsellButtonDataSourceContainer) {\n this.renderUpsellPayPalButton({\n donationInfo: upsellDonationInfo,\n oneTimePayload,\n oneTimeSuccessResponse,\n });\n }\n }\n\n private upsellAmountChanged(amount: number): void {\n if (this.upsellButtonDataSourceContainer) {\n this.upsellButtonDataSourceContainer.upsellButtonDataSource.donationInfo.amount =\n amount;\n }\n }\n\n private async renderUpsellPayPalButton(options: {\n donationInfo: DonationPaymentInfo;\n oneTimePayload: paypal.TokenizePayload;\n oneTimeSuccessResponse: SuccessResponse;\n }): Promise<void> {\n const handler =\n await this.braintreeManager.paymentProviders.paypalHandler.get();\n\n const upsellButtonDataSource = await handler.renderPayPalButton({\n selector: '#paypal-upsell-button',\n style: {\n color: 'blue' as paypal.ButtonColorOption,\n label: 'paypal' as paypal.ButtonLabelOption,\n shape: 'rect' as paypal.ButtonShapeOption,\n size: 'responsive' as paypal.ButtonSizeOption,\n tagline: false,\n },\n donationInfo: options.donationInfo,\n });\n\n if (upsellButtonDataSource) {\n upsellButtonDataSource.delegate = this;\n this.upsellButtonDataSourceContainer = new UpsellDataSourceContainer({\n upsellButtonDataSource,\n oneTimePayload: options.oneTimePayload,\n oneTimeSuccessResponse: options.oneTimeSuccessResponse,\n });\n } else {\n console.error('error rendering paypal upsell button');\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { BraintreeManagerInterface } from '../../braintree/braintree-manager-interface.js';
|
|
2
|
+
import { type VenmoRestorationStateHandlerInterface } from '../../braintree/payment-providers/venmo/venmo-restoration-state-handler.js';
|
|
3
|
+
import type { DonationPaymentInfo } from '../../models/donation-payment-info.js';
|
|
4
|
+
import type { DonorContactInfo } from '../../models/donor-contact-info.js';
|
|
5
|
+
import type { DonationFlowModalManagerInterface } from '../donation-flow-modal-manager.js';
|
|
6
|
+
export interface VenmoFlowHandlerInterface {
|
|
7
|
+
startup(): Promise<void>;
|
|
8
|
+
paymentInitiated(contactInfo: DonorContactInfo, donationInfo: DonationPaymentInfo): Promise<void>;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The Venmo flow. Venmo sends the donor to its app and back, possibly in a
|
|
12
|
+
* new tab, so the donation info is stashed before leaving and restored on
|
|
13
|
+
* startup if a tokenization result is waiting.
|
|
14
|
+
*/
|
|
15
|
+
export declare class VenmoFlowHandler implements VenmoFlowHandlerInterface {
|
|
16
|
+
private donationFlowModalManager;
|
|
17
|
+
private braintreeManager;
|
|
18
|
+
private restorationStateHandler;
|
|
19
|
+
constructor(options: {
|
|
20
|
+
braintreeManager: BraintreeManagerInterface;
|
|
21
|
+
donationFlowModalManager: DonationFlowModalManagerInterface;
|
|
22
|
+
restorationStateHandler?: VenmoRestorationStateHandlerInterface;
|
|
23
|
+
});
|
|
24
|
+
/** Resume a Venmo payment if the app redirected back to us with a result. */
|
|
25
|
+
startup(): Promise<void>;
|
|
26
|
+
paymentInitiated(contactInfo: DonorContactInfo, donationInfo: DonationPaymentInfo): Promise<void>;
|
|
27
|
+
private handleTokenizationResult;
|
|
28
|
+
private handleTokenizationError;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=venmo-flow-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"venmo-flow-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AAC7F,OAAO,EAEL,KAAK,qCAAqC,EAC3C,MAAM,yEAAyE,CAAC;AACjF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAExE,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,gCAAgC,CAAC;AAExF,MAAM,WAAW,yBAAyB;IACxC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,gBAAgB,CACd,WAAW,EAAE,gBAAgB,EAC7B,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,OAAO,CAAC,wBAAwB,CAAoC;IAEpE,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,OAAO,CAAC,uBAAuB,CAAwC;gBAE3D,OAAO,EAAE;QACnB,gBAAgB,EAAE,yBAAyB,CAAC;QAC5C,wBAAwB,EAAE,iCAAiC,CAAC;QAC5D,uBAAuB,CAAC,EAAE,qCAAqC,CAAC;KACjE;IAOD,6EAA6E;IACvE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBxB,gBAAgB,CACpB,WAAW,EAAE,gBAAgB,EAC7B,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,IAAI,CAAC;YA2BF,wBAAwB;IAgBtC,OAAO,CAAC,uBAAuB;CAYhC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { msg } from '@lit/localize';
|
|
2
|
+
import { VenmoRestorationStateHandler, } from '../../braintree/payment-providers/venmo/venmo-restoration-state-handler.js';
|
|
3
|
+
import { PaymentProvider } from '../../models/payment-provider.js';
|
|
4
|
+
/**
|
|
5
|
+
* The Venmo flow. Venmo sends the donor to its app and back, possibly in a
|
|
6
|
+
* new tab, so the donation info is stashed before leaving and restored on
|
|
7
|
+
* startup if a tokenization result is waiting.
|
|
8
|
+
*/
|
|
9
|
+
export class VenmoFlowHandler {
|
|
10
|
+
constructor(options) {
|
|
11
|
+
this.braintreeManager = options.braintreeManager;
|
|
12
|
+
this.donationFlowModalManager = options.donationFlowModalManager;
|
|
13
|
+
this.restorationStateHandler =
|
|
14
|
+
options.restorationStateHandler ?? new VenmoRestorationStateHandler();
|
|
15
|
+
}
|
|
16
|
+
/** Resume a Venmo payment if the app redirected back to us with a result. */
|
|
17
|
+
async startup() {
|
|
18
|
+
const handler = await this.braintreeManager.paymentProviders.venmoHandler.get();
|
|
19
|
+
const instance = await handler?.instance.get();
|
|
20
|
+
if (instance?.hasTokenizationResult()) {
|
|
21
|
+
const restoredInfo = await this.restorationStateHandler.getRestorationState();
|
|
22
|
+
if (restoredInfo) {
|
|
23
|
+
this.paymentInitiated(restoredInfo.contactInfo, restoredInfo.donationInfo);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
console.error('no restoration info');
|
|
27
|
+
this.donationFlowModalManager.showErrorModal({
|
|
28
|
+
message: msg('Error restoring donation session'),
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async paymentInitiated(contactInfo, donationInfo) {
|
|
34
|
+
// Stashed in case Venmo brings the donor back in a new tab
|
|
35
|
+
this.restorationStateHandler.persistState(contactInfo, donationInfo);
|
|
36
|
+
try {
|
|
37
|
+
const handler = await this.braintreeManager.paymentProviders.venmoHandler.get();
|
|
38
|
+
const result = await handler?.startPayment();
|
|
39
|
+
if (!result) {
|
|
40
|
+
this.restorationStateHandler.clearState();
|
|
41
|
+
this.donationFlowModalManager.showErrorModal({
|
|
42
|
+
message: msg('Error setting up the donation'),
|
|
43
|
+
});
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.handleTokenizationResult(result, contactInfo, donationInfo);
|
|
47
|
+
}
|
|
48
|
+
catch (tokenizeError) {
|
|
49
|
+
this.restorationStateHandler.clearState();
|
|
50
|
+
this.handleTokenizationError(tokenizeError);
|
|
51
|
+
this.donationFlowModalManager.showErrorModal({
|
|
52
|
+
message: msg('There was a problem loading your donation information. Please try again.'),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async handleTokenizationResult(payload, contactInfo, donationInfo) {
|
|
57
|
+
this.restorationStateHandler.clearState();
|
|
58
|
+
this.donationFlowModalManager.startDonationSubmissionFlow({
|
|
59
|
+
nonce: payload.nonce,
|
|
60
|
+
paymentProvider: PaymentProvider.Venmo,
|
|
61
|
+
donationInfo,
|
|
62
|
+
customerInfo: contactInfo.customer,
|
|
63
|
+
billingInfo: contactInfo.billing,
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
handleTokenizationError(tokenizeError) {
|
|
67
|
+
switch (tokenizeError.code) {
|
|
68
|
+
// The donor backed out, nothing to report
|
|
69
|
+
case 'VENMO_APP_CANCELED':
|
|
70
|
+
case 'VENMO_CANCELED':
|
|
71
|
+
break;
|
|
72
|
+
default:
|
|
73
|
+
console.error('Venmo tokenization error', tokenizeError);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=venmo-flow-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"venmo-flow-handler.js","sourceRoot":"","sources":["../../../../../../src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.ts"],"names":[],"mappings":"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","sourcesContent":["import type * as braintree from 'braintree-web';\nimport { msg } from '@lit/localize';\n\nimport type { BraintreeManagerInterface } from '../../braintree/braintree-manager-interface';\nimport {\n VenmoRestorationStateHandler,\n type VenmoRestorationStateHandlerInterface,\n} from '../../braintree/payment-providers/venmo/venmo-restoration-state-handler';\nimport type { DonationPaymentInfo } from '../../models/donation-payment-info';\nimport type { DonorContactInfo } from '../../models/donor-contact-info';\nimport { PaymentProvider } from '../../models/payment-provider';\nimport type { DonationFlowModalManagerInterface } from '../donation-flow-modal-manager';\n\nexport interface VenmoFlowHandlerInterface {\n startup(): Promise<void>;\n paymentInitiated(\n contactInfo: DonorContactInfo,\n donationInfo: DonationPaymentInfo,\n ): Promise<void>;\n}\n\n/**\n * The Venmo flow. Venmo sends the donor to its app and back, possibly in a\n * new tab, so the donation info is stashed before leaving and restored on\n * startup if a tokenization result is waiting.\n */\nexport class VenmoFlowHandler implements VenmoFlowHandlerInterface {\n private donationFlowModalManager: DonationFlowModalManagerInterface;\n\n private braintreeManager: BraintreeManagerInterface;\n\n private restorationStateHandler: VenmoRestorationStateHandlerInterface;\n\n constructor(options: {\n braintreeManager: BraintreeManagerInterface;\n donationFlowModalManager: DonationFlowModalManagerInterface;\n restorationStateHandler?: VenmoRestorationStateHandlerInterface;\n }) {\n this.braintreeManager = options.braintreeManager;\n this.donationFlowModalManager = options.donationFlowModalManager;\n this.restorationStateHandler =\n options.restorationStateHandler ?? new VenmoRestorationStateHandler();\n }\n\n /** Resume a Venmo payment if the app redirected back to us with a result. */\n async startup(): Promise<void> {\n const handler =\n await this.braintreeManager.paymentProviders.venmoHandler.get();\n const instance = await handler?.instance.get();\n if (instance?.hasTokenizationResult()) {\n const restoredInfo =\n await this.restorationStateHandler.getRestorationState();\n if (restoredInfo) {\n this.paymentInitiated(\n restoredInfo.contactInfo,\n restoredInfo.donationInfo,\n );\n } else {\n console.error('no restoration info');\n this.donationFlowModalManager.showErrorModal({\n message: msg('Error restoring donation session'),\n });\n }\n }\n }\n\n async paymentInitiated(\n contactInfo: DonorContactInfo,\n donationInfo: DonationPaymentInfo,\n ): Promise<void> {\n // Stashed in case Venmo brings the donor back in a new tab\n this.restorationStateHandler.persistState(contactInfo, donationInfo);\n\n try {\n const handler =\n await this.braintreeManager.paymentProviders.venmoHandler.get();\n const result = await handler?.startPayment();\n if (!result) {\n this.restorationStateHandler.clearState();\n this.donationFlowModalManager.showErrorModal({\n message: msg('Error setting up the donation'),\n });\n return;\n }\n this.handleTokenizationResult(result, contactInfo, donationInfo);\n } catch (tokenizeError) {\n this.restorationStateHandler.clearState();\n this.handleTokenizationError(tokenizeError as braintree.BraintreeError);\n this.donationFlowModalManager.showErrorModal({\n message: msg(\n 'There was a problem loading your donation information. Please try again.',\n ),\n });\n }\n }\n\n private async handleTokenizationResult(\n payload: braintree.VenmoTokenizePayload,\n contactInfo: DonorContactInfo,\n donationInfo: DonationPaymentInfo,\n ): Promise<void> {\n this.restorationStateHandler.clearState();\n\n this.donationFlowModalManager.startDonationSubmissionFlow({\n nonce: payload.nonce,\n paymentProvider: PaymentProvider.Venmo,\n donationInfo,\n customerInfo: contactInfo.customer,\n billingInfo: contactInfo.billing,\n });\n }\n\n private handleTokenizationError(\n tokenizeError: braintree.BraintreeError,\n ): void {\n switch (tokenizeError.code) {\n // The donor backed out, nothing to report\n case 'VENMO_APP_CANCELED':\n case 'VENMO_CANCELED':\n break;\n default:\n console.error('Venmo tokenization error', tokenizeError);\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { ModalManagerInterface } from '@internetarchive/modal-manager';
|
|
2
|
+
import type { DonationEventLoggerInterface } from '../analytics.js';
|
|
3
|
+
import type { BraintreeManagerInterface } from '../braintree/braintree-manager-interface.js';
|
|
4
|
+
import type { DonationType } from '../models/donation-type.js';
|
|
5
|
+
import type { UpsellModalCTAMode } from '../modals/ia-donation-upsell-modal-content.js';
|
|
6
|
+
import type { RecaptchaManagerInterface } from '../recaptcha-manager.js';
|
|
7
|
+
import { type ApplePayFlowHandlerInterface } from './handlers/apple-pay-flow-handler.js';
|
|
8
|
+
import { type CreditCardFlowHandlerInterface } from './handlers/credit-card-flow-handler.js';
|
|
9
|
+
import { type GooglePayFlowHandlerInterface } from './handlers/google-pay-flow-handler.js';
|
|
10
|
+
import { type PayPalFlowHandlerInterface } from './handlers/paypal-flow-handler.js';
|
|
11
|
+
import { type VenmoFlowHandlerInterface } from './handlers/venmo-flow-handler.js';
|
|
12
|
+
export interface PaymentFlowHandlersInterface {
|
|
13
|
+
startup(): Promise<void>;
|
|
14
|
+
showUpsellModal(options: {
|
|
15
|
+
oneTimeAmount: number;
|
|
16
|
+
ctaMode?: UpsellModalCTAMode;
|
|
17
|
+
yesSelected?: (amount: number) => void;
|
|
18
|
+
noSelected?: () => void;
|
|
19
|
+
amountChanged?: (amount: number) => void;
|
|
20
|
+
userClosedModalCallback?: () => void;
|
|
21
|
+
}): Promise<void>;
|
|
22
|
+
showConfirmationStepModal(options: {
|
|
23
|
+
amount: number;
|
|
24
|
+
donationType: DonationType;
|
|
25
|
+
currencyType: string;
|
|
26
|
+
confirmDonationCB: () => void;
|
|
27
|
+
cancelDonationCB: () => void;
|
|
28
|
+
}): Promise<void>;
|
|
29
|
+
creditCardHandler: CreditCardFlowHandlerInterface | undefined;
|
|
30
|
+
paypalHandler: PayPalFlowHandlerInterface | undefined;
|
|
31
|
+
applePayHandler: ApplePayFlowHandlerInterface | undefined;
|
|
32
|
+
venmoHandler: VenmoFlowHandlerInterface | undefined;
|
|
33
|
+
googlePayHandler: GooglePayFlowHandlerInterface | undefined;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The container for the per-provider flow handlers.
|
|
37
|
+
*
|
|
38
|
+
* A flow handler owns the steps between the UI and the data for one
|
|
39
|
+
* provider. For a credit card, that's: read the contact form, run recaptcha,
|
|
40
|
+
* tokenize the hosted fields, submit, show the upsell, finish. For PayPal the
|
|
41
|
+
* donor starts from PayPal's own button and the handler picks up from there.
|
|
42
|
+
*/
|
|
43
|
+
export declare class PaymentFlowHandlers implements PaymentFlowHandlersInterface {
|
|
44
|
+
startup(): Promise<void>;
|
|
45
|
+
showUpsellModal(options: {
|
|
46
|
+
oneTimeAmount: number;
|
|
47
|
+
ctaMode?: UpsellModalCTAMode;
|
|
48
|
+
yesSelected?: (amount: number) => void;
|
|
49
|
+
noSelected?: () => void;
|
|
50
|
+
amountChanged?: (amount: number) => void;
|
|
51
|
+
userClosedModalCallback?: () => void;
|
|
52
|
+
}): Promise<void>;
|
|
53
|
+
showConfirmationStepModal(options: {
|
|
54
|
+
amount: number;
|
|
55
|
+
donationType: DonationType;
|
|
56
|
+
currencyType: string;
|
|
57
|
+
confirmDonationCB: () => void;
|
|
58
|
+
cancelDonationCB: () => void;
|
|
59
|
+
}): Promise<void>;
|
|
60
|
+
get creditCardHandler(): CreditCardFlowHandlerInterface;
|
|
61
|
+
get paypalHandler(): PayPalFlowHandlerInterface;
|
|
62
|
+
get applePayHandler(): ApplePayFlowHandlerInterface;
|
|
63
|
+
get venmoHandler(): VenmoFlowHandlerInterface;
|
|
64
|
+
get googlePayHandler(): GooglePayFlowHandlerInterface;
|
|
65
|
+
private creditCardHandlerCache?;
|
|
66
|
+
private paypalHandlerCache?;
|
|
67
|
+
private applePayHandlerCache?;
|
|
68
|
+
private venmoHandlerCache?;
|
|
69
|
+
private googlePayHandlerCache?;
|
|
70
|
+
constructor(options: {
|
|
71
|
+
braintreeManager: BraintreeManagerInterface;
|
|
72
|
+
modalManager: ModalManagerInterface;
|
|
73
|
+
recaptchaManager: RecaptchaManagerInterface;
|
|
74
|
+
analytics: DonationEventLoggerInterface;
|
|
75
|
+
});
|
|
76
|
+
private braintreeManager;
|
|
77
|
+
private recaptchaManager;
|
|
78
|
+
private donationFlowModalManager;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=payment-flow-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-flow-handlers.d.ts","sourceRoot":"","sources":["../../../../../src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { DonationFlowModalManager, } from './donation-flow-modal-manager.js';
|
|
2
|
+
import { ApplePayFlowHandler, } from './handlers/apple-pay-flow-handler.js';
|
|
3
|
+
import { CreditCardFlowHandler, } from './handlers/credit-card-flow-handler.js';
|
|
4
|
+
import { GooglePayFlowHandler, } from './handlers/google-pay-flow-handler.js';
|
|
5
|
+
import { PayPalFlowHandler, } from './handlers/paypal-flow-handler.js';
|
|
6
|
+
import { VenmoFlowHandler, } from './handlers/venmo-flow-handler.js';
|
|
7
|
+
/**
|
|
8
|
+
* The container for the per-provider flow handlers.
|
|
9
|
+
*
|
|
10
|
+
* A flow handler owns the steps between the UI and the data for one
|
|
11
|
+
* provider. For a credit card, that's: read the contact form, run recaptcha,
|
|
12
|
+
* tokenize the hosted fields, submit, show the upsell, finish. For PayPal the
|
|
13
|
+
* donor starts from PayPal's own button and the handler picks up from there.
|
|
14
|
+
*/
|
|
15
|
+
export class PaymentFlowHandlers {
|
|
16
|
+
async startup() {
|
|
17
|
+
this.venmoHandler?.startup();
|
|
18
|
+
this.creditCardHandler?.startup();
|
|
19
|
+
}
|
|
20
|
+
async showUpsellModal(options) {
|
|
21
|
+
return this.donationFlowModalManager.showUpsellModal(options);
|
|
22
|
+
}
|
|
23
|
+
showConfirmationStepModal(options) {
|
|
24
|
+
return this.donationFlowModalManager.showConfirmationStepModal(options);
|
|
25
|
+
}
|
|
26
|
+
get creditCardHandler() {
|
|
27
|
+
this.creditCardHandlerCache ??= new CreditCardFlowHandler({
|
|
28
|
+
braintreeManager: this.braintreeManager,
|
|
29
|
+
donationFlowModalManager: this.donationFlowModalManager,
|
|
30
|
+
recaptchaManager: this.recaptchaManager,
|
|
31
|
+
});
|
|
32
|
+
return this.creditCardHandlerCache;
|
|
33
|
+
}
|
|
34
|
+
get paypalHandler() {
|
|
35
|
+
this.paypalHandlerCache ??= new PayPalFlowHandler({
|
|
36
|
+
braintreeManager: this.braintreeManager,
|
|
37
|
+
donationFlowModalManager: this.donationFlowModalManager,
|
|
38
|
+
});
|
|
39
|
+
return this.paypalHandlerCache;
|
|
40
|
+
}
|
|
41
|
+
get applePayHandler() {
|
|
42
|
+
this.applePayHandlerCache ??= new ApplePayFlowHandler({
|
|
43
|
+
braintreeManager: this.braintreeManager,
|
|
44
|
+
donationFlowModalManager: this.donationFlowModalManager,
|
|
45
|
+
});
|
|
46
|
+
return this.applePayHandlerCache;
|
|
47
|
+
}
|
|
48
|
+
get venmoHandler() {
|
|
49
|
+
this.venmoHandlerCache ??= new VenmoFlowHandler({
|
|
50
|
+
braintreeManager: this.braintreeManager,
|
|
51
|
+
donationFlowModalManager: this.donationFlowModalManager,
|
|
52
|
+
});
|
|
53
|
+
return this.venmoHandlerCache;
|
|
54
|
+
}
|
|
55
|
+
get googlePayHandler() {
|
|
56
|
+
this.googlePayHandlerCache ??= new GooglePayFlowHandler({
|
|
57
|
+
braintreeManager: this.braintreeManager,
|
|
58
|
+
donationFlowModalManager: this.donationFlowModalManager,
|
|
59
|
+
});
|
|
60
|
+
return this.googlePayHandlerCache;
|
|
61
|
+
}
|
|
62
|
+
constructor(options) {
|
|
63
|
+
this.braintreeManager = options.braintreeManager;
|
|
64
|
+
this.recaptchaManager = options.recaptchaManager;
|
|
65
|
+
this.donationFlowModalManager = new DonationFlowModalManager({
|
|
66
|
+
braintreeManager: this.braintreeManager,
|
|
67
|
+
modalManager: options.modalManager,
|
|
68
|
+
analytics: options.analytics,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=payment-flow-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-flow-handlers.js","sourceRoot":"","sources":["../../../../../src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,wBAAwB,GAEzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,mBAAmB,GAEpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,qBAAqB,GAEtB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,oBAAoB,GAErB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,GAElB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,gBAAgB,GAEjB,MAAM,+BAA+B,CAAC;AA6BvC;;;;;;;GAOG;AACH,MAAM,OAAO,mBAAmB;IAC9B,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAOrB;QACC,OAAO,IAAI,CAAC,wBAAwB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,yBAAyB,CAAC,OAMzB;QACC,OAAO,IAAI,CAAC,wBAAwB,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,iBAAiB;QACnB,IAAI,CAAC,sBAAsB,KAAK,IAAI,qBAAqB,CAAC;YACxD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;YACvD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,IAAI,aAAa;QACf,IAAI,CAAC,kBAAkB,KAAK,IAAI,iBAAiB,CAAC;YAChD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,CAAC,oBAAoB,KAAK,IAAI,mBAAmB,CAAC;YACpD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,IAAI,YAAY;QACd,IAAI,CAAC,iBAAiB,KAAK,IAAI,gBAAgB,CAAC;YAC9C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,CAAC,qBAAqB,KAAK,IAAI,oBAAoB,CAAC;YACtD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;SACxD,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAQD,YAAY,OAKX;QACC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QAEjD,IAAI,CAAC,wBAAwB,GAAG,IAAI,wBAAwB,CAAC;YAC3D,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;IACL,CAAC;CAKF","sourcesContent":["import type { ModalManagerInterface } from '@internetarchive/modal-manager';\n\nimport type { DonationEventLoggerInterface } from '../analytics';\nimport type { BraintreeManagerInterface } from '../braintree/braintree-manager-interface';\nimport type { DonationType } from '../models/donation-type';\nimport type { UpsellModalCTAMode } from '../modals/ia-donation-upsell-modal-content';\nimport type { RecaptchaManagerInterface } from '../recaptcha-manager';\nimport {\n DonationFlowModalManager,\n type DonationFlowModalManagerInterface,\n} from './donation-flow-modal-manager';\nimport {\n ApplePayFlowHandler,\n type ApplePayFlowHandlerInterface,\n} from './handlers/apple-pay-flow-handler';\nimport {\n CreditCardFlowHandler,\n type CreditCardFlowHandlerInterface,\n} from './handlers/credit-card-flow-handler';\nimport {\n GooglePayFlowHandler,\n type GooglePayFlowHandlerInterface,\n} from './handlers/google-pay-flow-handler';\nimport {\n PayPalFlowHandler,\n type PayPalFlowHandlerInterface,\n} from './handlers/paypal-flow-handler';\nimport {\n VenmoFlowHandler,\n type VenmoFlowHandlerInterface,\n} from './handlers/venmo-flow-handler';\n\nexport interface PaymentFlowHandlersInterface {\n startup(): Promise<void>;\n\n showUpsellModal(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\n showConfirmationStepModal(options: {\n amount: number;\n donationType: DonationType;\n currencyType: string;\n confirmDonationCB: () => void;\n cancelDonationCB: () => void;\n }): Promise<void>;\n\n creditCardHandler: CreditCardFlowHandlerInterface | undefined;\n paypalHandler: PayPalFlowHandlerInterface | undefined;\n applePayHandler: ApplePayFlowHandlerInterface | undefined;\n venmoHandler: VenmoFlowHandlerInterface | undefined;\n googlePayHandler: GooglePayFlowHandlerInterface | undefined;\n}\n\n/**\n * The container for the per-provider flow handlers.\n *\n * A flow handler owns the steps between the UI and the data for one\n * provider. For a credit card, that's: read the contact form, run recaptcha,\n * tokenize the hosted fields, submit, show the upsell, finish. For PayPal the\n * donor starts from PayPal's own button and the handler picks up from there.\n */\nexport class PaymentFlowHandlers implements PaymentFlowHandlersInterface {\n async startup(): Promise<void> {\n this.venmoHandler?.startup();\n this.creditCardHandler?.startup();\n }\n\n async showUpsellModal(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 return this.donationFlowModalManager.showUpsellModal(options);\n }\n\n showConfirmationStepModal(options: {\n amount: number;\n donationType: DonationType;\n currencyType: string;\n confirmDonationCB: () => void;\n cancelDonationCB: () => void;\n }): Promise<void> {\n return this.donationFlowModalManager.showConfirmationStepModal(options);\n }\n\n get creditCardHandler(): CreditCardFlowHandlerInterface {\n this.creditCardHandlerCache ??= new CreditCardFlowHandler({\n braintreeManager: this.braintreeManager,\n donationFlowModalManager: this.donationFlowModalManager,\n recaptchaManager: this.recaptchaManager,\n });\n return this.creditCardHandlerCache;\n }\n\n get paypalHandler(): PayPalFlowHandlerInterface {\n this.paypalHandlerCache ??= new PayPalFlowHandler({\n braintreeManager: this.braintreeManager,\n donationFlowModalManager: this.donationFlowModalManager,\n });\n return this.paypalHandlerCache;\n }\n\n get applePayHandler(): ApplePayFlowHandlerInterface {\n this.applePayHandlerCache ??= new ApplePayFlowHandler({\n braintreeManager: this.braintreeManager,\n donationFlowModalManager: this.donationFlowModalManager,\n });\n return this.applePayHandlerCache;\n }\n\n get venmoHandler(): VenmoFlowHandlerInterface {\n this.venmoHandlerCache ??= new VenmoFlowHandler({\n braintreeManager: this.braintreeManager,\n donationFlowModalManager: this.donationFlowModalManager,\n });\n return this.venmoHandlerCache;\n }\n\n get googlePayHandler(): GooglePayFlowHandlerInterface {\n this.googlePayHandlerCache ??= new GooglePayFlowHandler({\n braintreeManager: this.braintreeManager,\n donationFlowModalManager: this.donationFlowModalManager,\n });\n return this.googlePayHandlerCache;\n }\n\n private creditCardHandlerCache?: CreditCardFlowHandlerInterface;\n private paypalHandlerCache?: PayPalFlowHandlerInterface;\n private applePayHandlerCache?: ApplePayFlowHandlerInterface;\n private venmoHandlerCache?: VenmoFlowHandlerInterface;\n private googlePayHandlerCache?: GooglePayFlowHandlerInterface;\n\n constructor(options: {\n braintreeManager: BraintreeManagerInterface;\n modalManager: ModalManagerInterface;\n recaptchaManager: RecaptchaManagerInterface;\n analytics: DonationEventLoggerInterface;\n }) {\n this.braintreeManager = options.braintreeManager;\n this.recaptchaManager = options.recaptchaManager;\n\n this.donationFlowModalManager = new DonationFlowModalManager({\n braintreeManager: this.braintreeManager,\n modalManager: options.modalManager,\n analytics: options.analytics,\n });\n }\n\n private braintreeManager: BraintreeManagerInterface;\n private recaptchaManager: RecaptchaManagerInterface;\n private donationFlowModalManager: DonationFlowModalManagerInterface;\n}\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export type AutoCompleteFieldOptions = 'on' | 'off' | 'additional-name' | 'address-level1' | 'address-level2' | 'address-level3' | 'address-level4' | 'address-line1' | 'address-line2' | 'address-line3' | 'bday' | 'bday-year' | 'bday-day' | 'bday-month' | 'billing' | 'cc-additional-name' | 'cc-csc' | 'cc-exp' | 'cc-exp-month' | 'cc-exp-year' | 'cc-family-name' | 'cc-given-name' | 'cc-name' | 'cc-number' | 'cc-type' | 'country' | 'country-name' | 'current-password' | 'email' | 'family-name' | 'fax' | 'given-name' | 'home' | 'honorific-prefix' | 'honorific-suffix' | 'impp' | 'language' | 'mobile' | 'name' | 'new-password' | 'nickname' | 'organization' | 'organization-title' | 'pager' | 'photo' | 'postal-code' | 'sex' | 'shipping' | 'street-address' | 'tel-area-code' | 'tel' | 'tel-country-code' | 'tel-extension' | 'tel-local' | 'tel-local-prefix' | 'tel-local-suffix' | 'tel-national' | 'transaction-amount' | 'transaction-currency' | 'url' | 'username' | 'work';
|
|
2
|
+
//# sourceMappingURL=autocomplete-field-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete-field-options.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAChC,IAAI,GACJ,KAAK,GACL,iBAAiB,GACjB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,eAAe,GACf,eAAe,GACf,eAAe,GACf,MAAM,GACN,WAAW,GACX,UAAU,GACV,YAAY,GACZ,SAAS,GACT,oBAAoB,GACpB,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,SAAS,GACT,WAAW,GACX,SAAS,GACT,SAAS,GACT,cAAc,GACd,kBAAkB,GAClB,OAAO,GACP,aAAa,GACb,KAAK,GACL,YAAY,GACZ,MAAM,GACN,kBAAkB,GAClB,kBAAkB,GAClB,MAAM,GACN,UAAU,GACV,QAAQ,GACR,MAAM,GACN,cAAc,GACd,UAAU,GACV,cAAc,GACd,oBAAoB,GACpB,OAAO,GACP,OAAO,GACP,aAAa,GACb,KAAK,GACL,UAAU,GACV,gBAAgB,GAChB,eAAe,GACf,KAAK,GACL,kBAAkB,GAClB,eAAe,GACf,WAAW,GACX,kBAAkB,GAClB,kBAAkB,GAClB,cAAc,GACd,oBAAoB,GACpB,sBAAsB,GACtB,KAAK,GACL,UAAU,GACV,MAAM,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete-field-options.js","sourceRoot":"","sources":["../../../../../../src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.ts"],"names":[],"mappings":"","sourcesContent":["export type AutoCompleteFieldOptions =\n | 'on'\n | 'off'\n | 'additional-name'\n | 'address-level1'\n | 'address-level2'\n | 'address-level3'\n | 'address-level4'\n | 'address-line1'\n | 'address-line2'\n | 'address-line3'\n | 'bday'\n | 'bday-year'\n | 'bday-day'\n | 'bday-month'\n | 'billing'\n | 'cc-additional-name'\n | 'cc-csc'\n | 'cc-exp'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-family-name'\n | 'cc-given-name'\n | 'cc-name'\n | 'cc-number'\n | 'cc-type'\n | 'country'\n | 'country-name'\n | 'current-password'\n | 'email'\n | 'family-name'\n | 'fax'\n | 'given-name'\n | 'home'\n | 'honorific-prefix'\n | 'honorific-suffix'\n | 'impp'\n | 'language'\n | 'mobile'\n | 'name'\n | 'new-password'\n | 'nickname'\n | 'organization'\n | 'organization-title'\n | 'pager'\n | 'photo'\n | 'postal-code'\n | 'sex'\n | 'shipping'\n | 'street-address'\n | 'tel-area-code'\n | 'tel'\n | 'tel-country-code'\n | 'tel-extension'\n | 'tel-local'\n | 'tel-local-prefix'\n | 'tel-local-suffix'\n | 'tel-national'\n | 'transaction-amount'\n | 'transaction-currency'\n | 'url'\n | 'username'\n | 'work';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"countries.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/ia-donation-form/form-elements/contact-form/countries.ts"],"names":[],"mappings":"AAAA,mEAAmE;AACnE,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2P5C,CAAC"}
|