WooCommerce Stripe Payment Gateway - Version 5.5.0

Version Description

  • 2021-09-15 =
  • Tweak - Moved the WC_Gateway_Stripe::admin_scripts method to WC_Stripe_Settings_Controller::admin_scripts.
  • Fix - Save payment method during 3D Secure flow for Block-based checkout.
  • Fix - Show subtotal on Payment Request dialog.
  • Add - Settings to control Payment Request Button locations in the Stripe plugin settings. Persists changes made through pre-existing filters, or defaults to the Cart and Product pages if no filters are in use.
  • Tweak - Deprecated the 'wc_stripe_hide_payment_request_on_product_page', 'wc_stripe_show_payment_request_on_checkout', and 'wc_stripe_show_payment_request_on_cart' filters in favor of the UI-driven approach in the plugin settings.
  • Add - Notice for WP & WC version compatibility check.

See changelog for all versions.

Download this release

Release Info

Developer automattic
Plugin Icon 128x128 WooCommerce Stripe Payment Gateway
Version 5.5.0
Comparing to
See all releases

Code changes from version 5.4.1 to 5.5.0

Files changed (49) hide show
  1. assets/js/stripe-admin.js +16 -0
  2. assets/js/stripe-admin.min.js +1 -1
  3. build/additional_methods_setup.asset.php +1 -0
  4. build/additional_methods_setup.js +1 -0
  5. build/index.asset.php +1 -1
  6. build/index.js +1 -1
  7. build/style-upe_classic.css +2 -0
  8. build/upe_classic.asset.php +1 -0
  9. build/upe_classic.js +1 -0
  10. build/upe_opt_in_banner.asset.php +1 -0
  11. build/upe_opt_in_banner.js +1 -0
  12. build/upe_settings.asset.php +1 -0
  13. build/upe_settings.css +2 -0
  14. build/upe_settings.js +1 -0
  15. changelog.txt +8 -0
  16. includes/abstracts/abstract-wc-stripe-payment-gateway.php +47 -0
  17. includes/admin/class-wc-rest-upe-flag-toggle-controller.php +96 -0
  18. includes/admin/class-wc-stripe-admin-notices.php +28 -0
  19. includes/admin/class-wc-stripe-onboarding-controller.php +76 -0
  20. includes/admin/class-wc-stripe-settings-controller.php +83 -0
  21. includes/admin/class-wc-stripe-upe-compatibility-controller.php +178 -0
  22. includes/admin/stripe-settings.php +49 -3
  23. includes/class-wc-gateway-stripe.php +11 -22
  24. includes/class-wc-stripe-blocks-support.php +13 -9
  25. includes/class-wc-stripe-feature-flags.php +37 -0
  26. includes/class-wc-stripe-intent-controller.php +110 -0
  27. includes/class-wc-stripe-order-handler.php +43 -0
  28. includes/class-wc-stripe-upe-compatibility.php +18 -0
  29. includes/notes/class-wc-stripe-upe-compatibility-note.php +71 -0
  30. includes/payment-methods/class-wc-gateway-stripe-alipay.php +5 -1
  31. includes/payment-methods/class-wc-gateway-stripe-bancontact.php +5 -1
  32. includes/payment-methods/class-wc-gateway-stripe-eps.php +5 -1
  33. includes/payment-methods/class-wc-gateway-stripe-giropay.php +5 -1
  34. includes/payment-methods/class-wc-gateway-stripe-ideal.php +5 -1
  35. includes/payment-methods/class-wc-gateway-stripe-multibanco.php +1 -0
  36. includes/payment-methods/class-wc-gateway-stripe-p24.php +1 -0
  37. includes/payment-methods/class-wc-gateway-stripe-sepa.php +1 -0
  38. includes/payment-methods/class-wc-gateway-stripe-sofort.php +1 -0
  39. includes/payment-methods/class-wc-stripe-payment-request.php +124 -28
  40. includes/payment-methods/class-wc-stripe-upe-payment-gateway.php +676 -0
  41. includes/payment-methods/class-wc-stripe-upe-payment-method-bancontact.php +27 -0
  42. includes/payment-methods/class-wc-stripe-upe-payment-method-cc.php +59 -0
  43. includes/payment-methods/class-wc-stripe-upe-payment-method-eps.php +27 -0
  44. includes/payment-methods/class-wc-stripe-upe-payment-method-giropay.php +27 -0
  45. includes/payment-methods/class-wc-stripe-upe-payment-method-ideal.php +27 -0
  46. includes/payment-methods/class-wc-stripe-upe-payment-method.php +166 -0
  47. languages/woocommerce-gateway-stripe.pot +25 -1908
  48. readme.txt +9 -4
  49. woocommerce-gateway-stripe.php +236 -26
assets/js/stripe-admin.js CHANGED
@@ -125,6 +125,22 @@ jQuery( function( $ ) {
125
  $( 'form' ).find( 'input, select' ).off( 'change input', disableConnect );
126
  } );
127
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  // Webhook verification checks for timestamp within 5 minutes so warn if
129
  // server time is off from browser time by > 4 minutes.
130
  var timeDifference = Date.now() / 1000 - wc_stripe_settings_params.time;
125
  $( 'form' ).find( 'input, select' ).off( 'change input', disableConnect );
126
  } );
127
 
128
+ // Toggle UPE methods on/off.
129
+ $( '.wc_gateways' ).on( 'click', '.wc-payment-upe-method-toggle-enabled, .wc-payment-upe-method-toggle-disabled', function() {
130
+ var $toggle = $( this ).find( '.woocommerce-input-toggle' );
131
+ $toggle.toggleClass( 'woocommerce-input-toggle--enabled woocommerce-input-toggle--disabled' );
132
+ $toggle.parent().toggleClass( 'wc-payment-upe-method-toggle-enabled wc-payment-upe-method-toggle-disabled' );
133
+ $( '#wc_stripe_upe_change_notice' ).removeClass( 'hidden' );
134
+ return false;
135
+ });
136
+
137
+ $( '#mainform' ).submit( function() {
138
+ var $form = $( this );
139
+ $( '.wc_gateways .wc-payment-upe-method-toggle-enabled').each( function() {
140
+ $form.append( '<input type="hidden" name="woocommerce_stripe_upe_checkout_experience_accepted_payments[]" value="' + $( this ).closest( 'tr' ).data( 'upe_method_id' ) + '" />' );
141
+ });
142
+ });
143
+
144
  // Webhook verification checks for timestamp within 5 minutes so warn if
145
  // server time is off from browser time by > 4 minutes.
146
  var timeDifference = Date.now() / 1000 - wc_stripe_settings_params.time;
assets/js/stripe-admin.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(function(i){"use strict";var e={isTestMode:function(){return i("#woocommerce_stripe_testmode").is(":checked")},getSecretKey:function(){return(e.isTestMode()?i("#woocommerce_stripe_test_secret_key"):i("#woocommerce_stripe_secret_key")).val()},init:function(){i(document.body).on("change","#woocommerce_stripe_testmode",function(){var e=i("#woocommerce_stripe_test_secret_key").parents("tr").eq(0),t=i("#woocommerce_stripe_test_publishable_key").parents("tr").eq(0),o=i("#woocommerce_stripe_test_webhook_secret").parents("tr").eq(0),s=i("#woocommerce_stripe_secret_key").parents("tr").eq(0),r=i("#woocommerce_stripe_publishable_key").parents("tr").eq(0),c=i("#woocommerce_stripe_webhook_secret").parents("tr").eq(0);i(this).is(":checked")?(e.show(),t.show(),o.show(),s.hide(),r.hide(),c.hide()):(e.hide(),t.hide(),o.hide(),s.show(),r.show(),c.show())}),i("#woocommerce_stripe_testmode").trigger("change"),i("#woocommerce_stripe_payment_request").on("change",function(){i(this).is(":checked")?i("#woocommerce_stripe_payment_request_button_theme, #woocommerce_stripe_payment_request_button_type, #woocommerce_stripe_payment_request_button_height").closest("tr").show():i("#woocommerce_stripe_payment_request_button_theme, #woocommerce_stripe_payment_request_button_type, #woocommerce_stripe_payment_request_button_height").closest("tr").hide()}).trigger("change"),i("#woocommerce_stripe_payment_request_button_type").on("change",function(){"custom"===i(this).val()?i("#woocommerce_stripe_payment_request_button_label").closest("tr").show():i("#woocommerce_stripe_payment_request_button_label").closest("tr").hide()}).trigger("change"),i("#woocommerce_stripe_payment_request_button_type").on("change",function(){"branded"===i(this).val()?i("#woocommerce_stripe_payment_request_button_branded_type").closest("tr").show():i("#woocommerce_stripe_payment_request_button_branded_type").closest("tr").hide()}).trigger("change"),i(".wc-stripe-3ds-missing").each(function(){var e=i(this);e.find(".notice-dismiss").on("click.wc-stripe-dismiss-notice",function(){i.ajax({type:"head",url:window.location.href+"&stripe_dismiss_3ds="+e.data("nonce")})})}),i("#woocommerce_stripe_test_secret_key, #woocommerce_stripe_secret_key, #woocommerce_stripe_test_webhook_secret, #woocommerce_stripe_webhook_secret").after('<button class="wc-stripe-toggle-secret" style="height: 30px; margin-left: 2px; cursor: pointer"><span class="dashicons dashicons-visibility"></span></button>'),i(".wc-stripe-toggle-secret").on("click",function(e){e.preventDefault();var t=i(this).closest("button").find(".dashicons"),e=i(this).closest("tr").find(".input-text");"text"==e.attr("type")?(e.attr("type","password"),t.removeClass("dashicons-hidden"),t.addClass("dashicons-visibility")):(e.attr("type","text"),t.removeClass("dashicons-visibility"),t.addClass("dashicons-hidden"))}),i("form").find("input, select").on("change input",function e(){i("#wc_stripe_connect_button").addClass("disabled"),i("#wc_stripe_connect_button").on("click",function(){return!1}),i("#woocommerce_stripe_api_credentials").next("p").append(" (Please save changes before selecting this button.)"),i("form").find("input, select").off("change input",e)});var e=Date.now()/1e3-wc_stripe_settings_params.time;240<Math.abs(e)&&i("#woocommerce_stripe_test_webhook_secret, #woocommerce_stripe_webhook_secret").closest("td").append("<p>"+wc_stripe_settings_params.i18n_out_of_sync+"</p>")}};e.init()});
1
+ jQuery(function(i){"use strict";var e={isTestMode:function(){return i("#woocommerce_stripe_testmode").is(":checked")},getSecretKey:function(){return(e.isTestMode()?i("#woocommerce_stripe_test_secret_key"):i("#woocommerce_stripe_secret_key")).val()},init:function(){i(document.body).on("change","#woocommerce_stripe_testmode",function(){var e=i("#woocommerce_stripe_test_secret_key").parents("tr").eq(0),t=i("#woocommerce_stripe_test_publishable_key").parents("tr").eq(0),o=i("#woocommerce_stripe_test_webhook_secret").parents("tr").eq(0),s=i("#woocommerce_stripe_secret_key").parents("tr").eq(0),c=i("#woocommerce_stripe_publishable_key").parents("tr").eq(0),r=i("#woocommerce_stripe_webhook_secret").parents("tr").eq(0);i(this).is(":checked")?(e.show(),t.show(),o.show(),s.hide(),c.hide(),r.hide()):(e.hide(),t.hide(),o.hide(),s.show(),c.show(),r.show())}),i("#woocommerce_stripe_testmode").trigger("change"),i("#woocommerce_stripe_payment_request").on("change",function(){i(this).is(":checked")?i("#woocommerce_stripe_payment_request_button_theme, #woocommerce_stripe_payment_request_button_type, #woocommerce_stripe_payment_request_button_height").closest("tr").show():i("#woocommerce_stripe_payment_request_button_theme, #woocommerce_stripe_payment_request_button_type, #woocommerce_stripe_payment_request_button_height").closest("tr").hide()}).trigger("change"),i("#woocommerce_stripe_payment_request_button_type").on("change",function(){"custom"===i(this).val()?i("#woocommerce_stripe_payment_request_button_label").closest("tr").show():i("#woocommerce_stripe_payment_request_button_label").closest("tr").hide()}).trigger("change"),i("#woocommerce_stripe_payment_request_button_type").on("change",function(){"branded"===i(this).val()?i("#woocommerce_stripe_payment_request_button_branded_type").closest("tr").show():i("#woocommerce_stripe_payment_request_button_branded_type").closest("tr").hide()}).trigger("change"),i(".wc-stripe-3ds-missing").each(function(){var e=i(this);e.find(".notice-dismiss").on("click.wc-stripe-dismiss-notice",function(){i.ajax({type:"head",url:window.location.href+"&stripe_dismiss_3ds="+e.data("nonce")})})}),i("#woocommerce_stripe_test_secret_key, #woocommerce_stripe_secret_key, #woocommerce_stripe_test_webhook_secret, #woocommerce_stripe_webhook_secret").after('<button class="wc-stripe-toggle-secret" style="height: 30px; margin-left: 2px; cursor: pointer"><span class="dashicons dashicons-visibility"></span></button>'),i(".wc-stripe-toggle-secret").on("click",function(e){e.preventDefault();var t=i(this).closest("button").find(".dashicons"),e=i(this).closest("tr").find(".input-text");"text"==e.attr("type")?(e.attr("type","password"),t.removeClass("dashicons-hidden"),t.addClass("dashicons-visibility")):(e.attr("type","text"),t.removeClass("dashicons-visibility"),t.addClass("dashicons-hidden"))}),i("form").find("input, select").on("change input",function e(){i("#wc_stripe_connect_button").addClass("disabled"),i("#wc_stripe_connect_button").on("click",function(){return!1}),i("#woocommerce_stripe_api_credentials").next("p").append(" (Please save changes before selecting this button.)"),i("form").find("input, select").off("change input",e)}),i(".wc_gateways").on("click",".wc-payment-upe-method-toggle-enabled, .wc-payment-upe-method-toggle-disabled",function(){var e=i(this).find(".woocommerce-input-toggle");return e.toggleClass("woocommerce-input-toggle--enabled woocommerce-input-toggle--disabled"),e.parent().toggleClass("wc-payment-upe-method-toggle-enabled wc-payment-upe-method-toggle-disabled"),i("#wc_stripe_upe_change_notice").removeClass("hidden"),!1}),i("#mainform").submit(function(){var e=i(this);i(".wc_gateways .wc-payment-upe-method-toggle-enabled").each(function(){e.append('<input type="hidden" name="woocommerce_stripe_upe_checkout_experience_accepted_payments[]" value="'+i(this).closest("tr").data("upe_method_id")+'" />')})});var e=Date.now()/1e3-wc_stripe_settings_params.time;240<Math.abs(e)&&i("#woocommerce_stripe_test_webhook_secret, #woocommerce_stripe_webhook_secret").closest("td").append("<p>"+wc_stripe_settings_params.i18n_out_of_sync+"</p>")}};e.init()});
build/additional_methods_setup.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('react', 'react-dom', 'wp-element', 'wp-polyfill'), 'version' => '2a6d53e19ad75055342bad7c3c9614d6');
build/additional_methods_setup.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=219)}({0:function(e,t){e.exports=window.wp.element},1:function(e,t){e.exports=window.React},219:function(e,t,n){"use strict";n.r(t);var r=n(0),o=(n(1),n(56)),u=n.n(o);const i=document.getElementById("wc-stripe-onboarding-wizard-container");i&&u.a.render(Object(r.createElement)(()=>Object(r.createElement)("div",null,"Hello wizard page"),null),i)},56:function(e,t){e.exports=window.ReactDOM}});
build/index.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('jquery', 'react', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'c889ba6aebe35154550efe0912fbb67c');
1
+ <?php return array('dependencies' => array('jquery', 'react', 'wc-blocks-registry', 'wc-settings', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '540a8c97712473bf78cc602ed2e47bfc');
build/index.js CHANGED
@@ -1 +1 @@
1
- !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=20)}([function(e,t){e.exports=window.wp.element},function(e,t){e.exports=window.wp.i18n},function(e,t){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},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(13),o=n(14),i=n(15),c=n(17);e.exports=function(e,t){return r(e)||o(e,t)||i(e,t)||c()},e.exports.default=e.exports,e.exports.__esModule=!0},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){(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(){}function i(){}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t,i.resetWarningCache=o;var c=function(e,t){return function(e){e.exports=function(){function e(e,t,n,r,o,i){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==i){var c=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 c.name="Invariant Violation",c}}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:i,resetWarningCache:o};return n.PropTypes=n,n}()}(t={exports:{}}),t.exports}(),a=function(e){return null!==e&&"object"===n(e)},u=function e(t,n){if(!a(t)||!a(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var o="[object Object]"===Object.prototype.toString.call(t);if(o!==("[object Object]"===Object.prototype.toString.call(n)))return!1;if(!o&&!r)return!1;var i=Object.keys(t),c=Object.keys(n);if(i.length!==c.length)return!1;for(var u={},s=0;s<i.length;s+=1)u[i[s]]=!0;for(var l=0;l<c.length;l+=1)u[c[l]]=!0;var p=Object.keys(u);if(p.length!==i.length)return!1;var d=t,f=n;return p.every((function(t){return e(d[t],f[t])}))},s=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),n.current},l=function(e){if(null===e||a(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.")},p=t.createContext(null);p.displayName="ElementsContext";var d=function(e){var n,o,i=e.stripe,c=e.options,d=e.children,f=t.useRef(!1),m=t.useRef(!0),v=t.useMemo((function(){return function(e){if(function(e){return a(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then(l)};var t=l(e);return null===t?{tag:"empty"}:{tag:"sync",stripe:t}}(i)}),[i]),y=(n=t.useState((function(){return{stripe:null,elements:null}})),o=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],_n=!0,r=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(_n=(i=c.next()).done)&&(n.push(i.value),!t||n.length!==t);_n=!0);}catch(e){r=!0,o=e}finally{try{_n||null==c.return||c.return()}finally{if(r)throw o}}return n}}(n,o)||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}}(n,o)||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.")}()),b=y[0],g=y[1],h=s(i),_=s(c);return null!==h&&(h!==i&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it."),u(c,_)||console.warn("Unsupported prop change on Elements: You cannot change the `options` prop after setting the `stripe` prop.")),f.current||("sync"===v.tag&&(f.current=!0,g({stripe:v.stripe,elements:v.stripe.elements(c)})),"async"===v.tag&&(f.current=!0,v.stripePromise.then((function(e){e&&m.current&&g({stripe:e,elements:e.elements(c)})})))),t.useEffect((function(){return function(){m.current=!1}}),[]),t.useEffect((function(){var e=b.stripe;e&&e._registerWrapper&&e._registerWrapper({name:"react-stripe-js",version:"1.2.2"})}),[b.stripe]),t.createElement(p.Provider,{value:b},d)};d.propTypes={stripe:c.any,options:c.object};var f=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(p),e)},m=function(e){return(0,e.children)(f("mounts <ElementsConsumer>"))};m.propTypes={children:c.func.isRequired};var v=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),function(){n.current&&n.current.apply(n,arguments)}},y=function(e){return a(e)?(e.paymentRequest,function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["paymentRequest"])):{}},b=function(){},g=function(e,n){var r,o="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),i=n?function(e){f("mounts <".concat(o,">"));var n=e.id,r=e.className;return t.createElement("div",{id:n,className:r})}:function(n){var r=n.id,i=n.className,c=n.options,a=void 0===c?{}:c,s=n.onBlur,l=void 0===s?b:s,p=n.onFocus,d=void 0===p?b:p,m=n.onReady,g=void 0===m?b:m,h=n.onChange,_=void 0===h?b:h,w=n.onEscape,O=void 0===w?b:w,E=n.onClick,j=void 0===E?b:E,C=f("mounts <".concat(o,">")).elements,x=t.useRef(null),S=t.useRef(null),R=v(g),P=v(l),T=v(d),k=v(j),I=v(_),A=v(O);t.useLayoutEffect((function(){if(null==x.current&&C&&null!=S.current){var t=C.create(e,a);x.current=t,t.mount(S.current),t.on("ready",(function(){return R(t)})),t.on("change",I),t.on("blur",P),t.on("focus",T),t.on("escape",A),t.on("click",k)}}));var M=t.useRef(a);return t.useEffect((function(){M.current&&M.current.paymentRequest!==a.paymentRequest&&console.warn("Unsupported prop change: options.paymentRequest is not a customizable property.");var e=y(a);0===Object.keys(e).length||u(e,y(M.current))||x.current&&(x.current.update(e),M.current=a)}),[a]),t.useLayoutEffect((function(){return function(){x.current&&x.current.destroy()}}),[]),t.createElement("div",{id:r,className:i,ref:S})};return i.propTypes={id:c.string,className:c.string,onChange:c.func,onBlur:c.func,onFocus:c.func,onReady:c.func,onClick:c.func,options:c.object},i.displayName=o,i.__elementType=e,i},h="undefined"==typeof window,_=g("auBankAccount",h),w=g("card",h),O=g("cardNumber",h),E=g("cardExpiry",h),j=g("cardCvc",h),C=g("fpxBank",h),x=g("iban",h),S=g("idealBank",h),R=g("paymentRequestButton",h);e.AuBankAccountElement=_,e.CardCvcElement=j,e.CardElement=w,e.CardExpiryElement=E,e.CardNumberElement=O,e.Elements=d,e.ElementsConsumer=m,e.FpxBankElement=C,e.IbanElement=x,e.IdealBankElement=S,e.PaymentRequestButtonElement=R,e.useElements=function(){return f("calls useElements()").elements},e.useStripe=function(){return f("calls useStripe()").stripe},Object.defineProperty(e,"__esModule",{value:!0})}(t,n(19))},function(e,t){e.exports=window.regeneratorRuntime},function(e,t){function n(e,t,n,r,o,i,c){try{var a=e[i](c),u=a.value}catch(e){return void n(e)}a.done?t(u):Promise.resolve(u).then(r,o)}e.exports=function(e){return function(){var t=this,r=arguments;return new Promise((function(o,i){var c=e.apply(t,r);function a(e){n(c,o,i,a,u,"next",e)}function u(e){n(c,o,i,a,u,"throw",e)}a(void 0)}))}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=window.jQuery},function(e,t,n){var r=n(18);e.exports=function(e,t){if(null==e)return{};var n,o,i=r(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o<c.length;o++)n=c[o],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=window.wc.wcSettings},function(e,t){e.exports=window.wc.wcBlocksRegistry},function(e,t){function n(){return e.exports=n=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},e.exports.default=e.exports,e.exports.__esModule=!0,n.apply(this,arguments)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){function n(t){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?(e.exports=n=function(e){return typeof e},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=n=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.default=e.exports,e.exports.__esModule=!0),n(t)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e){if(Array.isArray(e))return e},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],_n=!0,r=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(_n=(i=c.next()).done)&&(n.push(i.value),!t||n.length!==t);_n=!0);}catch(e){r=!0,o=e}finally{try{_n||null==c.return||c.return()}finally{if(r)throw o}}return n}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t,n){var r=n(16);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}},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){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},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){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.")},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o},e.exports.default=e.exports,e.exports.__esModule=!0},function(e,t){e.exports=window.React},function(e,t,n){"use strict";n.r(t);var r=n(10),o=n(11),i=n.n(o),c=n(3),a=n.n(c),u=n(8),s=n.n(u),l=n(0),p=n(1),d=n(2),f=n.n(d),m=n(9),v={INVALID_EMAIL:"email_invalid",INVALID_REQUEST:"invalid_request_error",API_CONNECTION:"api_connection_error",API_ERROR:"api_error",AUTHENTICATION_ERROR:"authentication_error",RATE_LIMIT_ERROR:"rate_limit_error",CARD_ERROR:"card_error",VALIDATION_ERROR:"validation_error"},y=function(){var e=Object(m.getSetting)("stripe_data",null);if(!e)throw new Error("Stripe initialization data is not available");return e},b=function(e,t){var n,r,o={total:t.order_data.total,currency:t.order_data.currency,country:t.order_data.country_code,requestPayerName:!0,requestPayerEmail:!0,requestPayerPhone:null===(n=y())||void 0===n||null===(r=n.checkout)||void 0===r?void 0:r.needs_payer_phone,requestShipping:!!t.shipping_required,displayItems:t.order_data.displayItems};return"PR"===o.country&&(o.country="US"),e.paymentRequest(o)},g=function(e){return[v.INVALID_REQUEST,v.API_CONNECTION,v.API_ERROR,v.AUTHENTICATION_ERROR,v.RATE_LIMIT_ERROR].includes(e)},h=function(e){var t;return(t={},f()(t,"invalid_number",Object(p.__)("The card number is not a valid credit card number.","woocommerce-gateway-stripe")),f()(t,"invalid_expiry_month",Object(p.__)("The card expiration month is invalid.","woocommerce-gateway-stripe")),f()(t,"invalid_expiry_year",Object(p.__)("The card expiration year is invalid.","woocommerce-gateway-stripe")),f()(t,"invalid_cvc",Object(p.__)("The card security code is invalid.","woocommerce-gateway-stripe")),f()(t,"incorrect_number",Object(p.__)("The card number is incorrect.","woocommerce-gateway-stripe")),f()(t,"incomplete_number",Object(p.__)("The card number is incomplete.","woocommerce-gateway-stripe")),f()(t,"incomplete_cvc",Object(p.__)("The card security code is incomplete.","woocommerce-gateway-stripe")),f()(t,"incomplete_expiry",Object(p.__)("The card expiration date is incomplete.","woocommerce-gateway-stripe")),f()(t,"expired_card",Object(p.__)("The card has expired.","woocommerce-gateway-stripe")),f()(t,"incorrect_cvc",Object(p.__)("The card security code is incorrect.","woocommerce-gateway-stripe")),f()(t,"incorrect_zip",Object(p.__)("The card zip code failed validation.","woocommerce-gateway-stripe")),f()(t,"invalid_expiry_year_past",Object(p.__)("The card expiration year is in the past","woocommerce-gateway-stripe")),f()(t,"card_declined",Object(p.__)("The card was declined.","woocommerce-gateway-stripe")),f()(t,"missing",Object(p.__)("There is no card on a customer that is being charged.","woocommerce-gateway-stripe")),f()(t,"processing_error",Object(p.__)("An error occurred while processing the card.","woocommerce-gateway-stripe")),t)[e]||null},_=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";switch(e){case v.INVALID_EMAIL:return Object(p.__)("Invalid email address, please correct and try again.","woocommerce-gateway-stripe");case g(e):return Object(p.__)("Unable to process this payment, please try again or use alternative method.","woocommerce-gateway-stripe");case v.CARD_ERROR:return h(t);case v.VALIDATION_ERROR:return""}return null},w="https://js.stripe.com/v3",O=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,E="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",j=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.11.0",startTime:t})}(r,n),r},x=Promise.resolve().then((function(){return e=null,null!==j?j:j=new Promise((function(t,n){if("undefined"!=typeof window)if(window.Stripe&&e&&console.warn(E),window.Stripe)t(window.Stripe);else try{var r=function(){for(var e=document.querySelectorAll('script[src^="'.concat(w,'"]')),t=0;t<e.length;t++){var n=e[t];if(O.test(n.src))return n}return null}();r&&e?console.warn(E):r||(r=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",n=document.createElement("script");n.src="".concat(w).concat(t);var r=document.head||document.body;if(!r)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return r.appendChild(n),n}(e)),r.addEventListener("load",(function(){window.Stripe?t(window.Stripe):n(new Error("Stripe.js not available"))})),r.addEventListener("error",(function(){n(new Error("Failed to load Stripe.js"))}))}catch(e){return void n(e)}else t(null)}));var e})),S=!1;x.catch((function(e){S||console.warn(e)}));var R=function(){return new Promise((function(e){try{var t,n,r=null!==(t=null===(n=y())||void 0===n?void 0:n.stripe_locale)&&void 0!==t?t:"auto";e(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];S=!0;var r=Date.now();return x.then((function(e){return C(e,t,r)}))}(function(){var e,t=null===(e=y())||void 0===e?void 0:e.key;if(!t)throw new Error("There is no api key available for stripe. Make sure it is available on the wc.stripe_data.stripe.key property.");return t}(),{locale:r}))}catch(t){e({error:t})}}))},P=n(4),T=n(6),k=n.n(T),I=n(5),A=n.n(I),M=function(e){var t=e.stripe,n=e.paymentDetails,r=e.errorContext,o=e.errorType,i={type:e.successType};if(!n.setup_intent_secret&&!n.payment_intent_secret)return!0;var c=!!n.setup_intent_secret,a=n.verification_endpoint,u=c?n.setup_intent_secret:n.payment_intent_secret;return t[c?"confirmCardSetup":"confirmCardPayment"](u).then((function(e){if(e.error)throw e.error;var t=e[c?"setupIntent":"paymentIntent"];return"requires_capture"!==t.status&&"succeeded"!==t.status||(i.redirectUrl=a),i})).catch((function(e){return i.type=o,i.message=e.message,i.retry=!0,i.messageContext=r,window.fetch(a+"&is_ajax"),i}))},N=function(e,t,n,r){Object(l.useEffect)((function(){var o=t(function(){var t=k()(A.a.mark((function t(o){var i,c,a;return A.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return i=o.processingResponse,c=i.paymentDetails||{},t.next=4,M({stripe:e,paymentDetails:c,errorContext:r.noticeContexts.PAYMENTS,errorType:r.responseTypes.ERROR,successType:r.responseTypes.SUCCESS});case 4:return(a=t.sent).type===r.responseTypes.ERROR&&a.retry&&n(""),t.abrupt("return",a);case 7:case"end":return t.stop()}}),t)})));return function(_x){return t.apply(this,arguments)}}());return function(){return o()}}),[t,r.noticeContexts.PAYMENTS,r.responseTypes.ERROR,r.responseTypes.SUCCESS,n,e])},L=function(){},D=function(e){var t=e.eventRegistration,n=e.emitResponse,r=Object(P.useStripe)(),o=t.onCheckoutAfterProcessingWithSuccess;return N(r,o,L,n),null},q=n(12),B=n.n(q);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 F(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){f()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var V={style:{base:{iconColor:"#666EE8",color:"#31325F",fontSize:function(e,t,n){var r={};if("object"===("undefined"==typeof document?"undefined":B()(document))&&"function"==typeof document.querySelector&&"function"==typeof window.getComputedStyle){var o=document.querySelector(".wc-block-checkout");o&&(r=window.getComputedStyle(o))}return r.fontSize||"16px"}(),lineHeight:1.375,"::placeholder":{color:"#fff"}}},classes:{focus:"focused",empty:"empty",invalid:"has-error"}},H=function(e){var t=Object(l.useState)(!1),n=a()(t,2),r=n[0],o=n[1],i=Object(l.useState)(F(F({},V),e)),c=a()(i,2),u=c[0],s=c[1],p=Object(l.useState)(""),d=a()(p,2),f=d[0],m=d[1];return Object(l.useEffect)((function(){var e=r?"#CFD7E0":"#fff";s((function(t){var n=void 0!==t.showIcon?{showIcon:r}:{};return F(F({},t),{},{style:F(F({},t.style),{},{base:F(F({},t.style.base),{},{"::placeholder":{color:e}})})},n)}))}),[r]),{options:u,onActive:Object(l.useCallback)((function(e){o(!e||function(e){return!e})}),[o]),error:f,setError:m}};function W(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 Y(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?W(Object(n),!0).forEach((function(t){f()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):W(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var z,Z,$,G,Q,J,K=function(e){var t=e.inputErrorComponent,n=e.onChange,r=Object(l.useState)(!0),o=a()(r,2),i=o[0],c=o[1],u=H({hidePostalCode:!0}),s=u.options,d=u.onActive,f=u.error,m=u.setError;return Object(l.createElement)(l.Fragment,null,Object(l.createElement)("div",{className:"wc-block-gateway-container wc-inline-card-element"},Object(l.createElement)(P.CardElement,{id:"wc-stripe-inline-card-element",className:"wc-block-gateway-input",options:s,onBlur:function(){return d(i)},onFocus:function(){return d(i)},onChange:function(e){e.error?m(e.error.message):m(""),c(e.empty),n(e)}}),Object(l.createElement)("label",{htmlFor:"wc-stripe-inline-card-element"},Object(p.__)("Credit Card Information","woocommerce-gateway-stripe"))),Object(l.createElement)(t,{errorMessage:f}))},X=function(e){var t=e.onChange,n=e.inputErrorComponent,r=Object(l.useState)({cardNumber:!0,cardExpiry:!0,cardCvc:!0}),o=a()(r,2),i=o[0],c=o[1],u=H({showIcon:!1}),s=u.options,d=u.onActive,m=u.error,v=u.setError,y=H(),b=y.options,g=y.onActive,h=y.error,_=y.setError,w=H(),O=w.options,E=w.onActive,j=w.error,C=w.setError,x=function(e,n){return function(r){r.error?e(r.error.message):e(""),c(Y(Y({},i),{},f()({},n,r.empty))),t(r)}};return Object(l.createElement)("div",{className:"wc-block-card-elements"},Object(l.createElement)("div",{className:"wc-block-gateway-container wc-card-number-element"},Object(l.createElement)(P.CardNumberElement,{onChange:x(v,"cardNumber"),options:s,className:"wc-block-gateway-input",id:"wc-stripe-card-number-element",onFocus:function(){return d(i.cardNumber)},onBlur:function(){return d(i.cardNumber)}}),Object(l.createElement)("label",{htmlFor:"wc-stripe-card-number-element"},Object(p.__)("Card Number","woocommerce-gateway-stripe")),Object(l.createElement)(n,{errorMessage:m})),Object(l.createElement)("div",{className:"wc-block-gateway-container wc-card-expiry-element"},Object(l.createElement)(P.CardExpiryElement,{onChange:x(_,"cardExpiry"),options:b,className:"wc-block-gateway-input",onFocus:function(){return g(i.cardExpiry)},onBlur:function(){return g(i.cardExpiry)},id:"wc-stripe-card-expiry-element"}),Object(l.createElement)("label",{htmlFor:"wc-stripe-card-expiry-element"},Object(p.__)("Expiry Date","woocommerce-gateway-stripe")),Object(l.createElement)(n,{errorMessage:h})),Object(l.createElement)("div",{className:"wc-block-gateway-container wc-card-cvc-element"},Object(l.createElement)(P.CardCvcElement,{onChange:x(C,"cardCvc"),options:O,className:"wc-block-gateway-input",onFocus:function(){return E(i.cardCvc)},onBlur:function(){return E(i.cardCvc)},id:"wc-stripe-card-code-element"}),Object(l.createElement)("label",{htmlFor:"wc-stripe-card-code-element"},Object(p.__)("CVV/CVC","woocommerce-gateway-stripe")),Object(l.createElement)(n,{errorMessage:j})))},ee=function(){var e,t;return Object.entries(null!==(e=null===(t=y())||void 0===t?void 0:t.icons)&&void 0!==e?e:{}).map((function(e){var t=a()(e,2),n=t[0],r=t[1];return{id:n,src:r.src,alt:r.alt}}))},te=function(e){var t,n=e.billing,r=e.eventRegistration,o=e.emitResponse,i=e.components,c=i.ValidationInputError,u=i.PaymentMethodIcons,s=Object(l.useState)(""),p=a()(s,2),d=p[0],f=p[1],m=Object(P.useStripe)(),b=function(e,t,n,r,o,i){var c=Object(l.useState)(""),u=a()(c,2),s=u[0],p=u[1],d=Object(l.useCallback)((function(e){var t,n=e.error.type,r=e.error.code||"",o=null!==(t=_(n,r))&&void 0!==t?t:e.error.message;return p(o),o}),[]),f=e.onCheckoutAfterProcessingWithSuccess,m=e.onPaymentProcessing,b=e.onCheckoutAfterProcessingWithError;return N(i,f,r,o),function(e,t,n,r,o,i,c,a){var u=Object(P.useElements)();Object(l.useEffect)((function(){var s=function(){var e=k()(A.a.mark((function e(t){var r,o;return A.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o="yes"===(null===(r=y())||void 0===r?void 0:r.inline_cc_form)?P.CardElement:P.CardNumberElement,e.next=3,n.createSource(null==u?void 0:u.getElement(o),{type:"card",owner:t});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));return function(_x){return e.apply(this,arguments)}}(),l=a(function(){var n=k()(A.a.mark((function n(){var a,u,l,p,d;return A.a.wrap((function(n){for(;;)switch(n.prev=n.next){case 0:if(n.prev=0,l=r.billingData,!t){n.next=4;break}return n.abrupt("return",{type:o.responseTypes.ERROR,message:t});case 4:if(""===i){n.next=6;break}return n.abrupt("return",{type:o.responseTypes.SUCCESS,meta:{paymentMethodData:{paymentMethod:"stripe",paymentRequestType:"cc",stripe_source:i},billingData:l}});case 6:return p={address:{line1:l.address_1,line2:l.address_2,city:l.city,state:l.state,postal_code:l.postcode,country:l.country}},l.phone&&(p.phone=l.phone),l.email&&(p.email=l.email),(l.first_name||l.last_name)&&(p.name="".concat(l.first_name," ").concat(l.last_name)),n.next=12,s(p);case 12:if(!(d=n.sent).error){n.next=15;break}return n.abrupt("return",{type:o.responseTypes.ERROR,message:e(d)});case 15:if(d.source&&d.source.id){n.next=17;break}throw new Error(_(v.API_ERROR));case 17:return c(d.source.id),n.abrupt("return",{type:o.responseTypes.SUCCESS,meta:{paymentMethodData:{stripe_source:d.source.id,billing_email:p.email,billing_first_name:null!==(a=null==l?void 0:l.first_name)&&void 0!==a?a:"",billing_last_name:null!==(u=null==l?void 0:l.last_name)&&void 0!==u?u:"",paymentMethod:"stripe",paymentRequestType:"cc"},billingData:l}});case 21:return n.prev=21,n.t0=n.catch(0),n.abrupt("return",{type:o.responseTypes.ERROR,message:n.t0});case 24:case"end":return n.stop()}}),n,null,[[0,21]])})));return function(){return n.apply(this,arguments)}}());return function(){l()}}),[a,r.billingData,n,i,c,e,t,o.noticeContexts.PAYMENTS,o.responseTypes.ERROR,o.responseTypes.SUCCESS,u])}(d,s,i,t,o,n,r,m),Object(l.useEffect)((function(){var e=b((function(e){var t,n=e.processingResponse;return null==n||null===(t=n.paymentDetails)||void 0===t||!t.errorMessage||{type:o.responseTypes.ERROR,message:n.paymentDetails.errorMessage,messageContext:o.noticeContexts.PAYMENTS}}));return function(){e()}}),[b,o.noticeContexts.PAYMENTS,o.responseTypes.ERROR]),d}(r,n,d,f,o,m),g=function(e){e.error&&b(e),f("")},h=ee(),w="yes"===(null===(t=y())||void 0===t?void 0:t.inline_cc_form)?Object(l.createElement)(K,{onChange:g,inputErrorComponent:c}):Object(l.createElement)(X,{onChange:g,inputErrorComponent:c});return Object(l.createElement)(l.Fragment,null,w,u&&h.length&&Object(l.createElement)(u,{icons:h,align:"left"}))},ne=function(e){var t=e.stripe;return Object(l.createElement)(P.Elements,{stripe:t},Object(l.createElement)(te,e))},re=R(),oe=function(e){var t=e.RenderedComponent,n=s()(e,["RenderedComponent"]),r=Object(l.useState)(""),o=a()(r,2),c=o[0],u=o[1];return Object(l.useEffect)((function(){Promise.resolve(re).then((function(e){var t=e.error;t&&u(t.message)}))}),[u]),Object(l.useEffect)((function(){if(c)throw new Error(c)}),[c]),Object(l.createElement)(t,i()({stripe:re},n))},ie=ee(),ce={name:"stripe",label:Object(l.createElement)((function(e){var t,n,r=e.components.PaymentMethodLabel,o=null!==(t=null===(n=y())||void 0===n?void 0:n.title)&&void 0!==t?t:Object(p.__)("Credit / Debit Card","woocommerce-gateway-stripe");return Object(l.createElement)(r,{text:o})}),null),content:Object(l.createElement)(oe,{RenderedComponent:ne}),edit:Object(l.createElement)(oe,{RenderedComponent:ne}),savedTokenComponent:Object(l.createElement)(oe,{RenderedComponent:function(e){var t=e.stripe,n=s()(e,["stripe"]);return Object(l.createElement)(P.Elements,{stripe:t},Object(l.createElement)(D,n))}}),icons:ie,canMakePayment:function(){return re},ariaLabel:Object(p.__)("Stripe Credit Card payment method","woocommerce-gateway-stripe"),supports:{showSavedCards:null!==(z=null===(Z=y())||void 0===Z?void 0:Z.showSavedCards)&&void 0!==z&&z,showSaveOption:null!==($=null===(G=y())||void 0===G?void 0:G.showSaveOption)&&void 0!==$&&$,features:null!==(Q=null===(J=y())||void 0===J?void 0:J.supports)&&void 0!==Q?Q:[]}},ae=function(e){var t,n,r=e.onButtonClicked,o=null===(t=y())||void 0===t?void 0:t.button,i=o.theme,c=void 0===i?"dark":i,u=o.locale,s=void 0===u?"en":u,p=o.height,d=void 0===p?"44":p,f=(null===(n=y())||void 0===n?void 0:n.button).branded_type,m=["short","long"].includes(f)?f:"long",v=function(e,t,n){var r="long"===e?"https://www.gstatic.com/instantbuy/svg/".concat(t,"/").concat(n,".svg"):"https://www.gstatic.com/instantbuy/svg/".concat(t,"_gpay.svg"),o=Object(l.useState)(r),i=a()(o,2),c=i[0],u=i[1];return Object(l.useEffect)((function(){var e=document.createElement("img");e.addEventListener("error",(function(){u("https://www.gstatic.com/instantbuy/svg/".concat(t,"/en.svg"))})),e.src=c}),[c,t]),c}(m,"dark"===c?"dark":"light",s);return Object(l.createElement)("button",{type:"button",id:"wc-stripe-branded-button","aria-label":"Google Pay",className:"gpay-button ".concat(c," ").concat(m),style:{backgroundImage:"url(".concat(v,")"),height:d+"px"},onClick:r})},ue=function(e){var t,n=e.onButtonClicked,r=null===(t=y())||void 0===t?void 0:t.button,o=r.theme,i=void 0===o?"dark":o,c=r.height,a=void 0===c?"44":c,u=r.customLabel,s=void 0===u?Object(p.__)("Buy now","woocommerce-gateway-stripe"):u;return Object(l.createElement)("button",{type:"button",id:"wc-stripe-custom-button",className:"button ".concat(i," is-active"),style:{height:a+"px"},onClick:n},s)},se=n(7),le=n.n(se);function pe(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}var de,fe,me=function(e){var t,n,r;return null===(t=y())||void 0===t||null===(n=t.ajax_url)||void 0===n||null===(r=n.toString())||void 0===r?void 0:r.replace("%%endpoint%%","wc_stripe_"+e)},ve=function(e){var t,n,r,o,i;(t=e.shippingOption,i={security:null===(n=y())||void 0===n||null===(r=n.nonce)||void 0===r?void 0:r.update_shipping,shipping_method:[t.id],is_product_page:null===(o=y())||void 0===o?void 0:o.is_product_page},le.a.ajax({type:"POST",data:i,url:me("update_shipping_method")})).then((function(t){"success"===t.result&&e.updateWith({status:"success",total:t.total,displayItems:t.displayItems}),"fail"===t.result&&e.updateWith({status:"fail"})}))},ye=function(e,t){Object(l.useEffect)((function(){var n=null==e?void 0:e.on("shippingaddresschange",function(e){return function(t){(function(e,t){var n,r,o,i=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pe(Object(n),!0).forEach((function(t){f()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({security:null===(n=y())||void 0===n||null===(r=n.nonce)||void 0===r?void 0:r.shipping,payment_request_type:t,is_product_page:null===(o=y())||void 0===o?void 0:o.is_product_page},function(e){return{country:e.country,state:e.region,postcode:e.postalCode,city:e.city,address:void 0===e.addressLine[0]?"":e.addressLine[0],address_2:void 0===e.addressLine[1]?"":e.addressLine[1]}}(e));return le.a.ajax({type:"POST",data:i,url:me("get_shipping_options")})})(t.shippingAddress,e).then((function(e){t.updateWith({status:e.result,shippingOptions:e.shipping_options,total:e.total,displayItems:e.displayItems})}))}}(t));return function(){null==n||n.removeEventListener("shippingaddresschange")}}),[e,t])},be=function(e,t,n,r){Object(l.useEffect)((function(){var o=null==t?void 0:t.on("source",function(e,t,n){return function(r){var o,i,c,a,u,s;"yes"===(null===(o=y())||void 0===o||null===(i=o.stripe)||void 0===i?void 0:i.allow_prepaid_card)||"prepaid"!==(null==r||null===(c=r.source)||void 0===c||null===(a=c.card)||void 0===a?void 0:a.funding)?function(e,t){var n=function(e,t){var n,r,o,i,c,a,u,s,l,p,d,f,m,v,b,g,h,_,w,O,E,j,C,x,S,R,P,T,k,I,A=e.source,M=null==A||null===(n=A.owner)||void 0===n?void 0:n.email,N=null==A||null===(r=A.owner)||void 0===r?void 0:r.phone,L=null==A||null===(o=A.owner)||void 0===o?void 0:o.address,D=null==A||null===(i=A.owner)||void 0===i?void 0:i.name,q=null==e?void 0:e.shippingAddress,B={_wpnonce:null===(c=y())||void 0===c||null===(a=c.nonce)||void 0===a?void 0:a.checkout,billing_first_name:null!==(u=null==D||null===(s=D.split(" "))||void 0===s||null===(l=s.slice(0,1))||void 0===l?void 0:l.join(" "))&&void 0!==u?u:"",billing_last_name:null!==(p=null==D||null===(d=D.split(" "))||void 0===d||null===(f=d.slice(1))||void 0===f?void 0:f.join(" "))&&void 0!==p?p:"",billing_company:"",billing_email:null!=M?M:null==e?void 0:e.payerEmail,billing_phone:null!=N?N:null==e||null===(m=e.payerPhone)||void 0===m?void 0:m.replace("/[() -]/g",""),billing_country:null!==(v=null==L?void 0:L.country)&&void 0!==v?v:"",billing_address_1:null!==(b=null==L?void 0:L.line1)&&void 0!==b?b:"",billing_address_2:null!==(g=null==L?void 0:L.line2)&&void 0!==g?g:"",billing_city:null!==(h=null==L?void 0:L.city)&&void 0!==h?h:"",billing_state:null!==(_=null==L?void 0:L.state)&&void 0!==_?_:"",billing_postcode:null!==(w=null==L?void 0:L.postal_code)&&void 0!==w?w:"",shipping_first_name:"",shipping_last_name:"",shipping_company:"",shipping_country:"",shipping_address_1:"",shipping_address_2:"",shipping_city:"",shipping_state:"",shipping_postcode:"",shipping_method:[null==e||null===(O=e.shippingOption)||void 0===O?void 0:O.id],order_comments:"",payment_method:"stripe",ship_to_different_address:1,terms:1,stripe_source:A.id,payment_request_type:t};return q&&(B.shipping_first_name=null==q||null===(E=q.recipient)||void 0===E||null===(j=E.split(" "))||void 0===j||null===(C=j.slice(0,1))||void 0===C?void 0:C.join(" "),B.shipping_last_name=null==q||null===(x=q.recipient)||void 0===x||null===(S=x.split(" "))||void 0===S||null===(R=S.slice(1))||void 0===R?void 0:R.join(" "),B.shipping_company=null==q?void 0:q.organization,B.shipping_country=null==q?void 0:q.country,B.shipping_address_1=null!==(P=null==q||null===(T=q.addressLine)||void 0===T?void 0:T[0])&&void 0!==P?P:"",B.shipping_address_2=null!==(k=null==q||null===(I=q.addressLine)||void 0===I?void 0:I[1])&&void 0!==k?k:"",B.shipping_city=null==q?void 0:q.city,B.shipping_state=null==q?void 0:q.region,B.shipping_postcode=null==q?void 0:q.postalCode),B}(e,t);return le.a.ajax({type:"POST",data:n,dataType:"json",url:me("create_order")})}(r,t).then(function(e,t,n){return function(r){if("success"===r.result){t.complete("success");var o=function(e){var t=e.match(/^#?confirm-(pi|si)-([^:]+):(.+)$/);if(t&&!(t.length<4))return{type:t[1],clientSecret:t[2],redirectUrl:decodeURIComponent(t[3])}}(r.redirect);if(!o||o.length<4)return void(window.location=r.redirect);var i=o.type,c=o.clientSecret,a=o.redirectUrl;(function(e,t,n){return"si"===t?e.handleCardSetup(n):e.handleCardPayment(n)})(e,i,c).then(function(e,t){return function(n){if(n.error)throw n.error;var r=function(e,t){return"si"===t?e.setupIntent:e.paymentIntent}(n,t);(function(e){return"requires_capture"===e.status}(r)||function(e){return"succeeded"===e.status}(r))&&(window.location=e)}}(a,i)).catch((function(e){n(e.message),le.a.get(a+"&is_ajax")}))}else{var u,s;t.complete("fail");var l=document.createElement("div");l.innerHTML=r.messages;var p=null!==(u=null==l||null===(s=l.firstChild)||void 0===s?void 0:s.textContent)&&void 0!==u?u:"";n(p)}}}(e,r,n)):n(null===(u=y())||void 0===u||null===(s=u.i18n)||void 0===s?void 0:s.no_prepaid_card)}}(e,n,r));return function(){null==o||o.removeEventListener("source")}}),[e,t,n,r])},ge=function(e){var t,n,r,o,i,c,u,s=e.billing,p=e.shippingData,d=e.onClick,f=e.onClose,m=e.setExpressPaymentError,v=Object(P.useStripe)(),g=function(e,t,n){var r=Object(l.useState)(null),o=a()(r,2),i=o[0],c=o[1],u=Object(l.useState)(null),s=a()(u,2),p=s[0],d=s[1];return Object(l.useEffect)((function(){e&&function(){var t=k()(A.a.mark((function t(){var n,r,o;return A.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,void 0,a=void 0,void 0,u={security:null===(i=y())||void 0===i||null===(a=i.nonce)||void 0===a?void 0:a.payment},le.a.ajax({type:"POST",data:u,url:me("get_cart_details")});case 2:return n=t.sent,r=b(e,n),t.next=6,r.canMakePayment();case 6:(o=t.sent)?(c(r),d((function(){return o.applePay?"apple_pay":o.googlePay?"google_pay":"payment_request_api"}))):c(null);case 8:case"end":return t.stop()}var i,a,u}),t)})));return function(){return t.apply(this,arguments)}}()()}),[e,t,n.cartTotal,n.cartTotalItems,n.currency.code]),[i,p]}(v,p.needsShipping,s),h=a()(g,2),_=h[0],w=h[1];ye(_,w),function(e,t){Object(l.useEffect)((function(){var t=null==e?void 0:e.on("shippingoptionchange",ve);return function(){null==t||t.removeEventListener("shippingoptionchange")}}),[e,t])}(_,w),be(v,_,w,m);var O=function(e,t,n){return Object(l.useCallback)((function(r,o){var i;if(null!==(i=y())&&void 0!==i&&i.login_confirmation)return r.preventDefault(),void function(e){var t,n,r;if(null!==(t=y())&&void 0!==t&&t.login_confirmation){var o,i,c=null===(n=y())||void 0===n||null===(r=n.login_confirmation)||void 0===r?void 0:r.message;"payment_request_api"!==e&&(c=c.replace(/\*\*.*?\*\*/,"apple_pay"===e?"Apple Pay":"Google Pay")),c=c.replace(/\*\*/g,""),confirm(c)&&(window.location.href=null===(o=y())||void 0===o||null===(i=o.login_confirmation)||void 0===i?void 0:i.redirect_url)}}(e);t(""),n(),o&&o.show()}),[e,t,n])}(w,m,d);!function(e,t){Object(l.useEffect)((function(){var n=null==e?void 0:e.on("cancel",t);return function(){null==n||n.removeEventListener("cancel")}}),[e,t])}(_,f);var E,j,C,x=null===(t=y())||void 0===t?void 0:t.button,S=x.type,R=void 0===S?"default":S,T=x.theme,I=void 0===T?"dark":T,M=x.height,N={paymentRequestButton:{type:R,theme:I,height:"".concat(void 0===M?"48":M,"px")}},L=null===(n=y())||void 0===n||null===(r=n.button)||void 0===r?void 0:r.is_branded,D=null===(o=y())||void 0===o||null===(i=o.button)||void 0===i?void 0:i.branded_type,q=null===(c=y())||void 0===c||null===(u=c.button)||void 0===u?void 0:u.is_custom;return _?q?Object(l.createElement)(ue,{onButtonClicked:function(e){O(e,_)}}):L&&(E=window.navigator.userAgent.toLowerCase(),C=(j=/chrome/.test(E)&&!/edge|edg|opr|brave\//.test(E)&&"Google Inc."===window.navigator.vendor)&&window.navigator.brave,j&&!C)?Object(l.createElement)(ae,{onButtonClicked:function(e){O(e,_)}}):(L&&(N.paymentRequestButton.type="long"===D?"buy":"default"),Object(l.createElement)(P.PaymentRequestButtonElement,{onClick:O,options:{style:N,paymentRequest:_}})):null},he=R(),_e={name:"payment_request",content:Object(l.createElement)((function(e){var t=e.stripe;return Object(l.createElement)(P.Elements,{stripe:t},Object(l.createElement)(ge,e))}),{stripe:he}),edit:Object(l.createElement)((function(){return Object(l.createElement)("img",{src:"data:image/svg+xml,%3Csvg width='264' height='48' viewBox='0 0 264 48' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='264' height='48' rx='3' fill='black'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M125.114 16.6407C125.682 15.93 126.067 14.9756 125.966 14C125.135 14.0415 124.121 14.549 123.533 15.2602C123.006 15.8693 122.539 16.8641 122.661 17.7983C123.594 17.8797 124.526 17.3317 125.114 16.6407Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M125.955 17.982C124.601 17.9011 123.448 18.7518 122.801 18.7518C122.154 18.7518 121.163 18.0224 120.092 18.0421C118.696 18.0629 117.402 18.8524 116.694 20.1079C115.238 22.6196 116.31 26.3453 117.726 28.3909C118.414 29.4028 119.242 30.5174 120.334 30.4769C121.366 30.4365 121.77 29.8087 123.024 29.8087C124.277 29.8087 124.641 30.4769 125.733 30.4567C126.865 30.4365 127.573 29.4443 128.261 28.4313C129.049 27.2779 129.373 26.1639 129.393 26.1027C129.373 26.0825 127.209 25.2515 127.189 22.7606C127.169 20.6751 128.888 19.6834 128.969 19.6217C127.998 18.1847 126.481 18.0224 125.955 17.982Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M136.131 23.1804H138.834C140.886 23.1804 142.053 22.0752 142.053 20.1592C142.053 18.2432 140.886 17.1478 138.845 17.1478H136.131V23.1804ZM139.466 15.1582C142.411 15.1582 144.461 17.1903 144.461 20.1483C144.461 23.1172 142.369 25.1596 139.392 25.1596H136.131V30.3498H133.775V15.1582H139.466Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152.198 26.224V25.3712L149.579 25.5397C148.106 25.6341 147.339 26.182 147.339 27.14C147.339 28.0664 148.138 28.6667 149.39 28.6667C150.988 28.6667 152.198 27.6449 152.198 26.224ZM145.046 27.2032C145.046 25.2551 146.529 24.1395 149.263 23.971L152.198 23.7922V22.9498C152.198 21.7181 151.388 21.0442 149.947 21.0442C148.758 21.0442 147.896 21.6548 147.717 22.5916H145.592C145.656 20.6232 147.507 19.1914 150.01 19.1914C152.703 19.1914 154.459 20.602 154.459 22.7917V30.351H152.282V28.5298H152.229C151.609 29.719 150.241 30.4666 148.758 30.4666C146.571 30.4666 145.046 29.1612 145.046 27.2032Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M156.461 34.4145V32.5934C156.608 32.6141 156.965 32.6354 157.155 32.6354C158.196 32.6354 158.785 32.1932 159.142 31.0564L159.353 30.3824L155.366 19.3281H157.827L160.604 28.298H160.657L163.434 19.3281H165.832L161.698 30.9402C160.752 33.6038 159.668 34.4778 157.376 34.4778C157.197 34.4778 156.618 34.4565 156.461 34.4145Z' fill='white'/%3E%3C/svg%3E%0A",alt:""})}),null),canMakePayment:function(e){var t,n,r;return!(null===(t=null===(n=y())||void 0===n?void 0:n.isAdmin)||void 0===t||!t)||!(null===(r=y())||void 0===r||!r.shouldShowPaymentRequestButton)&&R().then((function(t){var n,r,o,i,c,a={order_data:{total:{label:"Total",amount:parseInt(null!==(n=null==e||null===(r=e.cartTotals)||void 0===r?void 0:r.total_price)&&void 0!==n?n:0,10),pending:!0},currency:null==e||null===(o=e.cartTotals)||void 0===o||null===(i=o.currency_code)||void 0===i?void 0:i.toLowerCase(),country_code:null===(c=Object(m.getSetting)("baseLocation",{}))||void 0===c?void 0:c.country,displayItems:[]},shipping_required:!1};return b(t,a).canMakePayment()}))},paymentMethodId:"stripe",supports:{features:null!==(de=null===(fe=y())||void 0===fe?void 0:fe.supports)&&void 0!==de?de:[]}};Object(r.registerPaymentMethod)(ce),Object(r.registerExpressPaymentMethod)(_e)}]);
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=216)}([function(e,t){e.exports=window.wp.element},function(e,t){e.exports=window.React},function(e,t,n){"use strict";n.d(t,"f",(function(){return f})),n.d(t,"e",(function(){return d})),n.d(t,"a",(function(){return l})),n.d(t,"c",(function(){return u})),n.d(t,"b",(function(){return p})),n.d(t,"d",(function(){return O}));var r=n(37),o=n.n(r),i=n(25),c=n.n(i),a=n(3),s=n(4);const u=()=>{var e,t;const n="undefined"!=typeof wc_stripe_upe_params?wc_stripe_upe_params:null===(e=wc)||void 0===e||null===(t=e.wcSettings)||void 0===t?void 0:t.getSetting("stripe_data",null);if(!n)throw new Error("Stripe initialization data is not available");return n},l=(e,t)=>{var n,r;const o={total:t.order_data.total,currency:t.order_data.currency,country:t.order_data.country_code,requestPayerName:!0,requestPayerEmail:!0,requestPayerPhone:null===(n=u())||void 0===n||null===(r=n.checkout)||void 0===r?void 0:r.needs_payer_phone,requestShipping:!!t.shipping_required,displayItems:t.order_data.displayItems};return"PR"===o.country&&(o.country="US"),e.paymentRequest(o)},p=(e,t="")=>{switch(e){case s.b.INVALID_EMAIL:return Object(a.__)("Invalid email address, please correct and try again.","woocommerce-gateway-stripe");case(e=>{var t;return c()(t=[s.b.INVALID_REQUEST,s.b.API_CONNECTION,s.b.API_ERROR,s.b.AUTHENTICATION_ERROR,s.b.RATE_LIMIT_ERROR]).call(t,e)})(e):return Object(a.__)("Unable to process this payment, please try again or use alternative method.","woocommerce-gateway-stripe");case s.b.CARD_ERROR:return(e=>({[s.a.INVALID_NUMBER]:Object(a.__)("The card number is not a valid credit card number.","woocommerce-gateway-stripe"),[s.a.INVALID_EXPIRY_MONTH]:Object(a.__)("The card expiration month is invalid.","woocommerce-gateway-stripe"),[s.a.INVALID_EXPIRY_YEAR]:Object(a.__)("The card expiration year is invalid.","woocommerce-gateway-stripe"),[s.a.INVALID_CVC]:Object(a.__)("The card security code is invalid.","woocommerce-gateway-stripe"),[s.a.INCORRECT_NUMBER]:Object(a.__)("The card number is incorrect.","woocommerce-gateway-stripe"),[s.a.INCOMPLETE_NUMBER]:Object(a.__)("The card number is incomplete.","woocommerce-gateway-stripe"),[s.a.INCOMPLETE_CVC]:Object(a.__)("The card security code is incomplete.","woocommerce-gateway-stripe"),[s.a.INCOMPLETE_EXPIRY]:Object(a.__)("The card expiration date is incomplete.","woocommerce-gateway-stripe"),[s.a.EXPIRED_CARD]:Object(a.__)("The card has expired.","woocommerce-gateway-stripe"),[s.a.INCORRECT_CVC]:Object(a.__)("The card security code is incorrect.","woocommerce-gateway-stripe"),[s.a.INCORRECT_ZIP]:Object(a.__)("The card zip code failed validation.","woocommerce-gateway-stripe"),[s.a.INVALID_EXPIRY_YEAR_PAST]:Object(a.__)("The card expiration year is in the past","woocommerce-gateway-stripe"),[s.a.CARD_DECLINED]:Object(a.__)("The card was declined.","woocommerce-gateway-stripe"),[s.a.MISSING]:Object(a.__)("There is no card on a customer that is being charged.","woocommerce-gateway-stripe"),[s.a.PROCESSING_ERROR]:Object(a.__)("An error occurred while processing the card.","woocommerce-gateway-stripe")}[e]||null))(t);case s.b.VALIDATION_ERROR:return""}return null},f=(e,t)=>{var n,r,i,c,a,s,l,p,f,d,v,m,y,h,g,b,_,w,E,O;const{source:j}=e,x=null==j||null===(n=j.owner)||void 0===n?void 0:n.email,C=null==j||null===(r=j.owner)||void 0===r?void 0:r.phone,S=null==j||null===(i=j.owner)||void 0===i?void 0:i.address,R=null==j||null===(c=j.owner)||void 0===c?void 0:c.name,T=null==e?void 0:e.shippingAddress,I={_wpnonce:null===(a=u())||void 0===a||null===(s=a.nonce)||void 0===s?void 0:s.checkout,billing_first_name:null!==(l=null==R||null===(p=R.split(" "))||void 0===p||null===(f=o()(p).call(p,0,1))||void 0===f?void 0:f.join(" "))&&void 0!==l?l:"",billing_last_name:null!==(d=null==R||null===(v=R.split(" "))||void 0===v||null===(m=o()(v).call(v,1))||void 0===m?void 0:m.join(" "))&&void 0!==d?d:"",billing_company:"",billing_email:null!=x?x:null==e?void 0:e.payerEmail,billing_phone:null!=C?C:null==e||null===(y=e.payerPhone)||void 0===y?void 0:y.replace("/[() -]/g",""),billing_country:null!==(h=null==S?void 0:S.country)&&void 0!==h?h:"",billing_address_1:null!==(g=null==S?void 0:S.line1)&&void 0!==g?g:"",billing_address_2:null!==(b=null==S?void 0:S.line2)&&void 0!==b?b:"",billing_city:null!==(_=null==S?void 0:S.city)&&void 0!==_?_:"",billing_state:null!==(w=null==S?void 0:S.state)&&void 0!==w?w:"",billing_postcode:null!==(E=null==S?void 0:S.postal_code)&&void 0!==E?E:"",shipping_first_name:"",shipping_last_name:"",shipping_company:"",shipping_country:"",shipping_address_1:"",shipping_address_2:"",shipping_city:"",shipping_state:"",shipping_postcode:"",shipping_method:[null==e||null===(O=e.shippingOption)||void 0===O?void 0:O.id],order_comments:"",payment_method:"stripe",ship_to_different_address:1,terms:1,stripe_source:j.id,payment_request_type:t};var A,P,N,L,k,M,D,V,q,B;return T&&(I.shipping_first_name=null==T||null===(A=T.recipient)||void 0===A||null===(P=A.split(" "))||void 0===P||null===(N=o()(P).call(P,0,1))||void 0===N?void 0:N.join(" "),I.shipping_last_name=null==T||null===(L=T.recipient)||void 0===L||null===(k=L.split(" "))||void 0===k||null===(M=o()(k).call(k,1))||void 0===M?void 0:M.join(" "),I.shipping_company=null==T?void 0:T.organization,I.shipping_country=null==T?void 0:T.country,I.shipping_address_1=null!==(D=null==T||null===(V=T.addressLine)||void 0===V?void 0:V[0])&&void 0!==D?D:"",I.shipping_address_2=null!==(q=null==T||null===(B=T.addressLine)||void 0===B?void 0:B[1])&&void 0!==q?q:"",I.shipping_city=null==T?void 0:T.city,I.shipping_state=null==T?void 0:T.region,I.shipping_postcode=null==T?void 0:T.postalCode),I},d=e=>({country:e.country,state:e.region,postcode:e.postalCode,city:e.city,address:void 0===e.addressLine[0]?"":e.addressLine[0],address_2:void 0===e.addressLine[1]?"":e.addressLine[1]});var v=n(33),m=n.n(v),y="https://js.stripe.com/v3",h=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,g="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",b=null,_=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.11.0",startTime:t})}(r,n),r},w=Promise.resolve().then((function(){return e=null,null!==b?b:b=new Promise((function(t,n){if("undefined"!=typeof window)if(window.Stripe&&e&&console.warn(g),window.Stripe)t(window.Stripe);else try{var r=function(){for(var e=document.querySelectorAll('script[src^="'.concat(y,'"]')),t=0;t<e.length;t++){var n=e[t];if(h.test(n.src))return n}return null}();r&&e?console.warn(g):r||(r=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",n=document.createElement("script");n.src="".concat(y).concat(t);var r=document.head||document.body;if(!r)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return r.appendChild(n),n}(e)),r.addEventListener("load",(function(){window.Stripe?t(window.Stripe):n(new Error("Stripe.js not available"))})),r.addEventListener("error",(function(){n(new Error("Failed to load Stripe.js"))}))}catch(e){return void n(e)}else t(null)}));var e})),E=!1;w.catch((function(e){E||console.warn(e)}));const O=()=>new m.a(e=>{try{var t,n;const r=null!==(t=null===(n=u())||void 0===n?void 0:n.stripe_locale)&&void 0!==t?t:"auto";e(function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];E=!0;var r=Date.now();return w.then((function(e){return _(e,t,r)}))}((()=>{var e;const t=null===(e=u())||void 0===e?void 0:e.key;if(!t)throw new Error("There is no api key available for stripe. Make sure it is available on the wc.stripe_data.stripe.key property.");return t})(),{locale:r}))}catch(t){e({error:t})}})},function(e,t){e.exports=window.wp.i18n},function(e,t,n){"use strict";n.d(t,"b",(function(){return r})),n.d(t,"a",(function(){return o}));const r={INVALID_EMAIL:"email_invalid",INVALID_REQUEST:"invalid_request_error",API_CONNECTION:"api_connection_error",API_ERROR:"api_error",AUTHENTICATION_ERROR:"authentication_error",RATE_LIMIT_ERROR:"rate_limit_error",CARD_ERROR:"card_error",VALIDATION_ERROR:"validation_error"},o={INVALID_NUMBER:"invalid_number",INVALID_EXPIRY_MONTH:"invalid_expiry_month",INVALID_EXPIRY_YEAR:"invalid_expiry_year",INVALID_CVC:"invalid_cvc",INCORRECT_NUMBER:"incorrect_number",INCOMPLETE_NUMBER:"incomplete_number",INCOMPLETE_CVC:"incomplete_cvc",INCOMPLETE_EXPIRY:"incomplete_expiry",EXPIRED_CARD:"expired_card",INCORRECT_CVC:"incorrect_cvc",INCORRECT_ZIP:"incorrect_zip",INVALID_EXPIRY_YEAR_PAST:"invalid_expiry_year_past",CARD_DECLINED:"card_declined",MISSING:"missing",PROCESSING_ERROR:"processing_error"}},function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||function(){return this}()||Function("return this")()}).call(this,n(74))},function(e,t,n){var r=n(5),o=n(61),i=n(12),c=n(62),a=n(53),s=n(80),u=o("wks"),l=r.Symbol,p=s?l:l&&l.withoutSetter||c;e.exports=function(e){return i(u,e)&&(a||"string"==typeof u[e])||(a&&i(l,e)?u[e]=l[e]:u[e]=p("Symbol."+e)),u[e]}},function(e,t,n){"use strict";var r=n(5),o=n(50).f,i=n(58),c=n(18),a=n(30),s=n(13),u=n(12),l=function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t};e.exports=function(e,t){var n,p,f,d,v,m,y,h,g=e.target,b=e.global,_=e.stat,w=e.proto,E=b?r:_?r[g]:(r[g]||{}).prototype,O=b?c:c[g]||(c[g]={}),j=O.prototype;for(f in t)n=!i(b?f:g+(_?".":"#")+f,e.forced)&&E&&u(E,f),v=O[f],n&&(m=e.noTargetGet?(h=o(E,f))&&h.value:E[f]),d=n&&m?m:t[f],n&&typeof v==typeof d||(y=e.bind&&n?a(d,r):e.wrap&&n?l(d):w&&"function"==typeof d?a(Function.call,d):d,(e.sham||d&&d.sham||v&&v.sham)&&s(y,"sham",!0),O[f]=y,w&&(u(c,p=g+"Prototype")||s(c,p,{}),c[p][f]=d,e.real&&j&&!j[f]&&s(j,f,d)))}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},,function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},,function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(15),o=n(31),i=n(26);e.exports=r?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(10);e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){var r=n(8);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t){function n(){return e.exports=n=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},e.exports.default=e.exports,e.exports.__esModule=!0,n.apply(this,arguments)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},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){(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(){}function i(){}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t,i.resetWarningCache=o;var c=function(e,t){return function(e){e.exports=function(){function e(e,t,n,r,o,i){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==i){var c=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 c.name="Invariant Violation",c}}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:i,resetWarningCache:o};return n.PropTypes=n,n}()}(t={exports:{}}),t.exports}(),a=function(e){return null!==e&&"object"===n(e)},s=function e(t,n){if(!a(t)||!a(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var o="[object Object]"===Object.prototype.toString.call(t);if(o!==("[object Object]"===Object.prototype.toString.call(n)))return!1;if(!o&&!r)return!1;var i=Object.keys(t),c=Object.keys(n);if(i.length!==c.length)return!1;for(var s={},u=0;u<i.length;u+=1)s[i[u]]=!0;for(var l=0;l<c.length;l+=1)s[c[l]]=!0;var p=Object.keys(s);if(p.length!==i.length)return!1;var f=t,d=n;return p.every((function(t){return e(f[t],d[t])}))},u=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),n.current},l=function(e){if(null===e||a(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.")},p=t.createContext(null);p.displayName="ElementsContext";var f=function(e){var n,o,i=e.stripe,c=e.options,f=e.children,d=t.useRef(!1),v=t.useRef(!0),m=t.useMemo((function(){return function(e){if(function(e){return a(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then(l)};var t=l(e);return null===t?{tag:"empty"}:{tag:"sync",stripe:t}}(i)}),[i]),y=(n=t.useState((function(){return{stripe:null,elements:null}})),o=2,function(e){if(Array.isArray(e))return e}(n)||function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],_n=!0,r=!1,o=void 0;try{for(var i,c=e[Symbol.iterator]();!(_n=(i=c.next()).done)&&(n.push(i.value),!t||n.length!==t);_n=!0);}catch(e){r=!0,o=e}finally{try{_n||null==c.return||c.return()}finally{if(r)throw o}}return n}}(n,o)||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}}(n,o)||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.")}()),h=y[0],g=y[1],b=u(i),_=u(c);return null!==b&&(b!==i&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it."),s(c,_)||console.warn("Unsupported prop change on Elements: You cannot change the `options` prop after setting the `stripe` prop.")),d.current||("sync"===m.tag&&(d.current=!0,g({stripe:m.stripe,elements:m.stripe.elements(c)})),"async"===m.tag&&(d.current=!0,m.stripePromise.then((function(e){e&&v.current&&g({stripe:e,elements:e.elements(c)})})))),t.useEffect((function(){return function(){v.current=!1}}),[]),t.useEffect((function(){var e=h.stripe;e&&e._registerWrapper&&e._registerWrapper({name:"react-stripe-js",version:"1.2.2"})}),[h.stripe]),t.createElement(p.Provider,{value:h},f)};f.propTypes={stripe:c.any,options:c.object};var d=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(p),e)},v=function(e){return(0,e.children)(d("mounts <ElementsConsumer>"))};v.propTypes={children:c.func.isRequired};var m=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),function(){n.current&&n.current.apply(n,arguments)}},y=function(e){return a(e)?(e.paymentRequest,function(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r<i.length;r++)n=i[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(e,["paymentRequest"])):{}},h=function(){},g=function(e,n){var r,o="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),i=n?function(e){d("mounts <".concat(o,">"));var n=e.id,r=e.className;return t.createElement("div",{id:n,className:r})}:function(n){var r=n.id,i=n.className,c=n.options,a=void 0===c?{}:c,u=n.onBlur,l=void 0===u?h:u,p=n.onFocus,f=void 0===p?h:p,v=n.onReady,g=void 0===v?h:v,b=n.onChange,_=void 0===b?h:b,w=n.onEscape,E=void 0===w?h:w,O=n.onClick,j=void 0===O?h:O,x=d("mounts <".concat(o,">")).elements,C=t.useRef(null),S=t.useRef(null),R=m(g),T=m(l),I=m(f),A=m(j),P=m(_),N=m(E);t.useLayoutEffect((function(){if(null==C.current&&x&&null!=S.current){var t=x.create(e,a);C.current=t,t.mount(S.current),t.on("ready",(function(){return R(t)})),t.on("change",P),t.on("blur",T),t.on("focus",I),t.on("escape",N),t.on("click",A)}}));var L=t.useRef(a);return t.useEffect((function(){L.current&&L.current.paymentRequest!==a.paymentRequest&&console.warn("Unsupported prop change: options.paymentRequest is not a customizable property.");var e=y(a);0===Object.keys(e).length||s(e,y(L.current))||C.current&&(C.current.update(e),L.current=a)}),[a]),t.useLayoutEffect((function(){return function(){C.current&&C.current.destroy()}}),[]),t.createElement("div",{id:r,className:i,ref:S})};return i.propTypes={id:c.string,className:c.string,onChange:c.func,onBlur:c.func,onFocus:c.func,onReady:c.func,onClick:c.func,options:c.object},i.displayName=o,i.__elementType=e,i},b="undefined"==typeof window,_=g("auBankAccount",b),w=g("card",b),E=g("cardNumber",b),O=g("cardExpiry",b),j=g("cardCvc",b),x=g("fpxBank",b),C=g("iban",b),S=g("idealBank",b),R=g("paymentRequestButton",b);e.AuBankAccountElement=_,e.CardCvcElement=j,e.CardElement=w,e.CardExpiryElement=O,e.CardNumberElement=E,e.Elements=f,e.ElementsConsumer=v,e.FpxBankElement=x,e.IbanElement=C,e.IdealBankElement=S,e.PaymentRequestButtonElement=R,e.useElements=function(){return d("calls useElements()").elements},e.useStripe=function(){return d("calls useStripe()").stripe},Object.defineProperty(e,"__esModule",{value:!0})}(t,n(1))},function(e,t){e.exports={}},function(e,t,n){var r=n(18);e.exports=function(e){return r[e+"Prototype"]}},function(e,t){e.exports=window.jQuery},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){var r=n(18),o=n(5),i=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?i(r[e])||i(o[e]):r[e]&&r[e][t]||o[e]&&o[e][t]}},function(e,t,n){e.exports=n(90)},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(38),o=n(22);e.exports=function(e){return r(o(e))}},function(e,t){e.exports=!0},function(e,t,n){var r=n(41),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){var r=n(23);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(15),o=n(51),i=n(14),c=n(39),a=Object.defineProperty;t.f=r?a:function(e,t,n){if(i(e),t=c(t,!0),i(n),o)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},function(e,t){e.exports={}},function(e,t,n){e.exports=n(111)},function(e,t,n){var r=n(21),o=n(5);e.exports="process"==r(o.process)},function(e,t,n){var r,o,i=n(5),c=n(45),a=i.process,s=a&&a.versions,u=s&&s.v8;u?o=(r=u.split("."))[0]+r[1]:c&&(!(r=c.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=c.match(/Chrome\/(\d+)/))&&(o=r[1]),e.exports=o&&+o},function(e,t,n){var r=n(13);e.exports=function(e,t,n,o){o&&o.enumerable?e[t]=n:r(e,t,n)}},function(e,t,n){e.exports=n(131)},function(e,t,n){var r=n(8),o=n(21),i="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==o(e)?i.call(e,""):Object(e)}:Object},function(e,t,n){var r=n(10);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){var r=n(22);e.exports=function(e){return Object(r(e))}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(5),o=n(10),i=r.document,c=o(i)&&o(i.createElement);e.exports=function(e){return c?i.createElement(e):{}}},function(e,t,n){var r=n(5),o=n(75),i=r["__core-js_shared__"]||o("__core-js_shared__",{});e.exports=i},function(e,t,n){var r=n(14),o=n(102),i=n(29),c=n(30),a=n(69),s=n(103),u=function(e,t){this.stopped=e,this.result=t};e.exports=function(e,t,n){var l,p,f,d,v,m,y,h=n&&n.that,g=!(!n||!n.AS_ENTRIES),b=!(!n||!n.IS_ITERATOR),_=!(!n||!n.INTERRUPTED),w=c(t,h,1+g+_),E=function(e){return l&&s(l),new u(!0,e)},O=function(e){return g?(r(e),_?w(e[0],e[1],E):w(e[0],e[1])):_?w(e,E):w(e)};if(b)l=e;else{if("function"!=typeof(p=a(e)))throw TypeError("Target is not iterable");if(o(p)){for(f=0,d=i(e.length);d>f;f++)if((v=O(e[f]))&&v instanceof u)return v;return new u(!1)}l=p.call(e)}for(m=l.next;!(y=m.call(l)).done;){try{v=O(y.value)}catch(e){throw s(l),e}if("object"==typeof v&&v&&v instanceof u)return v}return new u(!1)}},function(e,t,n){var r=n(24);e.exports=r("navigator","userAgent")||""},function(e,t,n){var r=n(65),o=n(31).f,i=n(13),c=n(12),a=n(119),s=n(6)("toStringTag");e.exports=function(e,t,n,u){if(e){var l=n?e:e.prototype;c(l,s)||o(l,s,{configurable:!0,value:t}),u&&!r&&i(l,"toString",a)}}},function(e,t,n){"use strict";var r=n(23),o=function(e){var t,n;this.promise=new e((function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r})),this.resolve=r(t),this.reject=r(n)};e.exports.f=function(e){return new o(e)}},function(e,t,n){var r,o,i,c=n(125),a=n(5),s=n(10),u=n(13),l=n(12),p=n(43),f=n(60),d=n(64),v=a.WeakMap;if(c){var m=p.state||(p.state=new v),y=m.get,h=m.has,g=m.set;r=function(e,t){return t.facade=e,g.call(m,e,t),t},o=function(e){return y.call(m,e)||{}},i=function(e){return h.call(m,e)}}else{var b=f("state");d[b]=!0,r=function(e,t){return t.facade=e,u(e,b,t),t},o=function(e){return l(e,b)?e[b]:{}},i=function(e){return l(e,b)}}e.exports={set:r,get:o,has:i,enforce:function(e){return i(e)?o(e):r(e,{})},getterFor:function(e){return function(t){var n;if(!s(t)||(n=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return n}}}},function(e,t,n){"use strict";n.d(t,"c",(function(){return u})),n.d(t,"e",(function(){return l})),n.d(t,"d",(function(){return p})),n.d(t,"a",(function(){return f})),n.d(t,"b",(function(){return d}));var r=n(33),o=n.n(r),i=n(20),c=n.n(i),a=n(2);const s=(e,t="wc_stripe_")=>{var n,r,o;return null===(n=Object(a.c)())||void 0===n||null===(r=n.ajax_url)||void 0===r||null===(o=r.toString())||void 0===o?void 0:o.replace("%%endpoint%%",t+e)},u=()=>{var e,t;const n={security:null===(e=Object(a.c)())||void 0===e||null===(t=e.nonce)||void 0===t?void 0:t.payment};return c.a.ajax({type:"POST",data:n,url:s("get_cart_details")})},l=(e,t)=>{var n,r,o;const i={security:null===(n=Object(a.c)())||void 0===n||null===(r=n.nonce)||void 0===r?void 0:r.shipping,payment_request_type:t,is_product_page:null===(o=Object(a.c)())||void 0===o?void 0:o.is_product_page,...Object(a.e)(e)};return c.a.ajax({type:"POST",data:i,url:s("get_shipping_options")})},p=e=>{var t,n,r;const o={security:null===(t=Object(a.c)())||void 0===t||null===(n=t.nonce)||void 0===n?void 0:n.update_shipping,shipping_method:[e.id],is_product_page:null===(r=Object(a.c)())||void 0===r?void 0:r.is_product_page};return c.a.ajax({type:"POST",data:o,url:s("update_shipping_method")})},f=(e,t)=>{const n=Object(a.f)(e,t);return c.a.ajax({type:"POST",data:n,dataType:"json",url:s("create_order")})};class d{constructor(e,t){this.stripe=null,this.options=e,this.request=t}getStripe(){const{key:e,locale:t,isUPEEnabled:n}=this.options;return this.stripe||(this.stripe=n?new Stripe(e,{betas:["payment_element_beta_1"],locale:t}):new Stripe(e,{locale:t})),this.stripe}loadStripe(){return new o.a(e=>{try{e(this.getStripe())}catch(t){e({error:t})}})}initSetupIntent(){console.error("TODO: Not implemented yet: initSetupIntent")}createIntent(e){var t;return this.request(s("create_payment_intent"),{stripe_order_id:e,_ajax_nonce:null===(t=Object(a.c)())||void 0===t?void 0:t.createPaymentIntentNonce}).then(e=>{if(!e.success)throw e.data.error;return e.data}).catch(e=>{throw e.message?e:new Error(e.statusText)})}confirmIntent(e,t){return console.error("TODO: Not implemented yet: confirmIntent"),!0}saveUPEAppearance(e){var t;return this.request(s("save_upe_appearance"),{appearance:e,_ajax_nonce:null===(t=Object(a.c)())||void 0===t?void 0:t.saveUPEAppearanceNonce}).then(e=>{if("failure"===e.result)throw new Error(e.messages);return e}).catch(e=>{throw e.message?e:new Error(e.statusText)})}processCheckout(e,t){return this.request(s("checkout",""),{...t,wc_payment_intent_id:e}).then(e=>{if("failure"===e.result)throw new Error(e.messages);return e}).catch(e=>{throw e.message?e:new Error(e.statusText)})}}},function(e,t,n){var r=n(15),o=n(57),i=n(26),c=n(27),a=n(39),s=n(12),u=n(51),l=Object.getOwnPropertyDescriptor;t.f=r?l:function(e,t){if(e=c(e),t=a(t,!0),u)try{return l(e,t)}catch(e){}if(s(e,t))return i(!o.f.call(e,t),e[t])}},function(e,t,n){var r=n(15),o=n(8),i=n(42);e.exports=!r&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){var r=n(27),o=n(29),i=n(63),c=function(e){return function(t,n,c){var a,s=r(t),u=o(s.length),l=i(c,u);if(e&&n!=n){for(;u>l;)if((a=s[l++])!=a)return!0}else for(;u>l;l++)if((e||l in s)&&s[l]===n)return e||l||0;return!e&&-1}};e.exports={includes:c(!0),indexOf:c(!1)}},function(e,t,n){var r=n(34),o=n(35),i=n(8);e.exports=!!Object.getOwnPropertySymbols&&!i((function(){return!Symbol.sham&&(r?38===o:o>37&&o<41)}))},function(e,t,n){var r=n(65),o=n(21),i=n(6)("toStringTag"),c="Arguments"==o(function(){return arguments}());e.exports=r?o:function(e){var t,n,r;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?n:c?o(t):"Object"==(r=o(t))&&"function"==typeof t.callee?"Arguments":r}},function(e,t){e.exports=function(){}},,function(e,t,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);t.f=i?function(e){var t=o(this,e);return!!t&&t.enumerable}:r},function(e,t,n){var r=n(8),o=/#|\.prototype\./,i=function(e,t){var n=a[c(e)];return n==u||n!=s&&("function"==typeof t?r(t):!!t)},c=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},a=i.data={},s=i.NATIVE="N",u=i.POLYFILL="P";e.exports=i},function(e,t,n){var r=n(12),o=n(40),i=n(60),c=n(114),a=i("IE_PROTO"),s=Object.prototype;e.exports=c?Object.getPrototypeOf:function(e){return e=o(e),r(e,a)?e[a]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},function(e,t,n){var r=n(61),o=n(62),i=r("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},function(e,t,n){var r=n(28),o=n(43);(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.9.1",mode:r?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++n+r).toString(36)}},function(e,t,n){var r=n(41),o=Math.max,i=Math.min;e.exports=function(e,t){var n=r(e);return n<0?o(n+t,0):i(n,t)}},function(e,t){e.exports={}},function(e,t,n){var r={};r[n(6)("toStringTag")]="z",e.exports="[object z]"===String(r)},function(e,t){e.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}},function(e,t,n){var r=n(21);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){var r,o=n(14),i=n(101),c=n(78),a=n(64),s=n(79),u=n(42),l=n(60)("IE_PROTO"),p=function(){},f=function(e){return"<script>"+e+"<\/script>"},d=function(){try{r=document.domain&&new ActiveXObject("htmlfile")}catch(e){}var e,t;d=r?function(e){e.write(f("")),e.close();var t=e.parentWindow.Object;return e=null,t}(r):((t=u("iframe")).style.display="none",s.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(f("document.F=Object")),e.close(),e.F);for(var n=c.length;n--;)delete d.prototype[c[n]];return d()};a[l]=!0,e.exports=Object.create||function(e,t){var n;return null!==e?(p.prototype=o(e),n=new p,p.prototype=null,n[l]=e):n=d(),void 0===t?n:i(n,t)}},function(e,t,n){var r=n(54),o=n(32),i=n(6)("iterator");e.exports=function(e){if(null!=e)return e[i]||e["@@iterator"]||o[r(e)]}},function(e,t,n){var r=n(8),o=n(6),i=n(35),c=o("species");e.exports=function(e){return i>=51||!r((function(){var t=[];return(t.constructor={})[c]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,n){var r=n(96);e.exports=function(e){if(r(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){var r=n(6)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,"/./"[e](t)}catch(e){}}return!1}},,function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var r=n(5),o=n(13);e.exports=function(e,t){try{o(r,e,t)}catch(n){r[e]=t}return t}},function(e,t,n){var r=n(14),o=n(115);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,n={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(n,[]),t=n instanceof Array}catch(e){}return function(n,i){return r(n),o(i),t?e.call(n,i):n.__proto__=i,n}}():void 0)},function(e,t,n){var r=n(116),o=n(78);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){var r=n(24);e.exports=r("document","documentElement")},function(e,t,n){var r=n(53);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){var r=n(5);e.exports=r.Promise},function(e,t){e.exports=function(e,t,n){if(!(e instanceof t))throw TypeError("Incorrect "+(n?n+" ":"")+"invocation");return e}},function(e,t,n){var r=n(43),o=Function.toString;"function"!=typeof r.inspectSource&&(r.inspectSource=function(e){return o.call(e)}),e.exports=r.inspectSource},function(e,t,n){var r=n(14),o=n(23),i=n(6)("species");e.exports=function(e,t){var n,c=r(e).constructor;return void 0===c||null==(n=r(c)[i])?t:o(n)}},function(e,t,n){var r,o,i,c=n(5),a=n(8),s=n(30),u=n(79),l=n(42),p=n(86),f=n(34),d=c.location,v=c.setImmediate,m=c.clearImmediate,y=c.process,h=c.MessageChannel,g=c.Dispatch,b=0,_={},w=function(e){if(_.hasOwnProperty(e)){var t=_[e];delete _[e],t()}},E=function(e){return function(){w(e)}},O=function(e){w(e.data)},j=function(e){c.postMessage(e+"",d.protocol+"//"+d.host)};v&&m||(v=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return _[++b]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},r(b),b},m=function(e){delete _[e]},f?r=function(e){y.nextTick(E(e))}:g&&g.now?r=function(e){g.now(E(e))}:h&&!p?(i=(o=new h).port2,o.port1.onmessage=O,r=s(i.postMessage,i,1)):c.addEventListener&&"function"==typeof postMessage&&!c.importScripts&&d&&"file:"!==d.protocol&&!a(j)?(r=j,c.addEventListener("message",O,!1)):r="onreadystatechange"in l("script")?function(e){u.appendChild(l("script")).onreadystatechange=function(){u.removeChild(this),w(e)}}:function(e){setTimeout(E(e),0)}),e.exports={set:v,clear:m}},function(e,t,n){var r=n(45);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(r)},function(e,t,n){var r=n(14),o=n(10),i=n(47);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var r=n(7),o=n(107),i=n(59),c=n(76),a=n(46),s=n(13),u=n(36),l=n(6),p=n(28),f=n(32),d=n(89),v=d.IteratorPrototype,m=d.BUGGY_SAFARI_ITERATORS,y=l("iterator"),h=function(){return this};e.exports=function(e,t,n,l,d,g,b){o(n,t,l);var _,w,E,O=function(e){if(e===d&&R)return R;if(!m&&e in C)return C[e];switch(e){case"keys":case"values":case"entries":return function(){return new n(this,e)}}return function(){return new n(this)}},j=t+" Iterator",x=!1,C=e.prototype,S=C[y]||C["@@iterator"]||d&&C[d],R=!m&&S||O(d),T="Array"==t&&C.entries||S;if(T&&(_=i(T.call(new e)),v!==Object.prototype&&_.next&&(p||i(_)===v||(c?c(_,v):"function"!=typeof _[y]&&s(_,y,h)),a(_,j,!0,!0),p&&(f[j]=h))),"values"==d&&S&&"values"!==S.name&&(x=!0,R=function(){return S.call(this)}),p&&!b||C[y]===R||s(C,y,R),f[t]=R,d)if(w={values:O("values"),keys:g?R:O("keys"),entries:O("entries")},b)for(E in w)(m||x||!(E in C))&&u(C,E,w[E]);else r({target:t,proto:!0,forced:m||x},w);return w}},function(e,t,n){"use strict";var r,o,i,c=n(8),a=n(59),s=n(13),u=n(12),l=n(6),p=n(28),f=l("iterator"),d=!1;[].keys&&("next"in(i=[].keys())?(o=a(a(i)))!==Object.prototype&&(r=o):d=!0);var v=null==r||c((function(){var e={};return r[f].call(e)!==e}));v&&(r={}),p&&!v||u(r,f)||s(r,f,(function(){return this})),e.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:d}},function(e,t,n){var r=n(91);e.exports=r},function(e,t,n){var r=n(92),o=n(94),i=Array.prototype,c=String.prototype;e.exports=function(e){var t=e.includes;return e===i||e instanceof Array&&t===i.includes?r:"string"==typeof e||e===c||e instanceof String&&t===c.includes?o:t}},function(e,t,n){n(93);var r=n(19);e.exports=r("Array").includes},function(e,t,n){"use strict";var r=n(7),o=n(52).includes,i=n(55);r({target:"Array",proto:!0},{includes:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),i("includes")},function(e,t,n){n(95);var r=n(19);e.exports=r("String").includes},function(e,t,n){"use strict";var r=n(7),o=n(71),i=n(22);r({target:"String",proto:!0,forced:!n(72)("includes")},{includes:function(e){return!!~String(i(this)).indexOf(o(e),arguments.length>1?arguments[1]:void 0)}})},function(e,t,n){var r=n(10),o=n(21),i=n(6)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},function(e,t,n){var r=n(30),o=n(38),i=n(40),c=n(29),a=n(98),s=[].push,u=function(e){var t=1==e,n=2==e,u=3==e,l=4==e,p=6==e,f=7==e,d=5==e||p;return function(v,m,y,h){for(var g,b,_=i(v),w=o(_),E=r(m,y,3),O=c(w.length),j=0,x=h||a,C=t?x(v,O):n||f?x(v,0):void 0;O>j;j++)if((d||j in w)&&(b=E(g=w[j],j,_),e))if(t)C[j]=b;else if(b)switch(e){case 3:return!0;case 5:return g;case 6:return j;case 2:s.call(C,g)}else switch(e){case 4:return!1;case 7:s.call(C,g)}return p?-1:u||l?l:C}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},function(e,t,n){var r=n(10),o=n(67),i=n(6)("species");e.exports=function(e,t){var n;return o(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!o(n.prototype)?r(n)&&null===(n=n[i])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},function(e,t){e.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},,function(e,t,n){var r=n(15),o=n(31),i=n(14),c=n(77);e.exports=r?Object.defineProperties:function(e,t){i(e);for(var n,r=c(t),a=r.length,s=0;a>s;)o.f(e,n=r[s++],t[n]);return e}},function(e,t,n){var r=n(6),o=n(32),i=r("iterator"),c=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||c[i]===e)}},function(e,t,n){var r=n(14);e.exports=function(e){var t=e.return;if(void 0!==t)return r(t.call(e)).value}},function(e,t,n){var r=n(36);e.exports=function(e,t,n){for(var o in t)n&&n.unsafe&&e[o]?e[o]=t[o]:r(e,o,t[o],n);return e}},function(e,t,n){"use strict";var r=n(106).charAt,o=n(48),i=n(88),c=o.set,a=o.getterFor("String Iterator");i(String,"String",(function(e){c(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=a(this),n=t.string,o=t.index;return o>=n.length?{value:void 0,done:!0}:(e=r(n,o),t.index+=e.length,{value:e,done:!1})}))},function(e,t,n){var r=n(41),o=n(22),i=function(e){return function(t,n){var i,c,a=String(o(t)),s=r(n),u=a.length;return s<0||s>=u?e?"":void 0:(i=a.charCodeAt(s))<55296||i>56319||s+1===u||(c=a.charCodeAt(s+1))<56320||c>57343?e?a.charAt(s):i:e?a.slice(s,s+2):c-56320+(i-55296<<10)+65536}};e.exports={codeAt:i(!1),charAt:i(!0)}},function(e,t,n){"use strict";var r=n(89).IteratorPrototype,o=n(68),i=n(26),c=n(46),a=n(32),s=function(){return this};e.exports=function(e,t,n){var u=t+" Iterator";return e.prototype=o(r,{next:i(1,n)}),c(e,u,!1,!0),a[u]=s,e}},function(e,t,n){"use strict";var r=n(27),o=n(55),i=n(32),c=n(48),a=n(88),s=c.set,u=c.getterFor("Array Iterator");e.exports=a(Array,"Array",(function(e,t){s(this,{type:"Array Iterator",target:r(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},function(e,t,n){"use strict";var r=n(39),o=n(31),i=n(26);e.exports=function(e,t,n){var c=r(t);c in e?o.f(e,c,i(0,n)):e[c]=n}},,function(e,t,n){var r=n(112);e.exports=r},function(e,t,n){n(113),n(117),n(118),n(126),n(127),n(128),n(105),n(129);var r=n(18);e.exports=r.Promise},function(e,t,n){"use strict";var r=n(7),o=n(59),i=n(76),c=n(68),a=n(13),s=n(26),u=n(44),l=function(e,t){var n=this;if(!(n instanceof l))return new l(e,t);i&&(n=i(new Error(void 0),o(n))),void 0!==t&&a(n,"message",String(t));var r=[];return u(e,r.push,{that:r}),a(n,"errors",r),n};l.prototype=c(Error.prototype,{constructor:s(5,l),message:s(5,""),name:s(5,"AggregateError")}),r({global:!0},{AggregateError:l})},function(e,t,n){var r=n(8);e.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,n){var r=n(10);e.exports=function(e){if(!r(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){var r=n(12),o=n(27),i=n(52).indexOf,c=n(64);e.exports=function(e,t){var n,a=o(e),s=0,u=[];for(n in a)!r(c,n)&&r(a,n)&&u.push(n);for(;t.length>s;)r(a,n=t[s++])&&(~i(u,n)||u.push(n));return u}},function(e,t){},function(e,t,n){"use strict";var r,o,i,c,a=n(7),s=n(28),u=n(5),l=n(24),p=n(81),f=n(36),d=n(104),v=n(46),m=n(120),y=n(10),h=n(23),g=n(82),b=n(83),_=n(44),w=n(121),E=n(84),O=n(85).set,j=n(122),x=n(87),C=n(124),S=n(47),R=n(66),T=n(48),I=n(58),A=n(6),P=n(34),N=n(35),L=A("species"),k="Promise",M=T.get,D=T.set,V=T.getterFor(k),q=p,B=u.TypeError,U=u.document,F=u.process,Y=l("fetch"),H=S.f,W=H,G=!!(U&&U.createEvent&&u.dispatchEvent),$="function"==typeof PromiseRejectionEvent,z=I(k,(function(){if(b(q)===String(q)){if(66===N)return!0;if(!P&&!$)return!0}if(s&&!q.prototype.finally)return!0;if(N>=51&&/native code/.test(q))return!1;var e=q.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[L]=t,!(e.then((function(){}))instanceof t)})),X=z||!w((function(e){q.all(e).catch((function(){}))})),Z=function(e){var t;return!(!y(e)||"function"!=typeof(t=e.then))&&t},Q=function(e,t){if(!e.notified){e.notified=!0;var n=e.reactions;j((function(){for(var r=e.value,o=1==e.state,i=0;n.length>i;){var c,a,s,u=n[i++],l=o?u.ok:u.fail,p=u.resolve,f=u.reject,d=u.domain;try{l?(o||(2===e.rejection&&te(e),e.rejection=1),!0===l?c=r:(d&&d.enter(),c=l(r),d&&(d.exit(),s=!0)),c===u.promise?f(B("Promise-chain cycle")):(a=Z(c))?a.call(c,p,f):p(c)):f(r)}catch(e){d&&!s&&d.exit(),f(e)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&J(e)}))}},K=function(e,t,n){var r,o;G?((r=U.createEvent("Event")).promise=t,r.reason=n,r.initEvent(e,!1,!0),u.dispatchEvent(r)):r={promise:t,reason:n},!$&&(o=u["on"+e])?o(r):"unhandledrejection"===e&&C("Unhandled promise rejection",n)},J=function(e){O.call(u,(function(){var t,n=e.facade,r=e.value;if(ee(e)&&(t=R((function(){P?F.emit("unhandledRejection",r,n):K("unhandledrejection",n,r)})),e.rejection=P||ee(e)?2:1,t.error))throw t.value}))},ee=function(e){return 1!==e.rejection&&!e.parent},te=function(e){O.call(u,(function(){var t=e.facade;P?F.emit("rejectionHandled",t):K("rejectionhandled",t,e.value)}))},ne=function(e,t,n){return function(r){e(t,r,n)}},re=function(e,t,n){e.done||(e.done=!0,n&&(e=n),e.value=t,e.state=2,Q(e,!0))},oe=function(e,t,n){if(!e.done){e.done=!0,n&&(e=n);try{if(e.facade===t)throw B("Promise can't be resolved itself");var r=Z(t);r?j((function(){var n={done:!1};try{r.call(t,ne(oe,n,e),ne(re,n,e))}catch(t){re(n,t,e)}})):(e.value=t,e.state=1,Q(e,!1))}catch(t){re({done:!1},t,e)}}};z&&(q=function(e){g(this,q,k),h(e),r.call(this);var t=M(this);try{e(ne(oe,t),ne(re,t))}catch(e){re(t,e)}},(r=function(e){D(this,{type:k,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=d(q.prototype,{then:function(e,t){var n=V(this),r=H(E(this,q));return r.ok="function"!=typeof e||e,r.fail="function"==typeof t&&t,r.domain=P?F.domain:void 0,n.parent=!0,n.reactions.push(r),0!=n.state&&Q(n,!1),r.promise},catch:function(e){return this.then(void 0,e)}}),o=function(){var e=new r,t=M(e);this.promise=e,this.resolve=ne(oe,t),this.reject=ne(re,t)},S.f=H=function(e){return e===q||e===i?new o(e):W(e)},s||"function"!=typeof p||(c=p.prototype.then,f(p.prototype,"then",(function(e,t){var n=this;return new q((function(e,t){c.call(n,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof Y&&a({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return x(q,Y.apply(u,arguments))}}))),a({global:!0,wrap:!0,forced:z},{Promise:q}),v(q,k,!1,!0),m(k),i=l(k),a({target:k,stat:!0,forced:z},{reject:function(e){var t=H(this);return t.reject.call(void 0,e),t.promise}}),a({target:k,stat:!0,forced:s||z},{resolve:function(e){return x(s&&this===i?q:this,e)}}),a({target:k,stat:!0,forced:X},{all:function(e){var t=this,n=H(t),r=n.resolve,o=n.reject,i=R((function(){var n=h(t.resolve),i=[],c=0,a=1;_(e,(function(e){var s=c++,u=!1;i.push(void 0),a++,n.call(t,e).then((function(e){u||(u=!0,i[s]=e,--a||r(i))}),o)})),--a||r(i)}));return i.error&&o(i.value),n.promise},race:function(e){var t=this,n=H(t),r=n.reject,o=R((function(){var o=h(t.resolve);_(e,(function(e){o.call(t,e).then(n.resolve,r)}))}));return o.error&&r(o.value),n.promise}})},function(e,t,n){"use strict";var r=n(65),o=n(54);e.exports=r?{}.toString:function(){return"[object "+o(this)+"]"}},function(e,t,n){"use strict";var r=n(24),o=n(31),i=n(6),c=n(15),a=i("species");e.exports=function(e){var t=r(e),n=o.f;c&&t&&!t[a]&&n(t,a,{configurable:!0,get:function(){return this}})}},function(e,t,n){var r=n(6)("iterator"),o=!1;try{var i=0,c={next:function(){return{done:!!i++}},return:function(){o=!0}};c[r]=function(){return this},Array.from(c,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i={};i[r]=function(){return{next:function(){return{done:n=!0}}}},e(i)}catch(e){}return n}},function(e,t,n){var r,o,i,c,a,s,u,l,p=n(5),f=n(50).f,d=n(85).set,v=n(86),m=n(123),y=n(34),h=p.MutationObserver||p.WebKitMutationObserver,g=p.document,b=p.process,_=p.Promise,w=f(p,"queueMicrotask"),E=w&&w.value;E||(r=function(){var e,t;for(y&&(e=b.domain)&&e.exit();o;){t=o.fn,o=o.next;try{t()}catch(e){throw o?c():i=void 0,e}}i=void 0,e&&e.enter()},v||y||m||!h||!g?_&&_.resolve?(u=_.resolve(void 0),l=u.then,c=function(){l.call(u,r)}):c=y?function(){b.nextTick(r)}:function(){d.call(p,r)}:(a=!0,s=g.createTextNode(""),new h(r).observe(s,{characterData:!0}),c=function(){s.data=a=!a})),e.exports=E||function(e){var t={fn:e,next:void 0};i&&(i.next=t),o||(o=t,c()),i=t}},function(e,t,n){var r=n(45);e.exports=/web0s(?!.*chrome)/i.test(r)},function(e,t,n){var r=n(5);e.exports=function(e,t){var n=r.console;n&&n.error&&(1===arguments.length?n.error(e):n.error(e,t))}},function(e,t,n){var r=n(5),o=n(83),i=r.WeakMap;e.exports="function"==typeof i&&/native code/.test(o(i))},function(e,t,n){"use strict";var r=n(7),o=n(23),i=n(47),c=n(66),a=n(44);r({target:"Promise",stat:!0},{allSettled:function(e){var t=this,n=i.f(t),r=n.resolve,s=n.reject,u=c((function(){var n=o(t.resolve),i=[],c=0,s=1;a(e,(function(e){var o=c++,a=!1;i.push(void 0),s++,n.call(t,e).then((function(e){a||(a=!0,i[o]={status:"fulfilled",value:e},--s||r(i))}),(function(e){a||(a=!0,i[o]={status:"rejected",reason:e},--s||r(i))}))})),--s||r(i)}));return u.error&&s(u.value),n.promise}})},function(e,t,n){"use strict";var r=n(7),o=n(23),i=n(24),c=n(47),a=n(66),s=n(44);r({target:"Promise",stat:!0},{any:function(e){var t=this,n=c.f(t),r=n.resolve,u=n.reject,l=a((function(){var n=o(t.resolve),c=[],a=0,l=1,p=!1;s(e,(function(e){var o=a++,s=!1;c.push(void 0),l++,n.call(t,e).then((function(e){s||p||(p=!0,r(e))}),(function(e){s||p||(s=!0,c[o]=e,--l||u(new(i("AggregateError"))(c,"No one promise resolved")))}))})),--l||u(new(i("AggregateError"))(c,"No one promise resolved"))}));return l.error&&u(l.value),n.promise}})},function(e,t,n){"use strict";var r=n(7),o=n(28),i=n(81),c=n(8),a=n(24),s=n(84),u=n(87),l=n(36);r({target:"Promise",proto:!0,real:!0,forced:!!i&&c((function(){i.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=s(this,a("Promise")),n="function"==typeof e;return this.then(n?function(n){return u(t,e()).then((function(){return n}))}:e,n?function(n){return u(t,e()).then((function(){throw n}))}:e)}}),o||"function"!=typeof i||i.prototype.finally||l(i.prototype,"finally",a("Promise").prototype.finally)},function(e,t,n){n(108);var r=n(130),o=n(5),i=n(54),c=n(13),a=n(32),s=n(6)("toStringTag");for(var u in r){var l=o[u],p=l&&l.prototype;p&&i(p)!==s&&c(p,s,u),a[u]=a.Array}},function(e,t){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(e,t,n){var r=n(132);e.exports=r},function(e,t,n){var r=n(133),o=Array.prototype;e.exports=function(e){var t=e.slice;return e===o||e instanceof Array&&t===o.slice?r:t}},function(e,t,n){n(134);var r=n(19);e.exports=r("Array").slice},function(e,t,n){"use strict";var r=n(7),o=n(10),i=n(67),c=n(63),a=n(29),s=n(27),u=n(109),l=n(6),p=n(70)("slice"),f=l("species"),d=[].slice,v=Math.max;r({target:"Array",proto:!0,forced:!p},{slice:function(e,t){var n,r,l,p=s(this),m=a(p.length),y=c(e,m),h=c(void 0===t?m:t,m);if(i(p)&&("function"!=typeof(n=p.constructor)||n!==Array&&!i(n.prototype)?o(n)&&null===(n=n[f])&&(n=void 0):n=void 0,n===Array||void 0===n))return d.call(p,y,h);for(r=new(void 0===n?Array:n)(v(h-y,0)),l=0;y<h;y++,l++)y in p&&u(r,l,p[y]);return r.length=l,r}})},function(e,t,n){var r=n(22),o="["+n(99)+"]",i=RegExp("^"+o+o+"*"),c=RegExp(o+o+"*$"),a=function(e){return function(t){var n=String(r(t));return 1&e&&(n=n.replace(i,"")),2&e&&(n=n.replace(c,"")),n}};e.exports={start:a(1),end:a(2),trim:a(3)}},,,function(e,t){e.exports=window.wc.wcBlocksRegistry},,,,,,function(e,t,n){e.exports=n(159)},function(e,t,n){e.exports=n(163)},function(e,t,n){e.exports=n(167)},function(e,t){e.exports=window.wc.wcSettings},,,,,,,,,,,,function(e,t,n){var r=n(160);e.exports=r},function(e,t,n){var r=n(161),o=Array.prototype;e.exports=function(e){var t=e.map;return e===o||e instanceof Array&&t===o.map?r:t}},function(e,t,n){n(162);var r=n(19);e.exports=r("Array").map},function(e,t,n){"use strict";var r=n(7),o=n(97).map;r({target:"Array",proto:!0,forced:!n(70)("map")},{map:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,n){var r=n(164);e.exports=r},function(e,t,n){n(165);var r=n(18);e.exports=r.Object.entries},function(e,t,n){var r=n(7),o=n(166).entries;r({target:"Object",stat:!0},{entries:function(e){return o(e)}})},function(e,t,n){var r=n(15),o=n(77),i=n(27),c=n(57).f,a=function(e){return function(t){for(var n,a=i(t),s=o(a),u=s.length,l=0,p=[];u>l;)n=s[l++],r&&!c.call(a,n)||p.push(e?[n,a[n]]:a[n]);return p}};e.exports={entries:a(!0),values:a(!1)}},function(e,t,n){var r=n(168);e.exports=r},function(e,t,n){n(169);var r=n(18);e.exports=r.parseInt},function(e,t,n){var r=n(7),o=n(170);r({global:!0,forced:parseInt!=o},{parseInt:o})},function(e,t,n){var r=n(5),o=n(135).trim,i=n(99),c=r.parseInt,a=/^[+-]?0[Xx]/,s=8!==c(i+"08")||22!==c(i+"0x16");e.exports=s?function(e,t){var n=o(String(e));return c(n,t>>>0||(a.test(n)?16:10))}:c},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";n.r(t);var r=n(138),o=n(16),i=n.n(o),c=n(0),a=n(33),s=n.n(a),u=n(3),l=n(2),p=n(144),f=n.n(p),d=n(145),v=n.n(d),m=n(17);const y=(e,t,n,r)=>{Object(c.useEffect)(()=>{const o=t(async({processingResponse:t})=>{const o=t.paymentDetails||{},i=await(({stripe:e,paymentDetails:t,errorContext:n,errorType:r,successType:o})=>{const i={type:o};if(!t.setup_intent_secret&&!t.payment_intent_secret)return!0;const c=!!t.setup_intent_secret,a=t.verification_endpoint,s=c?t.setup_intent_secret:t.payment_intent_secret;return e[c?"confirmCardSetup":"confirmCardPayment"](s).then((function(e){if(e.error)throw e.error;const t=e[c?"setupIntent":"paymentIntent"];return"requires_capture"!==t.status&&"succeeded"!==t.status||(i.redirectUrl=a),i})).catch((function(e){return i.type=r,i.message=e.message,i.retry=!0,i.messageContext=n,window.fetch(a+"&is_ajax"),i}))})({stripe:e,paymentDetails:o,errorContext:r.noticeContexts.PAYMENTS,errorType:r.responseTypes.ERROR,successType:r.responseTypes.SUCCESS});return i.type===r.responseTypes.ERROR&&i.retry&&n(""),i});return()=>o()},[t,r.noticeContexts.PAYMENTS,r.responseTypes.ERROR,r.responseTypes.SUCCESS,n,e])},h=()=>{},g=({eventRegistration:e,emitResponse:t})=>{const n=Object(m.useStripe)(),{onCheckoutAfterProcessingWithSuccess:r}=e;return y(n,r,h,t),null};var b=n(4);const _={style:{base:{iconColor:"#666EE8",color:"#31325F",fontSize:((e,t,n)=>{let r={};if("object"==typeof document&&"function"==typeof document.querySelector&&"function"==typeof window.getComputedStyle){const e=document.querySelector(".wc-block-checkout");e&&(r=window.getComputedStyle(e))}return r.fontSize||"16px"})(),lineHeight:1.375,"::placeholder":{color:"#fff"}}},classes:{focus:"focused",empty:"empty",invalid:"has-error"}},w=e=>{const[t,n]=Object(c.useState)(!1),[r,o]=Object(c.useState)({..._,...e}),[i,a]=Object(c.useState)("");return Object(c.useEffect)(()=>{const e=t?"#CFD7E0":"#fff";o(n=>{const r=void 0!==n.showIcon?{showIcon:t}:{};return{...n,style:{...n.style,base:{...n.style.base,"::placeholder":{color:e}}},...r}})},[t]),{options:r,onActive:Object(c.useCallback)(e=>{n(!e||(e=>!e))},[n]),error:i,setError:a}},E=({inputErrorComponent:e,onChange:t})=>{const[n,r]=Object(c.useState)(!0),{options:o,onActive:i,error:a,setError:s}=w({hidePostalCode:!0});return Object(c.createElement)(c.Fragment,null,Object(c.createElement)("div",{className:"wc-block-gateway-container wc-inline-card-element"},Object(c.createElement)(m.CardElement,{id:"wc-stripe-inline-card-element",className:"wc-block-gateway-input",options:o,onBlur:()=>i(n),onFocus:()=>i(n),onChange:e=>{e.error?s(e.error.message):s(""),r(e.empty),t(e)}}),Object(c.createElement)("label",{htmlFor:"wc-stripe-inline-card-element"},Object(u.__)("Credit Card Information","woocommerce-gateway-stripe"))),Object(c.createElement)(e,{errorMessage:a}))},O=({onChange:e,inputErrorComponent:t})=>{const[n,r]=Object(c.useState)({cardNumber:!0,cardExpiry:!0,cardCvc:!0}),{options:o,onActive:i,error:a,setError:s}=w({showIcon:!1}),{options:l,onActive:p,error:f,setError:d}=w(),{options:v,onActive:y,error:h,setError:g}=w(),b=(t,o)=>i=>{i.error?t(i.error.message):t(""),r({...n,[o]:i.empty}),e(i)};return Object(c.createElement)("div",{className:"wc-block-card-elements"},Object(c.createElement)("div",{className:"wc-block-gateway-container wc-card-number-element"},Object(c.createElement)(m.CardNumberElement,{onChange:b(s,"cardNumber"),options:o,className:"wc-block-gateway-input",id:"wc-stripe-card-number-element",onFocus:()=>i(n.cardNumber),onBlur:()=>i(n.cardNumber)}),Object(c.createElement)("label",{htmlFor:"wc-stripe-card-number-element"},Object(u.__)("Card Number","woocommerce-gateway-stripe")),Object(c.createElement)(t,{errorMessage:a})),Object(c.createElement)("div",{className:"wc-block-gateway-container wc-card-expiry-element"},Object(c.createElement)(m.CardExpiryElement,{onChange:b(d,"cardExpiry"),options:l,className:"wc-block-gateway-input",onFocus:()=>p(n.cardExpiry),onBlur:()=>p(n.cardExpiry),id:"wc-stripe-card-expiry-element"}),Object(c.createElement)("label",{htmlFor:"wc-stripe-card-expiry-element"},Object(u.__)("Expiry Date","woocommerce-gateway-stripe")),Object(c.createElement)(t,{errorMessage:f})),Object(c.createElement)("div",{className:"wc-block-gateway-container wc-card-cvc-element"},Object(c.createElement)(m.CardCvcElement,{onChange:b(g,"cardCvc"),options:v,className:"wc-block-gateway-input",onFocus:()=>y(n.cardCvc),onBlur:()=>y(n.cardCvc),id:"wc-stripe-card-code-element"}),Object(c.createElement)("label",{htmlFor:"wc-stripe-card-code-element"},Object(u.__)("CVV/CVC","woocommerce-gateway-stripe")),Object(c.createElement)(t,{errorMessage:h})))},j=()=>{var e,t,n;return f()(e=v()(null!==(t=null===(n=Object(l.c)())||void 0===n?void 0:n.icons)&&void 0!==t?t:{})).call(e,([e,{src:t,alt:n}])=>({id:e,src:t,alt:n}))},x=({billing:e,eventRegistration:t,emitResponse:n,components:r})=>{var o;const{ValidationInputError:i,PaymentMethodIcons:a}=r,[s,u]=Object(c.useState)(""),p=Object(m.useStripe)(),f=((e,t,n,r,o,i)=>{const[a,s]=Object(c.useState)(""),u=Object(c.useCallback)(e=>{var t;const n=e.error.type,r=e.error.code||"",o=null!==(t=Object(l.b)(n,r))&&void 0!==t?t:e.error.message;return s(o),o},[]),{onCheckoutAfterProcessingWithSuccess:p,onPaymentProcessing:f,onCheckoutAfterProcessingWithError:d}=e;return y(i,p,r,o),((e,t,n,r,o,i,a,s)=>{const u=Object(m.useElements)();Object(c.useEffect)(()=>{const c=s(async()=>{try{var c,s;const p=r.billingData;if(t)return{type:o.responseTypes.ERROR,message:t};if(""!==i)return{type:o.responseTypes.SUCCESS,meta:{paymentMethodData:{paymentMethod:"stripe",paymentRequestType:"cc",stripe_source:i},billingData:p}};const f={address:{line1:p.address_1,line2:p.address_2,city:p.city,state:p.state,postal_code:p.postcode,country:p.country}};p.phone&&(f.phone=p.phone),p.email&&(f.email=p.email),(p.first_name||p.last_name)&&(f.name=`${p.first_name} ${p.last_name}`);const d=await(async e=>{var t;const r="yes"===(null===(t=Object(l.c)())||void 0===t?void 0:t.inline_cc_form)?m.CardElement:m.CardNumberElement;return await n.createSource(null==u?void 0:u.getElement(r),{type:"card",owner:e})})(f);if(d.error)return{type:o.responseTypes.ERROR,message:e(d)};if(!d.source||!d.source.id)throw new Error(Object(l.b)(b.b.API_ERROR));return a(d.source.id),{type:o.responseTypes.SUCCESS,meta:{paymentMethodData:{stripe_source:d.source.id,billing_email:f.email,billing_first_name:null!==(c=null==p?void 0:p.first_name)&&void 0!==c?c:"",billing_last_name:null!==(s=null==p?void 0:p.last_name)&&void 0!==s?s:"",paymentMethod:"stripe",paymentRequestType:"cc"},billingData:p}}}catch(e){return{type:o.responseTypes.ERROR,message:e}}});return()=>{c()}},[s,r.billingData,n,i,a,e,t,o.noticeContexts.PAYMENTS,o.responseTypes.ERROR,o.responseTypes.SUCCESS,u])})(u,a,i,t,o,n,r,f),Object(c.useEffect)(()=>{const e=d(({processingResponse:e})=>{var t;return null==e||null===(t=e.paymentDetails)||void 0===t||!t.errorMessage||{type:o.responseTypes.ERROR,message:e.paymentDetails.errorMessage,messageContext:o.noticeContexts.PAYMENTS}});return()=>{e()}},[d,o.noticeContexts.PAYMENTS,o.responseTypes.ERROR]),u})(t,e,s,u,n,p),d=e=>{e.error&&f(e),u("")},v=j(),h="yes"===(null===(o=Object(l.c)())||void 0===o?void 0:o.inline_cc_form)?Object(c.createElement)(E,{onChange:d,inputErrorComponent:i}):Object(c.createElement)(O,{onChange:d,inputErrorComponent:i});return Object(c.createElement)(c.Fragment,null,h,a&&v.length&&Object(c.createElement)(a,{icons:v,align:"left"}))},C=e=>{const{stripe:t}=e;return Object(c.createElement)(m.Elements,{stripe:t},Object(c.createElement)(x,e))};var S,R,T,I,A,P;const N=Object(l.d)(),L=({RenderedComponent:e,...t})=>{const[n,r]=Object(c.useState)("");return Object(c.useEffect)(()=>{s.a.resolve(N).then(({error:e})=>{e&&r(e.message)})},[r]),Object(c.useEffect)(()=>{if(n)throw new Error(n)},[n]),Object(c.createElement)(e,i()({stripe:N},t))},k=j();var M={name:"stripe",label:Object(c.createElement)(e=>{var t,n;const{PaymentMethodLabel:r}=e.components,o=null!==(t=null===(n=Object(l.c)())||void 0===n?void 0:n.title)&&void 0!==t?t:Object(u.__)("Credit / Debit Card","woocommerce-gateway-stripe");return Object(c.createElement)(r,{text:o})},null),content:Object(c.createElement)(L,{RenderedComponent:C}),edit:Object(c.createElement)(L,{RenderedComponent:C}),savedTokenComponent:Object(c.createElement)(L,{RenderedComponent:({stripe:e,...t})=>Object(c.createElement)(m.Elements,{stripe:e},Object(c.createElement)(g,t))}),icons:k,canMakePayment:()=>N,ariaLabel:Object(u.__)("Stripe Credit Card payment method","woocommerce-gateway-stripe"),supports:{showSavedCards:null!==(S=null===(R=Object(l.c)())||void 0===R?void 0:R.showSavedCards)&&void 0!==S&&S,showSaveOption:null!==(T=null===(I=Object(l.c)())||void 0===I?void 0:I.showSaveOption)&&void 0!==T&&T,features:null!==(A=null===(P=Object(l.c)())||void 0===P?void 0:P.supports)&&void 0!==A?A:[]}},D=n(146),V=n.n(D),q=n(147),B=n(25),U=n.n(B);const F=({onButtonClicked:e})=>{var t,n;const{theme:r="dark",locale:o="en",height:i="44"}=null===(t=Object(l.c)())||void 0===t?void 0:t.button,a=["short","long"],{branded_type:s}=null===(n=Object(l.c)())||void 0===n?void 0:n.button,u=U()(a).call(a,s)?s:"long",p=((e,t,n)=>{const r="long"===e?`https://www.gstatic.com/instantbuy/svg/${t}/${n}.svg`:`https://www.gstatic.com/instantbuy/svg/${t}_gpay.svg`,[o,i]=Object(c.useState)(r);return Object(c.useEffect)(()=>{const e=document.createElement("img");e.addEventListener("error",()=>{i(`https://www.gstatic.com/instantbuy/svg/${t}/en.svg`)}),e.src=o},[o,t]),o})(u,"dark"===r?"dark":"light",o);return Object(c.createElement)("button",{type:"button",id:"wc-stripe-branded-button","aria-label":"Google Pay",className:`gpay-button ${r} ${u}`,style:{backgroundImage:`url(${p})`,height:i+"px"},onClick:e})},Y=({onButtonClicked:e})=>{var t;const{theme:n="dark",height:r="44",customLabel:o=Object(u.__)("Buy now","woocommerce-gateway-stripe")}=null===(t=Object(l.c)())||void 0===t?void 0:t.button;return Object(c.createElement)("button",{type:"button",id:"wc-stripe-custom-button",className:`button ${n} is-active`,style:{height:r+"px"},onClick:e},o)};var H=n(49),W=n(20),G=n.n(W);const $=e=>{const{shippingOption:t}=e;Object(H.d)(t).then(t=>{"success"===t.result&&e.updateWith({status:"success",total:t.total,displayItems:t.displayItems}),"fail"===t.result&&e.updateWith({status:"fail"})})},z=(e,t,n,r)=>{Object(c.useEffect)(()=>{const o=null==t?void 0:t.on("source",((e,t,n)=>r=>{var o,i,c,a,s,u;"yes"===(null===(o=Object(l.c)())||void 0===o||null===(i=o.stripe)||void 0===i?void 0:i.allow_prepaid_card)||"prepaid"!==(null==r||null===(c=r.source)||void 0===c||null===(a=c.card)||void 0===a?void 0:a.funding)?Object(H.a)(r,t).then(((e,t,n)=>r=>{if("success"===r.result){t.complete("success");const o=(e=>{const t=e.match(/^#?confirm-(pi|si)-([^:]+):(.+)$/);if(t&&!(t.length<4))return{type:t[1],clientSecret:t[2],redirectUrl:decodeURIComponent(t[3])}})(r.redirect);if(!o||o.length<4)return void(window.location=r.redirect);const{type:i,clientSecret:c,redirectUrl:a}=o;((e,t,n)=>"si"===t?e.handleCardSetup(n):e.handleCardPayment(n))(e,i,c).then(((e,t)=>n=>{if(n.error)throw n.error;const r=((e,t)=>"si"===t?e.setupIntent:e.paymentIntent)(n,t);((e=>"requires_capture"===e.status)(r)||(e=>"succeeded"===e.status)(r))&&(window.location=e)})(a,i)).catch(e=>{n(e.message),G.a.get(a+"&is_ajax")})}else{var o,i;t.complete("fail");const e=document.createElement("div");e.innerHTML=r.messages;const c=null!==(o=null==e||null===(i=e.firstChild)||void 0===i?void 0:i.textContent)&&void 0!==o?o:"";n(c)}})(e,r,n)):n(null===(s=Object(l.c)())||void 0===s||null===(u=s.i18n)||void 0===u?void 0:u.no_prepaid_card)})(e,n,r));return()=>{null==o||o.removeEventListener("source")}},[e,t,n,r])},X=({billing:e,shippingData:t,onClick:n,onClose:r,setExpressPaymentError:o})=>{var i,a,s,u,p,f,d;const v=Object(m.useStripe)(),{needsShipping:y}=t,[h,g]=((e,t,n)=>{const[r,o]=Object(c.useState)(null),[i,a]=Object(c.useState)(null);return Object(c.useEffect)(()=>{e&&(async()=>{const t=await Object(H.c)(),n=Object(l.a)(e,t),r=await n.canMakePayment();r?(o(n),a(()=>r.applePay?"apple_pay":r.googlePay?"google_pay":"payment_request_api")):o(null)})()},[e,t,n.cartTotal,n.cartTotalItems,n.currency.code]),[r,i]})(v,y,e);((e,t)=>{Object(c.useEffect)(()=>{const n=null==e?void 0:e.on("shippingaddresschange",(e=>t=>{const{shippingAddress:n}=t;Object(H.e)(n,e).then(e=>{t.updateWith({status:e.result,shippingOptions:e.shipping_options,total:e.total,displayItems:e.displayItems})})})(t));return()=>{null==n||n.removeEventListener("shippingaddresschange")}},[e,t])})(h,g),((e,t)=>{Object(c.useEffect)(()=>{const t=null==e?void 0:e.on("shippingoptionchange",$);return()=>{null==t||t.removeEventListener("shippingoptionchange")}},[e,t])})(h,g),z(v,h,g,o);const b=((e,t,n)=>Object(c.useCallback)((r,o)=>{var i;if(null!==(i=Object(l.c)())&&void 0!==i&&i.login_confirmation)return r.preventDefault(),void(e=>{var t,n,r;if(null===(t=Object(l.c)())||void 0===t||!t.login_confirmation)return;let o=null===(n=Object(l.c)())||void 0===n||null===(r=n.login_confirmation)||void 0===r?void 0:r.message;var i,c;"payment_request_api"!==e&&(o=o.replace(/\*\*.*?\*\*/,"apple_pay"===e?"Apple Pay":"Google Pay")),o=o.replace(/\*\*/g,""),confirm(o)&&(window.location.href=null===(i=Object(l.c)())||void 0===i||null===(c=i.login_confirmation)||void 0===c?void 0:c.redirect_url)})(e);t(""),n(),o&&o.show()},[e,t,n]))(g,o,n);((e,t)=>{Object(c.useEffect)(()=>{const n=null==e?void 0:e.on("cancel",t);return()=>{null==n||n.removeEventListener("cancel")}},[e,t])})(h,r);const{type:_="default",theme:w="dark",height:E="48"}=null===(i=Object(l.c)())||void 0===i?void 0:i.button,O={paymentRequestButton:{type:_,theme:w,height:E+"px"}},j=null===(a=Object(l.c)())||void 0===a||null===(s=a.button)||void 0===s?void 0:s.is_branded,x=null===(u=Object(l.c)())||void 0===u||null===(p=u.button)||void 0===p?void 0:p.branded_type,C=null===(f=Object(l.c)())||void 0===f||null===(d=f.button)||void 0===d?void 0:d.is_custom;return h?C?Object(c.createElement)(Y,{onButtonClicked:e=>{b(e,h)}}):j&&(()=>{const e=window.navigator.userAgent.toLowerCase(),t=/chrome/.test(e)&&!/edge|edg|opr|brave\//.test(e)&&"Google Inc."===window.navigator.vendor,n=t&&window.navigator.brave;return t&&!n})()?Object(c.createElement)(F,{onButtonClicked:e=>{b(e,h)}}):(j&&(O.paymentRequestButton.type="long"===x?"buy":"default"),Object(c.createElement)(m.PaymentRequestButtonElement,{onClick:b,options:{style:O,paymentRequest:h}})):null};var Z,Q;const K=Object(l.d)();var J={name:"payment_request",content:Object(c.createElement)(e=>{const{stripe:t}=e;return Object(c.createElement)(m.Elements,{stripe:t},Object(c.createElement)(X,e))},{stripe:K}),edit:Object(c.createElement)(()=>Object(c.createElement)("img",{src:"data:image/svg+xml,%3Csvg width='264' height='48' viewBox='0 0 264 48' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='264' height='48' rx='3' fill='black'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M125.114 16.6407C125.682 15.93 126.067 14.9756 125.966 14C125.135 14.0415 124.121 14.549 123.533 15.2602C123.006 15.8693 122.539 16.8641 122.661 17.7983C123.594 17.8797 124.526 17.3317 125.114 16.6407Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M125.955 17.982C124.601 17.9011 123.448 18.7518 122.801 18.7518C122.154 18.7518 121.163 18.0224 120.092 18.0421C118.696 18.0629 117.402 18.8524 116.694 20.1079C115.238 22.6196 116.31 26.3453 117.726 28.3909C118.414 29.4028 119.242 30.5174 120.334 30.4769C121.366 30.4365 121.77 29.8087 123.024 29.8087C124.277 29.8087 124.641 30.4769 125.733 30.4567C126.865 30.4365 127.573 29.4443 128.261 28.4313C129.049 27.2779 129.373 26.1639 129.393 26.1027C129.373 26.0825 127.209 25.2515 127.189 22.7606C127.169 20.6751 128.888 19.6834 128.969 19.6217C127.998 18.1847 126.481 18.0224 125.955 17.982Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M136.131 23.1804H138.834C140.886 23.1804 142.053 22.0752 142.053 20.1592C142.053 18.2432 140.886 17.1478 138.845 17.1478H136.131V23.1804ZM139.466 15.1582C142.411 15.1582 144.461 17.1903 144.461 20.1483C144.461 23.1172 142.369 25.1596 139.392 25.1596H136.131V30.3498H133.775V15.1582H139.466Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M152.198 26.224V25.3712L149.579 25.5397C148.106 25.6341 147.339 26.182 147.339 27.14C147.339 28.0664 148.138 28.6667 149.39 28.6667C150.988 28.6667 152.198 27.6449 152.198 26.224ZM145.046 27.2032C145.046 25.2551 146.529 24.1395 149.263 23.971L152.198 23.7922V22.9498C152.198 21.7181 151.388 21.0442 149.947 21.0442C148.758 21.0442 147.896 21.6548 147.717 22.5916H145.592C145.656 20.6232 147.507 19.1914 150.01 19.1914C152.703 19.1914 154.459 20.602 154.459 22.7917V30.351H152.282V28.5298H152.229C151.609 29.719 150.241 30.4666 148.758 30.4666C146.571 30.4666 145.046 29.1612 145.046 27.2032Z' fill='white'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M156.461 34.4145V32.5934C156.608 32.6141 156.965 32.6354 157.155 32.6354C158.196 32.6354 158.785 32.1932 159.142 31.0564L159.353 30.3824L155.366 19.3281H157.827L160.604 28.298H160.657L163.434 19.3281H165.832L161.698 30.9402C160.752 33.6038 159.668 34.4778 157.376 34.4778C157.197 34.4778 156.618 34.4565 156.461 34.4145Z' fill='white'/%3E%3C/svg%3E%0A",alt:""}),null),canMakePayment:e=>{var t,n,r;return!(null===(t=null===(n=Object(l.c)())||void 0===n?void 0:n.isAdmin)||void 0===t||!t)||!(null===(r=Object(l.c)())||void 0===r||!r.shouldShowPaymentRequestButton)&&Object(l.d)().then(t=>{var n,r,o,i,c;const a={order_data:{total:{label:"Total",amount:V()(null!==(n=null==e||null===(r=e.cartTotals)||void 0===r?void 0:r.total_price)&&void 0!==n?n:0,10),pending:!0},currency:null==e||null===(o=e.cartTotals)||void 0===o||null===(i=o.currency_code)||void 0===i?void 0:i.toLowerCase(),country_code:null===(c=Object(q.getSetting)("baseLocation",{}))||void 0===c?void 0:c.country,displayItems:[]},shipping_required:!1};return Object(l.a)(t,a).canMakePayment()})},paymentMethodId:"stripe",supports:{features:null!==(Z=null===(Q=Object(l.c)())||void 0===Q?void 0:Q.supports)&&void 0!==Z?Z:[]}};Object(r.registerPaymentMethod)(M),Object(r.registerExpressPaymentMethod)(J)}]);
build/style-upe_classic.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ #payment .payment_methods li .payment_box.payment_method_woocommerce_payments fieldset{padding:0}#payment .payment_method_woocommerce_payments>fieldset>legend{padding-top:0}#payment .payment_method_woocommerce_payments .testmode-info{margin-bottom:0.5em}#payment .payment_method_woocommerce_payments .woocommerce-error{margin:1em 0 0}#wc-stripe-card-element,#wc-stripe-sepa-element{border:1px solid #ddd;padding:5px 7px;min-height:29px}#wc-stripe-upe-element{padding:7px 7px;margin-bottom:0.5em}#wc-stripe-upe-element.processing{min-height:70px}.wc-stripe-card-mounted,.wc-stripe-upe-mounted,.wc-stripe-sepa-mounted{background-color:#fff}
2
+
build/upe_classic.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('jquery', 'wp-i18n', 'wp-polyfill'), 'version' => 'bc1248c46dcfd3466ebb8e53bf07298e');
build/upe_classic.js ADDED
@@ -0,0 +1 @@
 
1
+ (window.webpackJsonp_woocommerce_gateway_stripe=window.webpackJsonp_woocommerce_gateway_stripe||[]).push([[2],{189:function(e,t,r){}}]),function(e){function t(t){for(var n,a,c=t[0],s=t[1],u=t[2],f=0,p=[];f<c.length;f++)a=c[f],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(n in s)Object.prototype.hasOwnProperty.call(s,n)&&(e[n]=s[n]);for(l&&l(t);p.length;)p.shift()();return i.push.apply(i,u||[]),r()}function r(){for(var e,t=0;t<i.length;t++){for(var r=i[t],n=!0,c=1;c<r.length;c++){var s=r[c];0!==o[s]&&(n=!1)}n&&(i.splice(t--,1),e=a(a.s=r[0]))}return e}var n={},o={3:0},i=[];function a(t){if(n[t])return n[t].exports;var r=n[t]={i:t,l:!1,exports:{}};return e[t].call(r.exports,r,r.exports,a),r.l=!0,r.exports}a.m=e,a.c=n,a.d=function(e,t,r){a.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},a.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.t=function(e,t){if(1&t&&(e=a(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(a.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var n in e)a.d(r,n,function(t){return e[t]}.bind(null,n));return r},a.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return a.d(t,"a",t),t},a.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},a.p="";var c=window.webpackJsonp_woocommerce_gateway_stripe=window.webpackJsonp_woocommerce_gateway_stripe||[],s=c.push.bind(c);c.push=t,c=c.slice();for(var u=0;u<c.length;u++)t(c[u]);var l=s;i.push([217,2]),r()}([,,function(e,t,r){"use strict";r.d(t,"f",(function(){return p})),r.d(t,"e",(function(){return h})),r.d(t,"a",(function(){return l})),r.d(t,"c",(function(){return u})),r.d(t,"b",(function(){return f})),r.d(t,"d",(function(){return S}));var n=r(37),o=r.n(n),i=r(25),a=r.n(i),c=r(3),s=r(4);const u=()=>{var e,t;const r="undefined"!=typeof wc_stripe_upe_params?wc_stripe_upe_params:null===(e=wc)||void 0===e||null===(t=e.wcSettings)||void 0===t?void 0:t.getSetting("stripe_data",null);if(!r)throw new Error("Stripe initialization data is not available");return r},l=(e,t)=>{var r,n;const o={total:t.order_data.total,currency:t.order_data.currency,country:t.order_data.country_code,requestPayerName:!0,requestPayerEmail:!0,requestPayerPhone:null===(r=u())||void 0===r||null===(n=r.checkout)||void 0===n?void 0:n.needs_payer_phone,requestShipping:!!t.shipping_required,displayItems:t.order_data.displayItems};return"PR"===o.country&&(o.country="US"),e.paymentRequest(o)},f=(e,t="")=>{switch(e){case s.b.INVALID_EMAIL:return Object(c.__)("Invalid email address, please correct and try again.","woocommerce-gateway-stripe");case(e=>{var t;return a()(t=[s.b.INVALID_REQUEST,s.b.API_CONNECTION,s.b.API_ERROR,s.b.AUTHENTICATION_ERROR,s.b.RATE_LIMIT_ERROR]).call(t,e)})(e):return Object(c.__)("Unable to process this payment, please try again or use alternative method.","woocommerce-gateway-stripe");case s.b.CARD_ERROR:return(e=>({[s.a.INVALID_NUMBER]:Object(c.__)("The card number is not a valid credit card number.","woocommerce-gateway-stripe"),[s.a.INVALID_EXPIRY_MONTH]:Object(c.__)("The card expiration month is invalid.","woocommerce-gateway-stripe"),[s.a.INVALID_EXPIRY_YEAR]:Object(c.__)("The card expiration year is invalid.","woocommerce-gateway-stripe"),[s.a.INVALID_CVC]:Object(c.__)("The card security code is invalid.","woocommerce-gateway-stripe"),[s.a.INCORRECT_NUMBER]:Object(c.__)("The card number is incorrect.","woocommerce-gateway-stripe"),[s.a.INCOMPLETE_NUMBER]:Object(c.__)("The card number is incomplete.","woocommerce-gateway-stripe"),[s.a.INCOMPLETE_CVC]:Object(c.__)("The card security code is incomplete.","woocommerce-gateway-stripe"),[s.a.INCOMPLETE_EXPIRY]:Object(c.__)("The card expiration date is incomplete.","woocommerce-gateway-stripe"),[s.a.EXPIRED_CARD]:Object(c.__)("The card has expired.","woocommerce-gateway-stripe"),[s.a.INCORRECT_CVC]:Object(c.__)("The card security code is incorrect.","woocommerce-gateway-stripe"),[s.a.INCORRECT_ZIP]:Object(c.__)("The card zip code failed validation.","woocommerce-gateway-stripe"),[s.a.INVALID_EXPIRY_YEAR_PAST]:Object(c.__)("The card expiration year is in the past","woocommerce-gateway-stripe"),[s.a.CARD_DECLINED]:Object(c.__)("The card was declined.","woocommerce-gateway-stripe"),[s.a.MISSING]:Object(c.__)("There is no card on a customer that is being charged.","woocommerce-gateway-stripe"),[s.a.PROCESSING_ERROR]:Object(c.__)("An error occurred while processing the card.","woocommerce-gateway-stripe")}[e]||null))(t);case s.b.VALIDATION_ERROR:return""}return null},p=(e,t)=>{var r,n,i,a,c,s,l,f,p,h,d,v,g,m,y,b,_,w,x,S;const{source:A}=e,R=null==A||null===(r=A.owner)||void 0===r?void 0:r.email,O=null==A||null===(n=A.owner)||void 0===n?void 0:n.phone,k=null==A||null===(i=A.owner)||void 0===i?void 0:i.address,E=null==A||null===(a=A.owner)||void 0===a?void 0:a.name,I=null==e?void 0:e.shippingAddress,j={_wpnonce:null===(c=u())||void 0===c||null===(s=c.nonce)||void 0===s?void 0:s.checkout,billing_first_name:null!==(l=null==E||null===(f=E.split(" "))||void 0===f||null===(p=o()(f).call(f,0,1))||void 0===p?void 0:p.join(" "))&&void 0!==l?l:"",billing_last_name:null!==(h=null==E||null===(d=E.split(" "))||void 0===d||null===(v=o()(d).call(d,1))||void 0===v?void 0:v.join(" "))&&void 0!==h?h:"",billing_company:"",billing_email:null!=R?R:null==e?void 0:e.payerEmail,billing_phone:null!=O?O:null==e||null===(g=e.payerPhone)||void 0===g?void 0:g.replace("/[() -]/g",""),billing_country:null!==(m=null==k?void 0:k.country)&&void 0!==m?m:"",billing_address_1:null!==(y=null==k?void 0:k.line1)&&void 0!==y?y:"",billing_address_2:null!==(b=null==k?void 0:k.line2)&&void 0!==b?b:"",billing_city:null!==(_=null==k?void 0:k.city)&&void 0!==_?_:"",billing_state:null!==(w=null==k?void 0:k.state)&&void 0!==w?w:"",billing_postcode:null!==(x=null==k?void 0:k.postal_code)&&void 0!==x?x:"",shipping_first_name:"",shipping_last_name:"",shipping_company:"",shipping_country:"",shipping_address_1:"",shipping_address_2:"",shipping_city:"",shipping_state:"",shipping_postcode:"",shipping_method:[null==e||null===(S=e.shippingOption)||void 0===S?void 0:S.id],order_comments:"",payment_method:"stripe",ship_to_different_address:1,terms:1,stripe_source:A.id,payment_request_type:t};var T,L,P,C,N,U,M,q,F,D;return I&&(j.shipping_first_name=null==I||null===(T=I.recipient)||void 0===T||null===(L=T.split(" "))||void 0===L||null===(P=o()(L).call(L,0,1))||void 0===P?void 0:P.join(" "),j.shipping_last_name=null==I||null===(C=I.recipient)||void 0===C||null===(N=C.split(" "))||void 0===N||null===(U=o()(N).call(N,1))||void 0===U?void 0:U.join(" "),j.shipping_company=null==I?void 0:I.organization,j.shipping_country=null==I?void 0:I.country,j.shipping_address_1=null!==(M=null==I||null===(q=I.addressLine)||void 0===q?void 0:q[0])&&void 0!==M?M:"",j.shipping_address_2=null!==(F=null==I||null===(D=I.addressLine)||void 0===D?void 0:D[1])&&void 0!==F?F:"",j.shipping_city=null==I?void 0:I.city,j.shipping_state=null==I?void 0:I.region,j.shipping_postcode=null==I?void 0:I.postalCode),j},h=e=>({country:e.country,state:e.region,postcode:e.postalCode,city:e.city,address:void 0===e.addressLine[0]?"":e.addressLine[0],address_2:void 0===e.addressLine[1]?"":e.addressLine[1]});var d=r(33),v=r.n(d),g="https://js.stripe.com/v3",m=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,y="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",b=null,_=function(e,t,r){if(null===e)return null;var n=e.apply(void 0,t);return function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"1.11.0",startTime:t})}(n,r),n},w=Promise.resolve().then((function(){return e=null,null!==b?b:b=new Promise((function(t,r){if("undefined"!=typeof window)if(window.Stripe&&e&&console.warn(y),window.Stripe)t(window.Stripe);else try{var n=function(){for(var e=document.querySelectorAll('script[src^="'.concat(g,'"]')),t=0;t<e.length;t++){var r=e[t];if(m.test(r.src))return r}return null}();n&&e?console.warn(y):n||(n=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",r=document.createElement("script");r.src="".concat(g).concat(t);var n=document.head||document.body;if(!n)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return n.appendChild(r),r}(e)),n.addEventListener("load",(function(){window.Stripe?t(window.Stripe):r(new Error("Stripe.js not available"))})),n.addEventListener("error",(function(){r(new Error("Failed to load Stripe.js"))}))}catch(e){return void r(e)}else t(null)}));var e})),x=!1;w.catch((function(e){x||console.warn(e)}));const S=()=>new v.a(e=>{try{var t,r;const n=null!==(t=null===(r=u())||void 0===r?void 0:r.stripe_locale)&&void 0!==t?t:"auto";e(function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];x=!0;var n=Date.now();return w.then((function(e){return _(e,t,n)}))}((()=>{var e;const t=null===(e=u())||void 0===e?void 0:e.key;if(!t)throw new Error("There is no api key available for stripe. Make sure it is available on the wc.stripe_data.stripe.key property.");return t})(),{locale:n}))}catch(t){e({error:t})}})},function(e,t){e.exports=window.wp.i18n},function(e,t,r){"use strict";r.d(t,"b",(function(){return n})),r.d(t,"a",(function(){return o}));const n={INVALID_EMAIL:"email_invalid",INVALID_REQUEST:"invalid_request_error",API_CONNECTION:"api_connection_error",API_ERROR:"api_error",AUTHENTICATION_ERROR:"authentication_error",RATE_LIMIT_ERROR:"rate_limit_error",CARD_ERROR:"card_error",VALIDATION_ERROR:"validation_error"},o={INVALID_NUMBER:"invalid_number",INVALID_EXPIRY_MONTH:"invalid_expiry_month",INVALID_EXPIRY_YEAR:"invalid_expiry_year",INVALID_CVC:"invalid_cvc",INCORRECT_NUMBER:"incorrect_number",INCOMPLETE_NUMBER:"incomplete_number",INCOMPLETE_CVC:"incomplete_cvc",INCOMPLETE_EXPIRY:"incomplete_expiry",EXPIRED_CARD:"expired_card",INCORRECT_CVC:"incorrect_cvc",INCORRECT_ZIP:"incorrect_zip",INVALID_EXPIRY_YEAR_PAST:"invalid_expiry_year_past",CARD_DECLINED:"card_declined",MISSING:"missing",PROCESSING_ERROR:"processing_error"}},function(e,t,r){(function(t){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||function(){return this}()||Function("return this")()}).call(this,r(74))},function(e,t,r){var n=r(5),o=r(61),i=r(12),a=r(62),c=r(53),s=r(80),u=o("wks"),l=n.Symbol,f=s?l:l&&l.withoutSetter||a;e.exports=function(e){return i(u,e)&&(c||"string"==typeof u[e])||(c&&i(l,e)?u[e]=l[e]:u[e]=f("Symbol."+e)),u[e]}},function(e,t,r){"use strict";var n=r(5),o=r(50).f,i=r(58),a=r(18),c=r(30),s=r(13),u=r(12),l=function(e){var t=function(t,r,n){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,r)}return new e(t,r,n)}return e.apply(this,arguments)};return t.prototype=e.prototype,t};e.exports=function(e,t){var r,f,p,h,d,v,g,m,y=e.target,b=e.global,_=e.stat,w=e.proto,x=b?n:_?n[y]:(n[y]||{}).prototype,S=b?a:a[y]||(a[y]={}),A=S.prototype;for(p in t)r=!i(b?p:y+(_?".":"#")+p,e.forced)&&x&&u(x,p),d=S[p],r&&(v=e.noTargetGet?(m=o(x,p))&&m.value:x[p]),h=r&&v?v:t[p],r&&typeof d==typeof h||(g=e.bind&&r?c(h,n):e.wrap&&r?l(h):w&&"function"==typeof h?c(Function.call,h):h,(e.sham||h&&h.sham||d&&d.sham)&&s(g,"sham",!0),S[p]=g,w&&(u(a,f=y+"Prototype")||s(a,f,{}),a[f][p]=h,e.real&&A&&!A[p]&&s(A,p,h)))}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},,function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},,function(e,t){var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,r){var n=r(15),o=r(31),i=r(26);e.exports=n?function(e,t,r){return o.f(e,t,i(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t,r){var n=r(10);e.exports=function(e){if(!n(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,r){var n=r(8);e.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},,,function(e,t){e.exports={}},function(e,t,r){var n=r(18);e.exports=function(e){return n[e+"Prototype"]}},function(e,t){e.exports=window.jQuery},function(e,t){var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,r){var n=r(18),o=r(5),i=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?i(n[e])||i(o[e]):n[e]&&n[e][t]||o[e]&&o[e][t]}},function(e,t,r){e.exports=r(90)},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,r){var n=r(38),o=r(22);e.exports=function(e){return n(o(e))}},function(e,t){e.exports=!0},function(e,t,r){var n=r(41),o=Math.min;e.exports=function(e){return e>0?o(n(e),9007199254740991):0}},function(e,t,r){var n=r(23);e.exports=function(e,t,r){if(n(e),void 0===t)return e;switch(r){case 0:return function(){return e.call(t)};case 1:return function(r){return e.call(t,r)};case 2:return function(r,n){return e.call(t,r,n)};case 3:return function(r,n,o){return e.call(t,r,n,o)}}return function(){return e.apply(t,arguments)}}},function(e,t,r){var n=r(15),o=r(51),i=r(14),a=r(39),c=Object.defineProperty;t.f=n?c:function(e,t,r){if(i(e),t=a(t,!0),i(r),o)try{return c(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},function(e,t){e.exports={}},function(e,t,r){e.exports=r(111)},function(e,t,r){var n=r(21),o=r(5);e.exports="process"==n(o.process)},function(e,t,r){var n,o,i=r(5),a=r(45),c=i.process,s=c&&c.versions,u=s&&s.v8;u?o=(n=u.split("."))[0]+n[1]:a&&(!(n=a.match(/Edge\/(\d+)/))||n[1]>=74)&&(n=a.match(/Chrome\/(\d+)/))&&(o=n[1]),e.exports=o&&+o},function(e,t,r){var n=r(13);e.exports=function(e,t,r,o){o&&o.enumerable?e[t]=r:n(e,t,r)}},function(e,t,r){e.exports=r(131)},function(e,t,r){var n=r(8),o=r(21),i="".split;e.exports=n((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==o(e)?i.call(e,""):Object(e)}:Object},function(e,t,r){var n=r(10);e.exports=function(e,t){if(!n(e))return e;var r,o;if(t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;if("function"==typeof(r=e.valueOf)&&!n(o=r.call(e)))return o;if(!t&&"function"==typeof(r=e.toString)&&!n(o=r.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t,r){var n=r(22);e.exports=function(e){return Object(n(e))}},function(e,t){var r=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:r)(e)}},function(e,t,r){var n=r(5),o=r(10),i=n.document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t,r){var n=r(5),o=r(75),i=n["__core-js_shared__"]||o("__core-js_shared__",{});e.exports=i},function(e,t,r){var n=r(14),o=r(102),i=r(29),a=r(30),c=r(69),s=r(103),u=function(e,t){this.stopped=e,this.result=t};e.exports=function(e,t,r){var l,f,p,h,d,v,g,m=r&&r.that,y=!(!r||!r.AS_ENTRIES),b=!(!r||!r.IS_ITERATOR),_=!(!r||!r.INTERRUPTED),w=a(t,m,1+y+_),x=function(e){return l&&s(l),new u(!0,e)},S=function(e){return y?(n(e),_?w(e[0],e[1],x):w(e[0],e[1])):_?w(e,x):w(e)};if(b)l=e;else{if("function"!=typeof(f=c(e)))throw TypeError("Target is not iterable");if(o(f)){for(p=0,h=i(e.length);h>p;p++)if((d=S(e[p]))&&d instanceof u)return d;return new u(!1)}l=f.call(e)}for(v=l.next;!(g=v.call(l)).done;){try{d=S(g.value)}catch(e){throw s(l),e}if("object"==typeof d&&d&&d instanceof u)return d}return new u(!1)}},function(e,t,r){var n=r(24);e.exports=n("navigator","userAgent")||""},function(e,t,r){var n=r(65),o=r(31).f,i=r(13),a=r(12),c=r(119),s=r(6)("toStringTag");e.exports=function(e,t,r,u){if(e){var l=r?e:e.prototype;a(l,s)||o(l,s,{configurable:!0,value:t}),u&&!n&&i(l,"toString",c)}}},function(e,t,r){"use strict";var n=r(23),o=function(e){var t,r;this.promise=new e((function(e,n){if(void 0!==t||void 0!==r)throw TypeError("Bad Promise constructor");t=e,r=n})),this.resolve=n(t),this.reject=n(r)};e.exports.f=function(e){return new o(e)}},function(e,t,r){var n,o,i,a=r(125),c=r(5),s=r(10),u=r(13),l=r(12),f=r(43),p=r(60),h=r(64),d=c.WeakMap;if(a){var v=f.state||(f.state=new d),g=v.get,m=v.has,y=v.set;n=function(e,t){return t.facade=e,y.call(v,e,t),t},o=function(e){return g.call(v,e)||{}},i=function(e){return m.call(v,e)}}else{var b=p("state");h[b]=!0,n=function(e,t){return t.facade=e,u(e,b,t),t},o=function(e){return l(e,b)?e[b]:{}},i=function(e){return l(e,b)}}e.exports={set:n,get:o,has:i,enforce:function(e){return i(e)?o(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!s(t)||(r=o(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}}},function(e,t,r){"use strict";r.d(t,"c",(function(){return u})),r.d(t,"e",(function(){return l})),r.d(t,"d",(function(){return f})),r.d(t,"a",(function(){return p})),r.d(t,"b",(function(){return h}));var n=r(33),o=r.n(n),i=r(20),a=r.n(i),c=r(2);const s=(e,t="wc_stripe_")=>{var r,n,o;return null===(r=Object(c.c)())||void 0===r||null===(n=r.ajax_url)||void 0===n||null===(o=n.toString())||void 0===o?void 0:o.replace("%%endpoint%%",t+e)},u=()=>{var e,t;const r={security:null===(e=Object(c.c)())||void 0===e||null===(t=e.nonce)||void 0===t?void 0:t.payment};return a.a.ajax({type:"POST",data:r,url:s("get_cart_details")})},l=(e,t)=>{var r,n,o;const i={security:null===(r=Object(c.c)())||void 0===r||null===(n=r.nonce)||void 0===n?void 0:n.shipping,payment_request_type:t,is_product_page:null===(o=Object(c.c)())||void 0===o?void 0:o.is_product_page,...Object(c.e)(e)};return a.a.ajax({type:"POST",data:i,url:s("get_shipping_options")})},f=e=>{var t,r,n;const o={security:null===(t=Object(c.c)())||void 0===t||null===(r=t.nonce)||void 0===r?void 0:r.update_shipping,shipping_method:[e.id],is_product_page:null===(n=Object(c.c)())||void 0===n?void 0:n.is_product_page};return a.a.ajax({type:"POST",data:o,url:s("update_shipping_method")})},p=(e,t)=>{const r=Object(c.f)(e,t);return a.a.ajax({type:"POST",data:r,dataType:"json",url:s("create_order")})};class h{constructor(e,t){this.stripe=null,this.options=e,this.request=t}getStripe(){const{key:e,locale:t,isUPEEnabled:r}=this.options;return this.stripe||(this.stripe=r?new Stripe(e,{betas:["payment_element_beta_1"],locale:t}):new Stripe(e,{locale:t})),this.stripe}loadStripe(){return new o.a(e=>{try{e(this.getStripe())}catch(t){e({error:t})}})}initSetupIntent(){console.error("TODO: Not implemented yet: initSetupIntent")}createIntent(e){var t;return this.request(s("create_payment_intent"),{stripe_order_id:e,_ajax_nonce:null===(t=Object(c.c)())||void 0===t?void 0:t.createPaymentIntentNonce}).then(e=>{if(!e.success)throw e.data.error;return e.data}).catch(e=>{throw e.message?e:new Error(e.statusText)})}confirmIntent(e,t){return console.error("TODO: Not implemented yet: confirmIntent"),!0}saveUPEAppearance(e){var t;return this.request(s("save_upe_appearance"),{appearance:e,_ajax_nonce:null===(t=Object(c.c)())||void 0===t?void 0:t.saveUPEAppearanceNonce}).then(e=>{if("failure"===e.result)throw new Error(e.messages);return e}).catch(e=>{throw e.message?e:new Error(e.statusText)})}processCheckout(e,t){return this.request(s("checkout",""),{...t,wc_payment_intent_id:e}).then(e=>{if("failure"===e.result)throw new Error(e.messages);return e}).catch(e=>{throw e.message?e:new Error(e.statusText)})}}},function(e,t,r){var n=r(15),o=r(57),i=r(26),a=r(27),c=r(39),s=r(12),u=r(51),l=Object.getOwnPropertyDescriptor;t.f=n?l:function(e,t){if(e=a(e),t=c(t,!0),u)try{return l(e,t)}catch(e){}if(s(e,t))return i(!o.f.call(e,t),e[t])}},function(e,t,r){var n=r(15),o=r(8),i=r(42);e.exports=!n&&!o((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,r){var n=r(27),o=r(29),i=r(63),a=function(e){return function(t,r,a){var c,s=n(t),u=o(s.length),l=i(a,u);if(e&&r!=r){for(;u>l;)if((c=s[l++])!=c)return!0}else for(;u>l;l++)if((e||l in s)&&s[l]===r)return e||l||0;return!e&&-1}};e.exports={includes:a(!0),indexOf:a(!1)}},function(e,t,r){var n=r(34),o=r(35),i=r(8);e.exports=!!Object.getOwnPropertySymbols&&!i((function(){return!Symbol.sham&&(n?38===o:o>37&&o<41)}))},function(e,t,r){var n=r(65),o=r(21),i=r(6)("toStringTag"),a="Arguments"==o(function(){return arguments}());e.exports=n?o:function(e){var t,r,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?r:a?o(t):"Object"==(n=o(t))&&"function"==typeof t.callee?"Arguments":n}},function(e,t){e.exports=function(){}},,function(e,t,r){"use strict";var n={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!n.call({1:2},1);t.f=i?function(e){var t=o(this,e);return!!t&&t.enumerable}:n},function(e,t,r){var n=r(8),o=/#|\.prototype\./,i=function(e,t){var r=c[a(e)];return r==u||r!=s&&("function"==typeof t?n(t):!!t)},a=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},c=i.data={},s=i.NATIVE="N",u=i.POLYFILL="P";e.exports=i},function(e,t,r){var n=r(12),o=r(40),i=r(60),a=r(114),c=i("IE_PROTO"),s=Object.prototype;e.exports=a?Object.getPrototypeOf:function(e){return e=o(e),n(e,c)?e[c]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?s:null}},function(e,t,r){var n=r(61),o=r(62),i=n("keys");e.exports=function(e){return i[e]||(i[e]=o(e))}},function(e,t,r){var n=r(28),o=r(43);(e.exports=function(e,t){return o[e]||(o[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.9.1",mode:n?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},function(e,t){var r=0,n=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++r+n).toString(36)}},function(e,t,r){var n=r(41),o=Math.max,i=Math.min;e.exports=function(e,t){var r=n(e);return r<0?o(r+t,0):i(r,t)}},function(e,t){e.exports={}},function(e,t,r){var n={};n[r(6)("toStringTag")]="z",e.exports="[object z]"===String(n)},function(e,t){e.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}},function(e,t,r){var n=r(21);e.exports=Array.isArray||function(e){return"Array"==n(e)}},function(e,t,r){var n,o=r(14),i=r(101),a=r(78),c=r(64),s=r(79),u=r(42),l=r(60)("IE_PROTO"),f=function(){},p=function(e){return"<script>"+e+"<\/script>"},h=function(){try{n=document.domain&&new ActiveXObject("htmlfile")}catch(e){}var e,t;h=n?function(e){e.write(p("")),e.close();var t=e.parentWindow.Object;return e=null,t}(n):((t=u("iframe")).style.display="none",s.appendChild(t),t.src=String("javascript:"),(e=t.contentWindow.document).open(),e.write(p("document.F=Object")),e.close(),e.F);for(var r=a.length;r--;)delete h.prototype[a[r]];return h()};c[l]=!0,e.exports=Object.create||function(e,t){var r;return null!==e?(f.prototype=o(e),r=new f,f.prototype=null,r[l]=e):r=h(),void 0===t?r:i(r,t)}},function(e,t,r){var n=r(54),o=r(32),i=r(6)("iterator");e.exports=function(e){if(null!=e)return e[i]||e["@@iterator"]||o[n(e)]}},function(e,t,r){var n=r(8),o=r(6),i=r(35),a=o("species");e.exports=function(e){return i>=51||!n((function(){var t=[];return(t.constructor={})[a]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,r){var n=r(96);e.exports=function(e){if(n(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,r){var n=r(6)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(r){try{return t[n]=!1,"/./"[e](t)}catch(e){}}return!1}},function(e,t,r){var n;!function(o){var i=/^\s+/,a=/\s+$/,c=0,s=o.round,u=o.min,l=o.max,f=o.random;function p(e,t){if(t=t||{},(e=e||"")instanceof p)return e;if(!(this instanceof p))return new p(e,t);var r=function(e){var t,r,n,c={r:0,g:0,b:0},s=1,f=null,p=null,h=null,d=!1,v=!1;return"string"==typeof e&&(e=function(e){e=e.replace(i,"").replace(a,"").toLowerCase();var t,r=!1;if(j[e])e=j[e],r=!0;else if("transparent"==e)return{r:0,g:0,b:0,a:0,format:"name"};return(t=V.rgb.exec(e))?{r:t[1],g:t[2],b:t[3]}:(t=V.rgba.exec(e))?{r:t[1],g:t[2],b:t[3],a:t[4]}:(t=V.hsl.exec(e))?{h:t[1],s:t[2],l:t[3]}:(t=V.hsla.exec(e))?{h:t[1],s:t[2],l:t[3],a:t[4]}:(t=V.hsv.exec(e))?{h:t[1],s:t[2],v:t[3]}:(t=V.hsva.exec(e))?{h:t[1],s:t[2],v:t[3],a:t[4]}:(t=V.hex8.exec(e))?{r:N(t[1]),g:N(t[2]),b:N(t[3]),a:F(t[4]),format:r?"name":"hex8"}:(t=V.hex6.exec(e))?{r:N(t[1]),g:N(t[2]),b:N(t[3]),format:r?"name":"hex"}:(t=V.hex4.exec(e))?{r:N(t[1]+""+t[1]),g:N(t[2]+""+t[2]),b:N(t[3]+""+t[3]),a:F(t[4]+""+t[4]),format:r?"name":"hex8"}:!!(t=V.hex3.exec(e))&&{r:N(t[1]+""+t[1]),g:N(t[2]+""+t[2]),b:N(t[3]+""+t[3]),format:r?"name":"hex"}}(e)),"object"==typeof e&&(W(e.r)&&W(e.g)&&W(e.b)?(t=e.r,r=e.g,n=e.b,c={r:255*P(t,255),g:255*P(r,255),b:255*P(n,255)},d=!0,v="%"===String(e.r).substr(-1)?"prgb":"rgb"):W(e.h)&&W(e.s)&&W(e.v)?(f=M(e.s),p=M(e.v),c=function(e,t,r){e=6*P(e,360),t=P(t,100),r=P(r,100);var n=o.floor(e),i=e-n,a=r*(1-t),c=r*(1-i*t),s=r*(1-(1-i)*t),u=n%6;return{r:255*[r,c,a,a,s,r][u],g:255*[s,r,r,c,a,a][u],b:255*[a,a,s,r,r,c][u]}}(e.h,f,p),d=!0,v="hsv"):W(e.h)&&W(e.s)&&W(e.l)&&(f=M(e.s),h=M(e.l),c=function(e,t,r){var n,o,i;function a(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+(t-e)*(2/3-r)*6:e}if(e=P(e,360),t=P(t,100),r=P(r,100),0===t)n=o=i=r;else{var c=r<.5?r*(1+t):r+t-r*t,s=2*r-c;n=a(s,c,e+1/3),o=a(s,c,e),i=a(s,c,e-1/3)}return{r:255*n,g:255*o,b:255*i}}(e.h,f,h),d=!0,v="hsl"),e.hasOwnProperty("a")&&(s=e.a)),s=L(s),{ok:d,format:e.format||v,r:u(255,l(c.r,0)),g:u(255,l(c.g,0)),b:u(255,l(c.b,0)),a:s}}(e);this._originalInput=e,this._r=r.r,this._g=r.g,this._b=r.b,this._a=r.a,this._roundA=s(100*this._a)/100,this._format=t.format||r.format,this._gradientType=t.gradientType,this._r<1&&(this._r=s(this._r)),this._g<1&&(this._g=s(this._g)),this._b<1&&(this._b=s(this._b)),this._ok=r.ok,this._tc_id=c++}function h(e,t,r){e=P(e,255),t=P(t,255),r=P(r,255);var n,o,i=l(e,t,r),a=u(e,t,r),c=(i+a)/2;if(i==a)n=o=0;else{var s=i-a;switch(o=c>.5?s/(2-i-a):s/(i+a),i){case e:n=(t-r)/s+(t<r?6:0);break;case t:n=(r-e)/s+2;break;case r:n=(e-t)/s+4}n/=6}return{h:n,s:o,l:c}}function d(e,t,r){e=P(e,255),t=P(t,255),r=P(r,255);var n,o,i=l(e,t,r),a=u(e,t,r),c=i,s=i-a;if(o=0===i?0:s/i,i==a)n=0;else{switch(i){case e:n=(t-r)/s+(t<r?6:0);break;case t:n=(r-e)/s+2;break;case r:n=(e-t)/s+4}n/=6}return{h:n,s:o,v:c}}function v(e,t,r,n){var o=[U(s(e).toString(16)),U(s(t).toString(16)),U(s(r).toString(16))];return n&&o[0].charAt(0)==o[0].charAt(1)&&o[1].charAt(0)==o[1].charAt(1)&&o[2].charAt(0)==o[2].charAt(1)?o[0].charAt(0)+o[1].charAt(0)+o[2].charAt(0):o.join("")}function g(e,t,r,n){return[U(q(n)),U(s(e).toString(16)),U(s(t).toString(16)),U(s(r).toString(16))].join("")}function m(e,t){t=0===t?0:t||10;var r=p(e).toHsl();return r.s-=t/100,r.s=C(r.s),p(r)}function y(e,t){t=0===t?0:t||10;var r=p(e).toHsl();return r.s+=t/100,r.s=C(r.s),p(r)}function b(e){return p(e).desaturate(100)}function _(e,t){t=0===t?0:t||10;var r=p(e).toHsl();return r.l+=t/100,r.l=C(r.l),p(r)}function w(e,t){t=0===t?0:t||10;var r=p(e).toRgb();return r.r=l(0,u(255,r.r-s(-t/100*255))),r.g=l(0,u(255,r.g-s(-t/100*255))),r.b=l(0,u(255,r.b-s(-t/100*255))),p(r)}function x(e,t){t=0===t?0:t||10;var r=p(e).toHsl();return r.l-=t/100,r.l=C(r.l),p(r)}function S(e,t){var r=p(e).toHsl(),n=(r.h+t)%360;return r.h=n<0?360+n:n,p(r)}function A(e){var t=p(e).toHsl();return t.h=(t.h+180)%360,p(t)}function R(e){var t=p(e).toHsl(),r=t.h;return[p(e),p({h:(r+120)%360,s:t.s,l:t.l}),p({h:(r+240)%360,s:t.s,l:t.l})]}function O(e){var t=p(e).toHsl(),r=t.h;return[p(e),p({h:(r+90)%360,s:t.s,l:t.l}),p({h:(r+180)%360,s:t.s,l:t.l}),p({h:(r+270)%360,s:t.s,l:t.l})]}function k(e){var t=p(e).toHsl(),r=t.h;return[p(e),p({h:(r+72)%360,s:t.s,l:t.l}),p({h:(r+216)%360,s:t.s,l:t.l})]}function E(e,t,r){t=t||6,r=r||30;var n=p(e).toHsl(),o=360/r,i=[p(e)];for(n.h=(n.h-(o*t>>1)+720)%360;--t;)n.h=(n.h+o)%360,i.push(p(n));return i}function I(e,t){t=t||6;for(var r=p(e).toHsv(),n=r.h,o=r.s,i=r.v,a=[],c=1/t;t--;)a.push(p({h:n,s:o,v:i})),i=(i+c)%1;return a}p.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var e=this.toRgb();return(299*e.r+587*e.g+114*e.b)/1e3},getLuminance:function(){var e,t,r,n=this.toRgb();return e=n.r/255,t=n.g/255,r=n.b/255,.2126*(e<=.03928?e/12.92:o.pow((e+.055)/1.055,2.4))+.7152*(t<=.03928?t/12.92:o.pow((t+.055)/1.055,2.4))+.0722*(r<=.03928?r/12.92:o.pow((r+.055)/1.055,2.4))},setAlpha:function(e){return this._a=L(e),this._roundA=s(100*this._a)/100,this},toHsv:function(){var e=d(this._r,this._g,this._b);return{h:360*e.h,s:e.s,v:e.v,a:this._a}},toHsvString:function(){var e=d(this._r,this._g,this._b),t=s(360*e.h),r=s(100*e.s),n=s(100*e.v);return 1==this._a?"hsv("+t+", "+r+"%, "+n+"%)":"hsva("+t+", "+r+"%, "+n+"%, "+this._roundA+")"},toHsl:function(){var e=h(this._r,this._g,this._b);return{h:360*e.h,s:e.s,l:e.l,a:this._a}},toHslString:function(){var e=h(this._r,this._g,this._b),t=s(360*e.h),r=s(100*e.s),n=s(100*e.l);return 1==this._a?"hsl("+t+", "+r+"%, "+n+"%)":"hsla("+t+", "+r+"%, "+n+"%, "+this._roundA+")"},toHex:function(e){return v(this._r,this._g,this._b,e)},toHexString:function(e){return"#"+this.toHex(e)},toHex8:function(e){return function(e,t,r,n,o){var i=[U(s(e).toString(16)),U(s(t).toString(16)),U(s(r).toString(16)),U(q(n))];return o&&i[0].charAt(0)==i[0].charAt(1)&&i[1].charAt(0)==i[1].charAt(1)&&i[2].charAt(0)==i[2].charAt(1)&&i[3].charAt(0)==i[3].charAt(1)?i[0].charAt(0)+i[1].charAt(0)+i[2].charAt(0)+i[3].charAt(0):i.join("")}(this._r,this._g,this._b,this._a,e)},toHex8String:function(e){return"#"+this.toHex8(e)},toRgb:function(){return{r:s(this._r),g:s(this._g),b:s(this._b),a:this._a}},toRgbString:function(){return 1==this._a?"rgb("+s(this._r)+", "+s(this._g)+", "+s(this._b)+")":"rgba("+s(this._r)+", "+s(this._g)+", "+s(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:s(100*P(this._r,255))+"%",g:s(100*P(this._g,255))+"%",b:s(100*P(this._b,255))+"%",a:this._a}},toPercentageRgbString:function(){return 1==this._a?"rgb("+s(100*P(this._r,255))+"%, "+s(100*P(this._g,255))+"%, "+s(100*P(this._b,255))+"%)":"rgba("+s(100*P(this._r,255))+"%, "+s(100*P(this._g,255))+"%, "+s(100*P(this._b,255))+"%, "+this._roundA+")"},toName:function(){return 0===this._a?"transparent":!(this._a<1)&&(T[v(this._r,this._g,this._b,!0)]||!1)},toFilter:function(e){var t="#"+g(this._r,this._g,this._b,this._a),r=t,n=this._gradientType?"GradientType = 1, ":"";if(e){var o=p(e);r="#"+g(o._r,o._g,o._b,o._a)}return"progid:DXImageTransform.Microsoft.gradient("+n+"startColorstr="+t+",endColorstr="+r+")"},toString:function(e){var t=!!e;e=e||this._format;var r=!1,n=this._a<1&&this._a>=0;return t||!n||"hex"!==e&&"hex6"!==e&&"hex3"!==e&&"hex4"!==e&&"hex8"!==e&&"name"!==e?("rgb"===e&&(r=this.toRgbString()),"prgb"===e&&(r=this.toPercentageRgbString()),"hex"!==e&&"hex6"!==e||(r=this.toHexString()),"hex3"===e&&(r=this.toHexString(!0)),"hex4"===e&&(r=this.toHex8String(!0)),"hex8"===e&&(r=this.toHex8String()),"name"===e&&(r=this.toName()),"hsl"===e&&(r=this.toHslString()),"hsv"===e&&(r=this.toHsvString()),r||this.toHexString()):"name"===e&&0===this._a?this.toName():this.toRgbString()},clone:function(){return p(this.toString())},_applyModification:function(e,t){var r=e.apply(null,[this].concat([].slice.call(t)));return this._r=r._r,this._g=r._g,this._b=r._b,this.setAlpha(r._a),this},lighten:function(){return this._applyModification(_,arguments)},brighten:function(){return this._applyModification(w,arguments)},darken:function(){return this._applyModification(x,arguments)},desaturate:function(){return this._applyModification(m,arguments)},saturate:function(){return this._applyModification(y,arguments)},greyscale:function(){return this._applyModification(b,arguments)},spin:function(){return this._applyModification(S,arguments)},_applyCombination:function(e,t){return e.apply(null,[this].concat([].slice.call(t)))},analogous:function(){return this._applyCombination(E,arguments)},complement:function(){return this._applyCombination(A,arguments)},monochromatic:function(){return this._applyCombination(I,arguments)},splitcomplement:function(){return this._applyCombination(k,arguments)},triad:function(){return this._applyCombination(R,arguments)},tetrad:function(){return this._applyCombination(O,arguments)}},p.fromRatio=function(e,t){if("object"==typeof e){var r={};for(var n in e)e.hasOwnProperty(n)&&(r[n]="a"===n?e[n]:M(e[n]));e=r}return p(e,t)},p.equals=function(e,t){return!(!e||!t)&&p(e).toRgbString()==p(t).toRgbString()},p.random=function(){return p.fromRatio({r:f(),g:f(),b:f()})},p.mix=function(e,t,r){r=0===r?0:r||50;var n=p(e).toRgb(),o=p(t).toRgb(),i=r/100;return p({r:(o.r-n.r)*i+n.r,g:(o.g-n.g)*i+n.g,b:(o.b-n.b)*i+n.b,a:(o.a-n.a)*i+n.a})},p.readability=function(e,t){var r=p(e),n=p(t);return(o.max(r.getLuminance(),n.getLuminance())+.05)/(o.min(r.getLuminance(),n.getLuminance())+.05)},p.isReadable=function(e,t,r){var n,o,i,a,c,s=p.readability(e,t);switch(o=!1,(i=r,"AA"!==(a=((i=i||{level:"AA",size:"small"}).level||"AA").toUpperCase())&&"AAA"!==a&&(a="AA"),"small"!==(c=(i.size||"small").toLowerCase())&&"large"!==c&&(c="small"),n={level:a,size:c}).level+n.size){case"AAsmall":case"AAAlarge":o=s>=4.5;break;case"AAlarge":o=s>=3;break;case"AAAsmall":o=s>=7}return o},p.mostReadable=function(e,t,r){var n,o,i,a,c=null,s=0;o=(r=r||{}).includeFallbackColors,i=r.level,a=r.size;for(var u=0;u<t.length;u++)(n=p.readability(e,t[u]))>s&&(s=n,c=p(t[u]));return p.isReadable(e,c,{level:i,size:a})||!o?c:(r.includeFallbackColors=!1,p.mostReadable(e,["#fff","#000"],r))};var j=p.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},T=p.hexNames=function(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[e[r]]=r);return t}(j);function L(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function P(e,t){(function(e){return"string"==typeof e&&-1!=e.indexOf(".")&&1===parseFloat(e)})(e)&&(e="100%");var r=function(e){return"string"==typeof e&&-1!=e.indexOf("%")}(e);return e=u(t,l(0,parseFloat(e))),r&&(e=parseInt(e*t,10)/100),o.abs(e-t)<1e-6?1:e%t/parseFloat(t)}function C(e){return u(1,l(0,e))}function N(e){return parseInt(e,16)}function U(e){return 1==e.length?"0"+e:""+e}function M(e){return e<=1&&(e=100*e+"%"),e}function q(e){return o.round(255*parseFloat(e)).toString(16)}function F(e){return N(e)/255}var D,B,H,V=(B="[\\s|\\(]+("+(D="(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)")+")[,|\\s]+("+D+")[,|\\s]+("+D+")\\s*\\)?",H="[\\s|\\(]+("+D+")[,|\\s]+("+D+")[,|\\s]+("+D+")[,|\\s]+("+D+")\\s*\\)?",{CSS_UNIT:new RegExp(D),rgb:new RegExp("rgb"+B),rgba:new RegExp("rgba"+H),hsl:new RegExp("hsl"+B),hsla:new RegExp("hsla"+H),hsv:new RegExp("hsv"+B),hsva:new RegExp("hsva"+H),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function W(e){return!!V.CSS_UNIT.exec(e)}e.exports?e.exports=p:void 0===(n=function(){return p}.call(t,r,t,e))||(e.exports=n)}(Math)},function(e,t){var r;r=function(){return this}();try{r=r||new Function("return this")()}catch(e){"object"==typeof window&&(r=window)}e.exports=r},function(e,t,r){var n=r(5),o=r(13);e.exports=function(e,t){try{o(n,e,t)}catch(r){n[e]=t}return t}},function(e,t,r){var n=r(14),o=r(115);e.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var e,t=!1,r={};try{(e=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__").set).call(r,[]),t=r instanceof Array}catch(e){}return function(r,i){return n(r),o(i),t?e.call(r,i):r.__proto__=i,r}}():void 0)},function(e,t,r){var n=r(116),o=r(78);e.exports=Object.keys||function(e){return n(e,o)}},function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,r){var n=r(24);e.exports=n("document","documentElement")},function(e,t,r){var n=r(53);e.exports=n&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,r){var n=r(5);e.exports=n.Promise},function(e,t){e.exports=function(e,t,r){if(!(e instanceof t))throw TypeError("Incorrect "+(r?r+" ":"")+"invocation");return e}},function(e,t,r){var n=r(43),o=Function.toString;"function"!=typeof n.inspectSource&&(n.inspectSource=function(e){return o.call(e)}),e.exports=n.inspectSource},function(e,t,r){var n=r(14),o=r(23),i=r(6)("species");e.exports=function(e,t){var r,a=n(e).constructor;return void 0===a||null==(r=n(a)[i])?t:o(r)}},function(e,t,r){var n,o,i,a=r(5),c=r(8),s=r(30),u=r(79),l=r(42),f=r(86),p=r(34),h=a.location,d=a.setImmediate,v=a.clearImmediate,g=a.process,m=a.MessageChannel,y=a.Dispatch,b=0,_={},w=function(e){if(_.hasOwnProperty(e)){var t=_[e];delete _[e],t()}},x=function(e){return function(){w(e)}},S=function(e){w(e.data)},A=function(e){a.postMessage(e+"",h.protocol+"//"+h.host)};d&&v||(d=function(e){for(var t=[],r=1;arguments.length>r;)t.push(arguments[r++]);return _[++b]=function(){("function"==typeof e?e:Function(e)).apply(void 0,t)},n(b),b},v=function(e){delete _[e]},p?n=function(e){g.nextTick(x(e))}:y&&y.now?n=function(e){y.now(x(e))}:m&&!f?(i=(o=new m).port2,o.port1.onmessage=S,n=s(i.postMessage,i,1)):a.addEventListener&&"function"==typeof postMessage&&!a.importScripts&&h&&"file:"!==h.protocol&&!c(A)?(n=A,a.addEventListener("message",S,!1)):n="onreadystatechange"in l("script")?function(e){u.appendChild(l("script")).onreadystatechange=function(){u.removeChild(this),w(e)}}:function(e){setTimeout(x(e),0)}),e.exports={set:d,clear:v}},function(e,t,r){var n=r(45);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(n)},function(e,t,r){var n=r(14),o=r(10),i=r(47);e.exports=function(e,t){if(n(e),o(t)&&t.constructor===e)return t;var r=i.f(e);return(0,r.resolve)(t),r.promise}},function(e,t,r){"use strict";var n=r(7),o=r(107),i=r(59),a=r(76),c=r(46),s=r(13),u=r(36),l=r(6),f=r(28),p=r(32),h=r(89),d=h.IteratorPrototype,v=h.BUGGY_SAFARI_ITERATORS,g=l("iterator"),m=function(){return this};e.exports=function(e,t,r,l,h,y,b){o(r,t,l);var _,w,x,S=function(e){if(e===h&&E)return E;if(!v&&e in O)return O[e];switch(e){case"keys":case"values":case"entries":return function(){return new r(this,e)}}return function(){return new r(this)}},A=t+" Iterator",R=!1,O=e.prototype,k=O[g]||O["@@iterator"]||h&&O[h],E=!v&&k||S(h),I="Array"==t&&O.entries||k;if(I&&(_=i(I.call(new e)),d!==Object.prototype&&_.next&&(f||i(_)===d||(a?a(_,d):"function"!=typeof _[g]&&s(_,g,m)),c(_,A,!0,!0),f&&(p[A]=m))),"values"==h&&k&&"values"!==k.name&&(R=!0,E=function(){return k.call(this)}),f&&!b||O[g]===E||s(O,g,E),p[t]=E,h)if(w={values:S("values"),keys:y?E:S("keys"),entries:S("entries")},b)for(x in w)(v||R||!(x in O))&&u(O,x,w[x]);else n({target:t,proto:!0,forced:v||R},w);return w}},function(e,t,r){"use strict";var n,o,i,a=r(8),c=r(59),s=r(13),u=r(12),l=r(6),f=r(28),p=l("iterator"),h=!1;[].keys&&("next"in(i=[].keys())?(o=c(c(i)))!==Object.prototype&&(n=o):h=!0);var d=null==n||a((function(){var e={};return n[p].call(e)!==e}));d&&(n={}),f&&!d||u(n,p)||s(n,p,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:h}},function(e,t,r){var n=r(91);e.exports=n},function(e,t,r){var n=r(92),o=r(94),i=Array.prototype,a=String.prototype;e.exports=function(e){var t=e.includes;return e===i||e instanceof Array&&t===i.includes?n:"string"==typeof e||e===a||e instanceof String&&t===a.includes?o:t}},function(e,t,r){r(93);var n=r(19);e.exports=n("Array").includes},function(e,t,r){"use strict";var n=r(7),o=r(52).includes,i=r(55);n({target:"Array",proto:!0},{includes:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),i("includes")},function(e,t,r){r(95);var n=r(19);e.exports=n("String").includes},function(e,t,r){"use strict";var n=r(7),o=r(71),i=r(22);n({target:"String",proto:!0,forced:!r(72)("includes")},{includes:function(e){return!!~String(i(this)).indexOf(o(e),arguments.length>1?arguments[1]:void 0)}})},function(e,t,r){var n=r(10),o=r(21),i=r(6)("match");e.exports=function(e){var t;return n(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},function(e,t,r){var n=r(30),o=r(38),i=r(40),a=r(29),c=r(98),s=[].push,u=function(e){var t=1==e,r=2==e,u=3==e,l=4==e,f=6==e,p=7==e,h=5==e||f;return function(d,v,g,m){for(var y,b,_=i(d),w=o(_),x=n(v,g,3),S=a(w.length),A=0,R=m||c,O=t?R(d,S):r||p?R(d,0):void 0;S>A;A++)if((h||A in w)&&(b=x(y=w[A],A,_),e))if(t)O[A]=b;else if(b)switch(e){case 3:return!0;case 5:return y;case 6:return A;case 2:s.call(O,y)}else switch(e){case 4:return!1;case 7:s.call(O,y)}return f?-1:u||l?l:O}};e.exports={forEach:u(0),map:u(1),filter:u(2),some:u(3),every:u(4),find:u(5),findIndex:u(6),filterOut:u(7)}},function(e,t,r){var n=r(10),o=r(67),i=r(6)("species");e.exports=function(e,t){var r;return o(e)&&("function"!=typeof(r=e.constructor)||r!==Array&&!o(r.prototype)?n(r)&&null===(r=r[i])&&(r=void 0):r=void 0),new(void 0===r?Array:r)(0===t?0:t)}},function(e,t){e.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},,function(e,t,r){var n=r(15),o=r(31),i=r(14),a=r(77);e.exports=n?Object.defineProperties:function(e,t){i(e);for(var r,n=a(t),c=n.length,s=0;c>s;)o.f(e,r=n[s++],t[r]);return e}},function(e,t,r){var n=r(6),o=r(32),i=n("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(o.Array===e||a[i]===e)}},function(e,t,r){var n=r(14);e.exports=function(e){var t=e.return;if(void 0!==t)return n(t.call(e)).value}},function(e,t,r){var n=r(36);e.exports=function(e,t,r){for(var o in t)r&&r.unsafe&&e[o]?e[o]=t[o]:n(e,o,t[o],r);return e}},function(e,t,r){"use strict";var n=r(106).charAt,o=r(48),i=r(88),a=o.set,c=o.getterFor("String Iterator");i(String,"String",(function(e){a(this,{type:"String Iterator",string:String(e),index:0})}),(function(){var e,t=c(this),r=t.string,o=t.index;return o>=r.length?{value:void 0,done:!0}:(e=n(r,o),t.index+=e.length,{value:e,done:!1})}))},function(e,t,r){var n=r(41),o=r(22),i=function(e){return function(t,r){var i,a,c=String(o(t)),s=n(r),u=c.length;return s<0||s>=u?e?"":void 0:(i=c.charCodeAt(s))<55296||i>56319||s+1===u||(a=c.charCodeAt(s+1))<56320||a>57343?e?c.charAt(s):i:e?c.slice(s,s+2):a-56320+(i-55296<<10)+65536}};e.exports={codeAt:i(!1),charAt:i(!0)}},function(e,t,r){"use strict";var n=r(89).IteratorPrototype,o=r(68),i=r(26),a=r(46),c=r(32),s=function(){return this};e.exports=function(e,t,r){var u=t+" Iterator";return e.prototype=o(n,{next:i(1,r)}),a(e,u,!1,!0),c[u]=s,e}},function(e,t,r){"use strict";var n=r(27),o=r(55),i=r(32),a=r(48),c=r(88),s=a.set,u=a.getterFor("Array Iterator");e.exports=c(Array,"Array",(function(e,t){s(this,{type:"Array Iterator",target:n(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,r=e.kind,n=e.index++;return!t||n>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==r?{value:n,done:!1}:"values"==r?{value:t[n],done:!1}:{value:[n,t[n]],done:!1}}),"values"),i.Arguments=i.Array,o("keys"),o("values"),o("entries")},function(e,t,r){"use strict";var n=r(39),o=r(31),i=r(26);e.exports=function(e,t,r){var a=n(t);a in e?o.f(e,a,i(0,r)):e[a]=r}},,function(e,t,r){var n=r(112);e.exports=n},function(e,t,r){r(113),r(117),r(118),r(126),r(127),r(128),r(105),r(129);var n=r(18);e.exports=n.Promise},function(e,t,r){"use strict";var n=r(7),o=r(59),i=r(76),a=r(68),c=r(13),s=r(26),u=r(44),l=function(e,t){var r=this;if(!(r instanceof l))return new l(e,t);i&&(r=i(new Error(void 0),o(r))),void 0!==t&&c(r,"message",String(t));var n=[];return u(e,n.push,{that:n}),c(r,"errors",n),r};l.prototype=a(Error.prototype,{constructor:s(5,l),message:s(5,""),name:s(5,"AggregateError")}),n({global:!0},{AggregateError:l})},function(e,t,r){var n=r(8);e.exports=!n((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))},function(e,t,r){var n=r(10);e.exports=function(e){if(!n(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,r){var n=r(12),o=r(27),i=r(52).indexOf,a=r(64);e.exports=function(e,t){var r,c=o(e),s=0,u=[];for(r in c)!n(a,r)&&n(c,r)&&u.push(r);for(;t.length>s;)n(c,r=t[s++])&&(~i(u,r)||u.push(r));return u}},function(e,t){},function(e,t,r){"use strict";var n,o,i,a,c=r(7),s=r(28),u=r(5),l=r(24),f=r(81),p=r(36),h=r(104),d=r(46),v=r(120),g=r(10),m=r(23),y=r(82),b=r(83),_=r(44),w=r(121),x=r(84),S=r(85).set,A=r(122),R=r(87),O=r(124),k=r(47),E=r(66),I=r(48),j=r(58),T=r(6),L=r(34),P=r(35),C=T("species"),N="Promise",U=I.get,M=I.set,q=I.getterFor(N),F=f,D=u.TypeError,B=u.document,H=u.process,V=l("fetch"),W=k.f,z=W,G=!!(B&&B.createEvent&&u.dispatchEvent),Y="function"==typeof PromiseRejectionEvent,X=j(N,(function(){if(b(F)===String(F)){if(66===P)return!0;if(!L&&!Y)return!0}if(s&&!F.prototype.finally)return!0;if(P>=51&&/native code/.test(F))return!1;var e=F.resolve(1),t=function(e){e((function(){}),(function(){}))};return(e.constructor={})[C]=t,!(e.then((function(){}))instanceof t)})),$=X||!w((function(e){F.all(e).catch((function(){}))})),J=function(e){var t;return!(!g(e)||"function"!=typeof(t=e.then))&&t},Z=function(e,t){if(!e.notified){e.notified=!0;var r=e.reactions;A((function(){for(var n=e.value,o=1==e.state,i=0;r.length>i;){var a,c,s,u=r[i++],l=o?u.ok:u.fail,f=u.resolve,p=u.reject,h=u.domain;try{l?(o||(2===e.rejection&&te(e),e.rejection=1),!0===l?a=n:(h&&h.enter(),a=l(n),h&&(h.exit(),s=!0)),a===u.promise?p(D("Promise-chain cycle")):(c=J(a))?c.call(a,f,p):f(a)):p(n)}catch(e){h&&!s&&h.exit(),p(e)}}e.reactions=[],e.notified=!1,t&&!e.rejection&&K(e)}))}},Q=function(e,t,r){var n,o;G?((n=B.createEvent("Event")).promise=t,n.reason=r,n.initEvent(e,!1,!0),u.dispatchEvent(n)):n={promise:t,reason:r},!Y&&(o=u["on"+e])?o(n):"unhandledrejection"===e&&O("Unhandled promise rejection",r)},K=function(e){S.call(u,(function(){var t,r=e.facade,n=e.value;if(ee(e)&&(t=E((function(){L?H.emit("unhandledRejection",n,r):Q("unhandledrejection",r,n)})),e.rejection=L||ee(e)?2:1,t.error))throw t.value}))},ee=function(e){return 1!==e.rejection&&!e.parent},te=function(e){S.call(u,(function(){var t=e.facade;L?H.emit("rejectionHandled",t):Q("rejectionhandled",t,e.value)}))},re=function(e,t,r){return function(n){e(t,n,r)}},ne=function(e,t,r){e.done||(e.done=!0,r&&(e=r),e.value=t,e.state=2,Z(e,!0))},oe=function(e,t,r){if(!e.done){e.done=!0,r&&(e=r);try{if(e.facade===t)throw D("Promise can't be resolved itself");var n=J(t);n?A((function(){var r={done:!1};try{n.call(t,re(oe,r,e),re(ne,r,e))}catch(t){ne(r,t,e)}})):(e.value=t,e.state=1,Z(e,!1))}catch(t){ne({done:!1},t,e)}}};X&&(F=function(e){y(this,F,N),m(e),n.call(this);var t=U(this);try{e(re(oe,t),re(ne,t))}catch(e){ne(t,e)}},(n=function(e){M(this,{type:N,done:!1,notified:!1,parent:!1,reactions:[],rejection:!1,state:0,value:void 0})}).prototype=h(F.prototype,{then:function(e,t){var r=q(this),n=W(x(this,F));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=L?H.domain:void 0,r.parent=!0,r.reactions.push(n),0!=r.state&&Z(r,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),o=function(){var e=new n,t=U(e);this.promise=e,this.resolve=re(oe,t),this.reject=re(ne,t)},k.f=W=function(e){return e===F||e===i?new o(e):z(e)},s||"function"!=typeof f||(a=f.prototype.then,p(f.prototype,"then",(function(e,t){var r=this;return new F((function(e,t){a.call(r,e,t)})).then(e,t)}),{unsafe:!0}),"function"==typeof V&&c({global:!0,enumerable:!0,forced:!0},{fetch:function(e){return R(F,V.apply(u,arguments))}}))),c({global:!0,wrap:!0,forced:X},{Promise:F}),d(F,N,!1,!0),v(N),i=l(N),c({target:N,stat:!0,forced:X},{reject:function(e){var t=W(this);return t.reject.call(void 0,e),t.promise}}),c({target:N,stat:!0,forced:s||X},{resolve:function(e){return R(s&&this===i?F:this,e)}}),c({target:N,stat:!0,forced:$},{all:function(e){var t=this,r=W(t),n=r.resolve,o=r.reject,i=E((function(){var r=m(t.resolve),i=[],a=0,c=1;_(e,(function(e){var s=a++,u=!1;i.push(void 0),c++,r.call(t,e).then((function(e){u||(u=!0,i[s]=e,--c||n(i))}),o)})),--c||n(i)}));return i.error&&o(i.value),r.promise},race:function(e){var t=this,r=W(t),n=r.reject,o=E((function(){var o=m(t.resolve);_(e,(function(e){o.call(t,e).then(r.resolve,n)}))}));return o.error&&n(o.value),r.promise}})},function(e,t,r){"use strict";var n=r(65),o=r(54);e.exports=n?{}.toString:function(){return"[object "+o(this)+"]"}},function(e,t,r){"use strict";var n=r(24),o=r(31),i=r(6),a=r(15),c=i("species");e.exports=function(e){var t=n(e),r=o.f;a&&t&&!t[c]&&r(t,c,{configurable:!0,get:function(){return this}})}},function(e,t,r){var n=r(6)("iterator"),o=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){o=!0}};a[n]=function(){return this},Array.from(a,(function(){throw 2}))}catch(e){}e.exports=function(e,t){if(!t&&!o)return!1;var r=!1;try{var i={};i[n]=function(){return{next:function(){return{done:r=!0}}}},e(i)}catch(e){}return r}},function(e,t,r){var n,o,i,a,c,s,u,l,f=r(5),p=r(50).f,h=r(85).set,d=r(86),v=r(123),g=r(34),m=f.MutationObserver||f.WebKitMutationObserver,y=f.document,b=f.process,_=f.Promise,w=p(f,"queueMicrotask"),x=w&&w.value;x||(n=function(){var e,t;for(g&&(e=b.domain)&&e.exit();o;){t=o.fn,o=o.next;try{t()}catch(e){throw o?a():i=void 0,e}}i=void 0,e&&e.enter()},d||g||v||!m||!y?_&&_.resolve?(u=_.resolve(void 0),l=u.then,a=function(){l.call(u,n)}):a=g?function(){b.nextTick(n)}:function(){h.call(f,n)}:(c=!0,s=y.createTextNode(""),new m(n).observe(s,{characterData:!0}),a=function(){s.data=c=!c})),e.exports=x||function(e){var t={fn:e,next:void 0};i&&(i.next=t),o||(o=t,a()),i=t}},function(e,t,r){var n=r(45);e.exports=/web0s(?!.*chrome)/i.test(n)},function(e,t,r){var n=r(5);e.exports=function(e,t){var r=n.console;r&&r.error&&(1===arguments.length?r.error(e):r.error(e,t))}},function(e,t,r){var n=r(5),o=r(83),i=n.WeakMap;e.exports="function"==typeof i&&/native code/.test(o(i))},function(e,t,r){"use strict";var n=r(7),o=r(23),i=r(47),a=r(66),c=r(44);n({target:"Promise",stat:!0},{allSettled:function(e){var t=this,r=i.f(t),n=r.resolve,s=r.reject,u=a((function(){var r=o(t.resolve),i=[],a=0,s=1;c(e,(function(e){var o=a++,c=!1;i.push(void 0),s++,r.call(t,e).then((function(e){c||(c=!0,i[o]={status:"fulfilled",value:e},--s||n(i))}),(function(e){c||(c=!0,i[o]={status:"rejected",reason:e},--s||n(i))}))})),--s||n(i)}));return u.error&&s(u.value),r.promise}})},function(e,t,r){"use strict";var n=r(7),o=r(23),i=r(24),a=r(47),c=r(66),s=r(44);n({target:"Promise",stat:!0},{any:function(e){var t=this,r=a.f(t),n=r.resolve,u=r.reject,l=c((function(){var r=o(t.resolve),a=[],c=0,l=1,f=!1;s(e,(function(e){var o=c++,s=!1;a.push(void 0),l++,r.call(t,e).then((function(e){s||f||(f=!0,n(e))}),(function(e){s||f||(s=!0,a[o]=e,--l||u(new(i("AggregateError"))(a,"No one promise resolved")))}))})),--l||u(new(i("AggregateError"))(a,"No one promise resolved"))}));return l.error&&u(l.value),r.promise}})},function(e,t,r){"use strict";var n=r(7),o=r(28),i=r(81),a=r(8),c=r(24),s=r(84),u=r(87),l=r(36);n({target:"Promise",proto:!0,real:!0,forced:!!i&&a((function(){i.prototype.finally.call({then:function(){}},(function(){}))}))},{finally:function(e){var t=s(this,c("Promise")),r="function"==typeof e;return this.then(r?function(r){return u(t,e()).then((function(){return r}))}:e,r?function(r){return u(t,e()).then((function(){throw r}))}:e)}}),o||"function"!=typeof i||i.prototype.finally||l(i.prototype,"finally",c("Promise").prototype.finally)},function(e,t,r){r(108);var n=r(130),o=r(5),i=r(54),a=r(13),c=r(32),s=r(6)("toStringTag");for(var u in n){var l=o[u],f=l&&l.prototype;f&&i(f)!==s&&a(f,s,u),c[u]=c.Array}},function(e,t){e.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(e,t,r){var n=r(132);e.exports=n},function(e,t,r){var n=r(133),o=Array.prototype;e.exports=function(e){var t=e.slice;return e===o||e instanceof Array&&t===o.slice?n:t}},function(e,t,r){r(134);var n=r(19);e.exports=n("Array").slice},function(e,t,r){"use strict";var n=r(7),o=r(10),i=r(67),a=r(63),c=r(29),s=r(27),u=r(109),l=r(6),f=r(70)("slice"),p=l("species"),h=[].slice,d=Math.max;n({target:"Array",proto:!0,forced:!f},{slice:function(e,t){var r,n,l,f=s(this),v=c(f.length),g=a(e,v),m=a(void 0===t?v:t,v);if(i(f)&&("function"!=typeof(r=f.constructor)||r!==Array&&!i(r.prototype)?o(r)&&null===(r=r[p])&&(r=void 0):r=void 0,r===Array||void 0===r))return h.call(f,g,m);for(n=new(void 0===r?Array:r)(d(m-g,0)),l=0;g<m;g++,l++)g in f&&u(n,l,f[g]);return n.length=l,n}})},function(e,t,r){var n=r(22),o="["+r(99)+"]",i=RegExp("^"+o+o+"*"),a=RegExp(o+o+"*$"),c=function(e){return function(t){var r=String(n(t));return 1&e&&(r=r.replace(i,"")),2&e&&(r=r.replace(a,"")),r}};e.exports={start:c(1),end:c(2),trim:c(3)}},,,,function(e,t,r){"use strict";var n=r(8);e.exports=function(e,t){var r=[][e];return!!r&&n((function(){r.call(null,t||function(){throw 1},1)}))}},function(e,t,r){var n=r(8),o=r(6),i=r(28),a=o("iterator");e.exports=!n((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),t=e.searchParams,r="";return e.pathname="c%20d",t.forEach((function(e,n){t.delete("b"),r+=n+e})),i&&!e.toJSON||!t.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==t.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!t[a]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://тест").host||"#%D0%B1"!==new URL("http://a#б").hash||"a1c3"!==r||"x"!==new URL("http://x",void 0).host}))},function(e,t,r){"use strict";var n=r(15),o=r(8),i=r(77),a=r(193),c=r(57),s=r(40),u=r(38),l=Object.assign,f=Object.defineProperty;e.exports=!l||o((function(){if(n&&1!==l({b:1},l(f({},"a",{enumerable:!0,get:function(){f(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},t={},r=Symbol();return e[r]=7,"abcdefghijklmnopqrst".split("").forEach((function(e){t[e]=e})),7!=l({},e)[r]||"abcdefghijklmnopqrst"!=i(l({},t)).join("")}))?function(e,t){for(var r=s(e),o=arguments.length,l=1,f=a.f,p=c.f;o>l;)for(var h,d=u(arguments[l++]),v=f?i(d).concat(f(d)):i(d),g=v.length,m=0;g>m;)h=v[m++],n&&!p.call(d,h)||(r[h]=d[h]);return r}:l},function(e,t,r){"use strict";r(108);var n=r(7),o=r(24),i=r(140),a=r(36),c=r(104),s=r(46),u=r(107),l=r(48),f=r(82),p=r(12),h=r(30),d=r(54),v=r(14),g=r(10),m=r(68),y=r(26),b=r(197),_=r(69),w=r(6),x=o("fetch"),S=o("Headers"),A=w("iterator"),R=l.set,O=l.getterFor("URLSearchParams"),k=l.getterFor("URLSearchParamsIterator"),E=/\+/g,I=Array(4),j=function(e){return I[e-1]||(I[e-1]=RegExp("((?:%[\\da-f]{2}){"+e+"})","gi"))},T=function(e){try{return decodeURIComponent(e)}catch(t){return e}},L=function(e){var t=e.replace(E," "),r=4;try{return decodeURIComponent(t)}catch(e){for(;r;)t=t.replace(j(r--),T);return t}},P=/[!'()~]|%20/g,C={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},N=function(e){return C[e]},U=function(e){return encodeURIComponent(e).replace(P,N)},M=function(e,t){if(t)for(var r,n,o=t.split("&"),i=0;i<o.length;)(r=o[i++]).length&&(n=r.split("="),e.push({key:L(n.shift()),value:L(n.join("="))}))},q=function(e){this.entries.length=0,M(this.entries,e)},F=function(e,t){if(e<t)throw TypeError("Not enough arguments")},D=u((function(e,t){R(this,{type:"URLSearchParamsIterator",iterator:b(O(e).entries),kind:t})}),"Iterator",(function(){var e=k(this),t=e.kind,r=e.iterator.next(),n=r.value;return r.done||(r.value="keys"===t?n.key:"values"===t?n.value:[n.key,n.value]),r})),B=function(){f(this,B,"URLSearchParams");var e,t,r,n,o,i,a,c,s,u=arguments.length>0?arguments[0]:void 0,l=this,h=[];if(R(l,{type:"URLSearchParams",entries:h,updateURL:function(){},updateSearchParams:q}),void 0!==u)if(g(u))if("function"==typeof(e=_(u)))for(r=(t=e.call(u)).next;!(n=r.call(t)).done;){if((a=(i=(o=b(v(n.value))).next).call(o)).done||(c=i.call(o)).done||!i.call(o).done)throw TypeError("Expected sequence with length 2");h.push({key:a.value+"",value:c.value+""})}else for(s in u)p(u,s)&&h.push({key:s,value:u[s]+""});else M(h,"string"==typeof u?"?"===u.charAt(0)?u.slice(1):u:u+"")},H=B.prototype;c(H,{append:function(e,t){F(arguments.length,2);var r=O(this);r.entries.push({key:e+"",value:t+""}),r.updateURL()},delete:function(e){F(arguments.length,1);for(var t=O(this),r=t.entries,n=e+"",o=0;o<r.length;)r[o].key===n?r.splice(o,1):o++;t.updateURL()},get:function(e){F(arguments.length,1);for(var t=O(this).entries,r=e+"",n=0;n<t.length;n++)if(t[n].key===r)return t[n].value;return null},getAll:function(e){F(arguments.length,1);for(var t=O(this).entries,r=e+"",n=[],o=0;o<t.length;o++)t[o].key===r&&n.push(t[o].value);return n},has:function(e){F(arguments.length,1);for(var t=O(this).entries,r=e+"",n=0;n<t.length;)if(t[n++].key===r)return!0;return!1},set:function(e,t){F(arguments.length,1);for(var r,n=O(this),o=n.entries,i=!1,a=e+"",c=t+"",s=0;s<o.length;s++)(r=o[s]).key===a&&(i?o.splice(s--,1):(i=!0,r.value=c));i||o.push({key:a,value:c}),n.updateURL()},sort:function(){var e,t,r,n=O(this),o=n.entries,i=o.slice();for(o.length=0,r=0;r<i.length;r++){for(e=i[r],t=0;t<r;t++)if(o[t].key>e.key){o.splice(t,0,e);break}t===r&&o.push(e)}n.updateURL()},forEach:function(e){for(var t,r=O(this).entries,n=h(e,arguments.length>1?arguments[1]:void 0,3),o=0;o<r.length;)n((t=r[o++]).value,t.key,this)},keys:function(){return new D(this,"keys")},values:function(){return new D(this,"values")},entries:function(){return new D(this,"entries")}},{enumerable:!0}),a(H,A,H.entries),a(H,"toString",(function(){for(var e,t=O(this).entries,r=[],n=0;n<t.length;)e=t[n++],r.push(U(e.key)+"="+U(e.value));return r.join("&")}),{enumerable:!0}),s(B,"URLSearchParams"),n({global:!0,forced:!i},{URLSearchParams:B}),i||"function"!=typeof x||"function"!=typeof S||n({global:!0,enumerable:!0,forced:!0},{fetch:function(e){var t,r,n,o=[e];return arguments.length>1&&(g(t=arguments[1])&&(r=t.body,"URLSearchParams"===d(r)&&((n=t.headers?new S(t.headers):new S).has("content-type")||n.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"),t=m(t,{body:y(0,String(r)),headers:y(0,n)}))),o.push(t)),x.apply(this,o)}}),e.exports={URLSearchParams:B,getState:O}},,,,,,function(e,t,r){e.exports=r(171)},function(e,t,r){e.exports=r(175)},function(e,t,r){e.exports=r(180)},function(e,t,r){e.exports=r(185)},function(e,t,r){e.exports=r(190)},function(e,t,r){e.exports=r(199)},function(e,t,r){e.exports=r(203)},,,,,,,,,,,,,,,,,function(e,t,r){var n=r(172);e.exports=n},function(e,t,r){var n=r(173),o=Array.prototype;e.exports=function(e){var t=e.find;return e===o||e instanceof Array&&t===o.find?n:t}},function(e,t,r){r(174);var n=r(19);e.exports=n("Array").find},function(e,t,r){"use strict";var n=r(7),o=r(97).find,i=r(55),a=!0;"find"in[]&&Array(1).find((function(){a=!1})),n({target:"Array",proto:!0,forced:a},{find:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),i("find")},function(e,t,r){var n=r(176);e.exports=n},function(e,t,r){var n=r(177),o=String.prototype;e.exports=function(e){var t=e.trim;return"string"==typeof e||e===o||e instanceof String&&t===o.trim?n:t}},function(e,t,r){r(178);var n=r(19);e.exports=n("String").trim},function(e,t,r){"use strict";var n=r(7),o=r(135).trim;n({target:"String",proto:!0,forced:r(179)("trim")},{trim:function(){return o(this)}})},function(e,t,r){var n=r(8),o=r(99);e.exports=function(e){return n((function(){return!!o[e]()||"​…᠎"!="​…᠎"[e]()||o[e].name!==e}))}},function(e,t,r){var n=r(181);e.exports=n},function(e,t,r){var n=r(182),o=Array.prototype;e.exports=function(e){var t=e.reduce;return e===o||e instanceof Array&&t===o.reduce?n:t}},function(e,t,r){r(183);var n=r(19);e.exports=n("Array").reduce},function(e,t,r){"use strict";var n=r(7),o=r(184).left,i=r(139),a=r(35),c=r(34);n({target:"Array",proto:!0,forced:!i("reduce")||!c&&a>79&&a<83},{reduce:function(e){return o(this,e,arguments.length,arguments.length>1?arguments[1]:void 0)}})},function(e,t,r){var n=r(23),o=r(40),i=r(38),a=r(29),c=function(e){return function(t,r,c,s){n(r);var u=o(t),l=i(u),f=a(u.length),p=e?f-1:0,h=e?-1:1;if(c<2)for(;;){if(p in l){s=l[p],p+=h;break}if(p+=h,e?p<0:f<=p)throw TypeError("Reduce of empty array with no initial value")}for(;e?p>=0:f>p;p+=h)p in l&&(s=r(s,l[p],p,u));return s}};e.exports={left:c(!1),right:c(!0)}},function(e,t,r){var n=r(186);e.exports=n},function(e,t,r){var n=r(187),o=String.prototype;e.exports=function(e){var t=e.startsWith;return"string"==typeof e||e===o||e instanceof String&&t===o.startsWith?n:t}},function(e,t,r){r(188);var n=r(19);e.exports=n("String").startsWith},function(e,t,r){"use strict";var n,o=r(7),i=r(50).f,a=r(29),c=r(71),s=r(22),u=r(72),l=r(28),f="".startsWith,p=Math.min,h=u("startsWith");o({target:"String",proto:!0,forced:!(!l&&!h&&(n=i(String.prototype,"startsWith"),n&&!n.writable)||h)},{startsWith:function(e){var t=String(s(this));c(e);var r=a(p(arguments.length>1?arguments[1]:void 0,t.length)),n=String(e);return f?f.call(t,n,r):t.slice(r,r+n.length)===n}})},,function(e,t,r){var n=r(191);e.exports=n},function(e,t,r){r(192),r(198),r(142);var n=r(18);e.exports=n.URL},function(e,t,r){"use strict";r(105);var n,o=r(7),i=r(15),a=r(140),c=r(5),s=r(101),u=r(36),l=r(82),f=r(12),p=r(141),h=r(194),d=r(106).codeAt,v=r(196),g=r(46),m=r(142),y=r(48),b=c.URL,_=m.URLSearchParams,w=m.getState,x=y.set,S=y.getterFor("URL"),A=Math.floor,R=Math.pow,O=/[A-Za-z]/,k=/[\d+-.A-Za-z]/,E=/\d/,I=/^(0x|0X)/,j=/^[0-7]+$/,T=/^\d+$/,L=/^[\dA-Fa-f]+$/,P=/[\u0000\t\u000A\u000D #%/:?@[\\]]/,C=/[\u0000\t\u000A\u000D #/:?@[\\]]/,N=/^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g,U=/[\t\u000A\u000D]/g,M=function(e,t){var r,n,o;if("["==t.charAt(0)){if("]"!=t.charAt(t.length-1))return"Invalid host";if(!(r=F(t.slice(1,-1))))return"Invalid host";e.host=r}else if(Y(e)){if(t=v(t),P.test(t))return"Invalid host";if(null===(r=q(t)))return"Invalid host";e.host=r}else{if(C.test(t))return"Invalid host";for(r="",n=h(t),o=0;o<n.length;o++)r+=z(n[o],B);e.host=r}},q=function(e){var t,r,n,o,i,a,c,s=e.split(".");if(s.length&&""==s[s.length-1]&&s.pop(),(t=s.length)>4)return e;for(r=[],n=0;n<t;n++){if(""==(o=s[n]))return e;if(i=10,o.length>1&&"0"==o.charAt(0)&&(i=I.test(o)?16:8,o=o.slice(8==i?1:2)),""===o)a=0;else{if(!(10==i?T:8==i?j:L).test(o))return e;a=parseInt(o,i)}r.push(a)}for(n=0;n<t;n++)if(a=r[n],n==t-1){if(a>=R(256,5-t))return null}else if(a>255)return null;for(c=r.pop(),n=0;n<r.length;n++)c+=r[n]*R(256,3-n);return c},F=function(e){var t,r,n,o,i,a,c,s=[0,0,0,0,0,0,0,0],u=0,l=null,f=0,p=function(){return e.charAt(f)};if(":"==p()){if(":"!=e.charAt(1))return;f+=2,l=++u}for(;p();){if(8==u)return;if(":"!=p()){for(t=r=0;r<4&&L.test(p());)t=16*t+parseInt(p(),16),f++,r++;if("."==p()){if(0==r)return;if(f-=r,u>6)return;for(n=0;p();){if(o=null,n>0){if(!("."==p()&&n<4))return;f++}if(!E.test(p()))return;for(;E.test(p());){if(i=parseInt(p(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(o>255)return;f++}s[u]=256*s[u]+o,2!=++n&&4!=n||u++}if(4!=n)return;break}if(":"==p()){if(f++,!p())return}else if(p())return;s[u++]=t}else{if(null!==l)return;f++,l=++u}}if(null!==l)for(a=u-l,u=7;0!=u&&a>0;)c=s[u],s[u--]=s[l+a-1],s[l+--a]=c;else if(8!=u)return;return s},D=function(e){var t,r,n,o;if("number"==typeof e){for(t=[],r=0;r<4;r++)t.unshift(e%256),e=A(e/256);return t.join(".")}if("object"==typeof e){for(t="",n=function(e){for(var t=null,r=1,n=null,o=0,i=0;i<8;i++)0!==e[i]?(o>r&&(t=n,r=o),n=null,o=0):(null===n&&(n=i),++o);return o>r&&(t=n,r=o),t}(e),r=0;r<8;r++)o&&0===e[r]||(o&&(o=!1),n===r?(t+=r?":":"::",o=!0):(t+=e[r].toString(16),r<7&&(t+=":")));return"["+t+"]"}return e},B={},H=p({},B,{" ":1,'"':1,"<":1,">":1,"`":1}),V=p({},H,{"#":1,"?":1,"{":1,"}":1}),W=p({},V,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),z=function(e,t){var r=d(e,0);return r>32&&r<127&&!f(t,e)?e:encodeURIComponent(e)},G={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Y=function(e){return f(G,e.scheme)},X=function(e){return""!=e.username||""!=e.password},$=function(e){return!e.host||e.cannotBeABaseURL||"file"==e.scheme},J=function(e,t){var r;return 2==e.length&&O.test(e.charAt(0))&&(":"==(r=e.charAt(1))||!t&&"|"==r)},Z=function(e){var t;return e.length>1&&J(e.slice(0,2))&&(2==e.length||"/"===(t=e.charAt(2))||"\\"===t||"?"===t||"#"===t)},Q=function(e){var t=e.path,r=t.length;!r||"file"==e.scheme&&1==r&&J(t[0],!0)||t.pop()},K=function(e){return"."===e||"%2e"===e.toLowerCase()},ee={},te={},re={},ne={},oe={},ie={},ae={},ce={},se={},ue={},le={},fe={},pe={},he={},de={},ve={},ge={},me={},ye={},be={},_e={},we=function(e,t,r,o){var i,a,c,s,u,l=r||ee,p=0,d="",v=!1,g=!1,m=!1;for(r||(e.scheme="",e.username="",e.password="",e.host=null,e.port=null,e.path=[],e.query=null,e.fragment=null,e.cannotBeABaseURL=!1,t=t.replace(N,"")),t=t.replace(U,""),i=h(t);p<=i.length;){switch(a=i[p],l){case ee:if(!a||!O.test(a)){if(r)return"Invalid scheme";l=re;continue}d+=a.toLowerCase(),l=te;break;case te:if(a&&(k.test(a)||"+"==a||"-"==a||"."==a))d+=a.toLowerCase();else{if(":"!=a){if(r)return"Invalid scheme";d="",l=re,p=0;continue}if(r&&(Y(e)!=f(G,d)||"file"==d&&(X(e)||null!==e.port)||"file"==e.scheme&&!e.host))return;if(e.scheme=d,r)return void(Y(e)&&G[e.scheme]==e.port&&(e.port=null));d="","file"==e.scheme?l=he:Y(e)&&o&&o.scheme==e.scheme?l=ne:Y(e)?l=ce:"/"==i[p+1]?(l=oe,p++):(e.cannotBeABaseURL=!0,e.path.push(""),l=ye)}break;case re:if(!o||o.cannotBeABaseURL&&"#"!=a)return"Invalid scheme";if(o.cannotBeABaseURL&&"#"==a){e.scheme=o.scheme,e.path=o.path.slice(),e.query=o.query,e.fragment="",e.cannotBeABaseURL=!0,l=_e;break}l="file"==o.scheme?he:ie;continue;case ne:if("/"!=a||"/"!=i[p+1]){l=ie;continue}l=se,p++;break;case oe:if("/"==a){l=ue;break}l=me;continue;case ie:if(e.scheme=o.scheme,a==n)e.username=o.username,e.password=o.password,e.host=o.host,e.port=o.port,e.path=o.path.slice(),e.query=o.query;else if("/"==a||"\\"==a&&Y(e))l=ae;else if("?"==a)e.username=o.username,e.password=o.password,e.host=o.host,e.port=o.port,e.path=o.path.slice(),e.query="",l=be;else{if("#"!=a){e.username=o.username,e.password=o.password,e.host=o.host,e.port=o.port,e.path=o.path.slice(),e.path.pop(),l=me;continue}e.username=o.username,e.password=o.password,e.host=o.host,e.port=o.port,e.path=o.path.slice(),e.query=o.query,e.fragment="",l=_e}break;case ae:if(!Y(e)||"/"!=a&&"\\"!=a){if("/"!=a){e.username=o.username,e.password=o.password,e.host=o.host,e.port=o.port,l=me;continue}l=ue}else l=se;break;case ce:if(l=se,"/"!=a||"/"!=d.charAt(p+1))continue;p++;break;case se:if("/"!=a&&"\\"!=a){l=ue;continue}break;case ue:if("@"==a){v&&(d="%40"+d),v=!0,c=h(d);for(var y=0;y<c.length;y++){var b=c[y];if(":"!=b||m){var _=z(b,W);m?e.password+=_:e.username+=_}else m=!0}d=""}else if(a==n||"/"==a||"?"==a||"#"==a||"\\"==a&&Y(e)){if(v&&""==d)return"Invalid authority";p-=h(d).length+1,d="",l=le}else d+=a;break;case le:case fe:if(r&&"file"==e.scheme){l=ve;continue}if(":"!=a||g){if(a==n||"/"==a||"?"==a||"#"==a||"\\"==a&&Y(e)){if(Y(e)&&""==d)return"Invalid host";if(r&&""==d&&(X(e)||null!==e.port))return;if(s=M(e,d))return s;if(d="",l=ge,r)return;continue}"["==a?g=!0:"]"==a&&(g=!1),d+=a}else{if(""==d)return"Invalid host";if(s=M(e,d))return s;if(d="",l=pe,r==fe)return}break;case pe:if(!E.test(a)){if(a==n||"/"==a||"?"==a||"#"==a||"\\"==a&&Y(e)||r){if(""!=d){var w=parseInt(d,10);if(w>65535)return"Invalid port";e.port=Y(e)&&w===G[e.scheme]?null:w,d=""}if(r)return;l=ge;continue}return"Invalid port"}d+=a;break;case he:if(e.scheme="file","/"==a||"\\"==a)l=de;else{if(!o||"file"!=o.scheme){l=me;continue}if(a==n)e.host=o.host,e.path=o.path.slice(),e.query=o.query;else if("?"==a)e.host=o.host,e.path=o.path.slice(),e.query="",l=be;else{if("#"!=a){Z(i.slice(p).join(""))||(e.host=o.host,e.path=o.path.slice(),Q(e)),l=me;continue}e.host=o.host,e.path=o.path.slice(),e.query=o.query,e.fragment="",l=_e}}break;case de:if("/"==a||"\\"==a){l=ve;break}o&&"file"==o.scheme&&!Z(i.slice(p).join(""))&&(J(o.path[0],!0)?e.path.push(o.path[0]):e.host=o.host),l=me;continue;case ve:if(a==n||"/"==a||"\\"==a||"?"==a||"#"==a){if(!r&&J(d))l=me;else if(""==d){if(e.host="",r)return;l=ge}else{if(s=M(e,d))return s;if("localhost"==e.host&&(e.host=""),r)return;d="",l=ge}continue}d+=a;break;case ge:if(Y(e)){if(l=me,"/"!=a&&"\\"!=a)continue}else if(r||"?"!=a)if(r||"#"!=a){if(a!=n&&(l=me,"/"!=a))continue}else e.fragment="",l=_e;else e.query="",l=be;break;case me:if(a==n||"/"==a||"\\"==a&&Y(e)||!r&&("?"==a||"#"==a)){if(".."===(u=(u=d).toLowerCase())||"%2e."===u||".%2e"===u||"%2e%2e"===u?(Q(e),"/"==a||"\\"==a&&Y(e)||e.path.push("")):K(d)?"/"==a||"\\"==a&&Y(e)||e.path.push(""):("file"==e.scheme&&!e.path.length&&J(d)&&(e.host&&(e.host=""),d=d.charAt(0)+":"),e.path.push(d)),d="","file"==e.scheme&&(a==n||"?"==a||"#"==a))for(;e.path.length>1&&""===e.path[0];)e.path.shift();"?"==a?(e.query="",l=be):"#"==a&&(e.fragment="",l=_e)}else d+=z(a,V);break;case ye:"?"==a?(e.query="",l=be):"#"==a?(e.fragment="",l=_e):a!=n&&(e.path[0]+=z(a,B));break;case be:r||"#"!=a?a!=n&&("'"==a&&Y(e)?e.query+="%27":e.query+="#"==a?"%23":z(a,B)):(e.fragment="",l=_e);break;case _e:a!=n&&(e.fragment+=z(a,H))}p++}},xe=function(e){var t,r,n=l(this,xe,"URL"),o=arguments.length>1?arguments[1]:void 0,a=String(e),c=x(n,{type:"URL"});if(void 0!==o)if(o instanceof xe)t=S(o);else if(r=we(t={},String(o)))throw TypeError(r);if(r=we(c,a,null,t))throw TypeError(r);var s=c.searchParams=new _,u=w(s);u.updateSearchParams(c.query),u.updateURL=function(){c.query=String(s)||null},i||(n.href=Ae.call(n),n.origin=Re.call(n),n.protocol=Oe.call(n),n.username=ke.call(n),n.password=Ee.call(n),n.host=Ie.call(n),n.hostname=je.call(n),n.port=Te.call(n),n.pathname=Le.call(n),n.search=Pe.call(n),n.searchParams=Ce.call(n),n.hash=Ne.call(n))},Se=xe.prototype,Ae=function(){var e=S(this),t=e.scheme,r=e.username,n=e.password,o=e.host,i=e.port,a=e.path,c=e.query,s=e.fragment,u=t+":";return null!==o?(u+="//",X(e)&&(u+=r+(n?":"+n:"")+"@"),u+=D(o),null!==i&&(u+=":"+i)):"file"==t&&(u+="//"),u+=e.cannotBeABaseURL?a[0]:a.length?"/"+a.join("/"):"",null!==c&&(u+="?"+c),null!==s&&(u+="#"+s),u},Re=function(){var e=S(this),t=e.scheme,r=e.port;if("blob"==t)try{return new URL(t.path[0]).origin}catch(e){return"null"}return"file"!=t&&Y(e)?t+"://"+D(e.host)+(null!==r?":"+r:""):"null"},Oe=function(){return S(this).scheme+":"},ke=function(){return S(this).username},Ee=function(){return S(this).password},Ie=function(){var e=S(this),t=e.host,r=e.port;return null===t?"":null===r?D(t):D(t)+":"+r},je=function(){var e=S(this).host;return null===e?"":D(e)},Te=function(){var e=S(this).port;return null===e?"":String(e)},Le=function(){var e=S(this),t=e.path;return e.cannotBeABaseURL?t[0]:t.length?"/"+t.join("/"):""},Pe=function(){var e=S(this).query;return e?"?"+e:""},Ce=function(){return S(this).searchParams},Ne=function(){var e=S(this).fragment;return e?"#"+e:""},Ue=function(e,t){return{get:e,set:t,configurable:!0,enumerable:!0}};if(i&&s(Se,{href:Ue(Ae,(function(e){var t=S(this),r=String(e),n=we(t,r);if(n)throw TypeError(n);w(t.searchParams).updateSearchParams(t.query)})),origin:Ue(Re),protocol:Ue(Oe,(function(e){var t=S(this);we(t,String(e)+":",ee)})),username:Ue(ke,(function(e){var t=S(this),r=h(String(e));if(!$(t)){t.username="";for(var n=0;n<r.length;n++)t.username+=z(r[n],W)}})),password:Ue(Ee,(function(e){var t=S(this),r=h(String(e));if(!$(t)){t.password="";for(var n=0;n<r.length;n++)t.password+=z(r[n],W)}})),host:Ue(Ie,(function(e){var t=S(this);t.cannotBeABaseURL||we(t,String(e),le)})),hostname:Ue(je,(function(e){var t=S(this);t.cannotBeABaseURL||we(t,String(e),fe)})),port:Ue(Te,(function(e){var t=S(this);$(t)||(""==(e=String(e))?t.port=null:we(t,e,pe))})),pathname:Ue(Le,(function(e){var t=S(this);t.cannotBeABaseURL||(t.path=[],we(t,e+"",ge))})),search:Ue(Pe,(function(e){var t=S(this);""==(e=String(e))?t.query=null:("?"==e.charAt(0)&&(e=e.slice(1)),t.query="",we(t,e,be)),w(t.searchParams).updateSearchParams(t.query)})),searchParams:Ue(Ce),hash:Ue(Ne,(function(e){var t=S(this);""!=(e=String(e))?("#"==e.charAt(0)&&(e=e.slice(1)),t.fragment="",we(t,e,_e)):t.fragment=null}))}),u(Se,"toJSON",(function(){return Ae.call(this)}),{enumerable:!0}),u(Se,"toString",(function(){return Ae.call(this)}),{enumerable:!0}),b){var Me=b.createObjectURL,qe=b.revokeObjectURL;Me&&u(xe,"createObjectURL",(function(e){return Me.apply(b,arguments)})),qe&&u(xe,"revokeObjectURL",(function(e){return qe.apply(b,arguments)}))}g(xe,"URL"),o({global:!0,forced:!a,sham:!i},{URL:xe})},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,r){"use strict";var n=r(30),o=r(40),i=r(195),a=r(102),c=r(29),s=r(109),u=r(69);e.exports=function(e){var t,r,l,f,p,h,d=o(e),v="function"==typeof this?this:Array,g=arguments.length,m=g>1?arguments[1]:void 0,y=void 0!==m,b=u(d),_=0;if(y&&(m=n(m,g>2?arguments[2]:void 0,2)),null==b||v==Array&&a(b))for(r=new v(t=c(d.length));t>_;_++)h=y?m(d[_],_):d[_],s(r,_,h);else for(p=(f=b.call(d)).next,r=new v;!(l=p.call(f)).done;_++)h=y?i(f,m,[l.value,_],!0):l.value,s(r,_,h);return r.length=_,r}},function(e,t,r){var n=r(14),o=r(103);e.exports=function(e,t,r,i){try{return i?t(n(r)[0],r[1]):t(r)}catch(t){throw o(e),t}}},function(e,t,r){"use strict";var n=/[^\0-\u007E]/,o=/[.\u3002\uFF0E\uFF61]/g,i="Overflow: input needs wider integers to process",a=Math.floor,c=String.fromCharCode,s=function(e){return e+22+75*(e<26)},u=function(e,t,r){var n=0;for(e=r?a(e/700):e>>1,e+=a(e/t);e>455;n+=36)e=a(e/35);return a(n+36*e/(e+38))},l=function(e){var t,r,n=[],o=(e=function(e){for(var t=[],r=0,n=e.length;r<n;){var o=e.charCodeAt(r++);if(o>=55296&&o<=56319&&r<n){var i=e.charCodeAt(r++);56320==(64512&i)?t.push(((1023&o)<<10)+(1023&i)+65536):(t.push(o),r--)}else t.push(o)}return t}(e)).length,l=128,f=0,p=72;for(t=0;t<e.length;t++)(r=e[t])<128&&n.push(c(r));var h=n.length,d=h;for(h&&n.push("-");d<o;){var v=2147483647;for(t=0;t<e.length;t++)(r=e[t])>=l&&r<v&&(v=r);var g=d+1;if(v-l>a((2147483647-f)/g))throw RangeError(i);for(f+=(v-l)*g,l=v,t=0;t<e.length;t++){if((r=e[t])<l&&++f>2147483647)throw RangeError(i);if(r==l){for(var m=f,y=36;;y+=36){var b=y<=p?1:y>=p+26?26:y-p;if(m<b)break;var _=m-b,w=36-b;n.push(c(s(b+_%w))),m=a(_/w)}n.push(c(s(m))),p=u(f,g,d==h),f=0,++d}}++f,++l}return n.join("")};e.exports=function(e){var t,r,i=[],a=e.toLowerCase().replace(o,".").split(".");for(t=0;t<a.length;t++)r=a[t],i.push(n.test(r)?"xn--"+l(r):r);return i.join(".")}},function(e,t,r){var n=r(14),o=r(69);e.exports=function(e){var t=o(e);if("function"!=typeof t)throw TypeError(String(e)+" is not iterable");return n(t.call(e))}},function(e,t){},function(e,t,r){var n=r(200);e.exports=n},function(e,t,r){var n=r(201),o=Array.prototype;e.exports=function(e){var t=e.indexOf;return e===o||e instanceof Array&&t===o.indexOf?n:t}},function(e,t,r){r(202);var n=r(19);e.exports=n("Array").indexOf},function(e,t,r){"use strict";var n=r(7),o=r(52).indexOf,i=r(139),a=[].indexOf,c=!!a&&1/[1].indexOf(1,-0)<0,s=i("indexOf");n({target:"Array",proto:!0,forced:c||!s},{indexOf:function(e){return c?a.apply(this,arguments)||0:o(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,r){var n=r(204);e.exports=n},function(e,t,r){r(205);var n=r(18);e.exports=n.Object.assign},function(e,t,r){var n=r(7),o=r(141);n({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},,,,,,,,,,,,function(e,t,r){"use strict";r.r(t);var n=r(33),o=r.n(n),i=r(25),a=r.n(i),c=r(148),s=r.n(c),u=r(149),l=r.n(u),f=r(150),p=r.n(f),h=r(151),d=r.n(h),v=r(20),g=r.n(v),m=(r(189),r(49)),y=r(2),b=r(152),_=r.n(b),w=r(153),x=r.n(w);const S=["color","padding","paddingTop","paddingRight","paddingBottom","paddingLeft"],A=["fontFamily","fontSize","lineHeight","letterSpacing","fontWeight","fontVariation","textDecoration","textShadow","textTransform","-webkit-font-smoothing","-moz-osx-font-smoothing","transition"],R=["border","borderTop","borderRight","borderBottom","borderLeft","borderRadius","borderWidth","borderColor","borderStyle","borderTopWidth","borderTopColor","borderTopStyle","borderRightWidth","borderRightColor","borderRightStyle","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","outline","outlineOffset","backgroundColor","boxShadow"],O={".Label":[...S,...A],".Input":[...S,...A,...R],".Error":[...S,...A,...R],".Tab":[...S,...A,...R],".TabIcon":[...S],".TabLabel":[...S,...A]},k={".Label":O[".Label"],".Input":[...O[".Input"],"outlineColor","outlineWidth","outlineStyle"],".Error":O[".Error"],".Tab":["borderStyle","borderBottomStyle","borderTopStyle","borderRightStyle","borderLeftStyle","borderColor","borderBottomColor","borderTopColor","borderRightColor","borderLeftColor","borderWidth","borderBottomWidth","borderTopWidth","borderRightWidth","borderLeftWidth","backgroundColor","color","fontFamily"],".Tab--selected":["borderStyle","borderStyle","borderBottomStyle","borderTopStyle","borderRightStyle","borderLeftStyle","borderWidth","borderBottomWidth","borderTopWidth","borderRightWidth","borderLeftWidth","backgroundColor","color"],".TabIcon":O[".TabIcon"],".TabIcon--selected":["color"],".TabLabel":O[".TabLabel"]};var E=r(154),I=r.n(E),j=r(73),T=r.n(j);const L=e=>{if(!e.backgroundColor||!e.color)return e;const t=((e,t)=>{const r={backgroundColor:e,color:t},n=T()(e),o=T()(t);if(!n.isValid()||!o.isValid())return{backgroundColor:"",color:""};const i=n.getBrightness()>50?T()(n).darken(7):T()(n).lighten(7),a=T.a.mostReadable(i,[o],{includeFallbackColors:!0});return r.backgroundColor=i.toRgbString(),r.color=a.toRgbString(),r})(e.backgroundColor,e.color),r=I()({},e);return r.backgroundColor=t.backgroundColor,r.color=t.color,r},P=(e,t)=>{if(!document.querySelector(e))return{};const r=k[t],n=document.querySelector(e),o=window.getComputedStyle(n),i={};for(let e=0;e<o.length;e++){const t=o[e].replace(/-([a-z])/g,(function(e){return e[1].toUpperCase()}));a()(r).call(r,t)&&(i[t]=o.getPropertyValue(o[e]))}if(".Input"===t){const e=((e,t="solid",r)=>e&&r?[e,t,r].join(" "):"")(i.outlineWidth,i.outlineStyle,i.outlineColor);""!==e&&(i.outline=e),delete i.outlineWidth,delete i.outlineColor,delete i.outlineStyle}return i},C=()=>{const e=[],t=document.styleSheets,r=["fonts.googleapis.com","fonts.gstatic.com","fast.fonts.com","use.typekit.net"];for(let n=0;n<t.length;n++){if(!t[n].href)continue;const o=new _.a(t[n].href);-1!==x()(r).call(r,o.hostname)&&e.push({cssSrc:t[n].href})}return e};g()((function(e){var t,r,n,i,c,u;const f=null===(t=Object(y.c)())||void 0===t?void 0:t.key,h=null===(r=Object(y.c)())||void 0===r?void 0:r.isUPEEnabled,v=null===(n=Object(y.c)())||void 0===n?void 0:n.paymentMethodsConfig;if(!f)return;const b=new m.b({key:f,locale:null===(i=Object(y.c)())||void 0===i?void 0:i.locale,isUPEEnabled:h},(e,t)=>new o.a((r,n)=>{g.a.post(e,t).then(r).fail(n)})),_={getHiddenContainer(){const e=document.createElement("div");return e.setAttribute("id","wc-stripe-hidden-div"),e.style.border=0,e.style.clip="rect(0 0 0 0)",e.style.height="1px",e.style.margin="-1px",e.style.overflow="hidden",e.style.padding="0",e.style.position="absolute",e.style.width="1px",e},getHiddenInvalidRow(){const e=document.createElement("p");return e.classList.add("form-row","woocommerce-invalid","woocommerce-invalid-required-field"),e},appendHiddenClone(e,t,r){const n=g()(t).clone().prop("id",r);return e.appendChild(n.get(0)),n},init(){if(!e(" #billing_first_name").length)return;const t=this.getHiddenContainer();e(t).insertAfter("#billing_first_name"),this.appendHiddenClone(t,"#billing_first_name","wc-stripe-hidden-input"),e("#wc-stripe-hidden-input").trigger("focus");const r=this.getHiddenInvalidRow();this.appendHiddenClone(r,"#billing_first_name","wc-stripe-hidden-invalid-input"),t.appendChild(r),e("#wc-stripe-hidden-input").css("transition","none")},cleanup(){e("#wc-stripe-hidden-div").remove()}},w=b.getStripe().elements({fonts:C()}),x=null!==(c=null===(u=Object(y.c)())||void 0===u?void 0:u.sepaElementsOptions)&&void 0!==c?c:{},S=w.create("iban",x);let A=null,R=null,O=!1;const k={name:"never",email:"never",phone:"never",address:{country:"never",line1:"never",line2:"never",city:"never",state:"never",postalCode:"never"}},E=e=>{e.addClass("processing").block({message:null,overlayCSS:{background:"#fff",opacity:.6}})},I=e=>{e.removeClass("processing").unblock()},j=()=>e("#stripe-iban-element").length&&!e("#stripe-iban-element").children().length,T=t=>{let r="";r=a()(t).call(t,"woocommerce-error")?t:'<ul class="woocommerce-error" role="alert">'+t+"</ul>";const n=e(".woocommerce-notices-wrapper, form.checkout").first();if(!n.length)return;e(".woocommerce-NoticeGroup-checkout, .woocommerce-error, .woocommerce-message").remove(),n.prepend('<div class="woocommerce-NoticeGroup woocommerce-NoticeGroup-checkout">'+r+"</div>"),s()(n).call(n,".input-text, select, input:checkbox").trigger("validate").blur();let o=e(".woocommerce-NoticeGroup-checkout");o.length||(o=n),e.scroll_to_notices(o),e(document.body).trigger("checkout_error")},N=function(t=!1){var r,n;if(E(e("#wc-stripe-upe-form")),A)return A.unmount(),void A.mount("#wc-stripe-upe-element");const o=null===(r=Object(y.c)())||void 0===r?void 0:r.isOrderPay,i=null===(n=Object(y.c)())||void 0===n?void 0:n.isCheckout;let a;var c;o&&(a=null===(c=Object(y.c)())||void 0===c?void 0:c.orderId),(t?b.initSetupIntent():b.createIntent(a)).then(t=>{var r,n;if(A||R)return A.unmount(),void A.mount("#wc-stripe-upe-element");const{client_secret:a,id:c}=t;R=c;let s=null===(r=Object(y.c)())||void 0===r?void 0:r.upeAppeareance;s||(_.init(),s=(()=>{const e=P("#billing_first_name",".Input"),t=P("#wc-stripe-hidden-input",".Input"),r=P("#wc-stripe-hidden-invalid-input",".Input"),n=P(".woocommerce-checkout .form-row label",".Label"),o=P("#billing_first_name",".Tab"),i=P(".woocommerce-checkout .place-order .button.alt",".Tab--selected"),a=L(o),c=L(i);return{rules:{".Input":e,".Input:focus":t,".Input--invalid":r,".Label":n,".Tab":o,".Tab:hover":a,".Tab--selected":i,".Tab--selected:hover":c,".TabIcon:hover":{color:a.color},".TabIcon--selected":{color:i.color},".TabIcon--selected:hover":{color:c.color}}}})(),_.cleanup(),b.saveUPEAppearance(s));const u={clientSecret:a,appearance:s,business:{name:null===(n=Object(y.c)())||void 0===n?void 0:n.accountDescriptor}};i&&!o&&(u.fields={billingDetails:k}),A=w.create("payment",u),A.mount("#wc-stripe-upe-element"),A.on("ready",()=>{I(e("#wc-stripe-upe-form"))}),A.on("change",t=>{const r=t.value.type;var n;((t=!0)=>{t?e(".woocommerce-SavedPaymentMethods-saveNew").show():(e(".woocommerce-SavedPaymentMethods-saveNew").hide(),e("input#wc-stripe-new-payment-method").prop("checked",!1))})(v[r].isReusable),n=r,e("#wc_stripe_selected_upe_payment_type").val(n),O=t.complete})}).catch(t=>{I(e("#wc-stripe-upe-form")),T(t.message),e(".payment_box.payment_method_woocommerce_payments").html("<div>An error was encountered when preparing the payment form. Please try again later.</div>")})};if(e(document.body).on("updated_checkout",()=>{e("#wc-stripe-upe-element").length&&!e("#wc-stripe-upe-element").children().length&&h&&N(),j()&&S.mount("#stripe-iban-element")}),e("form#add_payment_method").length||e("form#order_review").length){if(e("#wc-stripe-upe-element").length&&!e("#wc-stripe-upe-element").children().length&&h&&!A){var U,M;const t=null===(U=Object(y.c)())||void 0===U?void 0:U.isChangingPayment,r=e("form#add_payment_method").length||t;if(t&&null!==(M=Object(y.c)())&&void 0!==M&&M.newTokenFormId){var q;const t=null===(q=Object(y.c)())||void 0===q?void 0:q.newTokenFormId;e(t).prop("selected",!0).trigger("click"),e("form#order_review").submit()}N(r)}j()&&S.mount("#stripe-iban-element")}const F=async e=>{if(!A)return T("Your payment information is incomplete."),!1;if(!O){const{error:t}=await b.getStripe().confirmPayment({element:A,confirmParams:{return_url:""}});return e.removeClass("processing").unblock(),T(t.message),!1}return!0},D=async e=>{if(await F(e)){E(e);try{var t;const e=null===(t=Object(y.c)())||void 0===t?void 0:t.addPaymentReturnURL,{error:r}=await b.getStripe().confirmSetup({element:A,confirmParams:{return_url:e}});if(r)throw r}catch(t){e.removeClass("processing").unblock(),T(t.message)}}},B=()=>{const t=e("#wc-stripe-payment-method").val(),r=e("#wc-stripe-new-payment-method").is(":checked"),n=b.confirmIntent(window.location.href,r?t:null);if(!0===n)return;const{request:o,isOrderPage:i}=n;i&&(E(e("#order_review")),e("#payment").hide(500)),history.replaceState("",document.title,window.location.pathname+window.location.search),o.then(e=>{window.location=e}).catch(t=>{e("form.checkout").removeClass("processing").unblock(),e("#order_review").removeClass("processing").unblock(),e("#payment").show(500);let r=t.message;var n;t instanceof Error&&(r=null===(n=Object(y.c)())||void 0===n?void 0:n.genericErrorMessage),T(r)})};function H(){return e("#wc-stripe-payment-token-new").length&&!e("#wc-stripe-payment-token-new").is(":checked")}e("form.checkout").on("checkout_place_order_stripe",(function(){if(!H()&&h&&R)return(async e=>{var t;if(!await F(e))return;E(e);const r=p()(t=e.serializeArray()).call(t,(e,t)=>(e[t.name]=t.value,e),{});try{const e=await b.processCheckout(R,r),t=e.redirect_url,i={element:A,confirmParams:{return_url:t,payment_method_data:{billing_details:(n=r,{name:l()(o=`${n.billing_first_name} ${n.billing_last_name}`).call(o),email:n.billing_email,phone:n.billing_phone,address:{country:n.billing_country,line1:n.billing_address_1,line2:n.billing_address_2,city:n.billing_city,state:n.billing_state,postal_code:n.billing_postcode}})}}};let a;if(e.payment_needed?({error:a}=await b.getStripe().confirmPayment(i)):({error:a}=await b.getStripe().confirmSetup(i)),a)throw a}catch(t){e.removeClass("processing").unblock(),T(t.message)}var n,o})(e(this)),!1})),e("form#add_payment_method").on("submit",(function(){if(!e("#wc-stripe-setup-intent").val()&&h&&R)return D(e(this)),!1})),e("#order_review").on("submit",()=>{var t;if(!H())return null!==(t=Object(y.c)())&&void 0!==t&&t.isChangingPayment?(D(e("#order_review")),!1):((async t=>{if(await F(e("#order_review"))){E(t);try{var r,n;const t=e("#wc-stripe-new-payment-method").is(":checked")?"yes":"no",o=(null===(r=Object(y.c)())||void 0===r?void 0:r.orderReturnURL)+"&save_payment_method="+t,i=null===(n=Object(y.c)())||void 0===n?void 0:n.orderId;await b.updateIntent(R,i,t,e("#wc_stripe_selected_upe_payment_type").val());const{error:a}=await b.getStripe().confirmPayment({element:A,confirmParams:{return_url:o}});if(a)throw a}catch(e){t.removeClass("processing").unblock(),T(e.message)}}})(e("#order_review")),!1)}),B(),window.addEventListener("hashchange",()=>{var e;d()(e=window.location.hash).call(e,"#wc-stripe-confirm-")&&B()})}))}]);
build/upe_opt_in_banner.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('react', 'react-dom', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => '63a1ac18fa99d7da36e30565a682f0da');
build/upe_opt_in_banner.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){var t={};function l(V){if(t[V])return t[V].exports;var a=t[V]={i:V,l:!1,exports:{}};return e[V].call(a.exports,a,a.exports,l),a.l=!0,a.exports}l.m=e,l.c=t,l.d=function(e,t,V){l.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:V})},l.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,t){if(1&t&&(e=l(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var V=Object.create(null);if(l.r(V),Object.defineProperty(V,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)l.d(V,a,function(t){return e[t]}.bind(null,a));return V},l.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return l.d(t,"a",t),t},l.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},l.p="",l(l.s=218)}({0:function(e,t){e.exports=window.wp.element},1:function(e,t){e.exports=window.React},100:function(e,t,l){"use strict";var V=l(136),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},n={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},d={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},r={};function U(e){return V.isMemo(e)?d:r[e.$$typeof]||a}r[V.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},r[V.Memo]=d;var c=Object.defineProperty,R=Object.getOwnPropertyNames,N=Object.getOwnPropertySymbols,Z=Object.getOwnPropertyDescriptor,o=Object.getPrototypeOf,W=Object.prototype;e.exports=function e(t,l,V){if("string"!=typeof l){if(W){var a=o(l);a&&a!==W&&e(t,a,V)}var d=R(l);N&&(d=d.concat(N(l)));for(var r=U(t),T=U(l),i=0;i<d.length;++i){var F=d[i];if(!(n[F]||V&&V[F]||T&&T[F]||r&&r[F])){var p=Z(l,F);try{c(t,F,p)}catch(e){}}}}return t}},11:function(e,t){e.exports=window.wp.components},136:function(e,t,l){"use strict";e.exports=l(137)},137:function(e,t,l){"use strict";var V="function"==typeof Symbol&&Symbol.for,a=V?Symbol.for("react.element"):60103,n=V?Symbol.for("react.portal"):60106,d=V?Symbol.for("react.fragment"):60107,r=V?Symbol.for("react.strict_mode"):60108,U=V?Symbol.for("react.profiler"):60114,c=V?Symbol.for("react.provider"):60109,R=V?Symbol.for("react.context"):60110,N=V?Symbol.for("react.async_mode"):60111,Z=V?Symbol.for("react.concurrent_mode"):60111,o=V?Symbol.for("react.forward_ref"):60112,W=V?Symbol.for("react.suspense"):60113,T=V?Symbol.for("react.suspense_list"):60120,i=V?Symbol.for("react.memo"):60115,F=V?Symbol.for("react.lazy"):60116,p=V?Symbol.for("react.block"):60121,h=V?Symbol.for("react.fundamental"):60117,s=V?Symbol.for("react.responder"):60118,m=V?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case a:switch(e=e.type){case N:case Z:case d:case U:case r:case W:return e;default:switch(e=e&&e.$$typeof){case R:case o:case F:case i:case c:return e;default:return t}}case n:return t}}}function E(e){return k(e)===Z}t.AsyncMode=N,t.ConcurrentMode=Z,t.ContextConsumer=R,t.ContextProvider=c,t.Element=a,t.ForwardRef=o,t.Fragment=d,t.Lazy=F,t.Memo=i,t.Portal=n,t.Profiler=U,t.StrictMode=r,t.Suspense=W,t.isAsyncMode=function(e){return E(e)||k(e)===N},t.isConcurrentMode=E,t.isContextConsumer=function(e){return k(e)===R},t.isContextProvider=function(e){return k(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===a},t.isForwardRef=function(e){return k(e)===o},t.isFragment=function(e){return k(e)===d},t.isLazy=function(e){return k(e)===F},t.isMemo=function(e){return k(e)===i},t.isPortal=function(e){return k(e)===n},t.isProfiler=function(e){return k(e)===U},t.isStrictMode=function(e){return k(e)===r},t.isSuspense=function(e){return k(e)===W},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===d||e===Z||e===U||e===r||e===W||e===T||"object"==typeof e&&null!==e&&(e.$$typeof===F||e.$$typeof===i||e.$$typeof===c||e.$$typeof===R||e.$$typeof===o||e.$$typeof===h||e.$$typeof===s||e.$$typeof===m||e.$$typeof===p)},t.typeOf=k},218:function(e,t,l){"use strict";l.r(t);var V=l(9),a=l(0),n=(l(1),l(56)),d=l.n(n),r=l(3),U=l(11);const c=Object(V.a)("span",{target:"euq5e1a0"})({name:"a6pyeh",styles:"border:1px solid #757575;border-radius:28px;color:#757575;display:inline-block;font-size:12px;font-weight:400;line-height:1.4em;padding:2px 8px;width:fit-content"});var R=({...e})=>Object(a.createElement)(c,e),N=()=>Object(a.createElement)("img",{src:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAzIiBoZWlnaHQ9IjIwNiIgdmlld0JveD0iMCAwIDIwMyAyMDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgo8cmVjdCB3aWR0aD0iMjA2IiBoZWlnaHQ9IjIwNiIgZmlsbD0idXJsKCNwYXR0ZXJuMCkiLz4KPGRlZnM+CjxwYXR0ZXJuIGlkPSJwYXR0ZXJuMCIgcGF0dGVybkNvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8dXNlIHhsaW5rOmhyZWY9IiNpbWFnZTAiIHRyYW5zZm9ybT0ic2NhbGUoMC4wMDMxMjUpIi8+CjwvcGF0dGVybj4KPGltYWdlIGlkPSJpbWFnZTAiIHdpZHRoPSIzMjAiIGhlaWdodD0iMzIwIiB4bGluazpocmVmPSJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQVVBQUFBRkFDQVlBQUFETmtLV3FBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFFY0VTVVJCVkhnQjdaMEpmQlRsL2YrL3Mwa2dCeVFCT1FKSllCRlVMaVhXaWtCUkF5cFE4UUFGdkFVVXI1K3RFR2lyeFZhQzFyT1ZCRnV2aWdJZXRTSUtXTzBmdENLS0NoN1lvRndxbEVEQ0lTQWs0UWhDc3ZOL1BzL3ViQ2FiUFdZM084dnV6UGZkMTNSMloyWjNrM0h6NFhzL0Nnbkczckt1UUUyaUVsS29RRHpOSm91aUVwVXJxakp2NFROOVpsSU1HSFg5SHdxVnBLUVpDbEVoV1JoeFg4dFVsMnYyNHBjZW1FY3hJSGR1NVFTRmxNbmlZUUZaR0pYVU1oZTVadTZhMkdVeHhZQ1RuYzRwaWtxNHIwNnlOaXZxRlpwWUxsQ3V2djIvempvbDViOWtZZUh6UStuQ3Avc1drWWtJOFJ2bFNFcGFSRGJDNVhJVkNSRXNKUlBKbTd0amh0Z1ZrNDJvcC9yUlpvdmd5VjJjSllwQ1U4ZytWRGtVR3VLb281UzVaQy94QTFQRzNQNU5JWm1JRUw4U3Noa09oMlBHcUFuRnBuMlhuSE8zNHIyTHlXWTR5Tnp2VWsrbjAya3o4UVBaTHBWS0hNTHRMU1FiNGlMVlNTWWhSTUJKMW5jai9KR2RUSFdtdWFWMWRjbVdkbmtESVVJb1R1ZlRXNTFrRXNmRVY1YnNTWUdEYklwUWZpY3hEQU5yd0c0ZW9FYTJiUVdRWVJpR0JaQmhHTnVTVEF6RGhDU3poVUo1clpMRXZxbk5VSFBNUlJ2MjF4R1RlTEFBTWt3SThvWHdMUmh4a2hCQS8zOHVxM1lmbzNGTDl4R1RlTEFMekRBaDZOMDJKYUQ0TVlrTkN5RERoTUNmMjh0WUEvNHZhekhTMDFPcGZUdTdWalV3VEhpd1hXOGh4bzBxcEV1R0RhQU1JWUt2TFY1QmI3KzdtbzRjT1VvTXcvaUhCZEFDOU9ucHBGOU5Ha1VkZEpiZlZVSU1od3d1a0VLNDR1TXlZaGltS1N5QUNReUVEMVpmWDdIM0J3VHgxMElZSVlZc2hFeThrSmVYUjYwelcxT3UyR2RtWnNwamJ5NThnODRaY0E3VjFOUlFaZVVPT2lqMnNZQUZNQUZCakE4V1h5RGg4MFVUUWxpRWY1dXptUGJ1cXlJN2dsS1dTRUQ5WHpENnRFMk8rTDFuZmw1TjZ5MWNROWlyZHk4aGJBT29kKy9lMUYvc0lYNytnQUJtWm1iUmxXUEcwRVhEaGxHMUVNQ05HemJRZSsrK1M1K3Qvb3gyVkZhU0dVUWtnTDFQU2FmMko3V2dlT0JJYlQyVlZ4eWx2ZnVQazlWQmd1TXFUNXd2RWlDWXoveGxDbjBnTEVGWWhIWVR3b0U1TGNrTWtDV085TDB6VzBCY3JTV0FzT3l1SEhNbFhTSEVMSkRnK1FOaWh5MHo4d0VwZ25kTm1TejM0TFBWcSttTmhRdWxVRWFUc0FWdzdNZ09ORzVrZTRvbjl2eDRqSXBMeWkwcmdoQStpSjZXNEdndXNBU3gyVlVJR1hPQUMzdlhsQ25TNG1zT2NJTWhkaEREQ1RmZEpJVVE3NGtONy85RWFXblVoREFzQVd6Zk5pWHV4QTkwRU5ib3hVTlBvdmtMZDVQVktCUkNCYXV2Z3dtbExSQkJ4QkdSTFg1SGJGWUhIUnVSQUFzUGJtNGdhbzZwd28yTjdCOWZ0TkVsT3ExRkhHK3lFQ21JVlRTQkVFTHM0QW8vOXBjL3k4K0JSZm5ZWC80aWhmQzZxNjlwdG1zY25nQzJpdyszMXgvZDhwcHZHY1VUb1JJYzBRTENldE8xSTZSMWFmVkVTYVR0YW1ON3BOT3N3WUgvQVlMNDJiVVZycGVJN1QzOTkyZkRjblhEQlpiZ2RWZFgwaXYvZkZXS0lNRG5mZmp4U3ZyVC9mZlR2QmZtVXFSd0lYU2NBZUdiZWM4RXVsOXNab3VmSGkxUjhyU0lFZmFKNGVjeWlRc1NGaEFsTThWUFk0T3dBdjkwL3dOTmp2L2h2dnVraXh3cFlWbUFlL2Nkb3dYdjdLRjRaTytQaVIzL1E1d1BsaGpjMGhNSmhCRGl5L0ZCSmhnWERydUlIaFZ1YVN4QlhQQWk4YmtYZWhJakduQ0h3Uk9sc3lsY3doTkFZZXEvL3M1ZVlxSkxlNC9vZElpakZqWUljZitmOWFScDl6M0RJc2cwSXRjVGh6c1J3QXBFTWtSemhUVWdnb2daaHVzT2N4MWdITkN0UzA1Y2laOUdoaWY3UFBjZlM4bEs5QkhKdkdGZGpNZU1jWDB3VUNkWVZOQzZ5WEVrT1B3bE9Tb08xZFBxQ0JNeThRRGMza3dmQVlvVmxTTHBBVXZRWDhJRklvaWFRU1JOak1JQ0dBZWtwOGR2QXVld0JYdUpNZDVxcWgvQmloVE1Dd3puL1lvL3IwNVlBYnhpekpVeGlma0Y0NzEzMy9NcmdCRGxQOXozUjVrZE5nb25RZUtBTDc3YVJPWGI0NitFQjY0dnQ4OUZuOVc3ZjZKRVJZdTNuVWhRRkIyb1ZjNWRMM2dPR1lVdHdEZ0FWaFppYmNpK3hzc29LMHlSV2IrcDNKSVc0SWtFTG5HaXRyNmRFNlNWTFJ3cW85RFdodElZZEpyNFE2c1JORUxZaGRDRkErTnoxaHl5d0N0V0ozYXdIb0xEbU0reTdiVTBjS0U1TGlqaWhYT0d0Z2w0ZmxVQ1czL0l3SVlMckRYRTVMVFluSy80b1ZjNE53SlIzYmhoWThCeldwTEV5RUNGc0F1aHg0M3NRUEhJK3U4T0o3d0FNckVCblJzMXg4eXh3bTd1blJIMC9MTHRpU3VBUmx2Y3RMN2QvNGhZWFkwZkVZS0xpbElXMUJFaWJnZFJ4TFhoVUYxVEhmUThlcEdOWklUWkJXYVlLREtpUy9DaENMQStFeFYwZlFUalRTRjZxTVVMNU9KR3MyVnVSK1dPb09kN2gvaFpOVmdBNHhTMHdhRUgyQi9yaEtzODQ1RjUzdWUvOG95Nml2YTFWc2QzekZYbG9YcHFEZ055V2dSZFBBbmlCK3N6RVFsVzlyTFIwNlVCeXk4UUVEK1V6eGdWcHViUzJtQ1pEZ3NnWXd1d3J1L3dMcWxDcEZyU29DQkM1VTVTSEpkN0RFL0FZNk1sSytONnBBYzluOGp1YnlBQmhLdjdvQkMvbWhEeHRsaUtIOGhrQVdRWXQvQWhMamVwZHl0RHE3dnBaL3NONzVMbVBZN2t4Ykx0UitYZTN5TG9xQVVjRzBRQVVmejgrdVlqWkNWZzhkMzltOStHdkc2aWNIbGpLWDdod0FMSVdCWXRJeHVOTlgwaGlwb3dWaHlxazlZaEJFMnpEc2YwU0F2NitrVE8vZ0ovY1QwajRnZkczelNSb2sxbVp2REM4eHFESS9WWkFCbExBdkhEbUhvejF2VE5GNEthM3lOWnVyeWFHTUt0RGtaSjJVRktkQkRyMHhJaHNQNk0xUE9oZE1hTXpwRlFDUm1qN1hBc2dJemxnRHNLeXkrVStHbEpEMXdIVnpteXozS0xZVEFXQ0V1eHVRbVdlQUNpcHdtUDBVR2t2VXh5ZlVPOWI3Q0VqSjZvQ2lDS2taOThhWWZZTndTTk05SkViR1JrZXpxNzM0bHBubWJzeCtPRHM1dTR2Y2krTnNUeGpnbEJhaHpIZ3dCQ3pOQW5qR1FKM04xSVJkRVhLMWgvUU4rRGE3UjQyYXkrNFFGQmFoSWh6aWk4TmtKVUJmREpGeXRwL2ZlK2dWNGhpaS91cEtjZXlLRDA5Q1JpR0RNWksySnh2Z3NVUWZRd2dDQ1lGYWFOdGNlbUpTdVExTUEyTUtkNWs5Q0wrMmRLSy9EZEJNNENBMWhWMkZBUURRdk1hTGRGdFBFM0RrdVBVZXNQUkRWQTBsVDgzQnl1cmFkMTN4OG1oakViMzB3c3JLOUp5L2RINUlKQ0NESHFmdERDSDVxVndVVTIrZm1oSjlHbll6cDRyTlBFTlFTMG9hTW9NNWxvSUxrUnJHVXRVakNSSmhqaERFYU5xZ0QyT1NWd0dZRFRZbXQyTVBHSDcvS1VzTHBtUmNIOVJBbkwxSStybWkyRWNMR1JPRmsxcHFOTTBNQmFUVFF4MUt4QUFIYzRsQ3VNb1FYUnhMM2s1cGlBNTdHSVVqakRGcUlxZ1A5M1k2NWNNMWhQZXBxREpvekprU3UzTVl5WjlQWlp1ZTJGRFljb211aUZzTG1ydVVHb1p3MXVJOFVRQ1p1eEljcG80Z21VdnlET2x1bnA3Z2ptanJyN2ZLTW5nbzhGR2NPUG55bmNzZmhSalFGQzVHWVdkU09HT1JIMGFkdndqNnlaWTZkUTh4Zk44aHE0eU5pSysyZlJVaEd2Uk10Y1BNY0xJV3AzM0hxYmQwRWs3UEU4VUdiNGQwSXcvL1h2M2hGTmZkRVRiTTFoZkhZNGcxQTFlQ0FxWXhuMFdkdHFrM3B1MFZVeXRjQ2NpZ2FJS2x4a3hBdlhYNXNqNDRYRFFneFhPRkZnbFRZSURwSWc2UEtBQ0FZU09CUWxOM2NOWDdpOWdWWi8wOFF2a2ptRExJQU1ZeEM0cWJEU2doRXRxOU5YRExmZTdxUjRBeUo0NmNVanBRQnA2L1FHRXFsS2owaGhZa3k0UVB3Q3JVRFhIUEVEWVFuZ3RvcWpkT1JJZkJaMDhpeEFScC9wUlRGME5CTU1zUHdRc3dzR1NtaEd2TFduMmNrU1g4em9ab2tXdnNJR04zV0ZFRUovbVZwY0MzY1kxeHVKQzdiMnJQRVJTUHptdnZDQ0ZPRG1USmdPS3dhSWNwYmkwbklhUHphSDJyZU5uNlRHaDBMOHJDQ0ErcFhoTW9Jc2xOUktuSXZGdFhzU2JEbk1EZnNicncwTjBacjVlZlByMUlvS1dvVjBlNUVnUWJtTjloakpFcFRnWUxXNHNTR214Q1E2bXJDaCtCZ1dZSjVuMlV5SUlZVHhqWVZ2TkhKL3RVd3lraWlJNmVYbTVUWjZQd2dmQnBvaXkreXZrQnF2UmJJam5IcS9RQ2hqN2xpWG1BUEttb3Vxemx6NHpPbkZaQUtqSmhRN0hhcTYxZWoxOGJndU1JQUEzdmZJdkxEV0JYWW85VU1XenZ2VENqS0J2T2NxQ2luWjhVR3dhOVpmMjZsUkxCQjFmS3NpWElFTlZpVGljTDZGMWI1QThQQTVnV29OOHozTFpqWlRDTHNwaWxKT0puQnlGMmV4b3RBTWloSndXV0VCNmhNV2xiSTd3ejBlSHh2aWdnZHJEc3JqRUxuV21hMWxjVFU2UERBdDJ0ODRxMmdLbndiM0FzY0JXQXdwSHRjRnhzK1VhT3NDby9admttNHMvWUlSN2FqNDh5cDZmb054bHpTY0VWcWh4RSs3Um04UlFsQVR1Umc2Rkc5SXEyK2hGTFlKTjAzMGRvN2tCYW5mQzRUYld2eU01Z2wzdDhhRXJoTVd3RGdnSHNWUEl5T08xeXoyQjJyL2tEelFXNEhGL2JPbDlmWDhoc095TFM3UVZHWk1kRVlmc1B2MW9lTnVzQ3duTGYvUjhKUm5UUWhoRVdJd0s5WVN0cklRd3JyRHBHZ0FpdzRpaUl3eFhGNjMxZGZZeW9PYkRKSER1UHNOT2t2UlRGZ0FHVXNCa1lHbE5hTi80ejh1MUFqT0d1eU9XNi9mZjh3cldxZ1hoQWloU3lPY1pNUHpRbWlMSTR3djRtZXNFSllxRWlVUVpxc0xJWUNRNmJ0STRnVVd3RGdBTWJaNFhSSXpIaGRzRDhVY0lVN29DZ2tVYyt2VGpBUWVoQk9ERmFLVjVYM2RJNFJ3aTkzdU1YZE14UklXd0RqZ2c0L0w1TVpFRDdpYUVLdFF5MVNHZzVHcE1wR0NVVjJybHY0VXJZUUpZeEF1aEdZc0M4UUtRdGhjd1VLc2I5elNIeU9lS2hNTytuNWp1UEpXR0tRYXo3QUZ5RmlhMTNXeHRuQm0rMVY2RmpHQzFiZmVwNzR3RmtBSU1ja0dHMzd1THZ5WGFncDhXeGxib0FraFhNemVJZ2FJR0NFeXhaa3QzTW1IbW1QMVF2UmNVdmdnZUw0VG8wOGsrTG1UajBaV3k4Z0Vod1dRc1JVeUEzdW9WbGgyeERBY0EyUVl4cjZ3QURJTVkxdnNLNEF1aGNmSE1BeHdrRzMvRmlDQTI4aUdxT1FvSi9PbzhteTJvNDZTVGZ1OTFXVDcvcU5WbFdyZTkwbUlnQzJMVUZXaWNnaGdLZGtNbFpUeU4vN2VlekdaeE9KNXhWV3FxczRubTZHbzZoTHh1NXYyeDdSallwNTRiMlVGMlF5RmFGN1Z4RzZtQ1dDZFd3REx5V1k0VkpydldQaDAzMUpWVWNOYlNTU0JnZmpWcTQ0aFpES3F3MUZzS3hGVTFRL3JIWTRwWkRMSnBFeFV5Snl4VUhHSnVLOUpkS3lJVEtTOHZMd3FSU0g4VFpTVFhWQnA5dWJ0NWNYZWtSbFgzNzdSV2VlcUh5VmtNWDVIa3pRSHhQd2NhbGxkYWwzWjR0SXpZK1pLalpsUVhPZ2l0WUJjRnIydkRxWEtRVXJad25uRkt5aUc1TTJ0S0hTNGxBSnhieTE1WDhVOXJYS0o3MnZseFB3VkZFTzZPNTJqaEd2b0pCZFo4cjRxS3BVclNWUyt1Yng4QlRFTXd6QU13ekFNd3pBTXd6QU13ekFNd3pBTXd6QU13ekFNd3pBTXd6QU13ekFNd3pBTXd6QU13ekFNd3pBTXd6QU13ekFNd3pBTXd6QU13ekFNd3pBTXd6QU13ekFNd3pBTXd6QU13ekFNd3pETlJORS8yVmp3c0pNc3pGSDZxZXJNc3VLWUxZbXBrZDNUMnZlMWF0UHZ5eW5HcU1WenM0L1NVV3N1TmVvaHJmaU9jb294MlhNTHMxUEYvOGpDN0I2OXRGeDdMQVh3MjRKSFJ5bWtsSWpOU1JaSEpYWGVZVW9wT3JPc3lIUWh6TzcxNXlta09HYUlEN1gwRjBwOGk2cklSYVZWbTZiTnBCancwOHk1dUtkWWhOM2E5NVdvdkY1MXpVNmZlWE1wbVF5RUx5MHpiWWFpMEFTeTZGckxHaXJ1cTh0VnRHZk11NHNWaUorREhJdklYcXc0cGV5M1E4aEVwUGlSbzRUc1JXblZ4bWxGWkNJZThTc21HeUZFc01oc0VleTBjTVE4eFVIanlVYTQ2bW1JUTRqZkRMSWZoZDhYUEZ4SXB1S1lUUFpqU3JhenhEVHJvYlo0cnROdTRnZVNGSFAvUm5NV2pTaTBtL2dCSllsbU9NUytnR3hJUFRsTSs3MnplNVk0eGM1SmRpUzF6c1R2VTUyVDdFbDJiZkhUVGpLSkpKZGlTdzBROGI5Q0I5a1V4ZnJ4STRZeGhHcnhtRjh3YkN1QURNTXdMSUFNdzlnV0ZrQ0dZV3dMQ3lERE1MYUZCWkJoR052Q0FzZ3dqRzFKSm9aaG1CUEF3SGFuVTUrczdwU1gzb0h5MHp0U1prcXJSdWRyamgraWlpTS9VT1dSUGJTK2VvdlkvaWVPSGFab3dnTElNRXpNZ09pTjdYSVIvYkx6SUNGNEdSUXVuKzc5bWhac2Y0K1c3Vm9WRlRFTVN3QjNIRHRBYit6L2dzd2tNeW1OOGxxMG9kWmkzenN0Vit4VGlXRWl3ZEd6Q3lrZDJ3WTg3L3AyTzZtNzk1TlJGR2NPT2JybUJINi90WnRKclRwRVRGUEdDZEdiMXVzNlllMTFwT1l3cVAwWmNqdG4yZmpZQzJEbHNmMzAxOTN2VVN6cG5kYVplb3J0aXJZL3AzTmFkU2VHTVlyanRDN2tLT2dSOER6RUtod0JoUGdsRlFidUduT1Y3eVppQVd3RUxMNnBQYStYb3FVSDRnVzNkdW5PVmRMTmhYdnJpOXN0emhCdThzbnk5UVBiblVIUkptSVgyT2wwa2xtVWw1ZDdIMitvM1NtM04vZC9LU3pEdHZUcm5JdWtHREpNckZHeVd4RmpuRW5kUjlITU0yNXJkQXhpTjJmell1bkdockxnS3NXMUFPN3VyRTJ2U0RFYzBXbVF0Q1NqUmNRQ3VHTEZDdXJhdFN1WlJWbFptUlRDSlV1V3lNL0NZMWlnZDI5L1RWcWhML2U0blhLRnE4d3dzU0trQUZhejlRY2dWQkErdUwwYUVMdjd2bjZHWHQvK24wYlg2aE1odmttUVNwa0ErVUdLNXFwOTM4ajNnSEJpaXhaeG13UXBLQ2lRMjZoUm8rVHp4WXNYMDh5Wk02VXdRZ2d2KzdhRUh1MHlqaTdNNmtzTUV4TnkyZ1k5emZFL3QvZ3RQUGRSS1dvYUVEMkluMmJ4UWZTR2R4cElWM1VkWmpnUmd0Y3UzZm1wRkQrSVliUkltRHBBQ09GLy8vdGZtanQzTG1WbloxTk5mUzNkc1hXK2RJMFp4blNFOWFla3RnaDQyaFZHTE5IS2xKNDFyWkg0d1hXZHN1WnhLV0NJNmIwKytGRWhrSS9STFQxR2g1VUZ4clhqdWw0a1g3dDYrTHlJTXNqK1NMZ3ltQWtUSmxCaFlTRU5HVEpFdXNVUDduaUxlb2trQ1RhR01ZdGcyVjhKVzM4aTJYR2R0T3cwSUg2UGIzeFpQaDdiNVVLNi80emJtd2lYWnRscDlYNGF1QTViMyt6dU1uT01SSWlHbGh5SmVSYllDR3ZYcnFXcXFpcnExNitmdE5UMDFKYnRvSVBMTmdWOHJhTlZDM0prdEtTV1BkcUpyVDBsNTdUMmV4MFNNQjk4OElGWEJQOVBXSUp2blRaRmxzNHdqQmtrQmNrbUE1VFUyQm00dGRONlhlOTlyaGMvQ0tQK0hGaTE3MnR4L2hXNU53SkViMFRuUVNLeGNubXpTMm4wUkUwQUVac2JQWHAwb3d4dWNYRXh6WmpSTU0zNytPNGFxbG02MGVoYlVrcE9KclVkMzUvU0NuS2JpQ0ZFRU80d1JCQXh3Ymw3UDZhN2NpNGlob2s2Y0grZHdTMUFGU1V3TmdhdXI4YUNiZThGRkQ5WWVrVnJaaGtXUHYzcm50dThTRnFMVTZPWUJZNUtEQkNpcDFsamVpQ0FzMmZQcGtpQllQN3c2SDlvUjlFaU9yaTBxZVVJVnhndU1aaS9keVVkRkhGQmhvazJTZWNIbnhpUCtKK2RFeURJOW1wV0dZVHFjV0g5YWNmMTRvZTZ2MkhMN3d4Yi9QUm9BcXAzbDV0RFZDeEFpQnpjWG4rVWxwYlM1TW5OV3g5SUU4TGpQOVJJaTFBUExNeDU4K2JKcE1nYklpRXlvZjI1Rks5a3RXNUoxNHp1UTEwNlo4ckhlcW9QL2tUZmJOcERyeTdlRVBwOTBvL1NMM3B0cHNFOS95Y2UxOUwyZlczb20rMmQ2ZDlyR2pMaUQ5MVRTS2YzYkIvMGZiN1p0TmZ2WjE0OHREdmRjZVBQbWx5UG4vSDZYNzlGdGtKWWZ5SGQzODlDL3plek12cTZQR1I4VWJvQ2wxVi9IT0kzWnVYZFVlL2xiUzVSRWNCQTRnZDhyY0xtc0gvZTU1VFdMMWU2eEJwd2hXRUpvbGJ3UDlYcjQxWUFJU3BQUFR5aWlmRDVjcytkQStuUzhhL1Q5cDAxZnMvZlBud2wzWFBGZTFMNGZObSt0eTA5dmV4Y2VtYlpZQ0YrSFdody96d0t4dUQrK2U3OTJmbDA1NzNMdk1kSFh0RERlODZYTHJtWnRIMUhEZG1GVU5ZZnNMUDdpOWlmM3ZxRG13cW02dHJlY1B5bTFRL0VuZmlCcUxqQXdicENvdDB4c3VmUjk1c2MwMm9GUHp1MEpXN2Q0SWQvWHhoUy9FQ1gzQ3k2M1kvMUJaNjg5VFY2K1BxM3BQaFZIMG1scDVlZVMzZitmUnhOZi9sU2VtZU5zQ3piN3hmbmw5QkQxNGRucFYwcnJOSnJSdlgyUGc4bW5CY1BEVzROV1FuSGdONmhyYjh5ZS9mL29qUkZZOVhlcjczbEx2b2lhTVFEdGE2T2VDTXFBZ2dYMXpmanE0RTRZRFNCTzN6NDQ4WjlnNWRmZnJuM01kcm00ZzI0b2hBMlBVKy8rSlcwdXJEOVkvSDZSdWRnZ2ZueTBIVnYwYlhudW1zZW54SEMxNjlvT2sxLzVUTDZ4OHF6aGRWM0hsMWZPb0g2VGYyOWRJZi8vV1dmSnE5LzUvMHQ4bk93dmZQKzVpWlczTFdqM0svNWhiQUc5VCtycnlVNjhnS2I5R01MMXpkNWVQK1FsOVYvV0VaMlpwQ3VQM2VCcDh0RDM3TUw2OCszK3lPZWlJb0xEUEZEV1lvK0M0eGppTStOSHgvOTlaWVBmN3lWTWdZMzFBWEJ5c1Rud1JYZktBUXczb1ltWkxadVBOSG00eThxYVBvaks3elAvN0ZvdlhSRDRWNzZvMHU3QTNUSGlKWHk4YU52RHFOSEZ2blBkc01GdnZTaDIrWCticDl6ejd5MGhqNyt2Tkw3L0dJaFpLLzh0ZUVmRGszMGZBWHU2ZmxmeVhpZzlyUEJOWVlsaTNpZ1pSSGlsekorUk1qTDdHNzlvWFZOWDVLaUpUZFE4NmVCdnQ5NEptcGxNR2hiMjdwMXF5eUhBWm9vbVVIdDJoMU5qbWtDaUpGZDhVYk53YU9Obm1lMWJqcmk2OUlKQzVvY3UwWllmUGRjOGE1TWVtamNMb1R3bXZNQ2p5U0RKV2lFNnBwamZvLzd1citmQ0xHRytPbVRJaGNMQy9WVkg2dlZNbmpFTDFUZkw0VFA3dFpmbjZ4dTNzZnJxeHE4TWhRdmF4ak4rS0tBT2l2QzdvNEtrUkdPTkxNYzlVSm9DS0had0EzMkJZSUw2N01tRG1PQXZ1NG1YT0x5eis2azdaWFYwcExDaG12Z2J2NzdQNXU5YnVjOW85K1QxcDhleFAvOEpVRGs1eUFidkMzeWpoaGtwNUU4MGYvY3lCUm5DZmRaTDRBUVNTc0tJTVpuSlkwYUhMVGxUUVBpWi9mZVgvM3dncHE2UTdyakRVTG1iOHlWUHpBNXhuZGtsbEVnZm1OV25rQUIvUERERDJVbTFoKyt4ZERSb203M3dZQ2RJdkVHQkE3dXA5NjZnaHQ1ZXE4T1RhNTkrSjVDZXVSdm45SXo4ejZnTzU4Yko0LzlhL296Y3YrUGxUK25WMWNHSGdVR0FUUUNQbnZ3MlhsTmZzWmYrRmgvY05VQlNtVndYa3ZpakJTSmtEdHBHVm1KSkJIdlN4clEyOUMxOWFzM1NQZlg3bVRwQkhEN1lYZVNJeitLWFJxeElHRkg0cU50THBHNDg5NmxkUGVkQTczSmhtRGM4NnRCSW1iM1h4SExjOWY3YWNEeXkyL252K20rUXNUOUVQc0x4TC9tamFOZ1ZBczMvZHBSalNmcmZPS0pHY29heFkxN3ZRS2VsZWtXMEkrL3FLU0VCOG1PeXdlVEkwU25od2FzUHBmTlhWOHoyQ0FzUlVVeGZqMnNUMzEvY0tRa3NBQ0dMaW1KSitCTzNqbDlHVTEvZUlXTXFXVmxwcnIzd3FyS0ZCdGNUSDJaREpJTitjbi9rV1V2R2lQUFdpODNmNkFjaGpaRm52eDVkZEVHZXZLaDRZMk9iZHRSVGZtZDNjbVBqeit2YUdUQklnNW9CUUdFOElVamZuWHpsNUo2OUJneGpjbHE0WFo3cXlPczladnh6Yk5oWFkvNlEweUdhUzRKS1lBWWxoQ0l6RGdjaUlEWUdqcEFORDRSWWdKQjBaUGxFVUVOaU9McEhYYlN4eHRQbHBiZjZWMTN5ZU53YzdmdmJlenFWaDlKbzNmV1JENFhFZkc4S3A5RURYaDdmbUNyRWFVNitreDJvZ0pYdHI1alcwUHViOTJ5ejNubW40NktJdzBGNFBscDduOUVzSkliYWdHMU9DQUduUnBwVzhOMVJzQjdSN09nT2pFRnNIdlRGaTh0K3h5UGl5amw1MmJKRGcrTmZ3aEI5TFdlZkV0Z0tuWlcwNTJMcjVLUElZQnJTeDUySno5VVJWaDdWd2VNOXczdXRVV0labE5MRVBWL3ZzbVlDcEZzd1RHSThaTVBEcWR3d005cmxhNFFKRFRrQWtvaE1yK29DenlPcmcrMkFDVjZZY3ZQYUJBd3RMMXB0WURZRzZrRExQblpORU5KRUJSVnovTDBHa2VEaEJUQWpNSGRHajFIK1l2V2poZVBjd0VoWm5yUWVhRVhQSDhKa2VxYWhqbzdXSGlQdm5tUjdQQkF0d2VTSXFnRjFDZEVVQ3B6OStoM2hhVzQwNjhBd3NyVDF3SDY0bHYrZ3V5dmI2MGZMRm45ejQydWtHZGUrb29TSGlGb2RhOHRwNVRiTGd0NkdRUVN5Wkw2SlI4VDR5NXkxcXc5ZDAyZzI5ckQwcFdhQUk3b05ORDZoZEN4QkNPeTlFWFFBRE1JTmJCd1Vyemh0cklhWjRFRDlkcHExME9BOUtESE55dWpWb2pjZTFJRW4vSzB4YUhzQmMrMWNobC80aGNLMzA0VmZQNTVWN3pVNURvVWEvOXIvbGp2Y3hSTlcwSUFCVmdkcmw2NHVFa2h1ai9RR29kcjdUNEFRVU52N1dIQm9qbGJGamNhV1ErckxsckRTODBnWVViaWEzUzQrNElteHpBTkJtQ1JwSGlkREkwc3NCRjNFYTZ4djZKbzhNaWJ3MlM3Ry9wK0FWeGl1THdONG5jeVRYL2xVZ3FYWC9pSU1jcGUvS0dWdzJob1hTRldBZVV0UmdZYnlLVXhlWVU0Q2F3OWpSR2QzV0VlMU9WcGhjbXdES2YxdkQ3ays0ejkrRzdLWGZSTHZ4dkdYNWxGUWxtQUhlKytzTkVrR0ExTWdnSHh2RzR3eEsvZlJYT2t0YVZsZ0gzNVp1T2VKcFpmay9mWjIxWjJlN2dUSXp1RitPMFg4Y0MyMGhLRXE2eng2Rk9yNk5VbG1ZMCtQeERyeEdmcXA4SGc1L0FIeEErWmJKVEJhT0N4bGRyaTZvUjdteHlpRXdTRjBpbFhEYVhqejlwc05KZ2Y0TjVxTS85Z0NhSTFEb01QTU8xNTRibHV5M0JTajFIMHFSQkVMRzhaYnlTRUFHSUVWdHNKL2YyS0g2dy9yZjg0RWRZTERpVndSb0hZdWQxZC82THZtMlVPUmpqWFlwQ0NsWkV0Ymg0UkRJYVMwNVljd2wxMkNiZlpDRXJYSFBrYUlNZm5XeVNiN0Y2eXNpSG1ONjNuZFZUMGxYdmlNd1JQV3lPazlLeXBjaDZnMGM2UVdCRzNMbkJ5eDlhVU9id1g1WmFNcHR6UzBYN0ZENGtQTEpVSjRQckdzd1hJSkE0dTRRYkRIUTVGOG9EZVV0aUNna0pySWFZcEUwWlE4b2orY21zeGVZd1VUNnNBYTA4RDQ3RTBNWndpSnplN08wVGdDbU81VExTOHhSTlJzUURQUC85OFVsVTE1SFVRTVFoYU1GRGduSkxUMmxDaE04UlBzLzRlN1hJVk1VeTBRRUlFQmRKS2lMV0FrMGNOcHVQemx3YTA2QUlOVm9CNDFvbTlVUXN5bnRGaWZwcndsUWhyRDZQdlVSTUlxdy9DbHlkWGNtc2xGMHhIQndlU0pVYXNRU1JRQnJZL25jd2lwaTR3TXJqWW9nSEVEK1AyQWFaQTg3S1lUTFJCYVV6eWJaY0ZIWTZnZUZycDBDSGlpNk5majZDeFJJamdNYlRWV2FDdUVJbUtkNGMrS1FVTC9jQVFPaHlEaTZ3WFFRQXJFZHU2cWkxZThkU3l4SGc5ZW94N0M1SEUrc0tZTEJPdE5ZRDlrWEJsTUpyYnE0a2ZoTy9lM011SVlhS04xdmNicWpSR3R0T2QwN3RKYVV3bzYxRys5clF1NUZxYitIRlY5MkpJTDlQTTAyK1R6N1dKMEpvSVhyVDhWM0tORUwwTERISERoa1hTallDU213VlJyaWxNbURJWUNCOFNIbWVlZVdZajhYdTV4KzNFTUdhQldHQzlnY2t2aU8zNUNwNlJzVnJxVDlicEtzSHdVMzJYQmtUdytRRi9sSllmM09FWlh6OUxBNVpORUNMMkhvVURMTVFwYXg0WGJ2V3ZaRXdSRnFGK0ZIOXppR3NMY051MmJiTEZEV1V1RUQvOTRrdHdlOW55WTJLQk54NFlxbFZPSzQzeHVMU3VIL2FIdGpCMjd5Y3JnVlkxQ0pSbTZhRTRHcTRzanFOa1JsdldFbUtJbUNHR0d1Z0hxSUtLd3o5UXRSRE1EZFZiYWVtdVR4c1ZVZU42ckVHc24wUzl0Qm5sTlJFTG9MWWVyeGtnc2FGdmI5UFR2OVhKZEZmT01NNzRNckVqakZZNXgva0Yzc1NHSEprdlhPTkF3bW5Wa2ZvUU40Z1dGa1VIaUFsQ3RHQVJ6aEp1TWpwRmNCNWxNa1pyQXlGOFUzdGUzNlJmR0ZOa21qTjJQMklCMUlxUFl3RTZQRkRqQjlGajRXTk9CRVpiNVdSMlYxaCtjbUFxaEZNa1Ivd1ZWcVBqcE40Q0dlQkF3T0tESlRkTnR6d214R3RRKzhmY3RZTjd2NWJXSFhxSGZiUEI2Q25POHN6N0d5Q3N4RjkySHRRa0VhSlprczFaWkIyRUpZRG9zeDBkZzJMalBDRjQySExGNXlIT0Y0OGpycGo0eDdVdGVGdWJXaDJlOVNWckExdTJDT2tLS3gwYllvR3c4T0FXWTlxTXcxTXppS1NIeXdackNTUFdCNEhDR3NINlpUSmhFZVo3TXNIaEFzc1JKVFJZZnpnYS9jVmhDU0Fzc2NlNDNvNUpFR0NGUlh0MGZVUUxJUWxMMEl5ZkpSSFFMTFZaRzErUlFvaVlZQ1JsTFVoK0lBTWNMZUhUU05pSjBBekRKQTZhRUJiUkxOa2VweVUva0NEeEZVVDMwTk5EY3RBQzNHUEVERkVDWXdZc2dBekR4QlIveVE5TkJHTTlOb3NGa0dHWUU4NkptaGVZY1BNQUdZWmhvZ1VMSU1Nd3RvVUZrR0VZMjhJQ3lEQ01iV0VCWkJqR3R0aFdBRldpS21JWWhoUlNiUHUzQUFHTW9MUTk4VWtpbDNtL2Q2b1FWOFd1QXB0Y1RxWmg1bnZITlZWcHhYZVVrMG5VTzFSYmFvQXdnOG9jS3FtenlXWW9ST1dubFAxK0JabEVWVm1SRUQrWDdlNnJ1TEh6cWpZVmxaTkpwQlZQTEJlN3lFZC9KQzZtZnBkMmoxNjZRbFZvQmRrTVJWVm1PMDR0KzkwODhYZ20yUVFoK0I4bVVmSVFNcG1xRGI4dEZvSmdtL3NxZnRmRmRNUlJSQ2JUZ21paStLODRuMndDREpTV3hST0x5V1JVZVY5cENka0F1UHlxcWhidHVITHBQRVU3dUxXZ0pMdU82Z3JJd2lTVFd0V3Q3SGN4TmZlemU1WTRpZXFjWkducXlxczIvYjZjWWtodDhWeW4yRG5Kd3FTSzhKUlNQREdtb1pUY1JSY1hLT1RLSmd0emlJNldWWTFld1RrQWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1HWVp1TmRGdk5BTVdYWDFaR2xsOFZVWFZUVjRTR0s3YktZYzdPelUxdWxXdnErVWgyVjc3NW1kem5Ga0VXMVc1MlVuT3drSzFOWFZ6NDZyVnM1eFpDdHVhY1VrSkprNldVeDZkRFJzbTVWNVhKWlRDbUFQODZnS1E1U1pvaW4xdjdGSmVwaVV0U2lOc1ZVVGliVDZZMU9KZUlHVHlGYm9NNDdVbk8wcUdwaWxhbnJyUzVTdDJZbjFiZVlLejV2Rk5rQVZWR0tMMC9LblVrbXN6V25wek1wV1JIM1ZTa2tHNkNTcTdocjVhYVpqbjEvcEFrT2NwVFlRL3lBTWtwOHErYVN5ZVFzeXBsaEgvRUR5b1MwekRUVDc2dWpQcVhVTHVJSEZGVXRYbks4b3BoTUppbEorY0F1NGdjVWNoUnZ6ZTA1d1pIa1VDYVQ3VkFLRC95QkNzbEVrbFNIamNUUGpSRDhVVUw0bldRU2k5UmRUdkVaNDhsbUtJb3lHWll2bWNUV3ZMNkY0a09jWkRPRTRUZlpJVzZ2dGVOVEFYQXBEdE4rYjRpQXFxbzJzYWdiazF4SFRqS0x1am9uMlpOc09rcW1mWjhjam5wYmFvQ2lVSUdEN0lwQ3RoUW9obW1DeXk3aHI2YllWd0FaaHJFOUxJQU13OWdXRmtDR1lXd0xDeURETUxZbG1SakxrSm1TS1RkUWM3eEdiZ3pEQklZRk1BR0J5STNvUElKNlovV2hQbUxMejhpbi9QUjh2OWRXSEttZ2lzTVZ0TDU2UGEydldrK3I5bjFLbFVjcWlXRVlGc0NFQWFJM3Fmc2tHdGgrRUEwU20xRWdqTmowcjFsWHRZN21iSjdEWXNqWUhoYkFPQWZpTmJYWE5CclhkUnhGaTc3WmZhbjA1Nlh5OFlKdHI5SGpHeDluSVRUSXVnOVgwZi9XcnFmRFZUVjBjcjgrMVBmOGdaU1JuVWxNWXNJQ0dLZkE0cHZXY3hwTk91VVdNcE54WGErU0d3dGhjSDRvcjZBbmJwNUszd2dCMU5QQm1VOFgzRGlXcnJsdktqR0pCMmVCNDVDQjdRYlNaeU0rTjEzODlFQUVGNTc3Qm8zdEVqMUwweXBBL0tiOGZIZ1Q4UU43eExsWDc1OUZrM29NcFBkZmZKMll4SUlGTU02WTJuTXFMVHp2RFc4Mk41WWdtUUxYR0Q4RDA4QzlGNHlWTG04d0lJU3pieXFpS1djTnB6M2IySXBPRk9MR0JWWlNzOFdXUmRIQ1ZiV05FbzJTczBxa0pYYWltZGI3TjFJTWk5WVVrZDFCekM4Y1FVTjhjRkwzQVhUQitISFNMZTdRTlkrWStPV0VDV0N5ODN4cVVYQ2oyQmVTSTl0SjBjSlZWVTVIRnQrVWNBSVlMK0tub2Ywc2RoZEJmMjR2NkNZU0lGdUYyQVhpL2ZrTGFQV1NwWFRaWFpNNFBoakh4TndGaHZCbFR2a2Z0WnF3WEFqZ2hLaUtYLzN1dFhSbzNsQ3FLLytRRWdtNG5QRWtmbURWdmxXMFlEdkh0T0RhK2dKQm03MW1HVDIzZVJVTkZRbVFRTUJ0NXZoZ2ZCTlRDeEFXWC9vb2M0WUdIeXQ3VVZoK0V5blJHTjVwdUhRNTR3RjBqcndtc3NGek5qL0gyV0FQeVBJR090WlI3S2U4VUVLWFRaNUVEMTF4YzBCWFdZc1AvbXYySEpyKzV2TUo3UmJudnY4NE9WcW5VenhUdC9OSDJuTkhDZFh2K2pIa3RUR3pBRk42WHM3aTV3TVNIZmYzdTU5T05CQytXUnNmcDNPVzlxZmlyMmMwRWo5a3BKOGY4TUlKU2NyRUE3RDJKajgvSzZob29SNXd6cGJWSWEvVDRvT3dDaE9WZUJjL2tOejVKRW83djUreGF5a0d3TTFORzFGQ1pnQjNOeEhGRDZDekl5OUFDMXNzZ0p1TDJyOVZlejl0Y2c0RjJMTkVYRkxySUZsZmZZc1VTVHVDaEFhMmZ3amhRdHp2OVBNSEJyd09oZEZ3ZC84WlJPUWdnQ2llUm55UU1RZEg2elJqMTFFTVNDMjhUNGhnVjRvMjdvUkhZb29mdU1vWis3Z2ZyRDBVUFk5Wk9ZYkdmSFJsRS9HRHBZZVk1T29SbnpWcW43dWx4eVRiV29FYTF3cHI4TjQzZ3J1d2NJdHhYYWo0NEp5cHhTRkxheGp6TWQwQ2hQWFhvc0RZT2piaFptNlI4RWpFY2hlQTFyWllXbjhRUHNUMm5oTmJvQ2t4c0VnUmovUW5kSmtwV2ZKblJnOHhFeG90UGdpckVQRS9mL0hCOTE5Y2tIQldJR0pyaVVEOXp0RHhQMkM2QU1MNkM0Vld1cEpvMmR2bU1MenpDRVBYUWJRMDhZa0V1TG12bGI5R3kzWXREU2g4aVBPaEFEcVVJSS9vTk1JV0FvamF2OVZMbHRIaDZockt5TXFVTHU4NWx3K25TTUJyRVIrY2ZzRlkrYjU2dHE3ZFFJbUdVV0dKTm5VK0NRMUZ4Q0tUV2dWMmMrc1AxWklSVEJkQTFQbUZ3bTdpQndhMU16YlJaZW5PcFZMRU1MbGxXcTlwaHEzR1lQRTlEWXpTS2o1anB1SHBNbjJ5KzVDVkNkVHYrOVlUYzJUbTk2SDNYNDhvZ3d0WDExODVUU0xTYWNtZktKYW9CNC9RM3Q4OTZ4WEE5RXNHVU1iSWdaUjYxcWxCWDFmOTNOdFU4OXc3RkFwVEJSQ1pYeU94UDNTQjJBa0lpZEY0R2tRUDhib0YyeFlJTVZzVmRES01FVGNYUkRwb0FaWm9YbnFlNVVwa3RIbzlDRjBnSUdDVHp4cEdzOWU4RzVZSXd1b3JEZUFDZCt2WG14S1o0OTlWMG9HUzErWGVKWVFLR1dKa1g3TnVHVWxKblU2UzEreTYvQTl5MytHWkl1OHhqWHBQdVFxTzQ3dy85dHhlUXNlK2Q5Kzd0dmZkU09uaS9RLys4d002Y1ArTFhsRnNjV29ldGJwNktHVmNNcERDeFZRQlJOR3pFZEpHekpKdGNMQUNFeldtRnc2WnljYVRDWmovQnhjVkZoMkdteGF0bVNJeXN1dUVNRGJFNmpEc0ZBS0o1RVlvNFVPYzc1WlRibzA0b2RFbnE2K2xCQkNpQi9FemtwREFOUkF6V0lLaFFNbkw4eUxSRWFpVEJBeTQzRmdZSkI0NS9QWXFxaXBaS0lWUEE0OXhIQnZFQ29La2l1T294NE9RNWJ3OFhicXVBSllkeEE4aWhtTjRydmlVMk1DSzA0dGY2czlPcGQzWFA5VEVIVDRtQkhpL0VNVGFEOWZTU2VJNkpZeFNIVk1GTUNuSFdDME9FaVZhalNEaWdSRENveXRtV2xZTTh6TzZoSFU5TEQ0SW9BYmljTXQyTHBQaUNGRU01dVpxR0kzemhTS3poVFV5d2JETUlIekJCQ3JRNjJETkJiSUNqVmlUNE9vRTdoT0c1UWJCQWFuQ0ltc3RyQys0cEJDaWc2KytUMGZlV1MzUEo4T3llN3FJZHQvZ0ZxMjl2MzNXYStrZG1MWFFLMzd0L255YkZEWUlacWF3SG9IZWhjMmFkSWs4OThOMUQ4clh3R0pzVXpTR1dvclBkQjJzcForKytrNVlvZ3VsQUZZLzkyL0tuanJHOE84U2Q5Tmd0S3d4MnVYU1I3MWdPL2ZZSDJpVGcrdXBCOElIaXkrVStFSDRYajkzb1p3d2N5SnJEdU1GeFBrdzNRVkppV0RpaDVoZm9NUkhvTmRCOUNiMUdHQkkvSzVONFA3Z2FvOHdJUjdYL3MrM2UrTnhjRVZQbWpHZVdsMDExSHNkaXBJaGdnQkN0WC9taTFMY0RyL2p2b2NuL2ZFR092NXRoUlEySEs5ZFVTYXYwNHRmNXEwajVYRllnNXE3bkZaWUlGMXV2RC9Fc2QxanQ4bnJELzd6ZldsTkdzVlVBVVJ2Ym5PQUVLSm4yR29pV0hGNE80Vkx1TDNDY0hGTHppcVZ3aGZPQ1AxUUpLcjdxMWxtZ2ViNmFhQkFHUUkxKzh0bHN1YlBTSmtLckVKMGVJU3E3VU9SOUlQQ2ZVNWs4UU9hZUdYZGNvbmY4MW0zdXEwNENCbkVDTUlJRjFaN3JWN2NJR1RZVWoyZEcvc2ZlSW4yQ1VzUjRGaW01NzJPZnZXOTNMYzg2eFJwV2ZvQ0VXNzVzMVBrNDBQQ0FqV0txUUo0ZE1YOXpYWmo0VWEzSEhBWFdZbElSTVJvSWJKV3lJeUJxdEVjbzY5UmM2eWFFZzNOTWdzVjYwUE4zcHpOcTZWQWFXUHUvWTI3MXpLNmVtc3kyTWdzV0pQVGhaZ2lkaGlvaXlSUjBNZmYvQWtSa0phWjU1eFdqZ0lyVGJNTVFacE8zQUJpZDdEdUVFZkVoc2NuZVVRVEhQL2VmYzhSQnd4RVM0OGw2Z3JEQWpRMUJxZ2VyWkxGeXJEaW10TUpBa3NRWW1vVjRMNGlXUkZPSWdJWjJFazlncmVqUWZEQ0taVUpsNXJqMVRMaGtpaEE3QjY2OHVhUWNUNVladWo1TlNwT0VOTFBsaXlUaVk1Z1FEd3ZGUmJrNVdLenlyb2hEbDN0bmIvRUJZQUFhVUtwMWVvaGJuajBvd2FQRVBHNm45Wjg1eFV0aDZldXI5NXpIZ0txN3p0Mlo1Qy9KMWVRK3I3Nm5mc3A3TitIVEFaSkRZamdUNnRuUjJ3TlJuTmtWcnlBK3I1d0NXUUZhbkUrdUx4bXh2ayszUnRld3VCRVUzcHpVY2c0MytRWFNvSmFabjBESEE4bGZ2NnNTU3NBVWRKY1RaU2orT093eHdXRmFHa0MrZU1ETDNvVEdDbW51T1BaKzM3M3JIZGlTOVdzMTJXTVQ3c2U3bk9WU0pSb3REalYvYjArOU9weXZ6RStDQ3hlQTRKWmlVMStING9CRU1IYXBWT3BwdlJrcnhpR0V4K0VKV2sxa01BSUY4MEsxTURBZ2hjR3ZCRDFPRjhnSWhIdEV3VTZPV0NsK1VNZjU3c2dTTDh1Z0REMkRjTnQxZUo4bUF4ajFkWGl0SG83SkMwTy9uTjVvM040RGpFRFdicU1McXc5MEU0a1RiU2FRRmlLUjJUbXR1RjlrTjNOTGhyamVhLzN2Y2N6Umc2UXI0R0kvaWd5elBwUlZ4Qy9mYjk5eGl1d0xjOHlMb0F4bndpTkVoZXQ2NlBsZ01teUJqQVV6VTJteENNb2F3blhEUWF3QXZORlJyaGF2UFlxa1JpSjFZQUNMSzcrK3ZZRmxDaGdHck0va05tOVpkYk1zRXBRSUdiM0dvanpUWHE4bUFaRTJES1hTRUFBTVhPdlpzNDdVdXhnbFNXSmJLeFdFQTFhZXdxVElXRDZwQWNTSWdDWllkUUxBdDl5RjFBbjNObERyN25GdElXd0dDRnFFRS9VRHNKOXhvWmpzQVpSZmdPQ0ZWUUg0b1NXd1JoMWkrdDNsNUVWZVh6alh5aGMzSDNCVndraHZDV20wMWtlVDdCUldIdjlpQlhjMGxEVFhQeUJ3UWF3NnZ4WmducHIwZzdpcDVGMTZ5V1VPV21rMXlxRGhlZnl4QVN6aThaUzl0U3hzblJGc3dZaGlQcWtCOHBYOEI2SC83WEs3L2syMDhaNlhXMjR5Z0RpbWZQU2RLOExqYy9VeEEvWFF2d0NKV1lDY1VJWFJVSnN6MGh5NVBpbUpXUkZVTkE4cnN0VmNkOWptMmpXWHlCK2FFWS9ia2RQTHpCaWZ5aDdRWUlGUW9wdURyc3VqQTRCdzNaVUNGRzl4LzJFU0NGT0NPdE9LNWJHY2EzQTJSZGtnMlg3M0sxTlMycWt4WGQ3U2FQWmZoRE9uRmZ1bGNKWHQzT2ZQSVlTbUVnSHRSb1dRQWhWdEpJUnFPdkQrN1VjTUNYa3RWcG5pRlZCYTl1N0Y3eEg4Y3lZbFZkU29vRkZpM3dUSUxKZXI0Yzc0eHNxOWhjSVRIL0d4alNnRlVKTFMxQWtJcEFjMFdKK3NNemF6aGdmVUtEOENaOEdYZ094OHdlRVZuT25tNE5oQWNSRVp3dzNpRFZvaWJNeUtDdVo4ZlY5TlBPTStDenpRZGxOSWhZL0k5Ym5yeU5EVzUvak14RWpuQlJtTEpBUjNrRC9POEs2L3FldnZ2Y09SSWhIREFrZ0xMOFRJWDZ3L3JEZWg5V0JLNXdsWW51WTlCSlBRUHdTTGZhbmdld3RZbk9CUnRNalM0d3QxUHE5dUdiTzFCbDBldUVnWHVkWEVNaVZqVGQrV3ZPOXR5d21HSVlFME9oVWwyaWlGVkhiQlUxbzRrVUVFMW44TkxTV3MyRHJjMkQ5WHJqS2w5MTFzOSsyTjZ3Qmd1eXZkbDF6M0djckVLajlMZDZvcHJjTkNhQ2hMSENzVzlFMDhiUERhQ3c5RUp3VHZmQVFTblBna2llNitHa1lXWjhEYmpINmVFT3QzOXZnUGk4anhocUVGRUM0djBrNUJSUXJ0TTRSSzliK0dRSENNMkRwT1VIbitwbkYrcXAxY3FFa3E0MjkxOWJubUI2aUJFWVR1TmszVC9YVy9QbnIrRGhVellzWnhUdEcyK0pDdXNCRzF2U0lCckQ2ZmxyOWhLd050R0xuUnppZ1YvalRmWi9LTlRoaUFjUVdOWWxXWCs4RGRYclk0TTZpbnpkUVlUUE9ZNE5ZK3J1bVZaWjlWOGREZVF0S1VlSVoxQ1BXZm1UTWdBb3BnRWJXOUlnVUNKMjdNMlNGVEhiWVhmajA5TTB5djlUQzZBaDlxNkd0My92V0U4L1R2NEtOd1E4Z2tOMEs3RnNHbzlYMldZV2dBb2g2dldpWG9jREZoZEFodnNlQzV4LzArQVlhYW9DeUdaeVB0QXNFUW9lZTNnWGJGeGlhSkcxVjRCYmZNcXRZSmo5Z0RTNS9NZlNZZXdEeDVOSVo2eEJVQUNGUXg4cm1FeE5iQnJadjJuS0YzdUVwWDA3MjF1VDF5ZTRycDhCZ1VuUmY4UmlDbU9WWnRBaG8xMEV3cTQrNXgxamhQUkRuWXhyUTRvUG82RUM1UzdCK1h4UlhvOStYc1E0bnRCV084WTkremVCQXkxdEN5RmpNb2tldytLQVY1L294YmxnQTQ1RDh0SHpiSkNiaURiaTQyTDdSK24yZGVkU3hhejRMbjBWaEFZeERibDU5RTFVZnI3WlZZaUxlU1BUUjlZd3hXQURqRUpUQk1BeGpQbkczTENiRE1FeXNZQUZrR01hMnNBQXlER05iV0FBWmhyRXRMSUFNdzlnV0ZrQ0dZV3lMZlFWUUpXNUVaaGpnVUczN3R5QUVVRjFCTnNTaE9reGJhM1AzNk4zbGlxTFk4a3RWbDB6bFpCYkpkZFpjSHpVRUtsSDU2TFJ1NVdRU0xsZVNYZTlybVlNVTFkcXJEdmxuWHBzLzFhMGdNMUZ0ZUY5ZHlreUlQNW5FYUtWYmxhcXFzOGxtS0M0eTlYZnVWcmx1aGZpVUZXUXpYRUw3SEcyS2FZVzR3NlBGODNLeVBsVkM5bWVMM3plODVlTWpZTWVWdTBvVm9pSlNySDlmM2RhdU1uUG4ySjNGWkRLWHArUlBVZDMvdU5qQndxNGlGeFZkMWlLdmxFeW1QamxsdEtxb3RoajlwSXEveVhwRkhkMnRZdU5pUlgvaVFIR3FreXpOMFNvaCtESC93M0V1eW5HU2hha1M5N1ZxZEZYTTcrdWkycTFPc2pCbXVyMkIyT3AwWmhPbFpwT0Y2VmErcVp3WWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1FWWhtRVlobUVZaG1HWUtPQmRGblBYZ1lPRlNhUTRWYkdSQlhHUVd1VWlwYnhqbTR6RkZFTndYNU5KS1JDZmJjbWxCbkZmNjBndDY5U205UXFLSVh4Zm84L1dBMnAyS2gwcXNQNTlUVnJjcVUxYU9aNUxBZHhiZmJTRVNKMUNOa0FsS3E5MzBSRHRCcGdGdmt5dGxLT0x4QjB1SkJzUXEvdTY2MEN0TTFtaHVUYTZyL05TWEtsRmJkb29wcTY3alB1YTVLQVBoQ0E0eVJhb3BlMnowb3NjUDFiL05NTXU0Z2Z3SHhqL29ROElnU0lUU2FjanBYYjVJd1c0cjhsSlFwaE1KbGxSUzJ4Mlh5ZlVPV3Bua01uWVMveUFNbVgzZ1NOVGxEM1Z0VnZ0OVl1N3FYUFZEVEhMdllDNDFqbU9IaUFib3JycXorelFwbFVabWNDZUE4Y0tGRWY5ZjhsMnFGWEpyclJ1WmxtQit3NGNIcVU2SEl2SVpzQnJjZGhSL0lCQ1NRVmtFa2ZwcUNYakowYW9KL01zYTRYcWJYcGZsV3d6djFOV2pmdUhBdHJuSUp1aWtHcGJrV0lZUFM0Yi95M1lWZ0FaaG1GWUFCbUdzUzBzZ0F6RDJCWVdRSVpoYkFzTElNTXd0b1VGa0dFWTI4SUN5RENNYldFQlpCakd0aVJUaE96Ly9EdmE4NSsxVkx2alI2cXJxYVhXdmZLb3c0WDlxRzMvVTRsaEdDWVJpRWdBTnozNE9tMmJ2N3pSc2YyZmZVZmI1aTJucmhNdW9CNi92cGlTVzZjVHd6Qk1QQk8yQVBvVFB6M2I1cjFQdFpYNzZNeW5iaWNtTmh3NWNvU3FxNnZwMkxGajhqRzI0OGVQVS9jZVBhaDl1M2EwYmRzMjJyaHBFMldrdS85UlNrbEprVnU2ZUo2ZG5TMGZaMlZseVQzRDJJbXdCQkJ1cjE3OHVvNGZTcDFIRDVTUGQ3NjVpcmE5NkQ0SDEzaUhlSjU3eFVCaXpHSG5ybDIwWmZObXFoTENCN0h6eDFsbm5TWDNFRDlOR0lPUkxVU3dTNWN1MUVNSUo4UDQ0N1ZsWDlQU1Q3Nmw5WnQvb0hnanExVXE5ZW5la2FhTlA0L3ljN0lNdlNZc0FkejU1bXJ2NCs2L3VvUjYzRFhTK3p5ejkxaEt6a3FqTFg5OXgzc3RDMkIwZ01EQndvTWxCK0ViTVh3NEhUbDhtUGJ1MitlMTVMQnBGdDVoSVhUdGhPV0hjNXUzYkFrcGZBRFg5K3JaazlxM2I5L2tzOWt5WkdvTy9VUVQ3MXRBbjVadG8zaWxRbXpyTnU4V0lyMldmaU5FRUVJWWlyQUVzR1pEaGZkeHg0djZOVGtQaTFBVHdJT2JLb2xwSHZ1RXdPM2N1Wk8yYmQvdXRmSWdSb2VGK0hYcTNKazZpeTA5UFhpc3RhdXc2TEl5TTJtWEVFNklwNjhZK2hNK2ZCYkVGcStCeU9JemV2WHFKZCtMc1NlVEgxc2l4UysvWXhiTnZITVk5ZTNSa2FMQnAydTMwNVJIMzZKbzg1ZjVIOUhBZmwxcFVFSFhvTmVGSllCMUIyc2JYcGlaMXVSOFNtYkRIK1B4bXRCV0IrTWZDTkRxMWF1bCtHaG9RcVhGN0l5Q2F5RnUyTTQ0NHd6YXUzZXZGRlFJb1Y3NDhCekg5NG56K3MvVnpxMVpzNFoyQ1RIR2U0UVNYY1phZkxwMkd5MzkrRHNwZm0rVTNDRGN5K2hOejhyL29ack00bkVoZ29NS2JnaDZUY1JsTUNsK0JKQnBIdnM4MWhhMm40bjRIVVN3VTZkT2RJcUl5VVhMRGRYRVVBUHhRWCtpNXc5WWtJZzVEaGd3UU1ZTEdYdXc5T052NVg3Y2lINVJGVCt6Z1hCWDdLNEsrak9ISllDRGxrd1hscDNiQ2d4VTVuTEJsNC9MYTFnZ2pRT0xEMEswV1NRMTlPN21CVU9Ia3Rra0p5ZGpOTGkwTUkzeTlkZGYwOCtGUUxNbDZCL0ZWVVV0YXQ0bVIvMDJ1Wkdpa3FJb2NrK1l3WTZseUxDcDJndkVReVdiRG1jK1J2Rkk5YUdqY2g5VS9BNGZKQ3I3Z3VpUTJPZmtFdlU0alNpanRmdmNEenNiWDl1eE00VWlyMlBqejZyOG9XRTFBQ1E2K2dnWEhEOVg1ZTVxV3I4bGNFSUdzY3RnaENXQXljTEZUYzVNYi9ZMVRBT3dxdUJlYWpFK2FRR214ZTRmRDFpWHAzRFdOeW9rSDFwSmFYc2VwQlpIUG5MM1dEbUV3aVVwcENSQjRJVE9KWGtFRU9ma2Vvd3FhVXBZbit5a3d4U2ZBaGdVSVh6Sy9LZko4ZWJMalE2cnJWcVRlc1gxcE41NEJ6bW0za1NLVGdUclgxa2FVZ1RmTExtK2tlQmVPZlVsVXNYdFFuTERONjZIMkNUaWlCViszR2xOdkFNUlVnRHJEb3JZMEx3UHFHWlRoZXo0Q0JkMGlQVDQ5VWd1alBZRDNFbkUxVG9MTnhka0NyZVN4U2p4U0RyeU5hVlgvSlpTRHErVVlnZmhVejFMYnNQb1UxMnFXL1NFQ3FyaXIxaVJ1cWMzQTJFQ3FwU0lPS1lKY2R2OGJaUGppckFFbFJlZkpoZEZCMWlFcysrKzFPODVDQ0ppazFjV3ZlUlhCSU1SVWdDL3VmdEZXZGNYS2VnUU9iaWhrczUrdVlpWXhpQ09wdFhxTVlsSjZ1Ni9VZHFPaDZUYlMwa2VIVlBkZ3Fhb2l1Y3FqOUNwYmtGMG96WStSd29sR3NxN1MveUtueDZIRU1Gb0VFajhOR0F0bHQ1OW1iUVV3eUdvQU5ac3JBZ29mckRvT2x4NEJxWGxuU1NmUStSUStvTGVZRjlRUUgxd1k2VzBCbjA1V251RU5tLzVqZzdzMzArMTRuSG5YR0V4ZGorVlV0T0NXNHhieEd0MjdxaVVyL0ZIbXpZbjBkbjl1UTZSTVkrMDdROVNhdVdEMHJWVlBTRStQSkNTSmgrN3JUOTVSUEd4OWhwcFh1S0pIMUQ4aUp2bTlzSUZWdDU0bVJ4UFI4K3RYN2Y1QjVyeDFMdlM1YjFxZUQrNi84NWhsTm1xcGZjOExNRThJWVNWdTQydkhocFVBUFZsTDk0WENPSHJPbjRJT1NjTTlSdnJRd2NJYWdGOWhkQmZXY3k3eTk2aGxSOHQ5eXRpdzRaZklyYVJUWTRmMlA4ai9mT2ZMOUtXemQ5Uk1Mb0xFV1VCWk13aWJkdWZLSFg3dzhMcVU5MmlwN2ozUU5VRVR0VkptemltcWcwaTJTQ0ErTDlvT1lveEJDN3U3c2JKRGJYZjJlVDZ2OTgxUEwveWVuSWRyaEZXNERNVURXNjY3M1daMVFVb2RnYWxQcGJoTDM5eEtqMzN4dWRrbFBDU0lFTDh6bjZwaURKNzV3VzhCdDBmbUFqenhRMGxmcTFCQUt2djZhZEthTWVPd01YUzd5NTdtOVo5VTBaMzNGbEVhVHByRUsvYnYvOUhTblNPci8rT3FpZE5DM21kSTB2OFM1clptbExIWGtwcFl5L3hlNDFXTUkxNlBjUVY5V1I0eW1yUTNwWVZSdWtLdWttK0VkbGVMVG5UVTJTbTI0ZVJLYll5TFN2K1JxbGJIM1FuTkdSY1Q1ZlQwRzlFSHRIVDNGK2xRUWk5NzlhUUNFa290bXhxY2tqOXhSQS94eTRnaW9JQS9yOVB2dldLbndaYThvZ2FDMkJlVG5qbFdXRUpZTTk3eHpRUlB6a09TMWlLclhzMkhJZGIzUGVSRzZVSSttUEo0b1ZCeFU5ajU4NUtldTNWRjJuQ1RlN0JDdXZXbFRVU3Y5VFVkQ0dPL2pPbWFXbnhYWVpUWDdsVGJMdWt1Q1gzQ1R4Q1RLMDVTTWRYcmFGallzUGo5SnV2YVhUK1M1RkIzcjU5dTN5czFSRHFnWkNoeGc5Rnp1ZWVlNjRoRWNOclZxNWNLUjlyblNObmNjbUx4SEYwRzZWdGZjaHI3WG5kV1ZWcDBER2RKZGdRQjFTOUNSRHBFbnRmazREV1h6Z2NxcUZvNEsrY3hWK0dONnRWZUgvM2hnV3dqYkRxOUwyOU5TS205KzFEcjhza0IwakxQVWxPZ05IaWZHM1BPWlU2ang1QU94ZXRidlEraU4xOThjV3FodmNWc2JxcnI3bFJ4djVnNlgzeCtTcnBHaDg0NEJhNmRldldTbmUzZTQ5VFpjeFB6OVRmVEtlMmJVK2lSS1J1ZytlK2pidUVXczhJYmdrZVhiWkNXSXUva1NLb0YwQzBxMEg4VUN5TnVyeEF4ZEpyaFNXM1pjc1cyaTZ1RHlXQWV2RkR3ZlB5NWN1OS9jWjJ4MUc3alZwOU9ZTG8yQUZQVnRlejZlTjZXcEdmRkRzSGdvQWVsOWN0ZW03MzJKTUpscVpnZ2laQk91WTJPYVNzL1ZMR0FCc2QrK1FEaWdib1F2RUY5WUMrVklRUi93T0dKMExuWGpIQSt4anhQSXk5d24vTU52MVBrVnRxYmx2YS9NVGJQcTlwR29QNzh2UEdnZ2dYRitLbXVibUkyL202dlY5NkJEUE5Kekd5UzFpSUVGVGY3V2h0L0xmaHdhb0RMUWFHemdLbmVDeEVsN0FBOWFCNEd2UTc0NHlnblNLNW5kMDFWNGREREVYUWk5OTV3bHFzODdpL1dkejFJVW5kL0NBNWpteVRGcHpiWVcyd0FqMjY1ZzduU2RIRGM1Zjd1RXYxWm9ZOVZjOGVLMUV2ZWdubUF1ZUk3MVNyMW8wT0taOHNKMFZmRHlnRUVabmlhSUFFeDZCK1hSc2R1K1hLL2sydVc3VjJHNFdEWVFzd3MxZSs5ekY2Zms5L2RIekkxOEFLOUdYSHpvYUJDbjM3OXZOcndlRlluNzVuQ09GemkrV1dMZC9MZmVmT2pkM3Z1UzhFamkyY2Q5NEZkTkh3aTV1SVpyeUFHQ0JJeWcxZEZROVgyWmVxcWlycG5xS0R3NmgxbGhIa09sL3h3M3NpcmdnU3BlMnQvUjBmZVI4clFud2NhcDBRcE9Qa2NOV0w3Ymc0VmlmMmRjTHJQTzdaMThscnZNLzE1M1hIc2QxNi9YQzY3WWEvMDVIVC8wNk1HOWNWMXpWSmNEaWVlb3pVWlV2Y1NSTGZEcEJtOHNJRFkrbTFwV3RsNXdmRThLb1JqUWV5Vk95dURudGFqV0VCOUZmQ0VnbDZOeFp1YnlEMHdxakYvV0FwL3Z6c2dWNkxNQmdmZmZTK2lETldTR3N5M29BbGgzaWVJMFQ4VDBNVHl4VGR0VWRxM1JsNkkrSUVzUVNCTERsLzRnZTAvbURmRVZueFNrTzBqYVJycVFvWDFFRkp3dGdTbHBqRFFVcTlReFlvSzRyWWkwMjJwOEVKMHA2ckRlZEpsYTBjNHJtRFR1bWVKOFR2WW1JYW8xNXhBOUd5dDVxMHVpbGJkTFdCNlBpSWtoQmkzdCt0WTg0SmVQNjVOejZqY0RIc0FnZks2Sm9GNmdJMU9uZHVzRDRSTHp6M1BHTTlzdElsRGxFdWN5TFE0bjlKZll5dG4rTFBYVWIzeUJXalI4dnBMS0hBV0N2Z1R3QURpUi9RRWlCcENSYi9jMGZWaEFCQ0JHWHZyUkF5MWYxY0V6djNlYy9lRTdlVDEyT0Q4Q251ODUxejJ0R3NHVGNUNHdmaEFyc2VmNTdVUVVQOG5sYjcvVnllandaTFAvbE9XbmlCV0xCc2JWamxMeHFHTFVBa08vUXh2WFgzdkdpYUtLTFdUNThvYWR1MmJhUHpsNDhhSzJzRWR3YklKTStiKzZ5M3RoRFdJaXpIZU9LWVI5QlNEQWhnZmNWTytra2tRWkx5TzFQTFlZVVVMbG9XR01MbWE4a0ZFejlRN1NtcFNiVEpMdzBsZG03aGN4Y2lleXc2QmM4Y0RjLzFGcUYySEJhajZwQ3ZLL25qRGRTNVkxdGkvS1BtNUpKNi8yeVJBUG1DQ0YwaEdJcUFJUWc5VHBOMWdZVGp2bVMwcG5CQnhoZGRIaGh5K3N0Zm5PWXRnTWJFbDllV2ZpMEZNQklNQzZEdmhPZnV2eHBKMzl3em53NTgvajFGRTFodEtIM1IwNmR2MCtHcmlPMzVFellrUUZBQ1V4dkhpWkM2OVExVzZiSFZhNXFjaCtqSjY0U2xXTHZBblZqS0tMcVZqSUxhUFZodm1QMkhpZEFBRTJiMGhCSy9mUjczdDEwQzF2NHB1a2R1YTg3aGNZbmRMcStLVElYbnVSUS9haml2ZUVRU3p4OG91cEpPT3psMGpOYldlQVJQaWgwMkh4U2ZJUWt5Y2RJcWZBRUV5UEJpNk1FVWloN0dMY0RQdjVOV29KYllRSzFmLzVlblVuTkF1UXUyWUhUdmZvck1ES013T3RTMS9qaTVlL3d0MDRrYVFIQmt6cXR5Q3daaWhPazNUL05iQksyTnlrZU1EM3U1TUpKSC9EU1FIVDc5OU5NYlRYTkdzVFRFRCtmOGlaKzh4aE0zVENUclQ5OWRxejFYTkN0UWNjY0NHNTVyc2I4R2kxRFZ4UUlmbkh3NVhUNjBIekhCUWJzYk1yMFFRUFdNbjd0SFlSMnFrUWtRZjczQ2dkemxFMFZZaGRCbGR6NUxBNWRNbHpWL3NRQTFnbGRkTTE2NnhKR0lIMTRmYis0dkVpQ2FCWmc1YTRiZmE1THkzRllIM042a3ZFNStyNEZsdDNIanhrYWo4clY2UGRUNklkNkh6WGVDdEJIeEE1cUlKbEw5bjc2Znd0dGZvWGlzUEpFVjlyckM4cm5PL1pYbjNET3FXbWVrMHBPL0cwdjkrL0w0ZjZPZ0pVN1pMVEsveTBLVXZNQlN2UEVPaWlmQ0VrRFUvNjI2L0NIcS91dVJjdjBQTXpuMzNLRTBiTVJJNGRMV3l2YTNjSUg0b1lNazNncWx0UVFJTEx1MHNaZFNKTUI5eFZCUzBMTm5UM0oyN1dwWXFMVDJOclRHd1VVT2hPWUN5MUg1MjdaUlJrWkdncnJEU2tQR1YvRzR2MUw0UEVrUTFTMThFTXB6K3VUVG8vOTNBZVYyeUNUR0dMNzl3QUVSMldEWHpGSVpNNHduZ2dxZ1Awc1BJaWpYQnA2M1hMckRyWHJtVVVwVzZQYVRqaGYyYXpJVEVIVjl1VDZsTUoxRXh2ZnMvZ05rakE5eFBDUkQ0QVpqTTRyK1BlSU5yYVFsdWM5cEZDbXcvQUJFckxkUGJDOFVXcSt3OWg2aDBHS0k2RFpKQkFGVWZQWnVOMWdYQzlURi9UUTMrSnpldVRUbHluNWl6L0crY0ZGdnZKM1U3cWVSOHJWSWRrQU1EK21LOVJIcjY5SFQ3UnIvWXFpY0VHTVVPZGRQVnlkZUUyS3dhYVNFRk1DMi9VOFI4YittaVE1a2dESDV4UWg0bjl6UlRidEMrcDdlVDA1OUNmZzZJV0RCemljaVdrbExTdS9JWFhQTk91c1N3U3B0UnNic0kvNjMrclBQWlB3UDdYQWdFWmJHdkhwZ3gwWU5GZDY1by9LWVN4WStLMm85WmFVbFVmNUpxV0pMbzRHOU9sQm1lZ3RpSWtOYWRGZGVMeWUvUkJNTU40MEdxQjBNUmtnWHVPOGo0Mm56WDkrVzgveU9Id3gvSWpRRXRNZXZyU1ZpelVGTGdDUkhLSUJhaGhlQ0ZFbUN3b2lyckZtSmFYNkdLOFF6VDl3WXVWWE5CQWJyYjlBeTkrSklWdzBQWFhjYVQ0UmF4Q21rQUNMYmE2VHRqVEZHblordWpuQ28xbzI3d2xvaVJwQnJDSGZxUkViWjU0a044dmdyQm1ENEtKYVl4UGdwRkJ2NzY4R05SeURXK29HcC9vaDRXVXdtZkxTYVB5UkFNQVlyRXJURWhWeTgzRE1HS3hTZE80Y1gyOUpFbG9jZ01BQnU1Rzl1UEkvdWUrbzl1dS9KZDZVUTl1bWVFMUpjakJDc3U2TTVZSG9NaXFaRHdRSVlRMW9NT0lzNlZueEp6UUVGemIzQ1RIeUVDK1lHTW95ZVc4YWNJd1F2VlZxQ0dEZ1E3dENCV0RLd1gxZTVob2lSTll4WkFCbUdNUVNtcjJDRCtKbGx1VFdYUVFWZHdscThuUVdRWVppdzhGMlhONUdKdVFEZSs0Yy9lUitueHZuWWVvWmhyRTNNQmJCTmdvNndaeGpHZWhpZUI4Z3dER00xV0FBWmhyRXRMSUFNdzlnV0ZrQ0dZV3dMQ3lERE1MYUZCWkJoR052Q0FzZ3dqRzFoQVdRWXhyYXdBRElNWTFzd0k3eUtiSWhLaWkxL2I0YnhSU0cxbkd3S0ZrWW9JeHZTa3BURlpCS2QycVNWSzBUbFpFTlNxWlZwMzZka1NpMno0ei9ZK0M3aE8wVW1vVkJTT2RrUVZWVS9kS2oxOVVWMisxS3BwTTV1WStJWFN1SnlGWkhOY0pGclpwczI1bG5XOHIxZGpwbGtNK3BkRGxPL1MrM2JwSzBRVnVCc3NoSGk5NjFLVVpVSmpnNXRXcFVsdTVRem9ZWmtkVlIxbS9pL29nNVo2ZEZjWE40djdkcGtMRlpjcnRIaXZxNGx5Nk9VcVM2YTJERXJvNWhNcG4yYjFGSjhsaDN1cS95YmROR1FqbTFhbXVhdGFMUnovMDNNdExybkF1SERmVTF5dVliQUNQci9FZDJyWXJ4aEhzQUFBQUFBU1VWT1JLNUNZSUk9Ii8+CjwvZGVmcz4KPC9zdmc+Cg==",alt:""});const Z=Object(V.a)(U.Card,{target:"e15ggnzr3"})({name:"1rkrhlr",styles:"display:flex;flex-flow:row;justify-content:center;margin:12px 0;max-width:680px"}),o=Object(V.a)("div",{target:"e15ggnzr2"})({name:"rhr3hk",styles:"flex:0 1 auto;padding:24px"}),W=Object(V.a)("div",{target:"e15ggnzr1"})({name:"1cdwwiy",styles:"padding-top:11px;display:flex;flex-wrap:wrap;gap:12px;align-items:center"}),T=Object(V.a)("div",{target:"e15ggnzr0"})({name:"5m5drs",styles:"background:#f7f9fc;display:none;flex:0 0 33%;img{padding:24px;}@media ( min-width: 660px ){display:flex;}"}),i=()=>Object(a.createElement)(Z,null,Object(a.createElement)(o,null,Object(a.createElement)(R,null,Object(r.__)("Early access","woocommerce-gateway-stripe")),Object(a.createElement)("h3",null,Object(r.__)("Enable the new Stripe payment management experience","woocommerce-gateway-stripe")),Object(a.createElement)("p",null,Object(r.__)("Spend less time managing giropay and other payment methods in an improved settings and checkout experience, now available to select merchants.","woocommerce-gateway-stripe")),Object(a.createElement)(W,null,Object(a.createElement)("span",null,Object(a.createElement)(U.Button,{isPrimary:!0,href:"?TODO",target:"_blank"},Object(r.__)("Enable in your store","woocommerce-gateway-stripe"))),Object(a.createElement)(U.ExternalLink,{href:"?TODO"},Object(r.__)("Learn more","woocommerce-gateway-stripe")))),Object(a.createElement)(T,null,Object(a.createElement)(N,null))),F=document.getElementById("wc-stripe-upe-opt-in-banner");F&&d.a.render(Object(a.createElement)(i,null),F),t.default=i},3:function(e,t){e.exports=window.wp.i18n},56:function(e,t){e.exports=window.ReactDOM},9:function(e,t,l){"use strict";function V(){return(V=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var l=arguments[t];for(var V in l)Object.prototype.hasOwnProperty.call(l,V)&&(e[V]=l[V])}return e}).apply(this,arguments)}var a=l(1),n=function(e){var t=Object.create(null);return function(l){return void 0===t[l]&&(t[l]=e(l)),t[l]}},d=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,r=n((function(e){return d.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),U=function(){function e(e){var t=this;this._insertTag=function(e){var l;l=0===t.tags.length?t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,l),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var l=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{l.insertRule(e,l.cssRules.length)}catch(e){}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),c="-ms-",R="-moz-",N="-webkit-",Z="comm",o="rule",W="decl",T=Math.abs,i=String.fromCharCode;function F(e){return e.trim()}function p(e,t,l){return e.replace(t,l)}function h(e,t){return e.indexOf(t)}function s(e,t){return 0|e.charCodeAt(t)}function m(e,t,l){return e.slice(t,l)}function k(e){return e.length}function E(e){return e.length}function M(e,t){return t.push(e),e}var S=1,Q=1,b=0,u=0,G=0,J="";function y(e,t,l,V,a,n,d){return{value:e,root:t,parent:l,type:V,props:a,children:n,line:S,column:Q,length:d,return:""}}function Y(e,t,l){return y(e,t.root,t.parent,l,t.props,t.children,0)}function x(){return G=u>0?s(J,--u):0,Q--,10===G&&(Q=1,S--),G}function z(){return G=u<b?s(J,u++):0,Q++,10===G&&(Q=1,S++),G}function j(){return s(J,u)}function X(){return u}function O(e,t){return m(J,e,t)}function D(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function H(e){return S=Q=1,b=k(J=e),u=0,[]}function v(e){return J="",e}function B(e){return F(O(u-1,function e(t){for(;z();)switch(G){case t:return u;case 34:case 39:return e(34===t||39===t?t:G);case 40:41===t&&e(t);break;case 92:z()}return u}(91===e?e+2:40===e?e+1:e)))}function f(e){for(;(G=j())&&G<33;)z();return D(e)>2||D(G)>3?"":" "}function w(e,t){for(;--t&&z()&&!(G<48||G>102||G>57&&G<65||G>70&&G<97););return O(e,X()+(t<6&&32==j()&&32==z()))}function g(e,t){for(;z()&&e+G!==57&&(e+G!==84||47!==j()););return"/*"+O(t,u-1)+"*"+i(47===e?e:z())}function I(e){for(;!D(j());)z();return O(e,u)}function C(e,t,l,V,a,n,d,r,U,c,R){for(var N=a-1,Z=0===a?n:[""],W=E(Z),i=0,h=0,s=0;i<V;++i)for(var k=0,M=m(e,N+1,N=T(h=d[i])),S=e;k<W;++k)(S=F(h>0?Z[k]+" "+M:p(M,/&\f/g,Z[k])))&&(U[s++]=S);return y(e,t,l,0===a?o:r,U,c,R)}function L(e,t,l){return y(e,t,l,Z,i(G),m(e,2,-2),0)}function K(e,t,l,V){return y(e,t,l,W,m(e,0,V),m(e,V+1,-1),V)}function P(e,t){for(var l="",V=E(e),a=0;a<V;a++)l+=t(e[a],a,e,t)||"";return l}function A(e,t,l,V){switch(e.type){case"@import":case W:return e.return=e.return||e.value;case Z:return"";case o:e.value=e.props.join(",")}return k(l=P(e.children,V))?e.return=e.value+"{"+l+"}":""}function q(e){return function(t){t.root||(t=t.return)&&e(t)}}var $=new WeakMap,_=function(e){if("rule"===e.type&&e.parent&&e.length){for(var t=e.value,l=e.parent,V=e.column===l.column&&e.line===l.line;"rule"!==l.type;)if(!(l=l.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||$.get(l))&&!V){$.set(e,!0);for(var a=[],n=function(e,t){return v(function(e,t){var l=-1,V=44;do{switch(D(V)){case 0:38===V&&12===j()&&(t[l]=1),e[l]+=I(u-1);break;case 2:e[l]+=B(V);break;case 4:if(44===V){e[++l]=58===j()?"&\f":"",t[l]=e[l].length;break}default:e[l]+=i(V)}}while(V=z());return e}(H(e),t))}(t,a),d=l.props,r=0,U=0;r<n.length;r++)for(var c=0;c<d.length;c++,U++)e.props[U]=a[r]?n[r].replace(/&\f/g,d[c]):d[c]+" "+n[r]}}},ee=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}},te=[function(e,t,l,V){if(!e.return)switch(e.type){case W:e.return=function e(t,l){switch(function(e,t){return(((t<<2^s(e,0))<<2^s(e,1))<<2^s(e,2))<<2^s(e,3)}(t,l)){case 5103:return N+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return N+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return N+t+R+t+c+t+t;case 6828:case 4268:return N+t+c+t+t;case 6165:return N+t+c+"flex-"+t+t;case 5187:return N+t+p(t,/(\w+).+(:[^]+)/,N+"box-$1$2"+c+"flex-$1$2")+t;case 5443:return N+t+c+"flex-item-"+p(t,/flex-|-self/,"")+t;case 4675:return N+t+c+"flex-line-pack"+p(t,/align-content|flex-|-self/,"")+t;case 5548:return N+t+c+p(t,"shrink","negative")+t;case 5292:return N+t+c+p(t,"basis","preferred-size")+t;case 6060:return N+"box-"+p(t,"-grow","")+N+t+c+p(t,"grow","positive")+t;case 4554:return N+p(t,/([^-])(transform)/g,"$1"+N+"$2")+t;case 6187:return p(p(p(t,/(zoom-|grab)/,N+"$1"),/(image-set)/,N+"$1"),t,"")+t;case 5495:case 3959:return p(t,/(image-set\([^]*)/,N+"$1$`$1");case 4968:return p(p(t,/(.+:)(flex-)?(.*)/,N+"box-pack:$3"+c+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+N+t+t;case 4095:case 3583:case 4068:case 2532:return p(t,/(.+)-inline(.+)/,N+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(k(t)-1-l>6)switch(s(t,l+1)){case 109:if(45!==s(t,l+4))break;case 102:return p(t,/(.+:)(.+)-([^]+)/,"$1"+N+"$2-$3$1"+R+(108==s(t,l+3)?"$3":"$2-$3"))+t;case 115:return~h(t,"stretch")?e(p(t,"stretch","fill-available"),l)+t:t}break;case 4949:if(115!==s(t,l+1))break;case 6444:switch(s(t,k(t)-3-(~h(t,"!important")&&10))){case 107:return p(t,":",":"+N)+t;case 101:return p(t,/(.+:)([^;!]+)(;|!.+)?/,"$1"+N+(45===s(t,14)?"inline-":"")+"box$3$1"+N+"$2$3$1"+c+"$2box$3")+t}break;case 5936:switch(s(t,l+11)){case 114:return N+t+c+p(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return N+t+c+p(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return N+t+c+p(t,/[svh]\w+-[tblr]{2}/,"lr")+t}return N+t+c+t+t}return t}(e.value,e.length);break;case"@keyframes":return P([Y(p(e.value,"@","@"+N),e,"")],V);case o:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return P([Y(p(t,/:(read-\w+)/,":-moz-$1"),e,"")],V);case"::placeholder":return P([Y(p(t,/:(plac\w+)/,":"+N+"input-$1"),e,""),Y(p(t,/:(plac\w+)/,":-moz-$1"),e,""),Y(p(t,/:(plac\w+)/,c+"input-$1"),e,"")],V)}return""}))}}],le=function(e){var t=e.key;if("css"===t){var l=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(l,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var V,a,n=e.stylisPlugins||te,d={},r=[];V=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),l=1;l<t.length;l++)d[t[l]]=!0;r.push(e)}));var c,R=[_,ee],N=[A,q((function(e){c.insert(e)}))],Z=function(e){var t=E(e);return function(l,V,a,n){for(var d="",r=0;r<t;r++)d+=e[r](l,V,a,n)||"";return d}}(R.concat(n,N));a=function(e,t,l,V){c=l,P(function(e){return v(function e(t,l,V,a,n,d,r,U,c){for(var R=0,N=0,Z=r,o=0,W=0,T=0,F=1,h=1,s=1,m=0,E="",S=n,Q=d,b=a,u=E;h;)switch(T=m,m=z()){case 34:case 39:case 91:case 40:u+=B(m);break;case 9:case 10:case 13:case 32:u+=f(T);break;case 92:u+=w(X()-1,7);continue;case 47:switch(j()){case 42:case 47:M(L(g(z(),X()),l,V),c);break;default:u+="/"}break;case 123*F:U[R++]=k(u)*s;case 125*F:case 59:case 0:switch(m){case 0:case 125:h=0;case 59+N:W>0&&k(u)-Z&&M(W>32?K(u+";",a,V,Z-1):K(p(u," ","")+";",a,V,Z-2),c);break;case 59:u+=";";default:if(M(b=C(u,l,V,R,N,n,U,E,S=[],Q=[],Z),d),123===m)if(0===N)e(u,l,b,b,S,d,Z,U,Q);else switch(o){case 100:case 109:case 115:e(t,b,b,a&&M(C(t,b,b,0,0,n,U,E,n,S=[],Z),Q),n,Q,Z,U,a?S:Q);break;default:e(u,b,b,b,[""],Q,Z,U,Q)}}R=N=W=0,F=s=1,E=u="",Z=r;break;case 58:Z=1+k(u),W=T;default:if(F<1)if(123==m)--F;else if(125==m&&0==F++&&125==x())continue;switch(u+=i(m),m*F){case 38:s=N>0?1:(u+="\f",-1);break;case 44:U[R++]=(k(u)-1)*s,s=1;break;case 64:45===j()&&(u+=B(z())),o=j(),N=k(E=u+=I(X())),m++;break;case 45:45===T&&2==k(u)&&(F=0)}}return d}("",null,null,null,[""],e=H(e),0,[0],e))}(e?e+"{"+t.styles+"}":t.styles),Z),V&&(o.inserted[t.name]=!0)};var o={key:t,sheet:new U({key:t,container:V,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend}),nonce:e.nonce,inserted:d,registered:{},insert:a};return o.sheet.hydrate(r),o};function Ve(e,t,l){var V="";return l.split(" ").forEach((function(l){void 0!==e[l]?t.push(e[l]+";"):V+=l+" "})),V}l(100);var ae=function(e,t,l){var V=e.key+"-"+t.name;if(!1===l&&void 0===e.registered[V]&&(e.registered[V]=t.styles),void 0===e.inserted[t.name]){var a=t;do{e.insert(t===a?"."+V:"",a,e.sheet,!0),a=a.next}while(void 0!==a)}},ne=function(e){for(var t,l=0,V=0,a=e.length;a>=4;++V,a-=4)t=1540483477*(65535&(t=255&e.charCodeAt(V)|(255&e.charCodeAt(++V))<<8|(255&e.charCodeAt(++V))<<16|(255&e.charCodeAt(++V))<<24))+(59797*(t>>>16)<<16),l=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&l)+(59797*(l>>>16)<<16);switch(a){case 3:l^=(255&e.charCodeAt(V+2))<<16;case 2:l^=(255&e.charCodeAt(V+1))<<8;case 1:l=1540483477*(65535&(l^=255&e.charCodeAt(V)))+(59797*(l>>>16)<<16)}return(((l=1540483477*(65535&(l^=l>>>13))+(59797*(l>>>16)<<16))^l>>>15)>>>0).toString(36)},de={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},re=/[A-Z]|^ms/g,Ue=/_EMO_([^_]+?)_([^]*?)_EMO_/g,ce=function(e){return 45===e.charCodeAt(1)},Re=function(e){return null!=e&&"boolean"!=typeof e},Ne=n((function(e){return ce(e)?e:e.replace(re,"-$&").toLowerCase()})),Ze=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(Ue,(function(e,t,l){return We={name:t,styles:l,next:We},t}))}return 1===de[e]||ce(e)||"number"!=typeof t||0===t?t:t+"px"};function oe(e,t,l){if(null==l)return"";if(void 0!==l.__emotion_styles)return l;switch(typeof l){case"boolean":return"";case"object":if(1===l.anim)return We={name:l.name,styles:l.styles,next:We},l.name;if(void 0!==l.styles){var V=l.next;if(void 0!==V)for(;void 0!==V;)We={name:V.name,styles:V.styles,next:We},V=V.next;return l.styles+";"}return function(e,t,l){var V="";if(Array.isArray(l))for(var a=0;a<l.length;a++)V+=oe(e,t,l[a])+";";else for(var n in l){var d=l[n];if("object"!=typeof d)null!=t&&void 0!==t[d]?V+=n+"{"+t[d]+"}":Re(d)&&(V+=Ne(n)+":"+Ze(n,d)+";");else if(!Array.isArray(d)||"string"!=typeof d[0]||null!=t&&void 0!==t[d[0]]){var r=oe(e,t,d);switch(n){case"animation":case"animationName":V+=Ne(n)+":"+r+";";break;default:V+=n+"{"+r+"}"}}else for(var U=0;U<d.length;U++)Re(d[U])&&(V+=Ne(n)+":"+Ze(n,d[U])+";")}return V}(e,t,l);case"function":if(void 0!==e){var a=We,n=l(e);return We=a,oe(e,t,n)}}if(null==t)return l;var d=t[l];return void 0!==d?d:l}var We,Te=/label:\s*([^\s;\n{]+)\s*(;|$)/g,ie=function(e,t,l){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var V=!0,a="";We=void 0;var n=e[0];null==n||void 0===n.raw?(V=!1,a+=oe(l,t,n)):a+=n[0];for(var d=1;d<e.length;d++)a+=oe(l,t,e[d]),V&&(a+=n[d]);Te.lastIndex=0;for(var r,U="";null!==(r=Te.exec(a));)U+="-"+r[1];return{name:ne(a)+U,styles:a,next:We}},Fe=(Object.prototype.hasOwnProperty,Object(a.createContext)("undefined"!=typeof HTMLElement?le({key:"css"}):null));Fe.Provider;var pe=function(e){return Object(a.forwardRef)((function(t,l){var V=Object(a.useContext)(Fe);return e(t,V,l)}))},he=Object(a.createContext)({}),se=r,me=function(e){return"theme"!==e},ke=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?se:me},Ee=function(e,t,l){var V;if(t){var a=t.shouldForwardProp;V=e.__emotion_forwardProp&&a?function(t){return e.__emotion_forwardProp(t)&&a(t)}:a}return"function"!=typeof V&&l&&(V=e.__emotion_forwardProp),V};t.a=function e(t,l){var n,d,r=t.__emotion_real===t,U=r&&t.__emotion_base||t;void 0!==l&&(n=l.label,d=l.target);var c=Ee(t,l,r),R=c||ke(U),N=!R("as");return function(){var Z=arguments,o=r&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==n&&o.push("label:"+n+";"),null==Z[0]||void 0===Z[0].raw)o.push.apply(o,Z);else{o.push(Z[0][0]);for(var W=Z.length,T=1;T<W;T++)o.push(Z[T],Z[0][T])}var i=pe((function(e,t,l){var V=N&&e.as||U,n="",r=[],Z=e;if(null==e.theme){for(var W in Z={},e)Z[W]=e[W];Z.theme=Object(a.useContext)(he)}"string"==typeof e.className?n=Ve(t.registered,r,e.className):null!=e.className&&(n=e.className+" ");var T=ie(o.concat(r),t.registered,Z);ae(t,T,"string"==typeof V),n+=t.key+"-"+T.name,void 0!==d&&(n+=" "+d);var i=N&&void 0===c?ke(V):R,F={};for(var p in e)N&&"as"===p||i(p)&&(F[p]=e[p]);return F.className=n,F.ref=l,Object(a.createElement)(V,F)}));return i.displayName=void 0!==n?n:"Styled("+("string"==typeof U?U:U.displayName||U.name||"Component")+")",i.defaultProps=t.defaultProps,i.__emotion_real=i,i.__emotion_base=U,i.__emotion_styles=o,i.__emotion_forwardProp=c,Object.defineProperty(i,"toString",{value:function(){return"."+d}}),i.withComponent=function(t,a){return e(t,V({},l,a,{shouldForwardProp:Ee(i,a,!0)})).apply(void 0,o)},i}}}});
build/upe_settings.asset.php ADDED
@@ -0,0 +1 @@
 
1
+ <?php return array('dependencies' => array('react', 'react-dom', 'wc-navigation', 'wp-api-fetch', 'wp-components', 'wp-element', 'wp-i18n', 'wp-polyfill'), 'version' => 'af9f8196774dc7d957e1b0edcd867756');
build/upe_settings.css ADDED
@@ -0,0 +1,2 @@
 
 
1
+ #wc-stripe-account-settings-container{box-sizing:border-box}
2
+
build/upe_settings.js ADDED
@@ -0,0 +1 @@
 
1
+ !function(e){var t={};function n(r){if(t[r])return t[r].exports;var M=t[r]={i:r,l:!1,exports:{}};return e[r].call(M.exports,M,M.exports,n),M.l=!0,M.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var M in e)n.d(r,M,function(t){return e[t]}.bind(null,M));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=215)}([function(e,t){e.exports=window.wp.element},function(e,t){e.exports=window.React},,function(e,t){e.exports=window.wp.i18n},,function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||function(){return this}()||Function("return this")()}).call(this,n(74))},function(e,t,n){var r=n(5),M=n(61),u=n(12),i=n(62),o=n(53),c=n(80),a=M("wks"),j=r.Symbol,s=c?j:j&&j.withoutSetter||i;e.exports=function(e){return u(a,e)&&(o||"string"==typeof a[e])||(o&&u(j,e)?a[e]=j[e]:a[e]=s("Symbol."+e)),a[e]}},function(e,t,n){"use strict";var r=n(5),M=n(50).f,u=n(58),i=n(18),o=n(30),c=n(13),a=n(12),j=function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t};e.exports=function(e,t){var n,s,l,L,N,y,g,D,I=e.target,p=e.global,A=e.stat,f=e.proto,m=p?r:A?r[I]:(r[I]||{}).prototype,S=p?i:i[I]||(i[I]={}),x=S.prototype;for(l in t)n=!u(p?l:I+(A?".":"#")+l,e.forced)&&m&&a(m,l),N=S[l],n&&(y=e.noTargetGet?(D=M(m,l))&&D.value:m[l]),L=n&&y?y:t[l],n&&typeof N==typeof L||(g=e.bind&&n?o(L,r):e.wrap&&n?j(L):f&&"function"==typeof L?o(Function.call,L):L,(e.sham||L&&L.sham||N&&N.sham)&&c(g,"sham",!0),S[l]=g,f&&(a(i,s=I+"Prototype")||c(i,s,{}),i[s][l]=L,e.real&&x&&!x[l]&&c(x,l,L)))}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){"use strict";function r(){return(r=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}).apply(this,arguments)}var M=n(1),u=function(e){var t=Object.create(null);return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}},i=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,o=u((function(e){return i.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91})),c=function(){function e(e){var t=this;this._insertTag=function(e){var n;n=0===t.tags.length?t.prepend?t.container.firstChild:t.before:t.tags[t.tags.length-1].nextSibling,t.container.insertBefore(e,n),t.tags.push(e)},this.isSpeedy=void 0===e.speedy||e.speedy,this.tags=[],this.ctr=0,this.nonce=e.nonce,this.key=e.key,this.container=e.container,this.prepend=e.prepend,this.before=null}var t=e.prototype;return t.hydrate=function(e){e.forEach(this._insertTag)},t.insert=function(e){this.ctr%(this.isSpeedy?65e3:1)==0&&this._insertTag(function(e){var t=document.createElement("style");return t.setAttribute("data-emotion",e.key),void 0!==e.nonce&&t.setAttribute("nonce",e.nonce),t.appendChild(document.createTextNode("")),t.setAttribute("data-s",""),t}(this));var t=this.tags[this.tags.length-1];if(this.isSpeedy){var n=function(e){if(e.sheet)return e.sheet;for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].ownerNode===e)return document.styleSheets[t]}(t);try{n.insertRule(e,n.cssRules.length)}catch(e){}}else t.appendChild(document.createTextNode(e));this.ctr++},t.flush=function(){this.tags.forEach((function(e){return e.parentNode.removeChild(e)})),this.tags=[],this.ctr=0},e}(),a="-ms-",j="-moz-",s="-webkit-",l="comm",L="rule",N="decl",y=Math.abs,g=String.fromCharCode;function D(e){return e.trim()}function I(e,t,n){return e.replace(t,n)}function p(e,t){return e.indexOf(t)}function A(e,t){return 0|e.charCodeAt(t)}function f(e,t,n){return e.slice(t,n)}function m(e){return e.length}function S(e){return e.length}function x(e,t){return t.push(e),e}var T=1,d=1,w=0,z=0,E=0,O="";function b(e,t,n,r,M,u,i){return{value:e,root:t,parent:n,type:r,props:M,children:u,line:T,column:d,length:i,return:""}}function h(e,t,n){return b(e,t.root,t.parent,n,t.props,t.children,0)}function C(){return E=z>0?A(O,--z):0,d--,10===E&&(d=1,T--),E}function v(){return E=z<w?A(O,z++):0,d++,10===E&&(d=1,T++),E}function k(){return A(O,z)}function Y(){return z}function U(e,t){return f(O,e,t)}function Q(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function Z(e){return T=d=1,w=m(O=e),z=0,[]}function G(e){return O="",e}function P(e){return D(U(z-1,function e(t){for(;v();)switch(E){case t:return z;case 34:case 39:return e(34===t||39===t?t:E);case 40:41===t&&e(t);break;case 92:v()}return z}(91===e?e+2:40===e?e+1:e)))}function _(e){for(;(E=k())&&E<33;)v();return Q(e)>2||Q(E)>3?"":" "}function R(e,t){for(;--t&&v()&&!(E<48||E>102||E>57&&E<65||E>70&&E<97););return U(e,Y()+(t<6&&32==k()&&32==v()))}function W(e,t){for(;v()&&e+E!==57&&(e+E!==84||47!==k()););return"/*"+U(t,z-1)+"*"+g(47===e?e:v())}function J(e){for(;!Q(k());)v();return U(e,z)}function V(e,t,n,r,M,u,i,o,c,a,j){for(var s=M-1,l=0===M?u:[""],N=S(l),g=0,p=0,A=0;g<r;++g)for(var m=0,x=f(e,s+1,s=y(p=i[g])),T=e;m<N;++m)(T=D(p>0?l[m]+" "+x:I(x,/&\f/g,l[m])))&&(c[A++]=T);return b(e,t,n,0===M?L:o,c,a,j)}function B(e,t,n){return b(e,t,n,l,g(E),f(e,2,-2),0)}function $(e,t,n,r){return b(e,t,n,N,f(e,0,r),f(e,r+1,-1),r)}function F(e,t){for(var n="",r=S(e),M=0;M<r;M++)n+=t(e[M],M,e,t)||"";return n}function X(e,t,n,r){switch(e.type){case"@import":case N:return e.return=e.return||e.value;case l:return"";case L:e.value=e.props.join(",")}return m(n=F(e.children,r))?e.return=e.value+"{"+n+"}":""}function H(e){return function(t){t.root||(t=t.return)&&e(t)}}var q=new WeakMap,K=function(e){if("rule"===e.type&&e.parent&&e.length){for(var t=e.value,n=e.parent,r=e.column===n.column&&e.line===n.line;"rule"!==n.type;)if(!(n=n.parent))return;if((1!==e.props.length||58===t.charCodeAt(0)||q.get(n))&&!r){q.set(e,!0);for(var M=[],u=function(e,t){return G(function(e,t){var n=-1,r=44;do{switch(Q(r)){case 0:38===r&&12===k()&&(t[n]=1),e[n]+=J(z-1);break;case 2:e[n]+=P(r);break;case 4:if(44===r){e[++n]=58===k()?"&\f":"",t[n]=e[n].length;break}default:e[n]+=g(r)}}while(r=v());return e}(Z(e),t))}(t,M),i=n.props,o=0,c=0;o<u.length;o++)for(var a=0;a<i.length;a++,c++)e.props[c]=M[o]?u[o].replace(/&\f/g,i[a]):i[a]+" "+u[o]}}},ee=function(e){if("decl"===e.type){var t=e.value;108===t.charCodeAt(0)&&98===t.charCodeAt(2)&&(e.return="",e.value="")}},te=[function(e,t,n,r){if(!e.return)switch(e.type){case N:e.return=function e(t,n){switch(function(e,t){return(((t<<2^A(e,0))<<2^A(e,1))<<2^A(e,2))<<2^A(e,3)}(t,n)){case 5103:return s+"print-"+t+t;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return s+t+t;case 5349:case 4246:case 4810:case 6968:case 2756:return s+t+j+t+a+t+t;case 6828:case 4268:return s+t+a+t+t;case 6165:return s+t+a+"flex-"+t+t;case 5187:return s+t+I(t,/(\w+).+(:[^]+)/,s+"box-$1$2"+a+"flex-$1$2")+t;case 5443:return s+t+a+"flex-item-"+I(t,/flex-|-self/,"")+t;case 4675:return s+t+a+"flex-line-pack"+I(t,/align-content|flex-|-self/,"")+t;case 5548:return s+t+a+I(t,"shrink","negative")+t;case 5292:return s+t+a+I(t,"basis","preferred-size")+t;case 6060:return s+"box-"+I(t,"-grow","")+s+t+a+I(t,"grow","positive")+t;case 4554:return s+I(t,/([^-])(transform)/g,"$1"+s+"$2")+t;case 6187:return I(I(I(t,/(zoom-|grab)/,s+"$1"),/(image-set)/,s+"$1"),t,"")+t;case 5495:case 3959:return I(t,/(image-set\([^]*)/,s+"$1$`$1");case 4968:return I(I(t,/(.+:)(flex-)?(.*)/,s+"box-pack:$3"+a+"flex-pack:$3"),/s.+-b[^;]+/,"justify")+s+t+t;case 4095:case 3583:case 4068:case 2532:return I(t,/(.+)-inline(.+)/,s+"$1$2")+t;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(m(t)-1-n>6)switch(A(t,n+1)){case 109:if(45!==A(t,n+4))break;case 102:return I(t,/(.+:)(.+)-([^]+)/,"$1"+s+"$2-$3$1"+j+(108==A(t,n+3)?"$3":"$2-$3"))+t;case 115:return~p(t,"stretch")?e(I(t,"stretch","fill-available"),n)+t:t}break;case 4949:if(115!==A(t,n+1))break;case 6444:switch(A(t,m(t)-3-(~p(t,"!important")&&10))){case 107:return I(t,":",":"+s)+t;case 101:return I(t,/(.+:)([^;!]+)(;|!.+)?/,"$1"+s+(45===A(t,14)?"inline-":"")+"box$3$1"+s+"$2$3$1"+a+"$2box$3")+t}break;case 5936:switch(A(t,n+11)){case 114:return s+t+a+I(t,/[svh]\w+-[tblr]{2}/,"tb")+t;case 108:return s+t+a+I(t,/[svh]\w+-[tblr]{2}/,"tb-rl")+t;case 45:return s+t+a+I(t,/[svh]\w+-[tblr]{2}/,"lr")+t}return s+t+a+t+t}return t}(e.value,e.length);break;case"@keyframes":return F([h(I(e.value,"@","@"+s),e,"")],r);case L:if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return(e=/(::plac\w+|:read-\w+)/.exec(e))?e[0]:e}(t)){case":read-only":case":read-write":return F([h(I(t,/:(read-\w+)/,":-moz-$1"),e,"")],r);case"::placeholder":return F([h(I(t,/:(plac\w+)/,":"+s+"input-$1"),e,""),h(I(t,/:(plac\w+)/,":-moz-$1"),e,""),h(I(t,/:(plac\w+)/,a+"input-$1"),e,"")],r)}return""}))}}],ne=function(e){var t=e.key;if("css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""))}))}var r,M,u=e.stylisPlugins||te,i={},o=[];r=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n<t.length;n++)i[t[n]]=!0;o.push(e)}));var a,j=[K,ee],s=[X,H((function(e){a.insert(e)}))],l=function(e){var t=S(e);return function(n,r,M,u){for(var i="",o=0;o<t;o++)i+=e[o](n,r,M,u)||"";return i}}(j.concat(u,s));M=function(e,t,n,r){a=n,F(function(e){return G(function e(t,n,r,M,u,i,o,c,a){for(var j=0,s=0,l=o,L=0,N=0,y=0,D=1,p=1,A=1,f=0,S="",T=u,d=i,w=M,z=S;p;)switch(y=f,f=v()){case 34:case 39:case 91:case 40:z+=P(f);break;case 9:case 10:case 13:case 32:z+=_(y);break;case 92:z+=R(Y()-1,7);continue;case 47:switch(k()){case 42:case 47:x(B(W(v(),Y()),n,r),a);break;default:z+="/"}break;case 123*D:c[j++]=m(z)*A;case 125*D:case 59:case 0:switch(f){case 0:case 125:p=0;case 59+s:N>0&&m(z)-l&&x(N>32?$(z+";",M,r,l-1):$(I(z," ","")+";",M,r,l-2),a);break;case 59:z+=";";default:if(x(w=V(z,n,r,j,s,u,c,S,T=[],d=[],l),i),123===f)if(0===s)e(z,n,w,w,T,i,l,c,d);else switch(L){case 100:case 109:case 115:e(t,w,w,M&&x(V(t,w,w,0,0,u,c,S,u,T=[],l),d),u,d,l,c,M?T:d);break;default:e(z,w,w,w,[""],d,l,c,d)}}j=s=N=0,D=A=1,S=z="",l=o;break;case 58:l=1+m(z),N=y;default:if(D<1)if(123==f)--D;else if(125==f&&0==D++&&125==C())continue;switch(z+=g(f),f*D){case 38:A=s>0?1:(z+="\f",-1);break;case 44:c[j++]=(m(z)-1)*A,A=1;break;case 64:45===k()&&(z+=P(v())),L=k(),s=m(S=z+=J(Y())),f++;break;case 45:45===y&&2==m(z)&&(D=0)}}return i}("",null,null,null,[""],e=Z(e),0,[0],e))}(e?e+"{"+t.styles+"}":t.styles),l),r&&(L.inserted[t.name]=!0)};var L={key:t,sheet:new c({key:t,container:r,nonce:e.nonce,speedy:e.speedy,prepend:e.prepend}),nonce:e.nonce,inserted:i,registered:{},insert:M};return L.sheet.hydrate(o),L};function re(e,t,n){var r="";return n.split(" ").forEach((function(n){void 0!==e[n]?t.push(e[n]+";"):r+=n+" "})),r}n(100);var Me=function(e,t,n){var r=e.key+"-"+t.name;if(!1===n&&void 0===e.registered[r]&&(e.registered[r]=t.styles),void 0===e.inserted[t.name]){var M=t;do{e.insert(t===M?"."+r:"",M,e.sheet,!0),M=M.next}while(void 0!==M)}},ue=function(e){for(var t,n=0,r=0,M=e.length;M>=4;++r,M-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(M){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16)}return(((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)},ie={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},oe=/[A-Z]|^ms/g,ce=/_EMO_([^_]+?)_([^]*?)_EMO_/g,ae=function(e){return 45===e.charCodeAt(1)},je=function(e){return null!=e&&"boolean"!=typeof e},se=u((function(e){return ae(e)?e:e.replace(oe,"-$&").toLowerCase()})),le=function(e,t){switch(e){case"animation":case"animationName":if("string"==typeof t)return t.replace(ce,(function(e,t,n){return Ne={name:t,styles:n,next:Ne},t}))}return 1===ie[e]||ae(e)||"number"!=typeof t||0===t?t:t+"px"};function Le(e,t,n){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return Ne={name:n.name,styles:n.styles,next:Ne},n.name;if(void 0!==n.styles){var r=n.next;if(void 0!==r)for(;void 0!==r;)Ne={name:r.name,styles:r.styles,next:Ne},r=r.next;return n.styles+";"}return function(e,t,n){var r="";if(Array.isArray(n))for(var M=0;M<n.length;M++)r+=Le(e,t,n[M])+";";else for(var u in n){var i=n[u];if("object"!=typeof i)null!=t&&void 0!==t[i]?r+=u+"{"+t[i]+"}":je(i)&&(r+=se(u)+":"+le(u,i)+";");else if(!Array.isArray(i)||"string"!=typeof i[0]||null!=t&&void 0!==t[i[0]]){var o=Le(e,t,i);switch(u){case"animation":case"animationName":r+=se(u)+":"+o+";";break;default:r+=u+"{"+o+"}"}}else for(var c=0;c<i.length;c++)je(i[c])&&(r+=se(u)+":"+le(u,i[c])+";")}return r}(e,t,n);case"function":if(void 0!==e){var M=Ne,u=n(e);return Ne=M,Le(e,t,u)}}if(null==t)return n;var i=t[n];return void 0!==i?i:n}var Ne,ye=/label:\s*([^\s;\n{]+)\s*(;|$)/g,ge=function(e,t,n){if(1===e.length&&"object"==typeof e[0]&&null!==e[0]&&void 0!==e[0].styles)return e[0];var r=!0,M="";Ne=void 0;var u=e[0];null==u||void 0===u.raw?(r=!1,M+=Le(n,t,u)):M+=u[0];for(var i=1;i<e.length;i++)M+=Le(n,t,e[i]),r&&(M+=u[i]);ye.lastIndex=0;for(var o,c="";null!==(o=ye.exec(M));)c+="-"+o[1];return{name:ue(M)+c,styles:M,next:Ne}},De=(Object.prototype.hasOwnProperty,Object(M.createContext)("undefined"!=typeof HTMLElement?ne({key:"css"}):null));De.Provider;var Ie=function(e){return Object(M.forwardRef)((function(t,n){var r=Object(M.useContext)(De);return e(t,r,n)}))},pe=Object(M.createContext)({}),Ae=o,fe=function(e){return"theme"!==e},me=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?Ae:fe},Se=function(e,t,n){var r;if(t){var M=t.shouldForwardProp;r=e.__emotion_forwardProp&&M?function(t){return e.__emotion_forwardProp(t)&&M(t)}:M}return"function"!=typeof r&&n&&(r=e.__emotion_forwardProp),r};t.a=function e(t,n){var u,i,o=t.__emotion_real===t,c=o&&t.__emotion_base||t;void 0!==n&&(u=n.label,i=n.target);var a=Se(t,n,o),j=a||me(c),s=!j("as");return function(){var l=arguments,L=o&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==u&&L.push("label:"+u+";"),null==l[0]||void 0===l[0].raw)L.push.apply(L,l);else{L.push(l[0][0]);for(var N=l.length,y=1;y<N;y++)L.push(l[y],l[0][y])}var g=Ie((function(e,t,n){var r=s&&e.as||c,u="",o=[],l=e;if(null==e.theme){for(var N in l={},e)l[N]=e[N];l.theme=Object(M.useContext)(pe)}"string"==typeof e.className?u=re(t.registered,o,e.className):null!=e.className&&(u=e.className+" ");var y=ge(L.concat(o),t.registered,l);Me(t,y,"string"==typeof r),u+=t.key+"-"+y.name,void 0!==i&&(u+=" "+i);var g=s&&void 0===a?me(r):j,D={};for(var I in e)s&&"as"===I||g(I)&&(D[I]=e[I]);return D.className=u,D.ref=n,Object(M.createElement)(r,D)}));return g.displayName=void 0!==u?u:"Styled("+("string"==typeof c?c:c.displayName||c.name||"Component")+")",g.defaultProps=t.defaultProps,g.__emotion_real=g,g.__emotion_base=c,g.__emotion_styles=L,g.__emotion_forwardProp=a,Object.defineProperty(g,"toString",{value:function(){return"."+i}}),g.withComponent=function(t,M){return e(t,r({},n,M,{shouldForwardProp:Se(g,M,!0)})).apply(void 0,L)},g}}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports=window.wp.components},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(15),M=n(31),u=n(26);e.exports=r?function(e,t,n){return M.f(e,t,u(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(10);e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){var r=n(8);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t){function n(){return e.exports=n=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},e.exports.default=e.exports,e.exports.__esModule=!0,n.apply(this,arguments)}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0},,function(e,t){e.exports={}},function(e,t,n){var r=n(18);e.exports=function(e){return r[e+"Prototype"]}},,function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,n){var r=n(18),M=n(5),u=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?u(r[e])||u(M[e]):r[e]&&r[e][t]||M[e]&&M[e][t]}},function(e,t,n){e.exports=n(90)},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(38),M=n(22);e.exports=function(e){return r(M(e))}},function(e,t){e.exports=!0},function(e,t,n){var r=n(41),M=Math.min;e.exports=function(e){return e>0?M(r(e),9007199254740991):0}},function(e,t,n){var r=n(23);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,M){return e.call(t,n,r,M)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){var r=n(15),M=n(51),u=n(14),i=n(39),o=Object.defineProperty;t.f=r?o:function(e,t,n){if(u(e),t=i(t,!0),u(n),M)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},,,function(e,t,n){var r=n(21),M=n(5);e.exports="process"==r(M.process)},function(e,t,n){var r,M,u=n(5),i=n(45),o=u.process,c=o&&o.versions,a=c&&c.v8;a?M=(r=a.split("."))[0]+r[1]:i&&(!(r=i.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=i.match(/Chrome\/(\d+)/))&&(M=r[1]),e.exports=M&&+M},,,function(e,t,n){var r=n(8),M=n(21),u="".split;e.exports=r((function(){return!Object("z").propertyIsEnumerable(0)}))?function(e){return"String"==M(e)?u.call(e,""):Object(e)}:Object},function(e,t,n){var r=n(10);e.exports=function(e,t){if(!r(e))return e;var n,M;if(t&&"function"==typeof(n=e.toString)&&!r(M=n.call(e)))return M;if("function"==typeof(n=e.valueOf)&&!r(M=n.call(e)))return M;if(!t&&"function"==typeof(n=e.toString)&&!r(M=n.call(e)))return M;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){var r=n(22);e.exports=function(e){return Object(r(e))}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(5),M=n(10),u=r.document,i=M(u)&&M(u.createElement);e.exports=function(e){return i?u.createElement(e):{}}},function(e,t,n){var r=n(5),M=n(75),u=r["__core-js_shared__"]||M("__core-js_shared__",{});e.exports=u},,function(e,t,n){var r=n(24);e.exports=r("navigator","userAgent")||""},,,,,function(e,t,n){var r=n(15),M=n(57),u=n(26),i=n(27),o=n(39),c=n(12),a=n(51),j=Object.getOwnPropertyDescriptor;t.f=r?j:function(e,t){if(e=i(e),t=o(t,!0),a)try{return j(e,t)}catch(e){}if(c(e,t))return u(!M.f.call(e,t),e[t])}},function(e,t,n){var r=n(15),M=n(8),u=n(42);e.exports=!r&&!M((function(){return 7!=Object.defineProperty(u("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){var r=n(27),M=n(29),u=n(63),i=function(e){return function(t,n,i){var o,c=r(t),a=M(c.length),j=u(i,a);if(e&&n!=n){for(;a>j;)if((o=c[j++])!=o)return!0}else for(;a>j;j++)if((e||j in c)&&c[j]===n)return e||j||0;return!e&&-1}};e.exports={includes:i(!0),indexOf:i(!1)}},function(e,t,n){var r=n(34),M=n(35),u=n(8);e.exports=!!Object.getOwnPropertySymbols&&!u((function(){return!Symbol.sham&&(r?38===M:M>37&&M<41)}))},,function(e,t){e.exports=function(){}},function(e,t){e.exports=window.ReactDOM},function(e,t,n){"use strict";var r={}.propertyIsEnumerable,M=Object.getOwnPropertyDescriptor,u=M&&!r.call({1:2},1);t.f=u?function(e){var t=M(this,e);return!!t&&t.enumerable}:r},function(e,t,n){var r=n(8),M=/#|\.prototype\./,u=function(e,t){var n=o[i(e)];return n==a||n!=c&&("function"==typeof t?r(t):!!t)},i=u.normalize=function(e){return String(e).replace(M,".").toLowerCase()},o=u.data={},c=u.NATIVE="N",a=u.POLYFILL="P";e.exports=u},,,function(e,t,n){var r=n(28),M=n(43);(e.exports=function(e,t){return M[e]||(M[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.9.1",mode:r?"pure":"global",copyright:"© 2021 Denis Pushkarev (zloirock.ru)"})},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++n+r).toString(36)}},function(e,t,n){var r=n(41),M=Math.max,u=Math.min;e.exports=function(e,t){var n=r(e);return n<0?M(n+t,0):u(n,t)}},,,,function(e,t,n){var r=n(21);e.exports=Array.isArray||function(e){return"Array"==r(e)}},,,function(e,t,n){var r=n(8),M=n(6),u=n(35),i=M("species");e.exports=function(e){return u>=51||!r((function(){var t=[];return(t.constructor={})[i]=function(){return{foo:1}},1!==t[e](Boolean).foo}))}},function(e,t,n){var r=n(96);e.exports=function(e){if(r(e))throw TypeError("The method doesn't accept regular expressions");return e}},function(e,t,n){var r=n(6)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,"/./"[e](t)}catch(e){}}return!1}},,function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var r=n(5),M=n(13);e.exports=function(e,t){try{M(r,e,t)}catch(n){r[e]=t}return t}},,,,,function(e,t,n){var r=n(53);e.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},,,,,,,,,,function(e,t,n){var r=n(91);e.exports=r},function(e,t,n){var r=n(92),M=n(94),u=Array.prototype,i=String.prototype;e.exports=function(e){var t=e.includes;return e===u||e instanceof Array&&t===u.includes?r:"string"==typeof e||e===i||e instanceof String&&t===i.includes?M:t}},function(e,t,n){n(93);var r=n(19);e.exports=r("Array").includes},function(e,t,n){"use strict";var r=n(7),M=n(52).includes,u=n(55);r({target:"Array",proto:!0},{includes:function(e){return M(this,e,arguments.length>1?arguments[1]:void 0)}}),u("includes")},function(e,t,n){n(95);var r=n(19);e.exports=r("String").includes},function(e,t,n){"use strict";var r=n(7),M=n(71),u=n(22);r({target:"String",proto:!0,forced:!n(72)("includes")},{includes:function(e){return!!~String(u(this)).indexOf(M(e),arguments.length>1?arguments[1]:void 0)}})},function(e,t,n){var r=n(10),M=n(21),u=n(6)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[u])?!!t:"RegExp"==M(e))}},function(e,t,n){var r=n(30),M=n(38),u=n(40),i=n(29),o=n(98),c=[].push,a=function(e){var t=1==e,n=2==e,a=3==e,j=4==e,s=6==e,l=7==e,L=5==e||s;return function(N,y,g,D){for(var I,p,A=u(N),f=M(A),m=r(y,g,3),S=i(f.length),x=0,T=D||o,d=t?T(N,S):n||l?T(N,0):void 0;S>x;x++)if((L||x in f)&&(p=m(I=f[x],x,A),e))if(t)d[x]=p;else if(p)switch(e){case 3:return!0;case 5:return I;case 6:return x;case 2:c.call(d,I)}else switch(e){case 4:return!1;case 7:c.call(d,I)}return s?-1:a||j?j:d}};e.exports={forEach:a(0),map:a(1),filter:a(2),some:a(3),every:a(4),find:a(5),findIndex:a(6),filterOut:a(7)}},function(e,t,n){var r=n(10),M=n(67),u=n(6)("species");e.exports=function(e,t){var n;return M(e)&&("function"!=typeof(n=e.constructor)||n!==Array&&!M(n.prototype)?r(n)&&null===(n=n[u])&&(n=void 0):n=void 0),new(void 0===n?Array:n)(0===t?0:t)}},,function(e,t,n){"use strict";var r=n(136),M={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},u={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},o={};function c(e){return r.isMemo(e)?i:o[e.$$typeof]||M}o[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},o[r.Memo]=i;var a=Object.defineProperty,j=Object.getOwnPropertyNames,s=Object.getOwnPropertySymbols,l=Object.getOwnPropertyDescriptor,L=Object.getPrototypeOf,N=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(N){var M=L(n);M&&M!==N&&e(t,M,r)}var i=j(n);s&&(i=i.concat(s(n)));for(var o=c(t),y=c(n),g=0;g<i.length;++g){var D=i[g];if(!(u[D]||r&&r[D]||y&&y[D]||o&&o[D])){var I=l(n,D);try{a(t,D,I)}catch(e){}}}}return t}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";e.exports=n(137)},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for,M=r?Symbol.for("react.element"):60103,u=r?Symbol.for("react.portal"):60106,i=r?Symbol.for("react.fragment"):60107,o=r?Symbol.for("react.strict_mode"):60108,c=r?Symbol.for("react.profiler"):60114,a=r?Symbol.for("react.provider"):60109,j=r?Symbol.for("react.context"):60110,s=r?Symbol.for("react.async_mode"):60111,l=r?Symbol.for("react.concurrent_mode"):60111,L=r?Symbol.for("react.forward_ref"):60112,N=r?Symbol.for("react.suspense"):60113,y=r?Symbol.for("react.suspense_list"):60120,g=r?Symbol.for("react.memo"):60115,D=r?Symbol.for("react.lazy"):60116,I=r?Symbol.for("react.block"):60121,p=r?Symbol.for("react.fundamental"):60117,A=r?Symbol.for("react.responder"):60118,f=r?Symbol.for("react.scope"):60119;function m(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case M:switch(e=e.type){case s:case l:case i:case c:case o:case N:return e;default:switch(e=e&&e.$$typeof){case j:case L:case D:case g:case a:return e;default:return t}}case u:return t}}}function S(e){return m(e)===l}t.AsyncMode=s,t.ConcurrentMode=l,t.ContextConsumer=j,t.ContextProvider=a,t.Element=M,t.ForwardRef=L,t.Fragment=i,t.Lazy=D,t.Memo=g,t.Portal=u,t.Profiler=c,t.StrictMode=o,t.Suspense=N,t.isAsyncMode=function(e){return S(e)||m(e)===s},t.isConcurrentMode=S,t.isContextConsumer=function(e){return m(e)===j},t.isContextProvider=function(e){return m(e)===a},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===M},t.isForwardRef=function(e){return m(e)===L},t.isFragment=function(e){return m(e)===i},t.isLazy=function(e){return m(e)===D},t.isMemo=function(e){return m(e)===g},t.isPortal=function(e){return m(e)===u},t.isProfiler=function(e){return m(e)===c},t.isStrictMode=function(e){return m(e)===o},t.isSuspense=function(e){return m(e)===N},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===i||e===l||e===c||e===o||e===N||e===y||"object"==typeof e&&null!==e&&(e.$$typeof===D||e.$$typeof===g||e.$$typeof===a||e.$$typeof===j||e.$$typeof===L||e.$$typeof===p||e.$$typeof===A||e.$$typeof===f||e.$$typeof===I)},t.typeOf=m},,,,,,function(e,t,n){"use strict";function r(e){return function(){return e}}var M=function(){};M.thatReturns=r,M.thatReturnsFalse=r(!1),M.thatReturnsTrue=r(!0),M.thatReturnsNull=r(null),M.thatReturnsThis=function(){return this},M.thatReturnsArgument=function(e){return e},e.exports=M},,,,,,,,,,,,function(e,t){e.exports=window.wc.navigation},function(e,t,n){e.exports=n(206)},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r="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},M=o(n(1)),u=o(n(210)),i=o(n(213));function o(e){return e&&e.__esModule?e:{default:e}}var c=void 0;t.default=function(e){var t=e.mixedString,n=e.components,o=e.throwErrors;if(c=t,!n)return t;if("object"!==(void 0===n?"undefined":r(n))){if(o)throw new Error("Interpolation Error: unable to process `"+t+"` because components is not an object");return t}var a=(0,i.default)(t);try{return function e(t,n){var i,o,a,j,s,l,L,N,y=[],g={};for(l=0;l<t.length;l++)if("string"!==(s=t[l]).type){if(!n.hasOwnProperty(s.value)||void 0===n[s.value])throw new Error("Invalid interpolation, missing component node: `"+s.value+"`");if("object"!==r(n[s.value]))throw new Error("Invalid interpolation, component node must be a ReactElement or null: `"+s.value+"`","\n> "+c);if("componentClose"===s.type)throw new Error("Missing opening component token: `"+s.value+"`");if("componentOpen"===s.type){i=n[s.value],a=l;break}y.push(n[s.value])}else y.push(s.value);return i&&(j=function(e,t){var n,r,M=t[e],u=0;for(r=e+1;r<t.length;r++)if((n=t[r]).value===M.value){if("componentOpen"===n.type){u++;continue}if("componentClose"===n.type){if(0===u)return r;u--}}throw new Error("Missing closing component token `"+M.value+"`")}(a,t),L=e(t.slice(a+1,j),n),o=M.default.cloneElement(i,{},L),y.push(o),j<t.length-1&&(N=e(t.slice(j+1),n),y=y.concat(N))),1===y.length?y[0]:(y.forEach((function(e,t){e&&(g["interpolation-child-"+t]=e)})),(0,u.default)(g))}(a,n)}catch(e){if(o)throw new Error("Interpolation Error: unable to process `"+t+"` because of error `"+e.message+"`");return t}}},function(e,t){e.exports=window.wp.apiFetch},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){var r=n(207);e.exports=r},function(e,t,n){var r=n(208),M=Array.prototype;e.exports=function(e){var t=e.filter;return e===M||e instanceof Array&&t===M.filter?r:t}},function(e,t,n){n(209);var r=n(19);e.exports=r("Array").filter},function(e,t,n){"use strict";var r=n(7),M=n(97).filter;r({target:"Array",proto:!0,forced:!n(70)("filter")},{filter:function(e){return M(this,e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,n){"use strict";var r=n(1),M="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,u=n(143),i=n(211),o=n(212),c="function"==typeof Symbol&&Symbol.iterator;function a(e,t){return e&&"object"==typeof e&&null!=e.key?(n=e.key,r={"=":"=0",":":"=2"},"$"+(""+n).replace(/[=:]/g,(function(e){return r[e]}))):t.toString(36);var n,r}var j=/\/+/g;function s(e){return(""+e).replace(j,"$&/")}var l,L,N=y,y=function(e){if(this.instancePool.length){var t=this.instancePool.pop();return this.call(t,e),t}return new this(e)};function g(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function D(e,t,n){var M,i,o=e.result,c=e.keyPrefix,a=e.func,j=e.context,l=a.call(j,t,e.count++);Array.isArray(l)?I(l,o,n,u.thatReturnsArgument):null!=l&&(r.isValidElement(l)&&(M=l,i=c+(!l.key||t&&t.key===l.key?"":s(l.key)+"/")+n,l=r.cloneElement(M,{key:i},void 0!==M.props?M.props.children:void 0)),o.push(l))}function I(e,t,n,r,u){var o="";null!=n&&(o=s(n)+"/");var j=g.getPooled(t,o,r,u);!function(e,t,n){null==e||function e(t,n,r,u){var o,j=typeof t;if("undefined"!==j&&"boolean"!==j||(t=null),null===t||"string"===j||"number"===j||"object"===j&&t.$$typeof===M)return r(u,t,""===n?"."+a(t,0):n),1;var s=0,l=""===n?".":n+":";if(Array.isArray(t))for(var L=0;L<t.length;L++)s+=e(o=t[L],l+a(o,L),r,u);else{var N=function(e){var t=e&&(c&&e[c]||e["@@iterator"]);if("function"==typeof t)return t}(t);if(N)for(var y,g=N.call(t),D=0;!(y=g.next()).done;)s+=e(o=y.value,l+a(o,D++),r,u);else if("object"===j){var I=""+t;i(!1,"Objects are not valid as a React child (found: %s).%s","[object Object]"===I?"object with keys {"+Object.keys(t).join(", ")+"}":I,"")}}return s}(e,"",t,n)}(e,D,j),g.release(j)}g.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},l=function(e,t,n,r){if(this.instancePool.length){var M=this.instancePool.pop();return this.call(M,e,t,n,r),M}return new this(e,t,n,r)},(L=g).instancePool=[],L.getPooled=l||N,L.poolSize||(L.poolSize=10),L.release=function(e){i(e instanceof this,"Trying to release an instance into a pool of a different type."),e.destructor(),this.instancePool.length<this.poolSize&&this.instancePool.push(e)},e.exports=function(e){if("object"!=typeof e||!e||Array.isArray(e))return o(!1,"React.addons.createFragment only accepts a single object. Got: %s",e),e;if(r.isValidElement(e))return o(!1,"React.addons.createFragment does not accept a ReactElement without a wrapper object."),e;i(1!==e.nodeType,"React.addons.createFragment(...): Encountered an invalid child; DOM elements are not valid children of React components.");var t=[];for(var n in e)I(e[n],t,n,u.thatReturnsArgument);return t}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,M,u,i,o){if(!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var a=[n,r,M,u,i,o],j=0;(c=new Error(t.replace(/%s/g,(function(){return a[j++]})))).name="Invariant Violation"}throw c.framesToPop=1,c}}},function(e,t,n){"use strict";var r=n(143);e.exports=r},function(e,t,n){"use strict";function r(e){return e.match(/^\{\{\//)?{type:"componentClose",value:e.replace(/\W/g,"")}:e.match(/\/\}\}$/)?{type:"componentSelfClosing",value:e.replace(/\W/g,"")}:e.match(/^\{\{/)?{type:"componentOpen",value:e.replace(/\W/g,"")}:{type:"string",value:e}}e.exports=function(e){return e.split(/(\{\{\/?\s*\w+\s*\/?\}\})/g).map(r)}},function(e,t,n){},function(e,t,n){"use strict";n.r(t);var r=n(0),M=n(1),u=n(56),i=n.n(u),o=n(9),c=n(11),a=n(3),j=n(155),s=Object(o.a)("div",{target:"elkpq0t0"})({name:"1wclzz7",styles:"margin:24px auto 0;max-width:1032px;display:flex;flex-flow:column;@media ( min-width: 960px ){padding:0 56px;}"});const l=Object(o.a)("div",{target:"et1p4me2"})({name:"q70wzv",styles:"display:flex;flex-flow:column;margin-bottom:24px;&:last-child{margin-bottom:0;}@media ( min-width: 800px ){flex-flow:row;}"}),L=Object(o.a)("div",{target:"et1p4me1"})({name:"1p8kjge",styles:"flex:0 1 auto;margin-bottom:24px;@media ( min-width: 800px ){flex:0 0 25%;margin:0 32px 0 0;}h2{font-size:16px;line-height:24px;}p{font-size:13px;line-height:17.89px;margin:12px 0;}>:last-child{margin-bottom:0;}"}),N=Object(o.a)("div",{target:"et1p4me0"})({name:"mkkf9p",styles:"flex:1 1 auto"});var y=({Description:e=(()=>null),children:t,...n})=>Object(r.createElement)(l,n,Object(r.createElement)(L,null,Object(r.createElement)(e,null)),Object(r.createElement)(N,null,t)),g=Object(o.a)(c.CardBody,{target:"eezfi080"})({name:"1tk7656",styles:"&.is-size-medium.is-size-medium{padding:$grid-unit-30;}h4{margin-top:0;margin-bottom:1em;}>*{margin-top:0;margin-bottom:1em;&:last-child{margin-bottom:0;>:last-child{margin-bottom:0;}}}input,select{margin:0;}ul>li:last-child{margin-bottom:0;.components-base-control__field{margin-bottom:0;}}.components-radio-control__option{margin-bottom:8px;}.components-base-control__help{margin-top:unset;}"});const D=()=>Object(r.createElement)(r.Fragment,null,Object(r.createElement)("h2",null,Object(a.__)("General","woocommerce-gateway-stripe")),Object(r.createElement)("p",null,Object(a.__)("Enable or disable Stripe on your store, enter activation keys, and turn on test mode to simulate transactions.","woocommerce-gateway-stripe"))),I=()=>Object(r.createElement)(r.Fragment,null,Object(r.createElement)("h2",null,Object(a.__)("General","woocommerce-gateway-stripe")),Object(r.createElement)("p",null,Object(a.__)("Connect the plugin to your Stripe account, view account overview, and edit business details. ","woocommerce-gateway-stripe"))),p=()=>Object(r.createElement)(c.Card,null,Object(r.createElement)(g,null,"The general settings card goes here.")),A=()=>Object(r.createElement)(c.Card,null,Object(r.createElement)(g,null,"The account details card goes here."));var f=()=>Object(r.createElement)(r.Fragment,null,Object(r.createElement)(y,{Description:D},Object(r.createElement)(p,null)),Object(r.createElement)(y,{Description:I},Object(r.createElement)(A,null))),m=n(156),S=n.n(m),x=n(25),T=n.n(x),d=n(157),w=n.n(d);const z=Object(o.a)("div",{target:"e1g6n2f60"})("position:relative;&::after{position:absolute;top:0;left:0;width:100%;height:100%;content:' ';background:white;opacity:0.5;",({hasOverlay:e})=>e?"display: none;":"",";}");var E=()=>{const[e,t]=Object(M.useState)(!0),[n,u]=Object(M.useState)(["cart","product","checkout"]),i=e=>t=>{u(t?[...n,e]:S()(n).call(n,t=>t!==e))};return Object(r.createElement)(c.Card,{className:"payment-request"},Object(r.createElement)(g,null,Object(r.createElement)(c.CheckboxControl,{checked:e,onChange:()=>t(e=>!e),label:Object(a.__)("Enable express checkouts","woocommerce-gateway-stripe"),help:w()({mixedString:Object(a.__)("By enabling this feature, you agree to {{stripeLink}}Stripe{{/stripeLink}}, {{appleLink}}Apple{{/appleLink}}, and {{googleLink}}Google{{/googleLink}}'s terms of use.","woocommerce-gateway-stripe"),components:{stripeLink:Object(r.createElement)("a",{target:"_blank",rel:"noreferrer",href:"https://stripe.com/apple-pay/legal"}),appleLink:Object(r.createElement)("a",{target:"_blank",rel:"noreferrer",href:"https://developer.apple.com/apple-pay/acceptable-use-guidelines-for-websites/"}),googleLink:Object(r.createElement)("a",{target:"_blank",rel:"noreferrer",href:"https://androidpay.developers.google.com/terms/sellertos"})}})}),Object(r.createElement)(z,{hasOverlay:e},Object(r.createElement)("h4",null,Object(a.__)("Show express checkouts on","woocommerce-gateway-stripe")),Object(r.createElement)("ul",null,Object(r.createElement)("li",null,Object(r.createElement)(c.CheckboxControl,{disabled:!e,checked:e&&T()(n).call(n,"checkout"),onChange:i("checkout"),label:Object(a.__)("Checkout","woocommerce-gateway-stripe")})),Object(r.createElement)("li",null,Object(r.createElement)(c.CheckboxControl,{disabled:!e,checked:e&&T()(n).call(n,"product"),onChange:i("product"),label:Object(a.__)("Product page","woocommerce-gateway-stripe")})),Object(r.createElement)("li",null,Object(r.createElement)(c.CheckboxControl,{disabled:!e,checked:e&&T()(n).call(n,"cart"),onChange:i("cart"),label:Object(a.__)("Cart","woocommerce-gateway-stripe")}))))),Object(r.createElement)(c.CardDivider,null),Object(r.createElement)(g,null,Object(r.createElement)(c.Button,{isSecondary:!0,href:"?TODO"},Object(a.__)("Customize appearance","woocommerce-gateway-stripe"))))},O=n(16),b=n.n(O);const h={small:{name:"1agzdcq",styles:"height:24px;width:37px"},medium:{name:"aemqcy",styles:"height:40px;width:65px"}},C=Object(o.a)("span",{target:"e575mz50"})(({size:e})=>h[e]||""," box-sizing:border-box;display:inline-flex;justify-content:center;border:1px solid transparent;img{max-width:100%;}");var v=({src:e,children:t,alt:n,size:M="small",...u})=>Object(r.createElement)(C,b()({},u,{size:M}),e?Object(r.createElement)("img",{src:e,alt:n}):t);const k={small:{name:"1r962iv",styles:"padding:4px"},medium:{name:"14si2be",styles:"padding:7px"}},Y=Object(o.a)(v,{target:"erwkboy0"})("background:white;border-color:#ddd;border-radius:5px;overflow:hidden;",({size:e})=>k[e]||"",";");var U=({size:e="small",...t})=>Object(r.createElement)(Y,b()({},t,{size:e}));const Q=Object(o.a)(U,{target:"eiah4a80"})({name:"46wb8n",styles:"background:#ef809f"});var Z=e=>Object(r.createElement)(Q,b()({},e,{src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMuOTk5IDExLjA1NWEuNzUuNzUgMCAwMS4wMTEgMS4wNjJsLS4wNTYuMDYxYS43NS43NSAwIDAxLTEuMDYyLjAxMmwtMS42NzYtMS42NkMuNzUyIDEwLjA2Ni42OSA5LjQ5Ni45OCA5LjE5NGwuMDU2LS4wNjFhLjY4NS42ODUgMCAwMS45MS0uMDYyYy4xMy4xLjMyLjA3OC40MjYtLjA1YS4zMDguMzA4IDAgMDAtLjA1LS40MjVBMS4yOTMgMS4yOTMgMCAwMC42IDguNzA4bC0uMDU2LjA2MWMtLjU0Mi41Ni0uNDM2IDEuNTA0LjI0IDIuMThsMS42ODMgMS42NzdjLjU0Mi41MiAxLjM5Ny41MDggMS45MjItLjAyOGwuMDYyLS4wNjJhMS4zNjEgMS4zNjEgMCAwMC0uMDI4LTEuOTExLjI5NS4yOTUgMCAwMC0uNDI1LjAwNS4yOS4yOSAwIDAwMCAuNDI1ek0yLjk5MyAyLjA1MmwuNjg3IDUuNjQ0YS4yOTkuMjk5IDAgMDAuMzM2LjI2My4yOTkuMjk5IDAgMDAuMjYyLS4zMzVsLS42ODctNS42NjctLjAwNi0uMDM0Yy0uMTE3LS40Ny4xNzQtLjk5NS41NjUtMS4wNzhhLjgzNi44MzYgMCAwMS42MzEuMTE3Ljg0Ljg0IDAgMDEuMzU4LjUzbDEuMTk2IDUuMTA5YS4zMDEuMzAxIDAgMTAuNTg3LS4xNEw1LjczMiAxLjM3QTEuNDM2IDEuNDM2IDAgMDA0LjAyNy4yNTJjLS43MzguMTU3LTEuMjE4IDEuMDE3LTEuMDM0IDEuOHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNOS4yOTcgOC42OGwxLjM1OC02Ljc2MkExLjQzIDEuNDMgMCAwMDkuNjYuMjQ3IDEuNDk1IDEuNDk1IDAgMDA3Ljg0IDEuMzA4TDYuMzM1IDYuNDU2YS4zMDEuMzAxIDAgMDAuMjA3LjM3NC4zMDEuMzAxIDAgMDAuMzc0LS4yMDdMOC40MiAxLjQ3QS44OTcuODk3IDAgMDE5LjQ5OC44MjhhLjgzMi44MzIgMCAwMS41NjUuOTY3TDguNzA1IDguNTYzYS4zMDUuMzA1IDAgMDAuMjM1LjM1Ny4zMDcuMzA3IDAgMDAuMzU3LS4yNHptLTMuNDE1IDYuNTE2Yy0yLjE1MSAwLTMuOTQ1LTEuNTc2LTMuOTQ1LTMuODE3YS4zLjMgMCAwMC0uMzAyLS4zMDEuMy4zIDAgMDAtLjMwMi4zMDFjMCAyLjU5NCAyLjA4NSA0LjQyMSA0LjU1IDQuNDIxYS4zLjMgMCAwMC4zMDEtLjMwMi4zLjMgMCAwMC0uMzAyLS4zMDJ6bS0xLjA2MS01LjI3YS43MTguNzE4IDAgMDEtLjI5Ny40MTRsLS4wNjcuMDM5YS43NTYuNzU2IDAgMDEtMS4wNS0uMjAxbC0xLjMyLTEuOTYyYy0uMzU3LS41NDgtLjMxMi0xLjExOC4wMzQtMS4zNThsLjA2Mi0uMDQ1Yy40NDctLjI1Ny44MjEtLjA2MSAxLjIwNy41MDNsMS4xIDEuNjQzYy4wOTYuMTQuMjguMTc0LjQyLjA4NC4xNC0uMDkuMTczLS4yOC4wODQtLjQxOUwzLjg5MyA2Ljk4MWMtLjU0OC0uNzk0LTEuMjE4LTEuMTQ2LTIuMDI5LS42NzZsLS4wODQuMDU2Yy0uNjQ4LjQ0MS0uNzI2IDEuMzkxLS4xOTUgMi4xOWwxLjMxOSAxLjk2OGMuNDI0LjYyIDEuMjYzLjc4MiAxLjg4My4zNjNsLjA2Ny0uMDQ1Yy4yNjMtLjE3OS40NTMtLjQ0Ny41NDItLjc1NGEuMjk5LjI5OSAwIDAwLS4yMTItLjM3LjI5NS4yOTUgMCAwMC0uMzYzLjIxM3oiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNNi44MTUgMTAuOTIxYy0uNjI2LjM1Mi0xLjAxOCAxLjAwNi0xLjA2MiAyLjAwNmEuMy4zIDAgMDAuMjg1LjMxOS4zMDUuMzA1IDAgMDAuMzE4LS4yODVjLjA0NS0uOTA1LjM5Ny0xLjM5Mi45NjItMS42MDQuMzAxLS4xMTIuNjMxLS4xMzQuOTIyLS4xMDZsLjA3Mi4wMWMuMzg2LjA3NC41MDktLjUwMi4xMjMtLjU5MWwtMi4zMTktLjUyYy0xLjA4NC0uMjk2LTEuMjUyLS42OTktMS4wNS0xLjM3LjA4OS0uMjkuMjYyLS40NDEuNTM2LS41MDIuMTc5LS4wNC4zNzQtLjAzNC41NjQgMCAuMDU2LjAxLjA5NS4wMTYuMTEyLjAyMkw5LjggOS4xMmwuMDY3LjAyM2EuNTY4LjU2OCAwIDAxLjE3OS4xMjhjLjIzNS4yNTIuMzY5LjcyNy4zMDIgMS41MS0uMjMgMi43MzgtMS41MDQgNC40MzctNC41MzMgNC40MDlhLjMuMyAwIDAwLS4wMDUuNTk4YzMuMzk4LjAyOCA0Ljg4NC0xLjk0NSA1LjEzNi00Ljk2My4wNzgtLjkzOS0uMDk1LTEuNTgyLS40NTktMS45NjctLjItLjIxMy0uNDEzLS4zMTMtLjU3NS0uMzM2bC0zLjQ4Mi0uODFjLS4wMjItLjAwNi0uMDc4LS4wMjItLjE1Ny0uMDMzYTIuMTY2IDIuMTY2IDAgMDAtLjgwNC4wMDVjLS40Ny4xMDYtLjgyNy40MDMtLjk3OC45MTctLjI5MS45NjcuMDE2IDEuNzI3IDEuNDggMi4xMjNsLjg0NS4xOTZ6IiBmaWxsPSIjZmZmIi8+PC9zdmc+Cg=="}));const G=Object(o.a)(U,{target:"eh46vsm0"})({name:"1f1f6j2",styles:"background:#10298e"});var P=e=>Object(r.createElement)(G,b()({},e,{src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjcgOCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNMTMuMjk1IDIuMzk3di0uMDEzbC40MDEtLjg1QTMuNTg0IDMuNTg0IDAgMDAxMS4wOC40MDJhMy42IDMuNiAwIDAwLTMuMzMgMi4yMzZINi45OWwtLjU0MiAxLjA3aDEuMDQ1YTMuOTU0IDMuOTU0IDAgMDAtLjAxNS4yOTRjMCAuMTA3LjAwNy4yMTIuMDE2LjMxN0g2Ljk5bC0uNDc0IDEuMDU3aDEuMjM1QTMuNTk5IDMuNTk5IDAgMDAxMS4wOCA3LjZjLjgzNiAwIDEuNjA1LS4yODkgMi4yMTYtLjc2OHYtMS4zNmEyLjUzNyAyLjUzNyAwIDAxLTQuMTI4LS4wOTdoMi42NzdsLjUwMS0xLjA1N0g4Ljc1OGEyLjQ3NSAyLjQ3NSAwIDAxLS4wNC0uMzgzYzAtLjA1LjAwNy0uMDk5LjAxNC0uMTQ3bC4wMS0uMDhoMy44NzRsLjU0My0xLjA3MUg5LjA4NWEyLjU0IDIuNTQgMCAwMTIuMTg1LTEuMjU0IDIuNTQgMi41NCAwIDAxMi4wMjUgMS4wMTR6IiBmaWxsPSIjRkZCRTAwIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yNC4yMSA2LjMyNGwuMzYgMS4yNDJoMS45OTJMMjQuMzY2LjRoLTIuOTQyTDE5LjI3IDcuNTY2aDEuOTc5bC4zNjItMS4yNDJoMi42em0tLjQxNS0xLjQzNkgyMi4wM2wuODg2LTMuMDM3Ljg3OSAzLjAzN3pNMTUuODk2IDUuNjg4aDEuNDM3czEuMTY2LjEwNyAxLjc2Mi0uMTljLjU5Ni0uMjk5Ljc3Mi0uODAxLjg1My0xLjEuMDc4LS4yOC4xMTgtMS4yMTUuMTIyLTEuMzE0di0uMDA5Yy4wMTctLjMzNy4wMDktMS4xMi0uMzUyLTEuODItLjM3Ni0uNzMyLTEuNTgtLjg0LTIuMDYtLjg1M2gtLjAyOGMtLjExLS4wMDMtLjE3NiAwLS4xNzYgMGgtMy40N3Y3LjE2NGgxLjkxMlY1LjY4OHptMS4zODMtMy43N2gtMS4zODN2Mi4xNDNoMS4yNzJjLjE3OC0uMDAyLjc4NS0uMDMxLjg0My0uMzY2LjA2My0uMzY4LjA2LS43NzcuMDU5LS44M2E0LjE3MyA0LjE3MyAwIDAwLS4wNzMtLjU1M2MtLjA4MS0uMzkzLS43MTgtLjM5My0uNzE4LS4zOTN6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTQuNTM0IDcuNTIyczEuMjIyLS4wNiAxLjU2LS45ODFjLjM0LS45MjIuMDk2LTIuMTQ0LjA5Ni0yLjE0NHMtLjEyOC0uODIyLTEuMzEzLTEuMDUybC0uMDAyLS4wMDQtLjAwMS0uMDA0YTQuNTQgNC41NCAwIDAwLS40NDUtLjA1MmgtLjAwMmE2Ni40MSA2Ni40MSAwIDAwLTEuNTMxLS4xMDVsLS4wMi0uMDA4Yy0uMDA2LS4wMDMtLjAxMi0uMDA2LS4wMi0uMDA4LS43MzMuMDEzLS43NDYtLjMxMi0uNzQ2LS4zNTMgMC0uMDA2LS4wMDQtLjAyMi0uMDEtLjA0NC0uMDI4LS4xMi0uMTA2LS40NDcuMDc3LS42ODguMjEtLjI3NCAxLjA0NS0uMjQgMS4xMDQtLjIzNy4xOC4wMDguNDI4LjAyMi41NS4wNDcuMjAzLjA0MS40MjIuMTY4LjM5My43NzNoMS44MDN2LS41NTZzLjA0MS0uOTYyLS42MzctMS4zNDFDNC44NDIuNDU4IDQuMjQ3LjQxNyA0LjAzNy40MTNoLS4wMDJzLTEuMDg1LS4wMjgtMS42IDBhNS4wMDYgNS4wMDYgMCAwMC0xLjA0Ny4xNkMxLjE0OC42MjUuOTEuNzIuNzE1Ljg5MWEuMDk3LjA5NyAwIDAwLS4wMTMuMDE1QS4xMS4xMSAwIDAxLjY5LjkyTC42NzYuOTNDLjY3LjkzMi42NjQuOTM2LjY1OS45NC42NDYuOTUzLjY0Ljk2NS42MzQuOTc3LjYzMS45ODQuNjI3Ljk5Mi42MjIgMWMtLjU4OS42NTMtLjQ4IDEuOTIxLS4yNiAyLjY4LjE3My42MDUuODguODEzIDEuMjE1Ljg3OWwuMDAyLjAwMS4wMDIuMDAyLjEwNS4wMTUuMDE4LjAwMy4wMTQuMDAyLjAxNC4wMDIuMDEzLjAwMi4wMTEuMDAxYy40NTUuMDU1IDEuNTEyLjEzIDEuOTguMTZ2LjAwNWwuMDI2LS4wMDIuMTg3LjAxMi4wMTQuMDAxYy4xNzcuMDMzLjM5Ni4xMzYuMzk3LjQ2NHYuMDM3Yy4wMDIuMzc2LjAwMy40NzMtLjA0LjUzNWEuMTguMTggMCAwMC0uMDY4LjA2NWMtLjA4NC4xNDItLjM4OS4xOC0uNjEuMTloLTEuMThjLS41MDEtLjA2OC0uNDg4LS42MS0uNDg4LS42MXYtLjIxN0guMTg1di4yN1MuMTMgNi42NS43IDcuMDdjLjQ5Mi4zNjMgMS4wMTkuNDU4IDEuNzYyLjQ3OHYuMDFoLjhzLjcuMDMxIDEuMjcyLS4wMzh2LjAwMnoiIGZpbGw9IiNmZmYiLz48L3N2Zz4K"})),_=e=>Object(r.createElement)(v,b()({},e,{src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjYgNDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM2IDNhMiAyIDAgMDEyLTJoMjQuNjZhMiAyIDAgMDEyIDJ2MTRhMiAyIDAgMDEtMiAySDM4YTIgMiAwIDAxLTItMlYzeiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzggMGgyNC42NmEzIDMgMCAwMTMgM3YxNGEzIDMgMCAwMS0zIDNIMzhhMyAzIDAgMDEtMy0zVjNhMyAzIDAgMDEzLTN6bTAgMWEyIDIgMCAwMC0yIDJ2MTRhMiAyIDAgMDAyIDJoMjQuNjZhMiAyIDAgMDAyLTJWM2EyIDIgMCAwMC0yLTJIMzh6IiBmaWxsPSIjREREIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02MC4wNTUgMTMuMDQ4di0uMjExaC0uMDU0bC0uMDY0LjE0NS0uMDYzLS4xNDVoLS4wNTV2LjIxaC4wMzl2LS4xNThsLjA1OS4xMzdoLjA0bC4wNi0uMTM4di4xNmguMDM5em0tLjM0OCAwdi0uMTc1aC4wN3YtLjAzNmgtLjE4di4wMzZoLjA3MnYuMTc1aC4wMzh6bS4zNi0zLjEzN2MwIDMuMjY1LTIuNjQgNS45MTItNS44OTcgNS45MTItMy4yNTYgMC01Ljg5Ni0yLjY0Ny01Ljg5Ni01LjkxMkM0OC4yNzQgNi42NDcgNTAuOTE0IDQgNTQuMTcgNGMzLjI1NyAwIDUuODk3IDIuNjQ3IDUuODk3IDUuOTExeiIgZmlsbD0iI0Y3OUYxQSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNTIuNzkzIDkuOTExYzAgMy4yNjUtMi42NCA1LjkxMi01Ljg5NyA1LjkxMkM0My42NCAxNS44MjMgNDEgMTMuMTc2IDQxIDkuOTEgNDEgNi42NDcgNDMuNjQgNCA0Ni44OTcgNGMzLjI1NiAwIDUuODk2IDIuNjQ3IDUuODk2IDUuOTExeiIgZmlsbD0iI0VBMDAxQiIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNTAuNTMzIDUuMjU4YTUuOTA1IDUuOTA1IDAgMDAtMi4yNTggNC42NTNjMCAxLjg4OS44ODMgMy41NzIgMi4yNTggNC42NTRhNS45MDcgNS45MDcgMCAwMDIuMjYtNC42NTQgNS45MDUgNS45MDUgMCAwMC0yLjI2LTQuNjUzeiIgZmlsbD0iI0ZGNUYwMSIvPjxwYXRoIGQ9Ik0xIDMuMDZhMiAyIDAgMDEyLTJoMjQuNjZhMiAyIDAgMDEyIDJ2MTRhMiAyIDAgMDEtMiAySDNhMiAyIDAgMDEtMi0ydi0xNHoiIGZpbGw9IiNmZmYiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMgLjA2aDI0LjY2YTMgMyAwIDAxMyAzdjE0YTMgMyAwIDAxLTMgM0gzYTMgMyAwIDAxLTMtM3YtMTRhMyAzIDAgMDEzLTN6bTAgMWEyIDIgMCAwMC0yIDJ2MTRhMiAyIDAgMDAyIDJoMjQuNjZhMiAyIDAgMDAyLTJ2LTE0YTIgMiAwIDAwLTItMkgzeiIgZmlsbD0iI0RERCIvPjxwYXRoIGQ9Ik0xMy44MiAxMy4zMjNoLTEuNzM3bDEuMDg3LTYuM2gxLjczN2wtMS4wODYgNi4zek0yMC4xMiA3LjE3NmE0LjUzNCA0LjUzNCAwIDAwLTEuNTU5LS4yNjhjLTEuNzE2IDAtMi45MjQuODU4LTIuOTMyIDIuMDg1LS4wMTQuOTA0Ljg2NiAxLjQwNyAxLjUyMyAxLjcwOS42NzMuMzA4LjkwMS41MS45MDEuNzg0LS4wMDcuNDIyLS41NDMuNjE3LTEuMDQzLjYxNy0uNjk0IDAtMS4wNjYtLjEtMS42My0uMzM1bC0uMjMtLjEwMS0uMjQzIDEuNDE0Yy40MDguMTc0IDEuMTU5LjMyOSAxLjkzOC4zMzYgMS44MjQgMCAzLjAxLS44NDUgMy4wMjUtMi4xNTIuMDA2LS43MTctLjQ1OC0xLjI2Ny0xLjQ1OS0xLjcxNi0uNjA4LS4yODgtLjk4LS40ODItLjk4LS43NzcuMDA3LS4yNjkuMzE1LS41NDMgMS0uNTQzLjU2Ni0uMDE0Ljk4LjExNCAxLjI5NS4yNDFsLjE1Ny4wNjcuMjM3LTEuMzZ6IiBmaWxsPSIjMUExRjcxIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy4yMyA3LjAyMmgxLjM0NWwxLjQwMiA2LjNoLTEuNjFzLS4xNTctLjcyMy0uMjA3LS45NDRoLTIuMjNsLS4zNjYuOTQ1aC0xLjgyM2wyLjU4MS01Ljc3OGMuMTgtLjQwOS40OTQtLjUyMy45MDktLjUyM3ptLS4xMDcgMi4zMDZsLS42OTMgMS43NjNoMS40NDRjLS4wNzItLjMxNS0uNC0xLjgyMy0uNC0xLjgyM2wtLjEyMi0uNTQzYy0uMDUxLjE0LS4xMjUuMzMyLS4xNzUuNDYxbC0uMDU0LjE0MnpNNC41NTQgNy4wMjJINy4zNWMuMzc5LjAxNC42ODYuMTI4Ljc4Ni41M2wuNjA4IDIuODk1LjE4Ni44NzIgMS43MDItNC4yOTdoMS44MzdsLTIuNzMxIDYuMjk0SDcuOUw2LjM1MiA3Ljg0MmE3LjM1OSA3LjM1OSAwIDAwLTEuODI3LS42OTJsLjAyOS0uMTI4eiIgZmlsbD0iIzFBMUY3MSIvPjxwYXRoIGQ9Ik0zNiAyNWEyIDIgMCAwMTItMmgyNC42NmEyIDIgMCAwMTIgMnYxNGEyIDIgMCAwMS0yIDJIMzhhMiAyIDAgMDEtMi0yVjI1eiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyKSIvPjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMzggMjJoMjQuNjZhMyAzIDAgMDEzIDN2MTRhMyAzIDAgMDEtMyAzSDM4YTMgMyAwIDAxLTMtM1YyNWEzIDMgMCAwMTMtM3ptMCAxYTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMmgyNC42NmEyIDIgMCAwMDItMlYyNWEyIDIgMCAwMC0yLTJIMzh6IiBmaWxsPSIjREREIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00NS43MyAzMS44NjNoNC43OTVjLS4wNDMtMS4wMzctLjI4NC0yLjEwNS0xLjAxNy0yLjc5Mi0uODczLS44MTgtMi40MDEtMS4xMjEtMy43NjctMS4xMjEtMS40MjEgMC0yLjk5My4zMzMtMy44NyAxLjIxLS43NTcuNzU2LS45MiAxLjk3Mi0uOTIgMy4wNjUgMCAxLjE0NC4zMiAyLjQ3NiAxLjE0IDMuMjQyLjg3My44MTYgMi4yODYgMS4wMzMgMy42NSAxLjAzMyAxLjMyNSAwIDIuNzYtLjI0NSAzLjYyNy0xLjAyLjg2Ni0uNzczIDEuMTY1LTIuMDc2IDEuMTY1LTMuMjU1di0uMDA2aC00LjgwNHYtLjM1NnptNS4xMTcuMzU2djQuMDloNi42NzJ2LS4wMDZjLjk3Ni0uMDUzIDEuNzUzLS45MzMgMS43NTMtMi4wMTQgMC0xLjA4MS0uNzc3LTIuMDE4LTEuNzUzLTIuMDcxdi4wMDFoLTYuNjcyem02LjU5Ni00LjA5OGMuOTUxIDAgMS43MDYuODI2IDEuNzA2IDEuODY3IDAgLjk4Ny0uNjkzIDEuNzkyLTEuNTc1IDEuODc1aC02LjcyN3YtMy43NDhoNi4zODVhLjcuNyAwIDAxLjEzLjAwMmMuMDI4LjAwMi4wNTUuMDA0LjA4LjAwNHoiIGZpbGw9IiNGRUZFRkUiLz48cGF0aCBkPSJNMSAyNWEyIDIgMCAwMTItMmgyNC42NmEyIDIgMCAwMTIgMnYxNGEyIDIgMCAwMS0yIDJIM2EyIDIgMCAwMS0yLTJWMjV6IiBmaWxsPSIjMjU1N0Q2Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zIDIyaDI0LjY2YTMgMyAwIDAxMyAzdjE0YTMgMyAwIDAxLTMgM0gzYTMgMyAwIDAxLTMtM1YyNWEzIDMgMCAwMTMtM3ptMCAxYTIgMiAwIDAwLTIgMnYxNGEyIDIgMCAwMDIgMmgyNC42NmEyIDIgMCAwMDItMlYyNWEyIDIgMCAwMC0yLTJIM3oiIGZpbGw9IiNEREQiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEgMzEuNDUzaDEuMzc3bC4zMS0uNzQ1aC42OTVsLjMxLjc0NUg2LjR2LS41N2wuMjQxLjU3Mkg4LjA1bC4yNDItLjU4di41NzhoNi43MzFsLS4wMDMtMS4yMjRoLjEzYy4wOTIuMDAzLjExOC4wMTIuMTE4LjE2MnYxLjA2MmgzLjQ4MnYtLjI4NWMuMjguMTUuNzE4LjI4NSAxLjI5Mi4yODVoMS40NjVsLjMxNC0uNzQ1aC42OTVsLjMwNi43NDVoMi44MjN2LS43MDhsLjQyNy43MDhoMi4yNjN2LTQuNjgyaC0yLjI0di41NTNsLS4zMTMtLjU1M2gtMi4yOTd2LjU1M2wtLjI4Ny0uNTUzaC0zLjEwNGMtLjUxOSAwLS45NzUuMDcyLTEuMzQ0LjI3M3YtLjI3M2gtMi4xNDF2LjI3M2MtLjIzNS0uMjA3LS41NTUtLjI3My0uOTEtLjI3M0g3Ljg3NmwtLjUyNiAxLjIxLS41MzgtMS4yMUg0LjM0OHYuNTUzbC0uMjctLjU1M0gxLjk3NUwxIDI4Ljk5N3YyLjQ1NnptOC42OS0uNjc1aC0uODI2bC0uMDAzLTIuNjMtMS4xNjggMi42M2gtLjcwOGwtMS4xNy0yLjYzMnYyLjYzMWgtMS42NGwtLjMxLS43NDhIMi4xODhsLS4zMTMuNzQ5SDFsMS40NDMtMy4zNTdIMy42NGwxLjM3IDMuMTc4di0zLjE3OGgxLjMxNWwxLjA1NSAyLjI3Ny45NjktMi4yNzdIOS42OXYzLjM1N3ptLTYuMS0xLjQ0NWwtLjU1MS0xLjMzOC0uNTQ5IDEuMzM3aDEuMXptOS4zODggMS40NDVoLTIuNjkyVjI3LjQyaDIuNjkydi43aC0xLjg4NnYuNjA0aDEuODR2LjY4OGgtMS44NHYuNjdoMS44ODZ2LjY5NXptMy43OTMtMi40NTNjMCAuNTM1LS4zNTkuODEyLS41NjguODk1YS45MjkuOTI5IDAgMDEuMzk5LjI4M2MuMTE0LjE2Ny4xMzMuMzE2LjEzMy42MTV2LjY2aC0uODEzbC0uMDAzLS40MjNjMC0uMjAyLjAyLS40OTMtLjEyNy0uNjU0LS4xMTgtLjExOC0uMjk3LS4xNDQtLjU4Ny0uMTQ0aC0uODY1djEuMjJoLS44MDZ2LTMuMzU2aDEuODU0Yy40MTEgMCAuNzE1LjAxMS45NzUuMTYuMjU1LjE1MS40MDguMzcuNDA4Ljc0NHptLTEuMDE5LjQ5OWMtLjExLjA2Ny0uMjQxLjA2OS0uMzk4LjA2OWgtLjk3OXYtLjc0NmguOTkyYy4xNCAwIC4yODcuMDA3LjM4Mi4wNi4xMDUuMDUuMTcuMTU0LjE3LjI5OCAwIC4xNDYtLjA2Mi4yNjQtLjE2Ny4zMTl6bTIuMzExIDEuOTU0aC0uODIyVjI3LjQyaC44MjJ2My4zNTd6bTkuNTQ1IDBoLTEuMTQybC0xLjUyNy0yLjUydjIuNTJoLTEuNjQybC0uMzEzLS43NDlIMjEuMzFsLS4zMDQuNzVoLS45NDNjLS4zOTIgMC0uODg4LS4wODctMS4xNjgtLjM3Mi0uMjg0LS4yODUtLjQzMS0uNjcxLS40MzEtMS4yODIgMC0uNDk4LjA4OC0uOTUzLjQzNC0xLjMxMi4yNjEtLjI2OC42NjktLjM5MiAxLjIyNC0uMzkyaC43OHYuNzJoLS43NjNjLS4yOTQgMC0uNDYuMDQzLS42Mi4xOTgtLjEzOC4xNDItLjIzMi40MS0uMjMyLjc2IDAgLjM2LjA3Mi42Mi4yMjIuNzkuMTI0LjEzMi4zNDkuMTcyLjU2MS4xNzJoLjM2MmwxLjEzNi0yLjY0aDEuMjA3bDEuMzY0IDMuMTc1di0zLjE3NWgxLjIyN2wxLjQxNiAyLjMzOHYtMi4zMzhoLjgyNnYzLjM1N3ptLTQuODk4LTEuNDQ1bC0uNTU4LTEuMzM4LS41NTQgMS4zMzdoMS4xMTJ6bTYuOTUgNi44MDVjLS4xOTUuMjg1LS41NzYuNDMtMS4wOTMuNDNoLTEuNTU2di0uNzJoMS41NWMuMTU0IDAgLjI2MS0uMDIxLjMyNi0uMDg0YS4yOTYuMjk2IDAgMDAuMDk2LS4yMTkuMjc2LjI3NiAwIDAwLS4wOTktLjIyMmMtLjA1OC0uMDUxLS4xNDQtLjA3NS0uMjg0LS4wNzUtLjc1Ny0uMDI1LTEuNy4wMjQtMS43LTEuMDQgMC0uNDg2LjMxLS45OTggMS4xNTYtLjk5OGgxLjYwNXYtLjY2OGgtMS40OTJjLS40NSAwLS43NzcuMTA3LTEuMDA4LjI3NHYtLjI3NGgtMi4yMDZjLS4zNTIgMC0uNzY2LjA4Ny0uOTYyLjI3NHYtLjI3NGgtMy45Mzl2LjI3NGMtLjMxMy0uMjI2LS44NDMtLjI3NC0xLjA4Ni0uMjc0aC0yLjU5OXYuMjc0Yy0uMjQ4LS4yNC0uOC0uMjc0LTEuMTM1LS4yNzRoLTIuOTA4bC0uNjY1LjcxNi0uNjIzLS43MTZINi42OTR2NC42ODVoNC4yNjJsLjY4NS0uNzI5LjY0Ni43MjkgMi42MjcuMDAydi0xLjEwMmguMjU4Yy4zNDkuMDA1Ljc2LS4wMDkgMS4xMjMtLjE2NXYxLjI2NGgyLjE2NnYtMS4yMmguMTA1Yy4xMzQgMCAuMTQ3LjAwNS4xNDcuMTM3djEuMDgzaDYuNTgxYy40MTggMCAuODU1LS4xMDcgMS4wOTctLjN2LjNoMi4wODhjLjQzNCAwIC44NTktLjA2MSAxLjE4MS0uMjE2di0uODczem0tMTMuMDUtMS44MDNjMCAuOTMzLS43IDEuMTI2LTEuNDAzIDEuMTI2SDE0LjJ2MS4xMjZoLTEuNTY2bC0uOTkyLTEuMTEyLTEuMDMxIDEuMTEySDcuNDJWMzMuMjNoMy4yNGwuOTkyIDEuMTAxIDEuMDI1LTEuMWgyLjU3NWMuNjQgMCAxLjM1OC4xNzYgMS4zNTggMS4xMDV6bS02LjQwNiAxLjU0Nkg4LjIyM3YtLjY2OGgxLjc2OXYtLjY4NWgtMS43N3YtLjYxaDIuMDJsLjg4Mi45NzgtLjkyLjk4NXptMy4xOTEuMzg0bC0xLjIzNi0xLjM2OCAxLjIzNi0xLjMyNHYyLjY5MnptMS44My0xLjQ5M2gtMS4wNDF2LS44NTVoMS4wNWMuMjkxIDAgLjQ5My4xMTguNDkzLjQxMiAwIC4yOS0uMTkyLjQ0My0uNTAyLjQ0M3ptNS40NTUtMS41NDJoMi42OXYuNjk0aC0xLjg4N3YuNjFoMS44NHYuNjg1aC0xLjg0di42NjhsMS44ODcuMDA0di42OTZoLTIuNjlWMzMuMjN6bS0xLjAzMyAxLjc5N2MuMTc5LjA2Ni4zMjYuMTg0LjM5NC4yODEuMTE0LjE2NS4xMy4zMTguMTM0LjYxM3YuNjY2aC0uODF2LS40MmMwLS4yMDIuMDItLjUtLjEzLS42NTctLjExNy0uMTItLjI5Ni0uMTUtLjU5LS4xNWgtLjg2MnYxLjIyN2gtLjgxVjMzLjIzaDEuODZjLjQwOSAwIC43MDYuMDE4Ljk3LjE1OS4yNTUuMTUzLjQxNS4zNjMuNDE1Ljc0NSAwIC41MzYtLjM2LjgxLS41NzEuODk0em0tLjQ1Ni0uNDI1Yy0uMTA4LjA2NC0uMjQuMDctLjM5OC4wN2gtLjk3OXYtLjc1NWguOTkzYy4xNDMgMCAuMjg2LjAwMy4zODQuMDYuMTA0LjA1NS4xNjcuMTYuMTY3LjMwMyAwIC4xNDQtLjA2My4yNi0uMTY3LjMyMnptNy4yNzQuMjE0Yy4xNTcuMTYyLjI0MS4zNjYuMjQxLjcxMSAwIC43MjMtLjQ1MyAxLjA2LTEuMjY2IDEuMDZoLTEuNTd2LS43MmgxLjU2NGMuMTUzIDAgLjI2MS0uMDIuMzMtLjA4M2EuMjk5LjI5OSAwIDAwLS4wMDQtLjQ0MWMtLjA2MS0uMDUxLS4xNDctLjA3NS0uMjg3LS4wNzUtLjc1My0uMDI1LTEuNjk3LjAyMy0xLjY5Ny0xLjA0IDAtLjQ4Ni4zMDctLjk5OCAxLjE1Mi0uOTk4aDEuNjE1di43MTRoLTEuNDc4Yy0uMTQ2IDAtLjI0Mi4wMDUtLjMyMy4wNi0uMDg4LjA1NS0uMTIuMTM2LS4xMi4yNDJhLjI1Ny4yNTcgMCAwMC4xNzUuMjUuOTMuOTMgMCAwMC4zMTQuMDM5bC40MzQuMDExYy40MzcuMDEuNzM4LjA4Ni45Mi4yN3ptMy4xOTctLjg5OWgtMS40NjhjLS4xNDcgMC0uMjQ0LjAwNi0uMzI2LjA2LS4wODUuMDU1LS4xMTguMTM2LS4xMTguMjQzYS4yNTMuMjUzIDAgMDAuMTc2LjI1Yy4wODUuMDI5LjE3Ni4wMzguMzEuMDM4bC40MzcuMDExYy40NDEuMDExLjczNS4wODcuOTE1LjI3LjAzMi4wMjYuMDUyLjA1NS4wNzQuMDg0di0uOTU2eiIgZmlsbD0iI2ZmZiIvPjxkZWZzPjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhciIgeDE9IjQzLjc3NCIgeTE9IjIwLjcyMSIgeDI9IjM3LjkwMSIgeTI9IjQwLjUxNiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wLz48c3RvcCBvZmZzZXQ9Ii41OTIiLz48c3RvcCBvZmZzZXQ9IjEiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4K"})),R=e=>Object(r.createElement)(U,b()({},e,{src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjYgMTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTS45NjUgMi42YTIuNCAyLjQgMCAwMTIuNC0yLjRoMTkuNzE0YTIuNCAyLjQgMCAwMTIuNCAyLjR2MTAuOGEyLjQgMi40IDAgMDEtMi40IDIuNEgzLjM2NWEyLjQgMi40IDAgMDEtMi40LTIuNFYyLjZ6IiBmaWxsPSIjZmZmIi8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMy4wOCAxLjRIMy4zNjRhMS4yIDEuMiAwIDAwLTEuMiAxLjJ2MTAuOGExLjIgMS4yIDAgMDAxLjIgMS4yaDE5LjcxNGExLjIgMS4yIDAgMDAxLjItMS4yVjIuNmExLjIgMS4yIDAgMDAtMS4yLTEuMnpNMy4zNjQuMmEyLjQgMi40IDAgMDAtMi40IDIuNHYxMC44YTIuNCAyLjQgMCAwMDIuNCAyLjRoMTkuNzE0YTIuNCAyLjQgMCAwMDIuNC0yLjRWMi42YTIuNCAyLjQgMCAwMC0yLjQtMi40SDMuMzY1eiIgZmlsbD0iIzBGMzM2NSIvPjxwYXRoIGQ9Ik0xMy4yMjMuMmg4LjI1N2E0IDQgMCAwMTQgNHY3LjZhNCA0IDAgMDEtNCA0aC04LjI1N1YuMnoiIGZpbGw9IiMwRjMzNjUiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE0Ljg5NSAxMi44NjNoMi41NTN2LTMuNTVoLjAyOGMuNDgzLjc3OCAxLjQ0NyAxLjA2NiAyLjM0MSAxLjA2NiAyLjE5OSAwIDMuMzc2LTEuNjA1IDMuMzc2LTMuNTM3IDAtMS41OC0xLjEyLTMuMy0zLjE2My0zLjMtMS4xNjMgMC0yLjI0Mi40MTUtMi43NTIgMS4zM2gtLjAyOVYzLjY5NGgtMi4zNTR2OS4xN3ptNS42NjItNS45N2MwIDEuMDQtLjU4MiAxLjc1NS0xLjU0NiAxLjc1NS0uODUyIDAtMS41NjItLjcxNC0xLjU2Mi0xLjY2OCAwLS45NzguNjI1LTEuNzA2IDEuNTYyLTEuNzA2Ljk5MiAwIDEuNTQ2Ljc1MiAxLjU0NiAxLjYxOHoiIGZpbGw9IiNGRkZGRkUiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjU0NSAzLjY5M0g5LjIzMnYxLjE4aC0uMDI4YTIuOTYgMi45NiAwIDAwLTIuNTExLTEuMzNjLTIuMjk4IDAtMy4zMzQgMS40NTUtMy4zMzQgMy40IDAgMS45MzIgMS4yNjMgMy4yODYgMy4yOTIgMy4yODYgMS4wMjEgMCAxLjg3Mi0uMzUgMi40ODItMS4xMTdoLjAyOHYuMzUyYzAgMS4yOC0uNzk0IDEuODk0LTIuMjcgMS44OTQtMS4wNjMgMC0xLjcxNi0uMi0yLjQ5Ni0uNTM5TDQuMjY3IDEyLjZhOS42NSA5LjY1IDAgMDAyLjgyMy40MTRjMi45OCAwIDQuNDU1LS44NjYgNC40NTUtMy41NXYtNS43N3pNNS45OTYgNi45MDRjMC0uODkuNDk3LTEuNjMgMS40NDctMS42MyAxLjE0OSAwIDEuNjMxLjgxNSAxLjYzMSAxLjU0MyAwIDEuMDA0LS43MjMgMS42OC0xLjYzIDEuNjgtLjc2NyAwLTEuNDQ4LS41NzctMS40NDgtMS41OTN6IiBmaWxsPSIjRDgyMzJBIi8+PC9zdmc+Cg=="})),W=e=>Object(r.createElement)(U,b()({},e,{src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjcgMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjMwNiAxLjk5MmMtLjMwNS4zNjUtLjc5My42NTMtMS4yOC42MTItLjA2Mi0uNDkzLjE3Ny0xLjAxOC40NTctMS4zNDFDNC43ODcuODg4IDUuMzIuNjIgNS43NTMuNmMuMDUuNTE0LS4xNDcgMS4wMTctLjQ0NyAxLjM5MnptLjQ0LjcxYy0uNDMtLjAyNi0uODIxLjEzLTEuMTM4LjI1Ni0uMjA0LjA4LS4zNzcuMTUtLjUwOC4xNS0uMTQ3IDAtLjMyNy0uMDczLS41MjktLjE1NC0uMjY0LS4xMDYtLjU2Ny0uMjI4LS44ODQtLjIyMi0uNzI2LjAxLTEuNDAyLjQyNy0xLjc3MyAxLjA5Qy4xNSA1LjE0Ny43MTUgNy4xMSAxLjQ1MiA4LjE4OWMuMzYxLjUzNC43OTMgMS4xMiAxLjM2MiAxLjEuMjUtLjAxLjQzLS4wODguNjE3LS4xNjcuMjE1LS4wOTMuNDM4LS4xODguNzg2LS4xODguMzM2IDAgLjU1LjA5My43NTQuMTgyLjE5NC4wODUuMzgxLjE2Ny42NTkuMTYyLjU5LS4wMS45Ni0uNTM0IDEuMzItMS4wNjkuMzktLjU3My41NjEtMS4xMzMuNTg3LTEuMjE4bC4wMDMtLjAxLS4wMTQtLjAwNmMtLjEzLS4wNi0xLjEyNS0uNTIxLTEuMTM0LTEuNzU2LS4wMS0xLjAzNi43ODktMS41NjIuOTE1LTEuNjQ0bC4wMTUtLjAxYy0uNTA4LS43Ni0xLjMwMS0uODQzLTEuNTc2LS44NjR6bTQuMDgxIDYuNTJ2LTguMDFIMTIuOGMxLjUzNSAwIDIuNjA3IDEuMDY4IDIuNjA3IDIuNjMgMCAxLjU2Mi0xLjA5MyAyLjY0MS0yLjY0OCAyLjY0MWgtMS43MDJ2Mi43MzloLTEuMjN6TTExLjA2IDIuMjZoMS40MTdjMS4wNjggMCAxLjY3Ny41NzUgMS42NzcgMS41ODdzLS42MSAxLjU5My0xLjY4MiAxLjU5M0gxMS4wNlYyLjI2em04LjQwOCA2Yy0uMzI1LjYyOC0xLjA0MiAxLjAyMy0xLjgxNCAxLjAyMy0xLjE0MyAwLTEuOTQxLS42ODgtMS45NDEtMS43MjYgMC0xLjAyOC43NzItMS42MTkgMi4yLTEuNzA2bDEuNTM1LS4wOTN2LS40NDFjMC0uNjUzLS40MjItMS4wMDctMS4xNzQtMS4wMDctLjYyIDAtMS4wNzIuMzIzLTEuMTY0LjgxN2gtMS4xMDhjLjAzNi0xLjAzOCAxLjAwMS0xLjc5NCAyLjMwNy0xLjc5NCAxLjQwOCAwIDIuMzIzLjc0NSAyLjMyMyAxLjkwMXYzLjk4N2gtMS4xMzl2LS45NmgtLjAyNXptLTEuNDg0LjA3M2MtLjY1NSAwLTEuMDcyLS4zMTktMS4wNzItLjgwNyAwLS41MDQuNDAxLS43OTYgMS4xNjktLjg0M2wxLjM2Ny0uMDg3di40NTJjMCAuNzUtLjYzIDEuMjg1LTEuNDY0IDEuMjg1em02LjQyNCAxLjIwMmMtLjQ5MyAxLjQwMy0xLjA1NyAxLjg2NS0yLjI1NyAxLjg2NS0uMDkxIDAtLjM5Ni0uMDEtLjQ2Ny0uMDN2LS45NjJjLjA3Ni4wMS4yNjQuMDIuMzYuMDIuNTQ0IDAgLjg1LS4yMyAxLjAzNy0uODMxbC4xMTItLjM1NUwyMS4xMSAzLjQxaDEuMjg1bDEuNDQ5IDQuNzMyaC4wMjVsMS40NDgtNC43MzJoMS4yNWwtMi4xNiA2LjEyNXoiIGZpbGw9IiMwMDAiLz48L3N2Zz4K"})),J=e=>Object(r.createElement)(U,b()({},e,{src:"data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjkgMTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy44OSA5LjA0MlY1Ljg3NmgxLjcxM2MuNzA2IDAgMS4zLS4yMjIgMS43OC0uNjY2YTIuMTM1IDIuMTM1IDAgMDAuNzQzLTEuNjYgMi4xNDUgMi4xNDUgMCAwMC0uNzQzLTEuNjUgMi41MyAyLjUzIDAgMDAtMS43OC0uNjc2aC0yLjc1djcuODE4aDEuMDM3em0tLjAwMS00LjEyNnYtMi43M2gxLjczOGMuMzg3LS4wMS43Ni4xNCAxLjAyNi40MTUuMjY2LjI1LjQxNi41OTUuNDE2Ljk1NXMtLjE1LjcwNS0uNDE2Ljk1NWMtLjI2OC4yNjktLjY0LjQxNi0xLjAyNi40MDVoLTEuNzM4ek0yMi4zMyA0LjExNGMtLjQ0NC0uMzk3LTEuMDQ5LS41OTYtMS44MTUtLjU5Ni0uOTg0IDAtMS43MjcuMzUtMi4yMyAxLjA0OGwuOTEzLjU1N2MuMzM4LS40NzMuNzk2LS43MSAxLjM3NS0uNzEuMzY5LS4wMDQuNzI2LjEyNyAxIC4zNjcuMjc0LjIxOS40My41NDUuNDI4Ljg4OXYuMjNjLS4zOTgtLjIyLS45MDUtLjMyOC0xLjUyLS4zMjgtLjcyMSAwLTEuMjk4LjE2NC0xLjczLjQ5MS0uNDMxLjMyNy0uNjQ3Ljc2Ny0uNjQ3IDEuMzItLjAxLjUwNS4yMTYuOTg2LjYxNCAxLjMxLjQxLjM1LjkxOC41MjUgMS41MjYuNTI1LjcxMyAwIDEuMjg0LS4zMDYgMS43MTMtLjkxN2guMDQ1di43NDJoLjk5MlY1Ljc0NWMwLS42OS0uMjIxLTEuMjM1LS42NjUtMS42MzF6TTE5LjUxNyA4LjA2YS43OTQuNzk0IDAgMDEtLjM0NC0uNjU1YzAtLjI5Mi4xNC0uNTM0LjQyNS0uNzM0LjI4LS4xOTcuNjMyLS4yOTUgMS4wNTMtLjI5NS41NzggMCAxLjAyOS4xMjUgMS4zNTIuMzc0IDAgLjQyMi0uMTcyLjc5LS41MTUgMS4xMDMtLjMxLjMtLjcyOS40NjgtMS4xNjYuNDY5YTEuMjkgMS4yOSAwIDAxLS44MDUtLjI2MnpNMjguNjg1IDMuNjkzTDI1LjIyNCAxMS40aC0xLjA3bDEuMjg0LTIuNjk3LTIuMjc2LTUuMDFoMS4xMjdsMS42NDUgMy44NDNoLjAyMmwxLjYtMy44NDNoMS4xMjl6IiBmaWxsPSIjNUY2MzY4Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik05LjcwMyA1LjE5NGMwLS4zMDYtLjAyNi0uNjEyLS4wOC0uOTEzSDUuMjUydjEuNzNoMi41MDRhMi4wNzYgMi4wNzYgMCAwMS0uOTI2IDEuMzY0djEuMTIzaDEuNDk0Yy44NzUtLjc4MiAxLjM4LTEuOTM3IDEuMzgtMy4zMDR6IiBmaWxsPSIjNDI4NUY0Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjI1IDkuNTgzYzEuMjUgMCAyLjMwMy0uMzk4IDMuMDcxLTEuMDg0TDYuODI3IDcuMzc2Yy0uNDE2LjI3My0uOTUxLjQzLTEuNTc4LjQzLTEuMjA5IDAtMi4yMzUtLjc5LTIuNjAyLTEuODU1aC0xLjU0djEuMTU3Yy43ODcgMS41MTcgMi4zOSAyLjQ3NSA0LjE0MiAyLjQ3NXoiIGZpbGw9IiMzNEE4NTMiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTIuNjQ4IDUuOTUxYTIuNjEyIDIuNjEyIDAgMDEwLTEuNzE5VjMuMDc1aC0xLjU0YTQuMzY3IDQuMzY3IDAgMDAwIDQuMDMzbDEuNTQtMS4xNTd6IiBmaWxsPSIjRkJCQzA0Ii8+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik01LjI1IDIuMzc4Yy42Ni0uMDEgMS4yOTkuMjMyIDEuNzc3LjY3NEw4LjM1IDEuNzdBNC41MzQgNC41MzQgMCAwMDUuMjUuNmMtMS43NTMgMC0zLjM1Ni45NTgtNC4xNDMgMi40NzVsMS41NCAxLjE1N2EyLjc2NCAyLjc2NCAwIDAxMi42MDItMS44NTR6IiBmaWxsPSIjRUE0MzM1Ii8+PC9zdmc+Cg=="})),V=()=>Object(r.createElement)(c.Card,null,Object(r.createElement)(g,null,"The general settings sections goes here.",Object(r.createElement)("ul",null,Object(r.createElement)("li",null,Object(r.createElement)(J,null),Object(r.createElement)(J,{size:"medium"})),Object(r.createElement)("li",null,Object(r.createElement)(W,null),Object(r.createElement)(W,{size:"medium"})),Object(r.createElement)("li",null,Object(r.createElement)(Z,null),Object(r.createElement)(Z,{size:"medium"})),Object(r.createElement)("li",null,Object(r.createElement)(R,null),Object(r.createElement)(R,{size:"medium"})),Object(r.createElement)("li",null,Object(r.createElement)(P,null),Object(r.createElement)(P,{size:"medium"})),Object(r.createElement)("li",null,Object(r.createElement)(_,null),Object(r.createElement)(_,{size:"medium"})))));const B=Object(o.a)("ul",{target:"en7otfi0"})({name:"12vr7pr",styles:"li{display:inline-block;margin:0 5px 0 0;}"}),$=()=>Object(r.createElement)(r.Fragment,null,Object(r.createElement)("h2",null,Object(a.__)("Payments accepted on checkout","woocommerce-gateway-stripe")),Object(r.createElement)("p",null,Object(a.__)("Add and edit payments available to customers at checkout. Based on their device type, location, your customers will only see the most relevant payment methods.","woocommerce-gateway-stripe"))),F=()=>Object(r.createElement)(r.Fragment,null,Object(r.createElement)("h2",null,Object(a.__)("Express checkouts","woocommerce-gateway-stripe")),Object(r.createElement)(B,null,Object(r.createElement)("li",null,Object(r.createElement)(W,null)),Object(r.createElement)("li",null,Object(r.createElement)(J,null))),Object(r.createElement)("p",null,Object(a.__)("Let your customers use their favorite express payment methods and digital wallets for faster, more secure checkouts across different parts of your store.","woocommerce-gateway-stripe")),Object(r.createElement)(c.ExternalLink,{href:"?TODO"},Object(a.__)("Learn more","woocommerce-gateway-stripe")));var X=()=>Object(r.createElement)(r.Fragment,null,Object(r.createElement)(y,{Description:$},Object(r.createElement)(V,null)),Object(r.createElement)(y,{Description:F},Object(r.createElement)(E,null)));const H=Object(o.a)(y,{target:"e1prus4h0"})({name:"2qga7i",styles:"text-align:right"});var q=()=>Object(r.createElement)(H,null,Object(r.createElement)(c.Button,{isPrimary:!0,onClick:()=>alert("Welcome to the settings screen.")},Object(a.__)("Save changes","woocommerce-gateway-stripe")));const K=Object(o.a)(c.TabPanel,{target:"e1qtpuhq0"})({name:"48z560",styles:".components-tab-panel__tabs{border-bottom:1px solid #c3c4c7;margin-bottom:32px;}"}),ee=[{name:"methods",title:Object(a.__)("Payment Methods","woocommerce-gateway-stripe")},{name:"settings",title:Object(a.__)("Settings","woocommerce-gateway-stripe")}];var te=n(158),ne=n.n(te),re=Object(M.createContext)({isUpeEnabled:!1,setIsUpeEnabled:()=>null,status:"resolved"});n(214);const Me=document.getElementById("wc-stripe-account-settings-container");Me&&i.a.render(Object(r.createElement)(({children:e,defaultIsUpeEnabled:t})=>{const[n,u]=Object(M.useState)(Boolean(t)),[i,o]=Object(M.useState)("resolved"),c=Object(M.useCallback)(e=>{o("pending");const t=Boolean(e);return ne()({path:"/wc/v3/wc_stripe/upe_flag_toggle",method:"POST",data:{is_upe_enabled:t}}).then(()=>{u(t),o("resolved")}).catch(()=>{o("error")})},[o,u]),a=Object(M.useMemo)(()=>({isUpeEnabled:n,setIsUpeEnabled:c,status:i}),[n,c,i]);return Object(r.createElement)(re.Provider,{value:a},e)},{defaultIsUpeEnabled:"1"===wc_stripe_settings_params.is_upe_checkout_enabled},Object(r.createElement)(()=>{const{panel:e}=Object(j.getQuery)();return Object(r.createElement)(s,null,Object(r.createElement)(K,{className:"wc-stripe-account-settings-panel",initialTabName:"settings"===e?"settings":"methods",tabs:ee},e=>Object(r.createElement)("div",{"data-testid":e.name+"-tab"},"settings"===e.name?Object(r.createElement)(f,null):Object(r.createElement)(X,null),Object(r.createElement)(q,null))))},null)),Me)}]);
changelog.txt CHANGED
@@ -1,5 +1,13 @@
1
  *** Changelog ***
2
 
 
 
 
 
 
 
 
 
3
  = 5.4.1 - 2021-09-01 =
4
  * Fix - Get Subscription CustomerID from Order instead of User.
5
 
1
  *** Changelog ***
2
 
3
+ = 5.5.0 - 2021-09-15 =
4
+ * Tweak - Moved the `WC_Gateway_Stripe::admin_scripts` method to `WC_Stripe_Settings_Controller::admin_scripts`.
5
+ * Fix - Save payment method during 3D Secure flow for Block-based checkout.
6
+ * Fix - Show subtotal on Payment Request dialog.
7
+ * Add - Settings to control Payment Request Button locations in the Stripe plugin settings. Persists changes made through pre-existing filters, or defaults to the Cart and Product pages if no filters are in use.
8
+ * Tweak - Deprecated the 'wc_stripe_hide_payment_request_on_product_page', 'wc_stripe_show_payment_request_on_checkout', and 'wc_stripe_show_payment_request_on_cart' filters in favor of the UI-driven approach in the plugin settings.
9
+ * Add - Notice for WP & WC version compatibility check.
10
+
11
  = 5.4.1 - 2021-09-01 =
12
  * Fix - Get Subscription CustomerID from Order instead of User.
13
 
includes/abstracts/abstract-wc-stripe-payment-gateway.php CHANGED
@@ -29,6 +29,53 @@ abstract class WC_Stripe_Payment_Gateway extends WC_Payment_Gateway_CC {
29
  return $description . '<br><br>' . $webhook_status;
30
  }
31
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
32
  /**
33
  * Displays the save to account checkbox.
34
  *
29
  return $description . '<br><br>' . $webhook_status;
30
  }
31
 
32
+ /**
33
+ * Prints the admin options for the gateway.
34
+ * Inserts an empty placeholder div for UPE opt-in banner if feature flag is enabled.
35
+ */
36
+ public function admin_options() {
37
+ $form_fields = $this->get_form_fields();
38
+ $target_index = array_search( 'activation', array_keys( $form_fields ), true ) + 1;
39
+
40
+ echo '<h2>' . esc_html( $this->get_method_title() );
41
+ wc_back_link( __( 'Return to payments', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout' ) );
42
+ echo '</h2>';
43
+
44
+ if ( WC_Stripe_Feature_Flags::is_upe_settings_redesign_enabled() ) {
45
+ echo '<table class="form-table">' . $this->generate_settings_html( array_slice( $form_fields, 0, $target_index, true ), false ) . '</table>';
46
+ echo '<div id="wc-stripe-upe-opt-in-banner"></div>';
47
+ echo '<table class="form-table">' . $this->generate_settings_html( array_slice( $form_fields, $target_index, null, true ), false ) . '</table>';
48
+ } else {
49
+ echo '<table class="form-table">' . $this->generate_settings_html( $form_fields, false ) . '</table>';
50
+ }
51
+ }
52
+
53
+ /**
54
+ * Outputs scripts used for upe opt-in banner
55
+ */
56
+ public function admin_scripts_for_banner() {
57
+ if ( WC_Stripe_Feature_Flags::is_upe_settings_redesign_enabled() ) {
58
+ // Webpack generates an assets file containing a dependencies array for our built JS file.
59
+ $script_asset_path = WC_STRIPE_PLUGIN_PATH . '/build/upe_opt_in_banner.asset.php';
60
+ $script_asset = file_exists( $script_asset_path )
61
+ ? require $script_asset_path
62
+ : [
63
+ 'dependencies' => [],
64
+ 'version' => WC_STRIPE_VERSION,
65
+ ];
66
+
67
+ wp_register_script(
68
+ 'woocommerce_stripe_upe_opt_in',
69
+ plugins_url( 'build/upe_opt_in_banner.js', WC_STRIPE_MAIN_FILE ),
70
+ $script_asset['dependencies'],
71
+ $script_asset['version'],
72
+ true
73
+ );
74
+
75
+ wp_enqueue_script( 'woocommerce_stripe_upe_opt_in' );
76
+ }
77
+ }
78
+
79
  /**
80
  * Displays the save to account checkbox.
81
  *
includes/admin/class-wc-rest-upe-flag-toggle-controller.php ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Class WC_REST_UPE_Flag_Toggle_Controller
4
+ */
5
+
6
+ defined( 'ABSPATH' ) || exit;
7
+
8
+ /**
9
+ * REST controller for UPE feature flag.
10
+ */
11
+ class WC_REST_UPE_Flag_Toggle_Controller extends WP_REST_Controller {
12
+ /**
13
+ * Endpoint namespace.
14
+ *
15
+ * @var string
16
+ */
17
+ protected $namespace = 'wc/v3';
18
+
19
+ /**
20
+ * Endpoint path.
21
+ *
22
+ * @var string
23
+ */
24
+ protected $rest_base = 'wc_stripe/upe_flag_toggle';
25
+
26
+ /**
27
+ * Verify access to request.
28
+ */
29
+ public function check_permission() {
30
+ return current_user_can( 'manage_woocommerce' );
31
+ }
32
+
33
+ /**
34
+ * Configure REST API routes.
35
+ */
36
+ public function register_routes() {
37
+ register_rest_route(
38
+ $this->namespace,
39
+ '/' . $this->rest_base,
40
+ [
41
+ 'methods' => WP_REST_Server::READABLE,
42
+ 'callback' => [ $this, 'get_flag' ],
43
+ 'permission_callback' => [ $this, 'check_permission' ],
44
+ ]
45
+ );
46
+ register_rest_route(
47
+ $this->namespace,
48
+ '/' . $this->rest_base,
49
+ [
50
+ 'methods' => WP_REST_Server::EDITABLE,
51
+ 'callback' => [ $this, 'set_flag' ],
52
+ 'permission_callback' => [ $this, 'check_permission' ],
53
+ 'args' => [
54
+ 'is_upe_enabled' => [
55
+ 'description' => __( 'Determines if the UPE feature flag is enabled.', 'woocommerce-gateway-stripe' ),
56
+ 'type' => 'boolean',
57
+ 'validate_callback' => 'rest_validate_request_arg',
58
+ ],
59
+ ],
60
+ ]
61
+ );
62
+ }
63
+
64
+ /**
65
+ * Retrieve flag status.
66
+ *
67
+ * @return WP_REST_Response
68
+ */
69
+ public function get_flag() {
70
+ return new WP_REST_Response(
71
+ [
72
+ 'is_upe_enabled' => WC_Stripe_Feature_Flags::is_upe_checkout_enabled(),
73
+ ]
74
+ );
75
+ }
76
+
77
+ /**
78
+ * Update the data.
79
+ *
80
+ * @param WP_REST_Request $request Full data about the request.
81
+ */
82
+ public function set_flag( WP_REST_Request $request ) {
83
+ $is_upe_enabled = $request->get_param( 'is_upe_enabled' );
84
+
85
+ if ( null === $is_upe_enabled ) {
86
+ return new WP_REST_Response( [ 'result' => 'bad_request' ], 400 );
87
+ }
88
+
89
+ $settings = get_option( 'woocommerce_stripe_settings', [] );
90
+ $settings[ WC_Stripe_Feature_Flags::UPE_CHECKOUT_FEATURE_ATTRIBUTE_NAME ] = $is_upe_enabled ? 'yes' : 'no';
91
+
92
+ update_option( 'woocommerce_stripe_settings', $settings );
93
+
94
+ return new WP_REST_Response( [ 'result' => 'success' ], 200 );
95
+ }
96
+ }
includes/admin/class-wc-stripe-admin-notices.php CHANGED
@@ -145,6 +145,7 @@ class WC_Stripe_Admin_Notices {
145
  return;
146
  }
147
 
 
148
  if ( empty( $show_phpver_notice ) ) {
149
  if ( version_compare( phpversion(), WC_STRIPE_MIN_PHP_VER, '<' ) ) {
150
  /* translators: 1) int version 2) int version */
@@ -169,6 +170,7 @@ class WC_Stripe_Admin_Notices {
169
  $this->add_admin_notice( 'curl', 'notice notice-warning', __( 'WooCommerce Stripe - cURL is not installed.', 'woocommerce-gateway-stripe' ), true );
170
  }
171
  }
 
172
 
173
  if ( empty( $show_keys_notice ) ) {
174
  $secret = WC_Stripe_API::get_secret_key();
@@ -240,6 +242,26 @@ class WC_Stripe_Admin_Notices {
240
  $this->add_admin_notice( $method, 'notice notice-error', sprintf( __( '%1$s is enabled - it requires store currency to be set to %2$s', 'woocommerce-gateway-stripe' ), $method, implode( ', ', $gateway->get_supported_currency() ) ), true );
241
  }
242
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
243
  }
244
 
245
  /**
@@ -314,6 +336,12 @@ class WC_Stripe_Admin_Notices {
314
  break;
315
  case 'changed_keys':
316
  update_option( 'wc_stripe_show_changed_keys_notice', 'no' );
 
 
 
 
 
 
317
  }
318
  }
319
  }
145
  return;
146
  }
147
 
148
+ // @codeCoverageIgnoreStart
149
  if ( empty( $show_phpver_notice ) ) {
150
  if ( version_compare( phpversion(), WC_STRIPE_MIN_PHP_VER, '<' ) ) {
151
  /* translators: 1) int version 2) int version */
170
  $this->add_admin_notice( 'curl', 'notice notice-warning', __( 'WooCommerce Stripe - cURL is not installed.', 'woocommerce-gateway-stripe' ), true );
171
  }
172
  }
173
+ // @codeCoverageIgnoreEnd
174
 
175
  if ( empty( $show_keys_notice ) ) {
176
  $secret = WC_Stripe_API::get_secret_key();
242
  $this->add_admin_notice( $method, 'notice notice-error', sprintf( __( '%1$s is enabled - it requires store currency to be set to %2$s', 'woocommerce-gateway-stripe' ), $method, implode( ', ', $gateway->get_supported_currency() ) ), true );
243
  }
244
  }
245
+
246
+ if ( ! WC_Stripe_Feature_Flags::is_upe_preview_enabled() || ! WC_Stripe_Feature_Flags::is_upe_checkout_enabled() ) {
247
+ return;
248
+ }
249
+
250
+ foreach ( WC_Stripe_UPE_Payment_Gateway::UPE_AVAILABLE_METHODS as $method_class ) {
251
+ if ( WC_Stripe_UPE_Payment_Method_CC::class === $method_class ) {
252
+ continue;
253
+ }
254
+ $method = $method_class::STRIPE_ID;
255
+ $show_notice = get_option( 'wc_stripe_show_' . strtolower( $method ) . '_upe_notice' );
256
+ $upe_method = new $method_class( null );
257
+ if ( ! $upe_method->is_enabled() || 'no' === $show_notice ) {
258
+ continue;
259
+ }
260
+ if ( ! in_array( get_woocommerce_currency(), $upe_method->get_supported_currencies() ) ) {
261
+ /* translators: %1$s Payment method, %2$s List of supported currencies */
262
+ $this->add_admin_notice( $method . '_upe', 'notice notice-error', sprintf( __( '%1$s is enabled - it requires store currency to be set to %2$s', 'woocommerce-gateway-stripe' ), $method, implode( ', ', $upe_method->get_supported_currencies() ) ), true );
263
+ }
264
+ }
265
  }
266
 
267
  /**
336
  break;
337
  case 'changed_keys':
338
  update_option( 'wc_stripe_show_changed_keys_notice', 'no' );
339
+ break;
340
+ default:
341
+ if ( false !== strpos( $notice, '_upe' ) ) {
342
+ update_option( 'wc_stripe_show_' . $notice . '_notice', 'no' );
343
+ }
344
+ break;
345
  }
346
  }
347
  }
includes/admin/class-wc-stripe-onboarding-controller.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ use Automattic\WooCommerce\Admin\PageController;
4
+
5
+ if ( ! defined( 'ABSPATH' ) ) {
6
+ exit;
7
+ }
8
+
9
+ /**
10
+ * Admin page for UPE onboarding wizard.
11
+ *
12
+ * @since 5.4.1
13
+ */
14
+ class WC_Stripe_Onboarding_Controller {
15
+ public function __construct() {
16
+ add_action( 'admin_menu', [ $this, 'add_onboarding_wizard' ] );
17
+ add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts' ] );
18
+
19
+ }
20
+
21
+ /**
22
+ * Load admin scripts.
23
+ */
24
+ public function admin_scripts() {
25
+ // Webpack generates an assets file containing a dependencies array for our built JS file.
26
+ $script_path = 'build/additional_methods_setup.js';
27
+ $script_asset_path = WC_STRIPE_PLUGIN_PATH . '/build/additional_methods_setup.asset.php';
28
+ $script_url = plugins_url( $script_path, WC_STRIPE_MAIN_FILE );
29
+ $script_asset = file_exists( $script_asset_path )
30
+ ? require $script_asset_path
31
+ : [
32
+ 'dependencies' => [],
33
+ 'version' => WC_STRIPE_VERSION,
34
+ ];
35
+
36
+ wp_register_script(
37
+ 'wc_stripe_onboarding_wizard',
38
+ $script_url,
39
+ $script_asset['dependencies'],
40
+ $script_asset['version'],
41
+ true
42
+ );
43
+
44
+ wp_enqueue_script( 'wc_stripe_onboarding_wizard' );
45
+ }
46
+
47
+ /**
48
+ * Create an admin page without a side menu: wp-admin/admin.php?page=wc_stripe-onboarding_wizard
49
+ */
50
+ public function add_onboarding_wizard() {
51
+ add_submenu_page(
52
+ null, // Hide this submenu from admin menu
53
+ __( 'Onboarding Wizard', 'woocommerce-gateway-stripe' ),
54
+ __( 'Onboarding Wizard', 'woocommerce-gateway-stripe' ),
55
+ 'manage_woocommerce',
56
+ 'wc_stripe-onboarding_wizard',
57
+ [ $this, 'render_onboarding_wizard' ]
58
+ );
59
+
60
+ // Connect PHP-powered admin page to wc-admin
61
+ wc_admin_connect_page(
62
+ [
63
+ 'id' => 'wc-stripe-onboarding-wizard',
64
+ 'screen_id' => 'admin_page_wc_stripe-onboarding_wizard',
65
+ 'title' => __( 'Onboarding Wizard', 'woocommerce-gateway-stripe' ),
66
+ ]
67
+ );
68
+ }
69
+
70
+ /**
71
+ * Output a container for react app to mount on.
72
+ */
73
+ public function render_onboarding_wizard() {
74
+ echo '<div class="wrap"><div id="wc-stripe-onboarding-wizard-container"></div></div>';
75
+ }
76
+ }
includes/admin/class-wc-stripe-settings-controller.php ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ /**
8
+ * Controls whether we're on the settings page and enqueues the JS code.
9
+ *
10
+ * @since 5.4.1
11
+ */
12
+ class WC_Stripe_Settings_Controller {
13
+ public function __construct() {
14
+ add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts' ] );
15
+ add_action( 'wc_stripe_gateway_admin_options_wrapper', [ $this, 'admin_options' ] );
16
+ }
17
+
18
+ /**
19
+ * Prints the admin options for the gateway.
20
+ * Remove this action once we're fully migrated to UPE and move the wrapper in the `admin_options` method of the UPE gateway.
21
+ *
22
+ * @param WC_Stripe_Payment_Gateway $gateway the Stripe gateway.
23
+ */
24
+ public function admin_options( WC_Stripe_Payment_Gateway $gateway ) {
25
+ global $hide_save_button;
26
+ $hide_save_button = true;
27
+ echo '<h2>' . esc_html( $gateway->get_method_title() );
28
+ wc_back_link( __( 'Return to payments', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout' ) );
29
+ echo '</h2>';
30
+ echo '<div id="wc-stripe-account-settings-container"></div>';
31
+ }
32
+
33
+ /**
34
+ * Load admin scripts.
35
+ */
36
+ public function admin_scripts() {
37
+ if ( 'woocommerce_page_wc-settings' !== get_current_screen()->id ) {
38
+ return;
39
+ }
40
+
41
+ $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
42
+
43
+ if ( WC_Stripe_Feature_Flags::is_upe_settings_redesign_enabled() ) {
44
+ // Webpack generates an assets file containing a dependencies array for our built JS file.
45
+ $script_asset_path = WC_STRIPE_PLUGIN_PATH . '/build/upe_settings.asset.php';
46
+ $script_asset = file_exists( $script_asset_path )
47
+ ? require $script_asset_path
48
+ : [
49
+ 'dependencies' => [],
50
+ 'version' => WC_STRIPE_VERSION,
51
+ ];
52
+
53
+ wp_register_script(
54
+ 'woocommerce_stripe_admin',
55
+ plugins_url( 'build/upe_settings.js', WC_STRIPE_MAIN_FILE ),
56
+ $script_asset['dependencies'],
57
+ $script_asset['version'],
58
+ true
59
+ );
60
+ wp_register_style(
61
+ 'woocommerce_stripe_admin',
62
+ plugins_url( 'build/style-upe_settings.css', WC_STRIPE_MAIN_FILE ),
63
+ [ 'wc-components' ],
64
+ $script_asset['version']
65
+ );
66
+ wp_enqueue_style( 'woocommerce_stripe_admin' );
67
+ } else {
68
+ wp_register_script( 'woocommerce_stripe_admin', plugins_url( 'assets/js/stripe-admin' . $suffix . '.js', WC_STRIPE_MAIN_FILE ), [], WC_STRIPE_VERSION, true );
69
+ }
70
+
71
+ $params = [
72
+ 'time' => time(),
73
+ 'i18n_out_of_sync' => wp_kses(
74
+ __( '<strong>Warning:</strong> your site\'s time does not match the time on your browser and may be incorrect. Some payment methods depend on webhook verification and verifying webhooks with a signing secret depends on your site\'s time being correct, so please check your site\'s time before setting a webhook secret. You may need to contact your site\'s hosting provider to correct the site\'s time.', 'woocommerce-gateway-stripe' ),
75
+ [ 'strong' => [] ]
76
+ ),
77
+ 'is_upe_checkout_enabled' => WC_Stripe_Feature_Flags::is_upe_checkout_enabled(),
78
+ ];
79
+ wp_localize_script( 'woocommerce_stripe_admin', 'wc_stripe_settings_params', $params );
80
+
81
+ wp_enqueue_script( 'woocommerce_stripe_admin' );
82
+ }
83
+ }
includes/admin/class-wc-stripe-upe-compatibility-controller.php ADDED
@@ -0,0 +1,178 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ /**
8
+ * Controls the UPE compatibility before we release UPE - adds some notices for the merchant if necessary.
9
+ *
10
+ * @since 5.5.0
11
+ */
12
+ class WC_Stripe_UPE_Compatibility_Controller {
13
+ public function __construct() {
14
+ add_action( 'admin_notices', [ $this, 'add_compatibility_notice' ] );
15
+ add_action( 'admin_init', [ $this, 'add_inbox_note' ] );
16
+ }
17
+
18
+ /**
19
+ * I created this as a separate method, so it can be mocked in unit tests.
20
+ *
21
+ * @retun string
22
+ */
23
+ public function get_wc_version() {
24
+ return WC_VERSION;
25
+ }
26
+
27
+ /**
28
+ * Adds an inbox note to alert merchants of the upcoming UPE compatibility change.
29
+ */
30
+ public function add_inbox_note() {
31
+ // no need to display the admin inbox note when the new settings are already active.
32
+ // please delete this code once the new settings are launched.
33
+ if ( WC_Stripe_Feature_Flags::is_upe_settings_redesign_enabled() ) {
34
+ return;
35
+ }
36
+
37
+ // admin notes are not supported on older versions of WooCommerce.
38
+ if ( version_compare( $this->get_wc_version(), '4.4.0', '>=' ) ) {
39
+ require_once WC_STRIPE_PLUGIN_PATH . '/includes/notes/class-wc-stripe-upe-compatibility-note.php';
40
+ WC_Stripe_UPE_Compatibility_Note::init();
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Adds a compatibility notice in the `wp-admin` area in case the version of WooCommerce or WordPress are (or will be) not supported.
46
+ */
47
+ public function add_compatibility_notice() {
48
+ /*
49
+ * The following might be hard to read, but here's what I'm trying to do:
50
+ * - If WP and WC are both supported -> nothing to do
51
+ * - If WC is not supported -> construct message saying "Stripe requires WooCommerce 5.4 or greater to be installed and active. Your version of WooCommerce [X.X] is no longer be supported"
52
+ * - If WP is not supported -> construct message saying "Stripe requires WordPress 5.6 or greater. Your version of WordPress [X.X] is no longer be supported"
53
+ * - If WC & WP are both not supported -> construct message saying "Stripe requires WordPress 5.6 or greater and WooCommerce 5.4 or greater to be installed and active. Your versions of WordPress [X.X] and WooCommerce [X.X] are no longer be supported"
54
+ */
55
+ $unsatisfied_requirements = array_filter(
56
+ [
57
+ [
58
+ 'name' => 'WordPress',
59
+ 'version' => get_bloginfo( 'version' ),
60
+ 'is_supported' => WC_Stripe_UPE_Compatibility::is_wp_supported(),
61
+ /* translators: %s. WordPress version installed. */
62
+ 'message' => sprintf( __( 'WordPress %s or greater', 'woocommerce-gateway-stripe' ), WC_Stripe_UPE_Compatibility::MIN_WP_VERSION ),
63
+ ],
64
+ [
65
+ 'name' => 'WooCommerce',
66
+ 'version' => $this->get_wc_version(),
67
+ 'is_supported' => version_compare( $this->get_wc_version(), WC_Stripe_UPE_Compatibility::MIN_WC_VERSION, '>=' ),
68
+ 'message' => sprintf(
69
+ /* translators: %s. WooCommerce version installed. */
70
+ __(
71
+ 'WooCommerce %s or greater to be installed and active',
72
+ 'woocommerce-gateway-stripe'
73
+ ),
74
+ WC_Stripe_UPE_Compatibility::MIN_WC_VERSION
75
+ ),
76
+ ],
77
+ ],
78
+ function ( $requirement ) {
79
+ return ! $requirement['is_supported'];
80
+ }
81
+ );
82
+
83
+ if ( count( $unsatisfied_requirements ) === 0 ) {
84
+ return;
85
+ }
86
+
87
+ if ( WC_Stripe_Feature_Flags::is_upe_settings_redesign_enabled() ) {
88
+ $this->show_current_compatibility_notice( $unsatisfied_requirements );
89
+
90
+ return;
91
+ }
92
+
93
+ $this->show_upe_settings_compatibility_notice( $unsatisfied_requirements );
94
+ }
95
+
96
+ private function get_installed_versions_message( $unsatisfied_requirements ) {
97
+ return join(
98
+ __( ' and ', 'woocommerce-gateway-stripe' ),
99
+ array_map(
100
+ function ( $requirement ) {
101
+ return $requirement['name'] . ' ' . $requirement['version'];
102
+ },
103
+ $unsatisfied_requirements
104
+ )
105
+ );
106
+ }
107
+
108
+ private function get_unsatisfied_requirements_message( $unsatisfied_requirements ) {
109
+ return join(
110
+ __( ' and ', 'woocommerce-gateway-stripe' ),
111
+ array_map(
112
+ function ( $requirement ) {
113
+ return $requirement['message'];
114
+ },
115
+ $unsatisfied_requirements
116
+ )
117
+ );
118
+ }
119
+
120
+ private function show_current_compatibility_notice( $unsatisfied_requirements ) {
121
+ /*
122
+ * The following might be hard to read, but here's what I'm trying to do:
123
+ * - If WP and WC are both supported -> nothing to do
124
+ * - If WC is not supported -> construct message saying "WooCommerce Stripe requires WooCommerce 5.4 or greater to be installed and active. Your version of WooCommerce [X.X] is no longer supported"
125
+ * - If WP is not supported -> construct message saying "WooCommerce Stripe requires WordPress 5.6 or greater. Your version of WordPress [X.X] is no longer supported"
126
+ * - If WC & WP are both not supported -> construct message saying "WooCommerce Stripe requires WordPress 5.6 or greater and WooCommerce 5.4 or greater to be installed and active. Your versions of WordPress [X.X] and WooCommerce [X.X] are no longer supported"
127
+ */
128
+ $unsatisfied_requirements_message = $this->get_unsatisfied_requirements_message( $unsatisfied_requirements );
129
+
130
+ $unsatisfied_requirements_versions = $this->get_installed_versions_message( $unsatisfied_requirements );
131
+
132
+ echo '<div class="error"><p><strong>';
133
+ echo wp_kses_post(
134
+ sprintf(
135
+ /* translators: $1. Minimum WooCommerce and/or WordPress versions. $2. Current WooCommerce and/or versions. $3 Learn more link. */
136
+ _n(
137
+ 'WooCommerce Stripe requires %1$s. Your version of %2$s is no longer supported.',
138
+ 'WooCommerce Stripe requires %1$s. Your versions of %2$s are no longer supported.',
139
+ count( $unsatisfied_requirements ),
140
+ 'woocommerce-gateway-stripe'
141
+ ),
142
+ $unsatisfied_requirements_message,
143
+ $unsatisfied_requirements_versions
144
+ )
145
+ );
146
+ echo '</strong></p></div>';
147
+ }
148
+
149
+ private function show_upe_settings_compatibility_notice( $unsatisfied_requirements ) {
150
+ /*
151
+ * The following might be hard to read, but here's what I'm trying to do:
152
+ * - If WP and WC are both supported -> nothing to do
153
+ * - If WC is not supported -> construct message saying "Stripe will require WooCommerce 5.4 or greater to be installed and active. Your version of WooCommerce [X.X] will no longer be supported"
154
+ * - If WP is not supported -> construct message saying "Stripe will require WordPress 5.6 or greater. Your version of WordPress [X.X] will no longer be supported"
155
+ * - If WC & WP are both not supported -> construct message saying "Stripe will require WordPress 5.6 or greater and WooCommerce 5.4 or greater to be installed and active. Your versions of WordPress [X.X] and WooCommerce [X.X] will no longer be supported"
156
+ */
157
+ $unsatisfied_requirements_message = $this->get_unsatisfied_requirements_message( $unsatisfied_requirements );
158
+
159
+ $unsatisfied_requirements_versions = $this->get_installed_versions_message( $unsatisfied_requirements );
160
+
161
+ echo '<div class="error"><p><strong>';
162
+ echo wp_kses_post(
163
+ sprintf(
164
+ /* translators: $1. Minimum WooCommerce and/or WordPress versions. $2. Current WooCommerce and/or versions. $3 Learn more link. */
165
+ _n(
166
+ 'Starting with version 5.6.0, Stripe will require %1$s. Your version of %2$s will no longer be supported. <a href="%3$s" target="_blank">Learn more here</a>.',
167
+ 'Starting with version 5.6.0, Stripe will require %1$s. Your versions of %2$s will no longer be supported. <a href="%3$s" target="_blank">Learn more here</a>.',
168
+ count( $unsatisfied_requirements ),
169
+ 'woocommerce-gateway-stripe'
170
+ ),
171
+ $unsatisfied_requirements_message,
172
+ $unsatisfied_requirements_versions,
173
+ WC_Stripe_UPE_Compatibility::LEARN_MORE_LINK
174
+ )
175
+ );
176
+ echo '</strong></p></div>';
177
+ }
178
+ }
includes/admin/stripe-settings.php CHANGED
@@ -3,7 +3,7 @@ if ( ! defined( 'ABSPATH' ) ) {
3
  exit;
4
  }
5
 
6
- return apply_filters(
7
  'wc_stripe_settings',
8
  [
9
  'enabled' => [
@@ -28,8 +28,8 @@ return apply_filters(
28
  'desc_tip' => true,
29
  ],
30
  'api_credentials' => [
31
- 'title' => __( 'Stripe Account Keys', 'woocommerce-gateway-stripe' ),
32
- 'type' => 'stripe_account_keys',
33
  ],
34
  'testmode' => [
35
  'title' => __( 'Test mode', 'woocommerce-gateway-stripe' ),
@@ -180,6 +180,22 @@ return apply_filters(
180
  'long' => __( 'Text and logo', 'woocommerce-gateway-stripe' ),
181
  ],
182
  ],
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
183
  'saved_cards' => [
184
  'title' => __( 'Saved Cards', 'woocommerce-gateway-stripe' ),
185
  'label' => __( 'Enable Payment via Saved Cards', 'woocommerce-gateway-stripe' ),
@@ -198,3 +214,33 @@ return apply_filters(
198
  ],
199
  ]
200
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  exit;
4
  }
5
 
6
+ $stripe_settings = apply_filters(
7
  'wc_stripe_settings',
8
  [
9
  'enabled' => [
28
  'desc_tip' => true,
29
  ],
30
  'api_credentials' => [
31
+ 'title' => __( 'Stripe Account Keys', 'woocommerce-gateway-stripe' ),
32
+ 'type' => 'stripe_account_keys',
33
  ],
34
  'testmode' => [
35
  'title' => __( 'Test mode', 'woocommerce-gateway-stripe' ),
180
  'long' => __( 'Text and logo', 'woocommerce-gateway-stripe' ),
181
  ],
182
  ],
183
+ 'payment_request_button_locations' => [
184
+ 'title' => __( 'Payment Request Button Locations', 'woocommerce-gateway-stripe' ),
185
+ 'type' => 'multiselect',
186
+ 'description' => __( 'Select where you would like Payment Request Buttons to be displayed', 'woocommerce-gateway-stripe' ),
187
+ 'desc_tip' => true,
188
+ 'class' => 'wc-enhanced-select',
189
+ 'options' => [
190
+ 'product' => __( 'Product', 'woocommerce-gateway-stripe' ),
191
+ 'cart' => __( 'Cart', 'woocommerce-gateway-stripe' ),
192
+ 'checkout' => __( 'Checkout', 'woocommerce-gateway-stripe' ),
193
+ ],
194
+ 'default' => [ 'product', 'cart' ],
195
+ 'custom_attributes' => [
196
+ 'data-placeholder' => __( 'Select pages', 'woocommerce-gateway-stripe' ),
197
+ ],
198
+ ],
199
  'saved_cards' => [
200
  'title' => __( 'Saved Cards', 'woocommerce-gateway-stripe' ),
201
  'label' => __( 'Enable Payment via Saved Cards', 'woocommerce-gateway-stripe' ),
214
  ],
215
  ]
216
  );
217
+
218
+ if ( WC_Stripe_Feature_Flags::is_upe_preview_enabled() ) {
219
+ $upe_settings = [
220
+ 'upe_checkout_experience' => [
221
+ 'title' => __( 'Checkout experience', 'woocommerce-gateway-stripe' ),
222
+ 'type' => 'title',
223
+ ],
224
+ WC_Stripe_Feature_Flags::UPE_CHECKOUT_FEATURE_ATTRIBUTE_NAME => [
225
+ 'title' => __( 'Enable/Disable', 'woocommerce-gateway-stripe' ),
226
+ 'label' => __( 'Enable new checkout experience', 'woocommerce-gateway-stripe' ),
227
+ 'type' => 'checkbox',
228
+ 'description' => __( 'If enabled, users will... TBD', 'woocommerce-gateway-stripe' ),
229
+ 'default' => 'no',
230
+ 'desc_tip' => true,
231
+ ],
232
+ ];
233
+ if ( WC_Stripe_Feature_Flags::is_upe_checkout_enabled() ) {
234
+ $upe_settings['upe_checkout_experience_accepted_payments'] = [
235
+ 'type' => 'upe_checkout_experience_accepted_payments',
236
+ 'default' => [ 'card' ],
237
+ ];
238
+ }
239
+ // Insert UPE options below the 'description' setting.
240
+ $stripe_settings = array_merge( array_splice( $stripe_settings, 0, array_search( 'description', array_keys( $stripe_settings ), true ) + 1 ), $upe_settings, $stripe_settings );
241
+ }
242
+
243
+ return apply_filters(
244
+ 'wc_stripe_settings',
245
+ $stripe_settings
246
+ );
includes/class-wc-gateway-stripe.php CHANGED
@@ -9,6 +9,9 @@ if ( ! defined( 'ABSPATH' ) ) {
9
  * @extends WC_Payment_Gateway
10
  */
11
  class WC_Gateway_Stripe extends WC_Stripe_Payment_Gateway {
 
 
 
12
  /**
13
  * The delay between retries.
14
  *
@@ -84,7 +87,7 @@ class WC_Gateway_Stripe extends WC_Stripe_Payment_Gateway {
84
  */
85
  public function __construct() {
86
  $this->retry_interval = 1;
87
- $this->id = 'stripe';
88
  $this->method_title = __( 'Stripe', 'woocommerce-gateway-stripe' );
89
  /* translators: 1) link to Stripe register page 2) link to Stripe api keys page */
90
  $this->method_description = __( 'Stripe works by adding payment fields on the checkout and then sending the details to Stripe for verification.', 'woocommerce-gateway-stripe' );
@@ -130,7 +133,6 @@ class WC_Gateway_Stripe extends WC_Stripe_Payment_Gateway {
130
 
131
  // Hooks.
132
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
133
- add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts' ] );
134
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
135
  add_action( 'woocommerce_admin_order_totals_after_total', [ $this, 'display_order_fee' ] );
136
  add_action( 'woocommerce_admin_order_totals_after_total', [ $this, 'display_order_payout' ], 20 );
@@ -334,30 +336,16 @@ class WC_Gateway_Stripe extends WC_Stripe_Payment_Gateway {
334
  }
335
 
336
  /**
337
- * Load admin scripts.
338
- *
339
- * @since 3.1.0
340
- * @version 3.1.0
341
  */
342
- public function admin_scripts() {
343
- if ( 'woocommerce_page_wc-settings' !== get_current_screen()->id ) {
 
 
344
  return;
345
  }
346
 
347
- $suffix = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
348
-
349
- wp_register_script( 'woocommerce_stripe_admin', plugins_url( 'assets/js/stripe-admin' . $suffix . '.js', WC_STRIPE_MAIN_FILE ), [], WC_STRIPE_VERSION, true );
350
-
351
- $params = [
352
- 'time' => time(),
353
- 'i18n_out_of_sync' => wp_kses(
354
- __( '<strong>Warning:</strong> your site\'s time does not match the time on your browser and may be incorrect. Some payment methods depend on webhook verification and verifying webhooks with a signing secret depends on your site\'s time being correct, so please check your site\'s time before setting a webhook secret. You may need to contact your site\'s hosting provider to correct the site\'s time.', 'woocommerce-gateway-stripe' ),
355
- [ 'strong' => [] ]
356
- ),
357
- ];
358
- wp_localize_script( 'woocommerce_stripe_admin', 'wc_stripe_settings_params', $params );
359
-
360
- wp_enqueue_script( 'woocommerce_stripe_admin' );
361
  }
362
 
363
  /**
@@ -683,6 +671,7 @@ class WC_Gateway_Stripe extends WC_Stripe_Payment_Gateway {
683
  'result' => 'success',
684
  'redirect' => $this->get_return_url( $order ),
685
  'payment_intent_secret' => $intent->client_secret,
 
686
  ];
687
  }
688
  }
9
  * @extends WC_Payment_Gateway
10
  */
11
  class WC_Gateway_Stripe extends WC_Stripe_Payment_Gateway {
12
+
13
+ const ID = 'stripe';
14
+
15
  /**
16
  * The delay between retries.
17
  *
87
  */
88
  public function __construct() {
89
  $this->retry_interval = 1;
90
+ $this->id = self::ID;
91
  $this->method_title = __( 'Stripe', 'woocommerce-gateway-stripe' );
92
  /* translators: 1) link to Stripe register page 2) link to Stripe api keys page */
93
  $this->method_description = __( 'Stripe works by adding payment fields on the checkout and then sending the details to Stripe for verification.', 'woocommerce-gateway-stripe' );
133
 
134
  // Hooks.
135
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
 
136
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
137
  add_action( 'woocommerce_admin_order_totals_after_total', [ $this, 'display_order_fee' ] );
138
  add_action( 'woocommerce_admin_order_totals_after_total', [ $this, 'display_order_payout' ], 20 );
336
  }
337
 
338
  /**
339
+ * Maybe override the parent admin_options method.
 
 
 
340
  */
341
+ public function admin_options() {
342
+ if ( ! WC_Stripe_Feature_Flags::is_upe_settings_redesign_enabled() ) {
343
+ parent::admin_options();
344
+
345
  return;
346
  }
347
 
348
+ do_action( 'wc_stripe_gateway_admin_options_wrapper', $this );
 
 
 
 
 
 
 
 
 
 
 
 
 
349
  }
350
 
351
  /**
671
  'result' => 'success',
672
  'redirect' => $this->get_return_url( $order ),
673
  'payment_intent_secret' => $intent->client_secret,
674
+ 'save_payment_method' => $this->save_payment_method_requested(),
675
  ];
676
  }
677
  }
includes/class-wc-stripe-blocks-support.php CHANGED
@@ -129,23 +129,18 @@ final class WC_Stripe_Blocks_Support extends AbstractPaymentMethodType {
129
  // TODO: Remove the `function_exists()` check once the minimum WP version has been bumped
130
  // to version 5.0.
131
  if ( function_exists( 'has_block' ) ) {
132
- global $post;
133
-
134
  // Don't show if PRBs are supposed to be hidden on the cart page.
135
- // Note: The cart block has the PRB enabled by default.
136
  if (
137
  has_block( 'woocommerce/cart' )
138
- && ! apply_filters( 'wc_stripe_show_payment_request_on_cart', true )
139
  ) {
140
  return false;
141
  }
142
 
143
  // Don't show if PRBs are supposed to be hidden on the checkout page.
144
- // Note: The checkout block has the PRB enabled by default. This differs from the shortcode
145
- // checkout where the PRB is disabled by default.
146
  if (
147
  has_block( 'woocommerce/checkout' )
148
- && ! apply_filters( 'wc_stripe_show_payment_request_on_checkout', true, $post )
149
  ) {
150
  return false;
151
  }
@@ -308,8 +303,8 @@ final class WC_Stripe_Blocks_Support extends AbstractPaymentMethodType {
308
  || ! empty( $result->payment_details['setup_intent_secret'] )
309
  )
310
  ) {
311
- $payment_details = $result->payment_details;
312
- $payment_details['verification_endpoint'] = add_query_arg(
313
  [
314
  'order' => $context->order->get_id(),
315
  'nonce' => wp_create_nonce( 'wc_stripe_confirm_pi' ),
@@ -317,6 +312,15 @@ final class WC_Stripe_Blocks_Support extends AbstractPaymentMethodType {
317
  ],
318
  home_url() . \WC_Ajax::get_endpoint( 'wc_stripe_verify_intent' )
319
  );
 
 
 
 
 
 
 
 
 
320
  $result->set_payment_details( $payment_details );
321
  $result->set_status( 'success' );
322
  }
129
  // TODO: Remove the `function_exists()` check once the minimum WP version has been bumped
130
  // to version 5.0.
131
  if ( function_exists( 'has_block' ) ) {
 
 
132
  // Don't show if PRBs are supposed to be hidden on the cart page.
 
133
  if (
134
  has_block( 'woocommerce/cart' )
135
+ && ! $this->payment_request_configuration->should_show_prb_on_cart_page()
136
  ) {
137
  return false;
138
  }
139
 
140
  // Don't show if PRBs are supposed to be hidden on the checkout page.
 
 
141
  if (
142
  has_block( 'woocommerce/checkout' )
143
+ && ! $this->payment_request_configuration->should_show_prb_on_checkout_page()
144
  ) {
145
  return false;
146
  }
303
  || ! empty( $result->payment_details['setup_intent_secret'] )
304
  )
305
  ) {
306
+ $payment_details = $result->payment_details;
307
+ $verification_endpoint = add_query_arg(
308
  [
309
  'order' => $context->order->get_id(),
310
  'nonce' => wp_create_nonce( 'wc_stripe_confirm_pi' ),
312
  ],
313
  home_url() . \WC_Ajax::get_endpoint( 'wc_stripe_verify_intent' )
314
  );
315
+
316
+ if ( ! empty( $payment_details['save_payment_method'] ) ) {
317
+ $verification_endpoint = add_query_arg(
318
+ [ 'save_payment_method' => true ],
319
+ $verification_endpoint
320
+ );
321
+ }
322
+
323
+ $payment_details['verification_endpoint'] = $verification_endpoint;
324
  $result->set_payment_details( $payment_details );
325
  $result->set_status( 'success' );
326
  }
includes/class-wc-stripe-feature-flags.php ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class WC_Stripe_Feature_Flags {
7
+ const UPE_CHECKOUT_FEATURE_ATTRIBUTE_NAME = 'upe_checkout_experience_enabled';
8
+
9
+ /**
10
+ * Checks whether UPE "preview" feature flag is enabled.
11
+ * This allows the merchant to enable/disable UPE checkout.
12
+ *
13
+ * @return bool
14
+ */
15
+ public static function is_upe_preview_enabled() {
16
+ return 'yes' === get_option( '_wcstripe_feature_upe', 'no' ) || self::is_upe_settings_redesign_enabled();
17
+ }
18
+
19
+ /**
20
+ * Checks whether UPE is enabled.
21
+ *
22
+ * @return bool
23
+ */
24
+ public static function is_upe_checkout_enabled() {
25
+ $stripe_settings = get_option( 'woocommerce_stripe_settings', null );
26
+ return ! empty( $stripe_settings[ self::UPE_CHECKOUT_FEATURE_ATTRIBUTE_NAME ] ) && 'yes' === $stripe_settings[ self::UPE_CHECKOUT_FEATURE_ATTRIBUTE_NAME ];
27
+ }
28
+
29
+ /**
30
+ * Checks whether the feature flag used for the new settings + UPE is enabled.
31
+ *
32
+ * @return bool
33
+ */
34
+ public static function is_upe_settings_redesign_enabled() {
35
+ return 'yes' === get_option( '_wcstripe_feature_upe_settings', 'no' );
36
+ }
37
+ }
includes/class-wc-stripe-intent-controller.php CHANGED
@@ -25,6 +25,12 @@ class WC_Stripe_Intent_Controller {
25
  public function __construct() {
26
  add_action( 'wc_ajax_wc_stripe_verify_intent', [ $this, 'verify_intent' ] );
27
  add_action( 'wc_ajax_wc_stripe_create_setup_intent', [ $this, 'create_setup_intent' ] );
 
 
 
 
 
 
28
  }
29
 
30
  /**
@@ -254,6 +260,110 @@ class WC_Stripe_Intent_Controller {
254
  echo wp_json_encode( $response );
255
  exit;
256
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
257
  }
258
 
259
  new WC_Stripe_Intent_Controller();
25
  public function __construct() {
26
  add_action( 'wc_ajax_wc_stripe_verify_intent', [ $this, 'verify_intent' ] );
27
  add_action( 'wc_ajax_wc_stripe_create_setup_intent', [ $this, 'create_setup_intent' ] );
28
+
29
+ add_action( 'wc_ajax_wc_stripe_create_payment_intent', [ $this, 'create_payment_intent_ajax' ] );
30
+
31
+ add_action( 'wc_ajax_wc_stripe_save_upe_appearance', [ $this, 'save_upe_appearance_ajax' ] );
32
+ add_action( 'wc_ajax_nopriv_wc_stripe_save_upe_appearance', [ $this, 'save_upe_appearance_ajax' ] );
33
+ add_action( 'switch_theme', [ $this, 'clear_upe_appearance_transient' ] );
34
  }
35
 
36
  /**
260
  echo wp_json_encode( $response );
261
  exit;
262
  }
263
+
264
+ /**
265
+ * Handle AJAX request for creating a payment intent for Stripe UPE.
266
+ *
267
+ * @throws Process_Payment_Exception - If nonce or setup intent is invalid.
268
+ */
269
+ public function create_payment_intent_ajax() {
270
+ try {
271
+ $is_nonce_valid = check_ajax_referer( '_wc_stripe_nonce', false, false );
272
+ if ( ! $is_nonce_valid ) {
273
+ throw new Exception( __( "We're not able to process this payment. Please refresh the page and try again.", 'woocommerce-gateway-stripe' ) );
274
+ }
275
+
276
+ // If paying from order, we need to get the total from the order instead of the cart.
277
+ $order_id = isset( $_POST['stripe_order_id'] ) ? absint( $_POST['stripe_order_id'] ) : null;
278
+
279
+ wp_send_json_success( $this->create_payment_intent( $order_id ), 200 );
280
+ } catch ( Exception $e ) {
281
+ WC_Stripe_Logger::log( 'Create payment intent error: ' . $e->getMessage() );
282
+ // Send back error so it can be displayed to the customer.
283
+ wp_send_json_error(
284
+ [
285
+ 'error' => [
286
+ 'message' => $e->getMessage(),
287
+ ],
288
+ ]
289
+ );
290
+ }
291
+ }
292
+
293
+ /**
294
+ * Creates payment intent using current cart or order and store details.
295
+ *
296
+ * @param {int} $order_id The id of the order if intent created from Order.
297
+ * @throws Exception - If the create intent call returns with an error.
298
+ * @return array
299
+ */
300
+ public function create_payment_intent( $order_id = null ) {
301
+ $amount = WC()->cart->get_total( false );
302
+ $order = wc_get_order( $order_id );
303
+ if ( is_a( $order, 'WC_Order' ) ) {
304
+ $amount = $order->get_total();
305
+ }
306
+
307
+ $gateway = new WC_Stripe_UPE_Payment_Gateway();
308
+
309
+ $currency = get_woocommerce_currency();
310
+ $payment_intent = WC_Stripe_API::request(
311
+ [
312
+ 'amount' => WC_Stripe_Helper::get_stripe_amount( $amount, strtolower( $currency ) ),
313
+ 'currency' => strtolower( $currency ),
314
+ 'payment_method_types' => $gateway->get_upe_enabled_payment_method_ids(),
315
+ ],
316
+ 'payment_intents'
317
+ );
318
+
319
+ if ( ! empty( $payment_intent->error ) ) {
320
+ throw new Exception( $payment_intent->error->message );
321
+ }
322
+
323
+ return [
324
+ 'id' => $payment_intent->id,
325
+ 'client_secret' => $payment_intent->client_secret,
326
+ ];
327
+ }
328
+
329
+ /**
330
+ * Handle AJAX request for saving UPE appearance value to transient.
331
+ *
332
+ * @throws Exception - If nonce or setup intent is invalid.
333
+ */
334
+ public function save_upe_appearance_ajax() {
335
+ try {
336
+ $is_nonce_valid = check_ajax_referer( '_wc_stripe_save_upe_appearance_nonce', false, false );
337
+ if ( ! $is_nonce_valid ) {
338
+ throw new Exception(
339
+ __( 'Unable to update UPE appearance values at this time.', 'woocommerce-gateway-stripe' )
340
+ );
341
+ }
342
+
343
+ $appearance = isset( $_POST['appearance'] ) ? wc_clean( wp_unslash( $_POST['appearance'] ) ) : null;
344
+ if ( null !== $appearance ) {
345
+ set_transient( WC_Stripe_UPE_Payment_Gateway::UPE_APPEARANCE_TRANSIENT, $appearance, DAY_IN_SECONDS );
346
+ }
347
+ wp_send_json_success( $appearance, 200 );
348
+ } catch ( Exception $e ) {
349
+ // Send back error so it can be displayed to the customer.
350
+ wp_send_json_error(
351
+ [
352
+ 'error' => [
353
+ 'message' => $e->getMessage(),
354
+ ],
355
+ ]
356
+ );
357
+ }
358
+ }
359
+
360
+ /**
361
+ * Clear the saved UPE appearance transient value.
362
+ */
363
+ public function clear_upe_appearance_transient() {
364
+ delete_transient( WC_Stripe_UPE_Payment_Gateway::UPE_APPEARANCE_TRANSIENT );
365
+ }
366
+
367
  }
368
 
369
  new WC_Stripe_Intent_Controller();
includes/class-wc-stripe-order-handler.php CHANGED
@@ -29,6 +29,8 @@ class WC_Stripe_Order_Handler extends WC_Stripe_Payment_Gateway {
29
  add_action( 'woocommerce_order_status_cancelled', [ $this, 'cancel_payment' ] );
30
  add_action( 'woocommerce_order_status_refunded', [ $this, 'cancel_payment' ] );
31
  add_filter( 'woocommerce_tracks_event_properties', [ $this, 'woocommerce_tracks_event_properties' ], 10, 2 );
 
 
32
  }
33
 
34
  /**
@@ -376,6 +378,47 @@ class WC_Stripe_Order_Handler extends WC_Stripe_Payment_Gateway {
376
 
377
  return $properties;
378
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
379
  }
380
 
381
  new WC_Stripe_Order_Handler();
29
  add_action( 'woocommerce_order_status_cancelled', [ $this, 'cancel_payment' ] );
30
  add_action( 'woocommerce_order_status_refunded', [ $this, 'cancel_payment' ] );
31
  add_filter( 'woocommerce_tracks_event_properties', [ $this, 'woocommerce_tracks_event_properties' ], 10, 2 );
32
+
33
+ add_action( 'wp', [ $this, 'maybe_process_upe_redirect' ] );
34
  }
35
 
36
  /**
378
 
379
  return $properties;
380
  }
381
+
382
+ /**
383
+ * Check for a UPE redirect payment method on order received page or setup intent on payment methods page.
384
+ *
385
+ * @since 5.5.0
386
+ * @version 5.5.0
387
+ */
388
+ public function maybe_process_upe_redirect() {
389
+ if ( ! is_order_received_page() ) {
390
+ return;
391
+ }
392
+
393
+ $payment_method = isset( $_GET['wc_payment_method'] ) ? wc_clean( wp_unslash( $_GET['wc_payment_method'] ) ) : '';
394
+ if ( WC_Stripe_UPE_Payment_Gateway::ID !== $payment_method ) {
395
+ return;
396
+ }
397
+
398
+ $is_nonce_valid = check_admin_referer( 'wcpay_process_redirect_order_nonce' );
399
+ if ( ! $is_nonce_valid || empty( $_GET['wc_payment_method'] ) ) {
400
+ return;
401
+ }
402
+
403
+ if ( ! empty( $_GET['payment_intent_client_secret'] ) ) {
404
+ $intent_id = isset( $_GET['payment_intent'] ) ? wc_clean( wp_unslash( $_GET['payment_intent'] ) ) : '';
405
+ } elseif ( ! empty( $_GET['setup_intent_client_secret'] ) ) {
406
+ $intent_id = isset( $_GET['setup_intent'] ) ? wc_clean( wp_unslash( $_GET['setup_intent'] ) ) : '';
407
+ } else {
408
+ return;
409
+ }
410
+
411
+ $order_id = isset( $_GET['order_id'] ) ? wc_clean( wp_unslash( $_GET['order_id'] ) ) : '';
412
+ $save_payment_method = isset( $_GET['save_payment_method'] ) ? 'yes' === wc_clean( wp_unslash( $_GET['save_payment_method'] ) ) : false;
413
+
414
+ if ( empty( $intent_id ) || empty( $order_id ) ) {
415
+ return;
416
+ }
417
+
418
+ $gateway = new WC_Stripe_UPE_Payment_Gateway();
419
+ $gateway->process_upe_redirect_payment( $order_id, $intent_id, $save_payment_method );
420
+ }
421
+
422
  }
423
 
424
  new WC_Stripe_Order_Handler();
includes/class-wc-stripe-upe-compatibility.php ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ class WC_Stripe_UPE_Compatibility {
7
+ const MIN_WP_VERSION = '5.6';
8
+ const MIN_WC_VERSION = '5.5';
9
+ const LEARN_MORE_LINK = 'https://developer.woocommerce.com/2021/08/26/developer-advisory-woocommerce-stripe-support-policy-change/';
10
+
11
+ public static function is_wp_supported() {
12
+ return version_compare( get_bloginfo( 'version' ), self::MIN_WP_VERSION, '>=' );
13
+ }
14
+
15
+ public static function is_wc_supported() {
16
+ return version_compare( WC_VERSION, self::MIN_WC_VERSION, '>=' );
17
+ }
18
+ }
includes/notes/class-wc-stripe-upe-compatibility-note.php ADDED
@@ -0,0 +1,71 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * Display a notice to merchants to inform them that WC Stripe will no longer support older versions of WooCommerce.
4
+ *
5
+ * @package WooCommerce\Payments\Admin
6
+ */
7
+
8
+ use Automattic\WooCommerce\Admin\Notes\NoteTraits;
9
+ use Automattic\WooCommerce\Admin\Notes\Note;
10
+ use Automattic\WooCommerce\Admin\Notes\WC_Admin_Note;
11
+
12
+ defined( 'ABSPATH' ) || exit;
13
+
14
+ /**
15
+ * Class WC_Stripe_UPE_Compatibility_Note
16
+ */
17
+ class WC_Stripe_UPE_Compatibility_Note {
18
+ use NoteTraits;
19
+
20
+ /**
21
+ * Name of the note for use in the database.
22
+ */
23
+ const NOTE_NAME = 'wc-stripe-upe-wc-compatibility-note';
24
+
25
+ /**
26
+ * Get the note.
27
+ */
28
+ public static function get_note() {
29
+ $note_class = self::get_note_class();
30
+ $note = new $note_class();
31
+
32
+ $note->set_title( __( 'Important compatibility information about WooCommerce Stripe', 'woocommerce-gateway-stripe' ) );
33
+ /* translators: $1 WordPress version installed. $2 WooCommerce version installed. */
34
+ $note->set_content( sprintf( __( 'Starting with version 5.6.0, WooCommerce Stripe will require WordPress %1$s or greater and WooCommerce %2$s or greater to be installed and active.', 'woocommerce-gateway-stripe' ), WC_Stripe_UPE_Compatibility::MIN_WP_VERSION, WC_Stripe_UPE_Compatibility::MIN_WC_VERSION ) );
35
+ $note->set_type( $note_class::E_WC_ADMIN_NOTE_WARNING );
36
+ $note->set_name( self::NOTE_NAME );
37
+ $note->set_source( 'woocommerce-gateway-stripe' );
38
+ $note->add_action(
39
+ self::NOTE_NAME,
40
+ __( 'Learn more', 'woocommerce-gateway-stripe' ),
41
+ WC_Stripe_UPE_Compatibility::LEARN_MORE_LINK,
42
+ $note_class::E_WC_ADMIN_NOTE_UNACTIONED,
43
+ true
44
+ );
45
+
46
+ return $note;
47
+ }
48
+
49
+ /**
50
+ * Get the class type to be used for the note.
51
+ *
52
+ * @return string
53
+ */
54
+ private static function get_note_class() {
55
+ if ( class_exists( 'Automattic\WooCommerce\Admin\Notes\Note' ) ) {
56
+ return Note::class;
57
+ } else {
58
+ return WC_Admin_Note::class;
59
+ }
60
+ }
61
+
62
+ public static function init() {
63
+ // if the note hasn't been added, add it
64
+ // if it has been added and the merchant has upgraded WC & WP, delete it
65
+ if ( ! WC_Stripe_UPE_Compatibility::is_wc_supported() || ! WC_Stripe_UPE_Compatibility::is_wp_supported() ) {
66
+ self::possibly_add_note();
67
+ } else {
68
+ self::possibly_delete_note();
69
+ }
70
+ }
71
+ }
includes/payment-methods/class-wc-gateway-stripe-alipay.php CHANGED
@@ -11,6 +11,9 @@ if ( ! defined( 'ABSPATH' ) ) {
11
  * @since 4.0.0
12
  */
13
  class WC_Gateway_Stripe_Alipay extends WC_Stripe_Payment_Gateway {
 
 
 
14
  /**
15
  * Notices (array)
16
  *
@@ -57,7 +60,7 @@ class WC_Gateway_Stripe_Alipay extends WC_Stripe_Payment_Gateway {
57
  * Constructor
58
  */
59
  public function __construct() {
60
- $this->id = 'stripe_alipay';
61
  $this->method_title = __( 'Stripe Alipay', 'woocommerce-gateway-stripe' );
62
  /* translators: link */
63
  $this->method_description = sprintf( __( 'All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout&section=stripe' ) );
@@ -88,6 +91,7 @@ class WC_Gateway_Stripe_Alipay extends WC_Stripe_Payment_Gateway {
88
  }
89
 
90
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
 
91
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
92
  }
93
 
11
  * @since 4.0.0
12
  */
13
  class WC_Gateway_Stripe_Alipay extends WC_Stripe_Payment_Gateway {
14
+
15
+ const ID = 'stripe_alipay';
16
+
17
  /**
18
  * Notices (array)
19
  *
60
  * Constructor
61
  */
62
  public function __construct() {
63
+ $this->id = self::ID;
64
  $this->method_title = __( 'Stripe Alipay', 'woocommerce-gateway-stripe' );
65
  /* translators: link */
66
  $this->method_description = sprintf( __( 'All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout&section=stripe' ) );
91
  }
92
 
93
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
94
+ add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts_for_banner' ] );
95
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
96
  }
97
 
includes/payment-methods/class-wc-gateway-stripe-bancontact.php CHANGED
@@ -11,6 +11,9 @@ if ( ! defined( 'ABSPATH' ) ) {
11
  * @since 4.0.0
12
  */
13
  class WC_Gateway_Stripe_Bancontact extends WC_Stripe_Payment_Gateway {
 
 
 
14
  /**
15
  * Notices (array)
16
  *
@@ -57,7 +60,7 @@ class WC_Gateway_Stripe_Bancontact extends WC_Stripe_Payment_Gateway {
57
  * Constructor
58
  */
59
  public function __construct() {
60
- $this->id = 'stripe_bancontact';
61
  $this->method_title = __( 'Stripe Bancontact', 'woocommerce-gateway-stripe' );
62
  /* translators: link */
63
  $this->method_description = sprintf( __( 'All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout&section=stripe' ) );
@@ -88,6 +91,7 @@ class WC_Gateway_Stripe_Bancontact extends WC_Stripe_Payment_Gateway {
88
  }
89
 
90
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
 
91
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
92
  }
93
 
11
  * @since 4.0.0
12
  */
13
  class WC_Gateway_Stripe_Bancontact extends WC_Stripe_Payment_Gateway {
14
+
15
+ const ID = 'stripe_bancontact';
16
+
17
  /**
18
  * Notices (array)
19
  *
60
  * Constructor
61
  */
62
  public function __construct() {
63
+ $this->id = self::ID;
64
  $this->method_title = __( 'Stripe Bancontact', 'woocommerce-gateway-stripe' );
65
  /* translators: link */
66
  $this->method_description = sprintf( __( 'All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout&section=stripe' ) );
91
  }
92
 
93
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
94
+ add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts_for_banner' ] );
95
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
96
  }
97
 
includes/payment-methods/class-wc-gateway-stripe-eps.php CHANGED
@@ -11,6 +11,9 @@ if ( ! defined( 'ABSPATH' ) ) {
11
  * @since 4.1.0
12
  */
13
  class WC_Gateway_Stripe_Eps extends WC_Stripe_Payment_Gateway {
 
 
 
14
  /**
15
  * Notices (array)
16
  *
@@ -57,7 +60,7 @@ class WC_Gateway_Stripe_Eps extends WC_Stripe_Payment_Gateway {
57
  * Constructor
58
  */
59
  public function __construct() {
60
- $this->id = 'stripe_eps';
61
  $this->method_title = __( 'Stripe EPS', 'woocommerce-gateway-stripe' );
62
  /* translators: link */
63
  $this->method_description = sprintf( __( 'All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout&section=stripe' ) );
@@ -88,6 +91,7 @@ class WC_Gateway_Stripe_Eps extends WC_Stripe_Payment_Gateway {
88
  }
89
 
90
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
 
91
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
92
  }
93
 
11
  * @since 4.1.0
12
  */
13
  class WC_Gateway_Stripe_Eps extends WC_Stripe_Payment_Gateway {
14
+
15
+ const ID = 'stripe_eps';
16
+
17
  /**
18
  * Notices (array)
19
  *
60
  * Constructor
61
  */
62
  public function __construct() {
63
+ $this->id = self::ID;
64
  $this->method_title = __( 'Stripe EPS', 'woocommerce-gateway-stripe' );
65
  /* translators: link */
66
  $this->method_description = sprintf( __( 'All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout&section=stripe' ) );
91
  }
92
 
93
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
94
+ add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts_for_banner' ] );
95
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
96
  }
97
 
includes/payment-methods/class-wc-gateway-stripe-giropay.php CHANGED
@@ -11,6 +11,9 @@ if ( ! defined( 'ABSPATH' ) ) {
11
  * @since 4.0.0
12
  */
13
  class WC_Gateway_Stripe_Giropay extends WC_Stripe_Payment_Gateway {
 
 
 
14
  /**
15
  * Notices (array)
16
  *
@@ -57,7 +60,7 @@ class WC_Gateway_Stripe_Giropay extends WC_Stripe_Payment_Gateway {
57
  * Constructor
58
  */
59
  public function __construct() {
60
- $this->id = 'stripe_giropay';
61
  $this->method_title = __( 'Stripe Giropay', 'woocommerce-gateway-stripe' );
62
  /* translators: link */
63
  $this->method_description = sprintf( __( 'All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout&section=stripe' ) );
@@ -88,6 +91,7 @@ class WC_Gateway_Stripe_Giropay extends WC_Stripe_Payment_Gateway {
88
  }
89
 
90
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
 
91
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
92
  }
93
 
11
  * @since 4.0.0
12
  */
13
  class WC_Gateway_Stripe_Giropay extends WC_Stripe_Payment_Gateway {
14
+
15
+ const ID = 'stripe_giropay';
16
+
17
  /**
18
  * Notices (array)
19
  *
60
  * Constructor
61
  */
62
  public function __construct() {
63
+ $this->id = self::ID;
64
  $this->method_title = __( 'Stripe Giropay', 'woocommerce-gateway-stripe' );
65
  /* translators: link */
66
  $this->method_description = sprintf( __( 'All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout&section=stripe' ) );
91
  }
92
 
93
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
94
+ add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts_for_banner' ] );
95
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
96
  }
97
 
includes/payment-methods/class-wc-gateway-stripe-ideal.php CHANGED
@@ -11,6 +11,9 @@ if ( ! defined( 'ABSPATH' ) ) {
11
  * @since 4.0.0
12
  */
13
  class WC_Gateway_Stripe_Ideal extends WC_Stripe_Payment_Gateway {
 
 
 
14
  /**
15
  * Notices (array)
16
  *
@@ -57,7 +60,7 @@ class WC_Gateway_Stripe_Ideal extends WC_Stripe_Payment_Gateway {
57
  * Constructor
58
  */
59
  public function __construct() {
60
- $this->id = 'stripe_ideal';
61
  $this->method_title = __( 'Stripe iDeal', 'woocommerce-gateway-stripe' );
62
  /* translators: link */
63
  $this->method_description = sprintf( __( 'All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout&section=stripe' ) );
@@ -88,6 +91,7 @@ class WC_Gateway_Stripe_Ideal extends WC_Stripe_Payment_Gateway {
88
  }
89
 
90
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
 
91
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
92
  }
93
 
11
  * @since 4.0.0
12
  */
13
  class WC_Gateway_Stripe_Ideal extends WC_Stripe_Payment_Gateway {
14
+
15
+ const ID = 'stripe_ideal';
16
+
17
  /**
18
  * Notices (array)
19
  *
60
  * Constructor
61
  */
62
  public function __construct() {
63
+ $this->id = self::ID;
64
  $this->method_title = __( 'Stripe iDeal', 'woocommerce-gateway-stripe' );
65
  /* translators: link */
66
  $this->method_description = sprintf( __( 'All other general Stripe settings can be adjusted <a href="%s">here</a>.', 'woocommerce-gateway-stripe' ), admin_url( 'admin.php?page=wc-settings&tab=checkout&section=stripe' ) );
91
  }
92
 
93
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
94
+ add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts_for_banner' ] );
95
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
96
  }
97
 
includes/payment-methods/class-wc-gateway-stripe-multibanco.php CHANGED
@@ -88,6 +88,7 @@ class WC_Gateway_Stripe_Multibanco extends WC_Stripe_Payment_Gateway {
88
  }
89
 
90
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
 
91
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
92
  add_action( 'woocommerce_thankyou_stripe_multibanco', [ $this, 'thankyou_page' ] );
93
 
88
  }
89
 
90
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
91
+ add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts_for_banner' ] );
92
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
93
  add_action( 'woocommerce_thankyou_stripe_multibanco', [ $this, 'thankyou_page' ] );
94
 
includes/payment-methods/class-wc-gateway-stripe-p24.php CHANGED
@@ -88,6 +88,7 @@ class WC_Gateway_Stripe_P24 extends WC_Stripe_Payment_Gateway {
88
  }
89
 
90
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
 
91
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
92
  }
93
 
88
  }
89
 
90
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
91
+ add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts_for_banner' ] );
92
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
93
  }
94
 
includes/payment-methods/class-wc-gateway-stripe-sepa.php CHANGED
@@ -117,6 +117,7 @@ class WC_Gateway_Stripe_Sepa extends WC_Stripe_Payment_Gateway {
117
  }
118
 
119
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
 
120
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
121
 
122
  if ( WC_Stripe_Helper::is_pre_orders_exists() ) {
117
  }
118
 
119
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
120
+ add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts_for_banner' ] );
121
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
122
 
123
  if ( WC_Stripe_Helper::is_pre_orders_exists() ) {
includes/payment-methods/class-wc-gateway-stripe-sofort.php CHANGED
@@ -88,6 +88,7 @@ class WC_Gateway_Stripe_Sofort extends WC_Stripe_Payment_Gateway {
88
  }
89
 
90
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
 
91
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
92
  }
93
 
88
  }
89
 
90
  add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
91
+ add_action( 'admin_enqueue_scripts', [ $this, 'admin_scripts_for_banner' ] );
92
  add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
93
  }
94
 
includes/payment-methods/class-wc-stripe-payment-request.php CHANGED
@@ -818,8 +818,6 @@ class WC_Stripe_Payment_Request {
818
  * @version 5.2.0
819
  */
820
  public function display_payment_request_button_separator_html() {
821
- global $post;
822
-
823
  $gateways = WC()->payment_gateways->get_available_payment_gateways();
824
 
825
  if ( ! isset( $gateways['stripe'] ) ) {
@@ -830,7 +828,7 @@ class WC_Stripe_Payment_Request {
830
  return;
831
  }
832
 
833
- if ( is_checkout() && ! apply_filters( 'wc_stripe_show_payment_request_on_checkout', false, $post ) ) {
834
  return;
835
  }
836
  ?>
@@ -847,8 +845,6 @@ class WC_Stripe_Payment_Request {
847
  * @return boolean True if PRBs are supported on current page, false otherwise
848
  */
849
  public function should_show_payment_request_button() {
850
- global $post;
851
-
852
  // If keys are not set bail.
853
  if ( ! $this->are_keys_set() ) {
854
  WC_Stripe_Logger::log( 'Keys are not set correctly.' );
@@ -871,20 +867,17 @@ class WC_Stripe_Payment_Request {
871
  }
872
 
873
  // Don't show on cart if disabled.
874
- if ( is_cart() && ! apply_filters( 'wc_stripe_show_payment_request_on_cart', true ) ) {
875
  return false;
876
  }
877
 
878
  // Don't show on checkout if disabled.
879
- if ( is_checkout() && ! apply_filters( 'wc_stripe_show_payment_request_on_checkout', false, $post ) ) {
880
  return false;
881
  }
882
 
883
  // Don't show if product page PRB is disabled.
884
- if (
885
- $this->is_product()
886
- && apply_filters( 'wc_stripe_hide_payment_request_on_product_page', false, $post )
887
- ) {
888
  return false;
889
  }
890
 
@@ -896,6 +889,86 @@ class WC_Stripe_Payment_Request {
896
  return true;
897
  }
898
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
899
  /**
900
  * Returns true if a the provided product is supported, false otherwise.
901
  *
@@ -1594,26 +1667,33 @@ class WC_Stripe_Payment_Request {
1594
  define( 'WOOCOMMERCE_CART', true );
1595
  }
1596
 
1597
- $items = [];
1598
- $subtotal = 0;
1599
- $discounts = 0;
1600
-
1601
- // Default show only subtotal instead of itemization.
1602
- if ( ! apply_filters( 'wc_stripe_payment_request_hide_itemization', true ) || $itemized_display_items ) {
1603
- foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
1604
- $amount = $cart_item['line_subtotal'];
1605
- $subtotal += $cart_item['line_subtotal'];
1606
- $quantity_label = 1 < $cart_item['quantity'] ? ' (x' . $cart_item['quantity'] . ')' : '';
1607
 
1608
- $product_name = $cart_item['data']->get_name();
 
 
 
 
 
 
 
 
 
 
1609
 
1610
- $item = [
1611
- 'label' => $product_name . $quantity_label,
1612
- 'amount' => WC_Stripe_Helper::get_stripe_amount( $amount ),
1613
- ];
1614
 
1615
- $items[] = $item;
1616
- }
 
 
1617
  }
1618
 
1619
  if ( version_compare( WC_VERSION, '3.2', '<' ) ) {
@@ -1705,4 +1785,20 @@ class WC_Stripe_Payment_Request {
1705
  'redirect_url' => $redirect_url,
1706
  ];
1707
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1708
  }
818
  * @version 5.2.0
819
  */
820
  public function display_payment_request_button_separator_html() {
 
 
821
  $gateways = WC()->payment_gateways->get_available_payment_gateways();
822
 
823
  if ( ! isset( $gateways['stripe'] ) ) {
828
  return;
829
  }
830
 
831
+ if ( is_checkout() && ! in_array( 'checkout', $this->get_button_locations(), true ) ) {
832
  return;
833
  }
834
  ?>
845
  * @return boolean True if PRBs are supported on current page, false otherwise
846
  */
847
  public function should_show_payment_request_button() {
 
 
848
  // If keys are not set bail.
849
  if ( ! $this->are_keys_set() ) {
850
  WC_Stripe_Logger::log( 'Keys are not set correctly.' );
867
  }
868
 
869
  // Don't show on cart if disabled.
870
+ if ( is_cart() && ! $this->should_show_prb_on_cart_page() ) {
871
  return false;
872
  }
873
 
874
  // Don't show on checkout if disabled.
875
+ if ( is_checkout() && ! $this->should_show_prb_on_checkout_page() ) {
876
  return false;
877
  }
878
 
879
  // Don't show if product page PRB is disabled.
880
+ if ( $this->is_product() && ! $this->should_show_prb_on_product_pages() ) {
 
 
 
881
  return false;
882
  }
883
 
889
  return true;
890
  }
891
 
892
+ /**
893
+ * Returns true if Payment Request Buttons are enabled on the cart page, false
894
+ * otherwise.
895
+ *
896
+ * @since 5.5.0
897
+ * @version 5.5.0
898
+ * @return boolean True if PRBs are enabled on the cart page, false otherwise
899
+ */
900
+ public function should_show_prb_on_cart_page() {
901
+ // Message we show for the deprecated PRB location filters. Intended for support so we
902
+ // don't provide translations.
903
+ $deprecation_message =
904
+ 'Please configure Payment Request Button locations through the Stripe plugin settings.';
905
+ $should_show_on_cart_page = in_array( 'cart', $this->get_button_locations(), true );
906
+
907
+ // Respect the deprecated filters, but add a deprecation notice.
908
+ return apply_filters_deprecated(
909
+ 'wc_stripe_show_payment_request_on_cart',
910
+ [ $should_show_on_cart_page ],
911
+ '5.5.0',
912
+ '', // There is no replacement.
913
+ $deprecation_message
914
+ );
915
+ }
916
+
917
+ /**
918
+ * Returns true if Payment Request Buttons are enabled on the checkout page, false
919
+ * otherwise.
920
+ *
921
+ * @since 5.5.0
922
+ * @version 5.5.0
923
+ * @return boolean True if PRBs are enabled on the checkout page, false otherwise
924
+ */
925
+ public function should_show_prb_on_checkout_page() {
926
+ global $post;
927
+
928
+ // Message we show for the deprecated PRB location filters. Intended for support so we
929
+ // don't provide translations.
930
+ $deprecation_message =
931
+ 'Please configure Payment Request Button locations through the Stripe plugin settings.';
932
+ $should_show_on_checkout_page = in_array( 'checkout', $this->get_button_locations(), true );
933
+
934
+ // Respect the deprecated filters, but add a deprecation notice.
935
+ return apply_filters_deprecated(
936
+ 'wc_stripe_show_payment_request_on_checkout',
937
+ [ $should_show_on_checkout_page, $post ],
938
+ '5.5.0',
939
+ '', // There is no replacement.
940
+ $deprecation_message
941
+ );
942
+ }
943
+
944
+ /**
945
+ * Returns true if Payment Request Buttons are enabled on product pages, false
946
+ * otherwise.
947
+ *
948
+ * @since 5.5.0
949
+ * @version 5.5.0
950
+ * @return boolean True if PRBs are enabled on product pages, false otherwise
951
+ */
952
+ public function should_show_prb_on_product_pages() {
953
+ global $post;
954
+
955
+ // Message we show for the deprecated PRB location filters. Intended for support so we
956
+ // don't provide translations.
957
+ $deprecation_message =
958
+ 'Please configure Payment Request Button locations through the Stripe plugin settings.';
959
+ $should_show_on_product_page = in_array( 'product', $this->get_button_locations(), true );
960
+
961
+ // Respect the deprecated filters, but add a deprecation notice.
962
+ // Note the negation because if the filter returns `true` that means we should hide the PRB.
963
+ return ! apply_filters_deprecated(
964
+ 'wc_stripe_hide_payment_request_on_product_page',
965
+ [ ! $should_show_on_product_page, $post ],
966
+ '5.5.0',
967
+ '', // There is no replacement.
968
+ $deprecation_message
969
+ );
970
+ }
971
+
972
  /**
973
  * Returns true if a the provided product is supported, false otherwise.
974
  *
1667
  define( 'WOOCOMMERCE_CART', true );
1668
  }
1669
 
1670
+ $items = [];
1671
+ $lines = [];
1672
+ $subtotal = 0;
1673
+ $discounts = 0;
1674
+ $display_items = ! apply_filters( 'wc_stripe_payment_request_hide_itemization', true ) || $itemized_display_items;
 
 
 
 
 
1675
 
1676
+ foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
1677
+ $subtotal += $cart_item['line_subtotal'];
1678
+ $amount = $cart_item['line_subtotal'];
1679
+ $quantity_label = 1 < $cart_item['quantity'] ? ' (x' . $cart_item['quantity'] . ')' : '';
1680
+ $product_name = $cart_item['data']->get_name();
1681
+
1682
+ $lines[] = [
1683
+ 'label' => $product_name . $quantity_label,
1684
+ 'amount' => WC_Stripe_Helper::get_stripe_amount( $amount ),
1685
+ ];
1686
+ }
1687
 
1688
+ if ( $display_items ) {
1689
+ $items = array_merge( $items, $lines );
1690
+ } else {
1691
+ // Default show only subtotal instead of itemization.
1692
 
1693
+ $items[] = [
1694
+ 'label' => 'Subtotal',
1695
+ 'amount' => WC_Stripe_Helper::get_stripe_amount( $subtotal ),
1696
+ ];
1697
  }
1698
 
1699
  if ( version_compare( WC_VERSION, '3.2', '<' ) ) {
1785
  'redirect_url' => $redirect_url,
1786
  ];
1787
  }
1788
+
1789
+ public function get_button_locations() {
1790
+ // If the locations have not been set return the default setting.
1791
+ if ( ! isset( $this->stripe_settings['payment_request_button_locations'] ) ) {
1792
+ return [ 'product', 'cart' ];
1793
+ }
1794
+
1795
+ // If all locations are removed through the settings UI the location config will be set to
1796
+ // an empty string "". If that's the case (and if the settings are not an array for any
1797
+ // other reason) we should return an empty array.
1798
+ if ( ! is_array( $this->stripe_settings['payment_request_button_locations'] ) ) {
1799
+ return [];
1800
+ }
1801
+
1802
+ return $this->stripe_settings['payment_request_button_locations'];
1803
+ }
1804
  }
includes/payment-methods/class-wc-stripe-upe-payment-gateway.php ADDED
@@ -0,0 +1,676 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ if ( ! defined( 'ABSPATH' ) ) {
4
+ exit;
5
+ }
6
+
7
+ /**
8
+ * Class that handles UPE payment method.
9
+ *
10
+ * @extends WC_Stripe_Payment_Gateway
11
+ *
12
+ * @since 5.5.0
13
+ */
14
+ class WC_Stripe_UPE_Payment_Gateway extends WC_Stripe_Payment_Gateway {
15
+
16
+ const ID = 'stripe';
17
+
18
+ const UPE_AVAILABLE_METHODS = [
19
+ WC_Stripe_UPE_Payment_Method_CC::class,
20
+ WC_Stripe_UPE_Payment_Method_Giropay::class,
21
+ WC_Stripe_UPE_Payment_Method_Eps::class,
22
+ WC_Stripe_UPE_Payment_Method_Bancontact::class,
23
+ WC_Stripe_UPE_Payment_Method_Ideal::class,
24
+ ];
25
+
26
+ const UPE_APPEARANCE_TRANSIENT = 'wc_stripe_upe_appearance';
27
+
28
+ /**
29
+ * Notices (array)
30
+ *
31
+ * @var array
32
+ */
33
+ public $notices = [];
34
+
35
+ /**
36
+ * Is test mode active?
37
+ *
38
+ * @var bool
39
+ */
40
+ public $testmode;
41
+
42
+ /**
43
+ * Alternate credit card statement name
44
+ *
45
+ * @var bool
46
+ */
47
+ public $statement_descriptor;
48
+
49
+ /**
50
+ * API access secret key
51
+ *
52
+ * @var string
53
+ */
54
+ public $secret_key;
55
+
56
+ /**
57
+ * Api access publishable key
58
+ *
59
+ * @var string
60
+ */
61
+ public $publishable_key;
62
+
63
+ /**
64
+ * Array mapping payment method string IDs to classes
65
+ *
66
+ * @var array
67
+ */
68
+ protected $payment_methods = [];
69
+
70
+ /**
71
+ * Constructor
72
+ */
73
+ public function __construct() {
74
+ $this->id = self::ID;
75
+ $this->method_title = __( 'Stripe UPE', 'woocommerce-gateway-stripe' );
76
+ /* translators: link */
77
+ $this->method_description = __( 'Accept debit and credit cards in 135+ currencies, methods such as Alipay, and one-touch checkout with Apple Pay.', 'woocommerce-gateway-stripe' );
78
+ $this->has_fields = true;
79
+ $this->supports = [
80
+ 'products',
81
+ 'refunds',
82
+ ];
83
+
84
+ $this->payment_methods = [];
85
+ foreach ( self::UPE_AVAILABLE_METHODS as $payment_method_class ) {
86
+ $payment_method = new $payment_method_class( null );
87
+ $this->payment_methods[ $payment_method->get_id() ] = $payment_method;
88
+ }
89
+
90
+ // Load the form fields.
91
+ $this->init_form_fields();
92
+
93
+ // Load the settings.
94
+ $this->init_settings();
95
+
96
+ $main_settings = get_option( 'woocommerce_stripe_settings' );
97
+ $this->title = $this->get_option( 'title' );
98
+ $this->description = $this->get_option( 'description' );
99
+ $this->enabled = $this->get_option( 'enabled' );
100
+ $this->testmode = ! empty( $main_settings['testmode'] ) && 'yes' === $main_settings['testmode'];
101
+ $this->publishable_key = ! empty( $main_settings['publishable_key'] ) ? $main_settings['publishable_key'] : '';
102
+ $this->secret_key = ! empty( $main_settings['secret_key'] ) ? $main_settings['secret_key'] : '';
103
+ $this->statement_descriptor = ! empty( $main_settings['statement_descriptor'] ) ? $main_settings['statement_descriptor'] : '';
104
+
105
+ if ( $this->testmode ) {
106
+ $this->publishable_key = ! empty( $main_settings['test_publishable_key'] ) ? $main_settings['test_publishable_key'] : '';
107
+ $this->secret_key = ! empty( $main_settings['test_secret_key'] ) ? $main_settings['test_secret_key'] : '';
108
+ }
109
+
110
+ add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, [ $this, 'process_admin_options' ] );
111
+ add_action( 'wp_enqueue_scripts', [ $this, 'payment_scripts' ] );
112
+ }
113
+
114
+ /**
115
+ * Initialize Gateway Settings Form Fields.
116
+ */
117
+ public function init_form_fields() {
118
+ $this->form_fields = require WC_STRIPE_PLUGIN_PATH . '/includes/admin/stripe-settings.php';
119
+ unset( $this->form_fields['inline_cc_form'] );
120
+ }
121
+
122
+ /**
123
+ * Maybe override the parent admin_options method.
124
+ */
125
+ public function admin_options() {
126
+ if ( ! WC_Stripe_Feature_Flags::is_upe_settings_redesign_enabled() ) {
127
+ parent::admin_options();
128
+
129
+ return;
130
+ }
131
+
132
+ do_action( 'wc_stripe_gateway_admin_options_wrapper', $this );
133
+ }
134
+
135
+ /**
136
+ * Outputs scripts used for stripe payment
137
+ */
138
+ public function payment_scripts() {
139
+ if ( ! is_cart() && ! is_checkout() && ! isset( $_GET['pay_for_order'] ) && ! is_add_payment_method_page() ) {
140
+ return;
141
+ }
142
+
143
+ $asset_path = WC_STRIPE_PLUGIN_PATH . '/build/checkout_upe.asset.php';
144
+ $version = WC_STRIPE_VERSION;
145
+ $dependencies = [];
146
+ if ( file_exists( $asset_path ) ) {
147
+ $asset = require $asset_path;
148
+ $version = is_array( $asset ) && isset( $asset['version'] )
149
+ ? $asset['version']
150
+ : $version;
151
+ $dependencies = is_array( $asset ) && isset( $asset['dependencies'] )
152
+ ? $asset['dependencies']
153
+ : $dependencies;
154
+ }
155
+
156
+ wp_register_script(
157
+ 'stripe',
158
+ 'https://js.stripe.com/v3/',
159
+ [],
160
+ '3.0',
161
+ true
162
+ );
163
+
164
+ wp_register_script(
165
+ 'wc-stripe-upe-classic',
166
+ WC_STRIPE_PLUGIN_URL . '/build/upe_classic.js',
167
+ array_merge( [ 'stripe', 'wc-checkout' ], $dependencies ),
168
+ $version,
169
+ true
170
+ );
171
+ wp_set_script_translations(
172
+ 'wc-stripe-upe-classic',
173
+ 'woocommerce-gateway-stripe'
174
+ );
175
+
176
+ wp_localize_script(
177
+ 'wc-stripe-upe-classic',
178
+ 'wc_stripe_upe_params',
179
+ apply_filters( 'wc_stripe_upe_params', $this->javascript_params() )
180
+ );
181
+
182
+ wp_enqueue_script( 'wc-stripe-upe-classic' );
183
+ }
184
+
185
+ /**
186
+ * Returns the JavaScript configuration object used on the product, cart, and checkout pages.
187
+ *
188
+ * @return array The configuration object to be loaded to JS.
189
+ */
190
+ public function javascript_params() {
191
+ global $wp;
192
+
193
+ $stripe_params = [
194
+ 'isUPEEnabled' => true,
195
+ 'key' => $this->publishable_key,
196
+ 'locale' => WC_Stripe_Helper::convert_wc_locale_to_stripe_locale( get_locale() ),
197
+ ];
198
+
199
+ // If we're on the pay page we need to pass stripe.js the address of the order.
200
+ if ( isset( $_GET['pay_for_order'] ) && 'true' === $_GET['pay_for_order'] ) { // wpcs: csrf ok.
201
+ $order_id = wc_clean( $wp->query_vars['order-pay'] ); // wpcs: csrf ok, sanitization ok, xss ok.
202
+ $stripe_params['orderId'] = $order_id;
203
+ }
204
+
205
+ $sepa_elements_options = apply_filters(
206
+ 'wc_stripe_sepa_elements_options',
207
+ [
208
+ 'supportedCountries' => [ 'SEPA' ],
209
+ 'placeholderCountry' => WC()->countries->get_base_country(),
210
+ 'style' => [ 'base' => [ 'fontSize' => '15px' ] ],
211
+ ]
212
+ );
213
+
214
+ $stripe_params['isCheckout'] = is_checkout() && empty( $_GET['pay_for_order'] ); // wpcs: csrf ok.
215
+ $stripe_params['isOrderPay'] = is_wc_endpoint_url( 'order-pay' );
216
+ $stripe_params['return_url'] = $this->get_stripe_return_url();
217
+ $stripe_params['ajax_url'] = WC_AJAX::get_endpoint( '%%endpoint%%' );
218
+ $stripe_params['createPaymentIntentNonce'] = wp_create_nonce( '_wc_stripe_nonce' );
219
+ $stripe_params['upeAppeareance'] = get_transient( self::UPE_APPEARANCE_TRANSIENT );
220
+ $stripe_params['saveUPEAppearanceNonce'] = wp_create_nonce( '_wc_stripe_save_upe_appearance_nonce' );
221
+ $stripe_params['paymentMethodsConfig'] = $this->get_enabled_payment_method_config();
222
+ $stripe_params['accountDescriptor'] = 'accountDescriptor'; // TODO: this should be added to the Stripe settings page or remove it from here.
223
+ $stripe_params['sepaElementsOptions'] = $sepa_elements_options;
224
+
225
+ return $stripe_params;
226
+ }
227
+
228
+ /**
229
+ * Gets payment method settings to pass to client scripts
230
+ *
231
+ * @return array
232
+ */
233
+ private function get_enabled_payment_method_config() {
234
+ $settings = [];
235
+ $enabled_payment_methods = array_filter( $this->get_upe_enabled_payment_method_ids(), [ $this, 'is_enabled_at_checkout' ] );
236
+
237
+ foreach ( $enabled_payment_methods as $payment_method ) {
238
+ $settings[ $payment_method ] = [
239
+ 'isReusable' => $this->payment_methods[ $payment_method ]->is_reusable(),
240
+ ];
241
+ }
242
+
243
+ return $settings;
244
+ }
245
+
246
+ /**
247
+ * Returns the list of enabled payment method types for UPE.
248
+ *
249
+ * @return string[]
250
+ */
251
+ public function get_upe_enabled_payment_method_ids() {
252
+ return $this->get_option(
253
+ 'upe_checkout_experience_accepted_payments',
254
+ [
255
+ 'card',
256
+ ]
257
+ );
258
+ }
259
+
260
+ /**
261
+ * Returns the list of available payment method types for UPE.
262
+ * See https://stripe.com/docs/stripe-js/payment-element#web-create-payment-intent for a complete list.
263
+ *
264
+ * @return string[]
265
+ */
266
+ public function get_upe_available_payment_methods() {
267
+ $available_payment_methods = [];
268
+
269
+ foreach ( self::UPE_AVAILABLE_METHODS as $payment_method_class ) {
270
+ $available_payment_methods[] = $payment_method_class::STRIPE_ID;
271
+ }
272
+
273
+ return $available_payment_methods;
274
+ }
275
+
276
+ /**
277
+ * Renders the UPE input fields needed to get the user's payment information on the checkout page
278
+ */
279
+ public function payment_fields() {
280
+ try {
281
+ $display_tokenization = $this->supports( 'tokenization' ) && is_checkout();
282
+
283
+ // Output the form HTML.
284
+ ?>
285
+ <?php if ( ! empty( $this->get_description() ) ) : ?>
286
+ <p><?php echo wp_kses_post( $this->get_description() ); ?></p>
287
+ <?php endif; ?>
288
+
289
+ <?php if ( $this->testmode ) : ?>
290
+ <p class="testmode-info">
291
+ <?php
292
+ echo sprintf(
293
+ /* translators: link to Stripe testing page */
294
+ __( '<strong>Test mode:</strong> use the test VISA card 4242424242424242 with any expiry date and CVC. Other payment methods may redirect to a Stripe test page to authorize payment. More test card numbers are listed <a href="%s" target="_blank">here</a>.', 'woocommerce-gateway-stripe' ),
295
+ 'https://stripe.com/docs/testing'
296
+ );
297
+ ?>
298
+ </p>
299
+ <?php endif; ?>
300
+
301
+ <?php
302
+ if ( $display_tokenization ) {
303
+ $this->tokenization_script();
304
+ $this->saved_payment_methods();
305
+ }
306
+ ?>
307
+
308
+ <fieldset id="wc-stripe-upe-form" class="wc-upe-form wc-payment-form">
309
+ <div id="wc-stripe-upe-element"></div>
310
+ <div id="wc-stripe-upe-errors" role="alert"></div>
311
+ <input id="wc-stripe-payment-method-upe" type="hidden" name="wc-stripe-payment-method-upe" />
312
+ <input id="wc_stripe_selected_upe_payment_type" type="hidden" name="wc_stripe_selected_upe_payment_type" />
313
+
314
+ <?php
315
+ $methods_enabled_for_saved_payments = array_filter( $this->get_upe_enabled_payment_method_ids(), [ $this, 'is_enabled_for_saved_payments' ] );
316
+ if ( $this->is_saved_cards_enabled() && ! empty( $methods_enabled_for_saved_payments ) ) {
317
+ if ( is_user_logged_in() ) {
318
+ $this->save_payment_method_checkbox();
319
+ }
320
+ }
321
+ ?>
322
+
323
+ </fieldset>
324
+ <?php
325
+ } catch ( Exception $e ) {
326
+ // Output the error message.
327
+ WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() );
328
+ ?>
329
+ <div>
330
+ <?php
331
+ echo esc_html__( 'An error was encountered when preparing the payment form. Please try again later.', 'woocommerce-gateway-stripe' );
332
+ ?>
333
+ </div>
334
+ <?php
335
+ }
336
+ }
337
+
338
+
339
+ /**
340
+ * Process the payment for a given order.
341
+ *
342
+ * @param int $order_id Order ID to process the payment for.
343
+ *
344
+ * @return array|null An array with result of payment and redirect URL, or nothing.
345
+ */
346
+ public function process_payment( $order_id ) {
347
+ $payment_intent_id = isset( $_POST['wc_payment_intent_id'] ) ? wc_clean( wp_unslash( $_POST['wc_payment_intent_id'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Missing
348
+ $order = wc_get_order( $order_id );
349
+ $amount = $order->get_total();
350
+ $currency = $order->get_currency();
351
+ $converted_amount = WC_Stripe_Helper::get_stripe_amount( $amount, $currency );
352
+ $payment_needed = 0 < $converted_amount;
353
+ $save_payment_method = ! empty( $_POST[ 'wc-' . static::ID . '-new-payment-method' ] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
354
+ $selected_upe_payment_type = ! empty( $_POST['wc_stripe_selected_upe_payment_type'] ) ? wc_clean( wp_unslash( $_POST['wc_stripe_selected_upe_payment_type'] ) ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Missing
355
+
356
+ if ( $payment_intent_id ) {
357
+ if ( $payment_needed ) {
358
+ $request = [
359
+ 'amount' => $converted_amount,
360
+ 'currency' => $currency,
361
+ /* translators: 1) blog name 2) order number */
362
+ 'description' => sprintf( __( '%1$s - Order %2$s', 'woocommerce-gateway-stripe' ), wp_specialchars_decode( get_bloginfo( 'name' ), ENT_QUOTES ), $order->get_order_number() ),
363
+ ];
364
+
365
+ // Get user/customer for order.
366
+ $customer_id = $this->get_stripe_customer_id( $order );
367
+ if ( ! empty( $customer_id ) ) {
368
+ $request['customer'] = $customer_id;
369
+ }
370
+
371
+ if ( '' !== $selected_upe_payment_type ) {
372
+ // Only update the payment_method_types if we have a reference to the payment type the customer selected.
373
+ $request['payment_method_types'] = [ $selected_upe_payment_type ];
374
+ }
375
+
376
+ if ( $save_payment_method ) {
377
+ $request['setup_future_usage'] = 'off_session';
378
+ }
379
+
380
+ $request['metadata'] = $this->get_metadata_from_order( $order );
381
+
382
+ WC_Stripe_API::request_with_level3_data(
383
+ $request,
384
+ "payment_intents/$payment_intent_id",
385
+ $this->get_level3_data_from_order( $order ),
386
+ $order
387
+ );
388
+ }
389
+ }
390
+
391
+ return [
392
+ 'result' => 'success',
393
+ 'payment_needed' => $payment_needed,
394
+ 'redirect_url' => wp_sanitize_redirect(
395
+ esc_url_raw(
396
+ add_query_arg(
397
+ [
398
+ 'order_id' => $order_id,
399
+ 'wc_payment_method' => self::ID,
400
+ '_wpnonce' => wp_create_nonce( 'wcpay_process_redirect_order_nonce' ),
401
+ 'save_payment_method' => $save_payment_method ? 'yes' : 'no',
402
+ ],
403
+ $this->get_return_url( $order )
404
+ )
405
+ )
406
+ ),
407
+ ];
408
+ }
409
+
410
+ /**
411
+ * Processes UPE redirect payments.
412
+ *
413
+ * @param int $order_id The order ID being processed.
414
+ * @param string $intent_id The Stripe setup/payment intent ID for the order payment.
415
+ * @param bool $save_payment_method Boolean representing whether payment method for order should be saved.
416
+ *
417
+ * @since 5.5.0
418
+ * @version 5.5.0
419
+ */
420
+ public function process_upe_redirect_payment( $order_id, $intent_id, $save_payment_method ) {
421
+ $order = wc_get_order( $order_id );
422
+
423
+ if ( ! is_object( $order ) ) {
424
+ return;
425
+ }
426
+
427
+ if ( $order->has_status( [ 'processing', 'completed', 'on-hold' ] ) ) {
428
+ return;
429
+ }
430
+
431
+ WC_Stripe_Logger::log( "Begin processing UPE redirect payment for order $order_id for the amount of {$order->get_total()}" );
432
+
433
+ try {
434
+ // Get user/customer for order.
435
+ $customer_id = $this->get_stripe_customer_id( $order );
436
+
437
+ $payment_needed = 0 < $order->get_total();
438
+
439
+ // Get payment intent to confirm status.
440
+ if ( $payment_needed ) {
441
+ $intent = WC_Stripe_API::retrieve( 'payment_intents/' . $intent_id . '?expand[]=payment_method' );
442
+ } else {
443
+ $intent = WC_Stripe_API::retrieve( 'setup_intents/' . $intent_id );
444
+ }
445
+ $error = $intent->last_payment_error;
446
+
447
+ if ( ! empty( $error ) ) {
448
+ WC_Stripe_Logger::log( 'Error when processing payment: ' . $error->message );
449
+ throw new WC_Stripe_Exception( __( "We're not able to process this payment. Please try again later.", 'woocommerce-gateway-stripe' ) );
450
+ }
451
+
452
+ list( $payment_method_type, $payment_method_details ) = $this->get_payment_method_data_from_intent( $intent );
453
+
454
+ if ( ! isset( $this->payment_methods[ $payment_method_type ] ) ) {
455
+ return;
456
+ }
457
+ $payment_method = $this->payment_methods[ $payment_method_type ];
458
+
459
+ // TODO: save the payment method
460
+ // if ( $save_payment_method && $payment_method->is_reusable() ) {
461
+ // See: https://github.com/Automattic/woocommerce-payments/blob/b69532e92a381cf054f515896c56cc365e3904d4/includes/payment-methods/class-upe-payment-gateway.php#L493
462
+ // }
463
+
464
+ $intent->captured = 'yes'; // TODO: this is to re-use the parent logic, maybe re-implement it to not use charges?, see: https://github.com/Automattic/woocommerce-payments/blob/b69532e92a381cf054f515896c56cc365e3904d4/includes/class-wc-payment-gateway-wcpay.php#L1125
465
+ $this->process_response( $intent, $order );
466
+
467
+ $this->set_payment_method_title_for_order( $order, $payment_method_type, $payment_method_details );
468
+
469
+ } catch ( Exception $e ) {
470
+ WC_Stripe_Logger::log( 'Error: ' . $e->getMessage() );
471
+
472
+ /* translators: localized exception message */
473
+ $order->update_status( 'failed', sprintf( __( 'UPE payment failed: %s', 'woocommerce-gateway-stripe' ), $e->getMessage() ) );
474
+
475
+ wc_add_notice( $e->getMessage(), 'error' );
476
+ wp_safe_redirect( wc_get_checkout_url() );
477
+ exit;
478
+ }
479
+ }
480
+
481
+ /**
482
+ * Function to be used with array_filter
483
+ * to filter UPE payment methods supported with current checkout
484
+ *
485
+ * @param string $payment_method_id Stripe payment method.
486
+ *
487
+ * @return bool
488
+ */
489
+ private function is_enabled_at_checkout( $payment_method_id ) {
490
+ if ( ! isset( $this->payment_methods[ $payment_method_id ] ) ) {
491
+ return false;
492
+ }
493
+ return $this->payment_methods[ $payment_method_id ]->is_enabled_at_checkout();
494
+ }
495
+
496
+ /**
497
+ * Function to be used with array_filter
498
+ * to filter UPE payment methods that support saved payments
499
+ *
500
+ * @param string $payment_method_id Stripe payment method.
501
+ *
502
+ * @return bool
503
+ */
504
+ private function is_enabled_for_saved_payments( $payment_method_id ) {
505
+ if ( ! isset( $this->payment_methods[ $payment_method_id ] ) ) {
506
+ return false;
507
+ }
508
+ return $this->payment_methods[ $payment_method_id ]->is_reusable();
509
+ }
510
+
511
+ // TODO: Actually validate.
512
+ public function validate_upe_checkout_experience_accepted_payments_field( $key, $value ) {
513
+ return $value;
514
+ }
515
+
516
+ /**
517
+ * Checks if the setting to allow the user to save cards is enabled.
518
+ *
519
+ * @return bool Whether the setting to allow saved cards is enabled or not.
520
+ */
521
+ public function is_saved_cards_enabled() {
522
+ return 'yes' === $this->get_option( 'saved_cards' );
523
+ }
524
+
525
+ /**
526
+ * Set formatted readable payment method title for order,
527
+ * using payment method details from accompanying charge.
528
+ *
529
+ * @param WC_Order $order WC Order being processed.
530
+ * @param string $payment_method_type Stripe payment method key.
531
+ * @param array|bool $payment_method_details Array of payment method details from charge or false.
532
+ *
533
+ * @since 5.5.0
534
+ * @version 5.5.0
535
+ */
536
+ public function set_payment_method_title_for_order( $order, $payment_method_type, $payment_method_details ) {
537
+ if ( ! isset( $this->payment_methods[ $payment_method_type ] ) ) {
538
+ return;
539
+ }
540
+
541
+ $payment_method_title = $this->payment_methods[ $payment_method_type ]->get_title( $payment_method_details );
542
+
543
+ $order->set_payment_method_title( $payment_method_title );
544
+ $order->save();
545
+ }
546
+
547
+ /**
548
+ * This is overloading the upe checkout experience type on the settings page.
549
+ *
550
+ * @param string $key Field key.
551
+ * @param array $data Field data.
552
+ * @return string
553
+ */
554
+ public function generate_upe_checkout_experience_accepted_payments_html( $key, $data ) {
555
+ $data['description'] = '<div id="wc_stripe_upe_method_selection"><p><strong>Payments accepted on checkout</strong></p></div>
556
+ <table class="wc_gateways widefat form-table" cellspacing="0" aria-describedby="wc_stripe_upe_method_selection">
557
+ <thead>
558
+ <tr>
559
+ <th class="name">Method</th>
560
+ <th class="status">Enabled</th>
561
+ <th class="description">Description</th>
562
+ </tr>
563
+ </thead>
564
+ <tbody>';
565
+
566
+ foreach ( $this->payment_methods as $method_id => $method ) {
567
+ $method_enabled = in_array( $method_id, $this->get_upe_enabled_payment_method_ids(), true ) ? 'enabled' : 'disabled';
568
+ $data['description'] .= '<tr data-upe_method_id="' . $method_id . '">
569
+ <td class="name" width=""><a href="#" class="wc-payment-gateway-method-title">' . $method_id . '</a><span class="wc-payment-gateway-method-name">&nbsp;–&nbsp;Subtext goes here.</span></td>
570
+ <td class="status" width="1%"><a class="wc-payment-upe-method-toggle-' . $method_enabled . '" href="#"><span class="woocommerce-input-toggle woocommerce-input-toggle--' . $method_enabled . '" aria-label="The &quot;' . $method_id . '&quot; payment method is currently ' . $method_enabled . '">' . ( 'enabled' === $method_enabled ? 'Yes' : 'No' ) . '</span></a></td>
571
+ <td class="description" width="">Long description text goes here.</td>
572
+ </tr>';
573
+ }
574
+
575
+ $data['description'] .= '</tbody>
576
+ </table>
577
+ <span id="wc_stripe_upe_change_notice" class="hidden">' . __( 'You must save your changes.', 'woocommerce-gateway-stripe' ) . '</span>';
578
+
579
+ return $this->generate_title_html( $key, $data );
580
+ }
581
+
582
+ /**
583
+ * This is overloading the title type so the oauth url is only fetched if we are on the settings page.
584
+ *
585
+ * TODO: This is duplicate code from WC_Gateway_Stripe.
586
+ *
587
+ * @param string $key Field key.
588
+ * @param array $data Field data.
589
+ * @return string
590
+ */
591
+ public function generate_stripe_account_keys_html( $key, $data ) {
592
+ if ( woocommerce_gateway_stripe()->connect->is_connected() ) {
593
+ $reset_link = add_query_arg(
594
+ [
595
+ '_wpnonce' => wp_create_nonce( 'reset_stripe_api_credentials' ),
596
+ 'reset_stripe_api_credentials' => true,
597
+ ],
598
+ admin_url( 'admin.php?page=wc-settings&tab=checkout&section=stripe' )
599
+ );
600
+
601
+ $api_credentials_text = sprintf(
602
+ /* translators: %1, %2, %3, and %4 are all HTML markup tags */
603
+ __( '%1$sClear all Stripe account keys.%2$s %3$sThis will disable any connection to Stripe.%4$s', 'woocommerce-gateway-stripe' ),
604
+ '<a id="wc_stripe_connect_button" href="' . $reset_link . '" class="button button-secondary">',
605
+ '</a>',
606
+ '<span style="color:red;">',
607
+ '</span>'
608
+ );
609
+ } else {
610
+ $oauth_url = woocommerce_gateway_stripe()->connect->get_oauth_url();
611
+
612
+ if ( ! is_wp_error( $oauth_url ) ) {
613
+ $api_credentials_text = sprintf(
614
+ /* translators: %1, %2 and %3 are all HTML markup tags */
615
+ __( '%1$sSetup or link an existing Stripe account.%2$s By clicking this button you agree to the %3$sTerms of Service%2$s. Or, manually enter Stripe account keys below.', 'woocommerce-gateway-stripe' ),
616
+ '<a id="wc_stripe_connect_button" href="' . $oauth_url . '" class="button button-primary">',
617
+ '</a>',
618
+ '<a href="https://wordpress.com/tos">'
619
+ );
620
+ } else {
621
+ $api_credentials_text = __( 'Manually enter Stripe keys below.', 'woocommerce-gateway-stripe' );
622
+ }
623
+ }
624
+ $data['description'] = $api_credentials_text;
625
+ return $this->generate_title_html( $key, $data );
626
+ }
627
+
628
+ /**
629
+ * Extacts the Stripe intent's payment_method_type and payment_method_details values.
630
+ *
631
+ * @param $intent Stripe's intent response.
632
+ * @return string[] List with 2 values: payment_method_type and payment_method_details.
633
+ */
634
+ private function get_payment_method_data_from_intent( $intent ) {
635
+ $payment_method_type = '';
636
+ $payment_method_details = false;
637
+
638
+ if ( 'payment_intent' === $intent->object ) {
639
+ if ( ! empty( $intent->charges ) && 0 < $intent->charges->total_count ) {
640
+ $charge = end( $intent->charges->data );
641
+ $payment_method_details = (array) $charge->payment_method_details;
642
+ $payment_method_type = ! empty( $payment_method_details ) ? $payment_method_details['type'] : '';
643
+ }
644
+ } elseif ( 'setup_intent' === $intent->object ) {
645
+ $payment_method_options = array_keys( $intent->payment_method_options );
646
+ $payment_method_type = ! empty( $payment_method_options ) ? $payment_method_options[0] : '';
647
+ // Setup intents don't have details, keep the false value.
648
+ }
649
+
650
+ return [ $payment_method_type, $payment_method_details ];
651
+ }
652
+
653
+ /**
654
+ * Prepares Stripe metadata for a given order.
655
+ *
656
+ * @param WC_Order $order Order being processed.
657
+ *
658
+ * @return array Array of keyed metadata values.
659
+ */
660
+ private function get_metadata_from_order( $order ) {
661
+
662
+ // TODO: change this after adding the subscriptions trait: $this->is_payment_recurring( $order->get_id() ) ? Payment_Type::RECURRING() : Payment_Type::SINGLE();
663
+ $payment_type = 'single';
664
+ $name = sanitize_text_field( $order->get_billing_first_name() ) . ' ' . sanitize_text_field( $order->get_billing_last_name() );
665
+ $email = sanitize_email( $order->get_billing_email() );
666
+
667
+ return [
668
+ 'customer_name' => $name,
669
+ 'customer_email' => $email,
670
+ 'site_url' => esc_url( get_site_url() ),
671
+ 'order_id' => $order->get_id(),
672
+ 'order_key' => $order->get_order_key(),
673
+ 'payment_type' => $payment_type,
674
+ ];
675
+ }
676
+ }
includes/payment-methods/class-wc-stripe-upe-payment-method-bancontact.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ /**
7
+ * Bancontact Payment Method class extending UPE base class
8
+ */
9
+ class WC_Stripe_UPE_Payment_Method_Bancontact extends WC_Stripe_UPE_Payment_Method {
10
+
11
+ const STRIPE_ID = 'bancontact';
12
+
13
+ const LPM_GATEWAY_CLASS = WC_Gateway_Stripe_Bancontact::class;
14
+
15
+ /**
16
+ * Constructor for card payment method
17
+ *
18
+ * @param WC_Payments_Token_Service $token_service Token class instance.
19
+ */
20
+ public function __construct( $token_service ) {
21
+ parent::__construct( $token_service );
22
+ $this->stripe_id = self::STRIPE_ID;
23
+ $this->title = 'Pay with Bancontact';
24
+ $this->is_reusable = true; // TODO: is it?
25
+ $this->supported_currencies = [ 'EUR' ];
26
+ }
27
+ }
includes/payment-methods/class-wc-stripe-upe-payment-method-cc.php ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ /**
7
+ * Class WC_Stripe_UPE_Payment_Method_CC
8
+ */
9
+
10
+ /**
11
+ * Credit card Payment Method class extending UPE base class
12
+ */
13
+ class WC_Stripe_UPE_Payment_Method_CC extends WC_Stripe_UPE_Payment_Method {
14
+
15
+ const STRIPE_ID = 'card';
16
+
17
+ const LPM_GATEWAY_CLASS = WC_Gateway_Stripe::class;
18
+
19
+ /**
20
+ * Constructor for card payment method
21
+ *
22
+ * @param WC_Stripe_Payment_Tokens $token_service Token class instance.
23
+ */
24
+ public function __construct( $token_service ) {
25
+ parent::__construct( $token_service );
26
+ $this->stripe_id = self::STRIPE_ID;
27
+ $this->title = 'Credit card / debit card';
28
+ $this->is_reusable = true;
29
+ }
30
+
31
+ /**
32
+ * Returns payment method title
33
+ *
34
+ * @param array|bool $payment_details Optional payment details from charge object.
35
+ *
36
+ * @return string
37
+ */
38
+ public function get_title( $payment_details = false ) {
39
+ if ( ! $payment_details ) {
40
+ return $this->title;
41
+ }
42
+
43
+ $details = $payment_details[ $this->stripe_id ];
44
+ $funding_types = [
45
+ 'credit' => __( 'credit', 'woocommerce-gateway-stripe' ),
46
+ 'debit' => __( 'debit', 'woocommerce-gateway-stripe' ),
47
+ 'prepaid' => __( 'prepaid', 'woocommerce-gateway-stripe' ),
48
+ 'unknown' => __( 'unknown', 'woocommerce-gateway-stripe' ),
49
+ ];
50
+
51
+ return sprintf(
52
+ // Translators: %1$s card brand, %2$s card funding (prepaid, credit, etc.).
53
+ __( '%1$s %2$s card', 'woocommerce-gateway-stripe' ),
54
+ ucfirst( $details->network ),
55
+ $funding_types[ $details->funding ]
56
+ );
57
+ }
58
+
59
+ }
includes/payment-methods/class-wc-stripe-upe-payment-method-eps.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ /**
7
+ * EPS Payment Method class extending UPE base class
8
+ */
9
+ class WC_Stripe_UPE_Payment_Method_Eps extends WC_Stripe_UPE_Payment_Method {
10
+
11
+ const STRIPE_ID = 'eps';
12
+
13
+ const LPM_GATEWAY_CLASS = WC_Gateway_Stripe_Eps::class;
14
+
15
+ /**
16
+ * Constructor for card payment method
17
+ *
18
+ * @param WC_Payments_Token_Service $token_service Token class instance.
19
+ */
20
+ public function __construct( $token_service ) {
21
+ parent::__construct( $token_service );
22
+ $this->stripe_id = self::STRIPE_ID;
23
+ $this->title = 'Pay with EPS';
24
+ $this->is_reusable = false;
25
+ $this->supported_currencies = [ 'EUR' ];
26
+ }
27
+ }
includes/payment-methods/class-wc-stripe-upe-payment-method-giropay.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ /**
7
+ * Giropay Payment Method class extending UPE base class
8
+ */
9
+ class WC_Stripe_UPE_Payment_Method_Giropay extends WC_Stripe_UPE_Payment_Method {
10
+
11
+ const STRIPE_ID = 'giropay';
12
+
13
+ const LPM_GATEWAY_CLASS = WC_Gateway_Stripe_Giropay::class;
14
+
15
+ /**
16
+ * Constructor for card payment method
17
+ *
18
+ * @param WC_Payments_Token_Service $token_service Token class instance.
19
+ */
20
+ public function __construct( $token_service ) {
21
+ parent::__construct( $token_service );
22
+ $this->stripe_id = self::STRIPE_ID;
23
+ $this->title = 'Pay with Giropay';
24
+ $this->is_reusable = false;
25
+ $this->supported_currencies = [ 'EUR' ];
26
+ }
27
+ }
includes/payment-methods/class-wc-stripe-upe-payment-method-ideal.php ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ /**
7
+ * Ideal Payment Method class extending UPE base class
8
+ */
9
+ class WC_Stripe_UPE_Payment_Method_Ideal extends WC_Stripe_UPE_Payment_Method {
10
+
11
+ const STRIPE_ID = 'ideal';
12
+
13
+ const LPM_GATEWAY_CLASS = WC_Gateway_Stripe_Ideal::class;
14
+
15
+ /**
16
+ * Constructor for card payment method
17
+ *
18
+ * @param WC_Payments_Token_Service $token_service Token class instance.
19
+ */
20
+ public function __construct( $token_service ) {
21
+ parent::__construct( $token_service );
22
+ $this->stripe_id = self::STRIPE_ID;
23
+ $this->title = 'Pay with Ideal';
24
+ $this->is_reusable = true; // TODO: is it?
25
+ $this->supported_currencies = [ 'EUR' ];
26
+ }
27
+ }
includes/payment-methods/class-wc-stripe-upe-payment-method.php ADDED
@@ -0,0 +1,166 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ if ( ! defined( 'ABSPATH' ) ) {
3
+ exit;
4
+ }
5
+
6
+ /**
7
+ * Abstract UPE Payment Method class
8
+ *
9
+ * Handles general functionality for UPE payment methods
10
+ */
11
+
12
+
13
+ /**
14
+ * Extendable abstract class for payment methods.
15
+ */
16
+ abstract class WC_Stripe_UPE_Payment_Method {
17
+
18
+ /**
19
+ * Stripe key name
20
+ *
21
+ * @var string
22
+ */
23
+ protected $stripe_id;
24
+
25
+ /**
26
+ * Display title
27
+ *
28
+ * @var string
29
+ */
30
+ protected $title;
31
+
32
+ /**
33
+ * Can payment method be saved or reused?
34
+ *
35
+ * @var bool
36
+ */
37
+ protected $is_reusable;
38
+
39
+ /**
40
+ * Instance of WC Payments Token Service to save payment method
41
+ *
42
+ * @var WC_Payments_Token_Service
43
+ */
44
+ protected $token_service;
45
+
46
+ /**
47
+ * Array of currencies supported by this UPE method
48
+ *
49
+ * @var array
50
+ */
51
+ protected $supported_currencies;
52
+
53
+ /**
54
+ * Wether this UPE method is enabled
55
+ *
56
+ * @var bool
57
+ */
58
+ protected $enabled;
59
+
60
+ /**
61
+ * Create instance of payment method
62
+ *
63
+ * @param WC_Payments_Token_Service $token_service Instance of WC_Payments_Token_Service.
64
+ */
65
+ public function __construct( $token_service ) {
66
+ $main_settings = get_option( 'woocommerce_stripe_settings' );
67
+
68
+ if ( isset( $main_settings['upe_checkout_experience_accepted_payments'] ) ) {
69
+ $enabled_upe_methods = $main_settings['upe_checkout_experience_accepted_payments'];
70
+ } else {
71
+ $enabled_upe_methods = [ WC_Stripe_UPE_Payment_Method_CC::STRIPE_ID ];
72
+ }
73
+
74
+ $this->enabled = in_array( static::STRIPE_ID, $enabled_upe_methods, true );
75
+ // $this->token_service = $token_service;
76
+ }
77
+
78
+ /**
79
+ * Returns payment method ID
80
+ *
81
+ * @return string
82
+ */
83
+ public function get_id() {
84
+ return $this->stripe_id;
85
+ }
86
+
87
+ /**
88
+ * Returns true if the UPE method is enabled.
89
+ *
90
+ * @return bool
91
+ */
92
+ public function is_enabled() {
93
+ return $this->enabled;
94
+ }
95
+
96
+ /**
97
+ * Returns payment method title
98
+ *
99
+ * @param array|bool $payment_details Optional payment details from charge object.
100
+ *
101
+ * @return string
102
+ */
103
+ public function get_title( $payment_details = false ) {
104
+ return $this->title;
105
+ }
106
+
107
+ /**
108
+ * Returns boolean dependent on whether payment method
109
+ * can be used at checkout
110
+ *
111
+ * @return bool
112
+ */
113
+ public function is_enabled_at_checkout() {
114
+ if ( $this->is_subscription_item_in_cart() ) {
115
+ return $this->is_reusable();
116
+ }
117
+ return true;
118
+ }
119
+
120
+ /**
121
+ * Returns boolean dependent on whether payment method
122
+ * will support saved payments/subscription payments
123
+ *
124
+ * @return bool
125
+ */
126
+ public function is_reusable() {
127
+ return $this->is_reusable;
128
+ }
129
+
130
+ /**
131
+ * Add payment method to user and return WC payment token
132
+ *
133
+ * @param WP_User $user User to get payment token from.
134
+ * @param string $payment_method_id Stripe payment method ID string.
135
+ *
136
+ * @return WC_Payment_Token_CC|WC_Payment_Token_WCPay_SEPA WC object for payment token.
137
+ */
138
+ public function get_payment_token_for_user( $user, $payment_method_id ) {
139
+ // return $this->token_service->add_payment_method_to_user( $payment_method_id, $user );
140
+ }
141
+
142
+ /**
143
+ * Returns boolean on whether current WC_Cart or WC_Subscriptions_Cart
144
+ * contains a subscription or subscription renewal item
145
+ *
146
+ * @return bool
147
+ */
148
+ public function is_subscription_item_in_cart() {
149
+ if ( class_exists( 'WC_Subscriptions' ) && version_compare( WC_Subscriptions::$version, '2.2.0', '>=' ) ) {
150
+ return WC_Subscriptions_Cart::cart_contains_subscription() || 0 < count( wcs_get_order_type_cart_items( 'renewal' ) );
151
+ }
152
+ return false;
153
+ }
154
+
155
+ /**
156
+ * Returns the currencies this UPE method supports.
157
+ *
158
+ * @return array|null
159
+ */
160
+ public function get_supported_currencies() {
161
+ return apply_filters(
162
+ 'wc_stripe_' . static::STRIPE_ID . '_upe_supported_currencies',
163
+ $this->supported_currencies
164
+ );
165
+ }
166
+ }
languages/woocommerce-gateway-stripe.pot CHANGED
@@ -1,1934 +1,51 @@
1
- # Copyright (C) 2021 WooCommerce
2
- # This file is distributed under the same license as the WooCommerce Stripe Gateway package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: WooCommerce Stripe Gateway 5.4.1\n"
6
- "Report-Msgid-Bugs-To: "
7
- "https://wordpress.org/support/plugin/woocommerce-gateway-stripe\n"
8
- "POT-Creation-Date: 2021-09-01 22:21:55+00:00\n"
9
- "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=utf-8\n"
11
- "Content-Transfer-Encoding: 8bit\n"
12
- "PO-Revision-Date: 2021-MO-DA HO:MI+ZONE\n"
13
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14
- "Language-Team: LANGUAGE <LL@li.org>\n"
15
- "X-Generator: node-wp-i18n 1.2.5\n"
16
 
17
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:25
18
- #. translators: 1) webhook url
19
- msgid ""
20
- "You must add the following webhook endpoint <strong "
21
- "style=\"background-color:#ddd;\">&nbsp;%s&nbsp;</strong> to your <a "
22
- "href=\"https://dashboard.stripe.com/account/webhooks\" "
23
- "target=\"_blank\">Stripe account settings</a> (if there isn't one already "
24
- "enabled). This will enable you to receive notifications on the charge "
25
- "statuses."
26
- msgstr ""
27
-
28
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:44
29
- msgid "Save payment information to my account for future purchases."
30
- msgstr ""
31
-
32
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:257
33
- #: includes/compat/class-wc-stripe-sepa-subs-compat.php:230
34
- #: includes/compat/class-wc-stripe-subs-compat.php:243
35
- #. translators: 1) amount (including currency symbol)
36
- #. translators: minimum amount
37
- msgid "Sorry, the minimum allowed order total is %1$s to use this payment method."
38
- msgstr ""
39
-
40
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:348
41
- #. translators: 1) blog name 2) order number
42
- msgid "%1$s - Order %2$s"
43
- msgstr ""
44
-
45
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:389
46
- msgid "customer_name"
47
- msgstr ""
48
-
49
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:390
50
- msgid "customer_email"
51
- msgstr ""
52
-
53
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:453
54
- #. translators: transaction id
55
- msgid "Stripe charge awaiting payment: %s."
56
- msgstr ""
57
-
58
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:460
59
- #: includes/class-wc-stripe-order-handler.php:296
60
- #: includes/class-wc-stripe-webhook-handler.php:414
61
- #: includes/class-wc-stripe-webhook-handler.php:464
62
- #. translators: transaction id
63
- msgid "Stripe charge complete (Charge ID: %s)"
64
- msgstr ""
65
-
66
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:465
67
- #: includes/class-wc-gateway-stripe.php:515
68
- #: includes/compat/class-wc-stripe-sepa-subs-compat.php:187
69
- msgid "Payment processing failed. Please retry."
70
- msgstr ""
71
-
72
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:477
73
- #. translators: transaction id
74
- msgid ""
75
- "Stripe charge authorized (Charge ID: %s). Process order to take payment, or "
76
- "cancel to remove the pre-authorization. Attempting to refund the order in "
77
- "part or in full will release the authorization and cancel the payment."
78
- msgstr ""
79
-
80
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:658
81
- msgid "Invalid payment method. Please input a new card number."
82
- msgstr ""
83
-
84
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:923
85
- #. translators: %1$s is a stripe error message
86
- msgid "There was a problem initiating a refund: %1$s"
87
- msgstr ""
88
-
89
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:937
90
- #. translators: amount (including currency symbol)
91
- msgid "Pre-Authorization for %s voided."
92
- msgstr ""
93
-
94
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:942
95
- msgid ""
96
- "The authorization was voided and the order cancelled. Click okay to "
97
- "continue, then refresh the page."
98
- msgstr ""
99
-
100
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:956
101
- #. translators: 1) amount (including currency symbol) 2) transaction id 3)
102
- #. refund message
103
- msgid "Refunded %1$s - Refund ID: %2$s - Reason: %3$s"
104
- msgstr ""
105
-
106
- #: includes/abstracts/abstract-wc-stripe-payment-gateway.php:974
107
- msgid "There was a problem adding the payment method."
108
- msgstr ""
109
-
110
- #: includes/admin/class-wc-stripe-admin-notices.php:134
111
- #. translators: 1) A URL that explains Stripe Radar.
112
- msgid ""
113
- "WooCommerce Stripe - We see that you had the \"Require 3D secure when "
114
- "applicable\" setting turned on. This setting is not available here anymore, "
115
- "because it is now replaced by Stripe Radar. You can learn more about it <a "
116
- "href=\"%s\" target=\"_blank\">here</a>."
117
- msgstr ""
118
-
119
- #: includes/admin/class-wc-stripe-admin-notices.php:141
120
- #. translators: 1) int version 2) int version
121
- msgid ""
122
- "WooCommerce Stripe - We recently made changes to Stripe that may impact the "
123
- "appearance of your checkout. If your checkout has changed unexpectedly, "
124
- "please follow these <a "
125
- "href=\"https://docs.woocommerce.com/document/stripe/#styling\" "
126
- "target=\"_blank\">instructions</a> to fix."
127
- msgstr ""
128
-
129
- #: includes/admin/class-wc-stripe-admin-notices.php:151
130
- #. translators: 1) int version 2) int version
131
- msgid ""
132
- "WooCommerce Stripe - The minimum PHP version required for this plugin is "
133
- "%1$s. You are running %2$s."
134
- msgstr ""
135
-
136
- #: includes/admin/class-wc-stripe-admin-notices.php:162
137
- #. translators: 1) int version 2) int version
138
- msgid ""
139
- "WooCommerce Stripe - This is the last version of the plugin compatible with "
140
- "WooCommerce %1$s. All furture versions of the plugin will require "
141
- "WooCommerce %2$s or greater."
142
- msgstr ""
143
-
144
- #: includes/admin/class-wc-stripe-admin-notices.php:169
145
- msgid "WooCommerce Stripe - cURL is not installed."
146
- msgstr ""
147
-
148
- #: includes/admin/class-wc-stripe-admin-notices.php:179
149
- #. translators: 1) link
150
- msgid ""
151
- "Stripe is almost ready. To get started, <a href=\"%s\">set your Stripe "
152
- "account keys</a>."
153
- msgstr ""
154
-
155
- #: includes/admin/class-wc-stripe-admin-notices.php:189
156
- #. translators: 1) link
157
- msgid ""
158
- "Stripe is in test mode however your test keys may not be valid. Test keys "
159
- "start with pk_test and sk_test or rk_test. Please go to your settings and, "
160
- "<a href=\"%s\">set your Stripe account keys</a>."
161
- msgstr ""
162
-
163
- #: includes/admin/class-wc-stripe-admin-notices.php:197
164
- #. translators: 1) link
165
- msgid ""
166
- "Stripe is in live mode however your live keys may not be valid. Live keys "
167
- "start with pk_live and sk_live or rk_live. Please go to your settings and, "
168
- "<a href=\"%s\">set your Stripe account keys</a>."
169
- msgstr ""
170
-
171
- #: includes/admin/class-wc-stripe-admin-notices.php:206
172
- #. translators: 1) link
173
- msgid ""
174
- "Stripe is enabled, but a SSL certificate is not detected. Your checkout may "
175
- "not be secure! Please ensure your server has a valid <a href=\"%1$s\" "
176
- "target=\"_blank\">SSL certificate</a>"
177
- msgstr ""
178
-
179
- #: includes/admin/class-wc-stripe-admin-notices.php:212
180
- #. translators: %1 is the URL for the link
181
- msgid ""
182
- "Stripe is now ready for Strong Customer Authentication (SCA) and 3D Secure "
183
- "2! <a href=\"%1$s\" target=\"_blank\">Read about SCA</a>"
184
- msgstr ""
185
-
186
- #: includes/admin/class-wc-stripe-admin-notices.php:217
187
- #. translators: %s is a the URL for the link.
188
- msgid ""
189
- "The public and/or secret keys for the Stripe gateway have been changed. "
190
- "This might cause errors for existing customers and saved payment methods. "
191
- "<a href=\"%s\" target=\"_blank\">Click here to learn more</a>."
192
- msgstr ""
193
-
194
- #: includes/admin/class-wc-stripe-admin-notices.php:240
195
- #. translators: %1$s Payment method, %2$s List of supported currencies
196
- msgid "%1$s is enabled - it requires store currency to be set to %2$s"
197
- msgstr ""
198
-
199
- #: includes/admin/class-wc-stripe-admin-notices.php:254
200
- msgid "Action failed. Please refresh the page and retry."
201
- msgstr ""
202
-
203
- #: includes/admin/class-wc-stripe-admin-notices.php:258
204
- msgid "Cheatin&#8217; huh?"
205
- msgstr ""
206
-
207
- #: includes/admin/class-wc-stripe-inbox-notes.php:40
208
- msgid "Boost sales this holiday season with Apple Pay!"
209
- msgstr ""
210
-
211
- #: includes/admin/class-wc-stripe-inbox-notes.php:43
212
- msgid "Boost sales with Apple Pay!"
213
- msgstr ""
214
-
215
- #: includes/admin/class-wc-stripe-inbox-notes.php:122
216
- msgid ""
217
- "Now that you accept Apple Pay® with Stripe, you can increase conversion "
218
- "rates by letting your customers know that Apple Pay is available. Here’s a "
219
- "marketing guide to help you get started."
220
- msgstr ""
221
-
222
- #: includes/admin/class-wc-stripe-inbox-notes.php:128
223
- msgid "See marketing guide"
224
- msgstr ""
225
-
226
- #: includes/admin/class-wc-stripe-inbox-notes.php:142
227
- msgid "Apple Pay domain verification needed"
228
- msgstr ""
229
-
230
- #: includes/admin/class-wc-stripe-inbox-notes.php:143
231
- msgid ""
232
- "The WooCommerce Stripe Gateway extension attempted to perform domain "
233
- "verification on behalf of your store, but was unable to do so. This must be "
234
- "resolved before Apple Pay can be offered to your customers."
235
- msgstr ""
236
-
237
- #: includes/admin/class-wc-stripe-inbox-notes.php:149
238
- msgid "Learn more"
239
- msgstr ""
240
-
241
- #: includes/admin/class-wc-stripe-privacy.php:11
242
- #: includes/class-wc-gateway-stripe.php:88
243
- msgid "Stripe"
244
- msgstr ""
245
-
246
- #: includes/admin/class-wc-stripe-privacy.php:13
247
- msgid "WooCommerce Stripe Order Data"
248
- msgstr ""
249
-
250
- #: includes/admin/class-wc-stripe-privacy.php:16
251
- msgid "WooCommerce Stripe Subscriptions Data"
252
- msgstr ""
253
-
254
- #: includes/admin/class-wc-stripe-privacy.php:19
255
- #: includes/admin/class-wc-stripe-privacy.php:21
256
- msgid "WooCommerce Stripe Customer Data"
257
- msgstr ""
258
-
259
- #: includes/admin/class-wc-stripe-privacy.php:22
260
- msgid "WooCommerce Stripe Data"
261
- msgstr ""
262
-
263
- #: includes/admin/class-wc-stripe-privacy.php:36
264
- msgid "Retain Stripe Data"
265
- msgstr ""
266
-
267
- #: includes/admin/class-wc-stripe-privacy.php:37
268
- msgid "Retains any Stripe data such as Stripe customer ID, source ID."
269
- msgstr ""
270
-
271
- #: includes/admin/class-wc-stripe-privacy.php:40
272
- #: includes/compat/class-wc-stripe-sepa-subs-compat.php:486
273
- #: includes/compat/class-wc-stripe-subs-compat.php:598
274
- #: includes/compat/class-wc-stripe-subs-compat.php:613
275
- msgid "N/A"
276
- msgstr ""
277
-
278
- #: includes/admin/class-wc-stripe-privacy.php:93
279
- #. translators: %s URL to docs
280
- msgid ""
281
- "By using this extension, you may be storing personal data or sharing data "
282
- "with an external service. <a href=\"%s\" target=\"_blank\">Learn more about "
283
- "how this works, including what you may want to include in your privacy "
284
- "policy.</a>"
285
- msgstr ""
286
-
287
- #: includes/admin/class-wc-stripe-privacy.php:116
288
- msgid "Orders"
289
- msgstr ""
290
-
291
- #: includes/admin/class-wc-stripe-privacy.php:120
292
- #: includes/admin/class-wc-stripe-privacy.php:185
293
- #: includes/admin/class-wc-stripe-privacy.php:225
294
- msgid "Stripe payment id"
295
- msgstr ""
296
-
297
- #: includes/admin/class-wc-stripe-privacy.php:124
298
- #: includes/admin/class-wc-stripe-privacy.php:189
299
- #: includes/admin/class-wc-stripe-privacy.php:229
300
- msgid "Stripe customer id"
301
- msgstr ""
302
-
303
- #: includes/admin/class-wc-stripe-privacy.php:181
304
- msgid "Subscriptions"
305
- msgstr ""
306
-
307
- #: includes/admin/class-wc-stripe-privacy.php:221
308
- msgid "Customer Data"
309
- msgstr ""
310
-
311
- #: includes/admin/class-wc-stripe-privacy.php:267
312
- msgid "Stripe User Data Erased."
313
- msgstr ""
314
-
315
- #: includes/admin/class-wc-stripe-privacy.php:343
316
- #: includes/admin/class-wc-stripe-privacy.php:380
317
- #. translators: %d Order ID
318
- msgid ""
319
- "Order ID %d is less than set retention days. Personal data retained. "
320
- "(Stripe)"
321
- msgstr ""
322
-
323
- #: includes/admin/class-wc-stripe-privacy.php:348
324
- #. translators: %d Order ID
325
- msgid ""
326
- "Order ID %d contains an active Subscription. Personal data retained. "
327
- "(Stripe)"
328
- msgstr ""
329
-
330
- #: includes/admin/class-wc-stripe-privacy.php:363
331
- msgid "Stripe Subscription Data Erased."
332
- msgstr ""
333
-
334
- #: includes/admin/class-wc-stripe-privacy.php:391
335
- msgid "Stripe personal data erased."
336
- msgstr ""
337
-
338
- #: includes/admin/stripe-alipay-settings.php:10
339
- msgid "Customer Geography: China"
340
- msgstr ""
341
-
342
- #: includes/admin/stripe-alipay-settings.php:14
343
- msgid ""
344
- "<a href=\"https://stripe.com/payments/payment-methods-guide#alipay\" "
345
- "target=\"_blank\">Payment Method Guide</a>"
346
- msgstr ""
347
-
348
- #: includes/admin/stripe-alipay-settings.php:18
349
- #: includes/admin/stripe-bancontact-settings.php:18
350
- #: includes/admin/stripe-eps-settings.php:14
351
- #: includes/admin/stripe-giropay-settings.php:18
352
- #: includes/admin/stripe-ideal-settings.php:18
353
- #: includes/admin/stripe-multibanco-settings.php:14
354
- #: includes/admin/stripe-p24-settings.php:14
355
- #: includes/admin/stripe-sepa-settings.php:18
356
- #: includes/admin/stripe-sofort-settings.php:18
357
- msgid ""
358
- "Must be activated from your Stripe Dashboard Settings <a "
359
- "href=\"https://dashboard.stripe.com/account/payments/settings\" "
360
- "target=\"_blank\">here</a>"
361
- msgstr ""
362
-
363
- #: includes/admin/stripe-alipay-settings.php:22
364
- #: includes/admin/stripe-bancontact-settings.php:22
365
- #: includes/admin/stripe-eps-settings.php:18
366
- #: includes/admin/stripe-giropay-settings.php:22
367
- #: includes/admin/stripe-ideal-settings.php:22
368
- #: includes/admin/stripe-multibanco-settings.php:18
369
- #: includes/admin/stripe-p24-settings.php:18
370
- #: includes/admin/stripe-sepa-settings.php:22
371
- #: includes/admin/stripe-settings.php:10
372
- #: includes/admin/stripe-sofort-settings.php:22
373
- msgid "Enable/Disable"
374
- msgstr ""
375
-
376
- #: includes/admin/stripe-alipay-settings.php:23
377
- msgid "Enable Stripe Alipay"
378
- msgstr ""
379
-
380
- #: includes/admin/stripe-alipay-settings.php:29
381
- #: includes/admin/stripe-bancontact-settings.php:29
382
- #: includes/admin/stripe-eps-settings.php:25
383
- #: includes/admin/stripe-giropay-settings.php:29
384
- #: includes/admin/stripe-ideal-settings.php:29
385
- #: includes/admin/stripe-multibanco-settings.php:25
386
- #: includes/admin/stripe-p24-settings.php:25
387
- #: includes/admin/stripe-sepa-settings.php:29
388
- #: includes/admin/stripe-settings.php:17
389
- #: includes/admin/stripe-sofort-settings.php:29
390
- msgid "Title"
391
- msgstr ""
392
-
393
- #: includes/admin/stripe-alipay-settings.php:31
394
- #: includes/admin/stripe-bancontact-settings.php:31
395
- #: includes/admin/stripe-eps-settings.php:27
396
- #: includes/admin/stripe-giropay-settings.php:31
397
- #: includes/admin/stripe-ideal-settings.php:31
398
- #: includes/admin/stripe-multibanco-settings.php:27
399
- #: includes/admin/stripe-p24-settings.php:27
400
- #: includes/admin/stripe-sepa-settings.php:31
401
- #: includes/admin/stripe-settings.php:19
402
- #: includes/admin/stripe-sofort-settings.php:31
403
- msgid "This controls the title which the user sees during checkout."
404
- msgstr ""
405
-
406
- #: includes/admin/stripe-alipay-settings.php:32
407
- msgid "Alipay"
408
- msgstr ""
409
-
410
- #: includes/admin/stripe-alipay-settings.php:36
411
- #: includes/admin/stripe-bancontact-settings.php:36
412
- #: includes/admin/stripe-eps-settings.php:32
413
- #: includes/admin/stripe-giropay-settings.php:36
414
- #: includes/admin/stripe-ideal-settings.php:36
415
- #: includes/admin/stripe-multibanco-settings.php:32
416
- #: includes/admin/stripe-p24-settings.php:32
417
- #: includes/admin/stripe-sepa-settings.php:36
418
- #: includes/admin/stripe-settings.php:24
419
- #: includes/admin/stripe-sofort-settings.php:36
420
- msgid "Description"
421
- msgstr ""
422
-
423
- #: includes/admin/stripe-alipay-settings.php:38
424
- #: includes/admin/stripe-bancontact-settings.php:38
425
- #: includes/admin/stripe-eps-settings.php:34
426
- #: includes/admin/stripe-giropay-settings.php:38
427
- #: includes/admin/stripe-ideal-settings.php:38
428
- #: includes/admin/stripe-multibanco-settings.php:34
429
- #: includes/admin/stripe-p24-settings.php:34
430
- #: includes/admin/stripe-sepa-settings.php:38
431
- #: includes/admin/stripe-settings.php:26
432
- #: includes/admin/stripe-sofort-settings.php:38
433
- msgid "This controls the description which the user sees during checkout."
434
- msgstr ""
435
-
436
- #: includes/admin/stripe-alipay-settings.php:39
437
- msgid "You will be redirected to Alipay."
438
- msgstr ""
439
-
440
- #: includes/admin/stripe-alipay-settings.php:43
441
- #: includes/admin/stripe-bancontact-settings.php:43
442
- #: includes/admin/stripe-eps-settings.php:39
443
- #: includes/admin/stripe-giropay-settings.php:43
444
- #: includes/admin/stripe-ideal-settings.php:43
445
- #: includes/admin/stripe-multibanco-settings.php:39
446
- #: includes/admin/stripe-p24-settings.php:39
447
- #: includes/admin/stripe-sepa-settings.php:43
448
- #: includes/admin/stripe-settings.php:71
449
- #: includes/admin/stripe-sofort-settings.php:43
450
- msgid "Webhook Endpoints"
451
- msgstr ""
452
-
453
- #: includes/admin/stripe-bancontact-settings.php:10
454
- msgid "Customer Geography: Belgium"
455
- msgstr ""
456
-
457
- #: includes/admin/stripe-bancontact-settings.php:14
458
- msgid ""
459
- "<a href=\"https://stripe.com/payments/payment-methods-guide#bancontact\" "
460
- "target=\"_blank\">Payment Method Guide</a>"
461
- msgstr ""
462
-
463
- #: includes/admin/stripe-bancontact-settings.php:23
464
- msgid "Enable Stripe Bancontact"
465
- msgstr ""
466
-
467
- #: includes/admin/stripe-bancontact-settings.php:32
468
- msgid "Bancontact"
469
- msgstr ""
470
-
471
- #: includes/admin/stripe-bancontact-settings.php:39
472
- msgid "You will be redirected to Bancontact."
473
- msgstr ""
474
-
475
- #: includes/admin/stripe-eps-settings.php:10
476
- msgid "Customer Geography: Austria"
477
- msgstr ""
478
-
479
- #: includes/admin/stripe-eps-settings.php:19
480
- msgid "Enable Stripe EPS"
481
- msgstr ""
482
-
483
- #: includes/admin/stripe-eps-settings.php:28
484
- msgid "EPS"
485
- msgstr ""
486
-
487
- #: includes/admin/stripe-eps-settings.php:35
488
- msgid "You will be redirected to EPS."
489
- msgstr ""
490
-
491
- #: includes/admin/stripe-giropay-settings.php:10
492
- msgid "Customer Geography: Germany"
493
- msgstr ""
494
-
495
- #: includes/admin/stripe-giropay-settings.php:14
496
- msgid ""
497
- "<a href=\"https://stripe.com/payments/payment-methods-guide#giropay\" "
498
- "target=\"_blank\">Payment Method Guide</a>"
499
- msgstr ""
500
-
501
- #: includes/admin/stripe-giropay-settings.php:23
502
- msgid "Enable Stripe Giropay"
503
- msgstr ""
504
-
505
- #: includes/admin/stripe-giropay-settings.php:32
506
- msgid "Giropay"
507
- msgstr ""
508
-
509
- #: includes/admin/stripe-giropay-settings.php:39
510
- msgid "You will be redirected to Giropay."
511
- msgstr ""
512
-
513
- #: includes/admin/stripe-ideal-settings.php:10
514
- msgid "Customer Geography: The Netherlands"
515
- msgstr ""
516
-
517
- #: includes/admin/stripe-ideal-settings.php:14
518
- msgid ""
519
- "<a href=\"https://stripe.com/payments/payment-methods-guide#ideal\" "
520
- "target=\"_blank\">Payment Method Guide</a>"
521
- msgstr ""
522
-
523
- #: includes/admin/stripe-ideal-settings.php:23
524
- msgid "Enable Stripe iDeal"
525
- msgstr ""
526
-
527
- #: includes/admin/stripe-ideal-settings.php:32
528
- msgid "iDeal"
529
- msgstr ""
530
-
531
- #: includes/admin/stripe-ideal-settings.php:39
532
- msgid "You will be redirected to iDeal."
533
- msgstr ""
534
-
535
- #: includes/admin/stripe-multibanco-settings.php:10
536
- msgid "Customer Geography: Portugal"
537
- msgstr ""
538
-
539
- #: includes/admin/stripe-multibanco-settings.php:19
540
- msgid "Enable Stripe Multibanco"
541
- msgstr ""
542
-
543
- #: includes/admin/stripe-multibanco-settings.php:28
544
- msgid "Multibanco"
545
- msgstr ""
546
-
547
- #: includes/admin/stripe-multibanco-settings.php:35
548
- msgid "You will be redirected to Multibanco."
549
- msgstr ""
550
-
551
- #: includes/admin/stripe-p24-settings.php:10
552
- msgid "Customer Geography: Poland"
553
- msgstr ""
554
-
555
- #: includes/admin/stripe-p24-settings.php:19
556
- msgid "Enable Stripe P24"
557
- msgstr ""
558
-
559
- #: includes/admin/stripe-p24-settings.php:28
560
- msgid "Przelewy24 (P24)"
561
- msgstr ""
562
-
563
- #: includes/admin/stripe-p24-settings.php:35
564
- msgid "You will be redirected to P24."
565
- msgstr ""
566
-
567
- #: includes/admin/stripe-sepa-settings.php:10
568
- msgid ""
569
- "Customer Geography: France, Germany, Spain, Belgium, Netherlands, "
570
- "Luxembourg, Italy, Portugal, Austria, Ireland"
571
- msgstr ""
572
-
573
- #: includes/admin/stripe-sepa-settings.php:14
574
- msgid ""
575
- "<a "
576
- "href=\"https://stripe.com/payments/payment-methods-guide#sepa-direct-debit\""
577
- " target=\"_blank\">Payment Method Guide</a>"
578
- msgstr ""
579
-
580
- #: includes/admin/stripe-sepa-settings.php:23
581
- msgid "Enable Stripe SEPA Direct Debit"
582
- msgstr ""
583
-
584
- #: includes/admin/stripe-sepa-settings.php:32
585
- msgid "SEPA Direct Debit"
586
- msgstr ""
587
-
588
- #: includes/admin/stripe-sepa-settings.php:39
589
- msgid "Mandate Information."
590
- msgstr ""
591
-
592
- #: includes/admin/stripe-settings.php:11
593
- msgid "Enable Stripe"
594
- msgstr ""
595
-
596
- #: includes/admin/stripe-settings.php:20
597
- msgid "Credit Card (Stripe)"
598
- msgstr ""
599
-
600
- #: includes/admin/stripe-settings.php:27
601
- msgid "Pay with your credit card via Stripe."
602
- msgstr ""
603
-
604
- #: includes/admin/stripe-settings.php:31
605
- msgid "Stripe Account Keys"
606
- msgstr ""
607
-
608
- #: includes/admin/stripe-settings.php:35
609
- msgid "Test mode"
610
- msgstr ""
611
-
612
- #: includes/admin/stripe-settings.php:36
613
- msgid "Enable Test Mode"
614
- msgstr ""
615
-
616
- #: includes/admin/stripe-settings.php:38
617
- msgid "Place the payment gateway in test mode using test API keys."
618
- msgstr ""
619
-
620
- #: includes/admin/stripe-settings.php:43
621
- msgid "Test Publishable Key"
622
- msgstr ""
623
-
624
- #: includes/admin/stripe-settings.php:45
625
- msgid ""
626
- "Get your API keys from your stripe account. Invalid values will be "
627
- "rejected. Only values starting with \"pk_test_\" will be saved."
628
- msgstr ""
629
-
630
- #: includes/admin/stripe-settings.php:50
631
- msgid "Test Secret Key"
632
- msgstr ""
633
-
634
- #: includes/admin/stripe-settings.php:52
635
- msgid ""
636
- "Get your API keys from your stripe account. Invalid values will be "
637
- "rejected. Only values starting with \"sk_test_\" or \"rk_test_\" will be "
638
- "saved."
639
- msgstr ""
640
-
641
- #: includes/admin/stripe-settings.php:57
642
- msgid "Live Publishable Key"
643
- msgstr ""
644
-
645
- #: includes/admin/stripe-settings.php:59
646
- msgid ""
647
- "Get your API keys from your stripe account. Invalid values will be "
648
- "rejected. Only values starting with \"pk_live_\" will be saved."
649
- msgstr ""
650
-
651
- #: includes/admin/stripe-settings.php:64
652
- msgid "Live Secret Key"
653
- msgstr ""
654
-
655
- #: includes/admin/stripe-settings.php:66
656
- msgid ""
657
- "Get your API keys from your stripe account. Invalid values will be "
658
- "rejected. Only values starting with \"sk_live_\" or \"rk_live_\" will be "
659
- "saved."
660
- msgstr ""
661
-
662
- #: includes/admin/stripe-settings.php:76
663
- msgid "Test Webhook Secret"
664
- msgstr ""
665
-
666
- #: includes/admin/stripe-settings.php:78 includes/admin/stripe-settings.php:85
667
- msgid ""
668
- "Get your webhook signing secret from the webhooks section in your stripe "
669
- "account."
670
- msgstr ""
671
-
672
- #: includes/admin/stripe-settings.php:83
673
- msgid "Webhook Secret"
674
- msgstr ""
675
-
676
- #: includes/admin/stripe-settings.php:90
677
- msgid "Inline Credit Card Form"
678
- msgstr ""
679
-
680
- #: includes/admin/stripe-settings.php:92
681
- msgid ""
682
- "Choose the style you want to show for your credit card form. When "
683
- "unchecked, the credit card form will display separate credit card number "
684
- "field, expiry date field and cvc field."
685
- msgstr ""
686
-
687
- #: includes/admin/stripe-settings.php:97
688
- msgid "Statement Descriptor"
689
- msgstr ""
690
-
691
- #: includes/admin/stripe-settings.php:99
692
- msgid ""
693
- "Statement descriptors are limited to 22 characters, cannot use the special "
694
- "characters >, <, \", \\, ', *, /, (, ), {, }, and must not consist solely "
695
- "of numbers. This will appear on your customer's statement in capital "
696
- "letters."
697
- msgstr ""
698
-
699
- #: includes/admin/stripe-settings.php:104
700
- msgid "Capture"
701
- msgstr ""
702
-
703
- #: includes/admin/stripe-settings.php:105
704
- msgid "Capture charge immediately"
705
- msgstr ""
706
-
707
- #: includes/admin/stripe-settings.php:107
708
- msgid ""
709
- "Whether or not to immediately capture the charge. When unchecked, the "
710
- "charge issues an authorization and will need to be captured later. "
711
- "Uncaptured charges expire in 7 days."
712
- msgstr ""
713
-
714
- #: includes/admin/stripe-settings.php:112
715
- msgid "Payment Request Buttons"
716
- msgstr ""
717
-
718
- #: includes/admin/stripe-settings.php:115
719
- #. translators: 1) br tag 2) Stripe anchor tag 3) Apple anchor tag 4) Stripe
720
- #. dashboard opening anchor tag 5) Stripe dashboard closing anchor tag
721
- msgid ""
722
- "Enable Payment Request Buttons. (Apple Pay/Google Pay) %1$sBy using Apple "
723
- "Pay, you agree to %2$s and %3$s's terms of service. (Apple Pay domain "
724
- "verification is performed automatically in live mode; configuration can be "
725
- "found on the %4$sStripe dashboard%5$s.)"
726
- msgstr ""
727
-
728
- #: includes/admin/stripe-settings.php:123
729
- msgid ""
730
- "If enabled, users will be able to pay using Apple Pay or Chrome Payment "
731
- "Request if supported by the browser."
732
- msgstr ""
733
-
734
- #: includes/admin/stripe-settings.php:128
735
- msgid "Payment Request Button Type"
736
- msgstr ""
737
-
738
- #: includes/admin/stripe-settings.php:129
739
- msgid "Button Type"
740
- msgstr ""
741
-
742
- #: includes/admin/stripe-settings.php:131
743
- msgid "Select the button type you would like to show."
744
- msgstr ""
745
-
746
- #: includes/admin/stripe-settings.php:135
747
- msgid "Default"
748
- msgstr ""
749
-
750
- #: includes/admin/stripe-settings.php:136
751
- msgid "Buy"
752
- msgstr ""
753
-
754
- #: includes/admin/stripe-settings.php:137
755
- msgid "Donate"
756
- msgstr ""
757
-
758
- #: includes/admin/stripe-settings.php:138
759
- msgid "Branded"
760
- msgstr ""
761
-
762
- #: includes/admin/stripe-settings.php:139
763
- msgid "Custom"
764
- msgstr ""
765
-
766
- #: includes/admin/stripe-settings.php:143
767
- msgid "Payment Request Button Theme"
768
- msgstr ""
769
-
770
- #: includes/admin/stripe-settings.php:144
771
- msgid "Button Theme"
772
- msgstr ""
773
-
774
- #: includes/admin/stripe-settings.php:146
775
- msgid "Select the button theme you would like to show."
776
- msgstr ""
777
-
778
- #: includes/admin/stripe-settings.php:150
779
- msgid "Dark"
780
- msgstr ""
781
-
782
- #: includes/admin/stripe-settings.php:151
783
- msgid "Light"
784
- msgstr ""
785
-
786
- #: includes/admin/stripe-settings.php:152
787
- msgid "Light-Outline"
788
- msgstr ""
789
-
790
- #: includes/admin/stripe-settings.php:156
791
- msgid "Payment Request Button Height"
792
- msgstr ""
793
-
794
- #: includes/admin/stripe-settings.php:157
795
- msgid "Button Height"
796
- msgstr ""
797
-
798
- #: includes/admin/stripe-settings.php:159
799
- msgid ""
800
- "Enter the height you would like the button to be in pixels. Width will "
801
- "always be 100%."
802
- msgstr ""
803
-
804
- #: includes/admin/stripe-settings.php:164
805
- msgid "Payment Request Button Label"
806
- msgstr ""
807
-
808
- #: includes/admin/stripe-settings.php:165
809
- msgid "Button Label"
810
- msgstr ""
811
-
812
- #: includes/admin/stripe-settings.php:167
813
- msgid "Enter the custom text you would like the button to have."
814
- msgstr ""
815
-
816
- #: includes/admin/stripe-settings.php:168
817
- msgid "Buy now"
818
- msgstr ""
819
-
820
- #: includes/admin/stripe-settings.php:172
821
- msgid "Payment Request Branded Button Label Format"
822
- msgstr ""
823
-
824
- #: includes/admin/stripe-settings.php:173
825
- msgid "Branded Button Label Format"
826
- msgstr ""
827
-
828
- #: includes/admin/stripe-settings.php:175
829
- msgid "Select the branded button label format."
830
- msgstr ""
831
-
832
- #: includes/admin/stripe-settings.php:179
833
- msgid "Logo only"
834
- msgstr ""
835
-
836
- #: includes/admin/stripe-settings.php:180
837
- msgid "Text and logo"
838
- msgstr ""
839
-
840
- #: includes/admin/stripe-settings.php:184
841
- msgid "Saved Cards"
842
- msgstr ""
843
-
844
- #: includes/admin/stripe-settings.php:185
845
- msgid "Enable Payment via Saved Cards"
846
- msgstr ""
847
-
848
- #: includes/admin/stripe-settings.php:187
849
- msgid ""
850
- "If enabled, users will be able to pay with a saved card during checkout. "
851
- "Card details are saved on Stripe servers, not on your store."
852
- msgstr ""
853
-
854
- #: includes/admin/stripe-settings.php:192
855
- msgid "Logging"
856
- msgstr ""
857
-
858
- #: includes/admin/stripe-settings.php:193
859
- msgid "Log debug messages"
860
- msgstr ""
861
-
862
- #: includes/admin/stripe-settings.php:195
863
- msgid "Save debug messages to the WooCommerce System Status log."
864
- msgstr ""
865
-
866
- #: includes/admin/stripe-sofort-settings.php:10
867
- msgid "Customer Geography: Germany, Austria"
868
- msgstr ""
869
-
870
- #: includes/admin/stripe-sofort-settings.php:14
871
- msgid ""
872
- "<a href=\"https://stripe.com/payments/payment-methods-guide#sofort\" "
873
- "target=\"_blank\">Payment Method Guide</a>"
874
- msgstr ""
875
-
876
- #: includes/admin/stripe-sofort-settings.php:23
877
- msgid "Enable Stripe SOFORT"
878
- msgstr ""
879
-
880
- #: includes/admin/stripe-sofort-settings.php:32
881
- msgid "SOFORT"
882
- msgstr ""
883
-
884
- #: includes/admin/stripe-sofort-settings.php:39
885
- msgid "You will be redirected to SOFORT."
886
- msgstr ""
887
-
888
- #: includes/class-wc-gateway-stripe.php:90
889
- #. translators: 1) link to Stripe register page 2) link to Stripe api keys page
890
- msgid ""
891
- "Stripe works by adding payment fields on the checkout and then sending the "
892
- "details to Stripe for verification."
893
- msgstr ""
894
-
895
- #: includes/class-wc-gateway-stripe.php:181
896
- #. translators: 1) Opening anchor tag 2) closing anchor tag
897
- msgid ""
898
- "If your billing address has been changed for saved payment methods, be sure "
899
- "to remove any %1$ssaved payment methods%2$s on file and re-add them."
900
- msgstr ""
901
-
902
- #: includes/class-wc-gateway-stripe.php:253
903
- #. translators: link to Stripe testing page
904
- msgid ""
905
- "TEST MODE ENABLED. In test mode, you can use the card number "
906
- "4242424242424242 with any CVC and a valid expiration date or check the <a "
907
- "href=\"%s\" target=\"_blank\">Testing Stripe documentation</a> for more "
908
- "card numbers."
909
- msgstr ""
910
-
911
- #: includes/class-wc-gateway-stripe.php:292
912
- msgid "Credit or debit card"
913
- msgstr ""
914
-
915
- #: includes/class-wc-gateway-stripe.php:300
916
- msgid "Card Number"
917
- msgstr ""
918
-
919
- #: includes/class-wc-gateway-stripe.php:311
920
- msgid "Expiry Date"
921
- msgstr ""
922
-
923
- #: includes/class-wc-gateway-stripe.php:319
924
- msgid "Card Code (CVC)"
925
- msgstr ""
926
-
927
- #: includes/class-wc-gateway-stripe.php:354
928
- msgid ""
929
- "<strong>Warning:</strong> your site's time does not match the time on your "
930
- "browser and may be incorrect. Some payment methods depend on webhook "
931
- "verification and verifying webhooks with a signing secret depends on your "
932
- "site's time being correct, so please check your site's time before setting "
933
- "a webhook secret. You may need to contact your site's hosting provider to "
934
- "correct the site's time."
935
- msgstr ""
936
-
937
- #: includes/class-wc-gateway-stripe.php:373
938
- msgid "Please accept the terms and conditions first"
939
- msgstr ""
940
-
941
- #: includes/class-wc-gateway-stripe.php:374
942
- msgid "Please fill in required checkout fields first"
943
- msgstr ""
944
-
945
- #: includes/class-wc-gateway-stripe.php:404
946
- #: includes/class-wc-gateway-stripe.php:502
947
- msgid ""
948
- "Sorry, we're not accepting prepaid cards at this time. Your credit card has "
949
- "not been charged. Please try with alternative payment method."
950
- msgstr ""
951
-
952
- #: includes/class-wc-gateway-stripe.php:405
953
- msgid "Please enter your IBAN account name."
954
- msgstr ""
955
-
956
- #: includes/class-wc-gateway-stripe.php:406
957
- msgid "Please enter your IBAN account number."
958
- msgstr ""
959
-
960
- #: includes/class-wc-gateway-stripe.php:407
961
- msgid "We couldn't initiate the payment. Please try again."
962
- msgstr ""
963
-
964
- #: includes/class-wc-gateway-stripe.php:418
965
- msgid "Billing First Name and Last Name are required."
966
- msgstr ""
967
-
968
- #: includes/class-wc-gateway-stripe.php:771
969
- #. translators: error message
970
- msgid "This represents the fee Stripe collects for the transaction."
971
- msgstr ""
972
-
973
- #: includes/class-wc-gateway-stripe.php:772
974
- msgid "Stripe Fee:"
975
- msgstr ""
976
-
977
- #: includes/class-wc-gateway-stripe.php:808
978
- msgid ""
979
- "This represents the net total that will be credited to your Stripe bank "
980
- "account. This may be in the currency that is set in your Stripe account."
981
- msgstr ""
982
-
983
- #: includes/class-wc-gateway-stripe.php:809
984
- msgid "Stripe Payout:"
985
- msgstr ""
986
-
987
- #: includes/class-wc-gateway-stripe.php:872
988
- #: includes/class-wc-stripe-order-handler.php:156
989
- #: includes/class-wc-stripe-webhook-handler.php:263
990
- #: includes/compat/class-wc-stripe-sepa-subs-compat.php:287
991
- #: includes/compat/class-wc-stripe-subs-compat.php:339
992
- #: includes/payment-methods/class-wc-gateway-stripe-sepa.php:366
993
- msgid ""
994
- "Sorry, we are unable to process your payment at this time. Please retry "
995
- "later."
996
- msgstr ""
997
-
998
- #: includes/class-wc-gateway-stripe.php:925
999
- msgid ""
1000
- "Almost there!\n"
1001
- "\n"
1002
- "Your order has already been created, the only thing that still needs to be "
1003
- "done is for you to authorize the payment with your bank."
1004
- msgstr ""
1005
-
1006
- #: includes/class-wc-gateway-stripe.php:947
1007
- #. translators: %s is the order Id
1008
- msgid "Payment Intent not found for order #%s"
1009
- msgstr ""
1010
-
1011
- #: includes/class-wc-gateway-stripe.php:1183
1012
- #: includes/class-wc-stripe-webhook-handler.php:772
1013
- #: includes/class-wc-stripe-webhook-handler.php:822
1014
- #. translators: 1) The error message that was received from Stripe.
1015
- msgid "Stripe SCA authentication failed. Reason: %s"
1016
- msgstr ""
1017
-
1018
- #: includes/class-wc-gateway-stripe.php:1184
1019
- msgid "Stripe SCA authentication failed."
1020
- msgstr ""
1021
-
1022
- #: includes/class-wc-gateway-stripe.php:1241
1023
- msgid ""
1024
- "The \"Live Publishable Key\" should start with \"pk_live\", enter the "
1025
- "correct key."
1026
- msgstr ""
1027
-
1028
- #: includes/class-wc-gateway-stripe.php:1249
1029
- msgid ""
1030
- "The \"Live Secret Key\" should start with \"sk_live\" or \"rk_live\", enter "
1031
- "the correct key."
1032
- msgstr ""
1033
-
1034
- #: includes/class-wc-gateway-stripe.php:1257
1035
- msgid ""
1036
- "The \"Test Publishable Key\" should start with \"pk_test\", enter the "
1037
- "correct key."
1038
- msgstr ""
1039
-
1040
- #: includes/class-wc-gateway-stripe.php:1265
1041
- msgid ""
1042
- "The \"Test Secret Key\" should start with \"sk_test\" or \"rk_test\", enter "
1043
- "the correct key."
1044
- msgstr ""
1045
-
1046
- #: includes/class-wc-gateway-stripe.php:1305
1047
- #. translators: %1, %2, %3, and %4 are all HTML markup tags
1048
- msgid ""
1049
- "%1$sClear all Stripe account keys.%2$s %3$sThis will disable any connection "
1050
- "to Stripe.%4$s"
1051
- msgstr ""
1052
-
1053
- #: includes/class-wc-gateway-stripe.php:1317
1054
- #. translators: %1, %2 and %3 are all HTML markup tags
1055
- msgid ""
1056
- "%1$sSet up or link an existing Stripe account.%2$s By clicking this button "
1057
- "you agree to the %3$sTerms of Service%2$s. Or, manually enter Stripe "
1058
- "account keys below."
1059
- msgstr ""
1060
-
1061
- #: includes/class-wc-gateway-stripe.php:1323
1062
- msgid "Manually enter Stripe keys below."
1063
- msgstr ""
1064
-
1065
- #: includes/class-wc-stripe-api.php:148 includes/class-wc-stripe-api.php:182
1066
- msgid "There was a problem connecting to the Stripe API endpoint."
1067
- msgstr ""
1068
-
1069
- #: includes/class-wc-stripe-apple-pay-registration.php:149
1070
- msgid "Unable to create domain association folder to domain root."
1071
- msgstr ""
1072
-
1073
- #: includes/class-wc-stripe-apple-pay-registration.php:154
1074
- msgid "Unable to copy domain association file to domain root."
1075
- msgstr ""
1076
-
1077
- #: includes/class-wc-stripe-apple-pay-registration.php:176
1078
- #. translators: expected domain association file URL
1079
- msgid "To enable Apple Pay, domain association file must be hosted at %s."
1080
- msgstr ""
1081
-
1082
- #: includes/class-wc-stripe-apple-pay-registration.php:179
1083
- msgid "Domain association file updated."
1084
- msgstr ""
1085
-
1086
- #: includes/class-wc-stripe-apple-pay-registration.php:232
1087
- msgid "Unable to verify domain - missing secret key."
1088
- msgstr ""
1089
-
1090
- #: includes/class-wc-stripe-apple-pay-registration.php:257
1091
- #: includes/class-wc-stripe-apple-pay-registration.php:266
1092
- #. translators: error message
1093
- msgid "Unable to verify domain - %s"
1094
- msgstr ""
1095
-
1096
- #: includes/class-wc-stripe-apple-pay-registration.php:394
1097
- msgid "Apple Pay domain verification failed."
1098
- msgstr ""
1099
-
1100
- #: includes/class-wc-stripe-apple-pay-registration.php:395
1101
- msgid "Apple Pay domain verification failed with the following error:"
1102
- msgstr ""
1103
-
1104
- #: includes/class-wc-stripe-apple-pay-registration.php:398
1105
- #. translators: 1) HTML anchor open tag 2) HTML anchor closing tag
1106
- msgid ""
1107
- "Please check the %1$slogs%2$s for more details on this issue. Logging must "
1108
- "be enabled to see recorded logs."
1109
- msgstr ""
1110
-
1111
- #: includes/class-wc-stripe-blocks-support.php:225
1112
- msgid "Credit / Debit Card"
1113
- msgstr ""
1114
-
1115
- #: includes/class-wc-stripe-blocks-support.php:237
1116
- msgid "Visa"
1117
- msgstr ""
1118
-
1119
- #: includes/class-wc-stripe-blocks-support.php:241
1120
- msgid "American Express"
1121
- msgstr ""
1122
-
1123
- #: includes/class-wc-stripe-blocks-support.php:245
1124
- msgid "Mastercard"
1125
- msgstr ""
1126
-
1127
- #: includes/class-wc-stripe-blocks-support.php:252
1128
- msgid "Discover"
1129
- msgstr ""
1130
-
1131
- #: includes/class-wc-stripe-blocks-support.php:256
1132
- msgid "JCB"
1133
- msgstr ""
1134
-
1135
- #: includes/class-wc-stripe-blocks-support.php:260
1136
- msgid "Diners"
1137
- msgstr ""
1138
-
1139
- #: includes/class-wc-stripe-customer.php:130
1140
- #. translators: %1$s First name, %2$s Second name, %3$s Username.
1141
- msgid "Name: %1$s %2$s, Username: %3$s"
1142
- msgstr ""
1143
-
1144
- #: includes/class-wc-stripe-customer.php:146
1145
- #. translators: %1$s First name, %2$s Second name.
1146
- msgid "Name: %1$s %2$s, Guest"
1147
- msgstr ""
1148
-
1149
- #: includes/class-wc-stripe-customer.php:205
1150
- msgid "Attempting to update a Stripe customer without a customer ID."
1151
- msgstr ""
1152
-
1153
- #: includes/class-wc-stripe-customer.php:354
1154
- msgid "Unable to add payment source."
1155
- msgstr ""
1156
-
1157
- #: includes/class-wc-stripe-helper.php:197
1158
- msgid "The card number is not a valid credit card number."
1159
- msgstr ""
1160
-
1161
- #: includes/class-wc-stripe-helper.php:198
1162
- msgid "The card's expiration month is invalid."
1163
- msgstr ""
1164
-
1165
- #: includes/class-wc-stripe-helper.php:199
1166
- msgid "The card's expiration year is invalid."
1167
- msgstr ""
1168
-
1169
- #: includes/class-wc-stripe-helper.php:200
1170
- msgid "The card's security code is invalid."
1171
- msgstr ""
1172
-
1173
- #: includes/class-wc-stripe-helper.php:201
1174
- msgid "The card number is incorrect."
1175
- msgstr ""
1176
-
1177
- #: includes/class-wc-stripe-helper.php:202
1178
- msgid "The card number is incomplete."
1179
- msgstr ""
1180
-
1181
- #: includes/class-wc-stripe-helper.php:203
1182
- msgid "The card's security code is incomplete."
1183
- msgstr ""
1184
-
1185
- #: includes/class-wc-stripe-helper.php:204
1186
- msgid "The card's expiration date is incomplete."
1187
- msgstr ""
1188
-
1189
- #: includes/class-wc-stripe-helper.php:205
1190
- msgid "The card has expired."
1191
- msgstr ""
1192
-
1193
- #: includes/class-wc-stripe-helper.php:206
1194
- msgid "The card's security code is incorrect."
1195
- msgstr ""
1196
-
1197
- #: includes/class-wc-stripe-helper.php:207
1198
- msgid "The card's zip code failed validation."
1199
- msgstr ""
1200
-
1201
- #: includes/class-wc-stripe-helper.php:208
1202
- msgid "The card's expiration year is in the past"
1203
- msgstr ""
1204
-
1205
- #: includes/class-wc-stripe-helper.php:209
1206
- msgid "The card was declined."
1207
- msgstr ""
1208
-
1209
- #: includes/class-wc-stripe-helper.php:210
1210
- msgid "There is no card on a customer that is being charged."
1211
- msgstr ""
1212
-
1213
- #: includes/class-wc-stripe-helper.php:211
1214
- msgid "An error occurred while processing the card."
1215
- msgstr ""
1216
-
1217
- #: includes/class-wc-stripe-helper.php:212
1218
- msgid "The billing country is not accepted by SOFORT. Please try another country."
1219
- msgstr ""
1220
-
1221
- #: includes/class-wc-stripe-helper.php:213
1222
- msgid "Invalid email address, please correct and try again."
1223
- msgstr ""
1224
-
1225
- #: includes/class-wc-stripe-helper.php:215
1226
- msgid ""
1227
- "Unable to save this payment method, please try again or use alternative "
1228
- "method."
1229
- msgstr ""
1230
-
1231
- #: includes/class-wc-stripe-helper.php:216
1232
- #: includes/class-wc-stripe-order-handler.php:96
1233
- msgid "Unable to process this payment, please try again or use alternative method."
1234
- msgstr ""
1235
-
1236
- #: includes/class-wc-stripe-intent-controller.php:59
1237
- msgid "CSRF verification failed."
1238
- msgstr ""
1239
-
1240
- #: includes/class-wc-stripe-intent-controller.php:72
1241
- msgid "Missing order ID for payment confirmation"
1242
- msgstr ""
1243
-
1244
- #: includes/class-wc-stripe-intent-controller.php:92
1245
- #. translators: Error message text
1246
- msgid "Payment verification error: %s"
1247
- msgstr ""
1248
-
1249
- #: includes/class-wc-stripe-intent-controller.php:177
1250
- msgid "Unable to verify your request. Please reload the page and try again."
1251
- msgstr ""
1252
-
1253
- #: includes/class-wc-stripe-intent-controller.php:217
1254
- msgid "Your card could not be set up for future usage."
1255
- msgstr ""
1256
-
1257
- #: includes/class-wc-stripe-intent-controller.php:234
1258
- msgid "Failed to save payment method."
1259
- msgstr ""
1260
-
1261
- #: includes/class-wc-stripe-order-handler.php:138
1262
- #: includes/class-wc-stripe-webhook-handler.php:244
1263
- #: includes/payment-methods/class-wc-gateway-stripe-sepa.php:346
1264
- msgid "This card is no longer available and has been removed."
1265
- msgstr ""
1266
-
1267
- #: includes/class-wc-stripe-order-handler.php:188
1268
- #. translators: error message
1269
- msgid "Stripe payment failed: %s"
1270
- msgstr ""
1271
-
1272
- #: includes/class-wc-stripe-order-handler.php:239
1273
- #: includes/class-wc-stripe-order-handler.php:254
1274
- #: includes/class-wc-stripe-order-handler.php:270
1275
- #: includes/class-wc-stripe-order-handler.php:285
1276
- #. translators: error message
1277
- msgid "Unable to capture charge! %s"
1278
- msgstr ""
1279
-
1280
- #: includes/class-wc-stripe-payment-tokens.php:175
1281
- msgid "SEPA IBAN"
1282
- msgstr ""
1283
-
1284
- #: includes/class-wc-stripe-sepa-payment-token.php:47
1285
- #. translators: last 4 digits of IBAN account
1286
- msgid "SEPA IBAN ending in %s"
1287
- msgstr ""
1288
-
1289
- #: includes/class-wc-stripe-webhook-handler.php:323
1290
- #. translators: 1) The URL to the order.
1291
- msgid ""
1292
- "A dispute was created for this order. Response is needed. Please go to your "
1293
- "<a href=\"%s\" title=\"Stripe Dashboard\" target=\"_blank\">Stripe "
1294
- "Dashboard</a> to review this dispute."
1295
- msgstr ""
1296
-
1297
- #: includes/class-wc-stripe-webhook-handler.php:352
1298
- msgid "The dispute was lost or accepted."
1299
- msgstr ""
1300
-
1301
- #: includes/class-wc-stripe-webhook-handler.php:354
1302
- msgid "The dispute was resolved in your favor."
1303
- msgstr ""
1304
-
1305
- #: includes/class-wc-stripe-webhook-handler.php:356
1306
- msgid "The inquiry or retrieval was closed."
1307
- msgstr ""
1308
-
1309
- #: includes/class-wc-stripe-webhook-handler.php:409
1310
- #. translators: partial captured amount
1311
- msgid "This charge was partially captured via Stripe Dashboard in the amount of: %s"
1312
- msgstr ""
1313
-
1314
- #: includes/class-wc-stripe-webhook-handler.php:491
1315
- msgid "This payment failed to clear."
1316
- msgstr ""
1317
-
1318
- #: includes/class-wc-stripe-webhook-handler.php:528
1319
- msgid "This payment was cancelled."
1320
- msgstr ""
1321
-
1322
- #: includes/class-wc-stripe-webhook-handler.php:571
1323
- #. translators: amount (including currency symbol)
1324
- msgid "Pre-Authorization for %s voided from the Stripe Dashboard."
1325
- msgstr ""
1326
-
1327
- #: includes/class-wc-stripe-webhook-handler.php:584
1328
- msgid "Refunded via Stripe Dashboard"
1329
- msgstr ""
1330
-
1331
- #: includes/class-wc-stripe-webhook-handler.php:606
1332
- #. translators: 1) amount (including currency symbol) 2) transaction id 3)
1333
- #. refund message
1334
- msgid "Refunded %1$s - Refund ID: %2$s - %3$s"
1335
- msgstr ""
1336
-
1337
- #: includes/class-wc-stripe-webhook-handler.php:637
1338
- #. translators: 1) The URL to the order. 2) The reason type.
1339
- msgid ""
1340
- "A review has been opened for this order. Action is needed. Please go to "
1341
- "your <a href=\"%1$s\" title=\"Stripe Dashboard\" target=\"_blank\">Stripe "
1342
- "Dashboard</a> to review the issue. Reason: (%2$s)"
1343
- msgstr ""
1344
-
1345
- #: includes/class-wc-stripe-webhook-handler.php:670
1346
- #. translators: 1) The reason type.
1347
- msgid "The opened review for this order is now closed. Reason: (%s)"
1348
- msgstr ""
1349
-
1350
- #: includes/class-wc-stripe-webhook-state.php:135
1351
- msgid "No error"
1352
- msgstr ""
1353
-
1354
- #: includes/class-wc-stripe-webhook-state.php:139
1355
- msgid "The webhook was missing expected headers"
1356
- msgstr ""
1357
-
1358
- #: includes/class-wc-stripe-webhook-state.php:143
1359
- msgid "The webhook was missing expected body"
1360
- msgstr ""
1361
-
1362
- #: includes/class-wc-stripe-webhook-state.php:147
1363
- msgid "The webhook received did not come from Stripe"
1364
- msgstr ""
1365
-
1366
- #: includes/class-wc-stripe-webhook-state.php:151
1367
- msgid "The webhook signature was missing or was incorrectly formatted"
1368
- msgstr ""
1369
-
1370
- #: includes/class-wc-stripe-webhook-state.php:155
1371
- msgid ""
1372
- "The timestamp in the webhook differed more than five minutes from the site "
1373
- "time"
1374
- msgstr ""
1375
-
1376
- #: includes/class-wc-stripe-webhook-state.php:159
1377
- msgid "The webhook was not signed with the expected signing secret"
1378
- msgstr ""
1379
-
1380
- #: includes/class-wc-stripe-webhook-state.php:162
1381
- msgid "Unknown error."
1382
- msgstr ""
1383
-
1384
- #: includes/class-wc-stripe-webhook-state.php:185
1385
- #. translators: 1) date and time of last webhook received, e.g. 2020-06-28
1386
- #. 10:30:50 UTC
1387
- msgid "The most recent test webhook, timestamped %s, was processed successfully."
1388
- msgstr ""
1389
-
1390
- #: includes/class-wc-stripe-webhook-state.php:187
1391
- #. translators: 1) date and time of last webhook received, e.g. 2020-06-28
1392
- #. 10:30:50 UTC
1393
- msgid "The most recent live webhook, timestamped %s, was processed successfully."
1394
- msgstr ""
1395
-
1396
- #: includes/class-wc-stripe-webhook-state.php:198
1397
- #. translators: 1) date and time webhook monitoring began, e.g. 2020-06-28
1398
- #. 10:30:50 UTC
1399
- msgid "No test webhooks have been received since monitoring began at %s."
1400
- msgstr ""
1401
-
1402
- #: includes/class-wc-stripe-webhook-state.php:200
1403
- #. translators: 1) date and time webhook monitoring began, e.g. 2020-06-28
1404
- #. 10:30:50 UTC
1405
- msgid "No live webhooks have been received since monitoring began at %s."
1406
- msgstr ""
1407
-
1408
- #: includes/class-wc-stripe-webhook-state.php:215
1409
- #. translators: 1) date and time of last failed webhook e.g. 2020-06-28
1410
- #. 10:30:50 UTC translators: 2) reason webhook failed translators: 3) date and
1411
- #. time of last successful webhook e.g. 2020-05-28 10:30:50 UTC
1412
- msgid ""
1413
- "Warning: The most recent test webhook, received at %1$s, could not be "
1414
- "processed. Reason: %2$s. (The last test webhook to process successfully was "
1415
- "timestamped %3$s.)"
1416
- msgstr ""
1417
-
1418
- #: includes/class-wc-stripe-webhook-state.php:221
1419
- #. translators: 1) date and time of last failed webhook e.g. 2020-06-28
1420
- #. 10:30:50 UTC translators: 2) reason webhook failed translators: 3) date and
1421
- #. time of last successful webhook e.g. 2020-05-28 10:30:50 UTC
1422
- msgid ""
1423
- "Warning: The most recent live webhook, received at %1$s, could not be "
1424
- "processed. Reason: %2$s. (The last live webhook to process successfully was "
1425
- "timestamped %3$s.)"
1426
- msgstr ""
1427
-
1428
- #: includes/class-wc-stripe-webhook-state.php:236
1429
- #. translators: 1) date and time of last failed webhook e.g. 2020-06-28
1430
- #. 10:30:50 UTC translators: 2) reason webhook failed translators: 3) date and
1431
- #. time webhook monitoring began e.g. 2020-05-28 10:30:50 UTC
1432
- msgid ""
1433
- "Warning: The most recent test webhook, received at %1$s, could not be "
1434
- "processed. Reason: %2$s. (No test webhooks have been processed successfully "
1435
- "since monitoring began at %3$s.)"
1436
- msgstr ""
1437
-
1438
- #: includes/class-wc-stripe-webhook-state.php:241
1439
- #. translators: 1) date and time of last failed webhook e.g. 2020-06-28
1440
- #. 10:30:50 UTC translators: 2) reason webhook failed translators: 3) date and
1441
- #. time webhook monitoring began e.g. 2020-05-28 10:30:50 UTC
1442
- msgid ""
1443
- "Warning: The most recent live webhook, received at %1$s, could not be "
1444
- "processed. Reason: %2$s. (No live webhooks have been processed successfully "
1445
- "since monitoring began at %3$s.)"
1446
- msgstr ""
1447
-
1448
- #: includes/compat/class-wc-stripe-email-failed-authentication-retry.php:29
1449
- msgid "Payment Authentication Requested Email"
1450
- msgstr ""
1451
-
1452
- #: includes/compat/class-wc-stripe-email-failed-authentication-retry.php:30
1453
- msgid ""
1454
- "Payment authentication requested emails are sent to chosen recipient(s) "
1455
- "when an attempt to automatically process a subscription renewal payment "
1456
- "fails because the transaction requires an SCA verification, the customer is "
1457
- "requested to authenticate the payment, and a retry rule has been applied to "
1458
- "notify the customer again within a certain time period."
1459
- msgstr ""
1460
-
1461
- #: includes/compat/class-wc-stripe-email-failed-authentication-retry.php:32
1462
- msgid "Automatic renewal payment failed due to authentication required"
1463
- msgstr ""
1464
-
1465
- #: includes/compat/class-wc-stripe-email-failed-authentication-retry.php:33
1466
- msgid ""
1467
- "[{site_title}] Automatic payment failed for {order_number}. Customer asked "
1468
- "to authenticate payment and will be notified again {retry_time}"
1469
- msgstr ""
1470
-
1471
- #: includes/compat/class-wc-stripe-email-failed-authentication.php:86
1472
- msgid "Enable this email notification"
1473
- msgstr ""
1474
-
1475
- #: includes/compat/class-wc-stripe-email-failed-preorder-authentication.php:26
1476
- msgid "Pre-order Payment Action Needed"
1477
- msgstr ""
1478
-
1479
- #: includes/compat/class-wc-stripe-email-failed-preorder-authentication.php:27
1480
- msgid ""
1481
- "This is an order notification sent to the customer once a pre-order is "
1482
- "complete, but additional payment steps are required."
1483
- msgstr ""
1484
-
1485
- #: includes/compat/class-wc-stripe-email-failed-preorder-authentication.php:84
1486
- #: includes/compat/class-wc-stripe-email-failed-preorder-authentication.php:93
1487
- msgid "Payment authorization needed for pre-order {order_number}"
1488
- msgstr ""
1489
-
1490
- #: includes/compat/class-wc-stripe-email-failed-renewal-authentication.php:19
1491
- msgid "Failed Subscription Renewal SCA Authentication"
1492
- msgstr ""
1493
-
1494
- #: includes/compat/class-wc-stripe-email-failed-renewal-authentication.php:20
1495
- msgid ""
1496
- "Sent to a customer when a renewal fails because the transaction requires an "
1497
- "SCA verification. The email contains renewal order information and payment "
1498
- "links."
1499
- msgstr ""
1500
-
1501
- #: includes/compat/class-wc-stripe-email-failed-renewal-authentication.php:67
1502
- msgid ""
1503
- "Payment authorization needed for renewal of {site_title} order "
1504
- "{order_number}"
1505
- msgstr ""
1506
-
1507
- #: includes/compat/class-wc-stripe-email-failed-renewal-authentication.php:76
1508
- msgid "Payment authorization needed for renewal of order {order_number}"
1509
- msgstr ""
1510
-
1511
- #: includes/compat/class-wc-stripe-pre-orders-compat.php:53
1512
- msgid "Unable to store payment details. Please try again."
1513
- msgstr ""
1514
-
1515
- #: includes/compat/class-wc-stripe-pre-orders-compat.php:117
1516
- #: includes/compat/class-wc-stripe-subs-compat.php:372
1517
- #: includes/compat/class-wc-stripe-subs-compat.php:678
1518
- #. translators: %s is the charge Id
1519
- #. translators: %s is the charge Id
1520
- #. translators: %s is the stripe charge Id
1521
- msgid "Stripe charge awaiting authentication by user: %s."
1522
- msgstr ""
1523
-
1524
- #: includes/compat/class-wc-stripe-pre-orders-compat.php:134
1525
- #. translators: error message
1526
- msgid "Stripe Transaction Failed (%s)"
1527
- msgstr ""
1528
-
1529
- #: includes/compat/class-wc-stripe-sepa-subs-compat.php:84
1530
- #: includes/compat/class-wc-stripe-subs-compat.php:94
1531
- msgid "Update the Payment Method used for all of my active subscriptions."
1532
- msgstr ""
1533
-
1534
- #: includes/compat/class-wc-stripe-sepa-subs-compat.php:248
1535
- #: includes/compat/class-wc-stripe-subs-compat.php:298
1536
- msgid "Customer not found"
1537
- msgstr ""
1538
-
1539
- #: includes/compat/class-wc-stripe-sepa-subs-compat.php:408
1540
- #: includes/compat/class-wc-stripe-subs-compat.php:519
1541
- #. translators: error message
1542
- msgid "A \"Stripe Customer ID\" value is required."
1543
- msgstr ""
1544
-
1545
- #: includes/compat/class-wc-stripe-sepa-subs-compat.php:411
1546
- #: includes/compat/class-wc-stripe-subs-compat.php:522
1547
- msgid ""
1548
- "Invalid customer ID. A valid \"Stripe Customer ID\" must begin with "
1549
- "\"cus_\"."
1550
- msgstr ""
1551
-
1552
- #: includes/compat/class-wc-stripe-sepa-subs-compat.php:420
1553
- msgid ""
1554
- "Invalid source ID. A valid source \"Stripe Source ID\" must begin with "
1555
- "\"src_\" or \"card_\"."
1556
- msgstr ""
1557
-
1558
- #: includes/compat/class-wc-stripe-sepa-subs-compat.php:493
1559
- #. translators: 1) last 4 digits of SEPA Direct Debit
1560
- msgid "Via SEPA Direct Debit ending in %1$s"
1561
- msgstr ""
1562
-
1563
- #: includes/compat/class-wc-stripe-subs-compat.php:363
1564
- msgid "This transaction requires authentication."
1565
- msgstr ""
1566
-
1567
- #: includes/compat/class-wc-stripe-subs-compat.php:532
1568
- msgid ""
1569
- "Invalid source ID. A valid source \"Stripe Source ID\" must begin with "
1570
- "\"src_\", \"pm_\", or \"card_\"."
1571
- msgstr ""
1572
-
1573
- #: includes/compat/class-wc-stripe-subs-compat.php:613
1574
- #. translators: 1) card brand 2) last 4 digits
1575
- msgid "Via %1$s card ending in %2$s"
1576
- msgstr ""
1577
-
1578
- #: includes/compat/class-wc-stripe-subs-compat.php:711
1579
- msgid "Your early renewal order was successful."
1580
- msgstr ""
1581
-
1582
- #: includes/compat/class-wc-stripe-subs-compat.php:724
1583
- msgid ""
1584
- "Payment authorization for the renewal order was unsuccessful, please try "
1585
- "again."
1586
- msgstr ""
1587
-
1588
- #: includes/connect/class-wc-stripe-connect-api.php:89
1589
- msgid "Unable to send request to WooCommerce Connect server. Body must be an array."
1590
- msgstr ""
1591
-
1592
- #: includes/connect/class-wc-stripe-connect-api.php:105
1593
- msgid "Unable to encode body for request to WooCommerce Connect server."
1594
- msgstr ""
1595
-
1596
- #: includes/connect/class-wc-stripe-connect-api.php:137
1597
- #. Translators: HTTP error code.
1598
- msgid "Error: The WooCommerce Connect server returned HTTP code: %d"
1599
- msgstr ""
1600
-
1601
- #: includes/connect/class-wc-stripe-connect-api.php:146
1602
- #. Translators: content-type error code.
1603
- msgid "Error: The WooCommerce Connect server returned an invalid content-type: %s."
1604
- msgstr ""
1605
-
1606
- #: includes/connect/class-wc-stripe-connect-api.php:164
1607
- #. Translators: HTTP error code.
1608
- msgid ""
1609
- "Error: The WooCommerce Connect server returned ( %d ) and an empty response "
1610
- "body."
1611
- msgstr ""
1612
-
1613
- #: includes/connect/class-wc-stripe-connect-api.php:178
1614
- #. translators: %1$s: error code, %2$s: error message, %3$d: HTTP response code
1615
- msgid "Error: The WooCommerce Connect server returned: %1$s %2$s ( %3$d )"
1616
- msgstr ""
1617
-
1618
- #: includes/connect/class-wc-stripe-connect.php:47
1619
- msgid ""
1620
- "Your site must be served over HTTPS in order to connect your Stripe account "
1621
- "automatically."
1622
- msgstr ""
1623
-
1624
- #: includes/connect/class-wc-stripe-connect.php:97
1625
- msgid "You are not authorized to clear Stripe account keys."
1626
- msgstr ""
1627
-
1628
- #: includes/payment-methods/class-wc-gateway-stripe-alipay.php:61
1629
- #: woocommerce-gateway-stripe.php:315
1630
- msgid "Stripe Alipay"
1631
- msgstr ""
1632
-
1633
- #: includes/payment-methods/class-wc-gateway-stripe-alipay.php:63
1634
- #: includes/payment-methods/class-wc-gateway-stripe-bancontact.php:63
1635
- #: includes/payment-methods/class-wc-gateway-stripe-eps.php:63
1636
- #: includes/payment-methods/class-wc-gateway-stripe-giropay.php:63
1637
- #: includes/payment-methods/class-wc-gateway-stripe-ideal.php:63
1638
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:63
1639
- #: includes/payment-methods/class-wc-gateway-stripe-p24.php:63
1640
- #: includes/payment-methods/class-wc-gateway-stripe-sepa.php:78
1641
- #: includes/payment-methods/class-wc-gateway-stripe-sofort.php:63
1642
- #. translators: link
1643
- msgid "All other general Stripe settings can be adjusted <a href=\"%s\">here</a>."
1644
- msgstr ""
1645
-
1646
- #: includes/payment-methods/class-wc-gateway-stripe-alipay.php:189
1647
- #: includes/payment-methods/class-wc-gateway-stripe-bancontact.php:177
1648
- #: includes/payment-methods/class-wc-gateway-stripe-eps.php:177
1649
- #: includes/payment-methods/class-wc-gateway-stripe-giropay.php:177
1650
- #: includes/payment-methods/class-wc-gateway-stripe-ideal.php:177
1651
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:181
1652
- #: includes/payment-methods/class-wc-gateway-stripe-p24.php:178
1653
- #: includes/payment-methods/class-wc-gateway-stripe-sofort.php:177
1654
- msgid "Add Payment"
1655
- msgstr ""
1656
-
1657
- #: includes/payment-methods/class-wc-gateway-stripe-bancontact.php:61
1658
- #: woocommerce-gateway-stripe.php:309
1659
- msgid "Stripe Bancontact"
1660
- msgstr ""
1661
-
1662
- #: includes/payment-methods/class-wc-gateway-stripe-eps.php:61
1663
- #: woocommerce-gateway-stripe.php:312
1664
- msgid "Stripe EPS"
1665
- msgstr ""
1666
-
1667
- #: includes/payment-methods/class-wc-gateway-stripe-giropay.php:61
1668
- #: woocommerce-gateway-stripe.php:311
1669
- msgid "Stripe Giropay"
1670
- msgstr ""
1671
-
1672
- #: includes/payment-methods/class-wc-gateway-stripe-ideal.php:61
1673
- #: woocommerce-gateway-stripe.php:313
1674
- msgid "Stripe iDeal"
1675
- msgstr ""
1676
-
1677
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:61
1678
- #: woocommerce-gateway-stripe.php:317
1679
- msgid "Stripe Multibanco"
1680
- msgstr ""
1681
-
1682
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:240
1683
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:252
1684
- msgid "MULTIBANCO INFORMAÇÕES DE ENCOMENDA:"
1685
- msgstr ""
1686
-
1687
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:242
1688
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:255
1689
- msgid "Montante:"
1690
- msgstr ""
1691
-
1692
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:245
1693
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:259
1694
- msgid "Entidade:"
1695
- msgstr ""
1696
-
1697
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:248
1698
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:263
1699
- msgid "Referencia:"
1700
- msgstr ""
1701
-
1702
- #: includes/payment-methods/class-wc-gateway-stripe-multibanco.php:359
1703
- msgid "Awaiting Multibanco payment"
1704
- msgstr ""
1705
-
1706
- #: includes/payment-methods/class-wc-gateway-stripe-p24.php:61
1707
- #: woocommerce-gateway-stripe.php:314
1708
- msgid "Stripe P24"
1709
- msgstr ""
1710
-
1711
- #: includes/payment-methods/class-wc-gateway-stripe-sepa.php:76
1712
- #: woocommerce-gateway-stripe.php:316
1713
- msgid "Stripe SEPA Direct Debit"
1714
- msgstr ""
1715
-
1716
- #: includes/payment-methods/class-wc-gateway-stripe-sepa.php:209
1717
- #. translators: statement descriptor
1718
- msgid ""
1719
- "By providing your IBAN and confirming this payment, you are authorizing %s "
1720
- "and Stripe, our payment service provider, to send instructions to your bank "
1721
- "to debit your account and your bank to debit your account in accordance "
1722
- "with those instructions. You are entitled to a refund from your bank under "
1723
- "the terms and conditions of your agreement with your bank. A refund must be "
1724
- "claimed within 8 weeks starting from the date on which your account was "
1725
- "debited."
1726
- msgstr ""
1727
-
1728
- #: includes/payment-methods/class-wc-gateway-stripe-sepa.php:225
1729
- msgid "IBAN."
1730
- msgstr ""
1731
-
1732
- #: includes/payment-methods/class-wc-gateway-stripe-sepa.php:267
1733
- msgid ""
1734
- "TEST MODE ENABLED. In test mode, you can use IBAN number "
1735
- "DE89370400440532013000."
1736
- msgstr ""
1737
-
1738
- #: includes/payment-methods/class-wc-gateway-stripe-sofort.php:61
1739
- #: woocommerce-gateway-stripe.php:310
1740
- msgid "Stripe SOFORT"
1741
- msgstr ""
1742
-
1743
- #: includes/payment-methods/class-wc-stripe-payment-request.php:392
1744
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1207
1745
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1637
1746
- msgid "Tax"
1747
- msgstr ""
1748
-
1749
- #: includes/payment-methods/class-wc-stripe-payment-request.php:400
1750
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1215
1751
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1644
1752
- msgid "Shipping"
1753
- msgstr ""
1754
-
1755
- #: includes/payment-methods/class-wc-stripe-payment-request.php:407
1756
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1222
1757
- msgid "Pending"
1758
- msgstr ""
1759
-
1760
- #: includes/payment-methods/class-wc-stripe-payment-request.php:694
1761
- msgid "Sorry, we're not accepting prepaid cards at this time."
1762
- msgstr ""
1763
-
1764
- #: includes/payment-methods/class-wc-stripe-payment-request.php:696
1765
- #. translators: Do not translate the [option] placeholder
1766
- msgid "Unknown shipping option \"[option]\"."
1767
- msgstr ""
1768
-
1769
- #: includes/payment-methods/class-wc-stripe-payment-request.php:837
1770
- msgid "OR"
1771
- msgstr ""
1772
-
1773
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1050
1774
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1069
1775
- msgid "Unable to find shipping method for address."
1776
- msgstr ""
1777
-
1778
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1057
1779
- msgid "Unable to provide shipping options for Payment Requests."
1780
- msgstr ""
1781
-
1782
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1169
1783
- #. translators: %d is the product Id
1784
- msgid "Product with the ID (%d) cannot be found."
1785
- msgstr ""
1786
-
1787
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1190
1788
- #. translators: 1: product name 2: quantity in stock
1789
- msgid ""
1790
- "You cannot add that amount of \"%1$s\"; to the cart because there is not "
1791
- "enough stock (%2$s remaining)."
1792
- msgstr ""
1793
-
1794
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1462
1795
- #. translators: %s: country.
1796
- msgid ""
1797
- "The Payment Request button is not supported in %s because some required "
1798
- "fields couldn't be verified. Please proceed to the checkout page and try "
1799
- "again."
1800
- msgstr ""
1801
-
1802
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1478
1803
- msgid "Empty cart"
1804
- msgstr ""
1805
-
1806
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1651
1807
- msgid "Discount"
1808
- msgstr ""
1809
-
1810
- #: includes/payment-methods/class-wc-stripe-payment-request.php:1694
1811
- #. translators: The text encapsulated in `**` can be replaced with "Apple Pay"
1812
- #. or "Google Pay". Please translate this text, but don't remove the `**`.
1813
- msgid ""
1814
- "To complete your transaction with **the selected payment method**, you must "
1815
- "log in or create an account with our site."
1816
- msgstr ""
1817
-
1818
- #: templates/emails/failed-preorder-authentication.php:20
1819
- msgid "Authorize the payment now &raquo;"
1820
- msgstr ""
1821
-
1822
- #: templates/emails/failed-preorder-authentication.php:57
1823
- msgid "Thanks for shopping with us."
1824
- msgstr ""
1825
-
1826
- #: templates/emails/failed-renewal-authentication-requested.php:35
1827
- #: templates/emails/plain/failed-renewal-authentication-requested.php:26
1828
- msgid "The renewal order is as follows:"
1829
- msgstr ""
1830
-
1831
- #: templates/emails/failed-renewal-authentication.php:12
1832
- msgid "Authorize the payment &raquo;"
1833
- msgstr ""
1834
-
1835
- #: templates/emails/plain/failed-preorder-authentication.php:10
1836
- #. translators: %s is a link to the payment re-authentication URL.
1837
- msgid ""
1838
- "Your pre-order is now available, but payment cannot be completed "
1839
- "automatically. Please complete the payment now: %s"
1840
- msgstr ""
1841
-
1842
- #: woocommerce-gateway-stripe.php:41
1843
- #. translators: 1. URL link.
1844
- msgid ""
1845
- "Stripe requires WooCommerce to be installed and active. You can download %s "
1846
- "here."
1847
- msgstr ""
1848
-
1849
- #: woocommerce-gateway-stripe.php:51
1850
- #. translators: $1. Minimum WooCommerce version. $2. Current WooCommerce
1851
- #. version.
1852
- msgid ""
1853
- "Stripe requires WooCommerce %1$s or greater to be installed and active. "
1854
- "WooCommerce %2$s is no longer supported."
1855
- msgstr ""
1856
-
1857
- #: woocommerce-gateway-stripe.php:239
1858
- msgid "Settings"
1859
- msgstr ""
1860
-
1861
- #: woocommerce-gateway-stripe.php:255
1862
- msgid "View Documentation"
1863
- msgstr ""
1864
-
1865
- #: woocommerce-gateway-stripe.php:255
1866
- msgid "Docs"
1867
- msgstr ""
1868
-
1869
- #: woocommerce-gateway-stripe.php:256
1870
- msgid "Open a support request at WooCommerce.com"
1871
  msgstr ""
1872
 
1873
- #: woocommerce-gateway-stripe.php:256
1874
- msgid "Support"
1875
  msgstr ""
1876
 
1877
- #. Plugin Name of the plugin/theme
1878
- msgid "WooCommerce Stripe Gateway"
1879
  msgstr ""
1880
 
1881
- #. Plugin URI of the plugin/theme
1882
- msgid "https://wordpress.org/plugins/woocommerce-gateway-stripe/"
1883
  msgstr ""
1884
 
1885
- #. Description of the plugin/theme
1886
- msgid "Take credit card payments on your store using Stripe."
1887
  msgstr ""
1888
 
1889
- #. Author of the plugin/theme
1890
- msgid "WooCommerce"
1891
  msgstr ""
1892
 
1893
- #. Author URI of the plugin/theme
1894
- msgid "https://woocommerce.com/"
1895
  msgstr ""
1896
 
1897
- #: includes/compat/class-wc-stripe-email-failed-authentication.php:84
1898
- msgctxt "an email notification"
1899
- msgid "Enable/Disable"
1900
  msgstr ""
1901
 
1902
- #: templates/emails/failed-preorder-authentication.php:19
1903
- #. translators: %s is a link to the payment re-authentication URL.
1904
- msgctxt "In failed SCA authentication for a pre-order."
1905
- msgid ""
1906
- "Your pre-order is now available, but payment cannot be completed "
1907
- "automatically. %s"
1908
  msgstr ""
1909
 
1910
- #: templates/emails/failed-renewal-authentication-requested.php:23
1911
- #: templates/emails/plain/failed-renewal-authentication-requested.php:17
1912
- #. translators: %1$s: an order number, %2$s: the customer's full name, %3$s:
1913
- #. lowercase human time diff in the form returned by wcs_get_human_time_diff(),
1914
- #. e.g. 'in 12 hours'.
1915
- msgctxt "In admin renewal failed email"
1916
  msgid ""
1917
- "The automatic recurring payment for order %1$s from %2$s has failed. The "
1918
- "customer was sent an email requesting authentication of payment. If the "
1919
- "customer does not authenticate the payment, they will be requested by email "
1920
- "again %3$s."
1921
  msgstr ""
1922
 
1923
- #: templates/emails/failed-renewal-authentication.php:12
1924
- #: templates/emails/plain/failed-renewal-authentication.php:9
1925
- #. translators: %1$s: name of the blog, %2$s: link to payment re-authentication
1926
- #. URL, note: no full stop due to url at the end
1927
- #. translators: %1$s: name of the blog, %2$s: link to checkout payment url,
1928
- #. note: no full stop due to url at the end
1929
- msgctxt "In failed renewal authentication email"
1930
- msgid ""
1931
- "The automatic payment to renew your subscription with %1$s has failed. To "
1932
- "reactivate the subscription, please login and authorize the renewal from "
1933
- "your account page: %2$s"
1934
  msgstr ""
 
 
1
  msgid ""
2
  msgstr ""
 
 
 
 
 
3
  "Content-Type: text/plain; charset=utf-8\n"
4
+ "X-Generator: babel-plugin-makepot\n"
 
 
 
 
5
 
6
+ #: client/blocks/credit-card/index.js:42
7
+ msgid "Credit / Debit Card"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  msgstr ""
9
 
10
+ #: client/blocks/credit-card/index.js:58
11
+ msgid "Stripe Credit Card payment method"
12
  msgstr ""
13
 
14
+ #: client/blocks/payment-request/custom-button.js:15
15
+ msgid "Buy now"
16
  msgstr ""
17
 
18
+ #: client/settings/payment-request-section/index.js:109
19
+ msgid "Show express checkouts on"
20
  msgstr ""
21
 
22
+ #: client/settings/payment-request-section/index.js:127
23
+ msgid "Checkout"
24
  msgstr ""
25
 
26
+ #: client/settings/payment-request-section/index.js:145
27
+ msgid "Product page"
28
  msgstr ""
29
 
30
+ #: client/settings/payment-request-section/index.js:159
31
+ msgid "Cart"
32
  msgstr ""
33
 
34
+ #: client/settings/payment-request-section/index.js:171
35
+ msgid "Customize appearance"
 
36
  msgstr ""
37
 
38
+ #: client/settings/payment-request-section/index.js:68
39
+ msgid "Enable express checkouts"
 
 
 
 
40
  msgstr ""
41
 
42
+ #: client/settings/payment-request-section/index.js:74
 
 
 
 
 
43
  msgid ""
44
+ "By enabling this feature, you agree to {{stripeLink}}Stripe{{/stripeLink}}, "
45
+ "{{appleLink}}Apple{{/appleLink}}, and {{googleLink}}Google{{/googleLink}}'s "
46
+ "terms of use."
 
47
  msgstr ""
48
 
49
+ #: client/settings/save-settings-section/index.js:25
50
+ msgid "Save changes"
 
 
 
 
 
 
 
 
 
51
  msgstr ""
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: woocommerce, automattic, royho, akeda, mattyza, bor0, woothemes
3
  Tags: credit card, stripe, apple pay, payment request, google pay, sepa, sofort, bancontact, alipay, giropay, ideal, p24, woocommerce, automattic
4
  Requires at least: 4.6
5
- Tested up to: 5.7
6
  Requires PHP: 5.6
7
- Stable tag: 5.4.1
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
  Attributions: thorsten-stripe
@@ -126,7 +126,12 @@ If you get stuck, you can ask for help in the Plugin Forum.
126
 
127
  == Changelog ==
128
 
129
- = 5.4.1 - 2021-09-01 =
130
- * Fix - Get Subscription CustomerID from Order instead of User.
 
 
 
 
 
131
 
132
  [See changelog for all versions](https://raw.githubusercontent.com/woocommerce/woocommerce-gateway-stripe/trunk/changelog.txt).
2
  Contributors: woocommerce, automattic, royho, akeda, mattyza, bor0, woothemes
3
  Tags: credit card, stripe, apple pay, payment request, google pay, sepa, sofort, bancontact, alipay, giropay, ideal, p24, woocommerce, automattic
4
  Requires at least: 4.6
5
+ Tested up to: 5.8
6
  Requires PHP: 5.6
7
+ Stable tag: 5.5.0
8
  License: GPLv3
9
  License URI: https://www.gnu.org/licenses/gpl-3.0.html
10
  Attributions: thorsten-stripe
126
 
127
  == Changelog ==
128
 
129
+ = 5.5.0 - 2021-09-15 =
130
+ * Tweak - Moved the `WC_Gateway_Stripe::admin_scripts` method to `WC_Stripe_Settings_Controller::admin_scripts`.
131
+ * Fix - Save payment method during 3D Secure flow for Block-based checkout.
132
+ * Fix - Show subtotal on Payment Request dialog.
133
+ * Add - Settings to control Payment Request Button locations in the Stripe plugin settings. Persists changes made through pre-existing filters, or defaults to the Cart and Product pages if no filters are in use.
134
+ * Tweak - Deprecated the 'wc_stripe_hide_payment_request_on_product_page', 'wc_stripe_show_payment_request_on_checkout', and 'wc_stripe_show_payment_request_on_cart' filters in favor of the UI-driven approach in the plugin settings.
135
+ * Add - Notice for WP & WC version compatibility check.
136
 
137
  [See changelog for all versions](https://raw.githubusercontent.com/woocommerce/woocommerce-gateway-stripe/trunk/changelog.txt).
woocommerce-gateway-stripe.php CHANGED
@@ -5,11 +5,11 @@
5
  * Description: Take credit card payments on your store using Stripe.
6
  * Author: WooCommerce
7
  * Author URI: https://woocommerce.com/
8
- * Version: 5.4.1
9
  * Requires at least: 4.6
10
- * Tested up to: 5.7
11
  * WC requires at least: 3.3
12
- * WC tested up to: 5.4
13
  * Text Domain: woocommerce-gateway-stripe
14
  * Domain Path: /languages
15
  */
@@ -21,7 +21,7 @@ if ( ! defined( 'ABSPATH' ) ) {
21
  /**
22
  * Required minimums and constants
23
  */
24
- define( 'WC_STRIPE_VERSION', '5.4.1' ); // WRCS: DEFINED_VERSION.
25
  define( 'WC_STRIPE_MIN_PHP_VER', '5.6.0' );
26
  define( 'WC_STRIPE_MIN_WC_VER', '3.0' );
27
  define( 'WC_STRIPE_FUTURE_MIN_WC_VER', '3.3' );
@@ -128,7 +128,7 @@ function woocommerce_gateway_stripe() {
128
  $this->connect = new WC_Stripe_Connect( $this->api );
129
  $this->payment_request_configuration = new WC_Stripe_Payment_Request();
130
 
131
- add_action( 'rest_api_init', [ $this, 'register_connect_routes' ] );
132
  }
133
 
134
  /**
@@ -153,6 +153,14 @@ function woocommerce_gateway_stripe() {
153
  require_once dirname( __FILE__ ) . '/includes/class-wc-stripe-apple-pay-registration.php';
154
  require_once dirname( __FILE__ ) . '/includes/compat/class-wc-stripe-pre-orders-compat.php';
155
  require_once dirname( __FILE__ ) . '/includes/class-wc-gateway-stripe.php';
 
 
 
 
 
 
 
 
156
  require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-bancontact.php';
157
  require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-sofort.php';
158
  require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-giropay.php';
@@ -173,9 +181,19 @@ function woocommerce_gateway_stripe() {
173
  require_once dirname( __FILE__ ) . '/includes/class-wc-stripe-customer.php';
174
  require_once dirname( __FILE__ ) . '/includes/class-wc-stripe-intent-controller.php';
175
  require_once dirname( __FILE__ ) . '/includes/admin/class-wc-stripe-inbox-notes.php';
 
 
176
 
177
  if ( is_admin() ) {
178
  require_once dirname( __FILE__ ) . '/includes/admin/class-wc-stripe-admin-notices.php';
 
 
 
 
 
 
 
 
179
  }
180
 
181
  // REMOVE IN THE FUTURE.
@@ -192,6 +210,8 @@ function woocommerce_gateway_stripe() {
192
  if ( version_compare( WC_VERSION, '3.4', '<' ) ) {
193
  add_filter( 'woocommerce_get_sections_checkout', [ $this, 'filter_gateway_order_admin' ] );
194
  }
 
 
195
  }
196
 
197
  /**
@@ -225,6 +245,52 @@ function woocommerce_gateway_stripe() {
225
 
226
  add_woocommerce_inbox_variant();
227
  $this->update_plugin_version();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  }
229
  }
230
 
@@ -267,22 +333,37 @@ function woocommerce_gateway_stripe() {
267
  * @version 4.0.0
268
  */
269
  public function add_gateways( $methods ) {
270
- if ( class_exists( 'WC_Subscriptions_Order' ) && function_exists( 'wcs_create_renewal_order' ) ) {
271
- $methods[] = 'WC_Stripe_Subs_Compat';
272
- $methods[] = 'WC_Stripe_Sepa_Subs_Compat';
 
 
 
 
 
 
 
 
 
 
 
 
 
273
  } else {
274
- $methods[] = 'WC_Gateway_Stripe';
275
- $methods[] = 'WC_Gateway_Stripe_Sepa';
 
 
 
 
276
  }
277
 
278
- $methods[] = 'WC_Gateway_Stripe_Bancontact';
279
- $methods[] = 'WC_Gateway_Stripe_Sofort';
280
- $methods[] = 'WC_Gateway_Stripe_Giropay';
281
- $methods[] = 'WC_Gateway_Stripe_Eps';
282
- $methods[] = 'WC_Gateway_Stripe_Ideal';
283
- $methods[] = 'WC_Gateway_Stripe_P24';
284
- $methods[] = 'WC_Gateway_Stripe_Alipay';
285
- $methods[] = 'WC_Gateway_Stripe_Multibanco';
286
 
287
  return $methods;
288
  }
@@ -295,6 +376,9 @@ function woocommerce_gateway_stripe() {
295
  */
296
  public function filter_gateway_order_admin( $sections ) {
297
  unset( $sections['stripe'] );
 
 
 
298
  unset( $sections['stripe_bancontact'] );
299
  unset( $sections['stripe_sofort'] );
300
  unset( $sections['stripe_giropay'] );
@@ -305,7 +389,10 @@ function woocommerce_gateway_stripe() {
305
  unset( $sections['stripe_sepa'] );
306
  unset( $sections['stripe_multibanco'] );
307
 
308
- $sections['stripe'] = 'Stripe';
 
 
 
309
  $sections['stripe_bancontact'] = __( 'Stripe Bancontact', 'woocommerce-gateway-stripe' );
310
  $sections['stripe_sofort'] = __( 'Stripe SOFORT', 'woocommerce-gateway-stripe' );
311
  $sections['stripe_giropay'] = __( 'Stripe Giropay', 'woocommerce-gateway-stripe' );
@@ -331,11 +418,110 @@ function woocommerce_gateway_stripe() {
331
  */
332
  public function gateway_settings_update( $settings, $old_settings ) {
333
  if ( false === $old_settings ) {
334
- $gateway = new WC_Gateway_Stripe();
335
- $fields = $gateway->get_form_fields();
336
- $defaults = array_merge( array_fill_keys( array_keys( $fields ), '' ), wp_list_pluck( $fields, 'default' ) );
337
- return array_merge( $defaults, $settings );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
338
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
339
  return $settings;
340
  }
341
 
@@ -360,10 +546,12 @@ function woocommerce_gateway_stripe() {
360
  }
361
 
362
  /**
363
- * Register Stripe connect rest routes.
 
 
364
  */
365
- public function register_connect_routes() {
366
-
367
  require_once WC_STRIPE_PLUGIN_PATH . '/includes/abstracts/abstract-wc-stripe-connect-rest-controller.php';
368
  require_once WC_STRIPE_PLUGIN_PATH . '/includes/connect/class-wc-stripe-connect-rest-oauth-init-controller.php';
369
  require_once WC_STRIPE_PLUGIN_PATH . '/includes/connect/class-wc-stripe-connect-rest-oauth-connect-controller.php';
@@ -373,6 +561,12 @@ function woocommerce_gateway_stripe() {
373
 
374
  $oauth_init->register_routes();
375
  $oauth_connect->register_routes();
 
 
 
 
 
 
376
  }
377
  }
378
 
@@ -416,6 +610,17 @@ if ( ! function_exists( 'add_woocommerce_inbox_variant' ) ) {
416
  }
417
  register_activation_hook( __FILE__, 'add_woocommerce_inbox_variant' );
418
 
 
 
 
 
 
 
 
 
 
 
 
419
  // Hook in Blocks integration. This action is called in a callback on plugins loaded, so current Stripe plugin class
420
  // implementation is too late.
421
  add_action( 'woocommerce_blocks_loaded', 'woocommerce_gateway_stripe_woocommerce_block_support' );
@@ -430,6 +635,11 @@ function woocommerce_gateway_stripe_woocommerce_block_support() {
430
  add_action(
431
  'woocommerce_blocks_payment_method_type_registration',
432
  function( Automattic\WooCommerce\Blocks\Payments\PaymentMethodRegistry $payment_method_registry ) {
 
 
 
 
 
433
  $container = Automattic\WooCommerce\Blocks\Package::container();
434
  // registers as shared instance.
435
  $container->register(
5
  * Description: Take credit card payments on your store using Stripe.
6
  * Author: WooCommerce
7
  * Author URI: https://woocommerce.com/
8
+ * Version: 5.5.0
9
  * Requires at least: 4.6
10
+ * Tested up to: 5.8
11
  * WC requires at least: 3.3
12
+ * WC tested up to: 5.6
13
  * Text Domain: woocommerce-gateway-stripe
14
  * Domain Path: /languages
15
  */
21
  /**
22
  * Required minimums and constants
23
  */
24
+ define( 'WC_STRIPE_VERSION', '5.5.0' ); // WRCS: DEFINED_VERSION.
25
  define( 'WC_STRIPE_MIN_PHP_VER', '5.6.0' );
26
  define( 'WC_STRIPE_MIN_WC_VER', '3.0' );
27
  define( 'WC_STRIPE_FUTURE_MIN_WC_VER', '3.3' );
128
  $this->connect = new WC_Stripe_Connect( $this->api );
129
  $this->payment_request_configuration = new WC_Stripe_Payment_Request();
130
 
131
+ add_action( 'rest_api_init', [ $this, 'register_routes' ] );
132
  }
133
 
134
  /**
153
  require_once dirname( __FILE__ ) . '/includes/class-wc-stripe-apple-pay-registration.php';
154
  require_once dirname( __FILE__ ) . '/includes/compat/class-wc-stripe-pre-orders-compat.php';
155
  require_once dirname( __FILE__ ) . '/includes/class-wc-gateway-stripe.php';
156
+ require_once dirname( __FILE__ ) . '/includes/class-wc-stripe-feature-flags.php';
157
+ require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-stripe-upe-payment-gateway.php';
158
+ require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-stripe-upe-payment-method.php';
159
+ require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-stripe-upe-payment-method-cc.php';
160
+ require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-stripe-upe-payment-method-giropay.php';
161
+ require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-stripe-upe-payment-method-ideal.php';
162
+ require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-stripe-upe-payment-method-bancontact.php';
163
+ require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-stripe-upe-payment-method-eps.php';
164
  require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-bancontact.php';
165
  require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-sofort.php';
166
  require_once dirname( __FILE__ ) . '/includes/payment-methods/class-wc-gateway-stripe-giropay.php';
181
  require_once dirname( __FILE__ ) . '/includes/class-wc-stripe-customer.php';
182
  require_once dirname( __FILE__ ) . '/includes/class-wc-stripe-intent-controller.php';
183
  require_once dirname( __FILE__ ) . '/includes/admin/class-wc-stripe-inbox-notes.php';
184
+ require_once dirname( __FILE__ ) . '/includes/class-wc-stripe-upe-compatibility.php';
185
+ require_once dirname( __FILE__ ) . '/includes/admin/class-wc-stripe-upe-compatibility-controller.php';
186
 
187
  if ( is_admin() ) {
188
  require_once dirname( __FILE__ ) . '/includes/admin/class-wc-stripe-admin-notices.php';
189
+ require_once dirname( __FILE__ ) . '/includes/admin/class-wc-stripe-settings-controller.php';
190
+
191
+ new WC_Stripe_Settings_Controller();
192
+
193
+ if ( WC_Stripe_Feature_Flags::is_upe_settings_redesign_enabled() ) {
194
+ require_once dirname( __FILE__ ) . '/includes/admin/class-wc-stripe-onboarding-controller.php';
195
+ new WC_Stripe_Onboarding_Controller();
196
+ }
197
  }
198
 
199
  // REMOVE IN THE FUTURE.
210
  if ( version_compare( WC_VERSION, '3.4', '<' ) ) {
211
  add_filter( 'woocommerce_get_sections_checkout', [ $this, 'filter_gateway_order_admin' ] );
212
  }
213
+
214
+ new WC_Stripe_UPE_Compatibility_Controller();
215
  }
216
 
217
  /**
245
 
246
  add_woocommerce_inbox_variant();
247
  $this->update_plugin_version();
248
+
249
+ // TODO: Remove this when we're reasonably sure most merchants have had their
250
+ // settings updated like this. ~80% of merchants is a good threshold.
251
+ // - @reykjalin
252
+ $this->update_prb_location_settings();
253
+ }
254
+ }
255
+
256
+ /**
257
+ * Updates the PRB location settings based on deprecated filters.
258
+ *
259
+ * The filters were removed in favor of plugin settings. This function can, and should,
260
+ * be removed when we're reasonably sure most merchants have had their settings updated
261
+ * through this function. Maybe ~80% of merchants is a good threshold?
262
+ *
263
+ * @since 5.5.0
264
+ * @version 5.5.0
265
+ */
266
+ public function update_prb_location_settings() {
267
+ $stripe_settings = get_option( 'woocommerce_stripe_settings', [] );
268
+ $prb_locations = isset( $stripe_settings['payment_request_button_locations'] )
269
+ ? $stripe_settings['payment_request_button_locations']
270
+ : [];
271
+ if ( ! empty( $stripe_settings ) && empty( $prb_locations ) ) {
272
+ global $post;
273
+
274
+ $should_show_on_product_page = ! apply_filters( 'wc_stripe_hide_payment_request_on_product_page', false, $post );
275
+ $should_show_on_cart_page = apply_filters( 'wc_stripe_show_payment_request_on_cart', true );
276
+ $should_show_on_checkout_page = apply_filters( 'wc_stripe_show_payment_request_on_checkout', false, $post );
277
+
278
+ $new_prb_locations = [];
279
+
280
+ if ( $should_show_on_product_page ) {
281
+ $new_prb_locations[] = 'product';
282
+ }
283
+
284
+ if ( $should_show_on_cart_page ) {
285
+ $new_prb_locations[] = 'cart';
286
+ }
287
+
288
+ if ( $should_show_on_checkout_page ) {
289
+ $new_prb_locations[] = 'checkout';
290
+ }
291
+
292
+ $stripe_settings['payment_request_button_locations'] = $new_prb_locations;
293
+ update_option( 'woocommerce_stripe_settings', $stripe_settings );
294
  }
295
  }
296
 
333
  * @version 4.0.0
334
  */
335
  public function add_gateways( $methods ) {
336
+ if ( ! WC_Stripe_Feature_Flags::is_upe_preview_enabled() ) {
337
+ $methods[] = ( class_exists( 'WC_Subscriptions_Order' ) && function_exists( 'wcs_create_renewal_order' ) ) ? WC_Stripe_Subs_Compat::class : WC_Gateway_Stripe::class;
338
+ $methods[] = ( class_exists( 'WC_Subscriptions_Order' ) && function_exists( 'wcs_create_renewal_order' ) ) ? WC_Stripe_Sepa_Subs_Compat::class : WC_Gateway_Stripe_Sepa::class;
339
+ $methods[] = WC_Gateway_Stripe_Bancontact::class;
340
+ $methods[] = WC_Gateway_Stripe_Sofort::class;
341
+ $methods[] = WC_Gateway_Stripe_Giropay::class;
342
+ $methods[] = WC_Gateway_Stripe_Eps::class;
343
+ $methods[] = WC_Gateway_Stripe_Ideal::class;
344
+ $methods[] = WC_Gateway_Stripe_P24::class;
345
+ $methods[] = WC_Gateway_Stripe_Alipay::class;
346
+ $methods[] = WC_Gateway_Stripe_Multibanco::class;
347
+ return $methods;
348
+ }
349
+
350
+ if ( WC_Stripe_Feature_Flags::is_upe_checkout_enabled() ) {
351
+ $methods[] = WC_Stripe_UPE_Payment_Gateway::class;
352
  } else {
353
+ // These payment gateways will be hidden when UPE is enabled:
354
+ $methods[] = ( class_exists( 'WC_Subscriptions_Order' ) && function_exists( 'wcs_create_renewal_order' ) ) ? WC_Stripe_Subs_Compat::class : WC_Gateway_Stripe::class;
355
+ $methods[] = WC_Gateway_Stripe_Giropay::class;
356
+ $methods[] = WC_Gateway_Stripe_Ideal::class;
357
+ $methods[] = WC_Gateway_Stripe_Bancontact::class;
358
+ $methods[] = WC_Gateway_Stripe_Eps::class;
359
  }
360
 
361
+ // These payment gateways will always be visible, regardless if UPE is enabled or disabled:
362
+ $methods[] = ( class_exists( 'WC_Subscriptions_Order' ) && function_exists( 'wcs_create_renewal_order' ) ) ? WC_Stripe_Sepa_Subs_Compat::class : WC_Gateway_Stripe_Sepa::class;
363
+ $methods[] = WC_Gateway_Stripe_Sofort::class;
364
+ $methods[] = WC_Gateway_Stripe_P24::class;
365
+ $methods[] = WC_Gateway_Stripe_Alipay::class;
366
+ $methods[] = WC_Gateway_Stripe_Multibanco::class;
 
 
367
 
368
  return $methods;
369
  }
376
  */
377
  public function filter_gateway_order_admin( $sections ) {
378
  unset( $sections['stripe'] );
379
+ if ( WC_Stripe_Feature_Flags::is_upe_preview_enabled() ) {
380
+ unset( $sections['stripe_upe'] );
381
+ }
382
  unset( $sections['stripe_bancontact'] );
383
  unset( $sections['stripe_sofort'] );
384
  unset( $sections['stripe_giropay'] );
389
  unset( $sections['stripe_sepa'] );
390
  unset( $sections['stripe_multibanco'] );
391
 
392
+ $sections['stripe'] = 'Stripe';
393
+ if ( WC_Stripe_Feature_Flags::is_upe_preview_enabled() ) {
394
+ $sections['stripe_upe'] = 'Stripe checkout experience';
395
+ }
396
  $sections['stripe_bancontact'] = __( 'Stripe Bancontact', 'woocommerce-gateway-stripe' );
397
  $sections['stripe_sofort'] = __( 'Stripe SOFORT', 'woocommerce-gateway-stripe' );
398
  $sections['stripe_giropay'] = __( 'Stripe Giropay', 'woocommerce-gateway-stripe' );
418
  */
419
  public function gateway_settings_update( $settings, $old_settings ) {
420
  if ( false === $old_settings ) {
421
+ $gateway = new WC_Gateway_Stripe();
422
+ $fields = $gateway->get_form_fields();
423
+ $old_settings = array_merge( array_fill_keys( array_keys( $fields ), '' ), wp_list_pluck( $fields, 'default' ) );
424
+ $settings = array_merge( $old_settings, $settings );
425
+ }
426
+
427
+ if ( ! WC_Stripe_Feature_Flags::is_upe_preview_enabled() ) {
428
+ return $settings;
429
+ }
430
+
431
+ return $this->toggle_upe( $settings, $old_settings );
432
+ }
433
+
434
+ /**
435
+ * Enable or disable UPE.
436
+ *
437
+ * When enabling UPE: For each currently enabled Stripe LPM, the corresponding UPE method is enabled.
438
+ *
439
+ * When disabling UPE: For each currently enabled UPE method, the corresponding LPM is enabled.
440
+ *
441
+ * @param array $settings New settings to save.
442
+ * @param array|bool $old_settings Existing settings, if any.
443
+ * @return array New value but with defaults initially filled in for missing settings.
444
+ */
445
+ protected function toggle_upe( $settings, $old_settings ) {
446
+ if ( false === $old_settings ) {
447
+ $old_settings = [ WC_Stripe_Feature_Flags::UPE_CHECKOUT_FEATURE_ATTRIBUTE_NAME => 'no' ];
448
+ }
449
+ if ( ! isset( $settings[ WC_Stripe_Feature_Flags::UPE_CHECKOUT_FEATURE_ATTRIBUTE_NAME ] ) || $settings[ WC_Stripe_Feature_Flags::UPE_CHECKOUT_FEATURE_ATTRIBUTE_NAME ] === $old_settings[ WC_Stripe_Feature_Flags::UPE_CHECKOUT_FEATURE_ATTRIBUTE_NAME ] ) {
450
+ return $settings;
451
  }
452
+
453
+ if ( 'no' === $old_settings[ WC_Stripe_Feature_Flags::UPE_CHECKOUT_FEATURE_ATTRIBUTE_NAME ] && 'yes' === $settings[ WC_Stripe_Feature_Flags::UPE_CHECKOUT_FEATURE_ATTRIBUTE_NAME ] ) {
454
+ return $this->enable_upe( $settings );
455
+ }
456
+
457
+ return $this->disable_upe( $settings );
458
+ }
459
+
460
+ protected function enable_upe( $settings ) {
461
+ $payment_gateways = WC()->payment_gateways->payment_gateways();
462
+ foreach ( WC_Stripe_UPE_Payment_Gateway::UPE_AVAILABLE_METHODS as $method_class ) {
463
+ $lpm_gateway_id = constant( $method_class::LPM_GATEWAY_CLASS . '::ID' );
464
+ if ( isset( $payment_gateways[ $lpm_gateway_id ] ) && 'yes' === $payment_gateways[ $lpm_gateway_id ]->enabled ) {
465
+ // DISABLE LPM
466
+ if ( 'stripe' !== $lpm_gateway_id ) {
467
+ /**
468
+ * TODO: This can be replaced with:
469
+ *
470
+ * $payment_gateways[ $lpm_gateway_id ]->update_option( 'enabled', 'no' );
471
+ * $payment_gateways[ $lpm_gateway_id ]->enabled = 'no';
472
+ *
473
+ * ...once the minimum WC version is 3.4.0.
474
+ */
475
+ $payment_gateways[ $lpm_gateway_id ]->settings['enabled'] = 'no';
476
+ update_option(
477
+ $payment_gateways[ $lpm_gateway_id ]->get_option_key(),
478
+ apply_filters( 'woocommerce_settings_api_sanitized_fields_' . $payment_gateways[ $lpm_gateway_id ]::ID, $payment_gateways[ $lpm_gateway_id ]->settings ),
479
+ 'yes'
480
+ );
481
+ }
482
+ // ENABLE UPE METHOD
483
+ if ( ! isset( $settings['upe_checkout_experience_accepted_payments'] ) ) {
484
+ $settings['upe_checkout_experience_accepted_payments'] = [];
485
+ }
486
+ $settings['upe_checkout_experience_accepted_payments'][] = $method_class::STRIPE_ID;
487
+ }
488
+ }
489
+ if ( empty( $settings['upe_checkout_experience_accepted_payments'] ) ) {
490
+ $settings['upe_checkout_experience_accepted_payments'] = [ 'card' ];
491
+ } else {
492
+ // The 'stripe' gateway must be enabled for UPE if any LPMs were enabled.
493
+ $settings['enabled'] = 'yes';
494
+ }
495
+
496
+ return $settings;
497
+ }
498
+
499
+ protected function disable_upe( $settings ) {
500
+ $upe_gateway = new WC_Stripe_UPE_Payment_Gateway();
501
+ $upe_enabled_method_ids = $upe_gateway->get_upe_enabled_payment_method_ids();
502
+ foreach ( WC_Stripe_UPE_Payment_Gateway::UPE_AVAILABLE_METHODS as $method_class ) {
503
+ if ( ! defined( "$method_class::LPM_GATEWAY_CLASS" ) || ! in_array( $method_class::STRIPE_ID, $upe_enabled_method_ids, true ) ) {
504
+ continue;
505
+ }
506
+ // ENABLE LPM
507
+ $gateway_class = $method_class::LPM_GATEWAY_CLASS;
508
+ $gateway = new $gateway_class();
509
+ /**
510
+ * TODO: This can be replaced with:
511
+ *
512
+ * $gateway->update_option( 'enabled', 'yes' );
513
+ *
514
+ * ...once the minimum WC version is 3.4.0.
515
+ */
516
+ $gateway->settings['enabled'] = 'yes';
517
+ update_option( $gateway->get_option_key(), apply_filters( 'woocommerce_settings_api_sanitized_fields_' . $gateway::ID, $gateway->settings ), 'yes' );
518
+ }
519
+ // Disable main Stripe/card LPM if 'card' UPE method wasn't enabled.
520
+ if ( ! in_array( 'card', $upe_enabled_method_ids, true ) ) {
521
+ $settings['enabled'] = 'no';
522
+ }
523
+ // DISABLE ALL UPE METHODS
524
+ $settings['upe_checkout_experience_accepted_payments'] = [];
525
  return $settings;
526
  }
527
 
546
  }
547
 
548
  /**
549
+ * Register REST API routes.
550
+ *
551
+ * New endpoints/controllers can be added here.
552
  */
553
+ public function register_routes() {
554
+ /** API includes */
555
  require_once WC_STRIPE_PLUGIN_PATH . '/includes/abstracts/abstract-wc-stripe-connect-rest-controller.php';
556
  require_once WC_STRIPE_PLUGIN_PATH . '/includes/connect/class-wc-stripe-connect-rest-oauth-init-controller.php';
557
  require_once WC_STRIPE_PLUGIN_PATH . '/includes/connect/class-wc-stripe-connect-rest-oauth-connect-controller.php';
561
 
562
  $oauth_init->register_routes();
563
  $oauth_connect->register_routes();
564
+
565
+ if ( WC_Stripe_Feature_Flags::is_upe_preview_enabled() ) {
566
+ require_once WC_STRIPE_PLUGIN_PATH . '/includes/admin/class-wc-rest-upe-flag-toggle-controller.php';
567
+ $upe_flag_toggle_controller = new WC_REST_UPE_Flag_Toggle_Controller();
568
+ $upe_flag_toggle_controller->register_routes();
569
+ }
570
  }
571
  }
572
 
610
  }
611
  register_activation_hook( __FILE__, 'add_woocommerce_inbox_variant' );
612
 
613
+ function wcstripe_deactivated() {
614
+ // admin notes are not supported on older versions of WooCommerce.
615
+ if ( version_compare( WC_VERSION, '4.4.0', '>=' ) ) {
616
+ require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-feature-flags.php';
617
+ require_once WC_STRIPE_PLUGIN_PATH . '/includes/class-wc-stripe-upe-compatibility.php';
618
+ require_once WC_STRIPE_PLUGIN_PATH . '/includes/notes/class-wc-stripe-upe-compatibility-note.php';
619
+ WC_Stripe_UPE_Compatibility_Note::possibly_delete_note();
620
+ }
621
+ }
622
+ register_deactivation_hook( __FILE__, 'wcstripe_deactivated' );
623
+
624
  // Hook in Blocks integration. This action is called in a callback on plugins loaded, so current Stripe plugin class
625
  // implementation is too late.
626
  add_action( 'woocommerce_blocks_loaded', 'woocommerce_gateway_stripe_woocommerce_block_support' );
635
  add_action(
636
  'woocommerce_blocks_payment_method_type_registration',
637
  function( Automattic\WooCommerce\Blocks\Payments\PaymentMethodRegistry $payment_method_registry ) {
638
+ // I noticed some incompatibility with WP 5.x and WC 5.3 when `_wcstripe_feature_upe_settings` is enabled.
639
+ if ( ! class_exists( 'WC_Stripe_Payment_Request' ) ) {
640
+ return;
641
+ }
642
+
643
  $container = Automattic\WooCommerce\Blocks\Package::container();
644
  // registers as shared instance.
645
  $container->register(