@internetarchive/donation-form 0.5.18-alpha.1 → 0.5.19
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/LICENSE +661 -661
- package/README.md +115 -115
- package/dist/demo/braintree-endpoint-manager.d.ts +9 -9
- package/dist/demo/braintree-endpoint-manager.js +45 -45
- package/dist/demo/braintree-endpoint-manager.js.map +1 -1
- package/dist/demo/demo-analytics-handler.d.ts +17 -17
- package/dist/demo/demo-analytics-handler.js +13 -13
- package/dist/demo/demo-analytics-handler.js.map +1 -1
- package/dist/demo/submit-form-with.d.ts +7 -7
- package/dist/demo/submit-form-with.js +21 -21
- package/dist/demo/submit-form-with.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/dist/src/braintree-manager/braintree-interfaces.d.ts +147 -147
- package/dist/src/braintree-manager/braintree-interfaces.js +5 -5
- package/dist/src/braintree-manager/braintree-interfaces.js.map +1 -1
- package/dist/src/braintree-manager/braintree-manager.d.ts +124 -124
- package/dist/src/braintree-manager/braintree-manager.js +149 -149
- package/dist/src/braintree-manager/braintree-manager.js.map +1 -1
- package/dist/src/braintree-manager/payment-clients.d.ts +47 -47
- package/dist/src/braintree-manager/payment-clients.js +116 -116
- package/dist/src/braintree-manager/payment-clients.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.d.ts +8 -8
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.d.ts +6 -6
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.d.ts +10 -10
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.d.ts +21 -21
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.js +99 -99
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.d.ts +10 -10
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.js +12 -12
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.d.ts +20 -20
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.js +71 -71
- package/dist/src/braintree-manager/payment-providers/apple-pay/apple-pay.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card-interface.d.ts +16 -16
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.d.ts +29 -29
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.js +99 -99
- package/dist/src/braintree-manager/payment-providers/credit-card/credit-card.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.d.ts +11 -11
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.js +7 -7
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.d.ts +34 -34
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.js +52 -52
- package/dist/src/braintree-manager/payment-providers/credit-card/hosted-field-container.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/google-pay-interface.d.ts +7 -7
- package/dist/src/braintree-manager/payment-providers/google-pay-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/google-pay.d.ts +18 -18
- package/dist/src/braintree-manager/payment-providers/google-pay.js +40 -40
- package/dist/src/braintree-manager/payment-providers/google-pay.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.d.ts +145 -145
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.js +60 -60
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-interface.d.ts +11 -11
- package/dist/src/braintree-manager/payment-providers/paypal/paypal-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/paypal/paypal.d.ts +23 -23
- package/dist/src/braintree-manager/payment-providers/paypal/paypal.js +46 -46
- package/dist/src/braintree-manager/payment-providers/paypal/paypal.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/venmo-interface.d.ts +6 -6
- package/dist/src/braintree-manager/payment-providers/venmo-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers/venmo.d.ts +28 -28
- package/dist/src/braintree-manager/payment-providers/venmo.js +50 -50
- package/dist/src/braintree-manager/payment-providers/venmo.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers-interface.d.ts +16 -16
- package/dist/src/braintree-manager/payment-providers-interface.js.map +1 -1
- package/dist/src/braintree-manager/payment-providers.d.ts +45 -45
- package/dist/src/braintree-manager/payment-providers.js +105 -105
- package/dist/src/braintree-manager/payment-providers.js.map +1 -1
- package/dist/src/donation-form-controller.d.ts +116 -116
- package/dist/src/donation-form-controller.js +562 -562
- package/dist/src/donation-form-controller.js.map +1 -1
- package/dist/src/donation-form-error.d.ts +3 -3
- package/dist/src/donation-form-error.js +6 -6
- package/dist/src/donation-form-error.js.map +1 -1
- package/dist/src/donation-form.d.ts +120 -120
- package/dist/src/donation-form.js +530 -530
- package/dist/src/donation-form.js.map +1 -1
- package/dist/src/form-elements/badged-input.d.ts +32 -32
- package/dist/src/form-elements/badged-input.js +124 -124
- package/dist/src/form-elements/badged-input.js.map +1 -1
- package/dist/src/form-elements/contact-form/autocomplete-field-options.d.ts +1 -1
- package/dist/src/form-elements/contact-form/autocomplete-field-options.js.map +1 -1
- package/dist/src/form-elements/contact-form/contact-form.d.ts +53 -53
- package/dist/src/form-elements/contact-form/contact-form.js +428 -428
- package/dist/src/form-elements/contact-form/contact-form.js.map +1 -1
- package/dist/src/form-elements/contact-form/countries.d.ts +3 -3
- package/dist/src/form-elements/contact-form/countries.js +252 -252
- package/dist/src/form-elements/contact-form/countries.js.map +1 -1
- package/dist/src/form-elements/header/donation-form-header.d.ts +27 -27
- package/dist/src/form-elements/header/donation-form-header.js +97 -97
- package/dist/src/form-elements/header/donation-form-header.js.map +1 -1
- package/dist/src/form-elements/header/donation-summary.d.ts +11 -11
- package/dist/src/form-elements/header/donation-summary.js +57 -57
- package/dist/src/form-elements/header/donation-summary.js.map +1 -1
- package/dist/src/form-elements/payment-selector.d.ts +25 -25
- package/dist/src/form-elements/payment-selector.js +286 -286
- package/dist/src/form-elements/payment-selector.js.map +1 -1
- package/dist/src/form-elements/total-amount.d.ts +8 -8
- package/dist/src/form-elements/total-amount.js +47 -47
- package/dist/src/form-elements/total-amount.js.map +1 -1
- package/dist/src/modals/confirm-donation-modal-content.d.ts +31 -31
- package/dist/src/modals/confirm-donation-modal-content.js +168 -168
- package/dist/src/modals/confirm-donation-modal-content.js.map +1 -1
- package/dist/src/modals/error-modal-content.d.ts +14 -14
- package/dist/src/modals/error-modal-content.js +49 -49
- package/dist/src/modals/error-modal-content.js.map +1 -1
- package/dist/src/modals/upsell-modal-content.d.ts +32 -32
- package/dist/src/modals/upsell-modal-content.js +294 -294
- package/dist/src/modals/upsell-modal-content.js.map +1 -1
- package/dist/src/payment-flow-handlers/donation-flow-modal-manager.d.ts +181 -181
- package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js +252 -252
- package/dist/src/payment-flow-handlers/donation-flow-modal-manager.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.d.ts +21 -21
- package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.js +76 -76
- package/dist/src/payment-flow-handlers/handlers/applepay-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.d.ts +70 -70
- package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.js +140 -140
- package/dist/src/payment-flow-handlers/handlers/creditcard-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.d.ts +22 -22
- package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.js +74 -74
- package/dist/src/payment-flow-handlers/handlers/googlepay-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.d.ts +52 -52
- package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.js +239 -239
- package/dist/src/payment-flow-handlers/handlers/paypal-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.d.ts +30 -30
- package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.js +89 -89
- package/dist/src/payment-flow-handlers/handlers/venmo-flow-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.d.ts +75 -75
- package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.js +94 -94
- package/dist/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.js.map +1 -1
- package/dist/src/payment-flow-handlers/payment-flow-handlers.d.ts +111 -111
- package/dist/src/payment-flow-handlers/payment-flow-handlers.js +107 -107
- package/dist/src/payment-flow-handlers/payment-flow-handlers.js.map +1 -1
- package/dist/src/recaptcha-manager/recaptcha-manager.d.ts +48 -48
- package/dist/src/recaptcha-manager/recaptcha-manager.js +88 -88
- package/dist/src/recaptcha-manager/recaptcha-manager.js.map +1 -1
- package/dist/src/util/promisedSleep.d.ts +1 -1
- package/dist/src/util/promisedSleep.js +3 -3
- package/dist/src/util/promisedSleep.js.map +1 -1
- package/dist/test/helpers/fillInContactForm.d.ts +2 -2
- package/dist/test/helpers/fillInContactForm.js +19 -19
- package/dist/test/helpers/fillInContactForm.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.d.ts +7 -7
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.js +9 -9
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-applepay-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.d.ts +15 -15
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.js +32 -32
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-creditcard-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.d.ts +9 -9
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.js +15 -15
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-googlepay-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.d.ts +15 -15
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.js +30 -30
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-paypal-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.d.ts +9 -9
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.js +17 -17
- package/dist/test/mocks/flow-handlers/individual-handlers/mock-venmo-flow-handler.js.map +1 -1
- package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.d.ts +30 -30
- package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.js +29 -29
- package/dist/test/mocks/flow-handlers/mock-payment-flow-handlers.js.map +1 -1
- package/dist/test/mocks/mock-analytics-handler.d.ts +8 -0
- package/dist/test/mocks/mock-analytics-handler.js +10 -0
- package/dist/test/mocks/mock-analytics-handler.js.map +1 -0
- package/dist/test/mocks/mock-braintree-manager.d.ts +45 -45
- package/dist/test/mocks/mock-braintree-manager.js +71 -71
- package/dist/test/mocks/mock-braintree-manager.js.map +1 -1
- package/dist/test/mocks/mock-donation-info.d.ts +4 -4
- package/dist/test/mocks/mock-donation-info.js +10 -10
- package/dist/test/mocks/mock-donation-info.js.map +1 -1
- package/dist/test/mocks/mock-endpoint-manager.d.ts +12 -12
- package/dist/test/mocks/mock-endpoint-manager.js +19 -19
- package/dist/test/mocks/mock-endpoint-manager.js.map +1 -1
- package/dist/test/mocks/mock-hosted-fields-config.d.ts +4 -4
- package/dist/test/mocks/mock-hosted-fields-config.js +37 -37
- package/dist/test/mocks/mock-hosted-fields-config.js.map +1 -1
- package/dist/test/mocks/mock-hosted-fields-container.d.ts +13 -13
- package/dist/test/mocks/mock-hosted-fields-container.js +27 -27
- package/dist/test/mocks/mock-hosted-fields-container.js.map +1 -1
- package/dist/test/mocks/mock-lazy-loader.d.ts +15 -15
- package/dist/test/mocks/mock-lazy-loader.js +20 -20
- package/dist/test/mocks/mock-lazy-loader.js.map +1 -1
- package/dist/test/mocks/mock-modal-manager.d.ts +17 -17
- package/dist/test/mocks/mock-modal-manager.js +26 -26
- package/dist/test/mocks/mock-modal-manager.js.map +1 -1
- package/dist/test/mocks/mock-payment-clients.d.ts +29 -29
- package/dist/test/mocks/mock-payment-clients.js +78 -78
- package/dist/test/mocks/mock-payment-clients.js.map +1 -1
- package/dist/test/mocks/mock-paypal-button-renderer.d.ts +5 -5
- package/dist/test/mocks/mock-paypal-button-renderer.js +6 -6
- package/dist/test/mocks/mock-paypal-button-renderer.js.map +1 -1
- package/dist/test/mocks/mock-recaptcha-manager.d.ts +7 -7
- package/dist/test/mocks/mock-recaptcha-manager.js +14 -14
- package/dist/test/mocks/mock-recaptcha-manager.js.map +1 -1
- package/dist/test/mocks/models/mock-billing-info.d.ts +2 -2
- package/dist/test/mocks/models/mock-billing-info.js +9 -9
- package/dist/test/mocks/models/mock-billing-info.js.map +1 -1
- package/dist/test/mocks/models/mock-custom-fields.d.ts +2 -2
- package/dist/test/mocks/models/mock-custom-fields.js +7 -7
- package/dist/test/mocks/models/mock-custom-fields.js.map +1 -1
- package/dist/test/mocks/models/mock-customer-info.d.ts +2 -2
- package/dist/test/mocks/models/mock-customer-info.js +6 -6
- package/dist/test/mocks/models/mock-customer-info.js.map +1 -1
- package/dist/test/mocks/models/mock-donation-request.d.ts +2 -2
- package/dist/test/mocks/models/mock-donation-request.js +18 -18
- package/dist/test/mocks/models/mock-donation-request.js.map +1 -1
- package/dist/test/mocks/models/mock-success-response.d.ts +2 -2
- package/dist/test/mocks/models/mock-success-response.js +14 -14
- package/dist/test/mocks/models/mock-success-response.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-client.d.ts +21 -21
- package/dist/test/mocks/payment-clients/mock-applepay-client.js +72 -72
- package/dist/test/mocks/payment-clients/mock-applepay-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-payment.d.ts +6 -6
- package/dist/test/mocks/payment-clients/mock-applepay-payment.js +42 -42
- package/dist/test/mocks/payment-clients/mock-applepay-payment.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.d.ts +22 -22
- package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.js +35 -35
- package/dist/test/mocks/payment-clients/mock-applepay-paymentauthorizedevent.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-session.d.ts +30 -30
- package/dist/test/mocks/payment-clients/mock-applepay-session.js +52 -52
- package/dist/test/mocks/payment-clients/mock-applepay-session.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.d.ts +10 -10
- package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.js +12 -12
- package/dist/test/mocks/payment-clients/mock-applepay-sessionmanager.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.d.ts +22 -22
- package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.js +34 -34
- package/dist/test/mocks/payment-clients/mock-applepay-validatemerchantevent.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-braintree-client.d.ts +14 -14
- package/dist/test/mocks/payment-clients/mock-braintree-client.js +19 -19
- package/dist/test/mocks/payment-clients/mock-braintree-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-data-collector.d.ts +11 -11
- package/dist/test/mocks/payment-clients/mock-data-collector.js +17 -17
- package/dist/test/mocks/payment-clients/mock-data-collector.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-googlepay-client.d.ts +22 -22
- package/dist/test/mocks/payment-clients/mock-googlepay-client.js +42 -42
- package/dist/test/mocks/payment-clients/mock-googlepay-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-googlepay-library.d.ts +10 -10
- package/dist/test/mocks/payment-clients/mock-googlepay-library.js +22 -22
- package/dist/test/mocks/payment-clients/mock-googlepay-library.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-grecaptcha.d.ts +23 -23
- package/dist/test/mocks/payment-clients/mock-grecaptcha.js +62 -62
- package/dist/test/mocks/payment-clients/mock-grecaptcha.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfields-client.d.ts +33 -33
- package/dist/test/mocks/payment-clients/mock-hostedfields-client.js +54 -54
- package/dist/test/mocks/payment-clients/mock-hostedfields-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.d.ts +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.js +50 -50
- package/dist/test/mocks/payment-clients/mock-hostedfieldstateobject-generator.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.d.ts +1 -1
- package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.js +13 -13
- package/dist/test/mocks/payment-clients/mock-hostedfieldtokenizepayload.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-paypal-client.d.ts +23 -23
- package/dist/test/mocks/payment-clients/mock-paypal-client.js +62 -62
- package/dist/test/mocks/payment-clients/mock-paypal-client.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-paypal-library.d.ts +4 -4
- package/dist/test/mocks/payment-clients/mock-paypal-library.js +9 -9
- package/dist/test/mocks/payment-clients/mock-paypal-library.js.map +1 -1
- package/dist/test/mocks/payment-clients/mock-venmo-client.d.ts +22 -22
- package/dist/test/mocks/payment-clients/mock-venmo-client.js +36 -36
- package/dist/test/mocks/payment-clients/mock-venmo-client.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.d.ts +10 -10
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.js +14 -14
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-datasource-delegate.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.d.ts +9 -9
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.js +19 -19
- package/dist/test/mocks/payment-providers/individual-providers/mock-applepay-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.d.ts +18 -18
- package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js +41 -41
- package/dist/test/mocks/payment-providers/individual-providers/mock-creditcard-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.d.ts +8 -8
- package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.js +16 -16
- package/dist/test/mocks/payment-providers/individual-providers/mock-googlepay-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.d.ts +28 -28
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.js +52 -52
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource-delegate.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.d.ts +11 -11
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js +37 -37
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-button-datasource.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.d.ts +12 -12
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.js +15 -15
- package/dist/test/mocks/payment-providers/individual-providers/mock-paypal-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.d.ts +7 -7
- package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.js +22 -22
- package/dist/test/mocks/payment-providers/individual-providers/mock-venmo-handler.js.map +1 -1
- package/dist/test/mocks/payment-providers/mock-payment-providers.d.ts +21 -21
- package/dist/test/mocks/payment-providers/mock-payment-providers.js +45 -45
- package/dist/test/mocks/payment-providers/mock-payment-providers.js.map +1 -1
- package/dist/test/tests/braintree-manager.test.d.ts +1 -1
- package/dist/test/tests/braintree-manager.test.js +166 -166
- package/dist/test/tests/braintree-manager.test.js.map +1 -1
- package/dist/test/tests/donation-form-controller.test.d.ts +1 -1
- package/dist/test/tests/donation-form-controller.test.js +188 -188
- package/dist/test/tests/donation-form-controller.test.js.map +1 -1
- package/dist/test/tests/donation-form.test.d.ts +1 -1
- package/dist/test/tests/donation-form.test.js +109 -109
- package/dist/test/tests/donation-form.test.js.map +1 -1
- package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.d.ts +1 -1
- package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js +216 -216
- package/dist/test/tests/flow-handlers/donation-flow-modal-manager.test.js.map +1 -1
- package/dist/test/tests/form-elements/donation-summary.test.d.ts +1 -1
- package/dist/test/tests/form-elements/donation-summary.test.js +36 -36
- package/dist/test/tests/form-elements/donation-summary.test.js.map +1 -1
- package/dist/test/tests/form-elements/payment-selector.test.d.ts +1 -1
- package/dist/test/tests/form-elements/payment-selector.test.js +69 -69
- package/dist/test/tests/form-elements/payment-selector.test.js.map +1 -1
- package/dist/test/tests/modals/error-modal-content.test.d.ts +1 -1
- package/dist/test/tests/modals/error-modal-content.test.js +14 -14
- package/dist/test/tests/modals/error-modal-content.test.js.map +1 -1
- package/dist/test/tests/modals/upsell-modal-content.test.d.ts +1 -1
- package/dist/test/tests/modals/upsell-modal-content.test.js +163 -163
- package/dist/test/tests/modals/upsell-modal-content.test.js.map +1 -1
- package/dist/test/tests/models/donation-payment-info.test.d.ts +1 -1
- package/dist/test/tests/models/donation-payment-info.test.js +74 -74
- package/dist/test/tests/models/donation-payment-info.test.js.map +1 -1
- package/dist/test/tests/payment-clients.test.d.ts +1 -1
- package/dist/test/tests/payment-clients.test.js +130 -130
- package/dist/test/tests/payment-clients.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.js +160 -160
- package/dist/test/tests/payment-providers/applepay-sessiondatasource.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay-sessionmanager.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/applepay-sessionmanager.test.js +36 -36
- package/dist/test/tests/payment-providers/applepay-sessionmanager.test.js.map +1 -1
- package/dist/test/tests/payment-providers/applepay.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/applepay.test.js +78 -78
- package/dist/test/tests/payment-providers/applepay.test.js.map +1 -1
- package/dist/test/tests/payment-providers/creditcard.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/creditcard.test.js +190 -190
- package/dist/test/tests/payment-providers/creditcard.test.js.map +1 -1
- package/dist/test/tests/payment-providers/googlepay.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/googlepay.test.js +48 -48
- package/dist/test/tests/payment-providers/googlepay.test.js.map +1 -1
- package/dist/test/tests/payment-providers/payment-providers.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/payment-providers.test.js +38 -38
- package/dist/test/tests/payment-providers/payment-providers.test.js.map +1 -1
- package/dist/test/tests/payment-providers/paypal-button-datasource.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/paypal-button-datasource.test.js +162 -162
- package/dist/test/tests/payment-providers/paypal-button-datasource.test.js.map +1 -1
- package/dist/test/tests/payment-providers/paypal.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/paypal.test.js +38 -38
- package/dist/test/tests/payment-providers/paypal.test.js.map +1 -1
- package/dist/test/tests/payment-providers/venmo.test.d.ts +1 -1
- package/dist/test/tests/payment-providers/venmo.test.js +77 -77
- package/dist/test/tests/payment-providers/venmo.test.js.map +1 -1
- package/dist/test/tests/recaptcha-manager.test.d.ts +1 -1
- package/dist/test/tests/recaptcha-manager.test.js +70 -70
- package/dist/test/tests/recaptcha-manager.test.js.map +1 -1
- package/package.json +101 -101
- package/src/@types/analytics-handler/index.d.ts +8 -8
- package/src/@types/braintree-web/LICENSE +21 -21
- package/src/@types/braintree-web/index.d.ts +93 -93
- package/src/@types/braintree-web/modules/american-express.d.ts +50 -50
- package/src/@types/braintree-web/modules/apple-pay.d.ts +213 -213
- package/src/@types/braintree-web/modules/client.d.ts +103 -103
- package/src/@types/braintree-web/modules/core.d.ts +34 -34
- package/src/@types/braintree-web/modules/data-collector.d.ts +13 -13
- package/src/@types/braintree-web/modules/google-payment.d.ts +269 -269
- package/src/@types/braintree-web/modules/hosted-fields.d.ts +366 -366
- package/src/@types/braintree-web/modules/paypal-checkout.d.ts +262 -262
- package/src/@types/braintree-web/modules/paypal.d.ts +177 -177
- package/src/@types/braintree-web/modules/three-d-secure.d.ts +141 -141
- package/src/@types/braintree-web/modules/unionpay.d.ts +224 -224
- package/src/@types/braintree-web/modules/us-bank-account.d.ts +81 -81
- package/src/@types/braintree-web/modules/venmo.d.ts +110 -110
- package/src/@types/braintree-web/package.json +64 -64
- package/src/@types/paypal-checkout-components/LICENSE +21 -21
- package/src/@types/paypal-checkout-components/index.d.ts +67 -67
- package/src/@types/paypal-checkout-components/modules/button.d.ts +50 -50
- package/src/@types/paypal-checkout-components/modules/callback-data.d.ts +244 -244
- package/src/@types/paypal-checkout-components/modules/configuration.d.ts +114 -114
- package/src/@types/paypal-checkout-components/package.json +58 -58
- package/src/braintree-manager/braintree-interfaces.ts +172 -172
- package/src/braintree-manager/braintree-manager.ts +283 -283
- package/src/braintree-manager/payment-clients.ts +148 -148
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-interface.ts +13 -13
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-delegate.ts +8 -8
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource-interface.ts +10 -10
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-datasource.ts +119 -119
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay-session-manager.ts +21 -21
- package/src/braintree-manager/payment-providers/apple-pay/apple-pay.ts +98 -98
- package/src/braintree-manager/payment-providers/credit-card/credit-card-interface.ts +21 -21
- package/src/braintree-manager/payment-providers/credit-card/credit-card.ts +130 -130
- package/src/braintree-manager/payment-providers/credit-card/hosted-field-configuration.ts +19 -19
- package/src/braintree-manager/payment-providers/credit-card/hosted-field-container.ts +85 -85
- package/src/braintree-manager/payment-providers/google-pay-interface.ts +8 -8
- package/src/braintree-manager/payment-providers/google-pay.ts +59 -59
- package/src/braintree-manager/payment-providers/paypal/paypal-button-datasource.ts +218 -218
- package/src/braintree-manager/payment-providers/paypal/paypal-interface.ts +13 -13
- package/src/braintree-manager/payment-providers/paypal/paypal.ts +78 -78
- package/src/braintree-manager/payment-providers/venmo-interface.ts +8 -8
- package/src/braintree-manager/payment-providers/venmo.ts +67 -67
- package/src/braintree-manager/payment-providers-interface.ts +25 -25
- package/src/braintree-manager/payment-providers.ts +147 -147
- package/src/donation-form-controller.ts +619 -619
- package/src/donation-form-error.ts +6 -6
- package/src/donation-form.ts +566 -566
- package/src/form-elements/badged-input.ts +113 -113
- package/src/form-elements/contact-form/autocomplete-field-options.ts +63 -63
- package/src/form-elements/contact-form/contact-form.ts +427 -427
- package/src/form-elements/contact-form/countries.ts +252 -252
- package/src/form-elements/header/donation-form-header.ts +100 -100
- package/src/form-elements/header/donation-summary.ts +61 -61
- package/src/form-elements/payment-selector.ts +293 -293
- package/src/form-elements/total-amount.ts +46 -46
- package/src/modals/confirm-donation-modal-content.ts +160 -160
- package/src/modals/error-modal-content.ts +48 -48
- package/src/modals/upsell-modal-content.ts +294 -294
- package/src/payment-flow-handlers/donation-flow-modal-manager.ts +450 -450
- package/src/payment-flow-handlers/handlers/applepay-flow-handler.ts +108 -108
- package/src/payment-flow-handlers/handlers/creditcard-flow-handler.ts +231 -231
- package/src/payment-flow-handlers/handlers/googlepay-flow-handler.ts +113 -113
- package/src/payment-flow-handlers/handlers/paypal-flow-handler.ts +332 -332
- package/src/payment-flow-handlers/handlers/venmo-flow-handler.ts +118 -118
- package/src/payment-flow-handlers/handlers/venmo-restoration-state-handler.ts +127 -127
- package/src/payment-flow-handlers/payment-flow-handlers.ts +218 -218
- package/src/recaptcha-manager/recaptcha-manager.ts +123 -123
- package/src/util/promisedSleep.ts +3 -3
|
@@ -1,108 +1,108 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { CreditCardFlowHandler, } from './handlers/creditcard-flow-handler';
|
|
3
|
-
import { PayPalFlowHandler } from './handlers/paypal-flow-handler';
|
|
4
|
-
import { ApplePayFlowHandler, } from './handlers/applepay-flow-handler';
|
|
5
|
-
import { VenmoFlowHandler } from './handlers/venmo-flow-handler';
|
|
6
|
-
import { DonationFlowModalManager, } from './donation-flow-modal-manager';
|
|
7
|
-
import { GooglePayFlowHandler, } from './handlers/googlepay-flow-handler';
|
|
8
|
-
/**
|
|
9
|
-
* This class is a container for all of the individual flow handlers.
|
|
10
|
-
*
|
|
11
|
-
* Flow Handlers are responsible for handling the provider-specific interactions between
|
|
12
|
-
* the UI and the Data.
|
|
13
|
-
*
|
|
14
|
-
* For instance, when the user clicks on the "Donate" button for credit cards, we
|
|
15
|
-
* pull in contact info from the form, trigger the recaptcha, tokenize the form,
|
|
16
|
-
* submit, show the upsell, complete. The Credit Card Flow Handler is responsible for
|
|
17
|
-
* managing that series of steps.
|
|
18
|
-
*
|
|
19
|
-
* For PayPal, the user initiates the payment from the PayPal button and once they're
|
|
20
|
-
* done, we show the modal. The PayPal Flow Handler is responsible for handling that
|
|
21
|
-
* series of events.
|
|
22
|
-
*
|
|
23
|
-
* @export
|
|
24
|
-
* @class PaymentFlowHandlers
|
|
25
|
-
* @implements {PaymentFlowHandlersInterface}
|
|
26
|
-
*/
|
|
27
|
-
export class PaymentFlowHandlers {
|
|
28
|
-
constructor(options) {
|
|
29
|
-
this.braintreeManager = options.braintreeManager;
|
|
30
|
-
this.modalManager = options.modalManager;
|
|
31
|
-
this.recaptchaManager = options.recaptchaManager;
|
|
32
|
-
this.resources = options.resources;
|
|
33
|
-
this.donationFlowModalManager = new DonationFlowModalManager({
|
|
34
|
-
braintreeManager: this.braintreeManager,
|
|
35
|
-
modalManager: this.modalManager,
|
|
36
|
-
analytics: this.resources.analytics,
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
startup() {
|
|
40
|
-
var _a, _b;
|
|
41
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
-
(_a = this.venmoHandler) === null || _a === void 0 ? void 0 : _a.startup();
|
|
43
|
-
(_b = this.creditCardHandler) === null || _b === void 0 ? void 0 : _b.startup();
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
/** @inheritdoc */
|
|
47
|
-
showUpsellModal(options) {
|
|
48
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
-
return this.donationFlowModalManager.showUpsellModal(options);
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
/** @inheritdoc */
|
|
53
|
-
showConfirmationStepModal(options) {
|
|
54
|
-
return this.donationFlowModalManager.showConfirmationStepModal(options);
|
|
55
|
-
}
|
|
56
|
-
get creditCardHandler() {
|
|
57
|
-
if (this.creditCardHandlerCache) {
|
|
58
|
-
return this.creditCardHandlerCache;
|
|
59
|
-
}
|
|
60
|
-
this.creditCardHandlerCache = new CreditCardFlowHandler({
|
|
61
|
-
braintreeManager: this.braintreeManager,
|
|
62
|
-
donationFlowModalManager: this.donationFlowModalManager,
|
|
63
|
-
recaptchaManager: this.recaptchaManager,
|
|
64
|
-
});
|
|
65
|
-
return this.creditCardHandlerCache;
|
|
66
|
-
}
|
|
67
|
-
get paypalHandler() {
|
|
68
|
-
if (this.paypalHandlerCache) {
|
|
69
|
-
return this.paypalHandlerCache;
|
|
70
|
-
}
|
|
71
|
-
this.paypalHandlerCache = new PayPalFlowHandler({
|
|
72
|
-
braintreeManager: this.braintreeManager,
|
|
73
|
-
donationFlowModalManager: this.donationFlowModalManager,
|
|
74
|
-
});
|
|
75
|
-
return this.paypalHandlerCache;
|
|
76
|
-
}
|
|
77
|
-
get applePayHandler() {
|
|
78
|
-
if (this.applePayHandlerCache) {
|
|
79
|
-
return this.applePayHandlerCache;
|
|
80
|
-
}
|
|
81
|
-
this.applePayHandlerCache = new ApplePayFlowHandler({
|
|
82
|
-
braintreeManager: this.braintreeManager,
|
|
83
|
-
donationFlowModalManager: this.donationFlowModalManager,
|
|
84
|
-
});
|
|
85
|
-
return this.applePayHandlerCache;
|
|
86
|
-
}
|
|
87
|
-
get venmoHandler() {
|
|
88
|
-
if (this.venmoHandlerCache) {
|
|
89
|
-
return this.venmoHandlerCache;
|
|
90
|
-
}
|
|
91
|
-
this.venmoHandlerCache = new VenmoFlowHandler({
|
|
92
|
-
braintreeManager: this.braintreeManager,
|
|
93
|
-
donationFlowModalManager: this.donationFlowModalManager,
|
|
94
|
-
});
|
|
95
|
-
return this.venmoHandlerCache;
|
|
96
|
-
}
|
|
97
|
-
get googlePayHandler() {
|
|
98
|
-
if (this.googlePayHandlerCache) {
|
|
99
|
-
return this.googlePayHandlerCache;
|
|
100
|
-
}
|
|
101
|
-
this.googlePayHandlerCache = new GooglePayFlowHandler({
|
|
102
|
-
braintreeManager: this.braintreeManager,
|
|
103
|
-
donationFlowModalManager: this.donationFlowModalManager,
|
|
104
|
-
});
|
|
105
|
-
return this.googlePayHandlerCache;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { CreditCardFlowHandler, } from './handlers/creditcard-flow-handler';
|
|
3
|
+
import { PayPalFlowHandler } from './handlers/paypal-flow-handler';
|
|
4
|
+
import { ApplePayFlowHandler, } from './handlers/applepay-flow-handler';
|
|
5
|
+
import { VenmoFlowHandler } from './handlers/venmo-flow-handler';
|
|
6
|
+
import { DonationFlowModalManager, } from './donation-flow-modal-manager';
|
|
7
|
+
import { GooglePayFlowHandler, } from './handlers/googlepay-flow-handler';
|
|
8
|
+
/**
|
|
9
|
+
* This class is a container for all of the individual flow handlers.
|
|
10
|
+
*
|
|
11
|
+
* Flow Handlers are responsible for handling the provider-specific interactions between
|
|
12
|
+
* the UI and the Data.
|
|
13
|
+
*
|
|
14
|
+
* For instance, when the user clicks on the "Donate" button for credit cards, we
|
|
15
|
+
* pull in contact info from the form, trigger the recaptcha, tokenize the form,
|
|
16
|
+
* submit, show the upsell, complete. The Credit Card Flow Handler is responsible for
|
|
17
|
+
* managing that series of steps.
|
|
18
|
+
*
|
|
19
|
+
* For PayPal, the user initiates the payment from the PayPal button and once they're
|
|
20
|
+
* done, we show the modal. The PayPal Flow Handler is responsible for handling that
|
|
21
|
+
* series of events.
|
|
22
|
+
*
|
|
23
|
+
* @export
|
|
24
|
+
* @class PaymentFlowHandlers
|
|
25
|
+
* @implements {PaymentFlowHandlersInterface}
|
|
26
|
+
*/
|
|
27
|
+
export class PaymentFlowHandlers {
|
|
28
|
+
constructor(options) {
|
|
29
|
+
this.braintreeManager = options.braintreeManager;
|
|
30
|
+
this.modalManager = options.modalManager;
|
|
31
|
+
this.recaptchaManager = options.recaptchaManager;
|
|
32
|
+
this.resources = options.resources;
|
|
33
|
+
this.donationFlowModalManager = new DonationFlowModalManager({
|
|
34
|
+
braintreeManager: this.braintreeManager,
|
|
35
|
+
modalManager: this.modalManager,
|
|
36
|
+
analytics: this.resources.analytics,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
startup() {
|
|
40
|
+
var _a, _b;
|
|
41
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
+
(_a = this.venmoHandler) === null || _a === void 0 ? void 0 : _a.startup();
|
|
43
|
+
(_b = this.creditCardHandler) === null || _b === void 0 ? void 0 : _b.startup();
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/** @inheritdoc */
|
|
47
|
+
showUpsellModal(options) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
return this.donationFlowModalManager.showUpsellModal(options);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/** @inheritdoc */
|
|
53
|
+
showConfirmationStepModal(options) {
|
|
54
|
+
return this.donationFlowModalManager.showConfirmationStepModal(options);
|
|
55
|
+
}
|
|
56
|
+
get creditCardHandler() {
|
|
57
|
+
if (this.creditCardHandlerCache) {
|
|
58
|
+
return this.creditCardHandlerCache;
|
|
59
|
+
}
|
|
60
|
+
this.creditCardHandlerCache = new CreditCardFlowHandler({
|
|
61
|
+
braintreeManager: this.braintreeManager,
|
|
62
|
+
donationFlowModalManager: this.donationFlowModalManager,
|
|
63
|
+
recaptchaManager: this.recaptchaManager,
|
|
64
|
+
});
|
|
65
|
+
return this.creditCardHandlerCache;
|
|
66
|
+
}
|
|
67
|
+
get paypalHandler() {
|
|
68
|
+
if (this.paypalHandlerCache) {
|
|
69
|
+
return this.paypalHandlerCache;
|
|
70
|
+
}
|
|
71
|
+
this.paypalHandlerCache = new PayPalFlowHandler({
|
|
72
|
+
braintreeManager: this.braintreeManager,
|
|
73
|
+
donationFlowModalManager: this.donationFlowModalManager,
|
|
74
|
+
});
|
|
75
|
+
return this.paypalHandlerCache;
|
|
76
|
+
}
|
|
77
|
+
get applePayHandler() {
|
|
78
|
+
if (this.applePayHandlerCache) {
|
|
79
|
+
return this.applePayHandlerCache;
|
|
80
|
+
}
|
|
81
|
+
this.applePayHandlerCache = new ApplePayFlowHandler({
|
|
82
|
+
braintreeManager: this.braintreeManager,
|
|
83
|
+
donationFlowModalManager: this.donationFlowModalManager,
|
|
84
|
+
});
|
|
85
|
+
return this.applePayHandlerCache;
|
|
86
|
+
}
|
|
87
|
+
get venmoHandler() {
|
|
88
|
+
if (this.venmoHandlerCache) {
|
|
89
|
+
return this.venmoHandlerCache;
|
|
90
|
+
}
|
|
91
|
+
this.venmoHandlerCache = new VenmoFlowHandler({
|
|
92
|
+
braintreeManager: this.braintreeManager,
|
|
93
|
+
donationFlowModalManager: this.donationFlowModalManager,
|
|
94
|
+
});
|
|
95
|
+
return this.venmoHandlerCache;
|
|
96
|
+
}
|
|
97
|
+
get googlePayHandler() {
|
|
98
|
+
if (this.googlePayHandlerCache) {
|
|
99
|
+
return this.googlePayHandlerCache;
|
|
100
|
+
}
|
|
101
|
+
this.googlePayHandlerCache = new GooglePayFlowHandler({
|
|
102
|
+
braintreeManager: this.braintreeManager,
|
|
103
|
+
donationFlowModalManager: this.donationFlowModalManager,
|
|
104
|
+
});
|
|
105
|
+
return this.googlePayHandlerCache;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
108
|
//# sourceMappingURL=payment-flow-handlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment-flow-handlers.js","sourceRoot":"","sources":["../../../src/payment-flow-handlers/payment-flow-handlers.ts"],"names":[],"mappings":"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","sourcesContent":["import { ModalManagerInterface } from '@internetarchive/modal-manager';\r\n\r\nimport {\r\n CreditCardFlowHandlerInterface,\r\n CreditCardFlowHandler,\r\n} from './handlers/creditcard-flow-handler';\r\nimport { PayPalFlowHandlerInterface, PayPalFlowHandler } from './handlers/paypal-flow-handler';\r\nimport { BraintreeManagerInterface } from '../braintree-manager/braintree-interfaces';\r\nimport { RecaptchaManagerInterface } from '../recaptcha-manager/recaptcha-manager';\r\nimport {\r\n ApplePayFlowHandlerInterface,\r\n ApplePayFlowHandler,\r\n} from './handlers/applepay-flow-handler';\r\nimport { VenmoFlowHandlerInterface, VenmoFlowHandler } from './handlers/venmo-flow-handler';\r\nimport {\r\n DonationFlowModalManagerInterface,\r\n DonationFlowModalManager,\r\n} from './donation-flow-modal-manager';\r\nimport {\r\n GooglePayFlowHandlerInterface,\r\n GooglePayFlowHandler,\r\n} from './handlers/googlepay-flow-handler';\r\nimport { UpsellModalCTAMode } from '../modals/upsell-modal-content';\r\nimport { DonationType } from '@internetarchive/donation-form-data-models';\r\n\r\nexport interface PaymentFlowHandlersInterface {\r\n startup(): Promise<void>;\r\n /**\r\n * Show the upsell modal\r\n *\r\n * @param {{\r\n * ctaMode?: UpsellModalCTAMode;\r\n * yesSelected?: (amount: number) => void;\r\n * noSelected?: () => void;\r\n * amountChanged?: (amount: number) => void;\r\n * userClosedModalCallback?: () => void;\r\n * }} [options]\r\n * @returns {Promise<void>}\r\n * @memberof DonationFlowModalManagerInterface\r\n */\r\n showUpsellModal(options: {\r\n oneTimeAmount: number;\r\n ctaMode?: UpsellModalCTAMode;\r\n yesSelected?: (amount: number) => void;\r\n noSelected?: () => void;\r\n amountChanged?: (amount: number) => void;\r\n userClosedModalCallback?: () => void;\r\n }): Promise<void>;\r\n\r\n showConfirmationStepModal(options: {\r\n amount: number;\r\n donationType: DonationType;\r\n currencyType: string;\r\n confirmDonationCB: Function;\r\n cancelDonationCB: Function;\r\n }): Promise<void>;\r\n\r\n creditCardHandler: CreditCardFlowHandlerInterface | undefined;\r\n paypalHandler: PayPalFlowHandlerInterface | undefined;\r\n applePayHandler: ApplePayFlowHandlerInterface | undefined;\r\n venmoHandler: VenmoFlowHandlerInterface | undefined;\r\n googlePayHandler: GooglePayFlowHandlerInterface | undefined;\r\n}\r\n\r\n/**\r\n * This class is a container for all of the individual flow handlers.\r\n *\r\n * Flow Handlers are responsible for handling the provider-specific interactions between\r\n * the UI and the Data.\r\n *\r\n * For instance, when the user clicks on the \"Donate\" button for credit cards, we\r\n * pull in contact info from the form, trigger the recaptcha, tokenize the form,\r\n * submit, show the upsell, complete. The Credit Card Flow Handler is responsible for\r\n * managing that series of steps.\r\n *\r\n * For PayPal, the user initiates the payment from the PayPal button and once they're\r\n * done, we show the modal. The PayPal Flow Handler is responsible for handling that\r\n * series of events.\r\n *\r\n * @export\r\n * @class PaymentFlowHandlers\r\n * @implements {PaymentFlowHandlersInterface}\r\n */\r\nexport class PaymentFlowHandlers implements PaymentFlowHandlersInterface {\r\n async startup(): Promise<void> {\r\n this.venmoHandler?.startup();\r\n this.creditCardHandler?.startup();\r\n }\r\n\r\n /** @inheritdoc */\r\n async showUpsellModal(options: {\r\n oneTimeAmount: number;\r\n ctaMode?: UpsellModalCTAMode;\r\n yesSelected?: (amount: number) => void;\r\n noSelected?: () => void;\r\n amountChanged?: (amount: number) => void;\r\n userClosedModalCallback?: () => void;\r\n }): Promise<void> {\r\n return this.donationFlowModalManager.showUpsellModal(options);\r\n }\r\n\r\n /** @inheritdoc */\r\n showConfirmationStepModal(options: {\r\n amount: number;\r\n donationType: DonationType;\r\n currencyType: string;\r\n confirmDonationCB: Function;\r\n cancelDonationCB: Function;\r\n }): Promise<void> {\r\n return this.donationFlowModalManager.showConfirmationStepModal(options);\r\n }\r\n\r\n get creditCardHandler(): CreditCardFlowHandlerInterface | undefined {\r\n if (this.creditCardHandlerCache) {\r\n return this.creditCardHandlerCache;\r\n }\r\n\r\n this.creditCardHandlerCache = new CreditCardFlowHandler({\r\n braintreeManager: this.braintreeManager,\r\n donationFlowModalManager: this.donationFlowModalManager,\r\n recaptchaManager: this.recaptchaManager,\r\n });\r\n\r\n return this.creditCardHandlerCache;\r\n }\r\n\r\n get paypalHandler(): PayPalFlowHandlerInterface | undefined {\r\n if (this.paypalHandlerCache) {\r\n return this.paypalHandlerCache;\r\n }\r\n\r\n this.paypalHandlerCache = new PayPalFlowHandler({\r\n braintreeManager: this.braintreeManager,\r\n donationFlowModalManager: this.donationFlowModalManager,\r\n });\r\n\r\n return this.paypalHandlerCache;\r\n }\r\n\r\n get applePayHandler(): ApplePayFlowHandlerInterface | undefined {\r\n if (this.applePayHandlerCache) {\r\n return this.applePayHandlerCache;\r\n }\r\n\r\n this.applePayHandlerCache = new ApplePayFlowHandler({\r\n braintreeManager: this.braintreeManager,\r\n donationFlowModalManager: this.donationFlowModalManager,\r\n });\r\n\r\n return this.applePayHandlerCache;\r\n }\r\n\r\n get venmoHandler(): VenmoFlowHandlerInterface | undefined {\r\n if (this.venmoHandlerCache) {\r\n return this.venmoHandlerCache;\r\n }\r\n\r\n this.venmoHandlerCache = new VenmoFlowHandler({\r\n braintreeManager: this.braintreeManager,\r\n donationFlowModalManager: this.donationFlowModalManager,\r\n });\r\n\r\n return this.venmoHandlerCache;\r\n }\r\n\r\n get googlePayHandler(): GooglePayFlowHandlerInterface | undefined {\r\n if (this.googlePayHandlerCache) {\r\n return this.googlePayHandlerCache;\r\n }\r\n\r\n this.googlePayHandlerCache = new GooglePayFlowHandler({\r\n braintreeManager: this.braintreeManager,\r\n donationFlowModalManager: this.donationFlowModalManager,\r\n });\r\n\r\n return this.googlePayHandlerCache;\r\n }\r\n\r\n private creditCardHandlerCache?: CreditCardFlowHandlerInterface;\r\n private paypalHandlerCache?: PayPalFlowHandlerInterface;\r\n private applePayHandlerCache?: ApplePayFlowHandlerInterface;\r\n private venmoHandlerCache?: VenmoFlowHandlerInterface;\r\n private googlePayHandlerCache?: GooglePayFlowHandlerInterface;\r\n\r\n constructor(options: {\r\n braintreeManager: BraintreeManagerInterface;\r\n modalManager: ModalManagerInterface;\r\n recaptchaManager: RecaptchaManagerInterface;\r\n resources: {\r\n analytics: {\r\n logEvent: (action: string, label: string) => void;\r\n logDonationFlowEvent: (action: string, label: string) => void;\r\n };\r\n };\r\n }) {\r\n this.braintreeManager = options.braintreeManager;\r\n this.modalManager = options.modalManager;\r\n this.recaptchaManager = options.recaptchaManager;\r\n this.resources = options.resources;\r\n\r\n this.donationFlowModalManager = new DonationFlowModalManager({\r\n braintreeManager: this.braintreeManager,\r\n modalManager: this.modalManager,\r\n analytics: this.resources.analytics,\r\n });\r\n }\r\n\r\n private braintreeManager: BraintreeManagerInterface;\r\n private modalManager: ModalManagerInterface;\r\n private recaptchaManager: RecaptchaManagerInterface;\r\n private donationFlowModalManager: DonationFlowModalManagerInterface;\r\n private resources: {\r\n analytics: {\r\n logEvent: (action: string, label: string) => void;\r\n logDonationFlowEvent: (action: string, label: string) => void;\r\n };\r\n };\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"payment-flow-handlers.js","sourceRoot":"","sources":["../../../src/payment-flow-handlers/payment-flow-handlers.ts"],"names":[],"mappings":"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","sourcesContent":["import { ModalManagerInterface } from '@internetarchive/modal-manager';\n\nimport {\n CreditCardFlowHandlerInterface,\n CreditCardFlowHandler,\n} from './handlers/creditcard-flow-handler';\nimport { PayPalFlowHandlerInterface, PayPalFlowHandler } from './handlers/paypal-flow-handler';\nimport { BraintreeManagerInterface } from '../braintree-manager/braintree-interfaces';\nimport { RecaptchaManagerInterface } from '../recaptcha-manager/recaptcha-manager';\nimport {\n ApplePayFlowHandlerInterface,\n ApplePayFlowHandler,\n} from './handlers/applepay-flow-handler';\nimport { VenmoFlowHandlerInterface, VenmoFlowHandler } from './handlers/venmo-flow-handler';\nimport {\n DonationFlowModalManagerInterface,\n DonationFlowModalManager,\n} from './donation-flow-modal-manager';\nimport {\n GooglePayFlowHandlerInterface,\n GooglePayFlowHandler,\n} from './handlers/googlepay-flow-handler';\nimport { UpsellModalCTAMode } from '../modals/upsell-modal-content';\nimport { DonationType } from '@internetarchive/donation-form-data-models';\n\nexport interface PaymentFlowHandlersInterface {\n startup(): Promise<void>;\n /**\n * Show the upsell modal\n *\n * @param {{\n * ctaMode?: UpsellModalCTAMode;\n * yesSelected?: (amount: number) => void;\n * noSelected?: () => void;\n * amountChanged?: (amount: number) => void;\n * userClosedModalCallback?: () => void;\n * }} [options]\n * @returns {Promise<void>}\n * @memberof DonationFlowModalManagerInterface\n */\n showUpsellModal(options: {\n oneTimeAmount: number;\n ctaMode?: UpsellModalCTAMode;\n yesSelected?: (amount: number) => void;\n noSelected?: () => void;\n amountChanged?: (amount: number) => void;\n userClosedModalCallback?: () => void;\n }): Promise<void>;\n\n showConfirmationStepModal(options: {\n amount: number;\n donationType: DonationType;\n currencyType: string;\n confirmDonationCB: Function;\n cancelDonationCB: Function;\n }): Promise<void>;\n\n creditCardHandler: CreditCardFlowHandlerInterface | undefined;\n paypalHandler: PayPalFlowHandlerInterface | undefined;\n applePayHandler: ApplePayFlowHandlerInterface | undefined;\n venmoHandler: VenmoFlowHandlerInterface | undefined;\n googlePayHandler: GooglePayFlowHandlerInterface | undefined;\n}\n\n/**\n * This class is a container for all of the individual flow handlers.\n *\n * Flow Handlers are responsible for handling the provider-specific interactions between\n * the UI and the Data.\n *\n * For instance, when the user clicks on the \"Donate\" button for credit cards, we\n * pull in contact info from the form, trigger the recaptcha, tokenize the form,\n * submit, show the upsell, complete. The Credit Card Flow Handler is responsible for\n * managing that series of steps.\n *\n * For PayPal, the user initiates the payment from the PayPal button and once they're\n * done, we show the modal. The PayPal Flow Handler is responsible for handling that\n * series of events.\n *\n * @export\n * @class PaymentFlowHandlers\n * @implements {PaymentFlowHandlersInterface}\n */\nexport class PaymentFlowHandlers implements PaymentFlowHandlersInterface {\n async startup(): Promise<void> {\n this.venmoHandler?.startup();\n this.creditCardHandler?.startup();\n }\n\n /** @inheritdoc */\n async showUpsellModal(options: {\n oneTimeAmount: number;\n ctaMode?: UpsellModalCTAMode;\n yesSelected?: (amount: number) => void;\n noSelected?: () => void;\n amountChanged?: (amount: number) => void;\n userClosedModalCallback?: () => void;\n }): Promise<void> {\n return this.donationFlowModalManager.showUpsellModal(options);\n }\n\n /** @inheritdoc */\n showConfirmationStepModal(options: {\n amount: number;\n donationType: DonationType;\n currencyType: string;\n confirmDonationCB: Function;\n cancelDonationCB: Function;\n }): Promise<void> {\n return this.donationFlowModalManager.showConfirmationStepModal(options);\n }\n\n get creditCardHandler(): CreditCardFlowHandlerInterface | undefined {\n if (this.creditCardHandlerCache) {\n return this.creditCardHandlerCache;\n }\n\n this.creditCardHandlerCache = new CreditCardFlowHandler({\n braintreeManager: this.braintreeManager,\n donationFlowModalManager: this.donationFlowModalManager,\n recaptchaManager: this.recaptchaManager,\n });\n\n return this.creditCardHandlerCache;\n }\n\n get paypalHandler(): PayPalFlowHandlerInterface | undefined {\n if (this.paypalHandlerCache) {\n return this.paypalHandlerCache;\n }\n\n this.paypalHandlerCache = new PayPalFlowHandler({\n braintreeManager: this.braintreeManager,\n donationFlowModalManager: this.donationFlowModalManager,\n });\n\n return this.paypalHandlerCache;\n }\n\n get applePayHandler(): ApplePayFlowHandlerInterface | undefined {\n if (this.applePayHandlerCache) {\n return this.applePayHandlerCache;\n }\n\n this.applePayHandlerCache = new ApplePayFlowHandler({\n braintreeManager: this.braintreeManager,\n donationFlowModalManager: this.donationFlowModalManager,\n });\n\n return this.applePayHandlerCache;\n }\n\n get venmoHandler(): VenmoFlowHandlerInterface | undefined {\n if (this.venmoHandlerCache) {\n return this.venmoHandlerCache;\n }\n\n this.venmoHandlerCache = new VenmoFlowHandler({\n braintreeManager: this.braintreeManager,\n donationFlowModalManager: this.donationFlowModalManager,\n });\n\n return this.venmoHandlerCache;\n }\n\n get googlePayHandler(): GooglePayFlowHandlerInterface | undefined {\n if (this.googlePayHandlerCache) {\n return this.googlePayHandlerCache;\n }\n\n this.googlePayHandlerCache = new GooglePayFlowHandler({\n braintreeManager: this.braintreeManager,\n donationFlowModalManager: this.donationFlowModalManager,\n });\n\n return this.googlePayHandlerCache;\n }\n\n private creditCardHandlerCache?: CreditCardFlowHandlerInterface;\n private paypalHandlerCache?: PayPalFlowHandlerInterface;\n private applePayHandlerCache?: ApplePayFlowHandlerInterface;\n private venmoHandlerCache?: VenmoFlowHandlerInterface;\n private googlePayHandlerCache?: GooglePayFlowHandlerInterface;\n\n constructor(options: {\n braintreeManager: BraintreeManagerInterface;\n modalManager: ModalManagerInterface;\n recaptchaManager: RecaptchaManagerInterface;\n resources: {\n analytics: {\n logEvent: (action: string, label: string) => void;\n logDonationFlowEvent: (action: string, label: string) => void;\n };\n };\n }) {\n this.braintreeManager = options.braintreeManager;\n this.modalManager = options.modalManager;\n this.recaptchaManager = options.recaptchaManager;\n this.resources = options.resources;\n\n this.donationFlowModalManager = new DonationFlowModalManager({\n braintreeManager: this.braintreeManager,\n modalManager: this.modalManager,\n analytics: this.resources.analytics,\n });\n }\n\n private braintreeManager: BraintreeManagerInterface;\n private modalManager: ModalManagerInterface;\n private recaptchaManager: RecaptchaManagerInterface;\n private donationFlowModalManager: DonationFlowModalManagerInterface;\n private resources: {\n analytics: {\n logEvent: (action: string, label: string) => void;\n logDonationFlowEvent: (action: string, label: string) => void;\n };\n };\n}\n"]}
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
/// <reference types="grecaptcha" />
|
|
2
|
-
export interface RecaptchaManagerInterface {
|
|
3
|
-
execute(): Promise<string>;
|
|
4
|
-
setup(container: HTMLElement, tabIndex: number, theme: ReCaptchaV2.Theme, type: ReCaptchaV2.Type): void;
|
|
5
|
-
}
|
|
6
|
-
export declare class RecaptchaManager implements RecaptchaManagerInterface {
|
|
7
|
-
private grecaptchaLibrary;
|
|
8
|
-
private siteKey;
|
|
9
|
-
constructor(options: {
|
|
10
|
-
grecaptchaLibrary: ReCaptchaV2.ReCaptcha;
|
|
11
|
-
siteKey: string;
|
|
12
|
-
});
|
|
13
|
-
private executionSuccessBlock?;
|
|
14
|
-
private executionExpiredBlock?;
|
|
15
|
-
private executionErrorBlock?;
|
|
16
|
-
private isExecuting;
|
|
17
|
-
/**
|
|
18
|
-
* Execute Recaptcha and return a Promise containing the response token.
|
|
19
|
-
*
|
|
20
|
-
* This is an interesting flow.. we call `execute()` here, but have to wait for the
|
|
21
|
-
* response and expiration handlers that we bind during the inital `setup` call.
|
|
22
|
-
* For consumers, we want to be able to just call `execute()` and wait for a response.
|
|
23
|
-
* To allow this, we assign two callbacks:
|
|
24
|
-
* - `executionSuccessBlock`
|
|
25
|
-
* - `executionExpiredBlock`
|
|
26
|
-
*
|
|
27
|
-
* We then call those callbacks from inside `responseHandler` and `expiredHandler` to
|
|
28
|
-
* either resolve or reject the Promise.
|
|
29
|
-
*
|
|
30
|
-
* ie:
|
|
31
|
-
*
|
|
32
|
-
* try {
|
|
33
|
-
* const recaptchaResult = await recaptchaManager.execute();
|
|
34
|
-
* console.log('recaptcha token:', recaptchaResult);
|
|
35
|
-
* } catch {
|
|
36
|
-
* console.error('something happened')
|
|
37
|
-
* }
|
|
38
|
-
*
|
|
39
|
-
* @returns {Promise<string>}
|
|
40
|
-
* @memberof RecaptchaManager
|
|
41
|
-
*/
|
|
42
|
-
execute(): Promise<string>;
|
|
43
|
-
private finishExecution;
|
|
44
|
-
setup(container: HTMLElement, tabIndex: number, theme: ReCaptchaV2.Theme, type: ReCaptchaV2.Type): void;
|
|
45
|
-
private responseHandler;
|
|
46
|
-
private expiredHandler;
|
|
47
|
-
private errorHandler;
|
|
48
|
-
}
|
|
1
|
+
/// <reference types="grecaptcha" />
|
|
2
|
+
export interface RecaptchaManagerInterface {
|
|
3
|
+
execute(): Promise<string>;
|
|
4
|
+
setup(container: HTMLElement, tabIndex: number, theme: ReCaptchaV2.Theme, type: ReCaptchaV2.Type): void;
|
|
5
|
+
}
|
|
6
|
+
export declare class RecaptchaManager implements RecaptchaManagerInterface {
|
|
7
|
+
private grecaptchaLibrary;
|
|
8
|
+
private siteKey;
|
|
9
|
+
constructor(options: {
|
|
10
|
+
grecaptchaLibrary: ReCaptchaV2.ReCaptcha;
|
|
11
|
+
siteKey: string;
|
|
12
|
+
});
|
|
13
|
+
private executionSuccessBlock?;
|
|
14
|
+
private executionExpiredBlock?;
|
|
15
|
+
private executionErrorBlock?;
|
|
16
|
+
private isExecuting;
|
|
17
|
+
/**
|
|
18
|
+
* Execute Recaptcha and return a Promise containing the response token.
|
|
19
|
+
*
|
|
20
|
+
* This is an interesting flow.. we call `execute()` here, but have to wait for the
|
|
21
|
+
* response and expiration handlers that we bind during the inital `setup` call.
|
|
22
|
+
* For consumers, we want to be able to just call `execute()` and wait for a response.
|
|
23
|
+
* To allow this, we assign two callbacks:
|
|
24
|
+
* - `executionSuccessBlock`
|
|
25
|
+
* - `executionExpiredBlock`
|
|
26
|
+
*
|
|
27
|
+
* We then call those callbacks from inside `responseHandler` and `expiredHandler` to
|
|
28
|
+
* either resolve or reject the Promise.
|
|
29
|
+
*
|
|
30
|
+
* ie:
|
|
31
|
+
*
|
|
32
|
+
* try {
|
|
33
|
+
* const recaptchaResult = await recaptchaManager.execute();
|
|
34
|
+
* console.log('recaptcha token:', recaptchaResult);
|
|
35
|
+
* } catch {
|
|
36
|
+
* console.error('something happened')
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* @returns {Promise<string>}
|
|
40
|
+
* @memberof RecaptchaManager
|
|
41
|
+
*/
|
|
42
|
+
execute(): Promise<string>;
|
|
43
|
+
private finishExecution;
|
|
44
|
+
setup(container: HTMLElement, tabIndex: number, theme: ReCaptchaV2.Theme, type: ReCaptchaV2.Type): void;
|
|
45
|
+
private responseHandler;
|
|
46
|
+
private expiredHandler;
|
|
47
|
+
private errorHandler;
|
|
48
|
+
}
|
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
export class RecaptchaManager {
|
|
2
|
-
constructor(options) {
|
|
3
|
-
this.isExecuting = false;
|
|
4
|
-
this.grecaptchaLibrary = options.grecaptchaLibrary;
|
|
5
|
-
this.siteKey = options.siteKey;
|
|
6
|
-
}
|
|
7
|
-
/**
|
|
8
|
-
* Execute Recaptcha and return a Promise containing the response token.
|
|
9
|
-
*
|
|
10
|
-
* This is an interesting flow.. we call `execute()` here, but have to wait for the
|
|
11
|
-
* response and expiration handlers that we bind during the inital `setup` call.
|
|
12
|
-
* For consumers, we want to be able to just call `execute()` and wait for a response.
|
|
13
|
-
* To allow this, we assign two callbacks:
|
|
14
|
-
* - `executionSuccessBlock`
|
|
15
|
-
* - `executionExpiredBlock`
|
|
16
|
-
*
|
|
17
|
-
* We then call those callbacks from inside `responseHandler` and `expiredHandler` to
|
|
18
|
-
* either resolve or reject the Promise.
|
|
19
|
-
*
|
|
20
|
-
* ie:
|
|
21
|
-
*
|
|
22
|
-
* try {
|
|
23
|
-
* const recaptchaResult = await recaptchaManager.execute();
|
|
24
|
-
* console.log('recaptcha token:', recaptchaResult);
|
|
25
|
-
* } catch {
|
|
26
|
-
* console.error('something happened')
|
|
27
|
-
* }
|
|
28
|
-
*
|
|
29
|
-
* @returns {Promise<string>}
|
|
30
|
-
* @memberof RecaptchaManager
|
|
31
|
-
*/
|
|
32
|
-
execute() {
|
|
33
|
-
if (this.isExecuting) {
|
|
34
|
-
this.finishExecution();
|
|
35
|
-
}
|
|
36
|
-
this.isExecuting = true;
|
|
37
|
-
return new Promise((resolve, reject) => {
|
|
38
|
-
this.executionSuccessBlock = (token) => {
|
|
39
|
-
this.finishExecution();
|
|
40
|
-
resolve(token);
|
|
41
|
-
};
|
|
42
|
-
this.executionExpiredBlock = () => {
|
|
43
|
-
this.finishExecution();
|
|
44
|
-
reject('expired');
|
|
45
|
-
};
|
|
46
|
-
this.executionErrorBlock = () => {
|
|
47
|
-
this.finishExecution();
|
|
48
|
-
reject('error');
|
|
49
|
-
};
|
|
50
|
-
this.grecaptchaLibrary.execute();
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
finishExecution() {
|
|
54
|
-
this.isExecuting = false;
|
|
55
|
-
this.grecaptchaLibrary.reset();
|
|
56
|
-
}
|
|
57
|
-
setup(container, tabIndex, theme, type) {
|
|
58
|
-
this.grecaptchaLibrary.render(container, {
|
|
59
|
-
callback: this.responseHandler.bind(this),
|
|
60
|
-
'expired-callback': this.expiredHandler.bind(this),
|
|
61
|
-
'error-callback': this.errorHandler.bind(this),
|
|
62
|
-
sitekey: this.siteKey,
|
|
63
|
-
tabindex: tabIndex,
|
|
64
|
-
theme: theme,
|
|
65
|
-
type: type,
|
|
66
|
-
size: 'invisible',
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
70
|
-
responseHandler(response) {
|
|
71
|
-
if (this.executionSuccessBlock) {
|
|
72
|
-
this.executionSuccessBlock(response);
|
|
73
|
-
this.executionSuccessBlock = undefined;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
expiredHandler() {
|
|
77
|
-
if (this.executionExpiredBlock) {
|
|
78
|
-
this.executionExpiredBlock();
|
|
79
|
-
this.executionExpiredBlock = undefined;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
errorHandler() {
|
|
83
|
-
if (this.executionErrorBlock) {
|
|
84
|
-
this.executionErrorBlock();
|
|
85
|
-
this.executionErrorBlock = undefined;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
1
|
+
export class RecaptchaManager {
|
|
2
|
+
constructor(options) {
|
|
3
|
+
this.isExecuting = false;
|
|
4
|
+
this.grecaptchaLibrary = options.grecaptchaLibrary;
|
|
5
|
+
this.siteKey = options.siteKey;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Execute Recaptcha and return a Promise containing the response token.
|
|
9
|
+
*
|
|
10
|
+
* This is an interesting flow.. we call `execute()` here, but have to wait for the
|
|
11
|
+
* response and expiration handlers that we bind during the inital `setup` call.
|
|
12
|
+
* For consumers, we want to be able to just call `execute()` and wait for a response.
|
|
13
|
+
* To allow this, we assign two callbacks:
|
|
14
|
+
* - `executionSuccessBlock`
|
|
15
|
+
* - `executionExpiredBlock`
|
|
16
|
+
*
|
|
17
|
+
* We then call those callbacks from inside `responseHandler` and `expiredHandler` to
|
|
18
|
+
* either resolve or reject the Promise.
|
|
19
|
+
*
|
|
20
|
+
* ie:
|
|
21
|
+
*
|
|
22
|
+
* try {
|
|
23
|
+
* const recaptchaResult = await recaptchaManager.execute();
|
|
24
|
+
* console.log('recaptcha token:', recaptchaResult);
|
|
25
|
+
* } catch {
|
|
26
|
+
* console.error('something happened')
|
|
27
|
+
* }
|
|
28
|
+
*
|
|
29
|
+
* @returns {Promise<string>}
|
|
30
|
+
* @memberof RecaptchaManager
|
|
31
|
+
*/
|
|
32
|
+
execute() {
|
|
33
|
+
if (this.isExecuting) {
|
|
34
|
+
this.finishExecution();
|
|
35
|
+
}
|
|
36
|
+
this.isExecuting = true;
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
38
|
+
this.executionSuccessBlock = (token) => {
|
|
39
|
+
this.finishExecution();
|
|
40
|
+
resolve(token);
|
|
41
|
+
};
|
|
42
|
+
this.executionExpiredBlock = () => {
|
|
43
|
+
this.finishExecution();
|
|
44
|
+
reject('expired');
|
|
45
|
+
};
|
|
46
|
+
this.executionErrorBlock = () => {
|
|
47
|
+
this.finishExecution();
|
|
48
|
+
reject('error');
|
|
49
|
+
};
|
|
50
|
+
this.grecaptchaLibrary.execute();
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
finishExecution() {
|
|
54
|
+
this.isExecuting = false;
|
|
55
|
+
this.grecaptchaLibrary.reset();
|
|
56
|
+
}
|
|
57
|
+
setup(container, tabIndex, theme, type) {
|
|
58
|
+
this.grecaptchaLibrary.render(container, {
|
|
59
|
+
callback: this.responseHandler.bind(this),
|
|
60
|
+
'expired-callback': this.expiredHandler.bind(this),
|
|
61
|
+
'error-callback': this.errorHandler.bind(this),
|
|
62
|
+
sitekey: this.siteKey,
|
|
63
|
+
tabindex: tabIndex,
|
|
64
|
+
theme: theme,
|
|
65
|
+
type: type,
|
|
66
|
+
size: 'invisible',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
70
|
+
responseHandler(response) {
|
|
71
|
+
if (this.executionSuccessBlock) {
|
|
72
|
+
this.executionSuccessBlock(response);
|
|
73
|
+
this.executionSuccessBlock = undefined;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
expiredHandler() {
|
|
77
|
+
if (this.executionExpiredBlock) {
|
|
78
|
+
this.executionExpiredBlock();
|
|
79
|
+
this.executionExpiredBlock = undefined;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
errorHandler() {
|
|
83
|
+
if (this.executionErrorBlock) {
|
|
84
|
+
this.executionErrorBlock();
|
|
85
|
+
this.executionErrorBlock = undefined;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
89
|
//# sourceMappingURL=recaptcha-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recaptcha-manager.js","sourceRoot":"","sources":["../../../src/recaptcha-manager/recaptcha-manager.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,gBAAgB;IAK3B,YAAY,OAAsE;QAW1E,gBAAW,GAAG,KAAK,CAAC;QAV1B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAUD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,qBAAqB,GAAG,CAAC,KAAa,EAAQ,EAAE;gBACnD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC;YAEF,IAAI,CAAC,qBAAqB,GAAG,GAAS,EAAE;gBACtC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM,CAAC,SAAS,CAAC,CAAC;YACpB,CAAC,CAAC;YAEF,IAAI,CAAC,mBAAmB,GAAG,GAAS,EAAE;gBACpC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC,CAAC;YAEF,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CACH,SAAsB,EACtB,QAAgB,EAChB,KAAwB,EACxB,IAAsB;QAEtB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE;YACvC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YACzC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAClD,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;IACL,CAAC;IAED,8DAA8D;IACtD,eAAe,CAAC,QAAa;QACnC,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;SACxC;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;SACxC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;SACtC;IACH,CAAC;CACF","sourcesContent":["export interface RecaptchaManagerInterface {\
|
|
1
|
+
{"version":3,"file":"recaptcha-manager.js","sourceRoot":"","sources":["../../../src/recaptcha-manager/recaptcha-manager.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,gBAAgB;IAK3B,YAAY,OAAsE;QAW1E,gBAAW,GAAG,KAAK,CAAC;QAV1B,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAUD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,eAAe,EAAE,CAAC;SACxB;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,qBAAqB,GAAG,CAAC,KAAa,EAAQ,EAAE;gBACnD,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC,CAAC;YAEF,IAAI,CAAC,qBAAqB,GAAG,GAAS,EAAE;gBACtC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM,CAAC,SAAS,CAAC,CAAC;YACpB,CAAC,CAAC;YAEF,IAAI,CAAC,mBAAmB,GAAG,GAAS,EAAE;gBACpC,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,MAAM,CAAC,OAAO,CAAC,CAAC;YAClB,CAAC,CAAC;YAEF,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,eAAe;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CACH,SAAsB,EACtB,QAAgB,EAChB,KAAwB,EACxB,IAAsB;QAEtB,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,EAAE;YACvC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YACzC,kBAAkB,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;YAClD,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;IACL,CAAC;IAED,8DAA8D;IACtD,eAAe,CAAC,QAAa;QACnC,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YACrC,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;SACxC;IACH,CAAC;IAEO,cAAc;QACpB,IAAI,IAAI,CAAC,qBAAqB,EAAE;YAC9B,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;SACxC;IACH,CAAC;IAEO,YAAY;QAClB,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;SACtC;IACH,CAAC;CACF","sourcesContent":["export interface RecaptchaManagerInterface {\n execute(): Promise<string>;\n setup(\n container: HTMLElement,\n tabIndex: number,\n theme: ReCaptchaV2.Theme,\n type: ReCaptchaV2.Type,\n ): void;\n}\n\nexport class RecaptchaManager implements RecaptchaManagerInterface {\n private grecaptchaLibrary: ReCaptchaV2.ReCaptcha;\n\n private siteKey: string;\n\n constructor(options: { grecaptchaLibrary: ReCaptchaV2.ReCaptcha; siteKey: string }) {\n this.grecaptchaLibrary = options.grecaptchaLibrary;\n this.siteKey = options.siteKey;\n }\n\n private executionSuccessBlock?: (token: string) => void;\n\n private executionExpiredBlock?: () => void;\n\n private executionErrorBlock?: () => void;\n\n private isExecuting = false;\n\n /**\n * Execute Recaptcha and return a Promise containing the response token.\n *\n * This is an interesting flow.. we call `execute()` here, but have to wait for the\n * response and expiration handlers that we bind during the inital `setup` call.\n * For consumers, we want to be able to just call `execute()` and wait for a response.\n * To allow this, we assign two callbacks:\n * - `executionSuccessBlock`\n * - `executionExpiredBlock`\n *\n * We then call those callbacks from inside `responseHandler` and `expiredHandler` to\n * either resolve or reject the Promise.\n *\n * ie:\n *\n * try {\n * const recaptchaResult = await recaptchaManager.execute();\n * console.log('recaptcha token:', recaptchaResult);\n * } catch {\n * console.error('something happened')\n * }\n *\n * @returns {Promise<string>}\n * @memberof RecaptchaManager\n */\n execute(): Promise<string> {\n if (this.isExecuting) {\n this.finishExecution();\n }\n this.isExecuting = true;\n return new Promise((resolve, reject) => {\n this.executionSuccessBlock = (token: string): void => {\n this.finishExecution();\n resolve(token);\n };\n\n this.executionExpiredBlock = (): void => {\n this.finishExecution();\n reject('expired');\n };\n\n this.executionErrorBlock = (): void => {\n this.finishExecution();\n reject('error');\n };\n\n this.grecaptchaLibrary.execute();\n });\n }\n\n private finishExecution(): void {\n this.isExecuting = false;\n this.grecaptchaLibrary.reset();\n }\n\n setup(\n container: HTMLElement,\n tabIndex: number,\n theme: ReCaptchaV2.Theme,\n type: ReCaptchaV2.Type,\n ): void {\n this.grecaptchaLibrary.render(container, {\n callback: this.responseHandler.bind(this),\n 'expired-callback': this.expiredHandler.bind(this),\n 'error-callback': this.errorHandler.bind(this),\n sitekey: this.siteKey,\n tabindex: tabIndex,\n theme: theme,\n type: type,\n size: 'invisible',\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private responseHandler(response: any): void {\n if (this.executionSuccessBlock) {\n this.executionSuccessBlock(response);\n this.executionSuccessBlock = undefined;\n }\n }\n\n private expiredHandler(): void {\n if (this.executionExpiredBlock) {\n this.executionExpiredBlock();\n this.executionExpiredBlock = undefined;\n }\n }\n\n private errorHandler(): void {\n if (this.executionErrorBlock) {\n this.executionErrorBlock();\n this.executionErrorBlock = undefined;\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare function promisedSleep(ms: number): Promise<void>;
|
|
1
|
+
export declare function promisedSleep(ms: number): Promise<void>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export function promisedSleep(ms) {
|
|
2
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
3
|
-
}
|
|
1
|
+
export function promisedSleep(ms) {
|
|
2
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
3
|
+
}
|
|
4
4
|
//# sourceMappingURL=promisedSleep.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promisedSleep.js","sourceRoot":"","sources":["../../../src/util/promisedSleep.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC","sourcesContent":["export function promisedSleep(ms: number): Promise<void> {\
|
|
1
|
+
{"version":3,"file":"promisedSleep.js","sourceRoot":"","sources":["../../../src/util/promisedSleep.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC","sourcesContent":["export function promisedSleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { ContactForm } from '../../src/form-elements/contact-form/contact-form';
|
|
2
|
-
export declare function fillInContactForm(contactForm: ContactForm): Promise<void>;
|
|
1
|
+
import { ContactForm } from '../../src/form-elements/contact-form/contact-form';
|
|
2
|
+
export declare function fillInContactForm(contactForm: ContactForm): Promise<void>;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { elementUpdated } from '@open-wc/testing';
|
|
3
|
-
export function fillInContactForm(contactForm) {
|
|
4
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
5
|
-
contactForm.emailField.value = 'foo@bar.com';
|
|
6
|
-
contactForm.firstNameField.value = 'Fooey';
|
|
7
|
-
contactForm.lastNameField.value = 'McBarrison';
|
|
8
|
-
contactForm.streetAddressField.value = '123 Fake St';
|
|
9
|
-
contactForm.extendedAddressField.value = 'Apt 123';
|
|
10
|
-
contactForm.localityField.value = 'SF';
|
|
11
|
-
contactForm.regionField.value = 'CA';
|
|
12
|
-
contactForm.postalCodeField.value = '12345';
|
|
13
|
-
// setting the values above does not trigger any validations
|
|
14
|
-
// you have to send an `input` Event like what would happen in the browser
|
|
15
|
-
const inputEvent = new Event('input');
|
|
16
|
-
contactForm.postalCodeField.dispatchEvent(inputEvent);
|
|
17
|
-
yield elementUpdated(contactForm.postalCodeField);
|
|
18
|
-
});
|
|
19
|
-
}
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { elementUpdated } from '@open-wc/testing';
|
|
3
|
+
export function fillInContactForm(contactForm) {
|
|
4
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
5
|
+
contactForm.emailField.value = 'foo@bar.com';
|
|
6
|
+
contactForm.firstNameField.value = 'Fooey';
|
|
7
|
+
contactForm.lastNameField.value = 'McBarrison';
|
|
8
|
+
contactForm.streetAddressField.value = '123 Fake St';
|
|
9
|
+
contactForm.extendedAddressField.value = 'Apt 123';
|
|
10
|
+
contactForm.localityField.value = 'SF';
|
|
11
|
+
contactForm.regionField.value = 'CA';
|
|
12
|
+
contactForm.postalCodeField.value = '12345';
|
|
13
|
+
// setting the values above does not trigger any validations
|
|
14
|
+
// you have to send an `input` Event like what would happen in the browser
|
|
15
|
+
const inputEvent = new Event('input');
|
|
16
|
+
contactForm.postalCodeField.dispatchEvent(inputEvent);
|
|
17
|
+
yield elementUpdated(contactForm.postalCodeField);
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
20
|
//# sourceMappingURL=fillInContactForm.js.map
|