@internetarchive/elements 1.1.6 → 1.1.7-webdev-9054.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +19 -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 +42 -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 +99 -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 +44 -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/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 +116 -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 +68 -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 +483 -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-credit-card-fields.d.ts +39 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-credit-card-fields.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-credit-card-fields.js +212 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-credit-card-fields.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 +774 -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 +380 -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-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 +59 -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 +75 -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 +111 -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 +522 -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 +95 -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 +522 -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/google-pay.svg +38 -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/venmo.svg +9 -0
- package/dist/src/elements/ia-donation-form/icons.d.ts +9 -0
- package/dist/src/elements/ia-donation-form/icons.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/icons.js +27 -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 +195 -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 +63 -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 +313 -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/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/package.json +12 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { css, html, LitElement, } from 'lit';
|
|
3
|
+
import { customElement } from '../../../util/custom-element.js';
|
|
4
|
+
import { 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
|
+
], IADonationErrorModalContent);
|
|
62
|
+
export { IADonationErrorModalContent };
|
|
63
|
+
//# 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,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAEnD,qFAAqF;AAE9E,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;IADvC,aAAa,CAAC,iCAAiC,CAAC;GACpC,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 { 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')\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,qBACa,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,313 @@
|
|
|
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 { 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
|
+
], IADonationUpsellModalContent);
|
|
312
|
+
export { IADonationUpsellModalContent };
|
|
313
|
+
//# 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":"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","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 { 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')\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,36 @@
|
|
|
1
|
+
export interface RecaptchaManagerInterface {
|
|
2
|
+
execute(): Promise<string>;
|
|
3
|
+
setup(container: HTMLElement, tabIndex: number, theme: ReCaptchaV2.Theme, type: ReCaptchaV2.Type): void;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Wraps an invisible reCAPTCHA so it can be run like a promise.
|
|
7
|
+
*
|
|
8
|
+
* `execute()` kicks off the challenge, but the result arrives through the
|
|
9
|
+
* response and expiration handlers bound during `setup()`. So `execute()`
|
|
10
|
+
* stashes resolve and reject callbacks and the handlers call them.
|
|
11
|
+
*
|
|
12
|
+
* try {
|
|
13
|
+
* const token = await recaptchaManager.execute();
|
|
14
|
+
* } catch {
|
|
15
|
+
* // 'expired' or 'error'
|
|
16
|
+
* }
|
|
17
|
+
*/
|
|
18
|
+
export declare class RecaptchaManager implements RecaptchaManagerInterface {
|
|
19
|
+
private grecaptchaLibrary;
|
|
20
|
+
private siteKey;
|
|
21
|
+
constructor(options: {
|
|
22
|
+
grecaptchaLibrary: ReCaptchaV2.ReCaptcha;
|
|
23
|
+
siteKey: string;
|
|
24
|
+
});
|
|
25
|
+
private executionSuccessBlock?;
|
|
26
|
+
private executionExpiredBlock?;
|
|
27
|
+
private executionErrorBlock?;
|
|
28
|
+
private isExecuting;
|
|
29
|
+
execute(): Promise<string>;
|
|
30
|
+
private finishExecution;
|
|
31
|
+
setup(container: HTMLElement, tabIndex: number, theme: ReCaptchaV2.Theme, type: ReCaptchaV2.Type): void;
|
|
32
|
+
private responseHandler;
|
|
33
|
+
private expiredHandler;
|
|
34
|
+
private errorHandler;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=recaptcha-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recaptcha-manager.d.ts","sourceRoot":"","sources":["../../../../src/elements/ia-donation-form/recaptcha-manager.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3B,KAAK,CACH,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,IAAI,EAAE,WAAW,CAAC,IAAI,GACrB,IAAI,CAAC;CACT;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,OAAO,CAAC,iBAAiB,CAAwB;IAEjD,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE;QACnB,iBAAiB,EAAE,WAAW,CAAC,SAAS,CAAC;QACzC,OAAO,EAAE,MAAM,CAAC;KACjB;IAKD,OAAO,CAAC,qBAAqB,CAAC,CAA0B;IAExD,OAAO,CAAC,qBAAqB,CAAC,CAAa;IAE3C,OAAO,CAAC,mBAAmB,CAAC,CAAa;IAEzC,OAAO,CAAC,WAAW,CAAS;IAE5B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;IAyB1B,OAAO,CAAC,eAAe;IAKvB,KAAK,CACH,SAAS,EAAE,WAAW,EACtB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,WAAW,CAAC,KAAK,EACxB,IAAI,EAAE,WAAW,CAAC,IAAI,GACrB,IAAI;IAaP,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,YAAY;CAMrB"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wraps an invisible reCAPTCHA so it can be run like a promise.
|
|
3
|
+
*
|
|
4
|
+
* `execute()` kicks off the challenge, but the result arrives through the
|
|
5
|
+
* response and expiration handlers bound during `setup()`. So `execute()`
|
|
6
|
+
* stashes resolve and reject callbacks and the handlers call them.
|
|
7
|
+
*
|
|
8
|
+
* try {
|
|
9
|
+
* const token = await recaptchaManager.execute();
|
|
10
|
+
* } catch {
|
|
11
|
+
* // 'expired' or 'error'
|
|
12
|
+
* }
|
|
13
|
+
*/
|
|
14
|
+
export class RecaptchaManager {
|
|
15
|
+
constructor(options) {
|
|
16
|
+
this.isExecuting = false;
|
|
17
|
+
this.grecaptchaLibrary = options.grecaptchaLibrary;
|
|
18
|
+
this.siteKey = options.siteKey;
|
|
19
|
+
}
|
|
20
|
+
execute() {
|
|
21
|
+
if (this.isExecuting) {
|
|
22
|
+
this.finishExecution();
|
|
23
|
+
}
|
|
24
|
+
this.isExecuting = true;
|
|
25
|
+
return new Promise((resolve, reject) => {
|
|
26
|
+
this.executionSuccessBlock = (token) => {
|
|
27
|
+
this.finishExecution();
|
|
28
|
+
resolve(token);
|
|
29
|
+
};
|
|
30
|
+
this.executionExpiredBlock = () => {
|
|
31
|
+
this.finishExecution();
|
|
32
|
+
reject('expired');
|
|
33
|
+
};
|
|
34
|
+
this.executionErrorBlock = () => {
|
|
35
|
+
this.finishExecution();
|
|
36
|
+
reject('error');
|
|
37
|
+
};
|
|
38
|
+
this.grecaptchaLibrary.execute();
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
finishExecution() {
|
|
42
|
+
this.isExecuting = false;
|
|
43
|
+
this.grecaptchaLibrary.reset();
|
|
44
|
+
}
|
|
45
|
+
setup(container, tabIndex, theme, type) {
|
|
46
|
+
this.grecaptchaLibrary.render(container, {
|
|
47
|
+
callback: this.responseHandler.bind(this),
|
|
48
|
+
'expired-callback': this.expiredHandler.bind(this),
|
|
49
|
+
'error-callback': this.errorHandler.bind(this),
|
|
50
|
+
sitekey: this.siteKey,
|
|
51
|
+
tabindex: tabIndex,
|
|
52
|
+
theme,
|
|
53
|
+
type,
|
|
54
|
+
size: 'invisible',
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
responseHandler(response) {
|
|
58
|
+
if (this.executionSuccessBlock) {
|
|
59
|
+
this.executionSuccessBlock(response);
|
|
60
|
+
this.executionSuccessBlock = undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
expiredHandler() {
|
|
64
|
+
if (this.executionExpiredBlock) {
|
|
65
|
+
this.executionExpiredBlock();
|
|
66
|
+
this.executionExpiredBlock = undefined;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
errorHandler() {
|
|
70
|
+
if (this.executionErrorBlock) {
|
|
71
|
+
this.executionErrorBlock();
|
|
72
|
+
this.executionErrorBlock = undefined;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=recaptcha-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recaptcha-manager.js","sourceRoot":"","sources":["../../../../src/elements/ia-donation-form/recaptcha-manager.ts"],"names":[],"mappings":"AAUA;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,gBAAgB;IAK3B,YAAY,OAGX;QAWO,gBAAW,GAAG,KAAK,CAAC;QAV1B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAUD,OAAO;QACL,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,qBAAqB,GAAG,CAAC,KAAa,EAAQ,EAAE;gBACnD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC;YAEF,IAAI,CAAC,qBAAqB,GAAG,GAAS,EAAE;gBACtC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM,CAAC,SAAS,CAAC,CAAC;YACpB,CAAC,CAAC;YAEF,IAAI,CAAC,mBAAmB,GAAG,GAAS,EAAE;gBACpC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC,CAAC;YAEF,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CACH,SAAsB,EACtB,QAAgB,EAChB,KAAwB,EACxB,IAAsB;QAEtB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE;YACvC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YACzC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAClD,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,QAAQ;YAClB,KAAK;YACL,IAAI;YACJ,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;IACL,CAAC;IAEO,eAAe,CAAC,QAAgB;QACtC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC7B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;QACvC,CAAC;IACH,CAAC;CACF","sourcesContent":["export interface RecaptchaManagerInterface {\n execute(): Promise<string>;\n setup(\n container: HTMLElement,\n tabIndex: number,\n theme: ReCaptchaV2.Theme,\n type: ReCaptchaV2.Type,\n ): void;\n}\n\n/**\n * Wraps an invisible reCAPTCHA so it can be run like a promise.\n *\n * `execute()` kicks off the challenge, but the result arrives through the\n * response and expiration handlers bound during `setup()`. So `execute()`\n * stashes resolve and reject callbacks and the handlers call them.\n *\n * try {\n * const token = await recaptchaManager.execute();\n * } catch {\n * // 'expired' or 'error'\n * }\n */\nexport class RecaptchaManager implements RecaptchaManagerInterface {\n private grecaptchaLibrary: ReCaptchaV2.ReCaptcha;\n\n private siteKey: string;\n\n constructor(options: {\n grecaptchaLibrary: ReCaptchaV2.ReCaptcha;\n siteKey: string;\n }) {\n this.grecaptchaLibrary = options.grecaptchaLibrary;\n this.siteKey = options.siteKey;\n }\n\n private executionSuccessBlock?: (token: string) => void;\n\n private executionExpiredBlock?: () => void;\n\n private executionErrorBlock?: () => void;\n\n private isExecuting = false;\n\n execute(): Promise<string> {\n if (this.isExecuting) {\n this.finishExecution();\n }\n this.isExecuting = true;\n return new Promise((resolve, reject) => {\n this.executionSuccessBlock = (token: string): void => {\n this.finishExecution();\n resolve(token);\n };\n\n this.executionExpiredBlock = (): void => {\n this.finishExecution();\n reject('expired');\n };\n\n this.executionErrorBlock = (): void => {\n this.finishExecution();\n reject('error');\n };\n\n this.grecaptchaLibrary.execute();\n });\n }\n\n private finishExecution(): void {\n this.isExecuting = false;\n this.grecaptchaLibrary.reset();\n }\n\n setup(\n container: HTMLElement,\n tabIndex: number,\n theme: ReCaptchaV2.Theme,\n type: ReCaptchaV2.Type,\n ): void {\n this.grecaptchaLibrary.render(container, {\n callback: this.responseHandler.bind(this),\n 'expired-callback': this.expiredHandler.bind(this),\n 'error-callback': this.errorHandler.bind(this),\n sitekey: this.siteKey,\n tabindex: tabIndex,\n theme,\n type,\n size: 'invisible',\n });\n }\n\n private responseHandler(response: string): void {\n if (this.executionSuccessBlock) {\n this.executionSuccessBlock(response);\n this.executionSuccessBlock = undefined;\n }\n }\n\n private expiredHandler(): void {\n if (this.executionExpiredBlock) {\n this.executionExpiredBlock();\n this.executionExpiredBlock = undefined;\n }\n }\n\n private errorHandler(): void {\n if (this.executionErrorBlock) {\n this.executionErrorBlock();\n this.executionErrorBlock = undefined;\n }\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@internetarchive/elements",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.7-webdev-9054.0",
|
|
4
4
|
"description": "A web component library from the Internet Archive.",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"type": "module",
|
|
@@ -34,12 +34,23 @@
|
|
|
34
34
|
"strings:build": "wireit"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
+
"@internetarchive/analytics-manager": "^0.1.5",
|
|
37
38
|
"@internetarchive/ia-clearable-text-input": "^1.1.1",
|
|
38
39
|
"@internetarchive/ia-dropdown": "^2.2.0",
|
|
40
|
+
"@internetarchive/lazy-loader-service": "^0.2.0",
|
|
41
|
+
"@internetarchive/modal-manager": "^2.0.6",
|
|
42
|
+
"@internetarchive/promised-singleton": "^0.2.1",
|
|
39
43
|
"@lit/localize": "^0.12.2",
|
|
44
|
+
"@types/applepayjs": "^14.0.9",
|
|
45
|
+
"@types/braintree-web": "^3.143.0",
|
|
46
|
+
"@types/googlepay": "^0.7.12",
|
|
47
|
+
"@types/grecaptcha": "^3.0.9",
|
|
48
|
+
"@types/paypal-checkout-components": "^4.0.8",
|
|
49
|
+
"currency.js": "^2.0.4",
|
|
40
50
|
"dayjs": "^1.11.23",
|
|
41
51
|
"lit": "^2.8.0 || ^3.3.2",
|
|
42
52
|
"magic-snowflakes": "^7.0.2",
|
|
53
|
+
"nanoevents": "^9.1.0",
|
|
43
54
|
"tslib": "^2.8.1"
|
|
44
55
|
},
|
|
45
56
|
"devDependencies": {
|