@internetarchive/elements 1.1.2 → 1.1.3-l10n-demo.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -1
- package/dist/src/elements/ia-button/ia-button.d.ts.map +1 -1
- package/dist/src/elements/ia-button/ia-button.js +2 -2
- package/dist/src/elements/ia-button/ia-button.js.map +1 -1
- package/dist/src/elements/ia-combo-box/ia-combo-box.d.ts.map +1 -1
- package/dist/src/elements/ia-combo-box/ia-combo-box.js +3 -2
- package/dist/src/elements/ia-combo-box/ia-combo-box.js.map +1 -1
- package/dist/src/elements/ia-donation-form/analytics.d.ts +12 -0
- package/dist/src/elements/ia-donation-form/analytics.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/analytics.js +2 -0
- package/dist/src/elements/ia-donation-form/analytics.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.d.ts +79 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager.d.ts +73 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager.js +126 -0
- package/dist/src/elements/ia-donation-form/braintree/braintree-manager.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/hosting-environment.d.ts +10 -0
- package/dist/src/elements/ia-donation-form/braintree/hosting-environment.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/hosting-environment.js +9 -0
- package/dist/src/elements/ia-donation-form/braintree/hosting-environment.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-clients.d.ts +47 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-clients.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-clients.js +104 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-clients.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.d.ts +11 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts +20 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.d.ts +21 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.js +83 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.d.ts +11 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.js +13 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.d.ts +27 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.js +67 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.d.ts +18 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.d.ts +41 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.js +95 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.d.ts +14 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.js +9 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.d.ts +40 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.js +58 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.d.ts +8 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.d.ts +19 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.js +45 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.d.ts +57 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.js +44 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-button-datasource.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.d.ts +14 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.d.ts +27 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.js +44 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/paypal/paypal.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.d.ts +8 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.d.ts +40 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.js +65 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo-restoration-state-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.d.ts +25 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.js +42 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers/venmo/venmo.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.d.ts +18 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.js +2 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers-interface.js.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers.d.ts +42 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers.js +99 -0
- package/dist/src/elements/ia-donation-form/braintree/payment-providers.js.map +1 -0
- package/dist/src/elements/ia-donation-form/currency-validator.d.ts +16 -0
- package/dist/src/elements/ia-donation-form/currency-validator.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/currency-validator.js +37 -0
- package/dist/src/elements/ia-donation-form/currency-validator.js.map +1 -0
- package/dist/src/elements/ia-donation-form/donation-form-error.d.ts +5 -0
- package/dist/src/elements/ia-donation-form/donation-form-error.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/donation-form-error.js +8 -0
- package/dist/src/elements/ia-donation-form/donation-form-error.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.d.ts +118 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.js +194 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/donation-flow-modal-manager.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.d.ts +24 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.js +70 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/apple-pay-flow-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.d.ts +44 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.js +110 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/credit-card-flow-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.d.ts +24 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.js +74 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/google-pay-flow-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.d.ts +47 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.js +204 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/paypal-flow-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.d.ts +30 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.js +77 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/handlers/venmo-flow-handler.js.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.d.ts +80 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.js +72 -0
- package/dist/src/elements/ia-donation-form/flow-handlers/payment-flow-handlers.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.d.ts +2 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.js +2 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/autocomplete-field-options.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.d.ts +3 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.js +254 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/countries.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.d.ts +70 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.js +497 -0
- package/dist/src/elements/ia-donation-form/form-elements/contact-form/ia-donation-contact-form.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.d.ts +26 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.js +163 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-badged-input.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.d.ts +118 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.js +772 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-edit-donation.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.d.ts +31 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.js +93 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-header.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.d.ts +33 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.js +378 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-payment-selector.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.d.ts +21 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.js +182 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.d.ts +11 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.js +60 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-summary.js.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.d.ts +10 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.js +76 -0
- package/dist/src/elements/ia-donation-form/form-elements/ia-donation-total-amount.js.map +1 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form-controller.d.ts +114 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form-controller.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form-controller.js +586 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form-controller.js.map +1 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form.d.ts +94 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form.js +516 -0
- package/dist/src/elements/ia-donation-form/ia-donation-form.js.map +1 -0
- package/dist/src/elements/ia-donation-form/icons/apple-pay.svg +22 -0
- package/dist/src/elements/ia-donation-form/icons/calendar.svg +15 -0
- package/dist/src/elements/ia-donation-form/icons/credit-card.svg +15 -0
- package/dist/src/elements/ia-donation-form/icons/email.svg +3 -0
- package/dist/src/elements/ia-donation-form/icons/google-pay.svg +38 -0
- package/dist/src/elements/ia-donation-form/icons/locale-pin.svg +7 -0
- package/dist/src/elements/ia-donation-form/icons/lock.svg +6 -0
- package/dist/src/elements/ia-donation-form/icons/paypal.svg +39 -0
- package/dist/src/elements/ia-donation-form/icons/user.svg +6 -0
- package/dist/src/elements/ia-donation-form/icons/venmo.svg +9 -0
- package/dist/src/elements/ia-donation-form/icons.d.ts +12 -0
- package/dist/src/elements/ia-donation-form/icons.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/icons.js +33 -0
- package/dist/src/elements/ia-donation-form/icons.js.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.d.ts +27 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.js +196 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-confirm-modal.js.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.d.ts +7 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.js +64 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-error-modal-content.js.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.d.ts +28 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.js +314 -0
- package/dist/src/elements/ia-donation-form/modals/ia-donation-upsell-modal-content.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-payment-info.d.ts +34 -0
- package/dist/src/elements/ia-donation-form/models/donation-payment-info.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-payment-info.js +54 -0
- package/dist/src/elements/ia-donation-form/models/donation-payment-info.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-request.d.ts +62 -0
- package/dist/src/elements/ia-donation-form/models/donation-request.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-request.js +35 -0
- package/dist/src/elements/ia-donation-form/models/donation-request.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-response.d.ts +67 -0
- package/dist/src/elements/ia-donation-form/models/donation-response.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-response.js +57 -0
- package/dist/src/elements/ia-donation-form/models/donation-response.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-type.d.ts +8 -0
- package/dist/src/elements/ia-donation-form/models/donation-type.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donation-type.js +7 -0
- package/dist/src/elements/ia-donation-form/models/donation-type.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donor-contact-info.d.ts +38 -0
- package/dist/src/elements/ia-donation-form/models/donor-contact-info.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/donor-contact-info.js +27 -0
- package/dist/src/elements/ia-donation-form/models/donor-contact-info.js.map +1 -0
- package/dist/src/elements/ia-donation-form/models/payment-provider.d.ts +10 -0
- package/dist/src/elements/ia-donation-form/models/payment-provider.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/models/payment-provider.js +9 -0
- package/dist/src/elements/ia-donation-form/models/payment-provider.js.map +1 -0
- package/dist/src/elements/ia-donation-form/recaptcha-manager.d.ts +36 -0
- package/dist/src/elements/ia-donation-form/recaptcha-manager.d.ts.map +1 -0
- package/dist/src/elements/ia-donation-form/recaptcha-manager.js +76 -0
- package/dist/src/elements/ia-donation-form/recaptcha-manager.js.map +1 -0
- package/dist/src/elements/ia-dropdown/assets/caret-down.svg +4 -0
- package/dist/src/elements/ia-dropdown/assets/caret-up.svg +4 -0
- package/dist/src/elements/ia-dropdown/ia-dropdown.d.ts +185 -0
- package/dist/src/elements/ia-dropdown/ia-dropdown.d.ts.map +1 -0
- package/dist/src/elements/ia-dropdown/ia-dropdown.js +762 -0
- package/dist/src/elements/ia-dropdown/ia-dropdown.js.map +1 -0
- package/dist/src/elements/ia-dropdown/ia-icon-label.d.ts +10 -0
- package/dist/src/elements/ia-dropdown/ia-icon-label.d.ts.map +1 -0
- package/dist/src/elements/ia-dropdown/ia-icon-label.js +103 -0
- package/dist/src/elements/ia-dropdown/ia-icon-label.js.map +1 -0
- package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.d.ts +3 -3
- package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.d.ts.map +1 -1
- package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.js +5 -6
- package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.js.map +1 -1
- package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.d.ts +4 -4
- package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.d.ts.map +1 -1
- package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.js +5 -8
- package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.js.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-image-viewer.d.ts.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-image-viewer.js +3 -2
- package/dist/src/elements/ia-image-viewer/ia-image-viewer.js.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-imgview-controls.d.ts.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-imgview-controls.js +3 -2
- package/dist/src/elements/ia-image-viewer/ia-imgview-controls.js.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-imgview-slide.d.ts.map +1 -1
- package/dist/src/elements/ia-image-viewer/ia-imgview-slide.js +3 -2
- package/dist/src/elements/ia-image-viewer/ia-imgview-slide.js.map +1 -1
- package/dist/src/elements/ia-otp-form/ia-otp-form.d.ts.map +1 -1
- package/dist/src/elements/ia-otp-form/ia-otp-form.js +3 -2
- package/dist/src/elements/ia-otp-form/ia-otp-form.js.map +1 -1
- package/dist/src/elements/ia-playback-controls/ia-playback-controls.d.ts.map +1 -1
- package/dist/src/elements/ia-playback-controls/ia-playback-controls.js +3 -2
- package/dist/src/elements/ia-playback-controls/ia-playback-controls.js.map +1 -1
- package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts.map +1 -1
- package/dist/src/elements/ia-radio-player/ia-radio-player.js +3 -2
- package/dist/src/elements/ia-radio-player/ia-radio-player.js.map +1 -1
- package/dist/src/elements/ia-radio-player/ia-search-results-switcher.d.ts.map +1 -1
- package/dist/src/elements/ia-radio-player/ia-search-results-switcher.js +3 -2
- package/dist/src/elements/ia-radio-player/ia-search-results-switcher.js.map +1 -1
- package/dist/src/elements/ia-reviews/assets/delete-icon.svg +8 -0
- package/dist/src/elements/ia-reviews/assets/star-basic.svg +6 -0
- package/dist/src/elements/ia-reviews/assets/star-selected.svg +8 -0
- package/dist/src/elements/ia-reviews/assets/star-unselected.svg +8 -0
- package/dist/src/elements/ia-reviews/ia-review-form.d.ts +103 -0
- package/dist/src/elements/ia-reviews/ia-review-form.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/ia-review-form.js +685 -0
- package/dist/src/elements/ia-reviews/ia-review-form.js.map +1 -0
- package/dist/src/elements/ia-reviews/ia-review.d.ts +51 -0
- package/dist/src/elements/ia-reviews/ia-review.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/ia-review.js +344 -0
- package/dist/src/elements/ia-reviews/ia-review.js.map +1 -0
- package/dist/src/elements/ia-reviews/ia-reviews.d.ts +68 -0
- package/dist/src/elements/ia-reviews/ia-reviews.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/ia-reviews.js +354 -0
- package/dist/src/elements/ia-reviews/ia-reviews.js.map +1 -0
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.d.ts +23 -0
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.js +37 -0
- package/dist/src/elements/ia-reviews/mocks/mock-fetch-handler.js.map +1 -0
- package/dist/src/elements/ia-reviews/mocks/mock-review-service.d.ts +12 -0
- package/dist/src/elements/ia-reviews/mocks/mock-review-service.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/mocks/mock-review-service.js +19 -0
- package/dist/src/elements/ia-reviews/mocks/mock-review-service.js.map +1 -0
- package/dist/src/elements/ia-reviews/models.d.ts +38 -0
- package/dist/src/elements/ia-reviews/models.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/models.js +2 -0
- package/dist/src/elements/ia-reviews/models.js.map +1 -0
- package/dist/src/elements/ia-reviews/review-service.d.ts +53 -0
- package/dist/src/elements/ia-reviews/review-service.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/review-service.js +97 -0
- package/dist/src/elements/ia-reviews/review-service.js.map +1 -0
- package/dist/src/elements/ia-reviews/utils/collapse-space.d.ts +13 -0
- package/dist/src/elements/ia-reviews/utils/collapse-space.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/utils/collapse-space.js +19 -0
- package/dist/src/elements/ia-reviews/utils/collapse-space.js.map +1 -0
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.d.ts +14 -0
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.js +65 -0
- package/dist/src/elements/ia-reviews/utils/friendly-truncate.js.map +1 -0
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.d.ts +9 -0
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.js +40 -0
- package/dist/src/elements/ia-reviews/utils/link-urls-in-text.js.map +1 -0
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.d.ts +9 -0
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.js +29 -0
- package/dist/src/elements/ia-reviews/utils/sanitize-review-body.js.map +1 -0
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.d.ts +13 -0
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.d.ts.map +1 -0
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.js +19 -0
- package/dist/src/elements/ia-reviews/utils/truncate-screenname.js.map +1 -0
- package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.d.ts +2 -2
- package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.d.ts.map +1 -1
- package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.js +4 -5
- package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.js.map +1 -1
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts +3 -3
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts.map +1 -1
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.js +7 -12
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.js.map +1 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.js +28 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-close.js +20 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-close.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.js +18 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js +30 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-images.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-images.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-search.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-search.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-software.js +18 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-software.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.js +18 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js +18 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.js +21 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-user.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-user.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-video.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-video.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-web.js +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icon-web.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon.d.ts +6 -0
- package/dist/src/elements/ia-topnav/assets/img/icon.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icon.js +17 -0
- package/dist/src/elements/ia-topnav/assets/img/icon.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icons.d.ts +19 -0
- package/dist/src/elements/ia-topnav/assets/img/icons.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/icons.js +33 -0
- package/dist/src/elements/ia-topnav/assets/img/icons.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js +21 -0
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts +3 -0
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js +13 -0
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js.map +1 -0
- package/dist/src/elements/ia-topnav/data/menus.d.ts +17 -0
- package/dist/src/elements/ia-topnav/data/menus.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/data/menus.js +754 -0
- package/dist/src/elements/ia-topnav/data/menus.js.map +1 -0
- package/dist/src/elements/ia-topnav/dropdown-menu.d.ts +21 -0
- package/dist/src/elements/ia-topnav/dropdown-menu.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/dropdown-menu.js +315 -0
- package/dist/src/elements/ia-topnav/dropdown-menu.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts +11 -0
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js +89 -0
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts +6 -0
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js +47 -0
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts +20 -0
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.js +183 -0
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts +31 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.js +287 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts +21 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js +222 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts +16 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js +221 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts +20 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js +285 -0
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts +12 -0
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js +65 -0
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts +53 -0
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js +653 -0
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts +12 -0
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js +128 -0
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts +4 -0
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js +10 -0
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts +7 -0
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js +39 -0
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts +10 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js +64 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts +20 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js +131 -0
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav.d.ts +88 -0
- package/dist/src/elements/ia-topnav/ia-topnav.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/ia-topnav.js +443 -0
- package/dist/src/elements/ia-topnav/ia-topnav.js.map +1 -0
- package/dist/src/elements/ia-topnav/lib/helpers.d.ts +13 -0
- package/dist/src/elements/ia-topnav/lib/helpers.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/lib/helpers.js +24 -0
- package/dist/src/elements/ia-topnav/lib/helpers.js.map +1 -0
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts +46 -0
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js +136 -0
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js.map +1 -0
- package/dist/src/elements/ia-topnav/models.d.ts +65 -0
- package/dist/src/elements/ia-topnav/models.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/models.js +10 -0
- package/dist/src/elements/ia-topnav/models.js.map +1 -0
- package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts +2 -0
- package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/subnav-list-styles.js +49 -0
- package/dist/src/elements/ia-topnav/subnav-list-styles.js.map +1 -0
- package/dist/src/elements/ia-topnav/tracked-element.d.ts +6 -0
- package/dist/src/elements/ia-topnav/tracked-element.d.ts.map +1 -0
- package/dist/src/elements/ia-topnav/tracked-element.js +29 -0
- package/dist/src/elements/ia-topnav/tracked-element.js.map +1 -0
- package/dist/src/elements/ia-transcript-view/ia-transcript-entry.d.ts.map +1 -1
- package/dist/src/elements/ia-transcript-view/ia-transcript-entry.js +4 -0
- package/dist/src/elements/ia-transcript-view/ia-transcript-entry.js.map +1 -1
- package/dist/src/elements/ia-transcript-view/ia-transcript-view.d.ts.map +1 -1
- package/dist/src/elements/ia-transcript-view/ia-transcript-view.js +3 -2
- package/dist/src/elements/ia-transcript-view/ia-transcript-view.js.map +1 -1
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts +24 -0
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts.map +1 -0
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js +240 -0
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js.map +1 -0
- package/dist/src/elements/index.d.ts +63 -0
- package/dist/src/elements/index.d.ts.map +1 -1
- package/dist/src/elements/index.js +63 -0
- package/dist/src/elements/index.js.map +1 -1
- package/dist/src/locales/es.d.ts +254 -0
- package/dist/src/locales/es.d.ts.map +1 -0
- package/dist/src/locales/es.js +304 -0
- package/dist/src/locales/es.js.map +1 -0
- package/package.json +43 -6
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apple-pay-session-datasource.d.ts","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,KAAK,EACV,iCAAiC,EACjC,kCAAkC,EACnC,MAAM,0CAA0C,CAAC;AAElD,qBAAa,yBACX,YAAW,kCAAkC;IAE7C,QAAQ,CAAC,EAAE,iCAAiC,CAAC;IAC7C,YAAY,EAAE,mBAAmB,CAAC;IAElC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,gBAAgB,CAA4B;gBAExC,OAAO,EAAE;QACnB,YAAY,EAAE,mBAAmB,CAAC;QAClC,OAAO,EAAE,eAAe,CAAC;QACzB,gBAAgB,EAAE,SAAS,CAAC,QAAQ,CAAC;QACrC,gBAAgB,EAAE,yBAAyB,CAAC;KAC7C;IAOK,kBAAkB,CACtB,KAAK,EAAE,UAAU,CAAC,6BAA6B,GAC9C,OAAO,CAAC,IAAI,CAAC;IAqBV,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAIzB,mBAAmB,CACvB,KAAK,EAAE,UAAU,CAAC,8BAA8B,GAC/C,OAAO,CAAC,IAAI,CAAC;CAoDjB"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { BillingInfo, CustomerInfo } from '../../../models/donor-contact-info.js';
|
|
2
|
+
import { PaymentProvider } from '../../../models/payment-provider.js';
|
|
3
|
+
export class ApplePaySessionDataSource {
|
|
4
|
+
constructor(options) {
|
|
5
|
+
this.session = options.session;
|
|
6
|
+
this.donationInfo = options.donationInfo;
|
|
7
|
+
this.applePayInstance = options.applePayInstance;
|
|
8
|
+
this.braintreeManager = options.braintreeManager;
|
|
9
|
+
}
|
|
10
|
+
async onvalidatemerchant(event) {
|
|
11
|
+
return new Promise((resolve, reject) => {
|
|
12
|
+
this.applePayInstance.performValidation({
|
|
13
|
+
validationURL: event.validationURL,
|
|
14
|
+
displayName: 'Internet Archive',
|
|
15
|
+
}, (validationErr, validationData) => {
|
|
16
|
+
if (validationErr) {
|
|
17
|
+
this.delegate?.paymentFailed(validationErr);
|
|
18
|
+
this.session.abort();
|
|
19
|
+
reject(`Merchant validation error: ${validationErr}`);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
this.session.completeMerchantValidation(validationData);
|
|
23
|
+
resolve();
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
async oncancel() {
|
|
29
|
+
this.delegate?.paymentCancelled();
|
|
30
|
+
}
|
|
31
|
+
async onpaymentauthorized(event) {
|
|
32
|
+
let payload;
|
|
33
|
+
try {
|
|
34
|
+
payload = await this.applePayInstance.tokenize({
|
|
35
|
+
token: event.payment.token,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
catch (err) {
|
|
39
|
+
this.delegate?.paymentFailed(err);
|
|
40
|
+
this.session.completePayment(ApplePaySession.STATUS_FAILURE);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const payment = event.payment;
|
|
44
|
+
const billingContact = payment.billingContact;
|
|
45
|
+
const shippingContact = payment.shippingContact;
|
|
46
|
+
const [line1, line2] = billingContact?.addressLines ?? [];
|
|
47
|
+
const billingInfo = new BillingInfo({
|
|
48
|
+
streetAddress: line1,
|
|
49
|
+
extendedAddress: line2,
|
|
50
|
+
locality: billingContact?.locality,
|
|
51
|
+
region: billingContact?.administrativeArea,
|
|
52
|
+
postalCode: billingContact?.postalCode,
|
|
53
|
+
countryCodeAlpha2: billingContact?.countryCode,
|
|
54
|
+
});
|
|
55
|
+
const customerInfo = new CustomerInfo({
|
|
56
|
+
email: shippingContact?.emailAddress,
|
|
57
|
+
firstName: shippingContact?.givenName,
|
|
58
|
+
lastName: shippingContact?.familyName,
|
|
59
|
+
});
|
|
60
|
+
try {
|
|
61
|
+
const donationResponse = await this.braintreeManager.submitDonation({
|
|
62
|
+
nonce: payload.nonce,
|
|
63
|
+
paymentProvider: PaymentProvider.ApplePay,
|
|
64
|
+
donationInfo: this.donationInfo,
|
|
65
|
+
billingInfo,
|
|
66
|
+
customerInfo,
|
|
67
|
+
});
|
|
68
|
+
if (donationResponse.success) {
|
|
69
|
+
this.delegate?.paymentComplete(donationResponse);
|
|
70
|
+
this.session.completePayment(ApplePaySession.STATUS_SUCCESS);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
this.delegate?.paymentFailed('Failure submitting data');
|
|
74
|
+
this.session.completePayment(ApplePaySession.STATUS_FAILURE);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
this.delegate?.paymentFailed(err);
|
|
79
|
+
this.session.completePayment(ApplePaySession.STATUS_FAILURE);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=apple-pay-session-datasource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apple-pay-session-datasource.js","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-datasource.ts"],"names":[],"mappings":"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","sourcesContent":["import type * as braintree from 'braintree-web';\n\nimport type { DonationPaymentInfo } from '../../../models/donation-payment-info';\nimport { BillingInfo, CustomerInfo } from '../../../models/donor-contact-info';\nimport { PaymentProvider } from '../../../models/payment-provider';\nimport type { BraintreeManagerInterface } from '../../braintree-manager-interface';\nimport type {\n ApplePaySessionDataSourceDelegate,\n ApplePaySessionDataSourceInterface,\n} from './apple-pay-session-datasource-interface';\n\nexport class ApplePaySessionDataSource\n implements ApplePaySessionDataSourceInterface\n{\n delegate?: ApplePaySessionDataSourceDelegate;\n donationInfo: DonationPaymentInfo;\n\n private session: ApplePaySession;\n private applePayInstance: braintree.ApplePay;\n private braintreeManager: BraintreeManagerInterface;\n\n constructor(options: {\n donationInfo: DonationPaymentInfo;\n session: ApplePaySession;\n applePayInstance: braintree.ApplePay;\n braintreeManager: BraintreeManagerInterface;\n }) {\n this.session = options.session;\n this.donationInfo = options.donationInfo;\n this.applePayInstance = options.applePayInstance;\n this.braintreeManager = options.braintreeManager;\n }\n\n async onvalidatemerchant(\n event: ApplePayJS.ApplePayValidateMerchantEvent,\n ): Promise<void> {\n return new Promise((resolve, reject) => {\n this.applePayInstance.performValidation(\n {\n validationURL: event.validationURL,\n displayName: 'Internet Archive',\n },\n (validationErr, validationData) => {\n if (validationErr) {\n this.delegate?.paymentFailed(validationErr);\n this.session.abort();\n reject(`Merchant validation error: ${validationErr}`);\n } else {\n this.session.completeMerchantValidation(validationData);\n resolve();\n }\n },\n );\n });\n }\n\n async oncancel(): Promise<void> {\n this.delegate?.paymentCancelled();\n }\n\n async onpaymentauthorized(\n event: ApplePayJS.ApplePayPaymentAuthorizedEvent,\n ): Promise<void> {\n let payload: braintree.ApplePayPayload;\n try {\n payload = await this.applePayInstance.tokenize({\n token: event.payment.token,\n });\n } catch (err) {\n this.delegate?.paymentFailed(err);\n this.session.completePayment(ApplePaySession.STATUS_FAILURE);\n return;\n }\n\n const payment = event.payment;\n const billingContact = payment.billingContact;\n const shippingContact = payment.shippingContact;\n const [line1, line2] = billingContact?.addressLines ?? [];\n\n const billingInfo = new BillingInfo({\n streetAddress: line1,\n extendedAddress: line2,\n locality: billingContact?.locality,\n region: billingContact?.administrativeArea,\n postalCode: billingContact?.postalCode,\n countryCodeAlpha2: billingContact?.countryCode,\n });\n\n const customerInfo = new CustomerInfo({\n email: shippingContact?.emailAddress,\n firstName: shippingContact?.givenName,\n lastName: shippingContact?.familyName,\n });\n\n try {\n const donationResponse = await this.braintreeManager.submitDonation({\n nonce: payload.nonce,\n paymentProvider: PaymentProvider.ApplePay,\n donationInfo: this.donationInfo,\n billingInfo,\n customerInfo,\n });\n if (donationResponse.success) {\n this.delegate?.paymentComplete(donationResponse);\n this.session.completePayment(ApplePaySession.STATUS_SUCCESS);\n } else {\n this.delegate?.paymentFailed('Failure submitting data');\n this.session.completePayment(ApplePaySession.STATUS_FAILURE);\n }\n } catch (err) {\n this.delegate?.paymentFailed(err);\n this.session.completePayment(ApplePaySession.STATUS_FAILURE);\n }\n }\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface ApplePaySessionManagerInterface {
|
|
2
|
+
canMakePayments(): boolean;
|
|
3
|
+
createNewPaymentSession(paymentRequest: ApplePayJS.ApplePayPaymentRequest): ApplePaySession;
|
|
4
|
+
}
|
|
5
|
+
/** A thin wrapper over the browser's `ApplePaySession` so it can be mocked. */
|
|
6
|
+
export declare class ApplePaySessionManager implements ApplePaySessionManagerInterface {
|
|
7
|
+
static VERSION: number;
|
|
8
|
+
canMakePayments(): boolean;
|
|
9
|
+
createNewPaymentSession(paymentRequest: ApplePayJS.ApplePayPaymentRequest): ApplePaySession;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=apple-pay-session-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apple-pay-session-manager.d.ts","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,+BAA+B;IAC9C,eAAe,IAAI,OAAO,CAAC;IAC3B,uBAAuB,CACrB,cAAc,EAAE,UAAU,CAAC,sBAAsB,GAChD,eAAe,CAAC;CACpB;AAED,+EAA+E;AAC/E,qBAAa,sBAAuB,YAAW,+BAA+B;IAC5E,MAAM,CAAC,OAAO,SAAK;IAEnB,eAAe,IAAI,OAAO;IAQ1B,uBAAuB,CACrB,cAAc,EAAE,UAAU,CAAC,sBAAsB,GAChD,eAAe;CAGnB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** A thin wrapper over the browser's `ApplePaySession` so it can be mocked. */
|
|
2
|
+
export class ApplePaySessionManager {
|
|
3
|
+
canMakePayments() {
|
|
4
|
+
return ('ApplePaySession' in window &&
|
|
5
|
+
ApplePaySession.supportsVersion(ApplePaySessionManager.VERSION) &&
|
|
6
|
+
ApplePaySession.canMakePayments());
|
|
7
|
+
}
|
|
8
|
+
createNewPaymentSession(paymentRequest) {
|
|
9
|
+
return new ApplePaySession(ApplePaySessionManager.VERSION, paymentRequest);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
ApplePaySessionManager.VERSION = 3;
|
|
13
|
+
//# sourceMappingURL=apple-pay-session-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apple-pay-session-manager.js","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay-session-manager.ts"],"names":[],"mappings":"AAOA,+EAA+E;AAC/E,MAAM,OAAO,sBAAsB;IAGjC,eAAe;QACb,OAAO,CACL,iBAAiB,IAAI,MAAM;YAC3B,eAAe,CAAC,eAAe,CAAC,sBAAsB,CAAC,OAAO,CAAC;YAC/D,eAAe,CAAC,eAAe,EAAE,CAClC,CAAC;IACJ,CAAC;IAED,uBAAuB,CACrB,cAAiD;QAEjD,OAAO,IAAI,eAAe,CAAC,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC7E,CAAC;;AAdM,8BAAO,GAAG,CAAC,CAAC","sourcesContent":["export interface ApplePaySessionManagerInterface {\n canMakePayments(): boolean;\n createNewPaymentSession(\n paymentRequest: ApplePayJS.ApplePayPaymentRequest,\n ): ApplePaySession;\n}\n\n/** A thin wrapper over the browser's `ApplePaySession` so it can be mocked. */\nexport class ApplePaySessionManager implements ApplePaySessionManagerInterface {\n static VERSION = 3;\n\n canMakePayments(): boolean {\n return (\n 'ApplePaySession' in window &&\n ApplePaySession.supportsVersion(ApplePaySessionManager.VERSION) &&\n ApplePaySession.canMakePayments()\n );\n }\n\n createNewPaymentSession(\n paymentRequest: ApplePayJS.ApplePayPaymentRequest,\n ): ApplePaySession {\n return new ApplePaySession(ApplePaySessionManager.VERSION, paymentRequest);\n }\n}\n"]}
|
package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.d.ts
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type * as braintree from 'braintree-web';
|
|
2
|
+
import { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
3
|
+
import type { DonationPaymentInfo } from '../../../models/donation-payment-info.js';
|
|
4
|
+
import type { BraintreeManagerInterface } from '../../braintree-manager-interface.js';
|
|
5
|
+
import type { ApplePayHandlerInterface } from './apple-pay-interface.js';
|
|
6
|
+
import { ApplePaySessionDataSource } from './apple-pay-session-datasource.js';
|
|
7
|
+
import type { ApplePaySessionManagerInterface } from './apple-pay-session-manager.js';
|
|
8
|
+
export declare class ApplePayHandler implements ApplePayHandlerInterface {
|
|
9
|
+
instance: PromisedSingleton<braintree.ApplePay | undefined>;
|
|
10
|
+
constructor(options: {
|
|
11
|
+
braintreeManager: BraintreeManagerInterface;
|
|
12
|
+
applePayClient: typeof braintree.applePay;
|
|
13
|
+
applePaySessionManager: ApplePaySessionManagerInterface;
|
|
14
|
+
instancePromisedSingleton?: PromisedSingleton<braintree.ApplePay | undefined>;
|
|
15
|
+
});
|
|
16
|
+
private braintreeManager;
|
|
17
|
+
private applePaySessionManager;
|
|
18
|
+
private applePayClient;
|
|
19
|
+
isAvailable(): Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Starts the Apple Pay sheet. The event that triggered it has to be passed
|
|
22
|
+
* in, even though nothing here reads it: Apple Pay refuses to launch outside
|
|
23
|
+
* a user gesture.
|
|
24
|
+
*/
|
|
25
|
+
createPaymentRequest(_e: Event, donationInfo: DonationPaymentInfo): Promise<ApplePaySessionDataSource>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=apple-pay.d.ts.map
|
package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apple-pay.d.ts","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAExE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,6BAA6B,CAAC;AAEnF,qBAAa,eAAgB,YAAW,wBAAwB;IAC9D,QAAQ,EAAE,iBAAiB,CAAC,SAAS,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;gBAEhD,OAAO,EAAE;QACnB,gBAAgB,EAAE,yBAAyB,CAAC;QAC5C,cAAc,EAAE,OAAO,SAAS,CAAC,QAAQ,CAAC;QAC1C,sBAAsB,EAAE,+BAA+B,CAAC;QACxD,yBAAyB,CAAC,EAAE,iBAAiB,CAC3C,SAAS,CAAC,QAAQ,GAAG,SAAS,CAC/B,CAAC;KACH;IAmBD,OAAO,CAAC,gBAAgB,CAA4B;IAEpD,OAAO,CAAC,sBAAsB,CAAkC;IAEhE,OAAO,CAAC,cAAc,CAA4B;IAE5C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;;;OAIG;IACG,oBAAoB,CACxB,EAAE,EAAE,KAAK,EACT,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,yBAAyB,CAAC;CAwCtC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
2
|
+
import { DonationType } from '../../../models/donation-type.js';
|
|
3
|
+
import { ApplePaySessionDataSource } from './apple-pay-session-datasource.js';
|
|
4
|
+
export class ApplePayHandler {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.braintreeManager = options.braintreeManager;
|
|
7
|
+
this.applePayClient = options.applePayClient;
|
|
8
|
+
this.applePaySessionManager = options.applePaySessionManager;
|
|
9
|
+
this.instance =
|
|
10
|
+
options.instancePromisedSingleton ??
|
|
11
|
+
new PromisedSingleton({
|
|
12
|
+
generator: async () => {
|
|
13
|
+
if (!this.applePaySessionManager.canMakePayments()) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
const braintreeClient = await this.braintreeManager.instance.get();
|
|
17
|
+
return this.applePayClient.create({ client: braintreeClient });
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
async isAvailable() {
|
|
22
|
+
try {
|
|
23
|
+
const instance = await this.instance.get();
|
|
24
|
+
return !!instance;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Starts the Apple Pay sheet. The event that triggered it has to be passed
|
|
32
|
+
* in, even though nothing here reads it: Apple Pay refuses to launch outside
|
|
33
|
+
* a user gesture.
|
|
34
|
+
*/
|
|
35
|
+
async createPaymentRequest(_e, donationInfo) {
|
|
36
|
+
const applePayInstance = await this.instance.get();
|
|
37
|
+
if (!applePayInstance) {
|
|
38
|
+
throw new Error('Apple Pay is not available in this browser');
|
|
39
|
+
}
|
|
40
|
+
const label = donationInfo.donationType === DonationType.OneTime
|
|
41
|
+
? 'Internet Archive'
|
|
42
|
+
: 'Internet Archive Monthly';
|
|
43
|
+
const paymentRequest = applePayInstance.createPaymentRequest({
|
|
44
|
+
total: {
|
|
45
|
+
label,
|
|
46
|
+
amount: `${donationInfo.total}`,
|
|
47
|
+
},
|
|
48
|
+
requiredBillingContactFields: ['postalAddress'],
|
|
49
|
+
requiredShippingContactFields: ['name', 'email'],
|
|
50
|
+
});
|
|
51
|
+
const session = this.applePaySessionManager.createNewPaymentSession(paymentRequest);
|
|
52
|
+
const sessionDataSource = new ApplePaySessionDataSource({
|
|
53
|
+
donationInfo,
|
|
54
|
+
session,
|
|
55
|
+
applePayInstance,
|
|
56
|
+
braintreeManager: this.braintreeManager,
|
|
57
|
+
});
|
|
58
|
+
session.onvalidatemerchant =
|
|
59
|
+
sessionDataSource.onvalidatemerchant.bind(sessionDataSource);
|
|
60
|
+
session.onpaymentauthorized =
|
|
61
|
+
sessionDataSource.onpaymentauthorized.bind(sessionDataSource);
|
|
62
|
+
session.oncancel = sessionDataSource.oncancel.bind(sessionDataSource);
|
|
63
|
+
session.begin();
|
|
64
|
+
return sessionDataSource;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=apple-pay.js.map
|
package/dist/src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apple-pay.js","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/apple-pay/apple-pay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAG7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAG3E,MAAM,OAAO,eAAe;IAG1B,YAAY,OAOX;QACC,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAE7D,IAAI,CAAC,QAAQ;YACX,OAAO,CAAC,yBAAyB;gBACjC,IAAI,iBAAiB,CAAiC;oBACpD,SAAS,EAAE,KAAK,IAAI,EAAE;wBACpB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,EAAE,CAAC;4BACnD,OAAO,SAAS,CAAC;wBACnB,CAAC;wBAED,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;wBACnE,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;oBACjE,CAAC;iBACF,CAAC,CAAC;IACP,CAAC;IAQD,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC3C,OAAO,CAAC,CAAC,QAAQ,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CACxB,EAAS,EACT,YAAiC;QAEjC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,KAAK,GACT,YAAY,CAAC,YAAY,KAAK,YAAY,CAAC,OAAO;YAChD,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,0BAA0B,CAAC;QAEjC,MAAM,cAAc,GAAG,gBAAgB,CAAC,oBAAoB,CAAC;YAC3D,KAAK,EAAE;gBACL,KAAK;gBACL,MAAM,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE;aAChC;YACD,4BAA4B,EAAE,CAAC,eAAe,CAAC;YAC/C,6BAA6B,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;SACjD,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CACjE,cAAmD,CACpD,CAAC;QAEF,MAAM,iBAAiB,GAAG,IAAI,yBAAyB,CAAC;YACtD,YAAY;YACZ,OAAO;YACP,gBAAgB;YAChB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;SACxC,CAAC,CAAC;QAEH,OAAO,CAAC,kBAAkB;YACxB,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/D,OAAO,CAAC,mBAAmB;YACzB,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAChE,OAAO,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAEtE,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,OAAO,iBAAiB,CAAC;IAC3B,CAAC;CACF","sourcesContent":["import type * as braintree from 'braintree-web';\nimport { PromisedSingleton } from '@internetarchive/promised-singleton';\n\nimport type { DonationPaymentInfo } from '../../../models/donation-payment-info';\nimport { DonationType } from '../../../models/donation-type';\nimport type { BraintreeManagerInterface } from '../../braintree-manager-interface';\nimport type { ApplePayHandlerInterface } from './apple-pay-interface';\nimport { ApplePaySessionDataSource } from './apple-pay-session-datasource';\nimport type { ApplePaySessionManagerInterface } from './apple-pay-session-manager';\n\nexport class ApplePayHandler implements ApplePayHandlerInterface {\n instance: PromisedSingleton<braintree.ApplePay | undefined>;\n\n constructor(options: {\n braintreeManager: BraintreeManagerInterface;\n applePayClient: typeof braintree.applePay;\n applePaySessionManager: ApplePaySessionManagerInterface;\n instancePromisedSingleton?: PromisedSingleton<\n braintree.ApplePay | undefined\n >;\n }) {\n this.braintreeManager = options.braintreeManager;\n this.applePayClient = options.applePayClient;\n this.applePaySessionManager = options.applePaySessionManager;\n\n this.instance =\n options.instancePromisedSingleton ??\n new PromisedSingleton<braintree.ApplePay | undefined>({\n generator: async () => {\n if (!this.applePaySessionManager.canMakePayments()) {\n return undefined;\n }\n\n const braintreeClient = await this.braintreeManager.instance.get();\n return this.applePayClient.create({ client: braintreeClient });\n },\n });\n }\n\n private braintreeManager: BraintreeManagerInterface;\n\n private applePaySessionManager: ApplePaySessionManagerInterface;\n\n private applePayClient: typeof braintree.applePay;\n\n async isAvailable(): Promise<boolean> {\n try {\n const instance = await this.instance.get();\n return !!instance;\n } catch {\n return false;\n }\n }\n\n /**\n * Starts the Apple Pay sheet. The event that triggered it has to be passed\n * in, even though nothing here reads it: Apple Pay refuses to launch outside\n * a user gesture.\n */\n async createPaymentRequest(\n _e: Event,\n donationInfo: DonationPaymentInfo,\n ): Promise<ApplePaySessionDataSource> {\n const applePayInstance = await this.instance.get();\n if (!applePayInstance) {\n throw new Error('Apple Pay is not available in this browser');\n }\n\n const label =\n donationInfo.donationType === DonationType.OneTime\n ? 'Internet Archive'\n : 'Internet Archive Monthly';\n\n const paymentRequest = applePayInstance.createPaymentRequest({\n total: {\n label,\n amount: `${donationInfo.total}`,\n },\n requiredBillingContactFields: ['postalAddress'],\n requiredShippingContactFields: ['name', 'email'],\n });\n const session = this.applePaySessionManager.createNewPaymentSession(\n paymentRequest as ApplePayJS.ApplePayPaymentRequest,\n );\n\n const sessionDataSource = new ApplePaySessionDataSource({\n donationInfo,\n session,\n applePayInstance,\n braintreeManager: this.braintreeManager,\n });\n\n session.onvalidatemerchant =\n sessionDataSource.onvalidatemerchant.bind(sessionDataSource);\n session.onpaymentauthorized =\n sessionDataSource.onpaymentauthorized.bind(sessionDataSource);\n session.oncancel = sessionDataSource.oncancel.bind(sessionDataSource);\n\n session.begin();\n\n return sessionDataSource;\n }\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type * as braintree from 'braintree-web';
|
|
2
|
+
import type { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
3
|
+
import type { Unsubscribe } from 'nanoevents';
|
|
4
|
+
import type { HostedFieldName } from './hosted-field-container.js';
|
|
5
|
+
export interface CreditCardHandlerEvents {
|
|
6
|
+
hostedFieldsRetry: (retryNumber: number) => void;
|
|
7
|
+
hostedFieldsFailed: (error: unknown) => void;
|
|
8
|
+
}
|
|
9
|
+
export interface CreditCardHandlerInterface {
|
|
10
|
+
instance: PromisedSingleton<braintree.HostedFields | undefined>;
|
|
11
|
+
tokenizeHostedFields(): Promise<braintree.HostedFieldsTokenizePayload | undefined>;
|
|
12
|
+
markFieldErrors(fields: HostedFieldName[]): void;
|
|
13
|
+
removeFieldErrors(fields: HostedFieldName[]): void;
|
|
14
|
+
showErrorMessage(message?: string): void;
|
|
15
|
+
hideErrorMessage(): void;
|
|
16
|
+
on<E extends keyof CreditCardHandlerEvents>(event: E, callback: CreditCardHandlerEvents[E]): Unsubscribe;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=credit-card-interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credit-card-interface.d.ts","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,WAAW,uBAAuB;IACtC,iBAAiB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;IACjD,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,iBAAiB,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;IAChE,oBAAoB,IAAI,OAAO,CAC7B,SAAS,CAAC,2BAA2B,GAAG,SAAS,CAClD,CAAC;IACF,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACjD,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACnD,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,gBAAgB,IAAI,IAAI,CAAC;IACzB,EAAE,CAAC,CAAC,SAAS,MAAM,uBAAuB,EACxC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC,GACnC,WAAW,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credit-card-interface.js","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card-interface.ts"],"names":[],"mappings":"","sourcesContent":["import type * as braintree from 'braintree-web';\nimport type { PromisedSingleton } from '@internetarchive/promised-singleton';\nimport type { Unsubscribe } from 'nanoevents';\n\nimport type { HostedFieldName } from './hosted-field-container';\n\nexport interface CreditCardHandlerEvents {\n hostedFieldsRetry: (retryNumber: number) => void;\n hostedFieldsFailed: (error: unknown) => void;\n}\n\nexport interface CreditCardHandlerInterface {\n instance: PromisedSingleton<braintree.HostedFields | undefined>;\n tokenizeHostedFields(): Promise<\n braintree.HostedFieldsTokenizePayload | undefined\n >;\n markFieldErrors(fields: HostedFieldName[]): void;\n removeFieldErrors(fields: HostedFieldName[]): void;\n showErrorMessage(message?: string): void;\n hideErrorMessage(): void;\n on<E extends keyof CreditCardHandlerEvents>(\n event: E,\n callback: CreditCardHandlerEvents[E],\n ): Unsubscribe;\n}\n"]}
|
package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.d.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type * as braintree from 'braintree-web';
|
|
2
|
+
import { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
3
|
+
import { type Unsubscribe } from 'nanoevents';
|
|
4
|
+
import type { BraintreeManagerInterface } from '../../braintree-manager-interface.js';
|
|
5
|
+
import type { CreditCardHandlerEvents, CreditCardHandlerInterface } from './credit-card-interface.js';
|
|
6
|
+
import type { HostedFieldConfiguration } from './hosted-field-configuration.js';
|
|
7
|
+
import type { HostedFieldName } from './hosted-field-container.js';
|
|
8
|
+
export declare class CreditCardHandler implements CreditCardHandlerInterface {
|
|
9
|
+
on<E extends keyof CreditCardHandlerEvents>(event: E, callback: CreditCardHandlerEvents[E]): Unsubscribe;
|
|
10
|
+
instance: PromisedSingleton<braintree.HostedFields | undefined>;
|
|
11
|
+
private emitter;
|
|
12
|
+
private maxRetryCount;
|
|
13
|
+
/** In milliseconds */
|
|
14
|
+
private loadTimeout;
|
|
15
|
+
constructor(options: {
|
|
16
|
+
braintreeManager: BraintreeManagerInterface;
|
|
17
|
+
hostedFieldClient: typeof braintree.hostedFields;
|
|
18
|
+
hostedFieldConfig: HostedFieldConfiguration;
|
|
19
|
+
maxRetryCount?: number;
|
|
20
|
+
/** In seconds */
|
|
21
|
+
loadTimeout?: number;
|
|
22
|
+
});
|
|
23
|
+
private braintreeManager;
|
|
24
|
+
private hostedFieldClient;
|
|
25
|
+
private hostedFieldConfig;
|
|
26
|
+
/**
|
|
27
|
+
* Creates the hosted fields, retrying on a timeout.
|
|
28
|
+
*
|
|
29
|
+
* Braintree's own timeout is 60 seconds, but their support recommends a
|
|
30
|
+
* shorter one: 99% of donors load the fields within 4 seconds and 99.9%
|
|
31
|
+
* within 18. So this races the create against its own timer, and a timer
|
|
32
|
+
* win throws into the retry path.
|
|
33
|
+
*/
|
|
34
|
+
private createHostedFields;
|
|
35
|
+
tokenizeHostedFields(): Promise<braintree.HostedFieldsTokenizePayload | undefined>;
|
|
36
|
+
markFieldErrors(fields: HostedFieldName[]): void;
|
|
37
|
+
removeFieldErrors(fields: HostedFieldName[]): void;
|
|
38
|
+
showErrorMessage(message?: string): void;
|
|
39
|
+
hideErrorMessage(): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=credit-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credit-card.d.ts","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAC7E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAKhE,qBAAa,iBAAkB,YAAW,0BAA0B;IAClE,EAAE,CAAC,CAAC,SAAS,MAAM,uBAAuB,EACxC,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,uBAAuB,CAAC,CAAC,CAAC,GACnC,WAAW;IAId,QAAQ,wDAKL;IAEH,OAAO,CAAC,OAAO,CAA+C;IAE9D,OAAO,CAAC,aAAa,CAAS;IAE9B,sBAAsB;IACtB,OAAO,CAAC,WAAW,CAAS;gBAEhB,OAAO,EAAE;QACnB,gBAAgB,EAAE,yBAAyB,CAAC;QAC5C,iBAAiB,EAAE,OAAO,SAAS,CAAC,YAAY,CAAC;QACjD,iBAAiB,EAAE,wBAAwB,CAAC;QAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IAQD,OAAO,CAAC,gBAAgB,CAA4B;IACpD,OAAO,CAAC,iBAAiB,CAAgC;IACzD,OAAO,CAAC,iBAAiB,CAA2B;IAEpD;;;;;;;OAOG;YACW,kBAAkB;IAsD1B,oBAAoB,IAAI,OAAO,CACnC,SAAS,CAAC,2BAA2B,GAAG,SAAS,CAClD;IAKD,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IAIhD,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IAIlD,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAIxC,gBAAgB,IAAI,IAAI;CAGzB"}
|
package/dist/src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
2
|
+
import { createNanoEvents } from 'nanoevents';
|
|
3
|
+
import { DonationFormError } from '../../../donation-form-error.js';
|
|
4
|
+
/** A promise that never settles, for a race branch that should be decided elsewhere. */
|
|
5
|
+
const never = new Promise(() => { });
|
|
6
|
+
export class CreditCardHandler {
|
|
7
|
+
on(event, callback) {
|
|
8
|
+
return this.emitter.on(event, callback);
|
|
9
|
+
}
|
|
10
|
+
constructor(options) {
|
|
11
|
+
this.instance = new PromisedSingleton({
|
|
12
|
+
generator: async () => {
|
|
13
|
+
const braintreeClient = await this.braintreeManager.instance.get();
|
|
14
|
+
return this.createHostedFields(braintreeClient);
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
this.emitter = createNanoEvents();
|
|
18
|
+
this.braintreeManager = options.braintreeManager;
|
|
19
|
+
this.hostedFieldClient = options.hostedFieldClient;
|
|
20
|
+
this.hostedFieldConfig = options.hostedFieldConfig;
|
|
21
|
+
this.maxRetryCount = options.maxRetryCount ?? 2;
|
|
22
|
+
this.loadTimeout = (options.loadTimeout ?? 6) * 1000;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Creates the hosted fields, retrying on a timeout.
|
|
26
|
+
*
|
|
27
|
+
* Braintree's own timeout is 60 seconds, but their support recommends a
|
|
28
|
+
* shorter one: 99% of donors load the fields within 4 seconds and 99.9%
|
|
29
|
+
* within 18. So this races the create against its own timer, and a timer
|
|
30
|
+
* win throws into the retry path.
|
|
31
|
+
*/
|
|
32
|
+
async createHostedFields(braintreeClient, retryCount = 0) {
|
|
33
|
+
// Mainly for the retries, but harmless on the first try
|
|
34
|
+
this.hostedFieldConfig.hostedFieldContainer.resetHostedFields();
|
|
35
|
+
let timeout;
|
|
36
|
+
try {
|
|
37
|
+
const timeoutPromise = new Promise((_resolve, reject) => {
|
|
38
|
+
timeout = window.setTimeout(() => {
|
|
39
|
+
reject(new DonationFormError('Timeout loading Hosted Fields'));
|
|
40
|
+
}, this.loadTimeout);
|
|
41
|
+
});
|
|
42
|
+
// Starts from a resolved promise so a synchronous throw from `create`
|
|
43
|
+
// becomes a rejection like any other failure.
|
|
44
|
+
const hostedFieldsPromise = Promise.resolve()
|
|
45
|
+
.then(() => this.hostedFieldClient.create({
|
|
46
|
+
client: braintreeClient,
|
|
47
|
+
styles: this.hostedFieldConfig.hostedFieldStyle,
|
|
48
|
+
fields: this.hostedFieldConfig.hostedFieldFieldOptions,
|
|
49
|
+
}))
|
|
50
|
+
.catch((error) => {
|
|
51
|
+
if (error instanceof Error &&
|
|
52
|
+
error.message.includes('Hosted Fields timed out')) {
|
|
53
|
+
// Braintree's own timeout, which the timer above has already
|
|
54
|
+
// turned into a retry. Nothing more to do with it.
|
|
55
|
+
return never;
|
|
56
|
+
}
|
|
57
|
+
// Anything else is a real failure, which should reach Sentry
|
|
58
|
+
throw error;
|
|
59
|
+
});
|
|
60
|
+
// If the timer wins the race, a later rejection here has nowhere to go
|
|
61
|
+
hostedFieldsPromise.catch(() => undefined);
|
|
62
|
+
return await Promise.race([timeoutPromise, hostedFieldsPromise]);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (retryCount >= this.maxRetryCount) {
|
|
66
|
+
this.emitter.emit('hostedFieldsFailed', error);
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
const newRetryCount = retryCount + 1;
|
|
70
|
+
this.emitter.emit('hostedFieldsRetry', newRetryCount);
|
|
71
|
+
return this.createHostedFields(braintreeClient, newRetryCount);
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
// Whichever way it went, the timer must not fire afterwards
|
|
75
|
+
window.clearTimeout(timeout);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async tokenizeHostedFields() {
|
|
79
|
+
const hostedFields = await this.instance.get();
|
|
80
|
+
return hostedFields?.tokenize();
|
|
81
|
+
}
|
|
82
|
+
markFieldErrors(fields) {
|
|
83
|
+
this.hostedFieldConfig.hostedFieldContainer.markFieldErrors(fields);
|
|
84
|
+
}
|
|
85
|
+
removeFieldErrors(fields) {
|
|
86
|
+
this.hostedFieldConfig.hostedFieldContainer.removeFieldErrors(fields);
|
|
87
|
+
}
|
|
88
|
+
showErrorMessage(message) {
|
|
89
|
+
this.hostedFieldConfig.hostedFieldContainer.showErrorMessage(message);
|
|
90
|
+
}
|
|
91
|
+
hideErrorMessage() {
|
|
92
|
+
this.hostedFieldConfig.hostedFieldContainer.hideErrorMessage();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=credit-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credit-card.js","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/credit-card/credit-card.ts"],"names":[],"mappings":"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","sourcesContent":["import type * as braintree from 'braintree-web';\nimport { PromisedSingleton } from '@internetarchive/promised-singleton';\nimport { createNanoEvents, type Unsubscribe } from 'nanoevents';\n\nimport { DonationFormError } from '../../../donation-form-error';\nimport type { BraintreeManagerInterface } from '../../braintree-manager-interface';\nimport type {\n CreditCardHandlerEvents,\n CreditCardHandlerInterface,\n} from './credit-card-interface';\nimport type { HostedFieldConfiguration } from './hosted-field-configuration';\nimport type { HostedFieldName } from './hosted-field-container';\n\n/** A promise that never settles, for a race branch that should be decided elsewhere. */\nconst never = new Promise<never>(() => {});\n\nexport class CreditCardHandler implements CreditCardHandlerInterface {\n on<E extends keyof CreditCardHandlerEvents>(\n event: E,\n callback: CreditCardHandlerEvents[E],\n ): Unsubscribe {\n return this.emitter.on(event, callback);\n }\n\n instance = new PromisedSingleton<braintree.HostedFields | undefined>({\n generator: async () => {\n const braintreeClient = await this.braintreeManager.instance.get();\n return this.createHostedFields(braintreeClient);\n },\n });\n\n private emitter = createNanoEvents<CreditCardHandlerEvents>();\n\n private maxRetryCount: number;\n\n /** In milliseconds */\n private loadTimeout: number;\n\n constructor(options: {\n braintreeManager: BraintreeManagerInterface;\n hostedFieldClient: typeof braintree.hostedFields;\n hostedFieldConfig: HostedFieldConfiguration;\n maxRetryCount?: number;\n /** In seconds */\n loadTimeout?: number;\n }) {\n this.braintreeManager = options.braintreeManager;\n this.hostedFieldClient = options.hostedFieldClient;\n this.hostedFieldConfig = options.hostedFieldConfig;\n this.maxRetryCount = options.maxRetryCount ?? 2;\n this.loadTimeout = (options.loadTimeout ?? 6) * 1000;\n }\n\n private braintreeManager: BraintreeManagerInterface;\n private hostedFieldClient: typeof braintree.hostedFields;\n private hostedFieldConfig: HostedFieldConfiguration;\n\n /**\n * Creates the hosted fields, retrying on a timeout.\n *\n * Braintree's own timeout is 60 seconds, but their support recommends a\n * shorter one: 99% of donors load the fields within 4 seconds and 99.9%\n * within 18. So this races the create against its own timer, and a timer\n * win throws into the retry path.\n */\n private async createHostedFields(\n braintreeClient: braintree.Client,\n retryCount = 0,\n ): Promise<braintree.HostedFields | undefined> {\n // Mainly for the retries, but harmless on the first try\n this.hostedFieldConfig.hostedFieldContainer.resetHostedFields();\n let timeout: number | undefined;\n try {\n const timeoutPromise = new Promise<never>((_resolve, reject) => {\n timeout = window.setTimeout(() => {\n reject(new DonationFormError('Timeout loading Hosted Fields'));\n }, this.loadTimeout);\n });\n\n // Starts from a resolved promise so a synchronous throw from `create`\n // becomes a rejection like any other failure.\n const hostedFieldsPromise = Promise.resolve()\n .then(() =>\n this.hostedFieldClient.create({\n client: braintreeClient,\n styles: this.hostedFieldConfig.hostedFieldStyle,\n fields: this.hostedFieldConfig.hostedFieldFieldOptions,\n }),\n )\n .catch((error: unknown) => {\n if (\n error instanceof Error &&\n error.message.includes('Hosted Fields timed out')\n ) {\n // Braintree's own timeout, which the timer above has already\n // turned into a retry. Nothing more to do with it.\n return never;\n }\n // Anything else is a real failure, which should reach Sentry\n throw error;\n });\n // If the timer wins the race, a later rejection here has nowhere to go\n hostedFieldsPromise.catch(() => undefined);\n\n return await Promise.race([timeoutPromise, hostedFieldsPromise]);\n } catch (error) {\n if (retryCount >= this.maxRetryCount) {\n this.emitter.emit('hostedFieldsFailed', error);\n throw error;\n }\n const newRetryCount = retryCount + 1;\n this.emitter.emit('hostedFieldsRetry', newRetryCount);\n return this.createHostedFields(braintreeClient, newRetryCount);\n } finally {\n // Whichever way it went, the timer must not fire afterwards\n window.clearTimeout(timeout);\n }\n }\n\n async tokenizeHostedFields(): Promise<\n braintree.HostedFieldsTokenizePayload | undefined\n > {\n const hostedFields = await this.instance.get();\n return hostedFields?.tokenize();\n }\n\n markFieldErrors(fields: HostedFieldName[]): void {\n this.hostedFieldConfig.hostedFieldContainer.markFieldErrors(fields);\n }\n\n removeFieldErrors(fields: HostedFieldName[]): void {\n this.hostedFieldConfig.hostedFieldContainer.removeFieldErrors(fields);\n }\n\n showErrorMessage(message?: string): void {\n this.hostedFieldConfig.hostedFieldContainer.showErrorMessage(message);\n }\n\n hideErrorMessage(): void {\n this.hostedFieldConfig.hostedFieldContainer.hideErrorMessage();\n }\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type * as braintree from 'braintree-web';
|
|
2
|
+
import type { HostedFieldContainerInterface } from './hosted-field-container.js';
|
|
3
|
+
/** Everything Braintree needs to render its hosted credit card fields into the form. */
|
|
4
|
+
export declare class HostedFieldConfiguration {
|
|
5
|
+
hostedFieldStyle: Record<string, Record<string, string>>;
|
|
6
|
+
hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;
|
|
7
|
+
hostedFieldContainer: HostedFieldContainerInterface;
|
|
8
|
+
constructor(options: {
|
|
9
|
+
hostedFieldStyle: Record<string, Record<string, string>>;
|
|
10
|
+
hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;
|
|
11
|
+
hostedFieldContainer: HostedFieldContainerInterface;
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=hosted-field-configuration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-field-configuration.d.ts","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAE9E,wFAAwF;AACxF,qBAAa,wBAAwB;IACnC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAEzD,uBAAuB,EAAE,SAAS,CAAC,uBAAuB,CAAC;IAE3D,oBAAoB,EAAE,6BAA6B,CAAC;gBAExC,OAAO,EAAE;QACnB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,uBAAuB,EAAE,SAAS,CAAC,uBAAuB,CAAC;QAC3D,oBAAoB,EAAE,6BAA6B,CAAC;KACrD;CAKF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Everything Braintree needs to render its hosted credit card fields into the form. */
|
|
2
|
+
export class HostedFieldConfiguration {
|
|
3
|
+
constructor(options) {
|
|
4
|
+
this.hostedFieldFieldOptions = options.hostedFieldFieldOptions;
|
|
5
|
+
this.hostedFieldStyle = options.hostedFieldStyle;
|
|
6
|
+
this.hostedFieldContainer = options.hostedFieldContainer;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=hosted-field-configuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-field-configuration.js","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-configuration.ts"],"names":[],"mappings":"AAIA,wFAAwF;AACxF,MAAM,OAAO,wBAAwB;IAOnC,YAAY,OAIX;QACC,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;QAC/D,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAC3D,CAAC;CACF","sourcesContent":["import type * as braintree from 'braintree-web';\n\nimport type { HostedFieldContainerInterface } from './hosted-field-container';\n\n/** Everything Braintree needs to render its hosted credit card fields into the form. */\nexport class HostedFieldConfiguration {\n hostedFieldStyle: Record<string, Record<string, string>>;\n\n hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;\n\n hostedFieldContainer: HostedFieldContainerInterface;\n\n constructor(options: {\n hostedFieldStyle: Record<string, Record<string, string>>;\n hostedFieldFieldOptions: braintree.HostedFieldFieldOptions;\n hostedFieldContainer: HostedFieldContainerInterface;\n }) {\n this.hostedFieldFieldOptions = options.hostedFieldFieldOptions;\n this.hostedFieldStyle = options.hostedFieldStyle;\n this.hostedFieldContainer = options.hostedFieldContainer;\n }\n}\n"]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/** The three hosted credit card fields. The values are Braintree's field names. */
|
|
2
|
+
export declare const HostedFieldName: {
|
|
3
|
+
readonly Number: "number";
|
|
4
|
+
readonly CVV: "cvv";
|
|
5
|
+
readonly ExpirationDate: "expirationDate";
|
|
6
|
+
};
|
|
7
|
+
export type HostedFieldName = (typeof HostedFieldName)[keyof typeof HostedFieldName];
|
|
8
|
+
export interface HostedFieldContainerInterface {
|
|
9
|
+
fieldFor(field: HostedFieldName): HTMLDivElement;
|
|
10
|
+
markFieldErrors(fields: HostedFieldName[]): void;
|
|
11
|
+
removeFieldErrors(fields: HostedFieldName[]): void;
|
|
12
|
+
showErrorMessage(message?: string): void;
|
|
13
|
+
hideErrorMessage(): void;
|
|
14
|
+
/** Empty the hosted field containers so they can be re-rendered after a timeout */
|
|
15
|
+
resetHostedFields(): void;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Holds the DOM containers Braintree renders its hosted fields into, and
|
|
19
|
+
* toggles their error state. Each container's parent is the badged input
|
|
20
|
+
* wrapping it, which is what shows the error.
|
|
21
|
+
*/
|
|
22
|
+
export declare class HostedFieldContainer implements HostedFieldContainerInterface {
|
|
23
|
+
private number;
|
|
24
|
+
private cvv;
|
|
25
|
+
private expirationDate;
|
|
26
|
+
private errorContainer;
|
|
27
|
+
fieldFor(field: HostedFieldName): HTMLDivElement;
|
|
28
|
+
markFieldErrors(fields: HostedFieldName[]): void;
|
|
29
|
+
removeFieldErrors(fields: HostedFieldName[]): void;
|
|
30
|
+
showErrorMessage(message?: string): void;
|
|
31
|
+
hideErrorMessage(): void;
|
|
32
|
+
resetHostedFields(): void;
|
|
33
|
+
constructor(options: {
|
|
34
|
+
number: HTMLDivElement;
|
|
35
|
+
cvv: HTMLDivElement;
|
|
36
|
+
expirationDate: HTMLDivElement;
|
|
37
|
+
errorContainer: HTMLDivElement;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=hosted-field-container.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-field-container.d.ts","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,eAAe;;;;CAIlB,CAAC;AAEX,MAAM,MAAM,eAAe,GACzB,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAUzD,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,CAAC;IACjD,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACjD,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACnD,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,gBAAgB,IAAI,IAAI,CAAC;IACzB,mFAAmF;IACnF,iBAAiB,IAAI,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,6BAA6B;IACxE,OAAO,CAAC,MAAM,CAAiB;IAE/B,OAAO,CAAC,GAAG,CAAiB;IAE5B,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,cAAc,CAAiB;IAEvC,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc;IAWhD,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IAOhD,iBAAiB,CAAC,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI;IAOlD,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAOxC,gBAAgB,IAAI,IAAI;IAIxB,iBAAiB,IAAI,IAAI;gBASb,OAAO,EAAE;QACnB,MAAM,EAAE,cAAc,CAAC;QACvB,GAAG,EAAE,cAAc,CAAC;QACpB,cAAc,EAAE,cAAc,CAAC;QAC/B,cAAc,EAAE,cAAc,CAAC;KAChC;CAMF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/** The three hosted credit card fields. The values are Braintree's field names. */
|
|
2
|
+
export const HostedFieldName = {
|
|
3
|
+
Number: 'number',
|
|
4
|
+
CVV: 'cvv',
|
|
5
|
+
ExpirationDate: 'expirationDate',
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Holds the DOM containers Braintree renders its hosted fields into, and
|
|
9
|
+
* toggles their error state. Each container's parent is the badged input
|
|
10
|
+
* wrapping it, which is what shows the error.
|
|
11
|
+
*/
|
|
12
|
+
export class HostedFieldContainer {
|
|
13
|
+
fieldFor(field) {
|
|
14
|
+
switch (field) {
|
|
15
|
+
case HostedFieldName.Number:
|
|
16
|
+
return this.number;
|
|
17
|
+
case HostedFieldName.CVV:
|
|
18
|
+
return this.cvv;
|
|
19
|
+
case HostedFieldName.ExpirationDate:
|
|
20
|
+
return this.expirationDate;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
markFieldErrors(fields) {
|
|
24
|
+
fields.forEach((field) => {
|
|
25
|
+
const input = this.fieldFor(field);
|
|
26
|
+
input.parentElement.error = true;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
removeFieldErrors(fields) {
|
|
30
|
+
fields.forEach((field) => {
|
|
31
|
+
const input = this.fieldFor(field);
|
|
32
|
+
input.parentElement.error = false;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
showErrorMessage(message) {
|
|
36
|
+
const error = message ?? 'Some payment information below is missing or incorrect.';
|
|
37
|
+
this.errorContainer.textContent = error;
|
|
38
|
+
this.errorContainer.style.display = 'block';
|
|
39
|
+
}
|
|
40
|
+
hideErrorMessage() {
|
|
41
|
+
this.errorContainer.style.display = 'none';
|
|
42
|
+
}
|
|
43
|
+
resetHostedFields() {
|
|
44
|
+
const elements = [this.number, this.cvv, this.expirationDate];
|
|
45
|
+
elements.forEach((element) => {
|
|
46
|
+
while (element.firstChild) {
|
|
47
|
+
element.firstChild.remove();
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
constructor(options) {
|
|
52
|
+
this.number = options.number;
|
|
53
|
+
this.cvv = options.cvv;
|
|
54
|
+
this.expirationDate = options.expirationDate;
|
|
55
|
+
this.errorContainer = options.errorContainer;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=hosted-field-container.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hosted-field-container.js","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/credit-card/hosted-field-container.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAuBX;;;;GAIG;AACH,MAAM,OAAO,oBAAoB;IAS/B,QAAQ,CAAC,KAAsB;QAC7B,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,eAAe,CAAC,MAAM;gBACzB,OAAO,IAAI,CAAC,MAAM,CAAC;YACrB,KAAK,eAAe,CAAC,GAAG;gBACtB,OAAO,IAAI,CAAC,GAAG,CAAC;YAClB,KAAK,eAAe,CAAC,cAAc;gBACjC,OAAO,IAAI,CAAC,cAAc,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,eAAe,CAAC,MAAyB;QACvC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,CAAC,aAA+B,CAAC,KAAK,GAAG,IAAI,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,MAAyB;QACzC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAClC,KAAK,CAAC,aAA+B,CAAC,KAAK,GAAG,KAAK,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,OAAgB;QAC/B,MAAM,KAAK,GACT,OAAO,IAAI,yDAAyD,CAAC;QACvE,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;IAC9C,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;IAC7C,CAAC;IAED,iBAAiB;QACf,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9D,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,OAAO,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC1B,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,OAKX;QACC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;IAC/C,CAAC;CACF","sourcesContent":["/** The three hosted credit card fields. The values are Braintree's field names. */\nexport const HostedFieldName = {\n Number: 'number',\n CVV: 'cvv',\n ExpirationDate: 'expirationDate',\n} as const;\n\nexport type HostedFieldName =\n (typeof HostedFieldName)[keyof typeof HostedFieldName];\n\n/**\n * An element that can show an error state, like the form's badged input. The\n * hosted field containers sit inside one.\n */\ninterface ErrorMarkable extends HTMLElement {\n error: boolean;\n}\n\nexport interface HostedFieldContainerInterface {\n fieldFor(field: HostedFieldName): HTMLDivElement;\n markFieldErrors(fields: HostedFieldName[]): void;\n removeFieldErrors(fields: HostedFieldName[]): void;\n showErrorMessage(message?: string): void;\n hideErrorMessage(): void;\n /** Empty the hosted field containers so they can be re-rendered after a timeout */\n resetHostedFields(): void;\n}\n\n/**\n * Holds the DOM containers Braintree renders its hosted fields into, and\n * toggles their error state. Each container's parent is the badged input\n * wrapping it, which is what shows the error.\n */\nexport class HostedFieldContainer implements HostedFieldContainerInterface {\n private number: HTMLDivElement;\n\n private cvv: HTMLDivElement;\n\n private expirationDate: HTMLDivElement;\n\n private errorContainer: HTMLDivElement;\n\n fieldFor(field: HostedFieldName): HTMLDivElement {\n switch (field) {\n case HostedFieldName.Number:\n return this.number;\n case HostedFieldName.CVV:\n return this.cvv;\n case HostedFieldName.ExpirationDate:\n return this.expirationDate;\n }\n }\n\n markFieldErrors(fields: HostedFieldName[]): void {\n fields.forEach((field) => {\n const input = this.fieldFor(field);\n (input.parentElement as ErrorMarkable).error = true;\n });\n }\n\n removeFieldErrors(fields: HostedFieldName[]): void {\n fields.forEach((field) => {\n const input = this.fieldFor(field);\n (input.parentElement as ErrorMarkable).error = false;\n });\n }\n\n showErrorMessage(message?: string): void {\n const error =\n message ?? 'Some payment information below is missing or incorrect.';\n this.errorContainer.textContent = error;\n this.errorContainer.style.display = 'block';\n }\n\n hideErrorMessage(): void {\n this.errorContainer.style.display = 'none';\n }\n\n resetHostedFields(): void {\n const elements = [this.number, this.cvv, this.expirationDate];\n elements.forEach((element) => {\n while (element.firstChild) {\n element.firstChild.remove();\n }\n });\n }\n\n constructor(options: {\n number: HTMLDivElement;\n cvv: HTMLDivElement;\n expirationDate: HTMLDivElement;\n errorContainer: HTMLDivElement;\n }) {\n this.number = options.number;\n this.cvv = options.cvv;\n this.expirationDate = options.expirationDate;\n this.errorContainer = options.errorContainer;\n }\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as braintree from 'braintree-web';
|
|
2
|
+
import type { PromisedSingleton } from '@internetarchive/promised-singleton';
|
|
3
|
+
export interface GooglePayHandlerInterface {
|
|
4
|
+
paymentsClient: google.payments.api.PaymentsClient;
|
|
5
|
+
instance: PromisedSingleton<braintree.GooglePayment>;
|
|
6
|
+
isBrowserSupported(): Promise<boolean>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=google-pay-interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-pay-interface.d.ts","sourceRoot":"","sources":["../../../../../../../src/elements/ia-donation-form/braintree/payment-providers/google-pay/google-pay-interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,SAAS,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;IACnD,QAAQ,EAAE,iBAAiB,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAErD,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC"}
|