@internetarchive/donation-form 0.5.17-a3 → 0.5.18-alpha.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/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-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 -199
- 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
- package/dist/test/mocks/mock-analytics-handler.d.ts +0 -8
- package/dist/test/mocks/mock-analytics-handler.js +0 -10
- package/dist/test/mocks/mock-analytics-handler.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"donation-form.js","sourceRoot":"","sources":["../../src/donation-form.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css, CSSResult, TemplateResult, PropertyValues } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\nimport lockImg from '@internetarchive/icon-lock';\n\n// we have to import the registered component independently from the definition below\n// because inside each of these files, we're registering the custom element inside\n// these files and by simply importing the class name, you lose that behavior\n// See https://github.com/microsoft/TypeScript/issues/9191 for more discussion\nimport './form-elements/payment-selector';\nimport './form-elements/header/donation-form-header';\n\nimport { DonationFormHeader } from './form-elements/header/donation-form-header';\nimport { PaymentSelector } from './form-elements/payment-selector';\n\nimport { BraintreeManagerInterface } from './braintree-manager/braintree-interfaces';\n\nimport {\n DonationRequest,\n DonationPaymentInfo,\n PaymentProvider,\n DonorContactInfo,\n DonationType,\n defaultDonationAmounts,\n} from '@internetarchive/donation-form-data-models';\n\nimport { PaymentFlowHandlersInterface } from './payment-flow-handlers/payment-flow-handlers';\n\nimport {\n EditDonationAmountSelectionLayout,\n EditDonationFrequencySelectionMode,\n} from '@internetarchive/donation-form-edit-donation';\n\nimport '@internetarchive/donation-form-section';\nimport {\n DonationFormSection,\n DonationFormSectionBadgeMode,\n} from '@internetarchive/donation-form-section';\nimport { UpsellModalCTAMode } from './modals/upsell-modal-content';\nimport { ContactForm } from './form-elements/contact-form/contact-form';\nimport './form-elements/total-amount';\n\n@customElement('donation-form')\nexport class DonationForm extends LitElement {\n @property({ type: Object }) braintreeManager: BraintreeManagerInterface | undefined;\n\n @property({ type: Object }) paymentFlowHandlers: PaymentFlowHandlersInterface | undefined;\n\n @property({ type: Object }) donationRequest: DonationRequest | undefined;\n\n @property({ type: Object }) donationInfo?: DonationPaymentInfo;\n\n @property({ type: Object }) contactForm?: ContactForm;\n\n @property({ type: Array }) amountOptions: number[] = defaultDonationAmounts;\n\n @property({ type: String }) amountSelectionLayout: EditDonationAmountSelectionLayout =\n EditDonationAmountSelectionLayout.MultiLine;\n\n @property({ type: String }) frequencySelectionMode: EditDonationFrequencySelectionMode =\n EditDonationFrequencySelectionMode.Button;\n\n @property({ type: Boolean }) private creditCardVisible = false;\n\n @property({ type: Boolean }) private contactFormVisible = false;\n\n @property({ type: Boolean }) private donationInfoValid = true;\n\n @property({ type: String }) private selectedPaymentProvider?: PaymentProvider;\n\n @query('#contactFormSection') contactFormSection?: DonationFormSection;\n\n @query('donation-form-header') donationFormHeader!: DonationFormHeader;\n\n @query('payment-selector') paymentSelector!: PaymentSelector;\n\n private paypalButtonNeedsRender = true;\n\n /** @inheritdoc */\n render(): TemplateResult {\n return html`\n <donation-form-header\n .amountOptions=${this.amountOptions}\n .amountSelectionLayout=${this.amountSelectionLayout}\n .frequencySelectionMode=${this.frequencySelectionMode}\n @donationInfoChanged=${this.donationInfoChanged}\n @editDonationError=${this.editDonationError}\n >\n </donation-form-header>\n\n <donation-form-section\n .badgeMode=${DonationFormSectionBadgeMode.HideBadgeLeaveSpacing}\n id=\"total-amount-section\"\n >\n <donation-form-total-amount .donationInfo=${this.donationInfo}>\n </donation-form-total-amount>\n </donation-form-section>\n\n <donation-form-section\n .sectionBadge=${this.paymentSelectorNumberingStart}\n headline=\"Choose a payment method\"\n >\n <payment-selector\n .paymentProviders=${this.braintreeManager?.paymentProviders}\n @firstUpdated=${this.paymentSelectorFirstUpdated}\n @creditCardSelected=${this.creditCardSelected}\n @venmoSelected=${this.venmoSelected}\n @applePaySelected=${this.applePaySelected}\n @googlePaySelected=${this.googlePaySelected}\n @paypalBlockerSelected=${this.paypalBlockerSelected}\n tabindex=\"0\"\n >\n <slot name=\"paypal-button\" slot=\"paypal-button\"></slot>\n </payment-selector>\n </donation-form-section>\n\n <div class=\"contact-form-section ${this.contactFormVisible ? '' : 'hidden'}\">\n ${this.contactFormSectionTemplate}\n </div>\n <slot name=\"recaptcha\"></slot>\n `;\n }\n\n async showConfirmationModalDev(options: {\n donationType: DonationType;\n amount: number;\n currencyType: string;\n cancelDonationCB: Function;\n confirmDonationCB: Function;\n }): Promise<void> {\n this.paymentFlowHandlers?.showConfirmationStepModal(options);\n }\n\n /**\n * This is a developer convenience method that allows us to show the upsell modal without going\n * through the purchasing flow. If it's showing the PayPal button, it will trigger\n * the PayPal button render\n *\n * @param {{\n * oneTimeAmount: number;\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 DonationForm\n */\n async showUpsellModalDev(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 this.paymentFlowHandlers?.showUpsellModal(options);\n\n if (options.ctaMode === UpsellModalCTAMode.PayPalUpsellSlot) {\n const handler = await this.braintreeManager?.paymentProviders.paypalHandler.get();\n const donationInfo = new DonationPaymentInfo({\n amount: options.oneTimeAmount,\n donationType: DonationType.OneTime,\n coverFees: false,\n });\n handler?.renderPayPalButton({\n selector: '#paypal-upsell-button',\n style: {\n color: 'blue' as paypal.ButtonColorOption,\n label: 'paypal' as paypal.ButtonLabelOption,\n shape: 'rect' as paypal.ButtonShapeOption,\n size: 'responsive' as paypal.ButtonSizeOption,\n tagline: false,\n },\n donationInfo: donationInfo,\n });\n }\n }\n\n get contactFormSectionTemplate(): TemplateResult {\n return html`\n <donation-form-section\n .sectionBadge=${this.paymentSelectorNumberingStart + 1}\n headline=\"Enter payment information\"\n id=\"contactFormSection\"\n >\n <slot name=\"contact-form\"></slot>\n <div class=\"credit-card-fields\" class=\"${this.creditCardVisible ? '' : 'hidden'}\">\n <slot name=\"braintree-hosted-fields\"></slot>\n </div>\n </donation-form-section>\n\n <donation-form-section .sectionBadge=${this.paymentSelectorNumberingStart + 2}>\n <slot name=\"recaptcha\"></slot>\n <button id=\"donate-button\" @click=${this.donateClicked}>\n Donate\n </button>\n\n <div class=\"secure-process-note\">\n ${lockImg} Your payment will be securely processed\n </div>\n </donation-form-section>\n `;\n }\n\n /**\n * Where to start the numbering of the payment selector\n *\n * - If we show the frequency selector in button mode, it becomes section 1, which makes\n * the amount selection section 2, and the payment selector section 3.\n * - If we show the frequency selector in checkbox mode, it is no longer section 1. The amount\n * selector becomes section 1 and the payment selector becomes section 2.\n *\n * Visually:\n *\n * Button Mode:\n * 1. Frequency selector\n * 2. Amount selector\n * 3. Payment selector\n * 4. Contact info\n * 5. Donate button\n *\n * Checkbox Mode:\n * 1. Amount selector (including the monthly checkbox)\n * 2. Payment selector <-- changes from 3 to 2\n * 3. Contact info <-- changes from 4 to 3\n * 4. Donate button <-- changes from 5 to 4\n *\n * @readonly\n * @private\n * @type {number}\n * @memberof DonationForm\n */\n private get paymentSelectorNumberingStart(): number {\n return this.frequencySelectionMode === EditDonationFrequencySelectionMode.Button ? 3 : 2;\n }\n\n private editDonationError(): void {\n this.donationInfoValid = false;\n }\n\n private paymentSelectorFirstUpdated(): void {\n if (this.paymentFlowHandlers?.paypalHandler) {\n this.renderPayPalButtonIfNeeded();\n }\n }\n\n private applePaySelected(e: CustomEvent): void {\n this.selectedPaymentProvider = PaymentProvider.ApplePay;\n this.contactFormVisible = false;\n this.creditCardVisible = false;\n\n if (!this.donationInfoValid) {\n this.showInvalidDonationInfoAlert();\n return;\n }\n\n const originalEvent = e.detail.originalEvent;\n this.donationInfo &&\n this.paymentFlowHandlers?.applePayHandler?.paymentInitiated(this.donationInfo, originalEvent);\n this.emitPaymentFlowStartedEvent();\n }\n\n private googlePaySelected(): void {\n this.selectedPaymentProvider = PaymentProvider.GooglePay;\n this.contactFormVisible = false;\n this.creditCardVisible = false;\n\n if (!this.donationInfoValid) {\n this.showInvalidDonationInfoAlert();\n } else {\n this.donationInfo &&\n this.paymentFlowHandlers?.googlePayHandler?.paymentInitiated(this.donationInfo);\n this.emitPaymentFlowStartedEvent();\n }\n }\n\n private async creditCardSelected(): Promise<void> {\n if (!this.donationInfoValid) {\n this.showInvalidDonationInfoAlert();\n return;\n }\n this.selectedPaymentProvider = PaymentProvider.CreditCard;\n this.contactFormVisible = true;\n this.creditCardVisible = true;\n this.focusContactForm();\n }\n\n private async venmoSelected(): Promise<void> {\n if (!this.donationInfoValid) {\n this.showInvalidDonationInfoAlert();\n return;\n }\n this.selectedPaymentProvider = PaymentProvider.Venmo;\n this.contactFormVisible = true;\n this.creditCardVisible = false;\n this.focusContactForm();\n }\n\n private paypalBlockerSelected(): void {\n this.contactFormVisible = false;\n this.creditCardVisible = false;\n this.showInvalidDonationInfoAlert();\n }\n\n private async focusContactForm(): Promise<void> {\n await this.updateComplete;\n if (this.contactFormSection) {\n this.contactForm?.focus();\n }\n }\n\n private async donateClicked(): Promise<void> {\n if (!this.contactForm) {\n alert('Please enter contact info.');\n return;\n }\n if (!this.donationInfoValid || !this.donationInfo) {\n this.showInvalidDonationInfoAlert();\n return;\n }\n\n const contactInfo = this.contactForm.donorContactInfo;\n\n switch (this.selectedPaymentProvider) {\n case PaymentProvider.CreditCard:\n this.handleCreditCardDonationFlow(contactInfo, this.donationInfo);\n break;\n case PaymentProvider.Venmo:\n this.handleVenmoDonationFlow(contactInfo, this.donationInfo);\n break;\n }\n }\n\n private async handleCreditCardDonationFlow(\n contactInfo: DonorContactInfo,\n donationInfo: DonationPaymentInfo,\n ): Promise<void> {\n const creditCardFlowHandler = this.paymentFlowHandlers?.creditCardHandler;\n const creditCardHandler = await this.braintreeManager?.paymentProviders.creditCardHandler.get();\n creditCardHandler?.hideErrorMessage();\n const valid = this.contactForm?.reportValidity();\n const hostedFieldsResponse = await creditCardFlowHandler?.tokenizeFields();\n\n if (!valid || hostedFieldsResponse === undefined) {\n return;\n }\n\n this.emitPaymentFlowStartedEvent();\n creditCardFlowHandler?.paymentInitiated(hostedFieldsResponse, donationInfo, contactInfo);\n }\n\n private async handleVenmoDonationFlow(\n contactInfo: DonorContactInfo,\n donationInfo: DonationPaymentInfo,\n ): Promise<void> {\n const valid = this.contactForm?.reportValidity();\n if (!valid) {\n return;\n }\n this.paymentFlowHandlers?.venmoHandler?.paymentInitiated(contactInfo, donationInfo);\n }\n\n private emitPaymentFlowStartedEvent(): void {\n if (!this.selectedPaymentProvider) {\n return;\n }\n const event = new CustomEvent('paymentFlowStarted', {\n detail: { paymentProvider: this.selectedPaymentProvider },\n });\n this.dispatchEvent(event);\n }\n\n private emitPaymentFlowConfirmedEvent(): void {\n if (!this.selectedPaymentProvider) {\n return;\n }\n const event = new CustomEvent('paymentFlowConfirmed', {\n detail: { paymentProvider: this.selectedPaymentProvider },\n });\n this.dispatchEvent(event);\n }\n\n private emitPaymentFlowCancelledEvent(): void {\n if (!this.selectedPaymentProvider) {\n return;\n }\n const event = new CustomEvent('paymentFlowCancelled', {\n detail: { paymentProvider: this.selectedPaymentProvider },\n });\n this.dispatchEvent(event);\n }\n\n private emitPaymentFlowErrorEvent(error?: string): void {\n if (!this.selectedPaymentProvider) {\n return;\n }\n const event = new CustomEvent('paymentFlowError', {\n detail: { paymentProvider: this.selectedPaymentProvider, error: error },\n });\n this.dispatchEvent(event);\n }\n\n private showInvalidDonationInfoAlert(): void {\n alert('Please enter a valid donation amount.');\n }\n\n private async renderPayPalButtonIfNeeded(): Promise<void> {\n if (!this.paypalButtonNeedsRender) {\n return;\n }\n this.paypalButtonNeedsRender = false;\n this.donationInfo &&\n (await this.paymentFlowHandlers?.paypalHandler?.renderPayPalButton(this.donationInfo));\n this.paymentSelector.showPaypalButton();\n }\n\n updated(changedProperties: PropertyValues): void {\n if (changedProperties.has('donationInfo') && this.donationInfo) {\n // The PayPal button has a standalone datasource since we don't initiate the payment\n // through code so it has to have the donation info ready when the user taps the button.\n this.paymentFlowHandlers?.paypalHandler?.updateDonationInfo(this.donationInfo);\n this.donationFormHeader.donationInfo = this.donationInfo;\n }\n\n if (\n (changedProperties.has('paymentFlowHandlers') || changedProperties.has('donationInfo')) &&\n this.donationInfo &&\n this.paymentFlowHandlers\n ) {\n this.setupFlowHandlers();\n }\n\n if (changedProperties.has('donationInfoValid')) {\n this.paymentSelector.donationInfoValid = this.donationInfoValid;\n }\n\n if (changedProperties.has('selectedPaymentProvider')) {\n const event = new CustomEvent('paymentProviderSelected', {\n detail: {\n paymentProvider: this.selectedPaymentProvider,\n previousPaymentProvider: changedProperties.get('selectedPaymentProvider'),\n },\n });\n this.dispatchEvent(event);\n }\n }\n\n private flowHandlersConfigured = false;\n\n private setupFlowHandlers(): void {\n if (this.flowHandlersConfigured) {\n return;\n }\n this.flowHandlersConfigured = true;\n this.bindFlowListenerEvents();\n this.renderPayPalButtonIfNeeded();\n this.donationInfo &&\n this.paymentFlowHandlers?.paypalHandler?.updateDonationInfo(this.donationInfo);\n }\n\n private flowHandlerListenersBound = false;\n\n private bindFlowListenerEvents(): void {\n if (this.flowHandlerListenersBound) {\n return;\n }\n this.flowHandlerListenersBound = true;\n\n this.paymentFlowHandlers?.paypalHandler?.on('payPalPaymentStarted', () => {\n this.selectedPaymentProvider = PaymentProvider.PayPal;\n this.emitPaymentFlowStartedEvent();\n });\n this.paymentFlowHandlers?.paypalHandler?.on('payPalPaymentConfirmed', () => {\n this.selectedPaymentProvider = PaymentProvider.PayPal;\n this.emitPaymentFlowConfirmedEvent();\n });\n this.paymentFlowHandlers?.paypalHandler?.on('payPalPaymentCancelled', () => {\n this.selectedPaymentProvider = PaymentProvider.PayPal;\n this.emitPaymentFlowCancelledEvent();\n });\n this.paymentFlowHandlers?.paypalHandler?.on('payPalPaymentError', (datasource, error) => {\n this.selectedPaymentProvider = PaymentProvider.PayPal;\n this.emitPaymentFlowErrorEvent(error);\n });\n\n this.paymentFlowHandlers?.googlePayHandler?.on('paymentCancelled', () => {\n this.selectedPaymentProvider = PaymentProvider.GooglePay;\n this.emitPaymentFlowCancelledEvent();\n });\n }\n\n private donationInfoChanged(e: CustomEvent): void {\n const donationInfo: DonationPaymentInfo = e.detail.donationInfo;\n this.donationInfo = new DonationPaymentInfo({\n amount: donationInfo.amount,\n donationType: donationInfo.donationType,\n coverFees: donationInfo.coverFees,\n });\n this.donationInfoValid = true;\n const event = new CustomEvent('donationInfoChanged', { detail: { donationInfo } });\n this.dispatchEvent(event);\n }\n\n /** @inheritdoc */\n static get styles(): CSSResult {\n const donateButtonFontSize = css`var(--donateButtonFontSize, 2.6rem)`;\n const donateButtonHeight = css`var(--donateButtonHeight, 4rem)`;\n const donateButtonColor = css`var(--donateButtonColor, rgba(49, 164, 129, 1))`;\n const donateButtonTextColor = css`var(--donateButtonTextColor, #fff)`;\n const donateButtonHoverColor = css`var(--donateButtonHoverColor, rgba(39, 131, 103, 1))`;\n const totalAmountTopMargin = css`var(--donateTotalAmountTopMargin, 1.5rem)`;\n const totalAmountBottomMargin = css`var(--donateTotalAmountBottomMargin, 1.2rem)`;\n\n return css`\n h1 {\n margin: 0;\n padding: 0;\n }\n\n .hidden {\n display: none;\n }\n\n .secure-process-note {\n margin-top: 0.5em;\n font-size: 0.75em;\n text-align: center;\n }\n\n .secure-process-note svg {\n width: 1.2rem;\n height: 1.5rem;\n vertical-align: bottom;\n }\n\n #donate-button {\n width: 100%;\n appearance: none;\n -webkit-appearance: none;\n font-size: ${donateButtonFontSize};\n font-weight: bold;\n text-align: center;\n color: ${donateButtonTextColor};\n cursor: pointer;\n border: none;\n border-radius: 5px;\n background-color: ${donateButtonColor};\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n height: ${donateButtonHeight};\n }\n\n #donate-button:hover {\n background-color: ${donateButtonHoverColor};\n }\n\n #total-amount-section {\n display: block;\n margin-top: ${totalAmountTopMargin};\n margin-bottom: ${totalAmountBottomMargin};\n }\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"donation-form.js","sourceRoot":"","sources":["../../src/donation-form.ts"],"names":[],"mappings":"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","sourcesContent":["import { LitElement, html, css, CSSResult, TemplateResult, PropertyValues } from 'lit';\r\nimport { customElement, property, query } from 'lit/decorators.js';\r\n\r\nimport lockImg from '@internetarchive/icon-lock';\r\n\r\n// we have to import the registered component independently from the definition below\r\n// because inside each of these files, we're registering the custom element inside\r\n// these files and by simply importing the class name, you lose that behavior\r\n// See https://github.com/microsoft/TypeScript/issues/9191 for more discussion\r\nimport './form-elements/payment-selector';\r\nimport './form-elements/header/donation-form-header';\r\n\r\nimport { DonationFormHeader } from './form-elements/header/donation-form-header';\r\nimport { PaymentSelector } from './form-elements/payment-selector';\r\n\r\nimport { BraintreeManagerInterface } from './braintree-manager/braintree-interfaces';\r\n\r\nimport {\r\n DonationRequest,\r\n DonationPaymentInfo,\r\n PaymentProvider,\r\n DonorContactInfo,\r\n DonationType,\r\n defaultDonationAmounts,\r\n} from '@internetarchive/donation-form-data-models';\r\n\r\nimport { PaymentFlowHandlersInterface } from './payment-flow-handlers/payment-flow-handlers';\r\n\r\nimport {\r\n EditDonationAmountSelectionLayout,\r\n EditDonationFrequencySelectionMode,\r\n} from '@internetarchive/donation-form-edit-donation';\r\n\r\nimport '@internetarchive/donation-form-section';\r\nimport {\r\n DonationFormSection,\r\n DonationFormSectionBadgeMode,\r\n} from '@internetarchive/donation-form-section';\r\nimport { UpsellModalCTAMode } from './modals/upsell-modal-content';\r\nimport { ContactForm } from './form-elements/contact-form/contact-form';\r\nimport './form-elements/total-amount';\r\n\r\n@customElement('donation-form')\r\nexport class DonationForm extends LitElement {\r\n @property({ type: Object }) braintreeManager: BraintreeManagerInterface | undefined;\r\n\r\n @property({ type: Object }) paymentFlowHandlers: PaymentFlowHandlersInterface | undefined;\r\n\r\n @property({ type: Object }) donationRequest: DonationRequest | undefined;\r\n\r\n @property({ type: Object }) donationInfo?: DonationPaymentInfo;\r\n\r\n @property({ type: Object }) contactForm?: ContactForm;\r\n\r\n @property({ type: Array }) amountOptions: number[] = defaultDonationAmounts;\r\n\r\n @property({ type: String }) amountSelectionLayout: EditDonationAmountSelectionLayout =\r\n EditDonationAmountSelectionLayout.MultiLine;\r\n\r\n @property({ type: String }) frequencySelectionMode: EditDonationFrequencySelectionMode =\r\n EditDonationFrequencySelectionMode.Button;\r\n\r\n @property({ type: Boolean }) private creditCardVisible = false;\r\n\r\n @property({ type: Boolean }) private contactFormVisible = false;\r\n\r\n @property({ type: Boolean }) private donationInfoValid = true;\r\n\r\n @property({ type: String }) private selectedPaymentProvider?: PaymentProvider;\r\n\r\n @query('#contactFormSection') contactFormSection?: DonationFormSection;\r\n\r\n @query('donation-form-header') donationFormHeader!: DonationFormHeader;\r\n\r\n @query('payment-selector') paymentSelector!: PaymentSelector;\r\n\r\n private paypalButtonNeedsRender = true;\r\n\r\n /** @inheritdoc */\r\n render(): TemplateResult {\r\n return html`\r\n <donation-form-header\r\n .amountOptions=${this.amountOptions}\r\n .amountSelectionLayout=${this.amountSelectionLayout}\r\n .frequencySelectionMode=${this.frequencySelectionMode}\r\n @donationInfoChanged=${this.donationInfoChanged}\r\n @editDonationError=${this.editDonationError}\r\n >\r\n </donation-form-header>\r\n\r\n <donation-form-section\r\n .badgeMode=${DonationFormSectionBadgeMode.HideBadgeLeaveSpacing}\r\n id=\"total-amount-section\"\r\n >\r\n <donation-form-total-amount .donationInfo=${this.donationInfo}>\r\n </donation-form-total-amount>\r\n </donation-form-section>\r\n\r\n <donation-form-section\r\n .sectionBadge=${this.paymentSelectorNumberingStart}\r\n headline=\"Choose a payment method\"\r\n >\r\n <payment-selector\r\n .paymentProviders=${this.braintreeManager?.paymentProviders}\r\n @firstUpdated=${this.paymentSelectorFirstUpdated}\r\n @creditCardSelected=${this.creditCardSelected}\r\n @venmoSelected=${this.venmoSelected}\r\n @applePaySelected=${this.applePaySelected}\r\n @googlePaySelected=${this.googlePaySelected}\r\n @paypalBlockerSelected=${this.paypalBlockerSelected}\r\n tabindex=\"0\"\r\n >\r\n <slot name=\"paypal-button\" slot=\"paypal-button\"></slot>\r\n </payment-selector>\r\n </donation-form-section>\r\n\r\n <div class=\"contact-form-section ${this.contactFormVisible ? '' : 'hidden'}\">\r\n ${this.contactFormSectionTemplate}\r\n </div>\r\n <slot name=\"recaptcha\"></slot>\r\n `;\r\n }\r\n\r\n async showConfirmationModalDev(options: {\r\n donationType: DonationType;\r\n amount: number;\r\n currencyType: string;\r\n cancelDonationCB: Function;\r\n confirmDonationCB: Function;\r\n }): Promise<void> {\r\n this.paymentFlowHandlers?.showConfirmationStepModal(options);\r\n }\r\n\r\n /**\r\n * This is a developer convenience method that allows us to show the upsell modal without going\r\n * through the purchasing flow. If it's showing the PayPal button, it will trigger\r\n * the PayPal button render\r\n *\r\n * @param {{\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 * }} options\r\n * @returns {Promise<void>}\r\n * @memberof DonationForm\r\n */\r\n async showUpsellModalDev(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 this.paymentFlowHandlers?.showUpsellModal(options);\r\n\r\n if (options.ctaMode === UpsellModalCTAMode.PayPalUpsellSlot) {\r\n const handler = await this.braintreeManager?.paymentProviders.paypalHandler.get();\r\n const donationInfo = new DonationPaymentInfo({\r\n amount: options.oneTimeAmount,\r\n donationType: DonationType.OneTime,\r\n coverFees: false,\r\n });\r\n handler?.renderPayPalButton({\r\n selector: '#paypal-upsell-button',\r\n style: {\r\n color: 'blue' as paypal.ButtonColorOption,\r\n label: 'paypal' as paypal.ButtonLabelOption,\r\n shape: 'rect' as paypal.ButtonShapeOption,\r\n size: 'responsive' as paypal.ButtonSizeOption,\r\n tagline: false,\r\n },\r\n donationInfo: donationInfo,\r\n });\r\n }\r\n }\r\n\r\n get contactFormSectionTemplate(): TemplateResult {\r\n return html`\r\n <donation-form-section\r\n .sectionBadge=${this.paymentSelectorNumberingStart + 1}\r\n headline=\"Enter payment information\"\r\n id=\"contactFormSection\"\r\n >\r\n <slot name=\"contact-form\"></slot>\r\n <div class=\"credit-card-fields\" class=\"${this.creditCardVisible ? '' : 'hidden'}\">\r\n <slot name=\"braintree-hosted-fields\"></slot>\r\n </div>\r\n </donation-form-section>\r\n\r\n <donation-form-section .sectionBadge=${this.paymentSelectorNumberingStart + 2}>\r\n <slot name=\"recaptcha\"></slot>\r\n <button id=\"donate-button\" @click=${this.donateClicked}>\r\n Donate\r\n </button>\r\n\r\n <div class=\"secure-process-note\">\r\n ${lockImg} Your payment will be securely processed\r\n </div>\r\n </donation-form-section>\r\n `;\r\n }\r\n\r\n /**\r\n * Where to start the numbering of the payment selector\r\n *\r\n * - If we show the frequency selector in button mode, it becomes section 1, which makes\r\n * the amount selection section 2, and the payment selector section 3.\r\n * - If we show the frequency selector in checkbox mode, it is no longer section 1. The amount\r\n * selector becomes section 1 and the payment selector becomes section 2.\r\n *\r\n * Visually:\r\n *\r\n * Button Mode:\r\n * 1. Frequency selector\r\n * 2. Amount selector\r\n * 3. Payment selector\r\n * 4. Contact info\r\n * 5. Donate button\r\n *\r\n * Checkbox Mode:\r\n * 1. Amount selector (including the monthly checkbox)\r\n * 2. Payment selector <-- changes from 3 to 2\r\n * 3. Contact info <-- changes from 4 to 3\r\n * 4. Donate button <-- changes from 5 to 4\r\n *\r\n * @readonly\r\n * @private\r\n * @type {number}\r\n * @memberof DonationForm\r\n */\r\n private get paymentSelectorNumberingStart(): number {\r\n return this.frequencySelectionMode === EditDonationFrequencySelectionMode.Button ? 3 : 2;\r\n }\r\n\r\n private editDonationError(): void {\r\n this.donationInfoValid = false;\r\n }\r\n\r\n private paymentSelectorFirstUpdated(): void {\r\n if (this.paymentFlowHandlers?.paypalHandler) {\r\n this.renderPayPalButtonIfNeeded();\r\n }\r\n }\r\n\r\n private applePaySelected(e: CustomEvent): void {\r\n this.selectedPaymentProvider = PaymentProvider.ApplePay;\r\n this.contactFormVisible = false;\r\n this.creditCardVisible = false;\r\n\r\n if (!this.donationInfoValid) {\r\n this.showInvalidDonationInfoAlert();\r\n return;\r\n }\r\n\r\n const originalEvent = e.detail.originalEvent;\r\n this.donationInfo &&\r\n this.paymentFlowHandlers?.applePayHandler?.paymentInitiated(this.donationInfo, originalEvent);\r\n this.emitPaymentFlowStartedEvent();\r\n }\r\n\r\n private googlePaySelected(): void {\r\n this.selectedPaymentProvider = PaymentProvider.GooglePay;\r\n this.contactFormVisible = false;\r\n this.creditCardVisible = false;\r\n\r\n if (!this.donationInfoValid) {\r\n this.showInvalidDonationInfoAlert();\r\n } else {\r\n this.donationInfo &&\r\n this.paymentFlowHandlers?.googlePayHandler?.paymentInitiated(this.donationInfo);\r\n this.emitPaymentFlowStartedEvent();\r\n }\r\n }\r\n\r\n private async creditCardSelected(): Promise<void> {\r\n if (!this.donationInfoValid) {\r\n this.showInvalidDonationInfoAlert();\r\n return;\r\n }\r\n this.selectedPaymentProvider = PaymentProvider.CreditCard;\r\n this.contactFormVisible = true;\r\n this.creditCardVisible = true;\r\n this.focusContactForm();\r\n }\r\n\r\n private async venmoSelected(): Promise<void> {\r\n if (!this.donationInfoValid) {\r\n this.showInvalidDonationInfoAlert();\r\n return;\r\n }\r\n this.selectedPaymentProvider = PaymentProvider.Venmo;\r\n this.contactFormVisible = true;\r\n this.creditCardVisible = false;\r\n this.focusContactForm();\r\n }\r\n\r\n private paypalBlockerSelected(): void {\r\n this.contactFormVisible = false;\r\n this.creditCardVisible = false;\r\n this.showInvalidDonationInfoAlert();\r\n }\r\n\r\n private async focusContactForm(): Promise<void> {\r\n await this.updateComplete;\r\n if (this.contactFormSection) {\r\n this.contactForm?.focus();\r\n }\r\n }\r\n\r\n private async donateClicked(): Promise<void> {\r\n if (!this.contactForm) {\r\n alert('Please enter contact info.');\r\n return;\r\n }\r\n if (!this.donationInfoValid || !this.donationInfo) {\r\n this.showInvalidDonationInfoAlert();\r\n return;\r\n }\r\n\r\n const contactInfo = this.contactForm.donorContactInfo;\r\n\r\n switch (this.selectedPaymentProvider) {\r\n case PaymentProvider.CreditCard:\r\n this.handleCreditCardDonationFlow(contactInfo, this.donationInfo);\r\n break;\r\n case PaymentProvider.Venmo:\r\n this.handleVenmoDonationFlow(contactInfo, this.donationInfo);\r\n break;\r\n }\r\n }\r\n\r\n private async handleCreditCardDonationFlow(\r\n contactInfo: DonorContactInfo,\r\n donationInfo: DonationPaymentInfo,\r\n ): Promise<void> {\r\n const creditCardFlowHandler = this.paymentFlowHandlers?.creditCardHandler;\r\n const creditCardHandler = await this.braintreeManager?.paymentProviders.creditCardHandler.get();\r\n creditCardHandler?.hideErrorMessage();\r\n const valid = this.contactForm?.reportValidity();\r\n const hostedFieldsResponse = await creditCardFlowHandler?.tokenizeFields();\r\n\r\n if (!valid || hostedFieldsResponse === undefined) {\r\n return;\r\n }\r\n\r\n this.emitPaymentFlowStartedEvent();\r\n creditCardFlowHandler?.paymentInitiated(hostedFieldsResponse, donationInfo, contactInfo);\r\n }\r\n\r\n private async handleVenmoDonationFlow(\r\n contactInfo: DonorContactInfo,\r\n donationInfo: DonationPaymentInfo,\r\n ): Promise<void> {\r\n const valid = this.contactForm?.reportValidity();\r\n if (!valid) {\r\n return;\r\n }\r\n this.paymentFlowHandlers?.venmoHandler?.paymentInitiated(contactInfo, donationInfo);\r\n }\r\n\r\n private emitPaymentFlowStartedEvent(): void {\r\n if (!this.selectedPaymentProvider) {\r\n return;\r\n }\r\n const event = new CustomEvent('paymentFlowStarted', {\r\n detail: { paymentProvider: this.selectedPaymentProvider },\r\n });\r\n this.dispatchEvent(event);\r\n }\r\n\r\n private emitPaymentFlowConfirmedEvent(): void {\r\n if (!this.selectedPaymentProvider) {\r\n return;\r\n }\r\n const event = new CustomEvent('paymentFlowConfirmed', {\r\n detail: { paymentProvider: this.selectedPaymentProvider },\r\n });\r\n this.dispatchEvent(event);\r\n }\r\n\r\n private emitPaymentFlowCancelledEvent(): void {\r\n if (!this.selectedPaymentProvider) {\r\n return;\r\n }\r\n const event = new CustomEvent('paymentFlowCancelled', {\r\n detail: { paymentProvider: this.selectedPaymentProvider },\r\n });\r\n this.dispatchEvent(event);\r\n }\r\n\r\n private emitPaymentFlowErrorEvent(error?: string): void {\r\n if (!this.selectedPaymentProvider) {\r\n return;\r\n }\r\n const event = new CustomEvent('paymentFlowError', {\r\n detail: { paymentProvider: this.selectedPaymentProvider, error: error },\r\n });\r\n this.dispatchEvent(event);\r\n }\r\n\r\n private showInvalidDonationInfoAlert(): void {\r\n alert('Please enter a valid donation amount.');\r\n }\r\n\r\n private async renderPayPalButtonIfNeeded(): Promise<void> {\r\n if (!this.paypalButtonNeedsRender) {\r\n return;\r\n }\r\n this.paypalButtonNeedsRender = false;\r\n this.donationInfo &&\r\n (await this.paymentFlowHandlers?.paypalHandler?.renderPayPalButton(this.donationInfo));\r\n this.paymentSelector.showPaypalButton();\r\n }\r\n\r\n updated(changedProperties: PropertyValues): void {\r\n if (changedProperties.has('donationInfo') && this.donationInfo) {\r\n // The PayPal button has a standalone datasource since we don't initiate the payment\r\n // through code so it has to have the donation info ready when the user taps the button.\r\n this.paymentFlowHandlers?.paypalHandler?.updateDonationInfo(this.donationInfo);\r\n this.donationFormHeader.donationInfo = this.donationInfo;\r\n }\r\n\r\n if (\r\n (changedProperties.has('paymentFlowHandlers') || changedProperties.has('donationInfo')) &&\r\n this.donationInfo &&\r\n this.paymentFlowHandlers\r\n ) {\r\n this.setupFlowHandlers();\r\n }\r\n\r\n if (changedProperties.has('donationInfoValid')) {\r\n this.paymentSelector.donationInfoValid = this.donationInfoValid;\r\n }\r\n\r\n if (changedProperties.has('selectedPaymentProvider')) {\r\n const event = new CustomEvent('paymentProviderSelected', {\r\n detail: {\r\n paymentProvider: this.selectedPaymentProvider,\r\n previousPaymentProvider: changedProperties.get('selectedPaymentProvider'),\r\n },\r\n });\r\n this.dispatchEvent(event);\r\n }\r\n }\r\n\r\n private flowHandlersConfigured = false;\r\n\r\n private setupFlowHandlers(): void {\r\n if (this.flowHandlersConfigured) {\r\n return;\r\n }\r\n this.flowHandlersConfigured = true;\r\n this.bindFlowListenerEvents();\r\n this.renderPayPalButtonIfNeeded();\r\n this.donationInfo &&\r\n this.paymentFlowHandlers?.paypalHandler?.updateDonationInfo(this.donationInfo);\r\n }\r\n\r\n private flowHandlerListenersBound = false;\r\n\r\n private bindFlowListenerEvents(): void {\r\n if (this.flowHandlerListenersBound) {\r\n return;\r\n }\r\n this.flowHandlerListenersBound = true;\r\n\r\n this.paymentFlowHandlers?.paypalHandler?.on('payPalPaymentStarted', () => {\r\n this.selectedPaymentProvider = PaymentProvider.PayPal;\r\n this.emitPaymentFlowStartedEvent();\r\n });\r\n this.paymentFlowHandlers?.paypalHandler?.on('payPalPaymentConfirmed', () => {\r\n this.selectedPaymentProvider = PaymentProvider.PayPal;\r\n this.emitPaymentFlowConfirmedEvent();\r\n });\r\n this.paymentFlowHandlers?.paypalHandler?.on('payPalPaymentCancelled', () => {\r\n this.selectedPaymentProvider = PaymentProvider.PayPal;\r\n this.emitPaymentFlowCancelledEvent();\r\n });\r\n this.paymentFlowHandlers?.paypalHandler?.on('payPalPaymentError', (datasource, error) => {\r\n this.selectedPaymentProvider = PaymentProvider.PayPal;\r\n this.emitPaymentFlowErrorEvent(error);\r\n });\r\n\r\n this.paymentFlowHandlers?.googlePayHandler?.on('paymentCancelled', () => {\r\n this.selectedPaymentProvider = PaymentProvider.GooglePay;\r\n this.emitPaymentFlowCancelledEvent();\r\n });\r\n }\r\n\r\n private donationInfoChanged(e: CustomEvent): void {\r\n const donationInfo: DonationPaymentInfo = e.detail.donationInfo;\r\n this.donationInfo = new DonationPaymentInfo({\r\n amount: donationInfo.amount,\r\n donationType: donationInfo.donationType,\r\n coverFees: donationInfo.coverFees,\r\n });\r\n this.donationInfoValid = true;\r\n const event = new CustomEvent('donationInfoChanged', { detail: { donationInfo } });\r\n this.dispatchEvent(event);\r\n }\r\n\r\n /** @inheritdoc */\r\n static get styles(): CSSResult {\r\n const donateButtonFontSize = css`var(--donateButtonFontSize, 2.6rem)`;\r\n const donateButtonHeight = css`var(--donateButtonHeight, 4rem)`;\r\n const donateButtonColor = css`var(--donateButtonColor, rgba(49, 164, 129, 1))`;\r\n const donateButtonTextColor = css`var(--donateButtonTextColor, #fff)`;\r\n const donateButtonHoverColor = css`var(--donateButtonHoverColor, rgba(39, 131, 103, 1))`;\r\n const totalAmountTopMargin = css`var(--donateTotalAmountTopMargin, 1.5rem)`;\r\n const totalAmountBottomMargin = css`var(--donateTotalAmountBottomMargin, 1.2rem)`;\r\n\r\n return css`\r\n h1 {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n .hidden {\r\n display: none;\r\n }\r\n\r\n .secure-process-note {\r\n margin-top: 0.5em;\r\n font-size: 0.75em;\r\n text-align: center;\r\n }\r\n\r\n .secure-process-note svg {\r\n width: 1.2rem;\r\n height: 1.5rem;\r\n vertical-align: bottom;\r\n }\r\n\r\n #donate-button {\r\n width: 100%;\r\n appearance: none;\r\n -webkit-appearance: none;\r\n font-size: ${donateButtonFontSize};\r\n font-weight: bold;\r\n text-align: center;\r\n color: ${donateButtonTextColor};\r\n cursor: pointer;\r\n border: none;\r\n border-radius: 5px;\r\n background-color: ${donateButtonColor};\r\n padding-top: 0.5rem;\r\n padding-bottom: 0.5rem;\r\n height: ${donateButtonHeight};\r\n }\r\n\r\n #donate-button:hover {\r\n background-color: ${donateButtonHoverColor};\r\n }\r\n\r\n #total-amount-section {\r\n display: block;\r\n margin-top: ${totalAmountTopMargin};\r\n margin-bottom: ${totalAmountBottomMargin};\r\n }\r\n `;\r\n }\r\n}\r\n"]}
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { LitElement, CSSResult, TemplateResult } from 'lit';
|
|
2
|
-
export declare enum SpacerOption {
|
|
3
|
-
LeaveSpace = "leave-space",
|
|
4
|
-
CompressSpace = "compress-space"
|
|
5
|
-
}
|
|
6
|
-
export declare class BadgedInput extends LitElement {
|
|
7
|
-
error: boolean;
|
|
8
|
-
icon?: TemplateResult;
|
|
9
|
-
required: boolean;
|
|
10
|
-
/**
|
|
11
|
-
* If the icon is hidden, should the space remain or be compressed
|
|
12
|
-
*
|
|
13
|
-
* @type {SpacerOption}
|
|
14
|
-
* @memberof BadgedInput
|
|
15
|
-
*/
|
|
16
|
-
iconSpaceOption: SpacerOption;
|
|
17
|
-
/**
|
|
18
|
-
* When the required indicator is hidden, should the spacing remain
|
|
19
|
-
*
|
|
20
|
-
* This is useful for aligning many fields where some may not be required
|
|
21
|
-
*
|
|
22
|
-
* @type {SpacerOption}
|
|
23
|
-
* @memberof BadgedInput
|
|
24
|
-
*/
|
|
25
|
-
requiredIndicatorSpaceOption: SpacerOption;
|
|
26
|
-
/** @inheritdoc */
|
|
27
|
-
render(): TemplateResult;
|
|
28
|
-
private get errorClass();
|
|
29
|
-
private get iconSpaceOptionClass();
|
|
30
|
-
/** @inheritdoc */
|
|
31
|
-
static get styles(): CSSResult;
|
|
32
|
-
}
|
|
1
|
+
import { LitElement, CSSResult, TemplateResult } from 'lit';
|
|
2
|
+
export declare enum SpacerOption {
|
|
3
|
+
LeaveSpace = "leave-space",
|
|
4
|
+
CompressSpace = "compress-space"
|
|
5
|
+
}
|
|
6
|
+
export declare class BadgedInput extends LitElement {
|
|
7
|
+
error: boolean;
|
|
8
|
+
icon?: TemplateResult;
|
|
9
|
+
required: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* If the icon is hidden, should the space remain or be compressed
|
|
12
|
+
*
|
|
13
|
+
* @type {SpacerOption}
|
|
14
|
+
* @memberof BadgedInput
|
|
15
|
+
*/
|
|
16
|
+
iconSpaceOption: SpacerOption;
|
|
17
|
+
/**
|
|
18
|
+
* When the required indicator is hidden, should the spacing remain
|
|
19
|
+
*
|
|
20
|
+
* This is useful for aligning many fields where some may not be required
|
|
21
|
+
*
|
|
22
|
+
* @type {SpacerOption}
|
|
23
|
+
* @memberof BadgedInput
|
|
24
|
+
*/
|
|
25
|
+
requiredIndicatorSpaceOption: SpacerOption;
|
|
26
|
+
/** @inheritdoc */
|
|
27
|
+
render(): TemplateResult;
|
|
28
|
+
private get errorClass();
|
|
29
|
+
private get iconSpaceOptionClass();
|
|
30
|
+
/** @inheritdoc */
|
|
31
|
+
static get styles(): CSSResult;
|
|
32
|
+
}
|
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { LitElement, html, css, nothing } from 'lit';
|
|
3
|
-
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
-
export var SpacerOption;
|
|
5
|
-
(function (SpacerOption) {
|
|
6
|
-
SpacerOption["LeaveSpace"] = "leave-space";
|
|
7
|
-
SpacerOption["CompressSpace"] = "compress-space";
|
|
8
|
-
})(SpacerOption || (SpacerOption = {}));
|
|
9
|
-
let BadgedInput = class BadgedInput extends LitElement {
|
|
10
|
-
constructor() {
|
|
11
|
-
super(...arguments);
|
|
12
|
-
this.error = false;
|
|
13
|
-
this.required = false;
|
|
14
|
-
/**
|
|
15
|
-
* If the icon is hidden, should the space remain or be compressed
|
|
16
|
-
*
|
|
17
|
-
* @type {SpacerOption}
|
|
18
|
-
* @memberof BadgedInput
|
|
19
|
-
*/
|
|
20
|
-
this.iconSpaceOption = SpacerOption.LeaveSpace;
|
|
21
|
-
/**
|
|
22
|
-
* When the required indicator is hidden, should the spacing remain
|
|
23
|
-
*
|
|
24
|
-
* This is useful for aligning many fields where some may not be required
|
|
25
|
-
*
|
|
26
|
-
* @type {SpacerOption}
|
|
27
|
-
* @memberof BadgedInput
|
|
28
|
-
*/
|
|
29
|
-
this.requiredIndicatorSpaceOption = SpacerOption.LeaveSpace;
|
|
30
|
-
}
|
|
31
|
-
/** @inheritdoc */
|
|
32
|
-
render() {
|
|
33
|
-
return html `
|
|
34
|
-
<div class="input-wrapper ${this.errorClass} ${this.iconSpaceOptionClass}">
|
|
35
|
-
<div class="icon-container">${this.icon}</div>
|
|
36
|
-
<div class="required-indicator ${this.requiredIndicatorSpaceOption}">
|
|
37
|
-
${this.required
|
|
38
|
-
? html `
|
|
39
|
-
*
|
|
40
|
-
`
|
|
41
|
-
: nothing}
|
|
42
|
-
</div>
|
|
43
|
-
|
|
44
|
-
<slot></slot>
|
|
45
|
-
</div>
|
|
46
|
-
`;
|
|
47
|
-
}
|
|
48
|
-
get errorClass() {
|
|
49
|
-
return this.error ? 'error' : '';
|
|
50
|
-
}
|
|
51
|
-
get iconSpaceOptionClass() {
|
|
52
|
-
return this.iconSpaceOption === SpacerOption.CompressSpace ? 'compress-space' : '';
|
|
53
|
-
}
|
|
54
|
-
/** @inheritdoc */
|
|
55
|
-
static get styles() {
|
|
56
|
-
const borderCss = css `var(--inputBorder, 1px solid #d9d9d9)`;
|
|
57
|
-
const errorColorCss = css `var(--badgedInputBorderErrorColor, red)`;
|
|
58
|
-
const iconSize = css `var(--badgedInputIconSize, 1.4rem)`;
|
|
59
|
-
const iconSpacerWidth = css `var(--badgedInputIconSpacerWidth, 3rem)`;
|
|
60
|
-
const noIconSpacerWidth = css `var(--badgedInputNoIconSpacerWidth, 1rem)`;
|
|
61
|
-
const fieldHeight = css `var(--badgedInputHeight, 3rem)`;
|
|
62
|
-
const requiredIndicatorColor = css `var(--badgedInputRequiredIndicatorColor, red)`;
|
|
63
|
-
const requiredIndicatorMargin = css `var(--badgedInputRequiredIndicatorMargin, 0 0.25rem 0 0)`;
|
|
64
|
-
const requiredIndicatorFontSize = css `var(--badgedInputRequiredIndicatorFontSize, 2rem)`;
|
|
65
|
-
return css `
|
|
66
|
-
.input-wrapper {
|
|
67
|
-
border: ${borderCss};
|
|
68
|
-
height: ${fieldHeight};
|
|
69
|
-
display: flex;
|
|
70
|
-
align-items: center;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
.input-wrapper.error {
|
|
74
|
-
box-shadow: inset 0px 0px 0px 1px ${errorColorCss};
|
|
75
|
-
border-color: ${errorColorCss};
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
.input-wrapper.compress-space .icon-container {
|
|
79
|
-
width: ${noIconSpacerWidth};
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
.icon-container {
|
|
83
|
-
width: ${iconSpacerWidth};
|
|
84
|
-
display: flex;
|
|
85
|
-
align-items: center;
|
|
86
|
-
justify-content: center;
|
|
87
|
-
flex-shrink: 0;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.icon-container svg {
|
|
91
|
-
height: ${iconSize};
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.required-indicator {
|
|
95
|
-
color: ${requiredIndicatorColor};
|
|
96
|
-
font-size: ${requiredIndicatorFontSize};
|
|
97
|
-
margin: ${requiredIndicatorMargin};
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.required-indicator.leave-space {
|
|
101
|
-
width: 0.5em;
|
|
102
|
-
}
|
|
103
|
-
`;
|
|
104
|
-
}
|
|
105
|
-
};
|
|
106
|
-
__decorate([
|
|
107
|
-
property({ type: Boolean })
|
|
108
|
-
], BadgedInput.prototype, "error", void 0);
|
|
109
|
-
__decorate([
|
|
110
|
-
property({ type: Object })
|
|
111
|
-
], BadgedInput.prototype, "icon", void 0);
|
|
112
|
-
__decorate([
|
|
113
|
-
property({ type: Boolean })
|
|
114
|
-
], BadgedInput.prototype, "required", void 0);
|
|
115
|
-
__decorate([
|
|
116
|
-
property({ type: String })
|
|
117
|
-
], BadgedInput.prototype, "iconSpaceOption", void 0);
|
|
118
|
-
__decorate([
|
|
119
|
-
property({ type: String })
|
|
120
|
-
], BadgedInput.prototype, "requiredIndicatorSpaceOption", void 0);
|
|
121
|
-
BadgedInput = __decorate([
|
|
122
|
-
customElement('badged-input')
|
|
123
|
-
], BadgedInput);
|
|
124
|
-
export { BadgedInput };
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { LitElement, html, css, nothing } from 'lit';
|
|
3
|
+
import { customElement, property } from 'lit/decorators.js';
|
|
4
|
+
export var SpacerOption;
|
|
5
|
+
(function (SpacerOption) {
|
|
6
|
+
SpacerOption["LeaveSpace"] = "leave-space";
|
|
7
|
+
SpacerOption["CompressSpace"] = "compress-space";
|
|
8
|
+
})(SpacerOption || (SpacerOption = {}));
|
|
9
|
+
let BadgedInput = class BadgedInput extends LitElement {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.error = false;
|
|
13
|
+
this.required = false;
|
|
14
|
+
/**
|
|
15
|
+
* If the icon is hidden, should the space remain or be compressed
|
|
16
|
+
*
|
|
17
|
+
* @type {SpacerOption}
|
|
18
|
+
* @memberof BadgedInput
|
|
19
|
+
*/
|
|
20
|
+
this.iconSpaceOption = SpacerOption.LeaveSpace;
|
|
21
|
+
/**
|
|
22
|
+
* When the required indicator is hidden, should the spacing remain
|
|
23
|
+
*
|
|
24
|
+
* This is useful for aligning many fields where some may not be required
|
|
25
|
+
*
|
|
26
|
+
* @type {SpacerOption}
|
|
27
|
+
* @memberof BadgedInput
|
|
28
|
+
*/
|
|
29
|
+
this.requiredIndicatorSpaceOption = SpacerOption.LeaveSpace;
|
|
30
|
+
}
|
|
31
|
+
/** @inheritdoc */
|
|
32
|
+
render() {
|
|
33
|
+
return html `
|
|
34
|
+
<div class="input-wrapper ${this.errorClass} ${this.iconSpaceOptionClass}">
|
|
35
|
+
<div class="icon-container">${this.icon}</div>
|
|
36
|
+
<div class="required-indicator ${this.requiredIndicatorSpaceOption}">
|
|
37
|
+
${this.required
|
|
38
|
+
? html `
|
|
39
|
+
*
|
|
40
|
+
`
|
|
41
|
+
: nothing}
|
|
42
|
+
</div>
|
|
43
|
+
|
|
44
|
+
<slot></slot>
|
|
45
|
+
</div>
|
|
46
|
+
`;
|
|
47
|
+
}
|
|
48
|
+
get errorClass() {
|
|
49
|
+
return this.error ? 'error' : '';
|
|
50
|
+
}
|
|
51
|
+
get iconSpaceOptionClass() {
|
|
52
|
+
return this.iconSpaceOption === SpacerOption.CompressSpace ? 'compress-space' : '';
|
|
53
|
+
}
|
|
54
|
+
/** @inheritdoc */
|
|
55
|
+
static get styles() {
|
|
56
|
+
const borderCss = css `var(--inputBorder, 1px solid #d9d9d9)`;
|
|
57
|
+
const errorColorCss = css `var(--badgedInputBorderErrorColor, red)`;
|
|
58
|
+
const iconSize = css `var(--badgedInputIconSize, 1.4rem)`;
|
|
59
|
+
const iconSpacerWidth = css `var(--badgedInputIconSpacerWidth, 3rem)`;
|
|
60
|
+
const noIconSpacerWidth = css `var(--badgedInputNoIconSpacerWidth, 1rem)`;
|
|
61
|
+
const fieldHeight = css `var(--badgedInputHeight, 3rem)`;
|
|
62
|
+
const requiredIndicatorColor = css `var(--badgedInputRequiredIndicatorColor, red)`;
|
|
63
|
+
const requiredIndicatorMargin = css `var(--badgedInputRequiredIndicatorMargin, 0 0.25rem 0 0)`;
|
|
64
|
+
const requiredIndicatorFontSize = css `var(--badgedInputRequiredIndicatorFontSize, 2rem)`;
|
|
65
|
+
return css `
|
|
66
|
+
.input-wrapper {
|
|
67
|
+
border: ${borderCss};
|
|
68
|
+
height: ${fieldHeight};
|
|
69
|
+
display: flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.input-wrapper.error {
|
|
74
|
+
box-shadow: inset 0px 0px 0px 1px ${errorColorCss};
|
|
75
|
+
border-color: ${errorColorCss};
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.input-wrapper.compress-space .icon-container {
|
|
79
|
+
width: ${noIconSpacerWidth};
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.icon-container {
|
|
83
|
+
width: ${iconSpacerWidth};
|
|
84
|
+
display: flex;
|
|
85
|
+
align-items: center;
|
|
86
|
+
justify-content: center;
|
|
87
|
+
flex-shrink: 0;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.icon-container svg {
|
|
91
|
+
height: ${iconSize};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.required-indicator {
|
|
95
|
+
color: ${requiredIndicatorColor};
|
|
96
|
+
font-size: ${requiredIndicatorFontSize};
|
|
97
|
+
margin: ${requiredIndicatorMargin};
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.required-indicator.leave-space {
|
|
101
|
+
width: 0.5em;
|
|
102
|
+
}
|
|
103
|
+
`;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
__decorate([
|
|
107
|
+
property({ type: Boolean })
|
|
108
|
+
], BadgedInput.prototype, "error", void 0);
|
|
109
|
+
__decorate([
|
|
110
|
+
property({ type: Object })
|
|
111
|
+
], BadgedInput.prototype, "icon", void 0);
|
|
112
|
+
__decorate([
|
|
113
|
+
property({ type: Boolean })
|
|
114
|
+
], BadgedInput.prototype, "required", void 0);
|
|
115
|
+
__decorate([
|
|
116
|
+
property({ type: String })
|
|
117
|
+
], BadgedInput.prototype, "iconSpaceOption", void 0);
|
|
118
|
+
__decorate([
|
|
119
|
+
property({ type: String })
|
|
120
|
+
], BadgedInput.prototype, "requiredIndicatorSpaceOption", void 0);
|
|
121
|
+
BadgedInput = __decorate([
|
|
122
|
+
customElement('badged-input')
|
|
123
|
+
], BadgedInput);
|
|
124
|
+
export { BadgedInput };
|
|
125
125
|
//# sourceMappingURL=badged-input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"badged-input.js","sourceRoot":"","sources":["../../../src/form-elements/badged-input.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAA6B,OAAO,EAAE,MAAM,KAAK,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,0CAA0B,CAAA;IAC1B,gDAAgC,CAAA;AAClC,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAGD,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,UAAU;IAA3C;;QAC+B,UAAK,GAAG,KAAK,CAAC;QAId,aAAQ,GAAG,KAAK,CAAC;QAE9C;;;;;WAKG;QACyB,oBAAe,GAAiB,YAAY,CAAC,UAAU,CAAC;QAEpF;;;;;;;WAOG;QACyB,iCAA4B,GAAiB,YAAY,CAAC,UAAU,CAAC;IAgFnG,CAAC;IA9EC,kBAAkB;IAClB,MAAM;QACJ,OAAO,IAAI,CAAA;kCACmB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,oBAAoB;sCACxC,IAAI,CAAC,IAAI;yCACN,IAAI,CAAC,4BAA4B;YAC9D,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA;;eAEH;YACH,CAAC,CAAC,OAAO;;;;;KAKhB,CAAC;IACJ,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,IAAY,oBAAoB;QAC9B,OAAO,IAAI,CAAC,eAAe,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,CAAC;IAED,kBAAkB;IAClB,MAAM,KAAK,MAAM;QACf,MAAM,SAAS,GAAG,GAAG,CAAA,uCAAuC,CAAC;QAC7D,MAAM,aAAa,GAAG,GAAG,CAAA,yCAAyC,CAAC;QACnE,MAAM,QAAQ,GAAG,GAAG,CAAA,oCAAoC,CAAC;QACzD,MAAM,eAAe,GAAG,GAAG,CAAA,yCAAyC,CAAC;QACrE,MAAM,iBAAiB,GAAG,GAAG,CAAA,2CAA2C,CAAC;QACzE,MAAM,WAAW,GAAG,GAAG,CAAA,gCAAgC,CAAC;QACxD,MAAM,sBAAsB,GAAG,GAAG,CAAA,+CAA+C,CAAC;QAClF,MAAM,uBAAuB,GAAG,GAAG,CAAA,0DAA0D,CAAC;QAC9F,MAAM,yBAAyB,GAAG,GAAG,CAAA,mDAAmD,CAAC;QAEzF,OAAO,GAAG,CAAA;;kBAEI,SAAS;kBACT,WAAW;;;;;;4CAMe,aAAa;wBACjC,aAAa;;;;iBAIpB,iBAAiB;;;;iBAIjB,eAAe;;;;;;;;kBAQd,QAAQ;;;;iBAIT,sBAAsB;qBAClB,yBAAyB;kBAC5B,uBAAuB;;;;;;KAMpC,CAAC;IACJ,CAAC;CACF,CAAA;AAtG8B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CAAe;AAEf;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCAAuB;AAErB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CAAkB;AAQlB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDAAyD;AAUxD;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iEAAsE;AAvBtF,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAuGvB;SAvGY,WAAW","sourcesContent":["import { LitElement, html, css, CSSResult, TemplateResult, nothing } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nexport enum SpacerOption {\n LeaveSpace = 'leave-space',\n CompressSpace = 'compress-space',\n}\n\n@customElement('badged-input')\nexport class BadgedInput extends LitElement {\n @property({ type: Boolean }) error = false;\n\n @property({ type: Object }) icon?: TemplateResult;\n\n @property({ type: Boolean }) required = false;\n\n /**\n * If the icon is hidden, should the space remain or be compressed\n *\n * @type {SpacerOption}\n * @memberof BadgedInput\n */\n @property({ type: String }) iconSpaceOption: SpacerOption = SpacerOption.LeaveSpace;\n\n /**\n * When the required indicator is hidden, should the spacing remain\n *\n * This is useful for aligning many fields where some may not be required\n *\n * @type {SpacerOption}\n * @memberof BadgedInput\n */\n @property({ type: String }) requiredIndicatorSpaceOption: SpacerOption = SpacerOption.LeaveSpace;\n\n /** @inheritdoc */\n render(): TemplateResult {\n return html`\n <div class=\"input-wrapper ${this.errorClass} ${this.iconSpaceOptionClass}\">\n <div class=\"icon-container\">${this.icon}</div>\n <div class=\"required-indicator ${this.requiredIndicatorSpaceOption}\">\n ${this.required\n ? html`\n *\n `\n : nothing}\n </div>\n\n <slot></slot>\n </div>\n `;\n }\n\n private get errorClass(): string {\n return this.error ? 'error' : '';\n }\n\n private get iconSpaceOptionClass(): string {\n return this.iconSpaceOption === SpacerOption.CompressSpace ? 'compress-space' : '';\n }\n\n /** @inheritdoc */\n static get styles(): CSSResult {\n const borderCss = css`var(--inputBorder, 1px solid #d9d9d9)`;\n const errorColorCss = css`var(--badgedInputBorderErrorColor, red)`;\n const iconSize = css`var(--badgedInputIconSize, 1.4rem)`;\n const iconSpacerWidth = css`var(--badgedInputIconSpacerWidth, 3rem)`;\n const noIconSpacerWidth = css`var(--badgedInputNoIconSpacerWidth, 1rem)`;\n const fieldHeight = css`var(--badgedInputHeight, 3rem)`;\n const requiredIndicatorColor = css`var(--badgedInputRequiredIndicatorColor, red)`;\n const requiredIndicatorMargin = css`var(--badgedInputRequiredIndicatorMargin, 0 0.25rem 0 0)`;\n const requiredIndicatorFontSize = css`var(--badgedInputRequiredIndicatorFontSize, 2rem)`;\n\n return css`\n .input-wrapper {\n border: ${borderCss};\n height: ${fieldHeight};\n display: flex;\n align-items: center;\n }\n\n .input-wrapper.error {\n box-shadow: inset 0px 0px 0px 1px ${errorColorCss};\n border-color: ${errorColorCss};\n }\n\n .input-wrapper.compress-space .icon-container {\n width: ${noIconSpacerWidth};\n }\n\n .icon-container {\n width: ${iconSpacerWidth};\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n }\n\n .icon-container svg {\n height: ${iconSize};\n }\n\n .required-indicator {\n color: ${requiredIndicatorColor};\n font-size: ${requiredIndicatorFontSize};\n margin: ${requiredIndicatorMargin};\n }\n\n .required-indicator.leave-space {\n width: 0.5em;\n }\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"badged-input.js","sourceRoot":"","sources":["../../../src/form-elements/badged-input.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAA6B,OAAO,EAAE,MAAM,KAAK,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,0CAA0B,CAAA;IAC1B,gDAAgC,CAAA;AAClC,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAGD,IAAa,WAAW,GAAxB,MAAa,WAAY,SAAQ,UAAU;IAA3C;;QAC+B,UAAK,GAAG,KAAK,CAAC;QAId,aAAQ,GAAG,KAAK,CAAC;QAE9C;;;;;WAKG;QACyB,oBAAe,GAAiB,YAAY,CAAC,UAAU,CAAC;QAEpF;;;;;;;WAOG;QACyB,iCAA4B,GAAiB,YAAY,CAAC,UAAU,CAAC;IAgFnG,CAAC;IA9EC,kBAAkB;IAClB,MAAM;QACJ,OAAO,IAAI,CAAA;kCACmB,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,oBAAoB;sCACxC,IAAI,CAAC,IAAI;yCACN,IAAI,CAAC,4BAA4B;YAC9D,IAAI,CAAC,QAAQ;YACb,CAAC,CAAC,IAAI,CAAA;;eAEH;YACH,CAAC,CAAC,OAAO;;;;;KAKhB,CAAC;IACJ,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,CAAC;IAED,IAAY,oBAAoB;QAC9B,OAAO,IAAI,CAAC,eAAe,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC;IACrF,CAAC;IAED,kBAAkB;IAClB,MAAM,KAAK,MAAM;QACf,MAAM,SAAS,GAAG,GAAG,CAAA,uCAAuC,CAAC;QAC7D,MAAM,aAAa,GAAG,GAAG,CAAA,yCAAyC,CAAC;QACnE,MAAM,QAAQ,GAAG,GAAG,CAAA,oCAAoC,CAAC;QACzD,MAAM,eAAe,GAAG,GAAG,CAAA,yCAAyC,CAAC;QACrE,MAAM,iBAAiB,GAAG,GAAG,CAAA,2CAA2C,CAAC;QACzE,MAAM,WAAW,GAAG,GAAG,CAAA,gCAAgC,CAAC;QACxD,MAAM,sBAAsB,GAAG,GAAG,CAAA,+CAA+C,CAAC;QAClF,MAAM,uBAAuB,GAAG,GAAG,CAAA,0DAA0D,CAAC;QAC9F,MAAM,yBAAyB,GAAG,GAAG,CAAA,mDAAmD,CAAC;QAEzF,OAAO,GAAG,CAAA;;kBAEI,SAAS;kBACT,WAAW;;;;;;4CAMe,aAAa;wBACjC,aAAa;;;;iBAIpB,iBAAiB;;;;iBAIjB,eAAe;;;;;;;;kBAQd,QAAQ;;;;iBAIT,sBAAsB;qBAClB,yBAAyB;kBAC5B,uBAAuB;;;;;;KAMpC,CAAC;IACJ,CAAC;CACF,CAAA;AAtG8B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CAAe;AAEf;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;yCAAuB;AAErB;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CAAkB;AAQlB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDAAyD;AAUxD;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;iEAAsE;AAvBtF,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CAuGvB;SAvGY,WAAW","sourcesContent":["import { LitElement, html, css, CSSResult, TemplateResult, nothing } from 'lit';\r\nimport { customElement, property } from 'lit/decorators.js';\r\n\r\nexport enum SpacerOption {\r\n LeaveSpace = 'leave-space',\r\n CompressSpace = 'compress-space',\r\n}\r\n\r\n@customElement('badged-input')\r\nexport class BadgedInput extends LitElement {\r\n @property({ type: Boolean }) error = false;\r\n\r\n @property({ type: Object }) icon?: TemplateResult;\r\n\r\n @property({ type: Boolean }) required = false;\r\n\r\n /**\r\n * If the icon is hidden, should the space remain or be compressed\r\n *\r\n * @type {SpacerOption}\r\n * @memberof BadgedInput\r\n */\r\n @property({ type: String }) iconSpaceOption: SpacerOption = SpacerOption.LeaveSpace;\r\n\r\n /**\r\n * When the required indicator is hidden, should the spacing remain\r\n *\r\n * This is useful for aligning many fields where some may not be required\r\n *\r\n * @type {SpacerOption}\r\n * @memberof BadgedInput\r\n */\r\n @property({ type: String }) requiredIndicatorSpaceOption: SpacerOption = SpacerOption.LeaveSpace;\r\n\r\n /** @inheritdoc */\r\n render(): TemplateResult {\r\n return html`\r\n <div class=\"input-wrapper ${this.errorClass} ${this.iconSpaceOptionClass}\">\r\n <div class=\"icon-container\">${this.icon}</div>\r\n <div class=\"required-indicator ${this.requiredIndicatorSpaceOption}\">\r\n ${this.required\r\n ? html`\r\n *\r\n `\r\n : nothing}\r\n </div>\r\n\r\n <slot></slot>\r\n </div>\r\n `;\r\n }\r\n\r\n private get errorClass(): string {\r\n return this.error ? 'error' : '';\r\n }\r\n\r\n private get iconSpaceOptionClass(): string {\r\n return this.iconSpaceOption === SpacerOption.CompressSpace ? 'compress-space' : '';\r\n }\r\n\r\n /** @inheritdoc */\r\n static get styles(): CSSResult {\r\n const borderCss = css`var(--inputBorder, 1px solid #d9d9d9)`;\r\n const errorColorCss = css`var(--badgedInputBorderErrorColor, red)`;\r\n const iconSize = css`var(--badgedInputIconSize, 1.4rem)`;\r\n const iconSpacerWidth = css`var(--badgedInputIconSpacerWidth, 3rem)`;\r\n const noIconSpacerWidth = css`var(--badgedInputNoIconSpacerWidth, 1rem)`;\r\n const fieldHeight = css`var(--badgedInputHeight, 3rem)`;\r\n const requiredIndicatorColor = css`var(--badgedInputRequiredIndicatorColor, red)`;\r\n const requiredIndicatorMargin = css`var(--badgedInputRequiredIndicatorMargin, 0 0.25rem 0 0)`;\r\n const requiredIndicatorFontSize = css`var(--badgedInputRequiredIndicatorFontSize, 2rem)`;\r\n\r\n return css`\r\n .input-wrapper {\r\n border: ${borderCss};\r\n height: ${fieldHeight};\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .input-wrapper.error {\r\n box-shadow: inset 0px 0px 0px 1px ${errorColorCss};\r\n border-color: ${errorColorCss};\r\n }\r\n\r\n .input-wrapper.compress-space .icon-container {\r\n width: ${noIconSpacerWidth};\r\n }\r\n\r\n .icon-container {\r\n width: ${iconSpacerWidth};\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-shrink: 0;\r\n }\r\n\r\n .icon-container svg {\r\n height: ${iconSize};\r\n }\r\n\r\n .required-indicator {\r\n color: ${requiredIndicatorColor};\r\n font-size: ${requiredIndicatorFontSize};\r\n margin: ${requiredIndicatorMargin};\r\n }\r\n\r\n .required-indicator.leave-space {\r\n width: 0.5em;\r\n }\r\n `;\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare type AutoCompleteFieldOptions = 'on' | 'off' | 'additional-name' | 'address-level1' | 'address-level2' | 'address-level3' | 'address-level4' | 'address-line1' | 'address-line2' | 'address-line3' | 'bday' | 'bday-year' | 'bday-day' | 'bday-month' | 'billing' | 'cc-additional-name' | 'cc-csc' | 'cc-exp' | 'cc-exp-month' | 'cc-exp-year' | 'cc-family-name' | 'cc-given-name' | 'cc-name' | 'cc-number' | 'cc-type' | 'country' | 'country-name' | 'current-password' | 'email' | 'family-name' | 'fax' | 'given-name' | 'home' | 'honorific-prefix' | 'honorific-suffix' | 'impp' | 'language' | 'mobile' | 'name' | 'new-password' | 'nickname' | 'organization' | 'organization-title' | 'pager' | 'photo' | 'postal-code' | 'sex' | 'shipping' | 'street-address' | 'tel-area-code' | 'tel' | 'tel-country-code' | 'tel-extension' | 'tel-local' | 'tel-local-prefix' | 'tel-local-suffix' | 'tel-national' | 'transaction-amount' | 'transaction-currency' | 'url' | 'username' | 'work';
|
|
1
|
+
export declare type AutoCompleteFieldOptions = 'on' | 'off' | 'additional-name' | 'address-level1' | 'address-level2' | 'address-level3' | 'address-level4' | 'address-line1' | 'address-line2' | 'address-line3' | 'bday' | 'bday-year' | 'bday-day' | 'bday-month' | 'billing' | 'cc-additional-name' | 'cc-csc' | 'cc-exp' | 'cc-exp-month' | 'cc-exp-year' | 'cc-family-name' | 'cc-given-name' | 'cc-name' | 'cc-number' | 'cc-type' | 'country' | 'country-name' | 'current-password' | 'email' | 'family-name' | 'fax' | 'given-name' | 'home' | 'honorific-prefix' | 'honorific-suffix' | 'impp' | 'language' | 'mobile' | 'name' | 'new-password' | 'nickname' | 'organization' | 'organization-title' | 'pager' | 'photo' | 'postal-code' | 'sex' | 'shipping' | 'street-address' | 'tel-area-code' | 'tel' | 'tel-country-code' | 'tel-extension' | 'tel-local' | 'tel-local-prefix' | 'tel-local-suffix' | 'tel-national' | 'transaction-amount' | 'transaction-currency' | 'url' | 'username' | 'work';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autocomplete-field-options.js","sourceRoot":"","sources":["../../../../src/form-elements/contact-form/autocomplete-field-options.ts"],"names":[],"mappings":"","sourcesContent":["export type AutoCompleteFieldOptions =\n | 'on'\n | 'off'\n | 'additional-name'\n | 'address-level1'\n | 'address-level2'\n | 'address-level3'\n | 'address-level4'\n | 'address-line1'\n | 'address-line2'\n | 'address-line3'\n | 'bday'\n | 'bday-year'\n | 'bday-day'\n | 'bday-month'\n | 'billing'\n | 'cc-additional-name'\n | 'cc-csc'\n | 'cc-exp'\n | 'cc-exp-month'\n | 'cc-exp-year'\n | 'cc-family-name'\n | 'cc-given-name'\n | 'cc-name'\n | 'cc-number'\n | 'cc-type'\n | 'country'\n | 'country-name'\n | 'current-password'\n | 'email'\n | 'family-name'\n | 'fax'\n | 'given-name'\n | 'home'\n | 'honorific-prefix'\n | 'honorific-suffix'\n | 'impp'\n | 'language'\n | 'mobile'\n | 'name'\n | 'new-password'\n | 'nickname'\n | 'organization'\n | 'organization-title'\n | 'pager'\n | 'photo'\n | 'postal-code'\n | 'sex'\n | 'shipping'\n | 'street-address'\n | 'tel-area-code'\n | 'tel'\n | 'tel-country-code'\n | 'tel-extension'\n | 'tel-local'\n | 'tel-local-prefix'\n | 'tel-local-suffix'\n | 'tel-national'\n | 'transaction-amount'\n | 'transaction-currency'\n | 'url'\n | 'username'\n | 'work';\n"]}
|
|
1
|
+
{"version":3,"file":"autocomplete-field-options.js","sourceRoot":"","sources":["../../../../src/form-elements/contact-form/autocomplete-field-options.ts"],"names":[],"mappings":"","sourcesContent":["export type AutoCompleteFieldOptions =\r\n | 'on'\r\n | 'off'\r\n | 'additional-name'\r\n | 'address-level1'\r\n | 'address-level2'\r\n | 'address-level3'\r\n | 'address-level4'\r\n | 'address-line1'\r\n | 'address-line2'\r\n | 'address-line3'\r\n | 'bday'\r\n | 'bday-year'\r\n | 'bday-day'\r\n | 'bday-month'\r\n | 'billing'\r\n | 'cc-additional-name'\r\n | 'cc-csc'\r\n | 'cc-exp'\r\n | 'cc-exp-month'\r\n | 'cc-exp-year'\r\n | 'cc-family-name'\r\n | 'cc-given-name'\r\n | 'cc-name'\r\n | 'cc-number'\r\n | 'cc-type'\r\n | 'country'\r\n | 'country-name'\r\n | 'current-password'\r\n | 'email'\r\n | 'family-name'\r\n | 'fax'\r\n | 'given-name'\r\n | 'home'\r\n | 'honorific-prefix'\r\n | 'honorific-suffix'\r\n | 'impp'\r\n | 'language'\r\n | 'mobile'\r\n | 'name'\r\n | 'new-password'\r\n | 'nickname'\r\n | 'organization'\r\n | 'organization-title'\r\n | 'pager'\r\n | 'photo'\r\n | 'postal-code'\r\n | 'sex'\r\n | 'shipping'\r\n | 'street-address'\r\n | 'tel-area-code'\r\n | 'tel'\r\n | 'tel-country-code'\r\n | 'tel-extension'\r\n | 'tel-local'\r\n | 'tel-local-prefix'\r\n | 'tel-local-suffix'\r\n | 'tel-national'\r\n | 'transaction-amount'\r\n | 'transaction-currency'\r\n | 'url'\r\n | 'username'\r\n | 'work';\r\n"]}
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
import { LitElement, TemplateResult } from 'lit';
|
|
2
|
-
import { BillingInfo, CustomerInfo, DonorContactInfo } from '@internetarchive/donation-form-data-models';
|
|
3
|
-
import { BadgedInput } from '../badged-input';
|
|
4
|
-
import '../badged-input';
|
|
5
|
-
export declare class ContactForm extends LitElement {
|
|
6
|
-
emailBadgedInput: BadgedInput;
|
|
7
|
-
emailField: HTMLInputElement;
|
|
8
|
-
firstNameBadgedInput: BadgedInput;
|
|
9
|
-
firstNameField: HTMLInputElement;
|
|
10
|
-
lastNameBadgedInput: BadgedInput;
|
|
11
|
-
lastNameField: HTMLInputElement;
|
|
12
|
-
postalBadgedInput: BadgedInput;
|
|
13
|
-
postalCodeField: HTMLInputElement;
|
|
14
|
-
streetAddressBadgedInput: BadgedInput;
|
|
15
|
-
streetAddressField: HTMLInputElement;
|
|
16
|
-
extendedAddressBadgedInput: BadgedInput;
|
|
17
|
-
extendedAddressField: HTMLInputElement;
|
|
18
|
-
localityBadgedInput: BadgedInput;
|
|
19
|
-
localityField: HTMLInputElement;
|
|
20
|
-
regionBadgedInput: BadgedInput;
|
|
21
|
-
regionField: HTMLInputElement;
|
|
22
|
-
countryCodeAlpha2Field: HTMLSelectElement;
|
|
23
|
-
errorMessage: HTMLDivElement;
|
|
24
|
-
form: HTMLFormElement;
|
|
25
|
-
/** @keyof countries */
|
|
26
|
-
selectedCountry: string;
|
|
27
|
-
reportValidity(): boolean;
|
|
28
|
-
focus(): void;
|
|
29
|
-
/** @inheritdoc */
|
|
30
|
-
render(): TemplateResult;
|
|
31
|
-
private get countrySelectorTemplate();
|
|
32
|
-
/** @inheritdoc */
|
|
33
|
-
createRenderRoot(): this;
|
|
34
|
-
private inputFocused;
|
|
35
|
-
private generateInput;
|
|
36
|
-
get donorContactInfo(): DonorContactInfo;
|
|
37
|
-
get billingInfo(): BillingInfo;
|
|
38
|
-
get contactInfo(): CustomerInfo;
|
|
39
|
-
/**
|
|
40
|
-
* This is not the normal LitElement styles block.
|
|
41
|
-
*
|
|
42
|
-
* This element uses the clear DOM instead of the shadow DOM so it can't use
|
|
43
|
-
* the shadowRoot's isolated styling. This is a bit of a workaround to keep all of
|
|
44
|
-
* the styling local by writing out our own <style> tag and just be careful about
|
|
45
|
-
* the selectors since they will leak outside of this component.
|
|
46
|
-
*
|
|
47
|
-
* @readonly
|
|
48
|
-
* @private
|
|
49
|
-
* @type {TemplateResult}
|
|
50
|
-
* @memberof ContactForm
|
|
51
|
-
*/
|
|
52
|
-
private get getStyles();
|
|
53
|
-
}
|
|
1
|
+
import { LitElement, TemplateResult } from 'lit';
|
|
2
|
+
import { BillingInfo, CustomerInfo, DonorContactInfo } from '@internetarchive/donation-form-data-models';
|
|
3
|
+
import { BadgedInput } from '../badged-input';
|
|
4
|
+
import '../badged-input';
|
|
5
|
+
export declare class ContactForm extends LitElement {
|
|
6
|
+
emailBadgedInput: BadgedInput;
|
|
7
|
+
emailField: HTMLInputElement;
|
|
8
|
+
firstNameBadgedInput: BadgedInput;
|
|
9
|
+
firstNameField: HTMLInputElement;
|
|
10
|
+
lastNameBadgedInput: BadgedInput;
|
|
11
|
+
lastNameField: HTMLInputElement;
|
|
12
|
+
postalBadgedInput: BadgedInput;
|
|
13
|
+
postalCodeField: HTMLInputElement;
|
|
14
|
+
streetAddressBadgedInput: BadgedInput;
|
|
15
|
+
streetAddressField: HTMLInputElement;
|
|
16
|
+
extendedAddressBadgedInput: BadgedInput;
|
|
17
|
+
extendedAddressField: HTMLInputElement;
|
|
18
|
+
localityBadgedInput: BadgedInput;
|
|
19
|
+
localityField: HTMLInputElement;
|
|
20
|
+
regionBadgedInput: BadgedInput;
|
|
21
|
+
regionField: HTMLInputElement;
|
|
22
|
+
countryCodeAlpha2Field: HTMLSelectElement;
|
|
23
|
+
errorMessage: HTMLDivElement;
|
|
24
|
+
form: HTMLFormElement;
|
|
25
|
+
/** @keyof countries */
|
|
26
|
+
selectedCountry: string;
|
|
27
|
+
reportValidity(): boolean;
|
|
28
|
+
focus(): void;
|
|
29
|
+
/** @inheritdoc */
|
|
30
|
+
render(): TemplateResult;
|
|
31
|
+
private get countrySelectorTemplate();
|
|
32
|
+
/** @inheritdoc */
|
|
33
|
+
createRenderRoot(): this;
|
|
34
|
+
private inputFocused;
|
|
35
|
+
private generateInput;
|
|
36
|
+
get donorContactInfo(): DonorContactInfo;
|
|
37
|
+
get billingInfo(): BillingInfo;
|
|
38
|
+
get contactInfo(): CustomerInfo;
|
|
39
|
+
/**
|
|
40
|
+
* This is not the normal LitElement styles block.
|
|
41
|
+
*
|
|
42
|
+
* This element uses the clear DOM instead of the shadow DOM so it can't use
|
|
43
|
+
* the shadowRoot's isolated styling. This is a bit of a workaround to keep all of
|
|
44
|
+
* the styling local by writing out our own <style> tag and just be careful about
|
|
45
|
+
* the selectors since they will leak outside of this component.
|
|
46
|
+
*
|
|
47
|
+
* @readonly
|
|
48
|
+
* @private
|
|
49
|
+
* @type {TemplateResult}
|
|
50
|
+
* @memberof ContactForm
|
|
51
|
+
*/
|
|
52
|
+
private get getStyles();
|
|
53
|
+
}
|