Version Description
- 4/7/22 =
- Added - Support for installments for Mexico based accounts
- Added - Afterpay messaging in order summary of Checkout Block
- Fixed - GPay gateway 3DS error where authentication screen wasn't appearing.
Download this release
Release Info
Developer | mr.clayton |
Plugin | Payment Plugins for Stripe WooCommerce |
Version | 3.3.19 |
Comparing to | |
See all releases |
Code changes from version 3.3.18 to 3.3.19
- assets/css/stripe-rtl.css +66 -0
- assets/css/stripe.css +66 -0
- assets/css/stripe.min-rtl.css +1 -1
- assets/css/stripe.min.css +1 -1
- assets/js/frontend/credit-card.js +125 -2
- assets/js/frontend/credit-card.min.js +1 -1
- assets/js/frontend/wc-stripe.js +9 -0
- assets/js/frontend/wc-stripe.min.js +1 -1
- i18n/languages/woo-stripe-payment.pot +181 -116
- includes/abstract/abstract-wc-payment-gateway-stripe.php +18 -10
- includes/admin/settings/class-wc-stripe-account-settings.php +69 -8
- includes/admin/settings/class-wc-stripe-advanced-settings.php +12 -0
- includes/admin/settings/class-wc-stripe-api-settings.php +37 -26
- includes/class-stripe.php +2 -2
- includes/class-wc-stripe-constants.php +6 -0
- includes/class-wc-stripe-payment-intent.php +9 -5
- includes/class-wc-stripe-update.php +2 -1
- includes/controllers/class-wc-stripe-controller-gateway-settings.php +4 -5
- includes/controllers/class-wc-stripe-controller-payment-intent.php +127 -0
- includes/gateways/class-wc-payment-gateway-stripe-ach.php +6 -4
- includes/gateways/class-wc-payment-gateway-stripe-afterpay.php +1 -1
- includes/gateways/class-wc-payment-gateway-stripe-cc.php +17 -1
- includes/traits/wc-stripe-payment-traits.php +12 -3
- includes/updates/update-3.3.19.php +13 -0
- packages/blocks/assets/js/components/checkout/index.js +2 -1
- packages/blocks/assets/js/components/checkout/installments/index.js +97 -0
- packages/blocks/assets/js/components/checkout/installments/style.scss +34 -0
- packages/blocks/assets/js/payment-methods/credit-card/components/custom-card-form.js +11 -1
- packages/blocks/assets/js/payment-methods/credit-card/components/stripe-card-form.js +10 -1
- packages/blocks/assets/js/payment-methods/credit-card/payment-method.js +10 -2
- packages/blocks/assets/js/payment-methods/googlepay/button.js +8 -1
- packages/blocks/assets/js/payment-methods/hooks/use-process-payment-intent.js +12 -3
- packages/blocks/assets/js/payment-methods/local-payment/afterpay.js +54 -5
- packages/blocks/build/commons.js +1 -1
- packages/blocks/build/commons.js.map +1 -1
assets/css/stripe-rtl.css
CHANGED
@@ -1046,4 +1046,70 @@ div.payment_method_stripe_cc > .woocommerce-NoticeGroup {
|
|
1046 |
Â
|
1047 |
Â
div.payment_method_stripe_cc.custom-form__bootstrap > .woocommerce-NoticeGroup {
|
1048 |
Â
margin-bottom: 20px;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1049 |
Â
}
|
1046 |
Â
|
1047 |
Â
div.payment_method_stripe_cc.custom-form__bootstrap > .woocommerce-NoticeGroup {
|
1048 |
Â
margin-bottom: 20px;
|
1049 |
+
}
|
1050 |
+
|
1051 |
+
.wc-stripe-installment-container {
|
1052 |
+
margin-top: 15px;
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
.wc-stripe-installment-container p {
|
1056 |
+
margin: 0;
|
1057 |
+
}
|
1058 |
+
|
1059 |
+
.wc-stripe-installment-container label.installment-label {
|
1060 |
+
font-weight: 500;
|
1061 |
+
margin: 0 0 5px 0;
|
1062 |
+
position: relative;
|
1063 |
+
display: flex;
|
1064 |
+
align-items: center;
|
1065 |
+
}
|
1066 |
+
|
1067 |
+
.wc-stripe-installment-container .wc-stripe-installment-options.loading-installments {
|
1068 |
+
opacity: 0.4;
|
1069 |
+
}
|
1070 |
+
|
1071 |
+
.wc-stripe-installment-loader__container {
|
1072 |
+
flex: 1 1 auto;
|
1073 |
+
}
|
1074 |
+
|
1075 |
+
.wc-stripe-installment-loader__container .wc-stripe-installment-loader {
|
1076 |
+
transform: scale(.55);
|
1077 |
+
width: 30px;
|
1078 |
+
height: 30px;
|
1079 |
+
position: absolute;
|
1080 |
+
top: -2px;
|
1081 |
+
}
|
1082 |
+
|
1083 |
+
.wc-stripe-installment-loader div {
|
1084 |
+
box-sizing: border-box;
|
1085 |
+
display: block;
|
1086 |
+
position: absolute;
|
1087 |
+
box-sizing: border-box;
|
1088 |
+
width: 30px;
|
1089 |
+
height: 30px;
|
1090 |
+
border: 3px solid #000;
|
1091 |
+
border-radius: 50%;
|
1092 |
+
animation: installment-loader 1.3s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
1093 |
+
border-color: #000 transparent transparent transparent;
|
1094 |
+
}
|
1095 |
+
|
1096 |
+
.wc-stripe-installment-loader div:nth-child(1) {
|
1097 |
+
animation-delay: -0.45s;
|
1098 |
+
}
|
1099 |
+
|
1100 |
+
.wc-stripe-installment-loader div:nth-child(2) {
|
1101 |
+
animation-delay: -0.3s;
|
1102 |
+
}
|
1103 |
+
|
1104 |
+
.wc-stripe-installment-loader div:nth-child(3) {
|
1105 |
+
animation-delay: -0.15s;
|
1106 |
+
}
|
1107 |
+
|
1108 |
+
@keyframes installment-loader {
|
1109 |
+
0% {
|
1110 |
+
transform: rotate(0deg);
|
1111 |
+
}
|
1112 |
+
100% {
|
1113 |
+
transform: rotate(-360deg);
|
1114 |
+
}
|
1115 |
Â
}
|
assets/css/stripe.css
CHANGED
@@ -1046,4 +1046,70 @@ div.payment_method_stripe_cc > .woocommerce-NoticeGroup {
|
|
1046 |
Â
|
1047 |
Â
div.payment_method_stripe_cc.custom-form__bootstrap > .woocommerce-NoticeGroup {
|
1048 |
Â
margin-bottom: 20px;
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1049 |
Â
}
|
1046 |
Â
|
1047 |
Â
div.payment_method_stripe_cc.custom-form__bootstrap > .woocommerce-NoticeGroup {
|
1048 |
Â
margin-bottom: 20px;
|
1049 |
+
}
|
1050 |
+
|
1051 |
+
.wc-stripe-installment-container {
|
1052 |
+
margin-top: 15px;
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
.wc-stripe-installment-container p {
|
1056 |
+
margin: 0;
|
1057 |
+
}
|
1058 |
+
|
1059 |
+
.wc-stripe-installment-container label.installment-label {
|
1060 |
+
font-weight: 500;
|
1061 |
+
margin: 0 0 5px 0;
|
1062 |
+
position: relative;
|
1063 |
+
display: flex;
|
1064 |
+
align-items: center;
|
1065 |
+
}
|
1066 |
+
|
1067 |
+
.wc-stripe-installment-container .wc-stripe-installment-options.loading-installments {
|
1068 |
+
opacity: 0.4;
|
1069 |
+
}
|
1070 |
+
|
1071 |
+
.wc-stripe-installment-loader__container {
|
1072 |
+
flex: 1 1 auto;
|
1073 |
+
}
|
1074 |
+
|
1075 |
+
.wc-stripe-installment-loader__container .wc-stripe-installment-loader {
|
1076 |
+
transform: scale(.55);
|
1077 |
+
width: 30px;
|
1078 |
+
height: 30px;
|
1079 |
+
position: absolute;
|
1080 |
+
top: -2px;
|
1081 |
+
}
|
1082 |
+
|
1083 |
+
.wc-stripe-installment-loader div {
|
1084 |
+
box-sizing: border-box;
|
1085 |
+
display: block;
|
1086 |
+
position: absolute;
|
1087 |
+
box-sizing: border-box;
|
1088 |
+
width: 30px;
|
1089 |
+
height: 30px;
|
1090 |
+
border: 3px solid #000;
|
1091 |
+
border-radius: 50%;
|
1092 |
+
animation: installment-loader 1.3s cubic-bezier(0.5, 0, 0.5, 1) infinite;
|
1093 |
+
border-color: #000 transparent transparent transparent;
|
1094 |
+
}
|
1095 |
+
|
1096 |
+
.wc-stripe-installment-loader div:nth-child(1) {
|
1097 |
+
animation-delay: -0.45s;
|
1098 |
+
}
|
1099 |
+
|
1100 |
+
.wc-stripe-installment-loader div:nth-child(2) {
|
1101 |
+
animation-delay: -0.3s;
|
1102 |
+
}
|
1103 |
+
|
1104 |
+
.wc-stripe-installment-loader div:nth-child(3) {
|
1105 |
+
animation-delay: -0.15s;
|
1106 |
+
}
|
1107 |
+
|
1108 |
+
@keyframes installment-loader {
|
1109 |
+
0% {
|
1110 |
+
transform: rotate(0deg);
|
1111 |
+
}
|
1112 |
+
100% {
|
1113 |
+
transform: rotate(360deg);
|
1114 |
+
}
|
1115 |
Â
}
|
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-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}
|
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}.wc-stripe-installment-container{margin-top:15px}.wc-stripe-installment-container p{margin:0}.wc-stripe-installment-container label.installment-label{font-weight:500;margin:0 0 5px 0;position:relative;display:flex;align-items:center}.wc-stripe-installment-container .wc-stripe-installment-options.loading-installments{opacity:.4}.wc-stripe-installment-loader__container{flex:1 1 auto}.wc-stripe-installment-loader__container .wc-stripe-installment-loader{transform:scale(.55);width:30px;height:30px;position:absolute;top:-2px}.wc-stripe-installment-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:installment-loader 1.3s cubic-bezier(.5,0,.5,1) infinite;border-color:#000 transparent transparent transparent}.wc-stripe-installment-loader div:nth-child(1){animation-delay:-.45s}.wc-stripe-installment-loader div:nth-child(2){animation-delay:-.3s}.wc-stripe-installment-loader div:nth-child(3){animation-delay:-.15s}@keyframes installment-loader{0%{transform:rotate(0)}100%{transform:rotate(-360deg)}}
|
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-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}
|
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}.wc-stripe-installment-container{margin-top:15px}.wc-stripe-installment-container p{margin:0}.wc-stripe-installment-container label.installment-label{font-weight:500;margin:0 0 5px 0;position:relative;display:flex;align-items:center}.wc-stripe-installment-container .wc-stripe-installment-options.loading-installments{opacity:.4}.wc-stripe-installment-loader__container{flex:1 1 auto}.wc-stripe-installment-loader__container .wc-stripe-installment-loader{transform:scale(.55);width:30px;height:30px;position:absolute;top:-2px}.wc-stripe-installment-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:installment-loader 1.3s cubic-bezier(.5,0,.5,1) infinite;border-color:#000 transparent transparent transparent}.wc-stripe-installment-loader div:nth-child(1){animation-delay:-.45s}.wc-stripe-installment-loader div:nth-child(2){animation-delay:-.3s}.wc-stripe-installment-loader div:nth-child(3){animation-delay:-.15s}@keyframes installment-loader{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}
|
assets/js/frontend/credit-card.js
CHANGED
@@ -6,16 +6,17 @@
|
|
6 |
Â
* @constructor
|
7 |
Â
*/
|
8 |
Â
function CC() {
|
Â
|
|
9 |
Â
wc_stripe.BaseGateway.call(this, wc_stripe_credit_card_params);
|
10 |
Â
wc_stripe.CheckoutGateway.call(this);
|
11 |
Â
this.message_container = this.params.notice_selector;
|
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 |
Â
}
|
20 |
Â
|
21 |
Â
var elementClasses = {
|
@@ -32,6 +33,9 @@
|
|
32 |
Â
cardCvc: '#stripe-cvv'
|
33 |
Â
}
|
34 |
Â
|
Â
|
|
Â
|
|
Â
|
|
35 |
Â
/**
|
36 |
Â
*
|
37 |
Â
*/
|
@@ -43,6 +47,7 @@
|
|
43 |
Â
if (this.can_create_setup_intent()) {
|
44 |
Â
this.create_setup_intent();
|
45 |
Â
}
|
Â
|
|
46 |
Â
}
|
47 |
Â
|
48 |
Â
/**
|
@@ -56,6 +61,8 @@
|
|
56 |
Â
// create individual card sections
|
57 |
Â
['cardNumber', 'cardExpiry', 'cardCvc'].forEach(function (type) {
|
58 |
Â
this[type] = this.elements.create(type, $.extend(true, {}, options, this.params.customFieldOptions[type]));
|
Â
|
|
Â
|
|
59 |
Â
}.bind(this));
|
60 |
Â
this.cardNumber.on('change', this.card_number_change.bind(this));
|
61 |
Â
this.cardNumber.on('change', this.on_input_change.bind(this));
|
@@ -84,6 +91,8 @@
|
|
84 |
Â
this.card.update({value: $('#billing_postcode').val()});
|
85 |
Â
}
|
86 |
Â
}.bind(this));
|
Â
|
|
Â
|
|
87 |
Â
}
|
88 |
Â
// setup a timeout so CC element is always rendered.
|
89 |
Â
setInterval(this.create_card_element.bind(this), 2000);
|
@@ -396,6 +405,120 @@
|
|
396 |
Â
return valid;
|
397 |
Â
}
|
398 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
399 |
Â
new CC();
|
400 |
Â
|
401 |
Â
}(jQuery, window.wc_stripe))
|
6 |
Â
* @constructor
|
7 |
Â
*/
|
8 |
Â
function CC() {
|
9 |
+
this.elementStatus = {};
|
10 |
Â
wc_stripe.BaseGateway.call(this, wc_stripe_credit_card_params);
|
11 |
Â
wc_stripe.CheckoutGateway.call(this);
|
12 |
Â
this.message_container = this.params.notice_selector;
|
13 |
Â
window.addEventListener('hashchange', this.hashchange.bind(this));
|
14 |
Â
wc_stripe.credit_card = this;
|
15 |
Â
this.confirmedSetupIntent = false;
|
Â
|
|
Â
|
|
16 |
Â
this.has3DSecureParams();
|
17 |
Â
this.handle_create_account_change();
|
18 |
+
$(document.body).on('change', '[name="stripe_cc_saved_method_key"]', this.maybe_initialize_installments.bind(this));
|
19 |
+
$(document.body).on('wc_stripe_saved_method_' + this.gateway_id, this.maybe_initialize_installments.bind(this));
|
20 |
Â
}
|
21 |
Â
|
22 |
Â
var elementClasses = {
|
33 |
Â
cardCvc: '#stripe-cvv'
|
34 |
Â
}
|
35 |
Â
|
36 |
+
CC.prototype.handleActionMethod = 'handleCardAction';
|
37 |
+
CC.prototype.setupActionMethod = 'confirmCardSetup';
|
38 |
+
|
39 |
Â
/**
|
40 |
Â
*
|
41 |
Â
*/
|
47 |
Â
if (this.can_create_setup_intent()) {
|
48 |
Â
this.create_setup_intent();
|
49 |
Â
}
|
50 |
+
this.maybe_initialize_installments();
|
51 |
Â
}
|
52 |
Â
|
53 |
Â
/**
|
61 |
Â
// create individual card sections
|
62 |
Â
['cardNumber', 'cardExpiry', 'cardCvc'].forEach(function (type) {
|
63 |
Â
this[type] = this.elements.create(type, $.extend(true, {}, options, this.params.customFieldOptions[type]));
|
64 |
+
this.elementStatus[type] = {};
|
65 |
+
this[type].on('change', this.on_card_element_change.bind(this));
|
66 |
Â
}.bind(this));
|
67 |
Â
this.cardNumber.on('change', this.card_number_change.bind(this));
|
68 |
Â
this.cardNumber.on('change', this.on_input_change.bind(this));
|
91 |
Â
this.card.update({value: $('#billing_postcode').val()});
|
92 |
Â
}
|
93 |
Â
}.bind(this));
|
94 |
+
this.elementStatus.card = {};
|
95 |
+
this.card.on('change', this.on_card_element_change.bind(this));
|
96 |
Â
}
|
97 |
Â
// setup a timeout so CC element is always rendered.
|
98 |
Â
setInterval(this.create_card_element.bind(this), 2000);
|
405 |
Â
return valid;
|
406 |
Â
}
|
407 |
Â
|
408 |
+
CC.prototype.is_installments_available = function () {
|
409 |
+
return !!this.get_gateway_data().installments.enabled;
|
410 |
+
}
|
411 |
+
|
412 |
+
CC.prototype.update_element_status = function (event) {
|
413 |
+
this.elementStatus[event.elementType] = event;
|
414 |
+
}
|
415 |
+
|
416 |
+
CC.prototype.is_card_form_complete = function () {
|
417 |
+
return Object.keys(this.elementStatus).filter(function (key) {
|
418 |
+
return !!this.elementStatus[key].complete;
|
419 |
+
}.bind(this)).length == Object.keys(this.elementStatus).length;
|
420 |
+
}
|
421 |
+
|
422 |
+
CC.prototype.on_card_element_change = function (event) {
|
423 |
+
this.update_element_status(event);
|
424 |
+
if (this.is_current_page(['checkout', 'order_pay']) && this.is_card_form_complete() && this.is_installments_available()) {
|
425 |
+
this.initialize_installments();
|
426 |
+
}
|
427 |
+
}
|
428 |
+
|
429 |
+
CC.prototype.initialize_installments = function (paymentMethodId) {
|
430 |
+
if (this.installmentTimeoutId) {
|
431 |
+
clearTimeout(this.installmentTimeoutId);
|
432 |
+
}
|
433 |
+
this.installmentTimeoutId = setTimeout(function (paymentMethodId) {
|
434 |
+
this.show_installment_loader();
|
435 |
+
if (paymentMethodId) {
|
436 |
+
this.fetch_installment_plans(paymentMethodId).finally(function () {
|
437 |
+
this.hide_installment_loader();
|
438 |
+
}.bind(this));
|
439 |
+
} else {
|
440 |
+
this.stripe.createPaymentMethod({
|
441 |
+
type: 'card',
|
442 |
+
card: this.is_custom_form() ? this.cardNumber : this.card,
|
443 |
+
billing_details: this.get_billing_details()
|
444 |
+
}).then(function (result) {
|
445 |
+
if (!result.error) {
|
446 |
+
this.fetch_installment_plans(result.paymentMethod.id).finally(function () {
|
447 |
+
this.hide_installment_loader();
|
448 |
+
}.bind(this));
|
449 |
+
} else {
|
450 |
+
this.hide_installment_loader();
|
451 |
+
}
|
452 |
+
}.bind(this));
|
453 |
+
}
|
454 |
+
}.bind(this, paymentMethodId), 250);
|
455 |
+
}
|
456 |
+
|
457 |
+
CC.prototype.fetch_installment_plans = function (paymentMethodId) {
|
458 |
+
return this.fetch_payment_intent(paymentMethodId).then(function (response) {
|
459 |
+
if (response.installments_html) {
|
460 |
+
$('.wc-stripe-installment-container').replaceWith(response.installments_html);
|
461 |
+
}
|
462 |
+
}.bind(this)).catch(function (response) {
|
463 |
+
return this.submit_card_error(response);
|
464 |
+
}.bind(this)).finally(function () {
|
465 |
+
|
466 |
+
}.bind(this));
|
467 |
+
}
|
468 |
+
|
469 |
+
CC.prototype.fetch_payment_intent = function (payment_method_id) {
|
470 |
+
return new Promise(function (resolve, reject) {
|
471 |
+
var url = this.params.routes.create_payment_intent;
|
472 |
+
var order_pay = false;
|
473 |
+
if (this.is_current_page('order_pay')) {
|
474 |
+
var url = this.params.routes.order_create_payment_intent;
|
475 |
+
order_pay = true;
|
476 |
+
}
|
477 |
+
$.ajax({
|
478 |
+
url: url,
|
479 |
+
method: 'POST',
|
480 |
+
dataType: 'json',
|
481 |
+
data: !order_pay ? $.extend({}, this.serialize_fields(), {
|
482 |
+
payment_method_id: payment_method_id,
|
483 |
+
payment_method: this.gateway_id,
|
484 |
+
page_id: this.get_page()
|
485 |
+
}) : {
|
486 |
+
payment_method_id: payment_method_id,
|
487 |
+
payment_method: this.gateway_id,
|
488 |
+
order_id: this.get_gateway_data().order.id,
|
489 |
+
order_key: this.get_gateway_data().order.key
|
490 |
+
},
|
491 |
+
beforeSend: this.ajax_before_send.bind(this)
|
492 |
+
}).done(function (response) {
|
493 |
+
if (response.code) {
|
494 |
+
reject(response);
|
495 |
+
} else {
|
496 |
+
resolve(response);
|
497 |
+
}
|
498 |
+
}.bind(this)).fail(function (xhr) {
|
499 |
+
reject()
|
500 |
+
}.bind(this))
|
501 |
+
}.bind(this))
|
502 |
+
}
|
503 |
+
|
504 |
+
CC.prototype.show_installment_loader = function () {
|
505 |
+
$('.wc-stripe-installment-options').addClass('loading-installments');
|
506 |
+
var $option = $('[name="_stripe_installment_plan"] option:selected').eq(0);
|
507 |
+
$option.text(this.params.installments.loading);
|
508 |
+
$('.wc-stripe-installment-loader').show();
|
509 |
+
}
|
510 |
+
|
511 |
+
CC.prototype.hide_installment_loader = function (has_error) {
|
512 |
+
$('.wc-stripe-installment-options').removeClass('loading-installments');
|
513 |
+
$('.wc-stripe-installment-loader').hide();
|
514 |
+
}
|
515 |
+
|
516 |
+
CC.prototype.maybe_initialize_installments = function () {
|
517 |
+
if (this.is_installments_available() && this.is_saved_method_selected()) {
|
518 |
+
this.initialize_installments(this.get_selected_payment_method());
|
519 |
+
}
|
520 |
+
}
|
521 |
+
|
522 |
Â
new CC();
|
523 |
Â
|
524 |
Â
}(jQuery, window.wc_stripe))
|
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.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);
|
1 |
+
!function(a,e){function t(){this.elementStatus={},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(),a(document.body).on("change",'[name="stripe_cc_saved_method_key"]',this.maybe_initialize_installments.bind(this)),a(document.body).on("wc_stripe_saved_method_"+this.gateway_id,this.maybe_initialize_installments.bind(this))}var i={focus:"focused",empty:"empty",invalid:"invalid"};(t.prototype=a.extend({},e.BaseGateway.prototype,e.CheckoutGateway.prototype)).mappings={cardNumber:"#stripe-card-number",cardExpiry:"#stripe-exp",cardCvc:"#stripe-cvv"},t.prototype.handleActionMethod="handleCardAction",t.prototype.setupActionMethod="confirmCardSetup",t.prototype.initialize=function(){a(document.body).on("click","#place_order",this.place_order.bind(this)),a(document.body).on("change","#createaccount",this.handle_create_account_change.bind(this)),this.setup_card(),this.can_create_setup_intent()&&this.create_setup_intent(),this.maybe_initialize_installments()},t.prototype.setup_card=function(){var e;this.is_custom_form()?(e=a.extend(!0,{classes:i},this.params.cardOptions),["cardNumber","cardExpiry","cardCvc"].forEach(function(t){this[t]=this.elements.create(t,a.extend(!0,{},e,this.params.customFieldOptions[t])),this.elementStatus[t]={},this[t].on("change",this.on_card_element_change.bind(this))}.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<a("#stripe-postal-code").length&&(a("#stripe-postal-code").val(this.fields.get("billing_postcode")),this.validate_postal_field()),a(document.body).on("change","#billing_postcode",function(t){var e=a("#billing_postcode").val();a("#stripe-postal-code").val(e).trigger("keyup")}.bind(this))):(this.card=this.elements.create("card",a.extend(!0,{},{value:{postalCode:this.fields.get("billing_postcode","")},hidePostalCode:this.fields.required("billing_postcode"),iconStyle:"default"},this.params.cardOptions)),a(document.body).on("change","#billing_postcode",function(t){this.card&&this.card.update({value:a("#billing_postcode").val()})}.bind(this)),this.elementStatus.card={},this.card.on("change",this.on_card_element_change.bind(this))),setInterval(this.create_card_element.bind(this),2e3)},t.prototype.validate_postal_field=function(){var t,e;a("#billing_postcode").length&&a("#stripe-postal-code").length?this.params.postal_regex[this.fields.get("billing_country")]?(e=this.params.postal_regex[this.fields.get("billing_country")],t=a("#stripe-postal-code").val(),e=new RegExp(e,"i"),""!==t?null!==e.exec(t)?a("#stripe-postal-code").addClass("StripeElement--complete").removeClass("invalid"):a("#stripe-postal-code").removeClass("StripeElement--complete").addClass("invalid"):a("#stripe-postal-code").removeClass("StripeElement--complete").removeClass("invalid")):0!=a("#stripe-postal-code").val()?a("#stripe-postal-code").addClass("StripeElement--complete"):a("#stripe-postal-code").removeClass("StripeElement--complete"):a("#stripe-postal-code").length&&(""!=a("#stripe-postal-code").val()?a("#stripe-postal-code").addClass("StripeElement--complete"):a("#stripe-postal-code").removeClass("StripeElement--complete"))},t.prototype.create_card_element=function(){this.is_custom_form()?a("#wc-stripe-cc-custom-form").length&&0==a("#wc-stripe-cc-custom-form").find("iframe").length&&(a(this.mappings.cardNumber).length&&(this.cardNumber.mount(this.mappings.cardNumber),a(this.mappings.cardNumber).prepend(this.params.html.card_brand)),a(this.mappings.cardExpiry).length&&this.cardExpiry.mount(this.mappings.cardExpiry),a(this.mappings.cardCvc).length&&this.cardCvc.mount(this.mappings.cardCvc),a("#stripe-postal-code").length&&(a("#stripe-postal-code, .postalCode").on("focus",function(t){a("#stripe-postal-code").addClass("focused")}.bind(this)),a("#stripe-postal-code, .postalCode").on("blur",function(t){a("#stripe-postal-code").removeClass("focused").trigger("keyup")}.bind(this)),a("#stripe-postal-code").on("keyup",function(t){0==a("#stripe-postal-code").val()?a("#stripe-postal-code").addClass("empty"):a("#stripe-postal-code").removeClass("empty")}.bind(this)),a("#stripe-postal-code").on("change",this.validate_postal_field.bind(this)),a("#stripe-postal-code").trigger("change"))):a("#wc-stripe-card-element").length&&0==a("#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")})),a(this.container).outerWidth(!0)<450?a(this.container).addClass("stripe-small-container"):a(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():a.extend({},this.is_custom_form()?{address:{postal_code:a("#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<a("#stripe-postal-code").length?a("#stripe-postal-code").val():this.fields.get(this.get_billing_prefix()+"_postcode",null)},t.prototype.card_number_change=function(t){"unknown"===t.brand?a("#wc-stripe-card").removeClass("active"):a("#wc-stripe-card").addClass("active"),a("#wc-stripe-card").attr("src",this.params.cards[t.brand])},t.prototype.on_input_change=function(t){if(t.complete){var e=a("#wc-stripe-cc-custom-form").find(".StripeElement, #stripe-postal-code"),i=[];e.each(function(t,e){i.push("#"+a(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 n in this.mappings)this.mappings[n]===i[s+1]&&this[n].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(){a("#createaccount").length&&(a("#createaccount").is(":checked")?a(".wc-stripe-save-source").show():a(".wc-stripe-save-source").hide())},t.prototype.submit_card_error=function(t){"bcf"===this.params.notice_location&&(a(".wc-stripe-card-notice").remove(),a(".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()&&a(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},t.prototype.is_installments_available=function(){return!!this.get_gateway_data().installments.enabled},t.prototype.update_element_status=function(t){this.elementStatus[t.elementType]=t},t.prototype.is_card_form_complete=function(){return Object.keys(this.elementStatus).filter(function(t){return!!this.elementStatus[t].complete}.bind(this)).length==Object.keys(this.elementStatus).length},t.prototype.on_card_element_change=function(t){this.update_element_status(t),this.is_current_page(["checkout","order_pay"])&&this.is_card_form_complete()&&this.is_installments_available()&&this.initialize_installments()},t.prototype.initialize_installments=function(t){this.installmentTimeoutId&&clearTimeout(this.installmentTimeoutId),this.installmentTimeoutId=setTimeout(function(t){this.show_installment_loader(),t?this.fetch_installment_plans(t)["finally"](function(){this.hide_installment_loader()}.bind(this)):this.stripe.createPaymentMethod({type:"card",card:this.is_custom_form()?this.cardNumber:this.card,billing_details:this.get_billing_details()}).then(function(t){t.error?this.hide_installment_loader():this.fetch_installment_plans(t.paymentMethod.id)["finally"](function(){this.hide_installment_loader()}.bind(this))}.bind(this))}.bind(this,t),250)},t.prototype.fetch_installment_plans=function(t){return this.fetch_payment_intent(t).then(function(t){t.installments_html&&a(".wc-stripe-installment-container").replaceWith(t.installments_html)}.bind(this))["catch"](function(t){return this.submit_card_error(t)}.bind(this))["finally"](function(){}.bind(this))},t.prototype.fetch_payment_intent=function(n){return new Promise(function(e,i){var t=this.params.routes.create_payment_intent,s=!1;this.is_current_page("order_pay")&&(t=this.params.routes.order_create_payment_intent,s=!0),a.ajax({url:t,method:"POST",dataType:"json",data:s?{payment_method_id:n,payment_method:this.gateway_id,order_id:this.get_gateway_data().order.id,order_key:this.get_gateway_data().order.key}:a.extend({},this.serialize_fields(),{payment_method_id:n,payment_method:this.gateway_id,page_id:this.get_page()}),beforeSend:this.ajax_before_send.bind(this)}).done(function(t){(t.code?i:e)(t)}.bind(this)).fail(function(t){i()}.bind(this))}.bind(this))},t.prototype.show_installment_loader=function(){a(".wc-stripe-installment-options").addClass("loading-installments"),a('[name="_stripe_installment_plan"] option:selected').eq(0).text(this.params.installments.loading),a(".wc-stripe-installment-loader").show()},t.prototype.hide_installment_loader=function(t){a(".wc-stripe-installment-options").removeClass("loading-installments"),a(".wc-stripe-installment-loader").hide()},t.prototype.maybe_initialize_installments=function(){this.is_installments_available()&&this.is_saved_method_selected()&&this.initialize_installments(this.get_selected_payment_method())},new t}(jQuery,window.wc_stripe);
|
assets/js/frontend/wc-stripe.js
CHANGED
@@ -1263,6 +1263,9 @@
|
|
1263 |
Â
wc_stripe.GooglePay = function () {
|
1264 |
Â
};
|
1265 |
Â
|
Â
|
|
Â
|
|
Â
|
|
1266 |
Â
var googlePayBaseRequest = {
|
1267 |
Â
apiVersion: 2,
|
1268 |
Â
apiVersionMinor: 0
|
@@ -1533,6 +1536,9 @@
|
|
1533 |
Â
wc_stripe.ApplePay = function () {
|
1534 |
Â
};
|
1535 |
Â
|
Â
|
|
Â
|
|
Â
|
|
1536 |
Â
wc_stripe.ApplePay.prototype.initialize = function () {
|
1537 |
Â
this.createPaymentRequest();
|
1538 |
Â
this.canMakePayment();
|
@@ -1581,6 +1587,9 @@
|
|
1581 |
Â
wc_stripe.PaymentRequest = function () {
|
1582 |
Â
};
|
1583 |
Â
|
Â
|
|
Â
|
|
Â
|
|
1584 |
Â
wc_stripe.PaymentRequest.prototype.initialize = function () {
|
1585 |
Â
this.createPaymentRequest();
|
1586 |
Â
this.createPaymentRequestButton();
|
1263 |
Â
wc_stripe.GooglePay = function () {
|
1264 |
Â
};
|
1265 |
Â
|
1266 |
+
wc_stripe.GooglePay.prototype.handleActionMethod = 'handleCardAction';
|
1267 |
+
wc_stripe.GooglePay.prototype.setupActionMethod = 'confirmCardSetup';
|
1268 |
+
|
1269 |
Â
var googlePayBaseRequest = {
|
1270 |
Â
apiVersion: 2,
|
1271 |
Â
apiVersionMinor: 0
|
1536 |
Â
wc_stripe.ApplePay = function () {
|
1537 |
Â
};
|
1538 |
Â
|
1539 |
+
wc_stripe.ApplePay.prototype.handleActionMethod = 'handleCardAction';
|
1540 |
+
wc_stripe.ApplePay.prototype.setupActionMethod = 'confirmCardSetup';
|
1541 |
+
|
1542 |
Â
wc_stripe.ApplePay.prototype.initialize = function () {
|
1543 |
Â
this.createPaymentRequest();
|
1544 |
Â
this.canMakePayment();
|
1587 |
Â
wc_stripe.PaymentRequest = function () {
|
1588 |
Â
};
|
1589 |
Â
|
1590 |
+
wc_stripe.PaymentRequest.prototype.handleActionMethod = 'handleCardAction';
|
1591 |
+
wc_stripe.PaymentRequest.prototype.setupActionMethod = 'confirmCardSetup';
|
1592 |
+
|
1593 |
Â
wc_stripe.PaymentRequest.prototype.initialize = function () {
|
1594 |
Â
this.createPaymentRequest();
|
1595 |
Â
this.createPaymentRequestButton();
|
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_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(/"/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(){},wc_stripe.GooglePay.prototype.handleActionMethod="handleCardAction",wc_stripe.GooglePay.prototype.setupActionMethod="confirmCardSetup";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.handleActionMethod="handleCardAction",wc_stripe.ApplePay.prototype.setupActionMethod="confirmCardSetup",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.handleActionMethod="handleCardAction",wc_stripe.PaymentRequest.prototype.setupActionMethod="confirmCardSetup",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(/"/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.
|
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-
|
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"
|
@@ -124,7 +124,7 @@ msgstr ""
|
|
124 |
Â
msgid "Please fill out all required fields."
|
125 |
Â
msgstr ""
|
126 |
Â
|
127 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
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,138 +134,138 @@ msgstr ""
|
|
134 |
Â
msgid "Total"
|
135 |
Â
msgstr ""
|
136 |
Â
|
137 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
138 |
Â
msgid "User must be logged in."
|
139 |
Â
msgstr ""
|
140 |
Â
|
141 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
142 |
Â
msgid "Error saving payment method. Reason: %s"
|
143 |
Â
msgstr ""
|
144 |
Â
|
145 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
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:
|
151 |
Â
msgid "Order amount captured in Stripe. Amount: %s"
|
152 |
Â
msgstr ""
|
153 |
Â
|
154 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
155 |
Â
msgid "Error capturing charge in Stripe. Reason: %s"
|
156 |
Â
msgstr ""
|
157 |
Â
|
158 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
159 |
Â
msgid "Error voiding charge. Reason: %s"
|
160 |
Â
msgstr ""
|
161 |
Â
|
162 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
163 |
Â
msgid "Charge voided in Stripe."
|
164 |
Â
msgstr ""
|
165 |
Â
|
166 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
167 |
Â
msgid "n/a"
|
168 |
Â
msgstr ""
|
169 |
Â
|
170 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
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:
|
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:
|
181 |
Â
msgid "Attempt to save payment method failed. Reason: %s"
|
182 |
Â
msgstr ""
|
183 |
Â
|
184 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
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:
|
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:
|
193 |
Â
msgid "Payment Method Token"
|
194 |
Â
msgstr ""
|
195 |
Â
|
196 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
197 |
Â
msgid "Stripe Customer ID"
|
198 |
Â
msgstr ""
|
199 |
Â
|
200 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
201 |
Â
msgid "Recurring payment for order failed. Reason: %s"
|
202 |
Â
msgstr ""
|
203 |
Â
|
204 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
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:
|
209 |
Â
msgid "Recurring payment captured in Stripe. Payment method: %s"
|
210 |
Â
msgstr ""
|
211 |
Â
|
212 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
213 |
Â
msgid "Recurring payment authorized in Stripe. Payment method: %s"
|
214 |
Â
msgstr ""
|
215 |
Â
|
216 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
217 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
218 |
Â
msgid "Customer must manually complete payment for payment method %s"
|
219 |
Â
msgstr ""
|
220 |
Â
|
221 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
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:
|
227 |
Â
msgid "Pre-order payment for order failed. Reason: %s"
|
228 |
Â
msgstr ""
|
229 |
Â
|
230 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
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:
|
235 |
Â
msgid "Pre-order payment captured in Stripe. Payment method: %s"
|
236 |
Â
msgstr ""
|
237 |
Â
|
238 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
239 |
Â
msgid "Pre-order payment authorized in Stripe. Payment method: %s"
|
240 |
Â
msgstr ""
|
241 |
Â
|
242 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
243 |
Â
msgid "Cannot process payment"
|
244 |
Â
msgstr ""
|
245 |
Â
|
246 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
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:
|
251 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
252 |
Â
msgid "Shipping"
|
253 |
Â
msgstr ""
|
254 |
Â
|
255 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
256 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
257 |
Â
msgid "Discount"
|
258 |
Â
msgstr ""
|
259 |
Â
|
260 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
261 |
Â
msgid "Tax"
|
262 |
Â
msgstr ""
|
263 |
Â
|
264 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
265 |
Â
msgid "Fees"
|
266 |
Â
msgstr ""
|
267 |
Â
|
268 |
-
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:
|
269 |
Â
msgid "Error saving payment method for subscription. Reason: %s"
|
270 |
Â
msgstr ""
|
271 |
Â
|
@@ -290,13 +290,13 @@ msgid "Transaction Id cannot be empty."
|
|
290 |
Â
msgstr ""
|
291 |
Â
|
292 |
Â
#: includes/abstract/abstract-wc-stripe-payment.php:335
|
293 |
-
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:
|
294 |
-
#: includes/traits/wc-stripe-payment-traits.php:
|
295 |
Â
msgid "Error processing payment. Reason: %s"
|
296 |
Â
msgstr ""
|
297 |
Â
|
298 |
Â
#: includes/abstract/abstract-wc-stripe-rest-controller.php:58
|
299 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
300 |
Â
#: includes/controllers/class-wc-stripe-controller-order-actions.php:333
|
301 |
Â
msgid "You do not have permissions to access this resource."
|
302 |
Â
msgstr ""
|
@@ -321,17 +321,17 @@ msgid "Local Gateways"
|
|
321 |
Â
msgstr ""
|
322 |
Â
|
323 |
Â
#: includes/admin/class-wc-stripe-admin-settings.php:95
|
324 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
325 |
Â
msgid "Stripe Email Options"
|
326 |
Â
msgstr ""
|
327 |
Â
|
328 |
Â
#: includes/admin/class-wc-stripe-admin-settings.php:99
|
329 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
330 |
Â
msgid "Email Receipt"
|
331 |
Â
msgstr ""
|
332 |
Â
|
333 |
Â
#: includes/admin/class-wc-stripe-admin-settings.php:102
|
334 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
335 |
Â
msgid "If enabled, an email receipt will be sent to the customer by Stripe when the order is processed."
|
336 |
Â
msgstr ""
|
337 |
Â
|
@@ -393,13 +393,13 @@ msgstr ""
|
|
393 |
Â
|
394 |
Â
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:25
|
395 |
Â
#: includes/admin/settings/class-wc-stripe-api-settings.php:44
|
396 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
397 |
Â
msgid "Live"
|
398 |
Â
msgstr ""
|
399 |
Â
|
400 |
Â
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:25
|
401 |
Â
#: includes/admin/settings/class-wc-stripe-api-settings.php:43
|
402 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
403 |
Â
msgid "Test"
|
404 |
Â
msgstr ""
|
405 |
Â
|
@@ -431,7 +431,7 @@ msgstr ""
|
|
431 |
Â
#: templates/cc-forms/bootstrap.php:16
|
432 |
Â
#: templates/cc-forms/minimalist.php:30
|
433 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:19
|
434 |
-
#: packages/blocks/build/commons.js:
|
435 |
Â
msgid "Exp"
|
436 |
Â
msgstr ""
|
437 |
Â
|
@@ -592,77 +592,89 @@ msgid "Maximum of 22 characters. This value represents the full statement descri
|
|
592 |
Â
msgstr ""
|
593 |
Â
|
594 |
Â
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:61
|
595 |
-
msgid "
|
596 |
Â
msgstr ""
|
597 |
Â
|
598 |
Â
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:66
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
599 |
Â
msgid "If enabled, the Stripe fee will be displayed on the Order Details page. The fee and net payout are displayed in your Stripe account currency."
|
600 |
Â
msgstr ""
|
601 |
Â
|
602 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
603 |
Â
msgid "Fee Display Currency"
|
604 |
Â
msgstr ""
|
605 |
Â
|
606 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
607 |
Â
msgid "If enabled, the Stripe fee and payout will be displayed in the currency of the order. Stripe by default provides the fee and payout in the Stripe account's currency."
|
608 |
Â
msgstr ""
|
609 |
Â
|
610 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
611 |
Â
msgid "Refund On Cancel"
|
612 |
Â
msgstr ""
|
613 |
Â
|
614 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
615 |
Â
msgid "If enabled, the plugin will process a payment cancellation or refund within Stripe when the order's status is set to cancelled."
|
616 |
Â
msgstr ""
|
617 |
Â
|
618 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
619 |
Â
msgid "Dispute Settings"
|
620 |
Â
msgstr ""
|
621 |
Â
|
622 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
623 |
Â
msgid "Dispute Created"
|
624 |
Â
msgstr ""
|
625 |
Â
|
626 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
627 |
Â
msgid "If enabled, the plugin will listen for the <strong>charge.dispute.created</strong> webhook event and set the order's status to on-hold by default."
|
628 |
Â
msgstr ""
|
629 |
Â
|
630 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
631 |
Â
msgid "Disputed Created Order Status"
|
632 |
Â
msgstr ""
|
633 |
Â
|
634 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
635 |
Â
msgid "The status assigned to an order when a dispute is created."
|
636 |
Â
msgstr ""
|
637 |
Â
|
638 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
639 |
Â
msgid "Dispute Closed"
|
640 |
Â
msgstr ""
|
641 |
Â
|
642 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
643 |
Â
msgid "If enabled, the plugin will listen for the <strong>charge.dispute.closed</strong> webhook event and set the order's status back to the status before the dispute was opened."
|
644 |
Â
msgstr ""
|
645 |
Â
|
646 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
647 |
Â
msgid "Review Settings"
|
648 |
Â
msgstr ""
|
649 |
Â
|
650 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
651 |
Â
msgid "Review Created"
|
652 |
Â
msgstr ""
|
653 |
Â
|
654 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
655 |
Â
msgid "If enabled, the plugin will listen for the <strong>review.created</strong> webhook event and set the order's status to on-hold by default."
|
656 |
Â
msgstr ""
|
657 |
Â
|
658 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
659 |
Â
msgid "Review Closed"
|
660 |
Â
msgstr ""
|
661 |
Â
|
662 |
-
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:
|
663 |
Â
msgid "If enabled, the plugin will listen for the <strong>review.closed</strong> webhook event and set the order's status back to the status before the review was opened."
|
664 |
Â
msgstr ""
|
665 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
666 |
Â
#: includes/admin/settings/class-wc-stripe-api-settings.php:16
|
667 |
Â
#: includes/admin/settings/class-wc-stripe-api-settings.php:31
|
668 |
Â
msgid "API Settings"
|
@@ -781,7 +793,11 @@ msgstr ""
|
|
781 |
Â
msgid "We were not able to connect your Stripe account. Reason: %s"
|
782 |
Â
msgstr ""
|
783 |
Â
|
784 |
-
#: includes/admin/settings/class-wc-stripe-api-settings.php:
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
785 |
Â
msgid "Your Stripe account has been connected to your WooCommerce store. You may now accept payments in Live and Test mode."
|
786 |
Â
msgstr ""
|
787 |
Â
|
@@ -967,7 +983,7 @@ msgstr ""
|
|
967 |
Â
msgid "%1$s is an invalid controller name."
|
968 |
Â
msgstr ""
|
969 |
Â
|
970 |
-
#: includes/class-wc-stripe-update.php:
|
971 |
Â
msgid "Thank you for updating Stripe for WooCommerce to version %1$s."
|
972 |
Â
msgstr ""
|
973 |
Â
|
@@ -992,42 +1008,42 @@ msgstr ""
|
|
992 |
Â
msgid "You cannot register your domain until you have completed the Connect process on the API Settings page. A registered domain is not required when test mode is enabled."
|
993 |
Â
msgstr ""
|
994 |
Â
|
995 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
996 |
Â
msgid "Domain registered successfully. You can confirm in your Stripe Dashboard at https://dashboard.stripe.com/account/apple_pay."
|
997 |
Â
msgstr ""
|
998 |
Â
|
999 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
1000 |
Â
msgid "You must configure your secret key before creating webhooks."
|
1001 |
Â
msgstr ""
|
1002 |
Â
|
1003 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
1004 |
Â
msgid "There is already a webhook configured for this site. If you want to delete the webhook, login to your Stripe Dashboard."
|
1005 |
Â
msgstr ""
|
1006 |
Â
|
1007 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
1008 |
Â
msgid "Webhook created in Stripe for %s environment. You can test your webhook by logging in to the Stripe dashboard"
|
1009 |
Â
msgstr ""
|
1010 |
Â
|
1011 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
1012 |
Â
msgid "You must enter your API keys or connect the plugin before performing a connection test."
|
1013 |
Â
msgstr ""
|
1014 |
Â
|
1015 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
1016 |
Â
msgid "Mode: %s. Invalid secret key. Please check your entry."
|
1017 |
Â
msgstr ""
|
1018 |
Â
|
1019 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
1020 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
1021 |
Â
msgid "Mode: %s. Invalid publishable key. Please check your entry."
|
1022 |
Â
msgstr ""
|
1023 |
Â
|
1024 |
-
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:
|
1025 |
Â
msgid "Connection test to Stripe was successful. Mode: %s."
|
1026 |
Â
msgstr ""
|
1027 |
Â
|
1028 |
Â
#: includes/controllers/class-wc-stripe-controller-googlepay.php:85
|
1029 |
Â
#: packages/blocks/assets/js/payment-methods/googlepay/hooks/use-payments-client.js:155
|
1030 |
-
#: packages/blocks/build/commons.js:
|
1031 |
Â
msgid "Your shipping address is not serviceable."
|
1032 |
Â
msgstr ""
|
1033 |
Â
|
@@ -1048,16 +1064,17 @@ msgstr ""
|
|
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:
|
1052 |
Â
msgid "Error creating payment intent. Reason: %s"
|
1053 |
Â
msgstr ""
|
1054 |
Â
|
1055 |
-
#: includes/controllers/class-wc-stripe-controller-payment-intent.php:
|
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:
|
Â
|
|
1061 |
Â
#: packages/cartflows/src/Routes/PaymentIntentRoute.php:47
|
1062 |
Â
msgid "You are not authorized to update this order."
|
1063 |
Â
msgstr ""
|
@@ -1087,34 +1104,34 @@ msgstr ""
|
|
1087 |
Â
msgid "Error processing webhook. Message: %s Exception: %s"
|
1088 |
Â
msgstr ""
|
1089 |
Â
|
1090 |
-
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:
|
1091 |
Â
msgid "ACH"
|
1092 |
Â
msgstr ""
|
1093 |
Â
|
1094 |
-
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:
|
1095 |
Â
msgid "Stripe ACH"
|
1096 |
Â
msgstr ""
|
1097 |
Â
|
1098 |
-
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:
|
1099 |
Â
msgid "ACH gateway that integrates with your Stripe account."
|
1100 |
Â
msgstr ""
|
1101 |
Â
|
1102 |
-
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:
|
1103 |
Â
msgid "Saved Banks"
|
1104 |
Â
msgstr ""
|
1105 |
Â
|
1106 |
-
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:
|
1107 |
Â
msgid "New Bank"
|
1108 |
Â
msgstr ""
|
1109 |
Â
|
1110 |
-
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:
|
1111 |
Â
msgid "You must set the API mode to live in order to enable the Plaid development environment."
|
1112 |
Â
msgstr ""
|
1113 |
Â
|
1114 |
Â
#: includes/gateways/class-wc-payment-gateway-stripe-afterpay.php:26
|
1115 |
Â
#: includes/gateways/class-wc-payment-gateway-stripe-afterpay.php:27
|
1116 |
-
#: packages/blocks/assets/js/payment-methods/local-payment/afterpay.js:
|
1117 |
-
#: packages/blocks/build/commons.js:
|
1118 |
Â
msgid "Afterpay"
|
1119 |
Â
msgstr ""
|
1120 |
Â
|
@@ -1421,19 +1438,25 @@ msgstr ""
|
|
1421 |
Â
msgid "Please click %shere%s to view your Boleto voucher."
|
1422 |
Â
msgstr ""
|
1423 |
Â
|
1424 |
-
#: includes/gateways/class-wc-payment-gateway-stripe-cc.php:
|
1425 |
Â
#: includes/gateways/settings/cc-settings.php:23
|
1426 |
Â
msgid "Credit/Debit Cards"
|
1427 |
Â
msgstr ""
|
1428 |
Â
|
1429 |
-
#: includes/gateways/class-wc-payment-gateway-stripe-cc.php:
|
1430 |
Â
msgid "Stripe Credit Cards"
|
1431 |
Â
msgstr ""
|
1432 |
Â
|
1433 |
-
#: includes/gateways/class-wc-payment-gateway-stripe-cc.php:
|
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"
|
@@ -1631,7 +1654,7 @@ msgstr ""
|
|
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:
|
1635 |
Â
msgid "Scan the QR code using your WeChat app. Once scanned click the Place Order button."
|
1636 |
Â
msgstr ""
|
1637 |
Â
|
@@ -2490,7 +2513,7 @@ msgstr ""
|
|
2490 |
Â
msgid "A review has been closed for charge %1$s. Reason: %2$s."
|
2491 |
Â
msgstr ""
|
2492 |
Â
|
2493 |
-
#: packages/blocks/src/Payments/CreditCardPayment.php:
|
2494 |
Â
#: templates/checkout/credit-card.php:22
|
2495 |
Â
msgid "Save Card"
|
2496 |
Â
msgstr ""
|
@@ -2499,6 +2522,36 @@ msgstr ""
|
|
2499 |
Â
msgid "%1$s - Order %2$s - One Time offer"
|
2500 |
Â
msgstr ""
|
2501 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
2502 |
Â
#: stripe-payments.php:17
|
2503 |
Â
msgid "Your PHP version is %s but Stripe requires version 5.6+."
|
2504 |
Â
msgstr ""
|
@@ -2514,8 +2567,8 @@ msgstr ""
|
|
2514 |
Â
#: templates/cc-forms/simple.php:12
|
2515 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:13
|
2516 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:19
|
2517 |
-
#: packages/blocks/build/commons.js:
|
2518 |
-
#: packages/blocks/build/commons.js:
|
2519 |
Â
msgid "Card Number"
|
2520 |
Â
msgstr ""
|
2521 |
Â
|
@@ -2525,8 +2578,8 @@ msgstr ""
|
|
2525 |
Â
#: templates/cc-forms/simple.php:26
|
2526 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:24
|
2527 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:40
|
2528 |
-
#: packages/blocks/build/commons.js:
|
2529 |
-
#: packages/blocks/build/commons.js:
|
2530 |
Â
msgid "CVV"
|
2531 |
Â
msgstr ""
|
2532 |
Â
|
@@ -2546,7 +2599,7 @@ msgstr ""
|
|
2546 |
Â
|
2547 |
Â
#: templates/cc-forms/simple.php:20
|
2548 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:31
|
2549 |
-
#: packages/blocks/build/commons.js:
|
2550 |
Â
msgid "Expiration"
|
2551 |
Â
msgstr ""
|
2552 |
Â
|
@@ -2556,19 +2609,19 @@ msgstr ""
|
|
2556 |
Â
|
2557 |
Â
#: templates/checkout/ach.php:11
|
2558 |
Â
#: packages/blocks/assets/js/payment-methods/ach/payment-method.js:59
|
2559 |
-
#: packages/blocks/build/commons.js:
|
2560 |
Â
msgid "username"
|
2561 |
Â
msgstr ""
|
2562 |
Â
|
2563 |
Â
#: templates/checkout/ach.php:12
|
2564 |
Â
#: packages/blocks/assets/js/payment-methods/ach/payment-method.js:62
|
2565 |
-
#: packages/blocks/build/commons.js:
|
2566 |
Â
msgid "password"
|
2567 |
Â
msgstr ""
|
2568 |
Â
|
2569 |
Â
#: templates/checkout/ach.php:13
|
2570 |
Â
#: packages/blocks/assets/js/payment-methods/ach/payment-method.js:65
|
2571 |
-
#: packages/blocks/build/commons.js:
|
2572 |
Â
msgid "pin"
|
2573 |
Â
msgstr ""
|
2574 |
Â
|
@@ -2577,8 +2630,8 @@ msgid "when required"
|
|
2577 |
Â
msgstr ""
|
2578 |
Â
|
2579 |
Â
#: templates/checkout/afterpay.php:11
|
2580 |
-
#: packages/blocks/assets/js/payment-methods/local-payment/afterpay.js:
|
2581 |
-
#: packages/blocks/build/commons.js:
|
2582 |
Â
msgid "After clicking \"%s\", you will be redirected to Afterpay to complete your purchase securely."
|
2583 |
Â
msgstr ""
|
2584 |
Â
|
@@ -2588,25 +2641,25 @@ msgstr ""
|
|
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:
|
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:
|
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:
|
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:
|
2610 |
Â
msgid "XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX"
|
2611 |
Â
msgstr ""
|
2612 |
Â
|
@@ -2620,43 +2673,55 @@ msgstr ""
|
|
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:
|
2624 |
Â
msgid "Test mode sms"
|
2625 |
Â
msgstr ""
|
2626 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
2627 |
Â
#: packages/blocks/assets/js/payment-methods/ach/payment-method.js:56
|
2628 |
-
#: packages/blocks/build/commons.js:
|
2629 |
Â
msgid "Test Credentials"
|
2630 |
Â
msgstr ""
|
2631 |
Â
|
2632 |
-
#: packages/blocks/assets/js/payment-methods/credit-card/components/custom-card-form.js:
|
2633 |
-
#: packages/blocks/build/commons.js:
|
2634 |
Â
msgid "%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings."
|
2635 |
Â
msgstr ""
|
2636 |
Â
|
2637 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:27
|
2638 |
-
#: packages/blocks/build/commons.js:
|
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:
|
2645 |
-
#: packages/blocks/build/commons.js:
|
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:
|
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:
|
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:
|
2661 |
Â
msgid "Test mode: Click the Place Order button to proceed."
|
2662 |
Â
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.19\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-04-07T17:04:43+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"
|
124 |
Â
msgid "Please fill out all required fields."
|
125 |
Â
msgstr ""
|
126 |
Â
|
127 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:439
|
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:510
|
138 |
Â
msgid "User must be logged in."
|
139 |
Â
msgstr ""
|
140 |
Â
|
141 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:535
|
142 |
Â
msgid "Error saving payment method. Reason: %s"
|
143 |
Â
msgstr ""
|
144 |
Â
|
145 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:554
|
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:593
|
151 |
Â
msgid "Order amount captured in Stripe. Amount: %s"
|
152 |
Â
msgstr ""
|
153 |
Â
|
154 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:597
|
155 |
Â
msgid "Error capturing charge in Stripe. Reason: %s"
|
156 |
Â
msgstr ""
|
157 |
Â
|
158 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:618
|
159 |
Â
msgid "Error voiding charge. Reason: %s"
|
160 |
Â
msgstr ""
|
161 |
Â
|
162 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:620
|
163 |
Â
msgid "Charge voided in Stripe."
|
164 |
Â
msgstr ""
|
165 |
Â
|
166 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:798
|
167 |
Â
msgid "n/a"
|
168 |
Â
msgstr ""
|
169 |
Â
|
170 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:826
|
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:830
|
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:1025
|
181 |
Â
msgid "Attempt to save payment method failed. Reason: %s"
|
182 |
Â
msgstr ""
|
183 |
Â
|
184 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1050
|
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:1052
|
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:1086
|
193 |
Â
msgid "Payment Method Token"
|
194 |
Â
msgstr ""
|
195 |
Â
|
196 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1090
|
197 |
Â
msgid "Stripe Customer ID"
|
198 |
Â
msgstr ""
|
199 |
Â
|
200 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1110
|
201 |
Â
msgid "Recurring payment for order failed. Reason: %s"
|
202 |
Â
msgstr ""
|
203 |
Â
|
204 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1124
|
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:1128
|
209 |
Â
msgid "Recurring payment captured in Stripe. Payment method: %s"
|
210 |
Â
msgstr ""
|
211 |
Â
|
212 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1132
|
213 |
Â
msgid "Recurring payment authorized in Stripe. Payment method: %s"
|
214 |
Â
msgstr ""
|
215 |
Â
|
216 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1135
|
217 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1372
|
218 |
Â
msgid "Customer must manually complete payment for payment method %s"
|
219 |
Â
msgstr ""
|
220 |
Â
|
221 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1169
|
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:1354
|
227 |
Â
msgid "Pre-order payment for order failed. Reason: %s"
|
228 |
Â
msgstr ""
|
229 |
Â
|
230 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1361
|
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:1365
|
235 |
Â
msgid "Pre-order payment captured in Stripe. Payment method: %s"
|
236 |
Â
msgstr ""
|
237 |
Â
|
238 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1369
|
239 |
Â
msgid "Pre-order payment authorized in Stripe. Payment method: %s"
|
240 |
Â
msgstr ""
|
241 |
Â
|
242 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1441
|
243 |
Â
msgid "Cannot process payment"
|
244 |
Â
msgstr ""
|
245 |
Â
|
246 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1449
|
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:1567
|
251 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1598
|
252 |
Â
msgid "Shipping"
|
253 |
Â
msgstr ""
|
254 |
Â
|
255 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1575
|
256 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1601
|
257 |
Â
msgid "Discount"
|
258 |
Â
msgstr ""
|
259 |
Â
|
260 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1578
|
261 |
Â
msgid "Tax"
|
262 |
Â
msgstr ""
|
263 |
Â
|
264 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1608
|
265 |
Â
msgid "Fees"
|
266 |
Â
msgstr ""
|
267 |
Â
|
268 |
+
#: includes/abstract/abstract-wc-payment-gateway-stripe.php:1802
|
269 |
Â
msgid "Error saving payment method for subscription. Reason: %s"
|
270 |
Â
msgstr ""
|
271 |
Â
|
290 |
Â
msgstr ""
|
291 |
Â
|
292 |
Â
#: includes/abstract/abstract-wc-stripe-payment.php:335
|
293 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:122
|
294 |
+
#: includes/traits/wc-stripe-payment-traits.php:104
|
295 |
Â
msgid "Error processing payment. Reason: %s"
|
296 |
Â
msgstr ""
|
297 |
Â
|
298 |
Â
#: includes/abstract/abstract-wc-stripe-rest-controller.php:58
|
299 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:289
|
300 |
Â
#: includes/controllers/class-wc-stripe-controller-order-actions.php:333
|
301 |
Â
msgid "You do not have permissions to access this resource."
|
302 |
Â
msgstr ""
|
321 |
Â
msgstr ""
|
322 |
Â
|
323 |
Â
#: includes/admin/class-wc-stripe-admin-settings.php:95
|
324 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:147
|
325 |
Â
msgid "Stripe Email Options"
|
326 |
Â
msgstr ""
|
327 |
Â
|
328 |
Â
#: includes/admin/class-wc-stripe-admin-settings.php:99
|
329 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:151
|
330 |
Â
msgid "Email Receipt"
|
331 |
Â
msgstr ""
|
332 |
Â
|
333 |
Â
#: includes/admin/class-wc-stripe-admin-settings.php:102
|
334 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:153
|
335 |
Â
msgid "If enabled, an email receipt will be sent to the customer by Stripe when the order is processed."
|
336 |
Â
msgstr ""
|
337 |
Â
|
393 |
Â
|
394 |
Â
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:25
|
395 |
Â
#: includes/admin/settings/class-wc-stripe-api-settings.php:44
|
396 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:181
|
397 |
Â
msgid "Live"
|
398 |
Â
msgstr ""
|
399 |
Â
|
400 |
Â
#: includes/admin/meta-boxes/views/html-charge-data-subview.php:25
|
401 |
Â
#: includes/admin/settings/class-wc-stripe-api-settings.php:43
|
402 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:181
|
403 |
Â
msgid "Test"
|
404 |
Â
msgstr ""
|
405 |
Â
|
431 |
Â
#: templates/cc-forms/bootstrap.php:16
|
432 |
Â
#: templates/cc-forms/minimalist.php:30
|
433 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:19
|
434 |
+
#: packages/blocks/build/commons.js:1744
|
435 |
Â
msgid "Exp"
|
436 |
Â
msgstr ""
|
437 |
Â
|
592 |
Â
msgstr ""
|
593 |
Â
|
594 |
Â
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:61
|
595 |
+
msgid "Installments"
|
596 |
Â
msgstr ""
|
597 |
Â
|
598 |
Â
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:66
|
599 |
+
msgid "If enabled, installments will be available for the credit card gateway. %1$s"
|
600 |
+
msgstr ""
|
601 |
+
|
602 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:69
|
603 |
+
msgid "Display Stripe Fee"
|
604 |
+
msgstr ""
|
605 |
+
|
606 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:74
|
607 |
Â
msgid "If enabled, the Stripe fee will be displayed on the Order Details page. The fee and net payout are displayed in your Stripe account currency."
|
608 |
Â
msgstr ""
|
609 |
Â
|
610 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:78
|
611 |
Â
msgid "Fee Display Currency"
|
612 |
Â
msgstr ""
|
613 |
Â
|
614 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:81
|
615 |
Â
msgid "If enabled, the Stripe fee and payout will be displayed in the currency of the order. Stripe by default provides the fee and payout in the Stripe account's currency."
|
616 |
Â
msgstr ""
|
617 |
Â
|
618 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:90
|
619 |
Â
msgid "Refund On Cancel"
|
620 |
Â
msgstr ""
|
621 |
Â
|
622 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:95
|
623 |
Â
msgid "If enabled, the plugin will process a payment cancellation or refund within Stripe when the order's status is set to cancelled."
|
624 |
Â
msgstr ""
|
625 |
Â
|
626 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:98
|
627 |
Â
msgid "Dispute Settings"
|
628 |
Â
msgstr ""
|
629 |
Â
|
630 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:102
|
631 |
Â
msgid "Dispute Created"
|
632 |
Â
msgstr ""
|
633 |
Â
|
634 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:105
|
635 |
Â
msgid "If enabled, the plugin will listen for the <strong>charge.dispute.created</strong> webhook event and set the order's status to on-hold by default."
|
636 |
Â
msgstr ""
|
637 |
Â
|
638 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:109
|
639 |
Â
msgid "Disputed Created Order Status"
|
640 |
Â
msgstr ""
|
641 |
Â
|
642 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:113
|
643 |
Â
msgid "The status assigned to an order when a dispute is created."
|
644 |
Â
msgstr ""
|
645 |
Â
|
646 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:121
|
647 |
Â
msgid "Dispute Closed"
|
648 |
Â
msgstr ""
|
649 |
Â
|
650 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:124
|
651 |
Â
msgid "If enabled, the plugin will listen for the <strong>charge.dispute.closed</strong> webhook event and set the order's status back to the status before the dispute was opened."
|
652 |
Â
msgstr ""
|
653 |
Â
|
654 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:128
|
655 |
Â
msgid "Review Settings"
|
656 |
Â
msgstr ""
|
657 |
Â
|
658 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:132
|
659 |
Â
msgid "Review Created"
|
660 |
Â
msgstr ""
|
661 |
Â
|
662 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:135
|
663 |
Â
msgid "If enabled, the plugin will listen for the <strong>review.created</strong> webhook event and set the order's status to on-hold by default."
|
664 |
Â
msgstr ""
|
665 |
Â
|
666 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:139
|
667 |
Â
msgid "Review Closed"
|
668 |
Â
msgstr ""
|
669 |
Â
|
670 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:142
|
671 |
Â
msgid "If enabled, the plugin will listen for the <strong>review.closed</strong> webhook event and set the order's status back to the status before the review was opened."
|
672 |
Â
msgstr ""
|
673 |
Â
|
674 |
+
#: includes/admin/settings/class-wc-stripe-advanced-settings.php:192
|
675 |
+
msgid "Supported Stripe account countries: %1$s"
|
676 |
+
msgstr ""
|
677 |
+
|
678 |
Â
#: includes/admin/settings/class-wc-stripe-api-settings.php:16
|
679 |
Â
#: includes/admin/settings/class-wc-stripe-api-settings.php:31
|
680 |
Â
msgid "API Settings"
|
793 |
Â
msgid "We were not able to connect your Stripe account. Reason: %s"
|
794 |
Â
msgstr ""
|
795 |
Â
|
796 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:239
|
797 |
+
msgid "Not authorized to perform this action. Required permission: manage_woocommerce"
|
798 |
+
msgstr ""
|
799 |
+
|
800 |
+
#: includes/admin/settings/class-wc-stripe-api-settings.php:274
|
801 |
Â
msgid "Your Stripe account has been connected to your WooCommerce store. You may now accept payments in Live and Test mode."
|
802 |
Â
msgstr ""
|
803 |
Â
|
983 |
Â
msgid "%1$s is an invalid controller name."
|
984 |
Â
msgstr ""
|
985 |
Â
|
986 |
+
#: includes/class-wc-stripe-update.php:53
|
987 |
Â
msgid "Thank you for updating Stripe for WooCommerce to version %1$s."
|
988 |
Â
msgstr ""
|
989 |
Â
|
1008 |
Â
msgid "You cannot register your domain until you have completed the Connect process on the API Settings page. A registered domain is not required when test mode is enabled."
|
1009 |
Â
msgstr ""
|
1010 |
Â
|
1011 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:116
|
1012 |
Â
msgid "Domain registered successfully. You can confirm in your Stripe Dashboard at https://dashboard.stripe.com/account/apple_pay."
|
1013 |
Â
msgstr ""
|
1014 |
Â
|
1015 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:139
|
1016 |
Â
msgid "You must configure your secret key before creating webhooks."
|
1017 |
Â
msgstr ""
|
1018 |
Â
|
1019 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:161
|
1020 |
Â
msgid "There is already a webhook configured for this site. If you want to delete the webhook, login to your Stripe Dashboard."
|
1021 |
Â
msgstr ""
|
1022 |
Â
|
1023 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:178
|
1024 |
Â
msgid "Webhook created in Stripe for %s environment. You can test your webhook by logging in to the Stripe dashboard"
|
1025 |
Â
msgstr ""
|
1026 |
Â
|
1027 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:226
|
1028 |
Â
msgid "You must enter your API keys or connect the plugin before performing a connection test."
|
1029 |
Â
msgstr ""
|
1030 |
Â
|
1031 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:239
|
1032 |
Â
msgid "Mode: %s. Invalid secret key. Please check your entry."
|
1033 |
Â
msgstr ""
|
1034 |
Â
|
1035 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:263
|
1036 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:266
|
1037 |
Â
msgid "Mode: %s. Invalid publishable key. Please check your entry."
|
1038 |
Â
msgstr ""
|
1039 |
Â
|
1040 |
+
#: includes/controllers/class-wc-stripe-controller-gateway-settings.php:280
|
1041 |
Â
msgid "Connection test to Stripe was successful. Mode: %s."
|
1042 |
Â
msgstr ""
|
1043 |
Â
|
1044 |
Â
#: includes/controllers/class-wc-stripe-controller-googlepay.php:85
|
1045 |
Â
#: packages/blocks/assets/js/payment-methods/googlepay/hooks/use-payments-client.js:155
|
1046 |
+
#: packages/blocks/build/commons.js:2460
|
1047 |
Â
msgid "Your shipping address is not serviceable."
|
1048 |
Â
msgstr ""
|
1049 |
Â
|
1064 |
Â
msgid "Order customer Id and payment method customer Id do not match."
|
1065 |
Â
msgstr ""
|
1066 |
Â
|
1067 |
+
#: includes/controllers/class-wc-stripe-controller-payment-intent.php:93
|
1068 |
Â
msgid "Error creating payment intent. Reason: %s"
|
1069 |
Â
msgstr ""
|
1070 |
Â
|
1071 |
+
#: includes/controllers/class-wc-stripe-controller-payment-intent.php:109
|
1072 |
Â
#: packages/cartflows/src/Routes/PaymentIntentRoute.php:38
|
1073 |
Â
msgid "Invalid order id provided"
|
1074 |
Â
msgstr ""
|
1075 |
Â
|
1076 |
+
#: includes/controllers/class-wc-stripe-controller-payment-intent.php:115
|
1077 |
+
#: includes/controllers/class-wc-stripe-controller-payment-intent.php:152
|
1078 |
Â
#: packages/cartflows/src/Routes/PaymentIntentRoute.php:47
|
1079 |
Â
msgid "You are not authorized to update this order."
|
1080 |
Â
msgstr ""
|
1104 |
Â
msgid "Error processing webhook. Message: %s Exception: %s"
|
1105 |
Â
msgstr ""
|
1106 |
Â
|
1107 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:27
|
1108 |
Â
msgid "ACH"
|
1109 |
Â
msgstr ""
|
1110 |
Â
|
1111 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:30
|
1112 |
Â
msgid "Stripe ACH"
|
1113 |
Â
msgstr ""
|
1114 |
Â
|
1115 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:31
|
1116 |
Â
msgid "ACH gateway that integrates with your Stripe account."
|
1117 |
Â
msgstr ""
|
1118 |
Â
|
1119 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:248
|
1120 |
Â
msgid "Saved Banks"
|
1121 |
Â
msgstr ""
|
1122 |
Â
|
1123 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:252
|
1124 |
Â
msgid "New Bank"
|
1125 |
Â
msgstr ""
|
1126 |
Â
|
1127 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-ach.php:296
|
1128 |
Â
msgid "You must set the API mode to live in order to enable the Plaid development environment."
|
1129 |
Â
msgstr ""
|
1130 |
Â
|
1131 |
Â
#: includes/gateways/class-wc-payment-gateway-stripe-afterpay.php:26
|
1132 |
Â
#: includes/gateways/class-wc-payment-gateway-stripe-afterpay.php:27
|
1133 |
+
#: packages/blocks/assets/js/payment-methods/local-payment/afterpay.js:114
|
1134 |
+
#: packages/blocks/build/commons.js:3357
|
1135 |
Â
msgid "Afterpay"
|
1136 |
Â
msgstr ""
|
1137 |
Â
|
1438 |
Â
msgid "Please click %shere%s to view your Boleto voucher."
|
1439 |
Â
msgstr ""
|
1440 |
Â
|
1441 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-cc.php:22
|
1442 |
Â
#: includes/gateways/settings/cc-settings.php:23
|
1443 |
Â
msgid "Credit/Debit Cards"
|
1444 |
Â
msgstr ""
|
1445 |
Â
|
1446 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-cc.php:25
|
1447 |
Â
msgid "Stripe Credit Cards"
|
1448 |
Â
msgstr ""
|
1449 |
Â
|
1450 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-cc.php:26
|
1451 |
Â
msgid "Credit card gateway that integrates with your Stripe account."
|
1452 |
Â
msgstr ""
|
1453 |
Â
|
1454 |
+
#: includes/gateways/class-wc-payment-gateway-stripe-cc.php:85
|
1455 |
+
#: packages/blocks/assets/js/components/checkout/installments/index.js:69
|
1456 |
+
#: packages/blocks/build/commons.js:1284
|
1457 |
+
msgid "Loading installments..."
|
1458 |
+
msgstr ""
|
1459 |
+
|
1460 |
Â
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:26
|
1461 |
Â
#: includes/gateways/class-wc-payment-gateway-stripe-eps.php:29
|
1462 |
Â
msgid "EPS"
|
1654 |
Â
|
1655 |
Â
#: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:92
|
1656 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:130
|
1657 |
+
#: packages/blocks/build/commons.js:4479
|
1658 |
Â
msgid "Scan the QR code using your WeChat app. Once scanned click the Place Order button."
|
1659 |
Â
msgstr ""
|
1660 |
Â
|
2513 |
Â
msgid "A review has been closed for charge %1$s. Reason: %2$s."
|
2514 |
Â
msgstr ""
|
2515 |
Â
|
2516 |
+
#: packages/blocks/src/Payments/CreditCardPayment.php:34
|
2517 |
Â
#: templates/checkout/credit-card.php:22
|
2518 |
Â
msgid "Save Card"
|
2519 |
Â
msgstr ""
|
2522 |
Â
msgid "%1$s - Order %2$s - One Time offer"
|
2523 |
Â
msgstr ""
|
2524 |
Â
|
2525 |
+
#: src/Installments/InstallmentController.php:126
|
2526 |
+
msgid "Installments:"
|
2527 |
+
msgstr ""
|
2528 |
+
|
2529 |
+
#: src/Installments/InstallmentFormatter.php:15
|
2530 |
+
msgid "No installment plans available."
|
2531 |
+
msgstr ""
|
2532 |
+
|
2533 |
+
#: src/Installments/InstallmentFormatter.php:31
|
2534 |
+
msgid "Do not pay with installment."
|
2535 |
+
msgstr ""
|
2536 |
+
|
2537 |
+
#: src/Installments/InstallmentFormatter.php:45
|
2538 |
+
msgid "day"
|
2539 |
+
msgid_plural "days"
|
2540 |
+
msgstr[0] ""
|
2541 |
+
msgstr[1] ""
|
2542 |
+
|
2543 |
+
#: src/Installments/InstallmentFormatter.php:46
|
2544 |
+
msgid "week"
|
2545 |
+
msgid_plural "weeks"
|
2546 |
+
msgstr[0] ""
|
2547 |
+
msgstr[1] ""
|
2548 |
+
|
2549 |
+
#: src/Installments/InstallmentFormatter.php:47
|
2550 |
+
msgid "month"
|
2551 |
+
msgid_plural "months"
|
2552 |
+
msgstr[0] ""
|
2553 |
+
msgstr[1] ""
|
2554 |
+
|
2555 |
Â
#: stripe-payments.php:17
|
2556 |
Â
msgid "Your PHP version is %s but Stripe requires version 5.6+."
|
2557 |
Â
msgstr ""
|
2567 |
Â
#: templates/cc-forms/simple.php:12
|
2568 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:13
|
2569 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:19
|
2570 |
+
#: packages/blocks/build/commons.js:1738
|
2571 |
+
#: packages/blocks/build/commons.js:1887
|
2572 |
Â
msgid "Card Number"
|
2573 |
Â
msgstr ""
|
2574 |
Â
|
2578 |
Â
#: templates/cc-forms/simple.php:26
|
2579 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:24
|
2580 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:40
|
2581 |
+
#: packages/blocks/build/commons.js:1749
|
2582 |
+
#: packages/blocks/build/commons.js:1908
|
2583 |
Â
msgid "CVV"
|
2584 |
Â
msgstr ""
|
2585 |
Â
|
2599 |
Â
|
2600 |
Â
#: templates/cc-forms/simple.php:20
|
2601 |
Â
#: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:31
|
2602 |
+
#: packages/blocks/build/commons.js:1899
|
2603 |
Â
msgid "Expiration"
|
2604 |
Â
msgstr ""
|
2605 |
Â
|
2609 |
Â
|
2610 |
Â
#: templates/checkout/ach.php:11
|
2611 |
Â
#: packages/blocks/assets/js/payment-methods/ach/payment-method.js:59
|
2612 |
+
#: packages/blocks/build/commons.js:1559
|
2613 |
Â
msgid "username"
|
2614 |
Â
msgstr ""
|
2615 |
Â
|
2616 |
Â
#: templates/checkout/ach.php:12
|
2617 |
Â
#: packages/blocks/assets/js/payment-methods/ach/payment-method.js:62
|
2618 |
+
#: packages/blocks/build/commons.js:1562
|
2619 |
Â
msgid "password"
|
2620 |
Â
msgstr ""
|
2621 |
Â
|
2622 |
Â
#: templates/checkout/ach.php:13
|
2623 |
Â
#: packages/blocks/assets/js/payment-methods/ach/payment-method.js:65
|
2624 |
+
#: packages/blocks/build/commons.js:1565
|
2625 |
Â
msgid "pin"
|
2626 |
Â
msgstr ""
|
2627 |
Â
|
2630 |
Â
msgstr ""
|
2631 |
Â
|
2632 |
Â
#: templates/checkout/afterpay.php:11
|
2633 |
+
#: packages/blocks/assets/js/payment-methods/local-payment/afterpay.js:74
|
2634 |
+
#: packages/blocks/build/commons.js:3317
|
2635 |
Â
msgid "After clicking \"%s\", you will be redirected to Afterpay to complete your purchase securely."
|
2636 |
Â
msgstr ""
|
2637 |
Â
|
2641 |
Â
|
2642 |
Â
#: templates/checkout/boleto.php:17
|
2643 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:48
|
2644 |
+
#: packages/blocks/build/commons.js:3553
|
2645 |
Â
msgid "Test mode values"
|
2646 |
Â
msgstr ""
|
2647 |
Â
|
2648 |
Â
#: templates/checkout/boleto.php:27
|
2649 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:58
|
2650 |
+
#: packages/blocks/build/commons.js:3563
|
2651 |
Â
msgid "Accepted formats"
|
2652 |
Â
msgstr ""
|
2653 |
Â
|
2654 |
Â
#: templates/checkout/boleto.php:29
|
2655 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:61
|
2656 |
+
#: packages/blocks/build/commons.js:3566
|
2657 |
Â
msgid "XXX.XXX.XXX-XX or XXXXXXXXXXX"
|
2658 |
Â
msgstr ""
|
2659 |
Â
|
2660 |
Â
#: templates/checkout/boleto.php:32
|
2661 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:65
|
2662 |
+
#: packages/blocks/build/commons.js:3570
|
2663 |
Â
msgid "XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX"
|
2664 |
Â
msgstr ""
|
2665 |
Â
|
2673 |
Â
|
2674 |
Â
#: templates/checkout/klarna-v2.php:12
|
2675 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/klarna.js:15
|
2676 |
+
#: packages/blocks/build/commons.js:3978
|
2677 |
Â
msgid "Test mode sms"
|
2678 |
Â
msgstr ""
|
2679 |
Â
|
2680 |
+
#: templates/installment-plans.php:7
|
2681 |
+
#: packages/blocks/assets/js/components/checkout/installments/index.js:72
|
2682 |
+
#: packages/blocks/build/commons.js:1287
|
2683 |
+
msgid "Fill out card form for eligibility."
|
2684 |
+
msgstr ""
|
2685 |
+
|
2686 |
+
#: templates/installment-plans.php:12
|
2687 |
+
#: packages/blocks/assets/js/components/checkout/installments/index.js:54
|
2688 |
+
#: packages/blocks/build/commons.js:1269
|
2689 |
+
msgid "Pay in installments:"
|
2690 |
+
msgstr ""
|
2691 |
+
|
2692 |
Â
#: packages/blocks/assets/js/payment-methods/ach/payment-method.js:56
|
2693 |
+
#: packages/blocks/build/commons.js:1556
|
2694 |
Â
msgid "Test Credentials"
|
2695 |
Â
msgstr ""
|
2696 |
Â
|
2697 |
+
#: packages/blocks/assets/js/payment-methods/credit-card/components/custom-card-form.js:83
|
2698 |
+
#: packages/blocks/build/commons.js:1843
|
2699 |
Â
msgid "%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings."
|
2700 |
Â
msgstr ""
|
2701 |
Â
|
2702 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:27
|
2703 |
+
#: packages/blocks/build/commons.js:3532
|
2704 |
Â
msgid "Please enter a valid CPF/CNPJ value"
|
2705 |
Â
msgstr ""
|
2706 |
Â
|
2707 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/hooks/use-create-source.js:73
|
2708 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/hooks/use-validate-checkout.js:10
|
2709 |
+
#: packages/blocks/build/commons.js:3857
|
2710 |
+
#: packages/blocks/build/commons.js:3894
|
2711 |
Â
msgid "Please enter your payment info before proceeding."
|
2712 |
Â
msgstr ""
|
2713 |
Â
|
2714 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:51
|
2715 |
+
#: packages/blocks/build/commons.js:4400
|
2716 |
Â
msgid "Please scan your QR code to continue with payment."
|
2717 |
Â
msgstr ""
|
2718 |
Â
|
2719 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:97
|
2720 |
+
#: packages/blocks/build/commons.js:4446
|
2721 |
Â
msgid "Please fill out all the required fields in order to complete the WeChat payment."
|
2722 |
Â
msgstr ""
|
2723 |
Â
|
2724 |
Â
#: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:127
|
2725 |
+
#: packages/blocks/build/commons.js:4476
|
2726 |
Â
msgid "Test mode: Click the Place Order button to proceed."
|
2727 |
Â
msgstr ""
|
includes/abstract/abstract-wc-payment-gateway-stripe.php
CHANGED
@@ -88,7 +88,7 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
|
|
88 |
Â
*
|
89 |
Â
* @var WC_Stripe_Gateway
|
90 |
Â
*/
|
91 |
-
|
92 |
Â
|
93 |
Â
/**
|
94 |
Â
*
|
@@ -422,14 +422,16 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
|
|
422 |
Â
'required_field' => __( 'Please fill out all required fields.', 'woo-stripe-payment' )
|
423 |
Â
),
|
424 |
Â
'routes' => array(
|
425 |
-
'
|
426 |
-
'
|
427 |
-
'
|
428 |
-
'
|
429 |
-
'
|
430 |
-
'
|
431 |
-
'
|
432 |
-
'
|
Â
|
|
Â
|
|
433 |
Â
),
|
434 |
Â
'rest_nonce' => wp_create_nonce( 'wp_rest' ),
|
435 |
Â
'banner_enabled' => $this->banner_checkout_enabled(),
|
@@ -1463,7 +1465,8 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
|
|
1463 |
Â
'shipping_options' => $this->has_digital_wallet ? $this->get_formatted_shipping_methods() : array(),
|
1464 |
Â
'total' => wc_format_decimal( WC()->cart->total, 2 ),
|
1465 |
Â
'total_cents' => wc_stripe_add_number_precision( WC()->cart->total, get_woocommerce_currency() ),
|
1466 |
-
'currency' => get_woocommerce_currency()
|
Â
|
|
1467 |
Â
) );
|
1468 |
Â
if ( in_array( $page, array( 'checkout', 'cart' ) ) ) {
|
1469 |
Â
if ( ! empty( $wp->query_vars['order-pay'] ) ) {
|
@@ -1475,6 +1478,7 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
|
|
1475 |
Â
$data['total_cents'] = wc_stripe_add_number_precision( $order->get_total(), $order->get_currency() );
|
1476 |
Â
$data['currency'] = $order->get_currency();
|
1477 |
Â
$data['pre_order'] = $this->order_contains_pre_order( $order );
|
Â
|
|
1478 |
Â
} else {
|
1479 |
Â
$data['needs_shipping'] = WC()->cart->needs_shipping();
|
1480 |
Â
if ( 'checkout' === $page && is_cart() ) {
|
@@ -1838,4 +1842,8 @@ abstract class WC_Payment_Gateway_Stripe extends WC_Payment_Gateway {
|
|
1838 |
Â
return apply_filters( 'wc_stripe_get_element_options', $options, $this );
|
1839 |
Â
}
|
1840 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
1841 |
Â
}
|
88 |
Â
*
|
89 |
Â
* @var WC_Stripe_Gateway
|
90 |
Â
*/
|
91 |
+
public $gateway;
|
92 |
Â
|
93 |
Â
/**
|
94 |
Â
*
|
422 |
Â
'required_field' => __( 'Please fill out all required fields.', 'woo-stripe-payment' )
|
423 |
Â
),
|
424 |
Â
'routes' => array(
|
425 |
+
'create_payment_intent' => WC_Stripe_Rest_API::get_endpoint( stripe_wc()->rest_api->payment_intent->rest_uri( 'payment-intent' ) ),
|
426 |
+
'order_create_payment_intent' => WC_Stripe_Rest_API::get_endpoint( stripe_wc()->rest_api->payment_intent->rest_uri( 'order/payment-intent' ) ),
|
427 |
+
'setup_intent' => WC_Stripe_Rest_API::get_endpoint( stripe_wc()->rest_api->payment_intent->rest_uri( 'setup-intent' ) ),
|
428 |
+
'sync_intent' => WC_Stripe_Rest_API::get_endpoint( stripe_wc()->rest_api->payment_intent->rest_uri( 'sync-payment-intent' ) ),
|
429 |
+
'add_to_cart' => WC_Stripe_Rest_API::get_endpoint( stripe_wc()->rest_api->cart->rest_uri( 'add-to-cart' ) ),
|
430 |
+
'cart_calculation' => WC_Stripe_Rest_API::get_endpoint( stripe_wc()->rest_api->cart->rest_uri( 'cart-calculation' ) ),
|
431 |
+
'shipping_method' => WC_Stripe_Rest_API::get_endpoint( stripe_wc()->rest_api->cart->rest_uri( 'shipping-method' ) ),
|
432 |
+
'shipping_address' => WC_Stripe_Rest_API::get_endpoint( stripe_wc()->rest_api->cart->rest_uri( 'shipping-address' ) ),
|
433 |
+
'checkout' => WC_Stripe_Rest_API::get_endpoint( stripe_wc()->rest_api->checkout->rest_uri( 'checkout' ) ),
|
434 |
+
'checkout_payment' => WC_Stripe_Rest_API::get_endpoint( stripe_wc()->rest_api->checkout->rest_uri( 'checkout/payment' ) )
|
435 |
Â
),
|
436 |
Â
'rest_nonce' => wp_create_nonce( 'wp_rest' ),
|
437 |
Â
'banner_enabled' => $this->banner_checkout_enabled(),
|
1465 |
Â
'shipping_options' => $this->has_digital_wallet ? $this->get_formatted_shipping_methods() : array(),
|
1466 |
Â
'total' => wc_format_decimal( WC()->cart->total, 2 ),
|
1467 |
Â
'total_cents' => wc_stripe_add_number_precision( WC()->cart->total, get_woocommerce_currency() ),
|
1468 |
+
'currency' => get_woocommerce_currency(),
|
1469 |
+
'installments' => array( 'enabled' => $this->is_installment_available() )
|
1470 |
Â
) );
|
1471 |
Â
if ( in_array( $page, array( 'checkout', 'cart' ) ) ) {
|
1472 |
Â
if ( ! empty( $wp->query_vars['order-pay'] ) ) {
|
1478 |
Â
$data['total_cents'] = wc_stripe_add_number_precision( $order->get_total(), $order->get_currency() );
|
1479 |
Â
$data['currency'] = $order->get_currency();
|
1480 |
Â
$data['pre_order'] = $this->order_contains_pre_order( $order );
|
1481 |
+
$data['order'] = array( 'id' => $order->get_id(), 'key' => $order->get_order_key() );
|
1482 |
Â
} else {
|
1483 |
Â
$data['needs_shipping'] = WC()->cart->needs_shipping();
|
1484 |
Â
if ( 'checkout' === $page && is_cart() ) {
|
1842 |
Â
return apply_filters( 'wc_stripe_get_element_options', $options, $this );
|
1843 |
Â
}
|
1844 |
Â
|
1845 |
+
public function is_installment_available() {
|
1846 |
+
return false;
|
1847 |
+
}
|
1848 |
+
|
1849 |
Â
}
|
includes/admin/settings/class-wc-stripe-account-settings.php
CHANGED
@@ -1,15 +1,24 @@
|
|
1 |
Â
<?php
|
Â
|
|
2 |
Â
defined( 'ABSPATH' ) || exit();
|
3 |
Â
|
4 |
Â
/**
|
5 |
Â
* Class WC_Stripe_Account_Settings
|
6 |
Â
*
|
7 |
-
* @
|
8 |
-
* @
|
9 |
Â
* @package Stripe/Classes
|
10 |
Â
*/
|
11 |
Â
class WC_Stripe_Account_Settings extends WC_Stripe_Settings_API {
|
12 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
13 |
Â
public function __construct() {
|
14 |
Â
$this->id = 'stripe_account';
|
15 |
Â
parent::__construct();
|
@@ -17,26 +26,78 @@ class WC_Stripe_Account_Settings extends WC_Stripe_Settings_API {
|
|
17 |
Â
|
18 |
Â
public function hooks() {
|
19 |
Â
add_action( 'wc_stripe_connect_settings', array( $this, 'connect_settings' ) );
|
Â
|
|
Â
|
|
Â
|
|
20 |
Â
}
|
21 |
Â
|
22 |
Â
/**
|
23 |
Â
* @param object $response
|
24 |
Â
*/
|
25 |
Â
public function connect_settings( $response ) {
|
26 |
-
|
Â
|
|
Â
|
|
27 |
Â
}
|
28 |
Â
|
29 |
Â
/**
|
30 |
Â
* @param string $account_id
|
31 |
Â
*/
|
32 |
-
public function save_account_settings( $account_id ) {
|
33 |
Â
// fetch the account and store the account data.
|
34 |
-
$account = WC_Stripe_Gateway::load(
|
35 |
Â
if ( ! is_wp_error( $account ) ) {
|
36 |
-
$
|
37 |
-
|
38 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
39 |
Â
update_option( $this->get_option_key(), $this->settings, 'yes' );
|
40 |
Â
}
|
41 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
42 |
Â
}
|
1 |
Â
<?php
|
2 |
+
|
3 |
Â
defined( 'ABSPATH' ) || exit();
|
4 |
Â
|
5 |
Â
/**
|
6 |
Â
* Class WC_Stripe_Account_Settings
|
7 |
Â
*
|
8 |
+
* @since 3.1.7
|
9 |
+
* @author Payment Plugins
|
10 |
Â
* @package Stripe/Classes
|
11 |
Â
*/
|
12 |
Â
class WC_Stripe_Account_Settings extends WC_Stripe_Settings_API {
|
13 |
Â
|
14 |
+
private $api_settings = array();
|
15 |
+
|
16 |
+
const DEFAULT_ACCOUNT_SETTINGS = array(
|
17 |
+
'account_id' => '',
|
18 |
+
'country' => '',
|
19 |
+
'default_currency' => ''
|
20 |
+
);
|
21 |
+
|
22 |
Â
public function __construct() {
|
23 |
Â
$this->id = 'stripe_account';
|
24 |
Â
parent::__construct();
|
26 |
Â
|
27 |
Â
public function hooks() {
|
28 |
Â
add_action( 'wc_stripe_connect_settings', array( $this, 'connect_settings' ) );
|
29 |
+
add_action( 'woocommerce_update_options_checkout_stripe_api', array( $this, 'pre_api_update' ), 5 );
|
30 |
+
add_action( 'woocommerce_update_options_checkout_stripe_api', array( $this, 'post_api_update' ), 20 );
|
31 |
+
add_action( 'wc_stripe_api_connection_test_success', array( $this, 'connection_test_success' ) );
|
32 |
Â
}
|
33 |
Â
|
34 |
Â
/**
|
35 |
Â
* @param object $response
|
36 |
Â
*/
|
37 |
Â
public function connect_settings( $response ) {
|
38 |
+
foreach ( $response as $mode => $data ) {
|
39 |
+
$this->save_account_settings( $data->stripe_user_id, $mode );
|
40 |
+
}
|
41 |
Â
}
|
42 |
Â
|
43 |
Â
/**
|
44 |
Â
* @param string $account_id
|
45 |
Â
*/
|
46 |
+
public function save_account_settings( $account_id, $mode = 'live' ) {
|
47 |
Â
// fetch the account and store the account data.
|
48 |
+
$account = WC_Stripe_Gateway::load( $mode )->accounts->retrieve( $account_id );
|
49 |
Â
if ( ! is_wp_error( $account ) ) {
|
50 |
+
if ( $mode === 'live' ) {
|
51 |
+
$this->settings['account_id'] = $account->id;
|
52 |
+
$this->settings['country'] = strtoupper( $account->country );
|
53 |
+
$this->settings['default_currency'] = strtoupper( $account->default_currency );
|
54 |
+
} else {
|
55 |
+
$this->settings[ WC_Stripe_Constants::TEST ] = array(
|
56 |
+
'account_id' => $account->id,
|
57 |
+
'country' => strtoupper( $account->country ),
|
58 |
+
'default_currency' => strtoupper( $account->default_currency )
|
59 |
+
);
|
60 |
+
}
|
61 |
Â
update_option( $this->get_option_key(), $this->settings, 'yes' );
|
62 |
Â
}
|
63 |
Â
}
|
64 |
+
|
65 |
+
public function pre_api_update() {
|
66 |
+
$settings = stripe_wc()->api_settings;
|
67 |
+
$this->api_settings = array(
|
68 |
+
'key' => $settings->get_option( 'publishable_key_test' ),
|
69 |
+
'secret' => $settings->get_option( 'secret_key_test' )
|
70 |
+
);
|
71 |
+
}
|
72 |
+
|
73 |
+
public function post_api_update() {
|
74 |
+
$api_settings = stripe_wc()->api_settings;
|
75 |
+
$settings = array(
|
76 |
+
'key' => $api_settings->get_option( 'publishable_key_test' ),
|
77 |
+
'secret' => $api_settings->get_option( 'secret_key_test' )
|
78 |
+
);
|
79 |
+
$is_valid = array_filter( $settings ) == $settings;
|
80 |
+
if ( ( ! isset( $this->settings['test'] ) || $settings != $this->api_settings ) && $is_valid ) {
|
81 |
+
$this->save_account_settings( null, 'test' );
|
82 |
+
}
|
83 |
+
}
|
84 |
+
|
85 |
+
public function connection_test_success( $mode ) {
|
86 |
+
if ( $mode === WC_Stripe_Constants::TEST ) {
|
87 |
+
unset( $this->settings[ WC_Stripe_Constants::TEST ] );
|
88 |
+
$this->post_api_update();
|
89 |
+
}
|
90 |
+
}
|
91 |
+
|
92 |
+
public function get_account_country( $mode = 'live' ) {
|
93 |
+
if ( $mode === WC_Stripe_Constants::LIVE ) {
|
94 |
+
$country = $this->get_option( 'country' );
|
95 |
+
} else {
|
96 |
+
$settings = $this->get_option( 'test', self::DEFAULT_ACCOUNT_SETTINGS );
|
97 |
+
$country = $settings['country'];
|
98 |
+
}
|
99 |
+
|
100 |
+
return $country;
|
101 |
+
}
|
102 |
+
|
103 |
Â
}
|
includes/admin/settings/class-wc-stripe-advanced-settings.php
CHANGED
@@ -57,6 +57,14 @@ class WC_Stripe_Advanced_Settings extends WC_Stripe_Settings_API {
|
|
57 |
Â
return WC_Stripe_Utils::sanitize_statement_descriptor( $value );
|
58 |
Â
}
|
59 |
Â
),
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
60 |
Â
'stripe_fee' => array(
|
61 |
Â
'title' => __( 'Display Stripe Fee', 'woo-stripe-payment' ),
|
62 |
Â
'type' => 'checkbox',
|
@@ -180,4 +188,8 @@ class WC_Stripe_Advanced_Settings extends WC_Stripe_Settings_API {
|
|
180 |
Â
return $this->is_active( 'review_closed' );
|
181 |
Â
}
|
182 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
183 |
Â
}
|
57 |
Â
return WC_Stripe_Utils::sanitize_statement_descriptor( $value );
|
58 |
Â
}
|
59 |
Â
),
|
60 |
+
'installments' => array(
|
61 |
+
'title' => __( 'Installments', 'woo-stripe-payment' ),
|
62 |
+
'type' => 'checkbox',
|
63 |
+
'default' => 'no',
|
64 |
+
'value' => 'yes',
|
65 |
+
'desc_tip' => false,
|
66 |
+
'description' => sprintf( __( 'If enabled, installments will be available for the credit card gateway. %1$s', 'woo-stripe-payment' ), $this->get_supported_countries_description() )
|
67 |
+
),
|
68 |
Â
'stripe_fee' => array(
|
69 |
Â
'title' => __( 'Display Stripe Fee', 'woo-stripe-payment' ),
|
70 |
Â
'type' => 'checkbox',
|
188 |
Â
return $this->is_active( 'review_closed' );
|
189 |
Â
}
|
190 |
Â
|
191 |
+
public function get_supported_countries_description() {
|
192 |
+
return sprintf( __( 'Supported Stripe account countries: %1$s', 'woo-stripe-payment' ), implode( ', ', \PaymentPlugins\Stripe\Installments\InstallmentController::get_supported_countries() ) );
|
193 |
+
}
|
194 |
+
|
195 |
Â
}
|
includes/admin/settings/class-wc-stripe-api-settings.php
CHANGED
@@ -4,8 +4,8 @@ defined( 'ABSPATH' ) || exit();
|
|
4 |
Â
|
5 |
Â
/**
|
6 |
Â
*
|
7 |
-
* @since
|
8 |
-
* @author
|
9 |
Â
* @package Stripe/Classes
|
10 |
Â
*
|
11 |
Â
*/
|
@@ -233,38 +233,49 @@ class WC_Stripe_API_Settings extends WC_Stripe_Settings_API {
|
|
233 |
Â
wc_stripe_log_error( sprintf( 'Error connecting to Stripe account. Reason: %s', $message ) );
|
234 |
Â
$this->add_error( sprintf( __( 'We were not able to connect your Stripe account. Reason: %s', 'woo-stripe-payment' ), $message ) );
|
235 |
Â
} elseif ( isset( $_GET['response'] ) ) {
|
236 |
-
|
237 |
-
|
238 |
-
|
239 |
-
|
240 |
-
|
Â
|
|
Â
|
|
Â
|
|
241 |
Â
|
242 |
-
|
243 |
-
|
Â
|
|
244 |
Â
|
245 |
-
|
246 |
-
|
247 |
Â
|
248 |
-
|
Â
|
|
249 |
Â
|
250 |
-
|
251 |
Â
|
252 |
-
|
253 |
-
$this->create_webhooks();
|
254 |
Â
|
255 |
-
|
256 |
-
|
257 |
-
* @param WC_Stripe_API_Settings $this
|
258 |
-
*
|
259 |
-
* @since 3.1.6
|
260 |
-
*/
|
261 |
-
do_action( 'wc_stripe_connect_settings', $response, $this );
|
262 |
Â
|
263 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
264 |
Â
|
265 |
-
|
266 |
-
|
267 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
268 |
Â
}
|
269 |
Â
}
|
270 |
Â
parent::admin_options();
|
4 |
Â
|
5 |
Â
/**
|
6 |
Â
*
|
7 |
+
* @since 3.0.0
|
8 |
+
* @author Payment Plugins
|
9 |
Â
* @package Stripe/Classes
|
10 |
Â
*
|
11 |
Â
*/
|
233 |
Â
wc_stripe_log_error( sprintf( 'Error connecting to Stripe account. Reason: %s', $message ) );
|
234 |
Â
$this->add_error( sprintf( __( 'We were not able to connect your Stripe account. Reason: %s', 'woo-stripe-payment' ), $message ) );
|
235 |
Â
} elseif ( isset( $_GET['response'] ) ) {
|
236 |
+
if ( ! current_user_can( 'manage_woocommerce' ) ) {
|
237 |
+
?>
|
238 |
+
<div class="error inline notice-error is-dismissible">
|
239 |
+
<p><?php esc_html_e( 'Not authorized to perform this action. Required permission: manage_woocommerce', 'woo-stripe-payment' ) ?></p>
|
240 |
+
</div>
|
241 |
+
<?php
|
242 |
+
} else {
|
243 |
+
$response = json_decode( base64_decode( $_GET['response'] ) );
|
244 |
Â
|
245 |
+
// save the token to the api settings
|
246 |
+
$this->settings['account_id'] = $response->live->stripe_user_id;
|
247 |
+
$this->settings['refresh_token'] = $response->live->refresh_token;
|
248 |
Â
|
249 |
+
$this->settings['secret_key_live'] = $response->live->access_token;
|
250 |
+
$this->settings['publishable_key_live'] = $response->live->stripe_publishable_key;
|
251 |
Â
|
252 |
+
$this->settings['secret_key_test'] = $response->test->access_token;
|
253 |
+
$this->settings['publishable_key_test'] = $response->test->stripe_publishable_key;
|
254 |
Â
|
255 |
+
update_option( $this->get_option_key(), $this->settings );
|
256 |
Â
|
257 |
+
delete_option( 'wc_stripe_connect_notice' );
|
Â
|
|
258 |
Â
|
259 |
+
// create webhooks
|
260 |
+
$this->create_webhooks();
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
261 |
Â
|
262 |
+
/**
|
263 |
+
* @param array $response
|
264 |
+
* @param WC_Stripe_API_Settings $this
|
265 |
+
*
|
266 |
+
* @since 3.1.6
|
267 |
+
*/
|
268 |
+
do_action( 'wc_stripe_connect_settings', $response, $this );
|
269 |
Â
|
270 |
+
$this->init_form_fields();
|
271 |
+
?>
|
272 |
+
<div class="updated inline notice-success is-dismissible ">
|
273 |
+
<p>
|
274 |
+
<?php esc_html_e( 'Your Stripe account has been connected to your WooCommerce store. You may now accept payments in Live and Test mode.', 'woo-stripe-payment' ) ?>
|
275 |
+
</p>
|
276 |
+
</div>
|
277 |
+
<?php
|
278 |
+
}
|
279 |
Â
}
|
280 |
Â
}
|
281 |
Â
parent::admin_options();
|
includes/class-stripe.php
CHANGED
@@ -26,7 +26,7 @@ class WC_Stripe_Manager {
|
|
26 |
Â
*
|
27 |
Â
* @var string
|
28 |
Â
*/
|
29 |
-
public $version = '3.3.
|
30 |
Â
|
31 |
Â
/**
|
32 |
Â
*
|
@@ -35,7 +35,7 @@ class WC_Stripe_Manager {
|
|
35 |
Â
public $api_settings;
|
36 |
Â
|
37 |
Â
/**
|
38 |
-
* @var
|
39 |
Â
* @since 3.1.7
|
40 |
Â
*/
|
41 |
Â
public $account_settings;
|
26 |
Â
*
|
27 |
Â
* @var string
|
28 |
Â
*/
|
29 |
+
public $version = '3.3.19';
|
30 |
Â
|
31 |
Â
/**
|
32 |
Â
*
|
35 |
Â
public $api_settings;
|
36 |
Â
|
37 |
Â
/**
|
38 |
+
* @var \WC_Stripe_Account_Settings
|
39 |
Â
* @since 3.1.7
|
40 |
Â
*/
|
41 |
Â
public $account_settings;
|
includes/class-wc-stripe-constants.php
CHANGED
@@ -77,4 +77,10 @@ class WC_Stripe_Constants {
|
|
77 |
Â
|
78 |
Â
const VOUCHER_PAYMENT = '_stripe_voucher_payment';
|
79 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
80 |
Â
}
|
77 |
Â
|
78 |
Â
const VOUCHER_PAYMENT = '_stripe_voucher_payment';
|
79 |
Â
|
80 |
+
const INSTALLMENT_PLAN = '_stripe_installment_plan';
|
81 |
+
|
82 |
+
const LIVE = 'live';
|
83 |
+
|
84 |
+
const TEST = 'test';
|
85 |
+
|
86 |
Â
}
|
includes/class-wc-stripe-payment-intent.php
CHANGED
@@ -23,7 +23,7 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
|
|
23 |
Â
// first check to see if a payment intent can be used
|
24 |
Â
if ( ( $intent = $this->can_use_payment_intent( $order ) ) ) {
|
25 |
Â
$intent_id = $intent['id'];
|
26 |
-
if ( $this->can_update_payment_intent( $order ) ) {
|
27 |
Â
$intent = $this->gateway->paymentIntents->update( $intent_id, $this->get_payment_intent_args( $order, false ) );
|
28 |
Â
} else {
|
29 |
Â
$intent = $this->gateway->paymentIntents->retrieve( $intent_id, apply_filters( 'wc_stripe_payment_intent_retrieve_args', null, $order, $intent_id ) );
|
@@ -67,6 +67,7 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
|
|
67 |
Â
}
|
68 |
Â
// remove metadata that's no longer needed
|
69 |
Â
$order->delete_meta_data( WC_Stripe_Constants::PAYMENT_INTENT );
|
Â
|
|
70 |
Â
|
71 |
Â
return (object) array(
|
72 |
Â
'complete_payment' => true,
|
@@ -178,11 +179,11 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
|
|
178 |
Â
*
|
179 |
Â
* @param WC_Order $order
|
180 |
Â
*/
|
181 |
-
public function can_update_payment_intent( $order ) {
|
182 |
Â
if ( ! is_checkout() || defined( WC_Stripe_Constants::REDIRECT_HANDLER ) || defined( WC_Stripe_Constants::PROCESSING_PAYMENT ) ) {
|
183 |
Â
return false;
|
184 |
Â
}
|
185 |
-
$intent = $order->get_meta( WC_Stripe_Constants::PAYMENT_INTENT );
|
186 |
Â
if ( $intent ) {
|
187 |
Â
$order_hash = implode(
|
188 |
Â
'_',
|
@@ -203,7 +204,7 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
|
|
203 |
Â
)
|
204 |
Â
);
|
205 |
Â
|
206 |
-
return $order_hash !== $intent_hash;
|
207 |
Â
}
|
208 |
Â
|
209 |
Â
return false;
|
@@ -340,9 +341,12 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
|
|
340 |
Â
}
|
341 |
Â
|
342 |
Â
// compare the active environment to the order's environment
|
343 |
-
|
Â
|
|
344 |
Â
$intent = false;
|
345 |
Â
}
|
Â
|
|
Â
|
|
346 |
Â
}
|
347 |
Â
|
348 |
Â
return $intent;
|
23 |
Â
// first check to see if a payment intent can be used
|
24 |
Â
if ( ( $intent = $this->can_use_payment_intent( $order ) ) ) {
|
25 |
Â
$intent_id = $intent['id'];
|
26 |
+
if ( $this->can_update_payment_intent( $order, $intent ) ) {
|
27 |
Â
$intent = $this->gateway->paymentIntents->update( $intent_id, $this->get_payment_intent_args( $order, false ) );
|
28 |
Â
} else {
|
29 |
Â
$intent = $this->gateway->paymentIntents->retrieve( $intent_id, apply_filters( 'wc_stripe_payment_intent_retrieve_args', null, $order, $intent_id ) );
|
67 |
Â
}
|
68 |
Â
// remove metadata that's no longer needed
|
69 |
Â
$order->delete_meta_data( WC_Stripe_Constants::PAYMENT_INTENT );
|
70 |
+
unset( WC()->session->{WC_Stripe_Constants::PAYMENT_INTENT} );
|
71 |
Â
|
72 |
Â
return (object) array(
|
73 |
Â
'complete_payment' => true,
|
179 |
Â
*
|
180 |
Â
* @param WC_Order $order
|
181 |
Â
*/
|
182 |
+
public function can_update_payment_intent( $order, $intent = null ) {
|
183 |
Â
if ( ! is_checkout() || defined( WC_Stripe_Constants::REDIRECT_HANDLER ) || defined( WC_Stripe_Constants::PROCESSING_PAYMENT ) ) {
|
184 |
Â
return false;
|
185 |
Â
}
|
186 |
+
$intent = ! $intent ? $order->get_meta( WC_Stripe_Constants::PAYMENT_INTENT ) : $intent;
|
187 |
Â
if ( $intent ) {
|
188 |
Â
$order_hash = implode(
|
189 |
Â
'_',
|
204 |
Â
)
|
205 |
Â
);
|
206 |
Â
|
207 |
+
return apply_filters( 'wc_stripe_can_update_payment_intent', $order_hash !== $intent_hash, $intent, $order );
|
208 |
Â
}
|
209 |
Â
|
210 |
Â
return false;
|
341 |
Â
}
|
342 |
Â
|
343 |
Â
// compare the active environment to the order's environment
|
344 |
+
$mode = wc_stripe_order_mode( $order );
|
345 |
+
if ( $mode && $mode !== wc_stripe_mode() ) {
|
346 |
Â
$intent = false;
|
347 |
Â
}
|
348 |
+
} else {
|
349 |
+
$intent = WC()->session->get( WC_Stripe_Constants::PAYMENT_INTENT );
|
350 |
Â
}
|
351 |
Â
|
352 |
Â
return $intent;
|
includes/class-wc-stripe-update.php
CHANGED
@@ -19,7 +19,8 @@ class WC_Stripe_Update {
|
|
19 |
Â
'3.1.7' => 'update-3.1.7.php',
|
20 |
Â
'3.2.8' => 'update-3.2.8.php',
|
21 |
Â
'3.3.13' => 'update-3.3.13.php',
|
22 |
-
'3.3.14' => 'update-3.3.14.php'
|
Â
|
|
23 |
Â
);
|
24 |
Â
|
25 |
Â
public static function init() {
|
19 |
Â
'3.1.7' => 'update-3.1.7.php',
|
20 |
Â
'3.2.8' => 'update-3.2.8.php',
|
21 |
Â
'3.3.13' => 'update-3.3.13.php',
|
22 |
+
'3.3.14' => 'update-3.3.14.php',
|
23 |
+
'3.3.19' => 'update-3.3.19.php'
|
24 |
Â
);
|
25 |
Â
|
26 |
Â
public static function init() {
|
includes/controllers/class-wc-stripe-controller-gateway-settings.php
CHANGED
@@ -5,7 +5,7 @@ defined( 'ABSPATH' ) || exit();
|
|
5 |
Â
/**
|
6 |
Â
*
|
7 |
Â
* @package Stripe/Controllers
|
8 |
-
* @author
|
9 |
Â
*
|
10 |
Â
*/
|
11 |
Â
class WC_Stripe_Controller_Gateway_Settings extends WC_Stripe_Rest_Controller {
|
@@ -106,8 +106,7 @@ class WC_Stripe_Controller_Gateway_Settings extends WC_Stripe_Rest_Controller {
|
|
106 |
Â
}
|
107 |
Â
}
|
108 |
Â
}
|
109 |
-
}
|
110 |
-
catch ( Exception $e ) {
|
111 |
Â
return new WP_Error( 'domain-error', $e->getMessage(), array( 'status' => 200 ) );
|
112 |
Â
}
|
113 |
Â
|
@@ -270,10 +269,10 @@ class WC_Stripe_Controller_Gateway_Settings extends WC_Stripe_Rest_Controller {
|
|
270 |
Â
// if test mode and keys are good, save them
|
271 |
Â
if ( $api_keys ) {
|
272 |
Â
update_option( $settings->get_option_key(), $settings->settings, 'yes' );
|
Â
|
|
273 |
Â
}
|
274 |
Â
ob_get_clean();
|
275 |
-
}
|
276 |
-
catch ( Exception $e ) {
|
277 |
Â
return new WP_Error( 'connection-failure', $e->getMessage(), array( 'status' => 200 ) );
|
278 |
Â
}
|
279 |
Â
|
5 |
Â
/**
|
6 |
Â
*
|
7 |
Â
* @package Stripe/Controllers
|
8 |
+
* @author PaymentPlugins
|
9 |
Â
*
|
10 |
Â
*/
|
11 |
Â
class WC_Stripe_Controller_Gateway_Settings extends WC_Stripe_Rest_Controller {
|
106 |
Â
}
|
107 |
Â
}
|
108 |
Â
}
|
109 |
+
} catch ( Exception $e ) {
|
Â
|
|
110 |
Â
return new WP_Error( 'domain-error', $e->getMessage(), array( 'status' => 200 ) );
|
111 |
Â
}
|
112 |
Â
|
269 |
Â
// if test mode and keys are good, save them
|
270 |
Â
if ( $api_keys ) {
|
271 |
Â
update_option( $settings->get_option_key(), $settings->settings, 'yes' );
|
272 |
+
do_action( 'wc_stripe_api_connection_test_success', $mode );
|
273 |
Â
}
|
274 |
Â
ob_get_clean();
|
275 |
+
} catch ( Exception $e ) {
|
Â
|
|
276 |
Â
return new WP_Error( 'connection-failure', $e->getMessage(), array( 'status' => 200 ) );
|
277 |
Â
}
|
278 |
Â
|
includes/controllers/class-wc-stripe-controller-payment-intent.php
CHANGED
@@ -44,6 +44,26 @@ class WC_Stripe_Controller_Payment_Intent extends WC_Stripe_Rest_Controller {
|
|
44 |
Â
),
|
45 |
Â
)
|
46 |
Â
);
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
47 |
Â
}
|
48 |
Â
|
49 |
Â
/**
|
@@ -104,4 +124,111 @@ class WC_Stripe_Controller_Payment_Intent extends WC_Stripe_Rest_Controller {
|
|
104 |
Â
}
|
105 |
Â
}
|
106 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
107 |
Â
}
|
44 |
Â
),
|
45 |
Â
)
|
46 |
Â
);
|
47 |
+
register_rest_route( $this->rest_uri(), 'payment-intent', array(
|
48 |
+
'methods' => WP_REST_Server::CREATABLE,
|
49 |
+
'callback' => array( $this, 'create_payment_intent_from_cart' ),
|
50 |
+
'permission_callback' => '__return_true',
|
51 |
+
'args' => array(
|
52 |
+
'payment_method' => array( 'required' => true ),
|
53 |
+
'payment_method_id' => array( 'required' => true )
|
54 |
+
),
|
55 |
+
) );
|
56 |
+
register_rest_route( $this->rest_uri(), 'order/payment-intent', array(
|
57 |
+
'methods' => WP_REST_Server::CREATABLE,
|
58 |
+
'callback' => array( $this, 'create_payment_intent_from_order' ),
|
59 |
+
'permission_callback' => '__return_true',
|
60 |
+
'args' => array(
|
61 |
+
'order_id' => array( 'required' => true ),
|
62 |
+
'order_key' => array( 'required' => true ),
|
63 |
+
'payment_method' => array( 'required' => true ),
|
64 |
+
'payment_method_id' => array( 'required' => true )
|
65 |
+
),
|
66 |
+
) );
|
67 |
Â
}
|
68 |
Â
|
69 |
Â
/**
|
124 |
Â
}
|
125 |
Â
}
|
126 |
Â
|
127 |
+
/**
|
128 |
+
* @param \WP_REST_Request $request
|
129 |
+
*/
|
130 |
+
public function create_payment_intent_from_cart( $request ) {
|
131 |
+
try {
|
132 |
+
$payment_intent = WC()->session->get( WC_Stripe_Constants::PAYMENT_INTENT );
|
133 |
+
$order_id = absint( WC()->session->get( 'order_awaiting_payment' ) );
|
134 |
+
$order = $order_id ? wc_get_order( $order_id ) : null;
|
135 |
+
$result = $this->create_payment_intent( $request, $payment_intent, $order );
|
136 |
+
WC()->session->set( WC_Stripe_Constants::PAYMENT_INTENT, WC_Stripe_Utils::sanitize_intent( $result->payment_intent->toArray() ) );
|
137 |
+
|
138 |
+
return rest_ensure_response( $result );
|
139 |
+
} catch ( \Exception $e ) {
|
140 |
+
return new WP_Error( 'payment-intent-error', $e->getMessage(), array( 'status' => 200 ) );
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
/**
|
145 |
+
* @param \WP_REST_Request $request
|
146 |
+
*/
|
147 |
+
public function create_payment_intent_from_order( $request ) {
|
148 |
+
$order = wc_get_order( absint( $request['order_id'] ) );
|
149 |
+
|
150 |
+
try {
|
151 |
+
if ( ! $order || ! hash_equals( $order->get_order_key(), $request['order_key'] ) ) {
|
152 |
+
throw new Exception( __( 'You are not authorized to update this order.', 'woo-stripe-payment' ) );
|
153 |
+
}
|
154 |
+
$payment_intent = $order->get_meta( WC_Stripe_Constants::PAYMENT_INTENT );
|
155 |
+
$result = $this->create_payment_intent( $request, $payment_intent, $order );
|
156 |
+
|
157 |
+
return rest_ensure_response( $result );
|
158 |
+
} catch ( Exception $e ) {
|
159 |
+
return new WP_Error( 'payment-intent-error', $e->getMessage(), array( 'status' => 200 ) );
|
160 |
+
}
|
161 |
+
}
|
162 |
+
|
163 |
+
/**
|
164 |
+
* @param \WP_REST_Request $request
|
165 |
+
*/
|
166 |
+
private function create_payment_intent( $request, $payment_intent = null, $order = null ) {
|
167 |
+
/**
|
168 |
+
* @var \WC_Payment_Gateway_Stripe $payment_method
|
169 |
+
*/
|
170 |
+
$payment_method = WC()->payment_gateways()->payment_gateways()[ $request['payment_method'] ];
|
171 |
+
$params = $this->get_create_payment_intent_params( $request, $payment_method, $order );
|
172 |
+
if ( $payment_intent ) {
|
173 |
+
$payment_intent = $payment_method->gateway->paymentIntents->retrieve( $payment_intent['id'] );
|
174 |
+
if ( is_wp_error( $payment_intent ) || in_array( $payment_intent->status, array( 'succeeded', 'requires_capture' ) ) ) {
|
175 |
+
unset( WC()->session->{WC_Stripe_Constants::PAYMENT_INTENT} );
|
176 |
+
|
177 |
+
return $this->create_payment_intent( $request );
|
178 |
+
}
|
179 |
+
unset( $params['confirmation_method'] );
|
180 |
+
$payment_intent = $payment_method->gateway->paymentIntents->update( $payment_intent['id'], $params );
|
181 |
+
} else {
|
182 |
+
$payment_intent = $payment_method->gateway->paymentIntents->create( $params );
|
183 |
+
}
|
184 |
+
|
185 |
+
if ( is_wp_error( $payment_intent ) ) {
|
186 |
+
throw new Exception( $payment_intent->get_error_message() );
|
187 |
+
}
|
188 |
+
if ( $order ) {
|
189 |
+
$order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT, WC_Stripe_Utils::sanitize_intent( $payment_intent->toArray() ) );
|
190 |
+
$order->save();
|
191 |
+
}
|
192 |
+
$response = array( 'payment_intent' => $payment_intent );
|
193 |
+
$installments = array();
|
194 |
+
if ( $payment_intent->payment_method_options->card->installments->enabled ) {
|
195 |
+
$installments = \PaymentPlugins\Stripe\Installments\InstallmentFormatter::from_plans( $payment_intent->payment_method_options->card->installments->available_plans, $payment_intent->amount, $payment_intent->currency );
|
196 |
+
}
|
197 |
+
$response['installments_html'] = wc_stripe_get_template_html( 'installment-plans.php', array( 'installments' => $installments ) );
|
198 |
+
$response['installments'] = $installments;
|
199 |
+
|
200 |
+
return (object) $response;
|
201 |
+
}
|
202 |
+
|
203 |
+
/**
|
204 |
+
* @param \WP_REST_Request $request
|
205 |
+
* @param \WC_Payment_Gateway_Stripe $payment_method
|
206 |
+
* @param null|\WC_Order $order
|
207 |
+
*/
|
208 |
+
private function get_create_payment_intent_params( $request, $payment_method, $order = null ) {
|
209 |
+
$params = array(
|
210 |
+
'payment_method' => $request['payment_method_id'],
|
211 |
+
'confirmation_method' => $payment_method->get_confirmation_method(),
|
212 |
+
'payment_method_types' => [ $payment_method->get_payment_method_type() ],
|
213 |
+
'payment_method_options' => array( 'card' => array( 'installments' => array( 'enabled' => $payment_method->installments->is_available( $order ) ) ) )
|
214 |
+
);
|
215 |
+
if ( $order ) {
|
216 |
+
$params['amount'] = wc_stripe_add_number_precision( $order->get_total(), $order->get_currency() );
|
217 |
+
$params['currency'] = $order->get_currency();
|
218 |
+
if ( $order->get_customer_id() && ( ( $customer_id = wc_stripe_get_customer_id( $order->get_customer_id() ) ) ) ) {
|
219 |
+
$params['customer'] = $customer_id;
|
220 |
+
}
|
221 |
+
} else {
|
222 |
+
$currency = get_woocommerce_currency();
|
223 |
+
$total = WC()->cart->total;
|
224 |
+
$params['amount'] = wc_stripe_add_number_precision( $total, $currency );
|
225 |
+
$params['currency'] = $currency;
|
226 |
+
if ( is_user_logged_in() && ( ( $customer_id = wc_stripe_get_customer_id( get_current_user_id() ) ) ) ) {
|
227 |
+
$params['customer'] = $customer_id;
|
228 |
+
}
|
229 |
+
}
|
230 |
+
|
231 |
+
return $params;
|
232 |
+
}
|
233 |
+
|
234 |
Â
}
|
includes/gateways/class-wc-payment-gateway-stripe-ach.php
CHANGED
@@ -1,12 +1,13 @@
|
|
1 |
Â
<?php
|
Â
|
|
2 |
Â
defined( 'ABSPATH' ) || exit();
|
3 |
Â
|
4 |
Â
/**
|
5 |
Â
* Gateway that processes ACH payments.
|
6 |
Â
* Only available for U.S. based merchants at this time.
|
7 |
Â
*
|
8 |
-
* @since
|
9 |
-
* @author
|
10 |
Â
* @package Stripe/Gateways
|
11 |
Â
*
|
12 |
Â
*/
|
@@ -51,7 +52,7 @@ class WC_Payment_Gateway_Stripe_ACH extends WC_Payment_Gateway_Stripe {
|
|
51 |
Â
if ( isset( $wp->query_vars['order-pay'] ) ) {
|
52 |
Â
$order = wc_get_order( absint( $wp->query_vars['order-pay'] ) );
|
53 |
Â
|
54 |
-
return $is_available && $order->get_currency() === 'USD';
|
55 |
Â
}
|
56 |
Â
|
57 |
Â
return $is_available && get_woocommerce_currency() === 'USD';
|
@@ -182,9 +183,9 @@ class WC_Payment_Gateway_Stripe_ACH extends WC_Payment_Gateway_Stripe {
|
|
182 |
Â
}
|
183 |
Â
|
184 |
Â
/**
|
Â
|
|
185 |
Â
* @return mixed|null
|
186 |
Â
* @throws Exception
|
187 |
-
* @since 3.2.1
|
188 |
Â
*/
|
189 |
Â
public function fetch_link_token() {
|
190 |
Â
$env = $this->get_plaid_environment();
|
@@ -381,6 +382,7 @@ class WC_Payment_Gateway_Stripe_ACH extends WC_Payment_Gateway_Stripe {
|
|
381 |
Â
public function has_enqueued_scripts( $scripts ) {
|
382 |
Â
return wp_script_is( $scripts->get_handle( 'ach' ) );
|
383 |
Â
}
|
Â
|
|
384 |
Â
}
|
385 |
Â
|
386 |
Â
WC_Payment_Gateway_Stripe_ACH::init();
|
1 |
Â
<?php
|
2 |
+
|
3 |
Â
defined( 'ABSPATH' ) || exit();
|
4 |
Â
|
5 |
Â
/**
|
6 |
Â
* Gateway that processes ACH payments.
|
7 |
Â
* Only available for U.S. based merchants at this time.
|
8 |
Â
*
|
9 |
+
* @since 3.0.5
|
10 |
+
* @author Payment Plugins
|
11 |
Â
* @package Stripe/Gateways
|
12 |
Â
*
|
13 |
Â
*/
|
52 |
Â
if ( isset( $wp->query_vars['order-pay'] ) ) {
|
53 |
Â
$order = wc_get_order( absint( $wp->query_vars['order-pay'] ) );
|
54 |
Â
|
55 |
+
return $is_available && $order && $order->get_currency() === 'USD';
|
56 |
Â
}
|
57 |
Â
|
58 |
Â
return $is_available && get_woocommerce_currency() === 'USD';
|
183 |
Â
}
|
184 |
Â
|
185 |
Â
/**
|
186 |
+
* @since 3.2.1
|
187 |
Â
* @return mixed|null
|
188 |
Â
* @throws Exception
|
Â
|
|
189 |
Â
*/
|
190 |
Â
public function fetch_link_token() {
|
191 |
Â
$env = $this->get_plaid_environment();
|
382 |
Â
public function has_enqueued_scripts( $scripts ) {
|
383 |
Â
return wp_script_is( $scripts->get_handle( 'ach' ) );
|
384 |
Â
}
|
385 |
+
|
386 |
Â
}
|
387 |
Â
|
388 |
Â
WC_Payment_Gateway_Stripe_ACH::init();
|
includes/gateways/class-wc-payment-gateway-stripe-afterpay.php
CHANGED
@@ -310,7 +310,7 @@ class WC_Payment_Gateway_Stripe_Afterpay extends WC_Payment_Gateway_Stripe_Local
|
|
310 |
Â
*/
|
311 |
Â
public function validate_local_payment_available( $currency, $billing_country, $total ) {
|
312 |
Â
$_available = false;
|
313 |
-
$account_country = stripe_wc()->account_settings->
|
314 |
Â
// in test mode, the API keys might have been manually entered which
|
315 |
Â
// means the account settings 'country' value will be blank
|
316 |
Â
if ( empty( $account_country ) && wc_stripe_mode() === 'test' ) {
|
310 |
Â
*/
|
311 |
Â
public function validate_local_payment_available( $currency, $billing_country, $total ) {
|
312 |
Â
$_available = false;
|
313 |
+
$account_country = stripe_wc()->account_settings->get_account_country( wc_stripe_mode() );
|
314 |
Â
// in test mode, the API keys might have been manually entered which
|
315 |
Â
// means the account settings 'country' value will be blank
|
316 |
Â
if ( empty( $account_country ) && wc_stripe_mode() === 'test' ) {
|
includes/gateways/class-wc-payment-gateway-stripe-cc.php
CHANGED
@@ -15,6 +15,8 @@ class WC_Payment_Gateway_Stripe_CC extends WC_Payment_Gateway_Stripe {
|
|
15 |
Â
|
16 |
Â
protected $payment_method_type = 'card';
|
17 |
Â
|
Â
|
|
Â
|
|
18 |
Â
public function __construct() {
|
19 |
Â
$this->id = 'stripe_cc';
|
20 |
Â
$this->tab_title = __( 'Credit/Debit Cards', 'woo-stripe-payment' );
|
@@ -23,6 +25,7 @@ class WC_Payment_Gateway_Stripe_CC extends WC_Payment_Gateway_Stripe {
|
|
23 |
Â
$this->method_title = __( 'Stripe Credit Cards', 'woo-stripe-payment' );
|
24 |
Â
$this->method_description = __( 'Credit card gateway that integrates with your Stripe account.', 'woo-stripe-payment' );
|
25 |
Â
parent::__construct();
|
Â
|
|
26 |
Â
}
|
27 |
Â
|
28 |
Â
public function get_icon() {
|
@@ -77,7 +80,10 @@ class WC_Payment_Gateway_Stripe_CC extends WC_Payment_Gateway_Stripe {
|
|
77 |
Â
),
|
78 |
Â
'postal_regex' => $this->get_postal_code_regex(),
|
79 |
Â
'notice_location' => $this->get_option( 'notice_location' ),
|
80 |
-
'notice_selector' => $this->get_notice_css_selector()
|
Â
|
|
Â
|
|
Â
|
|
81 |
Â
)
|
82 |
Â
);
|
83 |
Â
}
|
@@ -273,4 +279,14 @@ class WC_Payment_Gateway_Stripe_CC extends WC_Payment_Gateway_Stripe {
|
|
273 |
Â
return $selector;
|
274 |
Â
}
|
275 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
276 |
Â
}
|
15 |
Â
|
16 |
Â
protected $payment_method_type = 'card';
|
17 |
Â
|
18 |
+
public $installments;
|
19 |
+
|
20 |
Â
public function __construct() {
|
21 |
Â
$this->id = 'stripe_cc';
|
22 |
Â
$this->tab_title = __( 'Credit/Debit Cards', 'woo-stripe-payment' );
|
25 |
Â
$this->method_title = __( 'Stripe Credit Cards', 'woo-stripe-payment' );
|
26 |
Â
$this->method_description = __( 'Credit card gateway that integrates with your Stripe account.', 'woo-stripe-payment' );
|
27 |
Â
parent::__construct();
|
28 |
+
$this->installments = \PaymentPlugins\Stripe\Installments\InstallmentController::instance();
|
29 |
Â
}
|
30 |
Â
|
31 |
Â
public function get_icon() {
|
80 |
Â
),
|
81 |
Â
'postal_regex' => $this->get_postal_code_regex(),
|
82 |
Â
'notice_location' => $this->get_option( 'notice_location' ),
|
83 |
+
'notice_selector' => $this->get_notice_css_selector(),
|
84 |
+
'installments' => array(
|
85 |
+
'loading' => __( 'Loading installments...', 'woo-stripe-payment' )
|
86 |
+
)
|
87 |
Â
)
|
88 |
Â
);
|
89 |
Â
}
|
279 |
Â
return $selector;
|
280 |
Â
}
|
281 |
Â
|
282 |
+
public function is_installment_available() {
|
283 |
+
$order_id = null;
|
284 |
+
if ( is_checkout_pay_page() ) {
|
285 |
+
global $wp;
|
286 |
+
$order_id = absint( $wp->query_vars['order-pay'] );
|
287 |
+
}
|
288 |
+
|
289 |
+
return $this->installments->is_available( $order_id );
|
290 |
+
}
|
291 |
+
|
292 |
Â
}
|
includes/traits/wc-stripe-payment-traits.php
CHANGED
@@ -22,7 +22,7 @@ trait WC_Stripe_Payment_Intent_Trait {
|
|
22 |
Â
*
|
23 |
Â
* @param WC_Order $order
|
24 |
Â
*/
|
25 |
-
public function get_confirmation_method( $order ) {
|
26 |
Â
return 'manual';
|
27 |
Â
}
|
28 |
Â
|
@@ -57,7 +57,16 @@ trait WC_Stripe_Payment_Intent_Trait {
|
|
57 |
Â
* @param WC_Order $order
|
58 |
Â
*/
|
59 |
Â
public function get_payment_intent_confirmation_args( $intent, $order ) {
|
60 |
-
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
61 |
Â
}
|
62 |
Â
|
63 |
Â
/**
|
@@ -300,7 +309,7 @@ trait WC_Stripe_Local_Payment_Intent_Trait {
|
|
300 |
Â
*
|
301 |
Â
* @param WC_Order $order
|
302 |
Â
*/
|
303 |
-
public function get_confirmation_method( $order ) {
|
304 |
Â
return 'automatic';
|
305 |
Â
}
|
306 |
Â
|
22 |
Â
*
|
23 |
Â
* @param WC_Order $order
|
24 |
Â
*/
|
25 |
+
public function get_confirmation_method( $order = null ) {
|
26 |
Â
return 'manual';
|
27 |
Â
}
|
28 |
Â
|
57 |
Â
* @param WC_Order $order
|
58 |
Â
*/
|
59 |
Â
public function get_payment_intent_confirmation_args( $intent, $order ) {
|
60 |
+
$args = array();
|
61 |
+
if ( ! empty( $intent->payment_method_options->card->installments->available_plans ) ) {
|
62 |
+
$plan_id = isset( $_POST[ WC_Stripe_Constants::INSTALLMENT_PLAN ] ) ? wc_clean( $_POST[ WC_Stripe_Constants::INSTALLMENT_PLAN ] ) : null;
|
63 |
+
$formatter = new \PaymentPlugins\Stripe\Installments\InstallmentFormatter();
|
64 |
+
if ( $formatter->is_valid_plan( $plan_id ) ) {
|
65 |
+
$args = array( 'payment_method_options' => array( 'card' => array( 'installments' => array( 'plan' => $formatter->parse_plan_from_id( $plan_id ) ) ) ) );
|
66 |
+
}
|
67 |
+
}
|
68 |
+
|
69 |
+
return $args;
|
70 |
Â
}
|
71 |
Â
|
72 |
Â
/**
|
309 |
Â
*
|
310 |
Â
* @param WC_Order $order
|
311 |
Â
*/
|
312 |
+
public function get_confirmation_method( $order = null ) {
|
313 |
Â
return 'automatic';
|
314 |
Â
}
|
315 |
Â
|
includes/updates/update-3.3.19.php
ADDED
@@ -0,0 +1,13 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || exit();
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Load the test mode account details
|
7 |
+
*/
|
8 |
+
if ( function_exists( 'WC' ) ) {
|
9 |
+
$account_settings = stripe_wc()->account_settings;
|
10 |
+
if ( $account_settings ) {
|
11 |
+
$account_settings->save_account_settings( null, WC_Stripe_Constants::TEST );
|
12 |
+
}
|
13 |
+
}
|
packages/blocks/assets/js/components/checkout/index.js
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
Â
export * from './payment-method-label';
|
2 |
Â
export * from './checkbox';
|
3 |
Â
export * from './radio-option';
|
4 |
-
export * from './payment-method';
|
Â
|
1 |
Â
export * from './payment-method-label';
|
2 |
Â
export * from './checkbox';
|
3 |
Â
export * from './radio-option';
|
4 |
+
export * from './payment-method';
|
5 |
+
export * from './installments';
|
packages/blocks/assets/js/components/checkout/installments/index.js
ADDED
@@ -0,0 +1,97 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
import {useState, useRef, useEffect} from '@wordpress/element';
|
2 |
+
import {__} from '@wordpress/i18n';
|
3 |
+
import apiFetch from '@wordpress/api-fetch';
|
4 |
+
import classnames from 'classnames';
|
5 |
+
import {StripeError, getRoute} from "../../../payment-methods/util";
|
6 |
+
import './style.scss';
|
7 |
+
|
8 |
+
export const Installments = (
|
9 |
+
{
|
10 |
+
paymentMethodName,
|
11 |
+
stripe,
|
12 |
+
getCreatePaymentMethodArgs,
|
13 |
+
cardFormComplete = false,
|
14 |
+
addPaymentMethodData
|
15 |
+
}) => {
|
16 |
+
const [installments, setInstallments] = useState(null);
|
17 |
+
const [installment, setInstallment] = useState('');
|
18 |
+
const [loading, setLoading] = useState(false);
|
19 |
+
const onInstallmentSelected = (e) => {
|
20 |
+
setInstallment(e.target.value);
|
21 |
+
addPaymentMethodData({_stripe_installment_plan: e.target.value});
|
22 |
+
}
|
23 |
+
useEffect(async () => {
|
24 |
+
if (cardFormComplete) {
|
25 |
+
// fetch the installments
|
26 |
+
try {
|
27 |
+
setLoading(true);
|
28 |
+
setInstallment('');
|
29 |
+
let result = await stripe.createPaymentMethod(getCreatePaymentMethodArgs());
|
30 |
+
if (result.error) {
|
31 |
+
throw new StripeError(result.error);
|
32 |
+
}
|
33 |
+
// fetch the installment plans
|
34 |
+
result = await apiFetch({
|
35 |
+
url: getRoute('create/payment_intent'),
|
36 |
+
method: 'POST',
|
37 |
+
data: {payment_method_id: result.paymentMethod.id, payment_method: paymentMethodName}
|
38 |
+
});
|
39 |
+
setInstallments(result.installments);
|
40 |
+
if (Object.keys(result.installments)?.length) {
|
41 |
+
setInstallment(Object.keys(result.installments)[0]);
|
42 |
+
}
|
43 |
+
} catch (error) {
|
44 |
+
|
45 |
+
} finally {
|
46 |
+
setLoading(false);
|
47 |
+
}
|
48 |
+
}
|
49 |
+
}, [cardFormComplete]);
|
50 |
+
|
51 |
+
return (
|
52 |
+
<div className='wc-stripe-installments__container'>
|
53 |
+
<label>
|
54 |
+
{__('Pay in installments:', 'woo-stripe-payment')}
|
55 |
+
<Loader loading={loading}/>
|
56 |
+
</label>
|
57 |
+
<InstallmentOptions
|
58 |
+
installment={installment}
|
59 |
+
onChange={onInstallmentSelected}
|
60 |
+
installments={installments}
|
61 |
+
isLoading={loading}/>
|
62 |
+
</div>
|
63 |
+
)
|
64 |
+
}
|
65 |
+
|
66 |
+
const InstallmentOptions = ({installment, installments, onChange, isLoading}) => {
|
67 |
+
let OPTIONS = null;
|
68 |
+
if (isLoading) {
|
69 |
+
OPTIONS = <option value="" disabled>{__('Loading installments...', 'woo-stripe-payment')}</option>
|
70 |
+
} else {
|
71 |
+
if (installments === null) {
|
72 |
+
OPTIONS = <option value="" disabled>{__('Fill out card form for eligibility.', 'woo-stripe-payment')}</option>
|
73 |
+
} else {
|
74 |
+
OPTIONS = Object.keys(installments).map(id => {
|
75 |
+
return <option key={id} value={id} dangerouslySetInnerHTML={{__html: installments[id].text}}/>
|
76 |
+
});
|
77 |
+
}
|
78 |
+
}
|
79 |
+
return (
|
80 |
+
<select value={installment} onChange={onChange} className={classnames({loading: isLoading})}>
|
81 |
+
{OPTIONS}
|
82 |
+
</select>
|
83 |
+
);
|
84 |
+
}
|
85 |
+
|
86 |
+
const Loader = ({loading}) => {
|
87 |
+
return (
|
88 |
+
<div className="wc-stripe-installment-loader__container">
|
89 |
+
{loading && <div className="wc-stripe-installment-loader">
|
90 |
+
<div></div>
|
91 |
+
<div></div>
|
92 |
+
<div></div>
|
93 |
+
</div>}
|
94 |
+
</div>
|
95 |
+
);
|
96 |
+
}
|
97 |
+
export default Installments;
|
packages/blocks/assets/js/components/checkout/installments/style.scss
ADDED
@@ -0,0 +1,34 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
.wc-stripe-installments__container {
|
2 |
+
margin-top: 10px;
|
3 |
+
|
4 |
+
label {
|
5 |
+
font-weight: 500;
|
6 |
+
position: relative;
|
7 |
+
display: flex;
|
8 |
+
margin: 0 0 5px 0;
|
9 |
+
}
|
10 |
+
|
11 |
+
select {
|
12 |
+
padding-right: 25px;
|
13 |
+
background-image: url("data:image/svg+xml,%3Csvg width='21' height='13' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M18.5.379L20.621 2.5 10.5 12.621.379 2.5 2.5.379l8 8z' fill='%234F5D6D' fill-rule='nonzero'/%3E%3C/svg%3E");
|
14 |
+
background-repeat: no-repeat, repeat;
|
15 |
+
background-size: 8px auto, 100%;
|
16 |
+
background-position: right 10px top 50%, 0 0;
|
17 |
+
|
18 |
+
&.loading {
|
19 |
+
opacity: 0.4;
|
20 |
+
}
|
21 |
+
}
|
22 |
+
|
23 |
+
.wc-stripe-installment-loader__container {
|
24 |
+
flex: 1 1 auto;
|
25 |
+
|
26 |
+
.wc-stripe-installment-loader {
|
27 |
+
width: 30px;
|
28 |
+
height: 30px;
|
29 |
+
transform: scale(.55);
|
30 |
+
position: absolute;
|
31 |
+
top: -2px;
|
32 |
+
}
|
33 |
+
}
|
34 |
+
}
|
packages/blocks/assets/js/payment-methods/credit-card/components/custom-card-form.js
CHANGED
@@ -13,7 +13,8 @@ const classes = {
|
|
13 |
Â
const CustomCardForm = (
|
14 |
Â
{
|
15 |
Â
getData,
|
16 |
-
onChange: eventChange
|
Â
|
|
17 |
Â
}) => {
|
18 |
Â
const [cardType, setCardType] = useState('');
|
19 |
Â
const elementOrder = useRef([]);
|
@@ -23,6 +24,7 @@ const CustomCardForm = (
|
|
23 |
Â
const {component: CardForm = null, breakpoint = 475} = getCreditCardForm(id);
|
24 |
Â
const postalCodeEnabled = getData('postalCodeEnabled');
|
25 |
Â
const options = {};
|
Â
|
|
26 |
Â
['cardNumber', 'cardExpiry', 'cardCvc'].forEach(type => {
|
27 |
Â
options[type] = {
|
28 |
Â
classes,
|
@@ -34,6 +36,7 @@ const CustomCardForm = (
|
|
34 |
Â
setElementOrder(element);
|
35 |
Â
return (event) => {
|
36 |
Â
eventChange(event);
|
Â
|
|
37 |
Â
if (event.elementType === 'cardNumber') {
|
38 |
Â
if (event.brand === 'unknown') {
|
39 |
Â
setCardType('');
|
@@ -48,8 +51,15 @@ const CustomCardForm = (
|
|
48 |
Â
elements.getElement(nextElement).focus();
|
49 |
Â
}
|
50 |
Â
}
|
Â
|
|
51 |
Â
}
|
52 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
53 |
Â
const setElementOrder = useCallback((element) => {
|
54 |
Â
if (!elementOrder.current.includes(element)) {
|
55 |
Â
elementOrder.current.push(element);
|
13 |
Â
const CustomCardForm = (
|
14 |
Â
{
|
15 |
Â
getData,
|
16 |
+
onChange: eventChange,
|
17 |
+
onComplete
|
18 |
Â
}) => {
|
19 |
Â
const [cardType, setCardType] = useState('');
|
20 |
Â
const elementOrder = useRef([]);
|
24 |
Â
const {component: CardForm = null, breakpoint = 475} = getCreditCardForm(id);
|
25 |
Â
const postalCodeEnabled = getData('postalCodeEnabled');
|
26 |
Â
const options = {};
|
27 |
+
const elementStatus = useRef({'cardNumber': {}, 'cardExpiry': {}, 'cardCvc': {}});
|
28 |
Â
['cardNumber', 'cardExpiry', 'cardCvc'].forEach(type => {
|
29 |
Â
options[type] = {
|
30 |
Â
classes,
|
36 |
Â
setElementOrder(element);
|
37 |
Â
return (event) => {
|
38 |
Â
eventChange(event);
|
39 |
+
elementStatus.current[event.elementType] = event;
|
40 |
Â
if (event.elementType === 'cardNumber') {
|
41 |
Â
if (event.brand === 'unknown') {
|
42 |
Â
setCardType('');
|
51 |
Â
elements.getElement(nextElement).focus();
|
52 |
Â
}
|
53 |
Â
}
|
54 |
+
onComplete(isFormComplete());
|
55 |
Â
}
|
56 |
Â
}
|
57 |
+
|
58 |
+
const isFormComplete = () => {
|
59 |
+
let status = elementStatus.current;
|
60 |
+
return Object.keys(status).filter(key => !!status[key].complete).length === Object.keys(status).length;
|
61 |
+
}
|
62 |
+
|
63 |
Â
const setElementOrder = useCallback((element) => {
|
64 |
Â
if (!elementOrder.current.includes(element)) {
|
65 |
Â
elementOrder.current.push(element);
|
packages/blocks/assets/js/payment-methods/credit-card/components/stripe-card-form.js
CHANGED
@@ -2,7 +2,16 @@ import {CardElement} from "@stripe/react-stripe-js";
|
|
2 |
Â
import {isFieldRequired} from "../../util";
|
3 |
Â
import {useMemo} from '@wordpress/element';
|
4 |
Â
|
5 |
-
const StripeCardForm = ({getData, billing, onChange}) => {
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
6 |
Â
const cardOptions = useMemo(() => {
|
7 |
Â
return {
|
8 |
Â
...{
|
2 |
Â
import {isFieldRequired} from "../../util";
|
3 |
Â
import {useMemo} from '@wordpress/element';
|
4 |
Â
|
5 |
+
const StripeCardForm = ({getData, billing, onChange: eventChange, onComplete}) => {
|
6 |
+
const elementStatus = {card: {}};
|
7 |
+
const onChange = (event) => {
|
8 |
+
eventChange(event);
|
9 |
+
elementStatus[event.elementType] = event;
|
10 |
+
onComplete(isFormComplete);
|
11 |
+
}
|
12 |
+
const isFormComplete = () => {
|
13 |
+
return Object.keys(elementStatus).filter(type => !!elementStatus[type].complete).length === Object.keys(elementStatus).length;
|
14 |
+
}
|
15 |
Â
const cardOptions = useMemo(() => {
|
16 |
Â
return {
|
17 |
Â
...{
|
packages/blocks/assets/js/payment-methods/credit-card/payment-method.js
CHANGED
@@ -12,6 +12,7 @@ import {PaymentMethodLabel, PaymentMethod, SavePaymentMethod} from '../../compon
|
|
12 |
Â
import SavedCardComponent from '../saved-card-component';
|
13 |
Â
import CustomCardForm from './components/custom-card-form';
|
14 |
Â
import StripeCardForm from "./components/stripe-card-form";
|
Â
|
|
15 |
Â
import {
|
16 |
Â
useProcessPaymentIntent,
|
17 |
Â
useAfterProcessingPayment,
|
@@ -54,6 +55,7 @@ const CreditCardElement = (
|
|
54 |
Â
}) => {
|
55 |
Â
const [error, setError] = useStripeError();
|
56 |
Â
const [savePaymentMethod, setSavePaymentMethod] = useState(false);
|
Â
|
|
57 |
Â
const onSavePaymentMethod = (checked) => setSavePaymentMethod(checked);
|
58 |
Â
const {onPaymentProcessing} = eventRegistration;
|
59 |
Â
const stripe = useStripe();
|
@@ -69,7 +71,7 @@ const CreditCardElement = (
|
|
69 |
Â
setError
|
70 |
Â
})
|
71 |
Â
|
72 |
-
useProcessPaymentIntent({
|
73 |
Â
getData,
|
74 |
Â
billing,
|
75 |
Â
shippingData,
|
@@ -100,11 +102,17 @@ const CreditCardElement = (
|
|
100 |
Â
const Tag = getData('customFormActive') ? CustomCardForm : StripeCardForm;
|
101 |
Â
return (
|
102 |
Â
<div className='wc-stripe-card-container'>
|
103 |
-
<Tag {...{getData, billing, onChange}}/>
|
104 |
Â
{displaySaveCard(billing.customerId) &&
|
105 |
Â
<SavePaymentMethod label={getData('savePaymentMethodLabel')}
|
106 |
Â
onChange={onSavePaymentMethod}
|
107 |
Â
checked={savePaymentMethod}/>}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
108 |
Â
</div>
|
109 |
Â
);
|
110 |
Â
}
|
12 |
Â
import SavedCardComponent from '../saved-card-component';
|
13 |
Â
import CustomCardForm from './components/custom-card-form';
|
14 |
Â
import StripeCardForm from "./components/stripe-card-form";
|
15 |
+
import {Installments} from '../../components/checkout';
|
16 |
Â
import {
|
17 |
Â
useProcessPaymentIntent,
|
18 |
Â
useAfterProcessingPayment,
|
55 |
Â
}) => {
|
56 |
Â
const [error, setError] = useStripeError();
|
57 |
Â
const [savePaymentMethod, setSavePaymentMethod] = useState(false);
|
58 |
+
const [formComplete, setFormComplete] = useState(false);
|
59 |
Â
const onSavePaymentMethod = (checked) => setSavePaymentMethod(checked);
|
60 |
Â
const {onPaymentProcessing} = eventRegistration;
|
61 |
Â
const stripe = useStripe();
|
71 |
Â
setError
|
72 |
Â
})
|
73 |
Â
|
74 |
+
const {getCreatePaymentMethodArgs, addPaymentMethodData} = useProcessPaymentIntent({
|
75 |
Â
getData,
|
76 |
Â
billing,
|
77 |
Â
shippingData,
|
102 |
Â
const Tag = getData('customFormActive') ? CustomCardForm : StripeCardForm;
|
103 |
Â
return (
|
104 |
Â
<div className='wc-stripe-card-container'>
|
105 |
+
<Tag {...{getData, billing, onChange}} onComplete={setFormComplete}/>
|
106 |
Â
{displaySaveCard(billing.customerId) &&
|
107 |
Â
<SavePaymentMethod label={getData('savePaymentMethodLabel')}
|
108 |
Â
onChange={onSavePaymentMethod}
|
109 |
Â
checked={savePaymentMethod}/>}
|
110 |
+
{getData('installmentsActive') && <Installments
|
111 |
+
paymentMethodName={getData('name')}
|
112 |
+
stripe={stripe}
|
113 |
+
cardFormComplete={formComplete}
|
114 |
+
getCreatePaymentMethodArgs={getCreatePaymentMethodArgs}
|
115 |
+
addPaymentMethodData={addPaymentMethodData}/>}
|
116 |
Â
</div>
|
117 |
Â
);
|
118 |
Â
}
|
packages/blocks/assets/js/payment-methods/googlepay/button.js
CHANGED
@@ -4,7 +4,7 @@ import {
|
|
4 |
Â
useProcessPaymentIntent,
|
5 |
Â
useStripeError,
|
6 |
Â
useExportedValues,
|
7 |
-
useExpressBreakpointWidth
|
8 |
Â
} from '../hooks';
|
9 |
Â
import {getSettings} from '@paymentplugins/stripe/util';
|
10 |
Â
|
@@ -71,6 +71,13 @@ const GooglePayButton = (
|
|
71 |
Â
getData
|
72 |
Â
});
|
73 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
74 |
Â
useExpressBreakpointWidth({payment_method: getData('name'), width});
|
75 |
Â
|
76 |
Â
useEffect(() => {
|
4 |
Â
useProcessPaymentIntent,
|
5 |
Â
useStripeError,
|
6 |
Â
useExportedValues,
|
7 |
+
useExpressBreakpointWidth, useAfterProcessingPayment
|
8 |
Â
} from '../hooks';
|
9 |
Â
import {getSettings} from '@paymentplugins/stripe/util';
|
10 |
Â
|
71 |
Â
getData
|
72 |
Â
});
|
73 |
Â
|
74 |
+
useAfterProcessingPayment({
|
75 |
+
getData,
|
76 |
+
eventRegistration,
|
77 |
+
responseTypes: emitResponse.responseTypes,
|
78 |
+
activePaymentMethod
|
79 |
+
});
|
80 |
+
|
81 |
Â
useExpressBreakpointWidth({payment_method: getData('name'), width});
|
82 |
Â
|
83 |
Â
useEffect(() => {
|
packages/blocks/assets/js/payment-methods/hooks/use-process-payment-intent.js
CHANGED
@@ -30,11 +30,15 @@ export const useProcessPaymentIntent = (
|
|
30 |
Â
const [paymentMethod, setPaymentMethod] = useState(null);
|
31 |
Â
const stripe = useStripe();
|
32 |
Â
const currentPaymentMethodArgs = useRef(getPaymentMethodArgs);
|
33 |
-
|
34 |
Â
useEffect(() => {
|
35 |
Â
currentPaymentMethodArgs.current = getPaymentMethodArgs;
|
36 |
Â
}, [getPaymentMethodArgs]);
|
37 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
38 |
Â
const getCreatePaymentMethodArgs = useCallback(() => {
|
39 |
Â
const args = {
|
40 |
Â
type: paymentType,
|
@@ -48,7 +52,8 @@ export const useProcessPaymentIntent = (
|
|
48 |
Â
meta: {
|
49 |
Â
paymentMethodData: {
|
50 |
Â
[`${getData('name')}_token_key`]: paymentMethodId,
|
51 |
-
[`${getData('name')}_save_source_key`]: savePaymentMethod
|
Â
|
|
52 |
Â
}
|
53 |
Â
}
|
54 |
Â
}
|
@@ -117,5 +122,9 @@ export const useProcessPaymentIntent = (
|
|
117 |
Â
activePaymentMethod,
|
118 |
Â
savePaymentMethod
|
119 |
Â
]);
|
120 |
-
return {
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
121 |
Â
}
|
30 |
Â
const [paymentMethod, setPaymentMethod] = useState(null);
|
31 |
Â
const stripe = useStripe();
|
32 |
Â
const currentPaymentMethodArgs = useRef(getPaymentMethodArgs);
|
33 |
+
const paymentMethodData = useRef({});
|
34 |
Â
useEffect(() => {
|
35 |
Â
currentPaymentMethodArgs.current = getPaymentMethodArgs;
|
36 |
Â
}, [getPaymentMethodArgs]);
|
37 |
Â
|
38 |
+
const addPaymentMethodData = useCallback((data) => {
|
39 |
+
paymentMethodData.current = {...paymentMethodData.current, ...data};
|
40 |
+
}, []);
|
41 |
+
|
42 |
Â
const getCreatePaymentMethodArgs = useCallback(() => {
|
43 |
Â
const args = {
|
44 |
Â
type: paymentType,
|
52 |
Â
meta: {
|
53 |
Â
paymentMethodData: {
|
54 |
Â
[`${getData('name')}_token_key`]: paymentMethodId,
|
55 |
+
[`${getData('name')}_save_source_key`]: savePaymentMethod,
|
56 |
+
...paymentMethodData.current
|
57 |
Â
}
|
58 |
Â
}
|
59 |
Â
}
|
122 |
Â
activePaymentMethod,
|
123 |
Â
savePaymentMethod
|
124 |
Â
]);
|
125 |
+
return {
|
126 |
+
setPaymentMethod,
|
127 |
+
getCreatePaymentMethodArgs,
|
128 |
+
addPaymentMethodData
|
129 |
+
};
|
130 |
Â
}
|
packages/blocks/assets/js/payment-methods/local-payment/afterpay.js
CHANGED
@@ -6,12 +6,26 @@ import {PaymentMethod} from "../../components/checkout";
|
|
6 |
Â
import {canMakePayment} from "./local-payment-method";
|
7 |
Â
import {AfterpayClearpayMessageElement, Elements} from "@stripe/react-stripe-js";
|
8 |
Â
import {sprintf, __} from '@wordpress/i18n';
|
Â
|
|
Â
|
|
9 |
Â
|
10 |
Â
const getData = getSettings('stripe_afterpay_data');
|
11 |
Â
let variablesHandler;
|
12 |
Â
const setVariablesHandler = (handler) => {
|
13 |
Â
variablesHandler = handler;
|
14 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
15 |
Â
const PaymentMethodLabel = ({getData}) => {
|
16 |
Â
const [variables, setVariables] = useState({
|
17 |
Â
amount: getData('cartTotal'),
|
@@ -66,6 +80,32 @@ const AfterpayPaymentMethod = ({content, billing, shippingData, ...props}) => {
|
|
66 |
Â
);
|
67 |
Â
}
|
68 |
Â
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
69 |
Â
if (getData()) {
|
70 |
Â
registerPaymentMethod({
|
71 |
Â
name: getData('name'),
|
@@ -75,9 +115,6 @@ if (getData()) {
|
|
75 |
Â
placeOrderButtonLabel: getData('placeOrderButtonLabel'),
|
76 |
Â
canMakePayment: canMakePayment(getData, ({settings, cartTotals, cartNeedsShipping}) => {
|
77 |
Â
const {currency_code: currency, currency_minor_unit, total_price} = cartTotals;
|
78 |
-
const requiredParams = settings('requiredParams');
|
79 |
-
const accountCountry = settings('accountCountry');
|
80 |
-
const requiredParamObj = requiredParams[currency] ? requiredParams[currency] : false;
|
81 |
Â
if (variablesHandler) {
|
82 |
Â
variablesHandler({
|
83 |
Â
amount: parseInt(cartTotals.total_price),
|
@@ -85,8 +122,8 @@ if (getData()) {
|
|
85 |
Â
isEligible: cartNeedsShipping
|
86 |
Â
});
|
87 |
Â
}
|
88 |
-
const total = parseInt(total_price) / 10 ** currency_minor_unit;
|
89 |
-
const available =
|
90 |
Â
if (!available && !settings('hideIneligible')) {
|
91 |
Â
return true;
|
92 |
Â
}
|
@@ -102,5 +139,17 @@ if (getData()) {
|
|
102 |
Â
showSaveOption: false,
|
103 |
Â
features: getData('features')
|
104 |
Â
}
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
105 |
Â
})
|
106 |
Â
}
|
6 |
Â
import {canMakePayment} from "./local-payment-method";
|
7 |
Â
import {AfterpayClearpayMessageElement, Elements} from "@stripe/react-stripe-js";
|
8 |
Â
import {sprintf, __} from '@wordpress/i18n';
|
9 |
+
import {ExperimentalOrderMeta, TotalsWrapper} from '@woocommerce/blocks-checkout';
|
10 |
+
import {registerPlugin} from '@wordpress/plugins';
|
11 |
Â
|
12 |
Â
const getData = getSettings('stripe_afterpay_data');
|
13 |
Â
let variablesHandler;
|
14 |
Â
const setVariablesHandler = (handler) => {
|
15 |
Â
variablesHandler = handler;
|
16 |
Â
}
|
17 |
+
|
18 |
+
const isAvailable = ({total, currency, needsShipping}) => {
|
19 |
+
let available = false;
|
20 |
+
const requiredParams = getData('requiredParams');
|
21 |
+
const accountCountry = getData('accountCountry');
|
22 |
+
const requiredParamObj = requiredParams.hasOwnProperty(currency) ? requiredParams[currency] : false;
|
23 |
+
if (requiredParamObj) {
|
24 |
+
available = accountCountry === requiredParamObj?.[0] && needsShipping && (total > requiredParamObj?.[1] && total < requiredParamObj?.[2]);
|
25 |
+
}
|
26 |
+
return available;
|
27 |
+
}
|
28 |
+
|
29 |
Â
const PaymentMethodLabel = ({getData}) => {
|
30 |
Â
const [variables, setVariables] = useState({
|
31 |
Â
amount: getData('cartTotal'),
|
80 |
Â
);
|
81 |
Â
}
|
82 |
Â
|
83 |
+
const OrderItemMessaging = ({cart, extensions, context}) => {
|
84 |
+
const {cartTotals, cartNeedsShipping: needsShipping} = cart;
|
85 |
+
const {total_price, currency_code: currency} = cartTotals;
|
86 |
+
const amount = parseInt(cartTotals.total_price);
|
87 |
+
const total = parseInt(cartTotals.total_price) / (10 ** cartTotals.currency_minor_unit);
|
88 |
+
if (!isAvailable({total, currency, needsShipping})) {
|
89 |
+
return null;
|
90 |
+
}
|
91 |
+
return (
|
92 |
+
<TotalsWrapper>
|
93 |
+
<Elements stripe={initStripe} options={getData('elementOptions')}>
|
94 |
+
<div className='wc-stripe-blocks-afterpay-totals__item wc-block-components-totals-item'>
|
95 |
+
<AfterpayClearpayMessageElement options={{
|
96 |
+
...getData('msgOptions'),
|
97 |
+
...{
|
98 |
+
amount,
|
99 |
+
currency,
|
100 |
+
isEligible: needsShipping
|
101 |
+
}
|
102 |
+
}}/>
|
103 |
+
</div>
|
104 |
+
</Elements>
|
105 |
+
</TotalsWrapper>
|
106 |
+
);
|
107 |
+
}
|
108 |
+
|
109 |
Â
if (getData()) {
|
110 |
Â
registerPaymentMethod({
|
111 |
Â
name: getData('name'),
|
115 |
Â
placeOrderButtonLabel: getData('placeOrderButtonLabel'),
|
116 |
Â
canMakePayment: canMakePayment(getData, ({settings, cartTotals, cartNeedsShipping}) => {
|
117 |
Â
const {currency_code: currency, currency_minor_unit, total_price} = cartTotals;
|
Â
|
|
Â
|
|
Â
|
|
118 |
Â
if (variablesHandler) {
|
119 |
Â
variablesHandler({
|
120 |
Â
amount: parseInt(cartTotals.total_price),
|
122 |
Â
isEligible: cartNeedsShipping
|
123 |
Â
});
|
124 |
Â
}
|
125 |
+
const total = parseInt(total_price) / (10 ** currency_minor_unit);
|
126 |
+
const available = isAvailable({total, currency, needsShipping: cartNeedsShipping});
|
127 |
Â
if (!available && !settings('hideIneligible')) {
|
128 |
Â
return true;
|
129 |
Â
}
|
139 |
Â
showSaveOption: false,
|
140 |
Â
features: getData('features')
|
141 |
Â
}
|
142 |
+
});
|
143 |
+
|
144 |
+
const render = () => {
|
145 |
+
return (
|
146 |
+
<ExperimentalOrderMeta>
|
147 |
+
<OrderItemMessaging/>
|
148 |
+
</ExperimentalOrderMeta>
|
149 |
+
)
|
150 |
+
}
|
151 |
+
registerPlugin('wc-stripe', {
|
152 |
+
render: render,
|
153 |
+
scope: 'woocommerce-checkout'
|
154 |
Â
})
|
155 |
Â
}
|
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,_=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
|
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 s=e[o](i),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).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 s(e){t(i,a,o,s,c,"next",e)}function c(e){t(i,a,o,s,c,"throw",e)}s(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,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.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 s(t){var n="function"==typeof Map?new Map:void 0;return e.exports=s=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)},s(t)}e.exports=s},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,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.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 s(){}s.resetWarningCache=i;var c,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:s,resetWarningCache:i};return n.PropTypes=n,n}()}(c={exports:{}},c.exports),c.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 s={},c=0;c<o.length;c+=1)s[o[c]]=!0;for(var u=0;u<i.length;u+=1)s[i[u]]=!0;var d=Object.keys(s);if(d.length!==o.length)return!1;var m=t,f=n;return d.every((function(t){return e(m[t],f[t])}))},m=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),n.current},f=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(f)};var t=f(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),s=t.useRef(!0),c=t.useMemo((function(){return y(n)}),[n]),u=a(t.useState((function(){return{stripe:null,elements:null}})),2),l=u[0],p=u[1],f=m(n),v=m(r);return null!==f&&(f!==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"===c.tag&&(i.current=!0,p({stripe:c.stripe,elements:c.stripe.elements(r)})),"async"===c.tag&&(i.current=!0,c.stripePromise.then((function(e){e&&s.current&&p({stripe:e,elements:e.elements(r)})})))),t.useEffect((function(){return function(){s.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,s=void 0===i?{}:i,c=n.onBlur,u=void 0===c?O:c,l=n.onFocus,p=void 0===l?O:l,m=n.onReady,f=void 0===m?O:m,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(f),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,s);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(s);return t.useEffect((function(){I.current&&I.current.paymentRequest!==s.paymentRequest&&console.warn("Unsupported prop change: options.paymentRequest is not a customizable property.");var e=E(s);0===Object.keys(e).length||d(e,E(I.current))||C.current&&(C.current.update(e),I.current=s)}),[s]),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,s=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},c=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;c.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 c.then((function(e){return s(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]}}))}));var s=n(3193);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]}}))}))},3193:(e,t,n)=>{var r=n(3027),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.Installments=void 0;var o=a(n(7015)),i=a(n(8926)),s=a(n(3038)),c=n(3027),u=n(3163),l=a(n(7606)),p=a(n(4184)),d=n(1134);n(1465);var m=function(e){var t=e.paymentMethodName,n=e.stripe,a=e.getCreatePaymentMethodArgs,p=e.cardFormComplete,m=void 0!==p&&p,g=e.addPaymentMethodData,v=(0,c.useState)(null),h=(0,s.default)(v,2),b=h[0],P=h[1],E=(0,c.useState)(""),O=(0,s.default)(E,2),S=O[0],_=O[1],w=(0,c.useState)(!1),C=(0,s.default)(w,2),M=C[0],k=C[1];return(0,c.useEffect)((0,i.default)(o.default.mark((function e(){var r,i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!m){e.next=21;break}return e.prev=1,k(!0),_(""),e.next=6,n.createPaymentMethod(a());case 6:if(!(i=e.sent).error){e.next=9;break}throw new d.StripeError(i.error);case 9:return e.next=11,(0,l.default)({url:(0,d.getRoute)("create/payment_intent"),method:"POST",data:{payment_method_id:i.paymentMethod.id,payment_method:t}});case 11:i=e.sent,P(i.installments),null!==(r=Object.keys(i.installments))&&void 0!==r&&r.length&&_(Object.keys(i.installments)[0]),e.next=18;break;case 16:e.prev=16,e.t0=e.catch(1);case 18:return e.prev=18,k(!1),e.finish(18);case 21:case"end":return e.stop()}}),e,null,[[1,16,18,21]])}))),[m]),r.createElement("div",{className:"wc-stripe-installments__container"},r.createElement("label",null,(0,u.__)("Pay in installments:","woo-stripe-payment"),r.createElement(y,{loading:M})),r.createElement(f,{installment:S,onChange:function(e){_(e.target.value),g({_stripe_installment_plan:e.target.value})},installments:b,isLoading:M}))};t.Installments=m;var f=function(e){var t,n=e.installment,a=e.installments,o=e.onChange,i=e.isLoading;return t=i?r.createElement("option",{value:"",disabled:!0},(0,u.__)("Loading installments...","woo-stripe-payment")):null===a?r.createElement("option",{value:"",disabled:!0},(0,u.__)("Fill out card form for eligibility.","woo-stripe-payment")):Object.keys(a).map((function(e){return r.createElement("option",{key:e,value:e,dangerouslySetInnerHTML:{__html:a[e].text}})})),r.createElement("select",{value:n,onChange:o,className:(0,p.default)({loading:i})},t)},y=function(e){var t=e.loading;return r.createElement("div",{className:"wc-stripe-installment-loader__container"},t&&r.createElement("div",{className:"wc-stripe-installment-loader"},r.createElement("div",null),r.createElement("div",null),r.createElement("div",null)))},g=m;t.default=g},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,s=i.PaymentMethodLabel,c=i.PaymentMethodIcons;return Array.isArray(n)||(n=[n]),r.createElement("span",{className:"wc-stripe-label-container ".concat(a)},r.createElement(s,{text:t}),r.createElement(c,{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)),s=n(3027);function c(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?c(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(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,c=t("description"),p=(0,s.useRef)(null);return(0,s.useEffect)((function(){p.current&&0==p.current.childNodes.length&&p.current.classList.add("no-content")})),r.createElement(r.Fragment,null,c&&r.createElement(l,{desc:c,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 s=i;t.default=s},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)),s=n(3027),c=r(n(7606)),u=n(1134);t.useCreateLinkToken=function(e){var t=e.setValidationError,n=(0,s.useState)(!1),r=(0,i.default)(n,2),l=r[0],p=r[1],d=(0,s.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,c.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,s.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),s=(0,a.useRef)(null),c=(0,a.useCallback)((function(){return new Promise((function(e,t){s.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){s.current.resolve({publicToken:e,metaData:t})},onExit:function(e){s.current.reject(!!e&&(0,i.getErrorMessage)(e.error_message))}}))}),[n]),c}},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)),s=n(3027),c=n(1134);t.useProcessPayment=function(e){var t=e.openLinkPopup,n=e.onPaymentProcessing,r=e.responseTypes,u=e.paymentMethod;(0,s.useEffect)((function(){var e=n((0,i.default)(a.default.mark((function e(){var n,i,s,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,s=i.publicToken,l=i.metaData,(0,c.deleteFromCache)("linkToken"),e.abrupt("return",(0,c.ensureSuccessResponse)(r,{meta:{paymentMethodData:(n={},(0,o.default)(n,"".concat(u,"_token_key"),s),(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,c.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)),s=n(3027),c=n(4222),u=n(1134),l=n(3187),p=a(n(1065)),d=n(7260),m=n(3636),f=n(3163),y=(0,u.getSettings)("stripe_ach_data"),g=function(e){var t=e.getData,n=e.eventRegistration,a=e.components,c=e.emitResponse,l=e.onSubmit,p=((0,i.default)(e,["getData","eventRegistration","components","emitResponse","onSubmit"]),c.responseTypes),f=n.onPaymentProcessing,y=n.onCheckoutAfterProcessingWithError,g=a.ValidationInputError,h=(0,s.useState)(!1),b=(0,o.default)(h,2),P=b[0],E=b[1],O=(0,d.useCreateLinkToken)({setValidationError:E});(0,m.useProcessCheckoutError)({responseTypes:p,subscriber:y});var S=(0,d.useInitializePlaid)({getData:t,linkToken:O,onSubmit:l});return(0,d.useProcessPayment)({openLinkPopup:S,onPaymentProcessing:f,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,f.__)("Test Credentials","woo-stripe-payment")),r.createElement("div",{className:"wc-stripe-blocks-ach__username"},r.createElement("div",null,r.createElement("strong",null,(0,f.__)("username","woo-stripe-payment")),": user_good"),r.createElement("div",null,r.createElement("strong",null,(0,f.__)("password","woo-stripe-payment")),": pass_good"),r.createElement("div",null,r.createElement("strong",null,(0,f.__)("pin","woo-stripe-payment")),": credential_good")))};(0,c.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)),s=n(3027),c=n(4222),u=n(1134),l=n(6664),p=a(n(7082)),d=n(3636),m=(0,u.getSettings)("stripe_applepay_data"),f=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,c=e.billing,u=e.shippingData,p=e.eventRegistration,m=e.emitResponse,f=e.onSubmit,y=e.activePaymentMethod,g=((0,i.default)(e,["getData","onClick","onClose","billing","shippingData","eventRegistration","emitResponse","onSubmit","activePaymentMethod"]),p.onPaymentProcessing),v=m.responseTypes,h=m.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:c,shippingData:u,onPaymentProcessing:g,emitResponse:m,error:E,onSubmit:f,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:c,shippingData:u,eventRegistration:p,setPaymentMethod:S,exportedValues:O,canPay:function(e){return null!=e&&e.applePay}}).paymentRequest,w=(0,s.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,c.registerExpressPaymentMethod)({name:m("name"),canMakePayment:function(e){var t=e.cartTotals;if((0,i.default)(e,["cartTotals"]),m("isAdmin"))return!0;var n=t.currency_code,r=t.total_price;return(0,u.canMakePayment)({country:m("countryCode"),currency:n.toLowerCase(),total:{label:m("totalLabel"),amount:parseInt(r)}},(function(e){return null!=e&&e.applePay}))},content:r.createElement(f,{getData:m}),edit:r.createElement(g,{getData:m}),supports:{showSavedCards:m("showSavedCards"),showSaveOption:m("showSaveOption"),features:m("features")}})},7354:(e,t,n)=>{var r=n(3027);n(3110);var a=n(1134),o=n(6664),i=n(3163),s=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(s,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)),s=n(1134),c=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 m(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 f={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=e.onComplete,o=(0,c.useState)(""),d=(0,i.default)(o,2),g=d[0],v=d[1],h=(0,c.useRef)([]),b=(0,c.useState)(null),P=(0,i.default)(b,2),E=P[0],O=P[1],S=(0,u.useElements)(),_=t("customForm"),w=(0,s.getCreditCardForm)(_),C=w.component,M=void 0===C?null:C,k=w.breakpoint,j=void 0===k?475:k,D=t("postalCodeEnabled"),x={},R=(0,c.useRef)({cardNumber:{},cardExpiry:{},cardCvc:{}});["cardNumber","cardExpiry","cardCvc"].forEach((function(e){x[e]=m(m({classes:f},t("cardOptions")),t("customFieldOptions")[e])}));var A=(0,c.useCallback)((function(e){h.current.includes(e)||h.current.push(e)}),[]);(0,p.useBreakpointWidth)({name:"creditCardForm",width:j,node:E,className:"small-form"});var I=(0,c.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 M?r.createElement("div",{className:"wc-stripe-custom-form ".concat(_),ref:O},(0,c.cloneElement)(M,{postalCodeEnabled:D,options:x,onChange:function(e){return A(e),function(t){if(n(t),R.current[t.elementType]=t,"cardNumber"===t.elementType&&("unknown"===t.brand?v(""):v(t.brand)),t.complete){var r=h.current.indexOf(e);if(h.current[r+1]){var o=h.current[r+1];S.getElement(o).focus()}}var i;a((i=R.current,Object.keys(i).filter((function(e){return!!i[e].complete})).length===Object.keys(i).length))}},CardIcon:r.createElement(y,{type:g,src:I(g)})})):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")[_])))}},6835:(e,t,n)=>{var r=n(3027);n(8356);var a=n(1134),o=n(6664),i=n(3163),s=n(3027),c=function(e){var t=e.CardIcon,n=e.options,a=e.onChange;return(0,s.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(c,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),s=n(1134),c=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=e.onComplete,u={card:{}},p=function(){return Object.keys(u).filter((function(e){return!!u[e].complete})).length===Object.keys(u).length},d=(0,c.useMemo)((function(){var e;return l(l({},{value:{postalCode:null==n||null===(e=n.billingData)||void 0===e?void 0:e.postcode},hidePostalCode:(0,s.isFieldRequired)("postcode"),iconStyle:"default"}),t("cardOptions"))}),[n.billingData]);return r.createElement("div",{className:"wc-stripe-inline-form"},r.createElement(i.CardElement,{options:d,onChange:function(e){a(e),u[e.elementType]=e,o(p)}}))}},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),s=n(4222),c=n(1134),u=n(6664),l=n(3187),p=a(n(1065)),d=a(n(3329)),m=a(n(9775)),f=n(3636),y=(0,c.getSettings)("stripe_cc_data"),g=function(e){return(0,c.isUserLoggedIn)(e)&&y("saveCardEnabled")&&!(0,c.cartContainsSubscription)()&&!(0,c.cartContainsPreOrder)()},v=function(e){var t=(0,i.useState)(!1),n=(0,o.default)(t,2),a=n[0],s=n[1];if((0,i.useEffect)((function(){c.initStripe.catch((function(e){s(e)}))}),[s]),a)throw new Error(a);return r.createElement(u.Elements,{stripe:c.initStripe,options:y("elementOptions")},r.createElement(h,e))},h=function(e){var t=e.getData,n=e.billing,a=e.shippingData,s=e.emitResponse,c=e.eventRegistration,p=e.activePaymentMethod,y=(0,f.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],_=(0,i.useState)(!1),w=(0,o.default)(_,2),C=w[0],M=w[1],k=c.onPaymentProcessing,j=(0,u.useStripe)(),D=(0,u.useElements)(),x=(0,i.useCallback)((function(){var e=t("customFormActive")?u.CardNumberElement:u.CardElement;return{card:D.getElement(e)}}),[j,D]),R=(0,f.useSetupIntent)({getData:t,cartTotal:n.cartTotal,setError:b}),A=R.setupIntent,I=R.removeSetupIntent,L=(0,f.useProcessPaymentIntent)({getData:t,billing:n,shippingData:a,emitResponse:s,error:h,onPaymentProcessing:k,savePaymentMethod:O,setupIntent:A,removeSetupIntent:I,getPaymentMethodArgs:x,activePaymentMethod:p}),T=L.getCreatePaymentMethodArgs,N=L.addPaymentMethodData;(0,f.useAfterProcessingPayment)({getData:t,eventRegistration:c,responseTypes:s.responseTypes,activePaymentMethod:p,savePaymentMethod:O});var B=t("customFormActive")?d.default:m.default;return r.createElement("div",{className:"wc-stripe-card-container"},r.createElement(B,{getData:t,billing:n,onChange:function(e){e.error?b(e.error):b(!1)},onComplete:M}),g(n.customerId)&&r.createElement(l.SavePaymentMethod,{label:t("savePaymentMethodLabel"),onChange:function(e){return S(e)},checked:O}),t("installmentsActive")&&r.createElement(l.Installments,{paymentMethodName:t("name"),stripe:j,cardFormComplete:C,getCreatePaymentMethodArgs:T,addPaymentMethodData:N}))};(0,s.registerPaymentMethod)({name:y("name"),label:r.createElement(l.PaymentMethodLabel,{title:y("title"),paymentMethod:y("name"),icons:y("icons")}),ariaLabel:"Credit Cards",canMakePayment:function(){return c.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)),s=a(n(2205)),c=a(n(8585)),u=a(n(9754));var l=function(e){(0,s.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,c.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)),s=n(3027),c=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,m=e.checkoutStatus,f=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,s.useRef)()),_=h.onSubmit,w=h.emitResponse,C=f.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:m,activePaymentMethod:y}).setPaymentMethod,D=(0,c.usePaymentRequest)({getData:t,publishableKey:l,merchantInfo:b,billing:a,shippingData:p}),x=(0,c.usePaymentsClient)({merchantInfo:b,paymentRequest:D,billing:a,shippingData:p,eventRegistration:f,canMakePayment:d,setErrorMessage:n,onSubmit:_,setPaymentMethod:j,exportedValues:M,onClick:g,onClose:v,getData:t}),R=x.button,A=x.removeButton;return(0,u.useAfterProcessingPayment)({getData:t,eventRegistration:f,responseTypes:w.responseTypes,activePaymentMethod:y}),(0,u.useExpressBreakpointWidth)({payment_method:t("name"),width:k}),(0,s.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),s=n(3097),c=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,m=l.shippingRates,f=t(),y=f.processingCountry,g=f.totalPriceLabel;return(0,i.useMemo)((function(){var e=p(p({},{emailRequired:(0,c.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}}}),s.BASE_PAYMENT_METHOD)],shippingAddressRequired:l.needsShipping,transactionInfo:(0,u.getTransactionInfo)({billing:o,processingCountry:y,totalPriceLabel:g}),callbackIntents:["PAYMENT_AUTHORIZATION"]}),s.BASE_PAYMENT_REQUEST);if(e.allowedPaymentMethods[0].parameters.billingAddressRequired=!0,e.allowedPaymentMethods[0].parameters.billingAddressParameters={format:"FULL",phoneNumberRequired:(0,c.isFieldRequired)("phone",d.country)&&(0,c.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)(m);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)),s=r(n(8926)),c=r(n(3038)),u=n(3027),l=r(n(4306)),p=n(1134),d=n(6664),m=n(8664),f=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,c.default)(M,2),j=k[0],D=k[1],x=(0,u.useState)(null),R=(0,c.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,m.toCartAddress)(a,{email:e.email})}null!=e&&e.shippingAddress&&(O.shippingAddress=(0,m.toCartAddress)(e.shippingAddress))}),[O,n]),q=(0,u.useCallback)((function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}),[A]),X=(0,u.useCallback)((0,s.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,s.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,s=e.shippingAddress,c=e.shippingOptionData,u=(0,m.toCartAddress)(s),d=(0,p.getSelectedShippingOption)(c.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,m.getPaymentRequestUpdate)({billing:r,shippingData:{needsShipping:!0,shippingRates:a.shippingRates},processingCountry:w("processingCountry"),totalPriceLabel:w("totalPriceLabel")}):{error:{reason:"SHIPPING_ADDRESS_UNSERVICEABLE",message:(0,f.__)("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"!==c.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)),s=a(n(9713)),c=n(4222),u=n(1134),l=n(5516),p=a(n(5212)),d=n(3097),m=a(n(3905)),f=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,s.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 m.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"]),s=n.ValidationInputError,c=(0,l.useErrorMessage)(),d=c.errorMessage,m=c.setErrorMessage;return r.createElement("div",{className:"wc-stripe-gpay-container"},r.createElement(f.Elements,{stripe:u.initStripe},r.createElement(p.default,(0,o.default)({getData:t,canMakePayment:P,setErrorMessage:m},a)),d&&r.createElement(s,{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,c.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,c=t.cartTotalItems,u=t.currency,l={countryCode:n,currencyCode:u.code,totalPriceStatus:a,totalPrice:(0,o.removeNumberPrecision)(i.value,u.minorUnit).toString(),displayItems:s(c,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,s=n.shippingRates,u={newTransactionInfo:i({billing:t,processingCountry:r,totalPriceLabel:a},"FINAL")};return o&&(u.newShippingOptionParameters=c(s)),u};var s=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},c=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=c;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 s=n(2343);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 c=n(1500);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 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),s=n(6664),c=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,m=e.messageContext,f=void 0===m?null:m,y=(0,s.useStripe)(),g=n.onCheckoutAfterProcessingWithSuccess,v=n.onCheckoutAfterProcessingWithError;(0,u.useProcessCheckoutError)({responseTypes:r,subscriber:v,messageContext:f}),(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,c.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),s=function(e){var t=e.name,n=e.width,r=e.node,s=e.className,c=(0,o.useState)(window.innerWidth),u=(0,a.default)(c,2),l=u[0],p=u[1],d=(0,o.useCallback)((function(e){var t=(0,i.getFromCache)(e);return t?parseInt(t):0}),[]),m=(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)&&m(t,n),e.clientWidth<n?e.classList.add(s):e.clientWidth>a&&e.classList.remove(s)}}),[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=s,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}),[]);s({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),s=n(1134);function c(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?c(Object(n),!0).forEach((function(t){(0,a.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(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,c=r.onShippingRateSuccess,l=r.onShippingRateFail,p=r.onShippingRateSelectSuccess,d=(0,i.useRef)(t),m=(0,i.useRef)(n),f=(0,i.useState)(null),y=(0,o.default)(f,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=m.current,t=d.current;if(P.onShippingChanged&&!e.isSelectingRate&&!e.shippingRatesLoading){var n=P.onShippingChanged,r=!0;(0,s.hasShippingRates)(e.shippingRates)||(r=!1),n(r,{billing:t,shipping:e}),S("onShippingChanged")}}),[P,S]);return(0,i.useEffect)((function(){d.current=t,m.current=n})),(0,i.useEffect)((function(){g&&g.onShippingChanged&&(g.onShippingChanged(!0,{billing:d.current,shipping:m.current}),v(null))}),[g]),(0,i.useEffect)((function(){var e=c(_),t=p(_),n=l((function(e){e.hasInvalidAddress,e.hasError,P.onShippingChanged&&((0,P.onShippingChanged)(!1),S("onShippingChanged"))}));return function(){e(),n(),t()}}),[P,c,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)),s=n(3027),c=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 m=(0,u.toCartAddress)();t.usePaymentRequest=function(e){var t=e.getData,n=e.onClose,r=e.stripe,o=e.billing,p=e.shippingData,f=e.eventRegistration,y=e.setPaymentMethod,g=e.exportedValues,v=e.canPay,h=(0,c.usePaymentEvents)({billing:o,shippingData:p,eventRegistration:f}).addPaymentEvent,b=(p.shippingAddress,p.needsShipping),P=p.shippingRates,E=o.billingData,O=o.cartTotalItems,S=o.currency,_=o.cartTotal,w=(0,s.useState)(null),C=(0,i.default)(w,2),M=C[0],k=C[1],j=(0,s.useRef)({}),D=(0,s.useRef)(p),x=(0,s.useRef)(o);(0,s.useEffect)((function(){D.current=p,x.current=o}),[p]),(0,s.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,s.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,s.useCallback)((function(e){return function(t,n){var r=n.billing,a=n.shipping,o=r.cartTotal,i=r.cartTotalItems,s=r.currency,c=a.shippingRates;t?e.updateWith({status:"success",total:{amount:o.value,label:o.label,pending:!1},displayItems:(0,u.getDisplayItems)(i,s),shippingOptions:(0,u.getShippingOptions)(c)}):e.updateWith({status:"invalid_shipping_address"})}}),[]),A=(0,s.useCallback)((function(e){var t=e.shippingAddress,n=D.current,r=m(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,s.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,s.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,s={payerName:r,payerEmail:o,payerPhone:void 0===i?null:i};null!=t&&t.billing_details.address&&(s=m(t.billing_details.address,s)),g.billingData=s,e.shippingAddress&&(g.shippingAddress=m(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)),s=r(n(3038)),c=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,m=e.emitResponse,f=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=m.responseTypes,R=(0,c.useState)(null),A=(0,s.default)(R,2),I=A[0],L=A[1],T=(0,u.useStripe)(),N=(0,c.useRef)(k),B=(0,c.useRef)({});(0,c.useEffect)((function(){N.current=k}),[k]);var F=(0,c.useCallback)((function(e){B.current=d(d({},B.current),e)}),[]),q=(0,c.useCallback)((function(){return d(d({},{type:h,billing_details:(0,l.getBillingDetailsFromAddress)(null!=C&&C.billingData?C.billingData:j)}),N.current())}),[j,h,k]),X=(0,c.useCallback)((function(e,n){var r,a={meta:{paymentMethodData:d((r={},(0,i.default)(r,"".concat(t("name"),"_token_key"),e),(0,i.default)(r,"".concat(t("name"),"_save_source_key"),n),r),B.current)}};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,c.useEffect)((function(){I&&"string"==typeof I&&y()}),[I,y]),(0,c.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,!f){e.next=6;break}throw new l.StripeError(f);case 6:if(!P){e.next=16;break}return e.next=9,T.confirmCardSetup(P.client_secret,{payment_method:q()});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(q());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,X(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,getCreatePaymentMethodArgs:q,addPaymentMethodData:F}}},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)),s=n(3027),c=r(n(7606)),u=n(1134);t.useSetupIntent=function(e){var t=e.cartTotal,n=e.setError,r=(0,s.useState)((0,u.getFromCache)("setupIntent")),l=(0,i.default)(r,2),p=l[0],d=l[1];(0,s.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,c.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 m=(0,s.useCallback)((function(){(0,u.deleteFromCache)("setupIntent")}),[t.value]);return{setupIntent:p,removeSetupIntent:m}}},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)),s=a(n(3038)),c=n(3027),u=n(4222),l=n(1134),p=n(3539),d=n(3187),m=n(6664),f=n(3163),y=n(8978),g=n(1200);function v(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 h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b,P=(0,l.getSettings)("stripe_afterpay_data"),E=function(e){var t=e.total,n=e.currency,r=e.needsShipping,a=!1,o=P("requiredParams"),i=P("accountCountry"),s=!!o.hasOwnProperty(n)&&o[n];return s&&(a=i===(null==s?void 0:s[0])&&r&&t>(null==s?void 0:s[1])&&t<(null==s?void 0:s[2])),a},O=function(e){var t=e.getData,n=(0,c.useState)({amount:t("cartTotal"),currency:t("currency"),isEligible:t("msgOptions").isEligible}),a=(0,s.default)(n,2),o=a[0],i=a[1];return b=i,r.createElement(m.Elements,{stripe:l.initStripe,options:t("elementOptions")},r.createElement("div",{className:"wc-stripe-blocks-afterpay__label"},r.createElement(m.AfterpayClearpayMessageElement,{options:h(h({},t("msgOptions")),{amount:o.amount,currency:o.currency,isEligible:o.isEligible})})))},S=function(e){var t=e.content,n=e.billing,a=e.shippingData,i=(0,o.default)(e,["content","billing","shippingData"]),s=t,u=n.cartTotal,l=n.currency,p=a.needsShipping;return(0,c.useEffect)((function(){b({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:P("offSiteSrc")}),r.createElement("p",null,(0,f.sprintf)((0,f.__)('After clicking "%s", you will be redirected to Afterpay to complete your purchase securely.',"woo-stripe-payment"),P("placeOrderButtonLabel"))))),r.createElement(s,h(h({},i),{},{billing:n,shippingData:a}))))},_=function(e){var t=e.cart,n=(e.extensions,e.context,t.cartTotals),a=t.cartNeedsShipping,o=(n.total_price,n.currency_code),i=parseInt(n.total_price),s=parseInt(n.total_price)/Math.pow(10,n.currency_minor_unit);return E({total:s,currency:o,needsShipping:a})?r.createElement(y.TotalsWrapper,null,r.createElement(m.Elements,{stripe:l.initStripe,options:P("elementOptions")},r.createElement("div",{className:"wc-stripe-blocks-afterpay-totals__item wc-block-components-totals-item"},r.createElement(m.AfterpayClearpayMessageElement,{options:h(h({},P("msgOptions")),{amount:i,currency:o,isEligible:a})})))):null};P()&&((0,u.registerPaymentMethod)({name:P("name"),label:r.createElement(O,{getData:P}),ariaLabel:(0,f.__)("Afterpay","woo-stripe-payment"),placeOrderButtonLabel:P("placeOrderButtonLabel"),canMakePayment:(0,p.canMakePayment)(P,(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;b&&b({amount:parseInt(n.total_price),currency:a,isEligible:r});var s=parseInt(i)/Math.pow(10,o),c=E({total:s,currency:a,needsShipping:r});return!c&&!t("hideIneligible")||c})),content:r.createElement(S,{content:p.LocalPaymentIntentContent,getData:P,confirmationMethod:"confirmAfterpayClearpayPayment"}),edit:r.createElement(d.PaymentMethod,{content:p.LocalPaymentIntentContent,getData:P}),supports:{showSavedCards:!1,showSaveOption:!1,features:P("features")}}),(0,g.registerPlugin)("wc-stripe",{render:function(){return r.createElement(y.ExperimentalOrderMeta,null,r.createElement(_,null))},scope:"woocommerce-checkout"}))},39:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),s=n(2029),c=n(3187),u=(0,o.getSettings)("stripe_alipay_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Alipay",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmAlipayPayment",getData:u}),edit:r.createElement(c.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),s=n(3187),c=(0,o.getSettings)("stripe_bancontact_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"Bancontact",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmBancontactPayment",getData:c}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},5176:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_becs_data"),l=function(e){return r.createElement(r.Fragment,null,r.createElement(s.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(s.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:c.AuBankAccountElement}),edit:r.createElement(s.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)),s=a(n(3038)),c=a(n(6479)),u=n(3027),l=n(3163),p=n(4222),d=a(n(4184)),m=n(1134),f=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,m.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,f.canMakePayment)(h),content:r.createElement(y.PaymentMethod,{content:function(e){var t=e.eventRegistration,n=(0,c.default)(e,["eventRegistration"]),a=(0,u.useState)(""),i=(0,s.default)(a,2),p=i[0],y=i[1],g=(0,u.useState)(!1),h=(0,s.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,m.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,m.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,m.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(f.LocalPaymentIntentContent,(0,o.default)({callback:O},v(v({},n),{eventRegistration:t}))))},getData:h,confirmationMethod:"confirmBoletoPayment"}),edit:r.createElement(y.PaymentMethod,{content:f.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),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_eps_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"EPS",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmEpsPayment",component:c.EpsBankElement,getData:u}),edit:r.createElement(s.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),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_fpx_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"FPX",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmIdealPayment",component:c.FpxBankElement}),edit:r.createElement(s.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),s=n(3187),c=(0,o.getSettings)("stripe_giropay_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"Giropay",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmGiropayPayment",getData:c}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},3140:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_grabpay_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"GrabPay",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c,confirmationMethod:"confirmGrabPayPayment"}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("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)),s=r(n(8926)),c=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,m=e.confirmationMethod,f=e.getPaymentMethodArgs,y=void 0===f?function(){return{}}:f,g=(0,u.useStripe)(),v=r.onCheckoutAfterProcessingWithSuccess,h=r.onCheckoutAfterProcessingWithError,b=(0,c.useRef)(n),P=(0,c.useRef)(y);(0,c.useEffect)((function(){b.current=n}),[n]),(0,c.useEffect)((function(){P.current=y}),[y]),(0,c.useEffect)((function(){var e=v(function(){var e=(0,s.default)(a.default.mark((function e(n){var r,s,c,u,f,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,!(s=r.match(/#response=(.+)/))){e.next=12;break}return c=JSON.parse(window.atob(decodeURIComponent(s[1]))),u=c.client_secret,f=c.return_url,y=(0,i.default)(c,["client_secret","return_url"]),e.next=8,g[m](u,{payment_method:d({billing_details:(0,l.getBillingDetailsFromAddress)(b.current)},P.current(b.current)),return_url:f});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)),s=r(n(3038)),c=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,m=e.responseTypes,f=e.getSourceArgs,y=void 0!==f&&f,g=e.element,v=void 0!==g&&g,h=(0,c.useState)(!1),b=(0,s.default)(h,2),P=b[0],E=b[1],O=(0,c.useState)(!1),S=(0,s.default)(O,2),_=S[0],w=S[1],C=(0,c.useRef)({billing:n,shippingAddress:r}),M=(0,l.useStripe)(),k=(0,l.useElements)();(0,c.useEffect)((function(){C.current={billing:n,shippingAddress:r}}));var j=(0,c.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,c.useCallback)((function(e){return{meta:{paymentMethodData:(0,i.default)({},"".concat(t("name"),"_token_key"),e)}}}),[]);return(0,c.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)(m,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)(m,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)(m,e.t0.error||e.t0));case 24:case"end":return e.stop()}}),e,null,[[2,20]])}))));return function(){return e()}}),[P,d,M,m,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),s=n(3163);t.useValidateCheckout=function(e){var t=e.subscriber,n=e.responseTypes,r=e.component,c=void 0===r?null:r,u=e.msg,l=void 0===u?(0,s.__)("Please enter your payment info before proceeding.","woo-stripe-payment"):u,p=(0,o.useState)(!1),d=(0,a.default)(p,2),m=d[0],f=d[1];return(0,o.useEffect)((function(){var e=t((function(){return!(c&&!m)||(0,i.ensureErrorResponse)(n,l)}));return function(){return e()}}),[t,m,f,n,c]),{isValid:m,setIsValid:f}}},9474:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_ideal_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Ideal",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmIdealPayment",component:c.IdealBankElement}),edit:r.createElement(s.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),s=n(3187),c=n(3163),u=(0,o.getSettings)("stripe_klarna_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.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(s.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,c.__)("Test mode sms","woo-stripe-payment"),":"),"Â ",r.createElement("span",null,"123456")),r.createElement(i.LocalPaymentIntentContent,e))},getData:u,confirmationMethod:"confirmKlarnaPayment"}),edit:r.createElement(s.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)),s=a(n(6479)),c=n(3027),u=n(6664),l=n(1134),p=n(8522),d=n(3636);function m(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?m(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(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,s.default)(n,["billingData","cartTotals"]),i=a.currency_code,c=r.country,u=e("countries"),p=e("allowedCountries"),d=e("features"),m=!1;if(e("isAdmin"))m=!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)&&(m="all_except"===p?!e("exceptCountries").includes(c):"specific"===p?e("specificCountries").includes(c):!(u.length>0)||u.includes(c)),t&&m&&(m=t(f({settings:e,billingData:r,cartTotals:a},o)))}return m}},t.LocalPaymentIntentContent=function(e){var t=e.getData,n=(0,s.default)(e,["getData"]);return r.createElement(u.Elements,{stripe:l.initStripe,options:t("elementOptions")},r.createElement(g,f(f({},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,s=e.getSourceArgs,c=void 0!==s&&s,u=e.element,l=void 0!==u&&u,d=a.shippingAddress,m=i.onPaymentProcessing,f=(i.onCheckoutAfterProcessingWithError,o.responseTypes),y=(o.noticeContexts,(0,p.useCreateSource)({getData:t,billing:n,shippingAddress:d,onPaymentProcessing:m,responseTypes:f,getSourceArgs:c,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,s=e.activePaymentMethod,l=e.confirmationMethod,m=void 0===l?null:l,f=e.component,y=void 0===f?null:f,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,c.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:s,confirmationMethod:m,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,c=(0,s.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},c)))}},4784:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_multibanco_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"MultiBanco",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:c}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},5748:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),s=n(3187),c=(n(6664),(0,o.getSettings)("stripe_oxxo_data"));c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"OXXO",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c,confirmationMethod:"confirmOxxoPayment"}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},3868:(e,t,n)=>{var r=n(3027),a=n(4222),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_p24_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"P24",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmP24Payment",component:c.P24BankElement}),edit:r.createElement(s.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),s=n(3187),c=n(3539),u=n(6664),l=(0,i.getSettings)("stripe_sepa_data"),p=(r=s.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(s.PaymentMethodLabel,{title:l("title"),paymentMethod:l("name"),icons:l("icon")}),ariaLabel:"SEPA",placeOrderButtonLabel:l("placeOrderButtonLabel"),canMakePayment:(0,c.canMakePayment)(l),content:a.createElement(p,{content:c.LocalPaymentIntentContent,getData:l,confirmationMethod:"confirmSepaDebitPayment",component:u.IbanElement}),edit:a.createElement(s.PaymentMethod,{content:c.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),s=n(3187),c=(0,o.getSettings)("stripe_sofort_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"Sofort",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmSofortPayment",getData:c,callback:function(e){return{sofort:{country:e.country}}}}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},3766:(e,t,n)=>{var r=n(3027),a=n(5318),o=a(n(7015)),i=a(n(8926)),s=a(n(9713)),c=a(n(3038)),u=n(3027),l=n(4222),p=n(1134),d=n(3187),m=n(3539),f=n(6664),y=n(8522),g=n(3163),v=n(3636),h=(0,p.getSettings)("stripe_wechat_data"),b=function(e){return r.createElement(f.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,s=parseInt(t("qrSize")),c=a.responseTypes,l=o.onPaymentProcessing,d=o.onCheckoutAfterProcessingWithSuccess,m=i.ValidationInputError,f=(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=(f.isValid,f.setIsValid),h=O({getData:t,billing:n,responseTypes:c,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)(c)}));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:s,height:s}):P?r.createElement("div",{className:"wechat-validation-error"},r.createElement(m,{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,s=e.colorDark,c=void 0===s?"#424770":s,l=e.colorLight,d=void 0===l?"#f8fbfd":l,m=e.correctLevel,f=void 0===m?QRCode.CorrectLevel.H:m,y=(0,u.useRef)();return(0,u.useEffect)((function(){new QRCode(y.current,{text:t,width:a,height:i,colorDark:c,colorLight:d,correctLevel:f})}),[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,f.useStripe)(),d=(0,v.useStripeError)(),m=(0,c.default)(d,2),y=m[0],g=m[1],h=(0,u.useState)((0,p.getFromCache)("wechat:source")),b=(0,c.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,s.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,m.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)),s=n(3027),c=n(4222),u=n(1134),l=n(3636),p=n(6664),d=(0,u.getSettings)("stripe_payment_request_data"),m=function(e){return r.createElement("div",{className:"wc-stripe-payment-request-container"},r.createElement(p.Elements,{stripe:u.initStripe},r.createElement(f,e)))},f=function(e){var t=e.getData,n=e.onClick,a=e.onClose,c=e.billing,u=e.shippingData,d=e.eventRegistration,m=e.emitResponse,f=e.onSubmit,y=e.activePaymentMethod,g=((0,i.default)(e,["getData","onClick","onClose","billing","shippingData","eventRegistration","emitResponse","onSubmit","activePaymentMethod"]),d.onPaymentProcessing),v=m.responseTypes,h=m.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:c,shippingData:u,onPaymentProcessing:g,emitResponse:m,error:E,onSubmit:f,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:c,shippingData:u,eventRegistration:d,setPaymentMethod:S,exportedValues:O,canPay:function(e){return null!=e&&!e.applePay}}).paymentRequest,w=(0,s.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,s.useRef)();return(0,s.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,c.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(m,{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),s=n(1134);t.default=function(e){var t=e.eventRegistration,n=e.emitResponse,r=e.getData,c=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,s.initStripe;case 3:return o=e.sent,e.next=6,(0,s.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)}}(),[c]);return(0,i.useEffect)((function(){var e=c(l);return function(){return e()}}),[c]),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)),s=r(n(3038)),c=r(n(8)),u=r(n(4575)),l=r(n(2205)),p=r(n(8585)),d=r(n(9754)),m=r(n(5957)),f=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,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){s=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(s)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,f.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,m.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,c.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,s.default)(a[r],2),i=o[0],c=o[1];if(!t.includes(i)&&null!=n&&n[i]&&n[i].required&&X(c))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,s.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,s,c,u,l,p,d,m,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,s=t.savePaymentMethod,c=void 0!==s&&s,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,m=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,f.default)({order_id:d,order_key:m},"".concat(i("name"),"_save_source_key"),c),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,c=(0,s.default)(o[a],2),u=c[0],l=c[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,f.default)({},n,e[n]))}),{})};t.filterEmptyValues=Y;var H=function(e,t){var n,r=(0,b.getCurrency)(t),a=r.prefix,o=r.suffix,i=r.decimalSeparator,s=r.minorUnit,c=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,s)).toString().replace(".",i)).indexOf(i);l<0?s>0&&(e+="".concat(i).concat(new Array(s+1).join("0"))):(u=e.substr(l+1)).length<s&&(e+=new Array(s-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(c)),a+(e=(null===(n=u)||void 0===n?void 0:n.length)>0?e+i+u:e)+o};t.formatPrice=H,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,H(e.price,e.currency_code),{id:G(n,e.rate_id),label:t.value,amount:parseInt(e.price,10)}}));t=[].concat((0,a.default)(t),(0,a.default)(r))})),t};var G=function(e,t){return"".concat(e,":").concat(t)};t.getShippingOptionId=G,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(s){if(s.error)return o(s.error);s.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 s in n)r.call(n,s)&&n[s]&&e.push(s)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()},1127:()=>{},1465:()=>{},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","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> <span>000.000.000-00</span>\r\n </div>\r\n <div>\r\n <label>CNPJ:</label> <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> \r\n <span>{__('XXX.XXX.XXX-XX or XXXXXXXXXXX', 'woo-stripe-payment')}</span>\r\n </div>\r\n <div>\r\n <label>CNPJ:</label> \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\";\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(currentBillingData.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> <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((billingData) => {\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(billingData);\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 {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment, LocalPaymentIntentContent} 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 LocalPaymentMethod = (PaymentMethod) => (props) => {\r\n return (\r\n <>\r\n <PaymentMethod {...props}/>\r\n <div className={'wc-stripe-blocks-mandate sepa-mandate'}\r\n dangerouslySetInnerHTML={{__html: props.getData('mandate')}}/>\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={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmSepaDebitPayment'}\r\n component={IbanElement}/>,\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\n\r\nconst getData = getSettings('stripe_sofort_data');\r\n\r\nconst getConfirmationArgs = (billingData) => {\r\n return {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={LocalPaymentIntentContent}\r\n confirmationMethod={'confirmSofortPayment'}\r\n getData={getData}\r\n callback={getConfirmationArgs}/>,\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 {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/installments/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","Installments","paymentMethodName","getCreatePaymentMethodArgs","cardFormComplete","addPaymentMethodData","installments","setInstallments","installment","setInstallment","loading","setLoading","result","StripeError","url","getRoute","method","data","payment_method_id","paymentMethod","payment_method","__","Loader","InstallmentOptions","_stripe_installment_plan","isLoading","OPTIONS","disabled","map","dangerouslySetInnerHTML","__html","text","title","icons","components","Label","PaymentMethodLabel","Icons","PaymentMethodIcons","align","getData","content","Content","desc","el","childNodes","classList","add","Description","RadioControlOption","event","setValidationError","linkToken","setLinkToken","useCallback","response","token","storeInCache","getFromCache","linkHandler","resolvePopup","openLinkPopup","open","Plaid","clientName","env","product","selectAccount","countryCodes","onSuccess","publicToken","metaData","onExit","getErrorMessage","error_message","onPaymentProcessing","responseTypes","unsubscribe","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","onComplete","cardType","setCardType","elementOrder","container","setContainer","getCreditCardForm","CardForm","postalCodeEnabled","elementStatus","forEach","setElementOrder","includes","useBreakpointWidth","getCardIconSrc","cloneElement","brand","complete","idx","nextElement","getElement","status","filter","sprintf","SimpleForm","data-tid","card","isFormComplete","cardOptions","postalCode","billingData","postcode","hidePostalCode","isFieldRequired","iconStyle","displaySaveCard","customerId","isUserLoggedIn","cartContainsSubscription","cartContainsPreOrder","CreditCardContent","setError","catch","CreditCardElement","savePaymentMethod","setSavePaymentMethod","formComplete","setFormComplete","getPaymentMethodArgs","elType","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","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","countryCode","currencyCode","code","totalPriceStatus","totalPrice","removeNumberPrecision","minorUnit","displayItems","getDisplayItems","newTransactionInfo","newShippingOptionParameters","unit","items","item","price","getShippingOptions","defaultSelectedOptionId","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","getSuccessResponse","paymentMethodId","unsubscribeProcessingPayment","confirmCardSetup","client_secret","setSetupIntent","createSetupIntent","variablesHandler","isAvailable","available","requiredParams","accountCountry","requiredParamObj","isEligible","variables","setVariables","AfterpayPaymentMethod","OrderItemMessaging","cart","extensions","context","cartNeedsShipping","currency_minor_unit","TotalsWrapper","settings","LocalPaymentIntentContent","confirmationMethod","registerPlugin","render","ExperimentalOrderMeta","scope","BecsPaymentMethod","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","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';\r\nexport * from './installments';","import {useState, useRef, useEffect} from '@wordpress/element';\r\nimport {__} from '@wordpress/i18n';\r\nimport apiFetch from '@wordpress/api-fetch';\r\nimport classnames from 'classnames';\r\nimport {StripeError, getRoute} from \"../../../payment-methods/util\";\r\nimport './style.scss';\r\n\r\nexport const Installments = (\r\n {\r\n paymentMethodName,\r\n stripe,\r\n getCreatePaymentMethodArgs,\r\n cardFormComplete = false,\r\n addPaymentMethodData\r\n }) => {\r\n const [installments, setInstallments] = useState(null);\r\n const [installment, setInstallment] = useState('');\r\n const [loading, setLoading] = useState(false);\r\n const onInstallmentSelected = (e) => {\r\n setInstallment(e.target.value);\r\n addPaymentMethodData({_stripe_installment_plan: e.target.value});\r\n }\r\n useEffect(async () => {\r\n if (cardFormComplete) {\r\n // fetch the installments\r\n try {\r\n setLoading(true);\r\n setInstallment('');\r\n let result = await stripe.createPaymentMethod(getCreatePaymentMethodArgs());\r\n if (result.error) {\r\n throw new StripeError(result.error);\r\n }\r\n // fetch the installment plans\r\n result = await apiFetch({\r\n url: getRoute('create/payment_intent'),\r\n method: 'POST',\r\n data: {payment_method_id: result.paymentMethod.id, payment_method: paymentMethodName}\r\n });\r\n setInstallments(result.installments);\r\n if (Object.keys(result.installments)?.length) {\r\n setInstallment(Object.keys(result.installments)[0]);\r\n }\r\n } catch (error) {\r\n\r\n } finally {\r\n setLoading(false);\r\n }\r\n }\r\n }, [cardFormComplete]);\r\n\r\n return (\r\n <div className='wc-stripe-installments__container'>\r\n <label>\r\n {__('Pay in installments:', 'woo-stripe-payment')}\r\n <Loader loading={loading}/>\r\n </label>\r\n <InstallmentOptions\r\n installment={installment}\r\n onChange={onInstallmentSelected}\r\n installments={installments}\r\n isLoading={loading}/>\r\n </div>\r\n )\r\n}\r\n\r\nconst InstallmentOptions = ({installment, installments, onChange, isLoading}) => {\r\n let OPTIONS = null;\r\n if (isLoading) {\r\n OPTIONS = <option value=\"\" disabled>{__('Loading installments...', 'woo-stripe-payment')}</option>\r\n } else {\r\n if (installments === null) {\r\n OPTIONS = <option value=\"\" disabled>{__('Fill out card form for eligibility.', 'woo-stripe-payment')}</option>\r\n } else {\r\n OPTIONS = Object.keys(installments).map(id => {\r\n return <option key={id} value={id} dangerouslySetInnerHTML={{__html: installments[id].text}}/>\r\n });\r\n }\r\n }\r\n return (\r\n <select value={installment} onChange={onChange} className={classnames({loading: isLoading})}>\r\n {OPTIONS}\r\n </select>\r\n );\r\n}\r\n\r\nconst Loader = ({loading}) => {\r\n return (\r\n <div className=\"wc-stripe-installment-loader__container\">\r\n {loading && <div className=\"wc-stripe-installment-loader\">\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>}\r\n </div>\r\n );\r\n}\r\nexport default Installments;","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 onComplete\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 const elementStatus = useRef({'cardNumber': {}, 'cardExpiry': {}, 'cardCvc': {}});\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 elementStatus.current[event.elementType] = 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 onComplete(isFormComplete());\r\n }\r\n }\r\n\r\n const isFormComplete = () => {\r\n let status = elementStatus.current;\r\n return Object.keys(status).filter(key => !!status[key].complete).length === Object.keys(status).length;\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: eventChange, onComplete}) => {\r\n const elementStatus = {card: {}};\r\n const onChange = (event) => {\r\n eventChange(event);\r\n elementStatus[event.elementType] = event;\r\n onComplete(isFormComplete);\r\n }\r\n const isFormComplete = () => {\r\n return Object.keys(elementStatus).filter(type => !!elementStatus[type].complete).length === Object.keys(elementStatus).length;\r\n }\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 {Installments} from '../../components/checkout';\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 [formComplete, setFormComplete] = 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 const {getCreatePaymentMethodArgs, addPaymentMethodData} = 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}} onComplete={setFormComplete}/>\r\n {displaySaveCard(billing.customerId) &&\r\n <SavePaymentMethod label={getData('savePaymentMethodLabel')}\r\n onChange={onSavePaymentMethod}\r\n checked={savePaymentMethod}/>}\r\n {getData('installmentsActive') && <Installments\r\n paymentMethodName={getData('name')}\r\n stripe={stripe}\r\n cardFormComplete={formComplete}\r\n getCreatePaymentMethodArgs={getCreatePaymentMethodArgs}\r\n addPaymentMethodData={addPaymentMethodData}/>}\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, useAfterProcessingPayment\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 useAfterProcessingPayment({\r\n getData,\r\n eventRegistration,\r\n responseTypes: emitResponse.responseTypes,\r\n activePaymentMethod\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 const paymentMethodData = useRef({});\r\n useEffect(() => {\r\n currentPaymentMethodArgs.current = getPaymentMethodArgs;\r\n }, [getPaymentMethodArgs]);\r\n\r\n const addPaymentMethodData = useCallback((data) => {\r\n paymentMethodData.current = {...paymentMethodData.current, ...data};\r\n }, []);\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 ...paymentMethodData.current\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 {\r\n setPaymentMethod,\r\n getCreatePaymentMethodArgs,\r\n addPaymentMethodData\r\n };\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\nimport {ExperimentalOrderMeta, TotalsWrapper} from '@woocommerce/blocks-checkout';\r\nimport {registerPlugin} from '@wordpress/plugins';\r\n\r\nconst getData = getSettings('stripe_afterpay_data');\r\nlet variablesHandler;\r\nconst setVariablesHandler = (handler) => {\r\n variablesHandler = handler;\r\n}\r\n\r\nconst isAvailable = ({total, currency, needsShipping}) => {\r\n let available = false;\r\n const requiredParams = getData('requiredParams');\r\n const accountCountry = getData('accountCountry');\r\n const requiredParamObj = requiredParams.hasOwnProperty(currency) ? requiredParams[currency] : false;\r\n if (requiredParamObj) {\r\n available = accountCountry === requiredParamObj?.[0] && needsShipping && (total > requiredParamObj?.[1] && total < requiredParamObj?.[2]);\r\n }\r\n return available;\r\n}\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\nconst OrderItemMessaging = ({cart, extensions, context}) => {\r\n const {cartTotals, cartNeedsShipping: needsShipping} = cart;\r\n const {total_price, currency_code: currency} = cartTotals;\r\n const amount = parseInt(cartTotals.total_price);\r\n const total = parseInt(cartTotals.total_price) / (10 ** cartTotals.currency_minor_unit);\r\n if (!isAvailable({total, currency, needsShipping})) {\r\n return null;\r\n }\r\n return (\r\n <TotalsWrapper>\r\n <Elements stripe={initStripe} options={getData('elementOptions')}>\r\n <div className='wc-stripe-blocks-afterpay-totals__item wc-block-components-totals-item'>\r\n <AfterpayClearpayMessageElement options={{\r\n ...getData('msgOptions'),\r\n ...{\r\n amount,\r\n currency,\r\n isEligible: needsShipping\r\n }\r\n }}/>\r\n </div>\r\n </Elements>\r\n </TotalsWrapper>\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 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 = isAvailable({total, currency, needsShipping: cartNeedsShipping});\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\r\n const render = () => {\r\n return (\r\n <ExperimentalOrderMeta>\r\n <OrderItemMessaging/>\r\n </ExperimentalOrderMeta>\r\n )\r\n }\r\n registerPlugin('wc-stripe', {\r\n render: render,\r\n scope: 'woocommerce-checkout'\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> <span>000.000.000-00</span>\r\n </div>\r\n <div>\r\n <label>CNPJ:</label> <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> \r\n <span>{__('XXX.XXX.XXX-XX or XXXXXXXXXXX', 'woo-stripe-payment')}</span>\r\n </div>\r\n <div>\r\n <label>CNPJ:</label> \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\";\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(currentBillingData.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> <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((billingData) => {\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(billingData);\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 {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\r\nimport {canMakePayment, LocalPaymentIntentContent} 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 LocalPaymentMethod = (PaymentMethod) => (props) => {\r\n return (\r\n <>\r\n <PaymentMethod {...props}/>\r\n <div className={'wc-stripe-blocks-mandate sepa-mandate'}\r\n dangerouslySetInnerHTML={{__html: props.getData('mandate')}}/>\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={LocalPaymentIntentContent}\r\n getData={getData}\r\n confirmationMethod={'confirmSepaDebitPayment'}\r\n component={IbanElement}/>,\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\n\r\nconst getData = getSettings('stripe_sofort_data');\r\n\r\nconst getConfirmationArgs = (billingData) => {\r\n return {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={LocalPaymentIntentContent}\r\n confirmationMethod={'confirmSofortPayment'}\r\n getData={getData}\r\n callback={getConfirmationArgs}/>,\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 {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 =
|