Payment Plugins for Stripe WooCommerce - Version 3.3.18

Version Description

  • Fixed - Elementor template editor error when Woofunnels Checkout design is being edited in Admin.
  • Updated - Mini cart code so it's more fault tolerant when using 3rd party mini-cart plugins.
  • Updated - SEPA, GiroPay, Bancontact, EPS, Sofort, Alipay migrated to PaymentIntent API from Sources API
  • Added - SEPA support for Pre Orders
  • Added - Support for WooFunnels One Click Upsell Subscriptions
  • Added - BECS support for WooCommerce Subscriptions and Pre-Orders
  • Added - BECS company name option so merchant can customize the company name that appears in the mandate.
Download this release

Release Info

Developer mr.clayton
Plugin Icon wp plugin Payment Plugins for Stripe WooCommerce
Version 3.3.18
Comparing to
See all releases

Code changes from version 3.3.17 to 3.3.18

Files changed (59) hide show
  1. assets/css/stripe-rtl.css +7 -3
  2. assets/css/stripe.css +7 -3
  3. assets/css/stripe.min-rtl.css +1 -1
  4. assets/css/stripe.min.css +1 -1
  5. assets/js/frontend/ach-payments.js +1 -1
  6. assets/js/frontend/ach-payments.min.js +1 -1
  7. assets/js/frontend/applepay-checkout.js +1 -1
  8. assets/js/frontend/applepay-checkout.min.js +1 -1
  9. assets/js/frontend/credit-card.js +4 -28
  10. assets/js/frontend/credit-card.min.js +1 -1
  11. assets/js/frontend/googlepay-checkout.js +1 -1
  12. assets/js/frontend/googlepay-checkout.min.js +1 -1
  13. assets/js/frontend/local-payment.js +122 -27
  14. assets/js/frontend/local-payment.min.js +1 -1
  15. assets/js/frontend/mini-cart.js +22 -7
  16. assets/js/frontend/mini-cart.min.js +1 -1
  17. assets/js/frontend/payment-request.js +1 -1
  18. assets/js/frontend/payment-request.min.js +1 -1
  19. assets/js/frontend/wc-stripe.js +34 -13
  20. assets/js/frontend/wc-stripe.min.js +1 -1
  21. i18n/languages/woo-stripe-payment.pot +143 -117
  22. includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php +7 -4
  23. includes/abstract/abstract-wc-payment-gateway-stripe.php +28 -11
  24. includes/class-stripe.php +2 -1
  25. includes/class-wc-stripe-payment-intent.php +16 -9
  26. includes/class-wc-stripe-redirect-handler.php +7 -1
  27. includes/class-wc-stripe-utils.php +11 -0
  28. includes/controllers/class-wc-stripe-controller-payment-intent.php +5 -3
  29. includes/controllers/class-wc-stripe-controller-webhook.php +4 -3
  30. includes/gateways/class-wc-payment-gateway-stripe-alipay.php +12 -5
  31. includes/gateways/class-wc-payment-gateway-stripe-bancontact.php +6 -2
  32. includes/gateways/class-wc-payment-gateway-stripe-becs.php +54 -6
  33. includes/gateways/class-wc-payment-gateway-stripe-cc.php +0 -97
  34. includes/gateways/class-wc-payment-gateway-stripe-eps.php +6 -2
  35. includes/gateways/class-wc-payment-gateway-stripe-giropay.php +6 -2
  36. includes/gateways/class-wc-payment-gateway-stripe-sepa.php +18 -4
  37. includes/gateways/class-wc-payment-gateway-stripe-sofort.php +5 -5
  38. includes/gateways/settings/ach-settings.php +1 -1
  39. includes/gateways/settings/applepay-settings.php +1 -1
  40. includes/gateways/settings/cc-settings.php +1 -1
  41. includes/gateways/settings/googlepay-settings.php +1 -1
  42. includes/gateways/settings/payment-request-settings.php +116 -116
  43. includes/tokens/class-wc-payment-token-stripe-becs.php +75 -0
  44. includes/tokens/class-wc-payment-token-stripe-local-payment.php +5 -3
  45. includes/tokens/class-wc-payment-token-stripe-sepa.php +13 -8
  46. includes/traits/wc-stripe-payment-traits.php +178 -9
  47. includes/wc-stripe-webhook-functions.php +7 -8
  48. packages/blocks/assets/js/payment-methods/local-payment/alipay.js +4 -4
  49. packages/blocks/assets/js/payment-methods/local-payment/bancontact.js +4 -3
  50. packages/blocks/assets/js/payment-methods/local-payment/becs.js +11 -1
  51. packages/blocks/assets/js/payment-methods/local-payment/eps.js +8 -4
  52. packages/blocks/assets/js/payment-methods/local-payment/giropay.js +6 -3
  53. packages/blocks/assets/js/payment-methods/local-payment/hooks/use-after-process-local-payment.js +1 -1
  54. packages/blocks/assets/js/payment-methods/local-payment/local-payment-method.js +2 -2
  55. packages/blocks/assets/js/payment-methods/local-payment/sepa.js +9 -22
  56. packages/blocks/assets/js/payment-methods/local-payment/sofort.js +7 -7
  57. packages/blocks/assets/js/payment-methods/local-payment/styles.scss +4 -0
  58. packages/blocks/build/commons.js +1 -1
  59. packages/blocks/build/commons.js.map +1 -1
assets/css/stripe-rtl.css CHANGED
@@ -203,7 +203,9 @@ label.wc-stripe-label-payment-type:after {
203
  background-image: url(../img/sepa.svg);
204
  }
205
 
206
- .select2-results__options li.wc-stripe-select2-container.wc-stripe-ach:before {
 
 
207
  display: none;
208
  }
209
 
@@ -853,16 +855,18 @@ a.wc-stripe-applepay-mini-cart .apple-pay-button {
853
  width: 100%;
854
  }
855
 
856
- .widget_shopping_cart_content .wc-stripe-overlay {
857
  display: none !important;
858
  position: absolute;
859
  background: rgba(255, 255, 255, 0.75);
860
  height: 100%;
861
  width: 100%;
862
  z-index: -1;
 
 
863
  }
864
 
865
- .widget_shopping_cart_content .wc-stripe-overlay.active {
866
  display: block !important;
867
  z-index: 9999;
868
  }
203
  background-image: url(../img/sepa.svg);
204
  }
205
 
206
+ .select2-results__options li.wc-stripe-select2-container.wc-stripe-ach:before,
207
+ .select2-results__options li.wc-stripe-select2-container.stripe_becs:before,
208
+ .select2-container .select2-selection--single .wc-stripe-select2-container.stripe_becs:before {
209
  display: none;
210
  }
211
 
855
  width: 100%;
856
  }
857
 
858
+ .wc-stripe-minicart-overlay {
859
  display: none !important;
860
  position: absolute;
861
  background: rgba(255, 255, 255, 0.75);
862
  height: 100%;
863
  width: 100%;
864
  z-index: -1;
865
+ top: 0;
866
+ right: 0;
867
  }
868
 
869
+ .wc-stripe-minicart-overlay.active {
870
  display: block !important;
871
  z-index: 9999;
872
  }
assets/css/stripe.css CHANGED
@@ -203,7 +203,9 @@ label.wc-stripe-label-payment-type:after {
203
  background-image: url(../img/sepa.svg);
204
  }
205
 
206
- .select2-results__options li.wc-stripe-select2-container.wc-stripe-ach:before {
 
 
207
  display: none;
208
  }
209
 
@@ -853,16 +855,18 @@ a.wc-stripe-applepay-mini-cart .apple-pay-button {
853
  width: 100%;
854
  }
855
 
856
- .widget_shopping_cart_content .wc-stripe-overlay {
857
  display: none !important;
858
  position: absolute;
859
  background: rgba(255, 255, 255, 0.75);
860
  height: 100%;
861
  width: 100%;
862
  z-index: -1;
 
 
863
  }
864
 
865
- .widget_shopping_cart_content .wc-stripe-overlay.active {
866
  display: block !important;
867
  z-index: 9999;
868
  }
203
  background-image: url(../img/sepa.svg);
204
  }
205
 
206
+ .select2-results__options li.wc-stripe-select2-container.wc-stripe-ach:before,
207
+ .select2-results__options li.wc-stripe-select2-container.stripe_becs:before,
208
+ .select2-container .select2-selection--single .wc-stripe-select2-container.stripe_becs:before {
209
  display: none;
210
  }
211
 
855
  width: 100%;
856
  }
857
 
858
+ .wc-stripe-minicart-overlay {
859
  display: none !important;
860
  position: absolute;
861
  background: rgba(255, 255, 255, 0.75);
862
  height: 100%;
863
  width: 100%;
864
  z-index: -1;
865
+ top: 0;
866
+ left: 0;
867
  }
868
 
869
+ .wc-stripe-minicart-overlay.active {
870
  display: block !important;
871
  z-index: 9999;
872
  }
assets/css/stripe.min-rtl.css CHANGED
@@ -1 +1 @@
1
- .wc-stripe-card-icons-container,.wc-stripe-paymentRequest-icons-container{float:left;display:inline-block}ul.payment_methods li[class*=payment_method]{margin:0;padding:0}li[class*=payment_method] input[type=radio]{margin:0 5px 0 10px}li[class*=payment_method] input[type=radio]+label:not(.wc-stripe-label-payment-type){margin:0}.woocommerce-checkout #payment ul.payment_methods li[class*=payment_method_stripe_]:nth-child(n+2),ul.payment_methods li[class*=payment_method_stripe_]:nth-child(n+2){margin:0}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon{max-width:43px;max-height:26px;width:43px;height:26px;float:none;display:inline}li.payment_method_stripe_payment_request .wc-stripe-paymentRequest-icons-container img:not(.gpay){width:25px;height:25px;max-width:25px;max-height:25px}ul.payment_methods label[for*=payment_method_stripe]:after{clear:left;content:"";display:block}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon:nth-child(2n+2){margin:0 2px}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon.open.visa{padding-top:2px}ul.payment_methods li[class*=payment_method_stripe_] label>img:first-of-type{float:left!important}.wc-stripe_cc-new-method-container{margin-bottom:1em}.wc-stripe_cc-container .StripeElement{box-sizing:border-box;height:40px;padding:10px 12px;border-radius:4px;background-color:#fff;-webkit-transition:box-shadow 150ms ease;transition:box-shadow 150ms ease}input.wc-stripe-klarna-category,input.wc-stripe-payment-type{display:none!important}body .wfacp_main_form.woocommerce .wc-stripe-save-source label.checkbox{padding:0!important}input[type=radio]+label.wc-stripe-label-payment-type,label.wc-stripe-label-klarna-category,label.wc-stripe-label-payment-type{margin-bottom:1em;display:block;padding:0!important;color:#000}.theme-flatsome div.wc-stripe-saved-methods-container{margin:0 0 1em 0}label.wc-stripe-label-klarna-category:before,label.wc-stripe-label-payment-type:before{content:"";display:inline-block;width:11px;height:11px;border:2px solid #fff;box-shadow:0 0 0 2px #000;background:#fff;margin-right:4px;margin-left:.5em;border-radius:100%;-webkit-transform:translateY(2px);-ms-transform:translateY(2px);transform:translateY(2px)}input.wc-stripe-klarna-category:checked+label.wc-stripe-label-klarna-category:before,input.wc-stripe-payment-type:checked+label.wc-stripe-label-payment-type:before{background:#000}label.wc-stripe-label-payment-type:after{content:none!important;display:none!important}.wc-stripe-saved-methods-container .select2-container .select2-selection--single .select2-selection__rendered{padding-right:8px}.select2-results__options li.wc-stripe-select2-container,.wc-stripe-saved-methods-container .select2-container .select2-selection--single .wc-stripe-select2-container{display:flex;align-items:center;height:42px;line-height:42px!important}.select2-container .select2-selection--single .wc-stripe-select2-container:before,.select2-results__options li.wc-stripe-select2-container:before{content:'';background-repeat:no-repeat;background-size:40px 24px;width:40px;height:42px;display:inline-block;margin-left:8px;background-position:center}.select2-container .select2-selection--single .wc-stripe-select2-container.visa:before,.select2-results__options li.wc-stripe-select2-container.visa:before{background-image:url(../img/cards/visa.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.mastercard:before,.select2-results__options li.wc-stripe-select2-container.mastercard:before{background-image:url(../img/cards/mastercard.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.americanexpress:before,.select2-results__options li.wc-stripe-select2-container.americanexpress:before{background-image:url(../img/cards/amex.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.amex:before,.select2-results__options li.wc-stripe-select2-container.amex:before{background-image:url(../img/cards/amex.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.discover:before,.select2-results__options li.wc-stripe-select2-container.discover:before{background-image:url(../img/cards/discover.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.mastercard:before,.select2-results__options li.wc-stripe-select2-container.mastercard:before{background-image:url(../img/cards/mastercard.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.dinersclub:before,.select2-results__options li.wc-stripe-select2-container.dinersclub:before{background-image:url(../img/cards/diners.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.diners:before,.select2-results__options li.wc-stripe-select2-container.diners:before{background-image:url(../img/cards/diners.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.jcb:before,.select2-results__options li.wc-stripe-select2-container.jcb:before{background-image:url(../img/cards/jcb.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.stripe_sepa:before,.select2-results__options li.wc-stripe-select2-container.stripe_sepa:before{background-image:url(../img/sepa.svg)}.select2-results__options li.wc-stripe-select2-container.wc-stripe-ach:before{display:none}#wc-stripe-card-element{margin-bottom:1em}.wc-stripe_cc-new-method-container .wc-stripe-save-source{display:flex;align-items:center;justify-content:flex-start}.wc-stripe_cc-container .wc-stripe-save-source .save-source-label{display:block;padding:0;margin:0 5px 0 0}.wc-stripe_cc-container .wc-stripe-save-source input[type=checkbox][name=stripe_cc_save_source_key]{opacity:0;position:absolute;width:20px;height:20px}.wc-stripe_cc-container .wc-stripe-save-source label.checkbox{position:relative}.wc-stripe_cc-container .save-source-checkbox{height:20px;width:20px;position:relative;background-color:#fff;display:block;border-radius:3px;border:1px solid #bababa}.wc-stripe_cc-container .save-source-checkbox:after{content:"";position:absolute;top:0;right:0}.wc-stripe_cc-container .wc-stripe-save-source input[type=checkbox]:checked+.save-source-checkbox:after{right:6px;top:2px;width:7px;height:12px;border:solid #2196f3;border-width:0 0 3px 3px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}li.payment_method_stripe_applepay,li.payment_method_stripe_googlepay,li.payment_method_stripe_payment_request{display:none}#payment #place_order.wc-stripe-hide,#place_order.wc-stripe-hide,.woocommerce-checkout-review-order #payment #place_order.wc-stripe-hide{position:absolute!important;z-index:-1000!important;height:0!important;padding:0!important;opacity:0!important}.wc-stripe-product-checkout-container{display:none;width:100%}.wc-stripe-product-checkout-container.bottom{margin-top:1em}.wc-stripe-product-checkout-container.top{margin-bottom:1em}.wc-stripe-product-checkout-container.active{display:block}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods,.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods{list-style:none;margin:0;padding:0}.wc-stripe-cart-checkout-container{margin:0;padding:0;clear:both}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods{margin-bottom:1.5em}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods li[class*=payment_method_stripe_],.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_]{margin:0 0 1em 0;list-style:none}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods li[class*=payment_method_stripe_]:last-child,.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_]:last-child{margin:0}.wc_stripe_cart_payment_methods .gpay-button,.wc_stripe_cart_payment_methods .gpay-card-info-container,.wc_stripe_product_payment_methods .gpay-button,.wc_stripe_product_payment_methods .gpay-card-info-container{width:100%!important;min-width:100%;margin:0}.wc_stripe_product_payment_methods .disabled{opacity:.45}.stripe_cart_gateway_active .checkout-button,.woocommerce-cart .stripe_cart_gateway_active .wc-proceed-to-checkout .checkout-button{margin-bottom:0}.wc-stripe-cart-or{margin:1em 0;text-align:center}li.wc-stripe-payment-method.or{display:none}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or{display:block;margin:15px 0}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or p{margin:0}li[class*=payment_method_stripe_].active~li.wc-stripe-payment-method.or{display:block;margin:0}li.payment_method_stripe_applepay label:first-of-type img{width:49px;max-height:32px}li.payment_method_stripe_googlepay label:first-of-type img{width:48px;max-height:35px}li.payment_method_stripe_googlepay label:first-of-type img[src*=googlepay_standard],li.payment_method_stripe_payment_request label:first-of-type img[src*=googlepay_standard]{width:60px;max-height:35px}li.payment_method_stripe_googlepay label:first-of-type img[src*=googlepay_round_outline],li.payment_method_stripe_payment_request label:first-of-type img[src*=googlepay_round_outline]{width:56px;max-height:30px}li.payment_method_stripe_ach label:first-of-type img{width:32px;height:32px;min-width:32px;min-height:32px}.gpay-button-container .gpay-button:hover,.wc-stripe-checkout-banner-gateway .gpay-button:hover{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}.gpay-button:active{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}.gpay-button:focus{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}@supports (-webkit-appearance:-apple-pay-button){.apple-pay-button{display:block;-webkit-appearance:-apple-pay-button!important;width:100%;max-width:100%;min-width:200px;height:40px;max-height:40px}.apple-pay-button-black{-apple-pay-button-style:#000}.apple-pay-button-white{-apple-pay-button-style:#fff}.apple-pay-button-white-with-line{-apple-pay-button-style:white-outline}.woocommerce-checkout-payment .apple-pay-button{max-width:240px}body.single-product div.product form.cart .wc_stripe_product_payment_methods .apple-pay-button{max-width:100%}}.wc-stripe-banner-checkout{display:none;padding:0;position:relative;margin:1em 0}.wc-stripe-banner-checkout fieldset{padding:15px 25px 15px;border:1px solid #d1d1d1;margin-bottom:20px;border-radius:3px}.wc-stripe-banner-checkout fieldset legend{margin:0 auto;font-weight:500;padding:0 1rem}.wc-stripe-banner-checkout.active{display:block}.wc-stripe-banner-checkout span.banner-divider{display:flex;align-items:center;top:-13px;left:0;right:0;background:0 0;white-space:nowrap;font-size:16px}.wc-stripe-banner-checkout span.banner-divider:after,.wc-stripe-banner-checkout span.banner-divider:before{content:' ';height:1px;background:#d1d1d1;display:block;width:50%}.wc-stripe-banner-checkout span.banner-divider:before{margin-left:1rem}.wc-stripe-banner-checkout span.banner-divider:after{margin-right:1rem}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways{list-style:none;margin:0;padding:0}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway{margin:0 auto;display:none;max-width:240px}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway.active:nth-child(n+2){margin:10px auto 0 auto}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway:first-child:not(.active)+li.wc-stripe-checkout-banner-gateway.active{margin:0 auto}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway .gpay-button,.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway .gpay-card-info-container{margin:0}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways .gpay-button,.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways .gpay-card-info-container{width:100%}.wc_stripe_cart_payment_methods .payment_method_stripe_payment_request .StripeElement,.wc_stripe_product_payment_methods .payment_method_stripe_payment_request .StripeElement{padding:0;width:100%}.woocommerce-checkout #wc-stripe-payment-request-container.StripeElement{width:240px;padding:0}.wc-stripe-checkout-banner-gateway #wc-stripe-payment-request-banner.StripeElement{width:100%}ul.payment_methods li.payment_method_stripe_p24 img{max-width:90px;width:90px;max-height:45px}ul.payment_methods li.payment_method_stripe_ideal img{max-width:38px;width:38px;max-height:35px}ul.payment_methods li.payment_method_stripe_fpx img{max-width:75px;width:75px;max-height:25px}ul.payment_methods li.payment_method_stripe_klarna img{max-width:72px;width:72px;max-height:20px}ul.payment_methods li.payment_method_stripe_klarna img[src*=klarna_pink]{width:56px;height:32px;max-height:32px}ul.payment_methods li.payment_method_stripe_giropay img{max-width:65px;width:65px;max-height:28px}ul.payment_methods li.payment_method_stripe_eps img{max-width:70px;width:70px;max-height:46px}ul.payment_methods li.payment_method_stripe_multibanco img{max-width:48px;width:48px;max-height:48px}ul.payment_methods li.payment_method_stripe_sepa img{max-width:67px;width:67px;max-height:18px}ul.payment_methods li.payment_method_stripe_sofort img{max-width:70px;width:70px;max-height:21px}label[for=payment_method_stripe_bancontact] img,ul.payment_methods li.payment_method_stripe_bancontact img{width:60px;height:42px;max-width:60px;max-height:42px}ul.payment_methods li.payment_method_stripe_wechat label img{max-width:82px;width:82px;max-height:23px}ul.payment_methods li.payment_method_stripe_alipay img{max-width:72px;width:72px;height:36px;max-height:36px}ul.payment_methods li.payment_method_stripe_grabpay img{max-width:95px;width:95px;max-height:28px}ul.payment_methods li.payment_method_stripe_oxxo img{max-width:52px;width:52px;max-height:24px}#wc-stripe-card-element{width:100%}li.banner_payment_method_stripe_payment_request .StripeElement{padding:0}.single-product .blockMsg{border:none!important;background-color:transparent!important}#wc-stripe-card{position:absolute!important;top:50%;left:8px;transform:translatey(-50%);width:23px;height:15px;padding:0;border:none}#wc-stripe-card.active{width:32px;height:20px}input[id=stripe-postal-code]:focus{outline:0;background:0 0;border:none;box-shadow:none}div.postalCode:focus{outline:0;border:none}li[class*=payment_method_stripe] .select2-container .select2-selection--single{height:42px;padding:0 5px}li[class*=payment_method_stripe] .select2-container--default .select2-selection--single .select2-selection__arrow{height:42px;top:1px;left:1px;transform:translateY(0)}.blockUI.blockMsg{font-size:20px;white-space:nowrap}#wc-stripe-payment-request-container.disabled{opacity:.45}.wc-stripe-paymentRequest-icons-container img{float:none}.select2-container .select2-selection--single .wc-stripe-select2-container.wc-stripe-ach:before{display:none}ul.wc_stripe_cart_payment_methods li.wc-stripe-payment-method button,ul.wc_stripe_checkout_banner_gateways li button,ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_] button{margin:0}ul.payment_methods li[class*=payment_method]{margin:0;padding:10px 0}ul.payment_methods li[class*=payment_method] input[name=payment_method]{margin:0 5px 0 10px;float:none}ul.payment_methods li[class*=payment_method]>input[name=payment_method]+label{padding-top:0;padding-left:0;padding-bottom:0}ul.payment_methods{list-style:none}ul.payment_methods li[class*=payment_method_stripe_] .wc-stripe_cc-new-method-container label:before{display:none}.wc-stripe_cc-container .wc-stripe-save-source label.checkbox{padding:0!important;margin:0}div[id*=wc_stripe_local_payment_stripe_].StripeElement{border:1px solid #eee;border-radius:4px}#payment .payment_methods li #wc_stripe_local_payment_stripe_wechat img,#wc_stripe_local_payment_stripe_wechat img{max-height:100%;float:none}.qrcode-message{margin:10px 0 0 0}#wc_stripe_local_payment_stripe_becs,#wc_stripe_local_payment_stripe_sepa{padding:10px 12px;box-shadow:0 1px 3px 0 #e6ebf1}.wc-stripe-local-desc.stripe_becs,.wc-stripe-local-desc.stripe_sepa{margin:10px 0}.wc-stripe-clear{clear:both;height:0;visibility:hidden}.wc-stripe-gateway-desc p{margin:0}#wc_stripe_local_payment_stripe_klarna,li[class*=payment_method_stripe_] div.wc-stripe-gateway-container.has_tokens{margin-top:10px}.wc-stripe-gateway-desc{margin-top:10px}#wc-stripe-card-element.StripeElement--webkit-autofill{background-color:transparent!important}#wc_stripe_local_payment_stripe_klarna .stripe-klarna-categories{list-style:none;margin:0;padding:10px}li.payment_method_stripe_alipay,li.payment_method_stripe_bancontact,li.payment_method_stripe_becs,li.payment_method_stripe_eps,li.payment_method_stripe_fpx,li.payment_method_stripe_giropay,li.payment_method_stripe_ideal,li.payment_method_stripe_klarna,li.payment_method_stripe_multibanco,li.payment_method_stripe_p24,li.payment_method_stripe_sepa,li.payment_method_stripe_sofort,li.payment_method_stripe_wechat{display:none}.widget_shopping_cart_content .wc-stripe-mini-cart-payment-methods{list-style:none;margin:0;padding:0}.widget_shopping_cart_content .wc-stripe-mini-cart-payment-methods li{margin:0}.widget_shopping_cart_content a.wc-stripe-applepay-mini-cart,.widget_shopping_cart_content a.wc-stripe-gpay-mini-cart,.widget_shopping_cart_content a.wc-stripe-payment-request-mini-cart{background:0 0;padding:0;border:none}a.wc-stripe-gpay-mini-cart .gpay-button,a.wc-stripe-gpay-mini-cart .gpay-card-info-container a.wc-stripe-applepay-mini-cart .apple-pay-button{width:100%;margin:0}.wc-stripe-payment-request-mini-cart.StripeElement{padding:0;background:0 0;border:none;width:100%}.wc-stripe-payment-request-mini-cart.StripeElement .__PrivateStripeElement{width:100%}.widget_shopping_cart_content .wc-stripe-overlay{display:none!important;position:absolute;background:rgba(255,255,255,.75);height:100%;width:100%;z-index:-1}.widget_shopping_cart_content .wc-stripe-overlay.active{display:block!important;z-index:9999}.wc-stripe-klarna-loader{display:flex;justify-content:center;position:relative;width:100%;height:30px;box-sizing:border-box;transform:scale(.65)}.wc-stripe-klarna-loader div{box-sizing:border-box;display:block;position:absolute;box-sizing:border-box;width:30px;height:30px;border:3px solid #000;border-radius:50%;animation:klarna-payments-loader 1.3s cubic-bezier(.5,0,.5,1) infinite;border-color:#000 transparent transparent transparent}.wc-stripe-klarna-loader div:nth-child(1){animation-delay:-.45s}.wc-stripe-klarna-loader div:nth-child(2){animation-delay:-.3s}.wc-stripe-klarna-loader div:nth-child(3){animation-delay:-.15s}@keyframes klarna-payments-loader{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}li.payment_method_stripe_alipay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_applepay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_bancontact.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_eps.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_giropay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_googlepay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_grabpay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_multibanco.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_oxxo.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_p24.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_payment_request.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_sofort.wc-stripe-no-desc .payment_box.wc-stripe-no-methods{padding:0;margin:0}.wc-stripe-shortcode-cart-buttons .wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or{display:none}label[for=payment_method_stripe_afterpay]>#wc-stripe-afterpay-msg{display:inline-block}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg .__PrivateStripeElement p,#wc-stripe-afterpay-product-msg .__PrivateStripeElement p,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .__PrivateStripeElement p{margin-bottom:0!important;margin-top:0!important}#wc-stripe-afterpay-cart-msg .__PrivateStripeElement p .AfterpayMessage-logo,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .__PrivateStripeElement p .AfterpayMessage-logo{vertical-align:middle}.payment_method_stripe_afterpay #wc_stripe_local_payment_stripe_afterpay.ineligible{display:none}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite{text-align:center;max-width:320px;margin:0 auto;padding:10px 0}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite img{display:inline-block}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite p{font-size:14px;margin-top:10px}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg{text-align:right}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg .AfterpayMessage-logoSvg,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .AfterpayMessage-logoSvg{min-width:64px;max-width:90px}#wc-stripe-afterpay-cart-container td{border:none}#wc-stripe-afterpay-cart-container td::before{content:''}.AfterpayMessage-logoSvg{display:inline-block}#wc-stripe-afterpay-product-msg{font-size:14px}#wc-stripe-afterpay-product-msg .AfterpayMessage-logoSvg{max-width:80px;min-width:64px}.wc-stripe-afterpay-minicart-msg{font-size:.8em}.afterpay-ineligible,.payment_method_stripe_afterpay.afterpay-ineligible{display:none}.woocommerce-mini-cart__buttons .gpay-card-info-container{min-width:100%}.woocommerce-mini-cart__buttons .gpay-card-info-container{margin:0}.wc-stripe-boleto__description{margin-top:10px}.wc-stripe-boleto__description div{display:flex;align-items:center}.wc-stripe-boleto__description div label{margin:0}.wc-stripe-klarna__testmode{margin-top:10px}.wc-stripe-klarna__testmode label{display:inline-block}div.payment_method_stripe_cc>.woocommerce-NoticeGroup{margin-bottom:10px}div.payment_method_stripe_cc.custom-form__bootstrap>.woocommerce-NoticeGroup{margin-bottom:20px}
1
+ .wc-stripe-card-icons-container,.wc-stripe-paymentRequest-icons-container{float:left;display:inline-block}ul.payment_methods li[class*=payment_method]{margin:0;padding:0}li[class*=payment_method] input[type=radio]{margin:0 5px 0 10px}li[class*=payment_method] input[type=radio]+label:not(.wc-stripe-label-payment-type){margin:0}.woocommerce-checkout #payment ul.payment_methods li[class*=payment_method_stripe_]:nth-child(n+2),ul.payment_methods li[class*=payment_method_stripe_]:nth-child(n+2){margin:0}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon{max-width:43px;max-height:26px;width:43px;height:26px;float:none;display:inline}li.payment_method_stripe_payment_request .wc-stripe-paymentRequest-icons-container img:not(.gpay){width:25px;height:25px;max-width:25px;max-height:25px}ul.payment_methods label[for*=payment_method_stripe]:after{clear:left;content:"";display:block}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon:nth-child(2n+2){margin:0 2px}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon.open.visa{padding-top:2px}ul.payment_methods li[class*=payment_method_stripe_] label>img:first-of-type{float:left!important}.wc-stripe_cc-new-method-container{margin-bottom:1em}.wc-stripe_cc-container .StripeElement{box-sizing:border-box;height:40px;padding:10px 12px;border-radius:4px;background-color:#fff;-webkit-transition:box-shadow 150ms ease;transition:box-shadow 150ms ease}input.wc-stripe-klarna-category,input.wc-stripe-payment-type{display:none!important}body .wfacp_main_form.woocommerce .wc-stripe-save-source label.checkbox{padding:0!important}input[type=radio]+label.wc-stripe-label-payment-type,label.wc-stripe-label-klarna-category,label.wc-stripe-label-payment-type{margin-bottom:1em;display:block;padding:0!important;color:#000}.theme-flatsome div.wc-stripe-saved-methods-container{margin:0 0 1em 0}label.wc-stripe-label-klarna-category:before,label.wc-stripe-label-payment-type:before{content:"";display:inline-block;width:11px;height:11px;border:2px solid #fff;box-shadow:0 0 0 2px #000;background:#fff;margin-right:4px;margin-left:.5em;border-radius:100%;-webkit-transform:translateY(2px);-ms-transform:translateY(2px);transform:translateY(2px)}input.wc-stripe-klarna-category:checked+label.wc-stripe-label-klarna-category:before,input.wc-stripe-payment-type:checked+label.wc-stripe-label-payment-type:before{background:#000}label.wc-stripe-label-payment-type:after{content:none!important;display:none!important}.wc-stripe-saved-methods-container .select2-container .select2-selection--single .select2-selection__rendered{padding-right:8px}.select2-results__options li.wc-stripe-select2-container,.wc-stripe-saved-methods-container .select2-container .select2-selection--single .wc-stripe-select2-container{display:flex;align-items:center;height:42px;line-height:42px!important}.select2-container .select2-selection--single .wc-stripe-select2-container:before,.select2-results__options li.wc-stripe-select2-container:before{content:'';background-repeat:no-repeat;background-size:40px 24px;width:40px;height:42px;display:inline-block;margin-left:8px;background-position:center}.select2-container .select2-selection--single .wc-stripe-select2-container.visa:before,.select2-results__options li.wc-stripe-select2-container.visa:before{background-image:url(../img/cards/visa.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.mastercard:before,.select2-results__options li.wc-stripe-select2-container.mastercard:before{background-image:url(../img/cards/mastercard.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.americanexpress:before,.select2-results__options li.wc-stripe-select2-container.americanexpress:before{background-image:url(../img/cards/amex.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.amex:before,.select2-results__options li.wc-stripe-select2-container.amex:before{background-image:url(../img/cards/amex.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.discover:before,.select2-results__options li.wc-stripe-select2-container.discover:before{background-image:url(../img/cards/discover.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.mastercard:before,.select2-results__options li.wc-stripe-select2-container.mastercard:before{background-image:url(../img/cards/mastercard.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.dinersclub:before,.select2-results__options li.wc-stripe-select2-container.dinersclub:before{background-image:url(../img/cards/diners.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.diners:before,.select2-results__options li.wc-stripe-select2-container.diners:before{background-image:url(../img/cards/diners.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.jcb:before,.select2-results__options li.wc-stripe-select2-container.jcb:before{background-image:url(../img/cards/jcb.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.stripe_sepa:before,.select2-results__options li.wc-stripe-select2-container.stripe_sepa:before{background-image:url(../img/sepa.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.stripe_becs:before,.select2-results__options li.wc-stripe-select2-container.stripe_becs:before,.select2-results__options li.wc-stripe-select2-container.wc-stripe-ach:before{display:none}#wc-stripe-card-element{margin-bottom:1em}.wc-stripe_cc-new-method-container .wc-stripe-save-source{display:flex;align-items:center;justify-content:flex-start}.wc-stripe_cc-container .wc-stripe-save-source .save-source-label{display:block;padding:0;margin:0 5px 0 0}.wc-stripe_cc-container .wc-stripe-save-source input[type=checkbox][name=stripe_cc_save_source_key]{opacity:0;position:absolute;width:20px;height:20px}.wc-stripe_cc-container .wc-stripe-save-source label.checkbox{position:relative}.wc-stripe_cc-container .save-source-checkbox{height:20px;width:20px;position:relative;background-color:#fff;display:block;border-radius:3px;border:1px solid #bababa}.wc-stripe_cc-container .save-source-checkbox:after{content:"";position:absolute;top:0;right:0}.wc-stripe_cc-container .wc-stripe-save-source input[type=checkbox]:checked+.save-source-checkbox:after{right:6px;top:2px;width:7px;height:12px;border:solid #2196f3;border-width:0 0 3px 3px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}li.payment_method_stripe_applepay,li.payment_method_stripe_googlepay,li.payment_method_stripe_payment_request{display:none}#payment #place_order.wc-stripe-hide,#place_order.wc-stripe-hide,.woocommerce-checkout-review-order #payment #place_order.wc-stripe-hide{position:absolute!important;z-index:-1000!important;height:0!important;padding:0!important;opacity:0!important}.wc-stripe-product-checkout-container{display:none;width:100%}.wc-stripe-product-checkout-container.bottom{margin-top:1em}.wc-stripe-product-checkout-container.top{margin-bottom:1em}.wc-stripe-product-checkout-container.active{display:block}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods,.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods{list-style:none;margin:0;padding:0}.wc-stripe-cart-checkout-container{margin:0;padding:0;clear:both}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods{margin-bottom:1.5em}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods li[class*=payment_method_stripe_],.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_]{margin:0 0 1em 0;list-style:none}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods li[class*=payment_method_stripe_]:last-child,.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_]:last-child{margin:0}.wc_stripe_cart_payment_methods .gpay-button,.wc_stripe_cart_payment_methods .gpay-card-info-container,.wc_stripe_product_payment_methods .gpay-button,.wc_stripe_product_payment_methods .gpay-card-info-container{width:100%!important;min-width:100%;margin:0}.wc_stripe_product_payment_methods .disabled{opacity:.45}.stripe_cart_gateway_active .checkout-button,.woocommerce-cart .stripe_cart_gateway_active .wc-proceed-to-checkout .checkout-button{margin-bottom:0}.wc-stripe-cart-or{margin:1em 0;text-align:center}li.wc-stripe-payment-method.or{display:none}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or{display:block;margin:15px 0}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or p{margin:0}li[class*=payment_method_stripe_].active~li.wc-stripe-payment-method.or{display:block;margin:0}li.payment_method_stripe_applepay label:first-of-type img{width:49px;max-height:32px}li.payment_method_stripe_googlepay label:first-of-type img{width:48px;max-height:35px}li.payment_method_stripe_googlepay label:first-of-type img[src*=googlepay_standard],li.payment_method_stripe_payment_request label:first-of-type img[src*=googlepay_standard]{width:60px;max-height:35px}li.payment_method_stripe_googlepay label:first-of-type img[src*=googlepay_round_outline],li.payment_method_stripe_payment_request label:first-of-type img[src*=googlepay_round_outline]{width:56px;max-height:30px}li.payment_method_stripe_ach label:first-of-type img{width:32px;height:32px;min-width:32px;min-height:32px}.gpay-button-container .gpay-button:hover,.wc-stripe-checkout-banner-gateway .gpay-button:hover{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}.gpay-button:active{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}.gpay-button:focus{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}@supports (-webkit-appearance:-apple-pay-button){.apple-pay-button{display:block;-webkit-appearance:-apple-pay-button!important;width:100%;max-width:100%;min-width:200px;height:40px;max-height:40px}.apple-pay-button-black{-apple-pay-button-style:#000}.apple-pay-button-white{-apple-pay-button-style:#fff}.apple-pay-button-white-with-line{-apple-pay-button-style:white-outline}.woocommerce-checkout-payment .apple-pay-button{max-width:240px}body.single-product div.product form.cart .wc_stripe_product_payment_methods .apple-pay-button{max-width:100%}}.wc-stripe-banner-checkout{display:none;padding:0;position:relative;margin:1em 0}.wc-stripe-banner-checkout fieldset{padding:15px 25px 15px;border:1px solid #d1d1d1;margin-bottom:20px;border-radius:3px}.wc-stripe-banner-checkout fieldset legend{margin:0 auto;font-weight:500;padding:0 1rem}.wc-stripe-banner-checkout.active{display:block}.wc-stripe-banner-checkout span.banner-divider{display:flex;align-items:center;top:-13px;left:0;right:0;background:0 0;white-space:nowrap;font-size:16px}.wc-stripe-banner-checkout span.banner-divider:after,.wc-stripe-banner-checkout span.banner-divider:before{content:' ';height:1px;background:#d1d1d1;display:block;width:50%}.wc-stripe-banner-checkout span.banner-divider:before{margin-left:1rem}.wc-stripe-banner-checkout span.banner-divider:after{margin-right:1rem}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways{list-style:none;margin:0;padding:0}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway{margin:0 auto;display:none;max-width:240px}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway.active:nth-child(n+2){margin:10px auto 0 auto}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway:first-child:not(.active)+li.wc-stripe-checkout-banner-gateway.active{margin:0 auto}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway .gpay-button,.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway .gpay-card-info-container{margin:0}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways .gpay-button,.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways .gpay-card-info-container{width:100%}.wc_stripe_cart_payment_methods .payment_method_stripe_payment_request .StripeElement,.wc_stripe_product_payment_methods .payment_method_stripe_payment_request .StripeElement{padding:0;width:100%}.woocommerce-checkout #wc-stripe-payment-request-container.StripeElement{width:240px;padding:0}.wc-stripe-checkout-banner-gateway #wc-stripe-payment-request-banner.StripeElement{width:100%}ul.payment_methods li.payment_method_stripe_p24 img{max-width:90px;width:90px;max-height:45px}ul.payment_methods li.payment_method_stripe_ideal img{max-width:38px;width:38px;max-height:35px}ul.payment_methods li.payment_method_stripe_fpx img{max-width:75px;width:75px;max-height:25px}ul.payment_methods li.payment_method_stripe_klarna img{max-width:72px;width:72px;max-height:20px}ul.payment_methods li.payment_method_stripe_klarna img[src*=klarna_pink]{width:56px;height:32px;max-height:32px}ul.payment_methods li.payment_method_stripe_giropay img{max-width:65px;width:65px;max-height:28px}ul.payment_methods li.payment_method_stripe_eps img{max-width:70px;width:70px;max-height:46px}ul.payment_methods li.payment_method_stripe_multibanco img{max-width:48px;width:48px;max-height:48px}ul.payment_methods li.payment_method_stripe_sepa img{max-width:67px;width:67px;max-height:18px}ul.payment_methods li.payment_method_stripe_sofort img{max-width:70px;width:70px;max-height:21px}label[for=payment_method_stripe_bancontact] img,ul.payment_methods li.payment_method_stripe_bancontact img{width:60px;height:42px;max-width:60px;max-height:42px}ul.payment_methods li.payment_method_stripe_wechat label img{max-width:82px;width:82px;max-height:23px}ul.payment_methods li.payment_method_stripe_alipay img{max-width:72px;width:72px;height:36px;max-height:36px}ul.payment_methods li.payment_method_stripe_grabpay img{max-width:95px;width:95px;max-height:28px}ul.payment_methods li.payment_method_stripe_oxxo img{max-width:52px;width:52px;max-height:24px}#wc-stripe-card-element{width:100%}li.banner_payment_method_stripe_payment_request .StripeElement{padding:0}.single-product .blockMsg{border:none!important;background-color:transparent!important}#wc-stripe-card{position:absolute!important;top:50%;left:8px;transform:translatey(-50%);width:23px;height:15px;padding:0;border:none}#wc-stripe-card.active{width:32px;height:20px}input[id=stripe-postal-code]:focus{outline:0;background:0 0;border:none;box-shadow:none}div.postalCode:focus{outline:0;border:none}li[class*=payment_method_stripe] .select2-container .select2-selection--single{height:42px;padding:0 5px}li[class*=payment_method_stripe] .select2-container--default .select2-selection--single .select2-selection__arrow{height:42px;top:1px;left:1px;transform:translateY(0)}.blockUI.blockMsg{font-size:20px;white-space:nowrap}#wc-stripe-payment-request-container.disabled{opacity:.45}.wc-stripe-paymentRequest-icons-container img{float:none}.select2-container .select2-selection--single .wc-stripe-select2-container.wc-stripe-ach:before{display:none}ul.wc_stripe_cart_payment_methods li.wc-stripe-payment-method button,ul.wc_stripe_checkout_banner_gateways li button,ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_] button{margin:0}ul.payment_methods li[class*=payment_method]{margin:0;padding:10px 0}ul.payment_methods li[class*=payment_method] input[name=payment_method]{margin:0 5px 0 10px;float:none}ul.payment_methods li[class*=payment_method]>input[name=payment_method]+label{padding-top:0;padding-left:0;padding-bottom:0}ul.payment_methods{list-style:none}ul.payment_methods li[class*=payment_method_stripe_] .wc-stripe_cc-new-method-container label:before{display:none}.wc-stripe_cc-container .wc-stripe-save-source label.checkbox{padding:0!important;margin:0}div[id*=wc_stripe_local_payment_stripe_].StripeElement{border:1px solid #eee;border-radius:4px}#payment .payment_methods li #wc_stripe_local_payment_stripe_wechat img,#wc_stripe_local_payment_stripe_wechat img{max-height:100%;float:none}.qrcode-message{margin:10px 0 0 0}#wc_stripe_local_payment_stripe_becs,#wc_stripe_local_payment_stripe_sepa{padding:10px 12px;box-shadow:0 1px 3px 0 #e6ebf1}.wc-stripe-local-desc.stripe_becs,.wc-stripe-local-desc.stripe_sepa{margin:10px 0}.wc-stripe-clear{clear:both;height:0;visibility:hidden}.wc-stripe-gateway-desc p{margin:0}#wc_stripe_local_payment_stripe_klarna,li[class*=payment_method_stripe_] div.wc-stripe-gateway-container.has_tokens{margin-top:10px}.wc-stripe-gateway-desc{margin-top:10px}#wc-stripe-card-element.StripeElement--webkit-autofill{background-color:transparent!important}#wc_stripe_local_payment_stripe_klarna .stripe-klarna-categories{list-style:none;margin:0;padding:10px}li.payment_method_stripe_alipay,li.payment_method_stripe_bancontact,li.payment_method_stripe_becs,li.payment_method_stripe_eps,li.payment_method_stripe_fpx,li.payment_method_stripe_giropay,li.payment_method_stripe_ideal,li.payment_method_stripe_klarna,li.payment_method_stripe_multibanco,li.payment_method_stripe_p24,li.payment_method_stripe_sepa,li.payment_method_stripe_sofort,li.payment_method_stripe_wechat{display:none}.widget_shopping_cart_content .wc-stripe-mini-cart-payment-methods{list-style:none;margin:0;padding:0}.widget_shopping_cart_content .wc-stripe-mini-cart-payment-methods li{margin:0}.widget_shopping_cart_content a.wc-stripe-applepay-mini-cart,.widget_shopping_cart_content a.wc-stripe-gpay-mini-cart,.widget_shopping_cart_content a.wc-stripe-payment-request-mini-cart{background:0 0;padding:0;border:none}a.wc-stripe-gpay-mini-cart .gpay-button,a.wc-stripe-gpay-mini-cart .gpay-card-info-container a.wc-stripe-applepay-mini-cart .apple-pay-button{width:100%;margin:0}.wc-stripe-payment-request-mini-cart.StripeElement{padding:0;background:0 0;border:none;width:100%}.wc-stripe-payment-request-mini-cart.StripeElement .__PrivateStripeElement{width:100%}.wc-stripe-minicart-overlay{display:none!important;position:absolute;background:rgba(255,255,255,.75);height:100%;width:100%;z-index:-1;top:0;right:0}.wc-stripe-minicart-overlay.active{display:block!important;z-index:9999}.wc-stripe-klarna-loader{display:flex;justify-content:center;position:relative;width:100%;height:30px;box-sizing:border-box;transform:scale(.65)}.wc-stripe-klarna-loader div{box-sizing:border-box;display:block;position:absolute;box-sizing:border-box;width:30px;height:30px;border:3px solid #000;border-radius:50%;animation:klarna-payments-loader 1.3s cubic-bezier(.5,0,.5,1) infinite;border-color:#000 transparent transparent transparent}.wc-stripe-klarna-loader div:nth-child(1){animation-delay:-.45s}.wc-stripe-klarna-loader div:nth-child(2){animation-delay:-.3s}.wc-stripe-klarna-loader div:nth-child(3){animation-delay:-.15s}@keyframes klarna-payments-loader{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}li.payment_method_stripe_alipay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_applepay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_bancontact.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_eps.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_giropay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_googlepay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_grabpay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_multibanco.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_oxxo.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_p24.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_payment_request.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_sofort.wc-stripe-no-desc .payment_box.wc-stripe-no-methods{padding:0;margin:0}.wc-stripe-shortcode-cart-buttons .wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or{display:none}label[for=payment_method_stripe_afterpay]>#wc-stripe-afterpay-msg{display:inline-block}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg .__PrivateStripeElement p,#wc-stripe-afterpay-product-msg .__PrivateStripeElement p,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .__PrivateStripeElement p{margin-bottom:0!important;margin-top:0!important}#wc-stripe-afterpay-cart-msg .__PrivateStripeElement p .AfterpayMessage-logo,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .__PrivateStripeElement p .AfterpayMessage-logo{vertical-align:middle}.payment_method_stripe_afterpay #wc_stripe_local_payment_stripe_afterpay.ineligible{display:none}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite{text-align:center;max-width:320px;margin:0 auto;padding:10px 0}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite img{display:inline-block}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite p{font-size:14px;margin-top:10px}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg{text-align:right}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg .AfterpayMessage-logoSvg,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .AfterpayMessage-logoSvg{min-width:64px;max-width:90px}#wc-stripe-afterpay-cart-container td{border:none}#wc-stripe-afterpay-cart-container td::before{content:''}.AfterpayMessage-logoSvg{display:inline-block}#wc-stripe-afterpay-product-msg{font-size:14px}#wc-stripe-afterpay-product-msg .AfterpayMessage-logoSvg{max-width:80px;min-width:64px}.wc-stripe-afterpay-minicart-msg{font-size:.8em}.afterpay-ineligible,.payment_method_stripe_afterpay.afterpay-ineligible{display:none}.woocommerce-mini-cart__buttons .gpay-card-info-container{min-width:100%}.woocommerce-mini-cart__buttons .gpay-card-info-container{margin:0}.wc-stripe-boleto__description{margin-top:10px}.wc-stripe-boleto__description div{display:flex;align-items:center}.wc-stripe-boleto__description div label{margin:0}.wc-stripe-klarna__testmode{margin-top:10px}.wc-stripe-klarna__testmode label{display:inline-block}div.payment_method_stripe_cc>.woocommerce-NoticeGroup{margin-bottom:10px}div.payment_method_stripe_cc.custom-form__bootstrap>.woocommerce-NoticeGroup{margin-bottom:20px}
assets/css/stripe.min.css CHANGED
@@ -1 +1 @@
1
- .wc-stripe-card-icons-container,.wc-stripe-paymentRequest-icons-container{float:right;display:inline-block}ul.payment_methods li[class*=payment_method]{margin:0;padding:0}li[class*=payment_method] input[type=radio]{margin:0 10px 0 5px}li[class*=payment_method] input[type=radio]+label:not(.wc-stripe-label-payment-type){margin:0}.woocommerce-checkout #payment ul.payment_methods li[class*=payment_method_stripe_]:nth-child(n+2),ul.payment_methods li[class*=payment_method_stripe_]:nth-child(n+2){margin:0}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon{max-width:43px;max-height:26px;width:43px;height:26px;float:none;display:inline}li.payment_method_stripe_payment_request .wc-stripe-paymentRequest-icons-container img:not(.gpay){width:25px;height:25px;max-width:25px;max-height:25px}ul.payment_methods label[for*=payment_method_stripe]:after{clear:right;content:"";display:block}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon:nth-child(2n+2){margin:0 2px}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon.open.visa{padding-top:2px}ul.payment_methods li[class*=payment_method_stripe_] label>img:first-of-type{float:right!important}.wc-stripe_cc-new-method-container{margin-bottom:1em}.wc-stripe_cc-container .StripeElement{box-sizing:border-box;height:40px;padding:10px 12px;border-radius:4px;background-color:#fff;-webkit-transition:box-shadow 150ms ease;transition:box-shadow 150ms ease}input.wc-stripe-klarna-category,input.wc-stripe-payment-type{display:none!important}body .wfacp_main_form.woocommerce .wc-stripe-save-source label.checkbox{padding:0!important}input[type=radio]+label.wc-stripe-label-payment-type,label.wc-stripe-label-klarna-category,label.wc-stripe-label-payment-type{margin-bottom:1em;display:block;padding:0!important;color:#000}.theme-flatsome div.wc-stripe-saved-methods-container{margin:0 0 1em 0}label.wc-stripe-label-klarna-category:before,label.wc-stripe-label-payment-type:before{content:"";display:inline-block;width:11px;height:11px;border:2px solid #fff;box-shadow:0 0 0 2px #000;background:#fff;margin-left:4px;margin-right:.5em;border-radius:100%;-webkit-transform:translateY(2px);-ms-transform:translateY(2px);transform:translateY(2px)}input.wc-stripe-klarna-category:checked+label.wc-stripe-label-klarna-category:before,input.wc-stripe-payment-type:checked+label.wc-stripe-label-payment-type:before{background:#000}label.wc-stripe-label-payment-type:after{content:none!important;display:none!important}.wc-stripe-saved-methods-container .select2-container .select2-selection--single .select2-selection__rendered{padding-left:8px}.select2-results__options li.wc-stripe-select2-container,.wc-stripe-saved-methods-container .select2-container .select2-selection--single .wc-stripe-select2-container{display:flex;align-items:center;height:42px;line-height:42px!important}.select2-container .select2-selection--single .wc-stripe-select2-container:before,.select2-results__options li.wc-stripe-select2-container:before{content:'';background-repeat:no-repeat;background-size:40px 24px;width:40px;height:42px;display:inline-block;margin-right:8px;background-position:center}.select2-container .select2-selection--single .wc-stripe-select2-container.visa:before,.select2-results__options li.wc-stripe-select2-container.visa:before{background-image:url(../img/cards/visa.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.mastercard:before,.select2-results__options li.wc-stripe-select2-container.mastercard:before{background-image:url(../img/cards/mastercard.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.americanexpress:before,.select2-results__options li.wc-stripe-select2-container.americanexpress:before{background-image:url(../img/cards/amex.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.amex:before,.select2-results__options li.wc-stripe-select2-container.amex:before{background-image:url(../img/cards/amex.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.discover:before,.select2-results__options li.wc-stripe-select2-container.discover:before{background-image:url(../img/cards/discover.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.mastercard:before,.select2-results__options li.wc-stripe-select2-container.mastercard:before{background-image:url(../img/cards/mastercard.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.dinersclub:before,.select2-results__options li.wc-stripe-select2-container.dinersclub:before{background-image:url(../img/cards/diners.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.diners:before,.select2-results__options li.wc-stripe-select2-container.diners:before{background-image:url(../img/cards/diners.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.jcb:before,.select2-results__options li.wc-stripe-select2-container.jcb:before{background-image:url(../img/cards/jcb.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.stripe_sepa:before,.select2-results__options li.wc-stripe-select2-container.stripe_sepa:before{background-image:url(../img/sepa.svg)}.select2-results__options li.wc-stripe-select2-container.wc-stripe-ach:before{display:none}#wc-stripe-card-element{margin-bottom:1em}.wc-stripe_cc-new-method-container .wc-stripe-save-source{display:flex;align-items:center;justify-content:flex-start}.wc-stripe_cc-container .wc-stripe-save-source .save-source-label{display:block;padding:0;margin:0 0 0 5px}.wc-stripe_cc-container .wc-stripe-save-source input[type=checkbox][name=stripe_cc_save_source_key]{opacity:0;position:absolute;width:20px;height:20px}.wc-stripe_cc-container .wc-stripe-save-source label.checkbox{position:relative}.wc-stripe_cc-container .save-source-checkbox{height:20px;width:20px;position:relative;background-color:#fff;display:block;border-radius:3px;border:1px solid #bababa}.wc-stripe_cc-container .save-source-checkbox:after{content:"";position:absolute;top:0;left:0}.wc-stripe_cc-container .wc-stripe-save-source input[type=checkbox]:checked+.save-source-checkbox:after{left:6px;top:2px;width:7px;height:12px;border:solid #2196f3;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}li.payment_method_stripe_applepay,li.payment_method_stripe_googlepay,li.payment_method_stripe_payment_request{display:none}#payment #place_order.wc-stripe-hide,#place_order.wc-stripe-hide,.woocommerce-checkout-review-order #payment #place_order.wc-stripe-hide{position:absolute!important;z-index:-1000!important;height:0!important;padding:0!important;opacity:0!important}.wc-stripe-product-checkout-container{display:none;width:100%}.wc-stripe-product-checkout-container.bottom{margin-top:1em}.wc-stripe-product-checkout-container.top{margin-bottom:1em}.wc-stripe-product-checkout-container.active{display:block}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods,.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods{list-style:none;margin:0;padding:0}.wc-stripe-cart-checkout-container{margin:0;padding:0;clear:both}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods{margin-bottom:1.5em}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods li[class*=payment_method_stripe_],.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_]{margin:0 0 1em 0;list-style:none}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods li[class*=payment_method_stripe_]:last-child,.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_]:last-child{margin:0}.wc_stripe_cart_payment_methods .gpay-button,.wc_stripe_cart_payment_methods .gpay-card-info-container,.wc_stripe_product_payment_methods .gpay-button,.wc_stripe_product_payment_methods .gpay-card-info-container{width:100%!important;min-width:100%;margin:0}.wc_stripe_product_payment_methods .disabled{opacity:.45}.stripe_cart_gateway_active .checkout-button,.woocommerce-cart .stripe_cart_gateway_active .wc-proceed-to-checkout .checkout-button{margin-bottom:0}.wc-stripe-cart-or{margin:1em 0;text-align:center}li.wc-stripe-payment-method.or{display:none}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or{display:block;margin:15px 0}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or p{margin:0}li[class*=payment_method_stripe_].active~li.wc-stripe-payment-method.or{display:block;margin:0}li.payment_method_stripe_applepay label:first-of-type img{width:49px;max-height:32px}li.payment_method_stripe_googlepay label:first-of-type img{width:48px;max-height:35px}li.payment_method_stripe_googlepay label:first-of-type img[src*=googlepay_standard],li.payment_method_stripe_payment_request label:first-of-type img[src*=googlepay_standard]{width:60px;max-height:35px}li.payment_method_stripe_googlepay label:first-of-type img[src*=googlepay_round_outline],li.payment_method_stripe_payment_request label:first-of-type img[src*=googlepay_round_outline]{width:56px;max-height:30px}li.payment_method_stripe_ach label:first-of-type img{width:32px;height:32px;min-width:32px;min-height:32px}.gpay-button-container .gpay-button:hover,.wc-stripe-checkout-banner-gateway .gpay-button:hover{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}.gpay-button:active{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}.gpay-button:focus{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}@supports (-webkit-appearance:-apple-pay-button){.apple-pay-button{display:block;-webkit-appearance:-apple-pay-button!important;width:100%;max-width:100%;min-width:200px;height:40px;max-height:40px}.apple-pay-button-black{-apple-pay-button-style:#000}.apple-pay-button-white{-apple-pay-button-style:#fff}.apple-pay-button-white-with-line{-apple-pay-button-style:white-outline}.woocommerce-checkout-payment .apple-pay-button{max-width:240px}body.single-product div.product form.cart .wc_stripe_product_payment_methods .apple-pay-button{max-width:100%}}.wc-stripe-banner-checkout{display:none;padding:0;position:relative;margin:1em 0}.wc-stripe-banner-checkout fieldset{padding:15px 25px 15px;border:1px solid #d1d1d1;margin-bottom:20px;border-radius:3px}.wc-stripe-banner-checkout fieldset legend{margin:0 auto;font-weight:500;padding:0 1rem}.wc-stripe-banner-checkout.active{display:block}.wc-stripe-banner-checkout span.banner-divider{display:flex;align-items:center;top:-13px;right:0;left:0;background:0 0;white-space:nowrap;font-size:16px}.wc-stripe-banner-checkout span.banner-divider:after,.wc-stripe-banner-checkout span.banner-divider:before{content:' ';height:1px;background:#d1d1d1;display:block;width:50%}.wc-stripe-banner-checkout span.banner-divider:before{margin-right:1rem}.wc-stripe-banner-checkout span.banner-divider:after{margin-left:1rem}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways{list-style:none;margin:0;padding:0}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway{margin:0 auto;display:none;max-width:240px}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway.active:nth-child(n+2){margin:10px auto 0 auto}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway:first-child:not(.active)+li.wc-stripe-checkout-banner-gateway.active{margin:0 auto}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway .gpay-button,.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway .gpay-card-info-container{margin:0}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways .gpay-button,.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways .gpay-card-info-container{width:100%}.wc_stripe_cart_payment_methods .payment_method_stripe_payment_request .StripeElement,.wc_stripe_product_payment_methods .payment_method_stripe_payment_request .StripeElement{padding:0;width:100%}.woocommerce-checkout #wc-stripe-payment-request-container.StripeElement{width:240px;padding:0}.wc-stripe-checkout-banner-gateway #wc-stripe-payment-request-banner.StripeElement{width:100%}ul.payment_methods li.payment_method_stripe_p24 img{max-width:90px;width:90px;max-height:45px}ul.payment_methods li.payment_method_stripe_ideal img{max-width:38px;width:38px;max-height:35px}ul.payment_methods li.payment_method_stripe_fpx img{max-width:75px;width:75px;max-height:25px}ul.payment_methods li.payment_method_stripe_klarna img{max-width:72px;width:72px;max-height:20px}ul.payment_methods li.payment_method_stripe_klarna img[src*=klarna_pink]{width:56px;height:32px;max-height:32px}ul.payment_methods li.payment_method_stripe_giropay img{max-width:65px;width:65px;max-height:28px}ul.payment_methods li.payment_method_stripe_eps img{max-width:70px;width:70px;max-height:46px}ul.payment_methods li.payment_method_stripe_multibanco img{max-width:48px;width:48px;max-height:48px}ul.payment_methods li.payment_method_stripe_sepa img{max-width:67px;width:67px;max-height:18px}ul.payment_methods li.payment_method_stripe_sofort img{max-width:70px;width:70px;max-height:21px}label[for=payment_method_stripe_bancontact] img,ul.payment_methods li.payment_method_stripe_bancontact img{width:60px;height:42px;max-width:60px;max-height:42px}ul.payment_methods li.payment_method_stripe_wechat label img{max-width:82px;width:82px;max-height:23px}ul.payment_methods li.payment_method_stripe_alipay img{max-width:72px;width:72px;height:36px;max-height:36px}ul.payment_methods li.payment_method_stripe_grabpay img{max-width:95px;width:95px;max-height:28px}ul.payment_methods li.payment_method_stripe_oxxo img{max-width:52px;width:52px;max-height:24px}#wc-stripe-card-element{width:100%}li.banner_payment_method_stripe_payment_request .StripeElement{padding:0}.single-product .blockMsg{border:none!important;background-color:transparent!important}#wc-stripe-card{position:absolute!important;top:50%;right:8px;transform:translatey(-50%);width:23px;height:15px;padding:0;border:none}#wc-stripe-card.active{width:32px;height:20px}input[id=stripe-postal-code]:focus{outline:0;background:0 0;border:none;box-shadow:none}div.postalCode:focus{outline:0;border:none}li[class*=payment_method_stripe] .select2-container .select2-selection--single{height:42px;padding:0 5px}li[class*=payment_method_stripe] .select2-container--default .select2-selection--single .select2-selection__arrow{height:42px;top:1px;right:1px;transform:translateY(0)}.blockUI.blockMsg{font-size:20px;white-space:nowrap}#wc-stripe-payment-request-container.disabled{opacity:.45}.wc-stripe-paymentRequest-icons-container img{float:none}.select2-container .select2-selection--single .wc-stripe-select2-container.wc-stripe-ach:before{display:none}ul.wc_stripe_cart_payment_methods li.wc-stripe-payment-method button,ul.wc_stripe_checkout_banner_gateways li button,ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_] button{margin:0}ul.payment_methods li[class*=payment_method]{margin:0;padding:10px 0}ul.payment_methods li[class*=payment_method] input[name=payment_method]{margin:0 10px 0 5px;float:none}ul.payment_methods li[class*=payment_method]>input[name=payment_method]+label{padding-top:0;padding-right:0;padding-bottom:0}ul.payment_methods{list-style:none}ul.payment_methods li[class*=payment_method_stripe_] .wc-stripe_cc-new-method-container label:before{display:none}.wc-stripe_cc-container .wc-stripe-save-source label.checkbox{padding:0!important;margin:0}div[id*=wc_stripe_local_payment_stripe_].StripeElement{border:1px solid #eee;border-radius:4px}#payment .payment_methods li #wc_stripe_local_payment_stripe_wechat img,#wc_stripe_local_payment_stripe_wechat img{max-height:100%;float:none}.qrcode-message{margin:10px 0 0 0}#wc_stripe_local_payment_stripe_becs,#wc_stripe_local_payment_stripe_sepa{padding:10px 12px;box-shadow:0 1px 3px 0 #e6ebf1}.wc-stripe-local-desc.stripe_becs,.wc-stripe-local-desc.stripe_sepa{margin:10px 0}.wc-stripe-clear{clear:both;height:0;visibility:hidden}.wc-stripe-gateway-desc p{margin:0}#wc_stripe_local_payment_stripe_klarna,li[class*=payment_method_stripe_] div.wc-stripe-gateway-container.has_tokens{margin-top:10px}.wc-stripe-gateway-desc{margin-top:10px}#wc-stripe-card-element.StripeElement--webkit-autofill{background-color:transparent!important}#wc_stripe_local_payment_stripe_klarna .stripe-klarna-categories{list-style:none;margin:0;padding:10px}li.payment_method_stripe_alipay,li.payment_method_stripe_bancontact,li.payment_method_stripe_becs,li.payment_method_stripe_eps,li.payment_method_stripe_fpx,li.payment_method_stripe_giropay,li.payment_method_stripe_ideal,li.payment_method_stripe_klarna,li.payment_method_stripe_multibanco,li.payment_method_stripe_p24,li.payment_method_stripe_sepa,li.payment_method_stripe_sofort,li.payment_method_stripe_wechat{display:none}.widget_shopping_cart_content .wc-stripe-mini-cart-payment-methods{list-style:none;margin:0;padding:0}.widget_shopping_cart_content .wc-stripe-mini-cart-payment-methods li{margin:0}.widget_shopping_cart_content a.wc-stripe-applepay-mini-cart,.widget_shopping_cart_content a.wc-stripe-gpay-mini-cart,.widget_shopping_cart_content a.wc-stripe-payment-request-mini-cart{background:0 0;padding:0;border:none}a.wc-stripe-gpay-mini-cart .gpay-button,a.wc-stripe-gpay-mini-cart .gpay-card-info-container a.wc-stripe-applepay-mini-cart .apple-pay-button{width:100%;margin:0}.wc-stripe-payment-request-mini-cart.StripeElement{padding:0;background:0 0;border:none;width:100%}.wc-stripe-payment-request-mini-cart.StripeElement .__PrivateStripeElement{width:100%}.widget_shopping_cart_content .wc-stripe-overlay{display:none!important;position:absolute;background:rgba(255,255,255,.75);height:100%;width:100%;z-index:-1}.widget_shopping_cart_content .wc-stripe-overlay.active{display:block!important;z-index:9999}.wc-stripe-klarna-loader{display:flex;justify-content:center;position:relative;width:100%;height:30px;box-sizing:border-box;transform:scale(.65)}.wc-stripe-klarna-loader div{box-sizing:border-box;display:block;position:absolute;box-sizing:border-box;width:30px;height:30px;border:3px solid #000;border-radius:50%;animation:klarna-payments-loader 1.3s cubic-bezier(.5,0,.5,1) infinite;border-color:#000 transparent transparent transparent}.wc-stripe-klarna-loader div:nth-child(1){animation-delay:-.45s}.wc-stripe-klarna-loader div:nth-child(2){animation-delay:-.3s}.wc-stripe-klarna-loader div:nth-child(3){animation-delay:-.15s}@keyframes klarna-payments-loader{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}li.payment_method_stripe_alipay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_applepay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_bancontact.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_eps.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_giropay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_googlepay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_grabpay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_multibanco.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_oxxo.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_p24.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_payment_request.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_sofort.wc-stripe-no-desc .payment_box.wc-stripe-no-methods{padding:0;margin:0}.wc-stripe-shortcode-cart-buttons .wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or{display:none}label[for=payment_method_stripe_afterpay]>#wc-stripe-afterpay-msg{display:inline-block}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg .__PrivateStripeElement p,#wc-stripe-afterpay-product-msg .__PrivateStripeElement p,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .__PrivateStripeElement p{margin-bottom:0!important;margin-top:0!important}#wc-stripe-afterpay-cart-msg .__PrivateStripeElement p .AfterpayMessage-logo,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .__PrivateStripeElement p .AfterpayMessage-logo{vertical-align:middle}.payment_method_stripe_afterpay #wc_stripe_local_payment_stripe_afterpay.ineligible{display:none}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite{text-align:center;max-width:320px;margin:0 auto;padding:10px 0}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite img{display:inline-block}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite p{font-size:14px;margin-top:10px}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg{text-align:left}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg .AfterpayMessage-logoSvg,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .AfterpayMessage-logoSvg{min-width:64px;max-width:90px}#wc-stripe-afterpay-cart-container td{border:none}#wc-stripe-afterpay-cart-container td::before{content:''}.AfterpayMessage-logoSvg{display:inline-block}#wc-stripe-afterpay-product-msg{font-size:14px}#wc-stripe-afterpay-product-msg .AfterpayMessage-logoSvg{max-width:80px;min-width:64px}.wc-stripe-afterpay-minicart-msg{font-size:.8em}.afterpay-ineligible,.payment_method_stripe_afterpay.afterpay-ineligible{display:none}.woocommerce-mini-cart__buttons .gpay-card-info-container{min-width:100%}.woocommerce-mini-cart__buttons .gpay-card-info-container{margin:0}.wc-stripe-boleto__description{margin-top:10px}.wc-stripe-boleto__description div{display:flex;align-items:center}.wc-stripe-boleto__description div label{margin:0}.wc-stripe-klarna__testmode{margin-top:10px}.wc-stripe-klarna__testmode label{display:inline-block}div.payment_method_stripe_cc>.woocommerce-NoticeGroup{margin-bottom:10px}div.payment_method_stripe_cc.custom-form__bootstrap>.woocommerce-NoticeGroup{margin-bottom:20px}
1
+ .wc-stripe-card-icons-container,.wc-stripe-paymentRequest-icons-container{float:right;display:inline-block}ul.payment_methods li[class*=payment_method]{margin:0;padding:0}li[class*=payment_method] input[type=radio]{margin:0 10px 0 5px}li[class*=payment_method] input[type=radio]+label:not(.wc-stripe-label-payment-type){margin:0}.woocommerce-checkout #payment ul.payment_methods li[class*=payment_method_stripe_]:nth-child(n+2),ul.payment_methods li[class*=payment_method_stripe_]:nth-child(n+2){margin:0}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon{max-width:43px;max-height:26px;width:43px;height:26px;float:none;display:inline}li.payment_method_stripe_payment_request .wc-stripe-paymentRequest-icons-container img:not(.gpay){width:25px;height:25px;max-width:25px;max-height:25px}ul.payment_methods label[for*=payment_method_stripe]:after{clear:right;content:"";display:block}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon:nth-child(2n+2){margin:0 2px}li.payment_method_stripe_cc .wc-stripe-card-icons-container img.wc-stripe-card-icon.open.visa{padding-top:2px}ul.payment_methods li[class*=payment_method_stripe_] label>img:first-of-type{float:right!important}.wc-stripe_cc-new-method-container{margin-bottom:1em}.wc-stripe_cc-container .StripeElement{box-sizing:border-box;height:40px;padding:10px 12px;border-radius:4px;background-color:#fff;-webkit-transition:box-shadow 150ms ease;transition:box-shadow 150ms ease}input.wc-stripe-klarna-category,input.wc-stripe-payment-type{display:none!important}body .wfacp_main_form.woocommerce .wc-stripe-save-source label.checkbox{padding:0!important}input[type=radio]+label.wc-stripe-label-payment-type,label.wc-stripe-label-klarna-category,label.wc-stripe-label-payment-type{margin-bottom:1em;display:block;padding:0!important;color:#000}.theme-flatsome div.wc-stripe-saved-methods-container{margin:0 0 1em 0}label.wc-stripe-label-klarna-category:before,label.wc-stripe-label-payment-type:before{content:"";display:inline-block;width:11px;height:11px;border:2px solid #fff;box-shadow:0 0 0 2px #000;background:#fff;margin-left:4px;margin-right:.5em;border-radius:100%;-webkit-transform:translateY(2px);-ms-transform:translateY(2px);transform:translateY(2px)}input.wc-stripe-klarna-category:checked+label.wc-stripe-label-klarna-category:before,input.wc-stripe-payment-type:checked+label.wc-stripe-label-payment-type:before{background:#000}label.wc-stripe-label-payment-type:after{content:none!important;display:none!important}.wc-stripe-saved-methods-container .select2-container .select2-selection--single .select2-selection__rendered{padding-left:8px}.select2-results__options li.wc-stripe-select2-container,.wc-stripe-saved-methods-container .select2-container .select2-selection--single .wc-stripe-select2-container{display:flex;align-items:center;height:42px;line-height:42px!important}.select2-container .select2-selection--single .wc-stripe-select2-container:before,.select2-results__options li.wc-stripe-select2-container:before{content:'';background-repeat:no-repeat;background-size:40px 24px;width:40px;height:42px;display:inline-block;margin-right:8px;background-position:center}.select2-container .select2-selection--single .wc-stripe-select2-container.visa:before,.select2-results__options li.wc-stripe-select2-container.visa:before{background-image:url(../img/cards/visa.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.mastercard:before,.select2-results__options li.wc-stripe-select2-container.mastercard:before{background-image:url(../img/cards/mastercard.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.americanexpress:before,.select2-results__options li.wc-stripe-select2-container.americanexpress:before{background-image:url(../img/cards/amex.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.amex:before,.select2-results__options li.wc-stripe-select2-container.amex:before{background-image:url(../img/cards/amex.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.discover:before,.select2-results__options li.wc-stripe-select2-container.discover:before{background-image:url(../img/cards/discover.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.mastercard:before,.select2-results__options li.wc-stripe-select2-container.mastercard:before{background-image:url(../img/cards/mastercard.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.dinersclub:before,.select2-results__options li.wc-stripe-select2-container.dinersclub:before{background-image:url(../img/cards/diners.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.diners:before,.select2-results__options li.wc-stripe-select2-container.diners:before{background-image:url(../img/cards/diners.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.jcb:before,.select2-results__options li.wc-stripe-select2-container.jcb:before{background-image:url(../img/cards/jcb.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.stripe_sepa:before,.select2-results__options li.wc-stripe-select2-container.stripe_sepa:before{background-image:url(../img/sepa.svg)}.select2-container .select2-selection--single .wc-stripe-select2-container.stripe_becs:before,.select2-results__options li.wc-stripe-select2-container.stripe_becs:before,.select2-results__options li.wc-stripe-select2-container.wc-stripe-ach:before{display:none}#wc-stripe-card-element{margin-bottom:1em}.wc-stripe_cc-new-method-container .wc-stripe-save-source{display:flex;align-items:center;justify-content:flex-start}.wc-stripe_cc-container .wc-stripe-save-source .save-source-label{display:block;padding:0;margin:0 0 0 5px}.wc-stripe_cc-container .wc-stripe-save-source input[type=checkbox][name=stripe_cc_save_source_key]{opacity:0;position:absolute;width:20px;height:20px}.wc-stripe_cc-container .wc-stripe-save-source label.checkbox{position:relative}.wc-stripe_cc-container .save-source-checkbox{height:20px;width:20px;position:relative;background-color:#fff;display:block;border-radius:3px;border:1px solid #bababa}.wc-stripe_cc-container .save-source-checkbox:after{content:"";position:absolute;top:0;left:0}.wc-stripe_cc-container .wc-stripe-save-source input[type=checkbox]:checked+.save-source-checkbox:after{left:6px;top:2px;width:7px;height:12px;border:solid #2196f3;border-width:0 3px 3px 0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}li.payment_method_stripe_applepay,li.payment_method_stripe_googlepay,li.payment_method_stripe_payment_request{display:none}#payment #place_order.wc-stripe-hide,#place_order.wc-stripe-hide,.woocommerce-checkout-review-order #payment #place_order.wc-stripe-hide{position:absolute!important;z-index:-1000!important;height:0!important;padding:0!important;opacity:0!important}.wc-stripe-product-checkout-container{display:none;width:100%}.wc-stripe-product-checkout-container.bottom{margin-top:1em}.wc-stripe-product-checkout-container.top{margin-bottom:1em}.wc-stripe-product-checkout-container.active{display:block}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods,.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods{list-style:none;margin:0;padding:0}.wc-stripe-cart-checkout-container{margin:0;padding:0;clear:both}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods{margin-bottom:1.5em}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods li[class*=payment_method_stripe_],.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_]{margin:0 0 1em 0;list-style:none}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods li[class*=payment_method_stripe_]:last-child,.wc-stripe-product-checkout-container ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_]:last-child{margin:0}.wc_stripe_cart_payment_methods .gpay-button,.wc_stripe_cart_payment_methods .gpay-card-info-container,.wc_stripe_product_payment_methods .gpay-button,.wc_stripe_product_payment_methods .gpay-card-info-container{width:100%!important;min-width:100%;margin:0}.wc_stripe_product_payment_methods .disabled{opacity:.45}.stripe_cart_gateway_active .checkout-button,.woocommerce-cart .stripe_cart_gateway_active .wc-proceed-to-checkout .checkout-button{margin-bottom:0}.wc-stripe-cart-or{margin:1em 0;text-align:center}li.wc-stripe-payment-method.or{display:none}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or{display:block;margin:15px 0}.wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or p{margin:0}li[class*=payment_method_stripe_].active~li.wc-stripe-payment-method.or{display:block;margin:0}li.payment_method_stripe_applepay label:first-of-type img{width:49px;max-height:32px}li.payment_method_stripe_googlepay label:first-of-type img{width:48px;max-height:35px}li.payment_method_stripe_googlepay label:first-of-type img[src*=googlepay_standard],li.payment_method_stripe_payment_request label:first-of-type img[src*=googlepay_standard]{width:60px;max-height:35px}li.payment_method_stripe_googlepay label:first-of-type img[src*=googlepay_round_outline],li.payment_method_stripe_payment_request label:first-of-type img[src*=googlepay_round_outline]{width:56px;max-height:30px}li.payment_method_stripe_ach label:first-of-type img{width:32px;height:32px;min-width:32px;min-height:32px}.gpay-button-container .gpay-button:hover,.wc-stripe-checkout-banner-gateway .gpay-button:hover{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}.gpay-button:active{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}.gpay-button:focus{background-origin:content-box;background-position:center center;background-repeat:no-repeat;background-size:contain}@supports (-webkit-appearance:-apple-pay-button){.apple-pay-button{display:block;-webkit-appearance:-apple-pay-button!important;width:100%;max-width:100%;min-width:200px;height:40px;max-height:40px}.apple-pay-button-black{-apple-pay-button-style:#000}.apple-pay-button-white{-apple-pay-button-style:#fff}.apple-pay-button-white-with-line{-apple-pay-button-style:white-outline}.woocommerce-checkout-payment .apple-pay-button{max-width:240px}body.single-product div.product form.cart .wc_stripe_product_payment_methods .apple-pay-button{max-width:100%}}.wc-stripe-banner-checkout{display:none;padding:0;position:relative;margin:1em 0}.wc-stripe-banner-checkout fieldset{padding:15px 25px 15px;border:1px solid #d1d1d1;margin-bottom:20px;border-radius:3px}.wc-stripe-banner-checkout fieldset legend{margin:0 auto;font-weight:500;padding:0 1rem}.wc-stripe-banner-checkout.active{display:block}.wc-stripe-banner-checkout span.banner-divider{display:flex;align-items:center;top:-13px;right:0;left:0;background:0 0;white-space:nowrap;font-size:16px}.wc-stripe-banner-checkout span.banner-divider:after,.wc-stripe-banner-checkout span.banner-divider:before{content:' ';height:1px;background:#d1d1d1;display:block;width:50%}.wc-stripe-banner-checkout span.banner-divider:before{margin-right:1rem}.wc-stripe-banner-checkout span.banner-divider:after{margin-left:1rem}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways{list-style:none;margin:0;padding:0}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway{margin:0 auto;display:none;max-width:240px}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway.active:nth-child(n+2){margin:10px auto 0 auto}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway:first-child:not(.active)+li.wc-stripe-checkout-banner-gateway.active{margin:0 auto}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway .gpay-button,.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways li.wc-stripe-checkout-banner-gateway .gpay-card-info-container{margin:0}.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways .gpay-button,.wc-stripe-banner-checkout ul.wc_stripe_checkout_banner_gateways .gpay-card-info-container{width:100%}.wc_stripe_cart_payment_methods .payment_method_stripe_payment_request .StripeElement,.wc_stripe_product_payment_methods .payment_method_stripe_payment_request .StripeElement{padding:0;width:100%}.woocommerce-checkout #wc-stripe-payment-request-container.StripeElement{width:240px;padding:0}.wc-stripe-checkout-banner-gateway #wc-stripe-payment-request-banner.StripeElement{width:100%}ul.payment_methods li.payment_method_stripe_p24 img{max-width:90px;width:90px;max-height:45px}ul.payment_methods li.payment_method_stripe_ideal img{max-width:38px;width:38px;max-height:35px}ul.payment_methods li.payment_method_stripe_fpx img{max-width:75px;width:75px;max-height:25px}ul.payment_methods li.payment_method_stripe_klarna img{max-width:72px;width:72px;max-height:20px}ul.payment_methods li.payment_method_stripe_klarna img[src*=klarna_pink]{width:56px;height:32px;max-height:32px}ul.payment_methods li.payment_method_stripe_giropay img{max-width:65px;width:65px;max-height:28px}ul.payment_methods li.payment_method_stripe_eps img{max-width:70px;width:70px;max-height:46px}ul.payment_methods li.payment_method_stripe_multibanco img{max-width:48px;width:48px;max-height:48px}ul.payment_methods li.payment_method_stripe_sepa img{max-width:67px;width:67px;max-height:18px}ul.payment_methods li.payment_method_stripe_sofort img{max-width:70px;width:70px;max-height:21px}label[for=payment_method_stripe_bancontact] img,ul.payment_methods li.payment_method_stripe_bancontact img{width:60px;height:42px;max-width:60px;max-height:42px}ul.payment_methods li.payment_method_stripe_wechat label img{max-width:82px;width:82px;max-height:23px}ul.payment_methods li.payment_method_stripe_alipay img{max-width:72px;width:72px;height:36px;max-height:36px}ul.payment_methods li.payment_method_stripe_grabpay img{max-width:95px;width:95px;max-height:28px}ul.payment_methods li.payment_method_stripe_oxxo img{max-width:52px;width:52px;max-height:24px}#wc-stripe-card-element{width:100%}li.banner_payment_method_stripe_payment_request .StripeElement{padding:0}.single-product .blockMsg{border:none!important;background-color:transparent!important}#wc-stripe-card{position:absolute!important;top:50%;right:8px;transform:translatey(-50%);width:23px;height:15px;padding:0;border:none}#wc-stripe-card.active{width:32px;height:20px}input[id=stripe-postal-code]:focus{outline:0;background:0 0;border:none;box-shadow:none}div.postalCode:focus{outline:0;border:none}li[class*=payment_method_stripe] .select2-container .select2-selection--single{height:42px;padding:0 5px}li[class*=payment_method_stripe] .select2-container--default .select2-selection--single .select2-selection__arrow{height:42px;top:1px;right:1px;transform:translateY(0)}.blockUI.blockMsg{font-size:20px;white-space:nowrap}#wc-stripe-payment-request-container.disabled{opacity:.45}.wc-stripe-paymentRequest-icons-container img{float:none}.select2-container .select2-selection--single .wc-stripe-select2-container.wc-stripe-ach:before{display:none}ul.wc_stripe_cart_payment_methods li.wc-stripe-payment-method button,ul.wc_stripe_checkout_banner_gateways li button,ul.wc_stripe_product_payment_methods li[class*=payment_method_stripe_] button{margin:0}ul.payment_methods li[class*=payment_method]{margin:0;padding:10px 0}ul.payment_methods li[class*=payment_method] input[name=payment_method]{margin:0 10px 0 5px;float:none}ul.payment_methods li[class*=payment_method]>input[name=payment_method]+label{padding-top:0;padding-right:0;padding-bottom:0}ul.payment_methods{list-style:none}ul.payment_methods li[class*=payment_method_stripe_] .wc-stripe_cc-new-method-container label:before{display:none}.wc-stripe_cc-container .wc-stripe-save-source label.checkbox{padding:0!important;margin:0}div[id*=wc_stripe_local_payment_stripe_].StripeElement{border:1px solid #eee;border-radius:4px}#payment .payment_methods li #wc_stripe_local_payment_stripe_wechat img,#wc_stripe_local_payment_stripe_wechat img{max-height:100%;float:none}.qrcode-message{margin:10px 0 0 0}#wc_stripe_local_payment_stripe_becs,#wc_stripe_local_payment_stripe_sepa{padding:10px 12px;box-shadow:0 1px 3px 0 #e6ebf1}.wc-stripe-local-desc.stripe_becs,.wc-stripe-local-desc.stripe_sepa{margin:10px 0}.wc-stripe-clear{clear:both;height:0;visibility:hidden}.wc-stripe-gateway-desc p{margin:0}#wc_stripe_local_payment_stripe_klarna,li[class*=payment_method_stripe_] div.wc-stripe-gateway-container.has_tokens{margin-top:10px}.wc-stripe-gateway-desc{margin-top:10px}#wc-stripe-card-element.StripeElement--webkit-autofill{background-color:transparent!important}#wc_stripe_local_payment_stripe_klarna .stripe-klarna-categories{list-style:none;margin:0;padding:10px}li.payment_method_stripe_alipay,li.payment_method_stripe_bancontact,li.payment_method_stripe_becs,li.payment_method_stripe_eps,li.payment_method_stripe_fpx,li.payment_method_stripe_giropay,li.payment_method_stripe_ideal,li.payment_method_stripe_klarna,li.payment_method_stripe_multibanco,li.payment_method_stripe_p24,li.payment_method_stripe_sepa,li.payment_method_stripe_sofort,li.payment_method_stripe_wechat{display:none}.widget_shopping_cart_content .wc-stripe-mini-cart-payment-methods{list-style:none;margin:0;padding:0}.widget_shopping_cart_content .wc-stripe-mini-cart-payment-methods li{margin:0}.widget_shopping_cart_content a.wc-stripe-applepay-mini-cart,.widget_shopping_cart_content a.wc-stripe-gpay-mini-cart,.widget_shopping_cart_content a.wc-stripe-payment-request-mini-cart{background:0 0;padding:0;border:none}a.wc-stripe-gpay-mini-cart .gpay-button,a.wc-stripe-gpay-mini-cart .gpay-card-info-container a.wc-stripe-applepay-mini-cart .apple-pay-button{width:100%;margin:0}.wc-stripe-payment-request-mini-cart.StripeElement{padding:0;background:0 0;border:none;width:100%}.wc-stripe-payment-request-mini-cart.StripeElement .__PrivateStripeElement{width:100%}.wc-stripe-minicart-overlay{display:none!important;position:absolute;background:rgba(255,255,255,.75);height:100%;width:100%;z-index:-1;top:0;left:0}.wc-stripe-minicart-overlay.active{display:block!important;z-index:9999}.wc-stripe-klarna-loader{display:flex;justify-content:center;position:relative;width:100%;height:30px;box-sizing:border-box;transform:scale(.65)}.wc-stripe-klarna-loader div{box-sizing:border-box;display:block;position:absolute;box-sizing:border-box;width:30px;height:30px;border:3px solid #000;border-radius:50%;animation:klarna-payments-loader 1.3s cubic-bezier(.5,0,.5,1) infinite;border-color:#000 transparent transparent transparent}.wc-stripe-klarna-loader div:nth-child(1){animation-delay:-.45s}.wc-stripe-klarna-loader div:nth-child(2){animation-delay:-.3s}.wc-stripe-klarna-loader div:nth-child(3){animation-delay:-.15s}@keyframes klarna-payments-loader{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}li.payment_method_stripe_alipay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_applepay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_bancontact.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_eps.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_giropay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_googlepay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_grabpay.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_multibanco.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_oxxo.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_p24.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_payment_request.wc-stripe-no-desc .payment_box.wc-stripe-no-methods,li.payment_method_stripe_sofort.wc-stripe-no-desc .payment_box.wc-stripe-no-methods{padding:0;margin:0}.wc-stripe-shortcode-cart-buttons .wc-stripe-cart-checkout-container ul.wc_stripe_cart_payment_methods.active li.wc-stripe-payment-method.or{display:none}label[for=payment_method_stripe_afterpay]>#wc-stripe-afterpay-msg{display:inline-block}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg .__PrivateStripeElement p,#wc-stripe-afterpay-product-msg .__PrivateStripeElement p,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .__PrivateStripeElement p{margin-bottom:0!important;margin-top:0!important}#wc-stripe-afterpay-cart-msg .__PrivateStripeElement p .AfterpayMessage-logo,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .__PrivateStripeElement p .AfterpayMessage-logo{vertical-align:middle}.payment_method_stripe_afterpay #wc_stripe_local_payment_stripe_afterpay.ineligible{display:none}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite{text-align:center;max-width:320px;margin:0 auto;padding:10px 0}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite img{display:inline-block}.payment_method_stripe_afterpay .wc-stripe-afterpay__offsite p{font-size:14px;margin-top:10px}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg{text-align:left}#wc-stripe-afterpay-cart-container #wc-stripe-afterpay-cart-msg .AfterpayMessage-logoSvg,.payment_method_stripe_afterpay #wc-stripe-afterpay-msg .AfterpayMessage-logoSvg{min-width:64px;max-width:90px}#wc-stripe-afterpay-cart-container td{border:none}#wc-stripe-afterpay-cart-container td::before{content:''}.AfterpayMessage-logoSvg{display:inline-block}#wc-stripe-afterpay-product-msg{font-size:14px}#wc-stripe-afterpay-product-msg .AfterpayMessage-logoSvg{max-width:80px;min-width:64px}.wc-stripe-afterpay-minicart-msg{font-size:.8em}.afterpay-ineligible,.payment_method_stripe_afterpay.afterpay-ineligible{display:none}.woocommerce-mini-cart__buttons .gpay-card-info-container{min-width:100%}.woocommerce-mini-cart__buttons .gpay-card-info-container{margin:0}.wc-stripe-boleto__description{margin-top:10px}.wc-stripe-boleto__description div{display:flex;align-items:center}.wc-stripe-boleto__description div label{margin:0}.wc-stripe-klarna__testmode{margin-top:10px}.wc-stripe-klarna__testmode label{display:inline-block}div.payment_method_stripe_cc>.woocommerce-NoticeGroup{margin-bottom:10px}div.payment_method_stripe_cc.custom-form__bootstrap>.woocommerce-NoticeGroup{margin-bottom:20px}
assets/js/frontend/ach-payments.js CHANGED
@@ -30,7 +30,7 @@
30
  this.set_metadata(metadata);
31
  this.fields.toFormFields();
32
  $('#place_order').text($('#place_order').data('value'));
33
- this.get_form().submit();
34
  }.bind(this),
35
  onExit: function (err, metadata) {
36
  if (err != null) {
30
  this.set_metadata(metadata);
31
  this.fields.toFormFields();
32
  $('#place_order').text($('#place_order').data('value'));
33
+ this.get_form().trigger('submit');
34
  }.bind(this),
35
  onExit: function (err, metadata) {
36
  if (err != null) {
assets/js/frontend/ach-payments.min.js CHANGED
@@ -1 +1 @@
1
- !function(i,t){function e(){t.BaseGateway.call(this,wc_stripe_ach_params),t.CheckoutGateway.call(this),i(document.body).on("payment_method_selected",this.payment_method_selected.bind(this))}(e.prototype=i.extend({},t.BaseGateway.prototype,t.CheckoutGateway.prototype)).initialize=function(){i(document.body).on("click","#place_order",this.place_order.bind(this)),this.init_plaid()},e.prototype.init_plaid=function(){this.fetch_link_token().then(function(t){this.linkHandler=Plaid.create({clientName:this.params.client_name,env:this.params.env,product:["auth"],token:t,selectAccount:!0,countryCodes:["US"],onSuccess:function(t,e){this.payment_token_received=!0,this.set_nonce(t),this.set_metadata(e),this.fields.toFormFields(),i("#place_order").text(i("#place_order").data("value")),this.get_form().submit()}.bind(this),onExit:function(t,e){null!=t&&this.submit_error(t.error_message)}.bind(this)})}.bind(this))},e.prototype.place_order=function(t){this.is_gateway_selected()&&(this.payment_token_received||this.is_saved_method_selected()||(t.preventDefault(),this.linkHandler.open()))},e.prototype.hide_place_order=function(){},e.prototype.show_payment_button=function(){t.CheckoutGateway.prototype.show_place_order.apply(this,arguments)},e.prototype.set_metadata=function(t){this.fields.set(this.gateway_id+"_metadata",JSON.stringify(t))},e.prototype.fees_enabled=function(){return"1"==this.params.fees_enabled},e.prototype.payment_method_selected=function(){this.fees_enabled()&&i(document.body).trigger("update_checkout")},e.prototype.fetch_link_token=function(){return new Promise(function(e){i.post({url:this.params.routes.link_token,dataType:"json",data:{_wpnonce:this.params.rest_nonce}}).done(function(t){e(t.token)}.bind(this)).fail(function(t,e,n){i(this.container).hide(),console.log(n)}.bind(this))}.bind(this))},new e}(jQuery,window.wc_stripe);
1
+ !function(i,t){function e(){t.BaseGateway.call(this,wc_stripe_ach_params),t.CheckoutGateway.call(this),i(document.body).on("payment_method_selected",this.payment_method_selected.bind(this))}(e.prototype=i.extend({},t.BaseGateway.prototype,t.CheckoutGateway.prototype)).initialize=function(){i(document.body).on("click","#place_order",this.place_order.bind(this)),this.init_plaid()},e.prototype.init_plaid=function(){this.fetch_link_token().then(function(t){this.linkHandler=Plaid.create({clientName:this.params.client_name,env:this.params.env,product:["auth"],token:t,selectAccount:!0,countryCodes:["US"],onSuccess:function(t,e){this.payment_token_received=!0,this.set_nonce(t),this.set_metadata(e),this.fields.toFormFields(),i("#place_order").text(i("#place_order").data("value")),this.get_form().trigger("submit")}.bind(this),onExit:function(t,e){null!=t&&this.submit_error(t.error_message)}.bind(this)})}.bind(this))},e.prototype.place_order=function(t){this.is_gateway_selected()&&(this.payment_token_received||this.is_saved_method_selected()||(t.preventDefault(),this.linkHandler.open()))},e.prototype.hide_place_order=function(){},e.prototype.show_payment_button=function(){t.CheckoutGateway.prototype.show_place_order.apply(this,arguments)},e.prototype.set_metadata=function(t){this.fields.set(this.gateway_id+"_metadata",JSON.stringify(t))},e.prototype.fees_enabled=function(){return"1"==this.params.fees_enabled},e.prototype.payment_method_selected=function(){this.fees_enabled()&&i(document.body).trigger("update_checkout")},e.prototype.fetch_link_token=function(){return new Promise(function(e){i.post({url:this.params.routes.link_token,dataType:"json",data:{_wpnonce:this.params.rest_nonce}}).done(function(t){e(t.token)}.bind(this)).fail(function(t,e,n){i(this.container).hide(),console.log(n)}.bind(this))}.bind(this))},new e}(jQuery,window.wc_stripe);
assets/js/frontend/applepay-checkout.js CHANGED
@@ -67,7 +67,7 @@
67
  }
68
  this.fields.toFormFields({update_shipping_method: false});
69
  if (this.checkout_fields_valid()) {
70
- this.get_form().submit();
71
  }
72
  }
73
 
67
  }
68
  this.fields.toFormFields({update_shipping_method: false});
69
  if (this.checkout_fields_valid()) {
70
+ this.get_form().trigger('submit');
71
  }
72
  }
73
 
assets/js/frontend/applepay-checkout.min.js CHANGED
@@ -1 +1 @@
1
- !function(e,i){function t(){i.BaseGateway.call(this,wc_stripe_applepay_checkout_params)}(t.prototype=e.extend({},i.BaseGateway.prototype,i.CheckoutGateway.prototype,i.ApplePay.prototype)).initialize=function(){i.CheckoutGateway.call(this),e("form.checkout").on("change",".form-row:not(.address-field) .input-text",this.update_payment_request.bind(this)),e(this.container).length&&i.ApplePay.prototype.initialize.call(this)},t.prototype.canMakePayment=function(){i.ApplePay.prototype.canMakePayment.apply(this,arguments).then(function(){var t;this.banner_enabled()&&((t=e(this.params.button)).addClass("banner-checkout"),t.on("click",this.start.bind(this)),e(this.banner_container).empty().append(t),e(this.banner_container).show().addClass("active").closest(".wc-stripe-banner-checkout").addClass("active"))}.bind(this))},t.prototype.append_button=function(){e("#place_order").after(this.$button),this.trigger_payment_method_selected()},t.prototype.updated_checkout=function(){e(this.container).length&&i.ApplePay.prototype.initialize.call(this)},t.prototype.start=function(t){e(t.target).is(".banner-checkout")&&(this.set_payment_method(this.gateway_id),this.set_use_new_option(!0),e('[name="terms"]').prop("checked",!0)),i.ApplePay.prototype.start.apply(this,arguments)},t.prototype.on_token_received=function(){i.CheckoutGateway.prototype.on_token_received.apply(this,arguments),this.payment_request_options.requestShipping&&this.maybe_set_ship_to_different(),this.fields.toFormFields({update_shipping_method:!1}),this.checkout_fields_valid()&&this.get_form().submit()},t.prototype.update_payment_request=function(){e(this.container).length&&i.ApplePay.prototype.initialize.call(this)},new t}(jQuery,window.wc_stripe);
1
+ !function(e,i){function t(){i.BaseGateway.call(this,wc_stripe_applepay_checkout_params)}(t.prototype=e.extend({},i.BaseGateway.prototype,i.CheckoutGateway.prototype,i.ApplePay.prototype)).initialize=function(){i.CheckoutGateway.call(this),e("form.checkout").on("change",".form-row:not(.address-field) .input-text",this.update_payment_request.bind(this)),e(this.container).length&&i.ApplePay.prototype.initialize.call(this)},t.prototype.canMakePayment=function(){i.ApplePay.prototype.canMakePayment.apply(this,arguments).then(function(){var t;this.banner_enabled()&&((t=e(this.params.button)).addClass("banner-checkout"),t.on("click",this.start.bind(this)),e(this.banner_container).empty().append(t),e(this.banner_container).show().addClass("active").closest(".wc-stripe-banner-checkout").addClass("active"))}.bind(this))},t.prototype.append_button=function(){e("#place_order").after(this.$button),this.trigger_payment_method_selected()},t.prototype.updated_checkout=function(){e(this.container).length&&i.ApplePay.prototype.initialize.call(this)},t.prototype.start=function(t){e(t.target).is(".banner-checkout")&&(this.set_payment_method(this.gateway_id),this.set_use_new_option(!0),e('[name="terms"]').prop("checked",!0)),i.ApplePay.prototype.start.apply(this,arguments)},t.prototype.on_token_received=function(){i.CheckoutGateway.prototype.on_token_received.apply(this,arguments),this.payment_request_options.requestShipping&&this.maybe_set_ship_to_different(),this.fields.toFormFields({update_shipping_method:!1}),this.checkout_fields_valid()&&this.get_form().trigger("submit")},t.prototype.update_payment_request=function(){e(this.container).length&&i.ApplePay.prototype.initialize.call(this)},new t}(jQuery,window.wc_stripe);
assets/js/frontend/credit-card.js CHANGED
@@ -12,6 +12,8 @@
12
  window.addEventListener('hashchange', this.hashchange.bind(this));
13
  wc_stripe.credit_card = this;
14
  this.confirmedSetupIntent = false;
 
 
15
  this.has3DSecureParams();
16
  this.handle_create_account_change();
17
  }
@@ -233,39 +235,13 @@
233
  return wc_stripe.CheckoutGateway.prototype.checkout_place_order.apply(this, arguments);
234
  }
235
 
236
- /**
237
- *
238
- */
239
- CC.prototype.create_setup_intent = function () {
240
- return new Promise(function (resolve, reject) {
241
- // call intent api
242
- $.when($.ajax({
243
- method: 'POST',
244
- dataType: 'json',
245
- data: {payment_method: this.gateway_id},
246
- url: this.params.routes.setup_intent,
247
- beforeSend: this.ajax_before_send.bind(this)
248
- })).done(function (response) {
249
- if (response.code) {
250
- this.submit_card_error(response.message);
251
- resolve(response);
252
- } else {
253
- this.client_secret = response.intent.client_secret;
254
- resolve(response);
255
- }
256
- }.bind(this)).fail(function (xhr, textStatus, errorThrown) {
257
- this.submit_card_error(errorThrown);
258
- }.bind(this));
259
- }.bind(this))
260
- }
261
-
262
  /**
263
  *
264
  */
265
  CC.prototype.on_token_received = function (paymentMethod) {
266
  this.payment_token_received = true;
267
  this.set_nonce(paymentMethod.id);
268
- this.get_form().submit();
269
  }
270
 
271
  /**
@@ -275,7 +251,7 @@
275
  this.payment_token_received = true;
276
  this.set_nonce(setup_intent.payment_method);
277
  this.set_intent(setup_intent.id);
278
- this.get_form().submit();
279
  }
280
 
281
  /**
12
  window.addEventListener('hashchange', this.hashchange.bind(this));
13
  wc_stripe.credit_card = this;
14
  this.confirmedSetupIntent = false;
15
+ this.handleActionMethod = 'handleCardAction';
16
+ this.setupActionMethod = 'confirmCardSetup';
17
  this.has3DSecureParams();
18
  this.handle_create_account_change();
19
  }
235
  return wc_stripe.CheckoutGateway.prototype.checkout_place_order.apply(this, arguments);
236
  }
237
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
238
  /**
239
  *
240
  */
241
  CC.prototype.on_token_received = function (paymentMethod) {
242
  this.payment_token_received = true;
243
  this.set_nonce(paymentMethod.id);
244
+ this.get_form().trigger('submit');
245
  }
246
 
247
  /**
251
  this.payment_token_received = true;
252
  this.set_nonce(setup_intent.payment_method);
253
  this.set_intent(setup_intent.id);
254
+ this.get_form().trigger('submit');
255
  }
256
 
257
  /**
assets/js/frontend/credit-card.min.js CHANGED
@@ -1 +1 @@
1
- !function(r,e){function t(){e.BaseGateway.call(this,wc_stripe_credit_card_params),e.CheckoutGateway.call(this),this.message_container=this.params.notice_selector,window.addEventListener("hashchange",this.hashchange.bind(this)),(e.credit_card=this).confirmedSetupIntent=!1,this.has3DSecureParams(),this.handle_create_account_change()}var i={focus:"focused",empty:"empty",invalid:"invalid"};(t.prototype=r.extend({},e.BaseGateway.prototype,e.CheckoutGateway.prototype)).mappings={cardNumber:"#stripe-card-number",cardExpiry:"#stripe-exp",cardCvc:"#stripe-cvv"},t.prototype.initialize=function(){r(document.body).on("click","#place_order",this.place_order.bind(this)),r(document.body).on("change","#createaccount",this.handle_create_account_change.bind(this)),this.setup_card(),this.can_create_setup_intent()&&this.create_setup_intent()},t.prototype.setup_card=function(){var e;this.is_custom_form()?(e=r.extend(!0,{classes:i},this.params.cardOptions),["cardNumber","cardExpiry","cardCvc"].forEach(function(t){this[t]=this.elements.create(t,r.extend(!0,{},e,this.params.customFieldOptions[t]))}.bind(this)),this.cardNumber.on("change",this.card_number_change.bind(this)),this.cardNumber.on("change",this.on_input_change.bind(this)),this.cardExpiry.on("change",this.on_input_change.bind(this)),this.cardCvc.on("change",this.on_input_change.bind(this)),this.fields.required("billing_postcode")&&""!==this.fields.get("billing_postcode")&&0<r("#stripe-postal-code").length&&(r("#stripe-postal-code").val(this.fields.get("billing_postcode")),this.validate_postal_field()),r(document.body).on("change","#billing_postcode",function(t){var e=r("#billing_postcode").val();r("#stripe-postal-code").val(e).trigger("keyup")}.bind(this))):(this.card=this.elements.create("card",r.extend(!0,{},{value:{postalCode:this.fields.get("billing_postcode","")},hidePostalCode:this.fields.required("billing_postcode"),iconStyle:"default"},this.params.cardOptions)),r(document.body).on("change","#billing_postcode",function(t){this.card&&this.card.update({value:r("#billing_postcode").val()})}.bind(this))),setInterval(this.create_card_element.bind(this),2e3)},t.prototype.validate_postal_field=function(){var t,e;r("#billing_postcode").length&&r("#stripe-postal-code").length?this.params.postal_regex[this.fields.get("billing_country")]?(e=this.params.postal_regex[this.fields.get("billing_country")],t=r("#stripe-postal-code").val(),e=new RegExp(e,"i"),""!==t?null!==e.exec(t)?r("#stripe-postal-code").addClass("StripeElement--complete").removeClass("invalid"):r("#stripe-postal-code").removeClass("StripeElement--complete").addClass("invalid"):r("#stripe-postal-code").removeClass("StripeElement--complete").removeClass("invalid")):0!=r("#stripe-postal-code").val()?r("#stripe-postal-code").addClass("StripeElement--complete"):r("#stripe-postal-code").removeClass("StripeElement--complete"):r("#stripe-postal-code").length&&(""!=r("#stripe-postal-code").val()?r("#stripe-postal-code").addClass("StripeElement--complete"):r("#stripe-postal-code").removeClass("StripeElement--complete"))},t.prototype.create_card_element=function(){this.is_custom_form()?r("#wc-stripe-cc-custom-form").length&&0==r("#wc-stripe-cc-custom-form").find("iframe").length&&(r(this.mappings.cardNumber).length&&(this.cardNumber.mount(this.mappings.cardNumber),r(this.mappings.cardNumber).prepend(this.params.html.card_brand)),r(this.mappings.cardExpiry).length&&this.cardExpiry.mount(this.mappings.cardExpiry),r(this.mappings.cardCvc).length&&this.cardCvc.mount(this.mappings.cardCvc),r("#stripe-postal-code").length&&(r("#stripe-postal-code, .postalCode").on("focus",function(t){r("#stripe-postal-code").addClass("focused")}.bind(this)),r("#stripe-postal-code, .postalCode").on("blur",function(t){r("#stripe-postal-code").removeClass("focused").trigger("keyup")}.bind(this)),r("#stripe-postal-code").on("keyup",function(t){0==r("#stripe-postal-code").val()?r("#stripe-postal-code").addClass("empty"):r("#stripe-postal-code").removeClass("empty")}.bind(this)),r("#stripe-postal-code").on("change",this.validate_postal_field.bind(this)),r("#stripe-postal-code").trigger("change"))):r("#wc-stripe-card-element").length&&0==r("#wc-stripe-card-element").find("iframe").length&&(this.card.unmount(),this.card.mount("#wc-stripe-card-element"),this.card.update({value:{postalCode:this.fields.get("billing_postcode","")},hidePostalCode:this.fields.required("billing_postcode")})),r(this.container).outerWidth(!0)<450?r(this.container).addClass("stripe-small-container"):r(this.container).removeClass("stripe-small-container")},t.prototype.place_order=function(t){if(this.fields.syncCheckoutFieldsWithDOM(),this.is_gateway_selected())if(this.can_create_setup_intent()&&!this.is_saved_method_selected()&&this.checkout_fields_valid()){if(t.preventDefault(),this.confirmedSetupIntent)return this.on_setup_intent_received(this.confirmedSetupIntent);this.stripe.confirmCardSetup(this.client_secret,{payment_method:{card:this.is_custom_form()?this.cardNumber:this.card,billing_details:function(){return this.is_current_page("checkout")?this.get_billing_details():r.extend({},this.is_custom_form()?{address:{postal_code:r("#stripe-postal-code").val()}}:{})}.bind(this)()}}).then(function(t){t.error?this.submit_card_error(t.error):(this.confirmedSetupIntent=t.setupIntent,this.on_setup_intent_received(t.setupIntent))}.bind(this))}else this.payment_token_received||this.is_saved_method_selected()||(t.preventDefault(),this.checkout_fields_valid()&&this.stripe.createPaymentMethod({type:"card",card:this.is_custom_form()?this.cardNumber:this.card,billing_details:this.get_billing_details()}).then(function(t){if(t.error)return this.submit_card_error(t.error);this.on_token_received(t.paymentMethod)}.bind(this)))},t.prototype.checkout_place_order=function(){return this.is_saved_method_selected()||this.payment_token_received?e.CheckoutGateway.prototype.checkout_place_order.apply(this,arguments):(this.place_order.apply(this,arguments),!1)},t.prototype.create_setup_intent=function(){return new Promise(function(e,t){r.when(r.ajax({method:"POST",dataType:"json",data:{payment_method:this.gateway_id},url:this.params.routes.setup_intent,beforeSend:this.ajax_before_send.bind(this)})).done(function(t){t.code?this.submit_card_error(t.message):this.client_secret=t.intent.client_secret,e(t)}.bind(this)).fail(function(t,e,i){this.submit_card_error(i)}.bind(this))}.bind(this))},t.prototype.on_token_received=function(t){this.payment_token_received=!0,this.set_nonce(t.id),this.get_form().submit()},t.prototype.on_setup_intent_received=function(t){this.payment_token_received=!0,this.set_nonce(t.payment_method),this.set_intent(t.id),this.get_form().submit()},t.prototype.updated_checkout=function(){this.create_card_element(),this.handle_create_account_change(),this.can_create_setup_intent()&&!this.client_secret&&this.create_setup_intent()},t.prototype.update_checkout=function(){this.clear_card_elements()},t.prototype.show_payment_button=function(){e.CheckoutGateway.prototype.show_place_order.apply(this,arguments)},t.prototype.hide_place_order=function(){},t.prototype.is_custom_form=function(){return"1"===this.params.custom_form},t.prototype.get_postal_code=function(){return this.is_custom_form()&&0<r("#stripe-postal-code").length?r("#stripe-postal-code").val():this.fields.get(this.get_billing_prefix()+"_postcode",null)},t.prototype.card_number_change=function(t){"unknown"===t.brand?r("#wc-stripe-card").removeClass("active"):r("#wc-stripe-card").addClass("active"),r("#wc-stripe-card").attr("src",this.params.cards[t.brand])},t.prototype.on_input_change=function(t){if(t.complete){var e=r("#wc-stripe-cc-custom-form").find(".StripeElement, #stripe-postal-code"),i=[];e.each(function(t,e){i.push("#"+r(e).attr("id"))}.bind(this));var t=this.mappings[t.elementType],s=i.indexOf(t);if("undefined"!=typeof i[s+1])if("#stripe-postal-code"===i[s+1])document.getElementById("stripe-postal-code").focus();else for(var o in this.mappings)this.mappings[o]===i[s+1]&&this[o].focus()}},t.prototype.clear_card_elements=function(){for(var t=["cardNumber","cardExpiry","cardCvc"],e=0;e<t.length;e++)this[t[e]]&&this[t[e]].clear()},t.prototype.checkout_error=function(){this.is_gateway_selected()&&(this.payment_token_received=!1),e.CheckoutGateway.prototype.checkout_error.call(this)},t.prototype.get_billing_details=function(){var t=e.BaseGateway.prototype.get_billing_details.call(this);return t.address.postal_code=this.get_postal_code(),t},t.prototype.can_create_setup_intent=function(){return this.is_add_payment_method_page()||this.is_change_payment_method()||this.is_current_page("checkout")&&this.cart_contains_subscription()&&this.get_gateway_data()&&0==this.get_total_price_cents()||this.is_current_page(["checkout","product"])&&"undefined"!=typeof wc_stripe_preorder_exists||this.is_current_page("order_pay")&&"pre_order"in this.get_gateway_data()&&!0===this.get_gateway_data().pre_order||this.is_current_page("product")&&0==this.get_total_price_cents()},t.prototype.handle_create_account_change=function(){r("#createaccount").length&&(r("#createaccount").is(":checked")?r(".wc-stripe-save-source").show():r(".wc-stripe-save-source").hide())},t.prototype.submit_card_error=function(t){"bcf"===this.params.notice_location&&(r(".wc-stripe-card-notice").remove(),r(".wc-stripe_cc-new-method-container").append('<div class="wc-stripe-card-notice"></div>')),e.BaseGateway.prototype.submit_error.call(this,t,!0)},t.prototype.container_styles=function(){e.CheckoutGateway.prototype.container_styles.apply(this,arguments),this.is_custom_form()&&r(this.container).find(".payment_box").addClass("custom-form__"+this.params.custom_form_name)},t.prototype.checkout_fields_valid=function(){var t=this.is_valid_checkout();return t||this.submit_error(this.params.messages.terms),t},new t}(jQuery,window.wc_stripe);
1
+ !function(r,e){function t(){e.BaseGateway.call(this,wc_stripe_credit_card_params),e.CheckoutGateway.call(this),this.message_container=this.params.notice_selector,window.addEventListener("hashchange",this.hashchange.bind(this)),(e.credit_card=this).confirmedSetupIntent=!1,this.handleActionMethod="handleCardAction",this.setupActionMethod="confirmCardSetup",this.has3DSecureParams(),this.handle_create_account_change()}var i={focus:"focused",empty:"empty",invalid:"invalid"};(t.prototype=r.extend({},e.BaseGateway.prototype,e.CheckoutGateway.prototype)).mappings={cardNumber:"#stripe-card-number",cardExpiry:"#stripe-exp",cardCvc:"#stripe-cvv"},t.prototype.initialize=function(){r(document.body).on("click","#place_order",this.place_order.bind(this)),r(document.body).on("change","#createaccount",this.handle_create_account_change.bind(this)),this.setup_card(),this.can_create_setup_intent()&&this.create_setup_intent()},t.prototype.setup_card=function(){var e;this.is_custom_form()?(e=r.extend(!0,{classes:i},this.params.cardOptions),["cardNumber","cardExpiry","cardCvc"].forEach(function(t){this[t]=this.elements.create(t,r.extend(!0,{},e,this.params.customFieldOptions[t]))}.bind(this)),this.cardNumber.on("change",this.card_number_change.bind(this)),this.cardNumber.on("change",this.on_input_change.bind(this)),this.cardExpiry.on("change",this.on_input_change.bind(this)),this.cardCvc.on("change",this.on_input_change.bind(this)),this.fields.required("billing_postcode")&&""!==this.fields.get("billing_postcode")&&0<r("#stripe-postal-code").length&&(r("#stripe-postal-code").val(this.fields.get("billing_postcode")),this.validate_postal_field()),r(document.body).on("change","#billing_postcode",function(t){var e=r("#billing_postcode").val();r("#stripe-postal-code").val(e).trigger("keyup")}.bind(this))):(this.card=this.elements.create("card",r.extend(!0,{},{value:{postalCode:this.fields.get("billing_postcode","")},hidePostalCode:this.fields.required("billing_postcode"),iconStyle:"default"},this.params.cardOptions)),r(document.body).on("change","#billing_postcode",function(t){this.card&&this.card.update({value:r("#billing_postcode").val()})}.bind(this))),setInterval(this.create_card_element.bind(this),2e3)},t.prototype.validate_postal_field=function(){var t,e;r("#billing_postcode").length&&r("#stripe-postal-code").length?this.params.postal_regex[this.fields.get("billing_country")]?(e=this.params.postal_regex[this.fields.get("billing_country")],t=r("#stripe-postal-code").val(),e=new RegExp(e,"i"),""!==t?null!==e.exec(t)?r("#stripe-postal-code").addClass("StripeElement--complete").removeClass("invalid"):r("#stripe-postal-code").removeClass("StripeElement--complete").addClass("invalid"):r("#stripe-postal-code").removeClass("StripeElement--complete").removeClass("invalid")):0!=r("#stripe-postal-code").val()?r("#stripe-postal-code").addClass("StripeElement--complete"):r("#stripe-postal-code").removeClass("StripeElement--complete"):r("#stripe-postal-code").length&&(""!=r("#stripe-postal-code").val()?r("#stripe-postal-code").addClass("StripeElement--complete"):r("#stripe-postal-code").removeClass("StripeElement--complete"))},t.prototype.create_card_element=function(){this.is_custom_form()?r("#wc-stripe-cc-custom-form").length&&0==r("#wc-stripe-cc-custom-form").find("iframe").length&&(r(this.mappings.cardNumber).length&&(this.cardNumber.mount(this.mappings.cardNumber),r(this.mappings.cardNumber).prepend(this.params.html.card_brand)),r(this.mappings.cardExpiry).length&&this.cardExpiry.mount(this.mappings.cardExpiry),r(this.mappings.cardCvc).length&&this.cardCvc.mount(this.mappings.cardCvc),r("#stripe-postal-code").length&&(r("#stripe-postal-code, .postalCode").on("focus",function(t){r("#stripe-postal-code").addClass("focused")}.bind(this)),r("#stripe-postal-code, .postalCode").on("blur",function(t){r("#stripe-postal-code").removeClass("focused").trigger("keyup")}.bind(this)),r("#stripe-postal-code").on("keyup",function(t){0==r("#stripe-postal-code").val()?r("#stripe-postal-code").addClass("empty"):r("#stripe-postal-code").removeClass("empty")}.bind(this)),r("#stripe-postal-code").on("change",this.validate_postal_field.bind(this)),r("#stripe-postal-code").trigger("change"))):r("#wc-stripe-card-element").length&&0==r("#wc-stripe-card-element").find("iframe").length&&(this.card.unmount(),this.card.mount("#wc-stripe-card-element"),this.card.update({value:{postalCode:this.fields.get("billing_postcode","")},hidePostalCode:this.fields.required("billing_postcode")})),r(this.container).outerWidth(!0)<450?r(this.container).addClass("stripe-small-container"):r(this.container).removeClass("stripe-small-container")},t.prototype.place_order=function(t){if(this.fields.syncCheckoutFieldsWithDOM(),this.is_gateway_selected())if(this.can_create_setup_intent()&&!this.is_saved_method_selected()&&this.checkout_fields_valid()){if(t.preventDefault(),this.confirmedSetupIntent)return this.on_setup_intent_received(this.confirmedSetupIntent);this.stripe.confirmCardSetup(this.client_secret,{payment_method:{card:this.is_custom_form()?this.cardNumber:this.card,billing_details:function(){return this.is_current_page("checkout")?this.get_billing_details():r.extend({},this.is_custom_form()?{address:{postal_code:r("#stripe-postal-code").val()}}:{})}.bind(this)()}}).then(function(t){t.error?this.submit_card_error(t.error):(this.confirmedSetupIntent=t.setupIntent,this.on_setup_intent_received(t.setupIntent))}.bind(this))}else this.payment_token_received||this.is_saved_method_selected()||(t.preventDefault(),this.checkout_fields_valid()&&this.stripe.createPaymentMethod({type:"card",card:this.is_custom_form()?this.cardNumber:this.card,billing_details:this.get_billing_details()}).then(function(t){if(t.error)return this.submit_card_error(t.error);this.on_token_received(t.paymentMethod)}.bind(this)))},t.prototype.checkout_place_order=function(){return this.is_saved_method_selected()||this.payment_token_received?e.CheckoutGateway.prototype.checkout_place_order.apply(this,arguments):(this.place_order.apply(this,arguments),!1)},t.prototype.on_token_received=function(t){this.payment_token_received=!0,this.set_nonce(t.id),this.get_form().trigger("submit")},t.prototype.on_setup_intent_received=function(t){this.payment_token_received=!0,this.set_nonce(t.payment_method),this.set_intent(t.id),this.get_form().trigger("submit")},t.prototype.updated_checkout=function(){this.create_card_element(),this.handle_create_account_change(),this.can_create_setup_intent()&&!this.client_secret&&this.create_setup_intent()},t.prototype.update_checkout=function(){this.clear_card_elements()},t.prototype.show_payment_button=function(){e.CheckoutGateway.prototype.show_place_order.apply(this,arguments)},t.prototype.hide_place_order=function(){},t.prototype.is_custom_form=function(){return"1"===this.params.custom_form},t.prototype.get_postal_code=function(){return this.is_custom_form()&&0<r("#stripe-postal-code").length?r("#stripe-postal-code").val():this.fields.get(this.get_billing_prefix()+"_postcode",null)},t.prototype.card_number_change=function(t){"unknown"===t.brand?r("#wc-stripe-card").removeClass("active"):r("#wc-stripe-card").addClass("active"),r("#wc-stripe-card").attr("src",this.params.cards[t.brand])},t.prototype.on_input_change=function(t){if(t.complete){var e=r("#wc-stripe-cc-custom-form").find(".StripeElement, #stripe-postal-code"),i=[];e.each(function(t,e){i.push("#"+r(e).attr("id"))}.bind(this));var t=this.mappings[t.elementType],s=i.indexOf(t);if("undefined"!=typeof i[s+1])if("#stripe-postal-code"===i[s+1])document.getElementById("stripe-postal-code").focus();else for(var o in this.mappings)this.mappings[o]===i[s+1]&&this[o].focus()}},t.prototype.clear_card_elements=function(){for(var t=["cardNumber","cardExpiry","cardCvc"],e=0;e<t.length;e++)this[t[e]]&&this[t[e]].clear()},t.prototype.checkout_error=function(){this.is_gateway_selected()&&(this.payment_token_received=!1),e.CheckoutGateway.prototype.checkout_error.call(this)},t.prototype.get_billing_details=function(){var t=e.BaseGateway.prototype.get_billing_details.call(this);return t.address.postal_code=this.get_postal_code(),t},t.prototype.can_create_setup_intent=function(){return this.is_add_payment_method_page()||this.is_change_payment_method()||this.is_current_page("checkout")&&this.cart_contains_subscription()&&this.get_gateway_data()&&0==this.get_total_price_cents()||this.is_current_page(["checkout","product"])&&"undefined"!=typeof wc_stripe_preorder_exists||this.is_current_page("order_pay")&&"pre_order"in this.get_gateway_data()&&!0===this.get_gateway_data().pre_order||this.is_current_page("product")&&0==this.get_total_price_cents()},t.prototype.handle_create_account_change=function(){r("#createaccount").length&&(r("#createaccount").is(":checked")?r(".wc-stripe-save-source").show():r(".wc-stripe-save-source").hide())},t.prototype.submit_card_error=function(t){"bcf"===this.params.notice_location&&(r(".wc-stripe-card-notice").remove(),r(".wc-stripe_cc-new-method-container").append('<div class="wc-stripe-card-notice"></div>')),e.BaseGateway.prototype.submit_error.call(this,t,!0)},t.prototype.container_styles=function(){e.CheckoutGateway.prototype.container_styles.apply(this,arguments),this.is_custom_form()&&r(this.container).find(".payment_box").addClass("custom-form__"+this.params.custom_form_name)},t.prototype.checkout_fields_valid=function(){var t=this.is_valid_checkout();return t||this.submit_error(this.params.messages.terms),t},new t}(jQuery,window.wc_stripe);
assets/js/frontend/googlepay-checkout.js CHANGED
@@ -74,7 +74,7 @@
74
  }
75
  this.fields.toFormFields({update_shipping_method: false});
76
  if (this.checkout_fields_valid()) {
77
- this.get_form().submit();
78
  }
79
  }
80
 
74
  }
75
  this.fields.toFormFields({update_shipping_method: false});
76
  if (this.checkout_fields_valid()) {
77
+ this.get_form().trigger('submit');
78
  }
79
  }
80
 
assets/js/frontend/googlepay-checkout.min.js CHANGED
@@ -1 +1 @@
1
- !function(e,t){function i(){this.can_pay=!1,t.BaseGateway.call(this,wc_stripe_googlepay_checkout_params),t.CheckoutGateway.call(this),window.addEventListener("hashchange",this.hashchange.bind(this)),this.has3DSecureParams()}(i.prototype=e.extend({},t.BaseGateway.prototype,t.CheckoutGateway.prototype,t.GooglePay.prototype)).initialize=function(){e(this.container).length&&(this.createPaymentsClient(),this.isReadyToPay().then(function(){var t;e(this.container).show(),this.banner_enabled()&&(t=e(this.paymentsClient.createButton({onClick:this.banner_checkout.bind(this),buttonColor:this.params.button_color,buttonType:this.params.button_style})),e(this.banner_container).show().addClass("active").closest(".wc-stripe-banner-checkout").addClass("active"),e(this.banner_container).empty().append(t))}.bind(this)))},i.prototype.create_button=function(){t.GooglePay.prototype.create_button.apply(this,arguments),e("#place_order").after(this.$button),this.trigger_payment_method_selected()},i.prototype.updated_checkout=function(){this.initialize()},i.prototype.banner_checkout=function(){this.set_payment_method(this.gateway_id),this.set_use_new_option(!0),e('[name="terms"]').prop("checked",!0),t.GooglePay.prototype.start.apply(this,arguments)},i.prototype.on_token_received=function(){t.CheckoutGateway.prototype.on_token_received.apply(this,arguments),this.payment_request_options.shippingAddressRequired&&this.maybe_set_ship_to_different(),this.fields.toFormFields({update_shipping_method:!1}),this.checkout_fields_valid()&&this.get_form().submit()},i.prototype.payment_data_updated=function(t){this.populate_billing_fields(t.address),this.fields.toFormFields({update_shipping_method:!1})},new i}(jQuery,window.wc_stripe);
1
+ !function(e,t){function i(){this.can_pay=!1,t.BaseGateway.call(this,wc_stripe_googlepay_checkout_params),t.CheckoutGateway.call(this),window.addEventListener("hashchange",this.hashchange.bind(this)),this.has3DSecureParams()}(i.prototype=e.extend({},t.BaseGateway.prototype,t.CheckoutGateway.prototype,t.GooglePay.prototype)).initialize=function(){e(this.container).length&&(this.createPaymentsClient(),this.isReadyToPay().then(function(){var t;e(this.container).show(),this.banner_enabled()&&(t=e(this.paymentsClient.createButton({onClick:this.banner_checkout.bind(this),buttonColor:this.params.button_color,buttonType:this.params.button_style})),e(this.banner_container).show().addClass("active").closest(".wc-stripe-banner-checkout").addClass("active"),e(this.banner_container).empty().append(t))}.bind(this)))},i.prototype.create_button=function(){t.GooglePay.prototype.create_button.apply(this,arguments),e("#place_order").after(this.$button),this.trigger_payment_method_selected()},i.prototype.updated_checkout=function(){this.initialize()},i.prototype.banner_checkout=function(){this.set_payment_method(this.gateway_id),this.set_use_new_option(!0),e('[name="terms"]').prop("checked",!0),t.GooglePay.prototype.start.apply(this,arguments)},i.prototype.on_token_received=function(){t.CheckoutGateway.prototype.on_token_received.apply(this,arguments),this.payment_request_options.shippingAddressRequired&&this.maybe_set_ship_to_different(),this.fields.toFormFields({update_shipping_method:!1}),this.checkout_fields_valid()&&this.get_form().trigger("submit")},i.prototype.payment_data_updated=function(t){this.populate_billing_fields(t.address),this.fields.toFormFields({update_shipping_method:!1})},new i}(jQuery,window.wc_stripe);
assets/js/frontend/local-payment.js CHANGED
@@ -52,7 +52,7 @@
52
  } else {
53
  this.payment_token_received = true;
54
  this.set_nonce(result.source.id);
55
- this.get_form().submit();
56
  }
57
  resolve();
58
  }.bind(this);
@@ -63,7 +63,7 @@
63
  } else {
64
  if (this.isValidElement()) {
65
  this.payment_token_received = true;
66
- this.get_form().submit();
67
  } else {
68
  return this.submit_error({
69
  code: 'empty_element_' + this.params.local_payment_type,
@@ -78,7 +78,7 @@
78
  }
79
  } else {
80
  this.payment_token_received = true;
81
- this.get_form().submit();
82
  }
83
  }.bind(this));
84
  }
@@ -87,11 +87,35 @@
87
  if (this.is_gateway_selected()) {
88
  if (!this.payment_token_received && !this.is_saved_method_selected()) {
89
  e.preventDefault();
90
- this.createSource();
 
 
 
 
91
  }
92
  }
93
  }
94
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  LocalPayment.prototype.checkout_place_order = function (e) {
96
  if (!this.is_saved_method_selected() && !this.payment_token_received) {
97
  this.place_order.apply(this, arguments);
@@ -207,17 +231,37 @@
207
  }
208
 
209
  LocalPayment.prototype.processConfirmation = function (obj) {
210
- this.stripe[this.confirmation_method](obj.client_secret, this.get_confirmation_args(obj)).then(function (result) {
211
- if (result.error) {
212
- this.confirmation_obj = obj;
213
- this.payment_token_received = false;
214
- return this.submit_error(result.error.message);
215
- }
216
- window.location.href = decodeURI(obj.order_received_url);
217
- }.bind(this))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
218
  }
219
 
220
  LocalPayment.prototype.get_confirmation_args = function (obj) {
 
221
  var args = {
222
  payment_method: {
223
  billing_details: this.get_billing_details()
@@ -295,7 +339,10 @@
295
  /******* Sepa *******/
296
  function Sepa(params) {
297
  this.elementType = 'iban';
 
 
298
  LocalPayment.call(this, params);
 
299
  }
300
 
301
  /****** Klarna ******/
@@ -320,6 +367,7 @@
320
  function BECS(params) {
321
  this.elementType = 'auBankAccount';
322
  this.confirmation_method = 'confirmAuBecsDebitPayment';
 
323
  LocalPayment.call(this, params);
324
  window.addEventListener('hashchange', this.hashChange.bind(this));
325
  }
@@ -348,6 +396,37 @@
348
  window.addEventListener('hashchange', this.hashChange.bind(this));
349
  }
350
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
351
  WeChat.prototype.updated_checkout = function () {
352
  if (!this.script_loaded && $(this.container).length) {
353
  this.load_external_script(this.params.qr_script);
@@ -386,19 +465,6 @@
386
  }
387
  }
388
 
389
- Sepa.prototype.getSourceArgs = function () {
390
- var args = $.extend({}, LocalPayment.prototype.getSourceArgs.apply(this, arguments), {
391
- mandate: {
392
- notification_method: 'email',
393
- interval: this.cart_contains_subscription() || this.is_change_payment_method() ? 'scheduled' : 'one_time'
394
- }
395
- });
396
- if (args.mandate.interval === 'scheduled') {
397
- delete args.amount;
398
- }
399
- return args;
400
- }
401
-
402
  Afterpay.prototype.is_currency_supported = function () {
403
  return this.params.currencies.indexOf(this.get_currency()) > -1;
404
  }
@@ -464,7 +530,7 @@
464
  return this.submit_error({code: 'incomplete_boleto_tax_id'});
465
  } else {
466
  this.payment_token_received = true;
467
- this.get_form().submit();
468
  }
469
  }
470
 
@@ -472,6 +538,20 @@
472
  return $('#wc_stripe_boleto_tax_id').val();
473
  }
474
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
475
  IDEAL.prototype = $.extend({}, LocalPayment.prototype, IDEAL.prototype);
476
 
477
  P24.prototype = $.extend({}, LocalPayment.prototype, P24.prototype);
@@ -494,6 +574,16 @@
494
 
495
  OXXO.prototype = $.extend({}, LocalPayment.prototype, OXXO.prototype);
496
 
 
 
 
 
 
 
 
 
 
 
497
  /**
498
  * Local payment types that require JS integration
499
  * @type {Object}
@@ -509,7 +599,12 @@
509
  'grabpay': GrabPay,
510
  'afterpay_clearpay': Afterpay,
511
  'boleto': Boleto,
512
- 'oxxo': OXXO
 
 
 
 
 
513
  }
514
 
515
  for (var i in wc_stripe_local_payment_params.gateways) {
52
  } else {
53
  this.payment_token_received = true;
54
  this.set_nonce(result.source.id);
55
+ this.get_form().trigger('submit');
56
  }
57
  resolve();
58
  }.bind(this);
63
  } else {
64
  if (this.isValidElement()) {
65
  this.payment_token_received = true;
66
+ this.get_form().trigger('submit');
67
  } else {
68
  return this.submit_error({
69
  code: 'empty_element_' + this.params.local_payment_type,
78
  }
79
  } else {
80
  this.payment_token_received = true;
81
+ this.get_form().trigger('submit');
82
  }
83
  }.bind(this));
84
  }
87
  if (this.is_gateway_selected()) {
88
  if (!this.payment_token_received && !this.is_saved_method_selected()) {
89
  e.preventDefault();
90
+ if (this.is_change_payment_method()) {
91
+ this.process_setup_intent();
92
+ } else {
93
+ this.createSource();
94
+ }
95
  }
96
  }
97
  }
98
 
99
+ LocalPayment.prototype.process_setup_intent = function () {
100
+ // create the setup intent
101
+ this.block();
102
+ this.create_setup_intent().then(function () {
103
+ this.stripe[this.setupActionMethod](this.client_secret, this.get_confirmation_args()).then(function (result) {
104
+ if (result.error) {
105
+ return this.submit_error(result.error.message);
106
+ }
107
+ this.set_nonce(result.setupIntent.payment_method);
108
+ this.set_intent(result.setupIntent.id);
109
+ this.payment_token_received = true;
110
+ this.get_form().trigger('submit');
111
+ }.bind(this));
112
+ }.bind(this)).catch(function (error) {
113
+ this.submit_error(error);
114
+ }.bind(this)).finally(function () {
115
+ this.unblock();
116
+ }.bind(this))
117
+ }
118
+
119
  LocalPayment.prototype.checkout_place_order = function (e) {
120
  if (!this.is_saved_method_selected() && !this.payment_token_received) {
121
  this.place_order.apply(this, arguments);
231
  }
232
 
233
  LocalPayment.prototype.processConfirmation = function (obj) {
234
+ if (obj.type === 'payment_intent') {
235
+ this.stripe[this.confirmation_method](obj.client_secret, this.get_confirmation_args(obj)).then(function (result) {
236
+ if (result.error) {
237
+ this.confirmation_obj = obj;
238
+ this.payment_token_received = false;
239
+ return this.submit_error(result.error.message);
240
+ }
241
+ var redirect = decodeURI(obj.order_received_url);
242
+ if (result.paymentIntent.status === 'processing') {
243
+ redirect += '&' + $.param({
244
+ '_stripe_local_payment': this.gateway_id,
245
+ payment_intent: result.paymentIntent.id,
246
+ payment_intent_client_secret: result.paymentIntent.client_secret
247
+ });
248
+ }
249
+ window.location.href = decodeURI(redirect);
250
+ }.bind(this))
251
+ } else {
252
+ this.stripe[this.setupActionMethod](obj.client_secret, this.get_confirmation_args(obj)).then(function (result) {
253
+ if (result.error) {
254
+ return this.submit_error(result.error.message);
255
+ }
256
+ this.set_nonce(result.setupIntent.payment_method);
257
+ this.set_intent(result.setupIntent.id);
258
+ return this.process_payment(obj.order_id, obj.order_key);
259
+ }.bind(this));
260
+ }
261
  }
262
 
263
  LocalPayment.prototype.get_confirmation_args = function (obj) {
264
+ obj = typeof obj === 'undefined' ? {} : obj;
265
  var args = {
266
  payment_method: {
267
  billing_details: this.get_billing_details()
339
  /******* Sepa *******/
340
  function Sepa(params) {
341
  this.elementType = 'iban';
342
+ this.confirmation_method = 'confirmSepaDebitPayment';
343
+ this.setupActionMethod = 'confirmSepaDebitSetup';
344
  LocalPayment.call(this, params);
345
+ window.addEventListener('hashchange', this.hashChange.bind(this));
346
  }
347
 
348
  /****** Klarna ******/
367
  function BECS(params) {
368
  this.elementType = 'auBankAccount';
369
  this.confirmation_method = 'confirmAuBecsDebitPayment';
370
+ this.setupActionMethod = 'confirmAuBecsDebitSetup';
371
  LocalPayment.call(this, params);
372
  window.addEventListener('hashchange', this.hashChange.bind(this));
373
  }
396
  window.addEventListener('hashchange', this.hashChange.bind(this));
397
  }
398
 
399
+ function GiroPay(params) {
400
+ this.confirmation_method = 'confirmGiropayPayment';
401
+ LocalPayment.call(this, params);
402
+ window.addEventListener('hashchange', this.hashChange.bind(this));
403
+ }
404
+
405
+ function Bancontact(params) {
406
+ this.confirmation_method = 'confirmBancontactPayment';
407
+ LocalPayment.call(this, params);
408
+ window.addEventListener('hashchange', this.hashChange.bind(this));
409
+ }
410
+
411
+ function EPS(params) {
412
+ this.elementType = 'epsBank';
413
+ this.confirmation_method = 'confirmEpsPayment';
414
+ LocalPayment.call(this, params);
415
+ window.addEventListener('hashchange', this.hashChange.bind(this));
416
+ }
417
+
418
+ function Alipay(params) {
419
+ this.confirmation_method = 'confirmAlipayPayment';
420
+ LocalPayment.call(this, params);
421
+ window.addEventListener('hashchange', this.hashChange.bind(this));
422
+ }
423
+
424
+ function Sofort(params) {
425
+ this.confirmation_method = 'confirmSofortPayment';
426
+ LocalPayment.call(this, params);
427
+ window.addEventListener('hashchange', this.hashChange.bind(this));
428
+ }
429
+
430
  WeChat.prototype.updated_checkout = function () {
431
  if (!this.script_loaded && $(this.container).length) {
432
  this.load_external_script(this.params.qr_script);
465
  }
466
  }
467
 
 
 
 
 
 
 
 
 
 
 
 
 
 
468
  Afterpay.prototype.is_currency_supported = function () {
469
  return this.params.currencies.indexOf(this.get_currency()) > -1;
470
  }
530
  return this.submit_error({code: 'incomplete_boleto_tax_id'});
531
  } else {
532
  this.payment_token_received = true;
533
+ this.get_form().trigger('submit');
534
  }
535
  }
536
 
538
  return $('#wc_stripe_boleto_tax_id').val();
539
  }
540
 
541
+ Sepa.prototype.updated_checkout = function (e) {
542
+ LocalPayment.prototype.updated_checkout.apply(this, arguments);
543
+ var val = $('[name="billing_country"]').val();
544
+ if (!!val && this.element) {
545
+ this.element.update({placeholderCountry: val});
546
+ }
547
+ }
548
+
549
+ Sofort.prototype.get_confirmation_args = function () {
550
+ var args = LocalPayment.prototype.get_confirmation_args.apply(this, arguments);
551
+ args.payment_method.sofort = {country: args.payment_method.billing_details.address.country};
552
+ return args;
553
+ }
554
+
555
  IDEAL.prototype = $.extend({}, LocalPayment.prototype, IDEAL.prototype);
556
 
557
  P24.prototype = $.extend({}, LocalPayment.prototype, P24.prototype);
574
 
575
  OXXO.prototype = $.extend({}, LocalPayment.prototype, OXXO.prototype);
576
 
577
+ GiroPay.prototype = $.extend({}, LocalPayment.prototype, GiroPay.prototype);
578
+
579
+ Bancontact.prototype = $.extend({}, LocalPayment.prototype, Bancontact.prototype);
580
+
581
+ EPS.prototype = $.extend({}, LocalPayment.prototype, EPS.prototype);
582
+
583
+ Alipay.prototype = $.extend({}, LocalPayment.prototype, Alipay.prototype);
584
+
585
+ Sofort.prototype = $.extend({}, LocalPayment.prototype, Sofort.prototype);
586
+
587
  /**
588
  * Local payment types that require JS integration
589
  * @type {Object}
599
  'grabpay': GrabPay,
600
  'afterpay_clearpay': Afterpay,
601
  'boleto': Boleto,
602
+ 'oxxo': OXXO,
603
+ 'giropay': GiroPay,
604
+ 'bancontact': Bancontact,
605
+ 'eps': EPS,
606
+ 'alipay': Alipay,
607
+ 'sofort': Sofort
608
  }
609
 
610
  for (var i in wc_stripe_local_payment_params.gateways) {
assets/js/frontend/local-payment.min.js CHANGED
@@ -1 +1 @@
1
- !function(o,i){function e(t){i.BaseGateway.call(this,t),i.CheckoutGateway.call(this),o(document.body).on("click","#place_order",this.place_order.bind(this)),this.is_current_page("order_pay")&&o("#order_review").on("submit",this.process_order_pay.bind(this)),this.maybe_hide_gateway()}function t(t){this.elementType="idealBank",this.confirmation_method="confirmIdealPayment",e.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function n(t){this.elementType="p24Bank",this.confirmation_method="confirmP24Payment",e.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function a(t){this.elementType="iban",e.call(this,t)}function r(t){this.confirmation_method="confirmKlarnaPayment",e.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function s(t){this.elementType="fpxBank",this.confirmation_method="confirmFpxPayment",e.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function p(t){e.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function h(t){this.elementType="auBankAccount",this.confirmation_method="confirmAuBecsDebitPayment",e.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function c(t){this.confirmation_method="confirmGrabPayPayment",e.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function _(t){this.confirmation_method="confirmAfterpayClearpayPayment",e.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function d(t){this.confirmation_method="confirmBoletoPayment",e.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function l(t){this.confirmation_method="confirmOxxoPayment",e.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}(e.prototype=o.extend({},i.BaseGateway.prototype,i.CheckoutGateway.prototype)).initialize=function(){this.mount_button()},e.prototype.elementType=null,e.prototype.is_active=function(){return o("#wc_stripe_local_payment_"+this.gateway_id).data("active")},e.prototype.maybe_hide_gateway=function(){this.is_active()?o(this.container).show():(o(this.container).hide(),this.is_gateway_selected()&&o('li[class*="payment_method_stripe_"]').filter(":visible").eq(0).find('[name="payment_method"]').prop("checked",!0).trigger("click"))},e.prototype.createSource=function(){return new Promise(function(e,t){var i=function(t){t.error?this.submit_error(t.error):(this.payment_token_received=!0,this.set_nonce(t.source.id),this.get_form().submit()),e()}.bind(this);if(null!=this.elementType)if(this.confirmation_method)if(this.confirmation_obj)this.processConfirmation(this.confirmation_obj);else{if(!this.isValidElement())return this.submit_error({code:"empty_element_"+this.params.local_payment_type,message:wc_stripe_messages.empty_element});this.payment_token_received=!0,this.get_form().submit()}else this.stripe.createSource(this.element,this.getSourceArgs()).then(i)["catch"](function(t){this.submit_error(t.message)}.bind(this));else this.payment_token_received=!0,this.get_form().submit()}.bind(this))},e.prototype.place_order=function(t){this.is_gateway_selected()&&(this.payment_token_received||this.is_saved_method_selected()||(t.preventDefault(),this.createSource()))},e.prototype.checkout_place_order=function(t){return this.is_saved_method_selected()||this.payment_token_received?i.CheckoutGateway.prototype.checkout_place_order.apply(this,arguments):(this.place_order.apply(this,arguments),!1)},e.prototype.process_order_pay=function(t){var e;this.is_gateway_selected()&&(t.preventDefault(),(e=this.get_form().serializeArray()).push({name:"_wpnonce",value:this.params.rest_nonce}),e.push({name:"order_id",value:this.params.order_id}),t=window.location.search,this.params.routes.order_pay.match(/\?/)&&(t="&"+t.substr(1)),o.ajax({url:this.params.routes.order_pay+t,method:"POST",dataType:"json",data:o.param(e)}).done(function(t){t.success?window.location.href=t.redirect:this.submit_error(t.message)}.bind(this)).fail(function(t,e,i){this.submit_error(i)}.bind(this)))},e.prototype.show_payment_button=function(){this.show_place_order()},e.prototype.hide_place_order=function(){},e.prototype.show_place_order=function(){i.CheckoutGateway.prototype.show_place_order.apply(this,arguments),this.payment_token_received&&o("#place_order").text(o("#place_order").data("value"))},e.prototype.getSourceArgs=function(){return{type:this.params.local_payment_type,amount:this.get_total_price_cents(),currency:this.get_currency(),owner:{name:this.get_customer_name(this.get_billing_prefix()),email:this.fields.get("billing_email",null)},redirect:{return_url:this.params.return_url}}},e.prototype.updated_checkout=function(){this.mount_button(),this.maybe_hide_gateway()},e.prototype.mount_button=function(){var t="#wc_stripe_local_payment_"+this.gateway_id;o(t).length&&null!=this.elementType&&(o(t).empty(),this.element||(this.element=this.elements.create(this.elementType,this.params.element_params),this.element.on("change",this.handleElementChange.bind(this))),this.elementEmpty=!0,this.element.mount(t))},e.prototype.handleElementChange=function(t){this.elementEmpty=t.empty},e.prototype.load_external_script=function(t){var e=document.createElement("script");e.type="text/javascript",e.src=t,e.onload=function(){this.script_loaded=!0}.bind(this),document.body.appendChild(e)},e.prototype.hashChange=function(t){var e;!this.is_gateway_selected()||(e=window.location.hash.match(/response=(.*)/))&&(history.pushState({},"",window.location.pathname),e=JSON.parse(window.atob(decodeURIComponent(e[1]))),this.processConfirmation(e))},e.prototype.processConfirmation=function(e){this.stripe[this.confirmation_method](e.client_secret,this.get_confirmation_args(e)).then(function(t){if(t.error)return this.confirmation_obj=e,this.payment_token_received=!1,this.submit_error(t.error.message);window.location.href=decodeURI(e.order_received_url)}.bind(this))},e.prototype.get_confirmation_args=function(t){t={payment_method:{billing_details:this.get_billing_details()},return_url:t.return_url};return this.elementType&&(t.payment_method[this.params.local_payment_type]=this.element),t},e.prototype.isValidElement=function(){return!this.element||!this.elementEmpty},e.prototype.delete_order_source=function(){return new Promise(function(e,t){o.ajax({url:this.params.routes.delete_order_source,method:"DELETE",dataType:"json",beforeSend:this.ajax_before_send.bind(this)}).done(function(t){e(t)}.bind(this)).fail(function(){t()}.bind(this))}.bind(this))},e.prototype.update_source=function(i){return new Promise(function(e,t){this.updateSourceXhr&&this.updateSourceXhr.abort(),this.updateSourceXhr=o.ajax({url:this.params.routes.update_source,method:"POST",dataType:"json",data:{_wpnonce:this.params.rest_nonce,updates:i,source_id:this.source.id,client_secret:this.source.client_secret,payment_method:this.gateway_id}}).done(function(t){e(t.source)}.bind(this)).fail(function(){t()})}.bind(this))},p.prototype.updated_checkout=function(){!this.script_loaded&&o(this.container).length&&this.load_external_script(this.params.qr_script),e.prototype.updated_checkout.apply(this,arguments)},p.prototype.hashChange=function(t){var e;!this.is_gateway_selected()||(e=window.location.hash.match(/qrcode=(.*)/))&&(history.pushState({},"",window.location.pathname),this.qrcode=JSON.parse(window.atob(decodeURIComponent(e[1]))),this.get_form().unblock().removeClass("processing").addClass("wechat"),new QRCode("wc_stripe_local_payment_stripe_wechat",{text:this.qrcode.code,width:parseInt(this.params.qr_size),height:parseInt(this.params.qr_size),colorDark:"#424770",colorLight:"#f8fbfd",correctLevel:QRCode.CorrectLevel.H}),o("#wc_stripe_local_payment_stripe_wechat").append('<p class="qrcode-message">'+this.params.qr_message+"</p>"),this.payment_token_received=!0,this.show_place_order())},p.prototype.place_order=function(t){this.qrcode&&this.payment_token_received?(t.preventDefault(),window.location=this.qrcode.redirect):e.prototype.place_order.apply(this,arguments)},a.prototype.getSourceArgs=function(){var t=o.extend({},e.prototype.getSourceArgs.apply(this,arguments),{mandate:{notification_method:"email",interval:this.cart_contains_subscription()||this.is_change_payment_method()?"scheduled":"one_time"}});return"scheduled"===t.mandate.interval&&delete t.amount,t},_.prototype.is_currency_supported=function(){return-1<this.params.currencies.indexOf(this.get_currency())},_.prototype.updated_checkout=function(){this.maybe_hide_gateway(),this.has_gateway_data()&&this.is_currency_supported()&&(this.add_eligibility(this.container,parseFloat(this.get_total_price())),this.elements=this.stripe.elements(this.get_element_options()),this.initialize_messaging())},_.prototype.initialize=function(){this.has_gateway_data()&&this.is_currency_supported()&&(this.add_eligibility(this.container,parseFloat(this.get_total_price())),this.initialize_messaging())},_.prototype.initialize_messaging=function(){this.msgElement=this.elements.create("afterpayClearpayMessage",o.extend({},this.params.msg_options,{amount:this.get_total_price_cents(),currency:this.get_currency()})),this.mount_message()},_.prototype.mount_message=function(t){t&&this.msgElement.update({amount:this.get_total_price_cents(),currency:this.get_currency()}),o('label[for="payment_method_stripe_afterpay"]').find("#wc-stripe-afterpay-msg").length||o('label[for="payment_method_stripe_afterpay"]').append('<div id="wc-stripe-afterpay-msg"></div>'),this.msgElement.mount("#wc-stripe-afterpay-msg")},_.prototype.add_eligibility=function(t,e){i.Afterpay.prototype.add_eligibility.apply(this,arguments),this.is_eligible(e)||o(this.container).find(".wc-stripe-afterpay__offsite").addClass("afterpay-ineligible")},d.prototype.get_confirmation_args=function(t){t=e.prototype.get_confirmation_args.call(this,t);return t.payment_method.boleto={tax_id:this.get_tax_id()},t},d.prototype.createSource=function(){var t=this.get_tax_id();if(!t||!t.match(/^(\w{3}\.){2}\w{3}-\w{2}$|^(\w{11}|\w{14})$|^\w{2}\.\w{3}\.\w{3}\/\w{4}-\w{2}$/))return this.submit_error({code:"incomplete_boleto_tax_id"});this.payment_token_received=!0,this.get_form().submit()},d.prototype.get_tax_id=function(){return o("#wc_stripe_boleto_tax_id").val()},t.prototype=o.extend({},e.prototype,t.prototype),n.prototype=o.extend({},e.prototype,n.prototype),a.prototype=o.extend({},e.prototype,a.prototype),r.prototype=o.extend({},e.prototype,r.prototype),s.prototype=o.extend({},e.prototype,s.prototype),p.prototype=o.extend({},e.prototype,p.prototype),h.prototype=o.extend({},e.prototype,h.prototype),c.prototype=o.extend({},e.prototype,c.prototype),_.prototype=o.extend({},e.prototype,i.Afterpay.prototype,_.prototype),d.prototype=o.extend({},e.prototype,d.prototype),l.prototype=o.extend({},e.prototype,l.prototype);var m,y={ideal:t,p24:n,sepa_debit:a,klarna:r,fpx:s,wechat:p,au_becs_debit:h,grabpay:c,afterpay_clearpay:_,boleto:d,oxxo:l};for(m in wc_stripe_local_payment_params.gateways){var u=wc_stripe_local_payment_params.gateways[m];new(y[u.local_payment_type]||e)(u)}}(jQuery,window.wc_stripe);
1
+ !function(n,i){function o(t){i.BaseGateway.call(this,t),i.CheckoutGateway.call(this),n(document.body).on("click","#place_order",this.place_order.bind(this)),this.is_current_page("order_pay")&&n("#order_review").on("submit",this.process_order_pay.bind(this)),this.maybe_hide_gateway()}function t(t){this.elementType="idealBank",this.confirmation_method="confirmIdealPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function e(t){this.elementType="p24Bank",this.confirmation_method="confirmP24Payment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function s(t){this.elementType="iban",this.confirmation_method="confirmSepaDebitPayment",this.setupActionMethod="confirmSepaDebitSetup",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function r(t){this.confirmation_method="confirmKlarnaPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function a(t){this.elementType="fpxBank",this.confirmation_method="confirmFpxPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function h(t){o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function p(t){this.elementType="auBankAccount",this.confirmation_method="confirmAuBecsDebitPayment",this.setupActionMethod="confirmAuBecsDebitSetup",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function c(t){this.confirmation_method="confirmGrabPayPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function d(t){this.confirmation_method="confirmAfterpayClearpayPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function _(t){this.confirmation_method="confirmBoletoPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function m(t){this.confirmation_method="confirmOxxoPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function l(t){this.confirmation_method="confirmGiropayPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function y(t){this.confirmation_method="confirmBancontactPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function u(t){this.elementType="epsBank",this.confirmation_method="confirmEpsPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function f(t){this.confirmation_method="confirmAlipayPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}function g(t){this.confirmation_method="confirmSofortPayment",o.call(this,t),window.addEventListener("hashchange",this.hashChange.bind(this))}(o.prototype=n.extend({},i.BaseGateway.prototype,i.CheckoutGateway.prototype)).initialize=function(){this.mount_button()},o.prototype.elementType=null,o.prototype.is_active=function(){return n("#wc_stripe_local_payment_"+this.gateway_id).data("active")},o.prototype.maybe_hide_gateway=function(){this.is_active()?n(this.container).show():(n(this.container).hide(),this.is_gateway_selected()&&n('li[class*="payment_method_stripe_"]').filter(":visible").eq(0).find('[name="payment_method"]').prop("checked",!0).trigger("click"))},o.prototype.createSource=function(){return new Promise(function(e,t){var i=function(t){t.error?this.submit_error(t.error):(this.payment_token_received=!0,this.set_nonce(t.source.id),this.get_form().trigger("submit")),e()}.bind(this);if(null!=this.elementType)if(this.confirmation_method)if(this.confirmation_obj)this.processConfirmation(this.confirmation_obj);else{if(!this.isValidElement())return this.submit_error({code:"empty_element_"+this.params.local_payment_type,message:wc_stripe_messages.empty_element});this.payment_token_received=!0,this.get_form().trigger("submit")}else this.stripe.createSource(this.element,this.getSourceArgs()).then(i)["catch"](function(t){this.submit_error(t.message)}.bind(this));else this.payment_token_received=!0,this.get_form().trigger("submit")}.bind(this))},o.prototype.place_order=function(t){this.is_gateway_selected()&&(this.payment_token_received||this.is_saved_method_selected()||(t.preventDefault(),this.is_change_payment_method()?this.process_setup_intent():this.createSource()))},o.prototype.process_setup_intent=function(){this.block(),this.create_setup_intent().then(function(){this.stripe[this.setupActionMethod](this.client_secret,this.get_confirmation_args()).then(function(t){if(t.error)return this.submit_error(t.error.message);this.set_nonce(t.setupIntent.payment_method),this.set_intent(t.setupIntent.id),this.payment_token_received=!0,this.get_form().trigger("submit")}.bind(this))}.bind(this))["catch"](function(t){this.submit_error(t)}.bind(this))["finally"](function(){this.unblock()}.bind(this))},o.prototype.checkout_place_order=function(t){return this.is_saved_method_selected()||this.payment_token_received?i.CheckoutGateway.prototype.checkout_place_order.apply(this,arguments):(this.place_order.apply(this,arguments),!1)},o.prototype.process_order_pay=function(t){var e;this.is_gateway_selected()&&(t.preventDefault(),(e=this.get_form().serializeArray()).push({name:"_wpnonce",value:this.params.rest_nonce}),e.push({name:"order_id",value:this.params.order_id}),t=window.location.search,this.params.routes.order_pay.match(/\?/)&&(t="&"+t.substr(1)),n.ajax({url:this.params.routes.order_pay+t,method:"POST",dataType:"json",data:n.param(e)}).done(function(t){t.success?window.location.href=t.redirect:this.submit_error(t.message)}.bind(this)).fail(function(t,e,i){this.submit_error(i)}.bind(this)))},o.prototype.show_payment_button=function(){this.show_place_order()},o.prototype.hide_place_order=function(){},o.prototype.show_place_order=function(){i.CheckoutGateway.prototype.show_place_order.apply(this,arguments),this.payment_token_received&&n("#place_order").text(n("#place_order").data("value"))},o.prototype.getSourceArgs=function(){return{type:this.params.local_payment_type,amount:this.get_total_price_cents(),currency:this.get_currency(),owner:{name:this.get_customer_name(this.get_billing_prefix()),email:this.fields.get("billing_email",null)},redirect:{return_url:this.params.return_url}}},o.prototype.updated_checkout=function(){this.mount_button(),this.maybe_hide_gateway()},o.prototype.mount_button=function(){var t="#wc_stripe_local_payment_"+this.gateway_id;n(t).length&&null!=this.elementType&&(n(t).empty(),this.element||(this.element=this.elements.create(this.elementType,this.params.element_params),this.element.on("change",this.handleElementChange.bind(this))),this.elementEmpty=!0,this.element.mount(t))},o.prototype.handleElementChange=function(t){this.elementEmpty=t.empty},o.prototype.load_external_script=function(t){var e=document.createElement("script");e.type="text/javascript",e.src=t,e.onload=function(){this.script_loaded=!0}.bind(this),document.body.appendChild(e)},o.prototype.hashChange=function(t){var e;!this.is_gateway_selected()||(e=window.location.hash.match(/response=(.*)/))&&(history.pushState({},"",window.location.pathname),e=JSON.parse(window.atob(decodeURIComponent(e[1]))),this.processConfirmation(e))},o.prototype.processConfirmation=function(i){"payment_intent"===i.type?this.stripe[this.confirmation_method](i.client_secret,this.get_confirmation_args(i)).then(function(t){if(t.error)return this.confirmation_obj=i,this.payment_token_received=!1,this.submit_error(t.error.message);var e=decodeURI(i.order_received_url);"processing"===t.paymentIntent.status&&(e+="&"+n.param({_stripe_local_payment:this.gateway_id,payment_intent:t.paymentIntent.id,payment_intent_client_secret:t.paymentIntent.client_secret})),window.location.href=decodeURI(e)}.bind(this)):this.stripe[this.setupActionMethod](i.client_secret,this.get_confirmation_args(i)).then(function(t){return t.error?this.submit_error(t.error.message):(this.set_nonce(t.setupIntent.payment_method),this.set_intent(t.setupIntent.id),this.process_payment(i.order_id,i.order_key))}.bind(this))},o.prototype.get_confirmation_args=function(t){t=void 0===t?{}:t;t={payment_method:{billing_details:this.get_billing_details()},return_url:t.return_url};return this.elementType&&(t.payment_method[this.params.local_payment_type]=this.element),t},o.prototype.isValidElement=function(){return!this.element||!this.elementEmpty},o.prototype.delete_order_source=function(){return new Promise(function(e,t){n.ajax({url:this.params.routes.delete_order_source,method:"DELETE",dataType:"json",beforeSend:this.ajax_before_send.bind(this)}).done(function(t){e(t)}.bind(this)).fail(function(){t()}.bind(this))}.bind(this))},o.prototype.update_source=function(i){return new Promise(function(e,t){this.updateSourceXhr&&this.updateSourceXhr.abort(),this.updateSourceXhr=n.ajax({url:this.params.routes.update_source,method:"POST",dataType:"json",data:{_wpnonce:this.params.rest_nonce,updates:i,source_id:this.source.id,client_secret:this.source.client_secret,payment_method:this.gateway_id}}).done(function(t){e(t.source)}.bind(this)).fail(function(){t()})}.bind(this))},h.prototype.updated_checkout=function(){!this.script_loaded&&n(this.container).length&&this.load_external_script(this.params.qr_script),o.prototype.updated_checkout.apply(this,arguments)},h.prototype.hashChange=function(t){var e;!this.is_gateway_selected()||(e=window.location.hash.match(/qrcode=(.*)/))&&(history.pushState({},"",window.location.pathname),this.qrcode=JSON.parse(window.atob(decodeURIComponent(e[1]))),this.get_form().unblock().removeClass("processing").addClass("wechat"),new QRCode("wc_stripe_local_payment_stripe_wechat",{text:this.qrcode.code,width:parseInt(this.params.qr_size),height:parseInt(this.params.qr_size),colorDark:"#424770",colorLight:"#f8fbfd",correctLevel:QRCode.CorrectLevel.H}),n("#wc_stripe_local_payment_stripe_wechat").append('<p class="qrcode-message">'+this.params.qr_message+"</p>"),this.payment_token_received=!0,this.show_place_order())},h.prototype.place_order=function(t){this.qrcode&&this.payment_token_received?(t.preventDefault(),window.location=this.qrcode.redirect):o.prototype.place_order.apply(this,arguments)},d.prototype.is_currency_supported=function(){return-1<this.params.currencies.indexOf(this.get_currency())},d.prototype.updated_checkout=function(){this.maybe_hide_gateway(),this.has_gateway_data()&&this.is_currency_supported()&&(this.add_eligibility(this.container,parseFloat(this.get_total_price())),this.elements=this.stripe.elements(this.get_element_options()),this.initialize_messaging())},d.prototype.initialize=function(){this.has_gateway_data()&&this.is_currency_supported()&&(this.add_eligibility(this.container,parseFloat(this.get_total_price())),this.initialize_messaging())},d.prototype.initialize_messaging=function(){this.msgElement=this.elements.create("afterpayClearpayMessage",n.extend({},this.params.msg_options,{amount:this.get_total_price_cents(),currency:this.get_currency()})),this.mount_message()},d.prototype.mount_message=function(t){t&&this.msgElement.update({amount:this.get_total_price_cents(),currency:this.get_currency()}),n('label[for="payment_method_stripe_afterpay"]').find("#wc-stripe-afterpay-msg").length||n('label[for="payment_method_stripe_afterpay"]').append('<div id="wc-stripe-afterpay-msg"></div>'),this.msgElement.mount("#wc-stripe-afterpay-msg")},d.prototype.add_eligibility=function(t,e){i.Afterpay.prototype.add_eligibility.apply(this,arguments),this.is_eligible(e)||n(this.container).find(".wc-stripe-afterpay__offsite").addClass("afterpay-ineligible")},_.prototype.get_confirmation_args=function(t){t=o.prototype.get_confirmation_args.call(this,t);return t.payment_method.boleto={tax_id:this.get_tax_id()},t},_.prototype.createSource=function(){var t=this.get_tax_id();if(!t||!t.match(/^(\w{3}\.){2}\w{3}-\w{2}$|^(\w{11}|\w{14})$|^\w{2}\.\w{3}\.\w{3}\/\w{4}-\w{2}$/))return this.submit_error({code:"incomplete_boleto_tax_id"});this.payment_token_received=!0,this.get_form().trigger("submit")},_.prototype.get_tax_id=function(){return n("#wc_stripe_boleto_tax_id").val()},s.prototype.updated_checkout=function(t){o.prototype.updated_checkout.apply(this,arguments);var e=n('[name="billing_country"]').val();e&&this.element&&this.element.update({placeholderCountry:e})},g.prototype.get_confirmation_args=function(){var t=o.prototype.get_confirmation_args.apply(this,arguments);return t.payment_method.sofort={country:t.payment_method.billing_details.address.country},t},t.prototype=n.extend({},o.prototype,t.prototype),e.prototype=n.extend({},o.prototype,e.prototype),s.prototype=n.extend({},o.prototype,s.prototype),r.prototype=n.extend({},o.prototype,r.prototype),a.prototype=n.extend({},o.prototype,a.prototype),h.prototype=n.extend({},o.prototype,h.prototype),p.prototype=n.extend({},o.prototype,p.prototype),c.prototype=n.extend({},o.prototype,c.prototype),d.prototype=n.extend({},o.prototype,i.Afterpay.prototype,d.prototype),_.prototype=n.extend({},o.prototype,_.prototype),m.prototype=n.extend({},o.prototype,m.prototype),l.prototype=n.extend({},o.prototype,l.prototype),y.prototype=n.extend({},o.prototype,y.prototype),u.prototype=n.extend({},o.prototype,u.prototype),f.prototype=n.extend({},o.prototype,f.prototype),g.prototype=n.extend({},o.prototype,g.prototype);var w,b={ideal:t,p24:e,sepa_debit:s,klarna:r,fpx:a,wechat:h,au_becs_debit:p,grabpay:c,afterpay_clearpay:d,boleto:_,oxxo:m,giropay:l,bancontact:y,eps:u,alipay:f,sofort:g};for(w in wc_stripe_local_payment_params.gateways){var v=wc_stripe_local_payment_params.gateways[w];new(b[v.local_payment_type]||o)(v)}}(jQuery,window.wc_stripe);
assets/js/frontend/mini-cart.js CHANGED
@@ -17,11 +17,20 @@
17
  }
18
 
19
  MiniCart.prototype.block_cart = function () {
20
- $(this.container).closest('.widget_shopping_cart_content').find('.wc-stripe-overlay').addClass('active');
21
  }
22
 
23
  MiniCart.prototype.unblock_cart = function () {
24
- $(this.container).closest('.widget_shopping_cart_content').find('.wc-stripe-overlay').removeClass('active');
 
 
 
 
 
 
 
 
 
25
  }
26
 
27
  /*------------------------- GPay -------------------------*/
@@ -34,7 +43,6 @@
34
  GPay.prototype.initialize = function () {
35
  this.createPaymentsClient();
36
  this.isReadyToPay().then(function () {
37
- this.$button.find('.gpay-button').addClass('button');
38
  this.append_button();
39
  }.bind(this));
40
  }
@@ -146,14 +154,17 @@
146
  }
147
 
148
  function load_mini_cart() {
149
- $('.widget_shopping_cart_content').each(function (idx, el) {
150
  if ($(el).find('.wc_stripe_mini_cart_payment_methods').length) {
151
  var $parent = $(el).parent();
152
  if ($parent.length) {
153
  var class_name = 'wc-stripe-mini-cart-idx-' + idx;
154
  $parent.addClass(class_name);
155
- $parent.find('.widget_shopping_cart_content').prepend('<div class="wc-stripe-overlay"></div>');
156
- container = '.' + class_name + ' .widget_shopping_cart_content p.woocommerce-mini-cart__buttons';
 
 
 
157
  gateways.forEach(function (gateway) {
158
  new gateway[0](gateway[1]);
159
  })
@@ -162,6 +173,10 @@
162
  });
163
  }
164
 
165
- $(document.body).on('wc_fragments_refreshed wc_fragments_loaded', load_mini_cart);
 
 
 
 
166
 
167
  }(jQuery, window.wc_stripe));
17
  }
18
 
19
  MiniCart.prototype.block_cart = function () {
20
+ $(this.container).find('.wc-stripe-minicart-overlay').addClass('active');
21
  }
22
 
23
  MiniCart.prototype.unblock_cart = function () {
24
+ $(this.container).find('.wc-stripe-minicart-overlay').removeClass('active');
25
+ }
26
+
27
+ MiniCart.prototype.get_gateway_data = function () {
28
+ var key = ".woocommerce_" + this.gateway_id + "_gateway_data";
29
+ var data = $('.woocommerce-mini-cart__buttons').find(key).data('gateway');
30
+ if (!data) {
31
+ data = $(key).data('gateway');
32
+ }
33
+ return !!data ? data : {};
34
  }
35
 
36
  /*------------------------- GPay -------------------------*/
43
  GPay.prototype.initialize = function () {
44
  this.createPaymentsClient();
45
  this.isReadyToPay().then(function () {
 
46
  this.append_button();
47
  }.bind(this));
48
  }
154
  }
155
 
156
  function load_mini_cart() {
157
+ $('.woocommerce-mini-cart__buttons').each(function (idx, el) {
158
  if ($(el).find('.wc_stripe_mini_cart_payment_methods').length) {
159
  var $parent = $(el).parent();
160
  if ($parent.length) {
161
  var class_name = 'wc-stripe-mini-cart-idx-' + idx;
162
  $parent.addClass(class_name);
163
+ if(!$parent.find('.wc-stripe-minicart-overlay').length){
164
+ $parent.prepend('<div class="wc-stripe-minicart-overlay"></div>');
165
+ }
166
+
167
+ container = '.' + class_name + ' .woocommerce-mini-cart__buttons';
168
  gateways.forEach(function (gateway) {
169
  new gateway[0](gateway[1]);
170
  })
173
  });
174
  }
175
 
176
+ $(document.body).on('wc_fragments_refreshed wc_fragments_loaded', function () {
177
+ setTimeout(load_mini_cart, 250);
178
+ });
179
+
180
+ setTimeout(load_mini_cart, 500);
181
 
182
  }(jQuery, window.wc_stripe));
assets/js/frontend/mini-cart.min.js CHANGED
@@ -1 +1 @@
1
- !function(i,e){function n(t){this.message_container=".widget_shopping_cart_content",e.BaseGateway.call(this,t,s)}function t(t){n.apply(this,arguments)}function p(t){n.apply(this,arguments)}function a(t){n.apply(this,arguments)}function o(t){n.apply(this,arguments)}n.prototype.on_token_received=function(){this.block(),this.block_cart(),e.BaseGateway.prototype.on_token_received.apply(this,arguments)},n.prototype.block_cart=function(){i(this.container).closest(".widget_shopping_cart_content").find(".wc-stripe-overlay").addClass("active")},n.prototype.unblock_cart=function(){i(this.container).closest(".widget_shopping_cart_content").find(".wc-stripe-overlay").removeClass("active")},(t.prototype=Object.assign({},e.BaseGateway.prototype,n.prototype,e.GooglePay.prototype)).initialize=function(){this.createPaymentsClient(),this.isReadyToPay().then(function(){this.$button.find(".gpay-button").addClass("button"),this.append_button()}.bind(this))},t.prototype.create_button=function(){e.GooglePay.prototype.create_button.apply(this,arguments),this.append_button()},t.prototype.append_button=function(){i(this.container).find(".wc-stripe-gpay-mini-cart").empty(),i(this.container).find(".wc-stripe-gpay-mini-cart").append(this.$button).show()},(p.prototype=Object.assign({},e.BaseGateway.prototype,n.prototype,e.ApplePay.prototype)).initialize=function(){e.ApplePay.prototype.initialize.apply(this,arguments)},p.prototype.append_button=function(){i(this.container).find(".wc-stripe-applepay-mini-cart").empty(),i(this.container).find(".wc-stripe-applepay-mini-cart").append(this.$button).show()},(a.prototype=Object.assign({},e.BaseGateway.prototype,n.prototype,e.PaymentRequest.prototype)).initialize=function(){e.PaymentRequest.prototype.initialize.apply(this,arguments)},a.prototype.create_button=function(){this.append_button()},a.prototype.append_button=function(){i(this.container).find(".wc-stripe-payment-request-mini-cart").empty().show(),this.paymentRequestButton.mount(i(this.container).find(".wc-stripe-payment-request-mini-cart").first()[0])},(o.prototype=Object.assign({},e.BaseGateway.prototype,n.prototype,e.Afterpay.prototype)).is_currency_supported=function(){return-1<this.params.currencies.indexOf(this.get_currency())},o.prototype.initialize=function(){i(this.container).length&&this.is_currency_supported()&&(this.create_element(),this.mount_message())},o.prototype.create_element=function(){return this.elements.create("afterpayClearpayMessage",i.extend({},this.params.msg_options,{amount:this.get_total_price_cents(),currency:this.get_currency(),isEligible:this.is_eligible(parseFloat(this.get_total_price()))}))},o.prototype.mount_message=function(){i(".wc-stripe-afterpay-minicart-msg").length||i(".woocommerce-mini-cart__total").after('<p class="wc-stripe-afterpay-minicart-msg buttons"></p>');var t=document.querySelectorAll(".wc-stripe-afterpay-minicart-msg");t&&t.forEach(function(t){this.create_element().mount(t),this.add_eligibility(t,parseFloat(this.get_total_price()))}.bind(this))};var r=[],s=null;"undefined"!=typeof wc_stripe_googlepay_mini_cart_params&&r.push([t,wc_stripe_googlepay_mini_cart_params]),"undefined"!=typeof wc_stripe_applepay_mini_cart_params&&r.push([p,wc_stripe_applepay_mini_cart_params]),"undefined"!=typeof wc_stripe_payment_request_mini_cart_params&&r.push([a,wc_stripe_payment_request_mini_cart_params]),"undefined"!=typeof wc_stripe_afterpay_mini_cart_params&&r.push([o,wc_stripe_afterpay_mini_cart_params]),i(document.body).on("wc_fragments_refreshed wc_fragments_loaded",function(){i(".widget_shopping_cart_content").each(function(t,e){!i(e).find(".wc_stripe_mini_cart_payment_methods").length||(e=i(e).parent()).length&&(t="wc-stripe-mini-cart-idx-"+t,e.addClass(t),e.find(".widget_shopping_cart_content").prepend('<div class="wc-stripe-overlay"></div>'),s="."+t+" .widget_shopping_cart_content p.woocommerce-mini-cart__buttons",r.forEach(function(t){new t[0](t[1])}))})})}(jQuery,window.wc_stripe);
1
+ !function(i,e){function n(t){this.message_container=".widget_shopping_cart_content",e.BaseGateway.call(this,t,s)}function t(t){n.apply(this,arguments)}function a(t){n.apply(this,arguments)}function p(t){n.apply(this,arguments)}function o(t){n.apply(this,arguments)}n.prototype.on_token_received=function(){this.block(),this.block_cart(),e.BaseGateway.prototype.on_token_received.apply(this,arguments)},n.prototype.block_cart=function(){i(this.container).find(".wc-stripe-minicart-overlay").addClass("active")},n.prototype.unblock_cart=function(){i(this.container).find(".wc-stripe-minicart-overlay").removeClass("active")},n.prototype.get_gateway_data=function(){var t=".woocommerce_"+this.gateway_id+"_gateway_data",e=i(".woocommerce-mini-cart__buttons").find(t).data("gateway");return(e=e||i(t).data("gateway"))||{}},(t.prototype=Object.assign({},e.BaseGateway.prototype,n.prototype,e.GooglePay.prototype)).initialize=function(){this.createPaymentsClient(),this.isReadyToPay().then(function(){this.append_button()}.bind(this))},t.prototype.create_button=function(){e.GooglePay.prototype.create_button.apply(this,arguments),this.append_button()},t.prototype.append_button=function(){i(this.container).find(".wc-stripe-gpay-mini-cart").empty(),i(this.container).find(".wc-stripe-gpay-mini-cart").append(this.$button).show()},(a.prototype=Object.assign({},e.BaseGateway.prototype,n.prototype,e.ApplePay.prototype)).initialize=function(){e.ApplePay.prototype.initialize.apply(this,arguments)},a.prototype.append_button=function(){i(this.container).find(".wc-stripe-applepay-mini-cart").empty(),i(this.container).find(".wc-stripe-applepay-mini-cart").append(this.$button).show()},(p.prototype=Object.assign({},e.BaseGateway.prototype,n.prototype,e.PaymentRequest.prototype)).initialize=function(){e.PaymentRequest.prototype.initialize.apply(this,arguments)},p.prototype.create_button=function(){this.append_button()},p.prototype.append_button=function(){i(this.container).find(".wc-stripe-payment-request-mini-cart").empty().show(),this.paymentRequestButton.mount(i(this.container).find(".wc-stripe-payment-request-mini-cart").first()[0])},(o.prototype=Object.assign({},e.BaseGateway.prototype,n.prototype,e.Afterpay.prototype)).is_currency_supported=function(){return-1<this.params.currencies.indexOf(this.get_currency())},o.prototype.initialize=function(){i(this.container).length&&this.is_currency_supported()&&(this.create_element(),this.mount_message())},o.prototype.create_element=function(){return this.elements.create("afterpayClearpayMessage",i.extend({},this.params.msg_options,{amount:this.get_total_price_cents(),currency:this.get_currency(),isEligible:this.is_eligible(parseFloat(this.get_total_price()))}))},o.prototype.mount_message=function(){i(".wc-stripe-afterpay-minicart-msg").length||i(".woocommerce-mini-cart__total").after('<p class="wc-stripe-afterpay-minicart-msg buttons"></p>');var t=document.querySelectorAll(".wc-stripe-afterpay-minicart-msg");t&&t.forEach(function(t){this.create_element().mount(t),this.add_eligibility(t,parseFloat(this.get_total_price()))}.bind(this))};var r=[],s=null;function c(){i(".woocommerce-mini-cart__buttons").each(function(t,e){!i(e).find(".wc_stripe_mini_cart_payment_methods").length||(e=i(e).parent()).length&&(t="wc-stripe-mini-cart-idx-"+t,e.addClass(t),e.find(".wc-stripe-minicart-overlay").length||e.prepend('<div class="wc-stripe-minicart-overlay"></div>'),s="."+t+" .woocommerce-mini-cart__buttons",r.forEach(function(t){new t[0](t[1])}))})}"undefined"!=typeof wc_stripe_googlepay_mini_cart_params&&r.push([t,wc_stripe_googlepay_mini_cart_params]),"undefined"!=typeof wc_stripe_applepay_mini_cart_params&&r.push([a,wc_stripe_applepay_mini_cart_params]),"undefined"!=typeof wc_stripe_payment_request_mini_cart_params&&r.push([p,wc_stripe_payment_request_mini_cart_params]),"undefined"!=typeof wc_stripe_afterpay_mini_cart_params&&r.push([o,wc_stripe_afterpay_mini_cart_params]),i(document.body).on("wc_fragments_refreshed wc_fragments_loaded",function(){setTimeout(c,250)}),setTimeout(c,500)}(jQuery,window.wc_stripe);
assets/js/frontend/payment-request.js CHANGED
@@ -258,7 +258,7 @@
258
  this.maybe_set_ship_to_different();
259
  }
260
  if (this.checkout_fields_valid()) {
261
- this.get_form().submit();
262
  }
263
  }
264
 
258
  this.maybe_set_ship_to_different();
259
  }
260
  if (this.checkout_fields_valid()) {
261
+ this.get_form().trigger('submit');
262
  }
263
  }
264
 
assets/js/frontend/payment-request.min.js CHANGED
@@ -1 +1 @@
1
- !function(e,a){var t;e(document.body).is(".single-product")&&((t=function(){a.BaseGateway.call(this,wc_stripe_payment_request_params),window.addEventListener("hashchange",this.hashchange.bind(this)),this.old_qty=this.get_quantity()}).prototype=e.extend({},a.BaseGateway.prototype,a.ProductGateway.prototype,a.PaymentRequest.prototype),t.prototype.initialize=function(){if(!e(this.container).length)return setTimeout(this.initialize.bind(this),1e3);a.ProductGateway.call(this),a.PaymentRequest.prototype.initialize.call(this)},t.prototype.canMakePayment=function(){a.PaymentRequest.prototype.canMakePayment.apply(this,arguments).then(function(){e(document.body).on("change",'[name="quantity"]',this.add_to_cart.bind(this)),e(this.container).parent().parent().addClass("active"),this.is_variable_product()?this.variable_product_selected()?(this.cart_calculation(this.get_product_data().variation.variation_id),e(this.container).removeClass("processingFoundVariation")):this.disable_payment_button():this.cart_calculation()}.bind(this))},t.prototype.add_to_cart=function(t){this.disable_payment_button(),this.old_qty=this.get_quantity();var e=this.get_product_data().variation;this.processing_calculation||this.is_variable_product()&&!this.variable_product_selected()||this.cart_calculation(e.variation_id).then(function(){this.is_variable_product()?(this.createPaymentRequest(),this.createPaymentRequestButton(),a.PaymentRequest.prototype.canMakePayment.apply(this,arguments).then(function(){this.enable_payment_button()}.bind(this))):this.enable_payment_button()}.bind(this))},t.prototype.cart_calculation=function(){return a.ProductGateway.prototype.cart_calculation.apply(this,arguments).then(function(){this.paymentRequest.update(this.get_payment_request_update({total:{pending:!1}}))}.bind(this))["catch"](function(){}.bind(this))},t.prototype.create_button=function(){e("#wc-stripe-payment-request-container").empty(),a.PaymentRequest.prototype.create_button.apply(this,arguments),this.$button=e("#wc-stripe-payment-request-container")},t.prototype.button_click=function(t){this.$button.is(".disabled")?t.preventDefault():0==this.get_quantity()&&(t.preventDefault(),this.submit_error(this.params.messages.invalid_amount))},t.prototype.found_variation=function(){a.ProductGateway.prototype.found_variation.apply(this,arguments),this.can_pay&&this.add_to_cart()},t.prototype.block=function(){e.blockUI({message:this.adding_to_cart?this.params.messages.add_to_cart:null,overlayCSS:{background:"#fff",opacity:.6}})}),e(document.body).is(".woocommerce-cart")&&((t=function(){a.BaseGateway.call(this,wc_stripe_payment_request_params),window.addEventListener("hashchange",this.hashchange.bind(this))}).prototype=e.extend({},a.BaseGateway.prototype,a.CartGateway.prototype,a.PaymentRequest.prototype),t.prototype.initialize=function(){a.CartGateway.call(this),a.PaymentRequest.prototype.initialize.call(this)},t.prototype.canMakePayment=function(){a.PaymentRequest.prototype.canMakePayment.apply(this,arguments).then(function(){e(this.container).addClass("active").parent().addClass("active")}.bind(this))},t.prototype.updated_html=function(){e(this.container).length||(this.can_pay=!1),this.can_pay&&this.initialize()},t.prototype.button_click=function(t){this.paymentRequest.update(this.get_payment_request_update({total:{pending:!1}}))},t.prototype.cart_emptied=function(t){this.can_pay=!1}),e(document.body).is(".woocommerce-checkout")&&((t=function(){a.BaseGateway.call(this,wc_stripe_payment_request_params),window.addEventListener("hashchange",this.hashchange.bind(this))}).prototype=e.extend({},a.BaseGateway.prototype,a.CheckoutGateway.prototype,a.PaymentRequest.prototype),t.prototype.initialize=function(){a.CheckoutGateway.call(this),e("form.checkout").on("change",".form-row:not(.address-field) .input-text",this.update_payment_request.bind(this)),e(this.container).length&&a.PaymentRequest.prototype.initialize.call(this)},t.prototype.canMakePayment=function(){a.PaymentRequest.prototype.canMakePayment.apply(this,arguments).then(function(){var t;this.show_icons(),this.banner_enabled()&&(e(this.banner_container).empty().show().append('<div id="wc-stripe-payment-request-banner"></div>'),e(this.banner_container).show().addClass("active").closest(".wc-stripe-banner-checkout").addClass("active"),(t=this.stripe.elements().create("paymentRequestButton",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{type:this.params.button.type,theme:this.params.button.theme,height:this.params.button.height}}})).on("click",this.banner_checkout.bind(this)),t.mount("#wc-stripe-payment-request-banner"))}.bind(this))},t.prototype.create_button=function(){this.$button&&this.$button.remove(),this.$button=e('<div id="wc-stripe-payment-request-container"></div>'),e("#place_order").after(this.$button),a.PaymentRequest.prototype.create_button.call(this),this.trigger_payment_method_selected()},t.prototype.updated_checkout=function(){e(this.container).length&&a.PaymentRequest.prototype.initialize.call(this)},t.prototype.banner_checkout=function(t){this.set_payment_method(this.gateway_id),this.set_use_new_option(!0),e('[name="terms"]').prop("checked",!0)},t.prototype.on_token_received=function(){a.CheckoutGateway.prototype.on_token_received.apply(this,arguments),this.fields.toFormFields(),this.payment_request_options.requestShipping&&this.maybe_set_ship_to_different(),this.checkout_fields_valid()&&this.get_form().submit()},t.prototype.update_payment_request=function(){e(this.container).length&&a.PaymentRequest.prototype.initialize.call(this)},t.prototype.show_icons=function(){e(this.container).length&&e(this.container).find(".wc-stripe-paymentRequest-icon.gpay").show()}),new t}(jQuery,window.wc_stripe);
1
+ !function(e,a){var t;e(document.body).is(".single-product")&&((t=function(){a.BaseGateway.call(this,wc_stripe_payment_request_params),window.addEventListener("hashchange",this.hashchange.bind(this)),this.old_qty=this.get_quantity()}).prototype=e.extend({},a.BaseGateway.prototype,a.ProductGateway.prototype,a.PaymentRequest.prototype),t.prototype.initialize=function(){if(!e(this.container).length)return setTimeout(this.initialize.bind(this),1e3);a.ProductGateway.call(this),a.PaymentRequest.prototype.initialize.call(this)},t.prototype.canMakePayment=function(){a.PaymentRequest.prototype.canMakePayment.apply(this,arguments).then(function(){e(document.body).on("change",'[name="quantity"]',this.add_to_cart.bind(this)),e(this.container).parent().parent().addClass("active"),this.is_variable_product()?this.variable_product_selected()?(this.cart_calculation(this.get_product_data().variation.variation_id),e(this.container).removeClass("processingFoundVariation")):this.disable_payment_button():this.cart_calculation()}.bind(this))},t.prototype.add_to_cart=function(t){this.disable_payment_button(),this.old_qty=this.get_quantity();var e=this.get_product_data().variation;this.processing_calculation||this.is_variable_product()&&!this.variable_product_selected()||this.cart_calculation(e.variation_id).then(function(){this.is_variable_product()?(this.createPaymentRequest(),this.createPaymentRequestButton(),a.PaymentRequest.prototype.canMakePayment.apply(this,arguments).then(function(){this.enable_payment_button()}.bind(this))):this.enable_payment_button()}.bind(this))},t.prototype.cart_calculation=function(){return a.ProductGateway.prototype.cart_calculation.apply(this,arguments).then(function(){this.paymentRequest.update(this.get_payment_request_update({total:{pending:!1}}))}.bind(this))["catch"](function(){}.bind(this))},t.prototype.create_button=function(){e("#wc-stripe-payment-request-container").empty(),a.PaymentRequest.prototype.create_button.apply(this,arguments),this.$button=e("#wc-stripe-payment-request-container")},t.prototype.button_click=function(t){this.$button.is(".disabled")?t.preventDefault():0==this.get_quantity()&&(t.preventDefault(),this.submit_error(this.params.messages.invalid_amount))},t.prototype.found_variation=function(){a.ProductGateway.prototype.found_variation.apply(this,arguments),this.can_pay&&this.add_to_cart()},t.prototype.block=function(){e.blockUI({message:this.adding_to_cart?this.params.messages.add_to_cart:null,overlayCSS:{background:"#fff",opacity:.6}})}),e(document.body).is(".woocommerce-cart")&&((t=function(){a.BaseGateway.call(this,wc_stripe_payment_request_params),window.addEventListener("hashchange",this.hashchange.bind(this))}).prototype=e.extend({},a.BaseGateway.prototype,a.CartGateway.prototype,a.PaymentRequest.prototype),t.prototype.initialize=function(){a.CartGateway.call(this),a.PaymentRequest.prototype.initialize.call(this)},t.prototype.canMakePayment=function(){a.PaymentRequest.prototype.canMakePayment.apply(this,arguments).then(function(){e(this.container).addClass("active").parent().addClass("active")}.bind(this))},t.prototype.updated_html=function(){e(this.container).length||(this.can_pay=!1),this.can_pay&&this.initialize()},t.prototype.button_click=function(t){this.paymentRequest.update(this.get_payment_request_update({total:{pending:!1}}))},t.prototype.cart_emptied=function(t){this.can_pay=!1}),e(document.body).is(".woocommerce-checkout")&&((t=function(){a.BaseGateway.call(this,wc_stripe_payment_request_params),window.addEventListener("hashchange",this.hashchange.bind(this))}).prototype=e.extend({},a.BaseGateway.prototype,a.CheckoutGateway.prototype,a.PaymentRequest.prototype),t.prototype.initialize=function(){a.CheckoutGateway.call(this),e("form.checkout").on("change",".form-row:not(.address-field) .input-text",this.update_payment_request.bind(this)),e(this.container).length&&a.PaymentRequest.prototype.initialize.call(this)},t.prototype.canMakePayment=function(){a.PaymentRequest.prototype.canMakePayment.apply(this,arguments).then(function(){var t;this.show_icons(),this.banner_enabled()&&(e(this.banner_container).empty().show().append('<div id="wc-stripe-payment-request-banner"></div>'),e(this.banner_container).show().addClass("active").closest(".wc-stripe-banner-checkout").addClass("active"),(t=this.stripe.elements().create("paymentRequestButton",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{type:this.params.button.type,theme:this.params.button.theme,height:this.params.button.height}}})).on("click",this.banner_checkout.bind(this)),t.mount("#wc-stripe-payment-request-banner"))}.bind(this))},t.prototype.create_button=function(){this.$button&&this.$button.remove(),this.$button=e('<div id="wc-stripe-payment-request-container"></div>'),e("#place_order").after(this.$button),a.PaymentRequest.prototype.create_button.call(this),this.trigger_payment_method_selected()},t.prototype.updated_checkout=function(){e(this.container).length&&a.PaymentRequest.prototype.initialize.call(this)},t.prototype.banner_checkout=function(t){this.set_payment_method(this.gateway_id),this.set_use_new_option(!0),e('[name="terms"]').prop("checked",!0)},t.prototype.on_token_received=function(){a.CheckoutGateway.prototype.on_token_received.apply(this,arguments),this.fields.toFormFields(),this.payment_request_options.requestShipping&&this.maybe_set_ship_to_different(),this.checkout_fields_valid()&&this.get_form().trigger("submit")},t.prototype.update_payment_request=function(){e(this.container).length&&a.PaymentRequest.prototype.initialize.call(this)},t.prototype.show_icons=function(){e(this.container).length&&e(this.container).find(".wc-stripe-paymentRequest-icon.gpay").show()}),new t}(jQuery,window.wc_stripe);
assets/js/frontend/wc-stripe.js CHANGED
@@ -594,9 +594,9 @@
594
  }.bind(this))
595
  }
596
 
597
- wc_stripe.BaseGateway.prototype.handle_card_action = function (obj) {
598
  try {
599
- this.stripe.handleCardAction(obj.client_secret).then(function (result) {
600
  if (result.error) {
601
  this.payment_token_received = false;
602
  this.submit_error(result.error);
@@ -606,7 +606,7 @@
606
  return;
607
  }
608
  if (this.is_current_page('order_pay')) {
609
- this.get_form().submit();
610
  } else {
611
  this.process_payment(obj.order_id, obj.order_key);
612
  }
@@ -619,15 +619,15 @@
619
  }
620
  }
621
 
622
- wc_stripe.BaseGateway.prototype.handle_card_setup = function (obj) {
623
  try {
624
- this.stripe.confirmCardSetup(obj.client_secret).then(function (result) {
625
  if (result.error) {
626
  this.payment_token_received = false;
627
  return this.submit_error(result.error);
628
  }
629
  if (this.is_current_page('order_pay')) {
630
- this.get_form().submit();
631
  } else {
632
  this.process_payment(obj.order_id, obj.order_key);
633
  }
@@ -648,9 +648,9 @@
648
  if (obj && obj.hasOwnProperty('client_secret') && obj.gateway_id === this.gateway_id) {
649
  history.pushState({}, '', window.location.pathname);
650
  if (obj.type === 'intent') {
651
- this.handle_card_action(obj);
652
  } else {
653
- this.handle_card_setup(obj);
654
  }
655
  }
656
  } catch (err) {
@@ -669,13 +669,13 @@
669
  wc_stripe.BaseGateway.prototype.sync_payment_intent = function (order_id, client_secret) {
670
  return new Promise(function (resolve, reject) {
671
  // call intent api
672
- $.when($.ajax({
673
  method: 'POST',
674
  dataType: 'json',
675
  url: this.params.routes.sync_intent,
676
  data: {order_id: order_id, client_secret: client_secret},
677
  beforeSend: this.ajax_before_send.bind(this)
678
- })).done(function (response) {
679
  if (response.code) {
680
  reject(response);
681
  } else {
@@ -687,6 +687,27 @@
687
  }.bind(this))
688
  }
689
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
690
  wc_stripe.BaseGateway.prototype.serialize_form = function ($form) {
691
  var formData = $form.find('input').filter(function (i, e) {
692
  if ($(e).is('[name^="add-to-cart"]')) {
@@ -859,7 +880,7 @@
859
  $('[name="terms"]').prop('checked', true);
860
  }.bind(this));
861
  history.pushState({}, '', window.location.pathname + window.location.search);
862
- this.handle_card_action(obj);
863
  }
864
  } catch (err) {
865
 
@@ -940,7 +961,7 @@
940
 
941
  wc_stripe.CheckoutGateway.prototype.block = function () {
942
  if ($().block) {
943
- $('form.checkout').block({
944
  message: null,
945
  overlayCSS: {
946
  background: '#fff',
@@ -953,7 +974,7 @@
953
 
954
  wc_stripe.CheckoutGateway.prototype.unblock = function () {
955
  if ($().block) {
956
- $('form.checkout').unblock();
957
  }
958
  };
959
 
594
  }.bind(this))
595
  }
596
 
597
+ wc_stripe.BaseGateway.prototype.handle_next_action = function (obj) {
598
  try {
599
+ this.stripe[this.handleActionMethod](obj.client_secret).then(function (result) {
600
  if (result.error) {
601
  this.payment_token_received = false;
602
  this.submit_error(result.error);
606
  return;
607
  }
608
  if (this.is_current_page('order_pay')) {
609
+ this.get_form().trigger('submit');
610
  } else {
611
  this.process_payment(obj.order_id, obj.order_key);
612
  }
619
  }
620
  }
621
 
622
+ wc_stripe.BaseGateway.prototype.handle_payment_method_setup = function (obj) {
623
  try {
624
+ this.stripe[this.setupActionMethod](obj.client_secret).then(function (result) {
625
  if (result.error) {
626
  this.payment_token_received = false;
627
  return this.submit_error(result.error);
628
  }
629
  if (this.is_current_page('order_pay')) {
630
+ this.get_form().trigger('submit');
631
  } else {
632
  this.process_payment(obj.order_id, obj.order_key);
633
  }
648
  if (obj && obj.hasOwnProperty('client_secret') && obj.gateway_id === this.gateway_id) {
649
  history.pushState({}, '', window.location.pathname);
650
  if (obj.type === 'intent') {
651
+ this.handle_next_action(obj);
652
  } else {
653
+ this.handle_payment_method_setup(obj);
654
  }
655
  }
656
  } catch (err) {
669
  wc_stripe.BaseGateway.prototype.sync_payment_intent = function (order_id, client_secret) {
670
  return new Promise(function (resolve, reject) {
671
  // call intent api
672
+ $.ajax({
673
  method: 'POST',
674
  dataType: 'json',
675
  url: this.params.routes.sync_intent,
676
  data: {order_id: order_id, client_secret: client_secret},
677
  beforeSend: this.ajax_before_send.bind(this)
678
+ }).done(function (response) {
679
  if (response.code) {
680
  reject(response);
681
  } else {
687
  }.bind(this))
688
  }
689
 
690
+ wc_stripe.BaseGateway.prototype.create_setup_intent = function () {
691
+ return new Promise(function (resolve, reject) {
692
+ $.ajax({
693
+ method: 'POST',
694
+ dataType: 'json',
695
+ data: {payment_method: this.gateway_id},
696
+ url: this.params.routes.setup_intent,
697
+ beforeSend: this.ajax_before_send.bind(this)
698
+ }).done(function (response) {
699
+ if (response.code) {
700
+ reject(response.message);
701
+ } else {
702
+ this.client_secret = response.intent.client_secret;
703
+ resolve(response);
704
+ }
705
+ }.bind(this)).fail(function (xhr, textStatus, errorThrown) {
706
+ this.submit_error(errorThrown);
707
+ }.bind(this));
708
+ }.bind(this))
709
+ }
710
+
711
  wc_stripe.BaseGateway.prototype.serialize_form = function ($form) {
712
  var formData = $form.find('input').filter(function (i, e) {
713
  if ($(e).is('[name^="add-to-cart"]')) {
880
  $('[name="terms"]').prop('checked', true);
881
  }.bind(this));
882
  history.pushState({}, '', window.location.pathname + window.location.search);
883
+ this.handle_next_action(obj);
884
  }
885
  } catch (err) {
886
 
961
 
962
  wc_stripe.CheckoutGateway.prototype.block = function () {
963
  if ($().block) {
964
+ this.get_form().block({
965
  message: null,
966
  overlayCSS: {
967
  background: '#fff',
974
 
975
  wc_stripe.CheckoutGateway.prototype.unblock = function () {
976
  if ($().block) {
977
+ this.get_form().unblock();
978
  }
979
  };
980
 
assets/js/frontend/wc-stripe.min.js CHANGED
@@ -1 +1 @@
1
- !function(a,o){a.wc_stripe={};var i=null;"undefined"==typeof wc_stripe_checkout_fields&&(a.wc_stripe_checkout_fields=[]),wc_stripe.BaseGateway=function(t,e){this.params=t,this.gateway_id=this.params.gateway_id,this.container=void 0===e?"li.payment_method_".concat(this.gateway_id):e,o(this.container).length||(this.container=".payment_method_".concat(this.gateway_id)),this.token_selector=this.params.token_selector,this.saved_method_selector=this.params.saved_method_selector,this.payment_token_received=!1,this.stripe=i,this.fields=r,this.elements=i.elements(o.extend({},{locale:"auto"},this.get_element_options())),this.initialize()},wc_stripe.BaseGateway.prototype.get_page=function(){var t=wc_stripe_params_v3.page;return"cart"===t&&o(document.body).is(".woocommerce-checkout")&&(t="checkout"),t},wc_stripe.BaseGateway.prototype.set_nonce=function(t){this.fields.set(this.gateway_id+"_token_key",t),o(this.token_selector).val(t)},wc_stripe.BaseGateway.prototype.set_intent=function(t){this.fields.set(this.gateway_id+"_payment_intent_key",t),o("#"+this.gateway_id+"_payment_intent_key").val(t)},wc_stripe.BaseGateway.prototype.get_element_options=function(){return this.params.elementOptions},wc_stripe.BaseGateway.prototype.initialize=function(){},wc_stripe.BaseGateway.prototype.create_button=function(){},wc_stripe.BaseGateway.prototype.is_gateway_selected=function(){return o('[name="payment_method"]:checked').val()===this.gateway_id},wc_stripe.BaseGateway.prototype.is_saved_method_selected=function(){return this.is_gateway_selected()&&"saved"===o('[name="'+this.gateway_id+'_payment_type_key"]:checked').val()},wc_stripe.BaseGateway.prototype.has_checkout_error=function(){return 0<o("#wc_stripe_checkout_error").length&&this.is_gateway_selected()},wc_stripe.BaseGateway.prototype.submit_error=function(t,e){var i=this.get_error_message(t);i.indexOf("</ul>")<0&&(i='<div class="'+function(){var t="woocommerce-NoticeGroup";return this.is_current_page("checkout")&&(t+=" woocommerce-NoticeGroup-checkout"),t}.bind(this)()+'"><ul class="woocommerce-error"><li>'+i+"</li></ul></div>");t=o(document.body).triggerHandler("wc_stripe_submit_error",[i,t,this]);i=void 0===t?i:t,this.submit_message(i,e)},wc_stripe.BaseGateway.prototype.submit_error_code=function(t){console.log(t)},wc_stripe.BaseGateway.prototype.get_error_message=function(t){return"object"==typeof t&&(t=t.code&&wc_stripe_messages[t.code]?wc_stripe_messages[t.code]:t.message),t},wc_stripe.BaseGateway.prototype.submit_message=function(t,e){o(".woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message").remove();var i=o(this.message_container);i.length&&(e||!i.closest("form").length)||(i.length||(i=o(this.container)),i=i.closest("form")),i.prepend(t),i.removeClass("processing").unblock(),i.find(".input-text, select, input:checkbox").trigger("blur"),o.scroll_to_notices?o.scroll_to_notices(i):o("html, body").animate({scrollTop:i.offset().top-100},1e3)},wc_stripe.BaseGateway.prototype.get_billing_details=function(){var t=this.get_billing_prefix(),t={name:this.get_customer_name(t),address:{city:this.fields.get(t+"_city",null),country:this.fields.get(t+"_country",null),line1:this.fields.get(t+"_address_1",null),line2:this.fields.get(t+"_address_2",null),postal_code:this.fields.get(t+"_postcode",null),state:this.fields.get(t+"_state",null)}};return t.name&&" "!==t.name||delete t.name,""!=this.fields.get("billing_email")&&(t.email=this.fields.get("billing_email")),""!=this.fields.get("billing_phone")&&(t.phone=this.fields.get("billing_phone")),t},wc_stripe.BaseGateway.prototype.get_first_name=function(t){return o("#"+t+"_first_name").val()},wc_stripe.BaseGateway.prototype.get_last_name=function(t){return o("#"+t+"_last_name").val()},wc_stripe.BaseGateway.prototype.get_shipping_prefix=function(){return this.needs_shipping()&&0<o('[name="ship_to_different_address"]').length&&o('[name="ship_to_different_address"]').is(":checked")?"shipping":"billing"},wc_stripe.BaseGateway.prototype.get_billing_prefix=function(){var t="billing";o('[name="billing_same_as_shipping"]').length&&o('[name="billing_same_as_shipping"]').is(":checked")&&(t="shipping"),o('[name="bill_to_different_address"]').length&&(1<o('[name="bill_to_different_address"]').length?"same_as_shipping"===o('[name="bill_to_different_address"]:checked').val()&&(t="shipping"):o('[name="bill_to_different_address"]').is(":checked")||(t="shipping"));var e=o(document.body).triggerHandler("wc_stripe_get_billing_prefix",[t]);return void 0===e?t:e},wc_stripe.BaseGateway.prototype.should_save_method=function(){return o("#"+this.gateway_id+"_save_source_key").is(":checked")},wc_stripe.BaseGateway.prototype.is_add_payment_method_page=function(){return"add_payment_method"===this.get_page()||o(document.body).hasClass("woocommerce-add-payment-method")},wc_stripe.BaseGateway.prototype.is_change_payment_method=function(){return"change_payment_method"===this.get_page()},wc_stripe.BaseGateway.prototype.get_selected_payment_method=function(){return o(this.saved_method_selector).val()},wc_stripe.BaseGateway.prototype.needs_shipping=function(){return this.get_gateway_data().needs_shipping},wc_stripe.BaseGateway.prototype.get_currency=function(){return this.get_gateway_data().currency},wc_stripe.BaseGateway.prototype.get_gateway_data=function(){var t=o(this.container).find(".woocommerce_".concat(this.gateway_id,"_gateway_data")).data("gateway");return void 0===t&&this.is_current_page("checkout")&&void 0===(t=o("form.checkout").find(".woocommerce_".concat(this.gateway_id,"_gateway_data")).data("gateway"))&&(t=o(".woocommerce_"+this.gateway_id+"_gateway_data").data("gateway")),t},wc_stripe.BaseGateway.prototype.set_gateway_data=function(t){o(this.container).find(".woocommerce_".concat(this.gateway_id,"_gateway_data")).data("gateway",t)},wc_stripe.BaseGateway.prototype.has_gateway_data=function(){return void 0!==this.get_gateway_data()},wc_stripe.BaseGateway.prototype.get_customer_name=function(t){return this.fields.get(t+"_first_name")+" "+this.fields.get(t+"_last_name")},wc_stripe.BaseGateway.prototype.get_customer_email=function(){return this.fields.get("billing_email")},wc_stripe.BaseGateway.prototype.get_address_field_hash=function(t){for(var e=["_first_name","_last_name","_address_1","_address_2","_postcode","_city","_state","_country"],i="",s=0;s<e.length;s++)i+=this.fields.get(t+e[s])+"_";return i},wc_stripe.BaseGateway.prototype.block=function(){o().block&&o.blockUI({message:null,overlayCSS:{background:"#fff",opacity:.6}})},wc_stripe.BaseGateway.prototype.unblock=function(){o().block&&o.unblockUI()},wc_stripe.BaseGateway.prototype.get_form=function(){return o(this.token_selector).closest("form")},wc_stripe.BaseGateway.prototype.get_total_price=function(){return this.get_gateway_data().total},wc_stripe.BaseGateway.prototype.get_total_price_cents=function(){return this.get_gateway_data().total_cents},wc_stripe.BaseGateway.prototype.set_total_price=function(t){var e=this.get_gateway_data();e.total=t,this.set_gateway_data(e)},wc_stripe.BaseGateway.prototype.set_total_price_cents=function(t){var e=this.get_gateway_data();e.total_cents=t,this.set_gateway_data(e)},wc_stripe.BaseGateway.prototype.set_payment_method=function(t){o('[name="payment_method"][value="'+t+'"]').prop("checked",!0).trigger("click")},wc_stripe.BaseGateway.prototype.set_selected_shipping_methods=function(t){if(this.fields.set("shipping_method",t),t&&o('[name^="shipping_method"]').length)for(var e in t){var i=t[e];o('[name="shipping_method['+e+']"][value="'+i+'"]').prop("checked",!0).trigger("change")}},wc_stripe.BaseGateway.prototype.on_token_received=function(t){this.payment_token_received=!0,this.set_nonce(t.id),this.process_checkout()},wc_stripe.BaseGateway.prototype.createPaymentRequest=function(){try{this.payment_request_options=this.get_payment_request_options(),this.paymentRequest=i.paymentRequest(this.payment_request_options),this.payment_request_options.requestShipping&&(this.paymentRequest.on("shippingaddresschange",this.update_shipping_address.bind(this)),this.paymentRequest.on("shippingoptionchange",this.update_shipping_method.bind(this))),this.paymentRequest.on("paymentmethod",this.on_payment_method_received.bind(this))}catch(t){return void this.submit_error(t.message)}},wc_stripe.BaseGateway.prototype.get_payment_request_options=function(){var t={country:this.params.country_code,currency:this.get_currency().toLowerCase(),total:{amount:this.get_total_price_cents(),label:this.params.total_label,pending:!0},requestPayerName:function(){return!this.is_current_page("checkout")||!this.is_valid_address(this.get_address_object("billing"),"billing",["email","phone"])}.bind(this)(),requestPayerEmail:this.fields.requestFieldInWallet("billing_email"),requestPayerPhone:this.fields.requestFieldInWallet("billing_phone"),requestShipping:function(){if(this.needs_shipping()){var t=this.get_shipping_prefix();if(this.is_current_page("checkout")&&!this.is_valid_address(this.get_address_object(t),t,["email","phone"])||!this.is_current_page("checkout"))return!0}return!1}.bind(this)()},e=this.get_display_items(),i=this.get_shipping_options();return e&&(t.displayItems=e),t.requestShipping&&i&&(t.shippingOptions=i),t},wc_stripe.BaseGateway.prototype.get_payment_request_update=function(t){var e={currency:this.get_currency().toLowerCase(),total:{amount:parseInt(this.get_total_price_cents()),label:this.params.total_label,pending:!0}},i=this.get_display_items(),s=this.get_shipping_options();return i&&(e.displayItems=i),this.payment_request_options.requestShipping&&s&&(e.shippingOptions=s),t&&(e=o.extend(!0,{},e,t)),e},wc_stripe.BaseGateway.prototype.get_display_items=function(){return this.get_gateway_data().items},wc_stripe.BaseGateway.prototype.set_display_items=function(t){var e=this.get_gateway_data();e.items=t,this.set_gateway_data(e)},wc_stripe.BaseGateway.prototype.get_shipping_options=function(){return this.get_gateway_data().shipping_options},wc_stripe.BaseGateway.prototype.set_shipping_options=function(t){var e=this.get_gateway_data();e.shipping_options=t,this.set_gateway_data(e)},wc_stripe.BaseGateway.prototype.map_address=function(t){return{city:t.city,postcode:t.postalCode,state:t.region,country:t.country}},wc_stripe.BaseGateway.prototype.on_payment_method_received=function(t){try{this.payment_response=t,this.populate_checkout_fields(t),t.complete("success"),this.on_token_received(t.paymentMethod)}catch(e){a.alert(e)}},wc_stripe.BaseGateway.prototype.populate_checkout_fields=function(t){this.set_nonce(t.paymentMethod.id),this.update_addresses(t)},wc_stripe.BaseGateway.prototype.update_addresses=function(t){t.payerName&&this.fields.set("name",t.payerName,"billing"),t.payerEmail&&this.fields.set("email",t.payerEmail,"billing"),t.payerPhone&&(this.fields.set("phone",t.payerPhone,"billing"),this.fields.exists("shipping_phone")&&this.fields.isEmpty("shipping_phone")&&this.fields.set("shipping_phone",t.payerPhone)),t.shippingAddress&&this.populate_shipping_fields(t.shippingAddress),t.paymentMethod.billing_details.address&&this.populate_billing_fields(t.paymentMethod.billing_details.address)},wc_stripe.BaseGateway.prototype.populate_address_fields=function(t,e){for(var i in t)null!==t[i]&&this.fields.set(i,t[i],e)},wc_stripe.BaseGateway.prototype.populate_billing_fields=function(t){this.populate_address_fields(t,"billing")},wc_stripe.BaseGateway.prototype.populate_shipping_fields=function(t){this.populate_address_fields(t,"shipping")},wc_stripe.BaseGateway.prototype.get_address_fields=function(){return["first_name","last_name","country","address_1","address_2","city","state","postcode","phone","email"]},wc_stripe.BaseGateway.prototype.get_address_object=function(e){var i={};return this.get_address_fields().forEach(function(t){i[t]=this.fields.get(t,e)}.bind(this)),i},wc_stripe.BaseGateway.prototype.is_current_page=function(t){return Array.isArray(t)?-1<t.indexOf(this.get_page()):this.get_page()===t},wc_stripe.BaseGateway.prototype.is_valid_address=function(t,e,i){if(o.isEmptyObject(t))return!1;var s=this.get_address_fields();void 0!==i&&i.forEach(function(t){-1<s.indexOf(t)&&s.splice(s.indexOf(t),1)});for(var a=0;a<s.length;a++){var n=s[a];if(this.fields.required(e+"_"+n)&&(!t[n]||"undefined"==typeof t[n]||!this.fields.isValid(n,t[n],t)))return!1}return!0},wc_stripe.BaseGateway.prototype.ajax_before_send=function(t){0<this.params.user_id&&t.setRequestHeader("X-WP-Nonce",this.params.rest_nonce)},wc_stripe.BaseGateway.prototype.process_checkout=function(){return new Promise(function(){this.block(),o.ajax({url:this.params.routes.checkout,method:"POST",dataType:"json",data:o.extend({},this.serialize_fields(),{payment_method:this.gateway_id,page_id:this.get_page(),currency:this.get_currency()}),beforeSend:this.ajax_before_send.bind(this)}).done(function(t){t.reload?a.location.reload():"success"===t.result?a.location=t.redirect:(t.messages&&this.submit_error(t.messages),this.unblock())}.bind(this)).fail(function(t,e,i){this.unblock(),this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.BaseGateway.prototype.process_payment=function(t,e){o.ajax({method:"POST",url:this.params.routes.checkout_payment,dataType:"json",data:o.extend({},this.fields.toJson(),{order_id:t,order_key:e}),beforeSend:this.ajax_before_send.bind(this)}).done(function(t){if(t.result&&"success"===t.result)a.location=t.redirect;else{if(t.reload)return a.location.reload();t.messages?(this.payment_token_received=!1,this.submit_error(t.messages)):this.submit_error(wc_checkout_params.i18n_checkout_error)}}.bind(this)).fail(function(){}.bind(this))},wc_stripe.BaseGateway.prototype.handle_card_action=function(e){try{return this.stripe.handleCardAction(e.client_secret).then(function(t){if(t.error)return this.payment_token_received=!1,this.submit_error(t.error),void this.sync_payment_intent(e.order_id,e.client_secret)["catch"](function(t){this.submit_error(t.message)}.bind(this));this.is_current_page("order_pay")?this.get_form().submit():this.process_payment(e.order_id,e.order_key)}.bind(this))["catch"](function(t){this.submit_error(t.message)}.bind(this)),!1}catch(t){}},wc_stripe.BaseGateway.prototype.handle_card_setup=function(e){try{return this.stripe.confirmCardSetup(e.client_secret).then(function(t){if(t.error)return this.payment_token_received=!1,this.submit_error(t.error);this.is_current_page("order_pay")?this.get_form().submit():this.process_payment(e.order_id,e.order_key)}.bind(this))["catch"](function(t){this.submit_error(t.message)}.bind(this)),!1}catch(t){}},wc_stripe.BaseGateway.prototype.hashchange=function(t){var e=a.location.hash.match(/response=(.*)/);if(e)try{var i=JSON.parse(a.atob(decodeURIComponent(e[1])));i&&i.hasOwnProperty("client_secret")&&i.gateway_id===this.gateway_id&&(history.pushState({},"",a.location.pathname),"intent"===i.type?this.handle_card_action(i):this.handle_card_setup(i))}catch(s){}return!0},wc_stripe.BaseGateway.prototype.sync_payment_intent=function(t,s){return new Promise(function(e,i){o.when(o.ajax({method:"POST",dataType:"json",url:this.params.routes.sync_intent,data:{order_id:t,client_secret:s},beforeSend:this.ajax_before_send.bind(this)})).done(function(t){(t.code?i:e)(t)}).fail(function(t,e,i){this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.BaseGateway.prototype.serialize_form=function(t){var e,i=t.find("input").filter(function(t,e){return!o(e).is('[name^="add-to-cart"]')}.bind(this)).serializeArray(),s={};for(e in i){var a=i[e];s[a.name]=a.value}return s.payment_method=this.gateway_id,s},wc_stripe.BaseGateway.prototype.serialize_fields=function(){return o.extend({},this.fields.toJson(),o(document.body).triggerHandler("wc_stripe_process_checkout_data",[this,this.fields]))},wc_stripe.BaseGateway.prototype.map_shipping_methods=function(t){var e={};return"default"===t||1<(t=t.match(/^([\w+]):(.+)$/)).length&&(e[t[1]]=t[2]),e},wc_stripe.BaseGateway.prototype.maybe_set_ship_to_different=function(){o('[name="ship_to_different_address"]').length&&o('[name="ship_to_different_address"]').prop("checked",this.get_address_field_hash("billing")!==this.get_address_field_hash("shipping")).trigger("change")},wc_stripe.BaseGateway.prototype.update_shipping_address=function(s){return new Promise(function(e,i){o.ajax({url:this.params.routes.shipping_address,method:"POST",dataType:"json",data:{address:this.map_address(s.shippingAddress),payment_method:this.gateway_id,page_id:this.get_page(),currency:this.get_currency()},beforeSend:this.ajax_before_send.bind(this)}).done(function(t){t.code?(s.updateWith(t.data.newData),i(t.data)):(s.updateWith(t.data.newData),this.fields.set("shipping_method",t.data.shipping_method),e(t.data))}.bind(this)).fail(function(){}.bind(this))}.bind(this))},wc_stripe.BaseGateway.prototype.update_shipping_method=function(s){return new Promise(function(e,i){o.ajax({url:this.params.routes.shipping_method,method:"POST",dataType:"json",data:{shipping_method:s.shippingOption.id,payment_method:this.gateway_id,currency:this.get_currency(),page_id:this.get_page()},beforeSend:this.ajax_before_send.bind(this)}).done(function(t){t.code?(s.updateWith(t.data.newData),i(t.data)):(this.set_selected_shipping_methods(t.data.shipping_methods),s.updateWith(t.data.newData),e(t.data))}.bind(this)).fail(function(t,e,i){this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.CheckoutGateway=function(){this.message_container="li.payment_method_"+this.gateway_id,this.banner_container="li.banner_payment_method_"+this.gateway_id,o(document.body).on("update_checkout",this.update_checkout.bind(this)),o(document.body).on("updated_checkout",this.updated_checkout.bind(this)),o(document.body).on("updated_checkout",this.container_styles.bind(this)),o(document.body).on("checkout_error",this.checkout_error.bind(this)),o(this.token_selector).closest("form").on("checkout_place_order_"+this.gateway_id,this.checkout_place_order.bind(this)),o(document.body).on("wc_stripe_new_method_"+this.gateway_id,this.on_show_new_methods.bind(this)),o(document.body).on("wc_stripe_saved_method_"+this.gateway_id,this.on_show_saved_methods.bind(this)),o(document.body).on("wc_stripe_payment_method_selected",this.on_payment_method_selected.bind(this)),this.banner_enabled()&&o(".woocommerce-billing-fields").length&&o(".wc-stripe-banner-checkout").css("max-width",o(".woocommerce-billing-fields").outerWidth(!0)),this.container_styles(),this.hasOrderReviewParams()},wc_stripe.CheckoutGateway.prototype.container_styles=function(){this.params.description||o(this.container).addClass("wc-stripe-no-desc"),o(this.container).find(".wc-stripe-saved-methods").length||o(this.container).find(".payment_box").addClass("wc-stripe-no-methods")},wc_stripe.CheckoutGateway.prototype.hasOrderReviewParams=function(){var t=a.location.search.match(/_stripe_order_review=(.+)/);if(t&&1<t.length)try{var e=JSON.parse(a.atob(decodeURIComponent(t[1])));this.gateway_id===e.payment_method&&(o(function(){this.payment_token_received=!0,this.set_nonce(e.payment_nonce),this.set_use_new_option(!0)}.bind(this)),history.pushState({},"",a.location.pathname))}catch(i){}},wc_stripe.CheckoutGateway.prototype.has3DSecureParams=function(){if((this.is_current_page("order_pay")||this.is_change_payment_method())&&a.location.hash&&"string"==typeof a.location.hash){var t=a.location.hash.match(/response=(.*)/);if(t)try{var e=JSON.parse(a.atob(decodeURIComponent(t[1])));e&&e.hasOwnProperty("client_secret")&&e.gateway_id===this.gateway_id&&(o(function(){this.set_payment_method(this.gateway_id),this.set_use_new_option(!0),this.set_nonce(e.pm),!0===e.save_method&&this.set_save_payment_method(!0),o('[name="terms"]').prop("checked",!0)}.bind(this)),history.pushState({},"",a.location.pathname+a.location.search),this.handle_card_action(e))}catch(i){}}},wc_stripe.CheckoutGateway.prototype.update_shipping_address=function(){return wc_stripe.BaseGateway.prototype.update_shipping_address.apply(this,arguments).then(function(t){this.populate_address_fields(t.address,this.get_shipping_prefix()),this.fields.toFormFields({update_shipping_method:!1})}.bind(this))},wc_stripe.CheckoutGateway.prototype.updated_checkout=function(){},wc_stripe.CheckoutGateway.prototype.update_checkout=function(){},wc_stripe.CheckoutGateway.prototype.checkout_error=function(){this.has_checkout_error()&&(this.payment_token_received=!1,this.payment_response=null,this.show_payment_button(),this.hide_place_order())},wc_stripe.CheckoutGateway.prototype.is_valid_checkout=function(){return!(o('[name="terms"]').length&&o('[name="terms"]').is(":visible")&&!o('[name="terms"]').is(":checked"))},wc_stripe.CheckoutGateway.prototype.get_payment_method=function(){return o('[name="payment_method"]:checked').val()},wc_stripe.CheckoutGateway.prototype.set_use_new_option=function(t){o("#"+this.gateway_id+"_use_new").prop("checked",t).trigger("change")},wc_stripe.CheckoutGateway.prototype.checkout_place_order=function(){return this.is_valid_checkout()?!!this.is_saved_method_selected()||this.payment_token_received:(this.submit_error(this.params.messages.terms),!1)},wc_stripe.CheckoutGateway.prototype.on_token_received=function(t){this.payment_token_received=!0,this.set_nonce(t.id),this.hide_payment_button(),this.show_place_order()},wc_stripe.CheckoutGateway.prototype.block=function(){o().block&&o("form.checkout").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},wc_stripe.CheckoutGateway.prototype.unblock=function(){o().block&&o("form.checkout").unblock()},wc_stripe.CheckoutGateway.prototype.hide_place_order=function(){o("#place_order").addClass("wc-stripe-hide")},wc_stripe.CheckoutGateway.prototype.show_place_order=function(){o("#place_order").removeClass("wc-stripe-hide")},wc_stripe.CheckoutGateway.prototype.on_show_new_methods=function(){this.payment_token_received?(this.show_place_order(),this.hide_payment_button()):(this.hide_place_order(),this.show_payment_button())},wc_stripe.CheckoutGateway.prototype.on_show_saved_methods=function(){this.hide_payment_button(),this.show_place_order()},wc_stripe.CheckoutGateway.prototype.show_payment_button=function(){this.$button&&this.$button.show()},wc_stripe.CheckoutGateway.prototype.hide_payment_button=function(){this.$button&&this.$button.hide()},wc_stripe.CheckoutGateway.prototype.trigger_payment_method_selected=function(){this.on_payment_method_selected(null,o('[name="payment_method"]:checked').val())},wc_stripe.CheckoutGateway.prototype.on_payment_method_selected=function(t,e){e===this.gateway_id?this.payment_token_received||this.is_saved_method_selected()?(this.hide_payment_button(),this.show_place_order()):(this.show_payment_button(),this.hide_place_order()):(this.hide_payment_button(),e&&e.indexOf("stripe_")<0&&this.show_place_order())},wc_stripe.CheckoutGateway.prototype.banner_enabled=function(){return"1"===this.params.banner_enabled},wc_stripe.CheckoutGateway.prototype.checkout_fields_valid=function(){if(["checkout","order_pay"].indexOf(this.get_page())<0)return!0;var t=!0;return(t=this.fields.validateFields("billing"))?this.needs_shipping()&&o("#ship-to-different-address-checkbox").is(":checked")?(t=this.fields.validateFields("shipping"))||this.submit_error(this.params.messages.required_field):(t=this.is_valid_checkout())||this.submit_error(this.params.messages.terms):this.submit_error(this.params.messages.required_field),t},wc_stripe.CheckoutGateway.prototype.cart_contains_subscription=function(){return"undefined"!=typeof wc_stripe_cart_contains_subscription&&!0===wc_stripe_cart_contains_subscription},wc_stripe.CheckoutGateway.prototype.set_save_payment_method=function(t){o('[name="'+this.gateway_id+'_save_source_key"]').prop("checked",t)},wc_stripe.ProductGateway=function(){this.message_container="div.product",o("form.cart").on("found_variation",this.found_variation.bind(this)),o("form.cart").on("reset_data",this.reset_variation_data.bind(this)),this.buttonWidth=o("form.cart div.quantity").outerWidth(!0)+o(".single_add_to_cart_button").outerWidth();var t=o(".single_add_to_cart_button").css("marginLeft");t&&(this.buttonWidth+=parseInt(t.replace("px",""))),o(this.container).css("max-width",this.buttonWidth+"px")},wc_stripe.ProductGateway.prototype.get_quantity=function(){return parseInt(o('[name="quantity"]').val())},wc_stripe.ProductGateway.prototype.set_rest_nonce=function(t,e){this.params.rest_nonce=e},wc_stripe.ProductGateway.prototype.found_variation=function(t,e){var i=this.get_gateway_data();i.product.price=e.display_price,i.needs_shipping=!e.is_virtual,i.product.variation=e,this.set_gateway_data(i)},wc_stripe.ProductGateway.prototype.reset_variation_data=function(){var t=this.get_product_data();t.variation=!1,this.set_product_data(t),this.disable_payment_button()},wc_stripe.ProductGateway.prototype.disable_payment_button=function(){this.$button&&this.get_button().prop("disabled",!0).addClass("disabled")},wc_stripe.ProductGateway.prototype.enable_payment_button=function(){this.$button&&this.get_button().prop("disabled",!1).removeClass("disabled")},wc_stripe.ProductGateway.prototype.get_button=function(){return this.$button},wc_stripe.ProductGateway.prototype.is_variable_product=function(){return!!this.get_product_data().variation||0<o('[name="variation_id"]').length},wc_stripe.ProductGateway.prototype.variable_product_selected=function(){var t=this.get_product_data().variation,e=o('input[name="variation_id"]').val();return!!t||!!e&&"0"!=e},wc_stripe.ProductGateway.prototype.get_product_data=function(){return this.get_gateway_data().product},wc_stripe.ProductGateway.prototype.set_product_data=function(t){var e=this.get_gateway_data();e.product=t,this.set_gateway_data(e)},wc_stripe.ProductGateway.prototype.get_form=function(){return o(this.container).closest("form")},wc_stripe.ProductGateway.prototype.add_to_cart=function(){return new Promise(function(e,i){this.block();var t={product_id:this.get_product_data().id,variation_id:this.is_variable_product()?o('[name="variation_id"]').val():0,qty:o('[name="quantity"]').val(),payment_method:this.gateway_id,currency:this.get_currency(),page_id:this.get_page()},s=this.get_form().find(':not([name="add-to-cart"],[name="quantity"],[name^="attribute_"],[name="variation_id"])').serializeArray();if(s)for(var a in s)t[s[a].name]=s[a].value;o.ajax({url:this.params.routes.add_to_cart,method:"POST",dataType:"json",data:o.extend({},t,this.get_product_variations()),beforeSend:this.ajax_before_send.bind(this)}).done(function(t){this.unblock(),t.code?(this.submit_error(t.message),i(t)):(this.set_total_price(t.data.total),this.set_total_price_cents(t.data.totalCents),this.set_display_items(t.data.displayItems),e(t.data))}.bind(this)).fail(function(t,e,i){this.unblock(),this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.ProductGateway.prototype.cart_calculation=function(t){return new Promise(function(e,i){this.processing_calculation=!0,o.ajax({url:this.params.routes.cart_calculation,method:"POST",dataType:"json",data:o.extend({},{product_id:this.get_product_data().id,variation_id:this.is_variable_product()&&t?t:0,qty:o('[name="quantity"]').val(),currency:this.get_currency(),payment_method:this.gateway_id},this.get_product_variations()),beforeSend:this.ajax_before_send.bind(this)}).done(function(t){this.processing_calculation=!1,t.code?(this.cart_calculation_error=!0,i(t)):(this.set_total_price(t.data.total),this.set_total_price_cents(t.data.totalCents),this.set_display_items(t.data.displayItems),e(t.data))}.bind(this)).fail(function(){this.processing_calculation=!1}.bind(this))}.bind(this))},wc_stripe.ProductGateway.prototype.get_product_variations=function(){var s={};return this.is_variable_product()&&o('.variations [name^="attribute_"]').each(function(t,e){var i=o(e),e=i.data("attribute_name")||i.attr("name");s[e]=i.val()}),s},wc_stripe.CartGateway=function(){this.message_container="div.woocommerce",o(document.body).on("updated_wc_div",this.updated_html.bind(this)),o(document.body).on("updated_cart_totals",this.updated_html.bind(this)),o(document.body).on("wc_cart_emptied",this.cart_emptied.bind(this))},wc_stripe.CartGateway.prototype.submit_error=function(t){this.submit_message(this.get_error_message(t))},wc_stripe.CartGateway.prototype.updated_html=function(t){},wc_stripe.CartGateway.prototype.cart_emptied=function(t){},wc_stripe.CartGateway.prototype.add_cart_totals_class=function(){o(".cart_totals").addClass("stripe_cart_gateway_active")},wc_stripe.GooglePay=function(){};var s={apiVersion:2,apiVersionMinor:0},n={type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY"],allowedCardNetworks:["AMEX","DISCOVER","INTERAC","JCB","MASTERCARD","VISA"],assuranceDetailsRequired:!0}};wc_stripe.GooglePay.prototype.update_addresses=function(t){var e;t.paymentMethodData.info.billingAddress&&(e=t.paymentMethodData.info.billingAddress,this.is_current_page("checkout")&&this.is_valid_address(this.billing_address_object,"billing",["phone","email"])&&(e={phoneNumber:e.phoneNumber}),this.populate_billing_fields(e),e.phoneNumber&&this.fields.exists("shipping_phone")&&this.fields.isEmpty("shipping_phone")&&this.fields.set("shipping_phone",e.phoneNumber)),t.shippingAddress&&this.populate_shipping_fields(t.shippingAddress),t.email&&this.fields.set("email",t.email,"billing")},wc_stripe.GooglePay.prototype.map_address=function(t){return{city:t.locality,postcode:t.postalCode,state:t.administrativeArea,country:t.countryCode}},wc_stripe.GooglePay.prototype.update_payment_data=function(s){return new Promise(function(e,i){var t="default"==s.shippingOptionData.id?null:s.shippingOptionData.id;o.when(o.ajax({url:this.params.routes.payment_data,dataType:"json",method:"POST",data:{address:this.map_address(s.shippingAddress),shipping_method:t,page_id:this.get_page(),currency:this.get_currency()},beforeSend:this.ajax_before_send.bind(this)})).done(function(t){t.code?i(t.data.data):e(t.data)}.bind(this)).fail(function(){i()}.bind(this))}.bind(this))},wc_stripe.GooglePay.prototype.on_payment_data_changed=function(i){return new Promise(function(e){this.update_payment_data(i).then(function(t){e(t.paymentRequestUpdate),this.set_selected_shipping_methods(t.shipping_methods),this.payment_data_updated(t,i)}.bind(this))["catch"](function(t){e(t)}.bind(this))}.bind(this))},wc_stripe.GooglePay.prototype.payment_data_updated=function(t){},wc_stripe.GooglePay.prototype.get_merchant_info=function(){var t={merchantId:this.params.merchant_id,merchantName:this.params.merchant_name};return"TEST"===this.params.environment&&delete t.merchantId,t},wc_stripe.GooglePay.prototype.get_payment_options=function(){var t,e={environment:this.params.environment,merchantInfo:this.get_merchant_info(),paymentDataCallbacks:{onPaymentAuthorized:function(){return new Promise(function(t){t({transactionState:"SUCCESS"})}.bind(this))}}};return this.needs_shipping()&&(t=this.get_shipping_prefix(),(!this.is_current_page("checkout")||this.is_valid_address(this.get_address_object(t),t,["email","phone"]))&&this.is_current_page("checkout")||(e.paymentDataCallbacks.onPaymentDataChanged=this.on_payment_data_changed.bind(this))),e},wc_stripe.GooglePay.prototype.build_payment_request=function(){var t=o.extend({},s,{emailRequired:this.fields.requestFieldInWallet("billing_email"),merchantInfo:this.get_merchant_info(),allowedPaymentMethods:[o.extend({type:"CARD",tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:"stripe","stripe:version":"2018-10-31","stripe:publishableKey":this.params.api_key}}},n)],shippingAddressRequired:function(){if(this.needs_shipping()){var t=this.get_shipping_prefix();if(this.is_current_page("checkout")&&!this.is_valid_address(this.get_address_object(t),t,["email","phone"])||!this.is_current_page("checkout"))return!0}return!1}.bind(this)(),transactionInfo:{countryCode:this.params.processing_country,currencyCode:this.get_currency(),totalPriceStatus:"ESTIMATED",totalPrice:this.get_total_price().toString(),displayItems:this.get_display_items(),totalPriceLabel:this.params.total_price_label}});return t.allowedPaymentMethods[0].parameters.billingAddressRequired=function(){if(this.is_current_page("checkout")){var t=this.billing_address_object=this.get_address_object("billing");return this.fields.requestFieldInWallet("billing_phone")||!this.is_valid_address(t,"billing",["email"])?!0:!1}return!0}.bind(this)(),t.allowedPaymentMethods[0].parameters.billingAddressRequired&&(t.allowedPaymentMethods[0].parameters.billingAddressParameters={format:"FULL",phoneNumberRequired:this.fields.requestFieldInWallet("billing_phone")}),t.shippingAddressRequired?(t.shippingAddressParameters={},t.shippingOptionRequired=!0,t.shippingOptionParameters={shippingOptions:this.get_shipping_options()},t.callbackIntents=["SHIPPING_ADDRESS","SHIPPING_OPTION","PAYMENT_AUTHORIZATION"]):t.callbackIntents=["PAYMENT_AUTHORIZATION"],this.payment_request_options=t},wc_stripe.GooglePay.prototype.createPaymentsClient=function(){this.paymentsClient=new google.payments.api.PaymentsClient(this.get_payment_options())},wc_stripe.GooglePay.prototype.isReadyToPay=function(){return new Promise(function(t){var e=o.extend({},s);e.allowedPaymentMethods=[n],this.paymentsClient.isReadyToPay(e).then(function(){this.can_pay=!0,this.create_button(),t()}.bind(this))["catch"](function(t){t&&t.message&&-1<t.message.indexOf("ShadowRoot")?console.log("GPay is not supported on this browser."):this.submit_error(t)}.bind(this))}.bind(this))},wc_stripe.GooglePay.prototype.create_button=function(){this.$button&&this.$button.remove(),this.$button=o(this.paymentsClient.createButton(this.get_button_options())),this.$button.addClass("gpay-button-container")},wc_stripe.GooglePay.prototype.get_button_options=function(){var t={onClick:this.start.bind(this),buttonColor:this.params.button_color,buttonType:this.params.button_style,buttonSizeMode:this.params.button_size_mode};return null!==this.params.button_locale&&(t.buttonLocale=this.params.button_locale),t},wc_stripe.GooglePay.prototype.start=function(){this.createPaymentsClient(),this.paymentsClient.loadPaymentData(this.build_payment_request()).then(function(t){var e=JSON.parse(t.paymentMethodData.tokenizationData.token);this.update_addresses(t),this.stripe.createPaymentMethod({type:"card",card:{token:e.id},billing_details:this.get_billing_details()}).then(function(t){if(t.error)return this.submit_error(t.error);this.on_token_received(t.paymentMethod)}.bind(this))}.bind(this))["catch"](function(t){"CANCELED"!==t.statusCode&&(t.statusMessage&&-1<t.statusMessage.indexOf("paymentDataRequest.callbackIntent")?this.submit_error_code("DEVELOPER_ERROR_WHITELIST"):this.submit_error(t.statusMessage))}.bind(this))},wc_stripe.ApplePay=function(){},wc_stripe.ApplePay.prototype.initialize=function(){this.createPaymentRequest(),this.canMakePayment()},wc_stripe.ApplePay.prototype.get_payment_request_options=function(){return o.extend({},wc_stripe.BaseGateway.prototype.get_payment_request_options.apply(this,arguments),{disableWallets:["googlePay"]})},wc_stripe.ApplePay.prototype.create_button=function(){this.$button&&this.$button.remove(),this.$button=o(this.params.button),this.$button.on("click",this.start.bind(this)),this.append_button()},wc_stripe.ApplePay.prototype.canMakePayment=function(){return new Promise(function(e){this.paymentRequest.canMakePayment().then(function(t){t&&t.applePay&&(this.can_pay=!0,this.create_button(),o(this.container).show(),e(t))}.bind(this))}.bind(this))},wc_stripe.ApplePay.prototype.start=function(t){t.preventDefault(),this.paymentRequest.update(this.get_payment_request_update({total:{pending:!1}})),this.paymentRequest.show()},wc_stripe.PaymentRequest=function(){},wc_stripe.PaymentRequest.prototype.initialize=function(){this.createPaymentRequest(),this.createPaymentRequestButton(),this.canMakePayment(),this.paymentRequestButton.on("click",this.button_click.bind(this))},wc_stripe.PaymentRequest.prototype.button_click=function(t){},wc_stripe.PaymentRequest.prototype.createPaymentRequestButton=function(){this.paymentRequestButton&&this.paymentRequestButton.destroy(),this.paymentRequestButton=this.elements.create("paymentRequestButton",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{type:this.params.button.type,theme:this.params.button.theme,height:this.params.button.height}}})},wc_stripe.PaymentRequest.prototype.canMakePayment=function(){return new Promise(function(e){var i=this.paymentRequest;this.paymentRequest.canMakePayment().then(function(t){t&&!t.applePay&&i===this.paymentRequest&&(this.can_pay=!0,this.create_button(),o(this.container).show(),e(t))}.bind(this))}.bind(this))},wc_stripe.PaymentRequest.prototype.create_button=function(){this.paymentRequestButton.mount("#wc-stripe-payment-request-container")},wc_stripe.Afterpay=function(){},wc_stripe.Afterpay.prototype.is_eligible=function(t){return this.needs_shipping()&&t>this.get_min()&&t<this.get_max()},wc_stripe.Afterpay.prototype.get_min=function(){var t=this.get_currency(),t=this.params.requirements[t];return t?t[1]:0},wc_stripe.Afterpay.prototype.get_max=function(){var t=this.get_currency(),t=this.params.requirements[t];return t?t[2]:0},wc_stripe.Afterpay.prototype.add_eligibility=function(t,e){o(t).length&&(this.is_eligible(e)?o(t).removeClass("afterpay-ineligible"):this.hide_ineligible_active()&&o(t).addClass("afterpay-ineligible"))},wc_stripe.Afterpay.prototype.hide_ineligible_active=function(){return"yes"===this.params.hide_ineligible},wc_stripe.CheckoutFields=function(t,e){this.params=t,this.page=e,this.session_values=this.supportsSessionStorage()&&sessionStorage.getItem("wc_stripe_checkout_fields")?JSON.parse(sessionStorage.getItem("wc_stripe_checkout_fields")):{},this.fields=new Map(Object.keys(this.params).map(function(t){return null===this.params[t].value&&(t in this.session_values&&null!==this.session_values[t]?this.params[t].value=this.session_values[t]:this.params[t].value=""),[t,this.params[t].value]}.bind(this))),("checkout"===e||"cart"===e&&o(document.body).is(".woocommerce-checkout")||0<o("form.woocommerce-checkout").length)&&(o(document.body).on("updated_checkout",this.updated_checkout.bind(this)),o(document.body).on("change",'[name^="billing_"], [name^="shipping_"]',this.onChange.bind(this)),o("form.checkout").on("change",'.input-text:not([name^="billing_"], [name^="shipping_"], [name="account_password"]), select:not([name^="billing_"], [name^="shipping_"])',this.onChange.bind(this)),o("form.checkout").on("change",'[name="ship_to_different_address"]',this.on_ship_to_address_change.bind(this)),this.init_i18n(),o('[name="ship_to_different_address"]').is(":checked")?this.update_required_fields(o("#shipping_country").val(),"shipping_country"):this.update_required_fields(o("#billing_country").val(),"billing_country"))},wc_stripe.CheckoutFields.prototype.supportsSessionStorage=function(){return"sessionStorage"in a&&null!==a.sessionStorage&&["getItem","setItem"].reduce(function(t,e){return t&&e in sessionStorage}.bind(this),!0)},wc_stripe.CheckoutFields.prototype.init_i18n=function(){"undefined"!=typeof wc_address_i18n_params?this.locales=JSON.parse(wc_address_i18n_params.locale.replace(/&quot;/g,'"')):this.locales=null},wc_stripe.CheckoutFields.prototype.updated_checkout=function(){this.syncCheckoutFieldsWithDOM()},wc_stripe.CheckoutFields.prototype.syncCheckoutFieldsWithDOM=function(){for(var t in this.params)o("#"+t).length&&this.fields.set(t,o("#"+t).val())},wc_stripe.CheckoutFields.prototype.onChange=function(t){try{var e=t.currentTarget.name,i=t.currentTarget.value;this.fields.set(e,i),"billing_country"!==e&&"shipping_country"!==e||this.update_required_fields(i,e),this.supportsSessionStorage()&&sessionStorage.setItem("wc_stripe_checkout_fields",JSON.stringify(this.toJson()))}catch(s){console.log(s)}},wc_stripe.CheckoutFields.prototype.update_required_fields=function(t,e){if(this.locales){var i,s=-1<e.indexOf("billing_")?"billing_":"shipping_",t="undefined"!=typeof this.locales[t]?this.locales[t]:this.locales["default"],a=o.extend(!0,{},this.locales["default"],t);for(i in a){var n=s+i;this.params[n]&&(this.params[n]=o.extend(!0,{},this.params[n],a[i]))}}},wc_stripe.CheckoutFields.prototype.on_ship_to_address_change=function(t){o(t.currentTarget).is(":checked")&&this.update_required_fields(o("#shipping_country").val(),"shipping_country")},wc_stripe.CheckoutFields.prototype.requestFieldInWallet=function(t){return"checkout"===this.page?this.required(t)&&this.isEmpty(t):"order_pay"!==this.page&&this.required(t)},wc_stripe.CheckoutFields.prototype.set=function(t,e,i){this[t]&&"function"==typeof this[t]?this[t]().set.call(this,e,i):this.fields.set(t,e)},wc_stripe.CheckoutFields.prototype.get=function(t,e){var i;return this[t]&&"function"==typeof this[t]?i=this[t]().get.call(this,e):null!=(i=this.fields.get(t))&&""!==i||void 0!==e&&(i=e),void 0===i?"":i},wc_stripe.CheckoutFields.prototype.required=function(t){return!(!this.params[t]||"undefined"==typeof this.params[t].required)&&this.params[t].required},wc_stripe.CheckoutFields.prototype.exists=function(t){return t in this.params},wc_stripe.CheckoutFields.prototype.isEmpty=function(t){if(this.fields.has(t)){t=this.fields.get(t);return null==t||"string"==typeof t&&0===t.trim().length}return!0},wc_stripe.CheckoutFields.prototype.isValid=function(t){if(this[t]&&"function"==typeof this[t])return this[t]().isValid.apply(this,Array.prototype.slice.call(arguments,1))},wc_stripe.CheckoutFields.prototype.first_name=function(){return{set:function(t,e){this.fields.set(e+"_first_name",t)},get:function(t){return this.fields.get(t+"_first_name")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.last_name=function(){return{set:function(t,e){this.fields.set(e+"_last_name",t)},get:function(t){return this.fields.get(t+"_last_name")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.address_1=function(){return{set:function(t,e){this.fields.set(e+"_address_1",t)},get:function(t){return this.fields.get(t+"_address_1")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.address_2=function(){return{set:function(t,e){this.fields.set(e+"_address_2",t)},get:function(t){return this.fields.get(t+"_address_2")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.name=function(){return{set:function(t,e){this.fields.set(e+"_full_name",t);var i=t.split(" ");1<i.length?(t=i.pop(),this.fields.set(e+"_first_name",i.join(" ")),this.fields.set(e+"_last_name",t)):1==i.length&&this.fields.set(e+"_first_name",i[0])},get:function(t){return this.fields.get(t+"_first_name")+" "+this.fields.get(t+"_last_name")}}},wc_stripe.CheckoutFields.prototype.email=function(){return{set:function(t,e){this.fields.set(e+"_email",t)},get:function(t){return this.fields.get(t+"_email")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.phone=function(){return{set:function(t,e){this.fields.set(e+"_phone",t)},get:function(t){return this.fields.get(t+"_phone")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.country=function(){return{set:function(t,e){this.fields.set(e+"_country",t)},get:function(t){return this.fields.get(t+"_country")},isValid:function(t){return"string"==typeof t&&2===t.length}}},wc_stripe.CheckoutFields.prototype.state=function(){return{set:function(i,t){2<(i=i.toUpperCase()).length&&"checkout"===this.page&&o("#"+t+"_state option").each(function(){var t=o(this),e=t.text().toUpperCase();i===e&&(i=t.val())}),this.fields.set(t+"_state",i)},get:function(t){return this.fields.get(t+"_state")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.city=function(){return{set:function(t,e){this.fields.set(e+"_city",t)},get:function(t){return this.fields.get(t+"_city")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.postcode=function(){return{set:function(t,e){this.fields.set(e+"_postcode",t)},get:function(t){return this.fields.get(t+"_postcode")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.recipient=function(){return wc_stripe.CheckoutFields.prototype.name.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.payerName=function(){return wc_stripe.CheckoutFields.prototype.name.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.payerEmail=function(){return wc_stripe.CheckoutFields.prototype.email.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.payerPhone=function(){return wc_stripe.CheckoutFields.prototype.phone.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.phoneNumber=function(){return wc_stripe.CheckoutFields.prototype.phone.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.countryCode=function(){return wc_stripe.CheckoutFields.prototype.country.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.address1=function(){return wc_stripe.CheckoutFields.prototype.address_1.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.address2=function(){return wc_stripe.CheckoutFields.prototype.address_2.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.line1=function(){return wc_stripe.CheckoutFields.prototype.address_1.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.line2=function(){return wc_stripe.CheckoutFields.prototype.address_2.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.addressLine=function(){return{set:function(t,e){0<t.length&&this.fields.set(e+"_address_1",t[0]),1<t.length&&this.fields.set(e+"_address_2",t[1])},get:function(t){return[this.fields.get(t+"_address_1"),this.fields.get(t+"_address_2")]},isValid:function(t){return 0<t.length&&("string"==typeof t[0]&&0<t[0].length)}}},wc_stripe.CheckoutFields.prototype.region=function(){return wc_stripe.CheckoutFields.prototype.state.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.administrativeArea=function(){return wc_stripe.CheckoutFields.prototype.state.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.locality=function(){return wc_stripe.CheckoutFields.prototype.city.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.postal_code=function(){return wc_stripe.CheckoutFields.prototype.postcode.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.postalCode=function(){return wc_stripe.CheckoutFields.prototype.postcode.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.toJson=function(){var i={};return this.fields.forEach(function(t,e){i[e]=t}),i},wc_stripe.CheckoutFields.prototype.toFormFields=function(t){var i=[];this.fields.forEach(function(t,e){e='[name="'+e+'"]';o(e).length&&""!==t&&(o(e).val()!==t&&o(e).is("select")&&i.push(e),o(e).val(t))}),0<i.length&&o(i.join(",")).trigger("change"),void 0!==t&&o(document.body).trigger("update_checkout",t)},wc_stripe.CheckoutFields.prototype.validateFields=function(t){for(var e in this.params){var i=this.params[e];if(-1<e.indexOf(t)&&i.required&&o("#"+e).length&&o("#"+e).is(":visible")){i=o("#"+e).val();if(null==i||0===i.length)return!1}}return!0};try{i=Stripe(wc_stripe_params_v3.api_key,"test"===wc_stripe_params_v3.mode&&""===wc_stripe_params_v3.account?{}:{stripeAccount:wc_stripe_params_v3.account})}catch(t){return a.alert(t),console.log(t)}var r=new wc_stripe.CheckoutFields(wc_stripe_checkout_fields,wc_stripe_params_v3.page)}(window,jQuery);
1
+ !function(a,o){a.wc_stripe={};var i=null;"undefined"==typeof wc_stripe_checkout_fields&&(a.wc_stripe_checkout_fields=[]),wc_stripe.BaseGateway=function(t,e){this.params=t,this.gateway_id=this.params.gateway_id,this.container=void 0===e?"li.payment_method_".concat(this.gateway_id):e,o(this.container).length||(this.container=".payment_method_".concat(this.gateway_id)),this.token_selector=this.params.token_selector,this.saved_method_selector=this.params.saved_method_selector,this.payment_token_received=!1,this.stripe=i,this.fields=r,this.elements=i.elements(o.extend({},{locale:"auto"},this.get_element_options())),this.initialize()},wc_stripe.BaseGateway.prototype.get_page=function(){var t=wc_stripe_params_v3.page;return"cart"===t&&o(document.body).is(".woocommerce-checkout")&&(t="checkout"),t},wc_stripe.BaseGateway.prototype.set_nonce=function(t){this.fields.set(this.gateway_id+"_token_key",t),o(this.token_selector).val(t)},wc_stripe.BaseGateway.prototype.set_intent=function(t){this.fields.set(this.gateway_id+"_payment_intent_key",t),o("#"+this.gateway_id+"_payment_intent_key").val(t)},wc_stripe.BaseGateway.prototype.get_element_options=function(){return this.params.elementOptions},wc_stripe.BaseGateway.prototype.initialize=function(){},wc_stripe.BaseGateway.prototype.create_button=function(){},wc_stripe.BaseGateway.prototype.is_gateway_selected=function(){return o('[name="payment_method"]:checked').val()===this.gateway_id},wc_stripe.BaseGateway.prototype.is_saved_method_selected=function(){return this.is_gateway_selected()&&"saved"===o('[name="'+this.gateway_id+'_payment_type_key"]:checked').val()},wc_stripe.BaseGateway.prototype.has_checkout_error=function(){return 0<o("#wc_stripe_checkout_error").length&&this.is_gateway_selected()},wc_stripe.BaseGateway.prototype.submit_error=function(t,e){var i=this.get_error_message(t);i.indexOf("</ul>")<0&&(i='<div class="'+function(){var t="woocommerce-NoticeGroup";return this.is_current_page("checkout")&&(t+=" woocommerce-NoticeGroup-checkout"),t}.bind(this)()+'"><ul class="woocommerce-error"><li>'+i+"</li></ul></div>");t=o(document.body).triggerHandler("wc_stripe_submit_error",[i,t,this]);i=void 0===t?i:t,this.submit_message(i,e)},wc_stripe.BaseGateway.prototype.submit_error_code=function(t){console.log(t)},wc_stripe.BaseGateway.prototype.get_error_message=function(t){return"object"==typeof t&&(t=t.code&&wc_stripe_messages[t.code]?wc_stripe_messages[t.code]:t.message),t},wc_stripe.BaseGateway.prototype.submit_message=function(t,e){o(".woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message").remove();var i=o(this.message_container);i.length&&(e||!i.closest("form").length)||(i.length||(i=o(this.container)),i=i.closest("form")),i.prepend(t),i.removeClass("processing").unblock(),i.find(".input-text, select, input:checkbox").trigger("blur"),o.scroll_to_notices?o.scroll_to_notices(i):o("html, body").animate({scrollTop:i.offset().top-100},1e3)},wc_stripe.BaseGateway.prototype.get_billing_details=function(){var t=this.get_billing_prefix(),t={name:this.get_customer_name(t),address:{city:this.fields.get(t+"_city",null),country:this.fields.get(t+"_country",null),line1:this.fields.get(t+"_address_1",null),line2:this.fields.get(t+"_address_2",null),postal_code:this.fields.get(t+"_postcode",null),state:this.fields.get(t+"_state",null)}};return t.name&&" "!==t.name||delete t.name,""!=this.fields.get("billing_email")&&(t.email=this.fields.get("billing_email")),""!=this.fields.get("billing_phone")&&(t.phone=this.fields.get("billing_phone")),t},wc_stripe.BaseGateway.prototype.get_first_name=function(t){return o("#"+t+"_first_name").val()},wc_stripe.BaseGateway.prototype.get_last_name=function(t){return o("#"+t+"_last_name").val()},wc_stripe.BaseGateway.prototype.get_shipping_prefix=function(){return this.needs_shipping()&&0<o('[name="ship_to_different_address"]').length&&o('[name="ship_to_different_address"]').is(":checked")?"shipping":"billing"},wc_stripe.BaseGateway.prototype.get_billing_prefix=function(){var t="billing";o('[name="billing_same_as_shipping"]').length&&o('[name="billing_same_as_shipping"]').is(":checked")&&(t="shipping"),o('[name="bill_to_different_address"]').length&&(1<o('[name="bill_to_different_address"]').length?"same_as_shipping"===o('[name="bill_to_different_address"]:checked').val()&&(t="shipping"):o('[name="bill_to_different_address"]').is(":checked")||(t="shipping"));var e=o(document.body).triggerHandler("wc_stripe_get_billing_prefix",[t]);return void 0===e?t:e},wc_stripe.BaseGateway.prototype.should_save_method=function(){return o("#"+this.gateway_id+"_save_source_key").is(":checked")},wc_stripe.BaseGateway.prototype.is_add_payment_method_page=function(){return"add_payment_method"===this.get_page()||o(document.body).hasClass("woocommerce-add-payment-method")},wc_stripe.BaseGateway.prototype.is_change_payment_method=function(){return"change_payment_method"===this.get_page()},wc_stripe.BaseGateway.prototype.get_selected_payment_method=function(){return o(this.saved_method_selector).val()},wc_stripe.BaseGateway.prototype.needs_shipping=function(){return this.get_gateway_data().needs_shipping},wc_stripe.BaseGateway.prototype.get_currency=function(){return this.get_gateway_data().currency},wc_stripe.BaseGateway.prototype.get_gateway_data=function(){var t=o(this.container).find(".woocommerce_".concat(this.gateway_id,"_gateway_data")).data("gateway");return void 0===t&&this.is_current_page("checkout")&&void 0===(t=o("form.checkout").find(".woocommerce_".concat(this.gateway_id,"_gateway_data")).data("gateway"))&&(t=o(".woocommerce_"+this.gateway_id+"_gateway_data").data("gateway")),t},wc_stripe.BaseGateway.prototype.set_gateway_data=function(t){o(this.container).find(".woocommerce_".concat(this.gateway_id,"_gateway_data")).data("gateway",t)},wc_stripe.BaseGateway.prototype.has_gateway_data=function(){return void 0!==this.get_gateway_data()},wc_stripe.BaseGateway.prototype.get_customer_name=function(t){return this.fields.get(t+"_first_name")+" "+this.fields.get(t+"_last_name")},wc_stripe.BaseGateway.prototype.get_customer_email=function(){return this.fields.get("billing_email")},wc_stripe.BaseGateway.prototype.get_address_field_hash=function(t){for(var e=["_first_name","_last_name","_address_1","_address_2","_postcode","_city","_state","_country"],i="",s=0;s<e.length;s++)i+=this.fields.get(t+e[s])+"_";return i},wc_stripe.BaseGateway.prototype.block=function(){o().block&&o.blockUI({message:null,overlayCSS:{background:"#fff",opacity:.6}})},wc_stripe.BaseGateway.prototype.unblock=function(){o().block&&o.unblockUI()},wc_stripe.BaseGateway.prototype.get_form=function(){return o(this.token_selector).closest("form")},wc_stripe.BaseGateway.prototype.get_total_price=function(){return this.get_gateway_data().total},wc_stripe.BaseGateway.prototype.get_total_price_cents=function(){return this.get_gateway_data().total_cents},wc_stripe.BaseGateway.prototype.set_total_price=function(t){var e=this.get_gateway_data();e.total=t,this.set_gateway_data(e)},wc_stripe.BaseGateway.prototype.set_total_price_cents=function(t){var e=this.get_gateway_data();e.total_cents=t,this.set_gateway_data(e)},wc_stripe.BaseGateway.prototype.set_payment_method=function(t){o('[name="payment_method"][value="'+t+'"]').prop("checked",!0).trigger("click")},wc_stripe.BaseGateway.prototype.set_selected_shipping_methods=function(t){if(this.fields.set("shipping_method",t),t&&o('[name^="shipping_method"]').length)for(var e in t){var i=t[e];o('[name="shipping_method['+e+']"][value="'+i+'"]').prop("checked",!0).trigger("change")}},wc_stripe.BaseGateway.prototype.on_token_received=function(t){this.payment_token_received=!0,this.set_nonce(t.id),this.process_checkout()},wc_stripe.BaseGateway.prototype.createPaymentRequest=function(){try{this.payment_request_options=this.get_payment_request_options(),this.paymentRequest=i.paymentRequest(this.payment_request_options),this.payment_request_options.requestShipping&&(this.paymentRequest.on("shippingaddresschange",this.update_shipping_address.bind(this)),this.paymentRequest.on("shippingoptionchange",this.update_shipping_method.bind(this))),this.paymentRequest.on("paymentmethod",this.on_payment_method_received.bind(this))}catch(t){return void this.submit_error(t.message)}},wc_stripe.BaseGateway.prototype.get_payment_request_options=function(){var t={country:this.params.country_code,currency:this.get_currency().toLowerCase(),total:{amount:this.get_total_price_cents(),label:this.params.total_label,pending:!0},requestPayerName:function(){return!this.is_current_page("checkout")||!this.is_valid_address(this.get_address_object("billing"),"billing",["email","phone"])}.bind(this)(),requestPayerEmail:this.fields.requestFieldInWallet("billing_email"),requestPayerPhone:this.fields.requestFieldInWallet("billing_phone"),requestShipping:function(){if(this.needs_shipping()){var t=this.get_shipping_prefix();if(this.is_current_page("checkout")&&!this.is_valid_address(this.get_address_object(t),t,["email","phone"])||!this.is_current_page("checkout"))return!0}return!1}.bind(this)()},e=this.get_display_items(),i=this.get_shipping_options();return e&&(t.displayItems=e),t.requestShipping&&i&&(t.shippingOptions=i),t},wc_stripe.BaseGateway.prototype.get_payment_request_update=function(t){var e={currency:this.get_currency().toLowerCase(),total:{amount:parseInt(this.get_total_price_cents()),label:this.params.total_label,pending:!0}},i=this.get_display_items(),s=this.get_shipping_options();return i&&(e.displayItems=i),this.payment_request_options.requestShipping&&s&&(e.shippingOptions=s),t&&(e=o.extend(!0,{},e,t)),e},wc_stripe.BaseGateway.prototype.get_display_items=function(){return this.get_gateway_data().items},wc_stripe.BaseGateway.prototype.set_display_items=function(t){var e=this.get_gateway_data();e.items=t,this.set_gateway_data(e)},wc_stripe.BaseGateway.prototype.get_shipping_options=function(){return this.get_gateway_data().shipping_options},wc_stripe.BaseGateway.prototype.set_shipping_options=function(t){var e=this.get_gateway_data();e.shipping_options=t,this.set_gateway_data(e)},wc_stripe.BaseGateway.prototype.map_address=function(t){return{city:t.city,postcode:t.postalCode,state:t.region,country:t.country}},wc_stripe.BaseGateway.prototype.on_payment_method_received=function(t){try{this.payment_response=t,this.populate_checkout_fields(t),t.complete("success"),this.on_token_received(t.paymentMethod)}catch(e){a.alert(e)}},wc_stripe.BaseGateway.prototype.populate_checkout_fields=function(t){this.set_nonce(t.paymentMethod.id),this.update_addresses(t)},wc_stripe.BaseGateway.prototype.update_addresses=function(t){t.payerName&&this.fields.set("name",t.payerName,"billing"),t.payerEmail&&this.fields.set("email",t.payerEmail,"billing"),t.payerPhone&&(this.fields.set("phone",t.payerPhone,"billing"),this.fields.exists("shipping_phone")&&this.fields.isEmpty("shipping_phone")&&this.fields.set("shipping_phone",t.payerPhone)),t.shippingAddress&&this.populate_shipping_fields(t.shippingAddress),t.paymentMethod.billing_details.address&&this.populate_billing_fields(t.paymentMethod.billing_details.address)},wc_stripe.BaseGateway.prototype.populate_address_fields=function(t,e){for(var i in t)null!==t[i]&&this.fields.set(i,t[i],e)},wc_stripe.BaseGateway.prototype.populate_billing_fields=function(t){this.populate_address_fields(t,"billing")},wc_stripe.BaseGateway.prototype.populate_shipping_fields=function(t){this.populate_address_fields(t,"shipping")},wc_stripe.BaseGateway.prototype.get_address_fields=function(){return["first_name","last_name","country","address_1","address_2","city","state","postcode","phone","email"]},wc_stripe.BaseGateway.prototype.get_address_object=function(e){var i={};return this.get_address_fields().forEach(function(t){i[t]=this.fields.get(t,e)}.bind(this)),i},wc_stripe.BaseGateway.prototype.is_current_page=function(t){return Array.isArray(t)?-1<t.indexOf(this.get_page()):this.get_page()===t},wc_stripe.BaseGateway.prototype.is_valid_address=function(t,e,i){if(o.isEmptyObject(t))return!1;var s=this.get_address_fields();void 0!==i&&i.forEach(function(t){-1<s.indexOf(t)&&s.splice(s.indexOf(t),1)});for(var a=0;a<s.length;a++){var n=s[a];if(this.fields.required(e+"_"+n)&&(!t[n]||"undefined"==typeof t[n]||!this.fields.isValid(n,t[n],t)))return!1}return!0},wc_stripe.BaseGateway.prototype.ajax_before_send=function(t){0<this.params.user_id&&t.setRequestHeader("X-WP-Nonce",this.params.rest_nonce)},wc_stripe.BaseGateway.prototype.process_checkout=function(){return new Promise(function(){this.block(),o.ajax({url:this.params.routes.checkout,method:"POST",dataType:"json",data:o.extend({},this.serialize_fields(),{payment_method:this.gateway_id,page_id:this.get_page(),currency:this.get_currency()}),beforeSend:this.ajax_before_send.bind(this)}).done(function(t){t.reload?a.location.reload():"success"===t.result?a.location=t.redirect:(t.messages&&this.submit_error(t.messages),this.unblock())}.bind(this)).fail(function(t,e,i){this.unblock(),this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.BaseGateway.prototype.process_payment=function(t,e){o.ajax({method:"POST",url:this.params.routes.checkout_payment,dataType:"json",data:o.extend({},this.fields.toJson(),{order_id:t,order_key:e}),beforeSend:this.ajax_before_send.bind(this)}).done(function(t){if(t.result&&"success"===t.result)a.location=t.redirect;else{if(t.reload)return a.location.reload();t.messages?(this.payment_token_received=!1,this.submit_error(t.messages)):this.submit_error(wc_checkout_params.i18n_checkout_error)}}.bind(this)).fail(function(){}.bind(this))},wc_stripe.BaseGateway.prototype.handle_next_action=function(e){try{return this.stripe[this.handleActionMethod](e.client_secret).then(function(t){if(t.error)return this.payment_token_received=!1,this.submit_error(t.error),void this.sync_payment_intent(e.order_id,e.client_secret)["catch"](function(t){this.submit_error(t.message)}.bind(this));this.is_current_page("order_pay")?this.get_form().trigger("submit"):this.process_payment(e.order_id,e.order_key)}.bind(this))["catch"](function(t){this.submit_error(t.message)}.bind(this)),!1}catch(t){}},wc_stripe.BaseGateway.prototype.handle_payment_method_setup=function(e){try{return this.stripe[this.setupActionMethod](e.client_secret).then(function(t){if(t.error)return this.payment_token_received=!1,this.submit_error(t.error);this.is_current_page("order_pay")?this.get_form().trigger("submit"):this.process_payment(e.order_id,e.order_key)}.bind(this))["catch"](function(t){this.submit_error(t.message)}.bind(this)),!1}catch(t){}},wc_stripe.BaseGateway.prototype.hashchange=function(t){var e=a.location.hash.match(/response=(.*)/);if(e)try{var i=JSON.parse(a.atob(decodeURIComponent(e[1])));i&&i.hasOwnProperty("client_secret")&&i.gateway_id===this.gateway_id&&(history.pushState({},"",a.location.pathname),"intent"===i.type?this.handle_next_action(i):this.handle_payment_method_setup(i))}catch(s){}return!0},wc_stripe.BaseGateway.prototype.sync_payment_intent=function(t,s){return new Promise(function(e,i){o.ajax({method:"POST",dataType:"json",url:this.params.routes.sync_intent,data:{order_id:t,client_secret:s},beforeSend:this.ajax_before_send.bind(this)}).done(function(t){(t.code?i:e)(t)}).fail(function(t,e,i){this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.BaseGateway.prototype.create_setup_intent=function(){return new Promise(function(e,i){o.ajax({method:"POST",dataType:"json",data:{payment_method:this.gateway_id},url:this.params.routes.setup_intent,beforeSend:this.ajax_before_send.bind(this)}).done(function(t){t.code?i(t.message):(this.client_secret=t.intent.client_secret,e(t))}.bind(this)).fail(function(t,e,i){this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.BaseGateway.prototype.serialize_form=function(t){var e,i=t.find("input").filter(function(t,e){return!o(e).is('[name^="add-to-cart"]')}.bind(this)).serializeArray(),s={};for(e in i){var a=i[e];s[a.name]=a.value}return s.payment_method=this.gateway_id,s},wc_stripe.BaseGateway.prototype.serialize_fields=function(){return o.extend({},this.fields.toJson(),o(document.body).triggerHandler("wc_stripe_process_checkout_data",[this,this.fields]))},wc_stripe.BaseGateway.prototype.map_shipping_methods=function(t){var e={};return"default"===t||1<(t=t.match(/^([\w+]):(.+)$/)).length&&(e[t[1]]=t[2]),e},wc_stripe.BaseGateway.prototype.maybe_set_ship_to_different=function(){o('[name="ship_to_different_address"]').length&&o('[name="ship_to_different_address"]').prop("checked",this.get_address_field_hash("billing")!==this.get_address_field_hash("shipping")).trigger("change")},wc_stripe.BaseGateway.prototype.update_shipping_address=function(s){return new Promise(function(e,i){o.ajax({url:this.params.routes.shipping_address,method:"POST",dataType:"json",data:{address:this.map_address(s.shippingAddress),payment_method:this.gateway_id,page_id:this.get_page(),currency:this.get_currency()},beforeSend:this.ajax_before_send.bind(this)}).done(function(t){t.code?(s.updateWith(t.data.newData),i(t.data)):(s.updateWith(t.data.newData),this.fields.set("shipping_method",t.data.shipping_method),e(t.data))}.bind(this)).fail(function(){}.bind(this))}.bind(this))},wc_stripe.BaseGateway.prototype.update_shipping_method=function(s){return new Promise(function(e,i){o.ajax({url:this.params.routes.shipping_method,method:"POST",dataType:"json",data:{shipping_method:s.shippingOption.id,payment_method:this.gateway_id,currency:this.get_currency(),page_id:this.get_page()},beforeSend:this.ajax_before_send.bind(this)}).done(function(t){t.code?(s.updateWith(t.data.newData),i(t.data)):(this.set_selected_shipping_methods(t.data.shipping_methods),s.updateWith(t.data.newData),e(t.data))}.bind(this)).fail(function(t,e,i){this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.CheckoutGateway=function(){this.message_container="li.payment_method_"+this.gateway_id,this.banner_container="li.banner_payment_method_"+this.gateway_id,o(document.body).on("update_checkout",this.update_checkout.bind(this)),o(document.body).on("updated_checkout",this.updated_checkout.bind(this)),o(document.body).on("updated_checkout",this.container_styles.bind(this)),o(document.body).on("checkout_error",this.checkout_error.bind(this)),o(this.token_selector).closest("form").on("checkout_place_order_"+this.gateway_id,this.checkout_place_order.bind(this)),o(document.body).on("wc_stripe_new_method_"+this.gateway_id,this.on_show_new_methods.bind(this)),o(document.body).on("wc_stripe_saved_method_"+this.gateway_id,this.on_show_saved_methods.bind(this)),o(document.body).on("wc_stripe_payment_method_selected",this.on_payment_method_selected.bind(this)),this.banner_enabled()&&o(".woocommerce-billing-fields").length&&o(".wc-stripe-banner-checkout").css("max-width",o(".woocommerce-billing-fields").outerWidth(!0)),this.container_styles(),this.hasOrderReviewParams()},wc_stripe.CheckoutGateway.prototype.container_styles=function(){this.params.description||o(this.container).addClass("wc-stripe-no-desc"),o(this.container).find(".wc-stripe-saved-methods").length||o(this.container).find(".payment_box").addClass("wc-stripe-no-methods")},wc_stripe.CheckoutGateway.prototype.hasOrderReviewParams=function(){var t=a.location.search.match(/_stripe_order_review=(.+)/);if(t&&1<t.length)try{var e=JSON.parse(a.atob(decodeURIComponent(t[1])));this.gateway_id===e.payment_method&&(o(function(){this.payment_token_received=!0,this.set_nonce(e.payment_nonce),this.set_use_new_option(!0)}.bind(this)),history.pushState({},"",a.location.pathname))}catch(i){}},wc_stripe.CheckoutGateway.prototype.has3DSecureParams=function(){if((this.is_current_page("order_pay")||this.is_change_payment_method())&&a.location.hash&&"string"==typeof a.location.hash){var t=a.location.hash.match(/response=(.*)/);if(t)try{var e=JSON.parse(a.atob(decodeURIComponent(t[1])));e&&e.hasOwnProperty("client_secret")&&e.gateway_id===this.gateway_id&&(o(function(){this.set_payment_method(this.gateway_id),this.set_use_new_option(!0),this.set_nonce(e.pm),!0===e.save_method&&this.set_save_payment_method(!0),o('[name="terms"]').prop("checked",!0)}.bind(this)),history.pushState({},"",a.location.pathname+a.location.search),this.handle_next_action(e))}catch(i){}}},wc_stripe.CheckoutGateway.prototype.update_shipping_address=function(){return wc_stripe.BaseGateway.prototype.update_shipping_address.apply(this,arguments).then(function(t){this.populate_address_fields(t.address,this.get_shipping_prefix()),this.fields.toFormFields({update_shipping_method:!1})}.bind(this))},wc_stripe.CheckoutGateway.prototype.updated_checkout=function(){},wc_stripe.CheckoutGateway.prototype.update_checkout=function(){},wc_stripe.CheckoutGateway.prototype.checkout_error=function(){this.has_checkout_error()&&(this.payment_token_received=!1,this.payment_response=null,this.show_payment_button(),this.hide_place_order())},wc_stripe.CheckoutGateway.prototype.is_valid_checkout=function(){return!(o('[name="terms"]').length&&o('[name="terms"]').is(":visible")&&!o('[name="terms"]').is(":checked"))},wc_stripe.CheckoutGateway.prototype.get_payment_method=function(){return o('[name="payment_method"]:checked').val()},wc_stripe.CheckoutGateway.prototype.set_use_new_option=function(t){o("#"+this.gateway_id+"_use_new").prop("checked",t).trigger("change")},wc_stripe.CheckoutGateway.prototype.checkout_place_order=function(){return this.is_valid_checkout()?!!this.is_saved_method_selected()||this.payment_token_received:(this.submit_error(this.params.messages.terms),!1)},wc_stripe.CheckoutGateway.prototype.on_token_received=function(t){this.payment_token_received=!0,this.set_nonce(t.id),this.hide_payment_button(),this.show_place_order()},wc_stripe.CheckoutGateway.prototype.block=function(){o().block&&this.get_form().block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},wc_stripe.CheckoutGateway.prototype.unblock=function(){o().block&&this.get_form().unblock()},wc_stripe.CheckoutGateway.prototype.hide_place_order=function(){o("#place_order").addClass("wc-stripe-hide")},wc_stripe.CheckoutGateway.prototype.show_place_order=function(){o("#place_order").removeClass("wc-stripe-hide")},wc_stripe.CheckoutGateway.prototype.on_show_new_methods=function(){this.payment_token_received?(this.show_place_order(),this.hide_payment_button()):(this.hide_place_order(),this.show_payment_button())},wc_stripe.CheckoutGateway.prototype.on_show_saved_methods=function(){this.hide_payment_button(),this.show_place_order()},wc_stripe.CheckoutGateway.prototype.show_payment_button=function(){this.$button&&this.$button.show()},wc_stripe.CheckoutGateway.prototype.hide_payment_button=function(){this.$button&&this.$button.hide()},wc_stripe.CheckoutGateway.prototype.trigger_payment_method_selected=function(){this.on_payment_method_selected(null,o('[name="payment_method"]:checked').val())},wc_stripe.CheckoutGateway.prototype.on_payment_method_selected=function(t,e){e===this.gateway_id?this.payment_token_received||this.is_saved_method_selected()?(this.hide_payment_button(),this.show_place_order()):(this.show_payment_button(),this.hide_place_order()):(this.hide_payment_button(),e&&e.indexOf("stripe_")<0&&this.show_place_order())},wc_stripe.CheckoutGateway.prototype.banner_enabled=function(){return"1"===this.params.banner_enabled},wc_stripe.CheckoutGateway.prototype.checkout_fields_valid=function(){if(["checkout","order_pay"].indexOf(this.get_page())<0)return!0;var t=!0;return(t=this.fields.validateFields("billing"))?this.needs_shipping()&&o("#ship-to-different-address-checkbox").is(":checked")?(t=this.fields.validateFields("shipping"))||this.submit_error(this.params.messages.required_field):(t=this.is_valid_checkout())||this.submit_error(this.params.messages.terms):this.submit_error(this.params.messages.required_field),t},wc_stripe.CheckoutGateway.prototype.cart_contains_subscription=function(){return"undefined"!=typeof wc_stripe_cart_contains_subscription&&!0===wc_stripe_cart_contains_subscription},wc_stripe.CheckoutGateway.prototype.set_save_payment_method=function(t){o('[name="'+this.gateway_id+'_save_source_key"]').prop("checked",t)},wc_stripe.ProductGateway=function(){this.message_container="div.product",o("form.cart").on("found_variation",this.found_variation.bind(this)),o("form.cart").on("reset_data",this.reset_variation_data.bind(this)),this.buttonWidth=o("form.cart div.quantity").outerWidth(!0)+o(".single_add_to_cart_button").outerWidth();var t=o(".single_add_to_cart_button").css("marginLeft");t&&(this.buttonWidth+=parseInt(t.replace("px",""))),o(this.container).css("max-width",this.buttonWidth+"px")},wc_stripe.ProductGateway.prototype.get_quantity=function(){return parseInt(o('[name="quantity"]').val())},wc_stripe.ProductGateway.prototype.set_rest_nonce=function(t,e){this.params.rest_nonce=e},wc_stripe.ProductGateway.prototype.found_variation=function(t,e){var i=this.get_gateway_data();i.product.price=e.display_price,i.needs_shipping=!e.is_virtual,i.product.variation=e,this.set_gateway_data(i)},wc_stripe.ProductGateway.prototype.reset_variation_data=function(){var t=this.get_product_data();t.variation=!1,this.set_product_data(t),this.disable_payment_button()},wc_stripe.ProductGateway.prototype.disable_payment_button=function(){this.$button&&this.get_button().prop("disabled",!0).addClass("disabled")},wc_stripe.ProductGateway.prototype.enable_payment_button=function(){this.$button&&this.get_button().prop("disabled",!1).removeClass("disabled")},wc_stripe.ProductGateway.prototype.get_button=function(){return this.$button},wc_stripe.ProductGateway.prototype.is_variable_product=function(){return!!this.get_product_data().variation||0<o('[name="variation_id"]').length},wc_stripe.ProductGateway.prototype.variable_product_selected=function(){var t=this.get_product_data().variation,e=o('input[name="variation_id"]').val();return!!t||!!e&&"0"!=e},wc_stripe.ProductGateway.prototype.get_product_data=function(){return this.get_gateway_data().product},wc_stripe.ProductGateway.prototype.set_product_data=function(t){var e=this.get_gateway_data();e.product=t,this.set_gateway_data(e)},wc_stripe.ProductGateway.prototype.get_form=function(){return o(this.container).closest("form")},wc_stripe.ProductGateway.prototype.add_to_cart=function(){return new Promise(function(e,i){this.block();var t={product_id:this.get_product_data().id,variation_id:this.is_variable_product()?o('[name="variation_id"]').val():0,qty:o('[name="quantity"]').val(),payment_method:this.gateway_id,currency:this.get_currency(),page_id:this.get_page()},s=this.get_form().find(':not([name="add-to-cart"],[name="quantity"],[name^="attribute_"],[name="variation_id"])').serializeArray();if(s)for(var a in s)t[s[a].name]=s[a].value;o.ajax({url:this.params.routes.add_to_cart,method:"POST",dataType:"json",data:o.extend({},t,this.get_product_variations()),beforeSend:this.ajax_before_send.bind(this)}).done(function(t){this.unblock(),t.code?(this.submit_error(t.message),i(t)):(this.set_total_price(t.data.total),this.set_total_price_cents(t.data.totalCents),this.set_display_items(t.data.displayItems),e(t.data))}.bind(this)).fail(function(t,e,i){this.unblock(),this.submit_error(i)}.bind(this))}.bind(this))},wc_stripe.ProductGateway.prototype.cart_calculation=function(t){return new Promise(function(e,i){this.processing_calculation=!0,o.ajax({url:this.params.routes.cart_calculation,method:"POST",dataType:"json",data:o.extend({},{product_id:this.get_product_data().id,variation_id:this.is_variable_product()&&t?t:0,qty:o('[name="quantity"]').val(),currency:this.get_currency(),payment_method:this.gateway_id},this.get_product_variations()),beforeSend:this.ajax_before_send.bind(this)}).done(function(t){this.processing_calculation=!1,t.code?(this.cart_calculation_error=!0,i(t)):(this.set_total_price(t.data.total),this.set_total_price_cents(t.data.totalCents),this.set_display_items(t.data.displayItems),e(t.data))}.bind(this)).fail(function(){this.processing_calculation=!1}.bind(this))}.bind(this))},wc_stripe.ProductGateway.prototype.get_product_variations=function(){var s={};return this.is_variable_product()&&o('.variations [name^="attribute_"]').each(function(t,e){var i=o(e),e=i.data("attribute_name")||i.attr("name");s[e]=i.val()}),s},wc_stripe.CartGateway=function(){this.message_container="div.woocommerce",o(document.body).on("updated_wc_div",this.updated_html.bind(this)),o(document.body).on("updated_cart_totals",this.updated_html.bind(this)),o(document.body).on("wc_cart_emptied",this.cart_emptied.bind(this))},wc_stripe.CartGateway.prototype.submit_error=function(t){this.submit_message(this.get_error_message(t))},wc_stripe.CartGateway.prototype.updated_html=function(t){},wc_stripe.CartGateway.prototype.cart_emptied=function(t){},wc_stripe.CartGateway.prototype.add_cart_totals_class=function(){o(".cart_totals").addClass("stripe_cart_gateway_active")},wc_stripe.GooglePay=function(){};var s={apiVersion:2,apiVersionMinor:0},n={type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY"],allowedCardNetworks:["AMEX","DISCOVER","INTERAC","JCB","MASTERCARD","VISA"],assuranceDetailsRequired:!0}};wc_stripe.GooglePay.prototype.update_addresses=function(t){var e;t.paymentMethodData.info.billingAddress&&(e=t.paymentMethodData.info.billingAddress,this.is_current_page("checkout")&&this.is_valid_address(this.billing_address_object,"billing",["phone","email"])&&(e={phoneNumber:e.phoneNumber}),this.populate_billing_fields(e),e.phoneNumber&&this.fields.exists("shipping_phone")&&this.fields.isEmpty("shipping_phone")&&this.fields.set("shipping_phone",e.phoneNumber)),t.shippingAddress&&this.populate_shipping_fields(t.shippingAddress),t.email&&this.fields.set("email",t.email,"billing")},wc_stripe.GooglePay.prototype.map_address=function(t){return{city:t.locality,postcode:t.postalCode,state:t.administrativeArea,country:t.countryCode}},wc_stripe.GooglePay.prototype.update_payment_data=function(s){return new Promise(function(e,i){var t="default"==s.shippingOptionData.id?null:s.shippingOptionData.id;o.when(o.ajax({url:this.params.routes.payment_data,dataType:"json",method:"POST",data:{address:this.map_address(s.shippingAddress),shipping_method:t,page_id:this.get_page(),currency:this.get_currency()},beforeSend:this.ajax_before_send.bind(this)})).done(function(t){t.code?i(t.data.data):e(t.data)}.bind(this)).fail(function(){i()}.bind(this))}.bind(this))},wc_stripe.GooglePay.prototype.on_payment_data_changed=function(i){return new Promise(function(e){this.update_payment_data(i).then(function(t){e(t.paymentRequestUpdate),this.set_selected_shipping_methods(t.shipping_methods),this.payment_data_updated(t,i)}.bind(this))["catch"](function(t){e(t)}.bind(this))}.bind(this))},wc_stripe.GooglePay.prototype.payment_data_updated=function(t){},wc_stripe.GooglePay.prototype.get_merchant_info=function(){var t={merchantId:this.params.merchant_id,merchantName:this.params.merchant_name};return"TEST"===this.params.environment&&delete t.merchantId,t},wc_stripe.GooglePay.prototype.get_payment_options=function(){var t,e={environment:this.params.environment,merchantInfo:this.get_merchant_info(),paymentDataCallbacks:{onPaymentAuthorized:function(){return new Promise(function(t){t({transactionState:"SUCCESS"})}.bind(this))}}};return this.needs_shipping()&&(t=this.get_shipping_prefix(),(!this.is_current_page("checkout")||this.is_valid_address(this.get_address_object(t),t,["email","phone"]))&&this.is_current_page("checkout")||(e.paymentDataCallbacks.onPaymentDataChanged=this.on_payment_data_changed.bind(this))),e},wc_stripe.GooglePay.prototype.build_payment_request=function(){var t=o.extend({},s,{emailRequired:this.fields.requestFieldInWallet("billing_email"),merchantInfo:this.get_merchant_info(),allowedPaymentMethods:[o.extend({type:"CARD",tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:"stripe","stripe:version":"2018-10-31","stripe:publishableKey":this.params.api_key}}},n)],shippingAddressRequired:function(){if(this.needs_shipping()){var t=this.get_shipping_prefix();if(this.is_current_page("checkout")&&!this.is_valid_address(this.get_address_object(t),t,["email","phone"])||!this.is_current_page("checkout"))return!0}return!1}.bind(this)(),transactionInfo:{countryCode:this.params.processing_country,currencyCode:this.get_currency(),totalPriceStatus:"ESTIMATED",totalPrice:this.get_total_price().toString(),displayItems:this.get_display_items(),totalPriceLabel:this.params.total_price_label}});return t.allowedPaymentMethods[0].parameters.billingAddressRequired=function(){if(this.is_current_page("checkout")){var t=this.billing_address_object=this.get_address_object("billing");return this.fields.requestFieldInWallet("billing_phone")||!this.is_valid_address(t,"billing",["email"])?!0:!1}return!0}.bind(this)(),t.allowedPaymentMethods[0].parameters.billingAddressRequired&&(t.allowedPaymentMethods[0].parameters.billingAddressParameters={format:"FULL",phoneNumberRequired:this.fields.requestFieldInWallet("billing_phone")}),t.shippingAddressRequired?(t.shippingAddressParameters={},t.shippingOptionRequired=!0,t.shippingOptionParameters={shippingOptions:this.get_shipping_options()},t.callbackIntents=["SHIPPING_ADDRESS","SHIPPING_OPTION","PAYMENT_AUTHORIZATION"]):t.callbackIntents=["PAYMENT_AUTHORIZATION"],this.payment_request_options=t},wc_stripe.GooglePay.prototype.createPaymentsClient=function(){this.paymentsClient=new google.payments.api.PaymentsClient(this.get_payment_options())},wc_stripe.GooglePay.prototype.isReadyToPay=function(){return new Promise(function(t){var e=o.extend({},s);e.allowedPaymentMethods=[n],this.paymentsClient.isReadyToPay(e).then(function(){this.can_pay=!0,this.create_button(),t()}.bind(this))["catch"](function(t){t&&t.message&&-1<t.message.indexOf("ShadowRoot")?console.log("GPay is not supported on this browser."):this.submit_error(t)}.bind(this))}.bind(this))},wc_stripe.GooglePay.prototype.create_button=function(){this.$button&&this.$button.remove(),this.$button=o(this.paymentsClient.createButton(this.get_button_options())),this.$button.addClass("gpay-button-container")},wc_stripe.GooglePay.prototype.get_button_options=function(){var t={onClick:this.start.bind(this),buttonColor:this.params.button_color,buttonType:this.params.button_style,buttonSizeMode:this.params.button_size_mode};return null!==this.params.button_locale&&(t.buttonLocale=this.params.button_locale),t},wc_stripe.GooglePay.prototype.start=function(){this.createPaymentsClient(),this.paymentsClient.loadPaymentData(this.build_payment_request()).then(function(t){var e=JSON.parse(t.paymentMethodData.tokenizationData.token);this.update_addresses(t),this.stripe.createPaymentMethod({type:"card",card:{token:e.id},billing_details:this.get_billing_details()}).then(function(t){if(t.error)return this.submit_error(t.error);this.on_token_received(t.paymentMethod)}.bind(this))}.bind(this))["catch"](function(t){"CANCELED"!==t.statusCode&&(t.statusMessage&&-1<t.statusMessage.indexOf("paymentDataRequest.callbackIntent")?this.submit_error_code("DEVELOPER_ERROR_WHITELIST"):this.submit_error(t.statusMessage))}.bind(this))},wc_stripe.ApplePay=function(){},wc_stripe.ApplePay.prototype.initialize=function(){this.createPaymentRequest(),this.canMakePayment()},wc_stripe.ApplePay.prototype.get_payment_request_options=function(){return o.extend({},wc_stripe.BaseGateway.prototype.get_payment_request_options.apply(this,arguments),{disableWallets:["googlePay"]})},wc_stripe.ApplePay.prototype.create_button=function(){this.$button&&this.$button.remove(),this.$button=o(this.params.button),this.$button.on("click",this.start.bind(this)),this.append_button()},wc_stripe.ApplePay.prototype.canMakePayment=function(){return new Promise(function(e){this.paymentRequest.canMakePayment().then(function(t){t&&t.applePay&&(this.can_pay=!0,this.create_button(),o(this.container).show(),e(t))}.bind(this))}.bind(this))},wc_stripe.ApplePay.prototype.start=function(t){t.preventDefault(),this.paymentRequest.update(this.get_payment_request_update({total:{pending:!1}})),this.paymentRequest.show()},wc_stripe.PaymentRequest=function(){},wc_stripe.PaymentRequest.prototype.initialize=function(){this.createPaymentRequest(),this.createPaymentRequestButton(),this.canMakePayment(),this.paymentRequestButton.on("click",this.button_click.bind(this))},wc_stripe.PaymentRequest.prototype.button_click=function(t){},wc_stripe.PaymentRequest.prototype.createPaymentRequestButton=function(){this.paymentRequestButton&&this.paymentRequestButton.destroy(),this.paymentRequestButton=this.elements.create("paymentRequestButton",{paymentRequest:this.paymentRequest,style:{paymentRequestButton:{type:this.params.button.type,theme:this.params.button.theme,height:this.params.button.height}}})},wc_stripe.PaymentRequest.prototype.canMakePayment=function(){return new Promise(function(e){var i=this.paymentRequest;this.paymentRequest.canMakePayment().then(function(t){t&&!t.applePay&&i===this.paymentRequest&&(this.can_pay=!0,this.create_button(),o(this.container).show(),e(t))}.bind(this))}.bind(this))},wc_stripe.PaymentRequest.prototype.create_button=function(){this.paymentRequestButton.mount("#wc-stripe-payment-request-container")},wc_stripe.Afterpay=function(){},wc_stripe.Afterpay.prototype.is_eligible=function(t){return this.needs_shipping()&&t>this.get_min()&&t<this.get_max()},wc_stripe.Afterpay.prototype.get_min=function(){var t=this.get_currency(),t=this.params.requirements[t];return t?t[1]:0},wc_stripe.Afterpay.prototype.get_max=function(){var t=this.get_currency(),t=this.params.requirements[t];return t?t[2]:0},wc_stripe.Afterpay.prototype.add_eligibility=function(t,e){o(t).length&&(this.is_eligible(e)?o(t).removeClass("afterpay-ineligible"):this.hide_ineligible_active()&&o(t).addClass("afterpay-ineligible"))},wc_stripe.Afterpay.prototype.hide_ineligible_active=function(){return"yes"===this.params.hide_ineligible},wc_stripe.CheckoutFields=function(t,e){this.params=t,this.page=e,this.session_values=this.supportsSessionStorage()&&sessionStorage.getItem("wc_stripe_checkout_fields")?JSON.parse(sessionStorage.getItem("wc_stripe_checkout_fields")):{},this.fields=new Map(Object.keys(this.params).map(function(t){return null===this.params[t].value&&(t in this.session_values&&null!==this.session_values[t]?this.params[t].value=this.session_values[t]:this.params[t].value=""),[t,this.params[t].value]}.bind(this))),("checkout"===e||"cart"===e&&o(document.body).is(".woocommerce-checkout")||0<o("form.woocommerce-checkout").length)&&(o(document.body).on("updated_checkout",this.updated_checkout.bind(this)),o(document.body).on("change",'[name^="billing_"], [name^="shipping_"]',this.onChange.bind(this)),o("form.checkout").on("change",'.input-text:not([name^="billing_"], [name^="shipping_"], [name="account_password"]), select:not([name^="billing_"], [name^="shipping_"])',this.onChange.bind(this)),o("form.checkout").on("change",'[name="ship_to_different_address"]',this.on_ship_to_address_change.bind(this)),this.init_i18n(),o('[name="ship_to_different_address"]').is(":checked")?this.update_required_fields(o("#shipping_country").val(),"shipping_country"):this.update_required_fields(o("#billing_country").val(),"billing_country"))},wc_stripe.CheckoutFields.prototype.supportsSessionStorage=function(){return"sessionStorage"in a&&null!==a.sessionStorage&&["getItem","setItem"].reduce(function(t,e){return t&&e in sessionStorage}.bind(this),!0)},wc_stripe.CheckoutFields.prototype.init_i18n=function(){"undefined"!=typeof wc_address_i18n_params?this.locales=JSON.parse(wc_address_i18n_params.locale.replace(/&quot;/g,'"')):this.locales=null},wc_stripe.CheckoutFields.prototype.updated_checkout=function(){this.syncCheckoutFieldsWithDOM()},wc_stripe.CheckoutFields.prototype.syncCheckoutFieldsWithDOM=function(){for(var t in this.params)o("#"+t).length&&this.fields.set(t,o("#"+t).val())},wc_stripe.CheckoutFields.prototype.onChange=function(t){try{var e=t.currentTarget.name,i=t.currentTarget.value;this.fields.set(e,i),"billing_country"!==e&&"shipping_country"!==e||this.update_required_fields(i,e),this.supportsSessionStorage()&&sessionStorage.setItem("wc_stripe_checkout_fields",JSON.stringify(this.toJson()))}catch(s){console.log(s)}},wc_stripe.CheckoutFields.prototype.update_required_fields=function(t,e){if(this.locales){var i,s=-1<e.indexOf("billing_")?"billing_":"shipping_",t="undefined"!=typeof this.locales[t]?this.locales[t]:this.locales["default"],a=o.extend(!0,{},this.locales["default"],t);for(i in a){var n=s+i;this.params[n]&&(this.params[n]=o.extend(!0,{},this.params[n],a[i]))}}},wc_stripe.CheckoutFields.prototype.on_ship_to_address_change=function(t){o(t.currentTarget).is(":checked")&&this.update_required_fields(o("#shipping_country").val(),"shipping_country")},wc_stripe.CheckoutFields.prototype.requestFieldInWallet=function(t){return"checkout"===this.page?this.required(t)&&this.isEmpty(t):"order_pay"!==this.page&&this.required(t)},wc_stripe.CheckoutFields.prototype.set=function(t,e,i){this[t]&&"function"==typeof this[t]?this[t]().set.call(this,e,i):this.fields.set(t,e)},wc_stripe.CheckoutFields.prototype.get=function(t,e){var i;return this[t]&&"function"==typeof this[t]?i=this[t]().get.call(this,e):null!=(i=this.fields.get(t))&&""!==i||void 0!==e&&(i=e),void 0===i?"":i},wc_stripe.CheckoutFields.prototype.required=function(t){return!(!this.params[t]||"undefined"==typeof this.params[t].required)&&this.params[t].required},wc_stripe.CheckoutFields.prototype.exists=function(t){return t in this.params},wc_stripe.CheckoutFields.prototype.isEmpty=function(t){if(this.fields.has(t)){t=this.fields.get(t);return null==t||"string"==typeof t&&0===t.trim().length}return!0},wc_stripe.CheckoutFields.prototype.isValid=function(t){if(this[t]&&"function"==typeof this[t])return this[t]().isValid.apply(this,Array.prototype.slice.call(arguments,1))},wc_stripe.CheckoutFields.prototype.first_name=function(){return{set:function(t,e){this.fields.set(e+"_first_name",t)},get:function(t){return this.fields.get(t+"_first_name")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.last_name=function(){return{set:function(t,e){this.fields.set(e+"_last_name",t)},get:function(t){return this.fields.get(t+"_last_name")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.address_1=function(){return{set:function(t,e){this.fields.set(e+"_address_1",t)},get:function(t){return this.fields.get(t+"_address_1")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.address_2=function(){return{set:function(t,e){this.fields.set(e+"_address_2",t)},get:function(t){return this.fields.get(t+"_address_2")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.name=function(){return{set:function(t,e){this.fields.set(e+"_full_name",t);var i=t.split(" ");1<i.length?(t=i.pop(),this.fields.set(e+"_first_name",i.join(" ")),this.fields.set(e+"_last_name",t)):1==i.length&&this.fields.set(e+"_first_name",i[0])},get:function(t){return this.fields.get(t+"_first_name")+" "+this.fields.get(t+"_last_name")}}},wc_stripe.CheckoutFields.prototype.email=function(){return{set:function(t,e){this.fields.set(e+"_email",t)},get:function(t){return this.fields.get(t+"_email")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.phone=function(){return{set:function(t,e){this.fields.set(e+"_phone",t)},get:function(t){return this.fields.get(t+"_phone")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.country=function(){return{set:function(t,e){this.fields.set(e+"_country",t)},get:function(t){return this.fields.get(t+"_country")},isValid:function(t){return"string"==typeof t&&2===t.length}}},wc_stripe.CheckoutFields.prototype.state=function(){return{set:function(i,t){2<(i=i.toUpperCase()).length&&"checkout"===this.page&&o("#"+t+"_state option").each(function(){var t=o(this),e=t.text().toUpperCase();i===e&&(i=t.val())}),this.fields.set(t+"_state",i)},get:function(t){return this.fields.get(t+"_state")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.city=function(){return{set:function(t,e){this.fields.set(e+"_city",t)},get:function(t){return this.fields.get(t+"_city")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.postcode=function(){return{set:function(t,e){this.fields.set(e+"_postcode",t)},get:function(t){return this.fields.get(t+"_postcode")},isValid:function(t){return"string"==typeof t&&0<t.length}}},wc_stripe.CheckoutFields.prototype.recipient=function(){return wc_stripe.CheckoutFields.prototype.name.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.payerName=function(){return wc_stripe.CheckoutFields.prototype.name.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.payerEmail=function(){return wc_stripe.CheckoutFields.prototype.email.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.payerPhone=function(){return wc_stripe.CheckoutFields.prototype.phone.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.phoneNumber=function(){return wc_stripe.CheckoutFields.prototype.phone.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.countryCode=function(){return wc_stripe.CheckoutFields.prototype.country.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.address1=function(){return wc_stripe.CheckoutFields.prototype.address_1.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.address2=function(){return wc_stripe.CheckoutFields.prototype.address_2.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.line1=function(){return wc_stripe.CheckoutFields.prototype.address_1.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.line2=function(){return wc_stripe.CheckoutFields.prototype.address_2.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.addressLine=function(){return{set:function(t,e){0<t.length&&this.fields.set(e+"_address_1",t[0]),1<t.length&&this.fields.set(e+"_address_2",t[1])},get:function(t){return[this.fields.get(t+"_address_1"),this.fields.get(t+"_address_2")]},isValid:function(t){return 0<t.length&&("string"==typeof t[0]&&0<t[0].length)}}},wc_stripe.CheckoutFields.prototype.region=function(){return wc_stripe.CheckoutFields.prototype.state.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.administrativeArea=function(){return wc_stripe.CheckoutFields.prototype.state.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.locality=function(){return wc_stripe.CheckoutFields.prototype.city.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.postal_code=function(){return wc_stripe.CheckoutFields.prototype.postcode.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.postalCode=function(){return wc_stripe.CheckoutFields.prototype.postcode.apply(this,arguments)},wc_stripe.CheckoutFields.prototype.toJson=function(){var i={};return this.fields.forEach(function(t,e){i[e]=t}),i},wc_stripe.CheckoutFields.prototype.toFormFields=function(t){var i=[];this.fields.forEach(function(t,e){e='[name="'+e+'"]';o(e).length&&""!==t&&(o(e).val()!==t&&o(e).is("select")&&i.push(e),o(e).val(t))}),0<i.length&&o(i.join(",")).trigger("change"),void 0!==t&&o(document.body).trigger("update_checkout",t)},wc_stripe.CheckoutFields.prototype.validateFields=function(t){for(var e in this.params){var i=this.params[e];if(-1<e.indexOf(t)&&i.required&&o("#"+e).length&&o("#"+e).is(":visible")){i=o("#"+e).val();if(null==i||0===i.length)return!1}}return!0};try{i=Stripe(wc_stripe_params_v3.api_key,"test"===wc_stripe_params_v3.mode&&""===wc_stripe_params_v3.account?{}:{stripeAccount:wc_stripe_params_v3.account})}catch(t){return a.alert(t),console.log(t)}var r=new wc_stripe.CheckoutFields(wc_stripe_checkout_fields,wc_stripe_params_v3.page)}(window,jQuery);
i18n/languages/woo-stripe-payment.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Payment Plugins for Stripe WooCommerce plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Payment Plugins for Stripe WooCommerce 3.3.17\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woo-stripe-payment\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-03-11T22:48:40+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: woo-stripe-payment\n"
@@ -30,7 +30,7 @@ msgstr ""
30
  msgid "Payment Plugins, support@paymentplugins.com"
31
  msgstr ""
32
 
33
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:115
34
  #: includes/admin/meta-boxes/views/html-product-data.php:14
35
  #: includes/gateways/settings/ach-settings.php:13
36
  #: includes/gateways/settings/applepay-settings.php:11
@@ -40,11 +40,11 @@ msgstr ""
40
  msgid "Enabled"
41
  msgstr ""
42
 
43
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:120
44
  msgid "If enabled, your site can accept %s payments through Stripe."
45
  msgstr ""
46
 
47
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:124
48
  #: includes/gateways/settings/ach-settings.php:70
49
  #: includes/gateways/settings/applepay-settings.php:20
50
  #: includes/gateways/settings/cc-settings.php:18
@@ -53,7 +53,7 @@ msgstr ""
53
  msgid "General Settings"
54
  msgstr ""
55
 
56
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:128
57
  #: includes/admin/meta-boxes/views/html-charge-data-subview.php:47
58
  #: includes/gateways/settings/ach-settings.php:74
59
  #: includes/gateways/settings/applepay-settings.php:24
@@ -63,7 +63,7 @@ msgstr ""
63
  msgid "Title"
64
  msgstr ""
65
 
66
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:134
67
  #: includes/gateways/settings/ach-settings.php:80
68
  #: includes/gateways/settings/applepay-settings.php:30
69
  #: includes/gateways/settings/cc-settings.php:28
@@ -72,7 +72,7 @@ msgstr ""
72
  msgid "Description"
73
  msgstr ""
74
 
75
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:137
76
  #: includes/gateways/settings/ach-settings.php:83
77
  #: includes/gateways/settings/applepay-settings.php:33
78
  #: includes/gateways/settings/cc-settings.php:31
@@ -81,50 +81,50 @@ msgstr ""
81
  msgid "Leave blank if you don't want a description to show for the gateway."
82
  msgstr ""
83
 
84
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:141
85
  #: includes/gateways/settings/ach-settings.php:87
86
  msgid "Order Button Text"
87
  msgstr ""
88
 
89
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:144
90
  #: includes/gateways/settings/ach-settings.php:90
91
  msgid "The text on the Place Order button that displays when the gateway is selected on the checkout page."
92
  msgstr ""
93
 
94
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:168
95
  msgid "When the billing country matches one of these values, the payment method will be hidden on the checkout page."
96
  msgstr ""
97
 
98
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:181
99
  msgid "When the billing country matches one of these values, the payment method will be shown on the checkout page."
100
  msgstr ""
101
 
102
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:239
103
  msgid "Order %s"
104
  msgstr ""
105
 
106
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:378
107
  msgid "Gateway will appear when store currency is <strong>%s</strong>"
108
  msgstr ""
109
 
110
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:381
111
  msgid " & billing country is not <strong>%s</strong>"
112
  msgstr ""
113
 
114
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:383
115
  #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:386
 
116
  msgid " & billing country is <strong>%s</strong>"
117
  msgstr ""
118
 
119
- #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:408
120
  msgid "Pay with %s"
121
  msgstr ""
122
 
123
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:414
124
  msgid "Please fill out all required fields."
125
  msgstr ""
126
 
127
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:429
128
  #: includes/controllers/class-wc-stripe-controller-cart.php:134
129
  #: includes/controllers/class-wc-stripe-controller-cart.php:192
130
  #: includes/controllers/class-wc-stripe-controller-googlepay.php:136
@@ -134,130 +134,138 @@ msgstr ""
134
  msgid "Total"
135
  msgstr ""
136
 
137
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:500
138
  msgid "User must be logged in."
139
  msgstr ""
140
 
141
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:525
142
  msgid "Error saving payment method. Reason: %s"
143
  msgstr ""
144
 
145
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:544
146
  #: includes/wc-stripe-webhook-functions.php:232
147
  msgid "Order refunded in Stripe. Amount: %s"
148
  msgstr ""
149
 
150
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:583
151
  msgid "Order amount captured in Stripe. Amount: %s"
152
  msgstr ""
153
 
154
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:587
155
  msgid "Error capturing charge in Stripe. Reason: %s"
156
  msgstr ""
157
 
158
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:608
159
  msgid "Error voiding charge. Reason: %s"
160
  msgstr ""
161
 
162
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:610
163
  msgid "Charge voided in Stripe."
164
  msgstr ""
165
 
166
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:788
167
  msgid "n/a"
168
  msgstr ""
169
 
170
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:816
171
  #: includes/admin/meta-boxes/views/html-order-pay.php:42
172
  msgid "New Card"
173
  msgstr ""
174
 
175
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:820
176
  #: includes/admin/meta-boxes/views/html-order-pay.php:30
177
  msgid "Saved Cards"
178
  msgstr ""
179
 
180
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1015
181
  msgid "Attempt to save payment method failed. Reason: %s"
182
  msgstr ""
183
 
184
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1040
185
  msgid "We were not able to save your payment method. To prevent billing issues with your subscription, please add a payment method to the subscription."
186
  msgstr ""
187
 
188
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1042
189
  msgid "We were not able to save your payment method. Reason: %s"
190
  msgstr ""
191
 
192
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1076
193
  msgid "Payment Method Token"
194
  msgstr ""
195
 
196
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1080
197
  msgid "Stripe Customer ID"
198
  msgstr ""
199
 
200
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1100
201
  msgid "Recurring payment for order failed. Reason: %s"
202
  msgstr ""
203
 
204
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1114
 
 
 
 
205
  msgid "Recurring payment captured in Stripe. Payment method: %s"
206
  msgstr ""
207
 
208
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1117
209
  msgid "Recurring payment authorized in Stripe. Payment method: %s"
210
  msgstr ""
211
 
212
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1120
213
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1353
214
  msgid "Customer must manually complete payment for payment method %s"
215
  msgstr ""
216
 
217
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1154
218
  #: includes/abstract/abstract-wc-stripe-payment.php:268
219
  msgid "Order %1$s from %2$s"
220
  msgstr ""
221
 
222
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1339
223
  msgid "Pre-order payment for order failed. Reason: %s"
224
  msgstr ""
225
 
226
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1347
 
 
 
 
227
  msgid "Pre-order payment captured in Stripe. Payment method: %s"
228
  msgstr ""
229
 
230
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1350
231
  msgid "Pre-order payment authorized in Stripe. Payment method: %s"
232
  msgstr ""
233
 
234
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1422
235
  msgid "Cannot process payment"
236
  msgstr ""
237
 
238
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1430
239
  msgid "Increase your conversion rate by offering %1$s on your Product and Cart pages, or at the top of the checkout page. <br/><strong>Note:</strong> you can control which products display %s by going to the product edit page."
240
  msgstr ""
241
 
242
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1546
243
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1577
244
  msgid "Shipping"
245
  msgstr ""
246
 
247
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1554
248
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1580
249
  msgid "Discount"
250
  msgstr ""
251
 
252
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1557
253
  msgid "Tax"
254
  msgstr ""
255
 
256
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1587
257
  msgid "Fees"
258
  msgstr ""
259
 
260
- #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1781
261
  msgid "Error saving payment method for subscription. Reason: %s"
262
  msgstr ""
263
 
@@ -283,7 +291,7 @@ msgstr ""
283
 
284
  #: includes/abstract/abstract-wc-stripe-payment.php:335
285
  #: includes/gateways/class-wc-payment-gateway-stripe-ach.php:121
286
- #: includes/gateways/class-wc-payment-gateway-stripe-cc.php:283
287
  msgid "Error processing payment. Reason: %s"
288
  msgstr ""
289
 
@@ -1040,16 +1048,16 @@ msgstr ""
1040
  msgid "Order customer Id and payment method customer Id do not match."
1041
  msgstr ""
1042
 
1043
- #: includes/controllers/class-wc-stripe-controller-payment-intent.php:72
1044
  msgid "Error creating payment intent. Reason: %s"
1045
  msgstr ""
1046
 
1047
- #: includes/controllers/class-wc-stripe-controller-payment-intent.php:88
1048
  #: packages/cartflows/src/Routes/PaymentIntentRoute.php:38
1049
  msgid "Invalid order id provided"
1050
  msgstr ""
1051
 
1052
- #: includes/controllers/class-wc-stripe-controller-payment-intent.php:94
1053
  #: packages/cartflows/src/Routes/PaymentIntentRoute.php:47
1054
  msgid "You are not authorized to update this order."
1055
  msgstr ""
@@ -1279,16 +1287,16 @@ msgstr ""
1279
  msgid "Store currency must be %s for Afterpay to show because your Stripe account is registered in %s. This is a requirement of Afterpay."
1280
  msgstr ""
1281
 
1282
- #: includes/gateways/class-wc-payment-gateway-stripe-alipay.php:22
1283
  #: includes/gateways/class-wc-payment-gateway-stripe-alipay.php:25
 
1284
  msgid "Alipay"
1285
  msgstr ""
1286
 
1287
- #: includes/gateways/class-wc-payment-gateway-stripe-alipay.php:26
1288
  msgid "Alipay gateway that integrates with your Stripe account."
1289
  msgstr ""
1290
 
1291
- #: includes/gateways/class-wc-payment-gateway-stripe-alipay.php:63
1292
  msgid ""
1293
  "Gateway will appear when store currency is CNY, or currency matches merchant's \r\n"
1294
  "\t\t\t\t\tdefault Stripe currency. For merchants located in DK, NO, SE, & CH, currency must be EUR."
@@ -1317,33 +1325,58 @@ msgstr ""
1317
  msgid "Please select a product option before updating quantity."
1318
  msgstr ""
1319
 
1320
- #: includes/gateways/class-wc-payment-gateway-stripe-bancontact.php:24
1321
- #: includes/gateways/class-wc-payment-gateway-stripe-bancontact.php:25
1322
  msgid "Bancontact"
1323
  msgstr ""
1324
 
1325
- #: includes/gateways/class-wc-payment-gateway-stripe-bancontact.php:26
1326
  msgid "Bancontact gateway that integrates with your Stripe account."
1327
  msgstr ""
1328
 
1329
- #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:22
1330
- #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:23
 
1331
  msgid "BECS"
1332
  msgstr ""
1333
 
1334
- #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:24
1335
  msgid "BECS direct debit gateway that integrates with your Stripe account."
1336
  msgstr ""
1337
 
1338
- #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:29
1339
  msgid ""
1340
  "By providing your bank account details and confirming this payment, you agree to this \r\n"
1341
- "\t\tDirect Debit Request and the %sDirect Debit Request service agreement%s, and authorise Stripe Payments Australia Pty Ltd ACN 160 180 343 Direct \r\n"
1342
- "\t\tDebit User ID number 507156 (Stripe) to debit your account through the Bulk Electronic Clearing System (BECS) on behalf of Stripe Press \r\n"
1343
  "\t\t(the \"Merchant\") for any amounts separately communicated to you by the Merchant. You certify that you are either an account holder or an \r\n"
1344
  "\t\tauthorised signatory on the account listed above."
1345
  msgstr ""
1346
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1347
  #: includes/gateways/class-wc-payment-gateway-stripe-boleto.php:30
1348
  #: includes/gateways/class-wc-payment-gateway-stripe-boleto.php:31
1349
  msgid "Boleto"
@@ -1401,12 +1434,12 @@ msgstr ""
1401
  msgid "Credit card gateway that integrates with your Stripe account."
1402
  msgstr ""
1403
 
1404
- #: includes/gateways/class-wc-payment-gateway-stripe-eps.php:23
1405
  #: includes/gateways/class-wc-payment-gateway-stripe-eps.php:26
 
1406
  msgid "EPS"
1407
  msgstr ""
1408
 
1409
- #: includes/gateways/class-wc-payment-gateway-stripe-eps.php:27
1410
  msgid "EPS gateway that integrates with your Stripe account."
1411
  msgstr ""
1412
 
@@ -1419,12 +1452,12 @@ msgstr ""
1419
  msgid "FPX gateway that integrates with your Stripe account."
1420
  msgstr ""
1421
 
1422
- #: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:23
1423
  #: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:26
 
1424
  msgid "Giropay"
1425
  msgstr ""
1426
 
1427
- #: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:27
1428
  msgid "Giropay gateway that integrates with your Stripe account."
1429
  msgstr ""
1430
 
@@ -1544,17 +1577,17 @@ msgstr ""
1544
  msgid "Adding to cart..."
1545
  msgstr ""
1546
 
1547
- #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:23
1548
- #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:25
1549
- #: includes/tokens/class-wc-payment-token-stripe-sepa.php:54
1550
  msgid "SEPA"
1551
  msgstr ""
1552
 
1553
- #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:26
1554
  msgid "SEPA gateway that integrates with your Stripe account."
1555
  msgstr ""
1556
 
1557
- #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:32
1558
  msgid ""
1559
  "By providing your IBAN and confirming this payment, you are\r\n"
1560
  "\t\t\tauthorizing %s and Stripe, our payment service provider, to send instructions to your bank to debit your account\r\n"
@@ -1562,32 +1595,20 @@ msgid ""
1562
  "\t\t\tterms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited."
1563
  msgstr ""
1564
 
1565
- #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:68
1566
- msgid "Company Name"
1567
- msgstr ""
1568
-
1569
- #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:72
1570
  msgid "The name of your company that will appear in the SEPA mandate."
1571
  msgstr ""
1572
 
1573
- #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:79
1574
  msgid "SEPA Test Accounts"
1575
  msgstr ""
1576
 
1577
- #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:83
1578
- msgid "New Account"
1579
- msgstr ""
1580
-
1581
- #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:87
1582
- msgid "Saved Accounts"
1583
- msgstr ""
1584
-
1585
- #: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:24
1586
  #: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:27
 
1587
  msgid "Sofort"
1588
  msgstr ""
1589
 
1590
- #: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:28
1591
  msgid "Sofort gateway that integrates with your Stripe account."
1592
  msgstr ""
1593
 
@@ -1610,7 +1631,7 @@ msgstr ""
1610
 
1611
  #: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:92
1612
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:130
1613
- #: packages/blocks/build/commons.js:4284
1614
  msgid "Scan the QR code using your WeChat app. Once scanned click the Place Order button."
1615
  msgstr ""
1616
 
@@ -2075,7 +2096,7 @@ msgstr ""
2075
 
2076
  #: includes/gateways/settings/payment-request-settings.php:5
2077
  msgid ""
2078
- "The PaymentRequest gateway uses your customer's browser to render payment options like Google Pay and Microsoft Pay. You can either use the Google Pay gateway for example, or this gateway.\n"
2079
  "\t\t\t\t\t\tThe difference is this gateway uses Stripe's PaymentRequest Button rather than render a Google Pay specific button."
2080
  msgstr ""
2081
 
@@ -2138,16 +2159,25 @@ msgid "{bank_name} **** {last4}"
2138
  msgstr ""
2139
 
2140
  #: includes/tokens/class-wc-payment-token-stripe-ach.php:80
 
2141
  #: includes/tokens/class-wc-payment-token-stripe-cc.php:125
2142
- #: includes/tokens/class-wc-payment-token-stripe-local-payment.php:33
2143
- #: includes/tokens/class-wc-payment-token-stripe-sepa.php:60
2144
  msgid "Gateway Title"
2145
  msgstr ""
2146
 
 
2147
  #: includes/tokens/class-wc-payment-token-stripe-cc.php:92
 
2148
  msgid "{brand} ending in {last4}"
2149
  msgstr ""
2150
 
 
 
 
 
 
 
2151
  #: includes/tokens/class-wc-payment-token-stripe-cc.php:95
2152
  msgid "Type Masked Number"
2153
  msgstr ""
@@ -2156,10 +2186,6 @@ msgstr ""
2156
  msgid "Type Dash Masked Number"
2157
  msgstr ""
2158
 
2159
- #: includes/tokens/class-wc-payment-token-stripe-cc.php:105
2160
- msgid "Type Last 4"
2161
- msgstr ""
2162
-
2163
  #: includes/tokens/class-wc-payment-token-stripe-cc.php:110
2164
  msgid "Type Dash & Last 4"
2165
  msgstr ""
@@ -2448,19 +2474,19 @@ msgstr ""
2448
  msgid "payment_intent.succeeded webhook received. Payment has been completed."
2449
  msgstr ""
2450
 
2451
- #: includes/wc-stripe-webhook-functions.php:280
2452
  msgid "A dispute has been created for charge %1$s. Dispute status: %2$s."
2453
  msgstr ""
2454
 
2455
- #: includes/wc-stripe-webhook-functions.php:309
2456
  msgid "Dispute %1$s has been closed. Result: %2$s."
2457
  msgstr ""
2458
 
2459
- #: includes/wc-stripe-webhook-functions.php:335
2460
  msgid "A review has been opened for charge %1$s. Reason: %2$s."
2461
  msgstr ""
2462
 
2463
- #: includes/wc-stripe-webhook-functions.php:353
2464
  msgid "A review has been closed for charge %1$s. Reason: %2$s."
2465
  msgstr ""
2466
 
@@ -2469,7 +2495,7 @@ msgstr ""
2469
  msgid "Save Card"
2470
  msgstr ""
2471
 
2472
- #: packages/woofunnels/src/PaymentGateways/BasePaymentGateway.php:162
2473
  msgid "%1$s - Order %2$s - One Time offer"
2474
  msgstr ""
2475
 
@@ -2562,25 +2588,25 @@ msgstr ""
2562
 
2563
  #: templates/checkout/boleto.php:17
2564
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:48
2565
- #: packages/blocks/build/commons.js:3352
2566
  msgid "Test mode values"
2567
  msgstr ""
2568
 
2569
  #: templates/checkout/boleto.php:27
2570
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:58
2571
- #: packages/blocks/build/commons.js:3362
2572
  msgid "Accepted formats"
2573
  msgstr ""
2574
 
2575
  #: templates/checkout/boleto.php:29
2576
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:61
2577
- #: packages/blocks/build/commons.js:3365
2578
  msgid "XXX.XXX.XXX-XX or XXXXXXXXXXX"
2579
  msgstr ""
2580
 
2581
  #: templates/checkout/boleto.php:32
2582
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:65
2583
- #: packages/blocks/build/commons.js:3369
2584
  msgid "XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX"
2585
  msgstr ""
2586
 
@@ -2594,7 +2620,7 @@ msgstr ""
2594
 
2595
  #: templates/checkout/klarna-v2.php:12
2596
  #: packages/blocks/assets/js/payment-methods/local-payment/klarna.js:15
2597
- #: packages/blocks/build/commons.js:3770
2598
  msgid "Test mode sms"
2599
  msgstr ""
2600
 
@@ -2609,28 +2635,28 @@ msgid "%s is not a valid blocks Stripe custom form. Please choose another custom
2609
  msgstr ""
2610
 
2611
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:27
2612
- #: packages/blocks/build/commons.js:3331
2613
  msgid "Please enter a valid CPF/CNPJ value"
2614
  msgstr ""
2615
 
2616
  #: packages/blocks/assets/js/payment-methods/local-payment/hooks/use-create-source.js:73
2617
  #: packages/blocks/assets/js/payment-methods/local-payment/hooks/use-validate-checkout.js:10
2618
- #: packages/blocks/build/commons.js:3649
2619
- #: packages/blocks/build/commons.js:3686
2620
  msgid "Please enter your payment info before proceeding."
2621
  msgstr ""
2622
 
2623
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:51
2624
- #: packages/blocks/build/commons.js:4205
2625
  msgid "Please scan your QR code to continue with payment."
2626
  msgstr ""
2627
 
2628
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:97
2629
- #: packages/blocks/build/commons.js:4251
2630
  msgid "Please fill out all the required fields in order to complete the WeChat payment."
2631
  msgstr ""
2632
 
2633
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:127
2634
- #: packages/blocks/build/commons.js:4281
2635
  msgid "Test mode: Click the Place Order button to proceed."
2636
  msgstr ""
2
  # This file is distributed under the same license as the Payment Plugins for Stripe WooCommerce plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Payment Plugins for Stripe WooCommerce 3.3.18\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woo-stripe-payment\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-03-22T01:34:34+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: woo-stripe-payment\n"
30
  msgid "Payment Plugins, support@paymentplugins.com"
31
  msgstr ""
32
 
33
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:118
34
  #: includes/admin/meta-boxes/views/html-product-data.php:14
35
  #: includes/gateways/settings/ach-settings.php:13
36
  #: includes/gateways/settings/applepay-settings.php:11
40
  msgid "Enabled"
41
  msgstr ""
42
 
43
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:123
44
  msgid "If enabled, your site can accept %s payments through Stripe."
45
  msgstr ""
46
 
47
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:127
48
  #: includes/gateways/settings/ach-settings.php:70
49
  #: includes/gateways/settings/applepay-settings.php:20
50
  #: includes/gateways/settings/cc-settings.php:18
53
  msgid "General Settings"
54
  msgstr ""
55
 
56
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:131
57
  #: includes/admin/meta-boxes/views/html-charge-data-subview.php:47
58
  #: includes/gateways/settings/ach-settings.php:74
59
  #: includes/gateways/settings/applepay-settings.php:24
63
  msgid "Title"
64
  msgstr ""
65
 
66
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:137
67
  #: includes/gateways/settings/ach-settings.php:80
68
  #: includes/gateways/settings/applepay-settings.php:30
69
  #: includes/gateways/settings/cc-settings.php:28
72
  msgid "Description"
73
  msgstr ""
74
 
75
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:140
76
  #: includes/gateways/settings/ach-settings.php:83
77
  #: includes/gateways/settings/applepay-settings.php:33
78
  #: includes/gateways/settings/cc-settings.php:31
81
  msgid "Leave blank if you don't want a description to show for the gateway."
82
  msgstr ""
83
 
84
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:144
85
  #: includes/gateways/settings/ach-settings.php:87
86
  msgid "Order Button Text"
87
  msgstr ""
88
 
89
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:147
90
  #: includes/gateways/settings/ach-settings.php:90
91
  msgid "The text on the Place Order button that displays when the gateway is selected on the checkout page."
92
  msgstr ""
93
 
94
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:171
95
  msgid "When the billing country matches one of these values, the payment method will be hidden on the checkout page."
96
  msgstr ""
97
 
98
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:184
99
  msgid "When the billing country matches one of these values, the payment method will be shown on the checkout page."
100
  msgstr ""
101
 
102
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:242
103
  msgid "Order %s"
104
  msgstr ""
105
 
106
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:381
107
  msgid "Gateway will appear when store currency is <strong>%s</strong>"
108
  msgstr ""
109
 
110
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:384
111
  msgid " & billing country is not <strong>%s</strong>"
112
  msgstr ""
113
 
 
114
  #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:386
115
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:389
116
  msgid " & billing country is <strong>%s</strong>"
117
  msgstr ""
118
 
119
+ #: includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php:411
120
  msgid "Pay with %s"
121
  msgstr ""
122
 
123
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:422
124
  msgid "Please fill out all required fields."
125
  msgstr ""
126
 
127
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:437
128
  #: includes/controllers/class-wc-stripe-controller-cart.php:134
129
  #: includes/controllers/class-wc-stripe-controller-cart.php:192
130
  #: includes/controllers/class-wc-stripe-controller-googlepay.php:136
134
  msgid "Total"
135
  msgstr ""
136
 
137
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:508
138
  msgid "User must be logged in."
139
  msgstr ""
140
 
141
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:533
142
  msgid "Error saving payment method. Reason: %s"
143
  msgstr ""
144
 
145
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:552
146
  #: includes/wc-stripe-webhook-functions.php:232
147
  msgid "Order refunded in Stripe. Amount: %s"
148
  msgstr ""
149
 
150
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:591
151
  msgid "Order amount captured in Stripe. Amount: %s"
152
  msgstr ""
153
 
154
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:595
155
  msgid "Error capturing charge in Stripe. Reason: %s"
156
  msgstr ""
157
 
158
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:616
159
  msgid "Error voiding charge. Reason: %s"
160
  msgstr ""
161
 
162
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:618
163
  msgid "Charge voided in Stripe."
164
  msgstr ""
165
 
166
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:796
167
  msgid "n/a"
168
  msgstr ""
169
 
170
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:824
171
  #: includes/admin/meta-boxes/views/html-order-pay.php:42
172
  msgid "New Card"
173
  msgstr ""
174
 
175
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:828
176
  #: includes/admin/meta-boxes/views/html-order-pay.php:30
177
  msgid "Saved Cards"
178
  msgstr ""
179
 
180
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1023
181
  msgid "Attempt to save payment method failed. Reason: %s"
182
  msgstr ""
183
 
184
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1048
185
  msgid "We were not able to save your payment method. To prevent billing issues with your subscription, please add a payment method to the subscription."
186
  msgstr ""
187
 
188
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1050
189
  msgid "We were not able to save your payment method. Reason: %s"
190
  msgstr ""
191
 
192
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1084
193
  msgid "Payment Method Token"
194
  msgstr ""
195
 
196
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1088
197
  msgid "Stripe Customer ID"
198
  msgstr ""
199
 
200
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1108
201
  msgid "Recurring payment for order failed. Reason: %s"
202
  msgstr ""
203
 
204
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1122
205
+ msgid "Renewal payment initiated in Stripe. Waiting for the payment to clear."
206
+ msgstr ""
207
+
208
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1126
209
  msgid "Recurring payment captured in Stripe. Payment method: %s"
210
  msgstr ""
211
 
212
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1130
213
  msgid "Recurring payment authorized in Stripe. Payment method: %s"
214
  msgstr ""
215
 
216
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1133
217
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1370
218
  msgid "Customer must manually complete payment for payment method %s"
219
  msgstr ""
220
 
221
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1167
222
  #: includes/abstract/abstract-wc-stripe-payment.php:268
223
  msgid "Order %1$s from %2$s"
224
  msgstr ""
225
 
226
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1352
227
  msgid "Pre-order payment for order failed. Reason: %s"
228
  msgstr ""
229
 
230
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1359
231
+ msgid "Pre-order payment initiated in Stripe. Waiting for the payment to clear."
232
+ msgstr ""
233
+
234
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1363
235
  msgid "Pre-order payment captured in Stripe. Payment method: %s"
236
  msgstr ""
237
 
238
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1367
239
  msgid "Pre-order payment authorized in Stripe. Payment method: %s"
240
  msgstr ""
241
 
242
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1439
243
  msgid "Cannot process payment"
244
  msgstr ""
245
 
246
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1447
247
  msgid "Increase your conversion rate by offering %1$s on your Product and Cart pages, or at the top of the checkout page. <br/><strong>Note:</strong> you can control which products display %s by going to the product edit page."
248
  msgstr ""
249
 
250
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1563
251
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1594
252
  msgid "Shipping"
253
  msgstr ""
254
 
255
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1571
256
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1597
257
  msgid "Discount"
258
  msgstr ""
259
 
260
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1574
261
  msgid "Tax"
262
  msgstr ""
263
 
264
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1604
265
  msgid "Fees"
266
  msgstr ""
267
 
268
+ #: includes/abstract/abstract-wc-payment-gateway-stripe.php:1798
269
  msgid "Error saving payment method for subscription. Reason: %s"
270
  msgstr ""
271
 
291
 
292
  #: includes/abstract/abstract-wc-stripe-payment.php:335
293
  #: includes/gateways/class-wc-payment-gateway-stripe-ach.php:121
294
+ #: includes/traits/wc-stripe-payment-traits.php:95
295
  msgid "Error processing payment. Reason: %s"
296
  msgstr ""
297
 
1048
  msgid "Order customer Id and payment method customer Id do not match."
1049
  msgstr ""
1050
 
1051
+ #: includes/controllers/class-wc-stripe-controller-payment-intent.php:73
1052
  msgid "Error creating payment intent. Reason: %s"
1053
  msgstr ""
1054
 
1055
+ #: includes/controllers/class-wc-stripe-controller-payment-intent.php:89
1056
  #: packages/cartflows/src/Routes/PaymentIntentRoute.php:38
1057
  msgid "Invalid order id provided"
1058
  msgstr ""
1059
 
1060
+ #: includes/controllers/class-wc-stripe-controller-payment-intent.php:95
1061
  #: packages/cartflows/src/Routes/PaymentIntentRoute.php:47
1062
  msgid "You are not authorized to update this order."
1063
  msgstr ""
1287
  msgid "Store currency must be %s for Afterpay to show because your Stripe account is registered in %s. This is a requirement of Afterpay."
1288
  msgstr ""
1289
 
 
1290
  #: includes/gateways/class-wc-payment-gateway-stripe-alipay.php:25
1291
+ #: includes/gateways/class-wc-payment-gateway-stripe-alipay.php:28
1292
  msgid "Alipay"
1293
  msgstr ""
1294
 
1295
+ #: includes/gateways/class-wc-payment-gateway-stripe-alipay.php:29
1296
  msgid "Alipay gateway that integrates with your Stripe account."
1297
  msgstr ""
1298
 
1299
+ #: includes/gateways/class-wc-payment-gateway-stripe-alipay.php:69
1300
  msgid ""
1301
  "Gateway will appear when store currency is CNY, or currency matches merchant's \r\n"
1302
  "\t\t\t\t\tdefault Stripe currency. For merchants located in DK, NO, SE, & CH, currency must be EUR."
1325
  msgid "Please select a product option before updating quantity."
1326
  msgstr ""
1327
 
1328
+ #: includes/gateways/class-wc-payment-gateway-stripe-bancontact.php:27
1329
+ #: includes/gateways/class-wc-payment-gateway-stripe-bancontact.php:28
1330
  msgid "Bancontact"
1331
  msgstr ""
1332
 
1333
+ #: includes/gateways/class-wc-payment-gateway-stripe-bancontact.php:29
1334
  msgid "Bancontact gateway that integrates with your Stripe account."
1335
  msgstr ""
1336
 
1337
+ #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:27
1338
+ #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:28
1339
+ #: includes/tokens/class-wc-payment-token-stripe-becs.php:57
1340
  msgid "BECS"
1341
  msgstr ""
1342
 
1343
+ #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:29
1344
  msgid "BECS direct debit gateway that integrates with your Stripe account."
1345
  msgstr ""
1346
 
1347
+ #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:34
1348
  msgid ""
1349
  "By providing your bank account details and confirming this payment, you agree to this \r\n"
1350
+ "\t\tDirect Debit Request and the %1$sDirect Debit Request service agreement%2$s, and authorise Stripe Payments Australia Pty Ltd ACN 160 180 343 Direct \r\n"
1351
+ "\t\tDebit User ID number 507156 (\"Stripe\") to debit your account through the Bulk Electronic Clearing System (BECS) on behalf of %3$s \r\n"
1352
  "\t\t(the \"Merchant\") for any amounts separately communicated to you by the Merchant. You certify that you are either an account holder or an \r\n"
1353
  "\t\tauthorised signatory on the account listed above."
1354
  msgstr ""
1355
 
1356
+ #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:62
1357
+ #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:73
1358
+ msgid "Company Name"
1359
+ msgstr ""
1360
+
1361
+ #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:65
1362
+ msgid "The company name that appears in the BECS mandate text."
1363
+ msgstr ""
1364
+
1365
+ #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:68
1366
+ #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:80
1367
+ msgid "Payment Method Display"
1368
+ msgstr ""
1369
+
1370
+ #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:80
1371
+ #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:97
1372
+ msgid "New Account"
1373
+ msgstr ""
1374
+
1375
+ #: includes/gateways/class-wc-payment-gateway-stripe-becs.php:84
1376
+ #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:101
1377
+ msgid "Saved Accounts"
1378
+ msgstr ""
1379
+
1380
  #: includes/gateways/class-wc-payment-gateway-stripe-boleto.php:30
1381
  #: includes/gateways/class-wc-payment-gateway-stripe-boleto.php:31
1382
  msgid "Boleto"
1434
  msgid "Credit card gateway that integrates with your Stripe account."
1435
  msgstr ""
1436
 
 
1437
  #: includes/gateways/class-wc-payment-gateway-stripe-eps.php:26
1438
+ #: includes/gateways/class-wc-payment-gateway-stripe-eps.php:29
1439
  msgid "EPS"
1440
  msgstr ""
1441
 
1442
+ #: includes/gateways/class-wc-payment-gateway-stripe-eps.php:30
1443
  msgid "EPS gateway that integrates with your Stripe account."
1444
  msgstr ""
1445
 
1452
  msgid "FPX gateway that integrates with your Stripe account."
1453
  msgstr ""
1454
 
 
1455
  #: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:26
1456
+ #: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:29
1457
  msgid "Giropay"
1458
  msgstr ""
1459
 
1460
+ #: includes/gateways/class-wc-payment-gateway-stripe-giropay.php:30
1461
  msgid "Giropay gateway that integrates with your Stripe account."
1462
  msgstr ""
1463
 
1577
  msgid "Adding to cart..."
1578
  msgstr ""
1579
 
1580
+ #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:28
1581
+ #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:30
1582
+ #: includes/tokens/class-wc-payment-token-stripe-sepa.php:57
1583
  msgid "SEPA"
1584
  msgstr ""
1585
 
1586
+ #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:31
1587
  msgid "SEPA gateway that integrates with your Stripe account."
1588
  msgstr ""
1589
 
1590
+ #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:36
1591
  msgid ""
1592
  "By providing your IBAN and confirming this payment, you are\r\n"
1593
  "\t\t\tauthorizing %s and Stripe, our payment service provider, to send instructions to your bank to debit your account\r\n"
1595
  "\t\t\tterms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited."
1596
  msgstr ""
1597
 
1598
+ #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:77
 
 
 
 
1599
  msgid "The name of your company that will appear in the SEPA mandate."
1600
  msgstr ""
1601
 
1602
+ #: includes/gateways/class-wc-payment-gateway-stripe-sepa.php:93
1603
  msgid "SEPA Test Accounts"
1604
  msgstr ""
1605
 
 
 
 
 
 
 
 
 
 
1606
  #: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:27
1607
+ #: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:30
1608
  msgid "Sofort"
1609
  msgstr ""
1610
 
1611
+ #: includes/gateways/class-wc-payment-gateway-stripe-sofort.php:31
1612
  msgid "Sofort gateway that integrates with your Stripe account."
1613
  msgstr ""
1614
 
1631
 
1632
  #: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:92
1633
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:130
1634
+ #: packages/blocks/build/commons.js:4289
1635
  msgid "Scan the QR code using your WeChat app. Once scanned click the Place Order button."
1636
  msgstr ""
1637
 
2096
 
2097
  #: includes/gateways/settings/payment-request-settings.php:5
2098
  msgid ""
2099
+ "The PaymentRequest gateway uses your customer's browser to render payment options like Google Pay and Microsoft Pay. You can either use the Google Pay gateway for example, or this gateway.\r\n"
2100
  "\t\t\t\t\t\tThe difference is this gateway uses Stripe's PaymentRequest Button rather than render a Google Pay specific button."
2101
  msgstr ""
2102
 
2159
  msgstr ""
2160
 
2161
  #: includes/tokens/class-wc-payment-token-stripe-ach.php:80
2162
+ #: includes/tokens/class-wc-payment-token-stripe-becs.php:63
2163
  #: includes/tokens/class-wc-payment-token-stripe-cc.php:125
2164
+ #: includes/tokens/class-wc-payment-token-stripe-local-payment.php:34
2165
+ #: includes/tokens/class-wc-payment-token-stripe-sepa.php:63
2166
  msgid "Gateway Title"
2167
  msgstr ""
2168
 
2169
+ #: includes/tokens/class-wc-payment-token-stripe-becs.php:65
2170
  #: includes/tokens/class-wc-payment-token-stripe-cc.php:92
2171
+ #: includes/tokens/class-wc-payment-token-stripe-sepa.php:65
2172
  msgid "{brand} ending in {last4}"
2173
  msgstr ""
2174
 
2175
+ #: includes/tokens/class-wc-payment-token-stripe-becs.php:68
2176
+ #: includes/tokens/class-wc-payment-token-stripe-cc.php:105
2177
+ #: includes/tokens/class-wc-payment-token-stripe-sepa.php:68
2178
+ msgid "Type Last 4"
2179
+ msgstr ""
2180
+
2181
  #: includes/tokens/class-wc-payment-token-stripe-cc.php:95
2182
  msgid "Type Masked Number"
2183
  msgstr ""
2186
  msgid "Type Dash Masked Number"
2187
  msgstr ""
2188
 
 
 
 
 
2189
  #: includes/tokens/class-wc-payment-token-stripe-cc.php:110
2190
  msgid "Type Dash & Last 4"
2191
  msgstr ""
2474
  msgid "payment_intent.succeeded webhook received. Payment has been completed."
2475
  msgstr ""
2476
 
2477
+ #: includes/wc-stripe-webhook-functions.php:279
2478
  msgid "A dispute has been created for charge %1$s. Dispute status: %2$s."
2479
  msgstr ""
2480
 
2481
+ #: includes/wc-stripe-webhook-functions.php:308
2482
  msgid "Dispute %1$s has been closed. Result: %2$s."
2483
  msgstr ""
2484
 
2485
+ #: includes/wc-stripe-webhook-functions.php:334
2486
  msgid "A review has been opened for charge %1$s. Reason: %2$s."
2487
  msgstr ""
2488
 
2489
+ #: includes/wc-stripe-webhook-functions.php:352
2490
  msgid "A review has been closed for charge %1$s. Reason: %2$s."
2491
  msgstr ""
2492
 
2495
  msgid "Save Card"
2496
  msgstr ""
2497
 
2498
+ #: packages/woofunnels/src/Upsell/PaymentGateways/BasePaymentGateway.php:160
2499
  msgid "%1$s - Order %2$s - One Time offer"
2500
  msgstr ""
2501
 
2588
 
2589
  #: templates/checkout/boleto.php:17
2590
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:48
2591
+ #: packages/blocks/build/commons.js:3363
2592
  msgid "Test mode values"
2593
  msgstr ""
2594
 
2595
  #: templates/checkout/boleto.php:27
2596
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:58
2597
+ #: packages/blocks/build/commons.js:3373
2598
  msgid "Accepted formats"
2599
  msgstr ""
2600
 
2601
  #: templates/checkout/boleto.php:29
2602
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:61
2603
+ #: packages/blocks/build/commons.js:3376
2604
  msgid "XXX.XXX.XXX-XX or XXXXXXXXXXX"
2605
  msgstr ""
2606
 
2607
  #: templates/checkout/boleto.php:32
2608
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:65
2609
+ #: packages/blocks/build/commons.js:3380
2610
  msgid "XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX"
2611
  msgstr ""
2612
 
2620
 
2621
  #: templates/checkout/klarna-v2.php:12
2622
  #: packages/blocks/assets/js/payment-methods/local-payment/klarna.js:15
2623
+ #: packages/blocks/build/commons.js:3788
2624
  msgid "Test mode sms"
2625
  msgstr ""
2626
 
2635
  msgstr ""
2636
 
2637
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:27
2638
+ #: packages/blocks/build/commons.js:3342
2639
  msgid "Please enter a valid CPF/CNPJ value"
2640
  msgstr ""
2641
 
2642
  #: packages/blocks/assets/js/payment-methods/local-payment/hooks/use-create-source.js:73
2643
  #: packages/blocks/assets/js/payment-methods/local-payment/hooks/use-validate-checkout.js:10
2644
+ #: packages/blocks/build/commons.js:3667
2645
+ #: packages/blocks/build/commons.js:3704
2646
  msgid "Please enter your payment info before proceeding."
2647
  msgstr ""
2648
 
2649
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:51
2650
+ #: packages/blocks/build/commons.js:4210
2651
  msgid "Please scan your QR code to continue with payment."
2652
  msgstr ""
2653
 
2654
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:97
2655
+ #: packages/blocks/build/commons.js:4256
2656
  msgid "Please fill out all the required fields in order to complete the WeChat payment."
2657
  msgstr ""
2658
 
2659
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:127
2660
+ #: packages/blocks/build/commons.js:4286
2661
  msgid "Test mode: Click the Place Order button to proceed."
2662
  msgstr ""
includes/abstract/abstract-wc-payment-gateway-stripe-local-payment.php CHANGED
@@ -10,7 +10,7 @@ if ( ! class_exists( 'WC_Payment_Gateway_Stripe' ) ) {
10
  * Local payment method classes should extend this abstract class
11
  *
12
  * @package Stripe/Abstract
13
- * @author Payment Plugins
14
  *
15
  */
16
  abstract class WC_Payment_Gateway_Stripe_Local_Payment extends WC_Payment_Gateway_Stripe {
@@ -36,12 +36,15 @@ abstract class WC_Payment_Gateway_Stripe_Local_Payment extends WC_Payment_Gatewa
36
 
37
  protected $local_payment_description = '';
38
 
 
 
39
  public function __construct() {
40
- $this->token_type = 'Stripe_Local';
41
  $this->template_name = 'local-payment.php';
42
  parent::__construct();
43
- $this->settings['method_format'] = 'gateway_title';
44
 
 
 
 
45
  if ( ! isset( $this->form_fields['charge_type'] ) ) {
46
  $this->settings['charge_type'] = 'capture';
47
  }
@@ -327,7 +330,7 @@ abstract class WC_Payment_Gateway_Stripe_Local_Payment extends WC_Payment_Gatewa
327
  } else {
328
  $currency = get_woocommerce_currency();
329
  $customer = WC()->customer;
330
- $billing_country = $customer ? $customer->get_billing_country() : NULL;
331
  $total = WC()->cart ? WC()->cart->total : 0;
332
  if ( ! $billing_country ) {
333
  $billing_country = WC()->countries->get_base_country();
10
  * Local payment method classes should extend this abstract class
11
  *
12
  * @package Stripe/Abstract
13
+ * @author Payment Plugins
14
  *
15
  */
16
  abstract class WC_Payment_Gateway_Stripe_Local_Payment extends WC_Payment_Gateway_Stripe {
36
 
37
  protected $local_payment_description = '';
38
 
39
+ public $token_type = 'Stripe_Local';
40
+
41
  public function __construct() {
 
42
  $this->template_name = 'local-payment.php';
43
  parent::__construct();
 
44
 
45
+ if ( ! isset( $this->form_fields['method_format'] ) ) {
46
+ $this->settings['method_format'] = 'gateway_title';
47
+ }
48
  if ( ! isset( $this->form_fields['charge_type'] ) ) {
49
  $this->settings['charge_type'] = 'capture';
50
  }
330
  } else {
331
  $currency = get_woocommerce_currency();
332
  $customer = WC()->customer;
333
+ $billing_country = $customer ? $customer->get_billing_country() : null;
334
  $total = WC()->cart ? WC()->cart->total : 0;
335
  if ( ! $billing_country ) {
336
  $billing_country = WC()->countries->get_base_country();
includes/abstract/abstract-wc-payment-gateway-stripe.php CHANGED
@@ -200,8 +200,16 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
200
  $this->form_fields = apply_filters( 'wc_stripe_form_fields_' . $this->id, $this->form_fields );
201
  }
202
 
 
 
 
203
  public function get_method_formats() {
 
 
 
 
204
  $class_name = 'WC_Payment_Token_' . $this->token_type;
 
205
  if ( class_exists( $class_name ) ) {
206
  /**
207
  *
@@ -209,10 +217,10 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
209
  */
210
  $token = new $class_name();
211
 
212
- return $token->get_formats();
213
  }
214
 
215
- return array();
216
  }
217
 
218
  public function enqueue_admin_scripts() {
@@ -779,7 +787,7 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
779
  * @param WC_Payment_Token_Stripe_CC $payment_token
780
  */
781
  public function payment_methods_list_item( $item, $payment_token ) {
782
- if ( $payment_token->get_type() === $this->token_type ) {
783
  $item['method']['last4'] = $payment_token->get_last4();
784
  $item['method']['brand'] = ucfirst( $payment_token->get_brand() );
785
  if ( $payment_token->has_expiration() ) {
@@ -1109,9 +1117,14 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
1109
 
1110
  if ( $result->complete_payment ) {
1111
  if ( $result->charge->captured ) {
1112
- WC_Stripe_Utils::add_balance_transaction_to_order( $result->charge, $order );
1113
- $order->payment_complete( $result->charge->id );
1114
- $order->add_order_note( sprintf( __( 'Recurring payment captured in Stripe. Payment method: %s', 'woo-stripe-payment' ), $order->get_payment_method_title() ) );
 
 
 
 
 
1115
  } else {
1116
  $order->update_status( apply_filters( 'wc_stripe_authorized_renewal_order_status', 'on-hold', $order, $this ),
1117
  sprintf( __( 'Recurring payment authorized in Stripe. Payment method: %s', 'woo-stripe-payment' ), $order->get_payment_method_title() ) );
@@ -1170,7 +1183,7 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
1170
  } else {
1171
  $this->payment_method_token = $this->get_saved_source_id();
1172
 
1173
- return $this->payment_object->process_zero_total_order( $order, $this, true );
1174
  }
1175
 
1176
  return $this->payment_object->process_zero_total_order( $order, $this );
@@ -1219,7 +1232,7 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
1219
  */
1220
  public function save_zero_total_meta( $order, $token = null ) {
1221
  $token = ! $token ? $this->get_token( $this->payment_method_token, $order->get_user_id() ) : $token;
1222
- $order->set_payment_method_title( $token->get_payment_method_title() );
1223
  $order->update_meta_data( WC_Stripe_Constants::MODE, wc_stripe_mode() );
1224
  $order->update_meta_data( WC_Stripe_Constants::PAYMENT_METHOD_TOKEN, $token->get_token() );
1225
  if ( $order->get_customer_id() ) {
@@ -1342,9 +1355,13 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
1342
  $this->save_order_meta( $order, $result->charge );
1343
 
1344
  if ( $result->charge->captured ) {
1345
- WC_Stripe_Utils::add_balance_transaction_to_order( $result->charge, $order );
1346
- $order->payment_complete( $result->charge->id );
1347
- $order->add_order_note( sprintf( __( 'Pre-order payment captured in Stripe. Payment method: %s', 'woo-stripe-payment' ), $order->get_payment_method_title() ) );
 
 
 
 
1348
  } else {
1349
  $order->update_status( apply_filters( 'wc_stripe_authorized_preorder_order_status', 'on-hold', $order, $this ),
1350
  sprintf( __( 'Pre-order payment authorized in Stripe. Payment method: %s', 'woo-stripe-payment' ), $order->get_payment_method_title() ) );
200
  $this->form_fields = apply_filters( 'wc_stripe_form_fields_' . $this->id, $this->form_fields );
201
  }
202
 
203
+ /**
204
+ * @deprecated 3.3.18
205
+ */
206
  public function get_method_formats() {
207
+ return $this->get_payment_method_formats();
208
+ }
209
+
210
+ public function get_payment_method_formats() {
211
  $class_name = 'WC_Payment_Token_' . $this->token_type;
212
+ $formats = array();
213
  if ( class_exists( $class_name ) ) {
214
  /**
215
  *
217
  */
218
  $token = new $class_name();
219
 
220
+ $formats = $token->get_formats();
221
  }
222
 
223
+ return $formats;
224
  }
225
 
226
  public function enqueue_admin_scripts() {
787
  * @param WC_Payment_Token_Stripe_CC $payment_token
788
  */
789
  public function payment_methods_list_item( $item, $payment_token ) {
790
+ if ( $payment_token->get_type() === $this->token_type && $this->id === $payment_token->get_gateway_id() ) {
791
  $item['method']['last4'] = $payment_token->get_last4();
792
  $item['method']['brand'] = ucfirst( $payment_token->get_brand() );
793
  if ( $payment_token->has_expiration() ) {
1117
 
1118
  if ( $result->complete_payment ) {
1119
  if ( $result->charge->captured ) {
1120
+ if ( $result->charge->status === 'pending' ) {
1121
+ // pending status means this is an asynchronous payment method.
1122
+ $order->update_status( apply_filters( 'wc_stripe_renewal_pending_order_status', 'on-hold', $order, $this, $result->charge ), __( 'Renewal payment initiated in Stripe. Waiting for the payment to clear.', 'woo-stripe-payment' ) );
1123
+ } else {
1124
+ WC_Stripe_Utils::add_balance_transaction_to_order( $result->charge, $order );
1125
+ $order->payment_complete( $result->charge->id );
1126
+ $order->add_order_note( sprintf( __( 'Recurring payment captured in Stripe. Payment method: %s', 'woo-stripe-payment' ), $order->get_payment_method_title() ) );
1127
+ }
1128
  } else {
1129
  $order->update_status( apply_filters( 'wc_stripe_authorized_renewal_order_status', 'on-hold', $order, $this ),
1130
  sprintf( __( 'Recurring payment authorized in Stripe. Payment method: %s', 'woo-stripe-payment' ), $order->get_payment_method_title() ) );
1183
  } else {
1184
  $this->payment_method_token = $this->get_saved_source_id();
1185
 
1186
+ return $this->payment_object->process_zero_total_order( $order, $this );
1187
  }
1188
 
1189
  return $this->payment_object->process_zero_total_order( $order, $this );
1232
  */
1233
  public function save_zero_total_meta( $order, $token = null ) {
1234
  $token = ! $token ? $this->get_token( $this->payment_method_token, $order->get_user_id() ) : $token;
1235
+ $order->set_payment_method_title( $token->get_payment_method_title( $this->get_option( 'method_format' ) ) );
1236
  $order->update_meta_data( WC_Stripe_Constants::MODE, wc_stripe_mode() );
1237
  $order->update_meta_data( WC_Stripe_Constants::PAYMENT_METHOD_TOKEN, $token->get_token() );
1238
  if ( $order->get_customer_id() ) {
1355
  $this->save_order_meta( $order, $result->charge );
1356
 
1357
  if ( $result->charge->captured ) {
1358
+ if ( $result->charge->status === 'pending' ) {
1359
+ $order->update_status( apply_filters( 'wc_stripe_pending_preorder_order_status', 'on-hold', $order, $this ), __( 'Pre-order payment initiated in Stripe. Waiting for the payment to clear.', 'woo-stripe-payment' ) );
1360
+ } else {
1361
+ WC_Stripe_Utils::add_balance_transaction_to_order( $result->charge, $order );
1362
+ $order->payment_complete( $result->charge->id );
1363
+ $order->add_order_note( sprintf( __( 'Pre-order payment captured in Stripe. Payment method: %s', 'woo-stripe-payment' ), $order->get_payment_method_title() ) );
1364
+ }
1365
  } else {
1366
  $order->update_status( apply_filters( 'wc_stripe_authorized_preorder_order_status', 'on-hold', $order, $this ),
1367
  sprintf( __( 'Pre-order payment authorized in Stripe. Payment method: %s', 'woo-stripe-payment' ), $order->get_payment_method_title() ) );
includes/class-stripe.php CHANGED
@@ -26,7 +26,7 @@ class WC_Stripe_Manager {
26
  *
27
  * @var string
28
  */
29
- public $version = '3.3.17';
30
 
31
  /**
32
  *
@@ -235,6 +235,7 @@ class WC_Stripe_Manager {
235
  include_once WC_STRIPE_PLUGIN_FILE_PATH . 'includes/tokens/class-wc-payment-token-stripe-local-payment.php';
236
  include_once WC_STRIPE_PLUGIN_FILE_PATH . 'includes/tokens/class-wc-payment-token-stripe-ach.php';
237
  include_once WC_STRIPE_PLUGIN_FILE_PATH . 'includes/tokens/class-wc-payment-token-stripe-sepa.php';
 
238
 
239
  // main classes
240
  include_once WC_STRIPE_PLUGIN_FILE_PATH . 'includes/class-wc-stripe-frontend-scripts.php';
26
  *
27
  * @var string
28
  */
29
+ public $version = '3.3.18';
30
 
31
  /**
32
  *
235
  include_once WC_STRIPE_PLUGIN_FILE_PATH . 'includes/tokens/class-wc-payment-token-stripe-local-payment.php';
236
  include_once WC_STRIPE_PLUGIN_FILE_PATH . 'includes/tokens/class-wc-payment-token-stripe-ach.php';
237
  include_once WC_STRIPE_PLUGIN_FILE_PATH . 'includes/tokens/class-wc-payment-token-stripe-sepa.php';
238
+ include_once WC_STRIPE_PLUGIN_FILE_PATH . 'includes/tokens/class-wc-payment-token-stripe-becs.php';
239
 
240
  // main classes
241
  include_once WC_STRIPE_PLUGIN_FILE_PATH . 'includes/class-wc-stripe-frontend-scripts.php';
includes/class-wc-stripe-payment-intent.php CHANGED
@@ -44,7 +44,7 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
44
  $order->update_meta_data( WC_Stripe_Constants::MODE, wc_stripe_mode() );
45
  // serialize the intent and save to the order. The intent will be used to analyze if anything
46
  // has changed.
47
- $order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT, $intent->jsonSerialize() );
48
  $order->save();
49
 
50
  if ( $intent->status === 'requires_confirmation' ) {
@@ -73,6 +73,15 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
73
  'charge' => $charge,
74
  );
75
  }
 
 
 
 
 
 
 
 
 
76
  if ( in_array( $intent->status, array( 'requires_action', 'requires_payment_method', 'requires_source_action', 'requires_source' ), true ) ) {
77
  // If the payment method isn't synchronous, set its status to on-hold so if the customer
78
  // skips the redirect and the payment takes 1 or more days, the payment won't be cancelled
@@ -108,7 +117,7 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
108
 
109
  $charge = $intent->charges->data[0];
110
 
111
- if ( $intent->status === 'succeeded' || $intent->status === 'requires_capture' ) {
112
  return (object) array(
113
  'complete_payment' => true,
114
  'charge' => $charge,
@@ -148,7 +157,7 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
148
 
149
  $charge = $intent->charges->data[0];
150
 
151
- if ( $intent->status === 'succeeded' || $intent->status === 'requires_capture' ) {
152
  return (object) array(
153
  'complete_payment' => true,
154
  'charge' => $charge,
@@ -324,21 +333,19 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
324
 
325
  if ( $intent ) {
326
  if ( $intent['confirmation_method'] != $this->payment_method->get_confirmation_method( $order ) ) {
327
- return false;
328
  }
329
  if ( ! empty( $intent['payment_method_types'] ) && ! in_array( $this->payment_method->get_payment_method_type(), $intent['payment_method_types'] ) ) {
330
- return false;
331
  }
332
 
333
  // compare the active environment to the order's environment
334
  if ( wc_stripe_order_mode( $order ) != wc_stripe_mode() ) {
335
- return false;
336
  }
337
-
338
- return $intent;
339
  }
340
 
341
- return false;
342
  }
343
 
344
  /**
44
  $order->update_meta_data( WC_Stripe_Constants::MODE, wc_stripe_mode() );
45
  // serialize the intent and save to the order. The intent will be used to analyze if anything
46
  // has changed.
47
+ $order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT, WC_Stripe_Utils::sanitize_intent( $intent->jsonSerialize() ) );
48
  $order->save();
49
 
50
  if ( $intent->status === 'requires_confirmation' ) {
73
  'charge' => $charge,
74
  );
75
  }
76
+ if ( $intent->status === 'processing' ) {
77
+ $order->update_status( 'on-hold' );
78
+ $this->payment_method->save_order_meta( $order, $intent->charges->data[0] );
79
+
80
+ return (object) array(
81
+ 'complete_payment' => false,
82
+ 'redirect' => $this->payment_method->get_return_url( $order ),
83
+ );
84
+ }
85
  if ( in_array( $intent->status, array( 'requires_action', 'requires_payment_method', 'requires_source_action', 'requires_source' ), true ) ) {
86
  // If the payment method isn't synchronous, set its status to on-hold so if the customer
87
  // skips the redirect and the payment takes 1 or more days, the payment won't be cancelled
117
 
118
  $charge = $intent->charges->data[0];
119
 
120
+ if ( in_array( $intent->status, array( 'succeeded', 'requires_capture', 'processing' ) ) ) {
121
  return (object) array(
122
  'complete_payment' => true,
123
  'charge' => $charge,
157
 
158
  $charge = $intent->charges->data[0];
159
 
160
+ if ( in_array( $intent->status, array( 'succeeded', 'requires_capture', 'processing' ) ) ) {
161
  return (object) array(
162
  'complete_payment' => true,
163
  'charge' => $charge,
333
 
334
  if ( $intent ) {
335
  if ( $intent['confirmation_method'] != $this->payment_method->get_confirmation_method( $order ) ) {
336
+ $intent = false;
337
  }
338
  if ( ! empty( $intent['payment_method_types'] ) && ! in_array( $this->payment_method->get_payment_method_type(), $intent['payment_method_types'] ) ) {
339
+ $intent = false;
340
  }
341
 
342
  // compare the active environment to the order's environment
343
  if ( wc_stripe_order_mode( $order ) != wc_stripe_mode() ) {
344
+ $intent = false;
345
  }
 
 
346
  }
347
 
348
+ return $intent;
349
  }
350
 
351
  /**
includes/class-wc-stripe-redirect-handler.php CHANGED
@@ -61,7 +61,7 @@ class WC_Stripe_Redirect_Handler {
61
  } elseif ( in_array( $result->status, array( 'requires_payment_method', 'failed' ) ) ) {
62
  wc_add_notice( __( 'Payment authorization failed. Please select another payment method.', 'woo-stripe-payment' ), 'error' );
63
  if ( $result instanceof \Stripe\PaymentIntent ) {
64
- $order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT, $result->jsonSerialize() );
65
  } else {
66
  $order->delete_meta_data( WC_Stripe_Constants::SOURCE_ID );
67
  }
@@ -86,6 +86,12 @@ class WC_Stripe_Redirect_Handler {
86
  $redirect = $result['redirect'];
87
  }
88
  }
 
 
 
 
 
 
89
  }
90
  wp_safe_redirect( $redirect );
91
  exit();
61
  } elseif ( in_array( $result->status, array( 'requires_payment_method', 'failed' ) ) ) {
62
  wc_add_notice( __( 'Payment authorization failed. Please select another payment method.', 'woo-stripe-payment' ), 'error' );
63
  if ( $result instanceof \Stripe\PaymentIntent ) {
64
+ $order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT, WC_Stripe_Utils::sanitize_intent( $result->jsonSerialize() ) );
65
  } else {
66
  $order->delete_meta_data( WC_Stripe_Constants::SOURCE_ID );
67
  }
86
  $redirect = $result['redirect'];
87
  }
88
  }
89
+ } elseif ( $result->status === 'processing' && isset( $result->charges->data ) ) {
90
+ $payment_method->save_order_meta( $order, $result->charges->data[0] );
91
+ // if this isn't the checkout page, then skip redirect
92
+ if ( ! is_checkout() ) {
93
+ return;
94
+ }
95
  }
96
  wp_safe_redirect( $redirect );
97
  exit();
includes/class-wc-stripe-utils.php CHANGED
@@ -115,4 +115,15 @@ class WC_Stripe_Utils {
115
  return trim( str_replace( array( '<', '>', '\\', '\'', '"', '*' ), '', $value ) );
116
  }
117
 
 
 
 
 
 
 
 
 
 
 
 
118
  }
115
  return trim( str_replace( array( '<', '>', '\\', '\'', '"', '*' ), '', $value ) );
116
  }
117
 
118
+ /**
119
+ * Sanitizes intent data before it's stored.
120
+ *
121
+ * @param \Stripe\PaymentIntent|\Stripe\SetupIntent $intent
122
+ */
123
+ public static function sanitize_intent( $intent ) {
124
+ unset( $intent->client_secret );
125
+
126
+ return $intent;
127
+ }
128
+
129
  }
includes/controllers/class-wc-stripe-controller-payment-intent.php CHANGED
@@ -1,10 +1,11 @@
1
  <?php
 
2
  defined( 'ABSPATH' ) || exit();
3
 
4
  /**
5
  * Controller which handles Payment Intent related actions such as creation.
6
  *
7
- * @author PaymentPlugins
8
  * @package Stripe/Controllers
9
  *
10
  */
@@ -54,7 +55,7 @@ class WC_Stripe_Controller_Payment_Intent extends WC_Stripe_Rest_Controller {
54
  * @var WC_Payment_Gateway_Stripe $payment_method
55
  */
56
  $payment_method = WC()->payment_gateways()->payment_gateways()[ $request['payment_method'] ];
57
- $params = array( 'usage' => 'off_session' );
58
  // @3.3.12 - check if 3DS is being forced
59
  if ( $payment_method->is_active( 'force_3d_secure' ) ) {
60
  $params['payment_method_options']['card']['request_three_d_secure'] = 'any';
@@ -94,7 +95,7 @@ class WC_Stripe_Controller_Payment_Intent extends WC_Stripe_Rest_Controller {
94
  throw new Exception( __( 'You are not authorized to update this order.', 'woo-stripe-payment' ) );
95
  }
96
 
97
- $order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT, $intent->jsonSerialize() );
98
  $order->save();
99
 
100
  return rest_ensure_response( array( 'success' => true ) );
@@ -102,4 +103,5 @@ class WC_Stripe_Controller_Payment_Intent extends WC_Stripe_Rest_Controller {
102
  return new WP_Error( 'payment-intent-error', $e->getMessage(), array( 'status' => 200 ) );
103
  }
104
  }
 
105
  }
1
  <?php
2
+
3
  defined( 'ABSPATH' ) || exit();
4
 
5
  /**
6
  * Controller which handles Payment Intent related actions such as creation.
7
  *
8
+ * @author PaymentPlugins
9
  * @package Stripe/Controllers
10
  *
11
  */
55
  * @var WC_Payment_Gateway_Stripe $payment_method
56
  */
57
  $payment_method = WC()->payment_gateways()->payment_gateways()[ $request['payment_method'] ];
58
+ $params = array( 'usage' => 'off_session', 'payment_method_types' => [ $payment_method->get_payment_method_type() ] );
59
  // @3.3.12 - check if 3DS is being forced
60
  if ( $payment_method->is_active( 'force_3d_secure' ) ) {
61
  $params['payment_method_options']['card']['request_three_d_secure'] = 'any';
95
  throw new Exception( __( 'You are not authorized to update this order.', 'woo-stripe-payment' ) );
96
  }
97
 
98
+ $order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT, WC_Stripe_Utils::sanitize_intent( $intent->jsonSerialize() ) );
99
  $order->save();
100
 
101
  return rest_ensure_response( array( 'success' => true ) );
103
  return new WP_Error( 'payment-intent-error', $e->getMessage(), array( 'status' => 200 ) );
104
  }
105
  }
106
+
107
  }
includes/controllers/class-wc-stripe-controller-webhook.php CHANGED
@@ -1,9 +1,10 @@
1
  <?php
 
2
  defined( 'ABSPATH' ) || exit();
3
 
4
  /**
5
  *
6
- * @author PaymentPlugins
7
  * @package Stripe/Controllers
8
  *
9
  */
@@ -37,8 +38,7 @@ class WC_Stripe_Controller_Webhook extends WC_Stripe_Rest_Controller {
37
  $header = isset( $_SERVER['HTTP_STRIPE_SIGNATURE'] ) ? $_SERVER['HTTP_STRIPE_SIGNATURE'] : '';
38
  try {
39
  $event = \Stripe\Webhook::constructEvent( $payload, $header, $this->secret, apply_filters( 'wc_stripe_webhook_signature_tolerance', 600 ) );
40
- // $event = \Stripe\StripeObject::constructFrom(json_decode($payload, true));
41
- wc_stripe_log_info( sprintf( 'Webhook notification received: Event: %s. Payload: %s', $event->type, print_r( $payload, true ) ) );
42
  $type = $event->type;
43
  $type = str_replace( '.', '_', $type );
44
 
@@ -60,4 +60,5 @@ class WC_Stripe_Controller_Webhook extends WC_Stripe_Rest_Controller {
60
  private function send_error_response( $message, $code = 400 ) {
61
  return new WP_Error( 'webhook-error', $message, array( 'status' => $code ) );
62
  }
 
63
  }
1
  <?php
2
+
3
  defined( 'ABSPATH' ) || exit();
4
 
5
  /**
6
  *
7
+ * @author PaymentPlugins
8
  * @package Stripe/Controllers
9
  *
10
  */
38
  $header = isset( $_SERVER['HTTP_STRIPE_SIGNATURE'] ) ? $_SERVER['HTTP_STRIPE_SIGNATURE'] : '';
39
  try {
40
  $event = \Stripe\Webhook::constructEvent( $payload, $header, $this->secret, apply_filters( 'wc_stripe_webhook_signature_tolerance', 600 ) );
41
+ wc_stripe_log_info( sprintf( 'Webhook notification received: Event: %s', $event->type ) );
 
42
  $type = $event->type;
43
  $type = str_replace( '.', '_', $type );
44
 
60
  private function send_error_response( $message, $code = 400 ) {
61
  return new WP_Error( 'webhook-error', $message, array( 'status' => $code ) );
62
  }
63
+
64
  }
includes/gateways/class-wc-payment-gateway-stripe-alipay.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  defined( 'ABSPATH' ) || exit();
3
 
4
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
@@ -8,12 +9,14 @@ if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
8
  /**
9
  *
10
  * @package Stripe/Gateways
11
- * @author PaymentPlugins
12
  *
13
  */
14
  class WC_Payment_Gateway_Stripe_Alipay extends WC_Payment_Gateway_Stripe_Local_Payment {
15
 
16
- use WC_Stripe_Local_Payment_Charge_Trait;
 
 
17
 
18
  public function __construct() {
19
  $this->local_payment_type = 'alipay';
@@ -42,12 +45,15 @@ class WC_Payment_Gateway_Stripe_Alipay extends WC_Payment_Gateway_Stripe_Local_P
42
  public function validate_local_payment_available( $currency, $billing_country ) {
43
  $country = stripe_wc()->account_settings->get_option( 'country' );
44
  $default_currency = stripe_wc()->account_settings->get_option( 'default_currency' );
45
-
46
- // https://stripe.com/docs/sources/alipay#create-source
 
 
 
47
  // Currency must be one of the allowed values
48
  if ( in_array( $currency, $this->currencies ) ) {
49
  // If merchant's country is DK, NO, SE, or CH, currency must be EUR.
50
- if ( in_array( $country, array( 'DK', 'NO', 'SE', 'CH' ) ) ) {
51
  return $currency === 'EUR';
52
  } else {
53
  // For all other countries, Ali pay is available if currency is CNY or
@@ -63,5 +69,6 @@ class WC_Payment_Gateway_Stripe_Alipay extends WC_Payment_Gateway_Stripe_Local_P
63
  return __( 'Gateway will appear when store currency is CNY, or currency matches merchant\'s
64
  default Stripe currency. For merchants located in DK, NO, SE, & CH, currency must be EUR.', 'woo-stripe-payment' );
65
  }
 
66
  }
67
 
1
  <?php
2
+
3
  defined( 'ABSPATH' ) || exit();
4
 
5
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
9
  /**
10
  *
11
  * @package Stripe/Gateways
12
+ * @author PaymentPlugins
13
  *
14
  */
15
  class WC_Payment_Gateway_Stripe_Alipay extends WC_Payment_Gateway_Stripe_Local_Payment {
16
 
17
+ use WC_Stripe_Local_Payment_Intent_Trait;
18
+
19
+ protected $payment_method_type = 'alipay';
20
 
21
  public function __construct() {
22
  $this->local_payment_type = 'alipay';
45
  public function validate_local_payment_available( $currency, $billing_country ) {
46
  $country = stripe_wc()->account_settings->get_option( 'country' );
47
  $default_currency = stripe_wc()->account_settings->get_option( 'default_currency' );
48
+ if ( empty( $country ) && wc_stripe_mode() === 'test' ) {
49
+ $country = wc_get_base_location()['country'];
50
+ $default_currency = $currency;
51
+ }
52
+ // https://stripe.com/docs/payments/alipay/accept-a-payment?platform=web#supported-currencies
53
  // Currency must be one of the allowed values
54
  if ( in_array( $currency, $this->currencies ) ) {
55
  // If merchant's country is DK, NO, SE, or CH, currency must be EUR.
56
+ if ( in_array( $country, array( 'AT', 'BE', 'BG', 'CY', 'CZ', 'DK', 'EE', 'FI', 'FR', 'DE', 'GR', 'IE', 'IT', 'LV', 'LT', 'LU', 'MT', 'NL', 'NO', 'PT', 'RO', 'SK', 'SI', 'ES', 'SE', 'CH' ) ) ) {
57
  return $currency === 'EUR';
58
  } else {
59
  // For all other countries, Ali pay is available if currency is CNY or
69
  return __( 'Gateway will appear when store currency is CNY, or currency matches merchant\'s
70
  default Stripe currency. For merchants located in DK, NO, SE, & CH, currency must be EUR.', 'woo-stripe-payment' );
71
  }
72
+
73
  }
74
 
includes/gateways/class-wc-payment-gateway-stripe-bancontact.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  defined( 'ABSPATH' ) || exit();
3
 
4
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
@@ -8,12 +9,14 @@ if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
8
  /**
9
  *
10
  * @package Stripe/Gateways
11
- * @author PaymentPlugins
12
  *
13
  */
14
  class WC_Payment_Gateway_Stripe_Bancontact extends WC_Payment_Gateway_Stripe_Local_Payment {
15
 
16
- use WC_Stripe_Local_Payment_Charge_Trait;
 
 
17
 
18
  public function __construct() {
19
  $this->synchronous = false;
@@ -27,4 +30,5 @@ class WC_Payment_Gateway_Stripe_Bancontact extends WC_Payment_Gateway_Stripe_Loc
27
  $this->icon = stripe_wc()->assets_url( 'img/bancontact.svg' );
28
  parent::__construct();
29
  }
 
30
  }
1
  <?php
2
+
3
  defined( 'ABSPATH' ) || exit();
4
 
5
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
9
  /**
10
  *
11
  * @package Stripe/Gateways
12
+ * @author PaymentPlugins
13
  *
14
  */
15
  class WC_Payment_Gateway_Stripe_Bancontact extends WC_Payment_Gateway_Stripe_Local_Payment {
16
 
17
+ use WC_Stripe_Local_Payment_Intent_Trait;
18
+
19
+ protected $payment_method_type = 'bancontact';
20
 
21
  public function __construct() {
22
  $this->synchronous = false;
30
  $this->icon = stripe_wc()->assets_url( 'img/bancontact.svg' );
31
  parent::__construct();
32
  }
33
+
34
  }
includes/gateways/class-wc-payment-gateway-stripe-becs.php CHANGED
@@ -1,12 +1,13 @@
1
  <?php
 
2
  defined( 'ABSPATH' ) || exit();
3
 
4
  /**
5
  * Class WC_Payment_Gateway_Stripe_Becs
6
  *
7
- * @since 3.1.7
8
  * @package Stripe/Gateways
9
- * @author PaymentPlugins
10
  */
11
  class WC_Payment_Gateway_Stripe_BECS extends WC_Payment_Gateway_Stripe_Local_Payment {
12
 
@@ -14,6 +15,10 @@ class WC_Payment_Gateway_Stripe_BECS extends WC_Payment_Gateway_Stripe_Local_Pay
14
 
15
  protected $payment_method_type = 'au_becs_debit';
16
 
 
 
 
 
17
  public function __construct() {
18
  $this->local_payment_type = 'au_becs_debit';
19
  $this->currencies = array( 'AUD' );
@@ -22,18 +27,61 @@ class WC_Payment_Gateway_Stripe_BECS extends WC_Payment_Gateway_Stripe_Local_Pay
22
  $this->tab_title = __( 'BECS', 'woo-stripe-payment' );
23
  $this->method_title = __( 'BECS', 'woo-stripe-payment' );
24
  $this->method_description = __( 'BECS direct debit gateway that integrates with your Stripe account.', 'woo-stripe-payment' );
25
- $this->icon = ''; //stripe_wc()->assets_url( 'img/becs.svg' );
26
  parent::__construct();
27
 
28
  $this->local_payment_description = sprintf(
29
  __(
30
  'By providing your bank account details and confirming this payment, you agree to this
31
- Direct Debit Request and the %sDirect Debit Request service agreement%s, and authorise Stripe Payments Australia Pty Ltd ACN 160 180 343 Direct
32
- Debit User ID number 507156 (Stripe) to debit your account through the Bulk Electronic Clearing System (BECS) on behalf of Stripe Press
33
  (the "Merchant") for any amounts separately communicated to you by the Merchant. You certify that you are either an account holder or an
34
  authorised signatory on the account listed above.',
35
  'woo-stripe-payment'
36
  )
37
- , '<a href="https://stripe.com/au-becs-dd-service-agreement/legal" target="_blank">', '</a>' );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
38
  }
 
 
 
 
 
39
  }
1
  <?php
2
+
3
  defined( 'ABSPATH' ) || exit();
4
 
5
  /**
6
  * Class WC_Payment_Gateway_Stripe_Becs
7
  *
8
+ * @since 3.1.7
9
  * @package Stripe/Gateways
10
+ * @author PaymentPlugins
11
  */
12
  class WC_Payment_Gateway_Stripe_BECS extends WC_Payment_Gateway_Stripe_Local_Payment {
13
 
15
 
16
  protected $payment_method_type = 'au_becs_debit';
17
 
18
+ public $synchronous = false;
19
+
20
+ public $token_type = 'Stripe_Becs';
21
+
22
  public function __construct() {
23
  $this->local_payment_type = 'au_becs_debit';
24
  $this->currencies = array( 'AUD' );
27
  $this->tab_title = __( 'BECS', 'woo-stripe-payment' );
28
  $this->method_title = __( 'BECS', 'woo-stripe-payment' );
29
  $this->method_description = __( 'BECS direct debit gateway that integrates with your Stripe account.', 'woo-stripe-payment' );
30
+ $this->icon = '';
31
  parent::__construct();
32
 
33
  $this->local_payment_description = sprintf(
34
  __(
35
  'By providing your bank account details and confirming this payment, you agree to this
36
+ Direct Debit Request and the %1$sDirect Debit Request service agreement%2$s, and authorise Stripe Payments Australia Pty Ltd ACN 160 180 343 Direct
37
+ Debit User ID number 507156 ("Stripe") to debit your account through the Bulk Electronic Clearing System (BECS) on behalf of %3$s
38
  (the "Merchant") for any amounts separately communicated to you by the Merchant. You certify that you are either an account holder or an
39
  authorised signatory on the account listed above.',
40
  'woo-stripe-payment'
41
  )
42
+ , '<a href="https://stripe.com/au-becs-dd-service-agreement/legal" target="_blank">', '</a>', $this->get_option( 'company_name' ) );
43
+ }
44
+
45
+ public function init_supports() {
46
+ parent::init_supports();
47
+ $this->supports[] = 'subscriptions';
48
+ $this->supports[] = 'subscription_cancellation';
49
+ $this->supports[] = 'multiple_subscriptions';
50
+ $this->supports[] = 'subscription_reactivation';
51
+ $this->supports[] = 'subscription_suspension';
52
+ $this->supports[] = 'subscription_date_changes';
53
+ $this->supports[] = 'subscription_payment_method_change_admin';
54
+ $this->supports[] = 'subscription_amount_changes';
55
+ $this->supports[] = 'subscription_payment_method_change_customer';
56
+ $this->supports[] = 'pre-orders';
57
+ }
58
+
59
+ public function get_local_payment_settings() {
60
+ return array_merge( parent::get_local_payment_settings(), array(
61
+ 'company_name' => array(
62
+ 'title' => __( 'Company Name', 'woo-stripe-payment' ),
63
+ 'type' => 'text',
64
+ 'default' => get_bloginfo( 'name' ),
65
+ 'description' => __( 'The company name that appears in the BECS mandate text.', 'woo-stripe-payment' )
66
+ ),
67
+ 'method_format' => array(
68
+ 'title' => __( 'Payment Method Display', 'woo-stripe-payment' ),
69
+ 'type' => 'select',
70
+ 'class' => 'wc-enhanced-select',
71
+ 'options' => wp_list_pluck( $this->get_payment_method_formats(), 'example' ),
72
+ 'default' => 'type_ending_last4',
73
+ 'desc_tip' => true,
74
+ 'description' => __( 'This option allows you to customize how the payment method will display for your customers on orders, subscriptions, etc.' ),
75
+ ),
76
+ ) );
77
+ }
78
+
79
+ public function get_new_method_label() {
80
+ return __( 'New Account', 'woo-stripe-payment' );
81
  }
82
+
83
+ public function get_saved_methods_label() {
84
+ return __( 'Saved Accounts', 'woo-stripe-payment' );
85
+ }
86
+
87
  }
includes/gateways/class-wc-payment-gateway-stripe-cc.php CHANGED
@@ -248,103 +248,6 @@ class WC_Payment_Gateway_Stripe_CC extends WC_Payment_Gateway_Stripe {
248
  }
249
  }
250
 
251
- /**
252
- * @param WC_Order $order
253
- *
254
- * @return array|void
255
- */
256
- public function process_zero_total_order( $order ) {
257
- if ( defined( WC_Stripe_Constants::PROCESSING_PAYMENT ) ) {
258
- $result = $this->save_payment_method( $this->get_new_source_token(), $order );
259
- if ( is_wp_error( $result ) ) {
260
- wc_add_notice( $result->get_error_message(), 'error' );
261
-
262
- return $this->get_order_error();
263
- }
264
- // The setup intent ID is no longer needed so remove it from the order
265
- $order->delete_meta_data( WC_Stripe_Constants::SETUP_INTENT_ID );
266
- } else {
267
- $setup_intent = $this->get_payment_intent_id();
268
- $save_payment_method = $this->should_save_payment_method( $order );
269
- // if setup intent exists then it was created client side.
270
- // attempt to save the payment method
271
- if ( $setup_intent && $save_payment_method ) {
272
- $result = $this->save_payment_method( $this->get_new_source_token(), $order );
273
- if ( is_wp_error( $result ) ) {
274
- wc_add_notice( $result->get_error_message(), 'error' );
275
-
276
- return $this->get_order_error();
277
- }
278
- } elseif ( ! $setup_intent && $save_payment_method ) {
279
- // A new payment method is being used but there's no setup intent provided
280
- // by client. Create one here
281
- $result = $this->does_order_require_action( $order, $this->get_new_source_token() );
282
- if ( is_wp_error( $result ) ) {
283
- wc_add_notice( sprintf( __( 'Error processing payment. Reason: %s', 'woo-stripe-payment' ), $result->get_error_message() ), 'error' );
284
-
285
- return $this->get_order_error();
286
- } elseif ( $result ) {
287
- return $result;
288
- } else {
289
- $this->save_payment_method( $this->get_new_source_token(), $order );
290
- }
291
- } else {
292
- $this->payment_method_token = $this->get_saved_source_id();
293
- }
294
- }
295
-
296
- return $this->payment_object->process_zero_total_order( $order, $this );
297
- }
298
-
299
- /**
300
- * @param WC_Order $order
301
- * @param string $payment_method
302
- *
303
- * @return array
304
- */
305
- private function does_order_require_action( $order, $payment_method ) {
306
- if ( ( $intent_id = $order->get_meta( WC_Stripe_Constants::SETUP_INTENT_ID ) ) ) {
307
- $intent = $this->gateway->setupIntents->update( $intent_id, array( 'payment_method' => $payment_method ) );
308
- } else {
309
- $params = array(
310
- 'confirm' => true,
311
- 'payment_method' => $payment_method,
312
- 'usage' => 'off_session',
313
- 'metadata' => array(
314
- 'gateway_id' => $this->id,
315
- 'order_id' => $order->get_id()
316
- )
317
- );
318
- $this->add_stripe_order_args( $params, $order );
319
- $intent = $this->payment_object->get_gateway()->setupIntents->create( apply_filters( 'wc_stripe_setup_intent_params', $params, $order, $this ) );
320
- }
321
- if ( is_wp_error( $intent ) ) {
322
- return $intent;
323
- }
324
- $order->update_meta_data( WC_Stripe_Constants::SETUP_INTENT_ID, $intent->id );
325
- $order->save();
326
-
327
- if ( in_array( $intent->status, array(
328
- 'requires_action',
329
- 'requires_payment_method',
330
- 'requires_source_action',
331
- 'requires_source',
332
- 'requires_confirmation'
333
- ), true )
334
- ) {
335
- return array(
336
- 'result' => 'success',
337
- 'redirect' => $this->get_payment_intent_checkout_url( $intent, $order, 'setup_intent' ),
338
- );
339
- } elseif ( $intent->status === 'succeeded' ) {
340
- $this->payment_method_token = $intent->payment_method;
341
- // The setup intent ID is no longer needed so remove it from the order
342
- $order->delete_meta_data( WC_Stripe_Constants::SETUP_INTENT_ID );
343
-
344
- return false;
345
- }
346
- }
347
-
348
  /**
349
  * @since 3.3.32
350
  * @return mixed|void
248
  }
249
  }
250
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
251
  /**
252
  * @since 3.3.32
253
  * @return mixed|void
includes/gateways/class-wc-payment-gateway-stripe-eps.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  defined( 'ABSPATH' ) || exit();
3
 
4
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
@@ -8,12 +9,14 @@ if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
8
  /**
9
  *
10
  * @package Stripe/Gateways
11
- * @author PaymentPlugins
12
  *
13
  */
14
  class WC_Payment_Gateway_Stripe_EPS extends WC_Payment_Gateway_Stripe_Local_Payment {
15
 
16
- use WC_Stripe_Local_Payment_Charge_Trait;
 
 
17
 
18
  public function __construct() {
19
  $this->local_payment_type = 'eps';
@@ -28,4 +31,5 @@ class WC_Payment_Gateway_Stripe_EPS extends WC_Payment_Gateway_Stripe_Local_Paym
28
  $this->icon = stripe_wc()->assets_url( 'img/eps.svg' );
29
  parent::__construct();
30
  }
 
31
  }
1
  <?php
2
+
3
  defined( 'ABSPATH' ) || exit();
4
 
5
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
9
  /**
10
  *
11
  * @package Stripe/Gateways
12
+ * @author PaymentPlugins
13
  *
14
  */
15
  class WC_Payment_Gateway_Stripe_EPS extends WC_Payment_Gateway_Stripe_Local_Payment {
16
 
17
+ use WC_Stripe_Local_Payment_Intent_Trait;
18
+
19
+ protected $payment_method_type = 'eps';
20
 
21
  public function __construct() {
22
  $this->local_payment_type = 'eps';
31
  $this->icon = stripe_wc()->assets_url( 'img/eps.svg' );
32
  parent::__construct();
33
  }
34
+
35
  }
includes/gateways/class-wc-payment-gateway-stripe-giropay.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  defined( 'ABSPATH' ) || exit();
3
 
4
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
@@ -8,12 +9,14 @@ if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
8
  /**
9
  *
10
  * @package Stripe/Gateways
11
- * @author PaymentPlugins
12
  *
13
  */
14
  class WC_Payment_Gateway_Stripe_Giropay extends WC_Payment_Gateway_Stripe_Local_Payment {
15
 
16
- use WC_Stripe_Local_Payment_Charge_Trait;
 
 
17
 
18
  public function __construct() {
19
  $this->local_payment_type = 'giropay';
@@ -28,4 +31,5 @@ class WC_Payment_Gateway_Stripe_Giropay extends WC_Payment_Gateway_Stripe_Local_
28
  $this->icon = stripe_wc()->assets_url( 'img/giropay.svg' );
29
  parent::__construct();
30
  }
 
31
  }
1
  <?php
2
+
3
  defined( 'ABSPATH' ) || exit();
4
 
5
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
9
  /**
10
  *
11
  * @package Stripe/Gateways
12
+ * @author PaymentPlugins
13
  *
14
  */
15
  class WC_Payment_Gateway_Stripe_Giropay extends WC_Payment_Gateway_Stripe_Local_Payment {
16
 
17
+ use WC_Stripe_Local_Payment_Intent_Trait;
18
+
19
+ protected $payment_method_type = 'giropay';
20
 
21
  public function __construct() {
22
  $this->local_payment_type = 'giropay';
31
  $this->icon = stripe_wc()->assets_url( 'img/giropay.svg' );
32
  parent::__construct();
33
  }
34
+
35
  }
includes/gateways/class-wc-payment-gateway-stripe-sepa.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  defined( 'ABSPATH' ) || exit();
3
 
4
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
@@ -8,12 +9,16 @@ if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
8
  /**
9
  *
10
  * @package Stripe/Gateways
11
- * @author PaymentPlugins
12
  *
13
  */
14
  class WC_Payment_Gateway_Stripe_Sepa extends WC_Payment_Gateway_Stripe_Local_Payment {
15
 
16
- use WC_Stripe_Local_Payment_Charge_Trait;
 
 
 
 
17
 
18
  public function __construct() {
19
  $this->synchronous = false;
@@ -26,7 +31,6 @@ class WC_Payment_Gateway_Stripe_Sepa extends WC_Payment_Gateway_Stripe_Local_Pay
26
  $this->method_description = __( 'SEPA gateway that integrates with your Stripe account.', 'woo-stripe-payment' );
27
  $this->icon = stripe_wc()->assets_url( 'img/sepa.svg' );
28
  parent::__construct();
29
- $this->token_type = 'Stripe_Sepa';
30
 
31
  $this->local_payment_description = sprintf(
32
  __(
@@ -51,6 +55,7 @@ class WC_Payment_Gateway_Stripe_Sepa extends WC_Payment_Gateway_Stripe_Local_Pay
51
  $this->supports[] = 'subscription_payment_method_change_admin';
52
  $this->supports[] = 'subscription_amount_changes';
53
  $this->supports[] = 'subscription_payment_method_change_customer';
 
54
  }
55
 
56
  public function init_form_fields() {
@@ -64,13 +69,22 @@ class WC_Payment_Gateway_Stripe_Sepa extends WC_Payment_Gateway_Stripe_Local_Pay
64
 
65
  public function get_local_payment_settings() {
66
  return parent::get_local_payment_settings() + array(
67
- 'company_name' => array(
68
  'title' => __( 'Company Name', 'woo-stripe-payment' ),
69
  'type' => 'text',
70
  'default' => get_bloginfo( 'name' ),
71
  'desc_tip' => true,
72
  'description' => __( 'The name of your company that will appear in the SEPA mandate.', 'woo-stripe-payment' ),
73
  ),
 
 
 
 
 
 
 
 
 
74
  );
75
  }
76
 
1
  <?php
2
+
3
  defined( 'ABSPATH' ) || exit();
4
 
5
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
9
  /**
10
  *
11
  * @package Stripe/Gateways
12
+ * @author PaymentPlugins
13
  *
14
  */
15
  class WC_Payment_Gateway_Stripe_Sepa extends WC_Payment_Gateway_Stripe_Local_Payment {
16
 
17
+ use WC_Stripe_Local_Payment_Intent_Trait;
18
+
19
+ protected $payment_method_type = 'sepa_debit';
20
+
21
+ public $token_type = 'Stripe_Sepa';
22
 
23
  public function __construct() {
24
  $this->synchronous = false;
31
  $this->method_description = __( 'SEPA gateway that integrates with your Stripe account.', 'woo-stripe-payment' );
32
  $this->icon = stripe_wc()->assets_url( 'img/sepa.svg' );
33
  parent::__construct();
 
34
 
35
  $this->local_payment_description = sprintf(
36
  __(
55
  $this->supports[] = 'subscription_payment_method_change_admin';
56
  $this->supports[] = 'subscription_amount_changes';
57
  $this->supports[] = 'subscription_payment_method_change_customer';
58
+ $this->supports[] = 'pre-orders';
59
  }
60
 
61
  public function init_form_fields() {
69
 
70
  public function get_local_payment_settings() {
71
  return parent::get_local_payment_settings() + array(
72
+ 'company_name' => array(
73
  'title' => __( 'Company Name', 'woo-stripe-payment' ),
74
  'type' => 'text',
75
  'default' => get_bloginfo( 'name' ),
76
  'desc_tip' => true,
77
  'description' => __( 'The name of your company that will appear in the SEPA mandate.', 'woo-stripe-payment' ),
78
  ),
79
+ 'method_format' => array(
80
+ 'title' => __( 'Payment Method Display', 'woo-stripe-payment' ),
81
+ 'type' => 'select',
82
+ 'class' => 'wc-enhanced-select',
83
+ 'options' => wp_list_pluck( $this->get_payment_method_formats(), 'example' ),
84
+ 'default' => 'type_ending_last4',
85
+ 'desc_tip' => true,
86
+ 'description' => __( 'This option allows you to customize how the payment method will display for your customers on orders, subscriptions, etc.' ),
87
+ ),
88
  );
89
  }
90
 
includes/gateways/class-wc-payment-gateway-stripe-sofort.php CHANGED
@@ -1,4 +1,5 @@
1
  <?php
 
2
  defined( 'ABSPATH' ) || exit();
3
 
4
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
@@ -8,12 +9,14 @@ if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
8
  /**
9
  *
10
  * @package Stripe/Gateways
11
- * @author PaymentPlugins
12
  *
13
  */
14
  class WC_Payment_Gateway_Stripe_Sofort extends WC_Payment_Gateway_Stripe_Local_Payment {
15
 
16
- use WC_Stripe_Local_Payment_Charge_Trait;
 
 
17
 
18
  public function __construct() {
19
  $this->synchronous = false;
@@ -30,7 +33,4 @@ class WC_Payment_Gateway_Stripe_Sofort extends WC_Payment_Gateway_Stripe_Local_P
30
  parent::__construct();
31
  }
32
 
33
- public function get_source_args( $order ) {
34
- return array_merge( parent::get_source_args( $order ), array( 'sofort' => array( 'country' => $order->get_billing_country() ) ) );
35
- }
36
  }
1
  <?php
2
+
3
  defined( 'ABSPATH' ) || exit();
4
 
5
  if ( ! class_exists( 'WC_Payment_Gateway_Stripe_Local_Payment' ) ) {
9
  /**
10
  *
11
  * @package Stripe/Gateways
12
+ * @author PaymentPlugins
13
  *
14
  */
15
  class WC_Payment_Gateway_Stripe_Sofort extends WC_Payment_Gateway_Stripe_Local_Payment {
16
 
17
+ use WC_Stripe_Local_Payment_Intent_Trait;
18
+
19
+ protected $payment_method_type = 'sofort';
20
 
21
  public function __construct() {
22
  $this->synchronous = false;
33
  parent::__construct();
34
  }
35
 
 
 
 
36
  }
includes/gateways/settings/ach-settings.php CHANGED
@@ -101,7 +101,7 @@ return array(
101
  'title' => __( 'ACH Display', 'woo-stripe-payment' ),
102
  'type' => 'select',
103
  'class' => 'wc-enhanced-select',
104
- 'options' => wp_list_pluck( $this->get_method_formats(), 'example' ),
105
  'value' => '',
106
  'default' => 'type_ending_in',
107
  'desc_tip' => true,
101
  'title' => __( 'ACH Display', 'woo-stripe-payment' ),
102
  'type' => 'select',
103
  'class' => 'wc-enhanced-select',
104
+ 'options' => wp_list_pluck( $this->get_payment_method_formats(), 'example' ),
105
  'value' => '',
106
  'default' => 'type_ending_in',
107
  'desc_tip' => true,
includes/gateways/settings/applepay-settings.php CHANGED
@@ -37,7 +37,7 @@ return array(
37
  'title' => __( 'Credit Card Display', 'woo-stripe-payment' ),
38
  'type' => 'select',
39
  'class' => 'wc-enhanced-select',
40
- 'options' => wp_list_pluck( $this->get_method_formats(), 'example' ),
41
  'value' => '',
42
  'default' => 'type_ending_in',
43
  'desc_tip' => true,
37
  'title' => __( 'Credit Card Display', 'woo-stripe-payment' ),
38
  'type' => 'select',
39
  'class' => 'wc-enhanced-select',
40
+ 'options' => wp_list_pluck( $this->get_payment_method_formats(), 'example' ),
41
  'value' => '',
42
  'default' => 'type_ending_in',
43
  'desc_tip' => true,
includes/gateways/settings/cc-settings.php CHANGED
@@ -35,7 +35,7 @@ return array(
35
  'title' => __( 'Credit Card Display', 'woo-stripe-payment' ),
36
  'type' => 'select',
37
  'class' => 'wc-enhanced-select',
38
- 'options' => wp_list_pluck( $this->get_method_formats(), 'example' ),
39
  'value' => '',
40
  'default' => 'type_ending_in',
41
  'desc_tip' => true,
35
  'title' => __( 'Credit Card Display', 'woo-stripe-payment' ),
36
  'type' => 'select',
37
  'class' => 'wc-enhanced-select',
38
+ 'options' => wp_list_pluck( $this->get_payment_method_formats(), 'example' ),
39
  'value' => '',
40
  'default' => 'type_ending_in',
41
  'desc_tip' => true,
includes/gateways/settings/googlepay-settings.php CHANGED
@@ -59,7 +59,7 @@ return array(
59
  'title' => __( 'Credit Card Display', 'woo-stripe-payment' ),
60
  'type' => 'select',
61
  'class' => 'wc-enhanced-select',
62
- 'options' => wp_list_pluck( $this->get_method_formats(), 'example' ),
63
  'value' => '',
64
  'default' => 'gpay_name',
65
  'desc_tip' => true,
59
  'title' => __( 'Credit Card Display', 'woo-stripe-payment' ),
60
  'type' => 'select',
61
  'class' => 'wc-enhanced-select',
62
+ 'options' => wp_list_pluck( $this->get_payment_method_formats(), 'example' ),
63
  'value' => '',
64
  'default' => 'gpay_name',
65
  'desc_tip' => true,
includes/gateways/settings/payment-request-settings.php CHANGED
@@ -1,116 +1,116 @@
1
- <?php
2
- return array(
3
- 'desc' => array(
4
- 'type' => 'description',
5
- 'description' => __(
6
- 'The PaymentRequest gateway uses your customer\'s browser to render payment options like Google Pay and Microsoft Pay. You can either use the Google Pay gateway for example, or this gateway.
7
- The difference is this gateway uses Stripe\'s PaymentRequest Button rather than render a Google Pay specific button.',
8
- 'woo-stripe-payment'
9
- ),
10
- ),
11
- 'enabled' => array(
12
- 'title' => __( 'Enabled', 'woo-stripe-payment' ),
13
- 'type' => 'checkbox',
14
- 'default' => 'no',
15
- 'value' => 'yes',
16
- 'desc_tip' => true,
17
- 'description' => __( 'If enabled, your site can accept Apple Pay payments through Stripe.', 'woo-stripe-payment' ),
18
- ),
19
- 'general_settings' => array(
20
- 'type' => 'title',
21
- 'title' => __( 'General Settings', 'woo-stripe-payment' ),
22
- ),
23
- 'title_text' => array(
24
- 'type' => 'text',
25
- 'title' => __( 'Title', 'woo-stripe-payment' ),
26
- 'default' => __( 'Browser Payments', 'woo-stripe-payment' ),
27
- 'desc_tip' => true,
28
- 'description' => __( 'Title of the credit card gateway' ),
29
- ),
30
- 'description' => array(
31
- 'title' => __( 'Description', 'woo-stripe-payment' ),
32
- 'type' => 'text',
33
- 'default' => '',
34
- 'description' => __( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe-payment' ),
35
- 'desc_tip' => true,
36
- ),
37
- 'method_format' => array(
38
- 'title' => __( 'Credit Card Display', 'woo-stripe-payment' ),
39
- 'type' => 'select',
40
- 'class' => 'wc-enhanced-select',
41
- 'options' => wp_list_pluck( $this->get_method_formats(), 'example' ),
42
- 'value' => '',
43
- 'default' => 'type_ending_in',
44
- 'desc_tip' => true,
45
- 'description' => __( 'This option allows you to customize how the credit card will display for your customers on orders, subscriptions, etc.' ),
46
- ),
47
- 'charge_type' => array(
48
- 'type' => 'select',
49
- 'title' => __( 'Charge Type', 'woo-stripe-payment' ),
50
- 'default' => 'capture',
51
- 'class' => 'wc-enhanced-select',
52
- 'options' => array(
53
- 'capture' => __( 'Capture', 'woo-stripe-payment' ),
54
- 'authorize' => __( 'Authorize', 'woo-stripe-payment' ),
55
- ),
56
- 'desc_tip' => true,
57
- 'description' => __( 'This option determines whether the customer\'s funds are captured immediately or authorized and can be captured at a later date.', 'woo-stripe-payment' ),
58
- ),
59
- 'payment_sections' => array(
60
- 'type' => 'multiselect',
61
- 'title' => __( 'Payment Sections', 'woo-stripe-payment' ),
62
- 'class' => 'wc-enhanced-select',
63
- 'options' => array(
64
- 'product' => __( 'Product Page', 'woo-stripe-payment' ),
65
- 'cart' => __( 'Cart Page', 'woo-stripe-payment' ),
66
- 'mini_cart' => __( 'Mini Cart', 'woo-stripe-payment' ),
67
- 'checkout_banner' => __( 'Top of Checkout', 'woo-stripe-payment' ),
68
- ),
69
- 'default' => array( 'product', 'cart' ),
70
- 'description' => $this->get_payment_section_description(),
71
- ),
72
- 'order_status' => array(
73
- 'type' => 'select',
74
- 'title' => __( 'Order Status', 'woo-stripe-payment' ),
75
- 'default' => 'default',
76
- 'class' => 'wc-enhanced-select',
77
- 'options' => array_merge( array( 'default' => __( 'Default', 'woo-stripe-payment' ) ), wc_get_order_statuses() ),
78
- 'tool_tip' => true,
79
- 'description' => __( 'This is the status of the order once payment is complete. If <b>Default</b> is selected, then WooCommerce will set the order status automatically based on internal logic which states if a product is virtual and downloadable then status is set to complete. Products that require shipping are set to Processing. Default is the recommended setting as it allows standard WooCommerce code to process the order status.', 'woo-stripe-payment' ),
80
- ),
81
- 'button_section' => array(
82
- 'type' => 'title',
83
- 'title' => __( 'Button Settings', 'woo-stripe-payment' ),
84
- ),
85
- 'button_type' => array(
86
- 'type' => 'select',
87
- 'title' => __( 'Type', 'woo-stripe-payment' ),
88
- 'options' => array(
89
- 'default' => __( 'default', 'woo-stripe-payment' ),
90
- // 'donate' => __ ( 'donate', 'woo-stripe-payment' ),
91
- 'buy' => __( 'buy', 'woo-stripe-payment' ),
92
- ),
93
- 'default' => 'buy',
94
- 'desc_tip' => true,
95
- 'description' => __( 'This defines the type of button that will display.', 'woo-stripe-payment' ),
96
- ),
97
- 'button_theme' => array(
98
- 'type' => 'select',
99
- 'title' => __( 'Theme', 'woo-stripe-payment' ),
100
- 'options' => array(
101
- 'dark' => __( 'dark', 'woo-stripe-payment' ),
102
- 'light' => __( 'light', 'woo-stripe-payment' ),
103
- 'light-outline' => __( 'light-outline', 'woo-stripe-payment' ),
104
- ),
105
- 'default' => 'dark',
106
- 'desc_tip' => true,
107
- 'description' => __( 'This defines the color scheme for the button.', 'woo-stripe-payment' ),
108
- ),
109
- 'button_height' => array(
110
- 'type' => 'text',
111
- 'title' => __( 'Height', 'woo-stripe-payment' ),
112
- 'default' => '40',
113
- 'desc_tip' => true,
114
- 'description' => __( 'The height of the button. Max height is 64', 'woo-stripe-payment' ),
115
- ),
116
- );
1
+ <?php
2
+ return array(
3
+ 'desc' => array(
4
+ 'type' => 'description',
5
+ 'description' => __(
6
+ 'The PaymentRequest gateway uses your customer\'s browser to render payment options like Google Pay and Microsoft Pay. You can either use the Google Pay gateway for example, or this gateway.
7
+ The difference is this gateway uses Stripe\'s PaymentRequest Button rather than render a Google Pay specific button.',
8
+ 'woo-stripe-payment'
9
+ ),
10
+ ),
11
+ 'enabled' => array(
12
+ 'title' => __( 'Enabled', 'woo-stripe-payment' ),
13
+ 'type' => 'checkbox',
14
+ 'default' => 'no',
15
+ 'value' => 'yes',
16
+ 'desc_tip' => true,
17
+ 'description' => __( 'If enabled, your site can accept Apple Pay payments through Stripe.', 'woo-stripe-payment' ),
18
+ ),
19
+ 'general_settings' => array(
20
+ 'type' => 'title',
21
+ 'title' => __( 'General Settings', 'woo-stripe-payment' ),
22
+ ),
23
+ 'title_text' => array(
24
+ 'type' => 'text',
25
+ 'title' => __( 'Title', 'woo-stripe-payment' ),
26
+ 'default' => __( 'Browser Payments', 'woo-stripe-payment' ),
27
+ 'desc_tip' => true,
28
+ 'description' => __( 'Title of the credit card gateway' ),
29
+ ),
30
+ 'description' => array(
31
+ 'title' => __( 'Description', 'woo-stripe-payment' ),
32
+ 'type' => 'text',
33
+ 'default' => '',
34
+ 'description' => __( 'Leave blank if you don\'t want a description to show for the gateway.', 'woo-stripe-payment' ),
35
+ 'desc_tip' => true,
36
+ ),
37
+ 'method_format' => array(
38
+ 'title' => __( 'Credit Card Display', 'woo-stripe-payment' ),
39
+ 'type' => 'select',
40
+ 'class' => 'wc-enhanced-select',
41
+ 'options' => wp_list_pluck( $this->get_payment_method_formats(), 'example' ),
42
+ 'value' => '',
43
+ 'default' => 'type_ending_in',
44
+ 'desc_tip' => true,
45
+ 'description' => __( 'This option allows you to customize how the credit card will display for your customers on orders, subscriptions, etc.' ),
46
+ ),
47
+ 'charge_type' => array(
48
+ 'type' => 'select',
49
+ 'title' => __( 'Charge Type', 'woo-stripe-payment' ),
50
+ 'default' => 'capture',
51
+ 'class' => 'wc-enhanced-select',
52
+ 'options' => array(
53
+ 'capture' => __( 'Capture', 'woo-stripe-payment' ),
54
+ 'authorize' => __( 'Authorize', 'woo-stripe-payment' ),
55
+ ),
56
+ 'desc_tip' => true,
57
+ 'description' => __( 'This option determines whether the customer\'s funds are captured immediately or authorized and can be captured at a later date.', 'woo-stripe-payment' ),
58
+ ),
59
+ 'payment_sections' => array(
60
+ 'type' => 'multiselect',
61
+ 'title' => __( 'Payment Sections', 'woo-stripe-payment' ),
62
+ 'class' => 'wc-enhanced-select',
63
+ 'options' => array(
64
+ 'product' => __( 'Product Page', 'woo-stripe-payment' ),
65
+ 'cart' => __( 'Cart Page', 'woo-stripe-payment' ),
66
+ 'mini_cart' => __( 'Mini Cart', 'woo-stripe-payment' ),
67
+ 'checkout_banner' => __( 'Top of Checkout', 'woo-stripe-payment' ),
68
+ ),
69
+ 'default' => array( 'product', 'cart' ),
70
+ 'description' => $this->get_payment_section_description(),
71
+ ),
72
+ 'order_status' => array(
73
+ 'type' => 'select',
74
+ 'title' => __( 'Order Status', 'woo-stripe-payment' ),
75
+ 'default' => 'default',
76
+ 'class' => 'wc-enhanced-select',
77
+ 'options' => array_merge( array( 'default' => __( 'Default', 'woo-stripe-payment' ) ), wc_get_order_statuses() ),
78
+ 'tool_tip' => true,
79
+ 'description' => __( 'This is the status of the order once payment is complete. If <b>Default</b> is selected, then WooCommerce will set the order status automatically based on internal logic which states if a product is virtual and downloadable then status is set to complete. Products that require shipping are set to Processing. Default is the recommended setting as it allows standard WooCommerce code to process the order status.', 'woo-stripe-payment' ),
80
+ ),
81
+ 'button_section' => array(
82
+ 'type' => 'title',
83
+ 'title' => __( 'Button Settings', 'woo-stripe-payment' ),
84
+ ),
85
+ 'button_type' => array(
86
+ 'type' => 'select',
87
+ 'title' => __( 'Type', 'woo-stripe-payment' ),
88
+ 'options' => array(
89
+ 'default' => __( 'default', 'woo-stripe-payment' ),
90
+ // 'donate' => __ ( 'donate', 'woo-stripe-payment' ),
91
+ 'buy' => __( 'buy', 'woo-stripe-payment' ),
92
+ ),
93
+ 'default' => 'buy',
94
+ 'desc_tip' => true,
95
+ 'description' => __( 'This defines the type of button that will display.', 'woo-stripe-payment' ),
96
+ ),
97
+ 'button_theme' => array(
98
+ 'type' => 'select',
99
+ 'title' => __( 'Theme', 'woo-stripe-payment' ),
100
+ 'options' => array(
101
+ 'dark' => __( 'dark', 'woo-stripe-payment' ),
102
+ 'light' => __( 'light', 'woo-stripe-payment' ),
103
+ 'light-outline' => __( 'light-outline', 'woo-stripe-payment' ),
104
+ ),
105
+ 'default' => 'dark',
106
+ 'desc_tip' => true,
107
+ 'description' => __( 'This defines the color scheme for the button.', 'woo-stripe-payment' ),
108
+ ),
109
+ 'button_height' => array(
110
+ 'type' => 'text',
111
+ 'title' => __( 'Height', 'woo-stripe-payment' ),
112
+ 'default' => '40',
113
+ 'desc_tip' => true,
114
+ 'description' => __( 'The height of the button. Max height is 64', 'woo-stripe-payment' ),
115
+ ),
116
+ );
includes/tokens/class-wc-payment-token-stripe-becs.php ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ defined( 'ABSPATH' ) || exit();
4
+
5
+ /**
6
+ *
7
+ * @since 3.2.4
8
+ * @package Stripe/Tokens
9
+ * @author PaymentPlugins
10
+ *
11
+ */
12
+ class WC_Payment_Token_Stripe_Becs extends WC_Payment_Token_Stripe_Local {
13
+
14
+ use WC_Payment_Token_Payment_Method_Trait;
15
+
16
+ protected $type = 'Stripe_Becs';
17
+
18
+ protected $stripe_data = array(
19
+ 'bsb_number' => '',
20
+ 'last4' => '',
21
+ 'mandate' => ''
22
+ );
23
+
24
+ public function details_to_props( $details ) {
25
+ if ( isset( $details['au_becs_debit'] ) ) {
26
+ $this->set_last4( $details['au_becs_debit']['last4'] );
27
+ $this->set_bsb_number( $details['au_becs_debit']['bsb_number'] );
28
+ $this->set_mandate( $details['au_becs_debit']['mandate'] );
29
+ }
30
+ }
31
+
32
+ public function set_last4( $value ) {
33
+ $this->set_prop( 'last4', $value );
34
+ }
35
+
36
+ public function get_last4( $context = 'view' ) {
37
+ return $this->get_prop( 'last4', $context );
38
+ }
39
+
40
+ public function set_bsb_number( $value ) {
41
+ $this->set_prop( 'bsb_number', $value );
42
+ }
43
+
44
+ public function get_bsb_number( $context = 'view' ) {
45
+ return $this->get_prop( 'bsb_number', $context );
46
+ }
47
+
48
+ public function set_mandate( $value ) {
49
+ $this->set_prop( 'mandate', $value );
50
+ }
51
+
52
+ public function get_mandate( $context = 'view' ) {
53
+ return $this->get_prop( 'mandate', $context );
54
+ }
55
+
56
+ public function get_brand( $context = 'view' ) {
57
+ return __( 'BECS', 'woo-stripe-payment' );
58
+ }
59
+
60
+ public function get_formats() {
61
+ return wp_parse_args( array(
62
+ 'type_ending_last4' => array(
63
+ 'label' => __( 'Gateway Title', 'woo-stripe-payment' ),
64
+ 'example' => 'BECS ending in 0005',
65
+ 'format' => __( '{brand} ending in {last4}', 'woo-stripe-payment' ),
66
+ ),
67
+ 'type_last4' => array(
68
+ 'label' => __( 'Type Last 4', 'woo-stripe-payment' ),
69
+ 'example' => 'BECS 1111',
70
+ 'format' => '{brand} {last4}',
71
+ ),
72
+ ), parent::get_formats() );
73
+ }
74
+
75
+ }
includes/tokens/class-wc-payment-token-stripe-local-payment.php CHANGED
@@ -1,11 +1,12 @@
1
  <?php
 
2
  defined( 'ABSPATH' ) || exit();
3
 
4
  /**
5
  *
6
- * @since 3.0.0
7
  * @package Stripe/Tokens
8
- * @author PaymentPlugins
9
  *
10
  */
11
  class WC_Payment_Token_Stripe_Local extends WC_Payment_Token_Stripe {
@@ -31,7 +32,7 @@ class WC_Payment_Token_Stripe_Local extends WC_Payment_Token_Stripe {
31
  return apply_filters( 'wc_stripe_get_local_token_formats', array(
32
  'gateway_title' => array(
33
  'label' => __( 'Gateway Title', 'woo-stripe-payment' ),
34
- 'example' => 'P24',
35
  'format' => '{gateway_title}',
36
  )
37
  ), $this );
@@ -40,4 +41,5 @@ class WC_Payment_Token_Stripe_Local extends WC_Payment_Token_Stripe {
40
  public function get_html_classes() {
41
  return $this->get_gateway_id();
42
  }
 
43
  }
1
  <?php
2
+
3
  defined( 'ABSPATH' ) || exit();
4
 
5
  /**
6
  *
7
+ * @since 3.0.0
8
  * @package Stripe/Tokens
9
+ * @author PaymentPlugins
10
  *
11
  */
12
  class WC_Payment_Token_Stripe_Local extends WC_Payment_Token_Stripe {
32
  return apply_filters( 'wc_stripe_get_local_token_formats', array(
33
  'gateway_title' => array(
34
  'label' => __( 'Gateway Title', 'woo-stripe-payment' ),
35
+ 'example' => $this->get_brand(),
36
  'format' => '{gateway_title}',
37
  )
38
  ), $this );
41
  public function get_html_classes() {
42
  return $this->get_gateway_id();
43
  }
44
+
45
  }
includes/tokens/class-wc-payment-token-stripe-sepa.php CHANGED
@@ -1,15 +1,18 @@
1
  <?php
 
2
  defined( 'ABSPATH' ) || exit();
3
 
4
  /**
5
  *
6
- * @since 3.2.4
7
  * @package Stripe/Tokens
8
- * @author PaymentPlugins
9
  *
10
  */
11
  class WC_Payment_Token_Stripe_Sepa extends WC_Payment_Token_Stripe_Local {
12
 
 
 
13
  protected $type = 'Stripe_Sepa';
14
 
15
  protected $stripe_data = array(
@@ -56,15 +59,17 @@ class WC_Payment_Token_Stripe_Sepa extends WC_Payment_Token_Stripe_Local {
56
 
57
  public function get_formats() {
58
  return wp_parse_args( array(
59
- 'sepa_last4' => array(
60
  'label' => __( 'Gateway Title', 'woo-stripe-payment' ),
61
  'example' => 'Sepa ending in 0005',
62
- 'format' => '{gateway_title} ending in {last4}',
63
- )
 
 
 
 
 
64
  ), parent::get_formats() );
65
  }
66
 
67
- public function get_payment_method_title( $format = '' ) {
68
- return parent::get_payment_method_title( 'sepa_last4' );
69
- }
70
  }
1
  <?php
2
+
3
  defined( 'ABSPATH' ) || exit();
4
 
5
  /**
6
  *
7
+ * @since 3.2.4
8
  * @package Stripe/Tokens
9
+ * @author PaymentPlugins
10
  *
11
  */
12
  class WC_Payment_Token_Stripe_Sepa extends WC_Payment_Token_Stripe_Local {
13
 
14
+ use WC_Payment_Token_Payment_Method_Trait;
15
+
16
  protected $type = 'Stripe_Sepa';
17
 
18
  protected $stripe_data = array(
59
 
60
  public function get_formats() {
61
  return wp_parse_args( array(
62
+ 'type_ending_last4' => array(
63
  'label' => __( 'Gateway Title', 'woo-stripe-payment' ),
64
  'example' => 'Sepa ending in 0005',
65
+ 'format' => __( '{brand} ending in {last4}', 'woo-stripe-payment' ),
66
+ ),
67
+ 'type_last4' => array(
68
+ 'label' => __( 'Type Last 4', 'woo-stripe-payment' ),
69
+ 'example' => 'Sepa 0005',
70
+ 'format' => '{brand} {last4}',
71
+ ),
72
  ), parent::get_formats() );
73
  }
74
 
 
 
 
75
  }
includes/traits/wc-stripe-payment-traits.php CHANGED
@@ -4,8 +4,8 @@ defined( 'ABSPATH' ) || exit();
4
 
5
  /**
6
  *
7
- * @since 3.1.0
8
- * @author Payment Plugins
9
  * @package Stripe/Trait
10
  */
11
  trait WC_Stripe_Payment_Intent_Trait {
@@ -60,12 +60,177 @@ trait WC_Stripe_Payment_Intent_Trait {
60
  return array();
61
  }
62
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
63
  }
64
 
65
  /**
66
  *
67
- * @since 3.1.0
68
- * @author Payment Plugins
69
  * @package Stripe/Trait
70
  */
71
  trait WC_Stripe_Payment_Charge_Trait {
@@ -78,8 +243,8 @@ trait WC_Stripe_Payment_Charge_Trait {
78
 
79
  /**
80
  *
81
- * @since 3.1.0
82
- * @author Payment Plugins
83
  * @package Stripe/Trait
84
  */
85
  trait WC_Stripe_Local_Payment_Charge_Trait {
@@ -92,8 +257,8 @@ trait WC_Stripe_Local_Payment_Charge_Trait {
92
 
93
  /**
94
  *
95
- * @since 3.1.0
96
- * @author Payment Plugins
97
  * @package Stripe/Trait
98
  *
99
  */
@@ -105,16 +270,20 @@ trait WC_Stripe_Local_Payment_Intent_Trait {
105
  *
106
  * @param \Stripe\PaymentIntent $secret
107
  * @param WC_Order $order
 
108
  */
109
- public function get_payment_intent_checkout_url( $intent, $order, $type = 'intent' ) {
110
  // rand is used to generate some random entropy so that window hash events are triggered.
111
  return sprintf(
112
  '#response=%s',
113
  rawurlencode( base64_encode(
114
  wp_json_encode(
115
  array(
 
116
  'client_secret' => $intent->client_secret,
117
  'gateway_id' => $this->id,
 
 
118
  'return_url' => $this->get_local_payment_return_url( $order ),
119
  'order_received_url' => $this->get_return_url( $order ),
120
  'entropy' => rand(
4
 
5
  /**
6
  *
7
+ * @since 3.1.0
8
+ * @author Payment Plugins
9
  * @package Stripe/Trait
10
  */
11
  trait WC_Stripe_Payment_Intent_Trait {
60
  return array();
61
  }
62
 
63
+ /**
64
+ * @param WC_Order $order
65
+ *
66
+ * @return array|void
67
+ */
68
+ public function handle_setup_intent_for_order( $order ) {
69
+ if ( defined( WC_Stripe_Constants::PROCESSING_PAYMENT ) ) {
70
+ $result = $this->save_payment_method( $this->get_new_source_token(), $order );
71
+ if ( is_wp_error( $result ) ) {
72
+ wc_add_notice( $result->get_error_message(), 'error' );
73
+
74
+ return $this->get_order_error();
75
+ }
76
+ // The setup intent ID is no longer needed so remove it from the order
77
+ $order->delete_meta_data( WC_Stripe_Constants::SETUP_INTENT_ID );
78
+ } else {
79
+ $setup_intent = $this->get_payment_intent_id();
80
+ $save_payment_method = $this->should_save_payment_method( $order );
81
+ // if setup intent exists then it was created client side.
82
+ // attempt to save the payment method
83
+ if ( $setup_intent && $save_payment_method ) {
84
+ $result = $this->save_payment_method( $this->get_new_source_token(), $order );
85
+ if ( is_wp_error( $result ) ) {
86
+ wc_add_notice( $result->get_error_message(), 'error' );
87
+
88
+ return $this->get_order_error();
89
+ }
90
+ } elseif ( ! $setup_intent && $save_payment_method ) {
91
+ // A new payment method is being used but there's no setup intent provided
92
+ // by client. Create one here
93
+ $result = $this->does_order_require_action( $order, $this->get_new_source_token() );
94
+ if ( is_wp_error( $result ) ) {
95
+ wc_add_notice( sprintf( __( 'Error processing payment. Reason: %s', 'woo-stripe-payment' ), $result->get_error_message() ), 'error' );
96
+
97
+ return $this->get_order_error();
98
+ } elseif ( $result ) {
99
+ return $result;
100
+ } else {
101
+ $this->save_payment_method( $this->get_new_source_token(), $order );
102
+ }
103
+ } else {
104
+ $this->payment_method_token = $this->get_saved_source_id();
105
+ }
106
+ }
107
+ }
108
+
109
+ /**
110
+ * @param WC_Order $order
111
+ *
112
+ * @return array|void
113
+ */
114
+ public function process_zero_total_order( $order ) {
115
+ $result = $this->handle_setup_intent_for_order( $order );
116
+ if ( $result && isset( $result['result'] ) ) {
117
+ return $result;
118
+ }
119
+
120
+ return $this->payment_object->process_zero_total_order( $order, $this );
121
+ }
122
+
123
+ /**
124
+ * @param \WC_Order $order
125
+ */
126
+ public function process_pre_order( $order ) {
127
+ $token = null;
128
+ $setup_intent = $this->get_payment_intent_id();
129
+ if ( defined( WC_Stripe_Constants::PROCESSING_PAYMENT ) ) {
130
+ $token = $this->create_payment_method( $this->get_new_source_token(), $order->get_meta( WC_Stripe_Constants::CUSTOMER_ID ) );
131
+ } else {
132
+ if ( ! $this->use_saved_source() ) {
133
+ if ( ! $order->get_customer_id() ) {
134
+ $customer = WC_Stripe_Customer_Manager::instance()->create_customer( WC()->customer );
135
+ if ( is_wp_error( $customer ) ) {
136
+ return wc_add_notice( $customer->get_error_message(), 'error' );
137
+ }
138
+ $order->update_meta_data( WC_Stripe_Constants::CUSTOMER_ID, $customer->id );
139
+ } else {
140
+ $order->update_meta_data( WC_Stripe_Constants::CUSTOMER_ID, wc_stripe_get_customer_id( $order->get_customer_id() ) );
141
+ }
142
+ $order->save();
143
+ if ( ! $setup_intent ) {
144
+ $result = $this->does_order_require_action( $order, $this->get_new_source_token() );
145
+ if ( $result ) {
146
+ if ( is_wp_error( $result ) ) {
147
+ wc_add_notice( $result->get_error_message(), 'error' );
148
+ $result = $this->get_order_error();
149
+ }
150
+
151
+ return $result;
152
+ }
153
+ }
154
+ $token = $this->create_payment_method( $this->get_new_source_token(), $order->get_meta( WC_Stripe_Constants::CUSTOMER_ID ) );
155
+ } else {
156
+ $this->payment_method_token = $this->get_saved_source_id();
157
+ }
158
+ }
159
+ if ( is_wp_error( $token ) ) {
160
+ return wc_add_notice( $token->get_error_message(), 'error' );
161
+ }
162
+ WC_Pre_Orders_Order::mark_order_as_pre_ordered( $order );
163
+ $this->save_zero_total_meta( $order, $token );
164
+
165
+ return array(
166
+ 'result' => 'success',
167
+ 'redirect' => $this->get_return_url( $order ),
168
+ );
169
+ }
170
+
171
+ /**
172
+ * @param WC_Order $order
173
+ * @param string $payment_method
174
+ *
175
+ * @return array
176
+ */
177
+ private function does_order_require_action( $order, $payment_method ) {
178
+ if ( ( $intent_id = $order->get_meta( WC_Stripe_Constants::SETUP_INTENT_ID ) ) ) {
179
+ $params = array_filter( array(
180
+ 'payment_method' => $payment_method,
181
+ 'payment_method_types' => [ $this->get_payment_method_type() ]
182
+ ) );
183
+ $intent = $this->gateway->setupIntents->update( $intent_id, $params );
184
+ } else {
185
+ $params = array(
186
+ 'confirm' => false,
187
+ 'usage' => 'off_session',
188
+ 'metadata' => array(
189
+ 'gateway_id' => $this->id,
190
+ 'order_id' => $order->get_id()
191
+ ),
192
+ 'payment_method_types' => [ $this->get_payment_method_type() ]
193
+ );
194
+ if ( $payment_method ) {
195
+ $params['payment_method'] = $payment_method;
196
+ $params['confirm'] = true;
197
+ }
198
+ $this->add_stripe_order_args( $params, $order );
199
+ $intent = $this->payment_object->get_gateway()->setupIntents->create( apply_filters( 'wc_stripe_setup_intent_params', $params, $order, $this ) );
200
+ }
201
+ if ( is_wp_error( $intent ) ) {
202
+ return $intent;
203
+ }
204
+ $order->update_meta_data( WC_Stripe_Constants::SETUP_INTENT_ID, $intent->id );
205
+ $order->save();
206
+
207
+ if ( in_array( $intent->status, array(
208
+ 'requires_action',
209
+ 'requires_payment_method',
210
+ 'requires_source_action',
211
+ 'requires_source',
212
+ 'requires_confirmation'
213
+ ), true )
214
+ ) {
215
+ return array(
216
+ 'result' => 'success',
217
+ 'redirect' => $this->get_payment_intent_checkout_url( $intent, $order, 'setup_intent' ),
218
+ );
219
+ } elseif ( $intent->status === 'succeeded' ) {
220
+ $this->payment_method_token = $intent->payment_method;
221
+ // The setup intent ID is no longer needed so remove it from the order
222
+ $order->delete_meta_data( WC_Stripe_Constants::SETUP_INTENT_ID );
223
+
224
+ return false;
225
+ }
226
+ }
227
+
228
  }
229
 
230
  /**
231
  *
232
+ * @since 3.1.0
233
+ * @author Payment Plugins
234
  * @package Stripe/Trait
235
  */
236
  trait WC_Stripe_Payment_Charge_Trait {
243
 
244
  /**
245
  *
246
+ * @since 3.1.0
247
+ * @author Payment Plugins
248
  * @package Stripe/Trait
249
  */
250
  trait WC_Stripe_Local_Payment_Charge_Trait {
257
 
258
  /**
259
  *
260
+ * @since 3.1.0
261
+ * @author Payment Plugins
262
  * @package Stripe/Trait
263
  *
264
  */
270
  *
271
  * @param \Stripe\PaymentIntent $secret
272
  * @param WC_Order $order
273
+ * @param string $type
274
  */
275
+ public function get_payment_intent_checkout_url( $intent, $order, $type = 'payment_intent' ) {
276
  // rand is used to generate some random entropy so that window hash events are triggered.
277
  return sprintf(
278
  '#response=%s',
279
  rawurlencode( base64_encode(
280
  wp_json_encode(
281
  array(
282
+ 'type' => $type,
283
  'client_secret' => $intent->client_secret,
284
  'gateway_id' => $this->id,
285
+ 'order_id' => $order->get_id(),
286
+ 'order_key' => $order->get_order_key(),
287
  'return_url' => $this->get_local_payment_return_url( $order ),
288
  'order_received_url' => $this->get_return_url( $order ),
289
  'entropy' => rand(
includes/wc-stripe-webhook-functions.php CHANGED
@@ -8,7 +8,7 @@ defined( 'ABSPATH' ) || exit();
8
  * @param \Stripe\Source $source
9
  * @param WP_REST_Request $request
10
  *
11
- * @since 3.0.0
12
  * @package Stripe/Functions
13
  */
14
  function wc_stripe_process_source_chargeable( $source, $request ) {
@@ -62,7 +62,7 @@ function wc_stripe_process_source_chargeable( $source, $request ) {
62
  * @param \Stripe\Charge $charge
63
  * @param WP_REST_Request $request
64
  *
65
- * @since 3.0.5
66
  * @package Stripe/Functions
67
  */
68
  function wc_stripe_process_charge_succeeded( $charge, $request ) {
@@ -113,7 +113,7 @@ function wc_stripe_process_charge_succeeded( $charge, $request ) {
113
  * @param \Stripe\PaymentIntent $intent
114
  * @param WP_REST_Request $request
115
  *
116
- * @since 3.1.0
117
  * @package Stripe/Functions
118
  */
119
  function wc_stripe_process_payment_intent_succeeded( $intent, $request ) {
@@ -132,15 +132,15 @@ function wc_stripe_process_payment_intent_succeeded( $intent, $request ) {
132
  */
133
  sleep( 1 );
134
 
135
- if ( $payment_method->has_order_lock( $order ) || ( $transaction_id = $order->get_transaction_id() ) ) {
136
  wc_stripe_log_info( sprintf( 'payment_intent.succeeded event received. Intent has been completed for order %s. Event exited.', $order->get_id() ) );
137
 
138
  return;
139
  }
140
 
141
  $payment_method->set_order_lock( $order );
 
142
  $result = $payment_method->payment_object->process_payment( $order );
143
-
144
  if ( ! is_wp_error( $result ) && $result->complete_payment ) {
145
  $payment_method->payment_object->payment_complete( $order, $result->charge );
146
  $order->add_order_note( __( 'payment_intent.succeeded webhook received. Payment has been completed.', 'woo-stripe-payment' ) );
@@ -153,7 +153,7 @@ function wc_stripe_process_payment_intent_succeeded( $intent, $request ) {
153
  * @param \Stripe\Charge $charge
154
  * @param WP_REST_Request $request
155
  *
156
- * @since 3.1.1
157
  * @package Stripe/Functions
158
  */
159
  function wc_stripe_process_charge_failed( $charge, $request ) {
@@ -248,8 +248,7 @@ function wc_stripe_process_create_refund( $charge ) {
248
  }
249
  }
250
  }
251
- }
252
- catch ( Exception $e ) {
253
  wc_stripe_log_error( sprintf( 'Error processing refund webhook. Error: %s', $e->getMessage() ) );
254
  }
255
  }
8
  * @param \Stripe\Source $source
9
  * @param WP_REST_Request $request
10
  *
11
+ * @since 3.0.0
12
  * @package Stripe/Functions
13
  */
14
  function wc_stripe_process_source_chargeable( $source, $request ) {
62
  * @param \Stripe\Charge $charge
63
  * @param WP_REST_Request $request
64
  *
65
+ * @since 3.0.5
66
  * @package Stripe/Functions
67
  */
68
  function wc_stripe_process_charge_succeeded( $charge, $request ) {
113
  * @param \Stripe\PaymentIntent $intent
114
  * @param WP_REST_Request $request
115
  *
116
+ * @since 3.1.0
117
  * @package Stripe/Functions
118
  */
119
  function wc_stripe_process_payment_intent_succeeded( $intent, $request ) {
132
  */
133
  sleep( 1 );
134
 
135
+ if ( $payment_method->has_order_lock( $order ) || $order->get_date_completed() ) {
136
  wc_stripe_log_info( sprintf( 'payment_intent.succeeded event received. Intent has been completed for order %s. Event exited.', $order->get_id() ) );
137
 
138
  return;
139
  }
140
 
141
  $payment_method->set_order_lock( $order );
142
+ $order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT, WC_Stripe_Utils::sanitize_intent( $intent->jsonSerialize() ) );
143
  $result = $payment_method->payment_object->process_payment( $order );
 
144
  if ( ! is_wp_error( $result ) && $result->complete_payment ) {
145
  $payment_method->payment_object->payment_complete( $order, $result->charge );
146
  $order->add_order_note( __( 'payment_intent.succeeded webhook received. Payment has been completed.', 'woo-stripe-payment' ) );
153
  * @param \Stripe\Charge $charge
154
  * @param WP_REST_Request $request
155
  *
156
+ * @since 3.1.1
157
  * @package Stripe/Functions
158
  */
159
  function wc_stripe_process_charge_failed( $charge, $request ) {
248
  }
249
  }
250
  }
251
+ } catch ( Exception $e ) {
 
252
  wc_stripe_log_error( sprintf( 'Error processing refund webhook. Error: %s', $e->getMessage() ) );
253
  }
254
  }
packages/blocks/assets/js/payment-methods/local-payment/alipay.js CHANGED
@@ -1,8 +1,7 @@
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings} from "../util";
3
- import {LocalPaymentSourceContent} from './local-payment-method';
4
  import {PaymentMethodLabel} from "../../components/checkout/payment-method-label";
5
- import {canMakePayment} from "./local-payment-method";
6
  import {PaymentMethod} from "../../components/checkout";
7
 
8
  const getData = getSettings('stripe_alipay_data');
@@ -18,10 +17,11 @@ if (getData()) {
18
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
19
  canMakePayment: canMakePayment(getData),
20
  content: <PaymentMethod
21
- content={LocalPaymentSourceContent}
 
22
  getData={getData}/>,
23
  edit: <PaymentMethod
24
- content={LocalPaymentSourceContent}
25
  getData={getData}/>,
26
  supports: {
27
  showSavedCards: false,
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings} from "../util";
3
+ import {canMakePayment, LocalPaymentIntentContent} from './local-payment-method';
4
  import {PaymentMethodLabel} from "../../components/checkout/payment-method-label";
 
5
  import {PaymentMethod} from "../../components/checkout";
6
 
7
  const getData = getSettings('stripe_alipay_data');
17
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
18
  canMakePayment: canMakePayment(getData),
19
  content: <PaymentMethod
20
+ content={LocalPaymentIntentContent}
21
+ confirmationMethod={'confirmAlipayPayment'}
22
  getData={getData}/>,
23
  edit: <PaymentMethod
24
+ content={LocalPaymentIntentContent}
25
  getData={getData}/>,
26
  supports: {
27
  showSavedCards: false,
packages/blocks/assets/js/payment-methods/local-payment/bancontact.js CHANGED
@@ -1,6 +1,6 @@
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings} from "../util";
3
- import {LocalPaymentSourceContent} from './local-payment-method';
4
  import {PaymentMethodLabel, PaymentMethod} from "../../components/checkout";
5
  import {canMakePayment} from "./local-payment-method";
6
 
@@ -17,10 +17,11 @@ if (getData()) {
17
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
18
  canMakePayment: canMakePayment(getData),
19
  content: <PaymentMethod
20
- content={LocalPaymentSourceContent}
 
21
  getData={getData}/>,
22
  edit: <PaymentMethod
23
- content={LocalPaymentSourceContent}
24
  getData={getData}/>,
25
  supports: {
26
  showSavedCards: false,
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings} from "../util";
3
+ import {LocalPaymentIntentContent} from './local-payment-method';
4
  import {PaymentMethodLabel, PaymentMethod} from "../../components/checkout";
5
  import {canMakePayment} from "./local-payment-method";
6
 
17
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
18
  canMakePayment: canMakePayment(getData),
19
  content: <PaymentMethod
20
+ content={LocalPaymentIntentContent}
21
+ confirmationMethod={'confirmBancontactPayment'}
22
  getData={getData}/>,
23
  edit: <PaymentMethod
24
+ content={LocalPaymentIntentContent}
25
  getData={getData}/>,
26
  supports: {
27
  showSavedCards: false,
packages/blocks/assets/js/payment-methods/local-payment/becs.js CHANGED
@@ -7,6 +7,16 @@ import {AuBankAccountElement} from "@stripe/react-stripe-js";
7
 
8
  const getData = getSettings('stripe_becs_data');
9
 
 
 
 
 
 
 
 
 
 
 
10
  if (getData()) {
11
  registerPaymentMethod({
12
  name: getData('name'),
@@ -17,7 +27,7 @@ if (getData()) {
17
  ariaLabel: 'BECS',
18
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
19
  canMakePayment: canMakePayment(getData),
20
- content: <PaymentMethod
21
  content={LocalPaymentIntentContent}
22
  getData={getData}
23
  confirmationMethod={'confirmAuBecsDebitPayment'}
7
 
8
  const getData = getSettings('stripe_becs_data');
9
 
10
+ const BecsPaymentMethod = (props) => {
11
+ return (
12
+ <>
13
+ <PaymentMethod {...props} />
14
+ <div className={'wc-stripe-blocks-mandate becs-mandate'}
15
+ dangerouslySetInnerHTML={{__html: props.getData('mandate')}}/>
16
+ </>
17
+ );
18
+ }
19
+
20
  if (getData()) {
21
  registerPaymentMethod({
22
  name: getData('name'),
27
  ariaLabel: 'BECS',
28
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
29
  canMakePayment: canMakePayment(getData),
30
+ content: <BecsPaymentMethod
31
  content={LocalPaymentIntentContent}
32
  getData={getData}
33
  confirmationMethod={'confirmAuBecsDebitPayment'}
packages/blocks/assets/js/payment-methods/local-payment/eps.js CHANGED
@@ -1,8 +1,8 @@
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings} from "../util";
3
- import {LocalPaymentSourceContent} from './local-payment-method';
4
  import {PaymentMethodLabel, PaymentMethod} from "../../components/checkout";
5
- import {canMakePayment} from "./local-payment-method";
6
 
7
  const getData = getSettings('stripe_eps_data');
8
 
@@ -16,8 +16,12 @@ if (getData()) {
16
  ariaLabel: 'EPS',
17
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
18
  canMakePayment: canMakePayment(getData),
19
- content: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,
20
- edit: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,
 
 
 
 
21
  supports: {
22
  showSavedCards: false,
23
  showSaveOption: false,
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings} from "../util";
3
+ import {canMakePayment, LocalPaymentIntentContent} from './local-payment-method';
4
  import {PaymentMethodLabel, PaymentMethod} from "../../components/checkout";
5
+ import {EpsBankElement} from "@stripe/react-stripe-js";
6
 
7
  const getData = getSettings('stripe_eps_data');
8
 
16
  ariaLabel: 'EPS',
17
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
18
  canMakePayment: canMakePayment(getData),
19
+ content: <PaymentMethod
20
+ content={LocalPaymentIntentContent}
21
+ confirmationMethod={'confirmEpsPayment'}
22
+ component={EpsBankElement}
23
+ getData={getData}/>,
24
+ edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,
25
  supports: {
26
  showSavedCards: false,
27
  showSaveOption: false,
packages/blocks/assets/js/payment-methods/local-payment/giropay.js CHANGED
@@ -1,6 +1,6 @@
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings} from "../util";
3
- import {LocalPaymentSourceContent} from './local-payment-method';
4
  import {PaymentMethodLabel, PaymentMethod} from "../../components/checkout";
5
  import {canMakePayment} from "./local-payment-method";
6
 
@@ -16,8 +16,11 @@ if (getData()) {
16
  ariaLabel: 'Giropay',
17
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
18
  canMakePayment: canMakePayment(getData),
19
- content: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,
20
- edit: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,
 
 
 
21
  supports: {
22
  showSavedCards: false,
23
  showSaveOption: false,
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings} from "../util";
3
+ import {LocalPaymentIntentContent} from './local-payment-method';
4
  import {PaymentMethodLabel, PaymentMethod} from "../../components/checkout";
5
  import {canMakePayment} from "./local-payment-method";
6
 
16
  ariaLabel: 'Giropay',
17
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
18
  canMakePayment: canMakePayment(getData),
19
+ content: <PaymentMethod
20
+ content={LocalPaymentIntentContent}
21
+ confirmationMethod={'confirmGiropayPayment'}
22
+ getData={getData}/>,
23
+ edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,
24
  supports: {
25
  showSavedCards: false,
26
  showSaveOption: false,
packages/blocks/assets/js/payment-methods/local-payment/hooks/use-after-process-local-payment.js CHANGED
@@ -35,7 +35,7 @@ export const useAfterProcessLocalPayment = (
35
  let result = await stripe[confirmationMethod](client_secret, {
36
  payment_method: {
37
  billing_details: getBillingDetailsFromAddress(currentBillingData.current),
38
- ...currentPaymentMethodArgs.current()
39
  },
40
  return_url
41
  });
35
  let result = await stripe[confirmationMethod](client_secret, {
36
  payment_method: {
37
  billing_details: getBillingDetailsFromAddress(currentBillingData.current),
38
+ ...currentPaymentMethodArgs.current(currentBillingData.current)
39
  },
40
  return_url
41
  });
packages/blocks/assets/js/payment-methods/local-payment/local-payment-method.js CHANGED
@@ -110,13 +110,13 @@ const LocalPaymentIntentMethod = (
110
  const {billingData} = billing;
111
  const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;
112
  const {responseTypes, noticeContexts} = emitResponse;
113
- const getPaymentMethodArgs = useCallback(() => {
114
  if (component) {
115
  return {
116
  [getData('paymentType')]: elements.getElement(component)
117
  }
118
  } else if (callback) {
119
- return callback();
120
  }
121
  return {};
122
  }, [
110
  const {billingData} = billing;
111
  const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;
112
  const {responseTypes, noticeContexts} = emitResponse;
113
+ const getPaymentMethodArgs = useCallback((billingData) => {
114
  if (component) {
115
  return {
116
  [getData('paymentType')]: elements.getElement(component)
117
  }
118
  } else if (callback) {
119
+ return callback(billingData);
120
  }
121
  return {};
122
  }, [
packages/blocks/assets/js/payment-methods/local-payment/sepa.js CHANGED
@@ -1,30 +1,17 @@
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings, cartContainsPreOrder, cartContainsSubscription} from "../util";
3
- import {LocalPaymentSourceContent} from './local-payment-method';
4
  import {PaymentMethodLabel, PaymentMethod} from "../../components/checkout";
5
- import {canMakePayment} from "./local-payment-method";
6
  import {IbanElement} from "@stripe/react-stripe-js";
7
 
8
  const getData = getSettings('stripe_sepa_data');
9
 
10
- const getSourceArgs = (args, {billingData}) => {
11
- args.mandate = {
12
- notification_method: billingData.email ? 'email' : 'manual',
13
- interval: cartContainsSubscription() || cartContainsPreOrder() ? 'scheduled' : 'one_time'
14
- }
15
- if (args.mandate.interval === 'scheduled') {
16
- delete args.amount;
17
- }
18
- return args;
19
- }
20
-
21
- const LocalPaymentMethod = (PaymentMethod) => ({getData, ...props}) => {
22
  return (
23
  <>
24
- <PaymentMethod {...{...props, getData}}/>
25
- <div className={'wc-stripe-blocks-sepa__mandate'}>
26
- {getData('mandate')}
27
- </div>
28
  </>
29
  )
30
  }
@@ -42,11 +29,11 @@ if (getData()) {
42
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
43
  canMakePayment: canMakePayment(getData),
44
  content: <SepaPaymentMethod
45
- content={LocalPaymentSourceContent}
46
  getData={getData}
47
- element={IbanElement}
48
- getSourceArgs={getSourceArgs}/>,
49
- edit: <LocalPaymentSourceContent getData={getData}/>,
50
  supports: {
51
  showSavedCards: false,
52
  showSaveOption: false,
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings, cartContainsPreOrder, cartContainsSubscription} from "../util";
 
3
  import {PaymentMethodLabel, PaymentMethod} from "../../components/checkout";
4
+ import {canMakePayment, LocalPaymentIntentContent} from "./local-payment-method";
5
  import {IbanElement} from "@stripe/react-stripe-js";
6
 
7
  const getData = getSettings('stripe_sepa_data');
8
 
9
+ const LocalPaymentMethod = (PaymentMethod) => (props) => {
 
 
 
 
 
 
 
 
 
 
 
10
  return (
11
  <>
12
+ <PaymentMethod {...props}/>
13
+ <div className={'wc-stripe-blocks-mandate sepa-mandate'}
14
+ dangerouslySetInnerHTML={{__html: props.getData('mandate')}}/>
 
15
  </>
16
  )
17
  }
29
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
30
  canMakePayment: canMakePayment(getData),
31
  content: <SepaPaymentMethod
32
+ content={LocalPaymentIntentContent}
33
  getData={getData}
34
+ confirmationMethod={'confirmSepaDebitPayment'}
35
+ component={IbanElement}/>,
36
+ edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,
37
  supports: {
38
  showSavedCards: false,
39
  showSaveOption: false,
packages/blocks/assets/js/payment-methods/local-payment/sofort.js CHANGED
@@ -1,13 +1,12 @@
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings} from "../util";
3
- import {LocalPaymentSourceContent} from './local-payment-method';
4
  import {PaymentMethodLabel, PaymentMethod} from "../../components/checkout";
5
- import {canMakePayment} from "./local-payment-method";
6
 
7
  const getData = getSettings('stripe_sofort_data');
8
 
9
- const getSourceArgs = (args, {billingData}) => {
10
- return {...args, sofort: {country: billingData.country}};
11
  }
12
 
13
  if (getData()) {
@@ -21,10 +20,11 @@ if (getData()) {
21
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
22
  canMakePayment: canMakePayment(getData),
23
  content: <PaymentMethod
24
- content={LocalPaymentSourceContent}
 
25
  getData={getData}
26
- getSourceArgs={getSourceArgs}/>,
27
- edit: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,
28
  supports: {
29
  showSavedCards: false,
30
  showSaveOption: false,
1
  import {registerPaymentMethod} from '@woocommerce/blocks-registry';
2
  import {getSettings} from "../util";
3
+ import {canMakePayment, LocalPaymentIntentContent} from './local-payment-method';
4
  import {PaymentMethodLabel, PaymentMethod} from "../../components/checkout";
 
5
 
6
  const getData = getSettings('stripe_sofort_data');
7
 
8
+ const getConfirmationArgs = (billingData) => {
9
+ return {sofort: {country: billingData.country}};
10
  }
11
 
12
  if (getData()) {
20
  placeOrderButtonLabel: getData('placeOrderButtonLabel'),
21
  canMakePayment: canMakePayment(getData),
22
  content: <PaymentMethod
23
+ content={LocalPaymentIntentContent}
24
+ confirmationMethod={'confirmSofortPayment'}
25
  getData={getData}
26
+ callback={getConfirmationArgs}/>,
27
+ edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,
28
  supports: {
29
  showSavedCards: false,
30
  showSaveOption: false,
packages/blocks/assets/js/payment-methods/local-payment/styles.scss CHANGED
@@ -195,3 +195,7 @@
195
  display: inline-block;
196
  }
197
  }
 
 
 
 
195
  display: inline-block;
196
  }
197
  }
198
+
199
+ .wc-stripe-blocks-mandate {
200
+ margin-top: 10px;
201
+ }
packages/blocks/build/commons.js CHANGED
@@ -1,3 +1,3 @@
1
  /*! For license information please see commons.js.LICENSE.txt */
2
- (self.webpackChunkwc_stripe_name_=self.webpackChunkwc_stripe_name_||[]).push([[351],{7228:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}},2858:e=>{e.exports=function(e){if(Array.isArray(e))return e}},3646:(e,t,n)=>{var r=n(7228);e.exports=function(e){if(Array.isArray(e))return r(e)}},1506:e=>{e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},8926:e=>{function t(e,t,n,r,a,o,i){try{var c=e[o](i),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,a)}e.exports=function(e){return function(){var n=this,r=arguments;return new Promise((function(a,o){var i=e.apply(n,r);function c(e){t(i,a,o,c,s,"next",e)}function s(e){t(i,a,o,c,s,"throw",e)}c(void 0)}))}}},4575:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},9100:(e,t,n)=>{var r=n(9489),a=n(7067);function o(t,n,i){return a()?e.exports=o=Reflect.construct:e.exports=o=function(e,t,n){var a=[null];a.push.apply(a,t);var o=new(Function.bind.apply(e,a));return n&&r(o,n.prototype),o},o.apply(null,arguments)}e.exports=o},3913:e=>{function t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}},9713:e=>{e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},7154:e=>{function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(this,arguments)}e.exports=t},9754:e=>{function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(n)}e.exports=t},2205:(e,t,n)=>{var r=n(9489);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},5318:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},430:e=>{e.exports=function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}},7067:e=>{e.exports=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}},6860:e=>{e.exports=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},3884:e=>{e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,a=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(r=(i=c.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(a)throw o}}return n}}},521:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},8206:e=>{e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},6479:(e,t,n)=>{var r=n(7316);e.exports=function(e,t){if(null==e)return{};var n,a,o=r(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}},7316:e=>{e.exports=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}},8585:(e,t,n)=>{var r=n(8),a=n(1506);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}},9489:e=>{function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(n,r)}e.exports=t},3038:(e,t,n)=>{var r=n(2858),a=n(3884),o=n(379),i=n(521);e.exports=function(e,t){return r(e)||a(e,t)||o(e,t)||i()}},319:(e,t,n)=>{var r=n(3646),a=n(6860),o=n(379),i=n(8206);e.exports=function(e){return r(e)||a(e)||o(e)||i()}},8:e=>{function t(n){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(n)}e.exports=t},379:(e,t,n)=>{var r=n(7228);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}},5957:(e,t,n)=>{var r=n(9754),a=n(9489),o=n(430),i=n(9100);function c(t){var n="function"==typeof Map?new Map:void 0;return e.exports=c=function(e){if(null===e||!o(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,t)}function t(){return i(e,arguments,r(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),a(t,e)},c(t)}e.exports=c},6664:function(e,t,n){!function(e,t){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,a=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(r=(i=c.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(a)throw o}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;function i(){}function c(){}c.resetWarningCache=i;var s,u=(function(e){e.exports=function(){function e(e,t,n,r,a,o){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==o){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:c,resetWarningCache:i};return n.PropTypes=n,n}()}(s={exports:{}},s.exports),s.exports),l=function(e){return null!==e&&"object"===n(e)},p="[object Object]",d=function e(t,n){if(!l(t)||!l(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var a=Object.prototype.toString.call(t)===p;if(a!==(Object.prototype.toString.call(n)===p))return!1;if(!a&&!r)return!1;var o=Object.keys(t),i=Object.keys(n);if(o.length!==i.length)return!1;for(var c={},s=0;s<o.length;s+=1)c[o[s]]=!0;for(var u=0;u<i.length;u+=1)c[i[u]]=!0;var d=Object.keys(c);if(d.length!==o.length)return!1;var f=t,m=n;return d.every((function(t){return e(f[t],m[t])}))},f=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),n.current},m=function(e){if(null===e||l(t=e)&&"function"==typeof t.elements&&"function"==typeof t.createToken&&"function"==typeof t.createPaymentMethod&&"function"==typeof t.confirmCardPayment)return e;var t;throw new Error("Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")},y=function(e){if(function(e){return l(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then(m)};var t=m(e);return null===t?{tag:"empty"}:{tag:"sync",stripe:t}},g=t.createContext(null);g.displayName="ElementsContext";var v=function(e){var n=e.stripe,r=e.options,o=e.children,i=t.useRef(!1),c=t.useRef(!0),s=t.useMemo((function(){return y(n)}),[n]),u=a(t.useState((function(){return{stripe:null,elements:null}})),2),l=u[0],p=u[1],m=f(n),v=f(r);return null!==m&&(m!==n&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it."),d(r,v)||console.warn("Unsupported prop change on Elements: You cannot change the `options` prop after setting the `stripe` prop.")),i.current||("sync"===s.tag&&(i.current=!0,p({stripe:s.stripe,elements:s.stripe.elements(r)})),"async"===s.tag&&(i.current=!0,s.stripePromise.then((function(e){e&&c.current&&p({stripe:e,elements:e.elements(r)})})))),t.useEffect((function(){return function(){c.current=!1}}),[]),t.useEffect((function(){var e=l.stripe;e&&e._registerWrapper&&e._registerWrapper({name:"react-stripe-js",version:"1.4.0"})}),[l.stripe]),t.createElement(g.Provider,{value:l},o)};v.propTypes={stripe:u.any,options:u.object};var h=function(e){return function(e,t){if(!e)throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t," in an <Elements> provider."));return e}(t.useContext(g),e)},b=function(e){return(0,e.children)(h("mounts <ElementsConsumer>"))};b.propTypes={children:u.func.isRequired};var P=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),function(){n.current&&n.current.apply(n,arguments)}},E=function(e){return l(e)?(e.paymentRequest,r(e,["paymentRequest"])):{}},O=function(){},S=function(e,n){var r,a="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),o=n?function(e){h("mounts <".concat(a,">"));var n=e.id,r=e.className;return t.createElement("div",{id:n,className:r})}:function(n){var r=n.id,o=n.className,i=n.options,c=void 0===i?{}:i,s=n.onBlur,u=void 0===s?O:s,l=n.onFocus,p=void 0===l?O:l,f=n.onReady,m=void 0===f?O:f,y=n.onChange,g=void 0===y?O:y,v=n.onEscape,b=void 0===v?O:v,S=n.onClick,w=void 0===S?O:S,_=h("mounts <".concat(a,">")).elements,C=t.useRef(null),M=t.useRef(null),k=P(m),j=P(u),D=P(p),x=P(w),R=P(g),A=P(b);t.useLayoutEffect((function(){if(null==C.current&&_&&null!=M.current){var t=_.create(e,c);C.current=t,t.mount(M.current),t.on("ready",(function(){return k(t)})),t.on("change",R),t.on("blur",j),t.on("focus",D),t.on("escape",A),t.on("click",x)}}));var L=t.useRef(c);return t.useEffect((function(){L.current&&L.current.paymentRequest!==c.paymentRequest&&console.warn("Unsupported prop change: options.paymentRequest is not a customizable property.");var e=E(c);0===Object.keys(e).length||d(e,E(L.current))||C.current&&(C.current.update(e),L.current=c)}),[c]),t.useLayoutEffect((function(){return function(){C.current&&C.current.destroy()}}),[]),t.createElement("div",{id:r,className:o,ref:M})};return o.propTypes={id:u.string,className:u.string,onChange:u.func,onBlur:u.func,onFocus:u.func,onReady:u.func,onClick:u.func,options:u.object},o.displayName=a,o.__elementType=e,o},w="undefined"==typeof window,_=S("auBankAccount",w),C=S("card",w),M=S("cardNumber",w),k=S("cardExpiry",w),j=S("cardCvc",w),D=S("fpxBank",w),x=S("iban",w),R=S("idealBank",w),A=S("p24Bank",w),L=S("epsBank",w),I=S("paymentRequestButton",w),T=S("afterpayClearpayMessage",w);e.AfterpayClearpayMessageElement=T,e.AuBankAccountElement=_,e.CardCvcElement=j,e.CardElement=C,e.CardExpiryElement=k,e.CardNumberElement=M,e.Elements=v,e.ElementsConsumer=b,e.EpsBankElement=L,e.FpxBankElement=D,e.IbanElement=x,e.IdealBankElement=R,e.P24BankElement=A,e.PaymentRequestButtonElement=I,e.useElements=function(){return h("calls useElements()").elements},e.useStripe=function(){return h("calls useStripe()").stripe},Object.defineProperty(e,"__esModule",{value:!0})}(t,n(3804))},4465:(e,t,n)=>{"use strict";n.r(t),n.d(t,{loadStripe:()=>l});var r="https://js.stripe.com/v3",a=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,o="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",i=null,c=function(e,t,n){if(null===e)return null;var r=e.apply(void 0,t);return function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"1.12.1",startTime:t})}(r,n),r},s=Promise.resolve().then((function(){return e=null,null!==i?i:i=new Promise((function(t,n){if("undefined"!=typeof window)if(window.Stripe&&e&&console.warn(o),window.Stripe)t(window.Stripe);else try{var i=function(){for(var e=document.querySelectorAll('script[src^="'.concat(r,'"]')),t=0;t<e.length;t++){var n=e[t];if(a.test(n.src))return n}return null}();i&&e?console.warn(o):i||(i=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",n=document.createElement("script");n.src="".concat(r).concat(t);var a=document.head||document.body;if(!a)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return a.appendChild(n),n}(e)),i.addEventListener("load",(function(){window.Stripe?t(window.Stripe):n(new Error("Stripe.js not available"))})),i.addEventListener("error",(function(){n(new Error("Failed to load Stripe.js"))}))}catch(e){return void n(e)}else t(null)}));var e})),u=!1;s.catch((function(e){u||console.warn(e)}));var l=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];u=!0;var r=Date.now();return s.then((function(e){return c(e,t,r)}))}},8149:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.SavePaymentMethod=void 0;var o=a(n(4184));n(1127),t.SavePaymentMethod=function(e){var t=e.label,n=e.onChange,a=e.checked;return r.createElement("div",{className:"wc-stripe-save-payment-method"},r.createElement("label",null,r.createElement("input",{type:"checkbox",onChange:function(e){return n(e.target.checked)}}),r.createElement("svg",{className:(0,o.default)("wc-stripe-components-checkbox__mark",{checked:a}),"aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 20"},r.createElement("path",{d:"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"}))),r.createElement("span",null,t))}},3187:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(2029);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(8149);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(8744);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}));var i=n(4901);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}))},2029:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.PaymentMethodLabel=void 0;var o=a(n(6479));n(7776),t.PaymentMethodLabel=function(e){var t=e.title,n=e.icons,a=e.paymentMethod,i=(0,o.default)(e,["title","icons","paymentMethod"]).components,c=i.PaymentMethodLabel,s=i.PaymentMethodIcons;return Array.isArray(n)||(n=[n]),r.createElement("span",{className:"wc-stripe-label-container ".concat(a)},r.createElement(c,{text:t}),r.createElement(s,{icons:n,align:"left"}))}},4901:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.PaymentMethod=void 0;var o=a(n(9713)),i=a(n(6479)),c=n(3027);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.PaymentMethod=function(e){var t=e.getData,n=e.content,a=(0,i.default)(e,["getData","content"]),o=n,s=t("description"),p=(0,c.useRef)(null);return(0,c.useEffect)((function(){p.current&&0==p.current.childNodes.length&&p.current.classList.add("no-content")})),r.createElement(r.Fragment,null,s&&r.createElement(l,{desc:s,payment_method:t("name")}),r.createElement("div",{ref:p,className:"wc-stripe-blocks-payment-method-content"},r.createElement(o,u(u({},a),{},{getData:t}))))};var l=function(e){var t=e.desc,n=e.payment_method;return r.createElement("div",{className:"wc-stripe-blocks-payment-method__desc ".concat(n)},r.createElement("p",null,t))}},8744:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.RadioControlOption=void 0;var o=a(n(4184)),i=function(e){var t=e.checked,n=e.onChange,a=e.value,i=e.label;return r.createElement("label",{className:(0,o.default)("wc-stripe-blocks-radio-control__option",{"wc-stripe-blocks-radio-control__option-checked":t})},r.createElement("input",{className:"wc-stripe-blocks-radio-control__input",type:"radio",value:a,checked:t,onChange:function(e){return n(e.target.value)}}),r.createElement("div",{className:"wc-stripe-blocks-radio-control__label"},r.createElement("span",null,i)))};t.RadioControlOption=i;var c=i;t.default=c},7260:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(1293);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(7150);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(5201);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},1293:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useCreateLinkToken=void 0;var a=r(n(7015)),o=r(n(8926)),i=r(n(3038)),c=n(3027),s=r(n(7606)),u=n(1134);t.useCreateLinkToken=function(e){var t=e.setValidationError,n=(0,c.useState)(!1),r=(0,i.default)(n,2),l=r[0],p=r[1],d=(0,c.useCallback)((0,o.default)(a.default.mark((function e(){var n;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,s.default)({url:(0,u.getRoute)("create/linkToken"),method:"POST",data:{}});case 3:(n=e.sent).token&&((0,u.storeInCache)("linkToken",n.token),p(n.token)),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),t(e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])}))),[]);return(0,c.useEffect)((function(){if(!l){var e=(0,u.getFromCache)("linkToken");e?p(e):d()}}),[l,p]),l}},7150:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useInitializePlaid=void 0;var a=n(3027),o=r(n(2810)),i=n(1134);t.useInitializePlaid=function(e){var t=e.getData,n=e.linkToken,r=(0,a.useRef)(null),c=(0,a.useRef)(null),s=(0,a.useCallback)((function(){return new Promise((function(e,t){c.current={resolve:e,reject:t},r.current.open()}))}),[]);return(0,a.useEffect)((function(){n&&(r.current=o.default.create({clientName:t("clientName"),env:t("plaidEnvironment"),product:["auth"],token:n,selectAccount:!0,countryCodes:["US"],onSuccess:function(e,t){c.current.resolve({publicToken:e,metaData:t})},onExit:function(e){c.current.reject(!!e&&(0,i.getErrorMessage)(e.error_message))}}))}),[n]),s}},5201:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessPayment=void 0;var a=r(n(7015)),o=r(n(9713)),i=r(n(8926)),c=n(3027),s=n(1134);t.useProcessPayment=function(e){var t=e.openLinkPopup,n=e.onPaymentProcessing,r=e.responseTypes,u=e.paymentMethod;(0,c.useEffect)((function(){var e=n((0,i.default)(a.default.mark((function e(){var n,i,c,l;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,t();case 3:return i=e.sent,c=i.publicToken,l=i.metaData,(0,s.deleteFromCache)("linkToken"),e.abrupt("return",(0,s.ensureSuccessResponse)(r,{meta:{paymentMethodData:(n={},(0,o.default)(n,"".concat(u,"_token_key"),c),(0,o.default)(n,"".concat(u,"_metadata"),JSON.stringify(l)),n)}}));case 9:return e.prev=9,e.t0=e.catch(0),e.abrupt("return",(0,s.ensureErrorResponse)(r,e.t0));case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))));return function(){return e()}}),[n,r,t])}},5605:(e,t,n)=>{n(4836),n(4888)},4888:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(3038)),i=a(n(6479)),c=n(3027),s=n(4222),u=n(1134),l=n(3187),p=a(n(1065)),d=n(7260),f=n(3636),m=n(3163),y=(0,u.getSettings)("stripe_ach_data"),g=function(e){var t=e.getData,n=e.eventRegistration,a=e.components,s=e.emitResponse,l=e.onSubmit,p=((0,i.default)(e,["getData","eventRegistration","components","emitResponse","onSubmit"]),s.responseTypes),m=n.onPaymentProcessing,y=n.onCheckoutAfterProcessingWithError,g=a.ValidationInputError,h=(0,c.useState)(!1),b=(0,o.default)(h,2),P=b[0],E=b[1],O=(0,d.useCreateLinkToken)({setValidationError:E});(0,f.useProcessCheckoutError)({responseTypes:p,subscriber:y});var S=(0,d.useInitializePlaid)({getData:t,linkToken:O,onSubmit:l});return(0,d.useProcessPayment)({openLinkPopup:S,onPaymentProcessing:m,responseTypes:p,paymentMethod:t("name")}),r.createElement(r.Fragment,null,u.isTestMode&&r.createElement(v,null),P&&r.createElement(g,{errorMessage:P}))},v=function(){return r.createElement("div",{className:"wc-stripe-blocks-ach__creds"},r.createElement("label",{className:"wc-stripe-blocks-ach__creds-label"},(0,m.__)("Test Credentials","woo-stripe-payment")),r.createElement("div",{className:"wc-stripe-blocks-ach__username"},r.createElement("div",null,r.createElement("strong",null,(0,m.__)("username","woo-stripe-payment")),": user_good"),r.createElement("div",null,r.createElement("strong",null,(0,m.__)("password","woo-stripe-payment")),": pass_good"),r.createElement("div",null,r.createElement("strong",null,(0,m.__)("pin","woo-stripe-payment")),": credential_good")))};(0,s.registerPaymentMethod)({name:y("name"),label:r.createElement(l.PaymentMethodLabel,{title:y("title"),paymentMethod:y("name"),icons:y("icons")}),ariaLabel:"ACH Payment",canMakePayment:function(e){return"USD"===e.cartTotals.currency_code},content:r.createElement(l.PaymentMethod,{getData:y,content:g}),savedTokenComponent:r.createElement(p.default,{getData:y}),edit:r.createElement(g,{getData:y}),placeOrderButtonLabel:y("placeOrderButtonLabel"),supports:{showSavedCards:y("showSavedCards"),showSaveOption:!1,features:y("features")}})},3846:(e,t,n)=>{n(85),n(660)},660:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(3038)),i=a(n(6479)),c=n(3027),s=n(4222),u=n(1134),l=n(6664),p=a(n(7082)),d=n(3636),f=(0,u.getSettings)("stripe_applepay_data"),m=function(e){return r.createElement(p.default,null,r.createElement("div",{className:"wc-stripe-apple-pay-container"},r.createElement(l.Elements,{stripe:u.initStripe},r.createElement(y,e))))},y=function(e){var t=e.getData,n=e.onClick,a=e.onClose,s=e.billing,u=e.shippingData,p=e.eventRegistration,f=e.emitResponse,m=e.onSubmit,y=e.activePaymentMethod,g=((0,i.default)(e,["getData","onClick","onClose","billing","shippingData","eventRegistration","emitResponse","onSubmit","activePaymentMethod"]),p.onPaymentProcessing),v=f.responseTypes,h=f.noticeContexts,b=(0,l.useStripe)(),P=(0,d.useStripeError)(),E=(0,o.default)(P,1)[0],O=(0,d.useExportedValues)();(0,d.useExpressBreakpointWidth)({payment_method:t("name"),width:300});var S=(0,d.useProcessPaymentIntent)({getData:t,billing:s,shippingData:u,onPaymentProcessing:g,emitResponse:f,error:E,onSubmit:m,activePaymentMethod:y,exportedValues:O}).setPaymentMethod;(0,d.useAfterProcessingPayment)({getData:t,eventRegistration:p,responseTypes:v,activePaymentMethod:y,messageContext:h.EXPRESS_PAYMENTS});var w=(0,d.usePaymentRequest)({getData:t,onClose:a,stripe:b,billing:s,shippingData:u,eventRegistration:p,setPaymentMethod:S,exportedValues:O,canPay:function(e){return null!=e&&e.applePay}}).paymentRequest,_=(0,c.useCallback)((function(e){w&&(e.preventDefault(),n(),w.show())}),[w,n]);return w?r.createElement("button",{className:"apple-pay-button ".concat(t("buttonStyle")),style:{"-apple-pay-button-type":t("buttonType")},onClick:_}):null},g=function(e){var t=e.getData;return(0,i.default)(e,["getData"]),r.createElement("div",{className:"apple-pay-block-editor"},r.createElement("img",{src:t("editorIcon")}))};(0,s.registerExpressPaymentMethod)({name:f("name"),canMakePayment:function(e){var t=e.cartTotals;if((0,i.default)(e,["cartTotals"]),f("isAdmin"))return!0;var n=t.currency_code,r=t.total_price;return(0,u.canMakePayment)({country:f("countryCode"),currency:n.toLowerCase(),total:{label:f("totalLabel"),amount:parseInt(r)}},(function(e){return null!=e&&e.applePay}))},content:r.createElement(m,{getData:f}),edit:r.createElement(g,{getData:f}),supports:{showSavedCards:f("showSavedCards"),showSaveOption:f("showSaveOption"),features:f("features")}})},7354:(e,t,n)=>{var r=n(3027);n(3110);var a=n(1134),o=n(6664),i=n(3163),c=function(e){var t=e.CardIcon,n=e.options,a=e.onChange;return r.createElement("div",{className:"wc-stripe-bootstrap-form"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col-md-6 mb-3"},r.createElement(o.CardNumberElement,{className:"md-form md-outline stripe-input",options:n.cardNumber,onChange:a(o.CardNumberElement)}),r.createElement("label",{htmlFor:"stripe-card-number"},(0,i.__)("Card Number","woo-stripe-payment")),t),r.createElement("div",{className:"col-md-3 mb-3"},r.createElement(o.CardExpiryElement,{className:"md-form md-outline stripe-input",options:n.cardExpiry,onChange:a(o.CardExpiryElement)}),r.createElement("label",{htmlFor:"stripe-exp"},(0,i.__)("Exp","woo-stripe-payment"))),r.createElement("div",{className:"col-md-3 mb-3"},r.createElement(o.CardCvcElement,{className:"md-form md-outline stripe-input",options:n.cardCvc,onChange:a(o.CardCvcElement)}),r.createElement("label",{htmlFor:"stripe-cvv"},(0,i.__)("CVV","woo-stripe-payment")))))};(0,a.registerCreditCardForm)({id:"bootstrap",breakpoint:475,component:r.createElement(c,null)})},3329:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(9713)),i=a(n(3038)),c=n(1134),s=n(3027),u=n(6664),l=n(3163),p=n(3636);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m={focus:"focused",empty:"empty",invalid:"invalid"},y=function(e){var t=e.type,n=e.src;return t?r.createElement("img",{className:"wc-stripe-card ".concat(t),src:n}):null};t.default=function(e){var t=e.getData,n=e.onChange,a=(0,s.useState)(""),o=(0,i.default)(a,2),d=o[0],g=o[1],v=(0,s.useRef)([]),h=(0,s.useState)(null),b=(0,i.default)(h,2),P=b[0],E=b[1],O=(0,u.useElements)(),S=t("customForm"),w=(0,c.getCreditCardForm)(S),_=w.component,C=void 0===_?null:_,M=w.breakpoint,k=void 0===M?475:M,j=t("postalCodeEnabled"),D={};["cardNumber","cardExpiry","cardCvc"].forEach((function(e){D[e]=f(f({classes:m},t("cardOptions")),t("customFieldOptions")[e])}));var x=(0,s.useCallback)((function(e){v.current.includes(e)||v.current.push(e)}),[]);(0,p.useBreakpointWidth)({name:"creditCardForm",width:k,node:P,className:"small-form"});var R=(0,s.useCallback)((function(e){for(var n=0,r=Object.keys(t("cards"));n<r.length;n++){var a=r[n];if(a===e)return t("cards")[a]}return""}),[]);return C?r.createElement("div",{className:"wc-stripe-custom-form ".concat(S),ref:E},(0,s.cloneElement)(C,{postalCodeEnabled:j,options:D,onChange:function(e){return x(e),function(t){if(n(t),"cardNumber"===t.elementType&&("unknown"===t.brand?g(""):g(t.brand)),t.complete){var r=v.current.indexOf(e);if(v.current[r+1]){var a=v.current[r+1];O.getElement(a).focus()}}}},CardIcon:r.createElement(y,{type:d,src:R(d)})})):r.createElement("div",{className:"wc-stripe-custom-form-error"},r.createElement("p",null,(0,l.sprintf)((0,l.__)("%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings.","woo-stripe-payment"),t("customFormLabels")[S])))}},6835:(e,t,n)=>{var r=n(3027);n(8356);var a=n(1134),o=n(6664),i=n(3163),c=n(3027),s=function(e){var t=e.CardIcon,n=e.options,a=e.onChange;return(0,c.useEffect)((function(){}),[]),r.createElement("div",{className:"wc-stripe-simple-form"},r.createElement("div",{className:"row"},r.createElement("div",{className:"field"},r.createElement("div",{className:"field-item"},r.createElement(o.CardNumberElement,{id:"stripe-card-number",className:"input empty",options:n.cardNumber,onChange:a(o.CardNumberElement)}),r.createElement("label",{htmlFor:"stripe-card-number","data-tid":""},(0,i.__)("Card Number","woo-stripe-payment")),r.createElement("div",{className:"baseline"}),t))),r.createElement("div",{className:"row"},r.createElement("div",{className:"field half-width"},r.createElement("div",{className:"field-item"},r.createElement(o.CardExpiryElement,{id:"stripe-exp",className:"input empty",options:n.cardExpiry,onChange:a(o.CardExpiryElement)}),r.createElement("label",{htmlFor:"stripe-exp","data-tid":""},(0,i.__)("Expiration","woo-stripe-payment")),r.createElement("div",{className:"baseline"}))),r.createElement("div",{className:"field half-width cvc"},r.createElement("div",{className:"field-item"},r.createElement(o.CardCvcElement,{id:"stripe-cvv",className:"input empty",options:n.cardCvc,onChange:a(o.CardCvcElement)}),r.createElement("label",{htmlFor:"stripe-cvv","data-tid":""},(0,i.__)("CVV","woo-stripe-payment")),r.createElement("div",{className:"baseline"})))))};(0,a.registerCreditCardForm)({id:"simple",component:r.createElement(s,null),breakpoint:375})},9775:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(9713)),i=n(6664),c=n(1134),s=n(3027);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.default=function(e){var t=e.getData,n=e.billing,a=e.onChange,o=(0,s.useMemo)((function(){var e;return l(l({},{value:{postalCode:null==n||null===(e=n.billingData)||void 0===e?void 0:e.postcode},hidePostalCode:(0,c.isFieldRequired)("postcode"),iconStyle:"default"}),t("cardOptions"))}),[n.billingData]);return r.createElement("div",{className:"wc-stripe-inline-form"},r.createElement(i.CardElement,{options:o,onChange:a}))}},627:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),n(5773);var r=n(7205);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))})),n(7354),n(6835)},7205:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(3038)),i=n(3027),c=n(4222),s=n(1134),u=n(6664),l=n(3187),p=a(n(1065)),d=a(n(3329)),f=a(n(9775)),m=n(3636),y=(0,s.getSettings)("stripe_cc_data"),g=function(e){return(0,s.isUserLoggedIn)(e)&&y("saveCardEnabled")&&!(0,s.cartContainsSubscription)()&&!(0,s.cartContainsPreOrder)()},v=function(e){var t=(0,i.useState)(!1),n=(0,o.default)(t,2),a=n[0],c=n[1];if((0,i.useEffect)((function(){s.initStripe.catch((function(e){c(e)}))}),[c]),a)throw new Error(a);return r.createElement(u.Elements,{stripe:s.initStripe,options:y("elementOptions")},r.createElement(h,e))},h=function(e){var t=e.getData,n=e.billing,a=e.shippingData,c=e.emitResponse,s=e.eventRegistration,p=e.activePaymentMethod,y=(0,m.useStripeError)(),v=(0,o.default)(y,2),h=v[0],b=v[1],P=(0,i.useState)(!1),E=(0,o.default)(P,2),O=E[0],S=E[1],w=s.onPaymentProcessing,_=(0,u.useStripe)(),C=(0,u.useElements)(),M=(0,i.useCallback)((function(){var e=t("customFormActive")?u.CardNumberElement:u.CardElement;return{card:C.getElement(e)}}),[_,C]),k=(0,m.useSetupIntent)({getData:t,cartTotal:n.cartTotal,setError:b}),j=k.setupIntent,D=k.removeSetupIntent;(0,m.useProcessPaymentIntent)({getData:t,billing:n,shippingData:a,emitResponse:c,error:h,onPaymentProcessing:w,savePaymentMethod:O,setupIntent:j,removeSetupIntent:D,getPaymentMethodArgs:M,activePaymentMethod:p}),(0,m.useAfterProcessingPayment)({getData:t,eventRegistration:s,responseTypes:c.responseTypes,activePaymentMethod:p,savePaymentMethod:O});var x=t("customFormActive")?d.default:f.default;return r.createElement("div",{className:"wc-stripe-card-container"},r.createElement(x,{getData:t,billing:n,onChange:function(e){e.error?b(e.error):b(!1)}}),g(n.customerId)&&r.createElement(l.SavePaymentMethod,{label:t("savePaymentMethodLabel"),onChange:function(e){return S(e)},checked:O}))};(0,c.registerPaymentMethod)({name:y("name"),label:r.createElement(l.PaymentMethodLabel,{title:y("title"),paymentMethod:y("name"),icons:y("icons")}),ariaLabel:"Credit Cards",canMakePayment:function(){return s.initStripe},content:r.createElement(l.PaymentMethod,{content:v,getData:y}),savedTokenComponent:r.createElement(p.default,{getData:y}),edit:r.createElement(l.PaymentMethod,{content:v,getData:y}),supports:{showSavedCards:y("showSavedCards"),showSaveOption:!1,features:y("features")}})},7082:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(4575)),i=a(n(3913)),c=a(n(2205)),s=a(n(8585)),u=a(n(9754));var l=function(e){(0,c.default)(l,e);var t,n,a=(t=l,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,u.default)(t);if(n){var a=(0,u.default)(this).constructor;e=Reflect.construct(r,arguments,a)}else e=r.apply(this,arguments);return(0,s.default)(this,e)});function l(e){var t;return(0,o.default)(this,l),(t=a.call(this,e)).state={hasError:!1,error:null,errorInfo:null},t}return(0,i.default)(l,[{key:"componentDidCatch",value:function(e,t){this.setState({hasError:!0,error:e,errorInfo:t})}},{key:"render",value:function(){return this.state.hasError?r.createElement(r.Fragment,null,this.state.error&&r.createElement("div",{className:"wc-stripe-block-error"},this.state.error.toString()),this.state.errorInfo&&r.createElement("div",{className:"wc-stripe-block-error"},this.state.errorInfo.componentStack)):this.props.children}}]),l}(n(3027).Component);t.default=l},5212:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(3038)),i=a(n(6479)),c=n(3027),s=n(5516),u=n(3636),l=(0,n(1134).getSettings)("stripeGeneralData")().publishableKey;t.default=function(e){var t=e.getData,n=e.setErrorMessage,a=e.billing,p=e.shippingData,d=e.canMakePayment,f=e.checkoutStatus,m=e.eventRegistration,y=e.activePaymentMethod,g=e.onClick,v=e.onClose,h=(0,i.default)(e,["getData","setErrorMessage","billing","shippingData","canMakePayment","checkoutStatus","eventRegistration","activePaymentMethod","onClick","onClose"]),b={merchantId:t("merchantId"),merchantName:t("merchantName")},P=(0,u.useStripeError)(),E=(0,o.default)(P,2),O=E[0],S=(E[1],(0,c.useRef)()),w=h.onSubmit,_=h.emitResponse,C=m.onPaymentProcessing,M=(0,u.useExportedValues)(),k="long"===t("buttonStyle").buttonType?390:300,j=(0,u.useProcessPaymentIntent)({getData:t,billing:a,shippingData:p,onPaymentProcessing:C,emitResponse:_,error:O,exportedValues:M,onSubmit:w,checkoutStatus:f,activePaymentMethod:y}).setPaymentMethod,D=(0,s.usePaymentRequest)({getData:t,publishableKey:l,merchantInfo:b,billing:a,shippingData:p}),x=(0,s.usePaymentsClient)({merchantInfo:b,paymentRequest:D,billing:a,shippingData:p,eventRegistration:m,canMakePayment:d,setErrorMessage:n,onSubmit:w,setPaymentMethod:j,exportedValues:M,onClick:g,onClose:v,getData:t}),R=x.button,A=x.removeButton;return(0,u.useExpressBreakpointWidth)({payment_method:t("name"),width:k}),(0,c.useEffect)((function(){R&&(A(S.current),S.current.append(R))}),[R]),r.createElement("div",{className:"wc-stripe-gpay-button-container",ref:S})}},3097:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BASE_PAYMENT_REQUEST=t.BASE_PAYMENT_METHOD=void 0,t.BASE_PAYMENT_METHOD={type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY"],allowedCardNetworks:["AMEX","DISCOVER","INTERAC","JCB","MASTERCARD","VISA"],assuranceDetailsRequired:!0}},t.BASE_PAYMENT_REQUEST={apiVersion:2,apiVersionMinor:0}},5516:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(1674);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(1735);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(9808);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},9808:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useErrorMessage=void 0;var a=r(n(3038)),o=n(3027);t.useErrorMessage=function(){var e=(0,o.useState)(!1),t=(0,a.default)(e,2);return{errorMessage:t[0],setErrorMessage:t[1]}}},1735:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentRequest=void 0;var a=r(n(319)),o=r(n(9713)),i=n(3027),c=n(3097),s=n(1134),u=n(8664);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentRequest=function(e){var t=e.getData,n=e.publishableKey,r=e.merchantInfo,o=e.billing,l=e.shippingData,d=o.billingData,f=l.shippingRates,m=t(),y=m.processingCountry,g=m.totalPriceLabel;return(0,i.useMemo)((function(){var e=p(p({},{emailRequired:(0,s.isEmpty)(d.email),merchantInfo:r,allowedPaymentMethods:[p(p({},{type:"CARD",tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:"stripe","stripe:version":"2018-10-31","stripe:publishableKey":n}}}),c.BASE_PAYMENT_METHOD)],shippingAddressRequired:l.needsShipping,transactionInfo:(0,u.getTransactionInfo)({billing:o,processingCountry:y,totalPriceLabel:g}),callbackIntents:["PAYMENT_AUTHORIZATION"]}),c.BASE_PAYMENT_REQUEST);if(e.allowedPaymentMethods[0].parameters.billingAddressRequired=!0,e.allowedPaymentMethods[0].parameters.billingAddressParameters={format:"FULL",phoneNumberRequired:(0,s.isFieldRequired)("phone",d.country)&&(0,s.isEmpty)(d.phone)},e.shippingAddressRequired){e.callbackIntents=[].concat((0,a.default)(e.callbackIntents),["SHIPPING_ADDRESS","SHIPPING_OPTION"]),e.shippingOptionRequired=!0;var t=(0,u.getShippingOptionParameters)(f);t.shippingOptions.length>0&&(e=p(p({},e),{},{shippingOptionParameters:t}))}return e}),[o.cartTotal,o.cartTotalItems,d,l])}},1674:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentsClient=void 0;var a=r(n(319)),o=r(n(9713)),i=r(n(7015)),c=r(n(8926)),s=r(n(3038)),u=n(3027),l=r(n(4306)),p=n(1134),d=n(6664),f=n(8664),m=n(3163),y=n(3636);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentsClient=function(e){var t=e.merchantInfo,n=e.paymentRequest,r=e.billing,g=e.shippingData,h=e.eventRegistration,b=e.canMakePayment,P=e.setErrorMessage,E=e.setPaymentMethod,O=e.exportedValues,S=e.onClick,w=e.onClose,_=e.getData,C=_().environment,M=(0,u.useState)(),k=(0,s.default)(M,2),j=k[0],D=k[1],x=(0,u.useState)(null),R=(0,s.default)(x,2),A=R[0],L=R[1],I=(0,u.useRef)(r),T=(0,u.useRef)(g),N=(0,d.useStripe)(),B=(0,y.usePaymentEvents)({billing:r,shippingData:g,eventRegistration:h}).addPaymentEvent;(0,u.useEffect)((function(){I.current=r,T.current=g}));var F=(0,u.useCallback)((function(e){var t,n;if(null!=e&&null!==(t=e.paymentMethodData)&&void 0!==t&&null!==(n=t.info)&&void 0!==n&&n.billingAddress){var r,a=e.paymentMethodData.info.billingAddress;(0,p.isAddressValid)(I.current.billingData,["phone","email"])&&(0,p.isEmpty)(null===(r=I.current.billingData)||void 0===r?void 0:r.phone)&&(a={phoneNumber:a.phoneNumber}),O.billingData=I.current.billingData=(0,f.toCartAddress)(a,{email:e.email})}null!=e&&e.shippingAddress&&(O.shippingAddress=(0,f.toCartAddress)(e.shippingAddress))}),[O,n]),q=(0,u.useCallback)((function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}),[A]),X=(0,u.useCallback)((0,c.default)(i.default.mark((function e(){var t,r,a;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return S(),e.prev=1,e.next=4,j.loadPaymentData(n);case 4:return t=e.sent,F(t),r=JSON.parse(t.paymentMethodData.tokenizationData.token),e.next=9,N.createPaymentMethod({type:"card",card:{token:r.id},billing_details:(0,p.getBillingDetailsFromAddress)(I.current.billingData)});case 9:if(!(a=e.sent).error){e.next=12;break}throw new p.StripeError(a.error);case 12:E(a.paymentMethod.id),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(1),"CANCELED"===(null===e.t0||void 0===e.t0?void 0:e.t0.statusCode)?w():(console.log((0,p.getErrorMessage)(e.t0)),P((0,p.getErrorMessage)(e.t0)));case 18:case"end":return e.stop()}}),e,null,[[1,15]])}))),[N,j,S]),V=(0,u.useCallback)((0,c.default)(i.default.mark((function e(){return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,!j||A||!N){e.next=5;break}return e.next=4,b;case 4:L(j.createButton(v({onClick:X},_("buttonStyle"))));case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log(e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])}))),[N,A,j,X]),U=(0,u.useMemo)((function(){var e={environment:C,merchantInfo:t,paymentDataCallbacks:{onPaymentAuthorized:function(){return Promise.resolve({transactionState:"SUCCESS"})}}};return n.shippingAddressRequired&&(e.paymentDataCallbacks.onPaymentDataChanged=function(e){return new Promise((function(t,n){var r,i=T.current,c=e.shippingAddress,s=e.shippingOptionData,u=(0,f.toCartAddress)(c),d=(0,p.getSelectedShippingOption)(s.id),y=(0,l.default)((0,p.getIntermediateAddress)(i.shippingAddress),u),g=(0,l.default)(i.selectedRates,(0,o.default)({},d[1],d[0]));B("onShippingChanged",(function(e,n){var r=n.billing,a=n.shipping;t(e?(0,f.getPaymentRequestUpdate)({billing:r,shippingData:{needsShipping:!0,shippingRates:a.shippingRates},processingCountry:_("processingCountry"),totalPriceLabel:_("totalPriceLabel")}):{error:{reason:"SHIPPING_ADDRESS_UNSERVICEABLE",message:(0,m.__)("Your shipping address is not serviceable.","woo-stripe-payment"),intent:"SHIPPING_ADDRESS"}})}),y&&g),T.current.setShippingAddress(v(v({},T.current.shippingAddress),u)),"shipping_option_unselected"!==s.id&&(r=T.current).setSelectedRates.apply(r,(0,a.default)(d))}))}),e}),[n]);return(0,u.useEffect)((function(){D(new google.payments.api.PaymentsClient(U))}),[U]),(0,u.useEffect)((function(){V()}),[V]),{button:A,removeButton:q}}},5341:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),n(9509);var r=n(9031);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}))},9031:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(7154)),i=a(n(6479)),c=a(n(9713)),s=n(4222),u=n(1134),l=n(5516),p=a(n(5212)),d=n(3097),f=a(n(3905)),m=n(6664);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,c.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var v,h,b=(0,u.getSettings)("stripe_googlepay_data"),P=(v=new f.default.payments.api.PaymentsClient({environment:b("environment"),merchantInfo:{merchantId:b("merchantId"),merchantName:b("merchantName")}}),h=g(g({},d.BASE_PAYMENT_REQUEST),{},{allowedPaymentMethods:[d.BASE_PAYMENT_METHOD]}),v.isReadyToPay(h).then((function(){return!0})).catch((function(e){return console.log(e),!1}))),E=function(e){var t=e.getData,n=e.components,a=(0,i.default)(e,["getData","components"]),c=n.ValidationInputError,s=(0,l.useErrorMessage)(),d=s.errorMessage,f=s.setErrorMessage;return r.createElement("div",{className:"wc-stripe-gpay-container"},r.createElement(m.Elements,{stripe:u.initStripe},r.createElement(p.default,(0,o.default)({getData:t,canMakePayment:P,setErrorMessage:f},a)),d&&r.createElement(c,{errorMessage:d})))},O=function(e){var t,n=e.getData,a=((0,i.default)(e,["getData"]),n("buttonStyle").buttonType),o=(null===(t=n("editorIcons"))||void 0===t?void 0:t[a])||"long";return r.createElement("div",{className:"gpay-block-editor ".concat(a)},r.createElement("img",{src:o}))};(0,s.registerExpressPaymentMethod)({name:b("name"),canMakePayment:function(){return b("isAdmin")?!(0,u.isCartPage)()||b("cartCheckoutEnabled"):!((0,u.isCartPage)()&&!b("cartCheckoutEnabled"))&&u.initStripe.then((function(e){return e.error?e:P}))},content:r.createElement(E,{getData:b}),edit:r.createElement(O,{getData:b}),supports:{showSavedCards:b("showSavedCards"),showSaveOption:b("showSaveOption"),features:b("features")}})},8664:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.toCartAddress=t.getShippingOptions=t.getShippingOptionParameters=t.getPaymentRequestUpdate=t.getTransactionInfo=void 0;var a=r(n(319)),o=n(1134),i=((0,n(2492).getSetting)("stripeGeneralData"),function(e){var t=e.billing,n=e.processingCountry,r=e.totalPriceLabel,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ESTIMATED",i=t.cartTotal,s=t.cartTotalItems,u=t.currency,l={countryCode:n,currencyCode:u.code,totalPriceStatus:a,totalPrice:(0,o.removeNumberPrecision)(i.value,u.minorUnit).toString(),displayItems:c(s,u.minorUnit),totalPriceLabel:r};return l});t.getTransactionInfo=i,t.getPaymentRequestUpdate=function(e){var t=e.billing,n=e.shippingData,r=e.processingCountry,a=e.totalPriceLabel,o=n.needsShipping,c=n.shippingRates,u={newTransactionInfo:i({billing:t,processingCountry:r,totalPriceLabel:a},"FINAL")};return o&&(u.newShippingOptionParameters=s(c)),u};var c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=[],r=["total_tax","total_shipping"];return e.forEach((function(e){(0<e.value||e.key&&r.includes(e.key))&&n.push({label:e.label,type:"LINE_ITEM",price:(0,o.removeNumberPrecision)(e.value,t).toString()})})),n},s=function(e){var t=u(e),n=t.map((function(e){return e.id})).slice(0,1).shift();return e.forEach((function(e,t){e.shipping_rates.forEach((function(e){e.selected&&(n=(0,o.getShippingOptionId)(t,e.rate_id))}))})),{shippingOptions:t,defaultSelectedOptionId:n}};t.getShippingOptionParameters=s;var u=function(e){var t=[];return e.forEach((function(e,n){var r=e.shipping_rates.map((function(e){var t=document.createElement("textarea");t.innerHTML=e.name;var r=(0,o.formatPrice)(e.price,e.currency_code);return{id:(0,o.getShippingOptionId)(n,e.rate_id),label:t.value,description:"".concat(r)}}));t=[].concat((0,a.default)(t),(0,a.default)(r))})),t};t.getShippingOptions=u;var l=(0,o.toCartAddress)({name:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},countryCode:"country",address1:"address_1",address2:"address_2",locality:"city",administrativeArea:"state",postalCode:"postcode",email:"email",phoneNumber:"phone"});t.toCartAddress=l},3636:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(4332);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(1261);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(6107);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}));var i=n(2715);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}));var c=n(2343);Object.keys(c).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===c[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return c[e]}}))}));var s=n(1500);Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===s[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}}))}));var u=n(6095);Object.keys(u).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===u[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}}))}));var l=n(5554);Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===l[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}}))}));var p=n(3893);Object.keys(p).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===p[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return p[e]}}))}))},1261:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useAfterProcessingPayment=void 0;var a=r(n(7015)),o=r(n(8926)),i=n(3027),c=n(6664),s=n(1134),u=n(3893);t.useAfterProcessingPayment=function(e){var t=e.getData,n=e.eventRegistration,r=e.responseTypes,l=e.activePaymentMethod,p=e.savePaymentMethod,d=void 0!==p&&p,f=e.messageContext,m=void 0===f?null:f,y=(0,c.useStripe)(),g=n.onCheckoutAfterProcessingWithSuccess,v=n.onCheckoutAfterProcessingWithError;(0,u.useProcessCheckoutError)({responseTypes:r,subscriber:v,messageContext:m}),(0,i.useEffect)((function(){var e=g(function(){var e=(0,o.default)(a.default.mark((function e(n){var o;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.redirectUrl,t("name")!==l){e.next=5;break}return e.next=4,(0,s.handleCardAction)({redirectUrl:o,responseTypes:r,stripe:y,getData:t,savePaymentMethod:d});case 4:return e.abrupt("return",e.sent);case 5:return e.abrupt("return",null);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[y,r,g,l,d])}},5554:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useExpressBreakpointWidth=t.useBreakpointWidth=void 0;var a=r(n(3038)),o=n(3027),i=n(1134),c=function(e){var t=e.name,n=e.width,r=e.node,c=e.className,s=(0,o.useState)(window.innerWidth),u=(0,a.default)(s,2),l=u[0],p=u[1],d=(0,o.useCallback)((function(e){var t=(0,i.getFromCache)(e);return t?parseInt(t):0}),[]),f=(0,o.useCallback)((function(e,t){return(0,i.storeInCache)(e,t)}),[]);(0,o.useEffect)((function(){var e="function"==typeof r?r():r;if(e){var a=d(t);(!a||n>a)&&f(t,n),e.clientWidth<n?e.classList.add(c):e.clientWidth>a&&e.classList.remove(c)}}),[l,r]),(0,o.useEffect)((function(){var e=function(){return p(window.innerWidth)};return window.addEventListener("resize",e),function(){return window.removeEventListener("resize",e)}}))};t.useBreakpointWidth=c,t.useExpressBreakpointWidth=function(e){var t=e.payment_method,n=e.width,r=(0,o.useCallback)((function(){var e=document.getElementById("express-payment-method-".concat(t));return e?e.parentNode:null}),[]);c({name:"expressMaxWidth",width:n,node:r,className:"wc-stripe-express__sm"})}},2343:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useExportedValues=void 0;var r=n(3027);t.useExportedValues=function(){return(0,r.useRef)({}).current}},6095:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentEvents=void 0;var a=r(n(9713)),o=r(n(3038)),i=n(3027),c=n(1134);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){(0,a.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentEvents=function(e){var t=e.billing,n=e.shippingData,r=e.eventRegistration,s=r.onShippingRateSuccess,l=r.onShippingRateFail,p=r.onShippingRateSelectSuccess,d=(0,i.useRef)(t),f=(0,i.useRef)(n),m=(0,i.useState)(null),y=(0,o.default)(m,2),g=y[0],v=y[1],h=(0,i.useState)({onShippingChanged:!1}),b=(0,o.default)(h,2),P=b[0],E=b[1],O=(0,i.useCallback)((function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];n?v((0,a.default)({},e,t)):E(u(u({},P),{},(0,a.default)({},e,t)))}),[P,E]),S=(0,i.useCallback)((function(e){P[e]&&(delete P[e],E(P))}),[P]),w=(0,i.useCallback)((function(){var e=f.current,t=d.current;if(P.onShippingChanged&&!e.isSelectingRate&&!e.shippingRatesLoading){var n=P.onShippingChanged,r=!0;(0,c.hasShippingRates)(e.shippingRates)||(r=!1),n(r,{billing:t,shipping:e}),S("onShippingChanged")}}),[P,S]);return(0,i.useEffect)((function(){d.current=t,f.current=n})),(0,i.useEffect)((function(){g&&g.onShippingChanged&&(g.onShippingChanged(!0,{billing:d.current,shipping:f.current}),v(null))}),[g]),(0,i.useEffect)((function(){var e=s(w),t=p(w),n=l((function(e){e.hasInvalidAddress,e.hasError,P.onShippingChanged&&((0,P.onShippingChanged)(!1),S("onShippingChanged"))}));return function(){e(),n(),t()}}),[P,s,l,p]),{addPaymentEvent:O,removePaymentEvent:S}}},1500:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentRequest=void 0;var a=r(n(319)),o=r(n(9713)),i=r(n(3038)),c=n(3027),s=n(6095),u=n(1134),l=r(n(4306));function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f=(0,u.toCartAddress)();t.usePaymentRequest=function(e){var t=e.getData,n=e.onClose,r=e.stripe,o=e.billing,p=e.shippingData,m=e.eventRegistration,y=e.setPaymentMethod,g=e.exportedValues,v=e.canPay,h=(0,s.usePaymentEvents)({billing:o,shippingData:p,eventRegistration:m}).addPaymentEvent,b=(p.shippingAddress,p.needsShipping),P=p.shippingRates,E=o.billingData,O=o.cartTotalItems,S=o.currency,w=o.cartTotal,_=(0,c.useState)(null),C=(0,i.default)(_,2),M=C[0],k=C[1],j=(0,c.useRef)({}),D=(0,c.useRef)(p),x=(0,c.useRef)(o);(0,c.useEffect)((function(){D.current=p,x.current=o}),[p]),(0,c.useEffect)((function(){if(r){var e={country:t("countryCode"),currency:null==S?void 0:S.code.toLowerCase(),total:{amount:w.value,label:w.label,pending:!0},requestPayerName:!0,requestPayerEmail:(0,u.isFieldRequired)("email",E.country),requestPayerPhone:(0,u.isFieldRequired)("phone",E.country),requestShipping:b,displayItems:(0,u.getDisplayItems)(O,S)};e.requestShipping&&(e.shippingOptions=(0,u.getShippingOptions)(P)),j.current=e;var n=r.paymentRequest(j.current);n.canMakePayment().then((function(e){v(e)?k(n):k(null)}))}}),[r,w.value,E.country,P,O,S.code]),(0,c.useEffect)((function(){M&&(j.current.requestShipping&&(M.on("shippingaddresschange",A),M.on("shippingoptionchange",L)),M.on("cancel",n),M.on("paymentmethod",I))}),[M,A,n,I]);var R=(0,c.useCallback)((function(e){return function(t,n){var r=n.billing,a=n.shipping,o=r.cartTotal,i=r.cartTotalItems,c=r.currency,s=a.shippingRates;t?e.updateWith({status:"success",total:{amount:o.value,label:o.label,pending:!1},displayItems:(0,u.getDisplayItems)(i,c),shippingOptions:(0,u.getShippingOptions)(s)}):e.updateWith({status:"invalid_shipping_address"})}}),[]),A=(0,c.useCallback)((function(e){var t=e.shippingAddress,n=D.current,r=f(t);n.setShippingAddress(d(d({},n.shippingAddress),r));var a=(0,l.default)((0,u.getIntermediateAddress)(n.shippingAddress),r);h("onShippingChanged",R(e),a)}),[h]),L=(0,c.useCallback)((function(e){var t=e.shippingOption,n=D.current;n.setSelectedRates.apply(n,(0,a.default)((0,u.getSelectedShippingOption)(t.id))),h("onShippingChanged",R(e))}),[h]),I=(0,c.useCallback)((function(e){var t=e.paymentMethod,n=e.payerName,r=void 0===n?null:n,a=e.payerEmail,o=void 0===a?null:a,i=e.payerPhone,c={payerName:r,payerEmail:o,payerPhone:void 0===i?null:i};null!=t&&t.billing_details.address&&(c=f(t.billing_details.address,c)),g.billingData=c,e.shippingAddress&&(g.shippingAddress=f(e.shippingAddress)),y(t.id),e.complete("success")}),[]);return{paymentRequest:M}}},3893:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessCheckoutError=void 0;var r=n(3027);t.useProcessCheckoutError=function(e){var t=e.responseTypes,n=e.subscriber,a=e.messageContext,o=void 0===a?null:a;(0,r.useEffect)((function(){var e=n((function(e){var n;return null!=e&&null!==(n=e.processingResponse.paymentDetails)&&void 0!==n&&n.stripeErrorMessage?{type:t.ERROR,message:e.processingResponse.paymentDetails.stripeErrorMessage,messageContext:o}:null}));return function(){return e()}}),[t,n])}},4332:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessPaymentIntent=void 0;var a=r(n(7015)),o=r(n(8926)),i=r(n(9713)),c=r(n(3038)),s=n(3027),u=n(6664),l=n(1134);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useProcessPaymentIntent=function(e){var t=e.getData,n=e.billing,r=e.shippingData,p=e.onPaymentProcessing,f=e.emitResponse,m=e.error,y=e.onSubmit,g=e.activePaymentMethod,v=e.paymentType,h=void 0===v?"card":v,b=e.setupIntent,P=void 0===b?null:b,E=e.removeSetupIntent,O=void 0===E?null:E,S=e.savePaymentMethod,w=void 0!==S&&S,_=e.exportedValues,C=void 0===_?{}:_,M=e.getPaymentMethodArgs,k=void 0===M?function(){return{}}:M,j=n.billingData,D=r.shippingAddress,x=f.responseTypes,R=(0,s.useState)(null),A=(0,c.default)(R,2),L=A[0],I=A[1],T=(0,u.useStripe)(),N=(0,s.useRef)(k);(0,s.useEffect)((function(){N.current=k}),[k]);var B=(0,s.useCallback)((function(){return d(d({},{type:h,billing_details:(0,l.getBillingDetailsFromAddress)(null!=C&&C.billingData?C.billingData:j)}),N.current())}),[j,h,k]),F=(0,s.useCallback)((function(e,n){var r,a={meta:{paymentMethodData:(r={},(0,i.default)(r,"".concat(t("name"),"_token_key"),e),(0,i.default)(r,"".concat(t("name"),"_save_source_key"),n),r)}};return null!=C&&C.billingData&&(a.meta.billingData=C.billingData),null!=C&&C.shippingAddress&&(a.meta.shippingData={address:C.shippingAddress}),a}),[j,D]);return(0,s.useEffect)((function(){L&&"string"==typeof L&&y()}),[L,y]),(0,s.useEffect)((function(){var e=p((0,o.default)(a.default.mark((function e(){var n,r;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(g===t("name")){e.next=2;break}return e.abrupt("return",null);case 2:if(n=null,r=null,e.prev=3,!m){e.next=6;break}throw new l.StripeError(m);case 6:if(!P){e.next=16;break}return e.next=9,T.confirmCardSetup(P.client_secret,{payment_method:B()});case 9:if(!(n=e.sent).error){e.next=12;break}throw new l.StripeError(n.error);case 12:r=n.setupIntent.payment_method,O(),e.next=26;break;case 16:if(!L){e.next=20;break}r=L,e.next=26;break;case 20:return e.next=22,T.createPaymentMethod(B());case 22:if(!(n=e.sent).error){e.next=25;break}throw new l.StripeError(n.error);case 25:r=n.paymentMethod.id;case 26:return e.abrupt("return",(0,l.ensureSuccessResponse)(x,F(r,w)));case 29:return e.prev=29,e.t0=e.catch(3),console.log(e.t0),I(null),e.abrupt("return",(0,l.ensureErrorResponse)(x,e.t0.error));case 34:case"end":return e.stop()}}),e,null,[[3,29]])}))));return function(){return e()}}),[L,j,p,T,P,g,w]),{setPaymentMethod:I}}},6107:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useSetupIntent=void 0;var a=r(n(7015)),o=r(n(8926)),i=r(n(3038)),c=n(3027),s=r(n(7606)),u=n(1134);t.useSetupIntent=function(e){var t=e.cartTotal,n=e.setError,r=(0,c.useState)((0,u.getFromCache)("setupIntent")),l=(0,i.default)(r,2),p=l[0],d=l[1];(0,c.useEffect)((function(){var e=function(){var e=(0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!p){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,(0,s.default)({url:(0,u.getRoute)("create/setup_intent"),method:"POST"});case 4:(t=e.sent).code?n(t.message):((0,u.storeInCache)("setupIntent",t.intent),d(t.intent));case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();(0,u.cartContainsPreOrder)()||(0,u.cartContainsSubscription)()&&0==t.value?p||e():d(null)}),[t.value]);var f=(0,c.useCallback)((function(){(0,u.deleteFromCache)("setupIntent")}),[t.value]);return{setupIntent:p,removeSetupIntent:f}}},2715:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useStripeError=void 0;var a=r(n(3038)),o=n(3027);t.useStripeError=function(){var e=(0,o.useState)(!1),t=(0,a.default)(e,2);return[t[0],t[1]]}},6480:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(6479)),i=a(n(9713)),c=a(n(3038)),s=n(3027),u=n(4222),l=n(1134),p=n(3539),d=n(3187),f=n(6664),m=n(3163);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var v,h=(0,l.getSettings)("stripe_afterpay_data"),b=function(e){var t=e.getData,n=(0,s.useState)({amount:t("cartTotal"),currency:t("currency"),isEligible:t("msgOptions").isEligible}),a=(0,c.default)(n,2),o=a[0],i=a[1];return v=i,r.createElement(f.Elements,{stripe:l.initStripe,options:t("elementOptions")},r.createElement("div",{className:"wc-stripe-blocks-afterpay__label"},r.createElement(f.AfterpayClearpayMessageElement,{options:g(g({},t("msgOptions")),{amount:o.amount,currency:o.currency,isEligible:o.isEligible})})))},P=function(e){var t=e.content,n=e.billing,a=e.shippingData,i=(0,o.default)(e,["content","billing","shippingData"]),c=t,u=n.cartTotal,l=n.currency,p=a.needsShipping;return(0,s.useEffect)((function(){v({amount:u.value,currency:l.code,isEligible:p})}),[u.value,l.code,p]),r.createElement(r.Fragment,null,p&&r.createElement("div",{className:"wc-stripe-blocks-payment-method-content"},r.createElement("div",{className:"wc-stripe-blocks-afterpay-offsite__container"},r.createElement("div",{className:"wc-stripe-blocks-afterpay__offsite"},r.createElement("img",{src:h("offSiteSrc")}),r.createElement("p",null,(0,m.sprintf)((0,m.__)('After clicking "%s", you will be redirected to Afterpay to complete your purchase securely.',"woo-stripe-payment"),h("placeOrderButtonLabel"))))),r.createElement(c,g(g({},i),{},{billing:n,shippingData:a}))))};h()&&(0,u.registerPaymentMethod)({name:h("name"),label:r.createElement(b,{getData:h}),ariaLabel:(0,m.__)("Afterpay","woo-stripe-payment"),placeOrderButtonLabel:h("placeOrderButtonLabel"),canMakePayment:(0,p.canMakePayment)(h,(function(e){var t=e.settings,n=e.cartTotals,r=e.cartNeedsShipping,a=n.currency_code,o=n.currency_minor_unit,i=n.total_price,c=t("requiredParams"),s=t("accountCountry"),u=!!c[a]&&c[a];v&&v({amount:parseInt(n.total_price),currency:a,isEligible:r});var l=parseInt(i)/Math.pow(10,o),p=s===(null==u?void 0:u[0])&&r&&l>(null==u?void 0:u[1])&&l<(null==u?void 0:u[2]);return!p&&!t("hideIneligible")||p})),content:r.createElement(P,{content:p.LocalPaymentIntentContent,getData:h,confirmationMethod:"confirmAfterpayClearpayPayment"}),edit:r.createElement(d.PaymentMethod,{content:p.LocalPaymentIntentContent,getData:h}),supports:{showSavedCards:!1,showSaveOption:!1,features:h("features")}})},39:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(2029),s=n(3187),u=(0,o.getSettings)("stripe_alipay_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Alipay",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:u}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},8641:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(0,o.getSettings)("stripe_bancontact_data");s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"Bancontact",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:s}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},5176:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=n(6664),u=(0,o.getSettings)("stripe_becs_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"BECS",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmAuBecsDebitPayment",component:s.AuBankAccountElement}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},4990:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(7154)),i=a(n(9713)),c=a(n(3038)),s=a(n(6479)),u=n(3027),l=n(3163),p=n(4222),d=a(n(4184)),f=n(1134),m=n(3539),y=n(3187);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h=(0,f.getSettings)("stripe_boleto_data");h()&&(0,p.registerPaymentMethod)({name:h("name"),label:r.createElement(y.PaymentMethodLabel,{title:h("title"),paymentMethod:h("name"),icons:h("icon")}),ariaLabel:"Boleto",placeOrderButtonLabel:h("placeOrderButtonLabel"),canMakePayment:(0,m.canMakePayment)(h),content:r.createElement(y.PaymentMethod,{content:function(e){var t=e.eventRegistration,n=(0,s.default)(e,["eventRegistration"]),a=(0,u.useState)(""),i=(0,c.default)(a,2),p=i[0],y=i[1],g=(0,u.useState)(!1),h=(0,c.default)(g,2),b=h[0],P=h[1],E=t.onPaymentProcessing,O=(0,u.useCallback)((function(){return{boleto:{tax_id:p}}}),[p]);return(0,u.useEffect)((function(){var e=E((function(){return!!p||(0,f.ensureErrorResponse)(n.emitResponse.responseTypes,(0,l.__)("Please enter a valid CPF/CNPJ value","woo-stripe-payment"))}));return function(){return e()}}),[E,p]),r.createElement(r.Fragment,null,r.createElement("div",{className:(0,d.default)("wc-block-components-text-input",{"is-active":b||p})},r.createElement("input",{type:"text",id:"wc-stripe-boleto-tax_id",onChange:function(e){return y(e.target.value)},onFocus:function(){return P(!0)},onBlur:function(){return P(!1)}}),r.createElement("label",{htmlFor:"wc-stripe-boleto-tax_id"},(0,l.__)(" CPF / CNPJ"," woo-stripe-payment"))),(0,f.isTestMode)()&&r.createElement("div",{className:"wc-stripe-boleto__description"},r.createElement("p",null,(0,l.__)("Test mode values","woo-stripe-payment")),r.createElement("div",null,r.createElement("label",null,"CPF:")," ",r.createElement("span",null,"000.000.000-00")),r.createElement("div",null,r.createElement("label",null,"CNPJ:")," ",r.createElement("span",null,"00.000.000/0000-00"))),!(0,f.isTestMode)()&&r.createElement("div",{className:"wc-stripe-boleto__description"},r.createElement("p",null,(0,l.__)("Accepted formats","woo-stripe-payment")),r.createElement("div",null,r.createElement("label",null,"CPF:")," ",r.createElement("span",null,(0,l.__)("XXX.XXX.XXX-XX or XXXXXXXXXXX","woo-stripe-payment"))),r.createElement("div",null,r.createElement("label",null,"CNPJ:")," ",r.createElement("span",null,(0,l.__)("XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX","woo-stripe-payment")))),r.createElement(m.LocalPaymentIntentContent,(0,o.default)({callback:O},v(v({},n),{eventRegistration:t}))))},getData:h,confirmationMethod:"confirmBoletoPayment"}),edit:r.createElement(y.PaymentMethod,{content:m.LocalPaymentIntentContent,getData:h}),supports:{showSavedCards:!1,showSaveOption:!1,features:h("features")}})},4494:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(0,o.getSettings)("stripe_eps_data");s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"EPS",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:s}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},4031:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=n(6664),u=(0,o.getSettings)("stripe_fpx_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"FPX",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmIdealPayment",component:s.FpxBankElement}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},3817:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(0,o.getSettings)("stripe_giropay_data");s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"Giropay",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:s}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},3140:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(0,o.getSettings)("stripe_grabpay_data");s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"GrabPay",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:s,confirmationMethod:"confirmGrabPayPayment"}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},8522:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(3160);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(3994);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(878);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},3160:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useAfterProcessLocalPayment=void 0;var a=r(n(7015)),o=r(n(9713)),i=r(n(6479)),c=r(n(8926)),s=n(3027),u=n(6664),l=n(1134);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useAfterProcessLocalPayment=function(e){var t=e.getData,n=e.billingData,r=e.eventRegistration,o=e.responseTypes,p=e.activePaymentMethod,f=e.confirmationMethod,m=e.getPaymentMethodArgs,y=void 0===m?function(){return{}}:m,g=(0,u.useStripe)(),v=r.onCheckoutAfterProcessingWithSuccess,h=r.onCheckoutAfterProcessingWithError,b=(0,s.useRef)(n),P=(0,s.useRef)(y);(0,s.useEffect)((function(){b.current=n}),[n]),(0,s.useEffect)((function(){P.current=y}),[y]),(0,s.useEffect)((function(){var e=v(function(){var e=(0,c.default)(a.default.mark((function e(n){var r,c,s,u,m,y,v;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.redirectUrl,t("name")!==p){e.next=18;break}if(e.prev=2,!(c=r.match(/#response=(.+)/))){e.next=12;break}return s=JSON.parse(window.atob(decodeURIComponent(c[1]))),u=s.client_secret,m=s.return_url,y=(0,i.default)(s,["client_secret","return_url"]),e.next=8,g[f](u,{payment_method:d({billing_details:(0,l.getBillingDetailsFromAddress)(b.current)},P.current()),return_url:m});case 8:if(!(v=e.sent).error){e.next=11;break}throw new l.StripeError(v.error);case 11:window.location=decodeURI(y.order_received_url);case 12:e.next=18;break;case 14:return e.prev=14,e.t0=e.catch(2),console.log(e.t0),e.abrupt("return",(0,l.ensureErrorResponse)(o,e.t0.error));case 18:case"end":return e.stop()}}),e,null,[[2,14]])})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[g,v,h])}},878:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useCreateSource=void 0;var a=r(n(7015)),o=r(n(8926)),i=r(n(9713)),c=r(n(3038)),s=n(3027),u=n(1134),l=n(6664),p=n(3163);t.useCreateSource=function(e){var t=e.getData,n=e.billing,r=e.shippingAddress,d=e.onPaymentProcessing,f=e.responseTypes,m=e.getSourceArgs,y=void 0!==m&&m,g=e.element,v=void 0!==g&&g,h=(0,s.useState)(!1),b=(0,c.default)(h,2),P=b[0],E=b[1],O=(0,s.useState)(!1),S=(0,c.default)(O,2),w=S[0],_=S[1],C=(0,s.useRef)({billing:n,shippingAddress:r}),M=(0,l.useStripe)(),k=(0,l.useElements)();(0,s.useEffect)((function(){C.current={billing:n,shippingAddress:r}}));var j=(0,s.useCallback)((function(){var e=C.current.billing,n=e.cartTotal,r=e.currency,a=e.billingData,o=(0,u.getDefaultSourceArgs)({type:t("paymentType"),amount:n.value,billingData:a,currency:r.code,returnUrl:t("returnUrl")});return y&&(o=y(o,{billingData:a})),o}),[]),D=(0,s.useCallback)((function(e){return{meta:{paymentMethodData:(0,i.default)({},"".concat(t("name"),"_token_key"),e)}}}),[]);return(0,s.useEffect)((function(){var e=d((0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!P){e.next=2;break}return e.abrupt("return",(0,u.ensureSuccessResponse)(f,D(P.id)));case 2:if(e.prev=2,!v){e.next=11;break}if(w){e.next=6;break}throw(0,p.__)("Please enter your payment info before proceeding.","woo-stripe-payment");case 6:return e.next=8,M.createSource(k.getElement(v),j());case 8:t=e.sent,e.next=14;break;case 11:return e.next=13,M.createSource(j());case 13:t=e.sent;case 14:if(!t.error){e.next=16;break}throw new u.StripeError(t.error);case 16:return E(t.source),e.abrupt("return",(0,u.ensureSuccessResponse)(f,D(t.source.id)));case 20:return e.prev=20,e.t0=e.catch(2),console.log(e.t0),e.abrupt("return",(0,u.ensureErrorResponse)(f,e.t0.error||e.t0));case 24:case"end":return e.stop()}}),e,null,[[2,20]])}))));return function(){return e()}}),[P,d,M,f,v,w,_]),{setIsValid:_}}},3994:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useValidateCheckout=void 0;var a=r(n(3038)),o=n(3027),i=n(1134),c=n(3163);t.useValidateCheckout=function(e){var t=e.subscriber,n=e.responseTypes,r=e.component,s=void 0===r?null:r,u=e.msg,l=void 0===u?(0,c.__)("Please enter your payment info before proceeding.","woo-stripe-payment"):u,p=(0,o.useState)(!1),d=(0,a.default)(p,2),f=d[0],m=d[1];return(0,o.useEffect)((function(){var e=t((function(){return!(s&&!f)||(0,i.ensureErrorResponse)(n,l)}));return function(){return e()}}),[t,f,m,n,s]),{isValid:f,setIsValid:m}}},9474:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=n(6664),u=(0,o.getSettings)("stripe_ideal_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Ideal",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmIdealPayment",component:s.IdealBankElement}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},9738:(e,t,n)=>{n(5142),n(9474),n(3868),n(8641),n(3817),n(4494),n(4784),n(1192),n(7894),n(3766),n(4031),n(5176),n(3140),n(39),n(6480),n(4990),n(5748)},5142:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=n(3163),u=(0,o.getSettings)("stripe_klarna_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Klarna",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u,(function(e){var t=e.settings,n=e.billingData,r=e.cartTotals,a=n.country,o=r.currency_code,i=t("requiredParams");return[o]in i&&i[o].includes(a)})),content:r.createElement(c.PaymentMethod,{content:function(e){return r.createElement(r.Fragment,null,(0,o.isTestMode)()&&r.createElement("div",{className:"wc-stripe-klarna__testmode"},r.createElement("label",null,(0,s.__)("Test mode sms","woo-stripe-payment"),":")," ",r.createElement("span",null,"123456")),r.createElement(i.LocalPaymentIntentContent,e))},getData:u,confirmationMethod:"confirmKlarnaPayment"}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},3539:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.LocalPaymentSourceContent=t.LocalPaymentIntentContent=t.canMakePayment=void 0;var o=a(n(7154)),i=a(n(9713)),c=a(n(6479)),s=n(3027),u=n(6664),l=n(1134),p=n(8522),d=n(3636);function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.canMakePayment=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(n){var r=n.billingData,a=n.cartTotals,o=(0,c.default)(n,["billingData","cartTotals"]),i=a.currency_code,s=r.country,u=e("countries"),p=e("allowedCountries"),d=e("features"),f=!1;if(e("isAdmin"))f=!0;else{if((0,l.cartContainsSubscription)()&&!d.includes("subscriptions"))return!1;if((0,l.cartContainsPreOrder)()&&!d.includes("pre-orders"))return!1;e("currencies").includes(i)&&(f="all_except"===p?!e("exceptCountries").includes(s):"specific"===p?e("specificCountries").includes(s):!(u.length>0)||u.includes(s)),t&&f&&(f=t(m({settings:e,billingData:r,cartTotals:a},o)))}return f}},t.LocalPaymentIntentContent=function(e){var t=e.getData,n=(0,c.default)(e,["getData"]);return r.createElement(u.Elements,{stripe:l.initStripe,options:t("elementOptions")},r.createElement(g,m(m({},n),{},{getData:t})))},t.LocalPaymentSourceContent=function(e){return r.createElement(u.Elements,{stripe:l.initStripe},r.createElement(y,e))};var y=function(e){var t=e.getData,n=e.billing,a=e.shippingData,o=e.emitResponse,i=e.eventRegistration,c=e.getSourceArgs,s=void 0!==c&&c,u=e.element,l=void 0!==u&&u,d=a.shippingAddress,f=i.onPaymentProcessing,m=(i.onCheckoutAfterProcessingWithError,o.responseTypes),y=(o.noticeContexts,(0,p.useCreateSource)({getData:t,billing:n,shippingAddress:d,onPaymentProcessing:f,responseTypes:m,getSourceArgs:s,element:l}).setIsValid);return l?r.createElement(v,{name:t("name"),options:t("paymentElementOptions"),onChange:function(e){y(e.complete)},element:l}):null},g=function(e){var t=e.getData,n=e.billing,a=e.emitResponse,o=e.eventRegistration,c=e.activePaymentMethod,l=e.confirmationMethod,f=void 0===l?null:l,m=e.component,y=void 0===m?null:m,g=e.callback,h=void 0===g?null:g,b=(0,u.useElements)(),P=n.billingData,E=o.onPaymentProcessing,O=o.onCheckoutAfterProcessingWithError,S=a.responseTypes,w=a.noticeContexts,_=(0,s.useCallback)((function(){return y?(0,i.default)({},t("paymentType"),b.getElement(y)):h?h():{}}),[b,h]),C=(0,p.useValidateCheckout)({subscriber:E,responseTypes:S,component:y}).setIsValid;return(0,p.useAfterProcessLocalPayment)({getData:t,billingData:P,eventRegistration:o,responseTypes:S,activePaymentMethod:c,confirmationMethod:f,getPaymentMethodArgs:_}),(0,d.useProcessCheckoutError)({responseTypes:S,subscriber:O,messageContext:w.PAYMENT}),y?r.createElement(v,{name:t("name"),options:t("paymentElementOptions"),onChange:function(e){return C(!e.empty)},element:y,callback:h}):null},v=function(e){var t=e.name,n=e.onChange,a=e.element,i=e.options,s=(0,c.default)(e,["name","onChange","element","options"]),u=a;return r.createElement("div",{className:"wc-stripe-local-payment-container ".concat(t," ").concat(u.displayName)},r.createElement(u,(0,o.default)({options:i,onChange:n},s)))}},4784:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(0,o.getSettings)("stripe_multibanco_data");s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"MultiBanco",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:s}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},5748:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(n(6664),(0,o.getSettings)("stripe_oxxo_data"));s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"OXXO",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:s,confirmationMethod:"confirmOxxoPayment"}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},3868:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=n(6664),u=(0,o.getSettings)("stripe_p24_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"P24",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmP24Payment",component:s.P24BankElement}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},1192:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(9713)),i=a(n(6479)),c=n(4222),s=n(1134),u=n(3539),l=n(3187),p=n(6664);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m,y=(0,s.getSettings)("stripe_sepa_data"),g=(m=l.PaymentMethod,function(e){var t=e.getData,n=(0,i.default)(e,["getData"]);return r.createElement(r.Fragment,null,r.createElement(m,f(f({},n),{},{getData:t})),r.createElement("div",{className:"wc-stripe-blocks-sepa__mandate"},t("mandate")))});y()&&(0,c.registerPaymentMethod)({name:y("name"),label:r.createElement(l.PaymentMethodLabel,{title:y("title"),paymentMethod:y("name"),icons:y("icon")}),ariaLabel:"SEPA",placeOrderButtonLabel:y("placeOrderButtonLabel"),canMakePayment:(0,u.canMakePayment)(y),content:r.createElement(g,{content:u.LocalPaymentSourceContent,getData:y,element:p.IbanElement,getSourceArgs:function(e,t){var n=t.billingData;return e.mandate={notification_method:n.email?"email":"manual",interval:(0,s.cartContainsSubscription)()||(0,s.cartContainsPreOrder)()?"scheduled":"one_time"},"scheduled"===e.mandate.interval&&delete e.amount,e}}),edit:r.createElement(u.LocalPaymentSourceContent,{getData:y}),supports:{showSavedCards:!1,showSaveOption:!1,features:y("features")}})},7894:(e,t,n)=>{var r=n(3027),a=n(5318)(n(9713)),o=n(4222),i=n(1134),c=n(3539),s=n(3187);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,a.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var p=(0,i.getSettings)("stripe_sofort_data");p()&&(0,o.registerPaymentMethod)({name:p("name"),label:r.createElement(s.PaymentMethodLabel,{title:p("title"),paymentMethod:p("name"),icons:p("icon")}),ariaLabel:"Sofort",placeOrderButtonLabel:p("placeOrderButtonLabel"),canMakePayment:(0,c.canMakePayment)(p),content:r.createElement(s.PaymentMethod,{content:c.LocalPaymentSourceContent,getData:p,getSourceArgs:function(e,t){var n=t.billingData;return l(l({},e),{},{sofort:{country:n.country}})}}),edit:r.createElement(s.PaymentMethod,{content:c.LocalPaymentSourceContent,getData:p}),supports:{showSavedCards:!1,showSaveOption:!1,features:p("features")}})},3766:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(7015)),i=a(n(8926)),c=a(n(9713)),s=a(n(3038)),u=n(3027),l=n(4222),p=n(1134),d=n(3187),f=n(3539),m=n(6664),y=n(8522),g=n(3163),v=n(3636),h=(0,p.getSettings)("stripe_wechat_data"),b=function(e){return r.createElement(m.Elements,{stripe:p.initStripe},r.createElement(P,e))},P=function(e){var t=e.getData,n=e.billing,a=(e.shippingData,e.emitResponse),o=e.eventRegistration,i=e.components,c=parseInt(t("qrSize")),s=a.responseTypes,l=o.onPaymentProcessing,d=o.onCheckoutAfterProcessingWithSuccess,f=i.ValidationInputError,m=(0,y.useValidateCheckout)({subscriber:o.onPaymentProcessing,responseTypes:a.responseTypes,msg:(0,g.__)("Please scan your QR code to continue with payment.","woo-stripe-payment")}),v=(m.isValid,m.setIsValid),h=O({getData:t,billing:n,responseTypes:s,subscriber:l}),b=h.source,P=h.error,S=h.deleteSourceFromStorage;return(0,u.useEffect)((function(){var e=d((function(){return S(),(0,p.ensureSuccessResponse)(s)}));return function(){return e()}}),[b,d,S]),(0,u.useEffect)((function(){b&&v(!0)}),[b]),b?r.createElement(E,{text:b.wechat.qr_code_url,width:c,height:c}):P?r.createElement("div",{className:"wechat-validation-error"},r.createElement(f,{errorMessage:(0,p.getErrorMessage)(P)})):(0,p.isAddressValid)(n.billingData)?null:(0,g.__)("Please fill out all the required fields in order to complete the WeChat payment.","woo-stripe-payment")},E=function(e){var t=e.text,n=e.width,a=void 0===n?128:n,o=e.height,i=void 0===o?128:o,c=e.colorDark,s=void 0===c?"#424770":c,l=e.colorLight,d=void 0===l?"#f8fbfd":l,f=e.correctLevel,m=void 0===f?QRCode.CorrectLevel.H:f,y=(0,u.useRef)();return(0,u.useEffect)((function(){new QRCode(y.current,{text:t,width:a,height:i,colorDark:s,colorLight:d,correctLevel:m})}),[y]),r.createElement(r.Fragment,null,r.createElement("div",{id:"wc-stripe-block-qrcode",ref:y}),(0,p.isTestMode)()&&r.createElement("p",null,(0,g.__)("Test mode: Click the Place Order button to proceed.","woo-stripe-payment")),!(0,p.isTestMode)()&&r.createElement("p",null,(0,g.__)("Scan the QR code using your WeChat app. Once scanned click the Place Order button.","woo-stripe-payment")))},O=function(e){var t=e.getData,n=e.billing,r=e.responseTypes,a=e.subscriber,l=(0,m.useStripe)(),d=(0,v.useStripeError)(),f=(0,s.default)(d,2),y=f[0],g=f[1],h=(0,u.useState)((0,p.getFromCache)("wechat:source")),b=(0,s.default)(h,2),P=b[0],E=b[1],O=(0,u.useRef)(null),S=n.cartTotal,w=n.billingData,_=n.currency;(0,u.useEffect)((function(){var e=a((function(){return(0,p.ensureSuccessResponse)(r,{meta:{paymentMethodData:(0,c.default)({},"".concat(t("name"),"_token_key"),P.id)}})}));return function(){return e()}}),[P,a]);var C=(0,u.useCallback)((0,i.default)(o.default.mark((function e(){var n;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,y||!(0,p.isAddressValid)(w)){e.next=9;break}return e.next=4,l.createSource((0,p.getDefaultSourceArgs)({type:t("paymentType"),amount:S.value,billingData:w,currency:_.code,returnUrl:t("returnUrl")}));case 4:if(!(n=e.sent).error){e.next=7;break}throw new p.StripeError(n.error);case 7:E(n.source),(0,p.storeInCache)("wechat:source",n.source);case 9:e.next=15;break;case 11:e.prev=11,e.t0=e.catch(0),console.log("error: ",e.t0),g(e.t0.error);case 15:case"end":return e.stop()}}),e,null,[[0,11]])}))),[l,P,S.value,w,_,y]),M=(0,u.useCallback)((function(){(0,p.deleteFromCache)("wechat:source")}),[]);return(0,u.useEffect)((function(){l&&!P&&(clearTimeout(O.current),O.current=setTimeout(C,1e3))}),[l,P,C]),{source:P,setSource:E,error:y,deleteSourceFromStorage:M}};h()&&(0,l.registerPaymentMethod)({name:h("name"),label:r.createElement(d.PaymentMethodLabel,{title:h("title"),paymentMethod:h("name"),icons:h("icon")}),ariaLabel:"WeChat",canMakePayment:(0,f.canMakePayment)(h),content:r.createElement(d.PaymentMethod,{content:b,getData:h}),edit:r.createElement(d.PaymentMethod,{content:b,getData:h}),supports:{showSavedCards:!1,showSaveOption:!1,features:h("features")}})},5180:(e,t,n)=>{n(3139),n(3726)},3726:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(3038)),i=a(n(6479)),c=n(3027),s=n(4222),u=n(1134),l=n(3636),p=n(6664),d=(0,u.getSettings)("stripe_payment_request_data"),f=function(e){return r.createElement("div",{className:"wc-stripe-payment-request-container"},r.createElement(p.Elements,{stripe:u.initStripe},r.createElement(m,e)))},m=function(e){var t=e.getData,n=e.onClick,a=e.onClose,s=e.billing,u=e.shippingData,d=e.eventRegistration,f=e.emitResponse,m=e.onSubmit,y=e.activePaymentMethod,g=((0,i.default)(e,["getData","onClick","onClose","billing","shippingData","eventRegistration","emitResponse","onSubmit","activePaymentMethod"]),d.onPaymentProcessing),v=f.responseTypes,h=f.noticeContexts,b=(0,p.useStripe)(),P=(0,l.useStripeError)(),E=(0,o.default)(P,1)[0],O=(0,l.useExportedValues)();(0,l.useExpressBreakpointWidth)({payment_method:t("name"),width:300});var S=(0,l.useProcessPaymentIntent)({getData:t,billing:s,shippingData:u,onPaymentProcessing:g,emitResponse:f,error:E,onSubmit:m,activePaymentMethod:y,exportedValues:O}).setPaymentMethod;(0,l.useAfterProcessingPayment)({getData:t,eventRegistration:d,responseTypes:v,activePaymentMethod:y,messageContext:h.EXPRESS_PAYMENTS});var w=(0,l.usePaymentRequest)({getData:t,onClose:a,stripe:b,billing:s,shippingData:u,eventRegistration:d,setPaymentMethod:S,exportedValues:O,canPay:function(e){return null!=e&&!e.applePay}}).paymentRequest,_=(0,c.useMemo)((function(){return{paymentRequest:w,style:{paymentRequestButton:t("paymentRequestButton")}}}),[w]);return w?r.createElement(p.PaymentRequestButtonElement,{options:_,onClick:n}):null},y=function(e){e.getData,(0,i.default)(e,["getData"]);var t=(0,c.useRef)();return(0,c.useEffect)((function(){var e=window.devicePixelRatio;t.current.width=20*e,t.current.height=20*e;var n=t.current.getContext("2d");n.scale(e,e),n.beginPath(),n.arc(10,10,10,0,2*Math.PI),n.fillStyle="#986fff",n.fill()})),r.createElement("div",{className:"payment-request-block-editor"},r.createElement("div",{className:"icon-container"},r.createElement("span",null,"Buy now"),r.createElement("canvas",{className:"PaymentRequestButton-icon",ref:t}),r.createElement("i",{className:"payment-request-arrow"})))};(0,s.registerExpressPaymentMethod)({name:d("name"),canMakePayment:function(e){var t=e.cartTotals;if(d("isAdmin"))return!0;var n=t.currency_code,r=t.total_price;return(0,u.canMakePayment)({country:d("countryCode"),currency:n.toLowerCase(),total:{label:d("totalLabel"),amount:parseInt(r)}},(function(e){return null!=e&&!e.applePay}))},content:r.createElement(f,{getData:d}),edit:r.createElement(y,{getData:d}),supports:{showSavedCards:d("showSavedCards"),showSaveOption:d("showSaveOption"),features:d("features")}})},1065:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(7015)),o=r(n(8926)),i=n(3027),c=n(1134);t.default=function(e){var t=e.eventRegistration,n=e.emitResponse,r=e.getData,s=t.onCheckoutAfterProcessingWithSuccess,u=n.responseTypes,l=(0,i.useCallback)(function(){var e=(0,o.default)(a.default.mark((function e(t){var n,o;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.redirectUrl,e.next=3,c.initStripe;case 3:return o=e.sent,e.next=6,(0,c.handleCardAction)({redirectUrl:n,getData:r,stripe:o,responseTypes:u});case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[s]);return(0,i.useEffect)((function(){var e=s(l);return function(){return e()}}),[s]),null}},1134:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.isCheckoutPage=t.isCartPage=t.versionCompare=t.deleteFromCache=t.getFromCache=t.storeInCache=t.isTestMode=t.getDefaultSourceArgs=t.cartContainsSubscription=t.cartContainsPreOrder=t.getLocalPaymentMethods=t.registerLocalPaymentMethod=t.canMakePayment=t.getDisplayItems=t.getShippingOptionId=t.getShippingOptions=t.formatPrice=t.filterEmptyValues=t.getIntermediateAddress=t.toCartAddress=t.handleCardAction=t.isUserLoggedIn=t.hasShippingRates=t.getSelectedShippingOption=t.isFieldRequired=t.getLocaleFields=t.isAddressValid=t.removeNumberPrecision=t.isEmpty=t.StripeError=t.getSettings=t.getBillingDetailsFromAddress=t.getErrorMessage=t.ensureErrorResponse=t.ensureSuccessResponse=t.getRoute=t.getCreditCardForm=t.registerCreditCardForm=t.initStripe=void 0;var a=r(n(319)),o=r(n(7015)),i=r(n(8926)),c=r(n(3038)),s=r(n(8)),u=r(n(4575)),l=r(n(2205)),p=r(n(8585)),d=r(n(9754)),f=r(n(5957)),m=r(n(9713)),y=r(n(6479)),g=n(4465),v=n(2492),h=r(n(7606)),b=n(8419);function P(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return E(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?E(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){c=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(c)throw o}}}}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function S(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?O(Object(n),!0).forEach((function(t){(0,m.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var w=(0,v.getSetting)("stripeGeneralData"),_=w.publishableKey,C=w.account,M=(0,v.getSetting)("stripeErrorMessages"),k=(0,v.getSetting)("countryLocale",{}),j=/^([\w]+)\:(.+)$/,D=(0,v.getSetting)("stripeGeneralData").routes,x={},R=[],A={recipient:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},payerName:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},country:"country",addressLine:function(e,t){return t[0]&&(e.address_1=t[0]),t[1]&&(e.address_2=t[1]),e},line1:"address_1",line2:"address_2",city:"city",region:"state",state:"state",postalCode:"postcode",postal_code:"postcode",payerEmail:"email",payerPhone:"phone"},L=new Promise((function(e,t){(0,g.loadStripe)(_,C?{stripeAccount:C}:{}).then((function(t){e(t)})).catch((function(t){e({error:t})}))}));t.initStripe=L,t.registerCreditCardForm=function(e){var t=e.id,n=(0,y.default)(e,["id"]);x[t]=n},t.getCreditCardForm=function(e){return x.hasOwnProperty(e)?x[e]:{}};var I=function(e){return null!=D&&D[e]?D[e]:console.log("".concat(e," is not a valid route"))};t.getRoute=I;var T=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return S({type:e.SUCCESS},t)};t.ensureSuccessResponse=T;var N=function(e,t){return{type:e.ERROR,message:B(t)}};t.ensureErrorResponse=N;var B=function(e){return"string"==typeof e?e:null!=e&&e.code&&null!=M&&M[e.code]?M[e.code]:null!=e&&e.statusCode?null!=M&&M[e.statusCode]?M[e.statusCode]:e.statusMessage:e.message};t.getErrorMessage=B;var F=function(e){var t={name:"".concat(e.first_name," ").concat(e.last_name),address:{city:e.city||null,country:e.country||null,line1:e.address_1||null,line2:e.address_2||null,postal_code:e.postcode||null,state:e.state||null}};return null!=e&&e.phone&&(t.phone=e.phone),null!=e&&e.email&&(t.email=e.email),t};t.getBillingDetailsFromAddress=F,t.getSettings=function(e){return function(t){return t?(0,v.getSetting)(e)[t]:(0,v.getSetting)(e)}};var q=function(e){(0,l.default)(a,e);var t,n,r=(t=a,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,d.default)(t);if(n){var a=(0,d.default)(this).constructor;e=Reflect.construct(r,arguments,a)}else e=r.apply(this,arguments);return(0,p.default)(this,e)});function a(e){var t;return(0,u.default)(this,a),(t=r.call(this,e.message)).error=e,t}return a}((0,f.default)(Error));t.StripeError=q;var X=function(e){return"string"==typeof e?0==e.length||""==e:Array.isArray(e)?0==array.length:"object"!==(0,s.default)(e)||0==Object.keys(e).length};t.isEmpty=X,t.removeNumberPrecision=function(e,t){return e/Math.pow(10,t)},t.isAddressValid=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=V(e.country),r=0,a=Object.entries(e);r<a.length;r++){var o=(0,c.default)(a[r],2),i=o[0],s=o[1];if(!t.includes(i)&&null!=n&&n[i]&&n[i].required&&X(s))return!1}return!0};var V=function(e){var t=S({},k.default);return e&&null!=k&&k[e]&&(t=Object.entries(k[e]).reduce((function(e,t){var n=(0,c.default)(t,2),r=n[0],a=n[1];return e[r]=S(S({},e[r]),a),e}),t),["phone","email"].forEach((function(e){var n=document.getElementById(e);n&&(t[e]={required:n.required})}))),t};t.getLocaleFields=V,t.isFieldRequired=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=V(t);return[e]in n&&n[e].required},t.getSelectedShippingOption=function(e){var t=e.match(j);if(t){var n=t[1];return[t[2],n]}return[]},t.hasShippingRates=function(e){return e.map((function(e){return e.shipping_rates.length>0})).filter(Boolean).length>0},t.isUserLoggedIn=function(e){return e>0};var U=function(){var e=(0,i.default)(o.default.mark((function e(t,n){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,h.default)({url:D["sync/intent"],method:"POST",data:{order_id:t,client_secret:n}});case 3:e.next=8;break;case 5:e.prev=5,e.t0=e.catch(0),console.log(e.t0);case 8:case"end":return e.stop()}}),e,null,[[0,5]])})));return function(t,n){return e.apply(this,arguments)}}(),W=function(){var e=(0,i.default)(o.default.mark((function e(t){var n,r,a,i,c,s,u,l,p,d,f,y,g,v;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.redirectUrl,r=t.responseTypes,a=t.stripe,i=t.getData,c=t.savePaymentMethod,s=void 0!==c&&c,e.prev=1,!(u=n.match(/#response=(.+)/))){e.next=20;break}return l=JSON.parse(window.atob(decodeURIComponent(u[1]))),p=l.client_secret,d=l.order_id,f=l.order_key,e.next=7,a.handleCardAction(p);case 7:if(!(y=e.sent).error){e.next=11;break}return U(d,p),e.abrupt("return",N(r,y.error));case 11:return g=(0,m.default)({order_id:d,order_key:f},"".concat(i("name"),"_save_source_key"),s),e.next=14,(0,h.default)({url:I("process/payment"),method:"POST",data:g});case 14:if(!(v=e.sent).messages){e.next=17;break}return e.abrupt("return",N(r,v.messages));case 17:return e.abrupt("return",T(r,{redirectUrl:v.redirect}));case 20:return e.abrupt("return",T(r));case 21:e.next=27;break;case 23:return e.prev=23,e.t0=e.catch(1),console.log(e.t0),e.abrupt("return",N(r,e.t0));case 27:case"end":return e.stop()}}),e,null,[[1,23]])})));return function(t){return e.apply(this,arguments)}}();t.handleCardAction=W,t.toCartAddress=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A;return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};t=S(S({},t),Y(n));for(var a=0,o=Object.entries(e);a<o.length;a++){var i,s=(0,c.default)(o[a],2),u=s[0],l=s[1];null!==(i=t)&&void 0!==i&&i[u]&&("function"==typeof l?l(r,t[u]):r[l]=t[u])}return r}},t.getIntermediateAddress=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["city","postcode","state","country"],r={},a=P(n);try{for(a.s();!(t=a.n()).done;){var o=t.value;r[o]=e[o]}}catch(e){a.e(e)}finally{a.f()}return r};var Y=function(e){return Object.keys(e).filter((function(t){return Boolean(e[t])})).reduce((function(t,n){return S(S({},t),{},(0,m.default)({},n,e[n]))}),{})};t.filterEmptyValues=Y;var G=function(e,t){var n,r=(0,b.getCurrency)(t),a=r.prefix,o=r.suffix,i=r.decimalSeparator,c=r.minorUnit,s=r.thousandSeparator;if(""==e||void 0===e)return e;e="string"==typeof e?parseInt(e,10):e;var u="",l=(e=(e/=Math.pow(10,c)).toString().replace(".",i)).indexOf(i);l<0?c>0&&(e+="".concat(i).concat(new Array(c+1).join("0"))):(u=e.substr(l+1)).length<c&&(e+=new Array(c-u.length+1).join("0"));var p=e.match(new RegExp("(\\d+)\\".concat(i,"(\\d+)")));return p&&(e=p[1],u=p[2]),e=e.replace(new RegExp("\\B(?=(\\d{3})+(?!\\d))","g"),"".concat(s)),a+(e=(null===(n=u)||void 0===n?void 0:n.length)>0?e+i+u:e)+o};t.formatPrice=G,t.getShippingOptions=function(e){var t=[];return e.forEach((function(e,n){e.shipping_rates.sort((function(e){return e.selected?-1:1}));var r=e.shipping_rates.map((function(e){var t=document.createElement("textarea");return t.innerHTML=e.name,G(e.price,e.currency_code),{id:H(n,e.rate_id),label:t.value,amount:parseInt(e.price,10)}}));t=[].concat((0,a.default)(t),(0,a.default)(r))})),t};var H=function(e,t){return"".concat(e,":").concat(t)};t.getShippingOptionId=H,t.getDisplayItems=function(e,t){t.minorUnit;var n=[],r=["total_tax","total_shipping"];return e.forEach((function(e){(0<e.value||e.key&&r.includes(e.key))&&n.push({label:e.label,pending:!1,amount:e.value})})),n};var z={};t.canMakePayment=function(e,t){var n=e.country,r=e.currency,a=e.total;return new Promise((function(e,o){var i=[n,r,a.amount].reduce((function(e,t){return"".concat(e,"-").concat(t)}));return r?i in z?e(z[i]):L.then((function(c){if(c.error)return o(c.error);c.paymentRequest({country:n,currency:r,total:a}).canMakePayment().then((function(n){return z[i]=t(n),e(z[i])}))})).catch(o):e(!1)}))},t.registerLocalPaymentMethod=function(e){R.push(e)},t.getLocalPaymentMethods=function(){return R},t.cartContainsPreOrder=function(){var e=(0,v.getSetting)("stripePaymentData");return e&&e.pre_order},t.cartContainsSubscription=function(){var e=(0,v.getSetting)("stripePaymentData");return e&&e.subscription},t.getDefaultSourceArgs=function(e){var t=e.type,n=e.amount,r=e.billingData,a=e.currency,o=e.returnUrl;return{type:t,amount:n,currency:a,owner:F(r),redirect:{return_url:o}}},t.isTestMode=function(){return"test"===(0,v.getSetting)("stripeGeneralData").mode};var J=function(e){return"".concat("stripe:").concat(e)};t.storeInCache=function(e,t){var n=Math.floor((new Date).getTime()/1e3)+900;"sessionStorage"in window&&sessionStorage.setItem(J(e),JSON.stringify({value:t,exp:n}))},t.getFromCache=function(e){if("sessionStorage"in window)try{var t=JSON.parse(sessionStorage.getItem(J(e)));if(t){var n=t.value,r=t.exp;if(!(Math.floor((new Date).getTime()/1e3)>r))return n;Q(J(e))}}catch(e){}return null};var Q=function(e){"sessionStorage"in window&&sessionStorage.removeItem(J(e))};t.deleteFromCache=Q,t.versionCompare=function(e,t,n){switch(n){case"<":return e<t;case">":return e>t;case"<=":return e<=t;case">=":return e>=t;case"=":return e==t}return!1},t.isCartPage=function(){return"cart"===(0,v.getSetting)("stripeGeneralData").page},t.isCheckoutPage=function(){return"checkout"===(0,v.getSetting)("stripeGeneralData").page}},4184:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)&&n.length){var i=a.apply(null,n);i&&e.push(i)}else if("object"===o)for(var c in n)r.call(n,c)&&n[c]&&e.push(c)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()},1127:()=>{},7776:()=>{},4836:()=>{},85:()=>{},3110:()=>{},8356:()=>{},5773:()=>{},9509:()=>{},3139:()=>{}}]);
3
  //# sourceMappingURL=commons.js.map
1
  /*! For license information please see commons.js.LICENSE.txt */
2
+ (self.webpackChunkwc_stripe_name_=self.webpackChunkwc_stripe_name_||[]).push([[351],{7228:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}},2858:e=>{e.exports=function(e){if(Array.isArray(e))return e}},3646:(e,t,n)=>{var r=n(7228);e.exports=function(e){if(Array.isArray(e))return r(e)}},1506:e=>{e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},8926:e=>{function t(e,t,n,r,a,o,i){try{var c=e[o](i),s=c.value}catch(e){return void n(e)}c.done?t(s):Promise.resolve(s).then(r,a)}e.exports=function(e){return function(){var n=this,r=arguments;return new Promise((function(a,o){var i=e.apply(n,r);function c(e){t(i,a,o,c,s,"next",e)}function s(e){t(i,a,o,c,s,"throw",e)}c(void 0)}))}}},4575:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},9100:(e,t,n)=>{var r=n(9489),a=n(7067);function o(t,n,i){return a()?e.exports=o=Reflect.construct:e.exports=o=function(e,t,n){var a=[null];a.push.apply(a,t);var o=new(Function.bind.apply(e,a));return n&&r(o,n.prototype),o},o.apply(null,arguments)}e.exports=o},3913:e=>{function t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}},9713:e=>{e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},7154:e=>{function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(this,arguments)}e.exports=t},9754:e=>{function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(n)}e.exports=t},2205:(e,t,n)=>{var r=n(9489);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},5318:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},430:e=>{e.exports=function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}},7067:e=>{e.exports=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}},6860:e=>{e.exports=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},3884:e=>{e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,a=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(r=(i=c.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(a)throw o}}return n}}},521:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},8206:e=>{e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},6479:(e,t,n)=>{var r=n(7316);e.exports=function(e,t){if(null==e)return{};var n,a,o=r(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}},7316:e=>{e.exports=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}},8585:(e,t,n)=>{var r=n(8),a=n(1506);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}},9489:e=>{function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(n,r)}e.exports=t},3038:(e,t,n)=>{var r=n(2858),a=n(3884),o=n(379),i=n(521);e.exports=function(e,t){return r(e)||a(e,t)||o(e,t)||i()}},319:(e,t,n)=>{var r=n(3646),a=n(6860),o=n(379),i=n(8206);e.exports=function(e){return r(e)||a(e)||o(e)||i()}},8:e=>{function t(n){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(n)}e.exports=t},379:(e,t,n)=>{var r=n(7228);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}},5957:(e,t,n)=>{var r=n(9754),a=n(9489),o=n(430),i=n(9100);function c(t){var n="function"==typeof Map?new Map:void 0;return e.exports=c=function(e){if(null===e||!o(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,t)}function t(){return i(e,arguments,r(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),a(t,e)},c(t)}e.exports=c},6664:function(e,t,n){!function(e,t){"use strict";function n(e){return(n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function r(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,a=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(r=(i=c.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==c.return||c.return()}finally{if(a)throw o}}return n}}(e,t)||function(e,t){if(e){if("string"==typeof e)return o(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;function i(){}function c(){}c.resetWarningCache=i;var s,u=(function(e){e.exports=function(){function e(e,t,n,r,a,o){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==o){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:c,resetWarningCache:i};return n.PropTypes=n,n}()}(s={exports:{}},s.exports),s.exports),l=function(e){return null!==e&&"object"===n(e)},p="[object Object]",d=function e(t,n){if(!l(t)||!l(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var a=Object.prototype.toString.call(t)===p;if(a!==(Object.prototype.toString.call(n)===p))return!1;if(!a&&!r)return!1;var o=Object.keys(t),i=Object.keys(n);if(o.length!==i.length)return!1;for(var c={},s=0;s<o.length;s+=1)c[o[s]]=!0;for(var u=0;u<i.length;u+=1)c[i[u]]=!0;var d=Object.keys(c);if(d.length!==o.length)return!1;var f=t,m=n;return d.every((function(t){return e(f[t],m[t])}))},f=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),n.current},m=function(e){if(null===e||l(t=e)&&"function"==typeof t.elements&&"function"==typeof t.createToken&&"function"==typeof t.createPaymentMethod&&"function"==typeof t.confirmCardPayment)return e;var t;throw new Error("Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.")},y=function(e){if(function(e){return l(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then(m)};var t=m(e);return null===t?{tag:"empty"}:{tag:"sync",stripe:t}},g=t.createContext(null);g.displayName="ElementsContext";var v=function(e){var n=e.stripe,r=e.options,o=e.children,i=t.useRef(!1),c=t.useRef(!0),s=t.useMemo((function(){return y(n)}),[n]),u=a(t.useState((function(){return{stripe:null,elements:null}})),2),l=u[0],p=u[1],m=f(n),v=f(r);return null!==m&&(m!==n&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it."),d(r,v)||console.warn("Unsupported prop change on Elements: You cannot change the `options` prop after setting the `stripe` prop.")),i.current||("sync"===s.tag&&(i.current=!0,p({stripe:s.stripe,elements:s.stripe.elements(r)})),"async"===s.tag&&(i.current=!0,s.stripePromise.then((function(e){e&&c.current&&p({stripe:e,elements:e.elements(r)})})))),t.useEffect((function(){return function(){c.current=!1}}),[]),t.useEffect((function(){var e=l.stripe;e&&e._registerWrapper&&e._registerWrapper({name:"react-stripe-js",version:"1.4.0"})}),[l.stripe]),t.createElement(g.Provider,{value:l},o)};v.propTypes={stripe:u.any,options:u.object};var h=function(e){return function(e,t){if(!e)throw new Error("Could not find Elements context; You need to wrap the part of your app that ".concat(t," in an <Elements> provider."));return e}(t.useContext(g),e)},b=function(e){return(0,e.children)(h("mounts <ElementsConsumer>"))};b.propTypes={children:u.func.isRequired};var P=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),function(){n.current&&n.current.apply(n,arguments)}},E=function(e){return l(e)?(e.paymentRequest,r(e,["paymentRequest"])):{}},O=function(){},S=function(e,n){var r,a="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),o=n?function(e){h("mounts <".concat(a,">"));var n=e.id,r=e.className;return t.createElement("div",{id:n,className:r})}:function(n){var r=n.id,o=n.className,i=n.options,c=void 0===i?{}:i,s=n.onBlur,u=void 0===s?O:s,l=n.onFocus,p=void 0===l?O:l,f=n.onReady,m=void 0===f?O:f,y=n.onChange,g=void 0===y?O:y,v=n.onEscape,b=void 0===v?O:v,S=n.onClick,_=void 0===S?O:S,w=h("mounts <".concat(a,">")).elements,C=t.useRef(null),M=t.useRef(null),k=P(m),j=P(u),D=P(p),x=P(_),R=P(g),A=P(b);t.useLayoutEffect((function(){if(null==C.current&&w&&null!=M.current){var t=w.create(e,c);C.current=t,t.mount(M.current),t.on("ready",(function(){return k(t)})),t.on("change",R),t.on("blur",j),t.on("focus",D),t.on("escape",A),t.on("click",x)}}));var I=t.useRef(c);return t.useEffect((function(){I.current&&I.current.paymentRequest!==c.paymentRequest&&console.warn("Unsupported prop change: options.paymentRequest is not a customizable property.");var e=E(c);0===Object.keys(e).length||d(e,E(I.current))||C.current&&(C.current.update(e),I.current=c)}),[c]),t.useLayoutEffect((function(){return function(){C.current&&C.current.destroy()}}),[]),t.createElement("div",{id:r,className:o,ref:M})};return o.propTypes={id:u.string,className:u.string,onChange:u.func,onBlur:u.func,onFocus:u.func,onReady:u.func,onClick:u.func,options:u.object},o.displayName=a,o.__elementType=e,o},_="undefined"==typeof window,w=S("auBankAccount",_),C=S("card",_),M=S("cardNumber",_),k=S("cardExpiry",_),j=S("cardCvc",_),D=S("fpxBank",_),x=S("iban",_),R=S("idealBank",_),A=S("p24Bank",_),I=S("epsBank",_),L=S("paymentRequestButton",_),T=S("afterpayClearpayMessage",_);e.AfterpayClearpayMessageElement=T,e.AuBankAccountElement=w,e.CardCvcElement=j,e.CardElement=C,e.CardExpiryElement=k,e.CardNumberElement=M,e.Elements=v,e.ElementsConsumer=b,e.EpsBankElement=I,e.FpxBankElement=D,e.IbanElement=x,e.IdealBankElement=R,e.P24BankElement=A,e.PaymentRequestButtonElement=L,e.useElements=function(){return h("calls useElements()").elements},e.useStripe=function(){return h("calls useStripe()").stripe},Object.defineProperty(e,"__esModule",{value:!0})}(t,n(3804))},4465:(e,t,n)=>{"use strict";n.r(t),n.d(t,{loadStripe:()=>l});var r="https://js.stripe.com/v3",a=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,o="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",i=null,c=function(e,t,n){if(null===e)return null;var r=e.apply(void 0,t);return function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"1.12.1",startTime:t})}(r,n),r},s=Promise.resolve().then((function(){return e=null,null!==i?i:i=new Promise((function(t,n){if("undefined"!=typeof window)if(window.Stripe&&e&&console.warn(o),window.Stripe)t(window.Stripe);else try{var i=function(){for(var e=document.querySelectorAll('script[src^="'.concat(r,'"]')),t=0;t<e.length;t++){var n=e[t];if(a.test(n.src))return n}return null}();i&&e?console.warn(o):i||(i=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",n=document.createElement("script");n.src="".concat(r).concat(t);var a=document.head||document.body;if(!a)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return a.appendChild(n),n}(e)),i.addEventListener("load",(function(){window.Stripe?t(window.Stripe):n(new Error("Stripe.js not available"))})),i.addEventListener("error",(function(){n(new Error("Failed to load Stripe.js"))}))}catch(e){return void n(e)}else t(null)}));var e})),u=!1;s.catch((function(e){u||console.warn(e)}));var l=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];u=!0;var r=Date.now();return s.then((function(e){return c(e,t,r)}))}},8149:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.SavePaymentMethod=void 0;var o=a(n(4184));n(1127),t.SavePaymentMethod=function(e){var t=e.label,n=e.onChange,a=e.checked;return r.createElement("div",{className:"wc-stripe-save-payment-method"},r.createElement("label",null,r.createElement("input",{type:"checkbox",onChange:function(e){return n(e.target.checked)}}),r.createElement("svg",{className:(0,o.default)("wc-stripe-components-checkbox__mark",{checked:a}),"aria-hidden":"true",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 20"},r.createElement("path",{d:"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"}))),r.createElement("span",null,t))}},3187:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(2029);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(8149);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(8744);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}));var i=n(4901);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}))},2029:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.PaymentMethodLabel=void 0;var o=a(n(6479));n(7776),t.PaymentMethodLabel=function(e){var t=e.title,n=e.icons,a=e.paymentMethod,i=(0,o.default)(e,["title","icons","paymentMethod"]).components,c=i.PaymentMethodLabel,s=i.PaymentMethodIcons;return Array.isArray(n)||(n=[n]),r.createElement("span",{className:"wc-stripe-label-container ".concat(a)},r.createElement(c,{text:t}),r.createElement(s,{icons:n,align:"left"}))}},4901:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.PaymentMethod=void 0;var o=a(n(9713)),i=a(n(6479)),c=n(3027);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.PaymentMethod=function(e){var t=e.getData,n=e.content,a=(0,i.default)(e,["getData","content"]),o=n,s=t("description"),p=(0,c.useRef)(null);return(0,c.useEffect)((function(){p.current&&0==p.current.childNodes.length&&p.current.classList.add("no-content")})),r.createElement(r.Fragment,null,s&&r.createElement(l,{desc:s,payment_method:t("name")}),r.createElement("div",{ref:p,className:"wc-stripe-blocks-payment-method-content"},r.createElement(o,u(u({},a),{},{getData:t}))))};var l=function(e){var t=e.desc,n=e.payment_method;return r.createElement("div",{className:"wc-stripe-blocks-payment-method__desc ".concat(n)},r.createElement("p",null,t))}},8744:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.RadioControlOption=void 0;var o=a(n(4184)),i=function(e){var t=e.checked,n=e.onChange,a=e.value,i=e.label;return r.createElement("label",{className:(0,o.default)("wc-stripe-blocks-radio-control__option",{"wc-stripe-blocks-radio-control__option-checked":t})},r.createElement("input",{className:"wc-stripe-blocks-radio-control__input",type:"radio",value:a,checked:t,onChange:function(e){return n(e.target.value)}}),r.createElement("div",{className:"wc-stripe-blocks-radio-control__label"},r.createElement("span",null,i)))};t.RadioControlOption=i;var c=i;t.default=c},7260:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(1293);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(7150);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(5201);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},1293:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useCreateLinkToken=void 0;var a=r(n(7015)),o=r(n(8926)),i=r(n(3038)),c=n(3027),s=r(n(7606)),u=n(1134);t.useCreateLinkToken=function(e){var t=e.setValidationError,n=(0,c.useState)(!1),r=(0,i.default)(n,2),l=r[0],p=r[1],d=(0,c.useCallback)((0,o.default)(a.default.mark((function e(){var n;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,s.default)({url:(0,u.getRoute)("create/linkToken"),method:"POST",data:{}});case 3:(n=e.sent).token&&((0,u.storeInCache)("linkToken",n.token),p(n.token)),e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),t(e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])}))),[]);return(0,c.useEffect)((function(){if(!l){var e=(0,u.getFromCache)("linkToken");e?p(e):d()}}),[l,p]),l}},7150:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useInitializePlaid=void 0;var a=n(3027),o=r(n(2810)),i=n(1134);t.useInitializePlaid=function(e){var t=e.getData,n=e.linkToken,r=(0,a.useRef)(null),c=(0,a.useRef)(null),s=(0,a.useCallback)((function(){return new Promise((function(e,t){c.current={resolve:e,reject:t},r.current.open()}))}),[]);return(0,a.useEffect)((function(){n&&(r.current=o.default.create({clientName:t("clientName"),env:t("plaidEnvironment"),product:["auth"],token:n,selectAccount:!0,countryCodes:["US"],onSuccess:function(e,t){c.current.resolve({publicToken:e,metaData:t})},onExit:function(e){c.current.reject(!!e&&(0,i.getErrorMessage)(e.error_message))}}))}),[n]),s}},5201:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessPayment=void 0;var a=r(n(7015)),o=r(n(9713)),i=r(n(8926)),c=n(3027),s=n(1134);t.useProcessPayment=function(e){var t=e.openLinkPopup,n=e.onPaymentProcessing,r=e.responseTypes,u=e.paymentMethod;(0,c.useEffect)((function(){var e=n((0,i.default)(a.default.mark((function e(){var n,i,c,l;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,t();case 3:return i=e.sent,c=i.publicToken,l=i.metaData,(0,s.deleteFromCache)("linkToken"),e.abrupt("return",(0,s.ensureSuccessResponse)(r,{meta:{paymentMethodData:(n={},(0,o.default)(n,"".concat(u,"_token_key"),c),(0,o.default)(n,"".concat(u,"_metadata"),JSON.stringify(l)),n)}}));case 9:return e.prev=9,e.t0=e.catch(0),e.abrupt("return",(0,s.ensureErrorResponse)(r,e.t0));case 12:case"end":return e.stop()}}),e,null,[[0,9]])}))));return function(){return e()}}),[n,r,t])}},5605:(e,t,n)=>{n(4836),n(4888)},4888:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(3038)),i=a(n(6479)),c=n(3027),s=n(4222),u=n(1134),l=n(3187),p=a(n(1065)),d=n(7260),f=n(3636),m=n(3163),y=(0,u.getSettings)("stripe_ach_data"),g=function(e){var t=e.getData,n=e.eventRegistration,a=e.components,s=e.emitResponse,l=e.onSubmit,p=((0,i.default)(e,["getData","eventRegistration","components","emitResponse","onSubmit"]),s.responseTypes),m=n.onPaymentProcessing,y=n.onCheckoutAfterProcessingWithError,g=a.ValidationInputError,h=(0,c.useState)(!1),b=(0,o.default)(h,2),P=b[0],E=b[1],O=(0,d.useCreateLinkToken)({setValidationError:E});(0,f.useProcessCheckoutError)({responseTypes:p,subscriber:y});var S=(0,d.useInitializePlaid)({getData:t,linkToken:O,onSubmit:l});return(0,d.useProcessPayment)({openLinkPopup:S,onPaymentProcessing:m,responseTypes:p,paymentMethod:t("name")}),r.createElement(r.Fragment,null,u.isTestMode&&r.createElement(v,null),P&&r.createElement(g,{errorMessage:P}))},v=function(){return r.createElement("div",{className:"wc-stripe-blocks-ach__creds"},r.createElement("label",{className:"wc-stripe-blocks-ach__creds-label"},(0,m.__)("Test Credentials","woo-stripe-payment")),r.createElement("div",{className:"wc-stripe-blocks-ach__username"},r.createElement("div",null,r.createElement("strong",null,(0,m.__)("username","woo-stripe-payment")),": user_good"),r.createElement("div",null,r.createElement("strong",null,(0,m.__)("password","woo-stripe-payment")),": pass_good"),r.createElement("div",null,r.createElement("strong",null,(0,m.__)("pin","woo-stripe-payment")),": credential_good")))};(0,s.registerPaymentMethod)({name:y("name"),label:r.createElement(l.PaymentMethodLabel,{title:y("title"),paymentMethod:y("name"),icons:y("icons")}),ariaLabel:"ACH Payment",canMakePayment:function(e){return"USD"===e.cartTotals.currency_code},content:r.createElement(l.PaymentMethod,{getData:y,content:g}),savedTokenComponent:r.createElement(p.default,{getData:y}),edit:r.createElement(g,{getData:y}),placeOrderButtonLabel:y("placeOrderButtonLabel"),supports:{showSavedCards:y("showSavedCards"),showSaveOption:!1,features:y("features")}})},3846:(e,t,n)=>{n(85),n(660)},660:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(3038)),i=a(n(6479)),c=n(3027),s=n(4222),u=n(1134),l=n(6664),p=a(n(7082)),d=n(3636),f=(0,u.getSettings)("stripe_applepay_data"),m=function(e){return r.createElement(p.default,null,r.createElement("div",{className:"wc-stripe-apple-pay-container"},r.createElement(l.Elements,{stripe:u.initStripe},r.createElement(y,e))))},y=function(e){var t=e.getData,n=e.onClick,a=e.onClose,s=e.billing,u=e.shippingData,p=e.eventRegistration,f=e.emitResponse,m=e.onSubmit,y=e.activePaymentMethod,g=((0,i.default)(e,["getData","onClick","onClose","billing","shippingData","eventRegistration","emitResponse","onSubmit","activePaymentMethod"]),p.onPaymentProcessing),v=f.responseTypes,h=f.noticeContexts,b=(0,l.useStripe)(),P=(0,d.useStripeError)(),E=(0,o.default)(P,1)[0],O=(0,d.useExportedValues)();(0,d.useExpressBreakpointWidth)({payment_method:t("name"),width:300});var S=(0,d.useProcessPaymentIntent)({getData:t,billing:s,shippingData:u,onPaymentProcessing:g,emitResponse:f,error:E,onSubmit:m,activePaymentMethod:y,exportedValues:O}).setPaymentMethod;(0,d.useAfterProcessingPayment)({getData:t,eventRegistration:p,responseTypes:v,activePaymentMethod:y,messageContext:h.EXPRESS_PAYMENTS});var _=(0,d.usePaymentRequest)({getData:t,onClose:a,stripe:b,billing:s,shippingData:u,eventRegistration:p,setPaymentMethod:S,exportedValues:O,canPay:function(e){return null!=e&&e.applePay}}).paymentRequest,w=(0,c.useCallback)((function(e){_&&(e.preventDefault(),n(),_.show())}),[_,n]);return _?r.createElement("button",{className:"apple-pay-button ".concat(t("buttonStyle")),style:{"-apple-pay-button-type":t("buttonType")},onClick:w}):null},g=function(e){var t=e.getData;return(0,i.default)(e,["getData"]),r.createElement("div",{className:"apple-pay-block-editor"},r.createElement("img",{src:t("editorIcon")}))};(0,s.registerExpressPaymentMethod)({name:f("name"),canMakePayment:function(e){var t=e.cartTotals;if((0,i.default)(e,["cartTotals"]),f("isAdmin"))return!0;var n=t.currency_code,r=t.total_price;return(0,u.canMakePayment)({country:f("countryCode"),currency:n.toLowerCase(),total:{label:f("totalLabel"),amount:parseInt(r)}},(function(e){return null!=e&&e.applePay}))},content:r.createElement(m,{getData:f}),edit:r.createElement(g,{getData:f}),supports:{showSavedCards:f("showSavedCards"),showSaveOption:f("showSaveOption"),features:f("features")}})},7354:(e,t,n)=>{var r=n(3027);n(3110);var a=n(1134),o=n(6664),i=n(3163),c=function(e){var t=e.CardIcon,n=e.options,a=e.onChange;return r.createElement("div",{className:"wc-stripe-bootstrap-form"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col-md-6 mb-3"},r.createElement(o.CardNumberElement,{className:"md-form md-outline stripe-input",options:n.cardNumber,onChange:a(o.CardNumberElement)}),r.createElement("label",{htmlFor:"stripe-card-number"},(0,i.__)("Card Number","woo-stripe-payment")),t),r.createElement("div",{className:"col-md-3 mb-3"},r.createElement(o.CardExpiryElement,{className:"md-form md-outline stripe-input",options:n.cardExpiry,onChange:a(o.CardExpiryElement)}),r.createElement("label",{htmlFor:"stripe-exp"},(0,i.__)("Exp","woo-stripe-payment"))),r.createElement("div",{className:"col-md-3 mb-3"},r.createElement(o.CardCvcElement,{className:"md-form md-outline stripe-input",options:n.cardCvc,onChange:a(o.CardCvcElement)}),r.createElement("label",{htmlFor:"stripe-cvv"},(0,i.__)("CVV","woo-stripe-payment")))))};(0,a.registerCreditCardForm)({id:"bootstrap",breakpoint:475,component:r.createElement(c,null)})},3329:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(9713)),i=a(n(3038)),c=n(1134),s=n(3027),u=n(6664),l=n(3163),p=n(3636);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m={focus:"focused",empty:"empty",invalid:"invalid"},y=function(e){var t=e.type,n=e.src;return t?r.createElement("img",{className:"wc-stripe-card ".concat(t),src:n}):null};t.default=function(e){var t=e.getData,n=e.onChange,a=(0,s.useState)(""),o=(0,i.default)(a,2),d=o[0],g=o[1],v=(0,s.useRef)([]),h=(0,s.useState)(null),b=(0,i.default)(h,2),P=b[0],E=b[1],O=(0,u.useElements)(),S=t("customForm"),_=(0,c.getCreditCardForm)(S),w=_.component,C=void 0===w?null:w,M=_.breakpoint,k=void 0===M?475:M,j=t("postalCodeEnabled"),D={};["cardNumber","cardExpiry","cardCvc"].forEach((function(e){D[e]=f(f({classes:m},t("cardOptions")),t("customFieldOptions")[e])}));var x=(0,s.useCallback)((function(e){v.current.includes(e)||v.current.push(e)}),[]);(0,p.useBreakpointWidth)({name:"creditCardForm",width:k,node:P,className:"small-form"});var R=(0,s.useCallback)((function(e){for(var n=0,r=Object.keys(t("cards"));n<r.length;n++){var a=r[n];if(a===e)return t("cards")[a]}return""}),[]);return C?r.createElement("div",{className:"wc-stripe-custom-form ".concat(S),ref:E},(0,s.cloneElement)(C,{postalCodeEnabled:j,options:D,onChange:function(e){return x(e),function(t){if(n(t),"cardNumber"===t.elementType&&("unknown"===t.brand?g(""):g(t.brand)),t.complete){var r=v.current.indexOf(e);if(v.current[r+1]){var a=v.current[r+1];O.getElement(a).focus()}}}},CardIcon:r.createElement(y,{type:d,src:R(d)})})):r.createElement("div",{className:"wc-stripe-custom-form-error"},r.createElement("p",null,(0,l.sprintf)((0,l.__)("%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings.","woo-stripe-payment"),t("customFormLabels")[S])))}},6835:(e,t,n)=>{var r=n(3027);n(8356);var a=n(1134),o=n(6664),i=n(3163),c=n(3027),s=function(e){var t=e.CardIcon,n=e.options,a=e.onChange;return(0,c.useEffect)((function(){}),[]),r.createElement("div",{className:"wc-stripe-simple-form"},r.createElement("div",{className:"row"},r.createElement("div",{className:"field"},r.createElement("div",{className:"field-item"},r.createElement(o.CardNumberElement,{id:"stripe-card-number",className:"input empty",options:n.cardNumber,onChange:a(o.CardNumberElement)}),r.createElement("label",{htmlFor:"stripe-card-number","data-tid":""},(0,i.__)("Card Number","woo-stripe-payment")),r.createElement("div",{className:"baseline"}),t))),r.createElement("div",{className:"row"},r.createElement("div",{className:"field half-width"},r.createElement("div",{className:"field-item"},r.createElement(o.CardExpiryElement,{id:"stripe-exp",className:"input empty",options:n.cardExpiry,onChange:a(o.CardExpiryElement)}),r.createElement("label",{htmlFor:"stripe-exp","data-tid":""},(0,i.__)("Expiration","woo-stripe-payment")),r.createElement("div",{className:"baseline"}))),r.createElement("div",{className:"field half-width cvc"},r.createElement("div",{className:"field-item"},r.createElement(o.CardCvcElement,{id:"stripe-cvv",className:"input empty",options:n.cardCvc,onChange:a(o.CardCvcElement)}),r.createElement("label",{htmlFor:"stripe-cvv","data-tid":""},(0,i.__)("CVV","woo-stripe-payment")),r.createElement("div",{className:"baseline"})))))};(0,a.registerCreditCardForm)({id:"simple",component:r.createElement(s,null),breakpoint:375})},9775:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(9713)),i=n(6664),c=n(1134),s=n(3027);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.default=function(e){var t=e.getData,n=e.billing,a=e.onChange,o=(0,s.useMemo)((function(){var e;return l(l({},{value:{postalCode:null==n||null===(e=n.billingData)||void 0===e?void 0:e.postcode},hidePostalCode:(0,c.isFieldRequired)("postcode"),iconStyle:"default"}),t("cardOptions"))}),[n.billingData]);return r.createElement("div",{className:"wc-stripe-inline-form"},r.createElement(i.CardElement,{options:o,onChange:a}))}},627:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),n(5773);var r=n(7205);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))})),n(7354),n(6835)},7205:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(3038)),i=n(3027),c=n(4222),s=n(1134),u=n(6664),l=n(3187),p=a(n(1065)),d=a(n(3329)),f=a(n(9775)),m=n(3636),y=(0,s.getSettings)("stripe_cc_data"),g=function(e){return(0,s.isUserLoggedIn)(e)&&y("saveCardEnabled")&&!(0,s.cartContainsSubscription)()&&!(0,s.cartContainsPreOrder)()},v=function(e){var t=(0,i.useState)(!1),n=(0,o.default)(t,2),a=n[0],c=n[1];if((0,i.useEffect)((function(){s.initStripe.catch((function(e){c(e)}))}),[c]),a)throw new Error(a);return r.createElement(u.Elements,{stripe:s.initStripe,options:y("elementOptions")},r.createElement(h,e))},h=function(e){var t=e.getData,n=e.billing,a=e.shippingData,c=e.emitResponse,s=e.eventRegistration,p=e.activePaymentMethod,y=(0,m.useStripeError)(),v=(0,o.default)(y,2),h=v[0],b=v[1],P=(0,i.useState)(!1),E=(0,o.default)(P,2),O=E[0],S=E[1],_=s.onPaymentProcessing,w=(0,u.useStripe)(),C=(0,u.useElements)(),M=(0,i.useCallback)((function(){var e=t("customFormActive")?u.CardNumberElement:u.CardElement;return{card:C.getElement(e)}}),[w,C]),k=(0,m.useSetupIntent)({getData:t,cartTotal:n.cartTotal,setError:b}),j=k.setupIntent,D=k.removeSetupIntent;(0,m.useProcessPaymentIntent)({getData:t,billing:n,shippingData:a,emitResponse:c,error:h,onPaymentProcessing:_,savePaymentMethod:O,setupIntent:j,removeSetupIntent:D,getPaymentMethodArgs:M,activePaymentMethod:p}),(0,m.useAfterProcessingPayment)({getData:t,eventRegistration:s,responseTypes:c.responseTypes,activePaymentMethod:p,savePaymentMethod:O});var x=t("customFormActive")?d.default:f.default;return r.createElement("div",{className:"wc-stripe-card-container"},r.createElement(x,{getData:t,billing:n,onChange:function(e){e.error?b(e.error):b(!1)}}),g(n.customerId)&&r.createElement(l.SavePaymentMethod,{label:t("savePaymentMethodLabel"),onChange:function(e){return S(e)},checked:O}))};(0,c.registerPaymentMethod)({name:y("name"),label:r.createElement(l.PaymentMethodLabel,{title:y("title"),paymentMethod:y("name"),icons:y("icons")}),ariaLabel:"Credit Cards",canMakePayment:function(){return s.initStripe},content:r.createElement(l.PaymentMethod,{content:v,getData:y}),savedTokenComponent:r.createElement(p.default,{getData:y}),edit:r.createElement(l.PaymentMethod,{content:v,getData:y}),supports:{showSavedCards:y("showSavedCards"),showSaveOption:!1,features:y("features")}})},7082:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(4575)),i=a(n(3913)),c=a(n(2205)),s=a(n(8585)),u=a(n(9754));var l=function(e){(0,c.default)(l,e);var t,n,a=(t=l,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,u.default)(t);if(n){var a=(0,u.default)(this).constructor;e=Reflect.construct(r,arguments,a)}else e=r.apply(this,arguments);return(0,s.default)(this,e)});function l(e){var t;return(0,o.default)(this,l),(t=a.call(this,e)).state={hasError:!1,error:null,errorInfo:null},t}return(0,i.default)(l,[{key:"componentDidCatch",value:function(e,t){this.setState({hasError:!0,error:e,errorInfo:t})}},{key:"render",value:function(){return this.state.hasError?r.createElement(r.Fragment,null,this.state.error&&r.createElement("div",{className:"wc-stripe-block-error"},this.state.error.toString()),this.state.errorInfo&&r.createElement("div",{className:"wc-stripe-block-error"},this.state.errorInfo.componentStack)):this.props.children}}]),l}(n(3027).Component);t.default=l},5212:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(3038)),i=a(n(6479)),c=n(3027),s=n(5516),u=n(3636),l=(0,n(1134).getSettings)("stripeGeneralData")().publishableKey;t.default=function(e){var t=e.getData,n=e.setErrorMessage,a=e.billing,p=e.shippingData,d=e.canMakePayment,f=e.checkoutStatus,m=e.eventRegistration,y=e.activePaymentMethod,g=e.onClick,v=e.onClose,h=(0,i.default)(e,["getData","setErrorMessage","billing","shippingData","canMakePayment","checkoutStatus","eventRegistration","activePaymentMethod","onClick","onClose"]),b={merchantId:t("merchantId"),merchantName:t("merchantName")},P=(0,u.useStripeError)(),E=(0,o.default)(P,2),O=E[0],S=(E[1],(0,c.useRef)()),_=h.onSubmit,w=h.emitResponse,C=m.onPaymentProcessing,M=(0,u.useExportedValues)(),k="long"===t("buttonStyle").buttonType?390:300,j=(0,u.useProcessPaymentIntent)({getData:t,billing:a,shippingData:p,onPaymentProcessing:C,emitResponse:w,error:O,exportedValues:M,onSubmit:_,checkoutStatus:f,activePaymentMethod:y}).setPaymentMethod,D=(0,s.usePaymentRequest)({getData:t,publishableKey:l,merchantInfo:b,billing:a,shippingData:p}),x=(0,s.usePaymentsClient)({merchantInfo:b,paymentRequest:D,billing:a,shippingData:p,eventRegistration:m,canMakePayment:d,setErrorMessage:n,onSubmit:_,setPaymentMethod:j,exportedValues:M,onClick:g,onClose:v,getData:t}),R=x.button,A=x.removeButton;return(0,u.useExpressBreakpointWidth)({payment_method:t("name"),width:k}),(0,c.useEffect)((function(){R&&(A(S.current),S.current.append(R))}),[R]),r.createElement("div",{className:"wc-stripe-gpay-button-container",ref:S})}},3097:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BASE_PAYMENT_REQUEST=t.BASE_PAYMENT_METHOD=void 0,t.BASE_PAYMENT_METHOD={type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY"],allowedCardNetworks:["AMEX","DISCOVER","INTERAC","JCB","MASTERCARD","VISA"],assuranceDetailsRequired:!0}},t.BASE_PAYMENT_REQUEST={apiVersion:2,apiVersionMinor:0}},5516:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(1674);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(1735);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(9808);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},9808:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useErrorMessage=void 0;var a=r(n(3038)),o=n(3027);t.useErrorMessage=function(){var e=(0,o.useState)(!1),t=(0,a.default)(e,2);return{errorMessage:t[0],setErrorMessage:t[1]}}},1735:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentRequest=void 0;var a=r(n(319)),o=r(n(9713)),i=n(3027),c=n(3097),s=n(1134),u=n(8664);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentRequest=function(e){var t=e.getData,n=e.publishableKey,r=e.merchantInfo,o=e.billing,l=e.shippingData,d=o.billingData,f=l.shippingRates,m=t(),y=m.processingCountry,g=m.totalPriceLabel;return(0,i.useMemo)((function(){var e=p(p({},{emailRequired:(0,s.isEmpty)(d.email),merchantInfo:r,allowedPaymentMethods:[p(p({},{type:"CARD",tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:"stripe","stripe:version":"2018-10-31","stripe:publishableKey":n}}}),c.BASE_PAYMENT_METHOD)],shippingAddressRequired:l.needsShipping,transactionInfo:(0,u.getTransactionInfo)({billing:o,processingCountry:y,totalPriceLabel:g}),callbackIntents:["PAYMENT_AUTHORIZATION"]}),c.BASE_PAYMENT_REQUEST);if(e.allowedPaymentMethods[0].parameters.billingAddressRequired=!0,e.allowedPaymentMethods[0].parameters.billingAddressParameters={format:"FULL",phoneNumberRequired:(0,s.isFieldRequired)("phone",d.country)&&(0,s.isEmpty)(d.phone)},e.shippingAddressRequired){e.callbackIntents=[].concat((0,a.default)(e.callbackIntents),["SHIPPING_ADDRESS","SHIPPING_OPTION"]),e.shippingOptionRequired=!0;var t=(0,u.getShippingOptionParameters)(f);t.shippingOptions.length>0&&(e=p(p({},e),{},{shippingOptionParameters:t}))}return e}),[o.cartTotal,o.cartTotalItems,d,l])}},1674:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentsClient=void 0;var a=r(n(319)),o=r(n(9713)),i=r(n(7015)),c=r(n(8926)),s=r(n(3038)),u=n(3027),l=r(n(4306)),p=n(1134),d=n(6664),f=n(8664),m=n(3163),y=n(3636);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentsClient=function(e){var t=e.merchantInfo,n=e.paymentRequest,r=e.billing,g=e.shippingData,h=e.eventRegistration,b=e.canMakePayment,P=e.setErrorMessage,E=e.setPaymentMethod,O=e.exportedValues,S=e.onClick,_=e.onClose,w=e.getData,C=w().environment,M=(0,u.useState)(),k=(0,s.default)(M,2),j=k[0],D=k[1],x=(0,u.useState)(null),R=(0,s.default)(x,2),A=R[0],I=R[1],L=(0,u.useRef)(r),T=(0,u.useRef)(g),N=(0,d.useStripe)(),B=(0,y.usePaymentEvents)({billing:r,shippingData:g,eventRegistration:h}).addPaymentEvent;(0,u.useEffect)((function(){L.current=r,T.current=g}));var F=(0,u.useCallback)((function(e){var t,n;if(null!=e&&null!==(t=e.paymentMethodData)&&void 0!==t&&null!==(n=t.info)&&void 0!==n&&n.billingAddress){var r,a=e.paymentMethodData.info.billingAddress;(0,p.isAddressValid)(L.current.billingData,["phone","email"])&&(0,p.isEmpty)(null===(r=L.current.billingData)||void 0===r?void 0:r.phone)&&(a={phoneNumber:a.phoneNumber}),O.billingData=L.current.billingData=(0,f.toCartAddress)(a,{email:e.email})}null!=e&&e.shippingAddress&&(O.shippingAddress=(0,f.toCartAddress)(e.shippingAddress))}),[O,n]),q=(0,u.useCallback)((function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}),[A]),X=(0,u.useCallback)((0,c.default)(i.default.mark((function e(){var t,r,a;return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return S(),e.prev=1,e.next=4,j.loadPaymentData(n);case 4:return t=e.sent,F(t),r=JSON.parse(t.paymentMethodData.tokenizationData.token),e.next=9,N.createPaymentMethod({type:"card",card:{token:r.id},billing_details:(0,p.getBillingDetailsFromAddress)(L.current.billingData)});case 9:if(!(a=e.sent).error){e.next=12;break}throw new p.StripeError(a.error);case 12:E(a.paymentMethod.id),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(1),"CANCELED"===(null===e.t0||void 0===e.t0?void 0:e.t0.statusCode)?_():(console.log((0,p.getErrorMessage)(e.t0)),P((0,p.getErrorMessage)(e.t0)));case 18:case"end":return e.stop()}}),e,null,[[1,15]])}))),[N,j,S]),V=(0,u.useCallback)((0,c.default)(i.default.mark((function e(){return i.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,!j||A||!N){e.next=5;break}return e.next=4,b;case 4:I(j.createButton(v({onClick:X},w("buttonStyle"))));case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log(e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])}))),[N,A,j,X]),U=(0,u.useMemo)((function(){var e={environment:C,merchantInfo:t,paymentDataCallbacks:{onPaymentAuthorized:function(){return Promise.resolve({transactionState:"SUCCESS"})}}};return n.shippingAddressRequired&&(e.paymentDataCallbacks.onPaymentDataChanged=function(e){return new Promise((function(t,n){var r,i=T.current,c=e.shippingAddress,s=e.shippingOptionData,u=(0,f.toCartAddress)(c),d=(0,p.getSelectedShippingOption)(s.id),y=(0,l.default)((0,p.getIntermediateAddress)(i.shippingAddress),u),g=(0,l.default)(i.selectedRates,(0,o.default)({},d[1],d[0]));B("onShippingChanged",(function(e,n){var r=n.billing,a=n.shipping;t(e?(0,f.getPaymentRequestUpdate)({billing:r,shippingData:{needsShipping:!0,shippingRates:a.shippingRates},processingCountry:w("processingCountry"),totalPriceLabel:w("totalPriceLabel")}):{error:{reason:"SHIPPING_ADDRESS_UNSERVICEABLE",message:(0,m.__)("Your shipping address is not serviceable.","woo-stripe-payment"),intent:"SHIPPING_ADDRESS"}})}),y&&g),T.current.setShippingAddress(v(v({},T.current.shippingAddress),u)),"shipping_option_unselected"!==s.id&&(r=T.current).setSelectedRates.apply(r,(0,a.default)(d))}))}),e}),[n]);return(0,u.useEffect)((function(){D(new google.payments.api.PaymentsClient(U))}),[U]),(0,u.useEffect)((function(){V()}),[V]),{button:A,removeButton:q}}},5341:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),n(9509);var r=n(9031);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}))},9031:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(7154)),i=a(n(6479)),c=a(n(9713)),s=n(4222),u=n(1134),l=n(5516),p=a(n(5212)),d=n(3097),f=a(n(3905)),m=n(6664);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,c.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var v,h,b=(0,u.getSettings)("stripe_googlepay_data"),P=(v=new f.default.payments.api.PaymentsClient({environment:b("environment"),merchantInfo:{merchantId:b("merchantId"),merchantName:b("merchantName")}}),h=g(g({},d.BASE_PAYMENT_REQUEST),{},{allowedPaymentMethods:[d.BASE_PAYMENT_METHOD]}),v.isReadyToPay(h).then((function(){return!0})).catch((function(e){return console.log(e),!1}))),E=function(e){var t=e.getData,n=e.components,a=(0,i.default)(e,["getData","components"]),c=n.ValidationInputError,s=(0,l.useErrorMessage)(),d=s.errorMessage,f=s.setErrorMessage;return r.createElement("div",{className:"wc-stripe-gpay-container"},r.createElement(m.Elements,{stripe:u.initStripe},r.createElement(p.default,(0,o.default)({getData:t,canMakePayment:P,setErrorMessage:f},a)),d&&r.createElement(c,{errorMessage:d})))},O=function(e){var t,n=e.getData,a=((0,i.default)(e,["getData"]),n("buttonStyle").buttonType),o=(null===(t=n("editorIcons"))||void 0===t?void 0:t[a])||"long";return r.createElement("div",{className:"gpay-block-editor ".concat(a)},r.createElement("img",{src:o}))};(0,s.registerExpressPaymentMethod)({name:b("name"),canMakePayment:function(){return b("isAdmin")?!(0,u.isCartPage)()||b("cartCheckoutEnabled"):!((0,u.isCartPage)()&&!b("cartCheckoutEnabled"))&&u.initStripe.then((function(e){return e.error?e:P}))},content:r.createElement(E,{getData:b}),edit:r.createElement(O,{getData:b}),supports:{showSavedCards:b("showSavedCards"),showSaveOption:b("showSaveOption"),features:b("features")}})},8664:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.toCartAddress=t.getShippingOptions=t.getShippingOptionParameters=t.getPaymentRequestUpdate=t.getTransactionInfo=void 0;var a=r(n(319)),o=n(1134),i=((0,n(2492).getSetting)("stripeGeneralData"),function(e){var t=e.billing,n=e.processingCountry,r=e.totalPriceLabel,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ESTIMATED",i=t.cartTotal,s=t.cartTotalItems,u=t.currency,l={countryCode:n,currencyCode:u.code,totalPriceStatus:a,totalPrice:(0,o.removeNumberPrecision)(i.value,u.minorUnit).toString(),displayItems:c(s,u.minorUnit),totalPriceLabel:r};return l});t.getTransactionInfo=i,t.getPaymentRequestUpdate=function(e){var t=e.billing,n=e.shippingData,r=e.processingCountry,a=e.totalPriceLabel,o=n.needsShipping,c=n.shippingRates,u={newTransactionInfo:i({billing:t,processingCountry:r,totalPriceLabel:a},"FINAL")};return o&&(u.newShippingOptionParameters=s(c)),u};var c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=[],r=["total_tax","total_shipping"];return e.forEach((function(e){(0<e.value||e.key&&r.includes(e.key))&&n.push({label:e.label,type:"LINE_ITEM",price:(0,o.removeNumberPrecision)(e.value,t).toString()})})),n},s=function(e){var t=u(e),n=t.map((function(e){return e.id})).slice(0,1).shift();return e.forEach((function(e,t){e.shipping_rates.forEach((function(e){e.selected&&(n=(0,o.getShippingOptionId)(t,e.rate_id))}))})),{shippingOptions:t,defaultSelectedOptionId:n}};t.getShippingOptionParameters=s;var u=function(e){var t=[];return e.forEach((function(e,n){var r=e.shipping_rates.map((function(e){var t=document.createElement("textarea");t.innerHTML=e.name;var r=(0,o.formatPrice)(e.price,e.currency_code);return{id:(0,o.getShippingOptionId)(n,e.rate_id),label:t.value,description:"".concat(r)}}));t=[].concat((0,a.default)(t),(0,a.default)(r))})),t};t.getShippingOptions=u;var l=(0,o.toCartAddress)({name:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},countryCode:"country",address1:"address_1",address2:"address_2",locality:"city",administrativeArea:"state",postalCode:"postcode",email:"email",phoneNumber:"phone"});t.toCartAddress=l},3636:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(4332);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(1261);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(6107);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}));var i=n(2715);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}));var c=n(2343);Object.keys(c).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===c[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return c[e]}}))}));var s=n(1500);Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===s[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}}))}));var u=n(6095);Object.keys(u).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===u[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}}))}));var l=n(5554);Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===l[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}}))}));var p=n(3893);Object.keys(p).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===p[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return p[e]}}))}))},1261:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useAfterProcessingPayment=void 0;var a=r(n(7015)),o=r(n(8926)),i=n(3027),c=n(6664),s=n(1134),u=n(3893);t.useAfterProcessingPayment=function(e){var t=e.getData,n=e.eventRegistration,r=e.responseTypes,l=e.activePaymentMethod,p=e.savePaymentMethod,d=void 0!==p&&p,f=e.messageContext,m=void 0===f?null:f,y=(0,c.useStripe)(),g=n.onCheckoutAfterProcessingWithSuccess,v=n.onCheckoutAfterProcessingWithError;(0,u.useProcessCheckoutError)({responseTypes:r,subscriber:v,messageContext:m}),(0,i.useEffect)((function(){var e=g(function(){var e=(0,o.default)(a.default.mark((function e(n){var o;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.redirectUrl,t("name")!==l){e.next=5;break}return e.next=4,(0,s.handleCardAction)({redirectUrl:o,responseTypes:r,stripe:y,getData:t,savePaymentMethod:d});case 4:return e.abrupt("return",e.sent);case 5:return e.abrupt("return",null);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[y,r,g,l,d])}},5554:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useExpressBreakpointWidth=t.useBreakpointWidth=void 0;var a=r(n(3038)),o=n(3027),i=n(1134),c=function(e){var t=e.name,n=e.width,r=e.node,c=e.className,s=(0,o.useState)(window.innerWidth),u=(0,a.default)(s,2),l=u[0],p=u[1],d=(0,o.useCallback)((function(e){var t=(0,i.getFromCache)(e);return t?parseInt(t):0}),[]),f=(0,o.useCallback)((function(e,t){return(0,i.storeInCache)(e,t)}),[]);(0,o.useEffect)((function(){var e="function"==typeof r?r():r;if(e){var a=d(t);(!a||n>a)&&f(t,n),e.clientWidth<n?e.classList.add(c):e.clientWidth>a&&e.classList.remove(c)}}),[l,r]),(0,o.useEffect)((function(){var e=function(){return p(window.innerWidth)};return window.addEventListener("resize",e),function(){return window.removeEventListener("resize",e)}}))};t.useBreakpointWidth=c,t.useExpressBreakpointWidth=function(e){var t=e.payment_method,n=e.width,r=(0,o.useCallback)((function(){var e=document.getElementById("express-payment-method-".concat(t));return e?e.parentNode:null}),[]);c({name:"expressMaxWidth",width:n,node:r,className:"wc-stripe-express__sm"})}},2343:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useExportedValues=void 0;var r=n(3027);t.useExportedValues=function(){return(0,r.useRef)({}).current}},6095:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentEvents=void 0;var a=r(n(9713)),o=r(n(3038)),i=n(3027),c=n(1134);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){(0,a.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentEvents=function(e){var t=e.billing,n=e.shippingData,r=e.eventRegistration,s=r.onShippingRateSuccess,l=r.onShippingRateFail,p=r.onShippingRateSelectSuccess,d=(0,i.useRef)(t),f=(0,i.useRef)(n),m=(0,i.useState)(null),y=(0,o.default)(m,2),g=y[0],v=y[1],h=(0,i.useState)({onShippingChanged:!1}),b=(0,o.default)(h,2),P=b[0],E=b[1],O=(0,i.useCallback)((function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];n?v((0,a.default)({},e,t)):E(u(u({},P),{},(0,a.default)({},e,t)))}),[P,E]),S=(0,i.useCallback)((function(e){P[e]&&(delete P[e],E(P))}),[P]),_=(0,i.useCallback)((function(){var e=f.current,t=d.current;if(P.onShippingChanged&&!e.isSelectingRate&&!e.shippingRatesLoading){var n=P.onShippingChanged,r=!0;(0,c.hasShippingRates)(e.shippingRates)||(r=!1),n(r,{billing:t,shipping:e}),S("onShippingChanged")}}),[P,S]);return(0,i.useEffect)((function(){d.current=t,f.current=n})),(0,i.useEffect)((function(){g&&g.onShippingChanged&&(g.onShippingChanged(!0,{billing:d.current,shipping:f.current}),v(null))}),[g]),(0,i.useEffect)((function(){var e=s(_),t=p(_),n=l((function(e){e.hasInvalidAddress,e.hasError,P.onShippingChanged&&((0,P.onShippingChanged)(!1),S("onShippingChanged"))}));return function(){e(),n(),t()}}),[P,s,l,p]),{addPaymentEvent:O,removePaymentEvent:S}}},1500:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentRequest=void 0;var a=r(n(319)),o=r(n(9713)),i=r(n(3038)),c=n(3027),s=n(6095),u=n(1134),l=r(n(4306));function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f=(0,u.toCartAddress)();t.usePaymentRequest=function(e){var t=e.getData,n=e.onClose,r=e.stripe,o=e.billing,p=e.shippingData,m=e.eventRegistration,y=e.setPaymentMethod,g=e.exportedValues,v=e.canPay,h=(0,s.usePaymentEvents)({billing:o,shippingData:p,eventRegistration:m}).addPaymentEvent,b=(p.shippingAddress,p.needsShipping),P=p.shippingRates,E=o.billingData,O=o.cartTotalItems,S=o.currency,_=o.cartTotal,w=(0,c.useState)(null),C=(0,i.default)(w,2),M=C[0],k=C[1],j=(0,c.useRef)({}),D=(0,c.useRef)(p),x=(0,c.useRef)(o);(0,c.useEffect)((function(){D.current=p,x.current=o}),[p]),(0,c.useEffect)((function(){if(r){var e={country:t("countryCode"),currency:null==S?void 0:S.code.toLowerCase(),total:{amount:_.value,label:_.label,pending:!0},requestPayerName:!0,requestPayerEmail:(0,u.isFieldRequired)("email",E.country),requestPayerPhone:(0,u.isFieldRequired)("phone",E.country),requestShipping:b,displayItems:(0,u.getDisplayItems)(O,S)};e.requestShipping&&(e.shippingOptions=(0,u.getShippingOptions)(P)),j.current=e;var n=r.paymentRequest(j.current);n.canMakePayment().then((function(e){v(e)?k(n):k(null)}))}}),[r,_.value,E.country,P,O,S.code]),(0,c.useEffect)((function(){M&&(j.current.requestShipping&&(M.on("shippingaddresschange",A),M.on("shippingoptionchange",I)),M.on("cancel",n),M.on("paymentmethod",L))}),[M,A,n,L]);var R=(0,c.useCallback)((function(e){return function(t,n){var r=n.billing,a=n.shipping,o=r.cartTotal,i=r.cartTotalItems,c=r.currency,s=a.shippingRates;t?e.updateWith({status:"success",total:{amount:o.value,label:o.label,pending:!1},displayItems:(0,u.getDisplayItems)(i,c),shippingOptions:(0,u.getShippingOptions)(s)}):e.updateWith({status:"invalid_shipping_address"})}}),[]),A=(0,c.useCallback)((function(e){var t=e.shippingAddress,n=D.current,r=f(t);n.setShippingAddress(d(d({},n.shippingAddress),r));var a=(0,l.default)((0,u.getIntermediateAddress)(n.shippingAddress),r);h("onShippingChanged",R(e),a)}),[h]),I=(0,c.useCallback)((function(e){var t=e.shippingOption,n=D.current;n.setSelectedRates.apply(n,(0,a.default)((0,u.getSelectedShippingOption)(t.id))),h("onShippingChanged",R(e))}),[h]),L=(0,c.useCallback)((function(e){var t=e.paymentMethod,n=e.payerName,r=void 0===n?null:n,a=e.payerEmail,o=void 0===a?null:a,i=e.payerPhone,c={payerName:r,payerEmail:o,payerPhone:void 0===i?null:i};null!=t&&t.billing_details.address&&(c=f(t.billing_details.address,c)),g.billingData=c,e.shippingAddress&&(g.shippingAddress=f(e.shippingAddress)),y(t.id),e.complete("success")}),[]);return{paymentRequest:M}}},3893:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessCheckoutError=void 0;var r=n(3027);t.useProcessCheckoutError=function(e){var t=e.responseTypes,n=e.subscriber,a=e.messageContext,o=void 0===a?null:a;(0,r.useEffect)((function(){var e=n((function(e){var n;return null!=e&&null!==(n=e.processingResponse.paymentDetails)&&void 0!==n&&n.stripeErrorMessage?{type:t.ERROR,message:e.processingResponse.paymentDetails.stripeErrorMessage,messageContext:o}:null}));return function(){return e()}}),[t,n])}},4332:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessPaymentIntent=void 0;var a=r(n(7015)),o=r(n(8926)),i=r(n(9713)),c=r(n(3038)),s=n(3027),u=n(6664),l=n(1134);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useProcessPaymentIntent=function(e){var t=e.getData,n=e.billing,r=e.shippingData,p=e.onPaymentProcessing,f=e.emitResponse,m=e.error,y=e.onSubmit,g=e.activePaymentMethod,v=e.paymentType,h=void 0===v?"card":v,b=e.setupIntent,P=void 0===b?null:b,E=e.removeSetupIntent,O=void 0===E?null:E,S=e.savePaymentMethod,_=void 0!==S&&S,w=e.exportedValues,C=void 0===w?{}:w,M=e.getPaymentMethodArgs,k=void 0===M?function(){return{}}:M,j=n.billingData,D=r.shippingAddress,x=f.responseTypes,R=(0,s.useState)(null),A=(0,c.default)(R,2),I=A[0],L=A[1],T=(0,u.useStripe)(),N=(0,s.useRef)(k);(0,s.useEffect)((function(){N.current=k}),[k]);var B=(0,s.useCallback)((function(){return d(d({},{type:h,billing_details:(0,l.getBillingDetailsFromAddress)(null!=C&&C.billingData?C.billingData:j)}),N.current())}),[j,h,k]),F=(0,s.useCallback)((function(e,n){var r,a={meta:{paymentMethodData:(r={},(0,i.default)(r,"".concat(t("name"),"_token_key"),e),(0,i.default)(r,"".concat(t("name"),"_save_source_key"),n),r)}};return null!=C&&C.billingData&&(a.meta.billingData=C.billingData),null!=C&&C.shippingAddress&&(a.meta.shippingData={address:C.shippingAddress}),a}),[j,D]);return(0,s.useEffect)((function(){I&&"string"==typeof I&&y()}),[I,y]),(0,s.useEffect)((function(){var e=p((0,o.default)(a.default.mark((function e(){var n,r;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(g===t("name")){e.next=2;break}return e.abrupt("return",null);case 2:if(n=null,r=null,e.prev=3,!m){e.next=6;break}throw new l.StripeError(m);case 6:if(!P){e.next=16;break}return e.next=9,T.confirmCardSetup(P.client_secret,{payment_method:B()});case 9:if(!(n=e.sent).error){e.next=12;break}throw new l.StripeError(n.error);case 12:r=n.setupIntent.payment_method,O(),e.next=26;break;case 16:if(!I){e.next=20;break}r=I,e.next=26;break;case 20:return e.next=22,T.createPaymentMethod(B());case 22:if(!(n=e.sent).error){e.next=25;break}throw new l.StripeError(n.error);case 25:r=n.paymentMethod.id;case 26:return e.abrupt("return",(0,l.ensureSuccessResponse)(x,F(r,_)));case 29:return e.prev=29,e.t0=e.catch(3),console.log(e.t0),L(null),e.abrupt("return",(0,l.ensureErrorResponse)(x,e.t0.error));case 34:case"end":return e.stop()}}),e,null,[[3,29]])}))));return function(){return e()}}),[I,j,p,T,P,g,_]),{setPaymentMethod:L}}},6107:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useSetupIntent=void 0;var a=r(n(7015)),o=r(n(8926)),i=r(n(3038)),c=n(3027),s=r(n(7606)),u=n(1134);t.useSetupIntent=function(e){var t=e.cartTotal,n=e.setError,r=(0,c.useState)((0,u.getFromCache)("setupIntent")),l=(0,i.default)(r,2),p=l[0],d=l[1];(0,c.useEffect)((function(){var e=function(){var e=(0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!p){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,(0,s.default)({url:(0,u.getRoute)("create/setup_intent"),method:"POST"});case 4:(t=e.sent).code?n(t.message):((0,u.storeInCache)("setupIntent",t.intent),d(t.intent));case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();(0,u.cartContainsPreOrder)()||(0,u.cartContainsSubscription)()&&0==t.value?p||e():d(null)}),[t.value]);var f=(0,c.useCallback)((function(){(0,u.deleteFromCache)("setupIntent")}),[t.value]);return{setupIntent:p,removeSetupIntent:f}}},2715:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useStripeError=void 0;var a=r(n(3038)),o=n(3027);t.useStripeError=function(){var e=(0,o.useState)(!1),t=(0,a.default)(e,2);return[t[0],t[1]]}},6480:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(6479)),i=a(n(9713)),c=a(n(3038)),s=n(3027),u=n(4222),l=n(1134),p=n(3539),d=n(3187),f=n(6664),m=n(3163);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var v,h=(0,l.getSettings)("stripe_afterpay_data"),b=function(e){var t=e.getData,n=(0,s.useState)({amount:t("cartTotal"),currency:t("currency"),isEligible:t("msgOptions").isEligible}),a=(0,c.default)(n,2),o=a[0],i=a[1];return v=i,r.createElement(f.Elements,{stripe:l.initStripe,options:t("elementOptions")},r.createElement("div",{className:"wc-stripe-blocks-afterpay__label"},r.createElement(f.AfterpayClearpayMessageElement,{options:g(g({},t("msgOptions")),{amount:o.amount,currency:o.currency,isEligible:o.isEligible})})))},P=function(e){var t=e.content,n=e.billing,a=e.shippingData,i=(0,o.default)(e,["content","billing","shippingData"]),c=t,u=n.cartTotal,l=n.currency,p=a.needsShipping;return(0,s.useEffect)((function(){v({amount:u.value,currency:l.code,isEligible:p})}),[u.value,l.code,p]),r.createElement(r.Fragment,null,p&&r.createElement("div",{className:"wc-stripe-blocks-payment-method-content"},r.createElement("div",{className:"wc-stripe-blocks-afterpay-offsite__container"},r.createElement("div",{className:"wc-stripe-blocks-afterpay__offsite"},r.createElement("img",{src:h("offSiteSrc")}),r.createElement("p",null,(0,m.sprintf)((0,m.__)('After clicking "%s", you will be redirected to Afterpay to complete your purchase securely.',"woo-stripe-payment"),h("placeOrderButtonLabel"))))),r.createElement(c,g(g({},i),{},{billing:n,shippingData:a}))))};h()&&(0,u.registerPaymentMethod)({name:h("name"),label:r.createElement(b,{getData:h}),ariaLabel:(0,m.__)("Afterpay","woo-stripe-payment"),placeOrderButtonLabel:h("placeOrderButtonLabel"),canMakePayment:(0,p.canMakePayment)(h,(function(e){var t=e.settings,n=e.cartTotals,r=e.cartNeedsShipping,a=n.currency_code,o=n.currency_minor_unit,i=n.total_price,c=t("requiredParams"),s=t("accountCountry"),u=!!c[a]&&c[a];v&&v({amount:parseInt(n.total_price),currency:a,isEligible:r});var l=parseInt(i)/Math.pow(10,o),p=s===(null==u?void 0:u[0])&&r&&l>(null==u?void 0:u[1])&&l<(null==u?void 0:u[2]);return!p&&!t("hideIneligible")||p})),content:r.createElement(P,{content:p.LocalPaymentIntentContent,getData:h,confirmationMethod:"confirmAfterpayClearpayPayment"}),edit:r.createElement(d.PaymentMethod,{content:p.LocalPaymentIntentContent,getData:h}),supports:{showSavedCards:!1,showSaveOption:!1,features:h("features")}})},39:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(2029),s=n(3187),u=(0,o.getSettings)("stripe_alipay_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Alipay",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmAlipayPayment",getData:u}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},8641:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(0,o.getSettings)("stripe_bancontact_data");s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"Bancontact",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmBancontactPayment",getData:s}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},5176:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=n(6664),u=(0,o.getSettings)("stripe_becs_data"),l=function(e){return r.createElement(r.Fragment,null,r.createElement(c.PaymentMethod,e),r.createElement("div",{className:"wc-stripe-blocks-mandate becs-mandate",dangerouslySetInnerHTML:{__html:e.getData("mandate")}}))};u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"BECS",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(l,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmAuBecsDebitPayment",component:s.AuBankAccountElement}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},4990:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(7154)),i=a(n(9713)),c=a(n(3038)),s=a(n(6479)),u=n(3027),l=n(3163),p=n(4222),d=a(n(4184)),f=n(1134),m=n(3539),y=n(3187);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h=(0,f.getSettings)("stripe_boleto_data");h()&&(0,p.registerPaymentMethod)({name:h("name"),label:r.createElement(y.PaymentMethodLabel,{title:h("title"),paymentMethod:h("name"),icons:h("icon")}),ariaLabel:"Boleto",placeOrderButtonLabel:h("placeOrderButtonLabel"),canMakePayment:(0,m.canMakePayment)(h),content:r.createElement(y.PaymentMethod,{content:function(e){var t=e.eventRegistration,n=(0,s.default)(e,["eventRegistration"]),a=(0,u.useState)(""),i=(0,c.default)(a,2),p=i[0],y=i[1],g=(0,u.useState)(!1),h=(0,c.default)(g,2),b=h[0],P=h[1],E=t.onPaymentProcessing,O=(0,u.useCallback)((function(){return{boleto:{tax_id:p}}}),[p]);return(0,u.useEffect)((function(){var e=E((function(){return!!p||(0,f.ensureErrorResponse)(n.emitResponse.responseTypes,(0,l.__)("Please enter a valid CPF/CNPJ value","woo-stripe-payment"))}));return function(){return e()}}),[E,p]),r.createElement(r.Fragment,null,r.createElement("div",{className:(0,d.default)("wc-block-components-text-input",{"is-active":b||p})},r.createElement("input",{type:"text",id:"wc-stripe-boleto-tax_id",onChange:function(e){return y(e.target.value)},onFocus:function(){return P(!0)},onBlur:function(){return P(!1)}}),r.createElement("label",{htmlFor:"wc-stripe-boleto-tax_id"},(0,l.__)(" CPF / CNPJ"," woo-stripe-payment"))),(0,f.isTestMode)()&&r.createElement("div",{className:"wc-stripe-boleto__description"},r.createElement("p",null,(0,l.__)("Test mode values","woo-stripe-payment")),r.createElement("div",null,r.createElement("label",null,"CPF:")," ",r.createElement("span",null,"000.000.000-00")),r.createElement("div",null,r.createElement("label",null,"CNPJ:")," ",r.createElement("span",null,"00.000.000/0000-00"))),!(0,f.isTestMode)()&&r.createElement("div",{className:"wc-stripe-boleto__description"},r.createElement("p",null,(0,l.__)("Accepted formats","woo-stripe-payment")),r.createElement("div",null,r.createElement("label",null,"CPF:")," ",r.createElement("span",null,(0,l.__)("XXX.XXX.XXX-XX or XXXXXXXXXXX","woo-stripe-payment"))),r.createElement("div",null,r.createElement("label",null,"CNPJ:")," ",r.createElement("span",null,(0,l.__)("XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX","woo-stripe-payment")))),r.createElement(m.LocalPaymentIntentContent,(0,o.default)({callback:O},v(v({},n),{eventRegistration:t}))))},getData:h,confirmationMethod:"confirmBoletoPayment"}),edit:r.createElement(y.PaymentMethod,{content:m.LocalPaymentIntentContent,getData:h}),supports:{showSavedCards:!1,showSaveOption:!1,features:h("features")}})},4494:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=n(6664),u=(0,o.getSettings)("stripe_eps_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"EPS",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmEpsPayment",component:s.EpsBankElement,getData:u}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},4031:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=n(6664),u=(0,o.getSettings)("stripe_fpx_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"FPX",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmIdealPayment",component:s.FpxBankElement}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},3817:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(0,o.getSettings)("stripe_giropay_data");s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"Giropay",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmGiropayPayment",getData:s}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},3140:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(0,o.getSettings)("stripe_grabpay_data");s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"GrabPay",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:s,confirmationMethod:"confirmGrabPayPayment"}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},8522:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(3160);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(3994);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(878);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},3160:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useAfterProcessLocalPayment=void 0;var a=r(n(7015)),o=r(n(9713)),i=r(n(6479)),c=r(n(8926)),s=n(3027),u=n(6664),l=n(1134);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useAfterProcessLocalPayment=function(e){var t=e.getData,n=e.billingData,r=e.eventRegistration,o=e.responseTypes,p=e.activePaymentMethod,f=e.confirmationMethod,m=e.getPaymentMethodArgs,y=void 0===m?function(){return{}}:m,g=(0,u.useStripe)(),v=r.onCheckoutAfterProcessingWithSuccess,h=r.onCheckoutAfterProcessingWithError,b=(0,s.useRef)(n),P=(0,s.useRef)(y);(0,s.useEffect)((function(){b.current=n}),[n]),(0,s.useEffect)((function(){P.current=y}),[y]),(0,s.useEffect)((function(){var e=v(function(){var e=(0,c.default)(a.default.mark((function e(n){var r,c,s,u,m,y,v;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.redirectUrl,t("name")!==p){e.next=18;break}if(e.prev=2,!(c=r.match(/#response=(.+)/))){e.next=12;break}return s=JSON.parse(window.atob(decodeURIComponent(c[1]))),u=s.client_secret,m=s.return_url,y=(0,i.default)(s,["client_secret","return_url"]),e.next=8,g[f](u,{payment_method:d({billing_details:(0,l.getBillingDetailsFromAddress)(b.current)},P.current(b.current)),return_url:m});case 8:if(!(v=e.sent).error){e.next=11;break}throw new l.StripeError(v.error);case 11:window.location=decodeURI(y.order_received_url);case 12:e.next=18;break;case 14:return e.prev=14,e.t0=e.catch(2),console.log(e.t0),e.abrupt("return",(0,l.ensureErrorResponse)(o,e.t0.error));case 18:case"end":return e.stop()}}),e,null,[[2,14]])})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[g,v,h])}},878:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useCreateSource=void 0;var a=r(n(7015)),o=r(n(8926)),i=r(n(9713)),c=r(n(3038)),s=n(3027),u=n(1134),l=n(6664),p=n(3163);t.useCreateSource=function(e){var t=e.getData,n=e.billing,r=e.shippingAddress,d=e.onPaymentProcessing,f=e.responseTypes,m=e.getSourceArgs,y=void 0!==m&&m,g=e.element,v=void 0!==g&&g,h=(0,s.useState)(!1),b=(0,c.default)(h,2),P=b[0],E=b[1],O=(0,s.useState)(!1),S=(0,c.default)(O,2),_=S[0],w=S[1],C=(0,s.useRef)({billing:n,shippingAddress:r}),M=(0,l.useStripe)(),k=(0,l.useElements)();(0,s.useEffect)((function(){C.current={billing:n,shippingAddress:r}}));var j=(0,s.useCallback)((function(){var e=C.current.billing,n=e.cartTotal,r=e.currency,a=e.billingData,o=(0,u.getDefaultSourceArgs)({type:t("paymentType"),amount:n.value,billingData:a,currency:r.code,returnUrl:t("returnUrl")});return y&&(o=y(o,{billingData:a})),o}),[]),D=(0,s.useCallback)((function(e){return{meta:{paymentMethodData:(0,i.default)({},"".concat(t("name"),"_token_key"),e)}}}),[]);return(0,s.useEffect)((function(){var e=d((0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!P){e.next=2;break}return e.abrupt("return",(0,u.ensureSuccessResponse)(f,D(P.id)));case 2:if(e.prev=2,!v){e.next=11;break}if(_){e.next=6;break}throw(0,p.__)("Please enter your payment info before proceeding.","woo-stripe-payment");case 6:return e.next=8,M.createSource(k.getElement(v),j());case 8:t=e.sent,e.next=14;break;case 11:return e.next=13,M.createSource(j());case 13:t=e.sent;case 14:if(!t.error){e.next=16;break}throw new u.StripeError(t.error);case 16:return E(t.source),e.abrupt("return",(0,u.ensureSuccessResponse)(f,D(t.source.id)));case 20:return e.prev=20,e.t0=e.catch(2),console.log(e.t0),e.abrupt("return",(0,u.ensureErrorResponse)(f,e.t0.error||e.t0));case 24:case"end":return e.stop()}}),e,null,[[2,20]])}))));return function(){return e()}}),[P,d,M,f,v,_,w]),{setIsValid:w}}},3994:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useValidateCheckout=void 0;var a=r(n(3038)),o=n(3027),i=n(1134),c=n(3163);t.useValidateCheckout=function(e){var t=e.subscriber,n=e.responseTypes,r=e.component,s=void 0===r?null:r,u=e.msg,l=void 0===u?(0,c.__)("Please enter your payment info before proceeding.","woo-stripe-payment"):u,p=(0,o.useState)(!1),d=(0,a.default)(p,2),f=d[0],m=d[1];return(0,o.useEffect)((function(){var e=t((function(){return!(s&&!f)||(0,i.ensureErrorResponse)(n,l)}));return function(){return e()}}),[t,f,m,n,s]),{isValid:f,setIsValid:m}}},9474:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=n(6664),u=(0,o.getSettings)("stripe_ideal_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Ideal",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmIdealPayment",component:s.IdealBankElement}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},9738:(e,t,n)=>{n(5142),n(9474),n(3868),n(8641),n(3817),n(4494),n(4784),n(1192),n(7894),n(3766),n(4031),n(5176),n(3140),n(39),n(6480),n(4990),n(5748)},5142:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=n(3163),u=(0,o.getSettings)("stripe_klarna_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Klarna",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u,(function(e){var t=e.settings,n=e.billingData,r=e.cartTotals,a=n.country,o=r.currency_code,i=t("requiredParams");return[o]in i&&i[o].includes(a)})),content:r.createElement(c.PaymentMethod,{content:function(e){return r.createElement(r.Fragment,null,(0,o.isTestMode)()&&r.createElement("div",{className:"wc-stripe-klarna__testmode"},r.createElement("label",null,(0,s.__)("Test mode sms","woo-stripe-payment"),":")," ",r.createElement("span",null,"123456")),r.createElement(i.LocalPaymentIntentContent,e))},getData:u,confirmationMethod:"confirmKlarnaPayment"}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},3539:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.LocalPaymentSourceContent=t.LocalPaymentIntentContent=t.canMakePayment=void 0;var o=a(n(7154)),i=a(n(9713)),c=a(n(6479)),s=n(3027),u=n(6664),l=n(1134),p=n(8522),d=n(3636);function f(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?f(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):f(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.canMakePayment=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(n){var r=n.billingData,a=n.cartTotals,o=(0,c.default)(n,["billingData","cartTotals"]),i=a.currency_code,s=r.country,u=e("countries"),p=e("allowedCountries"),d=e("features"),f=!1;if(e("isAdmin"))f=!0;else{if((0,l.cartContainsSubscription)()&&!d.includes("subscriptions"))return!1;if((0,l.cartContainsPreOrder)()&&!d.includes("pre-orders"))return!1;e("currencies").includes(i)&&(f="all_except"===p?!e("exceptCountries").includes(s):"specific"===p?e("specificCountries").includes(s):!(u.length>0)||u.includes(s)),t&&f&&(f=t(m({settings:e,billingData:r,cartTotals:a},o)))}return f}},t.LocalPaymentIntentContent=function(e){var t=e.getData,n=(0,c.default)(e,["getData"]);return r.createElement(u.Elements,{stripe:l.initStripe,options:t("elementOptions")},r.createElement(g,m(m({},n),{},{getData:t})))},t.LocalPaymentSourceContent=function(e){return r.createElement(u.Elements,{stripe:l.initStripe},r.createElement(y,e))};var y=function(e){var t=e.getData,n=e.billing,a=e.shippingData,o=e.emitResponse,i=e.eventRegistration,c=e.getSourceArgs,s=void 0!==c&&c,u=e.element,l=void 0!==u&&u,d=a.shippingAddress,f=i.onPaymentProcessing,m=(i.onCheckoutAfterProcessingWithError,o.responseTypes),y=(o.noticeContexts,(0,p.useCreateSource)({getData:t,billing:n,shippingAddress:d,onPaymentProcessing:f,responseTypes:m,getSourceArgs:s,element:l}).setIsValid);return l?r.createElement(v,{name:t("name"),options:t("paymentElementOptions"),onChange:function(e){y(e.complete)},element:l}):null},g=function(e){var t=e.getData,n=e.billing,a=e.emitResponse,o=e.eventRegistration,c=e.activePaymentMethod,l=e.confirmationMethod,f=void 0===l?null:l,m=e.component,y=void 0===m?null:m,g=e.callback,h=void 0===g?null:g,b=(0,u.useElements)(),P=n.billingData,E=o.onPaymentProcessing,O=o.onCheckoutAfterProcessingWithError,S=a.responseTypes,_=a.noticeContexts,w=(0,s.useCallback)((function(e){return y?(0,i.default)({},t("paymentType"),b.getElement(y)):h?h(e):{}}),[b,h]),C=(0,p.useValidateCheckout)({subscriber:E,responseTypes:S,component:y}).setIsValid;return(0,p.useAfterProcessLocalPayment)({getData:t,billingData:P,eventRegistration:o,responseTypes:S,activePaymentMethod:c,confirmationMethod:f,getPaymentMethodArgs:w}),(0,d.useProcessCheckoutError)({responseTypes:S,subscriber:O,messageContext:_.PAYMENT}),y?r.createElement(v,{name:t("name"),options:t("paymentElementOptions"),onChange:function(e){return C(!e.empty)},element:y,callback:h}):null},v=function(e){var t=e.name,n=e.onChange,a=e.element,i=e.options,s=(0,c.default)(e,["name","onChange","element","options"]),u=a;return r.createElement("div",{className:"wc-stripe-local-payment-container ".concat(t," ").concat(u.displayName)},r.createElement(u,(0,o.default)({options:i,onChange:n},s)))}},4784:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(0,o.getSettings)("stripe_multibanco_data");s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"MultiBanco",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:s}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},5748:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(n(6664),(0,o.getSettings)("stripe_oxxo_data"));s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"OXXO",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:s,confirmationMethod:"confirmOxxoPayment"}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},3868:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=n(6664),u=(0,o.getSettings)("stripe_p24_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(c.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"P24",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmP24Payment",component:s.P24BankElement}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},1192:(e,t,n)=>{var r,a=n(3027),o=n(4222),i=n(1134),c=n(3187),s=n(3539),u=n(6664),l=(0,i.getSettings)("stripe_sepa_data"),p=(r=c.PaymentMethod,function(e){return a.createElement(a.Fragment,null,a.createElement(r,e),a.createElement("div",{className:"wc-stripe-blocks-mandate sepa-mandate",dangerouslySetInnerHTML:{__html:e.getData("mandate")}}))});l()&&(0,o.registerPaymentMethod)({name:l("name"),label:a.createElement(c.PaymentMethodLabel,{title:l("title"),paymentMethod:l("name"),icons:l("icon")}),ariaLabel:"SEPA",placeOrderButtonLabel:l("placeOrderButtonLabel"),canMakePayment:(0,s.canMakePayment)(l),content:a.createElement(p,{content:s.LocalPaymentIntentContent,getData:l,confirmationMethod:"confirmSepaDebitPayment",component:u.IbanElement}),edit:a.createElement(c.PaymentMethod,{content:s.LocalPaymentIntentContent,getData:l}),supports:{showSavedCards:!1,showSaveOption:!1,features:l("features")}})},7894:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),c=n(3187),s=(0,o.getSettings)("stripe_sofort_data");s()&&(0,a.registerPaymentMethod)({name:s("name"),label:r.createElement(c.PaymentMethodLabel,{title:s("title"),paymentMethod:s("name"),icons:s("icon")}),ariaLabel:"Sofort",placeOrderButtonLabel:s("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(s),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmSofortPayment",getData:s,callback:function(e){return{sofort:{country:e.country}}}}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:s}),supports:{showSavedCards:!1,showSaveOption:!1,features:s("features")}})},3766:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(7015)),i=a(n(8926)),c=a(n(9713)),s=a(n(3038)),u=n(3027),l=n(4222),p=n(1134),d=n(3187),f=n(3539),m=n(6664),y=n(8522),g=n(3163),v=n(3636),h=(0,p.getSettings)("stripe_wechat_data"),b=function(e){return r.createElement(m.Elements,{stripe:p.initStripe},r.createElement(P,e))},P=function(e){var t=e.getData,n=e.billing,a=(e.shippingData,e.emitResponse),o=e.eventRegistration,i=e.components,c=parseInt(t("qrSize")),s=a.responseTypes,l=o.onPaymentProcessing,d=o.onCheckoutAfterProcessingWithSuccess,f=i.ValidationInputError,m=(0,y.useValidateCheckout)({subscriber:o.onPaymentProcessing,responseTypes:a.responseTypes,msg:(0,g.__)("Please scan your QR code to continue with payment.","woo-stripe-payment")}),v=(m.isValid,m.setIsValid),h=O({getData:t,billing:n,responseTypes:s,subscriber:l}),b=h.source,P=h.error,S=h.deleteSourceFromStorage;return(0,u.useEffect)((function(){var e=d((function(){return S(),(0,p.ensureSuccessResponse)(s)}));return function(){return e()}}),[b,d,S]),(0,u.useEffect)((function(){b&&v(!0)}),[b]),b?r.createElement(E,{text:b.wechat.qr_code_url,width:c,height:c}):P?r.createElement("div",{className:"wechat-validation-error"},r.createElement(f,{errorMessage:(0,p.getErrorMessage)(P)})):(0,p.isAddressValid)(n.billingData)?null:(0,g.__)("Please fill out all the required fields in order to complete the WeChat payment.","woo-stripe-payment")},E=function(e){var t=e.text,n=e.width,a=void 0===n?128:n,o=e.height,i=void 0===o?128:o,c=e.colorDark,s=void 0===c?"#424770":c,l=e.colorLight,d=void 0===l?"#f8fbfd":l,f=e.correctLevel,m=void 0===f?QRCode.CorrectLevel.H:f,y=(0,u.useRef)();return(0,u.useEffect)((function(){new QRCode(y.current,{text:t,width:a,height:i,colorDark:s,colorLight:d,correctLevel:m})}),[y]),r.createElement(r.Fragment,null,r.createElement("div",{id:"wc-stripe-block-qrcode",ref:y}),(0,p.isTestMode)()&&r.createElement("p",null,(0,g.__)("Test mode: Click the Place Order button to proceed.","woo-stripe-payment")),!(0,p.isTestMode)()&&r.createElement("p",null,(0,g.__)("Scan the QR code using your WeChat app. Once scanned click the Place Order button.","woo-stripe-payment")))},O=function(e){var t=e.getData,n=e.billing,r=e.responseTypes,a=e.subscriber,l=(0,m.useStripe)(),d=(0,v.useStripeError)(),f=(0,s.default)(d,2),y=f[0],g=f[1],h=(0,u.useState)((0,p.getFromCache)("wechat:source")),b=(0,s.default)(h,2),P=b[0],E=b[1],O=(0,u.useRef)(null),S=n.cartTotal,_=n.billingData,w=n.currency;(0,u.useEffect)((function(){var e=a((function(){return(0,p.ensureSuccessResponse)(r,{meta:{paymentMethodData:(0,c.default)({},"".concat(t("name"),"_token_key"),P.id)}})}));return function(){return e()}}),[P,a]);var C=(0,u.useCallback)((0,i.default)(o.default.mark((function e(){var n;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,y||!(0,p.isAddressValid)(_)){e.next=9;break}return e.next=4,l.createSource((0,p.getDefaultSourceArgs)({type:t("paymentType"),amount:S.value,billingData:_,currency:w.code,returnUrl:t("returnUrl")}));case 4:if(!(n=e.sent).error){e.next=7;break}throw new p.StripeError(n.error);case 7:E(n.source),(0,p.storeInCache)("wechat:source",n.source);case 9:e.next=15;break;case 11:e.prev=11,e.t0=e.catch(0),console.log("error: ",e.t0),g(e.t0.error);case 15:case"end":return e.stop()}}),e,null,[[0,11]])}))),[l,P,S.value,_,w,y]),M=(0,u.useCallback)((function(){(0,p.deleteFromCache)("wechat:source")}),[]);return(0,u.useEffect)((function(){l&&!P&&(clearTimeout(O.current),O.current=setTimeout(C,1e3))}),[l,P,C]),{source:P,setSource:E,error:y,deleteSourceFromStorage:M}};h()&&(0,l.registerPaymentMethod)({name:h("name"),label:r.createElement(d.PaymentMethodLabel,{title:h("title"),paymentMethod:h("name"),icons:h("icon")}),ariaLabel:"WeChat",canMakePayment:(0,f.canMakePayment)(h),content:r.createElement(d.PaymentMethod,{content:b,getData:h}),edit:r.createElement(d.PaymentMethod,{content:b,getData:h}),supports:{showSavedCards:!1,showSaveOption:!1,features:h("features")}})},5180:(e,t,n)=>{n(3139),n(3726)},3726:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(3038)),i=a(n(6479)),c=n(3027),s=n(4222),u=n(1134),l=n(3636),p=n(6664),d=(0,u.getSettings)("stripe_payment_request_data"),f=function(e){return r.createElement("div",{className:"wc-stripe-payment-request-container"},r.createElement(p.Elements,{stripe:u.initStripe},r.createElement(m,e)))},m=function(e){var t=e.getData,n=e.onClick,a=e.onClose,s=e.billing,u=e.shippingData,d=e.eventRegistration,f=e.emitResponse,m=e.onSubmit,y=e.activePaymentMethod,g=((0,i.default)(e,["getData","onClick","onClose","billing","shippingData","eventRegistration","emitResponse","onSubmit","activePaymentMethod"]),d.onPaymentProcessing),v=f.responseTypes,h=f.noticeContexts,b=(0,p.useStripe)(),P=(0,l.useStripeError)(),E=(0,o.default)(P,1)[0],O=(0,l.useExportedValues)();(0,l.useExpressBreakpointWidth)({payment_method:t("name"),width:300});var S=(0,l.useProcessPaymentIntent)({getData:t,billing:s,shippingData:u,onPaymentProcessing:g,emitResponse:f,error:E,onSubmit:m,activePaymentMethod:y,exportedValues:O}).setPaymentMethod;(0,l.useAfterProcessingPayment)({getData:t,eventRegistration:d,responseTypes:v,activePaymentMethod:y,messageContext:h.EXPRESS_PAYMENTS});var _=(0,l.usePaymentRequest)({getData:t,onClose:a,stripe:b,billing:s,shippingData:u,eventRegistration:d,setPaymentMethod:S,exportedValues:O,canPay:function(e){return null!=e&&!e.applePay}}).paymentRequest,w=(0,c.useMemo)((function(){return{paymentRequest:_,style:{paymentRequestButton:t("paymentRequestButton")}}}),[_]);return _?r.createElement(p.PaymentRequestButtonElement,{options:w,onClick:n}):null},y=function(e){e.getData,(0,i.default)(e,["getData"]);var t=(0,c.useRef)();return(0,c.useEffect)((function(){var e=window.devicePixelRatio;t.current.width=20*e,t.current.height=20*e;var n=t.current.getContext("2d");n.scale(e,e),n.beginPath(),n.arc(10,10,10,0,2*Math.PI),n.fillStyle="#986fff",n.fill()})),r.createElement("div",{className:"payment-request-block-editor"},r.createElement("div",{className:"icon-container"},r.createElement("span",null,"Buy now"),r.createElement("canvas",{className:"PaymentRequestButton-icon",ref:t}),r.createElement("i",{className:"payment-request-arrow"})))};(0,s.registerExpressPaymentMethod)({name:d("name"),canMakePayment:function(e){var t=e.cartTotals;if(d("isAdmin"))return!0;var n=t.currency_code,r=t.total_price;return(0,u.canMakePayment)({country:d("countryCode"),currency:n.toLowerCase(),total:{label:d("totalLabel"),amount:parseInt(r)}},(function(e){return null!=e&&!e.applePay}))},content:r.createElement(f,{getData:d}),edit:r.createElement(y,{getData:d}),supports:{showSavedCards:d("showSavedCards"),showSaveOption:d("showSaveOption"),features:d("features")}})},1065:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(7015)),o=r(n(8926)),i=n(3027),c=n(1134);t.default=function(e){var t=e.eventRegistration,n=e.emitResponse,r=e.getData,s=t.onCheckoutAfterProcessingWithSuccess,u=n.responseTypes,l=(0,i.useCallback)(function(){var e=(0,o.default)(a.default.mark((function e(t){var n,o;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.redirectUrl,e.next=3,c.initStripe;case 3:return o=e.sent,e.next=6,(0,c.handleCardAction)({redirectUrl:n,getData:r,stripe:o,responseTypes:u});case 6:return e.abrupt("return",e.sent);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[s]);return(0,i.useEffect)((function(){var e=s(l);return function(){return e()}}),[s]),null}},1134:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.isCheckoutPage=t.isCartPage=t.versionCompare=t.deleteFromCache=t.getFromCache=t.storeInCache=t.isTestMode=t.getDefaultSourceArgs=t.cartContainsSubscription=t.cartContainsPreOrder=t.getLocalPaymentMethods=t.registerLocalPaymentMethod=t.canMakePayment=t.getDisplayItems=t.getShippingOptionId=t.getShippingOptions=t.formatPrice=t.filterEmptyValues=t.getIntermediateAddress=t.toCartAddress=t.handleCardAction=t.isUserLoggedIn=t.hasShippingRates=t.getSelectedShippingOption=t.isFieldRequired=t.getLocaleFields=t.isAddressValid=t.removeNumberPrecision=t.isEmpty=t.StripeError=t.getSettings=t.getBillingDetailsFromAddress=t.getErrorMessage=t.ensureErrorResponse=t.ensureSuccessResponse=t.getRoute=t.getCreditCardForm=t.registerCreditCardForm=t.initStripe=void 0;var a=r(n(319)),o=r(n(7015)),i=r(n(8926)),c=r(n(3038)),s=r(n(8)),u=r(n(4575)),l=r(n(2205)),p=r(n(8585)),d=r(n(9754)),f=r(n(5957)),m=r(n(9713)),y=r(n(6479)),g=n(4465),v=n(2492),h=r(n(7606)),b=n(8419);function P(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return E(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?E(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){c=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(c)throw o}}}}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function S(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?O(Object(n),!0).forEach((function(t){(0,m.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var _=(0,v.getSetting)("stripeGeneralData"),w=_.publishableKey,C=_.account,M=(0,v.getSetting)("stripeErrorMessages"),k=(0,v.getSetting)("countryLocale",{}),j=/^([\w]+)\:(.+)$/,D=(0,v.getSetting)("stripeGeneralData").routes,x={},R=[],A={recipient:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},payerName:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},country:"country",addressLine:function(e,t){return t[0]&&(e.address_1=t[0]),t[1]&&(e.address_2=t[1]),e},line1:"address_1",line2:"address_2",city:"city",region:"state",state:"state",postalCode:"postcode",postal_code:"postcode",payerEmail:"email",payerPhone:"phone"},I=new Promise((function(e,t){(0,g.loadStripe)(w,C?{stripeAccount:C}:{}).then((function(t){e(t)})).catch((function(t){e({error:t})}))}));t.initStripe=I,t.registerCreditCardForm=function(e){var t=e.id,n=(0,y.default)(e,["id"]);x[t]=n},t.getCreditCardForm=function(e){return x.hasOwnProperty(e)?x[e]:{}};var L=function(e){return null!=D&&D[e]?D[e]:console.log("".concat(e," is not a valid route"))};t.getRoute=L;var T=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return S({type:e.SUCCESS},t)};t.ensureSuccessResponse=T;var N=function(e,t){return{type:e.ERROR,message:B(t)}};t.ensureErrorResponse=N;var B=function(e){return"string"==typeof e?e:null!=e&&e.code&&null!=M&&M[e.code]?M[e.code]:null!=e&&e.statusCode?null!=M&&M[e.statusCode]?M[e.statusCode]:e.statusMessage:e.message};t.getErrorMessage=B;var F=function(e){var t={name:"".concat(e.first_name," ").concat(e.last_name),address:{city:e.city||null,country:e.country||null,line1:e.address_1||null,line2:e.address_2||null,postal_code:e.postcode||null,state:e.state||null}};return null!=e&&e.phone&&(t.phone=e.phone),null!=e&&e.email&&(t.email=e.email),t};t.getBillingDetailsFromAddress=F,t.getSettings=function(e){return function(t){return t?(0,v.getSetting)(e)[t]:(0,v.getSetting)(e)}};var q=function(e){(0,l.default)(a,e);var t,n,r=(t=a,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,d.default)(t);if(n){var a=(0,d.default)(this).constructor;e=Reflect.construct(r,arguments,a)}else e=r.apply(this,arguments);return(0,p.default)(this,e)});function a(e){var t;return(0,u.default)(this,a),(t=r.call(this,e.message)).error=e,t}return a}((0,f.default)(Error));t.StripeError=q;var X=function(e){return"string"==typeof e?0==e.length||""==e:Array.isArray(e)?0==array.length:"object"!==(0,s.default)(e)||0==Object.keys(e).length};t.isEmpty=X,t.removeNumberPrecision=function(e,t){return e/Math.pow(10,t)},t.isAddressValid=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=V(e.country),r=0,a=Object.entries(e);r<a.length;r++){var o=(0,c.default)(a[r],2),i=o[0],s=o[1];if(!t.includes(i)&&null!=n&&n[i]&&n[i].required&&X(s))return!1}return!0};var V=function(e){var t=S({},k.default);return e&&null!=k&&k[e]&&(t=Object.entries(k[e]).reduce((function(e,t){var n=(0,c.default)(t,2),r=n[0],a=n[1];return e[r]=S(S({},e[r]),a),e}),t),["phone","email"].forEach((function(e){var n=document.getElementById(e);n&&(t[e]={required:n.required})}))),t};t.getLocaleFields=V,t.isFieldRequired=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=V(t);return[e]in n&&n[e].required},t.getSelectedShippingOption=function(e){var t=e.match(j);if(t){var n=t[1];return[t[2],n]}return[]},t.hasShippingRates=function(e){return e.map((function(e){return e.shipping_rates.length>0})).filter(Boolean).length>0},t.isUserLoggedIn=function(e){return e>0};var U=function(){var e=(0,i.default)(o.default.mark((function e(t,n){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(0,h.default)({url:D["sync/intent"],method:"POST",data:{order_id:t,client_secret:n}});case 3:e.next=8;break;case 5:e.prev=5,e.t0=e.catch(0),console.log(e.t0);case 8:case"end":return e.stop()}}),e,null,[[0,5]])})));return function(t,n){return e.apply(this,arguments)}}(),W=function(){var e=(0,i.default)(o.default.mark((function e(t){var n,r,a,i,c,s,u,l,p,d,f,y,g,v;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.redirectUrl,r=t.responseTypes,a=t.stripe,i=t.getData,c=t.savePaymentMethod,s=void 0!==c&&c,e.prev=1,!(u=n.match(/#response=(.+)/))){e.next=20;break}return l=JSON.parse(window.atob(decodeURIComponent(u[1]))),p=l.client_secret,d=l.order_id,f=l.order_key,e.next=7,a.handleCardAction(p);case 7:if(!(y=e.sent).error){e.next=11;break}return U(d,p),e.abrupt("return",N(r,y.error));case 11:return g=(0,m.default)({order_id:d,order_key:f},"".concat(i("name"),"_save_source_key"),s),e.next=14,(0,h.default)({url:L("process/payment"),method:"POST",data:g});case 14:if(!(v=e.sent).messages){e.next=17;break}return e.abrupt("return",N(r,v.messages));case 17:return e.abrupt("return",T(r,{redirectUrl:v.redirect}));case 20:return e.abrupt("return",T(r));case 21:e.next=27;break;case 23:return e.prev=23,e.t0=e.catch(1),console.log(e.t0),e.abrupt("return",N(r,e.t0));case 27:case"end":return e.stop()}}),e,null,[[1,23]])})));return function(t){return e.apply(this,arguments)}}();t.handleCardAction=W,t.toCartAddress=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A;return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};t=S(S({},t),Y(n));for(var a=0,o=Object.entries(e);a<o.length;a++){var i,s=(0,c.default)(o[a],2),u=s[0],l=s[1];null!==(i=t)&&void 0!==i&&i[u]&&("function"==typeof l?l(r,t[u]):r[l]=t[u])}return r}},t.getIntermediateAddress=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["city","postcode","state","country"],r={},a=P(n);try{for(a.s();!(t=a.n()).done;){var o=t.value;r[o]=e[o]}}catch(e){a.e(e)}finally{a.f()}return r};var Y=function(e){return Object.keys(e).filter((function(t){return Boolean(e[t])})).reduce((function(t,n){return S(S({},t),{},(0,m.default)({},n,e[n]))}),{})};t.filterEmptyValues=Y;var G=function(e,t){var n,r=(0,b.getCurrency)(t),a=r.prefix,o=r.suffix,i=r.decimalSeparator,c=r.minorUnit,s=r.thousandSeparator;if(""==e||void 0===e)return e;e="string"==typeof e?parseInt(e,10):e;var u="",l=(e=(e/=Math.pow(10,c)).toString().replace(".",i)).indexOf(i);l<0?c>0&&(e+="".concat(i).concat(new Array(c+1).join("0"))):(u=e.substr(l+1)).length<c&&(e+=new Array(c-u.length+1).join("0"));var p=e.match(new RegExp("(\\d+)\\".concat(i,"(\\d+)")));return p&&(e=p[1],u=p[2]),e=e.replace(new RegExp("\\B(?=(\\d{3})+(?!\\d))","g"),"".concat(s)),a+(e=(null===(n=u)||void 0===n?void 0:n.length)>0?e+i+u:e)+o};t.formatPrice=G,t.getShippingOptions=function(e){var t=[];return e.forEach((function(e,n){e.shipping_rates.sort((function(e){return e.selected?-1:1}));var r=e.shipping_rates.map((function(e){var t=document.createElement("textarea");return t.innerHTML=e.name,G(e.price,e.currency_code),{id:H(n,e.rate_id),label:t.value,amount:parseInt(e.price,10)}}));t=[].concat((0,a.default)(t),(0,a.default)(r))})),t};var H=function(e,t){return"".concat(e,":").concat(t)};t.getShippingOptionId=H,t.getDisplayItems=function(e,t){t.minorUnit;var n=[],r=["total_tax","total_shipping"];return e.forEach((function(e){(0<e.value||e.key&&r.includes(e.key))&&n.push({label:e.label,pending:!1,amount:e.value})})),n};var z={};t.canMakePayment=function(e,t){var n=e.country,r=e.currency,a=e.total;return new Promise((function(e,o){var i=[n,r,a.amount].reduce((function(e,t){return"".concat(e,"-").concat(t)}));return r?i in z?e(z[i]):I.then((function(c){if(c.error)return o(c.error);c.paymentRequest({country:n,currency:r,total:a}).canMakePayment().then((function(n){return z[i]=t(n),e(z[i])}))})).catch(o):e(!1)}))},t.registerLocalPaymentMethod=function(e){R.push(e)},t.getLocalPaymentMethods=function(){return R},t.cartContainsPreOrder=function(){var e=(0,v.getSetting)("stripePaymentData");return e&&e.pre_order},t.cartContainsSubscription=function(){var e=(0,v.getSetting)("stripePaymentData");return e&&e.subscription},t.getDefaultSourceArgs=function(e){var t=e.type,n=e.amount,r=e.billingData,a=e.currency,o=e.returnUrl;return{type:t,amount:n,currency:a,owner:F(r),redirect:{return_url:o}}},t.isTestMode=function(){return"test"===(0,v.getSetting)("stripeGeneralData").mode};var J=function(e){return"".concat("stripe:").concat(e)};t.storeInCache=function(e,t){var n=Math.floor((new Date).getTime()/1e3)+900;"sessionStorage"in window&&sessionStorage.setItem(J(e),JSON.stringify({value:t,exp:n}))},t.getFromCache=function(e){if("sessionStorage"in window)try{var t=JSON.parse(sessionStorage.getItem(J(e)));if(t){var n=t.value,r=t.exp;if(!(Math.floor((new Date).getTime()/1e3)>r))return n;Q(J(e))}}catch(e){}return null};var Q=function(e){"sessionStorage"in window&&sessionStorage.removeItem(J(e))};t.deleteFromCache=Q,t.versionCompare=function(e,t,n){switch(n){case"<":return e<t;case">":return e>t;case"<=":return e<=t;case">=":return e>=t;case"=":return e==t}return!1},t.isCartPage=function(){return"cart"===(0,v.getSetting)("stripeGeneralData").page},t.isCheckoutPage=function(){return"checkout"===(0,v.getSetting)("stripeGeneralData").page}},4184:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)&&n.length){var i=a.apply(null,n);i&&e.push(i)}else if("object"===o)for(var c in n)r.call(n,c)&&n[c]&&e.push(c)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()},1127:()=>{},7776:()=>{},4836:()=>{},85:()=>{},3110:()=>{},8356:()=>{},5773:()=>{},9509:()=>{},3139:()=>{}}]);
3
  //# sourceMappingURL=commons.js.map
packages/blocks/build/commons.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/construct.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/createClass.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/extends.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/inherits.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/typeof.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://wc_stripe.[name]/./node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","webpack://wc_stripe.[name]/./node_modules/@stripe/stripe-js/dist/stripe.esm.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/components/checkout/checkbox/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/components/checkout/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/components/checkout/payment-method-label/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/components/checkout/payment-method/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/components/checkout/radio-option/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/hooks/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/hooks/use-create-link-token.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/hooks/use-initialize-plaid.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/hooks/use-process-payment.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/applepay/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/applepay/payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/components/custom-card-form.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/components/stripe-card-form.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/error-boundary.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/button.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/constants.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/hooks/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-error-message.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-payment-request.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-payments-client.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/util.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-after-process-payment.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-breakpoint-width.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-exported-values.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-payment-events.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-payment-request.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-process-checkout-error.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-process-payment-intent.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-setup-intent.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-stripe-error.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/afterpay.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/alipay.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/bancontact.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/becs.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/boleto.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/eps.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/fpx.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/giropay.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/grabpay.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/hooks/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-after-process-local-payment.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-create-source.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-validate-checkout.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/ideal.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/klarna.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/local-payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/multibanco.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/oxxo.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/p24.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/sepa.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/sofort.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/wechat.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/payment-request/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/payment-request/payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/saved-card-component.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/util.js","webpack://wc_stripe.[name]/./node_modules/classnames/index.js"],"names":["module","exports","arr","len","length","i","arr2","Array","isArray","arrayLikeToArray","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","instance","Constructor","TypeError","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","Reflect","construct","a","push","Function","bind","prototype","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","obj","_extends","assign","source","hasOwnProperty","call","_getPrototypeOf","o","getPrototypeOf","__proto__","subClass","superClass","create","constructor","__esModule","toString","indexOf","sham","Proxy","Date","e","iter","Symbol","iterator","from","_arr","_n","_d","_e","_s","_i","next","objectWithoutPropertiesLoose","excluded","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","keys","_typeof","assertThisInitialized","_setPrototypeOf","p","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","minLen","n","slice","name","test","isNativeFunction","_wrapNativeSuper","_cache","Map","has","get","set","Wrapper","React","_objectWithoutProperties","_objectWithoutPropertiesLoose","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","emptyFunction","emptyFunctionWithReset","resetWarningCache","propTypes","shim","propName","componentName","location","propFullName","secret","Error","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","factoryWithThrowingShims","isUnknownObject","raw","PLAIN_OBJECT_STR","isEqual","left","right","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","allKeys","l","r","every","usePrevious","ref","useRef","useEffect","current","validateStripe","maybeStripe","elements","createToken","createPaymentMethod","confirmCardPayment","parseStripeProp","isPromise","tag","stripePromise","stripe","ElementsContext","createContext","displayName","Elements","_ref","rawStripeProp","options","children","_final","isMounted","parsed","useMemo","_React$useState2","useState","ctx","setContext","prevStripe","prevOptions","console","warn","anyStripe","_registerWrapper","version","createElement","Provider","useElementsContextWithUseCase","useCaseMessage","useCase","concat","parseElementsContext","useContext","ElementsConsumer","_ref2","useCallbackReference","cb","extractUpdateableOptions","paymentRequest","noop","createElementComponent","type","isServer","str","charAt","toUpperCase","Element","id","className","_ref$options","_ref$onBlur","onBlur","_ref$onFocus","onFocus","_ref$onReady","onReady","_ref$onChange","onChange","_ref$onEscape","onEscape","_ref$onClick","onClick","elementRef","domNode","callOnReady","callOnBlur","callOnFocus","callOnClick","callOnChange","callOnEscape","useLayoutEffect","mount","on","updateableOptions","update","destroy","__elementType","window","AuBankAccountElement","CardElement","CardNumberElement","CardExpiryElement","CardCvcElement","FpxBankElement","IbanElement","IdealBankElement","P24BankElement","EpsBankElement","PaymentRequestButtonElement","AfterpayClearpayMessageElement","useElements","useStripe","factory","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","initStripe","startTime","registerWrapper","stripePromise$1","params","Stripe","script","scripts","document","querySelectorAll","src","findScript","queryString","advancedFraudSignals","headOrBody","head","body","appendChild","injectScript","addEventListener","loadCalled","loadStripe","_len","_key","now","label","checked","aria-hidden","xmlns","viewBox","d","title","icons","paymentMethod","components","Label","PaymentMethodLabel","Icons","PaymentMethodIcons","text","align","getData","content","Content","desc","el","childNodes","classList","add","Description","payment_method","RadioControlOption","event","setValidationError","linkToken","setLinkToken","useCallback","url","getRoute","method","data","response","token","storeInCache","getFromCache","linkHandler","resolvePopup","openLinkPopup","open","Plaid","clientName","env","product","selectAccount","countryCodes","onSuccess","publicToken","metaData","onExit","getErrorMessage","error_message","onPaymentProcessing","responseTypes","unsubscribe","result","deleteFromCache","ensureSuccessResponse","meta","paymentMethodData","JSON","stringify","ensureErrorResponse","getSettings","ACHPaymentContent","eventRegistration","emitResponse","onSubmit","onCheckoutAfterProcessingWithError","ValidationInputError","validationError","useCreateLinkToken","useProcessCheckoutError","subscriber","useInitializePlaid","useProcessPayment","isTestMode","ACHTestModeCredentials","errorMessage","__","registerPaymentMethod","ariaLabel","canMakePayment","cartTotals","currency_code","PaymentMethod","savedTokenComponent","edit","placeOrderButtonLabel","supports","showSavedCards","showSaveOption","features","ApplePayContent","ApplePayButton","onClose","billing","shippingData","activePaymentMethod","noticeContexts","useStripeError","exportedValues","useExportedValues","useExpressBreakpointWidth","width","setPaymentMethod","useProcessPaymentIntent","useAfterProcessingPayment","messageContext","EXPRESS_PAYMENTS","usePaymentRequest","canPay","applePay","handleClick","preventDefault","show","style","ApplePayEdit","registerExpressPaymentMethod","currency","total_price","country","toLowerCase","total","amount","parseInt","Bootstrap","CardIcon","htmlFor","registerCreditCardForm","breakpoint","component","classes","focus","empty","invalid","eventChange","cardType","setCardType","elementOrder","container","setContainer","getCreditCardForm","CardForm","postalCodeEnabled","forEach","setElementOrder","includes","useBreakpointWidth","getCardIconSrc","cloneElement","brand","complete","idx","nextElement","getElement","sprintf","SimpleForm","data-tid","cardOptions","postalCode","billingData","postcode","hidePostalCode","isFieldRequired","iconStyle","displaySaveCard","customerId","isUserLoggedIn","cartContainsSubscription","cartContainsPreOrder","CreditCardContent","setError","catch","CreditCardElement","savePaymentMethod","setSavePaymentMethod","getPaymentMethodArgs","elType","card","useSetupIntent","cartTotal","setupIntent","removeSetupIntent","Tag","CustomCardForm","StripeCardForm","SavePaymentMethod","state","hasError","errorInfo","setState","componentStack","Component","publishableKey","setErrorMessage","checkoutStatus","merchantInfo","merchantId","merchantName","buttonContainer","buttonType","usePaymentsClient","button","removeButton","append","parameters","allowedAuthMethods","allowedCardNetworks","assuranceDetailsRequired","apiVersion","apiVersionMinor","shippingRates","processingCountry","totalPriceLabel","emailRequired","isEmpty","email","allowedPaymentMethods","tokenizationSpecification","gateway","BASE_PAYMENT_METHOD","shippingAddressRequired","needsShipping","transactionInfo","getTransactionInfo","callbackIntents","BASE_PAYMENT_REQUEST","billingAddressRequired","billingAddressParameters","format","phoneNumberRequired","phone","shippingOptionRequired","shippingOptionParameters","getShippingOptionParameters","shippingOptions","cartTotalItems","environment","paymentsClient","setPaymentsClient","setButton","currentBilling","currentShipping","addPaymentEvent","usePaymentEvents","setAddressData","paymentData","billingAddress","isAddressValid","phoneNumber","toCartAddress","shippingAddress","parentElement","firstChild","removeChild","loadPaymentData","parse","tokenizationData","billing_details","getBillingDetailsFromAddress","StripeError","statusCode","log","createButton","paymentOptions","paymentDataCallbacks","onPaymentAuthorized","transactionState","onPaymentDataChanged","shipping","address","shippingOptionData","intermediateAddress","selectedRates","getSelectedShippingOption","addressEqual","getIntermediateAddress","shippingEqual","success","getPaymentRequestUpdate","reason","message","intent","setShippingAddress","setSelectedRates","google","payments","api","PaymentsClient","isReadyToPayRequest","isReadyToPay","GooglePayContent","useErrorMessage","GooglePayEdit","isCartPage","getSetting","status","countryCode","currencyCode","code","totalPriceStatus","totalPrice","removeNumberPrecision","minorUnit","displayItems","getDisplayItems","newTransactionInfo","newShippingOptionParameters","unit","items","item","price","getShippingOptions","defaultSelectedOptionId","map","option","shift","shippingPackage","shipping_rates","rate","selected","getShippingOptionId","rate_id","rates","txt","innerHTML","formatPrice","description","first_name","split","join","last_name","pop","address1","address2","locality","administrativeArea","onCheckoutAfterProcessingWithSuccess","unsubscribeAfterProcessingWithSuccess","redirectUrl","handleCardAction","innerWidth","windowWidth","setWindowWith","getMaxWidth","maxWidth","setMaxWidth","clientWidth","remove","handleResize","removeEventListener","getElementById","parentNode","onShippingRateSuccess","onShippingRateFail","onShippingRateSelectSuccess","handler","setHandler","onShippingChanged","paymentEvents","setPaymentEvent","execute","removePaymentEvent","isSelectingRate","shippingRatesLoading","hasShippingRates","unsubscribeShippingRateSuccess","unsubscribeShippingRateSelectSuccess","unsubscribeShippingRateFail","hasInvalidAddress","setPaymentRequest","paymentRequestOptions","pending","requestPayerName","requestPayerEmail","requestPayerPhone","requestShipping","onShippingAddressChange","onShippingOptionChange","onPaymentMethodReceived","updatePaymentEvent","updateWith","shippingOption","paymentResponse","payerName","payerEmail","payerPhone","processingResponse","paymentDetails","stripeErrorMessage","ERROR","paymentType","currentPaymentMethodArgs","getCreatePaymentMethodArgs","getSuccessResponse","paymentMethodId","unsubscribeProcessingPayment","confirmCardSetup","client_secret","setSetupIntent","createSetupIntent","variablesHandler","isEligible","variables","setVariables","AfterpayPaymentMethod","settings","cartNeedsShipping","currency_minor_unit","requiredParams","accountCountry","requiredParamObj","available","LocalPaymentIntentContent","confirmationMethod","LocalPaymentSourceContent","taxId","setTaxId","isActive","setIsActive","callback","boleto","tax_id","currentBillingData","match","atob","decodeURIComponent","return_url","order","decodeURI","order_received_url","getSourceArgs","setSource","isValid","setIsValid","currentValues","getSourceArgsInternal","getDefaultSourceArgs","returnUrl","getSuccessData","sourceId","createSource","msg","countries","LocalPaymentIntentMethod","LocalPaymentSourceMethod","useCreateSource","LocalPaymentElementContainer","useValidateCheckout","useAfterProcessLocalPayment","PAYMENT","SepaPaymentMethod","mandate","notification_method","interval","sofort","WeChatComponent","WeChatPaymentMethod","size","deleteSourceFromStorage","QRCodeComponent","wechat","qr_code_url","height","colorDark","colorLight","correctLevel","QRCode","CorrectLevel","H","createSourceTimeoutId","clearTimeout","setTimeout","PaymentRequestContent","PaymentRequestButton","paymentRequestButton","PaymentRequestEdit","canvas","scale","devicePixelRatio","getContext","beginPath","arc","Math","PI","fillStyle","fill","handleSuccessResult","unsubscribeOnCheckoutAfterProcessingWithSuccess","account","messages","countryLocale","SHIPPING_OPTION_REGEX","routes","creditCardForms","localPaymentMethods","PAYMENT_REQUEST_ADDRESS_MAPPINGS","recipient","addressLine","address_1","address_2","line1","line2","city","region","postal_code","stripeAccount","route","SUCCESS","statusMessage","exclude","fields","getLocaleFields","entries","required","localeFields","default","reduce","locale","field","packageIdx","filter","Boolean","syncPaymentIntentWithOrder","order_id","order_key","redirect","address_mappings","cartAddress","filterEmptyValues","cartKey","values","getCurrency","prefix","suffix","decimalSeparator","thousandSeparator","fractional","index","replace","substr","RegExp","sort","packageId","rateId","cartItems","pre_order","subscription","owner","mode","getCacheKey","exp","floor","getTime","sessionStorage","setItem","getItem","removeItem","ver1","ver2","compare","page","hasOwn","classNames","argType","inner"],"mappings":"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","file":"commons.js","sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = global || self, factory(global.ReactStripe = {}, global.React));\n}(this, (function (exports, React) { 'use strict';\n\n React = React && Object.prototype.hasOwnProperty.call(React, 'default') ? React['default'] : React;\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function createCommonjsModule(fn, module) {\n \treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n var ReactPropTypesSecret_1 = ReactPropTypesSecret;\n\n function emptyFunction() {}\n\n function emptyFunctionWithReset() {}\n\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n var factoryWithThrowingShims = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret_1) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n var propTypes = createCommonjsModule(function (module) {\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = factoryWithThrowingShims();\n }\n });\n\n var isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n };\n var isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n }; // We are using types to enforce the `stripe` prop in this lib,\n // but in an untyped integration `stripe` could be anything, so we need\n // to do some sanity validation to prevent type errors.\n\n var isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n };\n\n var PLAIN_OBJECT_STR = '[object Object]';\n var isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false;\n if (!leftPlainObject && !leftArray) return false;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n };\n\n var usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n };\n\n var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n // integration `stripe` could be anything, so we need to do some sanity\n // validation to prevent type errors.\n\n var validateStripe = function validateStripe(maybeStripe) {\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(INVALID_STRIPE_ERROR);\n };\n\n var parseStripeProp = function parseStripeProp(raw) {\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(validateStripe)\n };\n }\n\n var stripe = validateStripe(raw);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n };\n\n var ElementsContext = /*#__PURE__*/React.createContext(null);\n ElementsContext.displayName = 'ElementsContext';\n var parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an <Elements> provider.\"));\n }\n\n return ctx;\n };\n /**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\n var Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n\n var _final = React.useRef(false);\n\n var isMounted = React.useRef(true);\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]);\n\n var _React$useState = React.useState(function () {\n return {\n stripe: null,\n elements: null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n var prevStripe = usePrevious(rawStripeProp);\n var prevOptions = usePrevious(options);\n\n if (prevStripe !== null) {\n if (prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n\n if (!isEqual(options, prevOptions)) {\n console.warn('Unsupported prop change on Elements: You cannot change the `options` prop after setting the `stripe` prop.');\n }\n }\n\n if (!_final.current) {\n if (parsed.tag === 'sync') {\n _final.current = true;\n setContext({\n stripe: parsed.stripe,\n elements: parsed.stripe.elements(options)\n });\n }\n\n if (parsed.tag === 'async') {\n _final.current = true;\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted.current) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n setContext({\n stripe: stripe,\n elements: stripe.elements(options)\n });\n }\n });\n }\n }\n\n React.useEffect(function () {\n return function () {\n isMounted.current = false;\n };\n }, []);\n React.useEffect(function () {\n var anyStripe = ctx.stripe;\n\n if (!anyStripe || !anyStripe._registerWrapper) {\n return;\n }\n\n anyStripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"1.4.0\"\n });\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n };\n Elements.propTypes = {\n stripe: propTypes.any,\n options: propTypes.object\n };\n var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\n var useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\n var useStripe = function useStripe() {\n var _useElementsContextWi2 = useElementsContextWithUseCase('calls useStripe()'),\n stripe = _useElementsContextWi2.stripe;\n\n return stripe;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\n var ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts <ElementsConsumer>'); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n };\n ElementsConsumer.propTypes = {\n children: propTypes.func.isRequired\n };\n\n var useCallbackReference = function useCallbackReference(cb) {\n var ref = React.useRef(cb);\n React.useEffect(function () {\n ref.current = cb;\n }, [cb]);\n return function () {\n if (ref.current) {\n ref.current.apply(ref, arguments);\n }\n };\n };\n\n var extractUpdateableOptions = function extractUpdateableOptions(options) {\n if (!isUnknownObject(options)) {\n return {};\n }\n\n var _ = options.paymentRequest,\n rest = _objectWithoutProperties(options, [\"paymentRequest\"]);\n\n return rest;\n };\n\n var noop = function noop() {};\n\n var capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n var createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n _ref$onBlur = _ref.onBlur,\n onBlur = _ref$onBlur === void 0 ? noop : _ref$onBlur,\n _ref$onFocus = _ref.onFocus,\n onFocus = _ref$onFocus === void 0 ? noop : _ref$onFocus,\n _ref$onReady = _ref.onReady,\n onReady = _ref$onReady === void 0 ? noop : _ref$onReady,\n _ref$onChange = _ref.onChange,\n onChange = _ref$onChange === void 0 ? noop : _ref$onChange,\n _ref$onEscape = _ref.onEscape,\n onEscape = _ref$onEscape === void 0 ? noop : _ref$onEscape,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === void 0 ? noop : _ref$onClick;\n\n var _useElementsContextWi = useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\")),\n elements = _useElementsContextWi.elements;\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null);\n var callOnReady = useCallbackReference(onReady);\n var callOnBlur = useCallbackReference(onBlur);\n var callOnFocus = useCallbackReference(onFocus);\n var callOnClick = useCallbackReference(onClick);\n var callOnChange = useCallbackReference(onChange);\n var callOnEscape = useCallbackReference(onEscape);\n React.useLayoutEffect(function () {\n if (elementRef.current == null && elements && domNode.current != null) {\n var element = elements.create(type, options);\n elementRef.current = element;\n element.mount(domNode.current);\n element.on('ready', function () {\n return callOnReady(element);\n });\n element.on('change', callOnChange);\n element.on('blur', callOnBlur);\n element.on('focus', callOnFocus);\n element.on('escape', callOnEscape); // Users can pass an an onClick prop on any Element component\n // just as they could listen for the `click` event on any Element,\n // but only the PaymentRequestButton will actually trigger the event.\n\n element.on('click', callOnClick);\n }\n });\n var prevOptions = React.useRef(options);\n React.useEffect(function () {\n if (prevOptions.current && prevOptions.current.paymentRequest !== options.paymentRequest) {\n console.warn('Unsupported prop change: options.paymentRequest is not a customizable property.');\n }\n\n var updateableOptions = extractUpdateableOptions(options);\n\n if (Object.keys(updateableOptions).length !== 0 && !isEqual(updateableOptions, extractUpdateableOptions(prevOptions.current))) {\n if (elementRef.current) {\n elementRef.current.update(updateableOptions);\n prevOptions.current = options;\n }\n }\n }, [options]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current) {\n elementRef.current.destroy();\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n // Validate that we are in the right context by calling useElementsContextWithUseCase.\n useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: propTypes.string,\n className: propTypes.string,\n onChange: propTypes.func,\n onBlur: propTypes.func,\n onFocus: propTypes.func,\n onReady: propTypes.func,\n onClick: propTypes.func,\n options: propTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n };\n\n var isServer = typeof window === 'undefined';\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardElement = createElementComponent('card', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardNumberElement = createElementComponent('cardNumber', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardCvcElement = createElementComponent('cardCvc', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var FpxBankElement = createElementComponent('fpxBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IbanElement = createElementComponent('iban', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IdealBankElement = createElementComponent('idealBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var P24BankElement = createElementComponent('p24Bank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var EpsBankElement = createElementComponent('epsBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n exports.AuBankAccountElement = AuBankAccountElement;\n exports.CardCvcElement = CardCvcElement;\n exports.CardElement = CardElement;\n exports.CardExpiryElement = CardExpiryElement;\n exports.CardNumberElement = CardNumberElement;\n exports.Elements = Elements;\n exports.ElementsConsumer = ElementsConsumer;\n exports.EpsBankElement = EpsBankElement;\n exports.FpxBankElement = FpxBankElement;\n exports.IbanElement = IbanElement;\n exports.IdealBankElement = IdealBankElement;\n exports.P24BankElement = P24BankElement;\n exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n exports.useElements = useElements;\n exports.useStripe = useStripe;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.12.1\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n};\n\n// own script injection.\n\nvar stripePromise$1 = Promise.resolve().then(function () {\n return loadScript(null);\n});\nvar loadCalled = false;\nstripePromise$1[\"catch\"](function (err) {\n if (!loadCalled) {\n console.warn(err);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now();\n return stripePromise$1.then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","import classNames from 'classnames';\r\nimport './styles.scss';\r\n\r\nexport const SavePaymentMethod = ({label, onChange, checked}) => {\r\n return (\r\n <div className='wc-stripe-save-payment-method'>\r\n <label>\r\n <input type='checkbox' onChange={(e) => onChange(e.target.checked)}/>\r\n <svg\r\n className={classNames('wc-stripe-components-checkbox__mark', {checked: checked})}\r\n aria-hidden=\"true\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 24 20\">\r\n <path d=\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\"/>\r\n </svg>\r\n </label>\r\n <span>{label}</span>\r\n </div>\r\n )\r\n}","export * from './payment-method-label';\r\nexport * from './checkbox';\r\nexport * from './radio-option';\r\nexport * from './payment-method';","import './style.scss';\r\n\r\nexport const PaymentMethodLabel = ({title, icons, paymentMethod, ...props}) => {\r\n const {PaymentMethodLabel: Label, PaymentMethodIcons: Icons} = props.components;\r\n if (!Array.isArray(icons)) {\r\n icons = [icons];\r\n }\r\n return (\r\n <span className={`wc-stripe-label-container ${paymentMethod}`}>\r\n <Label text={title}/>\r\n <Icons icons={icons} align='left'/>\r\n </span>\r\n )\r\n}","import {useEffect, useRef} from '@wordpress/element';\r\n\r\nexport const PaymentMethod = ({getData, content, ...props}) => {\r\n const Content = content;\r\n const desc = getData('description');\r\n const el = useRef(null);\r\n useEffect(() => {\r\n if (el.current && el.current.childNodes.length == 0) {\r\n el.current.classList.add('no-content');\r\n }\r\n });\r\n return (\r\n <>\r\n {desc && <Description desc={desc} payment_method={getData('name')}/>}\r\n <div ref={el} className='wc-stripe-blocks-payment-method-content'>\r\n <Content {...{...props, getData}}/>\r\n </div>\r\n </>);\r\n}\r\n\r\nconst Description = ({desc, payment_method}) => {\r\n return (\r\n <div className={`wc-stripe-blocks-payment-method__desc ${payment_method}`}>\r\n <p>{desc}</p>\r\n </div>\r\n )\r\n}","import classnames from 'classnames';\r\n\r\nexport const RadioControlOption = ({checked, onChange, value, label}) => {\r\n return (\r\n <label\r\n className={classnames('wc-stripe-blocks-radio-control__option', {\r\n 'wc-stripe-blocks-radio-control__option-checked': checked\r\n })}>\r\n <input\r\n className='wc-stripe-blocks-radio-control__input'\r\n type='radio'\r\n value={value}\r\n checked={checked}\r\n onChange={(event) => onChange(event.target.value)}/>\r\n <div className='wc-stripe-blocks-radio-control__label'>\r\n <span>{label}</span>\r\n </div>\r\n </label>\r\n )\r\n}\r\n\r\nexport default RadioControlOption;","export * from './use-create-link-token';\r\nexport * from './use-initialize-plaid';\r\nexport * from './use-process-payment';","import {useEffect, useState, useCallback} from '@wordpress/element';\r\nimport apiFetch from '@wordpress/api-fetch';\r\nimport {getRoute, getFromCache, storeInCache} from '../../util';\r\n\r\nexport const useCreateLinkToken = (\r\n {\r\n setValidationError\r\n }) => {\r\n const [linkToken, setLinkToken] = useState(false);\r\n\r\n const createToken = useCallback(async () => {\r\n try {\r\n const response = await apiFetch({\r\n url: getRoute('create/linkToken'),\r\n method: 'POST',\r\n data: {}\r\n });\r\n if (response.token) {\r\n storeInCache('linkToken', response.token);\r\n setLinkToken(response.token);\r\n }\r\n } catch (err) {\r\n setValidationError(err);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!linkToken) {\r\n const token = getFromCache('linkToken');\r\n if (token) {\r\n // cached token exist so use it\r\n setLinkToken(token);\r\n } else {\r\n // create the Plaid Link token\r\n createToken();\r\n }\r\n }\r\n }, [\r\n linkToken,\r\n setLinkToken\r\n ]);\r\n return linkToken;\r\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\r\nimport Plaid from '@plaid';\r\nimport {getErrorMessage} from \"../../util\";\r\n\r\nexport const useInitializePlaid = (\r\n {\r\n getData,\r\n linkToken\r\n }) => {\r\n const linkHandler = useRef(null);\r\n const resolvePopup = useRef(null);\r\n const openLinkPopup = useCallback(() => new Promise((resolve, reject) => {\r\n resolvePopup.current = {resolve, reject};\r\n linkHandler.current.open();\r\n }), []);\r\n\r\n // if the token exists, initialize Plaid's link handler\r\n useEffect(() => {\r\n if (linkToken) {\r\n linkHandler.current = Plaid.create({\r\n clientName: getData('clientName'),\r\n env: getData('plaidEnvironment'),\r\n product: ['auth'],\r\n token: linkToken,\r\n selectAccount: true,\r\n countryCodes: ['US'],\r\n onSuccess: (publicToken, metaData) => {\r\n resolvePopup.current.resolve({publicToken, metaData});\r\n },\r\n onExit: (err) => {\r\n resolvePopup.current.reject(err ? getErrorMessage(err.error_message) : false);\r\n }\r\n });\r\n }\r\n }, [linkToken]);\r\n\r\n return openLinkPopup;\r\n}","import {useEffect, useCallback} from '@wordpress/element';\r\nimport {ensureSuccessResponse, ensureErrorResponse, deleteFromCache} from \"../../util\";\r\n\r\nexport const useProcessPayment = (\r\n {\r\n openLinkPopup,\r\n onPaymentProcessing,\r\n responseTypes,\r\n paymentMethod\r\n\r\n }) => {\r\n\r\n useEffect(() => {\r\n const unsubscribe = onPaymentProcessing(async () => {\r\n try {\r\n // open the Plaid popup\r\n const result = await openLinkPopup();\r\n const {publicToken, metaData} = result;\r\n // remove the cached link token.\r\n deleteFromCache('linkToken');\r\n return ensureSuccessResponse(responseTypes, {\r\n meta: {\r\n paymentMethodData: {\r\n [`${paymentMethod}_token_key`]: publicToken,\r\n [`${paymentMethod}_metadata`]: JSON.stringify(metaData)\r\n }\r\n }\r\n });\r\n } catch (err) {\r\n return ensureErrorResponse(responseTypes, err);\r\n }\r\n });\r\n return () => unsubscribe();\r\n }, [\r\n onPaymentProcessing,\r\n responseTypes,\r\n openLinkPopup\r\n ]);\r\n}","import './styles.scss';\r\nimport './payment-method'","import {useState} from '@wordpress/element';\r\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings, isTestMode} from '../util';\r\nimport {PaymentMethodLabel, PaymentMethod} from '../../components/checkout';\r\nimport SavedCardComponent from '../saved-card-component';\r\nimport {useCreateLinkToken, useInitializePlaid, useProcessPayment} from './hooks';\r\nimport {useProcessCheckoutError} from \"../hooks\";\r\nimport {__} from '@wordpress/i18n';\r\n\r\nconst getData = getSettings('stripe_ach_data');\r\n\r\nconst ACHPaymentContent = (\r\n {\r\n getData,\r\n eventRegistration,\r\n components,\r\n emitResponse,\r\n onSubmit,\r\n ...props\r\n }) => {\r\n const {responseTypes} = emitResponse;\r\n const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;\r\n const {ValidationInputError} = components;\r\n const [validationError, setValidationError] = useState(false);\r\n\r\n const linkToken = useCreateLinkToken({setValidationError});\r\n\r\n useProcessCheckoutError({\r\n responseTypes,\r\n subscriber: onCheckoutAfterProcessingWithError\r\n });\r\n\r\n const openLinkPopup = useInitializePlaid({\r\n getData,\r\n linkToken,\r\n onSubmit\r\n });\r\n\r\n useProcessPayment({\r\n openLinkPopup,\r\n onPaymentProcessing,\r\n responseTypes,\r\n paymentMethod: getData('name')\r\n });\r\n return (\r\n <>\r\n {isTestMode && <ACHTestModeCredentials/>}\r\n {validationError && <ValidationInputError errorMessage={validationError}/>}\r\n </>\r\n )\r\n}\r\n\r\nconst ACHTestModeCredentials = () => {\r\n return (\r\n <div className='wc-stripe-blocks-ach__creds'>\r\n <label className='wc-stripe-blocks-ach__creds-label'>{__('Test Credentials', 'woo-stripe-payment')}</label>\r\n <div className='wc-stripe-blocks-ach__username'>\r\n <div>\r\n <strong>{__('username', 'woo-stripe-payment')}</strong>: user_good\r\n </div>\r\n <div>\r\n <strong>{__('password', 'woo-stripe-payment')}</strong>: pass_good\r\n </div>\r\n <div>\r\n <strong>{__('pin', 'woo-stripe-payment')}</strong>: credential_good\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nregisterPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icons')}/>,\r\n ariaLabel: 'ACH Payment',\r\n canMakePayment: ({cartTotals}) => cartTotals.currency_code === 'USD',\r\n content: <PaymentMethod\r\n getData={getData}\r\n content={ACHPaymentContent}/>,\r\n savedTokenComponent: <SavedCardComponent getData={getData}/>,\r\n edit: <ACHPaymentContent getData={getData}/>,\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n supports: {\r\n showSavedCards: getData('showSavedCards'),\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n})","import './style.scss';\r\n\r\nimport './payment-method';","import {useCallback} from '@wordpress/element';\r\nimport {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings, initStripe as loadStripe, canMakePayment} from \"../util\";\r\nimport {Elements, PaymentRequestButtonElement, useStripe} from \"@stripe/react-stripe-js\";\r\nimport ErrorBoundary from \"../error-boundary\";\r\nimport {\r\n usePaymentRequest,\r\n useProcessPaymentIntent,\r\n useExportedValues,\r\n useAfterProcessingPayment,\r\n useStripeError,\r\n useExpressBreakpointWidth\r\n} from '../hooks';\r\n\r\nconst getData = getSettings('stripe_applepay_data');\r\n\r\nconst ApplePayContent = (props) => {\r\n return (\r\n <ErrorBoundary>\r\n <div className='wc-stripe-apple-pay-container'>\r\n <Elements stripe={loadStripe}>\r\n <ApplePayButton {...props}/>\r\n </Elements>\r\n </div>\r\n </ErrorBoundary>\r\n );\r\n}\r\n\r\nconst ApplePayButton = (\r\n {\r\n getData,\r\n onClick,\r\n onClose,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n emitResponse,\r\n onSubmit,\r\n activePaymentMethod,\r\n ...props\r\n }) => {\r\n const {onPaymentProcessing} = eventRegistration;\r\n const {responseTypes, noticeContexts} = emitResponse;\r\n const stripe = useStripe();\r\n const [error] = useStripeError();\r\n const canPay = (result) => result != null && result.applePay;\r\n const exportedValues = useExportedValues();\r\n useExpressBreakpointWidth({payment_method: getData('name'), width: 300});\r\n const {setPaymentMethod} = useProcessPaymentIntent({\r\n getData,\r\n billing,\r\n shippingData,\r\n onPaymentProcessing,\r\n emitResponse,\r\n error,\r\n onSubmit,\r\n activePaymentMethod,\r\n exportedValues\r\n });\r\n useAfterProcessingPayment({\r\n getData,\r\n eventRegistration,\r\n responseTypes,\r\n activePaymentMethod,\r\n messageContext: noticeContexts.EXPRESS_PAYMENTS\r\n });\r\n const {paymentRequest} = usePaymentRequest({\r\n getData,\r\n onClose,\r\n stripe,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n setPaymentMethod,\r\n exportedValues,\r\n canPay\r\n });\r\n\r\n const handleClick = useCallback((e) => {\r\n if (paymentRequest) {\r\n e.preventDefault();\r\n onClick();\r\n paymentRequest.show();\r\n }\r\n }, [paymentRequest, onClick]);\r\n\r\n if (paymentRequest) {\r\n return (\r\n <button\r\n className={`apple-pay-button ${getData('buttonStyle')}`}\r\n style={{\r\n '-apple-pay-button-type': getData('buttonType')\r\n }}\r\n onClick={handleClick}/>\r\n\r\n )\r\n }\r\n return null;\r\n}\r\n\r\nconst ApplePayEdit = ({getData, ...props}) => {\r\n return (\r\n <div className={'apple-pay-block-editor'}>\r\n <img src={getData('editorIcon')}/>\r\n </div>\r\n )\r\n}\r\n\r\nregisterExpressPaymentMethod({\r\n name: getData('name'),\r\n canMakePayment: ({cartTotals, ...props}) => {\r\n if (getData('isAdmin')) {\r\n return true;\r\n }\r\n const {currency_code: currency, total_price} = cartTotals;\r\n return canMakePayment({\r\n country: getData('countryCode'),\r\n currency: currency.toLowerCase(),\r\n total: {\r\n label: getData('totalLabel'),\r\n amount: parseInt(total_price)\r\n }\r\n }, (result) => result != null && result.applePay);\r\n },\r\n content: <ApplePayContent getData={getData}/>,\r\n edit: <ApplePayEdit getData={getData}/>,\r\n supports: {\r\n showSavedCards: getData('showSavedCards'),\r\n showSaveOption: getData('showSaveOption'),\r\n features: getData('features')\r\n }\r\n})","import './style.scss';\r\nimport {registerCreditCardForm} from \"@paymentplugins/stripe/util\";\r\nimport {CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\r\nimport {__} from \"@wordpress/i18n\";\r\n\r\nconst Bootstrap = ({CardIcon, options, onChange}) => {\r\n return (\r\n <div className='wc-stripe-bootstrap-form'>\r\n <div className='row'>\r\n <div className='col-md-6 mb-3'>\r\n <CardNumberElement className='md-form md-outline stripe-input' options={options['cardNumber']}\r\n onChange={onChange(CardNumberElement)}/>\r\n <label htmlFor=\"stripe-card-number\">{__('Card Number', 'woo-stripe-payment')}</label>\r\n {CardIcon}\r\n </div>\r\n <div className='col-md-3 mb-3'>\r\n <CardExpiryElement className='md-form md-outline stripe-input' options={options['cardExpiry']}\r\n onChange={onChange(CardExpiryElement)}/>\r\n <label htmlFor=\"stripe-exp\">{__('Exp', 'woo-stripe-payment')}</label>\r\n </div>\r\n <div className='col-md-3 mb-3'>\r\n <CardCvcElement className=\"md-form md-outline stripe-input\" options={options['cardCvc']}\r\n onChange={onChange(CardCvcElement)}/>\r\n <label htmlFor=\"stripe-cvv\">{__('CVV', 'woo-stripe-payment')}</label>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nregisterCreditCardForm({\r\n id: 'bootstrap',\r\n breakpoint: 475,\r\n component: <Bootstrap/>\r\n})","import {getCreditCardForm} from \"../../util\";\r\nimport {cloneElement, useRef, useCallback, useEffect, useState} from '@wordpress/element';\r\nimport {useElements, CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\r\nimport {sprintf, __} from '@wordpress/i18n';\r\nimport {useBreakpointWidth} from \"../../hooks\";\r\n\r\nconst classes = {\r\n focus: 'focused',\r\n empty: 'empty',\r\n invalid: 'invalid'\r\n}\r\n\r\nconst CustomCardForm = (\r\n {\r\n getData,\r\n onChange: eventChange\r\n }) => {\r\n const [cardType, setCardType] = useState('');\r\n const elementOrder = useRef([]);\r\n const [container, setContainer] = useState(null);\r\n const elements = useElements();\r\n const id = getData('customForm');\r\n const {component: CardForm = null, breakpoint = 475} = getCreditCardForm(id);\r\n const postalCodeEnabled = getData('postalCodeEnabled');\r\n const options = {};\r\n ['cardNumber', 'cardExpiry', 'cardCvc'].forEach(type => {\r\n options[type] = {\r\n classes,\r\n ...getData('cardOptions'),\r\n ...getData('customFieldOptions')[type],\r\n }\r\n });\r\n const onChange = (element) => {\r\n setElementOrder(element);\r\n return (event) => {\r\n eventChange(event);\r\n if (event.elementType === 'cardNumber') {\r\n if (event.brand === 'unknown') {\r\n setCardType('');\r\n } else {\r\n setCardType(event.brand);\r\n }\r\n }\r\n if (event.complete) {\r\n const idx = elementOrder.current.indexOf(element);\r\n if (elementOrder.current[idx + 1]) {\r\n const nextElement = elementOrder.current[idx + 1];\r\n elements.getElement(nextElement).focus();\r\n }\r\n }\r\n }\r\n }\r\n const setElementOrder = useCallback((element) => {\r\n if (!elementOrder.current.includes(element)) {\r\n elementOrder.current.push(element);\r\n }\r\n }, []);\r\n\r\n useBreakpointWidth({name: 'creditCardForm', width: breakpoint, node: container, className: 'small-form'});\r\n\r\n const getCardIconSrc = useCallback((type) => {\r\n for (let id of Object.keys(getData('cards'))) {\r\n if (id === type) {\r\n return getData('cards')[id];\r\n }\r\n }\r\n return '';\r\n }, []);\r\n\r\n if (!CardForm) {\r\n return (\r\n <div className='wc-stripe-custom-form-error'>\r\n <p>{sprintf(__('%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings.', 'woo-stripe-payment'), getData('customFormLabels')[id])}</p>\r\n </div>\r\n )\r\n }\r\n return (\r\n <div className={`wc-stripe-custom-form ${id}`} ref={setContainer}>\r\n {cloneElement(CardForm, {\r\n postalCodeEnabled,\r\n options,\r\n onChange,\r\n CardIcon: <CardIcon type={cardType} src={getCardIconSrc(cardType)}/>\r\n })}\r\n </div>\r\n )\r\n\r\n}\r\n\r\nconst CardIcon = ({type, src}) => {\r\n if (type) {\r\n return <img className={`wc-stripe-card ${type}`} src={src}/>\r\n }\r\n return null;\r\n}\r\n\r\nexport default CustomCardForm;\r\n","import './style.scss';\r\nimport {registerCreditCardForm} from \"@paymentplugins/stripe/util\";\r\nimport {CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\r\nimport {__} from \"@wordpress/i18n\";\r\nimport {useEffect, useCallback, useRef} from '@wordpress/element';\r\n\r\nconst SimpleForm = ({CardIcon, options, onChange}) => {\r\n useEffect(() => {\r\n }, []);\r\n return (\r\n <div className='wc-stripe-simple-form'>\r\n <div className=\"row\">\r\n <div className=\"field\">\r\n <div className='field-item'>\r\n <CardNumberElement id=\"stripe-card-number\" className=\"input empty\"\r\n options={options['cardNumber']}\r\n onChange={onChange(CardNumberElement)}/>\r\n <label htmlFor=\"stripe-card-number\"\r\n data-tid=\"\">{__('Card Number', 'woo-stripe-payment')}</label>\r\n <div className=\"baseline\"></div>\r\n {CardIcon}\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"field half-width\">\r\n <div className='field-item'>\r\n <CardExpiryElement id=\"stripe-exp\" className=\"input empty\" options={options['cardExpiry']}\r\n onChange={onChange(CardExpiryElement)}/>\r\n <label htmlFor=\"stripe-exp\"\r\n data-tid=\"\">{__('Expiration', 'woo-stripe-payment')}</label>\r\n <div className=\"baseline\"></div>\r\n </div>\r\n </div>\r\n <div className=\"field half-width cvc\">\r\n <div className='field-item'>\r\n <CardCvcElement id=\"stripe-cvv\" className=\"input empty\" options={options['cardCvc']}\r\n onChange={onChange(CardCvcElement)}/>\r\n <label htmlFor=\"stripe-cvv\"\r\n data-tid=\"\">{__('CVV', 'woo-stripe-payment')}</label>\r\n <div className=\"baseline\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nregisterCreditCardForm({\r\n id: 'simple',\r\n component: <SimpleForm/>,\r\n breakpoint: 375\r\n})","import {CardElement} from \"@stripe/react-stripe-js\";\r\nimport {isFieldRequired} from \"../../util\";\r\nimport {useMemo} from '@wordpress/element';\r\n\r\nconst StripeCardForm = ({getData, billing, onChange}) => {\r\n const cardOptions = useMemo(() => {\r\n return {\r\n ...{\r\n value: {\r\n postalCode: billing?.billingData?.postcode\r\n },\r\n hidePostalCode: isFieldRequired('postcode'),\r\n iconStyle: 'default'\r\n }, ...getData('cardOptions')\r\n };\r\n }, [billing.billingData]);\r\n return (\r\n <div className='wc-stripe-inline-form'>\r\n <CardElement options={cardOptions} onChange={onChange}/>\r\n </div>\r\n )\r\n}\r\n\r\nexport default StripeCardForm;","import './style.scss';\r\n\r\nexport * from './payment-method';\r\n\r\nimport './components/bootstrap';\r\nimport './components/simple';\r\n","import {useEffect, useState, useCallback, useMemo} from '@wordpress/element';\r\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {\r\n initStripe as loadStripe,\r\n getSettings,\r\n isUserLoggedIn,\r\n cartContainsSubscription,\r\n cartContainsPreOrder\r\n} from '../util';\r\nimport {Elements, CardElement, useStripe, useElements, CardNumberElement} from '@stripe/react-stripe-js';\r\nimport {PaymentMethodLabel, PaymentMethod, SavePaymentMethod} from '../../components/checkout';\r\nimport SavedCardComponent from '../saved-card-component';\r\nimport CustomCardForm from './components/custom-card-form';\r\nimport StripeCardForm from \"./components/stripe-card-form\";\r\nimport {\r\n useProcessPaymentIntent,\r\n useAfterProcessingPayment,\r\n useSetupIntent,\r\n useStripeError\r\n} from \"../hooks\";\r\n\r\nconst getData = getSettings('stripe_cc_data');\r\n\r\nconst displaySaveCard = (customerId) => {\r\n return isUserLoggedIn(customerId) && getData('saveCardEnabled') &&\r\n !cartContainsSubscription() && !cartContainsPreOrder()\r\n}\r\n\r\nconst CreditCardContent = (props) => {\r\n const [error, setError] = useState(false);\r\n useEffect(() => {\r\n loadStripe.catch(error => {\r\n setError(error);\r\n })\r\n }, [setError]);\r\n if (error) {\r\n throw new Error(error);\r\n }\r\n return (\r\n <Elements stripe={loadStripe} options={getData('elementOptions')}>\r\n <CreditCardElement {...props}/>\r\n </Elements>\r\n );\r\n};\r\n\r\nconst CreditCardElement = (\r\n {\r\n getData,\r\n billing,\r\n shippingData,\r\n emitResponse,\r\n eventRegistration,\r\n activePaymentMethod\r\n }) => {\r\n const [error, setError] = useStripeError();\r\n const [savePaymentMethod, setSavePaymentMethod] = useState(false);\r\n const onSavePaymentMethod = (checked) => setSavePaymentMethod(checked);\r\n const {onPaymentProcessing} = eventRegistration;\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n const getPaymentMethodArgs = useCallback(() => {\r\n const elType = getData('customFormActive') ? CardNumberElement : CardElement;\r\n return {card: elements.getElement(elType)};\r\n }, [stripe, elements]);\r\n\r\n const {setupIntent, removeSetupIntent} = useSetupIntent({\r\n getData,\r\n cartTotal: billing.cartTotal,\r\n setError\r\n })\r\n\r\n useProcessPaymentIntent({\r\n getData,\r\n billing,\r\n shippingData,\r\n emitResponse,\r\n error,\r\n onPaymentProcessing,\r\n savePaymentMethod,\r\n setupIntent,\r\n removeSetupIntent,\r\n getPaymentMethodArgs,\r\n activePaymentMethod\r\n });\r\n useAfterProcessingPayment({\r\n getData,\r\n eventRegistration,\r\n responseTypes: emitResponse.responseTypes,\r\n activePaymentMethod,\r\n savePaymentMethod\r\n });\r\n\r\n const onChange = (event) => {\r\n if (event.error) {\r\n setError(event.error);\r\n } else {\r\n setError(false);\r\n }\r\n }\r\n const Tag = getData('customFormActive') ? CustomCardForm : StripeCardForm;\r\n return (\r\n <div className='wc-stripe-card-container'>\r\n <Tag {...{getData, billing, onChange}}/>\r\n {displaySaveCard(billing.customerId) &&\r\n <SavePaymentMethod label={getData('savePaymentMethodLabel')}\r\n onChange={onSavePaymentMethod}\r\n checked={savePaymentMethod}/>}\r\n </div>\r\n );\r\n}\r\n\r\nregisterPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icons')}/>,\r\n ariaLabel: 'Credit Cards',\r\n canMakePayment: () => loadStripe,\r\n content: <PaymentMethod content={CreditCardContent} getData={getData}/>,\r\n savedTokenComponent: <SavedCardComponent getData={getData}/>,\r\n edit: <PaymentMethod content={CreditCardContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: getData('showSavedCards'),\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n})","import {Component} from '@wordpress/element';\r\n\r\nclass ErrorBoundary extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {hasError: false, error: null, errorInfo: null};\r\n }\r\n\r\n componentDidCatch(error, errorInfo) {\r\n this.setState({\r\n hasError: true,\r\n error,\r\n errorInfo\r\n })\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n return (\r\n <>\r\n {this.state.error && <div className='wc-stripe-block-error'>{this.state.error.toString()}</div>}\r\n {this.state.errorInfo &&\r\n <div className='wc-stripe-block-error'>{this.state.errorInfo.componentStack}</div>}\r\n </>\r\n )\r\n }\r\n return this.props.children;\r\n }\r\n}\r\n\r\nexport default ErrorBoundary;","import {useRef, useEffect} from '@wordpress/element';\r\nimport {usePaymentsClient, usePaymentRequest} from './hooks';\r\nimport {\r\n useProcessPaymentIntent,\r\n useStripeError,\r\n useExportedValues,\r\n useExpressBreakpointWidth\r\n} from '../hooks';\r\nimport {getSettings} from '@paymentplugins/stripe/util';\r\n\r\nconst {publishableKey} = getSettings('stripeGeneralData')();\r\n\r\nconst GooglePayButton = (\r\n {\r\n getData,\r\n setErrorMessage,\r\n billing,\r\n shippingData,\r\n canMakePayment,\r\n checkoutStatus,\r\n eventRegistration,\r\n activePaymentMethod,\r\n onClick,\r\n onClose,\r\n ...props\r\n }) => {\r\n const merchantInfo = {\r\n merchantId: getData('merchantId'),\r\n merchantName: getData('merchantName')\r\n };\r\n const [error, setError] = useStripeError();\r\n const buttonContainer = useRef();\r\n const {onSubmit, emitResponse} = props;\r\n const {onPaymentProcessing} = eventRegistration;\r\n const exportedValues = useExportedValues();\r\n const width = getData('buttonStyle').buttonType === 'long' ? 390 : 300;\r\n const {setPaymentMethod} = useProcessPaymentIntent({\r\n getData,\r\n billing,\r\n shippingData,\r\n onPaymentProcessing,\r\n emitResponse,\r\n error,\r\n exportedValues,\r\n onSubmit,\r\n checkoutStatus,\r\n activePaymentMethod\r\n });\r\n\r\n const paymentRequest = usePaymentRequest({\r\n getData,\r\n publishableKey,\r\n merchantInfo,\r\n billing,\r\n shippingData\r\n })\r\n\r\n const {button, removeButton} = usePaymentsClient({\r\n merchantInfo,\r\n paymentRequest,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n canMakePayment,\r\n setErrorMessage,\r\n onSubmit,\r\n setPaymentMethod,\r\n exportedValues,\r\n onClick,\r\n onClose,\r\n getData\r\n });\r\n\r\n useExpressBreakpointWidth({payment_method: getData('name'), width});\r\n\r\n useEffect(() => {\r\n if (button) {\r\n // prevent button duplicates\r\n removeButton(buttonContainer.current);\r\n buttonContainer.current.append(button);\r\n }\r\n }, [button]);\r\n\r\n return (\r\n <div className='wc-stripe-gpay-button-container' ref={buttonContainer}></div>\r\n )\r\n}\r\n\r\nexport default GooglePayButton;","export const BASE_PAYMENT_METHOD = {\r\n type: 'CARD',\r\n parameters: {\r\n allowedAuthMethods: [\"PAN_ONLY\"],\r\n allowedCardNetworks: [\"AMEX\", \"DISCOVER\", \"INTERAC\", \"JCB\", \"MASTERCARD\", \"VISA\"],\r\n assuranceDetailsRequired: true\r\n }\r\n};\r\n\r\nexport const BASE_PAYMENT_REQUEST = {\r\n apiVersion: 2,\r\n apiVersionMinor: 0\r\n}","export * from './use-payments-client';\r\nexport * from './use-payment-request';\r\nexport * from './use-error-message';","import {useState} from '@wordpress/element';\r\n\r\nexport const useErrorMessage = () => {\r\n const [errorMessage, setErrorMessage] = useState(false);\r\n return {errorMessage, setErrorMessage};\r\n}","import {useState, useEffect, useMemo} from '@wordpress/element';\r\nimport {BASE_PAYMENT_REQUEST, BASE_PAYMENT_METHOD} from \"../constants\";\r\nimport {isEmpty, isFieldRequired} from \"../../util\";\r\nimport {getTransactionInfo, getShippingOptionParameters} from \"../util\";\r\n\r\nexport const usePaymentRequest = ({getData, publishableKey, merchantInfo, billing, shippingData}) => {\r\n const {billingData} = billing;\r\n const {shippingRates} = shippingData;\r\n const {processingCountry, totalPriceLabel} = getData();\r\n\r\n const paymentRequest = useMemo(() => {\r\n let options = {\r\n ...{\r\n emailRequired: isEmpty(billingData.email),\r\n merchantInfo,\r\n allowedPaymentMethods: [{\r\n ...{\r\n type: 'CARD',\r\n tokenizationSpecification: {\r\n type: \"PAYMENT_GATEWAY\",\r\n parameters: {\r\n gateway: 'stripe',\r\n \"stripe:version\": \"2018-10-31\",\r\n \"stripe:publishableKey\": publishableKey\r\n }\r\n }\r\n }, ...BASE_PAYMENT_METHOD\r\n }],\r\n shippingAddressRequired: shippingData.needsShipping,\r\n transactionInfo: getTransactionInfo({\r\n billing,\r\n processingCountry,\r\n totalPriceLabel\r\n }),\r\n callbackIntents: ['PAYMENT_AUTHORIZATION']\r\n }, ...BASE_PAYMENT_REQUEST\r\n };\r\n options.allowedPaymentMethods[0].parameters.billingAddressRequired = true;\r\n options.allowedPaymentMethods[0].parameters.billingAddressParameters = {\r\n format: 'FULL',\r\n phoneNumberRequired: isFieldRequired('phone', billingData.country) && isEmpty(billingData.phone)\r\n };\r\n if (options.shippingAddressRequired) {\r\n options.callbackIntents = [...options.callbackIntents, ...['SHIPPING_ADDRESS', 'SHIPPING_OPTION']];\r\n options.shippingOptionRequired = true;\r\n const shippingOptionParameters = getShippingOptionParameters(shippingRates);\r\n if (shippingOptionParameters.shippingOptions.length > 0) {\r\n options = {...options, shippingOptionParameters};\r\n }\r\n }\r\n return options;\r\n }, [\r\n billing.cartTotal,\r\n billing.cartTotalItems,\r\n billingData,\r\n shippingData\r\n ]);\r\n return paymentRequest;\r\n}","import {useState, useEffect, useCallback, useMemo, useRef} from '@wordpress/element';\r\nimport isShallowEqual from \"@wordpress/is-shallow-equal\";\r\nimport {\r\n getErrorMessage,\r\n getSelectedShippingOption,\r\n getBillingDetailsFromAddress,\r\n isAddressValid,\r\n isEmpty,\r\n StripeError,\r\n getIntermediateAddress\r\n} from \"../../util\";\r\nimport {useStripe} from \"@stripe/react-stripe-js\";\r\nimport {getPaymentRequestUpdate, toCartAddress} from \"../util\";\r\nimport {__} from \"@wordpress/i18n\";\r\nimport {usePaymentEvents} from \"../../hooks\";\r\n\r\nexport const usePaymentsClient = (\r\n {\r\n merchantInfo,\r\n paymentRequest,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n canMakePayment,\r\n setErrorMessage,\r\n setPaymentMethod,\r\n exportedValues,\r\n onClick,\r\n onClose,\r\n getData\r\n }) => {\r\n const {environment} = getData();\r\n const [paymentsClient, setPaymentsClient] = useState();\r\n const [button, setButton] = useState(null);\r\n const currentBilling = useRef(billing);\r\n const currentShipping = useRef(shippingData);\r\n const stripe = useStripe();\r\n const {addPaymentEvent} = usePaymentEvents({\r\n billing,\r\n shippingData,\r\n eventRegistration\r\n });\r\n useEffect(() => {\r\n currentBilling.current = billing;\r\n currentShipping.current = shippingData;\r\n });\r\n\r\n const setAddressData = useCallback((paymentData) => {\r\n if (paymentData?.paymentMethodData?.info?.billingAddress) {\r\n let billingAddress = paymentData.paymentMethodData.info.billingAddress;\r\n if (isAddressValid(currentBilling.current.billingData, ['phone', 'email']) && isEmpty(currentBilling.current.billingData?.phone)) {\r\n billingAddress = {phoneNumber: billingAddress.phoneNumber};\r\n }\r\n exportedValues.billingData = currentBilling.current.billingData = toCartAddress(billingAddress, {email: paymentData.email});\r\n }\r\n if (paymentData?.shippingAddress) {\r\n exportedValues.shippingAddress = toCartAddress(paymentData.shippingAddress);\r\n }\r\n }, [exportedValues, paymentRequest]);\r\n\r\n const removeButton = useCallback((parentElement) => {\r\n while (parentElement.firstChild) {\r\n parentElement.removeChild(parentElement.firstChild);\r\n }\r\n }, [button]);\r\n const handleClick = useCallback(async () => {\r\n onClick();\r\n try {\r\n let paymentData = await paymentsClient.loadPaymentData(paymentRequest);\r\n\r\n // set the address data so it can be used during the checkout process\r\n setAddressData(paymentData);\r\n\r\n const data = JSON.parse(paymentData.paymentMethodData.tokenizationData.token);\r\n\r\n let result = await stripe.createPaymentMethod({\r\n type: 'card',\r\n card: {token: data.id},\r\n billing_details: getBillingDetailsFromAddress(currentBilling.current.billingData)\r\n });\r\n\r\n if (result.error) {\r\n throw new StripeError(result.error);\r\n }\r\n\r\n setPaymentMethod(result.paymentMethod.id);\r\n } catch (err) {\r\n if (err?.statusCode === \"CANCELED\") {\r\n onClose();\r\n } else {\r\n console.log(getErrorMessage(err));\r\n setErrorMessage(getErrorMessage(err));\r\n }\r\n }\r\n }, [\r\n stripe,\r\n paymentsClient,\r\n onClick\r\n ]);\r\n\r\n const createButton = useCallback(async () => {\r\n try {\r\n if (paymentsClient && !button && stripe) {\r\n await canMakePayment;\r\n setButton(paymentsClient.createButton({\r\n onClick: handleClick,\r\n ...getData('buttonStyle')\r\n }));\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }, [\r\n stripe,\r\n button,\r\n paymentsClient,\r\n handleClick\r\n ]);\r\n\r\n const paymentOptions = useMemo(() => {\r\n let options = {\r\n environment,\r\n merchantInfo,\r\n paymentDataCallbacks: {\r\n onPaymentAuthorized: () => Promise.resolve({transactionState: \"SUCCESS\"})\r\n }\r\n }\r\n if (paymentRequest.shippingAddressRequired) {\r\n options.paymentDataCallbacks.onPaymentDataChanged = (paymentData) => {\r\n return new Promise((resolve, reject) => {\r\n const shipping = currentShipping.current;\r\n const {shippingAddress: address, shippingOptionData} = paymentData;\r\n const intermediateAddress = toCartAddress(address);\r\n // pass the Promise resolve to a ref so it persists beyond the re-render\r\n const selectedRates = getSelectedShippingOption(shippingOptionData.id);\r\n const addressEqual = isShallowEqual(getIntermediateAddress(shipping.shippingAddress), intermediateAddress);\r\n const shippingEqual = isShallowEqual(shipping.selectedRates, {\r\n [selectedRates[1]]: selectedRates[0]\r\n });\r\n addPaymentEvent('onShippingChanged', (success, {billing, shipping}) => {\r\n if (success) {\r\n resolve(getPaymentRequestUpdate({\r\n billing,\r\n shippingData: {\r\n needsShipping: true,\r\n shippingRates: shipping.shippingRates\r\n },\r\n processingCountry: getData('processingCountry'),\r\n totalPriceLabel: getData('totalPriceLabel')\r\n }))\r\n } else {\r\n resolve({\r\n error: {\r\n reason: 'SHIPPING_ADDRESS_UNSERVICEABLE',\r\n message: __('Your shipping address is not serviceable.', 'woo-stripe-payment'),\r\n intent: 'SHIPPING_ADDRESS'\r\n }\r\n });\r\n }\r\n }, addressEqual && shippingEqual);\r\n currentShipping.current.setShippingAddress({...currentShipping.current.shippingAddress, ...intermediateAddress});\r\n if (shippingOptionData.id !== 'shipping_option_unselected') {\r\n currentShipping.current.setSelectedRates(...selectedRates);\r\n }\r\n })\r\n }\r\n }\r\n return options;\r\n }, [paymentRequest]);\r\n\r\n useEffect(() => {\r\n setPaymentsClient(new google.payments.api.PaymentsClient(paymentOptions));\r\n }, [paymentOptions]);\r\n\r\n useEffect(() => {\r\n createButton();\r\n }, [createButton])\r\n\r\n return {\r\n button,\r\n removeButton\r\n };\r\n}","import './style.scss';\r\n\r\nexport * from './payment-method';","import {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings, initStripe as loadStripe, isCartPage} from '../util';\r\nimport {useErrorMessage} from \"./hooks\";\r\nimport GooglePayButton from './button';\r\nimport {BASE_PAYMENT_METHOD, BASE_PAYMENT_REQUEST} from './constants';\r\nimport google from '@googlepay';\r\nimport {Elements} from \"@stripe/react-stripe-js\";\r\n\r\nconst getData = getSettings('stripe_googlepay_data');\r\n\r\nconst canMakePayment = (() => {\r\n const paymentsClient = new google.payments.api.PaymentsClient({\r\n environment: getData('environment'),\r\n merchantInfo: {\r\n merchantId: getData('merchantId'),\r\n merchantName: getData('merchantName')\r\n }\r\n });\r\n const isReadyToPayRequest = {...BASE_PAYMENT_REQUEST, allowedPaymentMethods: [BASE_PAYMENT_METHOD]};\r\n return paymentsClient.isReadyToPay(isReadyToPayRequest).then(() => {\r\n return true;\r\n }).catch(err => {\r\n console.log(err);\r\n return false;\r\n })\r\n})();\r\n\r\nconst GooglePayContent = ({getData, components, ...props}) => {\r\n const {ValidationInputError} = components;\r\n const {errorMessage, setErrorMessage} = useErrorMessage();\r\n return (\r\n <div className='wc-stripe-gpay-container'>\r\n <Elements stripe={loadStripe}>\r\n <GooglePayButton getData={getData}\r\n canMakePayment={canMakePayment}\r\n setErrorMessage={setErrorMessage}\r\n {...props}/>\r\n {errorMessage && <ValidationInputError errorMessage={errorMessage}/>}\r\n </Elements>\r\n </div>\r\n )\r\n}\r\n\r\nconst GooglePayEdit = ({getData, ...props}) => {\r\n const buttonType = getData('buttonStyle').buttonType;\r\n const src = getData('editorIcons')?.[buttonType] || 'long';\r\n return (\r\n <div className={`gpay-block-editor ${buttonType}`}>\r\n <img src={src}/>\r\n </div>\r\n )\r\n}\r\n\r\nregisterExpressPaymentMethod({\r\n name: getData('name'),\r\n canMakePayment: () => {\r\n if (getData('isAdmin')) {\r\n if (isCartPage()) {\r\n return getData('cartCheckoutEnabled');\r\n }\r\n return true;\r\n }\r\n if (isCartPage() && !getData('cartCheckoutEnabled')) {\r\n return false;\r\n }\r\n return loadStripe.then(stripe => {\r\n if (stripe.error) {\r\n return stripe;\r\n }\r\n return canMakePayment;\r\n });\r\n },\r\n content: <GooglePayContent getData={getData}/>,\r\n edit: <GooglePayEdit getData={getData}/>,\r\n supports: {\r\n showSavedCards: getData('showSavedCards'),\r\n showSaveOption: getData('showSaveOption'),\r\n features: getData('features')\r\n }\r\n})","import {getShippingOptionId, removeNumberPrecision, toCartAddress as mapAddressToCartAddress} from \"../util\";\r\nimport {formatPrice} from '../util';\r\nimport {getSetting} from '@woocommerce/settings'\r\n\r\nconst generalData = getSetting('stripeGeneralData');\r\n\r\nconst ADDRESS_MAPPINGS = {\r\n name: (address, name) => {\r\n address.first_name = name.split(' ').slice(0, -1).join(' ');\r\n address.last_name = name.split(' ').pop();\r\n return address;\r\n },\r\n countryCode: 'country',\r\n address1: 'address_1',\r\n address2: 'address_2',\r\n locality: 'city',\r\n administrativeArea: 'state',\r\n postalCode: 'postcode',\r\n email: 'email',\r\n phoneNumber: 'phone'\r\n}\r\n\r\nexport const getTransactionInfo = ({billing, processingCountry, totalPriceLabel}, status = 'ESTIMATED') => {\r\n const {cartTotal, cartTotalItems, currency} = billing;\r\n const transactionInfo = {\r\n countryCode: processingCountry,\r\n currencyCode: currency.code,\r\n totalPriceStatus: status,\r\n totalPrice: removeNumberPrecision(cartTotal.value, currency.minorUnit).toString(),\r\n displayItems: getDisplayItems(cartTotalItems, currency.minorUnit),\r\n totalPriceLabel\r\n }\r\n return transactionInfo;\r\n}\r\n\r\nexport const getPaymentRequestUpdate = ({billing, shippingData, processingCountry, totalPriceLabel}) => {\r\n const {needsShipping, shippingRates} = shippingData;\r\n let update = {\r\n newTransactionInfo: getTransactionInfo({\r\n billing, processingCountry, totalPriceLabel\r\n }, 'FINAL')\r\n }\r\n if (needsShipping) {\r\n update.newShippingOptionParameters = getShippingOptionParameters(shippingRates);\r\n }\r\n return update;\r\n}\r\n\r\n/**\r\n * Return an array of line item objects\r\n * @param cartTotalItems\r\n * @param unit\r\n * @returns {[]}\r\n */\r\nconst getDisplayItems = (cartTotalItems, unit = 2) => {\r\n let items = [];\r\n const keys = ['total_tax', 'total_shipping'];\r\n cartTotalItems.forEach(item => {\r\n if (0 < item.value || (item.key && keys.includes(item.key))) {\r\n items.push({\r\n label: item.label,\r\n type: 'LINE_ITEM',\r\n price: removeNumberPrecision(item.value, unit).toString()\r\n });\r\n }\r\n })\r\n return items;\r\n}\r\n\r\nexport const getShippingOptionParameters = (shippingRates) => {\r\n const shippingOptions = getShippingOptions(shippingRates);\r\n const shippingOptionIds = shippingOptions.map(option => option.id);\r\n let defaultSelectedOptionId = shippingOptionIds.slice(0, 1).shift();\r\n shippingRates.forEach((shippingPackage, idx) => {\r\n shippingPackage.shipping_rates.forEach(rate => {\r\n if (rate.selected) {\r\n defaultSelectedOptionId = getShippingOptionId(idx, rate.rate_id);\r\n }\r\n });\r\n });\r\n return {\r\n shippingOptions,\r\n defaultSelectedOptionId,\r\n }\r\n}\r\n\r\n//id label description\r\nexport const getShippingOptions = (shippingRates) => {\r\n let options = [];\r\n shippingRates.forEach((shippingPackage, idx) => {\r\n let rates = shippingPackage.shipping_rates.map(rate => {\r\n let txt = document.createElement('textarea');\r\n txt.innerHTML = rate.name;\r\n let price = formatPrice(rate.price, rate.currency_code);\r\n return {\r\n id: getShippingOptionId(idx, rate.rate_id),\r\n label: txt.value,\r\n description: `${price}`\r\n }\r\n });\r\n options = [...options, ...rates];\r\n });\r\n return options;\r\n}\r\n\r\nexport const toCartAddress = mapAddressToCartAddress(ADDRESS_MAPPINGS);\r\n","export * from './use-process-payment-intent';\r\nexport * from './use-after-process-payment';\r\nexport * from './use-setup-intent';\r\nexport * from './use-stripe-error';\r\nexport * from './use-exported-values';\r\nexport * from './use-payment-request';\r\nexport * from './use-payment-events';\r\nexport * from './use-breakpoint-width';\r\nexport * from './use-process-checkout-error'","import {useEffect} from '@wordpress/element'\r\nimport {useStripe} from \"@stripe/react-stripe-js\";\r\nimport {handleCardAction} from \"../util\";\r\nimport {useProcessCheckoutError} from \"./use-process-checkout-error\";\r\n\r\nexport const useAfterProcessingPayment = (\r\n {\r\n getData,\r\n eventRegistration,\r\n responseTypes,\r\n activePaymentMethod,\r\n savePaymentMethod = false,\r\n messageContext = null\r\n }) => {\r\n const stripe = useStripe();\r\n const {onCheckoutAfterProcessingWithSuccess, onCheckoutAfterProcessingWithError} = eventRegistration;\r\n useProcessCheckoutError({\r\n responseTypes,\r\n subscriber: onCheckoutAfterProcessingWithError,\r\n messageContext\r\n });\r\n useEffect(() => {\r\n let unsubscribeAfterProcessingWithSuccess = onCheckoutAfterProcessingWithSuccess(async ({redirectUrl}) => {\r\n if (getData('name') === activePaymentMethod) {\r\n //check if response is in redirect. If so, open modal\r\n return await handleCardAction({\r\n redirectUrl,\r\n responseTypes,\r\n stripe,\r\n getData,\r\n savePaymentMethod\r\n });\r\n }\r\n return null;\r\n })\r\n return () => unsubscribeAfterProcessingWithSuccess()\r\n }, [\r\n stripe,\r\n responseTypes,\r\n onCheckoutAfterProcessingWithSuccess,\r\n activePaymentMethod,\r\n savePaymentMethod\r\n ]);\r\n}","import {useState, useEffect, useCallback} from '@wordpress/element';\r\nimport {storeInCache, getFromCache} from \"../util\";\r\n\r\nexport const useBreakpointWidth = (\r\n {\r\n name,\r\n width,\r\n node,\r\n className\r\n }) => {\r\n const [windowWidth, setWindowWith] = useState(window.innerWidth);\r\n const getMaxWidth = useCallback((name) => {\r\n const maxWidth = getFromCache(name);\r\n return maxWidth ? parseInt(maxWidth) : 0;\r\n }, []);\r\n const setMaxWidth = useCallback((name, width) => storeInCache(name, width), []);\r\n\r\n useEffect(() => {\r\n const el = typeof node === 'function' ? node() : node;\r\n\r\n if (el) {\r\n const maxWidth = getMaxWidth(name);\r\n if (!maxWidth || width > maxWidth) {\r\n setMaxWidth(name, width);\r\n }\r\n if (el.clientWidth < width) {\r\n el.classList.add(className);\r\n } else {\r\n if (el.clientWidth > maxWidth) {\r\n el.classList.remove(className);\r\n }\r\n }\r\n }\r\n }, [windowWidth, node]);\r\n useEffect(() => {\r\n const handleResize = () => setWindowWith(window.innerWidth);\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n });\r\n}\r\n\r\nexport const useExpressBreakpointWidth = (\r\n {\r\n payment_method,\r\n width\r\n }) => {\r\n const node = useCallback(() => {\r\n const el = document.getElementById(`express-payment-method-${payment_method}`);\r\n return el ? el.parentNode : null;\r\n }, []);\r\n useBreakpointWidth({\r\n name: 'expressMaxWidth',\r\n width,\r\n node,\r\n className: 'wc-stripe-express__sm'\r\n });\r\n\r\n}","import {useRef} from '@wordpress/element';\r\n\r\nexport const useExportedValues = () => {\r\n const exportedValues = useRef({});\r\n return exportedValues.current;\r\n}","import {useEffect, useCallback, useRef, useState} from '@wordpress/element';\r\nimport {hasShippingRates} from '../util';\r\n\r\nexport const usePaymentEvents = (\r\n {\r\n billing,\r\n shippingData,\r\n eventRegistration\r\n }) => {\r\n const {onShippingRateSuccess, onShippingRateFail, onShippingRateSelectSuccess} = eventRegistration;\r\n const currentBilling = useRef(billing);\r\n const currentShipping = useRef(shippingData);\r\n const [handler, setHandler] = useState(null);\r\n const [paymentEvents, setPaymentEvent] = useState({\r\n onShippingChanged: false\r\n });\r\n const addPaymentEvent = useCallback((name, handler, execute = false) => {\r\n if (execute) {\r\n setHandler({[name]: handler});\r\n } else {\r\n setPaymentEvent({...paymentEvents, [name]: handler});\r\n }\r\n }, [paymentEvents, setPaymentEvent]);\r\n const removePaymentEvent = useCallback((name) => {\r\n if (paymentEvents[name]) {\r\n delete paymentEvents[name];\r\n setPaymentEvent(paymentEvents);\r\n }\r\n }, [paymentEvents]);\r\n\r\n const onShippingChanged = useCallback(() => {\r\n const shipping = currentShipping.current;\r\n const billing = currentBilling.current;\r\n if (paymentEvents.onShippingChanged && !shipping.isSelectingRate && !shipping.shippingRatesLoading) {\r\n const handler = paymentEvents.onShippingChanged;\r\n let success = true;\r\n if (!hasShippingRates(shipping.shippingRates)) {\r\n success = false;\r\n }\r\n handler(success, {\r\n billing,\r\n shipping\r\n });\r\n removePaymentEvent('onShippingChanged');\r\n }\r\n }, [paymentEvents, removePaymentEvent]);\r\n\r\n useEffect(() => {\r\n currentBilling.current = billing;\r\n currentShipping.current = shippingData;\r\n });\r\n\r\n useEffect(() => {\r\n if (handler) {\r\n if (handler.onShippingChanged) {\r\n handler.onShippingChanged(true, {\r\n billing: currentBilling.current,\r\n shipping: currentShipping.current\r\n })\r\n setHandler(null);\r\n }\r\n }\r\n }, [handler]);\r\n\r\n useEffect(() => {\r\n const unsubscribeShippingRateSuccess = onShippingRateSuccess(onShippingChanged);\r\n const unsubscribeShippingRateSelectSuccess = onShippingRateSelectSuccess(onShippingChanged);\r\n const unsubscribeShippingRateFail = onShippingRateFail(({hasInvalidAddress, hasError}) => {\r\n if (paymentEvents.onShippingChanged) {\r\n const handler = paymentEvents.onShippingChanged;\r\n handler(false);\r\n removePaymentEvent('onShippingChanged');\r\n }\r\n });\r\n\r\n return () => {\r\n unsubscribeShippingRateSuccess();\r\n unsubscribeShippingRateFail();\r\n unsubscribeShippingRateSelectSuccess();\r\n }\r\n }, [\r\n paymentEvents,\r\n onShippingRateSuccess,\r\n onShippingRateFail,\r\n onShippingRateSelectSuccess\r\n ]);\r\n\r\n return {addPaymentEvent, removePaymentEvent};\r\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\r\nimport {usePaymentEvents} from './use-payment-events';\r\nimport {getIntermediateAddress} from '../util';\r\nimport isShallowEqual from '@wordpress/is-shallow-equal';\r\nimport {\r\n getDisplayItems,\r\n getShippingOptions,\r\n getSelectedShippingOption,\r\n isFieldRequired,\r\n toCartAddress as mapToCartAddress\r\n} from \"../util\";\r\n\r\nconst toCartAddress = mapToCartAddress();\r\n\r\nexport const usePaymentRequest = (\r\n {\r\n getData,\r\n onClose,\r\n stripe,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n setPaymentMethod,\r\n exportedValues,\r\n canPay\r\n }) => {\r\n const {addPaymentEvent} = usePaymentEvents({\r\n billing,\r\n shippingData,\r\n eventRegistration\r\n });\r\n const {shippingAddress, needsShipping, shippingRates} = shippingData;\r\n const {billingData, cartTotalItems, currency, cartTotal} = billing;\r\n const [paymentRequest, setPaymentRequest] = useState(null);\r\n const paymentRequestOptions = useRef({});\r\n const currentShipping = useRef(shippingData)\r\n const currentBilling = useRef(billing);\r\n\r\n useEffect(() => {\r\n currentShipping.current = shippingData;\r\n currentBilling.current = billing;\r\n }, [shippingData]);\r\n\r\n useEffect(() => {\r\n if (stripe) {\r\n const options = {\r\n country: getData('countryCode'),\r\n currency: currency?.code.toLowerCase(),\r\n total: {\r\n amount: cartTotal.value,\r\n label: cartTotal.label,\r\n pending: true\r\n },\r\n requestPayerName: true,\r\n requestPayerEmail: isFieldRequired('email', billingData.country),\r\n requestPayerPhone: isFieldRequired('phone', billingData.country),\r\n requestShipping: needsShipping,\r\n displayItems: getDisplayItems(cartTotalItems, currency)\r\n }\r\n if (options.requestShipping) {\r\n options.shippingOptions = getShippingOptions(shippingRates);\r\n }\r\n paymentRequestOptions.current = options;\r\n const paymentRequest = stripe.paymentRequest(paymentRequestOptions.current);\r\n paymentRequest.canMakePayment().then(result => {\r\n if (canPay(result)) {\r\n setPaymentRequest(paymentRequest);\r\n } else {\r\n setPaymentRequest(null);\r\n }\r\n });\r\n }\r\n }, [\r\n stripe,\r\n cartTotal.value,\r\n billingData.country,\r\n shippingRates,\r\n cartTotalItems,\r\n currency.code\r\n ]);\r\n\r\n useEffect(() => {\r\n if (paymentRequest) {\r\n if (paymentRequestOptions.current.requestShipping) {\r\n paymentRequest.on('shippingaddresschange', onShippingAddressChange);\r\n paymentRequest.on('shippingoptionchange', onShippingOptionChange);\r\n }\r\n paymentRequest.on('cancel', onClose);\r\n paymentRequest.on('paymentmethod', onPaymentMethodReceived);\r\n }\r\n }, [\r\n paymentRequest,\r\n onShippingAddressChange,\r\n onClose,\r\n onPaymentMethodReceived\r\n ]);\r\n\r\n const updatePaymentEvent = useCallback((event) => (success, {billing, shipping}) => {\r\n const {cartTotal, cartTotalItems, currency} = billing;\r\n const {shippingRates} = shipping;\r\n if (success) {\r\n event.updateWith({\r\n status: 'success',\r\n total: {\r\n amount: cartTotal.value,\r\n label: cartTotal.label,\r\n pending: false\r\n },\r\n displayItems: getDisplayItems(cartTotalItems, currency),\r\n shippingOptions: getShippingOptions(shippingRates)\r\n });\r\n } else {\r\n event.updateWith({status: 'invalid_shipping_address'});\r\n }\r\n }, []);\r\n\r\n const onShippingAddressChange = useCallback(event => {\r\n const {shippingAddress} = event;\r\n const shipping = currentShipping.current;\r\n const intermediateAddress = toCartAddress(shippingAddress);\r\n shipping.setShippingAddress({...shipping.shippingAddress, ...intermediateAddress});\r\n const addressEqual = isShallowEqual(getIntermediateAddress(shipping.shippingAddress), intermediateAddress);\r\n addPaymentEvent('onShippingChanged', updatePaymentEvent(event), addressEqual);\r\n }, [addPaymentEvent]);\r\n\r\n const onShippingOptionChange = useCallback(event => {\r\n const {shippingOption} = event;\r\n const shipping = currentShipping.current;\r\n shipping.setSelectedRates(...getSelectedShippingOption(shippingOption.id));\r\n addPaymentEvent('onShippingChanged', updatePaymentEvent(event));\r\n }, [addPaymentEvent]);\r\n\r\n const onPaymentMethodReceived = useCallback((paymentResponse) => {\r\n const {paymentMethod, payerName = null, payerEmail = null, payerPhone = null} = paymentResponse;\r\n // set address data\r\n let billingData = {payerName, payerEmail, payerPhone};\r\n if (paymentMethod?.billing_details.address) {\r\n billingData = toCartAddress(paymentMethod.billing_details.address, billingData);\r\n }\r\n exportedValues.billingData = billingData;\r\n\r\n if (paymentResponse.shippingAddress) {\r\n exportedValues.shippingAddress = toCartAddress(paymentResponse.shippingAddress);\r\n }\r\n\r\n // set payment method\r\n setPaymentMethod(paymentMethod.id);\r\n paymentResponse.complete(\"success\");\r\n }, []);\r\n\r\n return {paymentRequest};\r\n}","import {useEffect} from '@wordpress/element';\r\n\r\nexport const useProcessCheckoutError = (\r\n {\r\n responseTypes,\r\n subscriber,\r\n messageContext = null\r\n }) => {\r\n useEffect(() => {\r\n const unsubscribe = subscriber((data) => {\r\n if (data?.processingResponse.paymentDetails?.stripeErrorMessage) {\r\n return {\r\n type: responseTypes.ERROR,\r\n message: data.processingResponse.paymentDetails.stripeErrorMessage,\r\n messageContext\r\n };\r\n }\r\n return null;\r\n });\r\n return () => unsubscribe();\r\n }, [responseTypes, subscriber]);\r\n}","import {useEffect, useState, useCallback, useRef} from '@wordpress/element';\r\nimport {useStripe} from '@stripe/react-stripe-js';\r\nimport {\r\n ensureSuccessResponse,\r\n ensureErrorResponse,\r\n getBillingDetailsFromAddress,\r\n StripeError\r\n} from '../util';\r\n\r\nexport const useProcessPaymentIntent = (\r\n {\r\n getData,\r\n billing,\r\n shippingData,\r\n onPaymentProcessing,\r\n emitResponse,\r\n error,\r\n onSubmit,\r\n activePaymentMethod,\r\n paymentType = 'card',\r\n setupIntent = null,\r\n removeSetupIntent = null,\r\n savePaymentMethod = false,\r\n exportedValues = {},\r\n getPaymentMethodArgs = () => ({})\r\n }) => {\r\n const {billingData} = billing;\r\n const {shippingAddress} = shippingData;\r\n const {responseTypes} = emitResponse;\r\n const [paymentMethod, setPaymentMethod] = useState(null);\r\n const stripe = useStripe();\r\n const currentPaymentMethodArgs = useRef(getPaymentMethodArgs);\r\n\r\n useEffect(() => {\r\n currentPaymentMethodArgs.current = getPaymentMethodArgs;\r\n }, [getPaymentMethodArgs]);\r\n\r\n const getCreatePaymentMethodArgs = useCallback(() => {\r\n const args = {\r\n type: paymentType,\r\n billing_details: getBillingDetailsFromAddress(exportedValues?.billingData ? exportedValues.billingData : billingData)\r\n }\r\n return {...args, ...currentPaymentMethodArgs.current()};\r\n }, [billingData, paymentType, getPaymentMethodArgs]);\r\n\r\n const getSuccessResponse = useCallback((paymentMethodId, savePaymentMethod) => {\r\n const response = {\r\n meta: {\r\n paymentMethodData: {\r\n [`${getData('name')}_token_key`]: paymentMethodId,\r\n [`${getData('name')}_save_source_key`]: savePaymentMethod\r\n }\r\n }\r\n }\r\n if (exportedValues?.billingData) {\r\n response.meta.billingData = exportedValues.billingData;\r\n }\r\n if (exportedValues?.shippingAddress) {\r\n response.meta.shippingData = {address: exportedValues.shippingAddress};\r\n }\r\n return response;\r\n }, [billingData, shippingAddress]);\r\n\r\n useEffect(() => {\r\n if (paymentMethod && typeof paymentMethod === 'string') {\r\n onSubmit();\r\n }\r\n }, [paymentMethod, onSubmit]);\r\n\r\n useEffect(() => {\r\n const unsubscribeProcessingPayment = onPaymentProcessing(async () => {\r\n if (activePaymentMethod !== getData('name')) {\r\n return null;\r\n }\r\n let [result, paymentMethodId] = [null, null];\r\n try {\r\n if (error) {\r\n throw new StripeError(error);\r\n }\r\n if (setupIntent) {\r\n result = await stripe.confirmCardSetup(setupIntent.client_secret, {\r\n payment_method: getCreatePaymentMethodArgs()\r\n });\r\n if (result.error) {\r\n throw new StripeError(result.error);\r\n }\r\n paymentMethodId = result.setupIntent.payment_method;\r\n removeSetupIntent();\r\n } else {\r\n // payment method has already been created.\r\n if (paymentMethod) {\r\n paymentMethodId = paymentMethod;\r\n } else {\r\n //create the payment method\r\n result = await stripe.createPaymentMethod(getCreatePaymentMethodArgs());\r\n if (result.error) {\r\n throw new StripeError(result.error);\r\n }\r\n paymentMethodId = result.paymentMethod.id;\r\n }\r\n }\r\n return ensureSuccessResponse(responseTypes, getSuccessResponse(paymentMethodId, savePaymentMethod));\r\n } catch (e) {\r\n console.log(e);\r\n setPaymentMethod(null);\r\n return ensureErrorResponse(responseTypes, e.error);\r\n }\r\n\r\n });\r\n return () => unsubscribeProcessingPayment();\r\n }, [\r\n paymentMethod,\r\n billingData,\r\n onPaymentProcessing,\r\n stripe,\r\n setupIntent,\r\n activePaymentMethod,\r\n savePaymentMethod\r\n ]);\r\n return {setPaymentMethod};\r\n}","import {useEffect, useState, useCallback} from '@wordpress/element';\r\nimport apiFetch from \"@wordpress/api-fetch\";\r\nimport {\r\n getSettings,\r\n getRoute,\r\n cartContainsPreOrder,\r\n cartContainsSubscription,\r\n getFromCache,\r\n storeInCache,\r\n deleteFromCache\r\n} from '../util';\r\n\r\nexport const useSetupIntent = (\r\n {\r\n cartTotal,\r\n setError\r\n }) => {\r\n const [setupIntent, setSetupIntent] = useState(getFromCache('setupIntent'));\r\n\r\n useEffect(() => {\r\n const createSetupIntent = async () => {\r\n if (setupIntent) {\r\n return;\r\n }\r\n // only create intent under certain conditions\r\n let result = await apiFetch({\r\n url: getRoute('create/setup_intent'),\r\n method: 'POST'\r\n });\r\n if (result.code) {\r\n setError(result.message);\r\n } else {\r\n storeInCache('setupIntent', result.intent);\r\n setSetupIntent(result.intent);\r\n }\r\n }\r\n if (cartContainsPreOrder() || (cartContainsSubscription() && cartTotal.value == 0)) {\r\n if (!setupIntent) {\r\n createSetupIntent();\r\n }\r\n } else {\r\n setSetupIntent(null);\r\n }\r\n }, [cartTotal.value]);\r\n const removeSetupIntent = useCallback(() => {\r\n deleteFromCache('setupIntent');\r\n }, [cartTotal.value]);\r\n return {setupIntent, removeSetupIntent};\r\n}","import {useState} from '@wordpress/element'\r\n\r\nexport const useStripeError = () => {\r\n const [error, setError] = useState(false);\r\n return [error, setError];\r\n}","import {useState, useEffect} from '@wordpress/element';\r\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings, initStripe} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {AfterpayClearpayMessageElement, Elements} from \"@stripe/react-stripe-js\";\r\nimport {sprintf, __} from '@wordpress/i18n';\r\n\r\nconst getData = getSettings('stripe_afterpay_data');\r\nlet variablesHandler;\r\nconst setVariablesHandler = (handler) => {\r\n variablesHandler = handler;\r\n}\r\nconst PaymentMethodLabel = ({getData}) => {\r\n const [variables, setVariables] = useState({\r\n amount: getData('cartTotal'),\r\n currency: getData('currency'),\r\n isEligible: getData('msgOptions').isEligible\r\n });\r\n setVariablesHandler(setVariables);\r\n return (\r\n <Elements stripe={initStripe} options={getData('elementOptions')}>\r\n <div className='wc-stripe-blocks-afterpay__label'>\r\n <AfterpayClearpayMessageElement options={{\r\n ...getData('msgOptions'),\r\n ...{\r\n amount: variables.amount,\r\n currency: variables.currency,\r\n isEligible: variables.isEligible\r\n }\r\n }}/>\r\n </div>\r\n </Elements>\r\n );\r\n}\r\n\r\nconst AfterpayPaymentMethod = ({content, billing, shippingData, ...props}) => {\r\n const Content = content;\r\n const {cartTotal, currency} = billing;\r\n const {needsShipping} = shippingData\r\n useEffect(() => {\r\n variablesHandler({\r\n amount: cartTotal.value,\r\n currency: currency.code,\r\n isEligible: needsShipping\r\n });\r\n }, [\r\n cartTotal.value,\r\n currency.code,\r\n needsShipping\r\n ]);\r\n return (\r\n <>\r\n {needsShipping &&\r\n <div className='wc-stripe-blocks-payment-method-content'>\r\n <div className=\"wc-stripe-blocks-afterpay-offsite__container\">\r\n <div className=\"wc-stripe-blocks-afterpay__offsite\">\r\n <img src={getData('offSiteSrc')}/>\r\n <p>{sprintf(__('After clicking \"%s\", you will be redirected to Afterpay to complete your purchase securely.', 'woo-stripe-payment'), getData('placeOrderButtonLabel'))}</p>\r\n </div>\r\n </div>\r\n <Content {...{...props, billing, shippingData}}/>\r\n </div>}\r\n </>\r\n );\r\n}\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n getData={getData}/>,\r\n ariaLabel: __('Afterpay', 'woo-stripe-payment'),\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData, ({settings, cartTotals, cartNeedsShipping}) => {\r\n const {currency_code: currency, currency_minor_unit, total_price} = cartTotals;\r\n const requiredParams = settings('requiredParams');\r\n const accountCountry = settings('accountCountry');\r\n const requiredParamObj = requiredParams[currency] ? requiredParams[currency] : false;\r\n if (variablesHandler) {\r\n variablesHandler({\r\n amount: parseInt(cartTotals.total_price),\r\n currency,\r\n isEligible: cartNeedsShipping\r\n });\r\n }\r\n const total = parseInt(total_price) / 10 ** currency_minor_unit;\r\n const available = accountCountry === requiredParamObj?.[0] && cartNeedsShipping && (total > requiredParamObj?.[1] && total < requiredParamObj?.[2]);\r\n if (!available && !settings('hideIneligible')) {\r\n return true;\r\n }\r\n return available;\r\n }),\r\n content: <AfterpayPaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmAfterpayClearpayPayment'}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentSourceContent} from './local-payment-method';\r\nimport {PaymentMethodLabel} from \"../../components/checkout/payment-method-label\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {PaymentMethod} from \"../../components/checkout\";\r\n\r\nconst getData = getSettings('stripe_alipay_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'Alipay',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentSourceContent}\r\n getData={getData}/>,\r\n edit: <PaymentMethod\r\n content={LocalPaymentSourceContent}\r\n getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}\r\n","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentSourceContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\n\r\nconst getData = getSettings('stripe_bancontact_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'Bancontact',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentSourceContent}\r\n getData={getData}/>,\r\n edit: <PaymentMethod\r\n content={LocalPaymentSourceContent}\r\n getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {AuBankAccountElement} from \"@stripe/react-stripe-js\";\r\n\r\nconst getData = getSettings('stripe_becs_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'BECS',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmAuBecsDebitPayment'}\r\n component={AuBankAccountElement}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {useState, useEffect, useCallback} from '@wordpress/element';\r\nimport {__} from '@wordpress/i18n';\r\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport classnames from 'classnames';\r\nimport {ensureErrorResponse, getSettings, isTestMode} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\n\r\nconst getData = getSettings('stripe_boleto_data');\r\n\r\nconst BoletoPaymentMethodContainer = ({eventRegistration, ...props}) => {\r\n const [taxId, setTaxId] = useState('');\r\n const [isActive, setIsActive] = useState(false);\r\n const {onPaymentProcessing} = eventRegistration;\r\n const callback = useCallback(() => {\r\n return {\r\n boleto: {\r\n tax_id: taxId\r\n }\r\n };\r\n }, [taxId]);\r\n\r\n useEffect(() => {\r\n const unsubscribe = onPaymentProcessing(() => {\r\n if (!taxId) {\r\n return ensureErrorResponse(props.emitResponse.responseTypes, __('Please enter a valid CPF/CNPJ value', 'woo-stripe-payment'));\r\n }\r\n return true;\r\n })\r\n return () => unsubscribe();\r\n }, [onPaymentProcessing, taxId]);\r\n return (\r\n <>\r\n <div className={classnames('wc-block-components-text-input', {\r\n 'is-active': isActive || taxId\r\n })}>\r\n <input\r\n type='text'\r\n id='wc-stripe-boleto-tax_id'\r\n onChange={(e) => setTaxId(e.target.value)}\r\n onFocus={() => setIsActive(true)}\r\n onBlur={() => setIsActive(false)}/>\r\n <label htmlFor='wc-stripe-boleto-tax_id'>{__(' CPF / CNPJ', ' woo-stripe-payment')}</label>\r\n </div>\r\n {isTestMode() &&\r\n <div className='wc-stripe-boleto__description'>\r\n <p>{__('Test mode values', 'woo-stripe-payment')}</p>\r\n <div>\r\n <label>CPF:</label>&nbsp;<span>000.000.000-00</span>\r\n </div>\r\n <div>\r\n <label>CNPJ:</label>&nbsp;<span>00.000.000/0000-00</span>\r\n </div>\r\n </div>}\r\n {!isTestMode() &&\r\n <div className=\"wc-stripe-boleto__description\">\r\n <p>{__('Accepted formats', 'woo-stripe-payment')}</p>\r\n <div>\r\n <label>CPF:</label>&nbsp;\r\n <span>{__('XXX.XXX.XXX-XX or XXXXXXXXXXX', 'woo-stripe-payment')}</span>\r\n </div>\r\n <div>\r\n <label>CNPJ:</label>&nbsp;\r\n <span>{__('XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX', 'woo-stripe-payment')}</span>\r\n </div>\r\n </div>}\r\n <LocalPaymentIntentContent callback={callback} {...{...props, ...{eventRegistration}}}/>\r\n </>\r\n )\r\n}\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'Boleto',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={BoletoPaymentMethodContainer}\r\n getData={getData}\r\n confirmationMethod={'confirmBoletoPayment'}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentSourceContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\n\r\nconst getData = getSettings('stripe_eps_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'EPS',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,\r\n edit: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {FpxBankElement} from \"@stripe/react-stripe-js\";\r\n\r\nconst getData = getSettings('stripe_fpx_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'FPX',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmIdealPayment'}\r\n component={FpxBankElement}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentSourceContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\n\r\nconst getData = getSettings('stripe_giropay_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'Giropay',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,\r\n edit: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\n\r\nconst getData = getSettings('stripe_grabpay_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'GrabPay',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmGrabPayPayment'}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","export * from './use-after-process-local-payment';\r\nexport * from './use-validate-checkout';\r\nexport * from './use-create-source';","import {useEffect, useRef} from '@wordpress/element';\r\nimport {useStripe} from \"@stripe/react-stripe-js\";\r\nimport {ensureErrorResponse, getBillingDetailsFromAddress, StripeError} from \"../../util\";\r\n\r\nexport const useAfterProcessLocalPayment = (\r\n {\r\n getData,\r\n billingData,\r\n eventRegistration,\r\n responseTypes,\r\n activePaymentMethod,\r\n confirmationMethod,\r\n getPaymentMethodArgs = () => ({})\r\n }\r\n) => {\r\n const stripe = useStripe();\r\n const {onCheckoutAfterProcessingWithSuccess, onCheckoutAfterProcessingWithError} = eventRegistration;\r\n const currentBillingData = useRef(billingData);\r\n const currentPaymentMethodArgs = useRef(getPaymentMethodArgs);\r\n useEffect(() => {\r\n currentBillingData.current = billingData;\r\n }, [billingData]);\r\n\r\n useEffect(() => {\r\n currentPaymentMethodArgs.current = getPaymentMethodArgs;\r\n }, [getPaymentMethodArgs]);\r\n\r\n useEffect(() => {\r\n const unsubscribeAfterProcessingWithSuccess = onCheckoutAfterProcessingWithSuccess(async ({redirectUrl}) => {\r\n if (getData('name') === activePaymentMethod) {\r\n try {\r\n let match = redirectUrl.match(/#response=(.+)/);\r\n if (match) {\r\n let {client_secret, return_url, ...order} = JSON.parse(window.atob(decodeURIComponent(match[1])));\r\n let result = await stripe[confirmationMethod](client_secret, {\r\n payment_method: {\r\n billing_details: getBillingDetailsFromAddress(currentBillingData.current),\r\n ...currentPaymentMethodArgs.current()\r\n },\r\n return_url\r\n });\r\n if (result.error) {\r\n throw new StripeError(result.error);\r\n }\r\n window.location = decodeURI(order.order_received_url);\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n return ensureErrorResponse(responseTypes, e.error);\r\n }\r\n }\r\n })\r\n return () => unsubscribeAfterProcessingWithSuccess();\r\n }, [\r\n stripe,\r\n onCheckoutAfterProcessingWithSuccess,\r\n onCheckoutAfterProcessingWithError\r\n ]);\r\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\r\nimport {\r\n getDefaultSourceArgs,\r\n ensureSuccessResponse,\r\n ensureErrorResponse,\r\n StripeError\r\n} from \"../../util\";\r\nimport {useStripe, useElements} from \"@stripe/react-stripe-js\";\r\nimport {__} from '@wordpress/i18n';\r\n\r\nexport const useCreateSource = (\r\n {\r\n getData,\r\n billing,\r\n shippingAddress,\r\n onPaymentProcessing,\r\n responseTypes,\r\n getSourceArgs = false,\r\n element = false\r\n }) => {\r\n const [source, setSource] = useState(false);\r\n const [isValid, setIsValid] = useState(false);\r\n const currentValues = useRef({\r\n billing,\r\n shippingAddress,\r\n });\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n useEffect(() => {\r\n currentValues.current = {\r\n billing,\r\n shippingAddress\r\n }\r\n });\r\n\r\n const getSourceArgsInternal = useCallback(() => {\r\n const {billing} = currentValues.current;\r\n const {cartTotal, currency, billingData} = billing;\r\n let args = getDefaultSourceArgs({\r\n type: getData('paymentType'),\r\n amount: cartTotal.value,\r\n billingData,\r\n currency: currency.code,\r\n returnUrl: getData('returnUrl')\r\n });\r\n if (getSourceArgs) {\r\n args = getSourceArgs(args, {billingData});\r\n }\r\n return args;\r\n }, []);\r\n\r\n const getSuccessData = useCallback((sourceId) => {\r\n return {\r\n meta: {\r\n paymentMethodData: {\r\n [`${getData('name')}_token_key`]: sourceId\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n const unsubscribe = onPaymentProcessing(async () => {\r\n if (source) {\r\n return ensureSuccessResponse(responseTypes, getSuccessData(source.id));\r\n }\r\n // create the source\r\n try {\r\n let result;\r\n if (element) {\r\n // validate the element\r\n if (!isValid) {\r\n throw __('Please enter your payment info before proceeding.', 'woo-stripe-payment');\r\n }\r\n result = await stripe.createSource(elements.getElement(element), getSourceArgsInternal());\r\n } else {\r\n result = await stripe.createSource(getSourceArgsInternal());\r\n }\r\n if (result.error) {\r\n throw new StripeError(result.error);\r\n }\r\n setSource(result.source);\r\n return ensureSuccessResponse(responseTypes, getSuccessData(result.source.id));\r\n } catch (err) {\r\n console.log(err);\r\n return ensureErrorResponse(responseTypes, err.error || err);\r\n }\r\n });\r\n return () => unsubscribe();\r\n }, [\r\n source,\r\n onPaymentProcessing,\r\n stripe,\r\n responseTypes,\r\n element,\r\n isValid,\r\n setIsValid\r\n ]);\r\n return {setIsValid};\r\n}","import {useEffect, useRef, useState} from '@wordpress/element';\r\nimport {ensureErrorResponse} from \"../../util\";\r\nimport {__} from \"@wordpress/i18n\";\r\n\r\nexport const useValidateCheckout = (\r\n {\r\n subscriber,\r\n responseTypes,\r\n component = null,\r\n msg = __('Please enter your payment info before proceeding.', 'woo-stripe-payment')\r\n }) => {\r\n const [isValid, setIsValid] = useState(false);\r\n\r\n useEffect(() => {\r\n const unsubscribe = subscriber(() => {\r\n if (component && !isValid) {\r\n return ensureErrorResponse(responseTypes, msg);\r\n }\r\n return true;\r\n });\r\n return () => unsubscribe();\r\n }, [\r\n subscriber,\r\n isValid,\r\n setIsValid,\r\n responseTypes,\r\n component\r\n ]);\r\n return {isValid, setIsValid};\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {IdealBankElement} from \"@stripe/react-stripe-js\";\r\n\r\nconst getData = getSettings('stripe_ideal_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'Ideal',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmIdealPayment'}\r\n component={IdealBankElement}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import './klarna';\r\nimport './ideal';\r\nimport './p24';\r\nimport './bancontact';\r\nimport './giropay';\r\nimport './eps';\r\nimport './multibanco';\r\nimport './sepa';\r\nimport './sofort';\r\nimport './wechat';\r\nimport './fpx';\r\nimport './becs';\r\nimport './grabpay';\r\nimport './alipay'\r\nimport './afterpay';\r\nimport './boleto';\r\nimport './oxxo';","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings, isTestMode} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {__} from \"@wordpress/i18n\";\r\n\r\nconst getData = getSettings('stripe_klarna_data');\r\n\r\nconst KlarnaPaymentMethod = (props) => {\r\n return (\r\n <>\r\n {isTestMode() &&\r\n <div className=\"wc-stripe-klarna__testmode\">\r\n <label>{__('Test mode sms', 'woo-stripe-payment')}:</label>&nbsp;<span>123456</span>\r\n </div>}\r\n <LocalPaymentIntentContent {...props}/>\r\n </>\r\n )\r\n}\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'Klarna',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData, ({settings, billingData, cartTotals}) => {\r\n const {country} = billingData;\r\n const {currency_code: currency} = cartTotals;\r\n const requiredParams = settings('requiredParams');\r\n return [currency] in requiredParams && requiredParams[currency].includes(country);\r\n }),\r\n content: <PaymentMethod\r\n content={KlarnaPaymentMethod}\r\n getData={getData}\r\n confirmationMethod={'confirmKlarnaPayment'}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {useCallback} from '@wordpress/element';\r\nimport {useElements, Elements} from \"@stripe/react-stripe-js\";\r\nimport {initStripe as loadStripe, cartContainsSubscription, cartContainsPreOrder} from '../util'\r\nimport {useAfterProcessLocalPayment, useValidateCheckout, useCreateSource} from \"./hooks\";\r\nimport {useProcessCheckoutError} from \"../hooks\";\r\n\r\n/**\r\n * Return true if the local payment method can be used.\r\n * @param settings\r\n * @returns {function({billingData: *, [p: string]: *}): *}\r\n */\r\nexport const canMakePayment = (settings, callback = false) => ({billingData, cartTotals, ...props}) => {\r\n const {currency_code} = cartTotals;\r\n const {country} = billingData;\r\n const countries = settings('countries');\r\n const type = settings('allowedCountries');\r\n const supports = settings('features');\r\n let canMakePayment = false;\r\n if (settings('isAdmin')) {\r\n canMakePayment = true;\r\n } else {\r\n // Check if there are any subscriptions or pre-orders in the cart.\r\n if (cartContainsSubscription() && !supports.includes('subscriptions')) {\r\n return false;\r\n } else if (cartContainsPreOrder() && !supports.includes('pre-orders')) {\r\n return false;\r\n }\r\n if (settings('currencies').includes(currency_code)) {\r\n if (type === 'all_except') {\r\n canMakePayment = !settings('exceptCountries').includes(country);\r\n } else if (type === 'specific') {\r\n canMakePayment = settings('specificCountries').includes(country);\r\n } else {\r\n canMakePayment = countries.length > 0 ? countries.includes(country) : true;\r\n }\r\n }\r\n if (callback && canMakePayment) {\r\n canMakePayment = callback({settings, billingData, cartTotals, ...props});\r\n }\r\n }\r\n return canMakePayment;\r\n}\r\n\r\nexport const LocalPaymentIntentContent = ({getData, ...props}) => {\r\n return (\r\n <Elements stripe={loadStripe} options={getData('elementOptions')}>\r\n <LocalPaymentIntentMethod {...{...props, getData}}/>\r\n </Elements>\r\n )\r\n}\r\n\r\nexport const LocalPaymentSourceContent = (props) => {\r\n return (\r\n <Elements stripe={loadStripe}>\r\n <LocalPaymentSourceMethod {...props}/>\r\n </Elements>\r\n )\r\n}\r\n\r\nconst LocalPaymentSourceMethod = (\r\n {\r\n getData,\r\n billing,\r\n shippingData,\r\n emitResponse,\r\n eventRegistration,\r\n getSourceArgs = false,\r\n element = false\r\n }) => {\r\n const {shippingAddress} = shippingData;\r\n const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;\r\n const {responseTypes, noticeContexts} = emitResponse;\r\n const onChange = (event) => {\r\n setIsValid(event.complete);\r\n }\r\n const {setIsValid} = useCreateSource({\r\n getData,\r\n billing,\r\n shippingAddress,\r\n onPaymentProcessing,\r\n responseTypes,\r\n getSourceArgs,\r\n element\r\n });\r\n\r\n if (element) {\r\n return (\r\n <LocalPaymentElementContainer\r\n name={getData('name')}\r\n options={getData('paymentElementOptions')}\r\n onChange={onChange}\r\n element={element}/>\r\n )\r\n }\r\n return null;\r\n}\r\n\r\nconst LocalPaymentIntentMethod = (\r\n {\r\n getData,\r\n billing,\r\n emitResponse,\r\n eventRegistration,\r\n activePaymentMethod,\r\n confirmationMethod = null,\r\n component = null,\r\n callback = null\r\n }) => {\r\n const elements = useElements();\r\n const {billingData} = billing;\r\n const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;\r\n const {responseTypes, noticeContexts} = emitResponse;\r\n const getPaymentMethodArgs = useCallback(() => {\r\n if (component) {\r\n return {\r\n [getData('paymentType')]: elements.getElement(component)\r\n }\r\n } else if (callback) {\r\n return callback();\r\n }\r\n return {};\r\n }, [\r\n elements,\r\n callback\r\n ]);\r\n const {setIsValid} = useValidateCheckout({\r\n subscriber: onPaymentProcessing,\r\n responseTypes,\r\n component\r\n }\r\n );\r\n\r\n useAfterProcessLocalPayment({\r\n getData,\r\n billingData,\r\n eventRegistration,\r\n responseTypes,\r\n activePaymentMethod,\r\n confirmationMethod,\r\n getPaymentMethodArgs\r\n });\r\n useProcessCheckoutError({\r\n responseTypes,\r\n subscriber: onCheckoutAfterProcessingWithError,\r\n messageContext: noticeContexts.PAYMENT\r\n });\r\n if (component) {\r\n const onChange = (event) => setIsValid(!event.empty)\r\n return (\r\n <LocalPaymentElementContainer\r\n name={getData('name')}\r\n options={getData('paymentElementOptions')}\r\n onChange={onChange}\r\n element={component}\r\n callback={callback}/>\r\n )\r\n }\r\n return null;\r\n}\r\n\r\nconst LocalPaymentElementContainer = ({name, onChange, element, options, ...props}) => {\r\n const Tag = element;\r\n return (\r\n <div className={`wc-stripe-local-payment-container ${name} ${Tag.displayName}`}>\r\n <Tag options={options} onChange={onChange} {...props}/>\r\n </div>\r\n )\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentSourceContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\n\r\nconst getData = getSettings('stripe_multibanco_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'MultiBanco',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,\r\n edit: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}\r\n","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {IdealBankElement} from \"@stripe/react-stripe-js\";\r\n\r\nconst getData = getSettings('stripe_oxxo_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'OXXO',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmOxxoPayment'}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {P24BankElement} from \"@stripe/react-stripe-js\";\r\n\r\nconst getData = getSettings('stripe_p24_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'P24',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmP24Payment'}\r\n component={P24BankElement}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}\r\n","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings, cartContainsPreOrder, cartContainsSubscription} from \"../util\";\r\nimport {LocalPaymentSourceContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {IbanElement} from \"@stripe/react-stripe-js\";\r\n\r\nconst getData = getSettings('stripe_sepa_data');\r\n\r\nconst getSourceArgs = (args, {billingData}) => {\r\n args.mandate = {\r\n notification_method: billingData.email ? 'email' : 'manual',\r\n interval: cartContainsSubscription() || cartContainsPreOrder() ? 'scheduled' : 'one_time'\r\n }\r\n if (args.mandate.interval === 'scheduled') {\r\n delete args.amount;\r\n }\r\n return args;\r\n}\r\n\r\nconst LocalPaymentMethod = (PaymentMethod) => ({getData, ...props}) => {\r\n return (\r\n <>\r\n <PaymentMethod {...{...props, getData}}/>\r\n <div className={'wc-stripe-blocks-sepa__mandate'}>\r\n {getData('mandate')}\r\n </div>\r\n </>\r\n )\r\n}\r\n\r\nconst SepaPaymentMethod = LocalPaymentMethod(PaymentMethod);\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'SEPA',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <SepaPaymentMethod\r\n content={LocalPaymentSourceContent}\r\n getData={getData}\r\n element={IbanElement}\r\n getSourceArgs={getSourceArgs}/>,\r\n edit: <LocalPaymentSourceContent getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentSourceContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\n\r\nconst getData = getSettings('stripe_sofort_data');\r\n\r\nconst getSourceArgs = (args, {billingData}) => {\r\n return {...args, sofort: {country: billingData.country}};\r\n}\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'Sofort',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentSourceContent}\r\n getData={getData}\r\n getSourceArgs={getSourceArgs}/>,\r\n edit: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}\r\n","import {useEffect, useRef, useState, useCallback} from '@wordpress/element';\r\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {\r\n getSettings,\r\n initStripe as loadStripe,\r\n getDefaultSourceArgs,\r\n isAddressValid,\r\n StripeError,\r\n isTestMode,\r\n ensureSuccessResponse,\r\n getErrorMessage,\r\n storeInCache,\r\n getFromCache,\r\n deleteFromCache\r\n} from \"../util\";\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {Elements} from \"@stripe/react-stripe-js\";\r\nimport {useValidateCheckout} from \"./hooks\";\r\nimport {__} from '@wordpress/i18n';\r\n//import QRCode from 'QRCode';\r\nimport {useStripe} from \"@stripe/react-stripe-js\";\r\nimport {useStripeError} from \"../hooks\";\r\n\r\nconst getData = getSettings('stripe_wechat_data');\r\n\r\nconst WeChatComponent = (props) => {\r\n return (\r\n <Elements stripe={loadStripe}>\r\n <WeChatPaymentMethod {...props}/>\r\n </Elements>\r\n )\r\n}\r\n\r\nconst WeChatPaymentMethod = (\r\n {\r\n getData,\r\n billing,\r\n shippingData,\r\n emitResponse,\r\n eventRegistration,\r\n components\r\n }) => {\r\n const size = parseInt(getData('qrSize'));\r\n const {responseTypes} = emitResponse;\r\n const {onPaymentProcessing, onCheckoutAfterProcessingWithSuccess} = eventRegistration;\r\n const {ValidationInputError} = components;\r\n const {isValid, setIsValid} = useValidateCheckout({\r\n subscriber: eventRegistration.onPaymentProcessing,\r\n responseTypes: emitResponse.responseTypes,\r\n msg: __('Please scan your QR code to continue with payment.', 'woo-stripe-payment')\r\n });\r\n\r\n const {source, error, deleteSourceFromStorage} = useCreateSource({\r\n getData,\r\n billing,\r\n responseTypes,\r\n subscriber: onPaymentProcessing\r\n })\r\n\r\n /**\r\n * delete the source from storage once payment is successful.\r\n * If test mode, redirect to the Stripe test url.\r\n * If live mode, redirect to the return Url.\r\n */\r\n useEffect(() => {\r\n const unsubscribe = onCheckoutAfterProcessingWithSuccess(() => {\r\n deleteSourceFromStorage();\r\n return ensureSuccessResponse(responseTypes);\r\n });\r\n return () => unsubscribe();\r\n }, [\r\n source,\r\n onCheckoutAfterProcessingWithSuccess,\r\n deleteSourceFromStorage\r\n ]);\r\n\r\n useEffect(() => {\r\n if (source) {\r\n setIsValid(true);\r\n }\r\n }, [source]);\r\n\r\n if (source) {\r\n return (\r\n <QRCodeComponent text={source.wechat.qr_code_url} width={size} height={size}/>\r\n );\r\n } else if (error) {\r\n return (\r\n <div className='wechat-validation-error'>\r\n <ValidationInputError errorMessage={getErrorMessage(error)}/>\r\n </div>\r\n );\r\n } else {\r\n // if billing address is not valid\r\n if (!isAddressValid(billing.billingData)) {\r\n return __('Please fill out all the required fields in order to complete the WeChat payment.', 'woo-stripe-payment');\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nconst QRCodeComponent = (\r\n {\r\n text,\r\n width = 128,\r\n height = 128,\r\n colorDark = '#424770',\r\n colorLight = '#f8fbfd',\r\n correctLevel = QRCode.CorrectLevel.H\r\n }) => {\r\n const el = useRef();\r\n useEffect(() => {\r\n new QRCode(el.current, {\r\n text,\r\n width,\r\n height,\r\n colorDark,\r\n colorLight,\r\n correctLevel\r\n })\r\n }, [el]);\r\n return (\r\n <>\r\n <div id='wc-stripe-block-qrcode' ref={el}></div>\r\n {isTestMode() && <p>\r\n {__('Test mode: Click the Place Order button to proceed.', 'woo-stripe-payment')}\r\n </p>}\r\n {!isTestMode() && <p>\r\n {__('Scan the QR code using your WeChat app. Once scanned click the Place Order button.', 'woo-stripe-payment')}\r\n </p>}\r\n </>\r\n )\r\n}\r\n\r\nconst useCreateSource = (\r\n {\r\n getData,\r\n billing,\r\n responseTypes,\r\n subscriber\r\n }) => {\r\n const stripe = useStripe();\r\n const [error, setError] = useStripeError();\r\n const [source, setSource] = useState(getFromCache('wechat:source'));\r\n const createSourceTimeoutId = useRef(null);\r\n const {cartTotal, billingData, currency} = billing;\r\n\r\n useEffect(() => {\r\n const unsubscribe = subscriber(() => {\r\n return ensureSuccessResponse(responseTypes, {\r\n meta: {\r\n paymentMethodData: {\r\n [`${getData('name')}_token_key`]: source.id\r\n }\r\n }\r\n })\r\n });\r\n return () => unsubscribe();\r\n }, [source, subscriber]);\r\n\r\n const createSource = useCallback(async () => {\r\n // validate the billing fields. If valid, create the source.\r\n try {\r\n if (!error && isAddressValid(billingData)) {\r\n let result = await stripe.createSource(getDefaultSourceArgs({\r\n type: getData('paymentType'),\r\n amount: cartTotal.value,\r\n billingData,\r\n currency: currency.code,\r\n returnUrl: getData('returnUrl')\r\n }));\r\n if (result.error) {\r\n throw new StripeError(result.error);\r\n }\r\n setSource(result.source);\r\n storeInCache('wechat:source', result.source);\r\n }\r\n } catch (err) {\r\n console.log('error: ', err);\r\n setError(err.error);\r\n }\r\n }, [\r\n stripe,\r\n source,\r\n cartTotal.value,\r\n billingData,\r\n currency,\r\n error\r\n ]);\r\n const deleteSourceFromStorage = useCallback(() => {\r\n deleteFromCache('wechat:source');\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (stripe && !source) {\r\n // if there is an existing request, cancel it.\r\n clearTimeout(createSourceTimeoutId.current);\r\n createSourceTimeoutId.current = setTimeout(createSource, 1000);\r\n }\r\n }, [\r\n stripe,\r\n source,\r\n createSource\r\n ]);\r\n\r\n return {source, setSource, error, deleteSourceFromStorage};\r\n}\r\n\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'WeChat',\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod content={WeChatComponent} getData={getData}/>,\r\n edit: <PaymentMethod content={WeChatComponent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}\r\n","import './style.scss';\r\n\r\nimport './payment-method';","import {useMemo, useEffect, useRef} from '@wordpress/element';\r\nimport {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings, initStripe as loadStripe, canMakePayment} from \"../util\";\r\nimport {useBreakpointWidth, useExpressBreakpointWidth} from '../hooks';\r\nimport {Elements, PaymentRequestButtonElement, useStripe} from \"@stripe/react-stripe-js\";\r\nimport {\r\n usePaymentRequest,\r\n useProcessPaymentIntent,\r\n useExportedValues,\r\n useAfterProcessingPayment,\r\n useStripeError\r\n} from '../hooks';\r\n\r\nconst getData = getSettings('stripe_payment_request_data');\r\n\r\nconst PaymentRequestContent = (props) => {\r\n return (\r\n <div className='wc-stripe-payment-request-container'>\r\n <Elements stripe={loadStripe}>\r\n <PaymentRequestButton {...props}/>\r\n </Elements>\r\n </div>\r\n );\r\n}\r\n\r\nconst PaymentRequestButton = (\r\n {\r\n getData,\r\n onClick,\r\n onClose,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n emitResponse,\r\n onSubmit,\r\n activePaymentMethod,\r\n ...props\r\n }) => {\r\n const {onPaymentProcessing} = eventRegistration;\r\n const {responseTypes, noticeContexts} = emitResponse;\r\n const stripe = useStripe();\r\n const [error] = useStripeError();\r\n const canPay = (result) => result != null && !result.applePay;\r\n const exportedValues = useExportedValues();\r\n useExpressBreakpointWidth({payment_method: getData('name'), width: 300});\r\n const {setPaymentMethod} = useProcessPaymentIntent({\r\n getData,\r\n billing,\r\n shippingData,\r\n onPaymentProcessing,\r\n emitResponse,\r\n error,\r\n onSubmit,\r\n activePaymentMethod,\r\n exportedValues\r\n });\r\n useAfterProcessingPayment({\r\n getData,\r\n eventRegistration,\r\n responseTypes,\r\n activePaymentMethod,\r\n messageContext: noticeContexts.EXPRESS_PAYMENTS\r\n });\r\n const {paymentRequest} = usePaymentRequest({\r\n getData,\r\n onClose,\r\n stripe,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n setPaymentMethod,\r\n exportedValues,\r\n canPay\r\n });\r\n\r\n const options = useMemo(() => {\r\n return {\r\n paymentRequest,\r\n style: {\r\n paymentRequestButton: getData('paymentRequestButton')\r\n }\r\n }\r\n }, [paymentRequest]);\r\n\r\n if (paymentRequest) {\r\n return (\r\n <PaymentRequestButtonElement options={options} onClick={onClick}/>\r\n )\r\n }\r\n return null;\r\n}\r\n\r\nconst PaymentRequestEdit = ({getData, ...props}) => {\r\n const canvas = useRef();\r\n useEffect(() => {\r\n const scale = window.devicePixelRatio;\r\n canvas.current.width = 20 * scale;\r\n canvas.current.height = 20 * scale;\r\n let ctx = canvas.current.getContext('2d');\r\n ctx.scale(scale, scale);\r\n ctx.beginPath();\r\n ctx.arc(10, 10, 10, 0, 2 * Math.PI);\r\n ctx.fillStyle = '#986fff';\r\n ctx.fill();\r\n });\r\n return (\r\n <div className='payment-request-block-editor'>\r\n <div className={'icon-container'}>\r\n <span>Buy now</span>\r\n <canvas className='PaymentRequestButton-icon' ref={canvas}/>\r\n <i className={'payment-request-arrow'}></i>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nregisterExpressPaymentMethod({\r\n name: getData('name'),\r\n canMakePayment: ({cartTotals}) => {\r\n if (getData('isAdmin')) {\r\n return true;\r\n }\r\n const {currency_code: currency, total_price} = cartTotals;\r\n return canMakePayment({\r\n country: getData('countryCode'),\r\n currency: currency.toLowerCase(),\r\n total: {\r\n label: getData('totalLabel'),\r\n amount: parseInt(total_price)\r\n }\r\n }, (result) => result != null && !result.applePay);\r\n },\r\n content: <PaymentRequestContent getData={getData}/>,\r\n edit: <PaymentRequestEdit getData={getData}/>,\r\n supports: {\r\n showSavedCards: getData('showSavedCards'),\r\n showSaveOption: getData('showSaveOption'),\r\n features: getData('features')\r\n }\r\n});","import {useEffect, useCallback} from '@wordpress/element';\r\nimport {initStripe as loadStripe, getSettings, handleCardAction} from '@paymentplugins/stripe/util';\r\n\r\nconst SavedCardComponent = (\r\n {\r\n eventRegistration,\r\n emitResponse,\r\n getData\r\n }) => {\r\n const {onCheckoutAfterProcessingWithSuccess} = eventRegistration;\r\n const {responseTypes} = emitResponse;\r\n const handleSuccessResult = useCallback(async ({redirectUrl}) => {\r\n const stripe = await loadStripe;\r\n return await handleCardAction({redirectUrl, getData, stripe, responseTypes});\r\n }, [onCheckoutAfterProcessingWithSuccess]);\r\n\r\n useEffect(() => {\r\n const unsubscribeOnCheckoutAfterProcessingWithSuccess = onCheckoutAfterProcessingWithSuccess(handleSuccessResult);\r\n return () => unsubscribeOnCheckoutAfterProcessingWithSuccess();\r\n }, [\r\n onCheckoutAfterProcessingWithSuccess\r\n ]);\r\n return null;\r\n}\r\n\r\nexport default SavedCardComponent;\r\n","import {loadStripe} from '@stripe/stripe-js';\r\nimport {getSetting} from '@woocommerce/settings'\r\nimport apiFetch from \"@wordpress/api-fetch\";\r\nimport {getCurrency, formatPrice as wcFormatPrice} from '@woocommerce/price-format';\r\n\r\nconst {publishableKey, account} = getSetting('stripeGeneralData');\r\nconst messages = getSetting('stripeErrorMessages');\r\nconst countryLocale = getSetting('countryLocale', {});\r\n\r\nconst SHIPPING_OPTION_REGEX = /^([\\w]+)\\:(.+)$/;\r\n\r\nconst routes = getSetting('stripeGeneralData').routes;\r\n\r\nconst creditCardForms = {};\r\n\r\nconst localPaymentMethods = [];\r\n\r\nconst CACHE_PREFIX = 'stripe:';\r\n\r\nconst PAYMENT_REQUEST_ADDRESS_MAPPINGS = {\r\n recipient: (address, name) => {\r\n address.first_name = name.split(' ').slice(0, -1).join(' ');\r\n address.last_name = name.split(' ').pop();\r\n return address;\r\n },\r\n payerName: (address, name) => {\r\n address.first_name = name.split(' ').slice(0, -1).join(' ');\r\n address.last_name = name.split(' ').pop();\r\n return address;\r\n },\r\n country: 'country',\r\n addressLine: (address, value) => {\r\n if (value[0]) {\r\n address.address_1 = value[0];\r\n }\r\n if (value[1]) {\r\n address.address_2 = value[1];\r\n }\r\n return address;\r\n },\r\n line1: 'address_1',\r\n line2: 'address_2',\r\n city: 'city',\r\n region: 'state',\r\n state: 'state',\r\n postalCode: 'postcode',\r\n postal_code: 'postcode',\r\n payerEmail: 'email',\r\n payerPhone: 'phone'\r\n}\r\n\r\nexport const initStripe = new Promise((resolve, reject) => {\r\n loadStripe(publishableKey, (() => account ? {stripeAccount: account} : {})()).then(stripe => {\r\n resolve(stripe);\r\n }).catch(err => {\r\n resolve({error: err});\r\n });\r\n});\r\n\r\nexport const registerCreditCardForm = ({id, ...props}) => {\r\n creditCardForms[id] = props;\r\n}\r\n\r\nexport const getCreditCardForm = (id) => {\r\n return creditCardForms.hasOwnProperty(id) ? creditCardForms[id] : {};\r\n}\r\n\r\nexport const getRoute = (route) => {\r\n return routes?.[route] ? routes[route] : console.log(`${route} is not a valid route`);\r\n}\r\n\r\nexport const ensureSuccessResponse = (responseTypes, data = {}) => {\r\n return {type: responseTypes.SUCCESS, ...data};\r\n}\r\n\r\n/**\r\n * Returns a formatted error object used by observers\r\n * @param responseTypes\r\n * @param error\r\n * @returns {{type: *, message: *}}\r\n */\r\nexport const ensureErrorResponse = (responseTypes, error) => {\r\n return {type: responseTypes.ERROR, message: getErrorMessage(error)}\r\n};\r\n\r\n/**\r\n * Return a customized error message.\r\n * @param error\r\n */\r\nexport const getErrorMessage = (error) => {\r\n if (typeof error == 'string') {\r\n return error;\r\n }\r\n if (error?.code && messages?.[error.code]) {\r\n return messages[error.code];\r\n }\r\n if (error?.statusCode) {\r\n return messages?.[error.statusCode] ? messages[error.statusCode] : error.statusMessage;\r\n }\r\n return error.message;\r\n}\r\n\r\n/**\r\n * Return a Stripe formatted billing_details object from a WC address\r\n * @param billingAddress\r\n */\r\nexport const getBillingDetailsFromAddress = (billingAddress) => {\r\n let billing_details = {\r\n name: `${billingAddress.first_name} ${billingAddress.last_name}`,\r\n address: {\r\n city: billingAddress.city || null,\r\n country: billingAddress.country || null,\r\n line1: billingAddress.address_1 || null,\r\n line2: billingAddress.address_2 || null,\r\n postal_code: billingAddress.postcode || null,\r\n state: billingAddress.state || null\r\n }\r\n }\r\n if (billingAddress?.phone) {\r\n billing_details.phone = billingAddress.phone;\r\n }\r\n if (billingAddress?.email) {\r\n billing_details.email = billingAddress.email;\r\n }\r\n return billing_details;\r\n}\r\n\r\nexport const getSettings = (name) => (key) => {\r\n if (key) {\r\n return getSetting(name)[key];\r\n }\r\n return getSetting(name);\r\n}\r\n\r\nexport class StripeError extends Error {\r\n constructor(error) {\r\n super(error.message);\r\n this.error = error;\r\n }\r\n}\r\n\r\n/**\r\n * Returns true if the provided value is empty.\r\n * @param value\r\n * @returns {boolean}\r\n */\r\nexport const isEmpty = (value) => {\r\n if (typeof value === 'string') {\r\n return value.length == 0 || value == '';\r\n }\r\n if (Array.isArray(value)) {\r\n return array.length == 0;\r\n }\r\n if (typeof value === 'object') {\r\n return Object.keys(value).length == 0;\r\n }\r\n if (typeof value === 'undefined') {\r\n return true;\r\n }\r\n return true;\r\n}\r\n\r\nexport const removeNumberPrecision = (value, unit) => {\r\n return value / 10 ** unit;\r\n}\r\n\r\n/**\r\n *\r\n * @param address\r\n * @param country\r\n */\r\nexport const isAddressValid = (address, exclude = []) => {\r\n const fields = getLocaleFields(address.country);\r\n for (const [key, value] of Object.entries(address)) {\r\n if (!exclude.includes(key) && fields?.[key] && fields[key].required) {\r\n if (isEmpty(value)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n\r\nexport const getLocaleFields = (country) => {\r\n let localeFields = {...countryLocale.default};\r\n if (country && countryLocale?.[country]) {\r\n localeFields = Object.entries(countryLocale[country]).reduce((locale, [key, value]) => {\r\n locale[key] = {...locale[key], ...value}\r\n return locale;\r\n }, localeFields);\r\n ['phone', 'email'].forEach(key => {\r\n let node = document.getElementById(key);\r\n if (node) {\r\n localeFields[key] = {required: node.required};\r\n }\r\n });\r\n }\r\n return localeFields;\r\n}\r\n\r\n/**\r\n * Return true if the field is required by the cart\r\n * @param field\r\n * @param country\r\n * @returns {boolean|*}\r\n */\r\nexport const isFieldRequired = (field, country = false) => {\r\n const fields = getLocaleFields(country);\r\n return [field] in fields && fields[field].required;\r\n}\r\n\r\nexport const getSelectedShippingOption = (id) => {\r\n const result = id.match(SHIPPING_OPTION_REGEX);\r\n if (result) {\r\n const {1: packageIdx, 2: rate} = result;\r\n return [rate, packageIdx];\r\n }\r\n return [];\r\n}\r\n\r\nexport const hasShippingRates = (shippingRates) => {\r\n return shippingRates.map(rate => {\r\n return rate.shipping_rates.length > 0;\r\n }).filter(Boolean).length > 0;\r\n}\r\n\r\n/**\r\n * Return true if the customer is logged in.\r\n * @param customerId\r\n * @returns {boolean}\r\n */\r\nexport const isUserLoggedIn = (customerId) => {\r\n return customerId > 0;\r\n}\r\n\r\nconst syncPaymentIntentWithOrder = async (order_id, client_secret) => {\r\n try {\r\n await apiFetch({\r\n url: routes['sync/intent'],\r\n method: 'POST',\r\n data: {order_id, client_secret}\r\n })\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n}\r\n\r\nexport const handleCardAction = async (\r\n {\r\n redirectUrl,\r\n responseTypes,\r\n stripe,\r\n getData,\r\n savePaymentMethod = false\r\n }) => {\r\n try {\r\n let match = redirectUrl.match(/#response=(.+)/)\r\n if (match) {\r\n let {client_secret, order_id, order_key} = JSON.parse(window.atob(decodeURIComponent(match[1])));\r\n let result = await stripe.handleCardAction(client_secret);\r\n if (result.error) {\r\n syncPaymentIntentWithOrder(order_id, client_secret);\r\n return ensureErrorResponse(responseTypes, result.error);\r\n }\r\n // success so finish processing order then redirect to thank you page\r\n let data = {order_id, order_key, [`${getData('name')}_save_source_key`]: savePaymentMethod};\r\n let response = await apiFetch({\r\n url: getRoute('process/payment'),\r\n method: 'POST',\r\n data\r\n })\r\n if (response.messages) {\r\n return ensureErrorResponse(responseTypes, response.messages);\r\n }\r\n return ensureSuccessResponse(responseTypes, {\r\n redirectUrl: response.redirect\r\n });\r\n } else {\r\n return ensureSuccessResponse(responseTypes);\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n return ensureErrorResponse(responseTypes, err);\r\n }\r\n}\r\n\r\n/**\r\n * Convert a payment wallet address to a WC cart address.\r\n * @param address_mappings\r\n * @returns {function(*, *=): {}}\r\n */\r\nexport const toCartAddress = (address_mappings = PAYMENT_REQUEST_ADDRESS_MAPPINGS) => (address, args = {}) => {\r\n const cartAddress = {};\r\n address = {...address, ...filterEmptyValues(args)};\r\n for (let [key, cartKey] of Object.entries(address_mappings)) {\r\n if (address?.[key]) {\r\n if (typeof cartKey === 'function') {\r\n cartKey(cartAddress, address[key]);\r\n } else {\r\n cartAddress[cartKey] = address[key];\r\n }\r\n }\r\n }\r\n return cartAddress;\r\n}\r\n\r\n/**\r\n * Given a WC formatted address, return only the intermediate address values\r\n * @param address\r\n * @param fields\r\n */\r\nexport const getIntermediateAddress = (address, fields = ['city', 'postcode', 'state', 'country']) => {\r\n const intermediateAddress = {};\r\n for (let key of fields) {\r\n intermediateAddress[key] = address[key];\r\n }\r\n return intermediateAddress;\r\n}\r\n\r\n/**\r\n *\r\n * @param values\r\n * @returns {{}|{[p: string]: *}}\r\n */\r\nexport const filterEmptyValues = (values) => {\r\n return Object.keys(values).filter(key => Boolean(values[key])).reduce((obj, key) => ({\r\n ...obj,\r\n [key]: values[key]\r\n }), {});\r\n}\r\n\r\nexport const formatPrice = (price, currencyCode) => {\r\n const {prefix, suffix, decimalSeparator, minorUnit, thousandSeparator} = getCurrency(currencyCode);\r\n if (price == '' || price === undefined) {\r\n return price;\r\n }\r\n\r\n price = typeof price === 'string' ? parseInt(price, 10) : price;\r\n price = price / 10 ** minorUnit;\r\n price = price.toString().replace('.', decimalSeparator);\r\n let fractional = '';\r\n const index = price.indexOf(decimalSeparator);\r\n if (index < 0) {\r\n if (minorUnit > 0) {\r\n price += `${decimalSeparator}${new Array(minorUnit + 1).join('0')}`;\r\n }\r\n } else {\r\n fractional = price.substr(index + 1);\r\n if (fractional.length < minorUnit) {\r\n price += new Array(minorUnit - fractional.length + 1).join('0');\r\n }\r\n }\r\n\r\n // separate out price and decimals so thousands separator can be added.\r\n const match = price.match(new RegExp(`(\\\\d+)\\\\${decimalSeparator}(\\\\d+)`));\r\n if (match) {\r\n ({1: price, 2: fractional} = match);\r\n }\r\n price = price.replace(new RegExp(`\\\\B(?=(\\\\d{3})+(?!\\\\d))`, 'g'), `${thousandSeparator}`);\r\n price = fractional?.length > 0 ? price + decimalSeparator + fractional : price;\r\n price = prefix + price + suffix;\r\n return price;\r\n}\r\n\r\nexport const getShippingOptions = (shippingRates) => {\r\n let options = [];\r\n shippingRates.forEach((shippingPackage, idx) => {\r\n // sort by selected rate\r\n shippingPackage.shipping_rates.sort((rate) => {\r\n return rate.selected ? -1 : 1;\r\n });\r\n let rates = shippingPackage.shipping_rates.map(rate => {\r\n let txt = document.createElement('textarea');\r\n txt.innerHTML = rate.name;\r\n let price = formatPrice(rate.price, rate.currency_code);\r\n return {\r\n id: getShippingOptionId(idx, rate.rate_id),\r\n label: txt.value,\r\n //detail: `${price}`,\r\n amount: parseInt(rate.price, 10)\r\n }\r\n });\r\n options = [...options, ...rates];\r\n });\r\n return options;\r\n}\r\n\r\nexport const getShippingOptionId = (packageId, rateId) => `${packageId}:${rateId}`\r\n\r\nexport const getDisplayItems = (cartItems, {minorUnit}) => {\r\n let items = [];\r\n const keys = ['total_tax', 'total_shipping'];\r\n cartItems.forEach(item => {\r\n if (0 < item.value || (item.key && keys.includes(item.key))) {\r\n items.push({\r\n label: item.label,\r\n pending: false,\r\n amount: item.value\r\n });\r\n }\r\n })\r\n return items;\r\n}\r\n\r\nconst canPay = {};\r\n\r\nexport const canMakePayment = ({country, currency, total}, callback) => {\r\n return new Promise((resolve, reject) => {\r\n const key = [country, currency, total.amount].reduce((key, value) => `${key}-${value}`);\r\n if (!currency) {\r\n return resolve(false);\r\n }\r\n if (key in canPay) {\r\n return resolve(canPay[key]);\r\n }\r\n return initStripe.then(stripe => {\r\n if (stripe.error) {\r\n return reject(stripe.error);\r\n }\r\n const request = stripe.paymentRequest({\r\n country,\r\n currency,\r\n total\r\n });\r\n request.canMakePayment().then(result => {\r\n canPay[key] = callback(result);\r\n return resolve(canPay[key]);\r\n });\r\n }).catch(reject);\r\n });\r\n};\r\n\r\nexport const registerLocalPaymentMethod = (paymentMethod) => {\r\n localPaymentMethods.push(paymentMethod);\r\n}\r\n\r\nexport const getLocalPaymentMethods = () => localPaymentMethods;\r\n\r\nexport const cartContainsPreOrder = () => {\r\n const data = getSetting('stripePaymentData');\r\n return data && data.pre_order;\r\n}\r\n\r\nexport const cartContainsSubscription = () => {\r\n const data = getSetting('stripePaymentData');\r\n return data && data.subscription;\r\n}\r\n\r\nexport const getDefaultSourceArgs = ({type, amount, billingData, currency, returnUrl}) => {\r\n return {\r\n type,\r\n amount,\r\n currency,\r\n owner: getBillingDetailsFromAddress(billingData),\r\n redirect: {\r\n return_url: returnUrl\r\n }\r\n }\r\n}\r\n\r\nexport const isTestMode = () => {\r\n return getSetting('stripeGeneralData').mode === 'test';\r\n}\r\n\r\nconst getCacheKey = (key) => `${CACHE_PREFIX}${key}`;\r\n\r\nexport const storeInCache = (key, value) => {\r\n const exp = Math.floor(new Date().getTime() / 1000) + (60 * 15);\r\n if ('sessionStorage' in window) {\r\n sessionStorage.setItem(getCacheKey(key), JSON.stringify({value, exp}));\r\n }\r\n}\r\n\r\nexport const getFromCache = (key) => {\r\n if ('sessionStorage' in window) {\r\n try {\r\n const item = JSON.parse(sessionStorage.getItem(getCacheKey(key)));\r\n if (item) {\r\n const {value, exp} = item;\r\n if (Math.floor(new Date().getTime() / 1000) > exp) {\r\n deleteFromCache(getCacheKey(key));\r\n } else {\r\n return value;\r\n }\r\n }\r\n } catch (err) {\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport const deleteFromCache = (key) => {\r\n if ('sessionStorage' in window) {\r\n sessionStorage.removeItem(getCacheKey(key));\r\n }\r\n}\r\n\r\nexport const versionCompare = (ver1, ver2, compare) => {\r\n switch (compare) {\r\n case '<':\r\n return ver1 < ver2;\r\n case '>':\r\n return ver1 > ver2;\r\n case '<=':\r\n return ver1 <= ver2;\r\n case '>=':\r\n return ver1 >= ver2;\r\n case '=':\r\n return ver1 == ver2;\r\n }\r\n return false;\r\n}\r\n\r\nexport const isCartPage = () => getSetting('stripeGeneralData').page === 'cart';\r\n\r\nexport const isCheckoutPage = () => getSetting('stripeGeneralData').page === 'checkout';","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/construct.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/createClass.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/extends.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/inherits.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/typeof.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://wc_stripe.[name]/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://wc_stripe.[name]/./node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","webpack://wc_stripe.[name]/./node_modules/@stripe/stripe-js/dist/stripe.esm.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/components/checkout/checkbox/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/components/checkout/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/components/checkout/payment-method-label/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/components/checkout/payment-method/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/components/checkout/radio-option/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/hooks/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/hooks/use-create-link-token.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/hooks/use-initialize-plaid.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/hooks/use-process-payment.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/ach/payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/applepay/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/applepay/payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/components/custom-card-form.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/components/stripe-card-form.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/credit-card/payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/error-boundary.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/button.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/constants.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/hooks/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-error-message.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-payment-request.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-payments-client.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/googlepay/util.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-after-process-payment.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-breakpoint-width.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-exported-values.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-payment-events.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-payment-request.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-process-checkout-error.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-process-payment-intent.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-setup-intent.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/hooks/use-stripe-error.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/afterpay.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/alipay.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/bancontact.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/becs.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/boleto.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/eps.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/fpx.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/giropay.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/grabpay.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/hooks/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-after-process-local-payment.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-create-source.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-validate-checkout.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/ideal.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/klarna.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/local-payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/multibanco.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/oxxo.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/p24.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/sepa.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/sofort.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/local-payment/wechat.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/payment-request/index.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/payment-request/payment-method.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/saved-card-component.js","webpack://wc_stripe.[name]/./packages/blocks/assets/js/payment-methods/util.js","webpack://wc_stripe.[name]/./node_modules/classnames/index.js"],"names":["module","exports","arr","len","length","i","arr2","Array","isArray","arrayLikeToArray","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","instance","Constructor","TypeError","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","Reflect","construct","a","push","Function","bind","prototype","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","obj","_extends","assign","source","hasOwnProperty","call","_getPrototypeOf","o","getPrototypeOf","__proto__","subClass","superClass","create","constructor","__esModule","toString","indexOf","sham","Proxy","Date","e","iter","Symbol","iterator","from","_arr","_n","_d","_e","_s","_i","next","objectWithoutPropertiesLoose","excluded","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","keys","_typeof","assertThisInitialized","_setPrototypeOf","p","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","minLen","n","slice","name","test","isNativeFunction","_wrapNativeSuper","_cache","Map","has","get","set","Wrapper","React","_objectWithoutProperties","_objectWithoutPropertiesLoose","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","emptyFunction","emptyFunctionWithReset","resetWarningCache","propTypes","shim","propName","componentName","location","propFullName","secret","Error","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","factoryWithThrowingShims","isUnknownObject","raw","PLAIN_OBJECT_STR","isEqual","left","right","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","allKeys","l","r","every","usePrevious","ref","useRef","useEffect","current","validateStripe","maybeStripe","elements","createToken","createPaymentMethod","confirmCardPayment","parseStripeProp","isPromise","tag","stripePromise","stripe","ElementsContext","createContext","displayName","Elements","_ref","rawStripeProp","options","children","_final","isMounted","parsed","useMemo","_React$useState2","useState","ctx","setContext","prevStripe","prevOptions","console","warn","anyStripe","_registerWrapper","version","createElement","Provider","useElementsContextWithUseCase","useCaseMessage","useCase","concat","parseElementsContext","useContext","ElementsConsumer","_ref2","useCallbackReference","cb","extractUpdateableOptions","paymentRequest","noop","createElementComponent","type","isServer","str","charAt","toUpperCase","Element","id","className","_ref$options","_ref$onBlur","onBlur","_ref$onFocus","onFocus","_ref$onReady","onReady","_ref$onChange","onChange","_ref$onEscape","onEscape","_ref$onClick","onClick","elementRef","domNode","callOnReady","callOnBlur","callOnFocus","callOnClick","callOnChange","callOnEscape","useLayoutEffect","mount","on","updateableOptions","update","destroy","__elementType","window","AuBankAccountElement","CardElement","CardNumberElement","CardExpiryElement","CardCvcElement","FpxBankElement","IbanElement","IdealBankElement","P24BankElement","EpsBankElement","PaymentRequestButtonElement","AfterpayClearpayMessageElement","useElements","useStripe","factory","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","initStripe","startTime","registerWrapper","stripePromise$1","params","Stripe","script","scripts","document","querySelectorAll","src","findScript","queryString","advancedFraudSignals","headOrBody","head","body","appendChild","injectScript","addEventListener","loadCalled","loadStripe","_len","_key","now","label","checked","aria-hidden","xmlns","viewBox","d","title","icons","paymentMethod","components","Label","PaymentMethodLabel","Icons","PaymentMethodIcons","text","align","getData","content","Content","desc","el","childNodes","classList","add","Description","payment_method","RadioControlOption","event","setValidationError","linkToken","setLinkToken","useCallback","url","getRoute","method","data","response","token","storeInCache","getFromCache","linkHandler","resolvePopup","openLinkPopup","open","Plaid","clientName","env","product","selectAccount","countryCodes","onSuccess","publicToken","metaData","onExit","getErrorMessage","error_message","onPaymentProcessing","responseTypes","unsubscribe","result","deleteFromCache","ensureSuccessResponse","meta","paymentMethodData","JSON","stringify","ensureErrorResponse","getSettings","ACHPaymentContent","eventRegistration","emitResponse","onSubmit","onCheckoutAfterProcessingWithError","ValidationInputError","validationError","useCreateLinkToken","useProcessCheckoutError","subscriber","useInitializePlaid","useProcessPayment","isTestMode","ACHTestModeCredentials","errorMessage","__","registerPaymentMethod","ariaLabel","canMakePayment","cartTotals","currency_code","PaymentMethod","savedTokenComponent","edit","placeOrderButtonLabel","supports","showSavedCards","showSaveOption","features","ApplePayContent","ApplePayButton","onClose","billing","shippingData","activePaymentMethod","noticeContexts","useStripeError","exportedValues","useExportedValues","useExpressBreakpointWidth","width","setPaymentMethod","useProcessPaymentIntent","useAfterProcessingPayment","messageContext","EXPRESS_PAYMENTS","usePaymentRequest","canPay","applePay","handleClick","preventDefault","show","style","ApplePayEdit","registerExpressPaymentMethod","currency","total_price","country","toLowerCase","total","amount","parseInt","Bootstrap","CardIcon","htmlFor","registerCreditCardForm","breakpoint","component","classes","focus","empty","invalid","eventChange","cardType","setCardType","elementOrder","container","setContainer","getCreditCardForm","CardForm","postalCodeEnabled","forEach","setElementOrder","includes","useBreakpointWidth","getCardIconSrc","cloneElement","brand","complete","idx","nextElement","getElement","sprintf","SimpleForm","data-tid","cardOptions","postalCode","billingData","postcode","hidePostalCode","isFieldRequired","iconStyle","displaySaveCard","customerId","isUserLoggedIn","cartContainsSubscription","cartContainsPreOrder","CreditCardContent","setError","catch","CreditCardElement","savePaymentMethod","setSavePaymentMethod","getPaymentMethodArgs","elType","card","useSetupIntent","cartTotal","setupIntent","removeSetupIntent","Tag","CustomCardForm","StripeCardForm","SavePaymentMethod","state","hasError","errorInfo","setState","componentStack","Component","publishableKey","setErrorMessage","checkoutStatus","merchantInfo","merchantId","merchantName","buttonContainer","buttonType","usePaymentsClient","button","removeButton","append","parameters","allowedAuthMethods","allowedCardNetworks","assuranceDetailsRequired","apiVersion","apiVersionMinor","shippingRates","processingCountry","totalPriceLabel","emailRequired","isEmpty","email","allowedPaymentMethods","tokenizationSpecification","gateway","BASE_PAYMENT_METHOD","shippingAddressRequired","needsShipping","transactionInfo","getTransactionInfo","callbackIntents","BASE_PAYMENT_REQUEST","billingAddressRequired","billingAddressParameters","format","phoneNumberRequired","phone","shippingOptionRequired","shippingOptionParameters","getShippingOptionParameters","shippingOptions","cartTotalItems","environment","paymentsClient","setPaymentsClient","setButton","currentBilling","currentShipping","addPaymentEvent","usePaymentEvents","setAddressData","paymentData","billingAddress","isAddressValid","phoneNumber","toCartAddress","shippingAddress","parentElement","firstChild","removeChild","loadPaymentData","parse","tokenizationData","billing_details","getBillingDetailsFromAddress","StripeError","statusCode","log","createButton","paymentOptions","paymentDataCallbacks","onPaymentAuthorized","transactionState","onPaymentDataChanged","shipping","address","shippingOptionData","intermediateAddress","selectedRates","getSelectedShippingOption","addressEqual","getIntermediateAddress","shippingEqual","success","getPaymentRequestUpdate","reason","message","intent","setShippingAddress","setSelectedRates","google","payments","api","PaymentsClient","isReadyToPayRequest","isReadyToPay","GooglePayContent","useErrorMessage","GooglePayEdit","isCartPage","getSetting","status","countryCode","currencyCode","code","totalPriceStatus","totalPrice","removeNumberPrecision","minorUnit","displayItems","getDisplayItems","newTransactionInfo","newShippingOptionParameters","unit","items","item","price","getShippingOptions","defaultSelectedOptionId","map","option","shift","shippingPackage","shipping_rates","rate","selected","getShippingOptionId","rate_id","rates","txt","innerHTML","formatPrice","description","first_name","split","join","last_name","pop","address1","address2","locality","administrativeArea","onCheckoutAfterProcessingWithSuccess","unsubscribeAfterProcessingWithSuccess","redirectUrl","handleCardAction","innerWidth","windowWidth","setWindowWith","getMaxWidth","maxWidth","setMaxWidth","clientWidth","remove","handleResize","removeEventListener","getElementById","parentNode","onShippingRateSuccess","onShippingRateFail","onShippingRateSelectSuccess","handler","setHandler","onShippingChanged","paymentEvents","setPaymentEvent","execute","removePaymentEvent","isSelectingRate","shippingRatesLoading","hasShippingRates","unsubscribeShippingRateSuccess","unsubscribeShippingRateSelectSuccess","unsubscribeShippingRateFail","hasInvalidAddress","setPaymentRequest","paymentRequestOptions","pending","requestPayerName","requestPayerEmail","requestPayerPhone","requestShipping","onShippingAddressChange","onShippingOptionChange","onPaymentMethodReceived","updatePaymentEvent","updateWith","shippingOption","paymentResponse","payerName","payerEmail","payerPhone","processingResponse","paymentDetails","stripeErrorMessage","ERROR","paymentType","currentPaymentMethodArgs","getCreatePaymentMethodArgs","getSuccessResponse","paymentMethodId","unsubscribeProcessingPayment","confirmCardSetup","client_secret","setSetupIntent","createSetupIntent","variablesHandler","isEligible","variables","setVariables","AfterpayPaymentMethod","settings","cartNeedsShipping","currency_minor_unit","requiredParams","accountCountry","requiredParamObj","available","LocalPaymentIntentContent","confirmationMethod","BecsPaymentMethod","dangerouslySetInnerHTML","__html","taxId","setTaxId","isActive","setIsActive","callback","boleto","tax_id","currentBillingData","match","atob","decodeURIComponent","return_url","order","decodeURI","order_received_url","getSourceArgs","setSource","isValid","setIsValid","currentValues","getSourceArgsInternal","getDefaultSourceArgs","returnUrl","getSuccessData","sourceId","createSource","msg","countries","LocalPaymentIntentMethod","LocalPaymentSourceMethod","useCreateSource","LocalPaymentElementContainer","useValidateCheckout","useAfterProcessLocalPayment","PAYMENT","LocalPaymentSourceContent","SepaPaymentMethod","sofort","WeChatComponent","WeChatPaymentMethod","size","deleteSourceFromStorage","QRCodeComponent","wechat","qr_code_url","height","colorDark","colorLight","correctLevel","QRCode","CorrectLevel","H","createSourceTimeoutId","clearTimeout","setTimeout","PaymentRequestContent","PaymentRequestButton","paymentRequestButton","PaymentRequestEdit","canvas","scale","devicePixelRatio","getContext","beginPath","arc","Math","PI","fillStyle","fill","handleSuccessResult","unsubscribeOnCheckoutAfterProcessingWithSuccess","account","messages","countryLocale","SHIPPING_OPTION_REGEX","routes","creditCardForms","localPaymentMethods","PAYMENT_REQUEST_ADDRESS_MAPPINGS","recipient","addressLine","address_1","address_2","line1","line2","city","region","postal_code","stripeAccount","route","SUCCESS","statusMessage","exclude","fields","getLocaleFields","entries","required","localeFields","default","reduce","locale","field","packageIdx","filter","Boolean","syncPaymentIntentWithOrder","order_id","order_key","redirect","address_mappings","cartAddress","filterEmptyValues","cartKey","values","getCurrency","prefix","suffix","decimalSeparator","thousandSeparator","fractional","index","replace","substr","RegExp","sort","packageId","rateId","cartItems","pre_order","subscription","owner","mode","getCacheKey","exp","floor","getTime","sessionStorage","setItem","getItem","removeItem","ver1","ver2","compare","page","hasOwn","classNames","argType","inner"],"mappings":"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","file":"commons.js","sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n typeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n (global = global || self, factory(global.ReactStripe = {}, global.React));\n}(this, (function (exports, React) { 'use strict';\n\n React = React && Object.prototype.hasOwnProperty.call(React, 'default') ? React['default'] : React;\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n function createCommonjsModule(fn, module) {\n \treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n }\n\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n var ReactPropTypesSecret_1 = ReactPropTypesSecret;\n\n function emptyFunction() {}\n\n function emptyFunctionWithReset() {}\n\n emptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n var factoryWithThrowingShims = function () {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret_1) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n }\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n };\n\n var propTypes = createCommonjsModule(function (module) {\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = factoryWithThrowingShims();\n }\n });\n\n var isUnknownObject = function isUnknownObject(raw) {\n return raw !== null && _typeof(raw) === 'object';\n };\n var isPromise = function isPromise(raw) {\n return isUnknownObject(raw) && typeof raw.then === 'function';\n }; // We are using types to enforce the `stripe` prop in this lib,\n // but in an untyped integration `stripe` could be anything, so we need\n // to do some sanity validation to prevent type errors.\n\n var isStripe = function isStripe(raw) {\n return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n };\n\n var PLAIN_OBJECT_STR = '[object Object]';\n var isEqual = function isEqual(left, right) {\n if (!isUnknownObject(left) || !isUnknownObject(right)) {\n return left === right;\n }\n\n var leftArray = Array.isArray(left);\n var rightArray = Array.isArray(right);\n if (leftArray !== rightArray) return false;\n var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n if (leftPlainObject !== rightPlainObject) return false;\n if (!leftPlainObject && !leftArray) return false;\n var leftKeys = Object.keys(left);\n var rightKeys = Object.keys(right);\n if (leftKeys.length !== rightKeys.length) return false;\n var keySet = {};\n\n for (var i = 0; i < leftKeys.length; i += 1) {\n keySet[leftKeys[i]] = true;\n }\n\n for (var _i = 0; _i < rightKeys.length; _i += 1) {\n keySet[rightKeys[_i]] = true;\n }\n\n var allKeys = Object.keys(keySet);\n\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n var l = left;\n var r = right;\n\n var pred = function pred(key) {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n };\n\n var usePrevious = function usePrevious(value) {\n var ref = React.useRef(value);\n React.useEffect(function () {\n ref.current = value;\n }, [value]);\n return ref.current;\n };\n\n var INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n // integration `stripe` could be anything, so we need to do some sanity\n // validation to prevent type errors.\n\n var validateStripe = function validateStripe(maybeStripe) {\n if (maybeStripe === null || isStripe(maybeStripe)) {\n return maybeStripe;\n }\n\n throw new Error(INVALID_STRIPE_ERROR);\n };\n\n var parseStripeProp = function parseStripeProp(raw) {\n if (isPromise(raw)) {\n return {\n tag: 'async',\n stripePromise: Promise.resolve(raw).then(validateStripe)\n };\n }\n\n var stripe = validateStripe(raw);\n\n if (stripe === null) {\n return {\n tag: 'empty'\n };\n }\n\n return {\n tag: 'sync',\n stripe: stripe\n };\n };\n\n var ElementsContext = /*#__PURE__*/React.createContext(null);\n ElementsContext.displayName = 'ElementsContext';\n var parseElementsContext = function parseElementsContext(ctx, useCase) {\n if (!ctx) {\n throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an <Elements> provider.\"));\n }\n\n return ctx;\n };\n /**\n * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n *\n * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n * Pass the returned `Promise` to `Elements`.\n *\n * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n */\n\n var Elements = function Elements(_ref) {\n var rawStripeProp = _ref.stripe,\n options = _ref.options,\n children = _ref.children;\n\n var _final = React.useRef(false);\n\n var isMounted = React.useRef(true);\n var parsed = React.useMemo(function () {\n return parseStripeProp(rawStripeProp);\n }, [rawStripeProp]);\n\n var _React$useState = React.useState(function () {\n return {\n stripe: null,\n elements: null\n };\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n ctx = _React$useState2[0],\n setContext = _React$useState2[1];\n\n var prevStripe = usePrevious(rawStripeProp);\n var prevOptions = usePrevious(options);\n\n if (prevStripe !== null) {\n if (prevStripe !== rawStripeProp) {\n console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n }\n\n if (!isEqual(options, prevOptions)) {\n console.warn('Unsupported prop change on Elements: You cannot change the `options` prop after setting the `stripe` prop.');\n }\n }\n\n if (!_final.current) {\n if (parsed.tag === 'sync') {\n _final.current = true;\n setContext({\n stripe: parsed.stripe,\n elements: parsed.stripe.elements(options)\n });\n }\n\n if (parsed.tag === 'async') {\n _final.current = true;\n parsed.stripePromise.then(function (stripe) {\n if (stripe && isMounted.current) {\n // Only update Elements context if the component is still mounted\n // and stripe is not null. We allow stripe to be null to make\n // handling SSR easier.\n setContext({\n stripe: stripe,\n elements: stripe.elements(options)\n });\n }\n });\n }\n }\n\n React.useEffect(function () {\n return function () {\n isMounted.current = false;\n };\n }, []);\n React.useEffect(function () {\n var anyStripe = ctx.stripe;\n\n if (!anyStripe || !anyStripe._registerWrapper) {\n return;\n }\n\n anyStripe._registerWrapper({\n name: 'react-stripe-js',\n version: \"1.4.0\"\n });\n }, [ctx.stripe]);\n return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n value: ctx\n }, children);\n };\n Elements.propTypes = {\n stripe: propTypes.any,\n options: propTypes.object\n };\n var useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n var ctx = React.useContext(ElementsContext);\n return parseElementsContext(ctx, useCaseMessage);\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n */\n\n var useElements = function useElements() {\n var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n elements = _useElementsContextWi.elements;\n\n return elements;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n */\n\n var useStripe = function useStripe() {\n var _useElementsContextWi2 = useElementsContextWithUseCase('calls useStripe()'),\n stripe = _useElementsContextWi2.stripe;\n\n return stripe;\n };\n /**\n * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n */\n\n var ElementsConsumer = function ElementsConsumer(_ref2) {\n var children = _ref2.children;\n var ctx = useElementsContextWithUseCase('mounts <ElementsConsumer>'); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n return children(ctx);\n };\n ElementsConsumer.propTypes = {\n children: propTypes.func.isRequired\n };\n\n var useCallbackReference = function useCallbackReference(cb) {\n var ref = React.useRef(cb);\n React.useEffect(function () {\n ref.current = cb;\n }, [cb]);\n return function () {\n if (ref.current) {\n ref.current.apply(ref, arguments);\n }\n };\n };\n\n var extractUpdateableOptions = function extractUpdateableOptions(options) {\n if (!isUnknownObject(options)) {\n return {};\n }\n\n var _ = options.paymentRequest,\n rest = _objectWithoutProperties(options, [\"paymentRequest\"]);\n\n return rest;\n };\n\n var noop = function noop() {};\n\n var capitalized = function capitalized(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n };\n\n var createElementComponent = function createElementComponent(type, isServer) {\n var displayName = \"\".concat(capitalized(type), \"Element\");\n\n var ClientElement = function ClientElement(_ref) {\n var id = _ref.id,\n className = _ref.className,\n _ref$options = _ref.options,\n options = _ref$options === void 0 ? {} : _ref$options,\n _ref$onBlur = _ref.onBlur,\n onBlur = _ref$onBlur === void 0 ? noop : _ref$onBlur,\n _ref$onFocus = _ref.onFocus,\n onFocus = _ref$onFocus === void 0 ? noop : _ref$onFocus,\n _ref$onReady = _ref.onReady,\n onReady = _ref$onReady === void 0 ? noop : _ref$onReady,\n _ref$onChange = _ref.onChange,\n onChange = _ref$onChange === void 0 ? noop : _ref$onChange,\n _ref$onEscape = _ref.onEscape,\n onEscape = _ref$onEscape === void 0 ? noop : _ref$onEscape,\n _ref$onClick = _ref.onClick,\n onClick = _ref$onClick === void 0 ? noop : _ref$onClick;\n\n var _useElementsContextWi = useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\")),\n elements = _useElementsContextWi.elements;\n\n var elementRef = React.useRef(null);\n var domNode = React.useRef(null);\n var callOnReady = useCallbackReference(onReady);\n var callOnBlur = useCallbackReference(onBlur);\n var callOnFocus = useCallbackReference(onFocus);\n var callOnClick = useCallbackReference(onClick);\n var callOnChange = useCallbackReference(onChange);\n var callOnEscape = useCallbackReference(onEscape);\n React.useLayoutEffect(function () {\n if (elementRef.current == null && elements && domNode.current != null) {\n var element = elements.create(type, options);\n elementRef.current = element;\n element.mount(domNode.current);\n element.on('ready', function () {\n return callOnReady(element);\n });\n element.on('change', callOnChange);\n element.on('blur', callOnBlur);\n element.on('focus', callOnFocus);\n element.on('escape', callOnEscape); // Users can pass an an onClick prop on any Element component\n // just as they could listen for the `click` event on any Element,\n // but only the PaymentRequestButton will actually trigger the event.\n\n element.on('click', callOnClick);\n }\n });\n var prevOptions = React.useRef(options);\n React.useEffect(function () {\n if (prevOptions.current && prevOptions.current.paymentRequest !== options.paymentRequest) {\n console.warn('Unsupported prop change: options.paymentRequest is not a customizable property.');\n }\n\n var updateableOptions = extractUpdateableOptions(options);\n\n if (Object.keys(updateableOptions).length !== 0 && !isEqual(updateableOptions, extractUpdateableOptions(prevOptions.current))) {\n if (elementRef.current) {\n elementRef.current.update(updateableOptions);\n prevOptions.current = options;\n }\n }\n }, [options]);\n React.useLayoutEffect(function () {\n return function () {\n if (elementRef.current) {\n elementRef.current.destroy();\n }\n };\n }, []);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className,\n ref: domNode\n });\n }; // Only render the Element wrapper in a server environment.\n\n\n var ServerElement = function ServerElement(props) {\n // Validate that we are in the right context by calling useElementsContextWithUseCase.\n useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n var id = props.id,\n className = props.className;\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id,\n className: className\n });\n };\n\n var Element = isServer ? ServerElement : ClientElement;\n Element.propTypes = {\n id: propTypes.string,\n className: propTypes.string,\n onChange: propTypes.func,\n onBlur: propTypes.func,\n onFocus: propTypes.func,\n onReady: propTypes.func,\n onClick: propTypes.func,\n options: propTypes.object\n };\n Element.displayName = displayName;\n Element.__elementType = type;\n return Element;\n };\n\n var isServer = typeof window === 'undefined';\n /**\n * Requires beta access:\n * Contact [Stripe support](https://support.stripe.com/) for more information.\n *\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardElement = createElementComponent('card', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardNumberElement = createElementComponent('cardNumber', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardExpiryElement = createElementComponent('cardExpiry', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var CardCvcElement = createElementComponent('cardCvc', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var FpxBankElement = createElementComponent('fpxBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IbanElement = createElementComponent('iban', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var IdealBankElement = createElementComponent('idealBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var P24BankElement = createElementComponent('p24Bank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var EpsBankElement = createElementComponent('epsBank', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n /**\n * @docs https://stripe.com/docs/stripe-js/react#element-components\n */\n\n var AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n exports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n exports.AuBankAccountElement = AuBankAccountElement;\n exports.CardCvcElement = CardCvcElement;\n exports.CardElement = CardElement;\n exports.CardExpiryElement = CardExpiryElement;\n exports.CardNumberElement = CardNumberElement;\n exports.Elements = Elements;\n exports.ElementsConsumer = ElementsConsumer;\n exports.EpsBankElement = EpsBankElement;\n exports.FpxBankElement = FpxBankElement;\n exports.IbanElement = IbanElement;\n exports.IdealBankElement = IdealBankElement;\n exports.P24BankElement = P24BankElement;\n exports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n exports.useElements = useElements;\n exports.useStripe = useStripe;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.12.1\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n};\n\n// own script injection.\n\nvar stripePromise$1 = Promise.resolve().then(function () {\n return loadScript(null);\n});\nvar loadCalled = false;\nstripePromise$1[\"catch\"](function (err) {\n if (!loadCalled) {\n console.warn(err);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now();\n return stripePromise$1.then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","import classNames from 'classnames';\r\nimport './styles.scss';\r\n\r\nexport const SavePaymentMethod = ({label, onChange, checked}) => {\r\n return (\r\n <div className='wc-stripe-save-payment-method'>\r\n <label>\r\n <input type='checkbox' onChange={(e) => onChange(e.target.checked)}/>\r\n <svg\r\n className={classNames('wc-stripe-components-checkbox__mark', {checked: checked})}\r\n aria-hidden=\"true\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 24 20\">\r\n <path d=\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\"/>\r\n </svg>\r\n </label>\r\n <span>{label}</span>\r\n </div>\r\n )\r\n}","export * from './payment-method-label';\r\nexport * from './checkbox';\r\nexport * from './radio-option';\r\nexport * from './payment-method';","import './style.scss';\r\n\r\nexport const PaymentMethodLabel = ({title, icons, paymentMethod, ...props}) => {\r\n const {PaymentMethodLabel: Label, PaymentMethodIcons: Icons} = props.components;\r\n if (!Array.isArray(icons)) {\r\n icons = [icons];\r\n }\r\n return (\r\n <span className={`wc-stripe-label-container ${paymentMethod}`}>\r\n <Label text={title}/>\r\n <Icons icons={icons} align='left'/>\r\n </span>\r\n )\r\n}","import {useEffect, useRef} from '@wordpress/element';\r\n\r\nexport const PaymentMethod = ({getData, content, ...props}) => {\r\n const Content = content;\r\n const desc = getData('description');\r\n const el = useRef(null);\r\n useEffect(() => {\r\n if (el.current && el.current.childNodes.length == 0) {\r\n el.current.classList.add('no-content');\r\n }\r\n });\r\n return (\r\n <>\r\n {desc && <Description desc={desc} payment_method={getData('name')}/>}\r\n <div ref={el} className='wc-stripe-blocks-payment-method-content'>\r\n <Content {...{...props, getData}}/>\r\n </div>\r\n </>);\r\n}\r\n\r\nconst Description = ({desc, payment_method}) => {\r\n return (\r\n <div className={`wc-stripe-blocks-payment-method__desc ${payment_method}`}>\r\n <p>{desc}</p>\r\n </div>\r\n )\r\n}","import classnames from 'classnames';\r\n\r\nexport const RadioControlOption = ({checked, onChange, value, label}) => {\r\n return (\r\n <label\r\n className={classnames('wc-stripe-blocks-radio-control__option', {\r\n 'wc-stripe-blocks-radio-control__option-checked': checked\r\n })}>\r\n <input\r\n className='wc-stripe-blocks-radio-control__input'\r\n type='radio'\r\n value={value}\r\n checked={checked}\r\n onChange={(event) => onChange(event.target.value)}/>\r\n <div className='wc-stripe-blocks-radio-control__label'>\r\n <span>{label}</span>\r\n </div>\r\n </label>\r\n )\r\n}\r\n\r\nexport default RadioControlOption;","export * from './use-create-link-token';\r\nexport * from './use-initialize-plaid';\r\nexport * from './use-process-payment';","import {useEffect, useState, useCallback} from '@wordpress/element';\r\nimport apiFetch from '@wordpress/api-fetch';\r\nimport {getRoute, getFromCache, storeInCache} from '../../util';\r\n\r\nexport const useCreateLinkToken = (\r\n {\r\n setValidationError\r\n }) => {\r\n const [linkToken, setLinkToken] = useState(false);\r\n\r\n const createToken = useCallback(async () => {\r\n try {\r\n const response = await apiFetch({\r\n url: getRoute('create/linkToken'),\r\n method: 'POST',\r\n data: {}\r\n });\r\n if (response.token) {\r\n storeInCache('linkToken', response.token);\r\n setLinkToken(response.token);\r\n }\r\n } catch (err) {\r\n setValidationError(err);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (!linkToken) {\r\n const token = getFromCache('linkToken');\r\n if (token) {\r\n // cached token exist so use it\r\n setLinkToken(token);\r\n } else {\r\n // create the Plaid Link token\r\n createToken();\r\n }\r\n }\r\n }, [\r\n linkToken,\r\n setLinkToken\r\n ]);\r\n return linkToken;\r\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\r\nimport Plaid from '@plaid';\r\nimport {getErrorMessage} from \"../../util\";\r\n\r\nexport const useInitializePlaid = (\r\n {\r\n getData,\r\n linkToken\r\n }) => {\r\n const linkHandler = useRef(null);\r\n const resolvePopup = useRef(null);\r\n const openLinkPopup = useCallback(() => new Promise((resolve, reject) => {\r\n resolvePopup.current = {resolve, reject};\r\n linkHandler.current.open();\r\n }), []);\r\n\r\n // if the token exists, initialize Plaid's link handler\r\n useEffect(() => {\r\n if (linkToken) {\r\n linkHandler.current = Plaid.create({\r\n clientName: getData('clientName'),\r\n env: getData('plaidEnvironment'),\r\n product: ['auth'],\r\n token: linkToken,\r\n selectAccount: true,\r\n countryCodes: ['US'],\r\n onSuccess: (publicToken, metaData) => {\r\n resolvePopup.current.resolve({publicToken, metaData});\r\n },\r\n onExit: (err) => {\r\n resolvePopup.current.reject(err ? getErrorMessage(err.error_message) : false);\r\n }\r\n });\r\n }\r\n }, [linkToken]);\r\n\r\n return openLinkPopup;\r\n}","import {useEffect, useCallback} from '@wordpress/element';\r\nimport {ensureSuccessResponse, ensureErrorResponse, deleteFromCache} from \"../../util\";\r\n\r\nexport const useProcessPayment = (\r\n {\r\n openLinkPopup,\r\n onPaymentProcessing,\r\n responseTypes,\r\n paymentMethod\r\n\r\n }) => {\r\n\r\n useEffect(() => {\r\n const unsubscribe = onPaymentProcessing(async () => {\r\n try {\r\n // open the Plaid popup\r\n const result = await openLinkPopup();\r\n const {publicToken, metaData} = result;\r\n // remove the cached link token.\r\n deleteFromCache('linkToken');\r\n return ensureSuccessResponse(responseTypes, {\r\n meta: {\r\n paymentMethodData: {\r\n [`${paymentMethod}_token_key`]: publicToken,\r\n [`${paymentMethod}_metadata`]: JSON.stringify(metaData)\r\n }\r\n }\r\n });\r\n } catch (err) {\r\n return ensureErrorResponse(responseTypes, err);\r\n }\r\n });\r\n return () => unsubscribe();\r\n }, [\r\n onPaymentProcessing,\r\n responseTypes,\r\n openLinkPopup\r\n ]);\r\n}","import './styles.scss';\r\nimport './payment-method'","import {useState} from '@wordpress/element';\r\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings, isTestMode} from '../util';\r\nimport {PaymentMethodLabel, PaymentMethod} from '../../components/checkout';\r\nimport SavedCardComponent from '../saved-card-component';\r\nimport {useCreateLinkToken, useInitializePlaid, useProcessPayment} from './hooks';\r\nimport {useProcessCheckoutError} from \"../hooks\";\r\nimport {__} from '@wordpress/i18n';\r\n\r\nconst getData = getSettings('stripe_ach_data');\r\n\r\nconst ACHPaymentContent = (\r\n {\r\n getData,\r\n eventRegistration,\r\n components,\r\n emitResponse,\r\n onSubmit,\r\n ...props\r\n }) => {\r\n const {responseTypes} = emitResponse;\r\n const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;\r\n const {ValidationInputError} = components;\r\n const [validationError, setValidationError] = useState(false);\r\n\r\n const linkToken = useCreateLinkToken({setValidationError});\r\n\r\n useProcessCheckoutError({\r\n responseTypes,\r\n subscriber: onCheckoutAfterProcessingWithError\r\n });\r\n\r\n const openLinkPopup = useInitializePlaid({\r\n getData,\r\n linkToken,\r\n onSubmit\r\n });\r\n\r\n useProcessPayment({\r\n openLinkPopup,\r\n onPaymentProcessing,\r\n responseTypes,\r\n paymentMethod: getData('name')\r\n });\r\n return (\r\n <>\r\n {isTestMode && <ACHTestModeCredentials/>}\r\n {validationError && <ValidationInputError errorMessage={validationError}/>}\r\n </>\r\n )\r\n}\r\n\r\nconst ACHTestModeCredentials = () => {\r\n return (\r\n <div className='wc-stripe-blocks-ach__creds'>\r\n <label className='wc-stripe-blocks-ach__creds-label'>{__('Test Credentials', 'woo-stripe-payment')}</label>\r\n <div className='wc-stripe-blocks-ach__username'>\r\n <div>\r\n <strong>{__('username', 'woo-stripe-payment')}</strong>: user_good\r\n </div>\r\n <div>\r\n <strong>{__('password', 'woo-stripe-payment')}</strong>: pass_good\r\n </div>\r\n <div>\r\n <strong>{__('pin', 'woo-stripe-payment')}</strong>: credential_good\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nregisterPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icons')}/>,\r\n ariaLabel: 'ACH Payment',\r\n canMakePayment: ({cartTotals}) => cartTotals.currency_code === 'USD',\r\n content: <PaymentMethod\r\n getData={getData}\r\n content={ACHPaymentContent}/>,\r\n savedTokenComponent: <SavedCardComponent getData={getData}/>,\r\n edit: <ACHPaymentContent getData={getData}/>,\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n supports: {\r\n showSavedCards: getData('showSavedCards'),\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n})","import './style.scss';\r\n\r\nimport './payment-method';","import {useCallback} from '@wordpress/element';\r\nimport {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings, initStripe as loadStripe, canMakePayment} from \"../util\";\r\nimport {Elements, PaymentRequestButtonElement, useStripe} from \"@stripe/react-stripe-js\";\r\nimport ErrorBoundary from \"../error-boundary\";\r\nimport {\r\n usePaymentRequest,\r\n useProcessPaymentIntent,\r\n useExportedValues,\r\n useAfterProcessingPayment,\r\n useStripeError,\r\n useExpressBreakpointWidth\r\n} from '../hooks';\r\n\r\nconst getData = getSettings('stripe_applepay_data');\r\n\r\nconst ApplePayContent = (props) => {\r\n return (\r\n <ErrorBoundary>\r\n <div className='wc-stripe-apple-pay-container'>\r\n <Elements stripe={loadStripe}>\r\n <ApplePayButton {...props}/>\r\n </Elements>\r\n </div>\r\n </ErrorBoundary>\r\n );\r\n}\r\n\r\nconst ApplePayButton = (\r\n {\r\n getData,\r\n onClick,\r\n onClose,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n emitResponse,\r\n onSubmit,\r\n activePaymentMethod,\r\n ...props\r\n }) => {\r\n const {onPaymentProcessing} = eventRegistration;\r\n const {responseTypes, noticeContexts} = emitResponse;\r\n const stripe = useStripe();\r\n const [error] = useStripeError();\r\n const canPay = (result) => result != null && result.applePay;\r\n const exportedValues = useExportedValues();\r\n useExpressBreakpointWidth({payment_method: getData('name'), width: 300});\r\n const {setPaymentMethod} = useProcessPaymentIntent({\r\n getData,\r\n billing,\r\n shippingData,\r\n onPaymentProcessing,\r\n emitResponse,\r\n error,\r\n onSubmit,\r\n activePaymentMethod,\r\n exportedValues\r\n });\r\n useAfterProcessingPayment({\r\n getData,\r\n eventRegistration,\r\n responseTypes,\r\n activePaymentMethod,\r\n messageContext: noticeContexts.EXPRESS_PAYMENTS\r\n });\r\n const {paymentRequest} = usePaymentRequest({\r\n getData,\r\n onClose,\r\n stripe,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n setPaymentMethod,\r\n exportedValues,\r\n canPay\r\n });\r\n\r\n const handleClick = useCallback((e) => {\r\n if (paymentRequest) {\r\n e.preventDefault();\r\n onClick();\r\n paymentRequest.show();\r\n }\r\n }, [paymentRequest, onClick]);\r\n\r\n if (paymentRequest) {\r\n return (\r\n <button\r\n className={`apple-pay-button ${getData('buttonStyle')}`}\r\n style={{\r\n '-apple-pay-button-type': getData('buttonType')\r\n }}\r\n onClick={handleClick}/>\r\n\r\n )\r\n }\r\n return null;\r\n}\r\n\r\nconst ApplePayEdit = ({getData, ...props}) => {\r\n return (\r\n <div className={'apple-pay-block-editor'}>\r\n <img src={getData('editorIcon')}/>\r\n </div>\r\n )\r\n}\r\n\r\nregisterExpressPaymentMethod({\r\n name: getData('name'),\r\n canMakePayment: ({cartTotals, ...props}) => {\r\n if (getData('isAdmin')) {\r\n return true;\r\n }\r\n const {currency_code: currency, total_price} = cartTotals;\r\n return canMakePayment({\r\n country: getData('countryCode'),\r\n currency: currency.toLowerCase(),\r\n total: {\r\n label: getData('totalLabel'),\r\n amount: parseInt(total_price)\r\n }\r\n }, (result) => result != null && result.applePay);\r\n },\r\n content: <ApplePayContent getData={getData}/>,\r\n edit: <ApplePayEdit getData={getData}/>,\r\n supports: {\r\n showSavedCards: getData('showSavedCards'),\r\n showSaveOption: getData('showSaveOption'),\r\n features: getData('features')\r\n }\r\n})","import './style.scss';\r\nimport {registerCreditCardForm} from \"@paymentplugins/stripe/util\";\r\nimport {CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\r\nimport {__} from \"@wordpress/i18n\";\r\n\r\nconst Bootstrap = ({CardIcon, options, onChange}) => {\r\n return (\r\n <div className='wc-stripe-bootstrap-form'>\r\n <div className='row'>\r\n <div className='col-md-6 mb-3'>\r\n <CardNumberElement className='md-form md-outline stripe-input' options={options['cardNumber']}\r\n onChange={onChange(CardNumberElement)}/>\r\n <label htmlFor=\"stripe-card-number\">{__('Card Number', 'woo-stripe-payment')}</label>\r\n {CardIcon}\r\n </div>\r\n <div className='col-md-3 mb-3'>\r\n <CardExpiryElement className='md-form md-outline stripe-input' options={options['cardExpiry']}\r\n onChange={onChange(CardExpiryElement)}/>\r\n <label htmlFor=\"stripe-exp\">{__('Exp', 'woo-stripe-payment')}</label>\r\n </div>\r\n <div className='col-md-3 mb-3'>\r\n <CardCvcElement className=\"md-form md-outline stripe-input\" options={options['cardCvc']}\r\n onChange={onChange(CardCvcElement)}/>\r\n <label htmlFor=\"stripe-cvv\">{__('CVV', 'woo-stripe-payment')}</label>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nregisterCreditCardForm({\r\n id: 'bootstrap',\r\n breakpoint: 475,\r\n component: <Bootstrap/>\r\n})","import {getCreditCardForm} from \"../../util\";\r\nimport {cloneElement, useRef, useCallback, useEffect, useState} from '@wordpress/element';\r\nimport {useElements, CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\r\nimport {sprintf, __} from '@wordpress/i18n';\r\nimport {useBreakpointWidth} from \"../../hooks\";\r\n\r\nconst classes = {\r\n focus: 'focused',\r\n empty: 'empty',\r\n invalid: 'invalid'\r\n}\r\n\r\nconst CustomCardForm = (\r\n {\r\n getData,\r\n onChange: eventChange\r\n }) => {\r\n const [cardType, setCardType] = useState('');\r\n const elementOrder = useRef([]);\r\n const [container, setContainer] = useState(null);\r\n const elements = useElements();\r\n const id = getData('customForm');\r\n const {component: CardForm = null, breakpoint = 475} = getCreditCardForm(id);\r\n const postalCodeEnabled = getData('postalCodeEnabled');\r\n const options = {};\r\n ['cardNumber', 'cardExpiry', 'cardCvc'].forEach(type => {\r\n options[type] = {\r\n classes,\r\n ...getData('cardOptions'),\r\n ...getData('customFieldOptions')[type],\r\n }\r\n });\r\n const onChange = (element) => {\r\n setElementOrder(element);\r\n return (event) => {\r\n eventChange(event);\r\n if (event.elementType === 'cardNumber') {\r\n if (event.brand === 'unknown') {\r\n setCardType('');\r\n } else {\r\n setCardType(event.brand);\r\n }\r\n }\r\n if (event.complete) {\r\n const idx = elementOrder.current.indexOf(element);\r\n if (elementOrder.current[idx + 1]) {\r\n const nextElement = elementOrder.current[idx + 1];\r\n elements.getElement(nextElement).focus();\r\n }\r\n }\r\n }\r\n }\r\n const setElementOrder = useCallback((element) => {\r\n if (!elementOrder.current.includes(element)) {\r\n elementOrder.current.push(element);\r\n }\r\n }, []);\r\n\r\n useBreakpointWidth({name: 'creditCardForm', width: breakpoint, node: container, className: 'small-form'});\r\n\r\n const getCardIconSrc = useCallback((type) => {\r\n for (let id of Object.keys(getData('cards'))) {\r\n if (id === type) {\r\n return getData('cards')[id];\r\n }\r\n }\r\n return '';\r\n }, []);\r\n\r\n if (!CardForm) {\r\n return (\r\n <div className='wc-stripe-custom-form-error'>\r\n <p>{sprintf(__('%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings.', 'woo-stripe-payment'), getData('customFormLabels')[id])}</p>\r\n </div>\r\n )\r\n }\r\n return (\r\n <div className={`wc-stripe-custom-form ${id}`} ref={setContainer}>\r\n {cloneElement(CardForm, {\r\n postalCodeEnabled,\r\n options,\r\n onChange,\r\n CardIcon: <CardIcon type={cardType} src={getCardIconSrc(cardType)}/>\r\n })}\r\n </div>\r\n )\r\n\r\n}\r\n\r\nconst CardIcon = ({type, src}) => {\r\n if (type) {\r\n return <img className={`wc-stripe-card ${type}`} src={src}/>\r\n }\r\n return null;\r\n}\r\n\r\nexport default CustomCardForm;\r\n","import './style.scss';\r\nimport {registerCreditCardForm} from \"@paymentplugins/stripe/util\";\r\nimport {CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\r\nimport {__} from \"@wordpress/i18n\";\r\nimport {useEffect, useCallback, useRef} from '@wordpress/element';\r\n\r\nconst SimpleForm = ({CardIcon, options, onChange}) => {\r\n useEffect(() => {\r\n }, []);\r\n return (\r\n <div className='wc-stripe-simple-form'>\r\n <div className=\"row\">\r\n <div className=\"field\">\r\n <div className='field-item'>\r\n <CardNumberElement id=\"stripe-card-number\" className=\"input empty\"\r\n options={options['cardNumber']}\r\n onChange={onChange(CardNumberElement)}/>\r\n <label htmlFor=\"stripe-card-number\"\r\n data-tid=\"\">{__('Card Number', 'woo-stripe-payment')}</label>\r\n <div className=\"baseline\"></div>\r\n {CardIcon}\r\n </div>\r\n </div>\r\n </div>\r\n <div className=\"row\">\r\n <div className=\"field half-width\">\r\n <div className='field-item'>\r\n <CardExpiryElement id=\"stripe-exp\" className=\"input empty\" options={options['cardExpiry']}\r\n onChange={onChange(CardExpiryElement)}/>\r\n <label htmlFor=\"stripe-exp\"\r\n data-tid=\"\">{__('Expiration', 'woo-stripe-payment')}</label>\r\n <div className=\"baseline\"></div>\r\n </div>\r\n </div>\r\n <div className=\"field half-width cvc\">\r\n <div className='field-item'>\r\n <CardCvcElement id=\"stripe-cvv\" className=\"input empty\" options={options['cardCvc']}\r\n onChange={onChange(CardCvcElement)}/>\r\n <label htmlFor=\"stripe-cvv\"\r\n data-tid=\"\">{__('CVV', 'woo-stripe-payment')}</label>\r\n <div className=\"baseline\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nregisterCreditCardForm({\r\n id: 'simple',\r\n component: <SimpleForm/>,\r\n breakpoint: 375\r\n})","import {CardElement} from \"@stripe/react-stripe-js\";\r\nimport {isFieldRequired} from \"../../util\";\r\nimport {useMemo} from '@wordpress/element';\r\n\r\nconst StripeCardForm = ({getData, billing, onChange}) => {\r\n const cardOptions = useMemo(() => {\r\n return {\r\n ...{\r\n value: {\r\n postalCode: billing?.billingData?.postcode\r\n },\r\n hidePostalCode: isFieldRequired('postcode'),\r\n iconStyle: 'default'\r\n }, ...getData('cardOptions')\r\n };\r\n }, [billing.billingData]);\r\n return (\r\n <div className='wc-stripe-inline-form'>\r\n <CardElement options={cardOptions} onChange={onChange}/>\r\n </div>\r\n )\r\n}\r\n\r\nexport default StripeCardForm;","import './style.scss';\r\n\r\nexport * from './payment-method';\r\n\r\nimport './components/bootstrap';\r\nimport './components/simple';\r\n","import {useEffect, useState, useCallback, useMemo} from '@wordpress/element';\r\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {\r\n initStripe as loadStripe,\r\n getSettings,\r\n isUserLoggedIn,\r\n cartContainsSubscription,\r\n cartContainsPreOrder\r\n} from '../util';\r\nimport {Elements, CardElement, useStripe, useElements, CardNumberElement} from '@stripe/react-stripe-js';\r\nimport {PaymentMethodLabel, PaymentMethod, SavePaymentMethod} from '../../components/checkout';\r\nimport SavedCardComponent from '../saved-card-component';\r\nimport CustomCardForm from './components/custom-card-form';\r\nimport StripeCardForm from \"./components/stripe-card-form\";\r\nimport {\r\n useProcessPaymentIntent,\r\n useAfterProcessingPayment,\r\n useSetupIntent,\r\n useStripeError\r\n} from \"../hooks\";\r\n\r\nconst getData = getSettings('stripe_cc_data');\r\n\r\nconst displaySaveCard = (customerId) => {\r\n return isUserLoggedIn(customerId) && getData('saveCardEnabled') &&\r\n !cartContainsSubscription() && !cartContainsPreOrder()\r\n}\r\n\r\nconst CreditCardContent = (props) => {\r\n const [error, setError] = useState(false);\r\n useEffect(() => {\r\n loadStripe.catch(error => {\r\n setError(error);\r\n })\r\n }, [setError]);\r\n if (error) {\r\n throw new Error(error);\r\n }\r\n return (\r\n <Elements stripe={loadStripe} options={getData('elementOptions')}>\r\n <CreditCardElement {...props}/>\r\n </Elements>\r\n );\r\n};\r\n\r\nconst CreditCardElement = (\r\n {\r\n getData,\r\n billing,\r\n shippingData,\r\n emitResponse,\r\n eventRegistration,\r\n activePaymentMethod\r\n }) => {\r\n const [error, setError] = useStripeError();\r\n const [savePaymentMethod, setSavePaymentMethod] = useState(false);\r\n const onSavePaymentMethod = (checked) => setSavePaymentMethod(checked);\r\n const {onPaymentProcessing} = eventRegistration;\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n const getPaymentMethodArgs = useCallback(() => {\r\n const elType = getData('customFormActive') ? CardNumberElement : CardElement;\r\n return {card: elements.getElement(elType)};\r\n }, [stripe, elements]);\r\n\r\n const {setupIntent, removeSetupIntent} = useSetupIntent({\r\n getData,\r\n cartTotal: billing.cartTotal,\r\n setError\r\n })\r\n\r\n useProcessPaymentIntent({\r\n getData,\r\n billing,\r\n shippingData,\r\n emitResponse,\r\n error,\r\n onPaymentProcessing,\r\n savePaymentMethod,\r\n setupIntent,\r\n removeSetupIntent,\r\n getPaymentMethodArgs,\r\n activePaymentMethod\r\n });\r\n useAfterProcessingPayment({\r\n getData,\r\n eventRegistration,\r\n responseTypes: emitResponse.responseTypes,\r\n activePaymentMethod,\r\n savePaymentMethod\r\n });\r\n\r\n const onChange = (event) => {\r\n if (event.error) {\r\n setError(event.error);\r\n } else {\r\n setError(false);\r\n }\r\n }\r\n const Tag = getData('customFormActive') ? CustomCardForm : StripeCardForm;\r\n return (\r\n <div className='wc-stripe-card-container'>\r\n <Tag {...{getData, billing, onChange}}/>\r\n {displaySaveCard(billing.customerId) &&\r\n <SavePaymentMethod label={getData('savePaymentMethodLabel')}\r\n onChange={onSavePaymentMethod}\r\n checked={savePaymentMethod}/>}\r\n </div>\r\n );\r\n}\r\n\r\nregisterPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icons')}/>,\r\n ariaLabel: 'Credit Cards',\r\n canMakePayment: () => loadStripe,\r\n content: <PaymentMethod content={CreditCardContent} getData={getData}/>,\r\n savedTokenComponent: <SavedCardComponent getData={getData}/>,\r\n edit: <PaymentMethod content={CreditCardContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: getData('showSavedCards'),\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n})","import {Component} from '@wordpress/element';\r\n\r\nclass ErrorBoundary extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {hasError: false, error: null, errorInfo: null};\r\n }\r\n\r\n componentDidCatch(error, errorInfo) {\r\n this.setState({\r\n hasError: true,\r\n error,\r\n errorInfo\r\n })\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n return (\r\n <>\r\n {this.state.error && <div className='wc-stripe-block-error'>{this.state.error.toString()}</div>}\r\n {this.state.errorInfo &&\r\n <div className='wc-stripe-block-error'>{this.state.errorInfo.componentStack}</div>}\r\n </>\r\n )\r\n }\r\n return this.props.children;\r\n }\r\n}\r\n\r\nexport default ErrorBoundary;","import {useRef, useEffect} from '@wordpress/element';\r\nimport {usePaymentsClient, usePaymentRequest} from './hooks';\r\nimport {\r\n useProcessPaymentIntent,\r\n useStripeError,\r\n useExportedValues,\r\n useExpressBreakpointWidth\r\n} from '../hooks';\r\nimport {getSettings} from '@paymentplugins/stripe/util';\r\n\r\nconst {publishableKey} = getSettings('stripeGeneralData')();\r\n\r\nconst GooglePayButton = (\r\n {\r\n getData,\r\n setErrorMessage,\r\n billing,\r\n shippingData,\r\n canMakePayment,\r\n checkoutStatus,\r\n eventRegistration,\r\n activePaymentMethod,\r\n onClick,\r\n onClose,\r\n ...props\r\n }) => {\r\n const merchantInfo = {\r\n merchantId: getData('merchantId'),\r\n merchantName: getData('merchantName')\r\n };\r\n const [error, setError] = useStripeError();\r\n const buttonContainer = useRef();\r\n const {onSubmit, emitResponse} = props;\r\n const {onPaymentProcessing} = eventRegistration;\r\n const exportedValues = useExportedValues();\r\n const width = getData('buttonStyle').buttonType === 'long' ? 390 : 300;\r\n const {setPaymentMethod} = useProcessPaymentIntent({\r\n getData,\r\n billing,\r\n shippingData,\r\n onPaymentProcessing,\r\n emitResponse,\r\n error,\r\n exportedValues,\r\n onSubmit,\r\n checkoutStatus,\r\n activePaymentMethod\r\n });\r\n\r\n const paymentRequest = usePaymentRequest({\r\n getData,\r\n publishableKey,\r\n merchantInfo,\r\n billing,\r\n shippingData\r\n })\r\n\r\n const {button, removeButton} = usePaymentsClient({\r\n merchantInfo,\r\n paymentRequest,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n canMakePayment,\r\n setErrorMessage,\r\n onSubmit,\r\n setPaymentMethod,\r\n exportedValues,\r\n onClick,\r\n onClose,\r\n getData\r\n });\r\n\r\n useExpressBreakpointWidth({payment_method: getData('name'), width});\r\n\r\n useEffect(() => {\r\n if (button) {\r\n // prevent button duplicates\r\n removeButton(buttonContainer.current);\r\n buttonContainer.current.append(button);\r\n }\r\n }, [button]);\r\n\r\n return (\r\n <div className='wc-stripe-gpay-button-container' ref={buttonContainer}></div>\r\n )\r\n}\r\n\r\nexport default GooglePayButton;","export const BASE_PAYMENT_METHOD = {\r\n type: 'CARD',\r\n parameters: {\r\n allowedAuthMethods: [\"PAN_ONLY\"],\r\n allowedCardNetworks: [\"AMEX\", \"DISCOVER\", \"INTERAC\", \"JCB\", \"MASTERCARD\", \"VISA\"],\r\n assuranceDetailsRequired: true\r\n }\r\n};\r\n\r\nexport const BASE_PAYMENT_REQUEST = {\r\n apiVersion: 2,\r\n apiVersionMinor: 0\r\n}","export * from './use-payments-client';\r\nexport * from './use-payment-request';\r\nexport * from './use-error-message';","import {useState} from '@wordpress/element';\r\n\r\nexport const useErrorMessage = () => {\r\n const [errorMessage, setErrorMessage] = useState(false);\r\n return {errorMessage, setErrorMessage};\r\n}","import {useState, useEffect, useMemo} from '@wordpress/element';\r\nimport {BASE_PAYMENT_REQUEST, BASE_PAYMENT_METHOD} from \"../constants\";\r\nimport {isEmpty, isFieldRequired} from \"../../util\";\r\nimport {getTransactionInfo, getShippingOptionParameters} from \"../util\";\r\n\r\nexport const usePaymentRequest = ({getData, publishableKey, merchantInfo, billing, shippingData}) => {\r\n const {billingData} = billing;\r\n const {shippingRates} = shippingData;\r\n const {processingCountry, totalPriceLabel} = getData();\r\n\r\n const paymentRequest = useMemo(() => {\r\n let options = {\r\n ...{\r\n emailRequired: isEmpty(billingData.email),\r\n merchantInfo,\r\n allowedPaymentMethods: [{\r\n ...{\r\n type: 'CARD',\r\n tokenizationSpecification: {\r\n type: \"PAYMENT_GATEWAY\",\r\n parameters: {\r\n gateway: 'stripe',\r\n \"stripe:version\": \"2018-10-31\",\r\n \"stripe:publishableKey\": publishableKey\r\n }\r\n }\r\n }, ...BASE_PAYMENT_METHOD\r\n }],\r\n shippingAddressRequired: shippingData.needsShipping,\r\n transactionInfo: getTransactionInfo({\r\n billing,\r\n processingCountry,\r\n totalPriceLabel\r\n }),\r\n callbackIntents: ['PAYMENT_AUTHORIZATION']\r\n }, ...BASE_PAYMENT_REQUEST\r\n };\r\n options.allowedPaymentMethods[0].parameters.billingAddressRequired = true;\r\n options.allowedPaymentMethods[0].parameters.billingAddressParameters = {\r\n format: 'FULL',\r\n phoneNumberRequired: isFieldRequired('phone', billingData.country) && isEmpty(billingData.phone)\r\n };\r\n if (options.shippingAddressRequired) {\r\n options.callbackIntents = [...options.callbackIntents, ...['SHIPPING_ADDRESS', 'SHIPPING_OPTION']];\r\n options.shippingOptionRequired = true;\r\n const shippingOptionParameters = getShippingOptionParameters(shippingRates);\r\n if (shippingOptionParameters.shippingOptions.length > 0) {\r\n options = {...options, shippingOptionParameters};\r\n }\r\n }\r\n return options;\r\n }, [\r\n billing.cartTotal,\r\n billing.cartTotalItems,\r\n billingData,\r\n shippingData\r\n ]);\r\n return paymentRequest;\r\n}","import {useState, useEffect, useCallback, useMemo, useRef} from '@wordpress/element';\r\nimport isShallowEqual from \"@wordpress/is-shallow-equal\";\r\nimport {\r\n getErrorMessage,\r\n getSelectedShippingOption,\r\n getBillingDetailsFromAddress,\r\n isAddressValid,\r\n isEmpty,\r\n StripeError,\r\n getIntermediateAddress\r\n} from \"../../util\";\r\nimport {useStripe} from \"@stripe/react-stripe-js\";\r\nimport {getPaymentRequestUpdate, toCartAddress} from \"../util\";\r\nimport {__} from \"@wordpress/i18n\";\r\nimport {usePaymentEvents} from \"../../hooks\";\r\n\r\nexport const usePaymentsClient = (\r\n {\r\n merchantInfo,\r\n paymentRequest,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n canMakePayment,\r\n setErrorMessage,\r\n setPaymentMethod,\r\n exportedValues,\r\n onClick,\r\n onClose,\r\n getData\r\n }) => {\r\n const {environment} = getData();\r\n const [paymentsClient, setPaymentsClient] = useState();\r\n const [button, setButton] = useState(null);\r\n const currentBilling = useRef(billing);\r\n const currentShipping = useRef(shippingData);\r\n const stripe = useStripe();\r\n const {addPaymentEvent} = usePaymentEvents({\r\n billing,\r\n shippingData,\r\n eventRegistration\r\n });\r\n useEffect(() => {\r\n currentBilling.current = billing;\r\n currentShipping.current = shippingData;\r\n });\r\n\r\n const setAddressData = useCallback((paymentData) => {\r\n if (paymentData?.paymentMethodData?.info?.billingAddress) {\r\n let billingAddress = paymentData.paymentMethodData.info.billingAddress;\r\n if (isAddressValid(currentBilling.current.billingData, ['phone', 'email']) && isEmpty(currentBilling.current.billingData?.phone)) {\r\n billingAddress = {phoneNumber: billingAddress.phoneNumber};\r\n }\r\n exportedValues.billingData = currentBilling.current.billingData = toCartAddress(billingAddress, {email: paymentData.email});\r\n }\r\n if (paymentData?.shippingAddress) {\r\n exportedValues.shippingAddress = toCartAddress(paymentData.shippingAddress);\r\n }\r\n }, [exportedValues, paymentRequest]);\r\n\r\n const removeButton = useCallback((parentElement) => {\r\n while (parentElement.firstChild) {\r\n parentElement.removeChild(parentElement.firstChild);\r\n }\r\n }, [button]);\r\n const handleClick = useCallback(async () => {\r\n onClick();\r\n try {\r\n let paymentData = await paymentsClient.loadPaymentData(paymentRequest);\r\n\r\n // set the address data so it can be used during the checkout process\r\n setAddressData(paymentData);\r\n\r\n const data = JSON.parse(paymentData.paymentMethodData.tokenizationData.token);\r\n\r\n let result = await stripe.createPaymentMethod({\r\n type: 'card',\r\n card: {token: data.id},\r\n billing_details: getBillingDetailsFromAddress(currentBilling.current.billingData)\r\n });\r\n\r\n if (result.error) {\r\n throw new StripeError(result.error);\r\n }\r\n\r\n setPaymentMethod(result.paymentMethod.id);\r\n } catch (err) {\r\n if (err?.statusCode === \"CANCELED\") {\r\n onClose();\r\n } else {\r\n console.log(getErrorMessage(err));\r\n setErrorMessage(getErrorMessage(err));\r\n }\r\n }\r\n }, [\r\n stripe,\r\n paymentsClient,\r\n onClick\r\n ]);\r\n\r\n const createButton = useCallback(async () => {\r\n try {\r\n if (paymentsClient && !button && stripe) {\r\n await canMakePayment;\r\n setButton(paymentsClient.createButton({\r\n onClick: handleClick,\r\n ...getData('buttonStyle')\r\n }));\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }, [\r\n stripe,\r\n button,\r\n paymentsClient,\r\n handleClick\r\n ]);\r\n\r\n const paymentOptions = useMemo(() => {\r\n let options = {\r\n environment,\r\n merchantInfo,\r\n paymentDataCallbacks: {\r\n onPaymentAuthorized: () => Promise.resolve({transactionState: \"SUCCESS\"})\r\n }\r\n }\r\n if (paymentRequest.shippingAddressRequired) {\r\n options.paymentDataCallbacks.onPaymentDataChanged = (paymentData) => {\r\n return new Promise((resolve, reject) => {\r\n const shipping = currentShipping.current;\r\n const {shippingAddress: address, shippingOptionData} = paymentData;\r\n const intermediateAddress = toCartAddress(address);\r\n // pass the Promise resolve to a ref so it persists beyond the re-render\r\n const selectedRates = getSelectedShippingOption(shippingOptionData.id);\r\n const addressEqual = isShallowEqual(getIntermediateAddress(shipping.shippingAddress), intermediateAddress);\r\n const shippingEqual = isShallowEqual(shipping.selectedRates, {\r\n [selectedRates[1]]: selectedRates[0]\r\n });\r\n addPaymentEvent('onShippingChanged', (success, {billing, shipping}) => {\r\n if (success) {\r\n resolve(getPaymentRequestUpdate({\r\n billing,\r\n shippingData: {\r\n needsShipping: true,\r\n shippingRates: shipping.shippingRates\r\n },\r\n processingCountry: getData('processingCountry'),\r\n totalPriceLabel: getData('totalPriceLabel')\r\n }))\r\n } else {\r\n resolve({\r\n error: {\r\n reason: 'SHIPPING_ADDRESS_UNSERVICEABLE',\r\n message: __('Your shipping address is not serviceable.', 'woo-stripe-payment'),\r\n intent: 'SHIPPING_ADDRESS'\r\n }\r\n });\r\n }\r\n }, addressEqual && shippingEqual);\r\n currentShipping.current.setShippingAddress({...currentShipping.current.shippingAddress, ...intermediateAddress});\r\n if (shippingOptionData.id !== 'shipping_option_unselected') {\r\n currentShipping.current.setSelectedRates(...selectedRates);\r\n }\r\n })\r\n }\r\n }\r\n return options;\r\n }, [paymentRequest]);\r\n\r\n useEffect(() => {\r\n setPaymentsClient(new google.payments.api.PaymentsClient(paymentOptions));\r\n }, [paymentOptions]);\r\n\r\n useEffect(() => {\r\n createButton();\r\n }, [createButton])\r\n\r\n return {\r\n button,\r\n removeButton\r\n };\r\n}","import './style.scss';\r\n\r\nexport * from './payment-method';","import {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings, initStripe as loadStripe, isCartPage} from '../util';\r\nimport {useErrorMessage} from \"./hooks\";\r\nimport GooglePayButton from './button';\r\nimport {BASE_PAYMENT_METHOD, BASE_PAYMENT_REQUEST} from './constants';\r\nimport google from '@googlepay';\r\nimport {Elements} from \"@stripe/react-stripe-js\";\r\n\r\nconst getData = getSettings('stripe_googlepay_data');\r\n\r\nconst canMakePayment = (() => {\r\n const paymentsClient = new google.payments.api.PaymentsClient({\r\n environment: getData('environment'),\r\n merchantInfo: {\r\n merchantId: getData('merchantId'),\r\n merchantName: getData('merchantName')\r\n }\r\n });\r\n const isReadyToPayRequest = {...BASE_PAYMENT_REQUEST, allowedPaymentMethods: [BASE_PAYMENT_METHOD]};\r\n return paymentsClient.isReadyToPay(isReadyToPayRequest).then(() => {\r\n return true;\r\n }).catch(err => {\r\n console.log(err);\r\n return false;\r\n })\r\n})();\r\n\r\nconst GooglePayContent = ({getData, components, ...props}) => {\r\n const {ValidationInputError} = components;\r\n const {errorMessage, setErrorMessage} = useErrorMessage();\r\n return (\r\n <div className='wc-stripe-gpay-container'>\r\n <Elements stripe={loadStripe}>\r\n <GooglePayButton getData={getData}\r\n canMakePayment={canMakePayment}\r\n setErrorMessage={setErrorMessage}\r\n {...props}/>\r\n {errorMessage && <ValidationInputError errorMessage={errorMessage}/>}\r\n </Elements>\r\n </div>\r\n )\r\n}\r\n\r\nconst GooglePayEdit = ({getData, ...props}) => {\r\n const buttonType = getData('buttonStyle').buttonType;\r\n const src = getData('editorIcons')?.[buttonType] || 'long';\r\n return (\r\n <div className={`gpay-block-editor ${buttonType}`}>\r\n <img src={src}/>\r\n </div>\r\n )\r\n}\r\n\r\nregisterExpressPaymentMethod({\r\n name: getData('name'),\r\n canMakePayment: () => {\r\n if (getData('isAdmin')) {\r\n if (isCartPage()) {\r\n return getData('cartCheckoutEnabled');\r\n }\r\n return true;\r\n }\r\n if (isCartPage() && !getData('cartCheckoutEnabled')) {\r\n return false;\r\n }\r\n return loadStripe.then(stripe => {\r\n if (stripe.error) {\r\n return stripe;\r\n }\r\n return canMakePayment;\r\n });\r\n },\r\n content: <GooglePayContent getData={getData}/>,\r\n edit: <GooglePayEdit getData={getData}/>,\r\n supports: {\r\n showSavedCards: getData('showSavedCards'),\r\n showSaveOption: getData('showSaveOption'),\r\n features: getData('features')\r\n }\r\n})","import {getShippingOptionId, removeNumberPrecision, toCartAddress as mapAddressToCartAddress} from \"../util\";\r\nimport {formatPrice} from '../util';\r\nimport {getSetting} from '@woocommerce/settings'\r\n\r\nconst generalData = getSetting('stripeGeneralData');\r\n\r\nconst ADDRESS_MAPPINGS = {\r\n name: (address, name) => {\r\n address.first_name = name.split(' ').slice(0, -1).join(' ');\r\n address.last_name = name.split(' ').pop();\r\n return address;\r\n },\r\n countryCode: 'country',\r\n address1: 'address_1',\r\n address2: 'address_2',\r\n locality: 'city',\r\n administrativeArea: 'state',\r\n postalCode: 'postcode',\r\n email: 'email',\r\n phoneNumber: 'phone'\r\n}\r\n\r\nexport const getTransactionInfo = ({billing, processingCountry, totalPriceLabel}, status = 'ESTIMATED') => {\r\n const {cartTotal, cartTotalItems, currency} = billing;\r\n const transactionInfo = {\r\n countryCode: processingCountry,\r\n currencyCode: currency.code,\r\n totalPriceStatus: status,\r\n totalPrice: removeNumberPrecision(cartTotal.value, currency.minorUnit).toString(),\r\n displayItems: getDisplayItems(cartTotalItems, currency.minorUnit),\r\n totalPriceLabel\r\n }\r\n return transactionInfo;\r\n}\r\n\r\nexport const getPaymentRequestUpdate = ({billing, shippingData, processingCountry, totalPriceLabel}) => {\r\n const {needsShipping, shippingRates} = shippingData;\r\n let update = {\r\n newTransactionInfo: getTransactionInfo({\r\n billing, processingCountry, totalPriceLabel\r\n }, 'FINAL')\r\n }\r\n if (needsShipping) {\r\n update.newShippingOptionParameters = getShippingOptionParameters(shippingRates);\r\n }\r\n return update;\r\n}\r\n\r\n/**\r\n * Return an array of line item objects\r\n * @param cartTotalItems\r\n * @param unit\r\n * @returns {[]}\r\n */\r\nconst getDisplayItems = (cartTotalItems, unit = 2) => {\r\n let items = [];\r\n const keys = ['total_tax', 'total_shipping'];\r\n cartTotalItems.forEach(item => {\r\n if (0 < item.value || (item.key && keys.includes(item.key))) {\r\n items.push({\r\n label: item.label,\r\n type: 'LINE_ITEM',\r\n price: removeNumberPrecision(item.value, unit).toString()\r\n });\r\n }\r\n })\r\n return items;\r\n}\r\n\r\nexport const getShippingOptionParameters = (shippingRates) => {\r\n const shippingOptions = getShippingOptions(shippingRates);\r\n const shippingOptionIds = shippingOptions.map(option => option.id);\r\n let defaultSelectedOptionId = shippingOptionIds.slice(0, 1).shift();\r\n shippingRates.forEach((shippingPackage, idx) => {\r\n shippingPackage.shipping_rates.forEach(rate => {\r\n if (rate.selected) {\r\n defaultSelectedOptionId = getShippingOptionId(idx, rate.rate_id);\r\n }\r\n });\r\n });\r\n return {\r\n shippingOptions,\r\n defaultSelectedOptionId,\r\n }\r\n}\r\n\r\n//id label description\r\nexport const getShippingOptions = (shippingRates) => {\r\n let options = [];\r\n shippingRates.forEach((shippingPackage, idx) => {\r\n let rates = shippingPackage.shipping_rates.map(rate => {\r\n let txt = document.createElement('textarea');\r\n txt.innerHTML = rate.name;\r\n let price = formatPrice(rate.price, rate.currency_code);\r\n return {\r\n id: getShippingOptionId(idx, rate.rate_id),\r\n label: txt.value,\r\n description: `${price}`\r\n }\r\n });\r\n options = [...options, ...rates];\r\n });\r\n return options;\r\n}\r\n\r\nexport const toCartAddress = mapAddressToCartAddress(ADDRESS_MAPPINGS);\r\n","export * from './use-process-payment-intent';\r\nexport * from './use-after-process-payment';\r\nexport * from './use-setup-intent';\r\nexport * from './use-stripe-error';\r\nexport * from './use-exported-values';\r\nexport * from './use-payment-request';\r\nexport * from './use-payment-events';\r\nexport * from './use-breakpoint-width';\r\nexport * from './use-process-checkout-error'","import {useEffect} from '@wordpress/element'\r\nimport {useStripe} from \"@stripe/react-stripe-js\";\r\nimport {handleCardAction} from \"../util\";\r\nimport {useProcessCheckoutError} from \"./use-process-checkout-error\";\r\n\r\nexport const useAfterProcessingPayment = (\r\n {\r\n getData,\r\n eventRegistration,\r\n responseTypes,\r\n activePaymentMethod,\r\n savePaymentMethod = false,\r\n messageContext = null\r\n }) => {\r\n const stripe = useStripe();\r\n const {onCheckoutAfterProcessingWithSuccess, onCheckoutAfterProcessingWithError} = eventRegistration;\r\n useProcessCheckoutError({\r\n responseTypes,\r\n subscriber: onCheckoutAfterProcessingWithError,\r\n messageContext\r\n });\r\n useEffect(() => {\r\n let unsubscribeAfterProcessingWithSuccess = onCheckoutAfterProcessingWithSuccess(async ({redirectUrl}) => {\r\n if (getData('name') === activePaymentMethod) {\r\n //check if response is in redirect. If so, open modal\r\n return await handleCardAction({\r\n redirectUrl,\r\n responseTypes,\r\n stripe,\r\n getData,\r\n savePaymentMethod\r\n });\r\n }\r\n return null;\r\n })\r\n return () => unsubscribeAfterProcessingWithSuccess()\r\n }, [\r\n stripe,\r\n responseTypes,\r\n onCheckoutAfterProcessingWithSuccess,\r\n activePaymentMethod,\r\n savePaymentMethod\r\n ]);\r\n}","import {useState, useEffect, useCallback} from '@wordpress/element';\r\nimport {storeInCache, getFromCache} from \"../util\";\r\n\r\nexport const useBreakpointWidth = (\r\n {\r\n name,\r\n width,\r\n node,\r\n className\r\n }) => {\r\n const [windowWidth, setWindowWith] = useState(window.innerWidth);\r\n const getMaxWidth = useCallback((name) => {\r\n const maxWidth = getFromCache(name);\r\n return maxWidth ? parseInt(maxWidth) : 0;\r\n }, []);\r\n const setMaxWidth = useCallback((name, width) => storeInCache(name, width), []);\r\n\r\n useEffect(() => {\r\n const el = typeof node === 'function' ? node() : node;\r\n\r\n if (el) {\r\n const maxWidth = getMaxWidth(name);\r\n if (!maxWidth || width > maxWidth) {\r\n setMaxWidth(name, width);\r\n }\r\n if (el.clientWidth < width) {\r\n el.classList.add(className);\r\n } else {\r\n if (el.clientWidth > maxWidth) {\r\n el.classList.remove(className);\r\n }\r\n }\r\n }\r\n }, [windowWidth, node]);\r\n useEffect(() => {\r\n const handleResize = () => setWindowWith(window.innerWidth);\r\n window.addEventListener('resize', handleResize);\r\n return () => window.removeEventListener('resize', handleResize);\r\n });\r\n}\r\n\r\nexport const useExpressBreakpointWidth = (\r\n {\r\n payment_method,\r\n width\r\n }) => {\r\n const node = useCallback(() => {\r\n const el = document.getElementById(`express-payment-method-${payment_method}`);\r\n return el ? el.parentNode : null;\r\n }, []);\r\n useBreakpointWidth({\r\n name: 'expressMaxWidth',\r\n width,\r\n node,\r\n className: 'wc-stripe-express__sm'\r\n });\r\n\r\n}","import {useRef} from '@wordpress/element';\r\n\r\nexport const useExportedValues = () => {\r\n const exportedValues = useRef({});\r\n return exportedValues.current;\r\n}","import {useEffect, useCallback, useRef, useState} from '@wordpress/element';\r\nimport {hasShippingRates} from '../util';\r\n\r\nexport const usePaymentEvents = (\r\n {\r\n billing,\r\n shippingData,\r\n eventRegistration\r\n }) => {\r\n const {onShippingRateSuccess, onShippingRateFail, onShippingRateSelectSuccess} = eventRegistration;\r\n const currentBilling = useRef(billing);\r\n const currentShipping = useRef(shippingData);\r\n const [handler, setHandler] = useState(null);\r\n const [paymentEvents, setPaymentEvent] = useState({\r\n onShippingChanged: false\r\n });\r\n const addPaymentEvent = useCallback((name, handler, execute = false) => {\r\n if (execute) {\r\n setHandler({[name]: handler});\r\n } else {\r\n setPaymentEvent({...paymentEvents, [name]: handler});\r\n }\r\n }, [paymentEvents, setPaymentEvent]);\r\n const removePaymentEvent = useCallback((name) => {\r\n if (paymentEvents[name]) {\r\n delete paymentEvents[name];\r\n setPaymentEvent(paymentEvents);\r\n }\r\n }, [paymentEvents]);\r\n\r\n const onShippingChanged = useCallback(() => {\r\n const shipping = currentShipping.current;\r\n const billing = currentBilling.current;\r\n if (paymentEvents.onShippingChanged && !shipping.isSelectingRate && !shipping.shippingRatesLoading) {\r\n const handler = paymentEvents.onShippingChanged;\r\n let success = true;\r\n if (!hasShippingRates(shipping.shippingRates)) {\r\n success = false;\r\n }\r\n handler(success, {\r\n billing,\r\n shipping\r\n });\r\n removePaymentEvent('onShippingChanged');\r\n }\r\n }, [paymentEvents, removePaymentEvent]);\r\n\r\n useEffect(() => {\r\n currentBilling.current = billing;\r\n currentShipping.current = shippingData;\r\n });\r\n\r\n useEffect(() => {\r\n if (handler) {\r\n if (handler.onShippingChanged) {\r\n handler.onShippingChanged(true, {\r\n billing: currentBilling.current,\r\n shipping: currentShipping.current\r\n })\r\n setHandler(null);\r\n }\r\n }\r\n }, [handler]);\r\n\r\n useEffect(() => {\r\n const unsubscribeShippingRateSuccess = onShippingRateSuccess(onShippingChanged);\r\n const unsubscribeShippingRateSelectSuccess = onShippingRateSelectSuccess(onShippingChanged);\r\n const unsubscribeShippingRateFail = onShippingRateFail(({hasInvalidAddress, hasError}) => {\r\n if (paymentEvents.onShippingChanged) {\r\n const handler = paymentEvents.onShippingChanged;\r\n handler(false);\r\n removePaymentEvent('onShippingChanged');\r\n }\r\n });\r\n\r\n return () => {\r\n unsubscribeShippingRateSuccess();\r\n unsubscribeShippingRateFail();\r\n unsubscribeShippingRateSelectSuccess();\r\n }\r\n }, [\r\n paymentEvents,\r\n onShippingRateSuccess,\r\n onShippingRateFail,\r\n onShippingRateSelectSuccess\r\n ]);\r\n\r\n return {addPaymentEvent, removePaymentEvent};\r\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\r\nimport {usePaymentEvents} from './use-payment-events';\r\nimport {getIntermediateAddress} from '../util';\r\nimport isShallowEqual from '@wordpress/is-shallow-equal';\r\nimport {\r\n getDisplayItems,\r\n getShippingOptions,\r\n getSelectedShippingOption,\r\n isFieldRequired,\r\n toCartAddress as mapToCartAddress\r\n} from \"../util\";\r\n\r\nconst toCartAddress = mapToCartAddress();\r\n\r\nexport const usePaymentRequest = (\r\n {\r\n getData,\r\n onClose,\r\n stripe,\r\n billing,\r\n shippingData,\r\n eventRegistration,\r\n setPaymentMethod,\r\n exportedValues,\r\n canPay\r\n }) => {\r\n const {addPaymentEvent} = usePaymentEvents({\r\n billing,\r\n shippingData,\r\n eventRegistration\r\n });\r\n const {shippingAddress, needsShipping, shippingRates} = shippingData;\r\n const {billingData, cartTotalItems, currency, cartTotal} = billing;\r\n const [paymentRequest, setPaymentRequest] = useState(null);\r\n const paymentRequestOptions = useRef({});\r\n const currentShipping = useRef(shippingData)\r\n const currentBilling = useRef(billing);\r\n\r\n useEffect(() => {\r\n currentShipping.current = shippingData;\r\n currentBilling.current = billing;\r\n }, [shippingData]);\r\n\r\n useEffect(() => {\r\n if (stripe) {\r\n const options = {\r\n country: getData('countryCode'),\r\n currency: currency?.code.toLowerCase(),\r\n total: {\r\n amount: cartTotal.value,\r\n label: cartTotal.label,\r\n pending: true\r\n },\r\n requestPayerName: true,\r\n requestPayerEmail: isFieldRequired('email', billingData.country),\r\n requestPayerPhone: isFieldRequired('phone', billingData.country),\r\n requestShipping: needsShipping,\r\n displayItems: getDisplayItems(cartTotalItems, currency)\r\n }\r\n if (options.requestShipping) {\r\n options.shippingOptions = getShippingOptions(shippingRates);\r\n }\r\n paymentRequestOptions.current = options;\r\n const paymentRequest = stripe.paymentRequest(paymentRequestOptions.current);\r\n paymentRequest.canMakePayment().then(result => {\r\n if (canPay(result)) {\r\n setPaymentRequest(paymentRequest);\r\n } else {\r\n setPaymentRequest(null);\r\n }\r\n });\r\n }\r\n }, [\r\n stripe,\r\n cartTotal.value,\r\n billingData.country,\r\n shippingRates,\r\n cartTotalItems,\r\n currency.code\r\n ]);\r\n\r\n useEffect(() => {\r\n if (paymentRequest) {\r\n if (paymentRequestOptions.current.requestShipping) {\r\n paymentRequest.on('shippingaddresschange', onShippingAddressChange);\r\n paymentRequest.on('shippingoptionchange', onShippingOptionChange);\r\n }\r\n paymentRequest.on('cancel', onClose);\r\n paymentRequest.on('paymentmethod', onPaymentMethodReceived);\r\n }\r\n }, [\r\n paymentRequest,\r\n onShippingAddressChange,\r\n onClose,\r\n onPaymentMethodReceived\r\n ]);\r\n\r\n const updatePaymentEvent = useCallback((event) => (success, {billing, shipping}) => {\r\n const {cartTotal, cartTotalItems, currency} = billing;\r\n const {shippingRates} = shipping;\r\n if (success) {\r\n event.updateWith({\r\n status: 'success',\r\n total: {\r\n amount: cartTotal.value,\r\n label: cartTotal.label,\r\n pending: false\r\n },\r\n displayItems: getDisplayItems(cartTotalItems, currency),\r\n shippingOptions: getShippingOptions(shippingRates)\r\n });\r\n } else {\r\n event.updateWith({status: 'invalid_shipping_address'});\r\n }\r\n }, []);\r\n\r\n const onShippingAddressChange = useCallback(event => {\r\n const {shippingAddress} = event;\r\n const shipping = currentShipping.current;\r\n const intermediateAddress = toCartAddress(shippingAddress);\r\n shipping.setShippingAddress({...shipping.shippingAddress, ...intermediateAddress});\r\n const addressEqual = isShallowEqual(getIntermediateAddress(shipping.shippingAddress), intermediateAddress);\r\n addPaymentEvent('onShippingChanged', updatePaymentEvent(event), addressEqual);\r\n }, [addPaymentEvent]);\r\n\r\n const onShippingOptionChange = useCallback(event => {\r\n const {shippingOption} = event;\r\n const shipping = currentShipping.current;\r\n shipping.setSelectedRates(...getSelectedShippingOption(shippingOption.id));\r\n addPaymentEvent('onShippingChanged', updatePaymentEvent(event));\r\n }, [addPaymentEvent]);\r\n\r\n const onPaymentMethodReceived = useCallback((paymentResponse) => {\r\n const {paymentMethod, payerName = null, payerEmail = null, payerPhone = null} = paymentResponse;\r\n // set address data\r\n let billingData = {payerName, payerEmail, payerPhone};\r\n if (paymentMethod?.billing_details.address) {\r\n billingData = toCartAddress(paymentMethod.billing_details.address, billingData);\r\n }\r\n exportedValues.billingData = billingData;\r\n\r\n if (paymentResponse.shippingAddress) {\r\n exportedValues.shippingAddress = toCartAddress(paymentResponse.shippingAddress);\r\n }\r\n\r\n // set payment method\r\n setPaymentMethod(paymentMethod.id);\r\n paymentResponse.complete(\"success\");\r\n }, []);\r\n\r\n return {paymentRequest};\r\n}","import {useEffect} from '@wordpress/element';\r\n\r\nexport const useProcessCheckoutError = (\r\n {\r\n responseTypes,\r\n subscriber,\r\n messageContext = null\r\n }) => {\r\n useEffect(() => {\r\n const unsubscribe = subscriber((data) => {\r\n if (data?.processingResponse.paymentDetails?.stripeErrorMessage) {\r\n return {\r\n type: responseTypes.ERROR,\r\n message: data.processingResponse.paymentDetails.stripeErrorMessage,\r\n messageContext\r\n };\r\n }\r\n return null;\r\n });\r\n return () => unsubscribe();\r\n }, [responseTypes, subscriber]);\r\n}","import {useEffect, useState, useCallback, useRef} from '@wordpress/element';\r\nimport {useStripe} from '@stripe/react-stripe-js';\r\nimport {\r\n ensureSuccessResponse,\r\n ensureErrorResponse,\r\n getBillingDetailsFromAddress,\r\n StripeError\r\n} from '../util';\r\n\r\nexport const useProcessPaymentIntent = (\r\n {\r\n getData,\r\n billing,\r\n shippingData,\r\n onPaymentProcessing,\r\n emitResponse,\r\n error,\r\n onSubmit,\r\n activePaymentMethod,\r\n paymentType = 'card',\r\n setupIntent = null,\r\n removeSetupIntent = null,\r\n savePaymentMethod = false,\r\n exportedValues = {},\r\n getPaymentMethodArgs = () => ({})\r\n }) => {\r\n const {billingData} = billing;\r\n const {shippingAddress} = shippingData;\r\n const {responseTypes} = emitResponse;\r\n const [paymentMethod, setPaymentMethod] = useState(null);\r\n const stripe = useStripe();\r\n const currentPaymentMethodArgs = useRef(getPaymentMethodArgs);\r\n\r\n useEffect(() => {\r\n currentPaymentMethodArgs.current = getPaymentMethodArgs;\r\n }, [getPaymentMethodArgs]);\r\n\r\n const getCreatePaymentMethodArgs = useCallback(() => {\r\n const args = {\r\n type: paymentType,\r\n billing_details: getBillingDetailsFromAddress(exportedValues?.billingData ? exportedValues.billingData : billingData)\r\n }\r\n return {...args, ...currentPaymentMethodArgs.current()};\r\n }, [billingData, paymentType, getPaymentMethodArgs]);\r\n\r\n const getSuccessResponse = useCallback((paymentMethodId, savePaymentMethod) => {\r\n const response = {\r\n meta: {\r\n paymentMethodData: {\r\n [`${getData('name')}_token_key`]: paymentMethodId,\r\n [`${getData('name')}_save_source_key`]: savePaymentMethod\r\n }\r\n }\r\n }\r\n if (exportedValues?.billingData) {\r\n response.meta.billingData = exportedValues.billingData;\r\n }\r\n if (exportedValues?.shippingAddress) {\r\n response.meta.shippingData = {address: exportedValues.shippingAddress};\r\n }\r\n return response;\r\n }, [billingData, shippingAddress]);\r\n\r\n useEffect(() => {\r\n if (paymentMethod && typeof paymentMethod === 'string') {\r\n onSubmit();\r\n }\r\n }, [paymentMethod, onSubmit]);\r\n\r\n useEffect(() => {\r\n const unsubscribeProcessingPayment = onPaymentProcessing(async () => {\r\n if (activePaymentMethod !== getData('name')) {\r\n return null;\r\n }\r\n let [result, paymentMethodId] = [null, null];\r\n try {\r\n if (error) {\r\n throw new StripeError(error);\r\n }\r\n if (setupIntent) {\r\n result = await stripe.confirmCardSetup(setupIntent.client_secret, {\r\n payment_method: getCreatePaymentMethodArgs()\r\n });\r\n if (result.error) {\r\n throw new StripeError(result.error);\r\n }\r\n paymentMethodId = result.setupIntent.payment_method;\r\n removeSetupIntent();\r\n } else {\r\n // payment method has already been created.\r\n if (paymentMethod) {\r\n paymentMethodId = paymentMethod;\r\n } else {\r\n //create the payment method\r\n result = await stripe.createPaymentMethod(getCreatePaymentMethodArgs());\r\n if (result.error) {\r\n throw new StripeError(result.error);\r\n }\r\n paymentMethodId = result.paymentMethod.id;\r\n }\r\n }\r\n return ensureSuccessResponse(responseTypes, getSuccessResponse(paymentMethodId, savePaymentMethod));\r\n } catch (e) {\r\n console.log(e);\r\n setPaymentMethod(null);\r\n return ensureErrorResponse(responseTypes, e.error);\r\n }\r\n\r\n });\r\n return () => unsubscribeProcessingPayment();\r\n }, [\r\n paymentMethod,\r\n billingData,\r\n onPaymentProcessing,\r\n stripe,\r\n setupIntent,\r\n activePaymentMethod,\r\n savePaymentMethod\r\n ]);\r\n return {setPaymentMethod};\r\n}","import {useEffect, useState, useCallback} from '@wordpress/element';\r\nimport apiFetch from \"@wordpress/api-fetch\";\r\nimport {\r\n getSettings,\r\n getRoute,\r\n cartContainsPreOrder,\r\n cartContainsSubscription,\r\n getFromCache,\r\n storeInCache,\r\n deleteFromCache\r\n} from '../util';\r\n\r\nexport const useSetupIntent = (\r\n {\r\n cartTotal,\r\n setError\r\n }) => {\r\n const [setupIntent, setSetupIntent] = useState(getFromCache('setupIntent'));\r\n\r\n useEffect(() => {\r\n const createSetupIntent = async () => {\r\n if (setupIntent) {\r\n return;\r\n }\r\n // only create intent under certain conditions\r\n let result = await apiFetch({\r\n url: getRoute('create/setup_intent'),\r\n method: 'POST'\r\n });\r\n if (result.code) {\r\n setError(result.message);\r\n } else {\r\n storeInCache('setupIntent', result.intent);\r\n setSetupIntent(result.intent);\r\n }\r\n }\r\n if (cartContainsPreOrder() || (cartContainsSubscription() && cartTotal.value == 0)) {\r\n if (!setupIntent) {\r\n createSetupIntent();\r\n }\r\n } else {\r\n setSetupIntent(null);\r\n }\r\n }, [cartTotal.value]);\r\n const removeSetupIntent = useCallback(() => {\r\n deleteFromCache('setupIntent');\r\n }, [cartTotal.value]);\r\n return {setupIntent, removeSetupIntent};\r\n}","import {useState} from '@wordpress/element'\r\n\r\nexport const useStripeError = () => {\r\n const [error, setError] = useState(false);\r\n return [error, setError];\r\n}","import {useState, useEffect} from '@wordpress/element';\r\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings, initStripe} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {AfterpayClearpayMessageElement, Elements} from \"@stripe/react-stripe-js\";\r\nimport {sprintf, __} from '@wordpress/i18n';\r\n\r\nconst getData = getSettings('stripe_afterpay_data');\r\nlet variablesHandler;\r\nconst setVariablesHandler = (handler) => {\r\n variablesHandler = handler;\r\n}\r\nconst PaymentMethodLabel = ({getData}) => {\r\n const [variables, setVariables] = useState({\r\n amount: getData('cartTotal'),\r\n currency: getData('currency'),\r\n isEligible: getData('msgOptions').isEligible\r\n });\r\n setVariablesHandler(setVariables);\r\n return (\r\n <Elements stripe={initStripe} options={getData('elementOptions')}>\r\n <div className='wc-stripe-blocks-afterpay__label'>\r\n <AfterpayClearpayMessageElement options={{\r\n ...getData('msgOptions'),\r\n ...{\r\n amount: variables.amount,\r\n currency: variables.currency,\r\n isEligible: variables.isEligible\r\n }\r\n }}/>\r\n </div>\r\n </Elements>\r\n );\r\n}\r\n\r\nconst AfterpayPaymentMethod = ({content, billing, shippingData, ...props}) => {\r\n const Content = content;\r\n const {cartTotal, currency} = billing;\r\n const {needsShipping} = shippingData\r\n useEffect(() => {\r\n variablesHandler({\r\n amount: cartTotal.value,\r\n currency: currency.code,\r\n isEligible: needsShipping\r\n });\r\n }, [\r\n cartTotal.value,\r\n currency.code,\r\n needsShipping\r\n ]);\r\n return (\r\n <>\r\n {needsShipping &&\r\n <div className='wc-stripe-blocks-payment-method-content'>\r\n <div className=\"wc-stripe-blocks-afterpay-offsite__container\">\r\n <div className=\"wc-stripe-blocks-afterpay__offsite\">\r\n <img src={getData('offSiteSrc')}/>\r\n <p>{sprintf(__('After clicking \"%s\", you will be redirected to Afterpay to complete your purchase securely.', 'woo-stripe-payment'), getData('placeOrderButtonLabel'))}</p>\r\n </div>\r\n </div>\r\n <Content {...{...props, billing, shippingData}}/>\r\n </div>}\r\n </>\r\n );\r\n}\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n getData={getData}/>,\r\n ariaLabel: __('Afterpay', 'woo-stripe-payment'),\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData, ({settings, cartTotals, cartNeedsShipping}) => {\r\n const {currency_code: currency, currency_minor_unit, total_price} = cartTotals;\r\n const requiredParams = settings('requiredParams');\r\n const accountCountry = settings('accountCountry');\r\n const requiredParamObj = requiredParams[currency] ? requiredParams[currency] : false;\r\n if (variablesHandler) {\r\n variablesHandler({\r\n amount: parseInt(cartTotals.total_price),\r\n currency,\r\n isEligible: cartNeedsShipping\r\n });\r\n }\r\n const total = parseInt(total_price) / 10 ** currency_minor_unit;\r\n const available = accountCountry === requiredParamObj?.[0] && cartNeedsShipping && (total > requiredParamObj?.[1] && total < requiredParamObj?.[2]);\r\n if (!available && !settings('hideIneligible')) {\r\n return true;\r\n }\r\n return available;\r\n }),\r\n content: <AfterpayPaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmAfterpayClearpayPayment'}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {canMakePayment, LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel} from \"../../components/checkout/payment-method-label\";\r\nimport {PaymentMethod} from \"../../components/checkout\";\r\n\r\nconst getData = getSettings('stripe_alipay_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'Alipay',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n confirmationMethod={'confirmAlipayPayment'}\r\n getData={getData}/>,\r\n edit: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}\r\n","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\n\r\nconst getData = getSettings('stripe_bancontact_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'Bancontact',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n confirmationMethod={'confirmBancontactPayment'}\r\n getData={getData}/>,\r\n edit: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {AuBankAccountElement} from \"@stripe/react-stripe-js\";\r\n\r\nconst getData = getSettings('stripe_becs_data');\r\n\r\nconst BecsPaymentMethod = (props) => {\r\n return (\r\n <>\r\n <PaymentMethod {...props} />\r\n <div className={'wc-stripe-blocks-mandate becs-mandate'}\r\n dangerouslySetInnerHTML={{__html: props.getData('mandate')}}/>\r\n </>\r\n );\r\n}\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'BECS',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <BecsPaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmAuBecsDebitPayment'}\r\n component={AuBankAccountElement}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {useState, useEffect, useCallback} from '@wordpress/element';\r\nimport {__} from '@wordpress/i18n';\r\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport classnames from 'classnames';\r\nimport {ensureErrorResponse, getSettings, isTestMode} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\n\r\nconst getData = getSettings('stripe_boleto_data');\r\n\r\nconst BoletoPaymentMethodContainer = ({eventRegistration, ...props}) => {\r\n const [taxId, setTaxId] = useState('');\r\n const [isActive, setIsActive] = useState(false);\r\n const {onPaymentProcessing} = eventRegistration;\r\n const callback = useCallback(() => {\r\n return {\r\n boleto: {\r\n tax_id: taxId\r\n }\r\n };\r\n }, [taxId]);\r\n\r\n useEffect(() => {\r\n const unsubscribe = onPaymentProcessing(() => {\r\n if (!taxId) {\r\n return ensureErrorResponse(props.emitResponse.responseTypes, __('Please enter a valid CPF/CNPJ value', 'woo-stripe-payment'));\r\n }\r\n return true;\r\n })\r\n return () => unsubscribe();\r\n }, [onPaymentProcessing, taxId]);\r\n return (\r\n <>\r\n <div className={classnames('wc-block-components-text-input', {\r\n 'is-active': isActive || taxId\r\n })}>\r\n <input\r\n type='text'\r\n id='wc-stripe-boleto-tax_id'\r\n onChange={(e) => setTaxId(e.target.value)}\r\n onFocus={() => setIsActive(true)}\r\n onBlur={() => setIsActive(false)}/>\r\n <label htmlFor='wc-stripe-boleto-tax_id'>{__(' CPF / CNPJ', ' woo-stripe-payment')}</label>\r\n </div>\r\n {isTestMode() &&\r\n <div className='wc-stripe-boleto__description'>\r\n <p>{__('Test mode values', 'woo-stripe-payment')}</p>\r\n <div>\r\n <label>CPF:</label>&nbsp;<span>000.000.000-00</span>\r\n </div>\r\n <div>\r\n <label>CNPJ:</label>&nbsp;<span>00.000.000/0000-00</span>\r\n </div>\r\n </div>}\r\n {!isTestMode() &&\r\n <div className=\"wc-stripe-boleto__description\">\r\n <p>{__('Accepted formats', 'woo-stripe-payment')}</p>\r\n <div>\r\n <label>CPF:</label>&nbsp;\r\n <span>{__('XXX.XXX.XXX-XX or XXXXXXXXXXX', 'woo-stripe-payment')}</span>\r\n </div>\r\n <div>\r\n <label>CNPJ:</label>&nbsp;\r\n <span>{__('XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX', 'woo-stripe-payment')}</span>\r\n </div>\r\n </div>}\r\n <LocalPaymentIntentContent callback={callback} {...{...props, ...{eventRegistration}}}/>\r\n </>\r\n )\r\n}\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'Boleto',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={BoletoPaymentMethodContainer}\r\n getData={getData}\r\n confirmationMethod={'confirmBoletoPayment'}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {canMakePayment, LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {EpsBankElement} from \"@stripe/react-stripe-js\";\r\n\r\nconst getData = getSettings('stripe_eps_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'EPS',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n confirmationMethod={'confirmEpsPayment'}\r\n component={EpsBankElement}\r\n getData={getData}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\nimport {FpxBankElement} from \"@stripe/react-stripe-js\";\r\n\r\nconst getData = getSettings('stripe_fpx_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'FPX',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmIdealPayment'}\r\n component={FpxBankElement}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment} from \"./local-payment-method\";\r\n\r\nconst getData = getSettings('stripe_giropay_data');\r\n\r\nif (getData()) {\r\n registerPaymentMethod({\r\n name: getData('name'),\r\n label: <PaymentMethodLabel\r\n title={getData('title')}\r\n paymentMethod={getData('name')}\r\n icons={getData('icon')}/>,\r\n ariaLabel: 'Giropay',\r\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\r\n canMakePayment: canMakePayment(getData),\r\n content: <PaymentMethod\r\n content={LocalPaymentIntentContent}\r\n confirmationMethod={'confirmGiropayPayment'}\r\n getData={getData}/>,\r\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\r\n supports: {\r\n showSavedCards: false,\r\n showSaveOption: false,\r\n features: getData('features')\r\n }\r\n })\r\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\r\nimport {getSettings} from \"../util\";\r\nimport {LocalPaymentIntentContent} from './local-payment-method';\r\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\