@internetarchive/elements 1.1.2-webdev-9192.0 → 1.1.3-l10n-demo.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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-search-bar/ia-dropdown-search-bar.d.ts +2 -2
- 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 +4 -5
- 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-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 +756 -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 +309 -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 +214 -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 +21 -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 +278 -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/index.d.ts +55 -0
- package/dist/src/elements/index.d.ts.map +1 -1
- package/dist/src/elements/index.js +55 -0
- package/dist/src/elements/index.js.map +1 -1
- package/dist/src/locales/es.d.ts +215 -0
- package/dist/src/locales/es.d.ts.map +1 -0
- package/dist/src/locales/es.js +247 -0
- package/dist/src/locales/es.js.map +1 -0
- package/package.json +38 -5
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement, } from 'lit';
|
|
3
|
+
import { customElement } from '../../../util/custom-element.js';
|
|
4
|
+
import { localized, msg } from '@lit/localize';
|
|
5
|
+
import themeStyles from '../../../themes/theme-styles.js';
|
|
6
|
+
/** The footer of the error modal: a link to the help article on failed donations. */
|
|
7
|
+
let IADonationErrorModalContent = class IADonationErrorModalContent extends LitElement {
|
|
8
|
+
render() {
|
|
9
|
+
return html `
|
|
10
|
+
<div class="container">
|
|
11
|
+
<a
|
|
12
|
+
href="https://help.archive.org/help/why-is-there-a-problem-processing-my-donation/"
|
|
13
|
+
rel="noopener"
|
|
14
|
+
target="_blank"
|
|
15
|
+
>
|
|
16
|
+
${msg('Questions?')}
|
|
17
|
+
</a>
|
|
18
|
+
</div>
|
|
19
|
+
`;
|
|
20
|
+
}
|
|
21
|
+
static get styles() {
|
|
22
|
+
return [
|
|
23
|
+
themeStyles,
|
|
24
|
+
css `
|
|
25
|
+
:host {
|
|
26
|
+
--donation-error-modal-base-font-size--: var(
|
|
27
|
+
--ia-donation-form-base-font-size,
|
|
28
|
+
10px
|
|
29
|
+
);
|
|
30
|
+
--donation-error-modal-link-top-margin--: var(
|
|
31
|
+
--ia-donation-error-modal-link-top-margin,
|
|
32
|
+
var(--donation-error-modal-base-font-size--)
|
|
33
|
+
);
|
|
34
|
+
--donation-error-modal-link-color--: var(
|
|
35
|
+
--ia-donation-error-modal-link-color,
|
|
36
|
+
var(--mid-gray)
|
|
37
|
+
);
|
|
38
|
+
--donation-error-modal-link-font-size--: var(
|
|
39
|
+
--ia-donation-error-modal-link-font-size,
|
|
40
|
+
calc(var(--donation-error-modal-base-font-size--) * 1.4)
|
|
41
|
+
);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.container {
|
|
45
|
+
margin-top: var(--donation-error-modal-link-top-margin--);
|
|
46
|
+
text-align: center;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
a,
|
|
50
|
+
a:link,
|
|
51
|
+
a:visited {
|
|
52
|
+
color: var(--donation-error-modal-link-color--);
|
|
53
|
+
font-size: var(--donation-error-modal-link-font-size--);
|
|
54
|
+
}
|
|
55
|
+
`,
|
|
56
|
+
];
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
IADonationErrorModalContent = __decorate([
|
|
60
|
+
customElement('ia-donation-error-modal-content'),
|
|
61
|
+
localized()
|
|
62
|
+
], IADonationErrorModalContent);
|
|
63
|
+
export { IADonationErrorModalContent };
|
|
64
|
+
//# sourceMappingURL=ia-donation-error-modal-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ia-donation-error-modal-content.js","sourceRoot":"","sources":["../../../../../src/elements/ia-donation-form/modals/ia-donation-error-modal-content.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,GAAG,EACH,IAAI,EACJ,UAAU,GAGX,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD,qFAAqF;AAG9E,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,UAAU;IACzD,MAAM;QACJ,OAAO,IAAI,CAAA;;;;;;;YAOH,GAAG,CAAC,YAAY,CAAC;;;KAGxB,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO;YACL,WAAW;YACX,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AApDY,2BAA2B;IAFvC,aAAa,CAAC,iCAAiC,CAAC;IAChD,SAAS,EAAE;GACC,2BAA2B,CAoDvC","sourcesContent":["import {\n css,\n html,\n LitElement,\n type CSSResultGroup,\n type TemplateResult,\n} from 'lit';\nimport { customElement } from '@src/util/custom-element';\nimport { localized, msg } from '@lit/localize';\n\nimport themeStyles from '@src/themes/theme-styles';\n\n/** The footer of the error modal: a link to the help article on failed donations. */\n@customElement('ia-donation-error-modal-content')\n@localized()\nexport class IADonationErrorModalContent extends LitElement {\n render(): TemplateResult {\n return html`\n <div class=\"container\">\n <a\n href=\"https://help.archive.org/help/why-is-there-a-problem-processing-my-donation/\"\n rel=\"noopener\"\n target=\"_blank\"\n >\n ${msg('Questions?')}\n </a>\n </div>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return [\n themeStyles,\n css`\n :host {\n --donation-error-modal-base-font-size--: var(\n --ia-donation-form-base-font-size,\n 10px\n );\n --donation-error-modal-link-top-margin--: var(\n --ia-donation-error-modal-link-top-margin,\n var(--donation-error-modal-base-font-size--)\n );\n --donation-error-modal-link-color--: var(\n --ia-donation-error-modal-link-color,\n var(--mid-gray)\n );\n --donation-error-modal-link-font-size--: var(\n --ia-donation-error-modal-link-font-size,\n calc(var(--donation-error-modal-base-font-size--) * 1.4)\n );\n }\n\n .container {\n margin-top: var(--donation-error-modal-link-top-margin--);\n text-align: center;\n }\n\n a,\n a:link,\n a:visited {\n color: var(--donation-error-modal-link-color--);\n font-size: var(--donation-error-modal-link-font-size--);\n }\n `,\n ];\n }\n}\n"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { LitElement, type CSSResultGroup, type TemplateResult } from 'lit';
|
|
2
|
+
/** How the "yes" side of the upsell is offered: our own button, or a slot for the PayPal button. */
|
|
3
|
+
export declare const UpsellModalCTAMode: {
|
|
4
|
+
readonly YesButton: "YesButton";
|
|
5
|
+
readonly PayPalUpsellSlot: "PayPalUpsellSlot";
|
|
6
|
+
};
|
|
7
|
+
export type UpsellModalCTAMode = (typeof UpsellModalCTAMode)[keyof typeof UpsellModalCTAMode];
|
|
8
|
+
/**
|
|
9
|
+
* The content of the upsell modal shown after a one-time donation: a thank
|
|
10
|
+
* you, a monthly amount field, and a yes button (or the PayPal button, when
|
|
11
|
+
* the donation came through PayPal).
|
|
12
|
+
*/
|
|
13
|
+
export declare class IADonationUpsellModalContent extends LitElement {
|
|
14
|
+
yesButtonMode: UpsellModalCTAMode;
|
|
15
|
+
amount: number;
|
|
16
|
+
error?: TemplateResult;
|
|
17
|
+
amountInput: HTMLInputElement;
|
|
18
|
+
private currencyValidator;
|
|
19
|
+
render(): TemplateResult;
|
|
20
|
+
private get yesButton();
|
|
21
|
+
private amountChanged;
|
|
22
|
+
private handleCustomAmountInput;
|
|
23
|
+
private processAmount;
|
|
24
|
+
private yesSelected;
|
|
25
|
+
private noThanksSelected;
|
|
26
|
+
static get styles(): CSSResultGroup;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=ia-donation-upsell-modal-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ia-donation-upsell-modal-content.d.ts","sourceRoot":"","sources":["../../../../../src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAQb,oGAAoG;AACpG,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAC5B,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAE/D;;;;GAIG;AACH,qBAEa,4BAA6B,SAAQ,UAAU;IAC9B,aAAa,EAAE,kBAAkB,CAC9B;IAEH,MAAM,SAAK;IAEX,KAAK,CAAC,EAAE,cAAc,CAAC;IAE3B,WAAW,EAAG,gBAAgB,CAAC;IAEvD,OAAO,CAAC,iBAAiB,CAA8C;IAEvE,MAAM,IAAI,cAAc;IAgCxB,OAAO,KAAK,SAAS,GA6BpB;IAED,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,uBAAuB;IAS/B,OAAO,CAAC,aAAa;IA2BrB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,gBAAgB;IAIxB,MAAM,KAAK,MAAM,IAAI,cAAc,CAiKlC;CACF"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement, nothing, } from 'lit';
|
|
3
|
+
import { property, query } from 'lit/decorators.js';
|
|
4
|
+
import { customElement } from '../../../util/custom-element.js';
|
|
5
|
+
import { localized, msg } from '@lit/localize';
|
|
6
|
+
import themeStyles from '../../../themes/theme-styles.js';
|
|
7
|
+
import { CurrencyValidator } from '../currency-validator.js';
|
|
8
|
+
/** How the "yes" side of the upsell is offered: our own button, or a slot for the PayPal button. */
|
|
9
|
+
export const UpsellModalCTAMode = {
|
|
10
|
+
YesButton: 'YesButton',
|
|
11
|
+
PayPalUpsellSlot: 'PayPalUpsellSlot',
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* The content of the upsell modal shown after a one-time donation: a thank
|
|
15
|
+
* you, a monthly amount field, and a yes button (or the PayPal button, when
|
|
16
|
+
* the donation came through PayPal).
|
|
17
|
+
*/
|
|
18
|
+
let IADonationUpsellModalContent = class IADonationUpsellModalContent extends LitElement {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.yesButtonMode = UpsellModalCTAMode.YesButton;
|
|
22
|
+
this.amount = 5;
|
|
23
|
+
this.currencyValidator = new CurrencyValidator();
|
|
24
|
+
}
|
|
25
|
+
render() {
|
|
26
|
+
return html `
|
|
27
|
+
<h3>${msg('Thank you for donating!')}</h3>
|
|
28
|
+
<button @click=${this.noThanksSelected} class="cta-button" id="no-button">
|
|
29
|
+
${msg('Continue')}
|
|
30
|
+
</button>
|
|
31
|
+
<p class="or_separator"><span>${msg('or')}</span></p>
|
|
32
|
+
<h3>${msg('Join our Monthly Giving Circle')}</h3>
|
|
33
|
+
<p class="appeal">
|
|
34
|
+
${msg('Monthly support helps us reliably plan for the future.')}
|
|
35
|
+
</p>
|
|
36
|
+
<div class="monthly-amount">
|
|
37
|
+
<h1>${msg('Enter your monthly amount')}</h1>
|
|
38
|
+
<div class="amount-input">
|
|
39
|
+
<span class="dollar-symbol">$</span>
|
|
40
|
+
<input
|
|
41
|
+
id="amount-input"
|
|
42
|
+
type="text"
|
|
43
|
+
tabindex="0"
|
|
44
|
+
aria-label=${msg('Monthly amount in dollars')}
|
|
45
|
+
value=${this.amount}
|
|
46
|
+
@input=${this.amountChanged}
|
|
47
|
+
@keydown=${this.currencyValidator.keydown}
|
|
48
|
+
/>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="error ${this.error ? '' : 'hidden'}">${this.error}</div>
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
${this.yesButton}
|
|
54
|
+
`;
|
|
55
|
+
}
|
|
56
|
+
get yesButton() {
|
|
57
|
+
switch (this.yesButtonMode) {
|
|
58
|
+
case UpsellModalCTAMode.YesButton:
|
|
59
|
+
return html `
|
|
60
|
+
<button
|
|
61
|
+
class="cta-button"
|
|
62
|
+
tabindex="0"
|
|
63
|
+
id="yes-button"
|
|
64
|
+
@click=${this.yesSelected}
|
|
65
|
+
.disabled=${this.error !== undefined}
|
|
66
|
+
>
|
|
67
|
+
${msg("YES, I'll donate monthly")}
|
|
68
|
+
</button>
|
|
69
|
+
`;
|
|
70
|
+
case UpsellModalCTAMode.PayPalUpsellSlot:
|
|
71
|
+
return html `
|
|
72
|
+
<div class="paypal-upsell-slot-container">
|
|
73
|
+
<div
|
|
74
|
+
class="paypal-upsell-slot-blocker ${this.error ? '' : 'hidden'}"
|
|
75
|
+
></div>
|
|
76
|
+
<button class="cta-button" id="paypal-cover-button">
|
|
77
|
+
${msg("YES, I'll donate monthly")}
|
|
78
|
+
</button>
|
|
79
|
+
<slot class="paypal-upsell-slot"></slot>
|
|
80
|
+
</div>
|
|
81
|
+
`;
|
|
82
|
+
default:
|
|
83
|
+
return nothing;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
amountChanged(e) {
|
|
87
|
+
const target = e.target;
|
|
88
|
+
const amount = target.value;
|
|
89
|
+
if (amount.length === 0) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
this.handleCustomAmountInput(amount);
|
|
93
|
+
}
|
|
94
|
+
handleCustomAmountInput(value) {
|
|
95
|
+
const amount = parseFloat(value);
|
|
96
|
+
if (isNaN(amount)) {
|
|
97
|
+
this.error = html `${msg('Please enter a valid amount.')}`;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
this.processAmount(amount);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
processAmount(amount) {
|
|
104
|
+
if (amount >= 10000) {
|
|
105
|
+
this.error = msg(html `
|
|
106
|
+
To make a donation of $10,000 or more, please contact our philanthropy
|
|
107
|
+
department at
|
|
108
|
+
<a href="mailto:donations@archive.org">donations@archive.org</a>
|
|
109
|
+
`);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (amount < 1) {
|
|
113
|
+
if (this.amountInput && this.amountInput.value.length > 0) {
|
|
114
|
+
this.error = html `${msg('The minimum donation amount is $1.')}`;
|
|
115
|
+
}
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
this.error = undefined;
|
|
119
|
+
this.amount = amount;
|
|
120
|
+
const event = new CustomEvent('amountChanged', {
|
|
121
|
+
detail: { amount: this.amount },
|
|
122
|
+
});
|
|
123
|
+
this.dispatchEvent(event);
|
|
124
|
+
}
|
|
125
|
+
yesSelected() {
|
|
126
|
+
const event = new CustomEvent('yesSelected', {
|
|
127
|
+
detail: { amount: this.amount },
|
|
128
|
+
});
|
|
129
|
+
this.dispatchEvent(event);
|
|
130
|
+
}
|
|
131
|
+
noThanksSelected() {
|
|
132
|
+
this.dispatchEvent(new Event('noThanksSelected'));
|
|
133
|
+
}
|
|
134
|
+
static get styles() {
|
|
135
|
+
return [
|
|
136
|
+
themeStyles,
|
|
137
|
+
css `
|
|
138
|
+
:host {
|
|
139
|
+
--donation-upsell-base-font-size--: var(
|
|
140
|
+
--ia-donation-form-base-font-size,
|
|
141
|
+
10px
|
|
142
|
+
);
|
|
143
|
+
--donation-upsell-cta-color--: var(
|
|
144
|
+
--ia-donation-upsell-cta-button-color,
|
|
145
|
+
var(--navy-blue)
|
|
146
|
+
);
|
|
147
|
+
--donation-upsell-cta-disabled-color--: var(
|
|
148
|
+
--ia-donation-upsell-cta-button-disabled-color,
|
|
149
|
+
rgba(109, 148, 201, 0.5)
|
|
150
|
+
);
|
|
151
|
+
/* Shifts the amount field left a little so the dollar sign and field read as centred */
|
|
152
|
+
--donation-upsell-amount-input-offset--: var(
|
|
153
|
+
--ia-donation-upsell-amount-input-offset,
|
|
154
|
+
calc(var(--donation-upsell-base-font-size--) * -1)
|
|
155
|
+
);
|
|
156
|
+
--donation-upsell-error-color--: var(--color-danger);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.monthly-amount {
|
|
160
|
+
background-color: var(--true-white);
|
|
161
|
+
padding: var(--padding-sm) 0.625rem;
|
|
162
|
+
border-radius: 5px;
|
|
163
|
+
text-align: center;
|
|
164
|
+
margin-bottom: var(--padding-sm);
|
|
165
|
+
margin-top: 0;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.monthly-amount h1 {
|
|
169
|
+
font-size: calc(var(--donation-upsell-base-font-size--) * 1.8);
|
|
170
|
+
font-weight: bold;
|
|
171
|
+
text-align: center;
|
|
172
|
+
line-height: 1.2em;
|
|
173
|
+
margin: 0;
|
|
174
|
+
padding: var(--padding-sm) 0 0 0;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.hidden {
|
|
178
|
+
display: none;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
h3 {
|
|
182
|
+
text-align: center;
|
|
183
|
+
font-size: calc(var(--donation-upsell-base-font-size--) * 1.8);
|
|
184
|
+
margin: 0 var(--donation-upsell-base-font-size--) var(--padding-sm)
|
|
185
|
+
var(--donation-upsell-base-font-size--);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.appeal {
|
|
189
|
+
text-align: center;
|
|
190
|
+
font-size: calc(var(--donation-upsell-base-font-size--) * 1.6);
|
|
191
|
+
margin: var(--padding-sm) var(--donation-upsell-base-font-size--);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.amount-input {
|
|
195
|
+
transform: translate(var(--donation-upsell-amount-input-offset--), 0);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.amount-input .dollar-symbol {
|
|
199
|
+
font-size: calc(var(--donation-upsell-base-font-size--) * 1.8);
|
|
200
|
+
font-weight: bold;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
.amount-input input {
|
|
204
|
+
width: 100px;
|
|
205
|
+
text-align: center;
|
|
206
|
+
border: none;
|
|
207
|
+
border-bottom: 1px solid gray;
|
|
208
|
+
font-weight: bold;
|
|
209
|
+
font-size: calc(var(--donation-upsell-base-font-size--) * 3.4);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
.cta-button {
|
|
213
|
+
font-size: calc(var(--donation-upsell-base-font-size--) * 2);
|
|
214
|
+
display: block;
|
|
215
|
+
width: 100%;
|
|
216
|
+
margin-top: var(--padding-sm);
|
|
217
|
+
padding: var(--donation-upsell-base-font-size--)
|
|
218
|
+
calc(var(--donation-upsell-base-font-size--) * 2);
|
|
219
|
+
background-color: var(--donation-upsell-cta-color--);
|
|
220
|
+
color: var(--true-white);
|
|
221
|
+
border-radius: 5px;
|
|
222
|
+
border: 0;
|
|
223
|
+
font-weight: bold;
|
|
224
|
+
line-height: normal;
|
|
225
|
+
outline: none;
|
|
226
|
+
cursor: pointer;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.cta-button:disabled {
|
|
230
|
+
background-color: var(--donation-upsell-cta-disabled-color--);
|
|
231
|
+
cursor: not-allowed;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.paypal-upsell-slot {
|
|
235
|
+
text-align: center;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.paypal-upsell-slot-blocker {
|
|
239
|
+
position: absolute;
|
|
240
|
+
width: 100%;
|
|
241
|
+
height: calc(var(--donation-upsell-base-font-size--) * 4.5);
|
|
242
|
+
bottom: 0;
|
|
243
|
+
z-index: 250;
|
|
244
|
+
cursor: not-allowed;
|
|
245
|
+
background-color: rgba(255, 255, 255, 0.5);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.paypal-upsell-slot-blocker.hidden {
|
|
249
|
+
display: none;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
#paypal-cover-button {
|
|
253
|
+
position: absolute;
|
|
254
|
+
width: 100%;
|
|
255
|
+
bottom: 0;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
.paypal-upsell-slot-container {
|
|
259
|
+
position: relative;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.error {
|
|
263
|
+
font-size: calc(var(--donation-upsell-base-font-size--) * 1.4);
|
|
264
|
+
margin: var(--padding-sm) 0;
|
|
265
|
+
color: var(--donation-upsell-error-color--);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
.or_separator {
|
|
269
|
+
position: relative;
|
|
270
|
+
margin: 0 calc(var(--donation-upsell-base-font-size--) * 2);
|
|
271
|
+
font-size: calc(var(--donation-upsell-base-font-size--) * 2.6);
|
|
272
|
+
font-weight: bold;
|
|
273
|
+
text-transform: uppercase;
|
|
274
|
+
text-align: center;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.or_separator:before {
|
|
278
|
+
position: absolute;
|
|
279
|
+
top: calc(50% - 1px);
|
|
280
|
+
right: 0;
|
|
281
|
+
left: 0;
|
|
282
|
+
height: 2px;
|
|
283
|
+
content: '';
|
|
284
|
+
background: var(--mid-gray);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.or_separator span {
|
|
288
|
+
display: inline-block;
|
|
289
|
+
position: relative;
|
|
290
|
+
padding: 0 var(--donation-upsell-base-font-size--);
|
|
291
|
+
background: #f5f5f7;
|
|
292
|
+
}
|
|
293
|
+
`,
|
|
294
|
+
];
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
__decorate([
|
|
298
|
+
property({ type: String })
|
|
299
|
+
], IADonationUpsellModalContent.prototype, "yesButtonMode", void 0);
|
|
300
|
+
__decorate([
|
|
301
|
+
property({ type: Number })
|
|
302
|
+
], IADonationUpsellModalContent.prototype, "amount", void 0);
|
|
303
|
+
__decorate([
|
|
304
|
+
property({ type: Object })
|
|
305
|
+
], IADonationUpsellModalContent.prototype, "error", void 0);
|
|
306
|
+
__decorate([
|
|
307
|
+
query('#amount-input')
|
|
308
|
+
], IADonationUpsellModalContent.prototype, "amountInput", void 0);
|
|
309
|
+
IADonationUpsellModalContent = __decorate([
|
|
310
|
+
customElement('ia-donation-upsell-modal-content'),
|
|
311
|
+
localized()
|
|
312
|
+
], IADonationUpsellModalContent);
|
|
313
|
+
export { IADonationUpsellModalContent };
|
|
314
|
+
//# sourceMappingURL=ia-donation-upsell-modal-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ia-donation-upsell-modal-content.js","sourceRoot":"","sources":["../../../../../src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,GAAG,EACH,IAAI,EACJ,UAAU,EACV,OAAO,GAGR,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,WAAW,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,oGAAoG;AACpG,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS,EAAE,WAAW;IACtB,gBAAgB,EAAE,kBAAkB;CAC5B,CAAC;AAKX;;;;GAIG;AAGI,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,UAAU;IAArD;;QACuB,kBAAa,GACvC,kBAAkB,CAAC,SAAS,CAAC;QAEH,WAAM,GAAG,CAAC,CAAC;QAM/B,sBAAiB,GAAsB,IAAI,iBAAiB,EAAE,CAAC;IA2RzE,CAAC;IAzRC,MAAM;QACJ,OAAO,IAAI,CAAA;YACH,GAAG,CAAC,yBAAyB,CAAC;uBACnB,IAAI,CAAC,gBAAgB;UAClC,GAAG,CAAC,UAAU,CAAC;;sCAEa,GAAG,CAAC,IAAI,CAAC;YACnC,GAAG,CAAC,gCAAgC,CAAC;;UAEvC,GAAG,CAAC,wDAAwD,CAAC;;;cAGzD,GAAG,CAAC,2BAA2B,CAAC;;;;;;;yBAOrB,GAAG,CAAC,2BAA2B,CAAC;oBACrC,IAAI,CAAC,MAAM;qBACV,IAAI,CAAC,aAAa;uBAChB,IAAI,CAAC,iBAAiB,CAAC,OAAO;;;4BAGzB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,KAAK;;;QAG7D,IAAI,CAAC,SAAS;KACjB,CAAC;IACJ,CAAC;IAED,IAAY,SAAS;QACnB,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3B,KAAK,kBAAkB,CAAC,SAAS;gBAC/B,OAAO,IAAI,CAAA;;;;;qBAKE,IAAI,CAAC,WAAW;wBACb,IAAI,CAAC,KAAK,KAAK,SAAS;;cAElC,GAAG,CAAC,0BAA0B,CAAC;;SAEpC,CAAC;YACJ,KAAK,kBAAkB,CAAC,gBAAgB;gBACtC,OAAO,IAAI,CAAA;;;kDAG+B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;;;gBAG5D,GAAG,CAAC,0BAA0B,CAAC;;;;SAItC,CAAC;YACJ;gBACE,OAAO,OAAO,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,CAAQ;QAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,MAA0B,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC;QAC5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEO,uBAAuB,CAAC,KAAa;QAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA,GAAG,GAAG,CAAC,8BAA8B,CAAC,EAAE,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,MAAc;QAClC,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAA;;;;OAIpB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA,GAAG,GAAG,CAAC,oCAAoC,CAAC,EAAE,CAAC;YAClE,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QAEvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,eAAe,EAAE;YAC7C,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEO,WAAW;QACjB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,aAAa,EAAE;YAC3C,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;SAChC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO;YACL,WAAW;YACX,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4JF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AApS6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;mEACI;AAEH;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4DAAY;AAEX;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2DAAwB;AAE3B;IAAvB,KAAK,CAAC,eAAe,CAAC;iEAAgC;AAR5C,4BAA4B;IAFxC,aAAa,CAAC,kCAAkC,CAAC;IACjD,SAAS,EAAE;GACC,4BAA4B,CAqSxC","sourcesContent":["import {\n css,\n html,\n LitElement,\n nothing,\n type CSSResultGroup,\n type TemplateResult,\n} from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { customElement } from '@src/util/custom-element';\nimport { localized, msg } from '@lit/localize';\n\nimport themeStyles from '@src/themes/theme-styles';\nimport { CurrencyValidator } from '../currency-validator';\n\n/** How the \"yes\" side of the upsell is offered: our own button, or a slot for the PayPal button. */\nexport const UpsellModalCTAMode = {\n YesButton: 'YesButton',\n PayPalUpsellSlot: 'PayPalUpsellSlot',\n} as const;\n\nexport type UpsellModalCTAMode =\n (typeof UpsellModalCTAMode)[keyof typeof UpsellModalCTAMode];\n\n/**\n * The content of the upsell modal shown after a one-time donation: a thank\n * you, a monthly amount field, and a yes button (or the PayPal button, when\n * the donation came through PayPal).\n */\n@customElement('ia-donation-upsell-modal-content')\n@localized()\nexport class IADonationUpsellModalContent extends LitElement {\n @property({ type: String }) yesButtonMode: UpsellModalCTAMode =\n UpsellModalCTAMode.YesButton;\n\n @property({ type: Number }) amount = 5;\n\n @property({ type: Object }) error?: TemplateResult;\n\n @query('#amount-input') amountInput!: HTMLInputElement;\n\n private currencyValidator: CurrencyValidator = new CurrencyValidator();\n\n render(): TemplateResult {\n return html`\n <h3>${msg('Thank you for donating!')}</h3>\n <button @click=${this.noThanksSelected} class=\"cta-button\" id=\"no-button\">\n ${msg('Continue')}\n </button>\n <p class=\"or_separator\"><span>${msg('or')}</span></p>\n <h3>${msg('Join our Monthly Giving Circle')}</h3>\n <p class=\"appeal\">\n ${msg('Monthly support helps us reliably plan for the future.')}\n </p>\n <div class=\"monthly-amount\">\n <h1>${msg('Enter your monthly amount')}</h1>\n <div class=\"amount-input\">\n <span class=\"dollar-symbol\">$</span>\n <input\n id=\"amount-input\"\n type=\"text\"\n tabindex=\"0\"\n aria-label=${msg('Monthly amount in dollars')}\n value=${this.amount}\n @input=${this.amountChanged}\n @keydown=${this.currencyValidator.keydown}\n />\n </div>\n <div class=\"error ${this.error ? '' : 'hidden'}\">${this.error}</div>\n </div>\n\n ${this.yesButton}\n `;\n }\n\n private get yesButton(): TemplateResult | typeof nothing {\n switch (this.yesButtonMode) {\n case UpsellModalCTAMode.YesButton:\n return html`\n <button\n class=\"cta-button\"\n tabindex=\"0\"\n id=\"yes-button\"\n @click=${this.yesSelected}\n .disabled=${this.error !== undefined}\n >\n ${msg(\"YES, I'll donate monthly\")}\n </button>\n `;\n case UpsellModalCTAMode.PayPalUpsellSlot:\n return html`\n <div class=\"paypal-upsell-slot-container\">\n <div\n class=\"paypal-upsell-slot-blocker ${this.error ? '' : 'hidden'}\"\n ></div>\n <button class=\"cta-button\" id=\"paypal-cover-button\">\n ${msg(\"YES, I'll donate monthly\")}\n </button>\n <slot class=\"paypal-upsell-slot\"></slot>\n </div>\n `;\n default:\n return nothing;\n }\n }\n\n private amountChanged(e: Event): void {\n const target = e.target as HTMLInputElement;\n const amount = target.value;\n if (amount.length === 0) {\n return;\n }\n this.handleCustomAmountInput(amount);\n }\n\n private handleCustomAmountInput(value: string): void {\n const amount = parseFloat(value);\n if (isNaN(amount)) {\n this.error = html`${msg('Please enter a valid amount.')}`;\n } else {\n this.processAmount(amount);\n }\n }\n\n private processAmount(amount: number): void {\n if (amount >= 10000) {\n this.error = msg(html`\n To make a donation of $10,000 or more, please contact our philanthropy\n department at\n <a href=\"mailto:donations@archive.org\">donations@archive.org</a>\n `);\n return;\n }\n\n if (amount < 1) {\n if (this.amountInput && this.amountInput.value.length > 0) {\n this.error = html`${msg('The minimum donation amount is $1.')}`;\n }\n return;\n }\n\n this.error = undefined;\n\n this.amount = amount;\n\n const event = new CustomEvent('amountChanged', {\n detail: { amount: this.amount },\n });\n this.dispatchEvent(event);\n }\n\n private yesSelected(): void {\n const event = new CustomEvent('yesSelected', {\n detail: { amount: this.amount },\n });\n this.dispatchEvent(event);\n }\n\n private noThanksSelected(): void {\n this.dispatchEvent(new Event('noThanksSelected'));\n }\n\n static get styles(): CSSResultGroup {\n return [\n themeStyles,\n css`\n :host {\n --donation-upsell-base-font-size--: var(\n --ia-donation-form-base-font-size,\n 10px\n );\n --donation-upsell-cta-color--: var(\n --ia-donation-upsell-cta-button-color,\n var(--navy-blue)\n );\n --donation-upsell-cta-disabled-color--: var(\n --ia-donation-upsell-cta-button-disabled-color,\n rgba(109, 148, 201, 0.5)\n );\n /* Shifts the amount field left a little so the dollar sign and field read as centred */\n --donation-upsell-amount-input-offset--: var(\n --ia-donation-upsell-amount-input-offset,\n calc(var(--donation-upsell-base-font-size--) * -1)\n );\n --donation-upsell-error-color--: var(--color-danger);\n }\n\n .monthly-amount {\n background-color: var(--true-white);\n padding: var(--padding-sm) 0.625rem;\n border-radius: 5px;\n text-align: center;\n margin-bottom: var(--padding-sm);\n margin-top: 0;\n }\n\n .monthly-amount h1 {\n font-size: calc(var(--donation-upsell-base-font-size--) * 1.8);\n font-weight: bold;\n text-align: center;\n line-height: 1.2em;\n margin: 0;\n padding: var(--padding-sm) 0 0 0;\n }\n\n .hidden {\n display: none;\n }\n\n h3 {\n text-align: center;\n font-size: calc(var(--donation-upsell-base-font-size--) * 1.8);\n margin: 0 var(--donation-upsell-base-font-size--) var(--padding-sm)\n var(--donation-upsell-base-font-size--);\n }\n\n .appeal {\n text-align: center;\n font-size: calc(var(--donation-upsell-base-font-size--) * 1.6);\n margin: var(--padding-sm) var(--donation-upsell-base-font-size--);\n }\n\n .amount-input {\n transform: translate(var(--donation-upsell-amount-input-offset--), 0);\n }\n\n .amount-input .dollar-symbol {\n font-size: calc(var(--donation-upsell-base-font-size--) * 1.8);\n font-weight: bold;\n }\n\n .amount-input input {\n width: 100px;\n text-align: center;\n border: none;\n border-bottom: 1px solid gray;\n font-weight: bold;\n font-size: calc(var(--donation-upsell-base-font-size--) * 3.4);\n }\n\n .cta-button {\n font-size: calc(var(--donation-upsell-base-font-size--) * 2);\n display: block;\n width: 100%;\n margin-top: var(--padding-sm);\n padding: var(--donation-upsell-base-font-size--)\n calc(var(--donation-upsell-base-font-size--) * 2);\n background-color: var(--donation-upsell-cta-color--);\n color: var(--true-white);\n border-radius: 5px;\n border: 0;\n font-weight: bold;\n line-height: normal;\n outline: none;\n cursor: pointer;\n }\n\n .cta-button:disabled {\n background-color: var(--donation-upsell-cta-disabled-color--);\n cursor: not-allowed;\n }\n\n .paypal-upsell-slot {\n text-align: center;\n }\n\n .paypal-upsell-slot-blocker {\n position: absolute;\n width: 100%;\n height: calc(var(--donation-upsell-base-font-size--) * 4.5);\n bottom: 0;\n z-index: 250;\n cursor: not-allowed;\n background-color: rgba(255, 255, 255, 0.5);\n }\n\n .paypal-upsell-slot-blocker.hidden {\n display: none;\n }\n\n #paypal-cover-button {\n position: absolute;\n width: 100%;\n bottom: 0;\n }\n\n .paypal-upsell-slot-container {\n position: relative;\n }\n\n .error {\n font-size: calc(var(--donation-upsell-base-font-size--) * 1.4);\n margin: var(--padding-sm) 0;\n color: var(--donation-upsell-error-color--);\n }\n\n .or_separator {\n position: relative;\n margin: 0 calc(var(--donation-upsell-base-font-size--) * 2);\n font-size: calc(var(--donation-upsell-base-font-size--) * 2.6);\n font-weight: bold;\n text-transform: uppercase;\n text-align: center;\n }\n\n .or_separator:before {\n position: absolute;\n top: calc(50% - 1px);\n right: 0;\n left: 0;\n height: 2px;\n content: '';\n background: var(--mid-gray);\n }\n\n .or_separator span {\n display: inline-block;\n position: relative;\n padding: 0 var(--donation-upsell-base-font-size--);\n background: #f5f5f7;\n }\n `,\n ];\n }\n}\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { DonationType } from './donation-type.js';
|
|
2
|
+
/**
|
|
3
|
+
* Everything needed to represent and calculate a donation amount.
|
|
4
|
+
*
|
|
5
|
+
* Given an amount and whether the donor is covering the processing fee, it
|
|
6
|
+
* calculates the fee and the total, rounded to the cent. It also carries the
|
|
7
|
+
* `DonationType`: one-time, monthly, or upsell.
|
|
8
|
+
*/
|
|
9
|
+
export declare class DonationPaymentInfo {
|
|
10
|
+
donationType: DonationType;
|
|
11
|
+
amount: number;
|
|
12
|
+
coverFees: boolean;
|
|
13
|
+
constructor(params: {
|
|
14
|
+
donationType: DonationType;
|
|
15
|
+
amount: number;
|
|
16
|
+
coverFees: boolean;
|
|
17
|
+
});
|
|
18
|
+
/** The fee the donor is paying on top of the amount, or 0 if they aren't covering it. */
|
|
19
|
+
get feeAmountCovered(): number;
|
|
20
|
+
/** The processing fee for this amount, whether or not the donor covers it. */
|
|
21
|
+
get fee(): number;
|
|
22
|
+
/** The amount charged: the donation plus the fee when the donor covers it. */
|
|
23
|
+
get total(): number;
|
|
24
|
+
/** The total for an amount, with the fee added when `coverFees` is set. Rounded to the cent. */
|
|
25
|
+
static calculateTotal(amount: number, coverFees: boolean): number;
|
|
26
|
+
/** The processing fee for an amount. Rounded to the cent. */
|
|
27
|
+
static calculateFeeAmount(amount: number): number;
|
|
28
|
+
private static roundAmount;
|
|
29
|
+
}
|
|
30
|
+
/** The preset amounts the donation form offers. */
|
|
31
|
+
export declare const defaultDonationAmounts: number[];
|
|
32
|
+
/** The amount selected when the form first renders. */
|
|
33
|
+
export declare const defaultSelectedDonationInfo: DonationPaymentInfo;
|
|
34
|
+
//# sourceMappingURL=donation-payment-info.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"donation-payment-info.d.ts","sourceRoot":"","sources":["../../../../../src/elements/ia-donation-form/models/donation-payment-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;;GAMG;AACH,qBAAa,mBAAmB;IAC9B,YAAY,EAAE,YAAY,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;gBAEP,MAAM,EAAE;QAClB,YAAY,EAAE,YAAY,CAAC;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,OAAO,CAAC;KACpB;IAMD,yFAAyF;IACzF,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED,8EAA8E;IAC9E,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,8EAA8E;IAC9E,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,gGAAgG;IAChG,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,MAAM;IAOjE,6DAA6D;IAC7D,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAMjD,OAAO,CAAC,MAAM,CAAC,WAAW;CAG3B;AAED,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,EAAE,MAAM,EAAoC,CAAC;AAEhF,uDAAuD;AACvD,eAAO,MAAM,2BAA2B,EAAE,mBAKtC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { DonationType } from './donation-type.js';
|
|
2
|
+
/**
|
|
3
|
+
* Everything needed to represent and calculate a donation amount.
|
|
4
|
+
*
|
|
5
|
+
* Given an amount and whether the donor is covering the processing fee, it
|
|
6
|
+
* calculates the fee and the total, rounded to the cent. It also carries the
|
|
7
|
+
* `DonationType`: one-time, monthly, or upsell.
|
|
8
|
+
*/
|
|
9
|
+
export class DonationPaymentInfo {
|
|
10
|
+
constructor(params) {
|
|
11
|
+
this.donationType = params.donationType;
|
|
12
|
+
this.amount = params.amount;
|
|
13
|
+
this.coverFees = params.coverFees;
|
|
14
|
+
}
|
|
15
|
+
/** The fee the donor is paying on top of the amount, or 0 if they aren't covering it. */
|
|
16
|
+
get feeAmountCovered() {
|
|
17
|
+
return this.coverFees ? this.fee : 0;
|
|
18
|
+
}
|
|
19
|
+
/** The processing fee for this amount, whether or not the donor covers it. */
|
|
20
|
+
get fee() {
|
|
21
|
+
return DonationPaymentInfo.calculateFeeAmount(this.amount);
|
|
22
|
+
}
|
|
23
|
+
/** The amount charged: the donation plus the fee when the donor covers it. */
|
|
24
|
+
get total() {
|
|
25
|
+
return DonationPaymentInfo.calculateTotal(this.amount, this.coverFees);
|
|
26
|
+
}
|
|
27
|
+
/** The total for an amount, with the fee added when `coverFees` is set. Rounded to the cent. */
|
|
28
|
+
static calculateTotal(amount, coverFees) {
|
|
29
|
+
const fee = coverFees ? this.calculateFeeAmount(amount) : 0;
|
|
30
|
+
const total = amount + fee;
|
|
31
|
+
if (isNaN(total))
|
|
32
|
+
return 0;
|
|
33
|
+
return this.roundAmount(total);
|
|
34
|
+
}
|
|
35
|
+
/** The processing fee for an amount. Rounded to the cent. */
|
|
36
|
+
static calculateFeeAmount(amount) {
|
|
37
|
+
const fee = amount * 0.0219 + 0.29;
|
|
38
|
+
if (isNaN(fee))
|
|
39
|
+
return 0;
|
|
40
|
+
return this.roundAmount(fee);
|
|
41
|
+
}
|
|
42
|
+
static roundAmount(amount) {
|
|
43
|
+
return Math.round(amount * 100) / 100;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
/** The preset amounts the donation form offers. */
|
|
47
|
+
export const defaultDonationAmounts = [5, 10, 25, 50, 100, 500, 1000];
|
|
48
|
+
/** The amount selected when the form first renders. */
|
|
49
|
+
export const defaultSelectedDonationInfo = new DonationPaymentInfo({
|
|
50
|
+
donationType: DonationType.OneTime,
|
|
51
|
+
amount: 10,
|
|
52
|
+
coverFees: false,
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=donation-payment-info.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"donation-payment-info.js","sourceRoot":"","sources":["../../../../../src/elements/ia-donation-form/models/donation-payment-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,OAAO,mBAAmB;IAK9B,YAAY,MAIX;QACC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACpC,CAAC;IAED,yFAAyF;IACzF,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,8EAA8E;IAC9E,IAAI,GAAG;QACL,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED,8EAA8E;IAC9E,IAAI,KAAK;QACP,OAAO,mBAAmB,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;IAED,gGAAgG;IAChG,MAAM,CAAC,cAAc,CAAC,MAAc,EAAE,SAAkB;QACtD,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAG,MAAM,GAAG,GAAG,CAAC;QAC3B,IAAI,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,6DAA6D;IAC7D,MAAM,CAAC,kBAAkB,CAAC,MAAc;QACtC,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;QACnC,IAAI,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IAEO,MAAM,CAAC,WAAW,CAAC,MAAc;QACvC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACxC,CAAC;CACF;AAED,mDAAmD;AACnD,MAAM,CAAC,MAAM,sBAAsB,GAAa,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAEhF,uDAAuD;AACvD,MAAM,CAAC,MAAM,2BAA2B,GACtC,IAAI,mBAAmB,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC,OAAO;IAClC,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,KAAK;CACjB,CAAC,CAAC","sourcesContent":["import { DonationType } from './donation-type';\n\n/**\n * Everything needed to represent and calculate a donation amount.\n *\n * Given an amount and whether the donor is covering the processing fee, it\n * calculates the fee and the total, rounded to the cent. It also carries the\n * `DonationType`: one-time, monthly, or upsell.\n */\nexport class DonationPaymentInfo {\n donationType: DonationType;\n amount: number;\n coverFees: boolean;\n\n constructor(params: {\n donationType: DonationType;\n amount: number;\n coverFees: boolean;\n }) {\n this.donationType = params.donationType;\n this.amount = params.amount;\n this.coverFees = params.coverFees;\n }\n\n /** The fee the donor is paying on top of the amount, or 0 if they aren't covering it. */\n get feeAmountCovered(): number {\n return this.coverFees ? this.fee : 0;\n }\n\n /** The processing fee for this amount, whether or not the donor covers it. */\n get fee(): number {\n return DonationPaymentInfo.calculateFeeAmount(this.amount);\n }\n\n /** The amount charged: the donation plus the fee when the donor covers it. */\n get total(): number {\n return DonationPaymentInfo.calculateTotal(this.amount, this.coverFees);\n }\n\n /** The total for an amount, with the fee added when `coverFees` is set. Rounded to the cent. */\n static calculateTotal(amount: number, coverFees: boolean): number {\n const fee = coverFees ? this.calculateFeeAmount(amount) : 0;\n const total = amount + fee;\n if (isNaN(total)) return 0;\n return this.roundAmount(total);\n }\n\n /** The processing fee for an amount. Rounded to the cent. */\n static calculateFeeAmount(amount: number): number {\n const fee = amount * 0.0219 + 0.29;\n if (isNaN(fee)) return 0;\n return this.roundAmount(fee);\n }\n\n private static roundAmount(amount: number): number {\n return Math.round(amount * 100) / 100;\n }\n}\n\n/** The preset amounts the donation form offers. */\nexport const defaultDonationAmounts: number[] = [5, 10, 25, 50, 100, 500, 1000];\n\n/** The amount selected when the form first renders. */\nexport const defaultSelectedDonationInfo: DonationPaymentInfo =\n new DonationPaymentInfo({\n donationType: DonationType.OneTime,\n amount: 10,\n coverFees: false,\n });\n"]}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { BillingInfo, CustomerInfo } from './donor-contact-info.js';
|
|
2
|
+
import type { DonationType } from './donation-type.js';
|
|
3
|
+
import type { PaymentProvider } from './payment-provider.js';
|
|
4
|
+
/**
|
|
5
|
+
* Extra fields sent with a donation. Each one has to exist in the Braintree
|
|
6
|
+
* control panel before the backend will accept it, which is why the names are
|
|
7
|
+
* snake_case: they match the Braintree field names.
|
|
8
|
+
*/
|
|
9
|
+
export declare class DonationRequestCustomFields {
|
|
10
|
+
logged_in_user?: string;
|
|
11
|
+
referrer?: string;
|
|
12
|
+
fee_amount_covered?: number;
|
|
13
|
+
/**
|
|
14
|
+
* Campaign and A/B test information about where the donor came from.
|
|
15
|
+
*
|
|
16
|
+
* Freeform, but keep it something identifiable so it can be queried in
|
|
17
|
+
* CiviCRM. The donation banner uses `{Source}-{Test Name}-{Variant Name}`,
|
|
18
|
+
* e.g. `DonateBanner-Campaign Start 2020-IADefault`. Add more segments for
|
|
19
|
+
* more specificity: `DonateBanner-MidJuly2020 Campaign-VariantA-Button1`.
|
|
20
|
+
*/
|
|
21
|
+
origin?: string;
|
|
22
|
+
constructor(options?: {
|
|
23
|
+
logged_in_user?: string;
|
|
24
|
+
referrer?: string;
|
|
25
|
+
fee_amount_covered?: number;
|
|
26
|
+
origin?: string;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/** The request submitted to the backend to make a donation. */
|
|
30
|
+
export declare class DonationRequest {
|
|
31
|
+
paymentProvider: PaymentProvider;
|
|
32
|
+
paymentMethodNonce: string;
|
|
33
|
+
recaptchaToken?: string;
|
|
34
|
+
customerId?: string;
|
|
35
|
+
deviceData?: string;
|
|
36
|
+
upsellOnetimeTransactionId?: string;
|
|
37
|
+
/** First 6 digits of the credit card */
|
|
38
|
+
bin?: string;
|
|
39
|
+
/** The credit card's bank name */
|
|
40
|
+
binName?: string;
|
|
41
|
+
amount: number;
|
|
42
|
+
donationType: DonationType;
|
|
43
|
+
customer: CustomerInfo;
|
|
44
|
+
billing: BillingInfo;
|
|
45
|
+
customFields: DonationRequestCustomFields;
|
|
46
|
+
constructor(options: {
|
|
47
|
+
paymentProvider: PaymentProvider;
|
|
48
|
+
paymentMethodNonce: string;
|
|
49
|
+
recaptchaToken?: string;
|
|
50
|
+
customerId?: string;
|
|
51
|
+
deviceData?: string;
|
|
52
|
+
upsellOnetimeTransactionId?: string;
|
|
53
|
+
bin?: string;
|
|
54
|
+
binName?: string;
|
|
55
|
+
amount: number;
|
|
56
|
+
donationType: DonationType;
|
|
57
|
+
customer: CustomerInfo;
|
|
58
|
+
billing: BillingInfo;
|
|
59
|
+
customFields?: DonationRequestCustomFields;
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=donation-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"donation-request.d.ts","sourceRoot":"","sources":["../../../../../src/elements/ia-donation-form/models/donation-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;GAIG;AACH,qBAAa,2BAA2B;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;gBAEJ,OAAO,CAAC,EAAE;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB;CAMF;AAED,+DAA+D;AAC/D,qBAAa,eAAe;IAC1B,eAAe,EAAE,eAAe,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC,wCAAwC;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,YAAY,CAAC;IAE3B,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,WAAW,CAAC;IACrB,YAAY,EAAE,2BAA2B,CAAqC;gBAElE,OAAO,EAAE;QACnB,eAAe,EAAE,eAAe,CAAC;QACjC,kBAAkB,EAAE,MAAM,CAAC;QAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,YAAY,EAAE,YAAY,CAAC;QAC3B,QAAQ,EAAE,YAAY,CAAC;QACvB,OAAO,EAAE,WAAW,CAAC;QACrB,YAAY,CAAC,EAAE,2BAA2B,CAAC;KAC5C;CAqBF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extra fields sent with a donation. Each one has to exist in the Braintree
|
|
3
|
+
* control panel before the backend will accept it, which is why the names are
|
|
4
|
+
* snake_case: they match the Braintree field names.
|
|
5
|
+
*/
|
|
6
|
+
export class DonationRequestCustomFields {
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.logged_in_user = options?.logged_in_user;
|
|
9
|
+
this.referrer = options?.referrer;
|
|
10
|
+
this.fee_amount_covered = options?.fee_amount_covered;
|
|
11
|
+
this.origin = options?.origin;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/** The request submitted to the backend to make a donation. */
|
|
15
|
+
export class DonationRequest {
|
|
16
|
+
constructor(options) {
|
|
17
|
+
this.customFields = new DonationRequestCustomFields();
|
|
18
|
+
this.paymentProvider = options.paymentProvider;
|
|
19
|
+
this.paymentMethodNonce = options.paymentMethodNonce;
|
|
20
|
+
this.recaptchaToken = options.recaptchaToken;
|
|
21
|
+
this.customerId = options.customerId;
|
|
22
|
+
this.deviceData = options.deviceData;
|
|
23
|
+
this.upsellOnetimeTransactionId = options.upsellOnetimeTransactionId;
|
|
24
|
+
this.bin = options.bin;
|
|
25
|
+
this.binName = options.binName;
|
|
26
|
+
this.amount = options.amount;
|
|
27
|
+
this.donationType = options.donationType;
|
|
28
|
+
this.customer = options.customer;
|
|
29
|
+
this.billing = options.billing;
|
|
30
|
+
if (options.customFields) {
|
|
31
|
+
this.customFields = options.customFields;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=donation-request.js.map
|