Payment Plugins for Stripe WooCommerce - Version 3.3.32

Version Description

  • 11/11/22 =
  • Updated - Improved Payment form (beta) performance
  • Updated - Improved Link integration
  • Updated - WC tested up to 7.1
Download this release

Release Info

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

Code changes from version 3.3.31 to 3.3.32

Files changed (31) hide show
  1. assets/build/ach-connections.asset.php +1 -1
  2. assets/build/ach-connections.js.map +1 -1
  3. assets/build/link-checkout.asset.php +1 -1
  4. assets/build/link-checkout.js +1 -1
  5. assets/build/link-checkout.js.map +1 -1
  6. assets/js/frontend/credit-card.js +50 -75
  7. assets/js/frontend/credit-card.min.js +1 -1
  8. assets/js/frontend/link-checkout.js +4 -2
  9. i18n/languages/woo-stripe-payment.pot +29 -29
  10. includes/admin/settings/class-wc-stripe-advanced-settings.php +0 -9
  11. includes/class-stripe.php +1 -1
  12. includes/class-wc-stripe-api-request-filter.php +11 -1
  13. includes/class-wc-stripe-field-manager.php +1 -1
  14. includes/class-wc-stripe-payment-intent.php +24 -19
  15. includes/gateways/class-wc-payment-gateway-stripe-cc.php +12 -16
  16. includes/traits/wc-stripe-payment-traits.php +8 -0
  17. packages/blocks/assets/js/payment-methods/credit-card/payment-element.js +22 -8
  18. packages/blocks/assets/js/payment-methods/hooks/index.js +1 -1
  19. packages/blocks/assets/js/payment-methods/hooks/{use-update-payment-intent.js → use-deferred-payment-intent.js} +17 -17
  20. packages/blocks/assets/js/payment-methods/link/hooks/use-link.js +17 -7
  21. packages/blocks/assets/js/payment-methods/link/index.js +17 -8
  22. packages/blocks/assets/js/payment-methods/util.js +10 -4
  23. packages/blocks/build/commons.js +1 -1
  24. packages/blocks/build/commons.js.map +1 -1
  25. packages/blocks/src/Payments/Gateways/CreditCardPayment.php +3 -39
  26. packages/blocks/src/Payments/Gateways/LinkPayment.php +0 -41
  27. packages/blocks/src/Payments/PaymentsApi.php +1 -1
  28. packages/blocks/src/StoreApi/SchemaController.php +1 -1
  29. packages/cartflows/build/wc-stripe-cartflows.asset.php +1 -1
  30. packages/cartflows/build/wc-stripe-cartflows.js +1 -1
  31. packages/cartflows/build/wc-stripe-cartflows.js.map +1 -1
assets/build/ach-connections.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('@paymentplugins/wc-stripe', 'jquery', 'wp-polyfill'), 'version' => '4224d0603ed1e9050412d4367f1bdedc');
1
+ <?php return array('dependencies' => array('jquery', 'wc-stripe-wc-stripe', 'wp-polyfill'), 'version' => '1367259fc973571cdfb04b711dae10f1');
assets/build/ach-connections.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ach-connections.js","mappings":"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","sources":["webpack://woo-stripe-payment/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://woo-stripe-payment/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://woo-stripe-payment/external window \"jQuery\"","webpack://woo-stripe-payment/external window [\"wc_stripe\"]","webpack://woo-stripe-payment/webpack/bootstrap","webpack://woo-stripe-payment/./assets/js/frontend/ach-connections.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","module.exports = window[\"jQuery\"];","module.exports = window[\"wc_stripe\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import $ from 'jquery';\nimport {BaseGateway, CheckoutGateway} from '@paymentplugins/wc-stripe';\n\nfunction StripeACH(params) {\n BaseGateway.call(this, params);\n CheckoutGateway.call(this);\n}\n\n\nStripeACH.prototype.initialize = function () {\n window.addEventListener('hashchange', this.hashchange.bind(this));\n $(document.body).on('payment_method_selected', this.payment_method_selected.bind(this));\n $(document.body).on('click', '#place_order', this.on_order_pay.bind(this));\n}\n\nStripeACH.prototype.checkout_place_order = function () {\n this.payment_token_received = true;\n return CheckoutGateway.prototype.checkout_place_order.apply(this);\n}\n\nStripeACH.prototype.on_order_pay = function (e) {\n if (this.is_gateway_selected()) {\n // create the setup intent.\n if (this.is_change_payment_method()) {\n const {order_id, order_key} = this.params;\n e.preventDefault();\n this.create_setup_intent({order_id, order_key}).then(({setup_intent}) => {\n this.handle_payment_method_setup({\n order_id,\n order_key,\n client_secret: setup_intent.client_secret\n });\n });\n } else if (this.is_current_page('order_pay')) {\n e.preventDefault();\n this.process_order_pay();\n }\n }\n}\n\nStripeACH.prototype.handle_next_action = function (data) {\n const {client_secret} = data;\n this.stripe.collectBankAccountForPayment({\n clientSecret: client_secret,\n params: {\n payment_method_type: 'us_bank_account',\n payment_method_data: {\n billing_details: {\n name: this.get_customer_name(this.get_billing_prefix()),\n email: this.fields.get('billing_email', null),\n },\n },\n }\n }).then(({paymentIntent, error}) => {\n if (error) {\n return this.submit_error(error);\n }\n // show the mandate confirmation\n if (paymentIntent.status === \"requires_confirmation\") {\n this.do_payment_confirmation(data);\n } else {\n this.cancel_payment_processing();\n }\n });\n}\n\nStripeACH.prototype.handle_payment_method_setup = function (data) {\n const {client_secret} = data;\n this.stripe.collectBankAccountForSetup({\n clientSecret: client_secret,\n params: {\n payment_method_type: 'us_bank_account',\n payment_method_data: {\n billing_details: {\n name: this.get_customer_name(this.get_billing_prefix()),\n email: this.fields.get('billing_email', null),\n },\n },\n }\n }).then(({setupIntent, error}) => {\n if (error) {\n return this.submit_error(error);\n }\n // show the mandate confirmation\n if (setupIntent.status === \"requires_confirmation\") {\n this.do_setup_confirmation(data);\n } else {\n this.cancel_payment_processing();\n }\n });\n}\n\nStripeACH.prototype.do_payment_confirmation = function ({client_secret, order_id, order_key}) {\n this.stripe.confirmUsBankAccountPayment(client_secret).then(({paymentIntent, error}) => {\n if (error) {\n return this.submit_error(error);\n }\n if (paymentIntent.status === 'requires_payment_method') {\n this.cancel_payment_processing();\n } else if (paymentIntent.status === 'requires_action') {\n // paymentIntent?.next_action?.type === 'verify_with_microdeposits'\n // todo - eventually support microdeposits. For now, show a message\n this.cancel_payment_processing();\n return this.submit_error({code: 'ach_instant_only'});\n } else if (paymentIntent.status === 'processing') {\n this.set_nonce(paymentIntent.payment_method);\n if (this.is_current_page('order_pay')) {\n this.get_form().trigger('submit');\n } else {\n this.process_payment(order_id, order_key);\n }\n }\n });\n}\n\nStripeACH.prototype.do_setup_confirmation = function ({client_secret, order_id, order_key}) {\n this.stripe.confirmUsBankAccountSetup(client_secret).then(({setupIntent, error}) => {\n if (error) {\n return this.submit_error(error);\n }\n if (setupIntent.status === 'requires_payment_method') {\n this.cancel_payment_processing();\n } else if (setupIntent.status === 'requires_action') {\n // paymentIntent?.next_action?.type === 'verify_with_microdeposits'\n // todo - eventually support microdeposits. For now, show a message\n this.cancel_payment_processing();\n return this.submit_error({code: 'ach_instant_only'});\n } else if (setupIntent.status === 'succeeded') {\n this.set_nonce(setupIntent.payment_method);\n if (this.is_current_page('order_pay') || this.is_change_payment_method()) {\n this.get_form().trigger('submit');\n } else {\n this.process_payment(order_id, order_key);\n }\n }\n });\n}\n\nStripeACH.prototype.hide_place_order = function () {\n}\n\nStripeACH.prototype.cancel_payment_processing = function () {\n $(this.container).closest('form').removeClass('processing');\n $(this.container).closest('form')?.unblock();\n}\n\nStripeACH.prototype.fees_enabled = function () {\n return this.params.fees_enabled == \"1\";\n}\n\nStripeACH.prototype.payment_method_selected = function () {\n if (this.fees_enabled()) {\n $(document.body).trigger('update_checkout');\n }\n}\n\nStripeACH.prototype.create_setup_intent = function (data) {\n return new Promise((resolve, reject) => {\n $.ajax({\n method: 'POST',\n dataType: 'json',\n data: {payment_method: this.gateway_id, ...data},\n url: this.params.routes.base_path.replace('%s', 'wc-stripe/v1/subscriptions/setup-intent'),\n beforeSend: this.ajax_before_send.bind(this)\n }).done(response => {\n if (response.code) {\n reject(response.message);\n } else {\n resolve(response);\n }\n }).fail((xhr, textStatus, errorThrown) => {\n this.submit_error(errorThrown);\n });\n })\n}\n\nStripeACH.prototype = {...BaseGateway.prototype, ...CheckoutGateway.prototype, ...StripeACH.prototype};\n\nnew StripeACH(wc_stripe_ach_connections_params);"],"names":["module","exports","obj","key","value","Object","defineProperty","enumerable","configurable","writable","__esModule","window","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","StripeACH","params","BaseGateway","call","this","CheckoutGateway","prototype","initialize","addEventListener","hashchange","bind","document","body","on","payment_method_selected","on_order_pay","checkout_place_order","payment_token_received","apply","e","is_gateway_selected","is_change_payment_method","order_id","order_key","preventDefault","create_setup_intent","then","setup_intent","handle_payment_method_setup","client_secret","is_current_page","process_order_pay","handle_next_action","data","stripe","collectBankAccountForPayment","clientSecret","payment_method_type","payment_method_data","billing_details","name","get_customer_name","get_billing_prefix","email","fields","get","paymentIntent","error","submit_error","status","do_payment_confirmation","cancel_payment_processing","collectBankAccountForSetup","setupIntent","do_setup_confirmation","confirmUsBankAccountPayment","code","set_nonce","payment_method","get_form","trigger","process_payment","confirmUsBankAccountSetup","hide_place_order","container","closest","removeClass","unblock","fees_enabled","Promise","resolve","reject","$","ajax","method","dataType","gateway_id","url","routes","base_path","replace","beforeSend","ajax_before_send","done","response","message","fail","xhr","textStatus","errorThrown","wc_stripe_ach_connections_params"],"sourceRoot":""}
1
+ {"version":3,"file":"ach-connections.js","mappings":"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","sources":["webpack://woo-stripe-payment/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://woo-stripe-payment/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://woo-stripe-payment/external window \"jQuery\"","webpack://woo-stripe-payment/external window [\"wc_stripe\"]","webpack://woo-stripe-payment/webpack/bootstrap","webpack://woo-stripe-payment/./assets/js/frontend/ach-connections.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","module.exports = window[\"jQuery\"];","module.exports = window[\"wc_stripe\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import $ from 'jquery';\nimport {BaseGateway, CheckoutGateway} from '@paymentplugins/wc-stripe';\n\nfunction StripeACH(params) {\n BaseGateway.call(this, params);\n CheckoutGateway.call(this);\n}\n\n\nStripeACH.prototype.initialize = function () {\n window.addEventListener('hashchange', this.hashchange.bind(this));\n $(document.body).on('payment_method_selected', this.payment_method_selected.bind(this));\n $(document.body).on('click', '#place_order', this.on_order_pay.bind(this));\n}\n\nStripeACH.prototype.checkout_place_order = function () {\n this.payment_token_received = true;\n return CheckoutGateway.prototype.checkout_place_order.apply(this);\n}\n\nStripeACH.prototype.on_order_pay = function (e) {\n if (this.is_gateway_selected()) {\n // create the setup intent.\n if (this.is_change_payment_method()) {\n const {order_id, order_key} = this.params;\n e.preventDefault();\n this.create_setup_intent({order_id, order_key}).then(({setup_intent}) => {\n this.handle_payment_method_setup({\n order_id,\n order_key,\n client_secret: setup_intent.client_secret\n });\n });\n } else if (this.is_current_page('order_pay')) {\n e.preventDefault();\n this.process_order_pay();\n }\n }\n}\n\nStripeACH.prototype.handle_next_action = function (data) {\n const {client_secret} = data;\n this.stripe.collectBankAccountForPayment({\n clientSecret: client_secret,\n params: {\n payment_method_type: 'us_bank_account',\n payment_method_data: {\n billing_details: {\n name: this.get_customer_name(this.get_billing_prefix()),\n email: this.fields.get('billing_email', null),\n },\n },\n }\n }).then(({paymentIntent, error}) => {\n if (error) {\n return this.submit_error(error);\n }\n // show the mandate confirmation\n if (paymentIntent.status === \"requires_confirmation\") {\n this.do_payment_confirmation(data);\n } else {\n this.cancel_payment_processing();\n }\n });\n}\n\nStripeACH.prototype.handle_payment_method_setup = function (data) {\n const {client_secret} = data;\n this.stripe.collectBankAccountForSetup({\n clientSecret: client_secret,\n params: {\n payment_method_type: 'us_bank_account',\n payment_method_data: {\n billing_details: {\n name: this.get_customer_name(this.get_billing_prefix()),\n email: this.fields.get('billing_email', null),\n },\n },\n }\n }).then(({setupIntent, error}) => {\n if (error) {\n return this.submit_error(error);\n }\n // show the mandate confirmation\n if (setupIntent.status === \"requires_confirmation\") {\n this.do_setup_confirmation(data);\n } else {\n this.cancel_payment_processing();\n }\n });\n}\n\nStripeACH.prototype.do_payment_confirmation = function ({client_secret, order_id, order_key}) {\n this.stripe.confirmUsBankAccountPayment(client_secret).then(({paymentIntent, error}) => {\n if (error) {\n return this.submit_error(error);\n }\n if (paymentIntent.status === 'requires_payment_method') {\n this.cancel_payment_processing();\n } else if (paymentIntent.status === 'requires_action') {\n // paymentIntent?.next_action?.type === 'verify_with_microdeposits'\n // todo - eventually support microdeposits. For now, show a message\n this.cancel_payment_processing();\n return this.submit_error({code: 'ach_instant_only'});\n } else if (paymentIntent.status === 'processing') {\n this.set_nonce(paymentIntent.payment_method);\n if (this.is_current_page('order_pay')) {\n this.get_form().trigger('submit');\n } else {\n this.process_payment(order_id, order_key);\n }\n }\n });\n}\n\nStripeACH.prototype.do_setup_confirmation = function ({client_secret, order_id, order_key}) {\n this.stripe.confirmUsBankAccountSetup(client_secret).then(({setupIntent, error}) => {\n if (error) {\n return this.submit_error(error);\n }\n if (setupIntent.status === 'requires_payment_method') {\n this.cancel_payment_processing();\n } else if (setupIntent.status === 'requires_action') {\n // paymentIntent?.next_action?.type === 'verify_with_microdeposits'\n // todo - eventually support microdeposits. For now, show a message\n this.cancel_payment_processing();\n return this.submit_error({code: 'ach_instant_only'});\n } else if (setupIntent.status === 'succeeded') {\n this.set_nonce(setupIntent.payment_method);\n if (this.is_current_page('order_pay') || this.is_change_payment_method()) {\n this.get_form().trigger('submit');\n } else {\n this.process_payment(order_id, order_key);\n }\n }\n });\n}\n\nStripeACH.prototype.hide_place_order = function () {\n}\n\nStripeACH.prototype.cancel_payment_processing = function () {\n $(this.container).closest('form').removeClass('processing');\n $(this.container).closest('form')?.unblock();\n}\n\nStripeACH.prototype.fees_enabled = function () {\n return this.params.fees_enabled == \"1\";\n}\n\nStripeACH.prototype.payment_method_selected = function () {\n if (this.fees_enabled()) {\n $(document.body).trigger('update_checkout');\n }\n}\n\nStripeACH.prototype.create_setup_intent = function (data) {\n return new Promise((resolve, reject) => {\n $.ajax({\n method: 'POST',\n dataType: 'json',\n data: {payment_method: this.gateway_id, ...data},\n url: this.params.routes.base_path.replace('%s', 'wc-stripe/v1/subscriptions/setup-intent'),\n beforeSend: this.ajax_before_send.bind(this)\n }).done(response => {\n if (response.code) {\n reject(response.message);\n } else {\n resolve(response);\n }\n }).fail((xhr, textStatus, errorThrown) => {\n this.submit_error(errorThrown);\n });\n })\n}\n\nStripeACH.prototype = {...BaseGateway.prototype, ...CheckoutGateway.prototype, ...StripeACH.prototype};\n\nnew StripeACH(wc_stripe_ach_connections_params);"],"names":["module","exports","obj","key","value","Object","defineProperty","enumerable","configurable","writable","__esModule","window","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","StripeACH","params","BaseGateway","call","this","CheckoutGateway","prototype","initialize","addEventListener","hashchange","bind","$","document","body","on","payment_method_selected","on_order_pay","checkout_place_order","payment_token_received","apply","e","is_gateway_selected","is_change_payment_method","order_id","order_key","preventDefault","create_setup_intent","then","setup_intent","handle_payment_method_setup","client_secret","is_current_page","process_order_pay","handle_next_action","data","stripe","collectBankAccountForPayment","clientSecret","payment_method_type","payment_method_data","billing_details","name","get_customer_name","get_billing_prefix","email","fields","get","paymentIntent","error","submit_error","status","do_payment_confirmation","cancel_payment_processing","collectBankAccountForSetup","setupIntent","do_setup_confirmation","confirmUsBankAccountPayment","code","set_nonce","payment_method","get_form","trigger","process_payment","confirmUsBankAccountSetup","hide_place_order","container","closest","removeClass","unblock","fees_enabled","Promise","resolve","reject","ajax","method","dataType","gateway_id","url","routes","base_path","replace","beforeSend","ajax_before_send","done","response","message","fail","xhr","textStatus","errorThrown","wc_stripe_ach_connections_params"],"sourceRoot":""}
assets/build/link-checkout.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('jquery', 'wp-polyfill'), 'version' => 'ce1e2063448524440a24c9aedc76c07f');
1
+ <?php return array('dependencies' => array('jquery', 'wc-stripe-wc-stripe', 'wp-polyfill'), 'version' => 'b39a31f2b40fe83b2184601daf012458');
assets/build/link-checkout.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{var e={713:e=>{e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},318:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},567:e=>{"use strict";e.exports=window.jQuery}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,r),a.exports}(()=>{var e=r(318),t=e(r(713)),n=e(r(567));function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function a(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?i(Object(n),!0).forEach((function(r){(0,t.default)(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}(0,n.default)((function(){if("undefined"===wcStripeLinkParams)return!1;try{var e=wc_stripe.credit_card,t=e.stripe.linkAutofillModal(e.elements);(0,n.default)(document.body).on("keyup",'[name="billing_email"]',(function(e){t.launch({email:e.currentTarget.value})})),wcStripeLinkParams.launchLink&&t.launch({email:(0,n.default)('[name="billing_email"]').val()}),t.on("autofill",(function(t){var r=t.value,i=r.shippingAddress,o=void 0===i?null:i,l=r.billingAddress;if(o){var s=a({name:o.name},o.address);e.populate_shipping_fields(s)}if(l){var u=a({name:l.name},l.address);e.populate_billing_fields(u)}e.fields.toFormFields(),e.set_payment_method(e.gateway_id),e.show_new_payment_method(),e.hide_save_card(),o&&e.maybe_set_ship_to_different(),(0,n.default)('[name="terms"]').prop("checked",!0),e.fields.required("billing_phone")&&e.fields.isEmpty("billing_phone")||e.get_form().trigger("submit")}))}catch(e){console.log(e)}}))})()})();
2
  //# sourceMappingURL=link-checkout.js.map
1
+ (()=>{var e={713:e=>{e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},318:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},567:e=>{"use strict";e.exports=window.jQuery},707:e=>{"use strict";e.exports=window.wc_stripe}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}(()=>{var e=r(318),t=e(r(713)),n=e(r(567));function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function o(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?i(Object(n),!0).forEach((function(r){(0,t.default)(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):i(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var a=e(r(707)).default.credit_card;(0,n.default)((function(){var e,t;if("undefined"===wcStripeLinkParams||null===(e=wcStripeLinkParams)||void 0===e||null===(t=e.elementOptions)||void 0===t||!t.mode)return!1;try{var r=a.stripe.linkAutofillModal(a.elements);(0,n.default)(document.body).on("keyup",'[name="billing_email"]',(function(e){r.launch({email:e.currentTarget.value})})),wcStripeLinkParams.launchLink&&r.launch({email:(0,n.default)('[name="billing_email"]').val()}),r.on("autofill",(function(e){var t=e.value,r=t.shippingAddress,i=void 0===r?null:r,l=t.billingAddress;if(i){var s=o({name:i.name},i.address);a.populate_shipping_fields(s)}if(l){var u=o({name:l.name},l.address);a.populate_billing_fields(u)}a.fields.toFormFields(),a.set_payment_method(a.gateway_id),a.show_new_payment_method(),a.hide_save_card(),i&&a.maybe_set_ship_to_different(),(0,n.default)('[name="terms"]').prop("checked",!0),a.fields.required("billing_phone")&&a.fields.isEmpty("billing_phone")||a.get_form().trigger("submit")}))}catch(e){console.log(e)}}))})()})();
2
  //# sourceMappingURL=link-checkout.js.map
assets/build/link-checkout.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"link-checkout.js","mappings":"qBAeAA,EAAOC,QAfP,SAAyBC,EAAKC,EAAKC,GAYjC,OAXID,KAAOD,EACTG,OAAOC,eAAeJ,EAAKC,EAAK,CAC9BC,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZP,EAAIC,GAAOC,EAGNF,I,QCNTF,EAAOC,QANP,SAAgCC,GAC9B,OAAOA,GAAOA,EAAIQ,WAAaR,EAAM,CACnC,QAAWA,K,qBCFfF,EAAOC,QAAUU,OAAe,SCC5BC,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAad,QAGrB,IAAID,EAASY,EAAyBE,GAAY,CAGjDb,QAAS,IAOV,OAHAgB,EAAoBH,GAAUd,EAAQA,EAAOC,QAASY,GAG/Cb,EAAOC,Q,+BCrBf,Y,4kBAEA,cAAE,WACE,GAA2B,cAAvBiB,mBACA,OAAO,EAEX,IACI,IAAMC,EAAaC,UAAUC,YAEvBC,EADSH,EAAWI,OACNC,kBAAkBL,EAAWM,WAEjD,aAAEC,SAASC,MAAMC,GAAG,QAAS,0BAA0B,SAACC,GACpDP,EAAKQ,OAAO,CAACC,MAAOF,EAAEG,cAAc5B,WAGpCc,mBAAmBe,YACnBX,EAAKQ,OAAO,CAACC,OAAO,aAAE,0BAA0BG,QAGpDZ,EAAKM,GAAG,YAAY,SAACO,GAAU,MACsBA,EAAM/B,MAD5B,IACpBgC,gBAAAA,OADoB,MACF,KADE,EACIC,EADJ,EACIA,eAE/B,GAAID,EAAiB,CACjB,IAAME,EAAU,EAAH,CAAIC,KAAMH,EAAgBG,MAASH,EAAgBE,SAChEnB,EAAWqB,yBAAyBF,GAExC,GAAID,EAAgB,CAChB,IAAMC,EAAU,EAAH,CAAIC,KAAMF,EAAeE,MAASF,EAAeC,SAC9DnB,EAAWsB,wBAAwBH,GAEvCnB,EAAWuB,OAAOC,eAClBxB,EAAWyB,mBAAmBzB,EAAW0B,YACzC1B,EAAW2B,0BACX3B,EAAW4B,iBACPX,GACAjB,EAAW6B,+BAEf,aAAE,kBAAkBC,KAAK,WAAW,GAC/B9B,EAAWuB,OAAOQ,SAAS,kBAAqB/B,EAAWuB,OAAOS,QAAQ,kBAC3EhC,EAAWiC,WAAWC,QAAQ,aAGxC,MAAOC,GACLC,QAAQC,IAAIF,Q","sources":["webpack://woo-stripe-payment/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://woo-stripe-payment/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://woo-stripe-payment/external window \"jQuery\"","webpack://woo-stripe-payment/webpack/bootstrap","webpack://woo-stripe-payment/./assets/js/frontend/link-checkout.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","module.exports = window[\"jQuery\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import $ from 'jquery';\n\n$(() => {\n if (wcStripeLinkParams === 'undefined') {\n return false;\n }\n try {\n const creditCard = wc_stripe.credit_card;\n const stripe = creditCard.stripe;\n const link = stripe.linkAutofillModal(creditCard.elements);\n\n $(document.body).on('keyup', '[name=\"billing_email\"]', (e) => {\n link.launch({email: e.currentTarget.value});\n });\n\n if (wcStripeLinkParams.launchLink) {\n link.launch({email: $('[name=\"billing_email\"]').val()});\n }\n\n link.on('autofill', (event) => {\n const {shippingAddress = null, billingAddress} = event.value;\n // populate the address fields\n if (shippingAddress) {\n const address = {name: shippingAddress.name, ...shippingAddress.address};\n creditCard.populate_shipping_fields(address);\n }\n if (billingAddress) {\n const address = {name: billingAddress.name, ...billingAddress.address};\n creditCard.populate_billing_fields(address);\n }\n creditCard.fields.toFormFields();\n creditCard.set_payment_method(creditCard.gateway_id);\n creditCard.show_new_payment_method();\n creditCard.hide_save_card();\n if (shippingAddress) {\n creditCard.maybe_set_ship_to_different();\n }\n $('[name=\"terms\"]').prop('checked', true);\n if (!creditCard.fields.required('billing_phone') || !creditCard.fields.isEmpty('billing_phone')) {\n creditCard.get_form().trigger('submit');\n }\n });\n } catch (error) {\n console.log(error);\n }\n});"],"names":["module","exports","obj","key","value","Object","defineProperty","enumerable","configurable","writable","__esModule","window","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","wcStripeLinkParams","creditCard","wc_stripe","credit_card","link","stripe","linkAutofillModal","elements","document","body","on","e","launch","email","currentTarget","launchLink","val","event","shippingAddress","billingAddress","address","name","populate_shipping_fields","populate_billing_fields","fields","toFormFields","set_payment_method","gateway_id","show_new_payment_method","hide_save_card","maybe_set_ship_to_different","prop","required","isEmpty","get_form","trigger","error","console","log"],"sourceRoot":""}
1
+ {"version":3,"file":"link-checkout.js","mappings":"qBAeAA,EAAOC,QAfP,SAAyBC,EAAKC,EAAKC,GAYjC,OAXID,KAAOD,EACTG,OAAOC,eAAeJ,EAAKC,EAAK,CAC9BC,MAAOA,EACPG,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZP,EAAIC,GAAOC,EAGNF,I,QCNTF,EAAOC,QANP,SAAgCC,GAC9B,OAAOA,GAAOA,EAAIQ,WAAaR,EAAM,CACnC,QAAWA,K,qBCFfF,EAAOC,QAAUU,OAAe,Q,qBCAhCX,EAAOC,QAAUU,OAAkB,YCC/BC,EAA2B,GAG/B,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAad,QAGrB,IAAID,EAASY,EAAyBE,GAAY,CAGjDb,QAAS,IAOV,OAHAgB,EAAoBH,GAAUd,EAAQA,EAAOC,QAASY,GAG/Cb,EAAOC,Q,+BCrBf,YACkD,+kBAE9BiB,EAFpB,UAEkCC,QAA3BC,aAEP,EAAAC,EAAAA,UAAE,WAAM,QACJ,GAA2B,cAAvBC,oBAAyD,QAAnB,EAACA,0BAAkB,OAAgB,QAAhB,EAAlB,EAAoBC,sBAAc,QAAlC,EAAoCC,KAC3E,OAAO,EAEX,IACI,IACMC,EADSP,EAAWQ,OACNC,kBAAkBT,EAAWU,WAEjD,EAAAP,EAAAA,SAAEQ,SAASC,MAAMC,GAAG,QAAS,0BAA0B,SAACC,GACpDP,EAAKQ,OAAO,CAACC,MAAOF,EAAEG,cAAc/B,WAGpCkB,mBAAmBc,YACnBX,EAAKQ,OAAO,CAACC,OAAO,EAAAb,EAAAA,SAAE,0BAA0BgB,QAGpDZ,EAAKM,GAAG,YAAY,SAACO,GAAU,MACsBA,EAAMlC,MAAK,IAArDmC,gBAAAA,OAAe,IAAG,OAAI,EAAEC,EAAc,EAAdA,eAE/B,GAAID,EAAiB,CACjB,IAAME,EAAU,EAAH,CAAIC,KAAMH,EAAgBG,MAASH,EAAgBE,SAChEvB,EAAWyB,yBAAyBF,GAExC,GAAID,EAAgB,CAChB,IAAMC,EAAU,EAAH,CAAIC,KAAMF,EAAeE,MAASF,EAAeC,SAC9DvB,EAAW0B,wBAAwBH,GAEvCvB,EAAW2B,OAAOC,eAClB5B,EAAW6B,mBAAmB7B,EAAW8B,YACzC9B,EAAW+B,0BACX/B,EAAWgC,iBACPX,GACArB,EAAWiC,+BAEf,EAAA9B,EAAAA,SAAE,kBAAkB+B,KAAK,WAAW,GAC/BlC,EAAW2B,OAAOQ,SAAS,kBAAqBnC,EAAW2B,OAAOS,QAAQ,kBAC3EpC,EAAWqC,WAAWC,QAAQ,aAGxC,MAAOC,GACLC,QAAQC,IAAIF,Q","sources":["webpack://woo-stripe-payment/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://woo-stripe-payment/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://woo-stripe-payment/external window \"jQuery\"","webpack://woo-stripe-payment/external window [\"wc_stripe\"]","webpack://woo-stripe-payment/webpack/bootstrap","webpack://woo-stripe-payment/./assets/js/frontend/link-checkout.js"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","module.exports = window[\"jQuery\"];","module.exports = window[\"wc_stripe\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","import $ from 'jquery';\nimport wc_stripe from '@paymentplugins/wc-stripe';\n\nconst {credit_card: creditCard} = wc_stripe;\n\n$(() => {\n if (wcStripeLinkParams === 'undefined' || !wcStripeLinkParams?.elementOptions?.mode) {\n return false;\n }\n try {\n const stripe = creditCard.stripe;\n const link = stripe.linkAutofillModal(creditCard.elements);\n\n $(document.body).on('keyup', '[name=\"billing_email\"]', (e) => {\n link.launch({email: e.currentTarget.value});\n });\n\n if (wcStripeLinkParams.launchLink) {\n link.launch({email: $('[name=\"billing_email\"]').val()});\n }\n\n link.on('autofill', (event) => {\n const {shippingAddress = null, billingAddress} = event.value;\n // populate the address fields\n if (shippingAddress) {\n const address = {name: shippingAddress.name, ...shippingAddress.address};\n creditCard.populate_shipping_fields(address);\n }\n if (billingAddress) {\n const address = {name: billingAddress.name, ...billingAddress.address};\n creditCard.populate_billing_fields(address);\n }\n creditCard.fields.toFormFields();\n creditCard.set_payment_method(creditCard.gateway_id);\n creditCard.show_new_payment_method();\n creditCard.hide_save_card();\n if (shippingAddress) {\n creditCard.maybe_set_ship_to_different();\n }\n $('[name=\"terms\"]').prop('checked', true);\n if (!creditCard.fields.required('billing_phone') || !creditCard.fields.isEmpty('billing_phone')) {\n creditCard.get_form().trigger('submit');\n }\n });\n } catch (error) {\n console.log(error);\n }\n});"],"names":["module","exports","obj","key","value","Object","defineProperty","enumerable","configurable","writable","__esModule","window","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","creditCard","wc_stripe","credit_card","$","wcStripeLinkParams","elementOptions","mode","link","stripe","linkAutofillModal","elements","document","body","on","e","launch","email","currentTarget","launchLink","val","event","shippingAddress","billingAddress","address","name","populate_shipping_fields","populate_billing_fields","fields","toFormFields","set_payment_method","gateway_id","show_new_payment_method","hide_save_card","maybe_set_ship_to_different","prop","required","isEmpty","get_form","trigger","error","console","log"],"sourceRoot":""}
assets/js/frontend/credit-card.js CHANGED
@@ -44,12 +44,9 @@
44
  $(document.body).on('change', '#createaccount', this.handle_create_account_change.bind(this));
45
  this.setup_card();
46
 
47
- if (this.can_create_setup_intent() && !this.is_payment_element_enabled()) {
48
  this.create_setup_intent();
49
  }
50
- if (this.is_payment_element_enabled()) {
51
- this.handleActionMethod = 'confirmCardPayment';
52
- }
53
  this.maybe_initialize_installments();
54
  }
55
 
@@ -211,6 +208,7 @@
211
  if (this.is_payment_element_enabled()) {
212
  this.stripe.confirmSetup({
213
  elements: this.elements,
 
214
  confirmParams: (function () {
215
  var params = {return_url: ''};
216
  if (this.is_current_page('checkout')) {
@@ -219,7 +217,8 @@
219
  };
220
  }
221
  return params;
222
- }.bind(this)()), redirect: 'if_required'
 
223
  }).then(function (result) {
224
  if (result.error) {
225
  return this.submit_card_error(result.error);
@@ -251,46 +250,17 @@
251
  if (!this.payment_token_received && !this.is_saved_method_selected()) {
252
  e.preventDefault();
253
  if (this.checkout_fields_valid()) {
254
- if (this.is_payment_element_enabled()) {
255
- $('#place_order').prop('disabled', true);
256
- this.stripe.updatePaymentIntent({
257
- elements: this.elements,
258
- params: {
259
- payment_method_data: {
260
- billing_details: this.get_billing_details()
261
- }
262
- }
263
- }).then(function (result) {
264
- if (result.error) {
265
- return this.submit_card_error(result.error);
266
- }
267
- if (this.is_current_page('order_pay')) {
268
- this.set_nonce(result.paymentIntent.payment_method);
269
- return this.process_order_pay();
270
- }
271
- this.on_token_received(result.paymentIntent.payment_method);
272
- }.bind(this)).catch(function (error) {
273
- return this.submit_card_error(error);
274
- }.bind(this)).finally(function () {
275
- $('#place_order').prop('disabled', false);
276
- }.bind(this));
277
- } else {
278
- this.stripe.createPaymentMethod({
279
- type: 'card',
280
- card: this.is_custom_form() ? this.cardNumber : this.card,
281
- billing_details: this.get_billing_details()
282
- }).then(function (result) {
283
- if (result.error) {
284
- return this.submit_card_error(result.error);
285
- }
286
- if (this.is_current_page('order_pay')) {
287
- this.set_nonce(result.paymentMethod.id);
288
- this.process_order_pay();
289
- } else {
290
- this.on_token_received(result.paymentMethod);
291
- }
292
- }.bind(this))
293
- }
294
  }
295
  }
296
  }
@@ -337,13 +307,20 @@
337
  *
338
  */
339
  CC.prototype.updated_checkout = function (e, data) {
340
- if (typeof data !== 'undefined' && data.fragments && data.fragments.hasOwnProperty('.wc-stripe-intent-secret')) {
341
- // if client secret has changed, update the elements
342
- if (this.params.elementOptions.clientSecret !== data.fragments['.wc-stripe-intent-secret']) {
343
- this.params.elementOptions.clientSecret = data.fragments['.wc-stripe-intent-secret'];
344
- this.params.cardFormType = 'payment';
345
- this.elements = this.create_stripe_elements();
346
- this.setup_card();
 
 
 
 
 
 
 
347
  }
348
  }
349
  this.create_card_element();
@@ -635,33 +612,31 @@
635
  return this.params.cardFormType === 'payment'
636
  }
637
 
638
- CC.prototype.handle_payment_method_setup = function (obj) {
 
 
 
 
 
 
 
 
 
 
 
639
  if (this.is_payment_element_enabled()) {
640
- this.stripe.confirmSetup({
641
  elements: this.elements,
642
- confirmParams: {
643
- payment_method_data: {
644
- billing_details: this.get_billing_details()
645
- }
646
- },
647
- redirect: 'if_required'
648
- }).then(function (result) {
649
- if (result.error) {
650
- this.unblock();
651
- this.payment_token_received = false;
652
- this.submit_error(result.error);
653
- } else {
654
- if (this.is_current_page('order_pay')) {
655
- this.get_form().trigger('submit');
656
- } else {
657
- this.set_nonce(result.setupIntent.payment_method);
658
- this.set_intent(result.setupIntent.id);
659
- this.process_payment(obj.order_id, obj.order_key);
660
- }
661
  }
662
- }.bind(this));
663
  } else {
664
- wc_stripe.BaseGateway.prototype.handle_payment_method_setup.apply(this, arguments);
 
 
 
 
665
  }
666
  }
667
 
44
  $(document.body).on('change', '#createaccount', this.handle_create_account_change.bind(this));
45
  this.setup_card();
46
 
47
+ if (this.can_create_setup_intent()) {
48
  this.create_setup_intent();
49
  }
 
 
 
50
  this.maybe_initialize_installments();
51
  }
52
 
208
  if (this.is_payment_element_enabled()) {
209
  this.stripe.confirmSetup({
210
  elements: this.elements,
211
+ clientSecret: this.client_secret,
212
  confirmParams: (function () {
213
  var params = {return_url: ''};
214
  if (this.is_current_page('checkout')) {
217
  };
218
  }
219
  return params;
220
+ }.bind(this)()),
221
+ redirect: 'if_required'
222
  }).then(function (result) {
223
  if (result.error) {
224
  return this.submit_card_error(result.error);
250
  if (!this.payment_token_received && !this.is_saved_method_selected()) {
251
  e.preventDefault();
252
  if (this.checkout_fields_valid()) {
253
+ this.stripe.createPaymentMethod(this.get_create_payment_method_params()).then(function (result) {
254
+ if (result.error) {
255
+ return this.submit_card_error(result.error);
256
+ }
257
+ if (this.is_current_page('order_pay')) {
258
+ this.set_nonce(result.paymentMethod.id);
259
+ this.process_order_pay();
260
+ } else {
261
+ this.on_token_received(result.paymentMethod);
262
+ }
263
+ }.bind(this))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
264
  }
265
  }
266
  }
307
  *
308
  */
309
  CC.prototype.updated_checkout = function (e, data) {
310
+ if (typeof data !== 'undefined' && data.fragments && data.fragments.hasOwnProperty('.wc-stripe-element-options')) {
311
+ if (this.is_payment_element_enabled()) {
312
+ try {
313
+ var options = JSON.parse(window.atob(decodeURIComponent(data.fragments['.wc-stripe-element-options'])));
314
+ // if mode has changed, update elements
315
+ if (this.params.elementOptions.mode !== options.mode) {
316
+ this.params.elementOptions.mode = options.mode;
317
+ this.params.cardFormType = 'payment';
318
+ this.elements = this.create_stripe_elements();
319
+ this.setup_card();
320
+ }
321
+ } catch (error) {
322
+
323
+ }
324
  }
325
  }
326
  this.create_card_element();
612
  return this.params.cardFormType === 'payment'
613
  }
614
 
615
+ CC.prototype.get_element_options = function () {
616
+ if (this.is_payment_element_enabled()) {
617
+ var params = this.params.elementOptions.mode === 'payment' ? {
618
+ amount: this.get_total_price_cents(),
619
+ currency: this.get_currency().toLowerCase()
620
+ } : {};
621
+ return $.extend({}, this.params.elementOptions, params);
622
+ }
623
+ return this.params.elementOptions;
624
+ }
625
+
626
+ CC.prototype.get_create_payment_method_params = function () {
627
  if (this.is_payment_element_enabled()) {
628
+ return {
629
  elements: this.elements,
630
+ params: {
631
+ billing_details: this.get_billing_details()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
632
  }
633
+ }
634
  } else {
635
+ return {
636
+ type: 'card',
637
+ card: this.is_custom_form() ? this.cardNumber : this.card,
638
+ billing_details: this.get_billing_details()
639
+ }
640
  }
641
  }
642
 
assets/js/frontend/credit-card.min.js CHANGED
@@ -1 +1 @@
1
- !function(a,i){function t(){this.elementStatus={},i.BaseGateway.call(this,wc_stripe_credit_card_params),i.CheckoutGateway.call(this),this.message_container=this.params.notice_selector,window.addEventListener("hashchange",this.hashchange.bind(this)),(i.credit_card=this).confirmedSetupIntent=!1,this.has3DSecureParams(),this.handle_create_account_change(),a(document.body).on("change",'[name="stripe_cc_saved_method_key"]',this.maybe_initialize_installments.bind(this)),a(document.body).on("wc_stripe_saved_method_"+this.gateway_id,this.maybe_initialize_installments.bind(this))}var s={focus:"focused",empty:"empty",invalid:"invalid"};(t.prototype=a.extend({},i.BaseGateway.prototype,i.CheckoutGateway.prototype)).mappings={cardNumber:"#stripe-card-number",cardExpiry:"#stripe-exp",cardCvc:"#stripe-cvv"},t.prototype.handleActionMethod="handleCardAction",t.prototype.setupActionMethod="confirmCardSetup",t.prototype.initialize=function(){a(document.body).on("click","#place_order",this.place_order.bind(this)),a(document.body).on("change","#createaccount",this.handle_create_account_change.bind(this)),this.setup_card(),this.can_create_setup_intent()&&!this.is_payment_element_enabled()&&this.create_setup_intent(),this.is_payment_element_enabled()&&(this.handleActionMethod="confirmCardPayment"),this.maybe_initialize_installments()},t.prototype.setup_card=function(){var e;this.is_custom_form()?(e=a.extend(!0,{classes:s},this.params.cardOptions),["cardNumber","cardExpiry","cardCvc"].forEach(function(t){this[t]=this.elements.create(t,a.extend(!0,{},e,this.params.customFieldOptions[t])),this.elementStatus[t]={},this[t].on("change",this.on_card_element_change.bind(this))}.bind(this)),this.cardNumber.on("change",this.card_number_change.bind(this)),this.cardNumber.on("change",this.on_input_change.bind(this)),this.cardExpiry.on("change",this.on_input_change.bind(this)),this.cardCvc.on("change",this.on_input_change.bind(this)),this.fields.required("billing_postcode")&&""!==this.fields.get("billing_postcode")&&0<a("#stripe-postal-code").length&&(a("#stripe-postal-code").val(this.fields.get("billing_postcode")),this.validate_postal_field()),a(document.body).on("change","#billing_postcode",function(t){var e=a("#billing_postcode").val();a("#stripe-postal-code").val(e).trigger("keyup")}.bind(this))):(this.is_payment_element_enabled()?(this.card=this.elements.create("payment",{fields:{billingDetails:this.is_current_page("checkout")?{address:"never"}:"auto"},wallets:{applePay:"never",googlePay:"never"}}),this.elementStatus.payment={}):(this.card=this.elements.create("card",a.extend(!0,{},{value:{postalCode:this.fields.get("billing_postcode","")},hidePostalCode:this.fields.required("billing_postcode"),iconStyle:"default"},this.params.cardOptions)),a(document.body).on("change","#billing_postcode",function(t){this.card&&this.card.update({value:a("#billing_postcode").val()})}.bind(this)),this.elementStatus.card={}),this.card.on("change",this.on_card_element_change.bind(this))),setInterval(this.create_card_element.bind(this),2e3)},t.prototype.validate_postal_field=function(){var t,e;a("#billing_postcode").length&&a("#stripe-postal-code").length?this.params.postal_regex[this.fields.get("billing_country")]?(e=this.params.postal_regex[this.fields.get("billing_country")],t=a("#stripe-postal-code").val(),e=new RegExp(e,"i"),""!==t?null!==e.exec(t)?a("#stripe-postal-code").addClass("StripeElement--complete").removeClass("invalid"):a("#stripe-postal-code").removeClass("StripeElement--complete").addClass("invalid"):a("#stripe-postal-code").removeClass("StripeElement--complete").removeClass("invalid")):0!=a("#stripe-postal-code").val()?a("#stripe-postal-code").addClass("StripeElement--complete"):a("#stripe-postal-code").removeClass("StripeElement--complete"):a("#stripe-postal-code").length&&(""!=a("#stripe-postal-code").val()?a("#stripe-postal-code").addClass("StripeElement--complete"):a("#stripe-postal-code").removeClass("StripeElement--complete"))},t.prototype.create_card_element=function(){this.is_custom_form()?a("#wc-stripe-cc-custom-form").length&&0==a("#wc-stripe-cc-custom-form").find("iframe").length&&(a(this.mappings.cardNumber).length&&(this.cardNumber.mount(this.mappings.cardNumber),a(this.mappings.cardNumber).prepend(this.params.html.card_brand)),a(this.mappings.cardExpiry).length&&this.cardExpiry.mount(this.mappings.cardExpiry),a(this.mappings.cardCvc).length&&this.cardCvc.mount(this.mappings.cardCvc),a("#stripe-postal-code").length&&(a("#stripe-postal-code, .postalCode").on("focus",function(t){a("#stripe-postal-code").addClass("focused")}.bind(this)),a("#stripe-postal-code, .postalCode").on("blur",function(t){a("#stripe-postal-code").removeClass("focused").trigger("keyup")}.bind(this)),a("#stripe-postal-code").on("keyup",function(t){0==a("#stripe-postal-code").val()?a("#stripe-postal-code").addClass("empty"):a("#stripe-postal-code").removeClass("empty")}.bind(this)),a("#stripe-postal-code").on("change",this.validate_postal_field.bind(this)),a("#stripe-postal-code").trigger("change"))):a("#wc-stripe-card-element").length&&0==a("#wc-stripe-card-element").find("iframe").length&&(this.card.unmount(),this.card.mount("#wc-stripe-card-element"),this.is_payment_element_enabled()||this.card.update({value:{postalCode:this.fields.get("billing_postcode","")},hidePostalCode:this.fields.required("billing_postcode")})),a(this.container).outerWidth(!0)<450?a(this.container).addClass("stripe-small-container"):a(this.container).removeClass("stripe-small-container")},t.prototype.place_order=function(t){if(this.is_gateway_selected())if(this.fields.syncCheckoutFieldsWithDOM(),this.can_create_setup_intent()&&!this.is_saved_method_selected()&&this.checkout_fields_valid()){if(t.preventDefault(),this.confirmedSetupIntent)return this.on_setup_intent_received(this.confirmedSetupIntent);this.is_payment_element_enabled()?this.stripe.confirmSetup({elements:this.elements,confirmParams:function(){var t={return_url:""};return this.is_current_page("checkout")&&(t.payment_method_data={billing_details:this.get_billing_details()}),t}.bind(this)(),redirect:"if_required"}).then(function(t){if(t.error)return this.submit_card_error(t.error);this.confirmedSetupIntent=t.setupIntent,this.on_setup_intent_received(t.setupIntent)}.bind(this)):this.stripe.confirmCardSetup(this.client_secret,{payment_method:{card:this.is_custom_form()?this.cardNumber:this.card,billing_details:function(){return this.is_current_page("checkout")?this.get_billing_details():a.extend({},this.is_custom_form()?{address:{postal_code:a("#stripe-postal-code").val()}}:{})}.bind(this)()}}).then(function(t){t.error?this.submit_card_error(t.error):(this.confirmedSetupIntent=t.setupIntent,this.on_setup_intent_received(t.setupIntent))}.bind(this))}else this.payment_token_received||this.is_saved_method_selected()||(t.preventDefault(),this.checkout_fields_valid()&&(this.is_payment_element_enabled()?(a("#place_order").prop("disabled",!0),this.stripe.updatePaymentIntent({elements:this.elements,params:{payment_method_data:{billing_details:this.get_billing_details()}}}).then(function(t){return t.error?this.submit_card_error(t.error):this.is_current_page("order_pay")?(this.set_nonce(t.paymentIntent.payment_method),this.process_order_pay()):void this.on_token_received(t.paymentIntent.payment_method)}.bind(this))["catch"](function(t){return this.submit_card_error(t)}.bind(this))["finally"](function(){a("#place_order").prop("disabled",!1)}.bind(this))):this.stripe.createPaymentMethod({type:"card",card:this.is_custom_form()?this.cardNumber:this.card,billing_details:this.get_billing_details()}).then(function(t){if(t.error)return this.submit_card_error(t.error);this.is_current_page("order_pay")?(this.set_nonce(t.paymentMethod.id),this.process_order_pay()):this.on_token_received(t.paymentMethod)}.bind(this))))},t.prototype.checkout_place_order=function(){return this.is_saved_method_selected()||this.payment_token_received?i.CheckoutGateway.prototype.checkout_place_order.apply(this,arguments):(this.place_order.apply(this,arguments),!1)},t.prototype.on_token_received=function(t){this.payment_token_received=!0,t.hasOwnProperty("id")?this.set_nonce(t.id):this.set_nonce(t),this.get_form().trigger("submit")},t.prototype.on_setup_intent_received=function(t){this.payment_token_received=!0,this.set_nonce(t.payment_method),this.set_intent(t.id),this.get_form().trigger("submit")},t.prototype.updated_checkout=function(t,e){void 0!==e&&e.fragments&&e.fragments.hasOwnProperty(".wc-stripe-intent-secret")&&this.params.elementOptions.clientSecret!==e.fragments[".wc-stripe-intent-secret"]&&(this.params.elementOptions.clientSecret=e.fragments[".wc-stripe-intent-secret"],this.params.cardFormType="payment",this.elements=this.create_stripe_elements(),this.setup_card()),this.create_card_element(),this.handle_create_account_change(),!this.can_create_setup_intent()||this.client_secret||this.is_payment_element_enabled()||this.create_setup_intent()},t.prototype.update_checkout=function(){this.clear_card_elements()},t.prototype.show_payment_button=function(){i.CheckoutGateway.prototype.show_place_order.apply(this,arguments)},t.prototype.hide_place_order=function(){},t.prototype.is_custom_form=function(){return"1"===this.params.custom_form},t.prototype.get_postal_code=function(){return this.is_custom_form()&&0<a("#stripe-postal-code").length?a("#stripe-postal-code").val():this.fields.get(this.get_billing_prefix()+"_postcode",null)},t.prototype.card_number_change=function(t){"unknown"===t.brand?a("#wc-stripe-card").removeClass("active"):a("#wc-stripe-card").addClass("active"),a("#wc-stripe-card").attr("src",this.params.cards[t.brand])},t.prototype.on_input_change=function(t){if(t.complete){var e=a("#wc-stripe-cc-custom-form").find(".StripeElement, #stripe-postal-code"),i=[];e.each(function(t,e){i.push("#"+a(e).attr("id"))}.bind(this));var t=this.mappings[t.elementType],s=i.indexOf(t);if("undefined"!=typeof i[s+1])if("#stripe-postal-code"===i[s+1])document.getElementById("stripe-postal-code").focus();else for(var n in this.mappings)this.mappings[n]===i[s+1]&&this[n].focus()}},t.prototype.clear_card_elements=function(){for(var t=["cardNumber","cardExpiry","cardCvc"],e=0;e<t.length;e++)this[t[e]]&&this[t[e]].clear()},t.prototype.checkout_error=function(){this.is_gateway_selected()&&(this.payment_token_received=!1),i.CheckoutGateway.prototype.checkout_error.call(this)},t.prototype.get_billing_details=function(){var t=i.BaseGateway.prototype.get_billing_details.call(this);return t.address.postal_code=this.get_postal_code(),t},t.prototype.can_create_setup_intent=function(){return this.is_add_payment_method_page()||this.is_change_payment_method()||this.is_current_page("checkout")&&this.cart_contains_subscription()&&this.get_gateway_data()&&0==this.get_total_price_cents()||this.is_current_page(["checkout","product"])&&"undefined"!=typeof wc_stripe_preorder_exists||this.is_current_page("order_pay")&&"pre_order"in this.get_gateway_data()&&!0===this.get_gateway_data().pre_order||this.is_current_page("product")&&0==this.get_total_price_cents()},t.prototype.handle_create_account_change=function(){a("#createaccount").length&&(a("#createaccount").is(":checked")&&!this.linkPaymentEnabled?this.show_save_card():this.hide_save_card())},t.prototype.hide_save_card=function(){a(".wc-stripe-save-source").hide()},t.prototype.show_save_card=function(){a(".wc-stripe-save-source").show()},t.prototype.submit_card_error=function(t){"bcf"===this.params.notice_location&&(a(".wc-stripe-card-notice").remove(),a(".wc-stripe_cc-new-method-container").append('<div class="wc-stripe-card-notice"></div>')),i.BaseGateway.prototype.submit_error.call(this,t,!0)},t.prototype.container_styles=function(){i.CheckoutGateway.prototype.container_styles.apply(this,arguments),this.is_custom_form()&&a(this.container).find(".payment_box").addClass("custom-form__"+this.params.custom_form_name)},t.prototype.checkout_fields_valid=function(){var t=this.is_valid_checkout();return t||this.submit_error(this.params.messages.terms),t},t.prototype.is_installments_available=function(){var t=this.get_gateway_data();return!!t&&!!t.installments.enabled},t.prototype.update_element_status=function(t){this.elementStatus[t.elementType]=t},t.prototype.is_card_form_complete=function(){return Object.keys(this.elementStatus).filter(function(t){return!!this.elementStatus[t].complete}.bind(this)).length==Object.keys(this.elementStatus).length},t.prototype.on_card_element_change=function(t){this.update_element_status(t),this.is_current_page(["checkout","order_pay"])&&this.is_card_form_complete()&&this.is_installments_available()&&this.initialize_installments()},t.prototype.initialize_installments=function(t){this.installmentTimeoutId&&clearTimeout(this.installmentTimeoutId),this.installmentTimeoutId=setTimeout(function(t){t?(this.show_installment_loader(),this.fetch_installment_plans(t)["finally"](function(){this.hide_installment_loader()}.bind(this))):(this.is_payment_element_enabled()?this.stripe.updatePaymentIntent({elements:this.elements,params:{payment_method_data:{billing_details:this.get_billing_details()}}}).then(function(t){t.error?this.hide_installment_loader():(this.show_installment_loader(),this.fetch_installment_plans(t.paymentIntent.payment_method)["finally"](function(){this.hide_installment_loader()}.bind(this)))}.bind(this)):this.stripe.createPaymentMethod({type:"card",card:this.is_custom_form()?this.cardNumber:this.card,billing_details:this.get_billing_details()}).then(function(t){t.error?this.hide_installment_loader():(this.show_installment_loader(),this.fetch_installment_plans(t.paymentMethod.id)["finally"](function(){this.hide_installment_loader()}.bind(this)))}.bind(this)))["catch"](this.hide_installment_loader.bind(this))}.bind(this,t),250)},t.prototype.fetch_installment_plans=function(t){return this.fetch_payment_intent(t).then(function(t){t.installments_html&&a(".wc-stripe-installment-container").replaceWith(t.installments_html)}.bind(this))["catch"](function(t){return this.submit_card_error(t)}.bind(this))["finally"](function(){}.bind(this))},t.prototype.fetch_payment_intent=function(n){return new Promise(function(e,i){var t=this.params.routes.create_payment_intent,s=!1;this.is_current_page("order_pay")&&(t=this.params.routes.order_create_payment_intent,s=!0),a.ajax({url:t,method:"POST",dataType:"json",data:s?{payment_method_id:n,payment_method:this.gateway_id,order_id:this.get_gateway_data().order.id,order_key:this.get_gateway_data().order.key}:a.extend({},this.serialize_fields(),{payment_method_id:n,payment_method:this.gateway_id,page_id:this.get_page()}),beforeSend:this.ajax_before_send.bind(this)}).done(function(t){(t.code?i:e)(t)}.bind(this)).fail(function(t){i()}.bind(this))}.bind(this))},t.prototype.show_installment_loader=function(){a(".wc-stripe-installment-options").addClass("loading-installments"),a('[name="_stripe_installment_plan"] option:selected').eq(0).text(this.params.installments.loading),a(".wc-stripe-installment-loader").show()},t.prototype.hide_installment_loader=function(t){a(".wc-stripe-installment-options").removeClass("loading-installments"),a(".wc-stripe-installment-loader").hide()},t.prototype.maybe_initialize_installments=function(){this.is_installments_available()&&this.is_saved_method_selected()&&this.initialize_installments(this.get_selected_payment_method())},t.prototype.is_payment_element_enabled=function(){return"payment"===this.params.cardFormType},t.prototype.handle_payment_method_setup=function(e){this.is_payment_element_enabled()?this.stripe.confirmSetup({elements:this.elements,confirmParams:{payment_method_data:{billing_details:this.get_billing_details()}},redirect:"if_required"}).then(function(t){t.error?(this.unblock(),this.payment_token_received=!1,this.submit_error(t.error)):this.is_current_page("order_pay")?this.get_form().trigger("submit"):(this.set_nonce(t.setupIntent.payment_method),this.set_intent(t.setupIntent.id),this.process_payment(e.order_id,e.order_key))}.bind(this)):i.BaseGateway.prototype.handle_payment_method_setup.apply(this,arguments)},new t}(jQuery,window.wc_stripe);
1
+ !function(a,e){function t(){this.elementStatus={},e.BaseGateway.call(this,wc_stripe_credit_card_params),e.CheckoutGateway.call(this),this.message_container=this.params.notice_selector,window.addEventListener("hashchange",this.hashchange.bind(this)),(e.credit_card=this).confirmedSetupIntent=!1,this.has3DSecureParams(),this.handle_create_account_change(),a(document.body).on("change",'[name="stripe_cc_saved_method_key"]',this.maybe_initialize_installments.bind(this)),a(document.body).on("wc_stripe_saved_method_"+this.gateway_id,this.maybe_initialize_installments.bind(this))}var i={focus:"focused",empty:"empty",invalid:"invalid"};(t.prototype=a.extend({},e.BaseGateway.prototype,e.CheckoutGateway.prototype)).mappings={cardNumber:"#stripe-card-number",cardExpiry:"#stripe-exp",cardCvc:"#stripe-cvv"},t.prototype.handleActionMethod="handleCardAction",t.prototype.setupActionMethod="confirmCardSetup",t.prototype.initialize=function(){a(document.body).on("click","#place_order",this.place_order.bind(this)),a(document.body).on("change","#createaccount",this.handle_create_account_change.bind(this)),this.setup_card(),this.can_create_setup_intent()&&this.create_setup_intent(),this.maybe_initialize_installments()},t.prototype.setup_card=function(){var e;this.is_custom_form()?(e=a.extend(!0,{classes:i},this.params.cardOptions),["cardNumber","cardExpiry","cardCvc"].forEach(function(t){this[t]=this.elements.create(t,a.extend(!0,{},e,this.params.customFieldOptions[t])),this.elementStatus[t]={},this[t].on("change",this.on_card_element_change.bind(this))}.bind(this)),this.cardNumber.on("change",this.card_number_change.bind(this)),this.cardNumber.on("change",this.on_input_change.bind(this)),this.cardExpiry.on("change",this.on_input_change.bind(this)),this.cardCvc.on("change",this.on_input_change.bind(this)),this.fields.required("billing_postcode")&&""!==this.fields.get("billing_postcode")&&0<a("#stripe-postal-code").length&&(a("#stripe-postal-code").val(this.fields.get("billing_postcode")),this.validate_postal_field()),a(document.body).on("change","#billing_postcode",function(t){var e=a("#billing_postcode").val();a("#stripe-postal-code").val(e).trigger("keyup")}.bind(this))):(this.is_payment_element_enabled()?(this.card=this.elements.create("payment",{fields:{billingDetails:this.is_current_page("checkout")?{address:"never"}:"auto"},wallets:{applePay:"never",googlePay:"never"}}),this.elementStatus.payment={}):(this.card=this.elements.create("card",a.extend(!0,{},{value:{postalCode:this.fields.get("billing_postcode","")},hidePostalCode:this.fields.required("billing_postcode"),iconStyle:"default"},this.params.cardOptions)),a(document.body).on("change","#billing_postcode",function(t){this.card&&this.card.update({value:a("#billing_postcode").val()})}.bind(this)),this.elementStatus.card={}),this.card.on("change",this.on_card_element_change.bind(this))),setInterval(this.create_card_element.bind(this),2e3)},t.prototype.validate_postal_field=function(){var t,e;a("#billing_postcode").length&&a("#stripe-postal-code").length?this.params.postal_regex[this.fields.get("billing_country")]?(e=this.params.postal_regex[this.fields.get("billing_country")],t=a("#stripe-postal-code").val(),e=new RegExp(e,"i"),""!==t?null!==e.exec(t)?a("#stripe-postal-code").addClass("StripeElement--complete").removeClass("invalid"):a("#stripe-postal-code").removeClass("StripeElement--complete").addClass("invalid"):a("#stripe-postal-code").removeClass("StripeElement--complete").removeClass("invalid")):0!=a("#stripe-postal-code").val()?a("#stripe-postal-code").addClass("StripeElement--complete"):a("#stripe-postal-code").removeClass("StripeElement--complete"):a("#stripe-postal-code").length&&(""!=a("#stripe-postal-code").val()?a("#stripe-postal-code").addClass("StripeElement--complete"):a("#stripe-postal-code").removeClass("StripeElement--complete"))},t.prototype.create_card_element=function(){this.is_custom_form()?a("#wc-stripe-cc-custom-form").length&&0==a("#wc-stripe-cc-custom-form").find("iframe").length&&(a(this.mappings.cardNumber).length&&(this.cardNumber.mount(this.mappings.cardNumber),a(this.mappings.cardNumber).prepend(this.params.html.card_brand)),a(this.mappings.cardExpiry).length&&this.cardExpiry.mount(this.mappings.cardExpiry),a(this.mappings.cardCvc).length&&this.cardCvc.mount(this.mappings.cardCvc),a("#stripe-postal-code").length&&(a("#stripe-postal-code, .postalCode").on("focus",function(t){a("#stripe-postal-code").addClass("focused")}.bind(this)),a("#stripe-postal-code, .postalCode").on("blur",function(t){a("#stripe-postal-code").removeClass("focused").trigger("keyup")}.bind(this)),a("#stripe-postal-code").on("keyup",function(t){0==a("#stripe-postal-code").val()?a("#stripe-postal-code").addClass("empty"):a("#stripe-postal-code").removeClass("empty")}.bind(this)),a("#stripe-postal-code").on("change",this.validate_postal_field.bind(this)),a("#stripe-postal-code").trigger("change"))):a("#wc-stripe-card-element").length&&0==a("#wc-stripe-card-element").find("iframe").length&&(this.card.unmount(),this.card.mount("#wc-stripe-card-element"),this.is_payment_element_enabled()||this.card.update({value:{postalCode:this.fields.get("billing_postcode","")},hidePostalCode:this.fields.required("billing_postcode")})),a(this.container).outerWidth(!0)<450?a(this.container).addClass("stripe-small-container"):a(this.container).removeClass("stripe-small-container")},t.prototype.place_order=function(t){if(this.is_gateway_selected())if(this.fields.syncCheckoutFieldsWithDOM(),this.can_create_setup_intent()&&!this.is_saved_method_selected()&&this.checkout_fields_valid()){if(t.preventDefault(),this.confirmedSetupIntent)return this.on_setup_intent_received(this.confirmedSetupIntent);this.is_payment_element_enabled()?this.stripe.confirmSetup({elements:this.elements,clientSecret:this.client_secret,confirmParams:function(){var t={return_url:""};return this.is_current_page("checkout")&&(t.payment_method_data={billing_details:this.get_billing_details()}),t}.bind(this)(),redirect:"if_required"}).then(function(t){if(t.error)return this.submit_card_error(t.error);this.confirmedSetupIntent=t.setupIntent,this.on_setup_intent_received(t.setupIntent)}.bind(this)):this.stripe.confirmCardSetup(this.client_secret,{payment_method:{card:this.is_custom_form()?this.cardNumber:this.card,billing_details:function(){return this.is_current_page("checkout")?this.get_billing_details():a.extend({},this.is_custom_form()?{address:{postal_code:a("#stripe-postal-code").val()}}:{})}.bind(this)()}}).then(function(t){t.error?this.submit_card_error(t.error):(this.confirmedSetupIntent=t.setupIntent,this.on_setup_intent_received(t.setupIntent))}.bind(this))}else this.payment_token_received||this.is_saved_method_selected()||(t.preventDefault(),this.checkout_fields_valid()&&this.stripe.createPaymentMethod(this.get_create_payment_method_params()).then(function(t){if(t.error)return this.submit_card_error(t.error);this.is_current_page("order_pay")?(this.set_nonce(t.paymentMethod.id),this.process_order_pay()):this.on_token_received(t.paymentMethod)}.bind(this)))},t.prototype.checkout_place_order=function(){return this.is_saved_method_selected()||this.payment_token_received?e.CheckoutGateway.prototype.checkout_place_order.apply(this,arguments):(this.place_order.apply(this,arguments),!1)},t.prototype.on_token_received=function(t){this.payment_token_received=!0,t.hasOwnProperty("id")?this.set_nonce(t.id):this.set_nonce(t),this.get_form().trigger("submit")},t.prototype.on_setup_intent_received=function(t){this.payment_token_received=!0,this.set_nonce(t.payment_method),this.set_intent(t.id),this.get_form().trigger("submit")},t.prototype.updated_checkout=function(t,e){if(void 0!==e&&e.fragments&&e.fragments.hasOwnProperty(".wc-stripe-element-options")&&this.is_payment_element_enabled())try{var i=JSON.parse(window.atob(decodeURIComponent(e.fragments[".wc-stripe-element-options"])));this.params.elementOptions.mode!==i.mode&&(this.params.elementOptions.mode=i.mode,this.params.cardFormType="payment",this.elements=this.create_stripe_elements(),this.setup_card())}catch(s){}this.create_card_element(),this.handle_create_account_change(),!this.can_create_setup_intent()||this.client_secret||this.is_payment_element_enabled()||this.create_setup_intent()},t.prototype.update_checkout=function(){this.clear_card_elements()},t.prototype.show_payment_button=function(){e.CheckoutGateway.prototype.show_place_order.apply(this,arguments)},t.prototype.hide_place_order=function(){},t.prototype.is_custom_form=function(){return"1"===this.params.custom_form},t.prototype.get_postal_code=function(){return this.is_custom_form()&&0<a("#stripe-postal-code").length?a("#stripe-postal-code").val():this.fields.get(this.get_billing_prefix()+"_postcode",null)},t.prototype.card_number_change=function(t){"unknown"===t.brand?a("#wc-stripe-card").removeClass("active"):a("#wc-stripe-card").addClass("active"),a("#wc-stripe-card").attr("src",this.params.cards[t.brand])},t.prototype.on_input_change=function(t){if(t.complete){var e=a("#wc-stripe-cc-custom-form").find(".StripeElement, #stripe-postal-code"),i=[];e.each(function(t,e){i.push("#"+a(e).attr("id"))}.bind(this));var t=this.mappings[t.elementType],s=i.indexOf(t);if("undefined"!=typeof i[s+1])if("#stripe-postal-code"===i[s+1])document.getElementById("stripe-postal-code").focus();else for(var n in this.mappings)this.mappings[n]===i[s+1]&&this[n].focus()}},t.prototype.clear_card_elements=function(){for(var t=["cardNumber","cardExpiry","cardCvc"],e=0;e<t.length;e++)this[t[e]]&&this[t[e]].clear()},t.prototype.checkout_error=function(){this.is_gateway_selected()&&(this.payment_token_received=!1),e.CheckoutGateway.prototype.checkout_error.call(this)},t.prototype.get_billing_details=function(){var t=e.BaseGateway.prototype.get_billing_details.call(this);return t.address.postal_code=this.get_postal_code(),t},t.prototype.can_create_setup_intent=function(){return this.is_add_payment_method_page()||this.is_change_payment_method()||this.is_current_page("checkout")&&this.cart_contains_subscription()&&this.get_gateway_data()&&0==this.get_total_price_cents()||this.is_current_page(["checkout","product"])&&"undefined"!=typeof wc_stripe_preorder_exists||this.is_current_page("order_pay")&&"pre_order"in this.get_gateway_data()&&!0===this.get_gateway_data().pre_order||this.is_current_page("product")&&0==this.get_total_price_cents()},t.prototype.handle_create_account_change=function(){a("#createaccount").length&&(a("#createaccount").is(":checked")&&!this.linkPaymentEnabled?this.show_save_card():this.hide_save_card())},t.prototype.hide_save_card=function(){a(".wc-stripe-save-source").hide()},t.prototype.show_save_card=function(){a(".wc-stripe-save-source").show()},t.prototype.submit_card_error=function(t){"bcf"===this.params.notice_location&&(a(".wc-stripe-card-notice").remove(),a(".wc-stripe_cc-new-method-container").append('<div class="wc-stripe-card-notice"></div>')),e.BaseGateway.prototype.submit_error.call(this,t,!0)},t.prototype.container_styles=function(){e.CheckoutGateway.prototype.container_styles.apply(this,arguments),this.is_custom_form()&&a(this.container).find(".payment_box").addClass("custom-form__"+this.params.custom_form_name)},t.prototype.checkout_fields_valid=function(){var t=this.is_valid_checkout();return t||this.submit_error(this.params.messages.terms),t},t.prototype.is_installments_available=function(){var t=this.get_gateway_data();return!!t&&!!t.installments.enabled},t.prototype.update_element_status=function(t){this.elementStatus[t.elementType]=t},t.prototype.is_card_form_complete=function(){return Object.keys(this.elementStatus).filter(function(t){return!!this.elementStatus[t].complete}.bind(this)).length==Object.keys(this.elementStatus).length},t.prototype.on_card_element_change=function(t){this.update_element_status(t),this.is_current_page(["checkout","order_pay"])&&this.is_card_form_complete()&&this.is_installments_available()&&this.initialize_installments()},t.prototype.initialize_installments=function(t){this.installmentTimeoutId&&clearTimeout(this.installmentTimeoutId),this.installmentTimeoutId=setTimeout(function(t){t?(this.show_installment_loader(),this.fetch_installment_plans(t)["finally"](function(){this.hide_installment_loader()}.bind(this))):(this.is_payment_element_enabled()?this.stripe.updatePaymentIntent({elements:this.elements,params:{payment_method_data:{billing_details:this.get_billing_details()}}}).then(function(t){t.error?this.hide_installment_loader():(this.show_installment_loader(),this.fetch_installment_plans(t.paymentIntent.payment_method)["finally"](function(){this.hide_installment_loader()}.bind(this)))}.bind(this)):this.stripe.createPaymentMethod({type:"card",card:this.is_custom_form()?this.cardNumber:this.card,billing_details:this.get_billing_details()}).then(function(t){t.error?this.hide_installment_loader():(this.show_installment_loader(),this.fetch_installment_plans(t.paymentMethod.id)["finally"](function(){this.hide_installment_loader()}.bind(this)))}.bind(this)))["catch"](this.hide_installment_loader.bind(this))}.bind(this,t),250)},t.prototype.fetch_installment_plans=function(t){return this.fetch_payment_intent(t).then(function(t){t.installments_html&&a(".wc-stripe-installment-container").replaceWith(t.installments_html)}.bind(this))["catch"](function(t){return this.submit_card_error(t)}.bind(this))["finally"](function(){}.bind(this))},t.prototype.fetch_payment_intent=function(n){return new Promise(function(e,i){var t=this.params.routes.create_payment_intent,s=!1;this.is_current_page("order_pay")&&(t=this.params.routes.order_create_payment_intent,s=!0),a.ajax({url:t,method:"POST",dataType:"json",data:s?{payment_method_id:n,payment_method:this.gateway_id,order_id:this.get_gateway_data().order.id,order_key:this.get_gateway_data().order.key}:a.extend({},this.serialize_fields(),{payment_method_id:n,payment_method:this.gateway_id,page_id:this.get_page()}),beforeSend:this.ajax_before_send.bind(this)}).done(function(t){(t.code?i:e)(t)}.bind(this)).fail(function(t){i()}.bind(this))}.bind(this))},t.prototype.show_installment_loader=function(){a(".wc-stripe-installment-options").addClass("loading-installments"),a('[name="_stripe_installment_plan"] option:selected').eq(0).text(this.params.installments.loading),a(".wc-stripe-installment-loader").show()},t.prototype.hide_installment_loader=function(t){a(".wc-stripe-installment-options").removeClass("loading-installments"),a(".wc-stripe-installment-loader").hide()},t.prototype.maybe_initialize_installments=function(){this.is_installments_available()&&this.is_saved_method_selected()&&this.initialize_installments(this.get_selected_payment_method())},t.prototype.is_payment_element_enabled=function(){return"payment"===this.params.cardFormType},t.prototype.get_element_options=function(){if(this.is_payment_element_enabled()){var t="payment"===this.params.elementOptions.mode?{amount:this.get_total_price_cents(),currency:this.get_currency().toLowerCase()}:{};return a.extend({},this.params.elementOptions,t)}return this.params.elementOptions},t.prototype.get_create_payment_method_params=function(){return this.is_payment_element_enabled()?{elements:this.elements,params:{billing_details:this.get_billing_details()}}:{type:"card",card:this.is_custom_form()?this.cardNumber:this.card,billing_details:this.get_billing_details()}},new t}(jQuery,window.wc_stripe);
assets/js/frontend/link-checkout.js CHANGED
@@ -1,11 +1,13 @@
1
  import $ from 'jquery';
 
 
 
2
 
3
  $(() => {
4
- if (wcStripeLinkParams === 'undefined') {
5
  return false;
6
  }
7
  try {
8
- const creditCard = wc_stripe.credit_card;
9
  const stripe = creditCard.stripe;
10
  const link = stripe.linkAutofillModal(creditCard.elements);
11
 
1
  import $ from 'jquery';
2
+ import wc_stripe from '@paymentplugins/wc-stripe';
3
+
4
+ const {credit_card: creditCard} = wc_stripe;
5
 
6
  $(() => {
7
+ if (wcStripeLinkParams === 'undefined' || !wcStripeLinkParams?.elementOptions?.mode) {
8
  return false;
9
  }
10
  try {
 
11
  const stripe = creditCard.stripe;
12
  const link = stripe.linkAutofillModal(creditCard.elements);
13
 
i18n/languages/woo-stripe-payment.pot CHANGED
@@ -2,14 +2,14 @@
2
  # This file is distributed under the same license as the Payment Plugins for Stripe WooCommerce plugin.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: Payment Plugins for Stripe WooCommerce 3.3.31\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woo-stripe-payment\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "POT-Creation-Date: 2022-10-19T07:52:50+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: woo-stripe-payment\n"
@@ -434,7 +434,7 @@ msgstr ""
434
  #: templates/cc-forms/bootstrap.php:16
435
  #: templates/cc-forms/minimalist.php:30
436
  #: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:19
437
- #: packages/blocks/build/commons.js:1805
438
  msgid "Exp"
439
  msgstr ""
440
 
@@ -720,7 +720,7 @@ msgstr ""
720
  msgid "If enabled, the plugin will listen for the <strong>review.closed</strong> webhook event and set the order's status back to the status before the review was opened."
721
  msgstr ""
722
 
723
- #: includes/admin/settings/class-wc-stripe-advanced-settings.php:260
724
  msgid "Supported Stripe account countries: %1$s. Supported currencies: %2$s"
725
  msgstr ""
726
 
@@ -1193,7 +1193,7 @@ msgstr ""
1193
  #: includes/gateways/class-wc-payment-gateway-stripe-afterpay.php:26
1194
  #: includes/gateways/class-wc-payment-gateway-stripe-afterpay.php:27
1195
  #: packages/blocks/assets/js/payment-methods/local-payment/afterpay.js:123
1196
- #: packages/blocks/build/commons.js:3795
1197
  msgid "Afterpay"
1198
  msgstr ""
1199
 
@@ -1529,19 +1529,19 @@ msgstr ""
1529
 
1530
  #: includes/gateways/class-wc-payment-gateway-stripe-cc.php:86
1531
  #: packages/blocks/assets/js/components/checkout/installments/index.js:69
1532
- #: packages/blocks/build/commons.js:1343
1533
  msgid "Loading installments..."
1534
  msgstr ""
1535
 
1536
- #: includes/gateways/class-wc-payment-gateway-stripe-cc.php:325
1537
  msgid "Only the Stripe payment form can be used while Link is enabled."
1538
  msgstr ""
1539
 
1540
- #: includes/gateways/class-wc-payment-gateway-stripe-cc.php:330
1541
  msgid "The Payment Element card form design is only available to connected accounts at this time because it's a Stripe beta feature. To use the Payment Element in test mode, use the connect option on the API Settings page."
1542
  msgstr ""
1543
 
1544
- #: includes/gateways/class-wc-payment-gateway-stripe-cc.php:341
1545
  msgid "Stripe payment form (beta feature)"
1546
  msgstr ""
1547
 
@@ -1742,7 +1742,7 @@ msgstr ""
1742
 
1743
  #: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:92
1744
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:130
1745
- #: packages/blocks/build/commons.js:4930
1746
  msgid "Scan the QR code using your WeChat app. Once scanned click the Place Order button."
1747
  msgstr ""
1748
 
@@ -2639,8 +2639,8 @@ msgstr ""
2639
  #: templates/cc-forms/simple.php:12
2640
  #: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:13
2641
  #: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:19
2642
- #: packages/blocks/build/commons.js:1799
2643
- #: packages/blocks/build/commons.js:1948
2644
  msgid "Card Number"
2645
  msgstr ""
2646
 
@@ -2650,8 +2650,8 @@ msgstr ""
2650
  #: templates/cc-forms/simple.php:26
2651
  #: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:24
2652
  #: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:40
2653
- #: packages/blocks/build/commons.js:1810
2654
  #: packages/blocks/build/commons.js:1969
 
2655
  msgid "CVV"
2656
  msgstr ""
2657
 
@@ -2671,7 +2671,7 @@ msgstr ""
2671
 
2672
  #: templates/cc-forms/simple.php:20
2673
  #: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:31
2674
- #: packages/blocks/build/commons.js:1960
2675
  msgid "Expiration"
2676
  msgstr ""
2677
 
@@ -2697,7 +2697,7 @@ msgstr ""
2697
 
2698
  #: templates/checkout/afterpay.php:11
2699
  #: packages/blocks/assets/js/payment-methods/local-payment/afterpay.js:83
2700
- #: packages/blocks/build/commons.js:3755
2701
  msgid "After clicking \"%s\", you will be redirected to Afterpay to complete your purchase securely."
2702
  msgstr ""
2703
 
@@ -2707,25 +2707,25 @@ msgstr ""
2707
 
2708
  #: templates/checkout/boleto.php:17
2709
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:54
2710
- #: packages/blocks/build/commons.js:4004
2711
  msgid "Test mode values"
2712
  msgstr ""
2713
 
2714
  #: templates/checkout/boleto.php:27
2715
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:64
2716
- #: packages/blocks/build/commons.js:4014
2717
  msgid "Accepted formats"
2718
  msgstr ""
2719
 
2720
  #: templates/checkout/boleto.php:29
2721
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:67
2722
- #: packages/blocks/build/commons.js:4017
2723
  msgid "XXX.XXX.XXX-XX or XXXXXXXXXXX"
2724
  msgstr ""
2725
 
2726
  #: templates/checkout/boleto.php:32
2727
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:71
2728
- #: packages/blocks/build/commons.js:4021
2729
  msgid "XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX"
2730
  msgstr ""
2731
 
@@ -2739,50 +2739,50 @@ msgstr ""
2739
 
2740
  #: templates/checkout/klarna-v2.php:12
2741
  #: packages/blocks/assets/js/payment-methods/local-payment/klarna.js:15
2742
- #: packages/blocks/build/commons.js:4429
2743
  msgid "Test mode sms"
2744
  msgstr ""
2745
 
2746
  #: templates/installment-plans.php:8
2747
  #: packages/blocks/assets/js/components/checkout/installments/index.js:72
2748
- #: packages/blocks/build/commons.js:1346
2749
  msgid "Fill out card form for eligibility."
2750
  msgstr ""
2751
 
2752
  #: templates/installment-plans.php:13
2753
  #: packages/blocks/assets/js/components/checkout/installments/index.js:54
2754
- #: packages/blocks/build/commons.js:1328
2755
  msgid "Pay in installments:"
2756
  msgstr ""
2757
 
2758
  #: packages/blocks/assets/js/payment-methods/credit-card/components/custom-card-form.js:83
2759
- #: packages/blocks/build/commons.js:1904
2760
  msgid "%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings."
2761
  msgstr ""
2762
 
2763
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:27
2764
- #: packages/blocks/build/commons.js:3977
2765
  msgid "Please enter a valid CPF/CNPJ value"
2766
  msgstr ""
2767
 
2768
  #: packages/blocks/assets/js/payment-methods/local-payment/hooks/use-create-source.js:73
2769
  #: packages/blocks/assets/js/payment-methods/local-payment/hooks/use-validate-checkout.js:10
2770
- #: packages/blocks/build/commons.js:4308
2771
- #: packages/blocks/build/commons.js:4345
2772
  msgid "Please enter your payment info before proceeding."
2773
  msgstr ""
2774
 
2775
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:51
2776
- #: packages/blocks/build/commons.js:4851
2777
  msgid "Please scan your QR code to continue with payment."
2778
  msgstr ""
2779
 
2780
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:97
2781
- #: packages/blocks/build/commons.js:4897
2782
  msgid "Please fill out all the required fields in order to complete the WeChat payment."
2783
  msgstr ""
2784
 
2785
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:127
2786
- #: packages/blocks/build/commons.js:4927
2787
  msgid "Test mode: Click the Place Order button to proceed."
2788
  msgstr ""
2
  # This file is distributed under the same license as the Payment Plugins for Stripe WooCommerce plugin.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: Payment Plugins for Stripe WooCommerce 3.3.32\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/woo-stripe-payment\n"
7
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
8
  "Language-Team: LANGUAGE <LL@li.org>\n"
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
+ "POT-Creation-Date: 2022-11-11T18:37:02+00:00\n"
13
  "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
14
  "X-Generator: WP-CLI 2.4.0\n"
15
  "X-Domain: woo-stripe-payment\n"
434
  #: templates/cc-forms/bootstrap.php:16
435
  #: templates/cc-forms/minimalist.php:30
436
  #: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:19
437
+ #: packages/blocks/build/commons.js:1964
438
  msgid "Exp"
439
  msgstr ""
440
 
720
  msgid "If enabled, the plugin will listen for the <strong>review.closed</strong> webhook event and set the order's status back to the status before the review was opened."
721
  msgstr ""
722
 
723
+ #: includes/admin/settings/class-wc-stripe-advanced-settings.php:251
724
  msgid "Supported Stripe account countries: %1$s. Supported currencies: %2$s"
725
  msgstr ""
726
 
1193
  #: includes/gateways/class-wc-payment-gateway-stripe-afterpay.php:26
1194
  #: includes/gateways/class-wc-payment-gateway-stripe-afterpay.php:27
1195
  #: packages/blocks/assets/js/payment-methods/local-payment/afterpay.js:123
1196
+ #: packages/blocks/build/commons.js:3987
1197
  msgid "Afterpay"
1198
  msgstr ""
1199
 
1529
 
1530
  #: includes/gateways/class-wc-payment-gateway-stripe-cc.php:86
1531
  #: packages/blocks/assets/js/components/checkout/installments/index.js:69
1532
+ #: packages/blocks/build/commons.js:1502
1533
  msgid "Loading installments..."
1534
  msgstr ""
1535
 
1536
+ #: includes/gateways/class-wc-payment-gateway-stripe-cc.php:317
1537
  msgid "Only the Stripe payment form can be used while Link is enabled."
1538
  msgstr ""
1539
 
1540
+ #: includes/gateways/class-wc-payment-gateway-stripe-cc.php:322
1541
  msgid "The Payment Element card form design is only available to connected accounts at this time because it's a Stripe beta feature. To use the Payment Element in test mode, use the connect option on the API Settings page."
1542
  msgstr ""
1543
 
1544
+ #: includes/gateways/class-wc-payment-gateway-stripe-cc.php:333
1545
  msgid "Stripe payment form (beta feature)"
1546
  msgstr ""
1547
 
1742
 
1743
  #: includes/gateways/class-wc-payment-gateway-stripe-wechat.php:92
1744
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:130
1745
+ #: packages/blocks/build/commons.js:5122
1746
  msgid "Scan the QR code using your WeChat app. Once scanned click the Place Order button."
1747
  msgstr ""
1748
 
2639
  #: templates/cc-forms/simple.php:12
2640
  #: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:13
2641
  #: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:19
2642
+ #: packages/blocks/build/commons.js:1958
2643
+ #: packages/blocks/build/commons.js:2107
2644
  msgid "Card Number"
2645
  msgstr ""
2646
 
2650
  #: templates/cc-forms/simple.php:26
2651
  #: packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js:24
2652
  #: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:40
 
2653
  #: packages/blocks/build/commons.js:1969
2654
+ #: packages/blocks/build/commons.js:2128
2655
  msgid "CVV"
2656
  msgstr ""
2657
 
2671
 
2672
  #: templates/cc-forms/simple.php:20
2673
  #: packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js:31
2674
+ #: packages/blocks/build/commons.js:2119
2675
  msgid "Expiration"
2676
  msgstr ""
2677
 
2697
 
2698
  #: templates/checkout/afterpay.php:11
2699
  #: packages/blocks/assets/js/payment-methods/local-payment/afterpay.js:83
2700
+ #: packages/blocks/build/commons.js:3947
2701
  msgid "After clicking \"%s\", you will be redirected to Afterpay to complete your purchase securely."
2702
  msgstr ""
2703
 
2707
 
2708
  #: templates/checkout/boleto.php:17
2709
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:54
2710
+ #: packages/blocks/build/commons.js:4196
2711
  msgid "Test mode values"
2712
  msgstr ""
2713
 
2714
  #: templates/checkout/boleto.php:27
2715
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:64
2716
+ #: packages/blocks/build/commons.js:4206
2717
  msgid "Accepted formats"
2718
  msgstr ""
2719
 
2720
  #: templates/checkout/boleto.php:29
2721
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:67
2722
+ #: packages/blocks/build/commons.js:4209
2723
  msgid "XXX.XXX.XXX-XX or XXXXXXXXXXX"
2724
  msgstr ""
2725
 
2726
  #: templates/checkout/boleto.php:32
2727
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:71
2728
+ #: packages/blocks/build/commons.js:4213
2729
  msgid "XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX"
2730
  msgstr ""
2731
 
2739
 
2740
  #: templates/checkout/klarna-v2.php:12
2741
  #: packages/blocks/assets/js/payment-methods/local-payment/klarna.js:15
2742
+ #: packages/blocks/build/commons.js:4621
2743
  msgid "Test mode sms"
2744
  msgstr ""
2745
 
2746
  #: templates/installment-plans.php:8
2747
  #: packages/blocks/assets/js/components/checkout/installments/index.js:72
2748
+ #: packages/blocks/build/commons.js:1505
2749
  msgid "Fill out card form for eligibility."
2750
  msgstr ""
2751
 
2752
  #: templates/installment-plans.php:13
2753
  #: packages/blocks/assets/js/components/checkout/installments/index.js:54
2754
+ #: packages/blocks/build/commons.js:1487
2755
  msgid "Pay in installments:"
2756
  msgstr ""
2757
 
2758
  #: packages/blocks/assets/js/payment-methods/credit-card/components/custom-card-form.js:83
2759
+ #: packages/blocks/build/commons.js:2063
2760
  msgid "%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings."
2761
  msgstr ""
2762
 
2763
  #: packages/blocks/assets/js/payment-methods/local-payment/boleto.js:27
2764
+ #: packages/blocks/build/commons.js:4169
2765
  msgid "Please enter a valid CPF/CNPJ value"
2766
  msgstr ""
2767
 
2768
  #: packages/blocks/assets/js/payment-methods/local-payment/hooks/use-create-source.js:73
2769
  #: packages/blocks/assets/js/payment-methods/local-payment/hooks/use-validate-checkout.js:10
2770
+ #: packages/blocks/build/commons.js:4500
2771
+ #: packages/blocks/build/commons.js:4537
2772
  msgid "Please enter your payment info before proceeding."
2773
  msgstr ""
2774
 
2775
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:51
2776
+ #: packages/blocks/build/commons.js:5043
2777
  msgid "Please scan your QR code to continue with payment."
2778
  msgstr ""
2779
 
2780
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:97
2781
+ #: packages/blocks/build/commons.js:5089
2782
  msgid "Please fill out all the required fields in order to complete the WeChat payment."
2783
  msgstr ""
2784
 
2785
  #: packages/blocks/assets/js/payment-methods/local-payment/wechat.js:127
2786
+ #: packages/blocks/build/commons.js:5119
2787
  msgid "Test mode: Click the Place Order button to proceed."
2788
  msgstr ""
includes/admin/settings/class-wc-stripe-advanced-settings.php CHANGED
@@ -215,15 +215,6 @@ class WC_Stripe_Advanced_Settings extends WC_Stripe_Settings_API {
215
  }
216
  }
217
 
218
- /*public function get_form_fields() {
219
- $fields = parent::get_form_fields();
220
- if ( stripe_wc()->account_settings->get_account_country( wc_stripe_mode() ) !== 'US' ) {
221
- unset( $fields['link_title'], $fields['link_enabled'], $fields['link_email'], $fields['link_autoload'] );
222
- }
223
-
224
- return $fields;
225
- }*/
226
-
227
  public function is_fee_enabled() {
228
  return $this->is_active( 'stripe_fee' );
229
  }
215
  }
216
  }
217
 
 
 
 
 
 
 
 
 
 
218
  public function is_fee_enabled() {
219
  return $this->is_active( 'stripe_fee' );
220
  }
includes/class-stripe.php CHANGED
@@ -26,7 +26,7 @@ class WC_Stripe_Manager {
26
  *
27
  * @var string
28
  */
29
- public $version = '3.3.31';
30
 
31
  /**
32
  *
26
  *
27
  * @var string
28
  */
29
+ public $version = '3.3.32';
30
 
31
  /**
32
  *
includes/class-wc-stripe-api-request-filter.php CHANGED
@@ -18,8 +18,8 @@ class WC_Stripe_API_Request_Filter {
18
  }
19
 
20
  private function initialize() {
 
21
  if ( $this->advanced_settings->is_fee_enabled() ) {
22
- add_filter( 'wc_stripe_payment_intent_args', array( $this, 'expand_balance_transaction' ) );
23
  add_filter( 'wc_stripe_payment_intent_confirmation_args', array( $this, 'expand_balance_transaction' ) );
24
  add_filter( 'wc_stripe_payment_intent_retrieve_args', array( $this, 'expand_balance_transaction' ) );
25
  add_filter( 'wc_stripe_payment_intent_capture_args', array( $this, 'expand_balance_transaction' ) );
@@ -37,6 +37,16 @@ class WC_Stripe_API_Request_Filter {
37
  return $args;
38
  }
39
 
 
 
 
 
 
 
 
 
 
 
40
  public function expand_balance_transaction_for_charge( $args ) {
41
  $args['expand'] = isset( $args['expand'] ) ? $args['expand'] : array();
42
  $args['expand'][] = 'balance_transaction';
18
  }
19
 
20
  private function initialize() {
21
+ add_filter( 'wc_stripe_payment_intent_args', array( $this, 'expand_payment_intent_properties' ) );
22
  if ( $this->advanced_settings->is_fee_enabled() ) {
 
23
  add_filter( 'wc_stripe_payment_intent_confirmation_args', array( $this, 'expand_balance_transaction' ) );
24
  add_filter( 'wc_stripe_payment_intent_retrieve_args', array( $this, 'expand_balance_transaction' ) );
25
  add_filter( 'wc_stripe_payment_intent_capture_args', array( $this, 'expand_balance_transaction' ) );
37
  return $args;
38
  }
39
 
40
+ public function expand_payment_intent_properties( $args ) {
41
+ $args['expand'] = isset( $args['expand'] ) ? $args['expand'] : array();
42
+ $args['expand'][] = 'payment_method';
43
+ if ( $this->advanced_settings->is_fee_enabled() ) {
44
+ $args = $this->expand_balance_transaction( $args );
45
+ }
46
+
47
+ return $args;
48
+ }
49
+
50
  public function expand_balance_transaction_for_charge( $args ) {
51
  $args['expand'] = isset( $args['expand'] ) ? $args['expand'] : array();
52
  $args['expand'][] = 'balance_transaction';
includes/class-wc-stripe-field-manager.php CHANGED
@@ -55,7 +55,7 @@ class WC_Stripe_Field_Manager {
55
 
56
  public static function before_add_to_cart() {
57
  global $product;
58
- self::$_product_button_position = $product ? $product->get_meta( WC_Stripe_Constants::BUTTON_POSITION ) : null;
59
  if ( empty( self::$_product_button_position ) ) {
60
  self::$_product_button_position = 'bottom';
61
  }
55
 
56
  public static function before_add_to_cart() {
57
  global $product;
58
+ self::$_product_button_position = is_object( $product ) ? $product->get_meta( WC_Stripe_Constants::BUTTON_POSITION ) : null;
59
  if ( empty( self::$_product_button_position ) ) {
60
  self::$_product_button_position = 'bottom';
61
  }
includes/class-wc-stripe-payment-intent.php CHANGED
@@ -43,13 +43,10 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
43
  }
44
  }
45
 
46
- WC_Stripe_Utils::save_payment_intent_to_session( $intent );
47
  // always update the order with the payment intent.
48
  $order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT_ID, $intent->id );
49
  $order->update_meta_data( WC_Stripe_Constants::PAYMENT_METHOD_TOKEN, $intent->payment_method );
50
  $order->update_meta_data( WC_Stripe_Constants::MODE, wc_stripe_mode() );
51
- // serialize the intent and save to the order. The intent will be used to analyze if anything
52
- // has changed.
53
  $order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT, WC_Stripe_Utils::sanitize_intent( $intent->toArray() ) );
54
  $order->save();
55
 
@@ -99,9 +96,11 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
99
  * Allow 3rd party code to alter the order status of an asynchronous payment method.
100
  * The plugin uses the charge.pending event to set the order's status to on-hold.
101
  */
102
- $status = apply_filters( 'wc_stripe_asynchronous_payment_method_order_status', 'pending', $order, $intent );
103
- if ( 'pending' !== $status ) {
104
- $order->update_status( $status );
 
 
105
  }
106
 
107
  return (object) array(
@@ -245,11 +244,6 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
245
  $args['confirmation_method'] = $this->payment_method->get_confirmation_method( $order );
246
  $args['confirm'] = false;
247
  } else {
248
- /*if ( $this->payment_method->id !== 'stripe_cc' || $this->payment_method->get_confirmation_method() !== WC_Stripe_Constants::AUTOMATIC ) {
249
- // have to add a validation since capture_method is only allowed for gated accounts and in test mode
250
- // you must request to be gated in.
251
- unset( $args['capture_method'] );
252
- }*/
253
  if ( $intent && $intent['status'] === 'requires_action' ) {
254
  unset( $args['capture_method'] );
255
  }
@@ -288,6 +282,12 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
288
 
289
  $args['payment_method_types'][] = $this->payment_method->get_payment_method_type();
290
 
 
 
 
 
 
 
291
  $this->payment_method->add_stripe_order_args( $args, $order );
292
 
293
  /**
@@ -381,16 +381,21 @@ class WC_Stripe_Payment_Intent extends WC_Stripe_Payment {
381
  }
382
  $intent = $intent ? $this->gateway->paymentIntents->retrieve( $intent['id'], apply_filters( 'wc_stripe_payment_intent_retrieve_args', array( 'expand' => array( 'payment_method' ) ), $order, $intent['id'] ) ) : false;
383
  if ( $intent && ! is_wp_error( $intent ) ) {
384
- if ( \in_array( $intent->status, array( 'succeeded', 'requires_capture', 'processing' ) ) && ! defined( WC_Stripe_Constants::REDIRECT_HANDLER ) ) {
385
- /**
386
- * If the status is succeeded, and the order ID on the intent doesn't match this checkout's order ID, we know this is
387
- * a previously processed intent and so should not be used.
388
- */
389
- if ( isset( $intent->metadata['order_id'] ) && $intent->metadata['order_id'] != $order->get_id() ) {
 
 
 
 
 
 
 
390
  $intent = false;
391
  }
392
- } elseif ( $intent['confirmation_method'] != $this->payment_method->get_confirmation_method( $order ) ) {
393
- $intent = false;
394
  }
395
 
396
  // compare the active environment to the order's environment
43
  }
44
  }
45
 
 
46
  // always update the order with the payment intent.
47
  $order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT_ID, $intent->id );
48
  $order->update_meta_data( WC_Stripe_Constants::PAYMENT_METHOD_TOKEN, $intent->payment_method );
49
  $order->update_meta_data( WC_Stripe_Constants::MODE, wc_stripe_mode() );
 
 
50
  $order->update_meta_data( WC_Stripe_Constants::PAYMENT_INTENT, WC_Stripe_Utils::sanitize_intent( $intent->toArray() ) );
51
  $order->save();
52
 
96
  * Allow 3rd party code to alter the order status of an asynchronous payment method.
97
  * The plugin uses the charge.pending event to set the order's status to on-hold.
98
  */
99
+ if ( ! $this->payment_method->synchronous ) {
100
+ $status = apply_filters( 'wc_stripe_asynchronous_payment_method_order_status', 'pending', $order, $intent );
101
+ if ( 'pending' !== $status ) {
102
+ $order->update_status( $status );
103
+ }
104
  }
105
 
106
  return (object) array(
244
  $args['confirmation_method'] = $this->payment_method->get_confirmation_method( $order );
245
  $args['confirm'] = false;
246
  } else {
 
 
 
 
 
247
  if ( $intent && $intent['status'] === 'requires_action' ) {
248
  unset( $args['capture_method'] );
249
  }
282
 
283
  $args['payment_method_types'][] = $this->payment_method->get_payment_method_type();
284
 
285
+ // if there is a payment method attached already, then ensure the payment_method_type
286
+ // associated with that attached payment_method is included.
287
+ if ( $intent && ! empty( $intent->payment_method ) && \is_array( $intent->payment_method_types ) ) {
288
+ $args['payment_method_types'] = array_unique( array_merge( $args['payment_method_types'], $intent->payment_method_types ) );
289
+ }
290
+
291
  $this->payment_method->add_stripe_order_args( $args, $order );
292
 
293
  /**
381
  }
382
  $intent = $intent ? $this->gateway->paymentIntents->retrieve( $intent['id'], apply_filters( 'wc_stripe_payment_intent_retrieve_args', array( 'expand' => array( 'payment_method' ) ), $order, $intent['id'] ) ) : false;
383
  if ( $intent && ! is_wp_error( $intent ) ) {
384
+ // If an intent is cancelled, then it's likely that it timed out and can't be used.
385
+ if ( $intent->status === 'canceled' ) {
386
+ $intent = false;
387
+ } else {
388
+ if ( \in_array( $intent->status, array( 'succeeded', 'requires_capture', 'processing' ) ) && ! defined( WC_Stripe_Constants::REDIRECT_HANDLER ) ) {
389
+ /**
390
+ * If the status is succeeded, and the order ID on the intent doesn't match this checkout's order ID, we know this is
391
+ * a previously processed intent and so should not be used.
392
+ */
393
+ if ( isset( $intent->metadata['order_id'] ) && $intent->metadata['order_id'] != $order->get_id() ) {
394
+ $intent = false;
395
+ }
396
+ } elseif ( $intent['confirmation_method'] != $this->payment_method->get_confirmation_method( $order ) ) {
397
  $intent = false;
398
  }
 
 
399
  }
400
 
401
  // compare the active environment to the order's environment
includes/gateways/class-wc-payment-gateway-stripe-cc.php CHANGED
@@ -145,15 +145,19 @@ class WC_Payment_Gateway_Stripe_CC extends WC_Payment_Gateway_Stripe {
145
  if ( $this->is_custom_form_active() ) {
146
  return parent::get_element_options( $this->get_custom_form()['elementOptions'] );
147
  } elseif ( $this->is_payment_element_active() ) {
148
- $payment_intent = \WC_Stripe_Utils::get_payment_intent_from_session();
149
- if ( $payment_intent ) {
150
- return parent::get_element_options( array( 'clientSecret' => $payment_intent->client_secret ) );
151
  }
 
 
 
152
  }
153
 
154
  return parent::get_element_options();
155
  }
156
 
 
157
  /**
158
  * Returns true if custom forms are enabled.
159
  *
@@ -299,24 +303,12 @@ class WC_Payment_Gateway_Stripe_CC extends WC_Payment_Gateway_Stripe {
299
  return $this->installments->is_available( $order_id );
300
  }
301
 
302
- public function get_confirmation_method( $order = null ) {
303
- return $this->is_payment_element_active() ? 'automatic' : 'manual';
304
- }
305
-
306
  /**
307
  * @return string Serves as a wrapper for the form_type option with some validations to ensure
308
  * a payment intent exists in the session.
309
  */
310
  protected function get_active_card_form_type() {
311
- $type = $this->get_option( 'form_type' );
312
- if ( $this->is_payment_element_active() ) {
313
- $payment_intent = WC_Stripe_Utils::get_payment_intent_from_session();
314
- if ( ! $payment_intent ) {
315
- $type = 'inline';
316
- }
317
- }
318
-
319
- return $type;
320
  }
321
 
322
  public function validate_form_type_field( $key, $value ) {
@@ -344,4 +336,8 @@ class WC_Payment_Gateway_Stripe_CC extends WC_Payment_Gateway_Stripe {
344
  return $fields;
345
  }
346
 
 
 
 
 
347
  }
145
  if ( $this->is_custom_form_active() ) {
146
  return parent::get_element_options( $this->get_custom_form()['elementOptions'] );
147
  } elseif ( $this->is_payment_element_active() ) {
148
+ $options = \PaymentPlugins\Stripe\Controllers\PaymentIntent::instance()->get_element_options();
149
+ if ( \PaymentPlugins\Stripe\Link\LinkIntegration::instance()->is_active() ) {
150
+ $options = array_merge( $options, array( 'payment_method_types' => array( 'card', 'link' ) ) );
151
  }
152
+ $options['appearance'] = array( 'theme' => 'stripe' );
153
+
154
+ return parent::get_element_options( $options );
155
  }
156
 
157
  return parent::get_element_options();
158
  }
159
 
160
+
161
  /**
162
  * Returns true if custom forms are enabled.
163
  *
303
  return $this->installments->is_available( $order_id );
304
  }
305
 
 
 
 
 
306
  /**
307
  * @return string Serves as a wrapper for the form_type option with some validations to ensure
308
  * a payment intent exists in the session.
309
  */
310
  protected function get_active_card_form_type() {
311
+ return $this->get_option( 'form_type' );
 
 
 
 
 
 
 
 
312
  }
313
 
314
  public function validate_form_type_field( $key, $value ) {
336
  return $fields;
337
  }
338
 
339
+ public function is_deferred_intent_creation() {
340
+ return $this->is_payment_element_active();
341
+ }
342
+
343
  }
includes/traits/wc-stripe-payment-traits.php CHANGED
@@ -226,6 +226,14 @@ trait WC_Stripe_Payment_Intent_Trait {
226
  }
227
  }
228
 
 
 
 
 
 
 
 
 
229
  }
230
 
231
  /**
226
  }
227
  }
228
 
229
+ /**
230
+ * @since 3.3.32
231
+ * @return false
232
+ */
233
+ public function is_deferred_intent_creation() {
234
+ return false;
235
+ }
236
+
237
  }
238
 
239
  /**
packages/blocks/assets/js/payment-methods/credit-card/payment-element.js CHANGED
@@ -7,23 +7,38 @@ import {
7
 
8
  import {Installments} from '../../components/checkout/';
9
 
10
- import {useProcessCheckoutError, useUpdatePaymentIntent} from "../hooks";
11
 
12
 
13
  const getData = getSettings('stripe_cc_data');
14
 
15
- export const PaymentElementComponent = ({cartData, ...props}) => {
16
- const clientSecret = cartData?.extensions?.stripe_cc?.clientSecret;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  return (
18
  <>
19
- <Elements stripe={loadStripe} options={{...getData('elementOptions'), clientSecret}}>
20
- <CardElement {...props} clientSecret={clientSecret}/>
21
  </Elements>
22
  </>
23
  );
24
  }
25
 
26
- const CardElement = ({onComplete, clientSecret, ...props}) => {
27
  const [formComplete, setFormComplete] = useState(false);
28
  const installmentsActive = getData('installmentsActive')
29
  const elements = useElements();
@@ -35,8 +50,7 @@ const CardElement = ({onComplete, clientSecret, ...props}) => {
35
  const onChange = useCallback((event) => {
36
  setFormComplete(event.complete);
37
  }, []);
38
- const {updatePaymentIntent, addPaymentMethodData} = useUpdatePaymentIntent({
39
- clientSecret,
40
  billingData,
41
  eventRegistration,
42
  responseTypes,
7
 
8
  import {Installments} from '../../components/checkout/';
9
 
10
+ import {useProcessCheckoutError, useDeferredPaymentIntent} from "../hooks";
11
 
12
 
13
  const getData = getSettings('stripe_cc_data');
14
 
15
+ const isSetupCard = total => 0 >= total;
16
+
17
+ export const PaymentElementComponent = (props) => {
18
+ const {cartTotal, currency} = props.billing;
19
+ let options = {
20
+ mode: 'payment',
21
+ ...getData('elementOptions')
22
+ }
23
+ if (isSetupCard(cartTotal.value)) {
24
+ options = {...options, mode: 'setup'}
25
+ } else {
26
+ options = {
27
+ ...options,
28
+ amount: cartTotal.value,
29
+ currency: currency?.code?.toLowerCase()
30
+ }
31
+ }
32
  return (
33
  <>
34
+ <Elements stripe={loadStripe} options={options}>
35
+ <CardElement {...props}/>
36
  </Elements>
37
  </>
38
  );
39
  }
40
 
41
+ const CardElement = ({onComplete, ...props}) => {
42
  const [formComplete, setFormComplete] = useState(false);
43
  const installmentsActive = getData('installmentsActive')
44
  const elements = useElements();
50
  const onChange = useCallback((event) => {
51
  setFormComplete(event.complete);
52
  }, []);
53
+ const {updatePaymentIntent, addPaymentMethodData} = useDeferredPaymentIntent({
 
54
  billingData,
55
  eventRegistration,
56
  responseTypes,
packages/blocks/assets/js/payment-methods/hooks/index.js CHANGED
@@ -7,4 +7,4 @@ export * from './use-payment-request';
7
  export * from './use-payment-events';
8
  export * from './use-breakpoint-width';
9
  export * from './use-process-checkout-error';
10
- export * from './use-update-payment-intent';
7
  export * from './use-payment-events';
8
  export * from './use-breakpoint-width';
9
  export * from './use-process-checkout-error';
10
+ export * from './use-deferred-payment-intent';
packages/blocks/assets/js/payment-methods/hooks/{use-update-payment-intent.js → use-deferred-payment-intent.js} RENAMED
@@ -2,9 +2,8 @@ import {useState, useEffect, useRef, useCallback} from '@wordpress/element';
2
  import {useStripe, useElements} from "@stripe/react-stripe-js";
3
  import {ensureErrorResponse, ensureSuccessResponse, getBillingDetailsFromAddress, StripeError, isNextActionRequired, getRoute, handleCardAction} from '../util';
4
 
5
- export const useUpdatePaymentIntent = (
6
  {
7
- clientSecret,
8
  billingData,
9
  eventRegistration,
10
  responseTypes,
@@ -36,14 +35,12 @@ export const useUpdatePaymentIntent = (
36
  paymentMethodData.current = {...paymentMethodData.current, ...data};
37
  }, []);
38
 
39
- const updatePaymentIntent = useCallback(async () => {
40
  const {billingData} = currentData.current;
41
- return await stripe.updatePaymentIntent({
42
  elements,
43
  params: {
44
- payment_method_data: {
45
- billing_details: getBillingDetailsFromAddress(billingData)
46
- }
47
  }
48
  });
49
  }, [stripe, elements]);
@@ -62,7 +59,7 @@ export const useUpdatePaymentIntent = (
62
  }, [stripe, elements]);
63
 
64
  useEffect(() => {
65
- currentData.current = {billingData};
66
  });
67
 
68
  useEffect(() => {
@@ -70,16 +67,18 @@ export const useUpdatePaymentIntent = (
70
 
71
  try {
72
  let paymentMethod = null;
73
- let result = await stripe.retrievePaymentIntent(clientSecret);
74
- if (result.paymentIntent.status === 'requires_action') {
 
75
  paymentMethod = result.paymentIntent.payment_method;
76
  await confirmPayment();
77
  } else {
78
- result = await updatePaymentIntent();
79
  if (result.error) {
80
  throw new StripeError(result.error);
81
  }
82
- paymentMethod = result.paymentIntent.payment_method;
 
83
  }
84
  return ensureSuccessResponse(responseTypes, getSuccessResponse(paymentMethod, shouldSavePayment));
85
  } catch (error) {
@@ -89,9 +88,8 @@ export const useUpdatePaymentIntent = (
89
  return () => unsubscribe();
90
  }, [
91
  onPaymentProcessing,
92
- updatePaymentIntent,
93
  confirmPayment,
94
- clientSecret,
95
  shouldSavePayment
96
  ]);
97
 
@@ -101,8 +99,10 @@ export const useUpdatePaymentIntent = (
101
  redirectUrl,
102
  responseTypes,
103
  name,
104
- method: 'confirmCardPayment',
105
- savePaymentMethod: shouldSavePayment
 
 
106
  })
107
  });
108
  return () => unsubscribe();
@@ -114,7 +114,7 @@ export const useUpdatePaymentIntent = (
114
  ]);
115
 
116
  return {
117
- updatePaymentIntent,
118
  addPaymentMethodData
119
  }
120
  }
2
  import {useStripe, useElements} from "@stripe/react-stripe-js";
3
  import {ensureErrorResponse, ensureSuccessResponse, getBillingDetailsFromAddress, StripeError, isNextActionRequired, getRoute, handleCardAction} from '../util';
4
 
5
+ export const useDeferredPaymentIntent = (
6
  {
 
7
  billingData,
8
  eventRegistration,
9
  responseTypes,
35
  paymentMethodData.current = {...paymentMethodData.current, ...data};
36
  }, []);
37
 
38
+ const createPaymentMethod = useCallback(async () => {
39
  const {billingData} = currentData.current;
40
+ return await stripe.createPaymentMethod({
41
  elements,
42
  params: {
43
+ billing_details: getBillingDetailsFromAddress(billingData)
 
 
44
  }
45
  });
46
  }, [stripe, elements]);
59
  }, [stripe, elements]);
60
 
61
  useEffect(() => {
62
+ currentData.current.billingData = billingData;
63
  });
64
 
65
  useEffect(() => {
67
 
68
  try {
69
  let paymentMethod = null;
70
+ //let result = await stripe.retrievePaymentIntent(clientSecret);
71
+ let result = null;
72
+ if (result?.paymentIntent?.status === 'requires_action') {
73
  paymentMethod = result.paymentIntent.payment_method;
74
  await confirmPayment();
75
  } else {
76
+ result = await createPaymentMethod();
77
  if (result.error) {
78
  throw new StripeError(result.error);
79
  }
80
+ paymentMethod = result.paymentMethod.id;
81
+ currentData.current.paymentMethod = paymentMethod;
82
  }
83
  return ensureSuccessResponse(responseTypes, getSuccessResponse(paymentMethod, shouldSavePayment));
84
  } catch (error) {
88
  return () => unsubscribe();
89
  }, [
90
  onPaymentProcessing,
91
+ createPaymentMethod,
92
  confirmPayment,
 
93
  shouldSavePayment
94
  ]);
95
 
99
  redirectUrl,
100
  responseTypes,
101
  name,
102
+ savePaymentMethod: shouldSavePayment,
103
+ data: {
104
+ [`${name}_token_key`]: currentData.current.paymentMethod
105
+ }
106
  })
107
  });
108
  return () => unsubscribe();
114
  ]);
115
 
116
  return {
117
+ createPaymentMethod,
118
  addPaymentMethodData
119
  }
120
  }
packages/blocks/assets/js/payment-methods/link/hooks/use-link.js CHANGED
@@ -28,7 +28,11 @@ export const useLink = (
28
  if (stripe && elements && !link) {
29
  setLink(stripe?.linkAutofillModal(elements));
30
  }
31
- }, [stripe, elements, link]);
 
 
 
 
32
 
33
  useEffect(() => {
34
  if (link) {
@@ -65,16 +69,17 @@ export const useLink = (
65
  }
66
  // update the payment intent
67
  try {
68
- const result = await stripe.updatePaymentIntent({
69
  elements,
70
  params: {
71
- payment_method_data: {
72
- billing_details: getBillingDetailsFromAddress(response.meta.billingData)
73
- }
74
  }
75
  });
 
 
 
76
  response.meta.paymentMethodData = {
77
- stripe_cc_token_key: result.paymentIntent.payment_method,
78
  stripe_cc_save_source_key: false,
79
  }
80
  return ensureSuccessResponse(responseTypes, response);
@@ -85,7 +90,12 @@ export const useLink = (
85
  });
86
 
87
  return () => unsubscribe();
88
- }, [onPaymentProcessing, stripe, elements, activePaymentMethod])
 
 
 
 
 
89
 
90
  return link;
91
  }
28
  if (stripe && elements && !link) {
29
  setLink(stripe?.linkAutofillModal(elements));
30
  }
31
+ }, [
32
+ stripe,
33
+ elements,
34
+ link
35
+ ]);
36
 
37
  useEffect(() => {
38
  if (link) {
69
  }
70
  // update the payment intent
71
  try {
72
+ const result = await stripe.createPaymentMethod({
73
  elements,
74
  params: {
75
+ billing_details: getBillingDetailsFromAddress(response.meta.billingData)
 
 
76
  }
77
  });
78
+ if (result.error) {
79
+ throw result.error;
80
+ }
81
  response.meta.paymentMethodData = {
82
+ stripe_cc_token_key: result.paymentMethod.id,
83
  stripe_cc_save_source_key: false,
84
  }
85
  return ensureSuccessResponse(responseTypes, response);
90
  });
91
 
92
  return () => unsubscribe();
93
+ }, [
94
+ onPaymentProcessing,
95
+ stripe,
96
+ elements,
97
+ activePaymentMethod
98
+ ]);
99
 
100
  return link;
101
  }
packages/blocks/assets/js/payment-methods/link/index.js CHANGED
@@ -6,15 +6,24 @@ import {getSettings, initStripe as loadStripe, canMakePayment} from "../util";
6
 
7
  const getData = getSettings('stripe_link_checkout_data');
8
 
9
- export const LinkComponent = ({cartData, ...props}) => {
10
- const clientSecret = cartData?.extensions?.stripe_link_checkout?.clientSecret;
11
- if (clientSecret) {
12
- return (
13
- <Elements stripe={loadStripe} options={{clientSecret}}>
14
- <LinkCheckout {...props}/>
15
- </Elements>
16
- );
17
  }
 
 
 
 
 
 
 
 
 
 
18
  return null;
19
  }
20
 
6
 
7
  const getData = getSettings('stripe_link_checkout_data');
8
 
9
+ export const LinkComponent = (props) => {
10
+ const {cartTotal, currency} = props.billing;
11
+ let options = {
12
+ mode: 'payment',
13
+ amount: cartTotal.value,
14
+ currency: currency?.code?.toLowerCase(),
15
+ payment_method_types: ['card', 'link']
 
16
  }
17
+ if (cartTotal.value === 0) {
18
+ options = {
19
+ mode: 'setup'
20
+ }
21
+ }
22
+ return (
23
+ <Elements stripe={loadStripe} options={options}>
24
+ <LinkCheckout {...props}/>
25
+ </Elements>
26
+ );
27
  return null;
28
  }
29
 
packages/blocks/assets/js/payment-methods/util.js CHANGED
@@ -251,19 +251,25 @@ export const handleCardAction = async (
251
  responseTypes,
252
  name,
253
  method = 'handleCardAction',
254
- savePaymentMethod = false
 
255
  }) => {
256
  try {
257
  let match = redirectUrl.match(/#response=(.+)/)
258
  if (match) {
259
- let {client_secret, order_id, order_key} = JSON.parse(window.atob(decodeURIComponent(match[1])));
260
  const stripe = await initStripe;
261
- let result = await stripe[method](client_secret);
 
 
 
 
 
262
  if (result.error) {
263
  return ensureErrorResponse(responseTypes, result.error);
264
  }
265
  // success so finish processing order then redirect to thank you page
266
- let data = {order_id, order_key, [`${name}_save_source_key`]: savePaymentMethod};
267
  let response = await apiFetch({
268
  url: getRoute('process/payment'),
269
  method: 'POST',
251
  responseTypes,
252
  name,
253
  method = 'handleCardAction',
254
+ savePaymentMethod = false,
255
+ data = {}
256
  }) => {
257
  try {
258
  let match = redirectUrl.match(/#response=(.+)/)
259
  if (match) {
260
+ let {type, client_secret, order_id, order_key} = JSON.parse(window.atob(decodeURIComponent(match[1])));
261
  const stripe = await initStripe;
262
+ let result;
263
+ if (type === 'intent') {
264
+ result = await stripe[method](client_secret);
265
+ } else {
266
+ result = await stripe.confirmCardSetup(client_secret);
267
+ }
268
  if (result.error) {
269
  return ensureErrorResponse(responseTypes, result.error);
270
  }
271
  // success so finish processing order then redirect to thank you page
272
+ data = {...data, order_id, order_key, [`${name}_save_source_key`]: savePaymentMethod};
273
  let response = await apiFetch({
274
  url: getRoute('process/payment'),
275
  method: 'POST',
packages/blocks/build/commons.js CHANGED
@@ -1,3 +1,3 @@
1
  /*! For license information please see commons.js.LICENSE.txt */
2
- (self.webpackChunkwc_stripe=self.webpackChunkwc_stripe||[]).push([[351],{7228:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}},2858:e=>{e.exports=function(e){if(Array.isArray(e))return e}},3646:(e,t,n)=>{var r=n(7228);e.exports=function(e){if(Array.isArray(e))return r(e)}},1506:e=>{e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},8926:e=>{function t(e,t,n,r,a,o,i){try{var s=e[o](i),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,a)}e.exports=function(e){return function(){var n=this,r=arguments;return new Promise((function(a,o){var i=e.apply(n,r);function s(e){t(i,a,o,s,c,"next",e)}function c(e){t(i,a,o,s,c,"throw",e)}s(void 0)}))}}},4575:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},9100:(e,t,n)=>{var r=n(9489),a=n(7067);function o(t,n,i){return a()?e.exports=o=Reflect.construct:e.exports=o=function(e,t,n){var a=[null];a.push.apply(a,t);var o=new(Function.bind.apply(e,a));return n&&r(o,n.prototype),o},o.apply(null,arguments)}e.exports=o},3913:e=>{function t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}},9713:e=>{e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},7154:e=>{function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(this,arguments)}e.exports=t},9754:e=>{function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(n)}e.exports=t},2205:(e,t,n)=>{var r=n(9489);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},5318:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},430:e=>{e.exports=function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}},7067:e=>{e.exports=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}},6860:e=>{e.exports=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},3884:e=>{e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}}},521:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},8206:e=>{e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},6479:(e,t,n)=>{var r=n(7316);e.exports=function(e,t){if(null==e)return{};var n,a,o=r(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}},7316:e=>{e.exports=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}},8585:(e,t,n)=>{var r=n(8),a=n(1506);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}},9489:e=>{function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(n,r)}e.exports=t},3038:(e,t,n)=>{var r=n(2858),a=n(3884),o=n(379),i=n(521);e.exports=function(e,t){return r(e)||a(e,t)||o(e,t)||i()}},319:(e,t,n)=>{var r=n(3646),a=n(6860),o=n(379),i=n(8206);e.exports=function(e){return r(e)||a(e)||o(e)||i()}},8:e=>{function t(n){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(n)}e.exports=t},379:(e,t,n)=>{var r=n(7228);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}},5957:(e,t,n)=>{var r=n(9754),a=n(9489),o=n(430),i=n(9100);function s(t){var n="function"==typeof Map?new Map:void 0;return e.exports=s=function(e){if(null===e||!o(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,t)}function t(){return i(e,arguments,r(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),a(t,e)},s(t)}e.exports=s},6664:function(e,t,n){!function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;function n(){}function r(){}r.resetWarningCache=n;var a,o,i=(a=function(e){e.exports=function(){function e(e,t,n,r,a,o){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==o){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var a={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:r,resetWarningCache:n};return a.PropTypes=a,a}()},a(o={exports:{}},o.exports),o.exports);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e){return u="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},u(e)}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var r,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(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)?d(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(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}var m=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),n.current},f=function(e){return null!==e&&"object"===u(e)},y="[object Object]",g=function e(t,n){if(!f(t)||!f(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var a=Object.prototype.toString.call(t)===y;if(a!==(Object.prototype.toString.call(n)===y))return!1;if(!a&&!r)return t===n;var o=Object.keys(t),i=Object.keys(n);if(o.length!==i.length)return!1;for(var s={},c=0;c<o.length;c+=1)s[o[c]]=!0;for(var u=0;u<i.length;u+=1)s[i[u]]=!0;var l=Object.keys(s);if(l.length!==o.length)return!1;var p=t,d=n;return l.every((function(t){return e(p[t],d[t])}))},v=function(e,t,n){return f(e)?Object.keys(e).reduce((function(r,a){var o=!f(t)||!g(e[a],t[a]);return n.includes(a)?(o&&console.warn("Unsupported prop change: options.".concat(a," is not a mutable property.")),r):o?c(c({},r||{}),{},l({},a,e[a])):r}),null):null},b=function(e){if(null===e||f(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.")},h=function(e){if(function(e){return f(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then(b)};var t=b(e);return null===t?{tag:"empty"}:{tag:"sync",stripe:t}},P=t.createContext(null);P.displayName="ElementsContext";var E=function(e){var n=e.stripe,r=e.options,a=e.children,o=t.useMemo((function(){return h(n)}),[n]),i=p(t.useState((function(){return{stripe:"sync"===o.tag?o.stripe:null,elements:"sync"===o.tag?o.stripe.elements(r):null}})),2),s=i[0],c=i[1];t.useEffect((function(){var e=!0,t=function(e){c((function(t){return t.stripe?t:{stripe:e,elements:e.elements(r)}}))};return"async"!==o.tag||s.stripe?"sync"!==o.tag||s.stripe||t(o.stripe):o.stripePromise.then((function(n){n&&e&&t(n)})),function(){e=!1}}),[o,s,r]);var u=m(n);t.useEffect((function(){null!==u&&u!==n&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")}),[u,n]);var l=m(r);return t.useEffect((function(){if(s.elements){var e=v(r,l,["clientSecret","fonts"]);e&&s.elements.update(e)}}),[r,l,s.elements]),t.useEffect((function(){var e=s.stripe;e&&e._registerWrapper&&e.registerAppInfo&&(e._registerWrapper({name:"react-stripe-js",version:"1.9.0"}),e.registerAppInfo({name:"react-stripe-js",version:"1.9.0",url:"https://stripe.com/docs/stripe-js/react"}))}),[s.stripe]),t.createElement(P.Provider,{value:s},a)};E.propTypes={stripe:i.any,options:i.object};var O=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)},_=function(e){return(0,e.children)(O("mounts <ElementsConsumer>"))};_.propTypes={children:i.func.isRequired};var S=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),function(){n.current&&n.current.apply(n,arguments)}},w=function(){},C=function(e,n){var r,a="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),o=n?function(e){O("mounts <".concat(a,">"));var n=e.id,r=e.className;return t.createElement("div",{id:n,className:r})}:function(n){var r=n.id,o=n.className,i=n.options,s=void 0===i?{}:i,c=n.onBlur,u=void 0===c?w:c,l=n.onFocus,p=void 0===l?w:l,d=n.onReady,f=void 0===d?w:d,y=n.onChange,g=void 0===y?w:y,b=n.onEscape,h=void 0===b?w:b,P=n.onClick,E=void 0===P?w:P,_=n.onLoadError,C=void 0===_?w:_,k=O("mounts <".concat(a,">")).elements,M=t.useRef(null),j=t.useRef(null),D=S(f),x=S(u),R=S(p),A=S(E),I=S(g),L=S(h),T=S(C);t.useLayoutEffect((function(){if(null==M.current&&k&&null!=j.current){var t=k.create(e,s);M.current=t,t.mount(j.current),t.on("ready",(function(){return D(t)})),t.on("change",I),t.on("blur",x),t.on("focus",R),t.on("escape",L),t.on("loaderror",T),t.on("click",A)}}));var N=m(s);return t.useEffect((function(){if(M.current){var e=v(s,N,["paymentRequest"]);e&&M.current.update(e)}}),[s,N]),t.useLayoutEffect((function(){return function(){M.current&&(M.current.destroy(),M.current=null)}}),[]),t.createElement("div",{id:r,className:o,ref:j})};return o.propTypes={id:i.string,className:i.string,onChange:i.func,onBlur:i.func,onFocus:i.func,onReady:i.func,onClick:i.func,onLoadError:i.func,options:i.object},o.displayName=a,o.__elementType=e,o},k="undefined"==typeof window,M=C("auBankAccount",k),j=C("card",k),D=C("cardNumber",k),x=C("cardExpiry",k),R=C("cardCvc",k),A=C("fpxBank",k),I=C("iban",k),L=C("idealBank",k),T=C("p24Bank",k),N=C("epsBank",k),B=C("payment",k),F=C("paymentRequestButton",k),q=C("linkAuthentication",k),X=C("shippingAddress",k),U=C("affirmMessage",k),V=C("afterpayClearpayMessage",k);e.AffirmMessageElement=U,e.AfterpayClearpayMessageElement=V,e.AuBankAccountElement=M,e.CardCvcElement=R,e.CardElement=j,e.CardExpiryElement=x,e.CardNumberElement=D,e.Elements=E,e.ElementsConsumer=_,e.EpsBankElement=N,e.FpxBankElement=A,e.IbanElement=I,e.IdealBankElement=L,e.LinkAuthenticationElement=q,e.P24BankElement=T,e.PaymentElement=B,e.PaymentRequestButtonElement=F,e.ShippingAddressElement=X,e.useElements=function(){return O("calls useElements()").elements},e.useStripe=function(){return O("calls useStripe()").stripe},Object.defineProperty(e,"__esModule",{value:!0})}(t,n(9196))},4465:(e,t,n)=>{"use strict";n.r(t),n.d(t,{loadStripe:()=>l});var r="https://js.stripe.com/v3",a=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,o="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",i=null,s=function(e,t,n){if(null===e)return null;var r=e.apply(void 0,t);return function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"1.12.1",startTime:t})}(r,n),r},c=Promise.resolve().then((function(){return e=null,null!==i||(i=new Promise((function(t,n){if("undefined"!=typeof window)if(window.Stripe&&e&&console.warn(o),window.Stripe)t(window.Stripe);else try{var i=function(){for(var e=document.querySelectorAll('script[src^="'.concat(r,'"]')),t=0;t<e.length;t++){var n=e[t];if(a.test(n.src))return n}return null}();i&&e?console.warn(o):i||(i=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",n=document.createElement("script");n.src="".concat(r).concat(t);var a=document.head||document.body;if(!a)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return a.appendChild(n),n}(e)),i.addEventListener("load",(function(){window.Stripe?t(window.Stripe):n(new Error("Stripe.js not available"))})),i.addEventListener("error",(function(){n(new Error("Failed to load Stripe.js"))}))}catch(e){return void n(e)}else t(null)}))),i;var e})),u=!1;c.catch((function(e){u||console.warn(e)}));var l=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];u=!0;var r=Date.now();return c.then((function(e){return s(e,t,r)}))}},3187:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(2029);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(8744);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(4901);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}));var i=n(3193);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}))},3193:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.Installments=void 0;var o=a(n(1284)),i=a(n(8926)),s=a(n(3038)),c=n(9307),u=n(5736),l=a(n(6989)),p=a(n(4184)),d=n(1134);n(1465);var m=function(e){var t=e.paymentMethodName,n=(e.getCreatePaymentMethodArgs,e.cardFormComplete),a=void 0!==n&&n,p=e.addPaymentMethodData,m=void 0===p?null:p,g=e.getPaymentMethod,v=(0,c.useState)(null),b=(0,s.default)(v,2),h=b[0],P=b[1],E=(0,c.useState)(""),O=(0,s.default)(E,2),_=O[0],S=O[1],w=(0,c.useState)(!1),C=(0,s.default)(w,2),k=C[0],M=C[1];return(0,c.useEffect)((function(){a&&(M(!0),S(""),g().then(function(){var e=(0,i.default)(o.default.mark((function e(n){var r,a;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n){e.next=6;break}return e.next=3,(0,l.default)({url:(0,d.getRoute)("create/payment_intent"),method:"POST",data:{payment_method_id:n,payment_method:t}});case 3:a=e.sent,P(a.installments),null!==(r=Object.keys(a.installments))&&void 0!==r&&r.length&&S(Object.keys(a.installments)[0]);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){console.log(e)})).finally((function(){return M(!1)})))}),[a,g]),r.createElement("div",{className:"wc-stripe-installments__container"},r.createElement("label",{className:"wc-stripe-installments__label"},(0,u.__)("Pay in installments:","woo-stripe-payment"),r.createElement(y,{loading:k})),r.createElement(f,{installment:_,onChange:function(e){S(e.target.value),m&&m({_stripe_installment_plan:e.target.value})},installments:h,isLoading:k}))};t.Installments=m;var f=function(e){var t,n=e.installment,a=e.installments,o=e.onChange,i=e.isLoading;return t=i?r.createElement("option",{value:"",disabled:!0},(0,u.__)("Loading installments...","woo-stripe-payment")):null===a?r.createElement("option",{value:"",disabled:!0},(0,u.__)("Fill out card form for eligibility.","woo-stripe-payment")):Object.keys(a).map((function(e){return r.createElement("option",{key:e,value:e,dangerouslySetInnerHTML:{__html:a[e].text}})})),r.createElement("select",{value:n,onChange:o,className:(0,p.default)("wc-stripe-installment__options",{loading:i})},t)},y=function(e){var t=e.loading;return r.createElement("div",{className:"wc-stripe-installment-loader__container"},t&&r.createElement("div",{className:"wc-stripe-installment-loader"},r.createElement("div",null),r.createElement("div",null),r.createElement("div",null)))},g=m;t.default=g},2029:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.PaymentMethodLabel=void 0;var o=a(n(6479));n(7776),t.PaymentMethodLabel=function(e){var t=e.title,n=e.icons,a=e.paymentMethod,i=(0,o.default)(e,["title","icons","paymentMethod"]).components,s=i.PaymentMethodLabel,c=i.PaymentMethodIcons;return Array.isArray(n)||(n=[n]),r.createElement("span",{className:"wc-stripe-label-container ".concat(a)},r.createElement(s,{text:t}),r.createElement(c,{icons:n,align:"left"}))}},4901:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.PaymentMethod=void 0;var o=a(n(9713)),i=a(n(6479)),s=n(9307);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.PaymentMethod=function(e){var t=e.getData,n=e.content,a=(0,i.default)(e,["getData","content"]),o=n,c=t("description"),p=(0,s.useRef)(null);return(0,s.useEffect)((function(){p.current&&0==p.current.childNodes.length&&p.current.classList.add("no-content")})),r.createElement(r.Fragment,null,c&&r.createElement(l,{desc:c,payment_method:t("name")}),r.createElement("div",{ref:p,className:"wc-stripe-blocks-payment-method-content"},r.createElement(o,u(u({},a),{},{getData:t}))))};var l=function(e){var t=e.desc,n=e.payment_method;return r.createElement("div",{className:"wc-stripe-blocks-payment-method__desc ".concat(n)},r.createElement("p",null,t))}},8744:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.RadioControlOption=void 0;var o=a(n(4184)),i=function(e){var t=e.checked,n=e.onChange,a=e.value,i=e.label;return r.createElement("label",{className:(0,o.default)("wc-stripe-blocks-radio-control__option",{"wc-stripe-blocks-radio-control__option-checked":t})},r.createElement("input",{className:"wc-stripe-blocks-radio-control__input",type:"radio",value:a,checked:t,onChange:function(e){return n(e.target.value)}}),r.createElement("div",{className:"wc-stripe-blocks-radio-control__label"},r.createElement("span",null,i)))};t.RadioControlOption=i;var s=i;t.default=s},7260:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(5201);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}))},5201:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessPayment=void 0;var a=r(n(1284)),o=r(n(8926)),i=r(n(9713)),s=n(9307),c=n(6664),u=n(1134),l=r(n(6989));function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useProcessPayment=function(e){var t=e.onCheckoutAfterProcessingWithSuccess,n=e.responseTypes,r=(e.paymentMethod,e.billingAddress),i=(0,c.useStripe)(),p=(0,s.useRef)({billingAddress:r});(0,s.useEffect)((function(){p.current=d(d({},p.current),{},{billingAddress:r})})),(0,s.useEffect)((function(){var e=t(function(){var e=(0,o.default)(a.default.mark((function e(t){var n,r;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.redirectUrl,!(r=(0,u.isNextActionRequired)(n))){e.next=12;break}if("intent"!==r.type){e.next=9;break}return e.next=6,m(r,i);case 6:case 11:return e.abrupt("return",e.sent);case 9:return e.next=11,f(r,i);case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[t,n,i,m,f]);var m=(0,s.useCallback)(function(){var e=(0,o.default)(a.default.mark((function e(t,r){var o,i,s,c,d,m,f;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=p.current.billingAddress,i=t.client_secret,s=t.order_id,c=t.order_key,e.prev=2,e.next=5,r.collectBankAccountForPayment({clientSecret:i,params:{payment_method_type:"us_bank_account",payment_method_data:{billing_details:{name:"".concat(o.first_name," ").concat(o.last_name),email:o.email}}}});case 5:if(!(d=e.sent).error){e.next=8;break}throw d.error;case 8:if("requires_confirmation"!==d.paymentIntent.status){e.next=25;break}return e.next=11,r.confirmUsBankAccountPayment(i);case 11:if(!(m=e.sent).error){e.next=14;break}throw m.error;case 14:if("processing"!==m.paymentIntent.status){e.next=23;break}return e.next=17,(0,l.default)({url:(0,u.getRoute)("process/payment"),method:"POST",data:{order_id:s,order_key:c,stripe_ach_token_key:m.paymentIntent.payment_method}});case 17:if(!(f=e.sent).messages){e.next=20;break}throw f.messages;case 20:return e.abrupt("return",(0,u.ensureSuccessResponse)(n,{redirectUrl:f.redirect}));case 23:if("requires_action"!==m.paymentIntent.status){e.next=25;break}throw{code:"ach_instant_only"};case 25:e.next=30;break;case 27:return e.prev=27,e.t0=e.catch(2),e.abrupt("return",(0,u.ensureErrorResponse)(n,e.t0));case 30:case"end":return e.stop()}}),e,null,[[2,27]])})));return function(t,n){return e.apply(this,arguments)}}(),[]),f=(0,s.useCallback)(function(){var e=(0,o.default)(a.default.mark((function e(t,r){var o,i,s,c,d,m,f,y,g;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=p.current.billingAddress,i=t.client_secret,s=t.order_id,c=t.order_key,e.prev=2,e.next=5,r.collectBankAccountForSetup({clientSecret:i,params:{payment_method_type:"us_bank_account",payment_method_data:{billing_details:{name:"".concat(o.first_name," ").concat(o.last_name),email:o.email}}}});case 5:if(!(d=e.sent).error){e.next=8;break}throw d.error;case 8:if("requires_confirmation"!==d.setupIntent.status){e.next=27;break}return e.next=11,r.confirmUsBankAccountSetup(i);case 11:if(m=e.sent,f=m.setupIntent,!(y=m.error)){e.next=16;break}throw y;case 16:if("succeeded"!==f.status){e.next=25;break}return e.next=19,(0,l.default)({url:(0,u.getRoute)("process/payment"),method:"POST",data:{order_id:s,order_key:c,stripe_ach_token_key:f.payment_method}});case 19:if(!(g=e.sent).messages){e.next=22;break}throw g.messages;case 22:return e.abrupt("return",(0,u.ensureSuccessResponse)(n,{redirectUrl:g.redirect}));case 25:if("requires_action"!==f.status){e.next=27;break}throw{code:"ach_instant_only"};case 27:e.next=33;break;case 29:return e.prev=29,e.t0=e.catch(2),console.log(e.t0),e.abrupt("return",(0,u.ensureErrorResponse)(n,e.t0));case 33:case"end":return e.stop()}}),e,null,[[2,29]])})));return function(t,n){return e.apply(this,arguments)}}(),[])}},5605:(e,t,n)=>{n(4836),n(4888)},4888:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(6479)),i=(n(9307),n(4613)),s=n(6664),c=n(1134),u=n(3187),l=a(n(1065)),p=n(7260),d=n(3636),m=(0,c.getSettings)("stripe_ach_data"),f=function(e){var t=e.eventRegistration,n=(e.components,e.emitResponse),a=(e.onSubmit,e.billing),i=((0,o.default)(e,["eventRegistration","components","emitResponse","onSubmit","billing"]),n.responseTypes),s=(t.onPaymentProcessing,t.onCheckoutAfterProcessingWithError),c=t.onCheckoutAfterProcessingWithSuccess;return(0,d.useProcessCheckoutError)({responseTypes:i,subscriber:s}),(0,p.useProcessPayment)({onCheckoutAfterProcessingWithSuccess:c,responseTypes:i,paymentMethod:m("name"),billingAddress:a.billingData}),r.createElement("div",{className:"wc-stripe-ach__container"},r.createElement(g,{text:m("mandateText")}))},y=function(e){return r.createElement(s.Elements,{stripe:c.initStripe},r.createElement(f,e))},g=function(e){var t=e.text;return r.createElement("p",{className:"wc-stripe-ach__mandate"},t)};(0,i.registerPaymentMethod)({name:m("name"),label:r.createElement(u.PaymentMethodLabel,{title:m("title"),paymentMethod:m("name"),icons:m("icons")}),ariaLabel:"ACH Payment",canMakePayment:function(e){return"USD"===e.cartTotals.currency_code},content:r.createElement(u.PaymentMethod,{getData:m,content:y}),savedTokenComponent:r.createElement(l.default,{getData:m}),edit:r.createElement(y,null),placeOrderButtonLabel:m("placeOrderButtonLabel"),supports:{showSavedCards:m("showSavedCards"),showSaveOption:!1,features:m("features")}})},3846:(e,t,n)=>{n(85),n(660)},660:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(3038)),i=a(n(6479)),s=n(9307),c=n(4613),u=n(1134),l=n(6664),p=a(n(7082)),d=n(3636),m=(0,u.getSettings)("stripe_applepay_data"),f=function(e){return r.createElement(p.default,null,r.createElement("div",{className:"wc-stripe-apple-pay-container"},r.createElement(l.Elements,{stripe:u.initStripe},r.createElement(y,e))))},y=function(e){var t=e.getData,n=e.onClick,a=e.onClose,c=e.billing,u=e.shippingData,p=e.eventRegistration,m=e.emitResponse,f=e.onSubmit,y=e.activePaymentMethod,g=((0,i.default)(e,["getData","onClick","onClose","billing","shippingData","eventRegistration","emitResponse","onSubmit","activePaymentMethod"]),p.onPaymentProcessing),v=m.responseTypes,b=m.noticeContexts,h=(0,l.useStripe)(),P=(0,d.useStripeError)(),E=(0,o.default)(P,1)[0],O=(0,d.useExportedValues)();(0,d.useExpressBreakpointWidth)({payment_method:t("name"),width:375});var _=(0,d.useProcessPaymentIntent)({getData:t,billing:c,shippingData:u,onPaymentProcessing:g,emitResponse:m,error:E,onSubmit:f,activePaymentMethod:y,exportedValues:O}).setPaymentMethod;(0,d.useAfterProcessingPayment)({getData:t,eventRegistration:p,responseTypes:v,activePaymentMethod:y,messageContext:b.EXPRESS_PAYMENTS});var S=(0,d.usePaymentRequest)({getData:t,onClose:a,stripe:h,billing:c,shippingData:u,eventRegistration:p,setPaymentMethod:_,exportedValues:O,canPay:function(e){return null!=e&&e.applePay}}).paymentRequest,w=(0,s.useCallback)((function(e){S&&(e.preventDefault(),n(),S.show())}),[S,n]);return S?r.createElement("button",{className:"apple-pay-button ".concat(t("buttonStyle")),style:{"-apple-pay-button-type":t("buttonType")},onClick:w}):null},g=function(e){var t=e.getData;return(0,i.default)(e,["getData"]),r.createElement("div",{className:"apple-pay-block-editor"},r.createElement("img",{src:t("editorIcon")}))};(0,c.registerExpressPaymentMethod)({name:m("name"),canMakePayment:function(e){var t=e.cartTotals;if((0,i.default)(e,["cartTotals"]),m("isAdmin"))return!0;var n=t.currency_code,r=t.total_price;return(0,u.canMakePayment)({country:m("countryCode"),currency:n.toLowerCase(),total:{label:m("totalLabel"),amount:parseInt(r)}},(function(e){return null!=e&&e.applePay}))},content:r.createElement(f,{getData:m}),edit:r.createElement(g,{getData:m}),supports:{showSavedCards:m("showSavedCards"),showSaveOption:m("showSaveOption"),features:m("features")}})},7354:(e,t,n)=>{var r=n(9307);n(3110);var a=n(1134),o=n(6664),i=n(5736),s=function(e){var t=e.CardIcon,n=e.options,a=e.onChange;return r.createElement("div",{className:"wc-stripe-bootstrap-form"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col-md-6 mb-3"},r.createElement(o.CardNumberElement,{className:"md-form md-outline stripe-input",options:n.cardNumber,onChange:a(o.CardNumberElement)}),r.createElement("label",{htmlFor:"stripe-card-number"},(0,i.__)("Card Number","woo-stripe-payment")),t),r.createElement("div",{className:"col-md-3 mb-3"},r.createElement(o.CardExpiryElement,{className:"md-form md-outline stripe-input",options:n.cardExpiry,onChange:a(o.CardExpiryElement)}),r.createElement("label",{htmlFor:"stripe-exp"},(0,i.__)("Exp","woo-stripe-payment"))),r.createElement("div",{className:"col-md-3 mb-3"},r.createElement(o.CardCvcElement,{className:"md-form md-outline stripe-input",options:n.cardCvc,onChange:a(o.CardCvcElement)}),r.createElement("label",{htmlFor:"stripe-cvv"},(0,i.__)("CVV","woo-stripe-payment")))))};(0,a.registerCreditCardForm)({id:"bootstrap",breakpoint:475,component:r.createElement(s,null)})},3329:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(9713)),i=a(n(3038)),s=n(1134),c=n(9307),u=n(6664),l=n(5736),p=n(3636);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f={focus:"focused",empty:"empty",invalid:"invalid"},y=function(e){var t=e.type,n=e.src;return t?r.createElement("img",{className:"wc-stripe-card ".concat(t),src:n}):null};t.default=function(e){var t=e.getData,n=e.onChange,a=e.onComplete,o=(0,c.useState)(""),d=(0,i.default)(o,2),g=d[0],v=d[1],b=(0,c.useRef)([]),h=(0,c.useState)(null),P=(0,i.default)(h,2),E=P[0],O=P[1],_=(0,u.useElements)(),S=t("customForm"),w=(0,s.getCreditCardForm)(S),C=w.component,k=void 0===C?null:C,M=w.breakpoint,j=void 0===M?475:M,D=t("postalCodeEnabled"),x={},R=(0,c.useRef)({cardNumber:{},cardExpiry:{},cardCvc:{}});["cardNumber","cardExpiry","cardCvc"].forEach((function(e){x[e]=m(m({classes:f},t("cardOptions")),t("customFieldOptions")[e])}));var A=(0,c.useCallback)((function(e){b.current.includes(e)||b.current.push(e)}),[]);(0,p.useBreakpointWidth)({name:"creditCardForm",width:j,node:E,className:"small-form"});var I=(0,c.useCallback)((function(e){for(var n=0,r=Object.keys(t("cards"));n<r.length;n++){var a=r[n];if(a===e)return t("cards")[a]}return""}),[]);return k?r.createElement("div",{className:"wc-stripe-custom-form ".concat(S),ref:O},(0,c.cloneElement)(k,{postalCodeEnabled:D,options:x,onChange:function(e){return A(e),function(t){if(n(t),R.current[t.elementType]=t,"cardNumber"===t.elementType&&("unknown"===t.brand?v(""):v(t.brand)),t.complete){var r=b.current.indexOf(e);if(b.current[r+1]){var o=b.current[r+1];_.getElement(o).focus()}}var i;a((i=R.current,Object.keys(i).filter((function(e){return!!i[e].complete})).length===Object.keys(i).length))}},CardIcon:r.createElement(y,{type:g,src:I(g)})})):r.createElement("div",{className:"wc-stripe-custom-form-error"},r.createElement("p",null,(0,l.sprintf)((0,l.__)("%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings.","woo-stripe-payment"),t("customFormLabels")[S])))}},6835:(e,t,n)=>{var r=n(9307);n(8356);var a=n(1134),o=n(6664),i=n(5736),s=n(9307),c=function(e){var t=e.CardIcon,n=e.options,a=e.onChange;return(0,s.useEffect)((function(){}),[]),r.createElement("div",{className:"wc-stripe-simple-form"},r.createElement("div",{className:"row"},r.createElement("div",{className:"field"},r.createElement("div",{className:"field-item"},r.createElement(o.CardNumberElement,{id:"stripe-card-number",className:"input empty",options:n.cardNumber,onChange:a(o.CardNumberElement)}),r.createElement("label",{htmlFor:"stripe-card-number","data-tid":""},(0,i.__)("Card Number","woo-stripe-payment")),r.createElement("div",{className:"baseline"}),t))),r.createElement("div",{className:"row"},r.createElement("div",{className:"field half-width"},r.createElement("div",{className:"field-item"},r.createElement(o.CardExpiryElement,{id:"stripe-exp",className:"input empty",options:n.cardExpiry,onChange:a(o.CardExpiryElement)}),r.createElement("label",{htmlFor:"stripe-exp","data-tid":""},(0,i.__)("Expiration","woo-stripe-payment")),r.createElement("div",{className:"baseline"}))),r.createElement("div",{className:"field half-width cvc"},r.createElement("div",{className:"field-item"},r.createElement(o.CardCvcElement,{id:"stripe-cvv",className:"input empty",options:n.cardCvc,onChange:a(o.CardCvcElement)}),r.createElement("label",{htmlFor:"stripe-cvv","data-tid":""},(0,i.__)("CVV","woo-stripe-payment")),r.createElement("div",{className:"baseline"})))))};(0,a.registerCreditCardForm)({id:"simple",component:r.createElement(c,null),breakpoint:375})},9775:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(9713)),i=n(6664),s=n(1134),c=n(9307);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.default=function(e){var t=e.getData,n=e.billing,a=e.onChange,o=e.onComplete,u={card:{}},p=(0,c.useMemo)((function(){var e;return l(l({},{value:{postalCode:null==n||null===(e=n.billingData)||void 0===e?void 0:e.postcode},hidePostalCode:(0,s.isFieldRequired)("postcode"),iconStyle:"default"}),t("cardOptions"))}),[n.billingData]);return r.createElement("div",{className:"wc-stripe-inline-form"},r.createElement(i.CardElement,{options:p,onChange:function(e){a(e),u[e.elementType]=e,o(Object.keys(u).filter((function(e){return!!u[e].complete})).length===Object.keys(u).length)}}))}},627:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),n(5773);var r=n(7205);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))})),n(7354),n(6835)},4664:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.PaymentElementComponent=void 0;var o=a(n(1284)),i=a(n(8926)),s=a(n(3038)),c=a(n(7154)),u=a(n(9713)),l=a(n(6479)),p=n(9307),d=n(6664),m=n(1134),f=n(3187),y=n(3636);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){(0,u.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=(0,m.getSettings)("stripe_cc_data"),h=function(e){var t,n,a=e.cartData,o=(0,l.default)(e,["cartData"]),i=null==a||null===(t=a.extensions)||void 0===t||null===(n=t.stripe_cc)||void 0===n?void 0:n.clientSecret;return r.createElement(r.Fragment,null,r.createElement(d.Elements,{stripe:m.initStripe,options:v(v({},b("elementOptions")),{},{clientSecret:i})},r.createElement(P,(0,c.default)({},o,{clientSecret:i}))))};t.PaymentElementComponent=h;var P=function(e){e.onComplete;var t=e.clientSecret,n=(0,l.default)(e,["onComplete","clientSecret"]),a=(0,p.useState)(!1),c=(0,s.default)(a,2),u=c[0],m=c[1],g=b("installmentsActive"),v=((0,d.useElements)(),(0,d.useStripe)()),h=n.billing.billingData,P=n.eventRegistration,E=n.emitResponse,O=n.shouldSavePayment,_=(P.onPaymentProcessing,P.onCheckoutAfterProcessingWithError),S=E.responseTypes,w=E.noticeContexts,C=b("name"),k=(0,p.useCallback)((function(e){m(e.complete)}),[]),M=(0,y.useUpdatePaymentIntent)({clientSecret:t,billingData:h,eventRegistration:P,responseTypes:S,shouldSavePayment:O,noticeContexts:w,name:C}),j=M.updatePaymentIntent,D=M.addPaymentMethodData;(0,y.useProcessCheckoutError)({responseTypes:S,subscriber:_,messageContext:w.PAYMENTS});var x=(0,p.useCallback)((0,i.default)(o.default.mark((function e(){var t,n,r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=null,e.next=3,j();case 3:return null!=(r=e.sent)&&null!==(t=r.paymentIntent)&&void 0!==t&&t.payment_method&&(n=r.paymentIntent.payment_method),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e)}))),[j]);return r.createElement(r.Fragment,null,r.createElement(d.PaymentElement,{options:{fields:{billingDetails:{address:"never"}},wallets:{applePay:"never",googlePay:"never"}},onChange:k}),g&&r.createElement(f.Installments,{paymentMethodName:b("name"),stripe:v,cardFormComplete:u,getPaymentMethod:x,addPaymentMethodData:D}))},E=h;t.default=E},7205:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(1284)),i=a(n(8926)),s=a(n(3038)),c=n(9307),u=n(4613),l=n(1134),p=n(6664),d=n(3187),m=a(n(1065)),f=a(n(3329)),y=a(n(9775)),g=a(n(4664)),v=n(3636),b=(0,l.getSettings)("stripe_cc_data"),h=function(e){var t=(0,c.useState)(!1),n=(0,s.default)(t,2),a=n[0],o=n[1];if((0,c.useEffect)((function(){l.initStripe.catch((function(e){o(e)}))}),[o]),a)throw new Error(a);return b("isPaymentElement")?r.createElement(g.default,e):r.createElement(p.Elements,{stripe:l.initStripe,options:b("elementOptions")},r.createElement(P,e))},P=function(e){var t=e.getData,n=e.billing,a=e.shippingData,u=e.emitResponse,l=e.eventRegistration,m=e.activePaymentMethod,g=e.shouldSavePayment,b=(0,v.useStripeError)(),h=(0,s.default)(b,2),P=h[0],E=h[1],O=(0,c.useState)(!1),_=(0,s.default)(O,2),S=_[0],w=_[1],C=l.onPaymentProcessing,k=(0,p.useStripe)(),M=(0,p.useElements)(),j=(0,c.useCallback)((function(){var e=t("customFormActive")?p.CardNumberElement:p.CardElement;return{card:M.getElement(e)}}),[k,M]),D=(0,v.useSetupIntent)({getData:t,cartTotal:n.cartTotal,setError:E}),x=D.setupIntent,R=D.removeSetupIntent,A=(0,v.useProcessPaymentIntent)({getData:t,billing:n,shippingData:a,emitResponse:u,error:P,onPaymentProcessing:C,shouldSavePayment:g,setupIntent:x,removeSetupIntent:R,getPaymentMethodArgs:j,activePaymentMethod:m}),I=A.getCreatePaymentMethodArgs,L=A.addPaymentMethodData;(0,v.useAfterProcessingPayment)({getData:t,eventRegistration:l,responseTypes:u.responseTypes,activePaymentMethod:m,shouldSavePayment:g});var T=(0,c.useCallback)((0,i.default)(o.default.mark((function e(){var t,n,r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=null,e.next=3,k.createPaymentMethod(I());case 3:return null!=(r=e.sent)&&null!==(t=r.paymentMethod)&&void 0!==t&&t.id&&(n=r.paymentMethod.id),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e)}))),[k,I]),N=t("customFormActive")?f.default:y.default;return r.createElement("div",{className:"wc-stripe-card-container"},r.createElement(N,{getData:t,billing:n,onChange:function(e){e.error?E(e.error):E(!1)},onComplete:w}),t("installmentsActive")&&r.createElement(d.Installments,{paymentMethodName:t("name"),cardFormComplete:S,addPaymentMethodData:L,getPaymentMethod:T}))};(0,u.registerPaymentMethod)({name:b("name"),label:r.createElement(d.PaymentMethodLabel,{title:b("title"),paymentMethod:b("name"),icons:b("icons")}),ariaLabel:"Credit Cards",canMakePayment:function(){return l.initStripe},content:r.createElement(d.PaymentMethod,{content:h,getData:b}),savedTokenComponent:r.createElement(m.default,{getData:b,method:b("isPaymentElement")?"confirmCardPayment":"handleCardAction"}),edit:r.createElement(d.PaymentMethod,{content:h,getData:b}),supports:{showSavedCards:b("showSavedCards"),showSaveOption:!0,features:b("features")}})},7082:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(4575)),i=a(n(3913)),s=a(n(2205)),c=a(n(8585)),u=a(n(9754));var l=function(e){(0,s.default)(l,e);var t,n,a=(t=l,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,u.default)(t);if(n){var a=(0,u.default)(this).constructor;e=Reflect.construct(r,arguments,a)}else e=r.apply(this,arguments);return(0,c.default)(this,e)});function l(e){var t;return(0,o.default)(this,l),(t=a.call(this,e)).state={hasError:!1,error:null,errorInfo:null},t}return(0,i.default)(l,[{key:"componentDidCatch",value:function(e,t){this.setState({hasError:!0,error:e,errorInfo:t})}},{key:"render",value:function(){return this.state.hasError?r.createElement(r.Fragment,null,this.state.error&&r.createElement("div",{className:"wc-stripe-block-error"},this.state.error.toString()),this.state.errorInfo&&r.createElement("div",{className:"wc-stripe-block-error"},this.state.errorInfo.componentStack)):this.props.children}}]),l}(n(9307).Component);t.default=l},5212:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(3038)),i=a(n(6479)),s=n(9307),c=n(5516),u=n(3636),l=(0,n(1134).getSettings)("stripeGeneralData")().publishableKey;t.default=function(e){var t=e.getData,n=e.setErrorMessage,a=e.billing,p=e.shippingData,d=e.canMakePayment,m=e.checkoutStatus,f=e.eventRegistration,y=e.activePaymentMethod,g=e.onClick,v=e.onClose,b=(0,i.default)(e,["getData","setErrorMessage","billing","shippingData","canMakePayment","checkoutStatus","eventRegistration","activePaymentMethod","onClick","onClose"]),h={merchantId:t("merchantId"),merchantName:t("merchantName")},P=(0,u.useStripeError)(),E=(0,o.default)(P,2),O=E[0],_=(E[1],(0,s.useRef)()),S=b.onSubmit,w=b.emitResponse,C=f.onPaymentProcessing,k=(0,u.useExportedValues)(),M="long"===t("buttonStyle").buttonType?390:375,j=(0,u.useProcessPaymentIntent)({getData:t,billing:a,shippingData:p,onPaymentProcessing:C,emitResponse:w,error:O,exportedValues:k,onSubmit:S,checkoutStatus:m,activePaymentMethod:y}).setPaymentMethod,D=(0,c.usePaymentRequest)({getData:t,publishableKey:l,merchantInfo:h,billing:a,shippingData:p}),x=(0,c.usePaymentsClient)({merchantInfo:h,buildPaymentRequest:D,billing:a,shippingData:p,eventRegistration:f,canMakePayment:d,setErrorMessage:n,onSubmit:S,setPaymentMethod:j,exportedValues:k,onClick:g,onClose:v,getData:t}),R=x.button,A=x.removeButton;return(0,u.useAfterProcessingPayment)({getData:t,eventRegistration:f,responseTypes:w.responseTypes,activePaymentMethod:y}),(0,u.useExpressBreakpointWidth)({payment_method:t("name"),width:M}),(0,s.useEffect)((function(){R&&(A(_.current),_.current.append(R))}),[R]),r.createElement("div",{className:"wc-stripe-gpay-button-container",ref:_})}},3097:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BASE_PAYMENT_REQUEST=t.BASE_PAYMENT_METHOD=void 0,t.BASE_PAYMENT_METHOD={type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY"],allowedCardNetworks:["AMEX","DISCOVER","INTERAC","JCB","MASTERCARD","VISA"],assuranceDetailsRequired:!0}},t.BASE_PAYMENT_REQUEST={apiVersion:2,apiVersionMinor:0}},5516:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(1674);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(1735);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(9808);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},9808:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useErrorMessage=void 0;var a=r(n(3038)),o=n(9307);t.useErrorMessage=function(){var e=(0,o.useState)(!1),t=(0,a.default)(e,2);return{errorMessage:t[0],setErrorMessage:t[1]}}},1735:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentRequest=void 0;var a=r(n(319)),o=r(n(9713)),i=n(9307),s=n(3097),c=n(1134),u=n(8664);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentRequest=function(e){var t=e.getData,n=e.publishableKey,r=e.merchantInfo,o=e.billing,l=e.shippingData,d=t(),m=d.processingCountry,f=d.totalPriceLabel,y=(0,i.useRef)({shippingData:l,billing:o});(0,i.useEffect)((function(){y.current={shippingData:l,billing:o}}));var g=(0,i.useCallback)((function(){var e=y.current,t=e.billing,o=e.shippingData,i=t.billingData,l=o.shippingRates,d=p(p({},{emailRequired:(0,c.isEmpty)(i.email),merchantInfo:r,allowedPaymentMethods:[p(p({},{type:"CARD",tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:"stripe","stripe:version":"2018-10-31","stripe:publishableKey":n}}}),s.BASE_PAYMENT_METHOD)],shippingAddressRequired:o.needsShipping,transactionInfo:(0,u.getTransactionInfo)({billing:t,processingCountry:m,totalPriceLabel:f}),callbackIntents:["PAYMENT_AUTHORIZATION"]}),s.BASE_PAYMENT_REQUEST);if(d.allowedPaymentMethods[0].parameters.billingAddressRequired=!0,d.allowedPaymentMethods[0].parameters.billingAddressParameters={format:"FULL",phoneNumberRequired:(0,c.isFieldRequired)(o.needsShipping?"shipping-phone":"phone",i.country)&&(0,c.isEmpty)(i.phone)},d.shippingAddressRequired){d.callbackIntents=[].concat((0,a.default)(d.callbackIntents),["SHIPPING_ADDRESS","SHIPPING_OPTION"]),d.shippingOptionRequired=!0;var g=(0,u.getShippingOptionParameters)(l);g.shippingOptions.length>0&&(d=p(p({},d),{},{shippingOptionParameters:g}))}return d}),[]);return g}},1674:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentsClient=void 0;var a=r(n(319)),o=r(n(1284)),i=r(n(8926)),s=r(n(9713)),c=r(n(3038)),u=n(9307),l=r(n(6989)),p=n(1134),d=n(6664),m=n(8664),f=n(3636);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,s.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentsClient=function(e){var t=e.merchantInfo,n=e.buildPaymentRequest,r=e.billing,s=e.shippingData,y=e.eventRegistration,v=e.canMakePayment,b=e.setErrorMessage,h=e.setPaymentMethod,P=e.exportedValues,E=e.onClick,O=e.onClose,_=e.getData,S=_().environment,w=(0,u.useState)(),C=(0,c.default)(w,2),k=C[0],M=C[1],j=(0,u.useState)(null),D=(0,c.default)(j,2),x=D[0],R=D[1],A=(0,u.useRef)(r),I=(0,u.useRef)(s),L=s.needsShipping,T=(0,d.useStripe)();(0,f.usePaymentEvents)({billing:r,shippingData:s,eventRegistration:y}).addPaymentEvent,(0,u.useEffect)((function(){A.current=r,I.current=s}));var N=(0,u.useCallback)((function(e){var t,n,r,a,o;null!=e&&null!==(t=e.paymentMethodData)&&void 0!==t&&null!==(n=t.info)&&void 0!==n&&n.billingAddress&&(r=e.paymentMethodData.info.billingAddress,(0,p.isAddressValid)(A.current.billingData,["phone","email"])&&(0,p.isEmpty)(null===(a=A.current.billingData)||void 0===a?void 0:a.phone)&&(r={phoneNumber:r.phoneNumber}),P.billingData=A.current.billingData=(0,m.toCartAddress)(r,{email:e.email})),null!=e&&e.shippingAddress&&(P.shippingAddress=(0,m.toCartAddress)(g(g({},e.shippingAddress),{},{phoneNumber:null===(o=r)||void 0===o?void 0:o.phoneNumber})))}),[]),B=(0,u.useCallback)((function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}),[x]),F=(0,u.useCallback)((0,i.default)(o.default.mark((function e(){var t,r,a;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return E(),e.prev=1,e.next=4,k.loadPaymentData(n());case 4:return t=e.sent,N(t),r=JSON.parse(t.paymentMethodData.tokenizationData.token),e.next=9,T.createPaymentMethod({type:"card",card:{token:r.id},billing_details:(0,p.getBillingDetailsFromAddress)(A.current.billingData)});case 9:if(!(a=e.sent).error){e.next=12;break}throw new p.StripeError(a.error);case 12:h(a.paymentMethod.id),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(1),"CANCELED"===(null===e.t0||void 0===e.t0?void 0:e.t0.statusCode)?O():(console.log((0,p.getErrorMessage)(e.t0)),b((0,p.getErrorMessage)(e.t0)));case 18:case"end":return e.stop()}}),e,null,[[1,15]])}))),[T,k,E,n]),q=(0,u.useCallback)((0,i.default)(o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,!k||!T){e.next=5;break}return e.next=4,v;case 4:R(k.createButton(g({onClick:F},_("buttonStyle"))));case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log(e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])}))),[T,k,F]),X=(0,u.useMemo)((function(){var e={environment:S,merchantInfo:t,paymentDataCallbacks:{onPaymentAuthorized:function(){return Promise.resolve({transactionState:"SUCCESS"})}}};return L&&(e.paymentDataCallbacks.onPaymentDataChanged=function(e){var t=I.current,n=e.shippingAddress,r=e.shippingOptionData,o=(0,p.getSelectedShippingOption)(r.id),i=["default","shipping_option_unselected"].includes(r.id)?null:r.id;return new Promise((function(e,r){(0,l.default)({method:"POST",url:(0,p.getRoute)("payment/data"),data:{address:(0,m.toCartAddress)(n),shipping_method:i,page_id:null}}).then((function(t){t.code?e(t.data.data):e(t.data.paymentRequestUpdate)})).catch((function(t){e(t.data)})).finally((function(){i&&"shipping_option_unselected"!==i&&t.setSelectedRates.apply(t,(0,a.default)(o))}))}))}),e}),[L]);return(0,u.useEffect)((function(){M(new google.payments.api.PaymentsClient(X))}),[X]),(0,u.useEffect)((function(){q()}),[q]),{button:x,removeButton:B}}},5341:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),n(9509);var r=n(9031);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}))},9031:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(7154)),i=a(n(6479)),s=a(n(9713)),c=n(4613),u=n(1134),l=n(5516),p=a(n(5212)),d=n(3097),m=a(n(1417)),f=n(6664);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,s.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var v,b,h=(0,u.getSettings)("stripe_googlepay_data"),P=(v=new m.default.payments.api.PaymentsClient({environment:h("environment"),merchantInfo:{merchantId:h("merchantId"),merchantName:h("merchantName")}}),b=g(g({},d.BASE_PAYMENT_REQUEST),{},{allowedPaymentMethods:[d.BASE_PAYMENT_METHOD]}),v.isReadyToPay(b).then((function(){return!0})).catch((function(e){return console.log(e),!1}))),E=function(e){var t=e.getData,n=e.components,a=(0,i.default)(e,["getData","components"]),s=n.ValidationInputError,c=(0,l.useErrorMessage)(),d=c.errorMessage,m=c.setErrorMessage;return r.createElement("div",{className:"wc-stripe-gpay-container"},r.createElement(f.Elements,{stripe:u.initStripe},r.createElement(p.default,(0,o.default)({getData:t,canMakePayment:P,setErrorMessage:m},a)),d&&r.createElement(s,{errorMessage:d})))},O=function(e){var t,n=e.getData,a=((0,i.default)(e,["getData"]),n("buttonStyle").buttonType),o=(null===(t=n("editorIcons"))||void 0===t?void 0:t[a])||"long";return r.createElement("div",{className:"gpay-block-editor ".concat(a)},r.createElement("img",{src:o}))};(0,c.registerExpressPaymentMethod)({name:h("name"),canMakePayment:function(){return h("isAdmin")?!(0,u.isCartPage)()||h("cartCheckoutEnabled"):!((0,u.isCartPage)()&&!h("cartCheckoutEnabled"))&&u.initStripe.then((function(e){return e.error?e:P}))},content:r.createElement(E,{getData:h}),edit:r.createElement(O,{getData:h}),supports:{showSavedCards:h("showSavedCards"),showSaveOption:h("showSaveOption"),features:h("features")}})},8664:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.toCartAddress=t.getShippingOptions=t.getShippingOptionParameters=t.getPaymentRequestUpdate=t.getTransactionInfo=void 0;var a=r(n(319)),o=n(1134),i=((0,n(4617).getSetting)("stripeGeneralData"),function(e){var t=e.billing,n=e.processingCountry,r=e.totalPriceLabel,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ESTIMATED",i=t.cartTotal,c=t.cartTotalItems,u=t.currency,l={countryCode:n,currencyCode:u.code,totalPriceStatus:a,totalPrice:(0,o.removeNumberPrecision)(i.value,u.minorUnit).toString(),displayItems:s(c,u.minorUnit),totalPriceLabel:r};return l});t.getTransactionInfo=i,t.getPaymentRequestUpdate=function(e){var t=e.billing,n=e.shippingData,r=e.processingCountry,a=e.totalPriceLabel,o=n.needsShipping,s=n.shippingRates,u={newTransactionInfo:i({billing:t,processingCountry:r,totalPriceLabel:a},"FINAL")};return o&&(u.newShippingOptionParameters=c(s)),u};var s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=[],r=["total_tax","total_shipping"];return e.forEach((function(e){(0<e.value||e.key&&r.includes(e.key))&&n.push({label:e.label,type:"LINE_ITEM",price:(0,o.removeNumberPrecision)(e.value,t).toString()})})),n},c=function(e){var t=u(e),n=t.map((function(e){return e.id})).slice(0,1).shift();return e.forEach((function(e,t){e.shipping_rates.forEach((function(e){e.selected&&(n=(0,o.getShippingOptionId)(t,e.rate_id))}))})),{shippingOptions:t,defaultSelectedOptionId:n}};t.getShippingOptionParameters=c;var u=function(e){var t=[];return e.forEach((function(e,n){var r=e.shipping_rates.map((function(e){var t=document.createElement("textarea");t.innerHTML=e.name;var r=(0,o.formatPrice)(e.price,e.currency_code);return{id:(0,o.getShippingOptionId)(n,e.rate_id),label:t.value,description:"".concat(r)}}));t=[].concat((0,a.default)(t),(0,a.default)(r))})),t};t.getShippingOptions=u;var l=(0,o.toCartAddress)({name:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},countryCode:"country",address1:"address_1",address2:"address_2",locality:"city",administrativeArea:"state",postalCode:"postcode",email:"email",phoneNumber:"phone"});t.toCartAddress=l},3636:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(4332);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(1261);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(6107);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}));var i=n(2715);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}));var s=n(2343);Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===s[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}}))}));var c=n(1500);Object.keys(c).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===c[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return c[e]}}))}));var u=n(6095);Object.keys(u).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===u[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}}))}));var l=n(5554);Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===l[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}}))}));var p=n(3893);Object.keys(p).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===p[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return p[e]}}))}));var d=n(1225);Object.keys(d).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===d[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return d[e]}}))}))},1261:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useAfterProcessingPayment=void 0;var a=r(n(1284)),o=r(n(8926)),i=n(9307),s=n(6664),c=n(1134),u=n(3893);t.useAfterProcessingPayment=function(e){var t=e.getData,n=e.eventRegistration,r=e.responseTypes,l=e.activePaymentMethod,p=e.shouldSavePayment,d=void 0!==p&&p,m=e.messageContext,f=void 0===m?null:m,y=(0,s.useStripe)(),g=n.onCheckoutAfterProcessingWithSuccess,v=n.onCheckoutAfterProcessingWithError;(0,u.useProcessCheckoutError)({responseTypes:r,subscriber:v,messageContext:f}),(0,i.useEffect)((function(){var e=g(function(){var e=(0,o.default)(a.default.mark((function e(n){var o;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.redirectUrl,t("name")!==l){e.next=5;break}return e.next=4,(0,c.handleCardAction)({redirectUrl:o,responseTypes:r,name:l,savePaymentMethod:d});case 4:return e.abrupt("return",e.sent);case 5:return e.abrupt("return",null);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[y,r,g,l,d])}},5554:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useExpressBreakpointWidth=t.useBreakpointWidth=void 0;var a=r(n(3038)),o=n(9307),i=n(1134),s=function(e){var t=e.name,n=e.width,r=e.node,s=e.className,c=(0,o.useState)(window.innerWidth),u=(0,a.default)(c,2),l=u[0],p=u[1],d=(0,o.useCallback)((function(e){var t=(0,i.getFromCache)(e);return t?parseInt(t):0}),[]),m=(0,o.useCallback)((function(e,t){return(0,i.storeInCache)(e,t)}),[]);(0,o.useEffect)((function(){var e="function"==typeof r?r():r;if(e){var a=d(t);(!a||n>a)&&m(t,n),e.clientWidth<n?e.classList.add(s):e.clientWidth>a&&e.classList.remove(s)}}),[l,r]),(0,o.useEffect)((function(){var e=function(){return p(window.innerWidth)};return window.addEventListener("resize",e),function(){return window.removeEventListener("resize",e)}}))};t.useBreakpointWidth=s,t.useExpressBreakpointWidth=function(e){var t=e.payment_method,n=e.width,r=(0,o.useCallback)((function(){var e=document.getElementById("express-payment-method-".concat(t));return e?e.parentNode:null}),[]);s({name:"expressMaxWidth",width:n,node:r,className:"wc-stripe-express__sm"})}},2343:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useExportedValues=void 0;var r=n(9307);t.useExportedValues=function(){return(0,r.useRef)({}).current}},6095:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentEvents=void 0;var a=r(n(9713)),o=r(n(3038)),i=n(9307),s=n(1134);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,a.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentEvents=function(e){var t=e.billing,n=e.shippingData,r=e.eventRegistration,c=r.onShippingRateSuccess,l=r.onShippingRateFail,p=r.onShippingRateSelectSuccess,d=(0,i.useRef)(t),m=(0,i.useRef)(n),f=(0,i.useState)(null),y=(0,o.default)(f,2),g=y[0],v=y[1],b=(0,i.useState)({onShippingChanged:!1}),h=(0,o.default)(b,2),P=h[0],E=h[1],O=(0,i.useCallback)((function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];n?v((0,a.default)({},e,t)):E(u(u({},P),{},(0,a.default)({},e,t)))}),[P,E]),_=(0,i.useCallback)((function(e){P[e]&&(delete P[e],E(P))}),[P]),S=(0,i.useCallback)((function(){var e=m.current,t=d.current;if(P.onShippingChanged&&!e.isSelectingRate&&!e.shippingRatesLoading){var n=P.onShippingChanged,r=!0;(0,s.hasShippingRates)(e.shippingRates)||(r=!1),n(r,{billing:t,shipping:e}),_("onShippingChanged")}}),[P,_]);return(0,i.useEffect)((function(){d.current=t,m.current=n})),(0,i.useEffect)((function(){g&&g.onShippingChanged&&(g.onShippingChanged(!0,{billing:d.current,shipping:m.current}),v(null))}),[g]),(0,i.useEffect)((function(){var e=c(S),t=p(S),n=l((function(e){e.hasInvalidAddress,e.hasError,P.onShippingChanged&&((0,P.onShippingChanged)(!1),_("onShippingChanged"))}));return function(){e(),n(),t()}}),[P,c,l,p]),{addPaymentEvent:O,removePaymentEvent:_}}},1500:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentRequest=void 0;var a=r(n(319)),o=r(n(9713)),i=r(n(3038)),s=n(9307),c=n(6095),u=n(1134),l=r(n(9127));function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=(0,u.toCartAddress)();t.usePaymentRequest=function(e){var t=e.getData,n=e.onClose,r=e.stripe,o=e.billing,p=e.shippingData,f=e.eventRegistration,y=e.setPaymentMethod,g=e.exportedValues,v=e.canPay,b=(0,c.usePaymentEvents)({billing:o,shippingData:p,eventRegistration:f}).addPaymentEvent,h=(p.shippingAddress,p.needsShipping),P=p.shippingRates,E=o.billingData,O=o.cartTotalItems,_=o.currency,S=o.cartTotal,w=(0,s.useState)(null),C=(0,i.default)(w,2),k=C[0],M=C[1],j=(0,s.useRef)({}),D=(0,s.useRef)(p),x=(0,s.useRef)(o);(0,s.useEffect)((function(){D.current=p,x.current=o}),[p]),(0,s.useEffect)((function(){if(r){var e={country:t("countryCode"),currency:null==_?void 0:_.code.toLowerCase(),total:{amount:S.value,label:S.label,pending:!0},requestPayerName:!0,requestPayerEmail:(0,u.isFieldRequired)("email",E.country),requestPayerPhone:(0,u.isFieldRequired)(h?"shipping-phone":"phone",E.country),requestShipping:h,displayItems:(0,u.getDisplayItems)(O,_)};e.requestShipping&&(e.shippingOptions=(0,u.getShippingOptions)(P)),j.current=e;var n=r.paymentRequest(j.current);n.canMakePayment().then((function(e){v(e)?M(n):M(null)}))}}),[r,S.value,E.country,P,O,_.code]),(0,s.useEffect)((function(){k&&(j.current.requestShipping&&(k.on("shippingaddresschange",A),k.on("shippingoptionchange",I)),k.on("cancel",n),k.on("paymentmethod",L))}),[k,A,n,L]);var R=(0,s.useCallback)((function(e){return function(t,n){var r=n.billing,a=n.shipping,o=r.cartTotal,i=r.cartTotalItems,s=r.currency,c=a.shippingRates;t?e.updateWith({status:"success",total:{amount:o.value,label:o.label,pending:!1},displayItems:(0,u.getDisplayItems)(i,s),shippingOptions:(0,u.getShippingOptions)(c)}):e.updateWith({status:"invalid_shipping_address"})}}),[]),A=(0,s.useCallback)((function(e){var t=e.shippingAddress,n=D.current,r=m(t);n.setShippingAddress(d(d({},n.shippingAddress),r));var a=(0,l.default)((0,u.getIntermediateAddress)(n.shippingAddress),r);b("onShippingChanged",R(e),a)}),[b]),I=(0,s.useCallback)((function(e){var t=e.shippingOption,n=D.current;n.setSelectedRates.apply(n,(0,a.default)((0,u.getSelectedShippingOption)(t.id))),b("onShippingChanged",R(e))}),[b]),L=(0,s.useCallback)((function(e){var t=e.paymentMethod,n=e.payerName,r=void 0===n?null:n,a=e.payerEmail,o=void 0===a?null:a,i=e.payerPhone,s=void 0===i?null:i,c={payerName:r,payerEmail:o,payerPhone:s};null!=t&&t.billing_details.address&&(c=m(t.billing_details.address,c)),g.billingData=c,e.shippingAddress&&(g.shippingAddress=m(e.shippingAddress,{payerPhone:s})),y(t.id),e.complete("success")}),[]);return{paymentRequest:k}}},3893:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessCheckoutError=void 0;var r=n(9307);t.useProcessCheckoutError=function(e){var t=e.responseTypes,n=e.subscriber,a=e.messageContext,o=void 0===a?null:a;(0,r.useEffect)((function(){var e=n((function(e){var n;return null!=e&&null!==(n=e.processingResponse.paymentDetails)&&void 0!==n&&n.stripeErrorMessage?(console.log(e.processingResponse.paymentDetails.stripeErrorMessage),{type:t.ERROR,message:e.processingResponse.paymentDetails.stripeErrorMessage,messageContext:o}):null}));return function(){return e()}}),[t,n])}},4332:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessPaymentIntent=void 0;var a=r(n(1284)),o=r(n(8926)),i=r(n(9713)),s=r(n(3038)),c=n(9307),u=n(6664),l=n(1134);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useProcessPaymentIntent=function(e){var t=e.getData,n=e.billing,r=e.shippingData,p=e.onPaymentProcessing,m=e.emitResponse,f=e.error,y=e.onSubmit,g=e.activePaymentMethod,v=e.paymentType,b=void 0===v?"card":v,h=e.setupIntent,P=void 0===h?null:h,E=e.removeSetupIntent,O=void 0===E?null:E,_=e.shouldSavePayment,S=void 0!==_&&_,w=e.exportedValues,C=void 0===w?{}:w,k=e.getPaymentMethodArgs,M=void 0===k?function(){return{}}:k,j=n.billingData,D=r.shippingAddress,x=m.responseTypes,R=(0,c.useState)(null),A=(0,s.default)(R,2),I=A[0],L=A[1],T=(0,u.useStripe)(),N=(0,c.useRef)(M),B=(0,c.useRef)({});(0,c.useEffect)((function(){N.current=M}),[M]);var F=(0,c.useCallback)((function(e){B.current=d(d({},B.current),e)}),[]),q=(0,c.useCallback)((function(){return d(d({},{type:b,billing_details:(0,l.getBillingDetailsFromAddress)(null!=C&&C.billingData?C.billingData:j)}),N.current())}),[j,b,M]),X=(0,c.useCallback)((function(e,n){var r,a={meta:{paymentMethodData:d((r={},(0,i.default)(r,"".concat(t("name"),"_token_key"),e),(0,i.default)(r,"".concat(t("name"),"_save_source_key"),n),r),B.current)}};return null!=C&&C.billingData&&(a.meta.billingData=C.billingData,a.meta.billingAddress=C.billingData),null!=C&&C.shippingAddress&&(a.meta.shippingData={address:C.shippingAddress}),a}),[j,D]);return(0,c.useEffect)((function(){I&&"string"==typeof I&&y()}),[I,y]),(0,c.useEffect)((function(){var e=p((0,o.default)(a.default.mark((function e(){var n,r;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(g===t("name")){e.next=2;break}return e.abrupt("return",null);case 2:if(n=null,r=null,e.prev=3,!f){e.next=6;break}throw new l.StripeError(f);case 6:if(!P){e.next=16;break}return e.next=9,T.confirmCardSetup(P.client_secret,{payment_method:q()});case 9:if(!(n=e.sent).error){e.next=12;break}throw new l.StripeError(n.error);case 12:r=n.setupIntent.payment_method,O(),e.next=26;break;case 16:if(!I){e.next=20;break}r=I,e.next=26;break;case 20:return e.next=22,T.createPaymentMethod(q());case 22:if(!(n=e.sent).error){e.next=25;break}throw new l.StripeError(n.error);case 25:r=n.paymentMethod.id;case 26:return e.abrupt("return",(0,l.ensureSuccessResponse)(x,X(r,S)));case 29:return e.prev=29,e.t0=e.catch(3),console.log(e.t0),L(null),e.abrupt("return",(0,l.ensureErrorResponse)(x,e.t0.error));case 34:case"end":return e.stop()}}),e,null,[[3,29]])}))));return function(){return e()}}),[I,j,p,T,P,g,S]),{setPaymentMethod:L,getCreatePaymentMethodArgs:q,addPaymentMethodData:F}}},6107:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useSetupIntent=void 0;var a=r(n(1284)),o=r(n(8926)),i=r(n(3038)),s=n(9307),c=r(n(6989)),u=n(1134);t.useSetupIntent=function(e){var t=e.cartTotal,n=e.setError,r=(0,s.useState)((0,u.getFromCache)("setupIntent")),l=(0,i.default)(r,2),p=l[0],d=l[1];(0,s.useEffect)((function(){var e=function(){var e=(0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!p){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,(0,c.default)({url:(0,u.getRoute)("create/setup_intent"),method:"POST"});case 4:(t=e.sent).code?n(t.message):((0,u.storeInCache)("setupIntent",t.intent),d(t.intent));case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();(0,u.cartContainsPreOrder)()||(0,u.cartContainsSubscription)()&&0==t.value?p||e():d(null)}),[t.value]);var m=(0,s.useCallback)((function(){(0,u.deleteFromCache)("setupIntent")}),[t.value]);return{setupIntent:p,removeSetupIntent:m}}},2715:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useStripeError=void 0;var a=r(n(3038)),o=n(9307);t.useStripeError=function(){var e=(0,o.useState)(!1),t=(0,a.default)(e,2);return[t[0],t[1]]}},1225:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useUpdatePaymentIntent=void 0;var a=r(n(1284)),o=r(n(8926)),i=r(n(9713)),s=n(9307),c=n(6664),u=n(1134);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useUpdatePaymentIntent=function(e){var t=e.clientSecret,n=e.billingData,r=e.eventRegistration,l=e.responseTypes,d=e.name,m=e.shouldSavePayment,f=e.noticeContexts,y=r.onPaymentProcessing,g=r.onCheckoutAfterProcessingWithSuccess,v=(0,s.useRef)({billingData:n}),b=(0,s.useRef)({}),h=(0,c.useStripe)(),P=(0,c.useElements)(),E=(0,s.useCallback)((function(e,t){var n;return{meta:{paymentMethodData:p((n={},(0,i.default)(n,"".concat(d,"_token_key"),e),(0,i.default)(n,"".concat(d,"_save_source_key"),t),n),b.current)}}}),[]),O=(0,s.useCallback)((function(e){b.current=p(p({},b.current),e)}),[]),_=(0,s.useCallback)((0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=v.current.billingData,e.next=3,h.updatePaymentIntent({elements:P,params:{payment_method_data:{billing_details:(0,u.getBillingDetailsFromAddress)(t)}}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)}))),[h,P]),S=(0,s.useCallback)((0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=v.current.billingData,e.next=3,h.confirmPayment({elements:P,confirmParams:{payment_method_data:{billing_details:(0,u.getBillingDetailsFromAddress)(t)}},redirect:"if_required"});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)}))),[h,P]);return(0,s.useEffect)((function(){v.current={billingData:n}})),(0,s.useEffect)((function(){var e=y((0,o.default)(a.default.mark((function e(){var n,r;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,n=null,e.next=4,h.retrievePaymentIntent(t);case 4:if("requires_action"!==(r=e.sent).paymentIntent.status){e.next=11;break}return n=r.paymentIntent.payment_method,e.next=9,S();case 9:e.next=17;break;case 11:return e.next=13,_();case 13:if(!(r=e.sent).error){e.next=16;break}throw new u.StripeError(r.error);case 16:n=r.paymentIntent.payment_method;case 17:return e.abrupt("return",(0,u.ensureSuccessResponse)(l,E(n,m)));case 20:return e.prev=20,e.t0=e.catch(0),e.abrupt("return",(0,u.ensureErrorResponse)(l,e.t0,{messageContext:f.PAYMENTS}));case 23:case"end":return e.stop()}}),e,null,[[0,20]])}))));return function(){return e()}}),[y,_,S,t,m]),(0,s.useEffect)((function(){var e=g(function(){var e=(0,o.default)(a.default.mark((function e(t){var n;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.redirectUrl,e.next=3,(0,u.handleCardAction)({redirectUrl:n,responseTypes:l,name:d,method:"confirmCardPayment",savePaymentMethod:m});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[g,S,m,d]),{updatePaymentIntent:_,addPaymentMethodData:O}}},318:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(9874);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}))},9874:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useLink=void 0;var a=r(n(1284)),o=r(n(9713)),i=r(n(8926)),s=r(n(3038)),c=r(n(6479)),u=n(9307),l=n(6664),p=n(1134);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f=(0,p.toCartAddress)();t.useLink=function(e){var t=e.email,n=e.eventRegistration,r=e.onClick,o=e.onSubmit,d=e.activePaymentMethod,y=e.responseTypes,g=((0,c.default)(e,["email","eventRegistration","onClick","onSubmit","activePaymentMethod","responseTypes"]),(0,u.useState)()),v=(0,s.default)(g,2),b=v[0],h=v[1],P=(0,l.useStripe)(),E=(0,l.useElements)(),O=(0,u.useRef)(),_=(0,u.useRef)(),S=n.onPaymentProcessing;return(0,u.useEffect)((function(){O.current={onClick:r,onSubmit:o}})),(0,u.useEffect)((function(){P&&E&&!b&&h(null==P?void 0:P.linkAutofillModal(E))}),[P,E,b]),(0,u.useEffect)((function(){b&&b.launch({email:t})}),[b,t]),(0,u.useEffect)((function(){b&&(b.on("autofill",(function(e){_.current=e,O.current.onSubmit()})),b.on("authenticated",(function(e){O.current.onClick()})))}),[b]),(0,u.useEffect)((function(){var e=S((0,i.default)(a.default.mark((function e(){var t,n,r,o,i,s,c;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("stripe_link_checkout"===d){e.next=2;break}return e.abrupt("return",null);case 2:return t={meta:{}},n=_.current.value,r=n.shippingAddress,o=void 0===r?null:r,i=n.billingAddress,(s=void 0===i?null:i)&&(t.meta.billingData=f(m(m({},s.address),{},{recipient:s.name})),t.meta.billingAddress=t.meta.billingData),o&&(t.meta.shippingData={address:f(m(m({},o.address),{},{recipient:o.name}))}),e.prev=6,e.next=9,P.updatePaymentIntent({elements:E,params:{payment_method_data:{billing_details:(0,p.getBillingDetailsFromAddress)(t.meta.billingData)}}});case 9:return c=e.sent,t.meta.paymentMethodData={stripe_cc_token_key:c.paymentIntent.payment_method,stripe_cc_save_source_key:!1},e.abrupt("return",(0,p.ensureSuccessResponse)(y,t));case 14:return e.prev=14,e.t0=e.catch(6),console.log(e.t0),e.abrupt("return",(0,p.ensureErrorResponse)(y,e.t0));case 18:case"end":return e.stop()}}),e,null,[[6,14]])}))));return function(){return e()}}),[S,P,E,d]),b}},3474:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.LinkComponent=void 0;var o=a(n(6479)),i=(n(9307),n(6664)),s=n(4613),c=n(318),u=n(1134),l=(0,u.getSettings)("stripe_link_checkout_data"),p=function(e){var t,n,a=e.cartData,s=(0,o.default)(e,["cartData"]),c=null==a||null===(t=a.extensions)||void 0===t||null===(n=t.stripe_link_checkout)||void 0===n?void 0:n.clientSecret;return c?r.createElement(i.Elements,{stripe:u.initStripe,options:{clientSecret:c}},r.createElement(d,s)):null};t.LinkComponent=p;var d=function(e){var t=e.billing,n=(e.shipping,e.eventRegistration),a=e.onClick,s=e.onSubmit,u=e.activePaymentMethod,l=e.emitResponse,p=((0,o.default)(e,["billing","shipping","eventRegistration","onClick","onSubmit","activePaymentMethod","emitResponse"]),t.billingData),d=(t.currency,l.responseTypes),m=(l.noticeContexts,p.email);return(0,c.useLink)({email:m,eventRegistration:n,onClick:a,onSubmit:s,activePaymentMethod:u,responseTypes:d}),r.createElement("div",{style:{display:"none"}},r.createElement(i.PaymentElement,{options:{fields:{billingDetails:{address:"never"}},wallets:{applePay:"never",googlePay:"never"}}}))};(0,s.registerExpressPaymentMethod)({name:l("name"),canMakePayment:function(e){return!0},content:r.createElement(p,null),edit:r.createElement(p,null),supports:{showSavedCards:l("showSavedCards"),showSaveOption:l("showSaveOption"),features:l("features")}})},6480:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(6479)),i=a(n(9713)),s=a(n(3038)),c=n(9307),u=n(4613),l=n(1134),p=n(3539),d=n(3187),m=n(6664),f=n(5736),y=n(3554),g=n(8817);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function b(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h,P=(0,l.getSettings)("stripe_afterpay_data"),E={},O=function(e){var t=e.total,n=e.currency,r=!1,a=e.country,o=P("requiredParams"),i=P("accountCountry"),s=!!o.hasOwnProperty(n)&&o[n];if(s){var c=null==s?void 0:s[0];Array.isArray(c)||(c=[c]),r=c.indexOf(i)>-1&&("EUR"!==n||!a||i===a)&&t>(null==s?void 0:s[1])&&t<(null==s?void 0:s[2])}return r},_=function(e){var t=e.getData,n=(0,c.useState)(b({amount:t("cartTotal"),currency:t("currency"),isCartEligible:t("msgOptions").isEligible},E)),a=(0,s.default)(n,2),o=a[0],i=a[1];return h=i,r.createElement(m.Elements,{stripe:l.initStripe,options:t("elementOptions")},r.createElement("div",{className:"wc-stripe-blocks-afterpay__label"},r.createElement(m.AfterpayClearpayMessageElement,{options:b(b({},t("msgOptions")),{amount:o.amount,currency:o.currency,isCartEligible:o.isCartEligible})})))},S=function(e){var t=e.content,n=e.billing,a=e.shippingData,i=(0,o.default)(e,["content","billing","shippingData"]),s=t,u=n.cartTotal,l=n.currency,p=n.billingData.country,d=(a.needsShipping,parseInt(u.value)/Math.pow(10,l.minorUnit)),m=O({total:d,currency:l.code,country:p});return(0,c.useEffect)((function(){h({amount:u.value,currency:l.code,isCartEligible:m})}),[u.value,l.code]),r.createElement(r.Fragment,null,r.createElement("div",{className:"wc-stripe-blocks-payment-method-content"},m&&r.createElement("div",{className:"wc-stripe-blocks-afterpay-offsite__container"},r.createElement("div",{className:"wc-stripe-blocks-afterpay__offsite"},r.createElement("img",{src:P("offSiteSrc")}),r.createElement("p",null,(0,f.sprintf)((0,f.__)('After clicking "%s", you will be redirected to Afterpay to complete your purchase securely.',"woo-stripe-payment"),P("placeOrderButtonLabel"))))),r.createElement(s,b(b({},i),{},{billing:n,shippingData:a}))))},w=function(e){var t=e.cart,n=(e.extensions,e.context,t.cartTotals),a=(t.cartNeedsShipping,t.billingAddress.country),o=(n.total_price,n.currency_code),i=parseInt(n.total_price),s=parseInt(n.total_price)/Math.pow(10,n.currency_minor_unit);return O({total:s,currency:o,country:a})?r.createElement(y.TotalsWrapper,null,r.createElement(m.Elements,{stripe:l.initStripe,options:P("elementOptions")},r.createElement("div",{className:"wc-stripe-blocks-afterpay-totals__item wc-block-components-totals-item"},r.createElement(m.AfterpayClearpayMessageElement,{options:b(b({},P("msgOptions")),{amount:i,currency:o,isCartEligible:O({total:s,currency:o,country:a})})})))):null};P()&&((0,u.registerPaymentMethod)({name:P("name"),label:r.createElement(_,{getData:P}),ariaLabel:(0,f.__)("Afterpay","woo-stripe-payment"),placeOrderButtonLabel:P("placeOrderButtonLabel"),canMakePayment:(0,p.canMakePayment)(P,(function(e){var t=e.settings,n=e.cartTotals,r=e.billingData,a=n.currency_code,o=n.currency_minor_unit,i=n.total_price,s=r.country,c=parseInt(i)/Math.pow(10,o);h?h({amount:parseInt(n.total_price),currency:a,isCartEligible:O({total:c,currency:a,country:s})}):E={amount:parseInt(n.total_price),currency:a,isCartEligible:O({total:c,currency:a,country:s})};var u=O({total:c,currency:a,country:s});return!u&&!t("hideIneligible")||u})),content:r.createElement(S,{content:p.LocalPaymentIntentContent,getData:P,confirmationMethod:"confirmAfterpayClearpayPayment"}),edit:r.createElement(d.PaymentMethod,{content:p.LocalPaymentIntentContent,getData:P}),supports:{showSavedCards:!1,showSaveOption:!1,features:P("features")}}),(0,g.registerPlugin)("wc-stripe",{render:function(){return r.createElement(y.ExperimentalOrderMeta,null,r.createElement(w,null))},scope:"woocommerce-checkout"}))},39:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(2029),c=n(3187),u=(0,o.getSettings)("stripe_alipay_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Alipay",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmAlipayPayment",getData:u}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},8641:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_bancontact_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"Bancontact",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmBancontactPayment",getData:c}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},5176:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_becs_data"),l=function(e){return r.createElement(r.Fragment,null,r.createElement(s.PaymentMethod,e),r.createElement("div",{className:"wc-stripe-blocks-mandate becs-mandate",dangerouslySetInnerHTML:{__html:e.getData("mandate")}}))};u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"BECS",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(l,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmAuBecsDebitPayment",component:c.AuBankAccountElement}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},4990:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(7154)),i=a(n(9713)),s=a(n(3038)),c=a(n(6479)),u=n(9307),l=n(5736),p=n(4613),d=a(n(4184)),m=n(1134),f=n(3539),y=n(3187);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b=(0,m.getSettings)("stripe_boleto_data");b()&&(0,p.registerPaymentMethod)({name:b("name"),label:r.createElement(y.PaymentMethodLabel,{title:b("title"),paymentMethod:b("name"),icons:b("icon")}),ariaLabel:"Boleto",placeOrderButtonLabel:b("placeOrderButtonLabel"),canMakePayment:(0,f.canMakePayment)(b),content:r.createElement(y.PaymentMethod,{content:function(e){var t=e.eventRegistration,n=(0,c.default)(e,["eventRegistration"]),a=(0,u.useState)(""),i=(0,s.default)(a,2),p=i[0],y=i[1],g=(0,u.useState)(!1),b=(0,s.default)(g,2),h=b[0],P=b[1],E=t.onPaymentProcessing,O=(0,u.useCallback)((function(){return{boleto:{tax_id:p}}}),[p]);return(0,u.useEffect)((function(){var e=E((function(){return p?(0,m.ensureSuccessResponse)(n.emitResponse.responseTypes,{meta:{paymentMethodData:{wc_stripe_boleto_tax_id:p}}}):(0,m.ensureErrorResponse)(n.emitResponse.responseTypes,(0,l.__)("Please enter a valid CPF/CNPJ value","woo-stripe-payment"))}));return function(){return e()}}),[E,p]),r.createElement(r.Fragment,null,r.createElement("div",{className:(0,d.default)("wc-block-components-text-input",{"is-active":h||p})},r.createElement("input",{type:"text",id:"wc-stripe-boleto-tax_id",onChange:function(e){return y(e.target.value)},onFocus:function(){return P(!0)},onBlur:function(){return P(!1)}}),r.createElement("label",{htmlFor:"wc-stripe-boleto-tax_id"},(0,l.__)(" CPF / CNPJ"," woo-stripe-payment"))),(0,m.isTestMode)()&&r.createElement("div",{className:"wc-stripe-boleto__description"},r.createElement("p",null,(0,l.__)("Test mode values","woo-stripe-payment")),r.createElement("div",null,r.createElement("label",null,"CPF:")," ",r.createElement("span",null,"000.000.000-00")),r.createElement("div",null,r.createElement("label",null,"CNPJ:")," ",r.createElement("span",null,"00.000.000/0000-00"))),!(0,m.isTestMode)()&&r.createElement("div",{className:"wc-stripe-boleto__description"},r.createElement("p",null,(0,l.__)("Accepted formats","woo-stripe-payment")),r.createElement("div",null,r.createElement("label",null,"CPF:")," ",r.createElement("span",null,(0,l.__)("XXX.XXX.XXX-XX or XXXXXXXXXXX","woo-stripe-payment"))),r.createElement("div",null,r.createElement("label",null,"CNPJ:")," ",r.createElement("span",null,(0,l.__)("XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX","woo-stripe-payment")))),r.createElement(f.LocalPaymentIntentContent,(0,o.default)({callback:O},v(v({},n),{eventRegistration:t}))))},getData:b,confirmationMethod:"confirmBoletoPayment"}),edit:r.createElement(y.PaymentMethod,{content:f.LocalPaymentIntentContent,getData:b}),supports:{showSavedCards:!1,showSaveOption:!1,features:b("features")}})},4494:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_eps_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"EPS",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmEpsPayment",component:c.EpsBankElement,getData:u}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},4031:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_fpx_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"FPX",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmIdealPayment",component:c.FpxBankElement}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},3817:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_giropay_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"Giropay",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmGiropayPayment",getData:c}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},3140:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_grabpay_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"GrabPay",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c,confirmationMethod:"confirmGrabPayPayment"}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},8522:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(3160);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(3994);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(878);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},3160:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useAfterProcessLocalPayment=void 0;var a=r(n(1284)),o=r(n(9713)),i=r(n(6479)),s=r(n(8926)),c=n(9307),u=n(6664),l=n(1134);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useAfterProcessLocalPayment=function(e){var t=e.getData,n=e.billingData,r=e.eventRegistration,o=e.responseTypes,p=e.activePaymentMethod,m=e.confirmationMethod,f=e.getPaymentMethodArgs,y=void 0===f?function(){return{}}:f,g=(0,u.useStripe)(),v=r.onCheckoutAfterProcessingWithSuccess,b=r.onCheckoutAfterProcessingWithError,h=(0,c.useRef)(n),P=(0,c.useRef)(y);(0,c.useEffect)((function(){h.current=n}),[n]),(0,c.useEffect)((function(){P.current=y}),[y]),(0,c.useEffect)((function(){var e=v(function(){var e=(0,s.default)(a.default.mark((function e(n){var r,s,c,u,f,y,v;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.redirectUrl,t("name")!==p){e.next=18;break}if(e.prev=2,!(s=r.match(/#response=(.+)/))){e.next=12;break}return c=JSON.parse(window.atob(decodeURIComponent(s[1]))),u=c.client_secret,f=c.return_url,y=(0,i.default)(c,["client_secret","return_url"]),e.next=8,g[m](u,{payment_method:d({billing_details:(0,l.getBillingDetailsFromAddress)(h.current)},P.current(h.current)),return_url:f});case 8:if(!(v=e.sent).error){e.next=11;break}throw new l.StripeError(v.error);case 11:window.location=decodeURI(y.order_received_url);case 12:e.next=18;break;case 14:return e.prev=14,e.t0=e.catch(2),console.log(e.t0),e.abrupt("return",(0,l.ensureErrorResponse)(o,e.t0.error));case 18:case"end":return e.stop()}}),e,null,[[2,14]])})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[g,v,b])}},878:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useCreateSource=void 0;var a=r(n(1284)),o=r(n(8926)),i=r(n(9713)),s=r(n(3038)),c=n(9307),u=n(1134),l=n(6664),p=n(5736);t.useCreateSource=function(e){var t=e.getData,n=e.billing,r=e.shippingAddress,d=e.onPaymentProcessing,m=e.responseTypes,f=e.getSourceArgs,y=void 0!==f&&f,g=e.element,v=void 0!==g&&g,b=(0,c.useState)(!1),h=(0,s.default)(b,2),P=h[0],E=h[1],O=(0,c.useState)(!1),_=(0,s.default)(O,2),S=_[0],w=_[1],C=(0,c.useRef)({billing:n,shippingAddress:r}),k=(0,l.useStripe)(),M=(0,l.useElements)();(0,c.useEffect)((function(){C.current={billing:n,shippingAddress:r}}));var j=(0,c.useCallback)((function(){var e=C.current.billing,n=e.cartTotal,r=e.currency,a=e.billingData,o=(0,u.getDefaultSourceArgs)({type:t("paymentType"),amount:n.value,billingData:a,currency:r.code,returnUrl:t("returnUrl")});return y&&(o=y(o,{billingData:a})),o}),[]),D=(0,c.useCallback)((function(e){return{meta:{paymentMethodData:(0,i.default)({},"".concat(t("name"),"_token_key"),e)}}}),[]);return(0,c.useEffect)((function(){var e=d((0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!P){e.next=2;break}return e.abrupt("return",(0,u.ensureSuccessResponse)(m,D(P.id)));case 2:if(e.prev=2,!v){e.next=11;break}if(S){e.next=6;break}throw(0,p.__)("Please enter your payment info before proceeding.","woo-stripe-payment");case 6:return e.next=8,k.createSource(M.getElement(v),j());case 8:t=e.sent,e.next=14;break;case 11:return e.next=13,k.createSource(j());case 13:t=e.sent;case 14:if(!t.error){e.next=16;break}throw new u.StripeError(t.error);case 16:return E(t.source),e.abrupt("return",(0,u.ensureSuccessResponse)(m,D(t.source.id)));case 20:return e.prev=20,e.t0=e.catch(2),console.log(e.t0),e.abrupt("return",(0,u.ensureErrorResponse)(m,e.t0.error||e.t0));case 24:case"end":return e.stop()}}),e,null,[[2,20]])}))));return function(){return e()}}),[P,d,k,m,v,S,w]),{setIsValid:w}}},3994:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useValidateCheckout=void 0;var a=r(n(3038)),o=n(9307),i=n(1134),s=n(5736);t.useValidateCheckout=function(e){var t=e.subscriber,n=e.responseTypes,r=e.component,c=void 0===r?null:r,u=e.msg,l=void 0===u?(0,s.__)("Please enter your payment info before proceeding.","woo-stripe-payment"):u,p=(0,o.useState)(!1),d=(0,a.default)(p,2),m=d[0],f=d[1];return(0,o.useEffect)((function(){var e=t((function(){return!(c&&!m)||(0,i.ensureErrorResponse)(n,l)}));return function(){return e()}}),[t,m,f,n,c]),{isValid:m,setIsValid:f}}},9474:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_ideal_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Ideal",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmIdealPayment",component:c.IdealBankElement}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},9738:(e,t,n)=>{n(5142),n(9474),n(3868),n(8641),n(3817),n(4494),n(4784),n(1192),n(7894),n(3766),n(4031),n(5176),n(3140),n(39),n(6480),n(4990),n(5748)},5142:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(5736),u=(0,o.getSettings)("stripe_klarna_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Klarna",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u,(function(e){var t=e.settings,n=e.billingData,r=e.cartTotals,a=n.country,o=r.currency_code,i=t("requiredParams");return[o]in i&&i[o].includes(a)})),content:r.createElement(s.PaymentMethod,{content:function(e){return r.createElement(r.Fragment,null,(0,o.isTestMode)()&&r.createElement("div",{className:"wc-stripe-klarna__testmode"},r.createElement("label",null,(0,c.__)("Test mode sms","woo-stripe-payment"),":")," ",r.createElement("span",null,"123456")),r.createElement(i.LocalPaymentIntentContent,e))},getData:u,confirmationMethod:"confirmKlarnaPayment"}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},3539:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.LocalPaymentSourceContent=t.LocalPaymentIntentContent=t.canMakePayment=void 0;var o=a(n(7154)),i=a(n(9713)),s=a(n(6479)),c=n(9307),u=n(6664),l=n(1134),p=n(8522),d=n(3636);function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.canMakePayment=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(n){var r=n.billingData,a=n.cartTotals,o=(0,s.default)(n,["billingData","cartTotals"]),i=a.currency_code,c=r.country,u=e("countries"),p=e("allowedCountries"),d=e("features"),m=!1;if(e("isAdmin"))m=!0;else{if((0,l.cartContainsSubscription)()&&!d.includes("subscriptions"))return!1;if((0,l.cartContainsPreOrder)()&&!d.includes("pre-orders"))return!1;e("currencies").includes(i)&&(m="all_except"===p?!e("exceptCountries").includes(c):"specific"===p?e("specificCountries").includes(c):!(u.length>0)||u.includes(c)),t&&m&&(m=t(f({settings:e,billingData:r,cartTotals:a},o)))}return m}},t.LocalPaymentIntentContent=function(e){var t=e.getData,n=(0,s.default)(e,["getData"]);return r.createElement(u.Elements,{stripe:l.initStripe,options:t("elementOptions")},r.createElement(g,f(f({},n),{},{getData:t})))},t.LocalPaymentSourceContent=function(e){return r.createElement(u.Elements,{stripe:l.initStripe},r.createElement(y,e))};var y=function(e){var t=e.getData,n=e.billing,a=e.shippingData,o=e.emitResponse,i=e.eventRegistration,s=e.getSourceArgs,c=void 0!==s&&s,u=e.element,l=void 0!==u&&u,d=a.shippingAddress,m=i.onPaymentProcessing,f=(i.onCheckoutAfterProcessingWithError,o.responseTypes),y=(o.noticeContexts,(0,p.useCreateSource)({getData:t,billing:n,shippingAddress:d,onPaymentProcessing:m,responseTypes:f,getSourceArgs:c,element:l}).setIsValid);return l?r.createElement(v,{name:t("name"),options:t("paymentElementOptions"),onChange:function(e){y(e.complete)},element:l}):null},g=function(e){var t=e.getData,n=e.billing,a=e.emitResponse,o=e.eventRegistration,s=e.activePaymentMethod,l=e.confirmationMethod,m=void 0===l?null:l,f=e.component,y=void 0===f?null:f,g=e.callback,b=void 0===g?null:g,h=(0,u.useElements)(),P=n.billingData,E=o.onPaymentProcessing,O=o.onCheckoutAfterProcessingWithError,_=a.responseTypes,S=a.noticeContexts,w=(0,c.useCallback)((function(e){return y?(0,i.default)({},t("paymentType"),h.getElement(y)):b?b(e):{}}),[h,b]),C=(0,p.useValidateCheckout)({subscriber:E,responseTypes:_,component:y}).setIsValid;return(0,p.useAfterProcessLocalPayment)({getData:t,billingData:P,eventRegistration:o,responseTypes:_,activePaymentMethod:s,confirmationMethod:m,getPaymentMethodArgs:w}),(0,d.useProcessCheckoutError)({responseTypes:_,subscriber:O,messageContext:S.PAYMENT}),y?r.createElement(v,{name:t("name"),options:t("paymentElementOptions"),onChange:function(e){return C(!e.empty)},element:y,callback:b}):null},v=function(e){var t=e.name,n=e.onChange,a=e.element,i=e.options,c=(0,s.default)(e,["name","onChange","element","options"]),u=a;return r.createElement("div",{className:"wc-stripe-local-payment-container ".concat(t," ").concat(u.displayName)},r.createElement(u,(0,o.default)({options:i,onChange:n},c)))}},4784:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_multibanco_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"MultiBanco",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:c}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},5748:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(n(6664),(0,o.getSettings)("stripe_oxxo_data"));c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"OXXO",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c,confirmationMethod:"confirmOxxoPayment"}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},3868:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_p24_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"P24",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmP24Payment",component:c.P24BankElement}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},1192:(e,t,n)=>{var r,a=n(9307),o=n(4613),i=n(1134),s=n(3187),c=n(3539),u=n(6664),l=(0,i.getSettings)("stripe_sepa_data"),p=(r=s.PaymentMethod,function(e){return a.createElement(a.Fragment,null,a.createElement(r,e),a.createElement("div",{className:"wc-stripe-blocks-mandate sepa-mandate",dangerouslySetInnerHTML:{__html:e.getData("mandate")}}))});l()&&(0,o.registerPaymentMethod)({name:l("name"),label:a.createElement(s.PaymentMethodLabel,{title:l("title"),paymentMethod:l("name"),icons:l("icon")}),ariaLabel:"SEPA",placeOrderButtonLabel:l("placeOrderButtonLabel"),canMakePayment:(0,c.canMakePayment)(l),content:a.createElement(p,{content:c.LocalPaymentIntentContent,getData:l,confirmationMethod:"confirmSepaDebitPayment",component:u.IbanElement}),edit:a.createElement(s.PaymentMethod,{content:c.LocalPaymentIntentContent,getData:l}),supports:{showSavedCards:!1,showSaveOption:!1,features:l("features")}})},7894:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_sofort_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"Sofort",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmSofortPayment",getData:c,callback:function(e){return{sofort:{country:e.country}}}}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},3766:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(1284)),i=a(n(8926)),s=a(n(9713)),c=a(n(3038)),u=n(9307),l=n(4613),p=n(1134),d=n(3187),m=n(3539),f=n(6664),y=n(8522),g=n(5736),v=n(3636),b=(0,p.getSettings)("stripe_wechat_data"),h=function(e){return r.createElement(f.Elements,{stripe:p.initStripe},r.createElement(P,e))},P=function(e){var t=e.getData,n=e.billing,a=(e.shippingData,e.emitResponse),o=e.eventRegistration,i=e.components,s=parseInt(t("qrSize")),c=a.responseTypes,l=o.onPaymentProcessing,d=o.onCheckoutAfterProcessingWithSuccess,m=i.ValidationInputError,f=(0,y.useValidateCheckout)({subscriber:o.onPaymentProcessing,responseTypes:a.responseTypes,msg:(0,g.__)("Please scan your QR code to continue with payment.","woo-stripe-payment")}),v=(f.isValid,f.setIsValid),b=O({getData:t,billing:n,responseTypes:c,subscriber:l}),h=b.source,P=b.error,_=b.deleteSourceFromStorage;return(0,u.useEffect)((function(){var e=d((function(){return _(),(0,p.ensureSuccessResponse)(c)}));return function(){return e()}}),[h,d,_]),(0,u.useEffect)((function(){h&&v(!0)}),[h]),h?r.createElement(E,{text:h.wechat.qr_code_url,width:s,height:s}):P?r.createElement("div",{className:"wechat-validation-error"},r.createElement(m,{errorMessage:(0,p.getErrorMessage)(P)})):(0,p.isAddressValid)(n.billingData)?null:(0,g.__)("Please fill out all the required fields in order to complete the WeChat payment.","woo-stripe-payment")},E=function(e){var t=e.text,n=e.width,a=void 0===n?128:n,o=e.height,i=void 0===o?128:o,s=e.colorDark,c=void 0===s?"#424770":s,l=e.colorLight,d=void 0===l?"#f8fbfd":l,m=e.correctLevel,f=void 0===m?QRCode.CorrectLevel.H:m,y=(0,u.useRef)();return(0,u.useEffect)((function(){new QRCode(y.current,{text:t,width:a,height:i,colorDark:c,colorLight:d,correctLevel:f})}),[y]),r.createElement(r.Fragment,null,r.createElement("div",{id:"wc-stripe-block-qrcode",ref:y}),(0,p.isTestMode)()&&r.createElement("p",null,(0,g.__)("Test mode: Click the Place Order button to proceed.","woo-stripe-payment")),!(0,p.isTestMode)()&&r.createElement("p",null,(0,g.__)("Scan the QR code using your WeChat app. Once scanned click the Place Order button.","woo-stripe-payment")))},O=function(e){var t=e.getData,n=e.billing,r=e.responseTypes,a=e.subscriber,l=(0,f.useStripe)(),d=(0,v.useStripeError)(),m=(0,c.default)(d,2),y=m[0],g=m[1],b=(0,u.useState)((0,p.getFromCache)("wechat:source")),h=(0,c.default)(b,2),P=h[0],E=h[1],O=(0,u.useRef)(null),_=n.cartTotal,S=n.billingData,w=n.currency;(0,u.useEffect)((function(){var e=a((function(){return(0,p.ensureSuccessResponse)(r,{meta:{paymentMethodData:(0,s.default)({},"".concat(t("name"),"_token_key"),P.id)}})}));return function(){return e()}}),[P,a]);var C=(0,u.useCallback)((0,i.default)(o.default.mark((function e(){var n;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,y||!(0,p.isAddressValid)(S)){e.next=9;break}return e.next=4,l.createSource((0,p.getDefaultSourceArgs)({type:t("paymentType"),amount:_.value,billingData:S,currency:w.code,returnUrl:t("returnUrl")}));case 4:if(!(n=e.sent).error){e.next=7;break}throw new p.StripeError(n.error);case 7:E(n.source),(0,p.storeInCache)("wechat:source",n.source);case 9:e.next=15;break;case 11:e.prev=11,e.t0=e.catch(0),console.log("error: ",e.t0),g(e.t0.error);case 15:case"end":return e.stop()}}),e,null,[[0,11]])}))),[l,P,_.value,S,w,y]),k=(0,u.useCallback)((function(){(0,p.deleteFromCache)("wechat:source")}),[]);return(0,u.useEffect)((function(){l&&!P&&(clearTimeout(O.current),O.current=setTimeout(C,1e3))}),[l,P,C]),{source:P,setSource:E,error:y,deleteSourceFromStorage:k}};b()&&(0,l.registerPaymentMethod)({name:b("name"),label:r.createElement(d.PaymentMethodLabel,{title:b("title"),paymentMethod:b("name"),icons:b("icon")}),ariaLabel:"WeChat",canMakePayment:(0,m.canMakePayment)(b),content:r.createElement(d.PaymentMethod,{content:h,getData:b}),edit:r.createElement(d.PaymentMethod,{content:h,getData:b}),supports:{showSavedCards:!1,showSaveOption:!1,features:b("features")}})},5180:(e,t,n)=>{n(3139),n(3726)},3726:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(3038)),i=a(n(6479)),s=n(9307),c=n(4613),u=n(1134),l=n(3636),p=n(6664),d=(0,u.getSettings)("stripe_payment_request_data"),m=function(e){return r.createElement("div",{className:"wc-stripe-payment-request-container"},r.createElement(p.Elements,{stripe:u.initStripe},r.createElement(f,e)))},f=function(e){var t=e.getData,n=e.onClick,a=e.onClose,c=e.billing,u=e.shippingData,d=e.eventRegistration,m=e.emitResponse,f=e.onSubmit,y=e.activePaymentMethod,g=((0,i.default)(e,["getData","onClick","onClose","billing","shippingData","eventRegistration","emitResponse","onSubmit","activePaymentMethod"]),d.onPaymentProcessing),v=m.responseTypes,b=m.noticeContexts,h=(0,p.useStripe)(),P=(0,l.useStripeError)(),E=(0,o.default)(P,1)[0],O=(0,l.useExportedValues)();(0,l.useExpressBreakpointWidth)({payment_method:t("name"),width:375});var _=(0,l.useProcessPaymentIntent)({getData:t,billing:c,shippingData:u,onPaymentProcessing:g,emitResponse:m,error:E,onSubmit:f,activePaymentMethod:y,exportedValues:O}).setPaymentMethod;(0,l.useAfterProcessingPayment)({getData:t,eventRegistration:d,responseTypes:v,activePaymentMethod:y,messageContext:b.EXPRESS_PAYMENTS});var S=(0,l.usePaymentRequest)({getData:t,onClose:a,stripe:h,billing:c,shippingData:u,eventRegistration:d,setPaymentMethod:_,exportedValues:O,canPay:function(e){return null!=e&&!e.applePay}}).paymentRequest,w=(0,s.useMemo)((function(){return{paymentRequest:S,style:{paymentRequestButton:t("paymentRequestButton")}}}),[S]);return S?r.createElement(p.PaymentRequestButtonElement,{options:w,onClick:n}):null},y=function(e){e.getData,(0,i.default)(e,["getData"]);var t=(0,s.useRef)();return(0,s.useEffect)((function(){var e=window.devicePixelRatio;t.current.width=20*e,t.current.height=20*e;var n=t.current.getContext("2d");n.scale(e,e),n.beginPath(),n.arc(10,10,10,0,2*Math.PI),n.fillStyle="#986fff",n.fill()})),r.createElement("div",{className:"payment-request-block-editor"},r.createElement("div",{className:"icon-container"},r.createElement("span",null,"Buy now"),r.createElement("canvas",{className:"PaymentRequestButton-icon",ref:t}),r.createElement("i",{className:"payment-request-arrow"})))};(0,c.registerExpressPaymentMethod)({name:d("name"),canMakePayment:function(e){var t=e.cartTotals;if(d("isAdmin"))return!0;var n=t.currency_code,r=t.total_price;return(0,u.canMakePayment)({country:d("countryCode"),currency:n.toLowerCase(),total:{label:d("totalLabel"),amount:parseInt(r)}},(function(e){return null!=e&&!e.applePay}))},content:r.createElement(m,{getData:d}),edit:r.createElement(y,{getData:d}),supports:{showSavedCards:d("showSavedCards"),showSaveOption:d("showSaveOption"),features:d("features")}})},1065:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(1284)),o=r(n(8926)),i=n(9307),s=n(1134),c=n(3636);t.default=function(e){var t=e.eventRegistration,n=e.emitResponse,r=e.getData,u=e.method,l=void 0===u?"handleCardAction":u,p=t.onCheckoutAfterProcessingWithSuccess,d=t.onCheckoutAfterProcessingWithError,m=n.responseTypes;(0,c.useProcessCheckoutError)({responseTypes:m,subscriber:d,messageContext:n.noticeContexts.PAYMENTS});var f=(0,i.useCallback)(function(){var e=(0,o.default)(a.default.mark((function e(t){var n;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.redirectUrl,e.next=3,(0,s.handleCardAction)({redirectUrl:n,getData:r,responseTypes:m,method:l});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[]);return(0,i.useEffect)((function(){var e=p(f);return function(){return e()}}),[p,f]),null}},1134:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.isNextActionRequired=t.isCheckoutPage=t.isCartPage=t.versionCompare=t.deleteFromCache=t.getFromCache=t.storeInCache=t.isTestMode=t.getDefaultSourceArgs=t.cartContainsSubscription=t.cartContainsPreOrder=t.getLocalPaymentMethods=t.registerLocalPaymentMethod=t.canMakePayment=t.getDisplayItems=t.getShippingOptionId=t.getShippingOptions=t.formatPrice=t.filterEmptyValues=t.getIntermediateAddress=t.toCartAddress=t.handleCardAction=t.isUserLoggedIn=t.hasShippingRates=t.getSelectedShippingOption=t.isFieldRequired=t.getLocaleFields=t.isAddressValid=t.removeNumberPrecision=t.isEmpty=t.StripeError=t.getSettings=t.getBillingDetailsFromAddress=t.getErrorMessage=t.ensureErrorResponse=t.ensureSuccessResponse=t.getRoute=t.getCreditCardForm=t.registerCreditCardForm=t.initStripe=void 0;var a=r(n(319)),o=r(n(1284)),i=r(n(8926)),s=r(n(3038)),c=r(n(8)),u=r(n(4575)),l=r(n(2205)),p=r(n(8585)),d=r(n(9754)),m=r(n(5957)),f=r(n(9713)),y=r(n(6479)),g=n(4465),v=n(4617),b=r(n(6989)),h=n(4293);function P(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return E(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?E(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,s=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){s=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(s)throw o}}}}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?O(Object(n),!0).forEach((function(t){(0,f.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var S=(0,v.getSetting)("stripeGeneralData"),w=S.publishableKey,C=S.stripeParams,k=(0,v.getSetting)("stripeErrorMessages"),M=(0,v.getSetting)("countryLocale",{}),j=/^([\w]+)\:(.+)$/,D=(0,v.getSetting)("stripeGeneralData").routes,x={},R=[],A={recipient:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},payerName:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},country:"country",addressLine:function(e,t){return t[0]&&(e.address_1=t[0]),t[1]&&(e.address_2=t[1]),e},line1:"address_1",line2:"address_2",city:"city",region:"state",state:"state",postalCode:"postcode",postal_code:"postcode",payerEmail:"email",payerPhone:"phone"},I=new Promise((function(e,t){(0,g.loadStripe)(w,C).then((function(t){e(t)})).catch((function(t){e({error:t})}))}));t.initStripe=I,t.registerCreditCardForm=function(e){var t=e.id,n=(0,y.default)(e,["id"]);x[t]=n},t.getCreditCardForm=function(e){return x.hasOwnProperty(e)?x[e]:{}};var L=function(e){return null!=D&&D[e]?D[e]:console.log("".concat(e," is not a valid route"))};t.getRoute=L;var T=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _({type:e.SUCCESS},t)};t.ensureSuccessResponse=T;var N=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return _({type:e.ERROR,message:B(t)},n)};t.ensureErrorResponse=N;var B=function(e){return"string"==typeof e?e:null!=e&&e.code&&null!=k&&k[e.code]?k[e.code]:null!=e&&e.statusCode?null!=k&&k[e.statusCode]?k[e.statusCode]:e.statusMessage:e.message};t.getErrorMessage=B;var F=function(e){var t={name:"".concat(e.first_name," ").concat(e.last_name),address:{city:e.city||null,country:e.country||null,line1:e.address_1||null,line2:e.address_2||null,postal_code:e.postcode||null,state:e.state||null}};return null!=e&&e.phone&&(t.phone=e.phone),null!=e&&e.email&&(t.email=e.email),t};t.getBillingDetailsFromAddress=F,t.getSettings=function(e){return function(t){return t?(0,v.getSetting)(e)[t]:(0,v.getSetting)(e)}};var q=function(e){(0,l.default)(a,e);var t,n,r=(t=a,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,d.default)(t);if(n){var a=(0,d.default)(this).constructor;e=Reflect.construct(r,arguments,a)}else e=r.apply(this,arguments);return(0,p.default)(this,e)});function a(e){var t;return(0,u.default)(this,a),(t=r.call(this,e.message)).error=e,t}return a}((0,m.default)(Error));t.StripeError=q;var X=function(e){return"string"==typeof e?0==e.length||""==e:Array.isArray(e)?0==array.length:"object"!==(0,c.default)(e)||0==Object.keys(e).length};t.isEmpty=X,t.removeNumberPrecision=function(e,t){return e/Math.pow(10,t)},t.isAddressValid=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=U(e.country),r=0,a=Object.entries(e);r<a.length;r++){var o=(0,s.default)(a[r],2),i=o[0],c=o[1];if(!t.includes(i)&&null!=n&&n[i]&&n[i].required&&X(c))return!1}return!0};var U=function(e){var t=_({},M.default);return e&&null!=M&&M[e]&&(t=Object.entries(M[e]).reduce((function(e,t){var n=(0,s.default)(t,2),r=n[0],a=n[1];return e[r]=_(_({},e[r]),a),e}),t),["phone","shipping-phone","email"].forEach((function(e){var n=document.getElementById(e);n&&(t[e]={required:n.required})}))),t};t.getLocaleFields=U,t.isFieldRequired=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=U(t);return[e]in n&&n[e].required},t.getSelectedShippingOption=function(e){var t=e.match(j);if(t){var n=t[1];return[t[2],n]}return[]},t.hasShippingRates=function(e){return e.map((function(e){return e.shipping_rates.length>0})).filter(Boolean).length>0},t.isUserLoggedIn=function(e){return e>0};var V=function(){var e=(0,i.default)(o.default.mark((function e(t){var n,r,a,i,s,c,u,l,p,d,m,y,g,v,h,P;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.redirectUrl,r=t.responseTypes,a=t.name,i=t.method,s=void 0===i?"handleCardAction":i,c=t.savePaymentMethod,u=void 0!==c&&c,e.prev=1,!(l=n.match(/#response=(.+)/))){e.next=22;break}return p=JSON.parse(window.atob(decodeURIComponent(l[1]))),d=p.client_secret,m=p.order_id,y=p.order_key,e.next=7,I;case 7:return g=e.sent,e.next=10,g[s](d);case 10:if(!(v=e.sent).error){e.next=13;break}return e.abrupt("return",N(r,v.error));case 13:return h=(0,f.default)({order_id:m,order_key:y},"".concat(a,"_save_source_key"),u),e.next=16,(0,b.default)({url:L("process/payment"),method:"POST",data:h});case 16:if(!(P=e.sent).messages){e.next=19;break}return e.abrupt("return",N(r,P.messages));case 19:return e.abrupt("return",T(r,{redirectUrl:P.redirect}));case 22:return e.abrupt("return",T(r));case 23:e.next=29;break;case 25:return e.prev=25,e.t0=e.catch(1),console.log(e.t0),e.abrupt("return",N(r,e.t0));case 29:case"end":return e.stop()}}),e,null,[[1,25]])})));return function(t){return e.apply(this,arguments)}}();t.handleCardAction=V,t.toCartAddress=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A;return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};t=_(_({},t),W(n));for(var a=0,o=Object.entries(e);a<o.length;a++){var i,c=(0,s.default)(o[a],2),u=c[0],l=c[1];null!==(i=t)&&void 0!==i&&i[u]&&("function"==typeof l?l(r,t[u]):r[l]=t[u])}return r}},t.getIntermediateAddress=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["city","postcode","state","country"],r={},a=P(n);try{for(a.s();!(t=a.n()).done;){var o=t.value;r[o]=e[o]}}catch(e){a.e(e)}finally{a.f()}return r};var W=function(e){return Object.keys(e).filter((function(t){return Boolean(e[t])})).reduce((function(t,n){return _(_({},t),{},(0,f.default)({},n,e[n]))}),{})};t.filterEmptyValues=W;var Y=function(e,t){var n,r=(0,h.getCurrency)(t),a=r.prefix,o=r.suffix,i=r.decimalSeparator,s=r.minorUnit,c=r.thousandSeparator;if(""==e||void 0===e)return e;e="string"==typeof e?parseInt(e,10):e;var u="",l=(e=(e/=Math.pow(10,s)).toString().replace(".",i)).indexOf(i);l<0?s>0&&(e+="".concat(i).concat(new Array(s+1).join("0"))):(u=e.substr(l+1)).length<s&&(e+=new Array(s-u.length+1).join("0"));var p=e.match(new RegExp("(\\d+)\\".concat(i,"(\\d+)")));return p&&(e=p[1],u=p[2]),e=e.replace(new RegExp("\\B(?=(\\d{3})+(?!\\d))","g"),"".concat(c)),a+(e=(null===(n=u)||void 0===n?void 0:n.length)>0?e+i+u:e)+o};t.formatPrice=Y,t.getShippingOptions=function(e){var t=[];return e.forEach((function(e,n){e.shipping_rates.sort((function(e){return e.selected?-1:1}));var r=e.shipping_rates.map((function(e){var t=document.createElement("textarea");return t.innerHTML=e.name,Y(e.price,e.currency_code),{id:H(n,e.rate_id),label:t.value,amount:parseInt(e.price,10)}}));t=[].concat((0,a.default)(t),(0,a.default)(r))})),t};var H=function(e,t){return"".concat(e,":").concat(t)};t.getShippingOptionId=H,t.getDisplayItems=function(e,t){t.minorUnit;var n=[],r=["total_tax","total_shipping"];return e.forEach((function(e){(0<e.value||e.key&&r.includes(e.key))&&n.push({label:e.label,pending:!1,amount:e.value})})),n};var G={};t.canMakePayment=function(e,t){var n=e.country,r=e.currency,a=e.total;return new Promise((function(e,o){var i=[n,r,a.amount].reduce((function(e,t){return"".concat(e,"-").concat(t)}));return r?i in G?e(G[i]):I.then((function(s){if(s.error)return o(s.error);s.paymentRequest({country:n,currency:r,total:a}).canMakePayment().then((function(n){return G[i]=t(n),e(G[i])}))})).catch(o):e(!1)}))},t.registerLocalPaymentMethod=function(e){R.push(e)},t.getLocalPaymentMethods=function(){return R},t.cartContainsPreOrder=function(){var e=(0,v.getSetting)("stripePaymentData");return e&&e.pre_order},t.cartContainsSubscription=function(){var e=(0,v.getSetting)("stripePaymentData");return e&&e.subscription},t.getDefaultSourceArgs=function(e){var t=e.type,n=e.amount,r=e.billingData,a=e.currency,o=e.returnUrl;return{type:t,amount:n,currency:a,owner:F(r),redirect:{return_url:o}}},t.isTestMode=function(){return"test"===(0,v.getSetting)("stripeGeneralData").mode};var J=function(e){return"".concat("stripe:").concat(e)};t.storeInCache=function(e,t){var n=Math.floor((new Date).getTime()/1e3)+900;"sessionStorage"in window&&sessionStorage.setItem(J(e),JSON.stringify({value:t,exp:n}))},t.getFromCache=function(e){if("sessionStorage"in window)try{var t=JSON.parse(sessionStorage.getItem(J(e)));if(t){var n=t.value,r=t.exp;if(!(Math.floor((new Date).getTime()/1e3)>r))return n;Q(J(e))}}catch(e){}return null};var Q=function(e){"sessionStorage"in window&&sessionStorage.removeItem(J(e))};t.deleteFromCache=Q,t.versionCompare=function(e,t,n){switch(n){case"<":return e<t;case">":return e>t;case"<=":return e<=t;case">=":return e>=t;case"=":return e==t}return!1},t.isCartPage=function(){return"cart"===(0,v.getSetting)("stripeGeneralData").page},t.isCheckoutPage=function(){return"checkout"===(0,v.getSetting)("stripeGeneralData").page},t.isNextActionRequired=function(e){var t=e.match(/#response=(.+)/),n=null;return t&&(n=JSON.parse(window.atob(decodeURIComponent(t[1])))),n}},4184:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)&&n.length){var i=a.apply(null,n);i&&e.push(i)}else if("object"===o)for(var s in n)r.call(n,s)&&n[s]&&e.push(s)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()},1465:()=>{},7776:()=>{},4836:()=>{},85:()=>{},3110:()=>{},8356:()=>{},5773:()=>{},9509:()=>{},3139:()=>{}}]);
3
  //# sourceMappingURL=commons.js.map
1
  /*! For license information please see commons.js.LICENSE.txt */
2
+ (self.webpackChunkwc_stripe=self.webpackChunkwc_stripe||[]).push([[351],{7228:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}},2858:e=>{e.exports=function(e){if(Array.isArray(e))return e}},3646:(e,t,n)=>{var r=n(7228);e.exports=function(e){if(Array.isArray(e))return r(e)}},1506:e=>{e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},8926:e=>{function t(e,t,n,r,a,o,i){try{var s=e[o](i),c=s.value}catch(e){return void n(e)}s.done?t(c):Promise.resolve(c).then(r,a)}e.exports=function(e){return function(){var n=this,r=arguments;return new Promise((function(a,o){var i=e.apply(n,r);function s(e){t(i,a,o,s,c,"next",e)}function c(e){t(i,a,o,s,c,"throw",e)}s(void 0)}))}}},4575:e=>{e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},9100:(e,t,n)=>{var r=n(9489),a=n(7067);function o(t,n,i){return a()?e.exports=o=Reflect.construct:e.exports=o=function(e,t,n){var a=[null];a.push.apply(a,t);var o=new(Function.bind.apply(e,a));return n&&r(o,n.prototype),o},o.apply(null,arguments)}e.exports=o},3913:e=>{function t(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}e.exports=function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}},9713:e=>{e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},7154:e=>{function t(){return e.exports=t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(this,arguments)}e.exports=t},9754:e=>{function t(n){return e.exports=t=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},t(n)}e.exports=t},2205:(e,t,n)=>{var r=n(9489);e.exports=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&r(e,t)}},5318:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},430:e=>{e.exports=function(e){return-1!==Function.toString.call(e).indexOf("[native code]")}},7067:e=>{e.exports=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}},6860:e=>{e.exports=function(e){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}},3884:e=>{e.exports=function(e,t){if("undefined"!=typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,a=!1,o=void 0;try{for(var i,s=e[Symbol.iterator]();!(r=(i=s.next()).done)&&(n.push(i.value),!t||n.length!==t);r=!0);}catch(e){a=!0,o=e}finally{try{r||null==s.return||s.return()}finally{if(a)throw o}}return n}}},521:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},8206:e=>{e.exports=function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}},6479:(e,t,n)=>{var r=n(7316);e.exports=function(e,t){if(null==e)return{};var n,a,o=r(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a<i.length;a++)n=i[a],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}},7316:e=>{e.exports=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}},8585:(e,t,n)=>{var r=n(8),a=n(1506);e.exports=function(e,t){return!t||"object"!==r(t)&&"function"!=typeof t?a(e):t}},9489:e=>{function t(n,r){return e.exports=t=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},t(n,r)}e.exports=t},3038:(e,t,n)=>{var r=n(2858),a=n(3884),o=n(379),i=n(521);e.exports=function(e,t){return r(e)||a(e,t)||o(e,t)||i()}},319:(e,t,n)=>{var r=n(3646),a=n(6860),o=n(379),i=n(8206);e.exports=function(e){return r(e)||a(e)||o(e)||i()}},8:e=>{function t(n){return"function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?e.exports=t=function(e){return typeof e}:e.exports=t=function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},t(n)}e.exports=t},379:(e,t,n)=>{var r=n(7228);e.exports=function(e,t){if(e){if("string"==typeof e)return r(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(e,t):void 0}}},5957:(e,t,n)=>{var r=n(9754),a=n(9489),o=n(430),i=n(9100);function s(t){var n="function"==typeof Map?new Map:void 0;return e.exports=s=function(e){if(null===e||!o(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==n){if(n.has(e))return n.get(e);n.set(e,t)}function t(){return i(e,arguments,r(this).constructor)}return t.prototype=Object.create(e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),a(t,e)},s(t)}e.exports=s},6664:function(e,t,n){!function(e,t){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;function n(){}function r(){}r.resetWarningCache=n;var a,o,i=(a=function(e){e.exports=function(){function e(e,t,n,r,a,o){if("SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"!==o){var i=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw i.name="Invariant Violation",i}}function t(){return e}e.isRequired=e;var a={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:r,resetWarningCache:n};return a.PropTypes=a,a}()},a(o={exports:{}},o.exports),o.exports);function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){l(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function u(e){return u="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},u(e)}function l(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=e&&("undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"]);if(null!=n){var r,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(e){s=!0,a=e}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return d(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)?d(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(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}var m=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),n.current},f=function(e){return null!==e&&"object"===u(e)},y="[object Object]",g=function e(t,n){if(!f(t)||!f(n))return t===n;var r=Array.isArray(t);if(r!==Array.isArray(n))return!1;var a=Object.prototype.toString.call(t)===y;if(a!==(Object.prototype.toString.call(n)===y))return!1;if(!a&&!r)return t===n;var o=Object.keys(t),i=Object.keys(n);if(o.length!==i.length)return!1;for(var s={},c=0;c<o.length;c+=1)s[o[c]]=!0;for(var u=0;u<i.length;u+=1)s[i[u]]=!0;var l=Object.keys(s);if(l.length!==o.length)return!1;var p=t,d=n;return l.every((function(t){return e(p[t],d[t])}))},v=function(e,t,n){return f(e)?Object.keys(e).reduce((function(r,a){var o=!f(t)||!g(e[a],t[a]);return n.includes(a)?(o&&console.warn("Unsupported prop change: options.".concat(a," is not a mutable property.")),r):o?c(c({},r||{}),{},l({},a,e[a])):r}),null):null},h=function(e){if(null===e||f(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.")},b=function(e){if(function(e){return f(e)&&"function"==typeof e.then}(e))return{tag:"async",stripePromise:Promise.resolve(e).then(h)};var t=h(e);return null===t?{tag:"empty"}:{tag:"sync",stripe:t}},P=t.createContext(null);P.displayName="ElementsContext";var E=t.createContext(null);E.displayName="CartElementContext";var O=function(e){var n=e.stripe,r=e.options,a=e.children,o=t.useMemo((function(){return b(n)}),[n]),i=p(t.useState(null),2),s=i[0],c=i[1],u=p(t.useState(null),2),l=u[0],d=u[1],f=p(t.useState((function(){return{stripe:"sync"===o.tag?o.stripe:null,elements:"sync"===o.tag?o.stripe.elements(r):null}})),2),y=f[0],g=f[1];t.useEffect((function(){var e=!0,t=function(e){g((function(t){return t.stripe?t:{stripe:e,elements:e.elements(r)}}))};return"async"!==o.tag||y.stripe?"sync"!==o.tag||y.stripe||t(o.stripe):o.stripePromise.then((function(n){n&&e&&t(n)})),function(){e=!1}}),[o,y,r]);var h=m(n);t.useEffect((function(){null!==h&&h!==n&&console.warn("Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.")}),[h,n]);var O=m(r);return t.useEffect((function(){if(y.elements){var e=v(r,O,["clientSecret","fonts"]);e&&y.elements.update(e)}}),[r,O,y.elements]),t.useEffect((function(){var e=y.stripe;e&&e._registerWrapper&&e.registerAppInfo&&(e._registerWrapper({name:"react-stripe-js",version:"1.14.2"}),e.registerAppInfo({name:"react-stripe-js",version:"1.14.2",url:"https://stripe.com/docs/stripe-js/react"}))}),[y.stripe]),t.createElement(P.Provider,{value:y},t.createElement(E.Provider,{value:{cart:s,setCart:c,cartState:l,setCartState:d}},a))};O.propTypes={stripe:i.any,options:i.object};var _=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)},S=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(E),e)},w=function(e){return(0,e.children)(_("mounts <ElementsConsumer>"))};w.propTypes={children:i.func.isRequired};var C=function(e){var n=t.useRef(e);return t.useEffect((function(){n.current=e}),[e]),function(){n.current&&n.current.apply(n,arguments)}},k=function(){},M=function(e,n){var r,a="".concat((r=e).charAt(0).toUpperCase()+r.slice(1),"Element"),o=n?function(e){_("mounts <".concat(a,">")),S("mounts <".concat(a,">"));var n=e.id,r=e.className;return t.createElement("div",{id:n,className:r})}:function(n){var r=n.id,o=n.className,i=n.options,s=void 0===i?{}:i,c=n.onBlur,u=void 0===c?k:c,l=n.onFocus,p=void 0===l?k:l,d=n.onReady,f=void 0===d?k:d,y=n.onChange,g=void 0===y?k:y,h=n.onEscape,b=void 0===h?k:h,P=n.onClick,E=void 0===P?k:P,O=n.onLoadError,w=void 0===O?k:O,M=n.onLoaderStart,j=void 0===M?k:M,D=n.onNetworksChange,x=void 0===D?k:D,R=n.onCheckout,A=void 0===R?k:R,I=n.onLineItemClick,L=void 0===I?k:I,T=_("mounts <".concat(a,">")).elements,N=t.useRef(null),B=t.useRef(null),F=S("mounts <".concat(a,">")),q=F.setCart,X=F.setCartState,U=C(f),V=C(u),W=C(p),Y=C(E),H=C(g),G=C(b),J=C(w),Q=C(j),K=C(x),z=C(A),$=C(L);t.useLayoutEffect((function(){if(null==N.current&&T&&null!=B.current){var t=T.create(e,s);"cart"===e&&q&&q(t),N.current=t,t.mount(B.current),t.on("ready",(function(n){"cart"===e?(X&&X(n),U(n)):U(t)})),t.on("change",(function(t){"cart"===e&&X&&X(t),H(t)})),t.on("blur",V),t.on("focus",W),t.on("escape",G),t.on("loaderror",J),t.on("loaderstart",Q),t.on("networkschange",K),t.on("click",Y),t.on("checkout",(function(t){"cart"===e&&X&&X(t),z(t)})),t.on("lineitemclick",$)}}));var Z=m(s);return t.useEffect((function(){if(N.current){var e=v(s,Z,["paymentRequest"]);e&&N.current.update(e)}}),[s,Z]),t.useLayoutEffect((function(){return function(){N.current&&(N.current.destroy(),N.current=null)}}),[]),t.createElement("div",{id:r,className:o,ref:B})};return o.propTypes={id:i.string,className:i.string,onChange:i.func,onBlur:i.func,onFocus:i.func,onReady:i.func,onEscape:i.func,onClick:i.func,onLoadError:i.func,onLoaderStart:i.func,onNetworksChange:i.func,onCheckout:i.func,onLineItemClick:i.func,options:i.object},o.displayName=a,o.__elementType=e,o},j="undefined"==typeof window,D=M("auBankAccount",j),x=M("card",j),R=M("cardNumber",j),A=M("cardExpiry",j),I=M("cardCvc",j),L=M("fpxBank",j),T=M("iban",j),N=M("idealBank",j),B=M("p24Bank",j),F=M("epsBank",j),q=M("payment",j),X=M("paymentRequestButton",j),U=M("linkAuthentication",j),V=M("address",j),W=M("shippingAddress",j),Y=M("cart",j),H=M("paymentMethodMessaging",j),G=M("affirmMessage",j),J=M("afterpayClearpayMessage",j);e.AddressElement=V,e.AffirmMessageElement=G,e.AfterpayClearpayMessageElement=J,e.AuBankAccountElement=D,e.CardCvcElement=I,e.CardElement=x,e.CardExpiryElement=A,e.CardNumberElement=R,e.CartElement=Y,e.Elements=O,e.ElementsConsumer=w,e.EpsBankElement=F,e.FpxBankElement=L,e.IbanElement=T,e.IdealBankElement=N,e.LinkAuthenticationElement=U,e.P24BankElement=B,e.PaymentElement=q,e.PaymentMethodMessagingElement=H,e.PaymentRequestButtonElement=X,e.ShippingAddressElement=W,e.useCartElement=function(){return S("calls useCartElement()").cart},e.useCartElementState=function(){return S("calls useCartElementState()").cartState},e.useElements=function(){return _("calls useElements()").elements},e.useStripe=function(){return _("calls useStripe()").stripe},Object.defineProperty(e,"__esModule",{value:!0})}(t,n(9196))},4465:(e,t,n)=>{"use strict";n.r(t),n.d(t,{loadStripe:()=>l});var r="https://js.stripe.com/v3",a=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,o="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",i=null,s=function(e,t,n){if(null===e)return null;var r=e.apply(void 0,t);return function(e,t){e&&e._registerWrapper&&e._registerWrapper({name:"stripe-js",version:"1.42.1",startTime:t})}(r,n),r},c=Promise.resolve().then((function(){return e=null,null!==i||(i=new Promise((function(t,n){if("undefined"!=typeof window)if(window.Stripe&&e&&console.warn(o),window.Stripe)t(window.Stripe);else try{var i=function(){for(var e=document.querySelectorAll('script[src^="'.concat(r,'"]')),t=0;t<e.length;t++){var n=e[t];if(a.test(n.src))return n}return null}();i&&e?console.warn(o):i||(i=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",n=document.createElement("script");n.src="".concat(r).concat(t);var a=document.head||document.body;if(!a)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return a.appendChild(n),n}(e)),i.addEventListener("load",(function(){window.Stripe?t(window.Stripe):n(new Error("Stripe.js not available"))})),i.addEventListener("error",(function(){n(new Error("Failed to load Stripe.js"))}))}catch(e){return void n(e)}else t(null)}))),i;var e})),u=!1;c.catch((function(e){u||console.warn(e)}));var l=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];u=!0;var r=Date.now();return c.then((function(e){return s(e,t,r)}))}},3187:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(2029);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(8744);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(4901);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}));var i=n(3193);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}))},3193:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.Installments=void 0;var o=a(n(1284)),i=a(n(8926)),s=a(n(3038)),c=n(9307),u=n(5736),l=a(n(6989)),p=a(n(4184)),d=n(1134);n(1465);var m=function(e){var t=e.paymentMethodName,n=(e.getCreatePaymentMethodArgs,e.cardFormComplete),a=void 0!==n&&n,p=e.addPaymentMethodData,m=void 0===p?null:p,g=e.getPaymentMethod,v=(0,c.useState)(null),h=(0,s.default)(v,2),b=h[0],P=h[1],E=(0,c.useState)(""),O=(0,s.default)(E,2),_=O[0],S=O[1],w=(0,c.useState)(!1),C=(0,s.default)(w,2),k=C[0],M=C[1];return(0,c.useEffect)((function(){a&&(M(!0),S(""),g().then(function(){var e=(0,i.default)(o.default.mark((function e(n){var r,a;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!n){e.next=6;break}return e.next=3,(0,l.default)({url:(0,d.getRoute)("create/payment_intent"),method:"POST",data:{payment_method_id:n,payment_method:t}});case 3:a=e.sent,P(a.installments),null!==(r=Object.keys(a.installments))&&void 0!==r&&r.length&&S(Object.keys(a.installments)[0]);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()).catch((function(e){console.log(e)})).finally((function(){return M(!1)})))}),[a,g]),r.createElement("div",{className:"wc-stripe-installments__container"},r.createElement("label",{className:"wc-stripe-installments__label"},(0,u.__)("Pay in installments:","woo-stripe-payment"),r.createElement(y,{loading:k})),r.createElement(f,{installment:_,onChange:function(e){S(e.target.value),m&&m({_stripe_installment_plan:e.target.value})},installments:b,isLoading:k}))};t.Installments=m;var f=function(e){var t,n=e.installment,a=e.installments,o=e.onChange,i=e.isLoading;return t=i?r.createElement("option",{value:"",disabled:!0},(0,u.__)("Loading installments...","woo-stripe-payment")):null===a?r.createElement("option",{value:"",disabled:!0},(0,u.__)("Fill out card form for eligibility.","woo-stripe-payment")):Object.keys(a).map((function(e){return r.createElement("option",{key:e,value:e,dangerouslySetInnerHTML:{__html:a[e].text}})})),r.createElement("select",{value:n,onChange:o,className:(0,p.default)("wc-stripe-installment__options",{loading:i})},t)},y=function(e){var t=e.loading;return r.createElement("div",{className:"wc-stripe-installment-loader__container"},t&&r.createElement("div",{className:"wc-stripe-installment-loader"},r.createElement("div",null),r.createElement("div",null),r.createElement("div",null)))},g=m;t.default=g},2029:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.PaymentMethodLabel=void 0;var o=a(n(6479));n(7776),t.PaymentMethodLabel=function(e){var t=e.title,n=e.icons,a=e.paymentMethod,i=(0,o.default)(e,["title","icons","paymentMethod"]).components,s=i.PaymentMethodLabel,c=i.PaymentMethodIcons;return Array.isArray(n)||(n=[n]),r.createElement("span",{className:"wc-stripe-label-container ".concat(a)},r.createElement(s,{text:t}),r.createElement(c,{icons:n,align:"left"}))}},4901:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.PaymentMethod=void 0;var o=a(n(9713)),i=a(n(6479)),s=n(9307);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.PaymentMethod=function(e){var t=e.getData,n=e.content,a=(0,i.default)(e,["getData","content"]),o=n,c=t("description"),p=(0,s.useRef)(null);return(0,s.useEffect)((function(){p.current&&0==p.current.childNodes.length&&p.current.classList.add("no-content")})),r.createElement(r.Fragment,null,c&&r.createElement(l,{desc:c,payment_method:t("name")}),r.createElement("div",{ref:p,className:"wc-stripe-blocks-payment-method-content"},r.createElement(o,u(u({},a),{},{getData:t}))))};var l=function(e){var t=e.desc,n=e.payment_method;return r.createElement("div",{className:"wc-stripe-blocks-payment-method__desc ".concat(n)},r.createElement("p",null,t))}},8744:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.RadioControlOption=void 0;var o=a(n(4184)),i=function(e){var t=e.checked,n=e.onChange,a=e.value,i=e.label;return r.createElement("label",{className:(0,o.default)("wc-stripe-blocks-radio-control__option",{"wc-stripe-blocks-radio-control__option-checked":t})},r.createElement("input",{className:"wc-stripe-blocks-radio-control__input",type:"radio",value:a,checked:t,onChange:function(e){return n(e.target.value)}}),r.createElement("div",{className:"wc-stripe-blocks-radio-control__label"},r.createElement("span",null,i)))};t.RadioControlOption=i;var s=i;t.default=s},7260:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(5201);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}))},5201:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessPayment=void 0;var a=r(n(1284)),o=r(n(8926)),i=r(n(9713)),s=n(9307),c=n(6664),u=n(1134),l=r(n(6989));function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useProcessPayment=function(e){var t=e.onCheckoutAfterProcessingWithSuccess,n=e.responseTypes,r=(e.paymentMethod,e.billingAddress),i=(0,c.useStripe)(),p=(0,s.useRef)({billingAddress:r});(0,s.useEffect)((function(){p.current=d(d({},p.current),{},{billingAddress:r})})),(0,s.useEffect)((function(){var e=t(function(){var e=(0,o.default)(a.default.mark((function e(t){var n,r;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.redirectUrl,!(r=(0,u.isNextActionRequired)(n))){e.next=12;break}if("intent"!==r.type){e.next=9;break}return e.next=6,m(r,i);case 6:case 11:return e.abrupt("return",e.sent);case 9:return e.next=11,f(r,i);case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[t,n,i,m,f]);var m=(0,s.useCallback)(function(){var e=(0,o.default)(a.default.mark((function e(t,r){var o,i,s,c,d,m,f;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=p.current.billingAddress,i=t.client_secret,s=t.order_id,c=t.order_key,e.prev=2,e.next=5,r.collectBankAccountForPayment({clientSecret:i,params:{payment_method_type:"us_bank_account",payment_method_data:{billing_details:{name:"".concat(o.first_name," ").concat(o.last_name),email:o.email}}}});case 5:if(!(d=e.sent).error){e.next=8;break}throw d.error;case 8:if("requires_confirmation"!==d.paymentIntent.status){e.next=25;break}return e.next=11,r.confirmUsBankAccountPayment(i);case 11:if(!(m=e.sent).error){e.next=14;break}throw m.error;case 14:if("processing"!==m.paymentIntent.status){e.next=23;break}return e.next=17,(0,l.default)({url:(0,u.getRoute)("process/payment"),method:"POST",data:{order_id:s,order_key:c,stripe_ach_token_key:m.paymentIntent.payment_method}});case 17:if(!(f=e.sent).messages){e.next=20;break}throw f.messages;case 20:return e.abrupt("return",(0,u.ensureSuccessResponse)(n,{redirectUrl:f.redirect}));case 23:if("requires_action"!==m.paymentIntent.status){e.next=25;break}throw{code:"ach_instant_only"};case 25:e.next=30;break;case 27:return e.prev=27,e.t0=e.catch(2),e.abrupt("return",(0,u.ensureErrorResponse)(n,e.t0));case 30:case"end":return e.stop()}}),e,null,[[2,27]])})));return function(t,n){return e.apply(this,arguments)}}(),[]),f=(0,s.useCallback)(function(){var e=(0,o.default)(a.default.mark((function e(t,r){var o,i,s,c,d,m,f,y,g;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return o=p.current.billingAddress,i=t.client_secret,s=t.order_id,c=t.order_key,e.prev=2,e.next=5,r.collectBankAccountForSetup({clientSecret:i,params:{payment_method_type:"us_bank_account",payment_method_data:{billing_details:{name:"".concat(o.first_name," ").concat(o.last_name),email:o.email}}}});case 5:if(!(d=e.sent).error){e.next=8;break}throw d.error;case 8:if("requires_confirmation"!==d.setupIntent.status){e.next=27;break}return e.next=11,r.confirmUsBankAccountSetup(i);case 11:if(m=e.sent,f=m.setupIntent,!(y=m.error)){e.next=16;break}throw y;case 16:if("succeeded"!==f.status){e.next=25;break}return e.next=19,(0,l.default)({url:(0,u.getRoute)("process/payment"),method:"POST",data:{order_id:s,order_key:c,stripe_ach_token_key:f.payment_method}});case 19:if(!(g=e.sent).messages){e.next=22;break}throw g.messages;case 22:return e.abrupt("return",(0,u.ensureSuccessResponse)(n,{redirectUrl:g.redirect}));case 25:if("requires_action"!==f.status){e.next=27;break}throw{code:"ach_instant_only"};case 27:e.next=33;break;case 29:return e.prev=29,e.t0=e.catch(2),console.log(e.t0),e.abrupt("return",(0,u.ensureErrorResponse)(n,e.t0));case 33:case"end":return e.stop()}}),e,null,[[2,29]])})));return function(t,n){return e.apply(this,arguments)}}(),[])}},5605:(e,t,n)=>{n(4836),n(4888)},4888:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(6479)),i=(n(9307),n(4613)),s=n(6664),c=n(1134),u=n(3187),l=a(n(1065)),p=n(7260),d=n(3636),m=(0,c.getSettings)("stripe_ach_data"),f=function(e){var t=e.eventRegistration,n=(e.components,e.emitResponse),a=(e.onSubmit,e.billing),i=((0,o.default)(e,["eventRegistration","components","emitResponse","onSubmit","billing"]),n.responseTypes),s=(t.onPaymentProcessing,t.onCheckoutAfterProcessingWithError),c=t.onCheckoutAfterProcessingWithSuccess;return(0,d.useProcessCheckoutError)({responseTypes:i,subscriber:s}),(0,p.useProcessPayment)({onCheckoutAfterProcessingWithSuccess:c,responseTypes:i,paymentMethod:m("name"),billingAddress:a.billingData}),r.createElement("div",{className:"wc-stripe-ach__container"},r.createElement(g,{text:m("mandateText")}))},y=function(e){return r.createElement(s.Elements,{stripe:c.initStripe},r.createElement(f,e))},g=function(e){var t=e.text;return r.createElement("p",{className:"wc-stripe-ach__mandate"},t)};(0,i.registerPaymentMethod)({name:m("name"),label:r.createElement(u.PaymentMethodLabel,{title:m("title"),paymentMethod:m("name"),icons:m("icons")}),ariaLabel:"ACH Payment",canMakePayment:function(e){return"USD"===e.cartTotals.currency_code},content:r.createElement(u.PaymentMethod,{getData:m,content:y}),savedTokenComponent:r.createElement(l.default,{getData:m}),edit:r.createElement(y,null),placeOrderButtonLabel:m("placeOrderButtonLabel"),supports:{showSavedCards:m("showSavedCards"),showSaveOption:!1,features:m("features")}})},3846:(e,t,n)=>{n(85),n(660)},660:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(3038)),i=a(n(6479)),s=n(9307),c=n(4613),u=n(1134),l=n(6664),p=a(n(7082)),d=n(3636),m=(0,u.getSettings)("stripe_applepay_data"),f=function(e){return r.createElement(p.default,null,r.createElement("div",{className:"wc-stripe-apple-pay-container"},r.createElement(l.Elements,{stripe:u.initStripe},r.createElement(y,e))))},y=function(e){var t=e.getData,n=e.onClick,a=e.onClose,c=e.billing,u=e.shippingData,p=e.eventRegistration,m=e.emitResponse,f=e.onSubmit,y=e.activePaymentMethod,g=((0,i.default)(e,["getData","onClick","onClose","billing","shippingData","eventRegistration","emitResponse","onSubmit","activePaymentMethod"]),p.onPaymentProcessing),v=m.responseTypes,h=m.noticeContexts,b=(0,l.useStripe)(),P=(0,d.useStripeError)(),E=(0,o.default)(P,1)[0],O=(0,d.useExportedValues)();(0,d.useExpressBreakpointWidth)({payment_method:t("name"),width:375});var _=(0,d.useProcessPaymentIntent)({getData:t,billing:c,shippingData:u,onPaymentProcessing:g,emitResponse:m,error:E,onSubmit:f,activePaymentMethod:y,exportedValues:O}).setPaymentMethod;(0,d.useAfterProcessingPayment)({getData:t,eventRegistration:p,responseTypes:v,activePaymentMethod:y,messageContext:h.EXPRESS_PAYMENTS});var S=(0,d.usePaymentRequest)({getData:t,onClose:a,stripe:b,billing:c,shippingData:u,eventRegistration:p,setPaymentMethod:_,exportedValues:O,canPay:function(e){return null!=e&&e.applePay}}).paymentRequest,w=(0,s.useCallback)((function(e){S&&(e.preventDefault(),n(),S.show())}),[S,n]);return S?r.createElement("button",{className:"apple-pay-button ".concat(t("buttonStyle")),style:{"-apple-pay-button-type":t("buttonType")},onClick:w}):null},g=function(e){var t=e.getData;return(0,i.default)(e,["getData"]),r.createElement("div",{className:"apple-pay-block-editor"},r.createElement("img",{src:t("editorIcon")}))};(0,c.registerExpressPaymentMethod)({name:m("name"),canMakePayment:function(e){var t=e.cartTotals;if((0,i.default)(e,["cartTotals"]),m("isAdmin"))return!0;var n=t.currency_code,r=t.total_price;return(0,u.canMakePayment)({country:m("countryCode"),currency:n.toLowerCase(),total:{label:m("totalLabel"),amount:parseInt(r)}},(function(e){return null!=e&&e.applePay}))},content:r.createElement(f,{getData:m}),edit:r.createElement(g,{getData:m}),supports:{showSavedCards:m("showSavedCards"),showSaveOption:m("showSaveOption"),features:m("features")}})},7354:(e,t,n)=>{var r=n(9307);n(3110);var a=n(1134),o=n(6664),i=n(5736),s=function(e){var t=e.CardIcon,n=e.options,a=e.onChange;return r.createElement("div",{className:"wc-stripe-bootstrap-form"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col-md-6 mb-3"},r.createElement(o.CardNumberElement,{className:"md-form md-outline stripe-input",options:n.cardNumber,onChange:a(o.CardNumberElement)}),r.createElement("label",{htmlFor:"stripe-card-number"},(0,i.__)("Card Number","woo-stripe-payment")),t),r.createElement("div",{className:"col-md-3 mb-3"},r.createElement(o.CardExpiryElement,{className:"md-form md-outline stripe-input",options:n.cardExpiry,onChange:a(o.CardExpiryElement)}),r.createElement("label",{htmlFor:"stripe-exp"},(0,i.__)("Exp","woo-stripe-payment"))),r.createElement("div",{className:"col-md-3 mb-3"},r.createElement(o.CardCvcElement,{className:"md-form md-outline stripe-input",options:n.cardCvc,onChange:a(o.CardCvcElement)}),r.createElement("label",{htmlFor:"stripe-cvv"},(0,i.__)("CVV","woo-stripe-payment")))))};(0,a.registerCreditCardForm)({id:"bootstrap",breakpoint:475,component:r.createElement(s,null)})},3329:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(9713)),i=a(n(3038)),s=n(1134),c=n(9307),u=n(6664),l=n(5736),p=n(3636);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f={focus:"focused",empty:"empty",invalid:"invalid"},y=function(e){var t=e.type,n=e.src;return t?r.createElement("img",{className:"wc-stripe-card ".concat(t),src:n}):null};t.default=function(e){var t=e.getData,n=e.onChange,a=e.onComplete,o=(0,c.useState)(""),d=(0,i.default)(o,2),g=d[0],v=d[1],h=(0,c.useRef)([]),b=(0,c.useState)(null),P=(0,i.default)(b,2),E=P[0],O=P[1],_=(0,u.useElements)(),S=t("customForm"),w=(0,s.getCreditCardForm)(S),C=w.component,k=void 0===C?null:C,M=w.breakpoint,j=void 0===M?475:M,D=t("postalCodeEnabled"),x={},R=(0,c.useRef)({cardNumber:{},cardExpiry:{},cardCvc:{}});["cardNumber","cardExpiry","cardCvc"].forEach((function(e){x[e]=m(m({classes:f},t("cardOptions")),t("customFieldOptions")[e])}));var A=(0,c.useCallback)((function(e){h.current.includes(e)||h.current.push(e)}),[]);(0,p.useBreakpointWidth)({name:"creditCardForm",width:j,node:E,className:"small-form"});var I=(0,c.useCallback)((function(e){for(var n=0,r=Object.keys(t("cards"));n<r.length;n++){var a=r[n];if(a===e)return t("cards")[a]}return""}),[]);return k?r.createElement("div",{className:"wc-stripe-custom-form ".concat(S),ref:O},(0,c.cloneElement)(k,{postalCodeEnabled:D,options:x,onChange:function(e){return A(e),function(t){if(n(t),R.current[t.elementType]=t,"cardNumber"===t.elementType&&("unknown"===t.brand?v(""):v(t.brand)),t.complete){var r=h.current.indexOf(e);if(h.current[r+1]){var o=h.current[r+1];_.getElement(o).focus()}}var i;a((i=R.current,Object.keys(i).filter((function(e){return!!i[e].complete})).length===Object.keys(i).length))}},CardIcon:r.createElement(y,{type:g,src:I(g)})})):r.createElement("div",{className:"wc-stripe-custom-form-error"},r.createElement("p",null,(0,l.sprintf)((0,l.__)("%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings.","woo-stripe-payment"),t("customFormLabels")[S])))}},6835:(e,t,n)=>{var r=n(9307);n(8356);var a=n(1134),o=n(6664),i=n(5736),s=n(9307),c=function(e){var t=e.CardIcon,n=e.options,a=e.onChange;return(0,s.useEffect)((function(){}),[]),r.createElement("div",{className:"wc-stripe-simple-form"},r.createElement("div",{className:"row"},r.createElement("div",{className:"field"},r.createElement("div",{className:"field-item"},r.createElement(o.CardNumberElement,{id:"stripe-card-number",className:"input empty",options:n.cardNumber,onChange:a(o.CardNumberElement)}),r.createElement("label",{htmlFor:"stripe-card-number","data-tid":""},(0,i.__)("Card Number","woo-stripe-payment")),r.createElement("div",{className:"baseline"}),t))),r.createElement("div",{className:"row"},r.createElement("div",{className:"field half-width"},r.createElement("div",{className:"field-item"},r.createElement(o.CardExpiryElement,{id:"stripe-exp",className:"input empty",options:n.cardExpiry,onChange:a(o.CardExpiryElement)}),r.createElement("label",{htmlFor:"stripe-exp","data-tid":""},(0,i.__)("Expiration","woo-stripe-payment")),r.createElement("div",{className:"baseline"}))),r.createElement("div",{className:"field half-width cvc"},r.createElement("div",{className:"field-item"},r.createElement(o.CardCvcElement,{id:"stripe-cvv",className:"input empty",options:n.cardCvc,onChange:a(o.CardCvcElement)}),r.createElement("label",{htmlFor:"stripe-cvv","data-tid":""},(0,i.__)("CVV","woo-stripe-payment")),r.createElement("div",{className:"baseline"})))))};(0,a.registerCreditCardForm)({id:"simple",component:r.createElement(c,null),breakpoint:375})},9775:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(9713)),i=n(6664),s=n(1134),c=n(9307);function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function l(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?u(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.default=function(e){var t=e.getData,n=e.billing,a=e.onChange,o=e.onComplete,u={card:{}},p=(0,c.useMemo)((function(){var e;return l(l({},{value:{postalCode:null==n||null===(e=n.billingData)||void 0===e?void 0:e.postcode},hidePostalCode:(0,s.isFieldRequired)("postcode"),iconStyle:"default"}),t("cardOptions"))}),[n.billingData]);return r.createElement("div",{className:"wc-stripe-inline-form"},r.createElement(i.CardElement,{options:p,onChange:function(e){a(e),u[e.elementType]=e,o(Object.keys(u).filter((function(e){return!!u[e].complete})).length===Object.keys(u).length)}}))}},627:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),n(5773);var r=n(7205);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))})),n(7354),n(6835)},4664:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=t.PaymentElementComponent=void 0;var o=a(n(1284)),i=a(n(8926)),s=a(n(3038)),c=a(n(6479)),u=a(n(9713)),l=n(9307),p=n(6664),d=n(1134),m=n(3187),f=n(3636);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,u.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var v=(0,d.getSettings)("stripe_cc_data"),h=function(e){var t,n=e.billing,a=n.cartTotal,o=n.currency,i=g({mode:"payment"},v("elementOptions"));return i=0>=a.value?g(g({},i),{},{mode:"setup"}):g(g({},i),{},{amount:a.value,currency:null==o||null===(t=o.code)||void 0===t?void 0:t.toLowerCase()}),r.createElement(r.Fragment,null,r.createElement(p.Elements,{stripe:d.initStripe,options:i},r.createElement(b,e)))};t.PaymentElementComponent=h;var b=function(e){e.onComplete;var t=(0,c.default)(e,["onComplete"]),n=(0,l.useState)(!1),a=(0,s.default)(n,2),u=a[0],d=a[1],y=v("installmentsActive"),g=((0,p.useElements)(),(0,p.useStripe)()),h=t.billing.billingData,b=t.eventRegistration,P=t.emitResponse,E=t.shouldSavePayment,O=(b.onPaymentProcessing,b.onCheckoutAfterProcessingWithError),_=P.responseTypes,S=P.noticeContexts,w=v("name"),C=(0,l.useCallback)((function(e){d(e.complete)}),[]),k=(0,f.useDeferredPaymentIntent)({billingData:h,eventRegistration:b,responseTypes:_,shouldSavePayment:E,noticeContexts:S,name:w}),M=k.updatePaymentIntent,j=k.addPaymentMethodData;(0,f.useProcessCheckoutError)({responseTypes:_,subscriber:O,messageContext:S.PAYMENTS});var D=(0,l.useCallback)((0,i.default)(o.default.mark((function e(){var t,n,r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=null,e.next=3,M();case 3:return null!=(r=e.sent)&&null!==(t=r.paymentIntent)&&void 0!==t&&t.payment_method&&(n=r.paymentIntent.payment_method),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e)}))),[M]);return r.createElement(r.Fragment,null,r.createElement(p.PaymentElement,{options:{fields:{billingDetails:{address:"never"}},wallets:{applePay:"never",googlePay:"never"}},onChange:C}),y&&r.createElement(m.Installments,{paymentMethodName:v("name"),stripe:g,cardFormComplete:u,getPaymentMethod:D,addPaymentMethodData:j}))},P=h;t.default=P},7205:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(1284)),i=a(n(8926)),s=a(n(3038)),c=n(9307),u=n(4613),l=n(1134),p=n(6664),d=n(3187),m=a(n(1065)),f=a(n(3329)),y=a(n(9775)),g=a(n(4664)),v=n(3636),h=(0,l.getSettings)("stripe_cc_data"),b=function(e){var t=(0,c.useState)(!1),n=(0,s.default)(t,2),a=n[0],o=n[1];if((0,c.useEffect)((function(){l.initStripe.catch((function(e){o(e)}))}),[o]),a)throw new Error(a);return h("isPaymentElement")?r.createElement(g.default,e):r.createElement(p.Elements,{stripe:l.initStripe,options:h("elementOptions")},r.createElement(P,e))},P=function(e){var t=e.getData,n=e.billing,a=e.shippingData,u=e.emitResponse,l=e.eventRegistration,m=e.activePaymentMethod,g=e.shouldSavePayment,h=(0,v.useStripeError)(),b=(0,s.default)(h,2),P=b[0],E=b[1],O=(0,c.useState)(!1),_=(0,s.default)(O,2),S=_[0],w=_[1],C=l.onPaymentProcessing,k=(0,p.useStripe)(),M=(0,p.useElements)(),j=(0,c.useCallback)((function(){var e=t("customFormActive")?p.CardNumberElement:p.CardElement;return{card:M.getElement(e)}}),[k,M]),D=(0,v.useSetupIntent)({getData:t,cartTotal:n.cartTotal,setError:E}),x=D.setupIntent,R=D.removeSetupIntent,A=(0,v.useProcessPaymentIntent)({getData:t,billing:n,shippingData:a,emitResponse:u,error:P,onPaymentProcessing:C,shouldSavePayment:g,setupIntent:x,removeSetupIntent:R,getPaymentMethodArgs:j,activePaymentMethod:m}),I=A.getCreatePaymentMethodArgs,L=A.addPaymentMethodData;(0,v.useAfterProcessingPayment)({getData:t,eventRegistration:l,responseTypes:u.responseTypes,activePaymentMethod:m,shouldSavePayment:g});var T=(0,c.useCallback)((0,i.default)(o.default.mark((function e(){var t,n,r;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=null,e.next=3,k.createPaymentMethod(I());case 3:return null!=(r=e.sent)&&null!==(t=r.paymentMethod)&&void 0!==t&&t.id&&(n=r.paymentMethod.id),e.abrupt("return",n);case 6:case"end":return e.stop()}}),e)}))),[k,I]),N=t("customFormActive")?f.default:y.default;return r.createElement("div",{className:"wc-stripe-card-container"},r.createElement(N,{getData:t,billing:n,onChange:function(e){e.error?E(e.error):E(!1)},onComplete:w}),t("installmentsActive")&&r.createElement(d.Installments,{paymentMethodName:t("name"),cardFormComplete:S,addPaymentMethodData:L,getPaymentMethod:T}))};(0,u.registerPaymentMethod)({name:h("name"),label:r.createElement(d.PaymentMethodLabel,{title:h("title"),paymentMethod:h("name"),icons:h("icons")}),ariaLabel:"Credit Cards",canMakePayment:function(){return l.initStripe},content:r.createElement(d.PaymentMethod,{content:b,getData:h}),savedTokenComponent:r.createElement(m.default,{getData:h,method:h("isPaymentElement")?"confirmCardPayment":"handleCardAction"}),edit:r.createElement(d.PaymentMethod,{content:b,getData:h}),supports:{showSavedCards:h("showSavedCards"),showSaveOption:!0,features:h("features")}})},7082:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(4575)),i=a(n(3913)),s=a(n(2205)),c=a(n(8585)),u=a(n(9754));var l=function(e){(0,s.default)(l,e);var t,n,a=(t=l,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,u.default)(t);if(n){var a=(0,u.default)(this).constructor;e=Reflect.construct(r,arguments,a)}else e=r.apply(this,arguments);return(0,c.default)(this,e)});function l(e){var t;return(0,o.default)(this,l),(t=a.call(this,e)).state={hasError:!1,error:null,errorInfo:null},t}return(0,i.default)(l,[{key:"componentDidCatch",value:function(e,t){this.setState({hasError:!0,error:e,errorInfo:t})}},{key:"render",value:function(){return this.state.hasError?r.createElement(r.Fragment,null,this.state.error&&r.createElement("div",{className:"wc-stripe-block-error"},this.state.error.toString()),this.state.errorInfo&&r.createElement("div",{className:"wc-stripe-block-error"},this.state.errorInfo.componentStack)):this.props.children}}]),l}(n(9307).Component);t.default=l},5212:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=a(n(3038)),i=a(n(6479)),s=n(9307),c=n(5516),u=n(3636),l=(0,n(1134).getSettings)("stripeGeneralData")().publishableKey;t.default=function(e){var t=e.getData,n=e.setErrorMessage,a=e.billing,p=e.shippingData,d=e.canMakePayment,m=e.checkoutStatus,f=e.eventRegistration,y=e.activePaymentMethod,g=e.onClick,v=e.onClose,h=(0,i.default)(e,["getData","setErrorMessage","billing","shippingData","canMakePayment","checkoutStatus","eventRegistration","activePaymentMethod","onClick","onClose"]),b={merchantId:t("merchantId"),merchantName:t("merchantName")},P=(0,u.useStripeError)(),E=(0,o.default)(P,2),O=E[0],_=(E[1],(0,s.useRef)()),S=h.onSubmit,w=h.emitResponse,C=f.onPaymentProcessing,k=(0,u.useExportedValues)(),M="long"===t("buttonStyle").buttonType?390:375,j=(0,u.useProcessPaymentIntent)({getData:t,billing:a,shippingData:p,onPaymentProcessing:C,emitResponse:w,error:O,exportedValues:k,onSubmit:S,checkoutStatus:m,activePaymentMethod:y}).setPaymentMethod,D=(0,c.usePaymentRequest)({getData:t,publishableKey:l,merchantInfo:b,billing:a,shippingData:p}),x=(0,c.usePaymentsClient)({merchantInfo:b,buildPaymentRequest:D,billing:a,shippingData:p,eventRegistration:f,canMakePayment:d,setErrorMessage:n,onSubmit:S,setPaymentMethod:j,exportedValues:k,onClick:g,onClose:v,getData:t}),R=x.button,A=x.removeButton;return(0,u.useAfterProcessingPayment)({getData:t,eventRegistration:f,responseTypes:w.responseTypes,activePaymentMethod:y}),(0,u.useExpressBreakpointWidth)({payment_method:t("name"),width:M}),(0,s.useEffect)((function(){R&&(A(_.current),_.current.append(R))}),[R]),r.createElement("div",{className:"wc-stripe-gpay-button-container",ref:_})}},3097:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.BASE_PAYMENT_REQUEST=t.BASE_PAYMENT_METHOD=void 0,t.BASE_PAYMENT_METHOD={type:"CARD",parameters:{allowedAuthMethods:["PAN_ONLY"],allowedCardNetworks:["AMEX","DISCOVER","INTERAC","JCB","MASTERCARD","VISA"],assuranceDetailsRequired:!0}},t.BASE_PAYMENT_REQUEST={apiVersion:2,apiVersionMinor:0}},5516:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(1674);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(1735);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(9808);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},9808:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useErrorMessage=void 0;var a=r(n(3038)),o=n(9307);t.useErrorMessage=function(){var e=(0,o.useState)(!1),t=(0,a.default)(e,2);return{errorMessage:t[0],setErrorMessage:t[1]}}},1735:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentRequest=void 0;var a=r(n(319)),o=r(n(9713)),i=n(9307),s=n(3097),c=n(1134),u=n(8664);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentRequest=function(e){var t=e.getData,n=e.publishableKey,r=e.merchantInfo,o=e.billing,l=e.shippingData,d=t(),m=d.processingCountry,f=d.totalPriceLabel,y=(0,i.useRef)({shippingData:l,billing:o});(0,i.useEffect)((function(){y.current={shippingData:l,billing:o}}));var g=(0,i.useCallback)((function(){var e=y.current,t=e.billing,o=e.shippingData,i=t.billingData,l=o.shippingRates,d=p(p({},{emailRequired:(0,c.isEmpty)(i.email),merchantInfo:r,allowedPaymentMethods:[p(p({},{type:"CARD",tokenizationSpecification:{type:"PAYMENT_GATEWAY",parameters:{gateway:"stripe","stripe:version":"2018-10-31","stripe:publishableKey":n}}}),s.BASE_PAYMENT_METHOD)],shippingAddressRequired:o.needsShipping,transactionInfo:(0,u.getTransactionInfo)({billing:t,processingCountry:m,totalPriceLabel:f}),callbackIntents:["PAYMENT_AUTHORIZATION"]}),s.BASE_PAYMENT_REQUEST);if(d.allowedPaymentMethods[0].parameters.billingAddressRequired=!0,d.allowedPaymentMethods[0].parameters.billingAddressParameters={format:"FULL",phoneNumberRequired:(0,c.isFieldRequired)(o.needsShipping?"shipping-phone":"phone",i.country)&&(0,c.isEmpty)(i.phone)},d.shippingAddressRequired){d.callbackIntents=[].concat((0,a.default)(d.callbackIntents),["SHIPPING_ADDRESS","SHIPPING_OPTION"]),d.shippingOptionRequired=!0;var g=(0,u.getShippingOptionParameters)(l);g.shippingOptions.length>0&&(d=p(p({},d),{},{shippingOptionParameters:g}))}return d}),[]);return g}},1674:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentsClient=void 0;var a=r(n(319)),o=r(n(1284)),i=r(n(8926)),s=r(n(9713)),c=r(n(3038)),u=n(9307),l=r(n(6989)),p=n(1134),d=n(6664),m=n(8664),f=n(3636);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,s.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentsClient=function(e){var t=e.merchantInfo,n=e.buildPaymentRequest,r=e.billing,s=e.shippingData,y=e.eventRegistration,v=e.canMakePayment,h=e.setErrorMessage,b=e.setPaymentMethod,P=e.exportedValues,E=e.onClick,O=e.onClose,_=e.getData,S=_().environment,w=(0,u.useState)(),C=(0,c.default)(w,2),k=C[0],M=C[1],j=(0,u.useState)(null),D=(0,c.default)(j,2),x=D[0],R=D[1],A=(0,u.useRef)(r),I=(0,u.useRef)(s),L=s.needsShipping,T=(0,d.useStripe)();(0,f.usePaymentEvents)({billing:r,shippingData:s,eventRegistration:y}).addPaymentEvent,(0,u.useEffect)((function(){A.current=r,I.current=s}));var N=(0,u.useCallback)((function(e){var t,n,r,a,o;null!=e&&null!==(t=e.paymentMethodData)&&void 0!==t&&null!==(n=t.info)&&void 0!==n&&n.billingAddress&&(r=e.paymentMethodData.info.billingAddress,(0,p.isAddressValid)(A.current.billingData,["phone","email"])&&(0,p.isEmpty)(null===(a=A.current.billingData)||void 0===a?void 0:a.phone)&&(r={phoneNumber:r.phoneNumber}),P.billingData=A.current.billingData=(0,m.toCartAddress)(r,{email:e.email})),null!=e&&e.shippingAddress&&(P.shippingAddress=(0,m.toCartAddress)(g(g({},e.shippingAddress),{},{phoneNumber:null===(o=r)||void 0===o?void 0:o.phoneNumber})))}),[]),B=(0,u.useCallback)((function(e){for(;e.firstChild;)e.removeChild(e.firstChild)}),[x]),F=(0,u.useCallback)((0,i.default)(o.default.mark((function e(){var t,r,a;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return E(),e.prev=1,e.next=4,k.loadPaymentData(n());case 4:return t=e.sent,N(t),r=JSON.parse(t.paymentMethodData.tokenizationData.token),e.next=9,T.createPaymentMethod({type:"card",card:{token:r.id},billing_details:(0,p.getBillingDetailsFromAddress)(A.current.billingData)});case 9:if(!(a=e.sent).error){e.next=12;break}throw new p.StripeError(a.error);case 12:b(a.paymentMethod.id),e.next=18;break;case 15:e.prev=15,e.t0=e.catch(1),"CANCELED"===(null===e.t0||void 0===e.t0?void 0:e.t0.statusCode)?O():(console.log((0,p.getErrorMessage)(e.t0)),h((0,p.getErrorMessage)(e.t0)));case 18:case"end":return e.stop()}}),e,null,[[1,15]])}))),[T,k,E,n]),q=(0,u.useCallback)((0,i.default)(o.default.mark((function e(){return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,!k||!T){e.next=5;break}return e.next=4,v;case 4:R(k.createButton(g({onClick:F},_("buttonStyle"))));case 5:e.next=10;break;case 7:e.prev=7,e.t0=e.catch(0),console.log(e.t0);case 10:case"end":return e.stop()}}),e,null,[[0,7]])}))),[T,k,F]),X=(0,u.useMemo)((function(){var e={environment:S,merchantInfo:t,paymentDataCallbacks:{onPaymentAuthorized:function(){return Promise.resolve({transactionState:"SUCCESS"})}}};return L&&(e.paymentDataCallbacks.onPaymentDataChanged=function(e){var t=I.current,n=e.shippingAddress,r=e.shippingOptionData,o=(0,p.getSelectedShippingOption)(r.id),i=["default","shipping_option_unselected"].includes(r.id)?null:r.id;return new Promise((function(e,r){(0,l.default)({method:"POST",url:(0,p.getRoute)("payment/data"),data:{address:(0,m.toCartAddress)(n),shipping_method:i,page_id:null}}).then((function(t){t.code?e(t.data.data):e(t.data.paymentRequestUpdate)})).catch((function(t){e(t.data)})).finally((function(){i&&"shipping_option_unselected"!==i&&t.setSelectedRates.apply(t,(0,a.default)(o))}))}))}),e}),[L]);return(0,u.useEffect)((function(){M(new google.payments.api.PaymentsClient(X))}),[X]),(0,u.useEffect)((function(){q()}),[q]),{button:x,removeButton:B}}},5341:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),n(9509);var r=n(9031);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}))},9031:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(7154)),i=a(n(6479)),s=a(n(9713)),c=n(4613),u=n(1134),l=n(5516),p=a(n(5212)),d=n(3097),m=a(n(1417)),f=n(6664);function y(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?y(Object(n),!0).forEach((function(t){(0,s.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var v,h,b=(0,u.getSettings)("stripe_googlepay_data"),P=(v=new m.default.payments.api.PaymentsClient({environment:b("environment"),merchantInfo:{merchantId:b("merchantId"),merchantName:b("merchantName")}}),h=g(g({},d.BASE_PAYMENT_REQUEST),{},{allowedPaymentMethods:[d.BASE_PAYMENT_METHOD]}),v.isReadyToPay(h).then((function(){return!0})).catch((function(e){return console.log(e),!1}))),E=function(e){var t=e.getData,n=e.components,a=(0,i.default)(e,["getData","components"]),s=n.ValidationInputError,c=(0,l.useErrorMessage)(),d=c.errorMessage,m=c.setErrorMessage;return r.createElement("div",{className:"wc-stripe-gpay-container"},r.createElement(f.Elements,{stripe:u.initStripe},r.createElement(p.default,(0,o.default)({getData:t,canMakePayment:P,setErrorMessage:m},a)),d&&r.createElement(s,{errorMessage:d})))},O=function(e){var t,n=e.getData,a=((0,i.default)(e,["getData"]),n("buttonStyle").buttonType),o=(null===(t=n("editorIcons"))||void 0===t?void 0:t[a])||"long";return r.createElement("div",{className:"gpay-block-editor ".concat(a)},r.createElement("img",{src:o}))};(0,c.registerExpressPaymentMethod)({name:b("name"),canMakePayment:function(){return b("isAdmin")?!(0,u.isCartPage)()||b("cartCheckoutEnabled"):!((0,u.isCartPage)()&&!b("cartCheckoutEnabled"))&&u.initStripe.then((function(e){return e.error?e:P}))},content:r.createElement(E,{getData:b}),edit:r.createElement(O,{getData:b}),supports:{showSavedCards:b("showSavedCards"),showSaveOption:b("showSaveOption"),features:b("features")}})},8664:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.toCartAddress=t.getTransactionInfo=t.getShippingOptions=t.getShippingOptionParameters=t.getPaymentRequestUpdate=void 0;var a=r(n(319)),o=n(1134),i=((0,n(4617).getSetting)("stripeGeneralData"),function(e){var t=e.billing,n=e.processingCountry,r=e.totalPriceLabel,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ESTIMATED",i=t.cartTotal,c=t.cartTotalItems,u=t.currency,l={countryCode:n,currencyCode:u.code,totalPriceStatus:a,totalPrice:(0,o.removeNumberPrecision)(i.value,u.minorUnit).toString(),displayItems:s(c,u.minorUnit),totalPriceLabel:r};return l});t.getTransactionInfo=i,t.getPaymentRequestUpdate=function(e){var t=e.billing,n=e.shippingData,r=e.processingCountry,a=e.totalPriceLabel,o=n.needsShipping,s=n.shippingRates,u={newTransactionInfo:i({billing:t,processingCountry:r,totalPriceLabel:a},"FINAL")};return o&&(u.newShippingOptionParameters=c(s)),u};var s=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,n=[],r=["total_tax","total_shipping"];return e.forEach((function(e){(0<e.value||e.key&&r.includes(e.key))&&n.push({label:e.label,type:"LINE_ITEM",price:(0,o.removeNumberPrecision)(e.value,t).toString()})})),n},c=function(e){var t=u(e),n=t.map((function(e){return e.id})).slice(0,1).shift();return e.forEach((function(e,t){e.shipping_rates.forEach((function(e){e.selected&&(n=(0,o.getShippingOptionId)(t,e.rate_id))}))})),{shippingOptions:t,defaultSelectedOptionId:n}};t.getShippingOptionParameters=c;var u=function(e){var t=[];return e.forEach((function(e,n){var r=e.shipping_rates.map((function(e){var t=document.createElement("textarea");t.innerHTML=e.name;var r=(0,o.formatPrice)(e.price,e.currency_code);return{id:(0,o.getShippingOptionId)(n,e.rate_id),label:t.value,description:"".concat(r)}}));t=[].concat((0,a.default)(t),(0,a.default)(r))})),t};t.getShippingOptions=u;var l=(0,o.toCartAddress)({name:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},countryCode:"country",address1:"address_1",address2:"address_2",locality:"city",administrativeArea:"state",postalCode:"postcode",email:"email",phoneNumber:"phone"});t.toCartAddress=l},3636:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(4332);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(1261);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(6107);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}));var i=n(2715);Object.keys(i).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===i[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return i[e]}}))}));var s=n(2343);Object.keys(s).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===s[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return s[e]}}))}));var c=n(1500);Object.keys(c).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===c[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return c[e]}}))}));var u=n(6095);Object.keys(u).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===u[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return u[e]}}))}));var l=n(5554);Object.keys(l).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===l[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return l[e]}}))}));var p=n(3893);Object.keys(p).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===p[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return p[e]}}))}));var d=n(6722);Object.keys(d).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===d[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return d[e]}}))}))},1261:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useAfterProcessingPayment=void 0;var a=r(n(1284)),o=r(n(8926)),i=n(9307),s=n(6664),c=n(1134),u=n(3893);t.useAfterProcessingPayment=function(e){var t=e.getData,n=e.eventRegistration,r=e.responseTypes,l=e.activePaymentMethod,p=e.shouldSavePayment,d=void 0!==p&&p,m=e.messageContext,f=void 0===m?null:m,y=(0,s.useStripe)(),g=n.onCheckoutAfterProcessingWithSuccess,v=n.onCheckoutAfterProcessingWithError;(0,u.useProcessCheckoutError)({responseTypes:r,subscriber:v,messageContext:f}),(0,i.useEffect)((function(){var e=g(function(){var e=(0,o.default)(a.default.mark((function e(n){var o;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o=n.redirectUrl,t("name")!==l){e.next=5;break}return e.next=4,(0,c.handleCardAction)({redirectUrl:o,responseTypes:r,name:l,savePaymentMethod:d});case 4:return e.abrupt("return",e.sent);case 5:return e.abrupt("return",null);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[y,r,g,l,d])}},5554:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useExpressBreakpointWidth=t.useBreakpointWidth=void 0;var a=r(n(3038)),o=n(9307),i=n(1134),s=function(e){var t=e.name,n=e.width,r=e.node,s=e.className,c=(0,o.useState)(window.innerWidth),u=(0,a.default)(c,2),l=u[0],p=u[1],d=(0,o.useCallback)((function(e){var t=(0,i.getFromCache)(e);return t?parseInt(t):0}),[]),m=(0,o.useCallback)((function(e,t){return(0,i.storeInCache)(e,t)}),[]);(0,o.useEffect)((function(){var e="function"==typeof r?r():r;if(e){var a=d(t);(!a||n>a)&&m(t,n),e.clientWidth<n?e.classList.add(s):e.clientWidth>a&&e.classList.remove(s)}}),[l,r]),(0,o.useEffect)((function(){var e=function(){return p(window.innerWidth)};return window.addEventListener("resize",e),function(){return window.removeEventListener("resize",e)}}))};t.useBreakpointWidth=s,t.useExpressBreakpointWidth=function(e){var t=e.payment_method,n=e.width,r=(0,o.useCallback)((function(){var e=document.getElementById("express-payment-method-".concat(t));return e?e.parentNode:null}),[]);s({name:"expressMaxWidth",width:n,node:r,className:"wc-stripe-express__sm"})}},6722:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useDeferredPaymentIntent=void 0;var a=r(n(1284)),o=r(n(8926)),i=r(n(9713)),s=n(9307),c=n(6664),u=n(1134);function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function p(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?l(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):l(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useDeferredPaymentIntent=function(e){var t=e.billingData,n=e.eventRegistration,r=e.responseTypes,l=e.name,d=e.shouldSavePayment,m=e.noticeContexts,f=n.onPaymentProcessing,y=n.onCheckoutAfterProcessingWithSuccess,g=(0,s.useRef)({billingData:t}),v=(0,s.useRef)({}),h=(0,c.useStripe)(),b=(0,c.useElements)(),P=(0,s.useCallback)((function(e,t){var n;return{meta:{paymentMethodData:p((n={},(0,i.default)(n,"".concat(l,"_token_key"),e),(0,i.default)(n,"".concat(l,"_save_source_key"),t),n),v.current)}}}),[]),E=(0,s.useCallback)((function(e){v.current=p(p({},v.current),e)}),[]),O=(0,s.useCallback)((0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=g.current.billingData,e.next=3,h.createPaymentMethod({elements:b,params:{billing_details:(0,u.getBillingDetailsFromAddress)(t)}});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)}))),[h,b]),_=(0,s.useCallback)((0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=g.current.billingData,e.next=3,h.confirmPayment({elements:b,confirmParams:{payment_method_data:{billing_details:(0,u.getBillingDetailsFromAddress)(t)}},redirect:"if_required"});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)}))),[h,b]);return(0,s.useEffect)((function(){g.current.billingData=t})),(0,s.useEffect)((function(){var e=f((0,o.default)(a.default.mark((function e(){var t,n,o,i;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,o=null,"requires_action"!==(null===(t=i=null)||void 0===t||null===(n=t.paymentIntent)||void 0===n?void 0:n.status)){e.next=9;break}return o=i.paymentIntent.payment_method,e.next=7,_();case 7:e.next=16;break;case 9:return e.next=11,O();case 11:if(!(i=e.sent).error){e.next=14;break}throw new u.StripeError(i.error);case 14:o=i.paymentMethod.id,g.current.paymentMethod=o;case 16:return e.abrupt("return",(0,u.ensureSuccessResponse)(r,P(o,d)));case 19:return e.prev=19,e.t0=e.catch(0),e.abrupt("return",(0,u.ensureErrorResponse)(r,e.t0,{messageContext:m.PAYMENTS}));case 22:case"end":return e.stop()}}),e,null,[[0,19]])}))));return function(){return e()}}),[f,O,_,d]),(0,s.useEffect)((function(){var e=y(function(){var e=(0,o.default)(a.default.mark((function e(t){var n;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.redirectUrl,e.next=3,(0,u.handleCardAction)({redirectUrl:n,responseTypes:r,name:l,savePaymentMethod:d,data:(0,i.default)({},"".concat(l,"_token_key"),g.current.paymentMethod)});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[y,_,d,l]),{createPaymentMethod:O,addPaymentMethodData:E}}},2343:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useExportedValues=void 0;var r=n(9307);t.useExportedValues=function(){return(0,r.useRef)({}).current}},6095:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentEvents=void 0;var a=r(n(9713)),o=r(n(3038)),i=n(9307),s=n(1134);function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function u(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?c(Object(n),!0).forEach((function(t){(0,a.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.usePaymentEvents=function(e){var t=e.billing,n=e.shippingData,r=e.eventRegistration,c=r.onShippingRateSuccess,l=r.onShippingRateFail,p=r.onShippingRateSelectSuccess,d=(0,i.useRef)(t),m=(0,i.useRef)(n),f=(0,i.useState)(null),y=(0,o.default)(f,2),g=y[0],v=y[1],h=(0,i.useState)({onShippingChanged:!1}),b=(0,o.default)(h,2),P=b[0],E=b[1],O=(0,i.useCallback)((function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];n?v((0,a.default)({},e,t)):E(u(u({},P),{},(0,a.default)({},e,t)))}),[P,E]),_=(0,i.useCallback)((function(e){P[e]&&(delete P[e],E(P))}),[P]),S=(0,i.useCallback)((function(){var e=m.current,t=d.current;if(P.onShippingChanged&&!e.isSelectingRate&&!e.shippingRatesLoading){var n=P.onShippingChanged,r=!0;(0,s.hasShippingRates)(e.shippingRates)||(r=!1),n(r,{billing:t,shipping:e}),_("onShippingChanged")}}),[P,_]);return(0,i.useEffect)((function(){d.current=t,m.current=n})),(0,i.useEffect)((function(){g&&g.onShippingChanged&&(g.onShippingChanged(!0,{billing:d.current,shipping:m.current}),v(null))}),[g]),(0,i.useEffect)((function(){var e=c(S),t=p(S),n=l((function(e){e.hasInvalidAddress,e.hasError,P.onShippingChanged&&((0,P.onShippingChanged)(!1),_("onShippingChanged"))}));return function(){e(),n(),t()}}),[P,c,l,p]),{addPaymentEvent:O,removePaymentEvent:_}}},1500:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.usePaymentRequest=void 0;var a=r(n(319)),o=r(n(9713)),i=r(n(3038)),s=n(9307),c=n(6095),u=n(1134),l=r(n(9127));function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var m=(0,u.toCartAddress)();t.usePaymentRequest=function(e){var t=e.getData,n=e.onClose,r=e.stripe,o=e.billing,p=e.shippingData,f=e.eventRegistration,y=e.setPaymentMethod,g=e.exportedValues,v=e.canPay,h=(0,c.usePaymentEvents)({billing:o,shippingData:p,eventRegistration:f}).addPaymentEvent,b=(p.shippingAddress,p.needsShipping),P=p.shippingRates,E=o.billingData,O=o.cartTotalItems,_=o.currency,S=o.cartTotal,w=(0,s.useState)(null),C=(0,i.default)(w,2),k=C[0],M=C[1],j=(0,s.useRef)({}),D=(0,s.useRef)(p),x=(0,s.useRef)(o);(0,s.useEffect)((function(){D.current=p,x.current=o}),[p]),(0,s.useEffect)((function(){if(r){var e={country:t("countryCode"),currency:null==_?void 0:_.code.toLowerCase(),total:{amount:S.value,label:S.label,pending:!0},requestPayerName:!0,requestPayerEmail:(0,u.isFieldRequired)("email",E.country),requestPayerPhone:(0,u.isFieldRequired)(b?"shipping-phone":"phone",E.country),requestShipping:b,displayItems:(0,u.getDisplayItems)(O,_)};e.requestShipping&&(e.shippingOptions=(0,u.getShippingOptions)(P)),j.current=e;var n=r.paymentRequest(j.current);n.canMakePayment().then((function(e){v(e)?M(n):M(null)}))}}),[r,S.value,E.country,P,O,_.code]),(0,s.useEffect)((function(){k&&(j.current.requestShipping&&(k.on("shippingaddresschange",A),k.on("shippingoptionchange",I)),k.on("cancel",n),k.on("paymentmethod",L))}),[k,A,n,L]);var R=(0,s.useCallback)((function(e){return function(t,n){var r=n.billing,a=n.shipping,o=r.cartTotal,i=r.cartTotalItems,s=r.currency,c=a.shippingRates;t?e.updateWith({status:"success",total:{amount:o.value,label:o.label,pending:!1},displayItems:(0,u.getDisplayItems)(i,s),shippingOptions:(0,u.getShippingOptions)(c)}):e.updateWith({status:"invalid_shipping_address"})}}),[]),A=(0,s.useCallback)((function(e){var t=e.shippingAddress,n=D.current,r=m(t);n.setShippingAddress(d(d({},n.shippingAddress),r));var a=(0,l.default)((0,u.getIntermediateAddress)(n.shippingAddress),r);h("onShippingChanged",R(e),a)}),[h]),I=(0,s.useCallback)((function(e){var t=e.shippingOption,n=D.current;n.setSelectedRates.apply(n,(0,a.default)((0,u.getSelectedShippingOption)(t.id))),h("onShippingChanged",R(e))}),[h]),L=(0,s.useCallback)((function(e){var t=e.paymentMethod,n=e.payerName,r=void 0===n?null:n,a=e.payerEmail,o=void 0===a?null:a,i=e.payerPhone,s=void 0===i?null:i,c={payerName:r,payerEmail:o,payerPhone:s};null!=t&&t.billing_details.address&&(c=m(t.billing_details.address,c)),g.billingData=c,e.shippingAddress&&(g.shippingAddress=m(e.shippingAddress,{payerPhone:s})),y(t.id),e.complete("success")}),[]);return{paymentRequest:k}}},3893:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessCheckoutError=void 0;var r=n(9307);t.useProcessCheckoutError=function(e){var t=e.responseTypes,n=e.subscriber,a=e.messageContext,o=void 0===a?null:a;(0,r.useEffect)((function(){var e=n((function(e){var n;return null!=e&&null!==(n=e.processingResponse.paymentDetails)&&void 0!==n&&n.stripeErrorMessage?(console.log(e.processingResponse.paymentDetails.stripeErrorMessage),{type:t.ERROR,message:e.processingResponse.paymentDetails.stripeErrorMessage,messageContext:o}):null}));return function(){return e()}}),[t,n])}},4332:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useProcessPaymentIntent=void 0;var a=r(n(1284)),o=r(n(8926)),i=r(n(9713)),s=r(n(3038)),c=n(9307),u=n(6664),l=n(1134);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useProcessPaymentIntent=function(e){var t=e.getData,n=e.billing,r=e.shippingData,p=e.onPaymentProcessing,m=e.emitResponse,f=e.error,y=e.onSubmit,g=e.activePaymentMethod,v=e.paymentType,h=void 0===v?"card":v,b=e.setupIntent,P=void 0===b?null:b,E=e.removeSetupIntent,O=void 0===E?null:E,_=e.shouldSavePayment,S=void 0!==_&&_,w=e.exportedValues,C=void 0===w?{}:w,k=e.getPaymentMethodArgs,M=void 0===k?function(){return{}}:k,j=n.billingData,D=r.shippingAddress,x=m.responseTypes,R=(0,c.useState)(null),A=(0,s.default)(R,2),I=A[0],L=A[1],T=(0,u.useStripe)(),N=(0,c.useRef)(M),B=(0,c.useRef)({});(0,c.useEffect)((function(){N.current=M}),[M]);var F=(0,c.useCallback)((function(e){B.current=d(d({},B.current),e)}),[]),q=(0,c.useCallback)((function(){return d(d({},{type:h,billing_details:(0,l.getBillingDetailsFromAddress)(null!=C&&C.billingData?C.billingData:j)}),N.current())}),[j,h,M]),X=(0,c.useCallback)((function(e,n){var r,a={meta:{paymentMethodData:d((r={},(0,i.default)(r,"".concat(t("name"),"_token_key"),e),(0,i.default)(r,"".concat(t("name"),"_save_source_key"),n),r),B.current)}};return null!=C&&C.billingData&&(a.meta.billingData=C.billingData,a.meta.billingAddress=C.billingData),null!=C&&C.shippingAddress&&(a.meta.shippingData={address:C.shippingAddress}),a}),[j,D]);return(0,c.useEffect)((function(){I&&"string"==typeof I&&y()}),[I,y]),(0,c.useEffect)((function(){var e=p((0,o.default)(a.default.mark((function e(){var n,r;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(g===t("name")){e.next=2;break}return e.abrupt("return",null);case 2:if(n=null,r=null,e.prev=3,!f){e.next=6;break}throw new l.StripeError(f);case 6:if(!P){e.next=16;break}return e.next=9,T.confirmCardSetup(P.client_secret,{payment_method:q()});case 9:if(!(n=e.sent).error){e.next=12;break}throw new l.StripeError(n.error);case 12:r=n.setupIntent.payment_method,O(),e.next=26;break;case 16:if(!I){e.next=20;break}r=I,e.next=26;break;case 20:return e.next=22,T.createPaymentMethod(q());case 22:if(!(n=e.sent).error){e.next=25;break}throw new l.StripeError(n.error);case 25:r=n.paymentMethod.id;case 26:return e.abrupt("return",(0,l.ensureSuccessResponse)(x,X(r,S)));case 29:return e.prev=29,e.t0=e.catch(3),console.log(e.t0),L(null),e.abrupt("return",(0,l.ensureErrorResponse)(x,e.t0.error));case 34:case"end":return e.stop()}}),e,null,[[3,29]])}))));return function(){return e()}}),[I,j,p,T,P,g,S]),{setPaymentMethod:L,getCreatePaymentMethodArgs:q,addPaymentMethodData:F}}},6107:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useSetupIntent=void 0;var a=r(n(1284)),o=r(n(8926)),i=r(n(3038)),s=n(9307),c=r(n(6989)),u=n(1134);t.useSetupIntent=function(e){var t=e.cartTotal,n=e.setError,r=(0,s.useState)((0,u.getFromCache)("setupIntent")),l=(0,i.default)(r,2),p=l[0],d=l[1];(0,s.useEffect)((function(){var e=function(){var e=(0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!p){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,(0,c.default)({url:(0,u.getRoute)("create/setup_intent"),method:"POST"});case 4:(t=e.sent).code?n(t.message):((0,u.storeInCache)("setupIntent",t.intent),d(t.intent));case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();(0,u.cartContainsPreOrder)()||(0,u.cartContainsSubscription)()&&0==t.value?p||e():d(null)}),[t.value]);var m=(0,s.useCallback)((function(){(0,u.deleteFromCache)("setupIntent")}),[t.value]);return{setupIntent:p,removeSetupIntent:m}}},2715:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useStripeError=void 0;var a=r(n(3038)),o=n(9307);t.useStripeError=function(){var e=(0,o.useState)(!1),t=(0,a.default)(e,2);return[t[0],t[1]]}},318:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(9874);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}))},9874:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useLink=void 0;var a=r(n(1284)),o=r(n(9713)),i=r(n(8926)),s=r(n(3038)),c=r(n(6479)),u=n(9307),l=n(6664),p=n(1134);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function m(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var f=(0,p.toCartAddress)();t.useLink=function(e){var t=e.email,n=e.eventRegistration,r=e.onClick,o=e.onSubmit,d=e.activePaymentMethod,y=e.responseTypes,g=((0,c.default)(e,["email","eventRegistration","onClick","onSubmit","activePaymentMethod","responseTypes"]),(0,u.useState)()),v=(0,s.default)(g,2),h=v[0],b=v[1],P=(0,l.useStripe)(),E=(0,l.useElements)(),O=(0,u.useRef)(),_=(0,u.useRef)(),S=n.onPaymentProcessing;return(0,u.useEffect)((function(){O.current={onClick:r,onSubmit:o}})),(0,u.useEffect)((function(){P&&E&&!h&&b(null==P?void 0:P.linkAutofillModal(E))}),[P,E,h]),(0,u.useEffect)((function(){h&&h.launch({email:t})}),[h,t]),(0,u.useEffect)((function(){h&&(h.on("autofill",(function(e){_.current=e,O.current.onSubmit()})),h.on("authenticated",(function(e){O.current.onClick()})))}),[h]),(0,u.useEffect)((function(){var e=S((0,i.default)(a.default.mark((function e(){var t,n,r,o,i,s,c;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("stripe_link_checkout"===d){e.next=2;break}return e.abrupt("return",null);case 2:return t={meta:{}},n=_.current.value,r=n.shippingAddress,o=void 0===r?null:r,i=n.billingAddress,(s=void 0===i?null:i)&&(t.meta.billingData=f(m(m({},s.address),{},{recipient:s.name})),t.meta.billingAddress=t.meta.billingData),o&&(t.meta.shippingData={address:f(m(m({},o.address),{},{recipient:o.name}))}),e.prev=6,e.next=9,P.createPaymentMethod({elements:E,params:{billing_details:(0,p.getBillingDetailsFromAddress)(t.meta.billingData)}});case 9:if(!(c=e.sent).error){e.next=12;break}throw c.error;case 12:return t.meta.paymentMethodData={stripe_cc_token_key:c.paymentMethod.id,stripe_cc_save_source_key:!1},e.abrupt("return",(0,p.ensureSuccessResponse)(y,t));case 16:return e.prev=16,e.t0=e.catch(6),console.log(e.t0),e.abrupt("return",(0,p.ensureErrorResponse)(y,e.t0));case 20:case"end":return e.stop()}}),e,null,[[6,16]])}))));return function(){return e()}}),[S,P,E,d]),h}},3474:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.LinkComponent=void 0;var o=a(n(6479)),i=(n(9307),n(6664)),s=n(4613),c=n(318),u=n(1134),l=(0,u.getSettings)("stripe_link_checkout_data"),p=function(e){var t,n=e.billing,a=n.cartTotal,o=n.currency,s={mode:"payment",amount:a.value,currency:null==o||null===(t=o.code)||void 0===t?void 0:t.toLowerCase(),payment_method_types:["card","link"]};return 0===a.value&&(s={mode:"setup"}),r.createElement(i.Elements,{stripe:u.initStripe,options:s},r.createElement(d,e))};t.LinkComponent=p;var d=function(e){var t=e.billing,n=(e.shipping,e.eventRegistration),a=e.onClick,s=e.onSubmit,u=e.activePaymentMethod,l=e.emitResponse,p=((0,o.default)(e,["billing","shipping","eventRegistration","onClick","onSubmit","activePaymentMethod","emitResponse"]),t.billingData),d=(t.currency,l.responseTypes),m=(l.noticeContexts,p.email);return(0,c.useLink)({email:m,eventRegistration:n,onClick:a,onSubmit:s,activePaymentMethod:u,responseTypes:d}),r.createElement("div",{style:{display:"none"}},r.createElement(i.PaymentElement,{options:{fields:{billingDetails:{address:"never"}},wallets:{applePay:"never",googlePay:"never"}}}))};(0,s.registerExpressPaymentMethod)({name:l("name"),canMakePayment:function(e){return!0},content:r.createElement(p,null),edit:r.createElement(p,null),supports:{showSavedCards:l("showSavedCards"),showSaveOption:l("showSaveOption"),features:l("features")}})},6480:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(6479)),i=a(n(9713)),s=a(n(3038)),c=n(9307),u=n(4613),l=n(1134),p=n(3539),d=n(3187),m=n(6664),f=n(5736),y=n(3554),g=n(8817);function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?v(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var b,P=(0,l.getSettings)("stripe_afterpay_data"),E={},O=function(e){var t=e.total,n=e.currency,r=!1,a=e.country,o=P("requiredParams"),i=P("accountCountry"),s=!!o.hasOwnProperty(n)&&o[n];if(s){var c=null==s?void 0:s[0];Array.isArray(c)||(c=[c]),r=c.indexOf(i)>-1&&("EUR"!==n||!a||i===a)&&t>(null==s?void 0:s[1])&&t<(null==s?void 0:s[2])}return r},_=function(e){var t=e.getData,n=(0,c.useState)(h({amount:t("cartTotal"),currency:t("currency"),isCartEligible:t("msgOptions").isEligible},E)),a=(0,s.default)(n,2),o=a[0],i=a[1];return b=i,r.createElement(m.Elements,{stripe:l.initStripe,options:t("elementOptions")},r.createElement("div",{className:"wc-stripe-blocks-afterpay__label"},r.createElement(m.AfterpayClearpayMessageElement,{options:h(h({},t("msgOptions")),{amount:o.amount,currency:o.currency,isCartEligible:o.isCartEligible})})))},S=function(e){var t=e.content,n=e.billing,a=e.shippingData,i=(0,o.default)(e,["content","billing","shippingData"]),s=t,u=n.cartTotal,l=n.currency,p=n.billingData.country,d=(a.needsShipping,parseInt(u.value)/Math.pow(10,l.minorUnit)),m=O({total:d,currency:l.code,country:p});return(0,c.useEffect)((function(){b({amount:u.value,currency:l.code,isCartEligible:m})}),[u.value,l.code]),r.createElement(r.Fragment,null,r.createElement("div",{className:"wc-stripe-blocks-payment-method-content"},m&&r.createElement("div",{className:"wc-stripe-blocks-afterpay-offsite__container"},r.createElement("div",{className:"wc-stripe-blocks-afterpay__offsite"},r.createElement("img",{src:P("offSiteSrc")}),r.createElement("p",null,(0,f.sprintf)((0,f.__)('After clicking "%s", you will be redirected to Afterpay to complete your purchase securely.',"woo-stripe-payment"),P("placeOrderButtonLabel"))))),r.createElement(s,h(h({},i),{},{billing:n,shippingData:a}))))},w=function(e){var t=e.cart,n=(e.extensions,e.context,t.cartTotals),a=(t.cartNeedsShipping,t.billingAddress.country),o=(n.total_price,n.currency_code),i=parseInt(n.total_price),s=parseInt(n.total_price)/Math.pow(10,n.currency_minor_unit);return O({total:s,currency:o,country:a})?r.createElement(y.TotalsWrapper,null,r.createElement(m.Elements,{stripe:l.initStripe,options:P("elementOptions")},r.createElement("div",{className:"wc-stripe-blocks-afterpay-totals__item wc-block-components-totals-item"},r.createElement(m.AfterpayClearpayMessageElement,{options:h(h({},P("msgOptions")),{amount:i,currency:o,isCartEligible:O({total:s,currency:o,country:a})})})))):null};P()&&((0,u.registerPaymentMethod)({name:P("name"),label:r.createElement(_,{getData:P}),ariaLabel:(0,f.__)("Afterpay","woo-stripe-payment"),placeOrderButtonLabel:P("placeOrderButtonLabel"),canMakePayment:(0,p.canMakePayment)(P,(function(e){var t=e.settings,n=e.cartTotals,r=e.billingData,a=n.currency_code,o=n.currency_minor_unit,i=n.total_price,s=r.country,c=parseInt(i)/Math.pow(10,o);b?b({amount:parseInt(n.total_price),currency:a,isCartEligible:O({total:c,currency:a,country:s})}):E={amount:parseInt(n.total_price),currency:a,isCartEligible:O({total:c,currency:a,country:s})};var u=O({total:c,currency:a,country:s});return!u&&!t("hideIneligible")||u})),content:r.createElement(S,{content:p.LocalPaymentIntentContent,getData:P,confirmationMethod:"confirmAfterpayClearpayPayment"}),edit:r.createElement(d.PaymentMethod,{content:p.LocalPaymentIntentContent,getData:P}),supports:{showSavedCards:!1,showSaveOption:!1,features:P("features")}}),(0,g.registerPlugin)("wc-stripe",{render:function(){return r.createElement(y.ExperimentalOrderMeta,null,r.createElement(w,null))},scope:"woocommerce-checkout"}))},39:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(2029),c=n(3187),u=(0,o.getSettings)("stripe_alipay_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Alipay",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmAlipayPayment",getData:u}),edit:r.createElement(c.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},8641:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_bancontact_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"Bancontact",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmBancontactPayment",getData:c}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},5176:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_becs_data"),l=function(e){return r.createElement(r.Fragment,null,r.createElement(s.PaymentMethod,e),r.createElement("div",{className:"wc-stripe-blocks-mandate becs-mandate",dangerouslySetInnerHTML:{__html:e.getData("mandate")}}))};u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"BECS",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(l,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmAuBecsDebitPayment",component:c.AuBankAccountElement}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},4990:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(7154)),i=a(n(9713)),s=a(n(3038)),c=a(n(6479)),u=n(9307),l=n(5736),p=n(4613),d=a(n(4184)),m=n(1134),f=n(3539),y=n(3187);function g(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?g(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var h=(0,m.getSettings)("stripe_boleto_data");h()&&(0,p.registerPaymentMethod)({name:h("name"),label:r.createElement(y.PaymentMethodLabel,{title:h("title"),paymentMethod:h("name"),icons:h("icon")}),ariaLabel:"Boleto",placeOrderButtonLabel:h("placeOrderButtonLabel"),canMakePayment:(0,f.canMakePayment)(h),content:r.createElement(y.PaymentMethod,{content:function(e){var t=e.eventRegistration,n=(0,c.default)(e,["eventRegistration"]),a=(0,u.useState)(""),i=(0,s.default)(a,2),p=i[0],y=i[1],g=(0,u.useState)(!1),h=(0,s.default)(g,2),b=h[0],P=h[1],E=t.onPaymentProcessing,O=(0,u.useCallback)((function(){return{boleto:{tax_id:p}}}),[p]);return(0,u.useEffect)((function(){var e=E((function(){return p?(0,m.ensureSuccessResponse)(n.emitResponse.responseTypes,{meta:{paymentMethodData:{wc_stripe_boleto_tax_id:p}}}):(0,m.ensureErrorResponse)(n.emitResponse.responseTypes,(0,l.__)("Please enter a valid CPF/CNPJ value","woo-stripe-payment"))}));return function(){return e()}}),[E,p]),r.createElement(r.Fragment,null,r.createElement("div",{className:(0,d.default)("wc-block-components-text-input",{"is-active":b||p})},r.createElement("input",{type:"text",id:"wc-stripe-boleto-tax_id",onChange:function(e){return y(e.target.value)},onFocus:function(){return P(!0)},onBlur:function(){return P(!1)}}),r.createElement("label",{htmlFor:"wc-stripe-boleto-tax_id"},(0,l.__)(" CPF / CNPJ"," woo-stripe-payment"))),(0,m.isTestMode)()&&r.createElement("div",{className:"wc-stripe-boleto__description"},r.createElement("p",null,(0,l.__)("Test mode values","woo-stripe-payment")),r.createElement("div",null,r.createElement("label",null,"CPF:")," ",r.createElement("span",null,"000.000.000-00")),r.createElement("div",null,r.createElement("label",null,"CNPJ:")," ",r.createElement("span",null,"00.000.000/0000-00"))),!(0,m.isTestMode)()&&r.createElement("div",{className:"wc-stripe-boleto__description"},r.createElement("p",null,(0,l.__)("Accepted formats","woo-stripe-payment")),r.createElement("div",null,r.createElement("label",null,"CPF:")," ",r.createElement("span",null,(0,l.__)("XXX.XXX.XXX-XX or XXXXXXXXXXX","woo-stripe-payment"))),r.createElement("div",null,r.createElement("label",null,"CNPJ:")," ",r.createElement("span",null,(0,l.__)("XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX","woo-stripe-payment")))),r.createElement(f.LocalPaymentIntentContent,(0,o.default)({callback:O},v(v({},n),{eventRegistration:t}))))},getData:h,confirmationMethod:"confirmBoletoPayment"}),edit:r.createElement(y.PaymentMethod,{content:f.LocalPaymentIntentContent,getData:h}),supports:{showSavedCards:!1,showSaveOption:!1,features:h("features")}})},4494:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_eps_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"EPS",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmEpsPayment",component:c.EpsBankElement,getData:u}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},4031:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_fpx_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"FPX",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmIdealPayment",component:c.FpxBankElement}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},3817:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_giropay_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"Giropay",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmGiropayPayment",getData:c}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},3140:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_grabpay_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"GrabPay",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c,confirmationMethod:"confirmGrabPayPayment"}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},8522:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});var r=n(3160);Object.keys(r).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===r[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return r[e]}}))}));var a=n(3994);Object.keys(a).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===a[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return a[e]}}))}));var o=n(878);Object.keys(o).forEach((function(e){"default"!==e&&"__esModule"!==e&&(e in t&&t[e]===o[e]||Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}}))}))},3160:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useAfterProcessLocalPayment=void 0;var a=r(n(1284)),o=r(n(9713)),i=r(n(6479)),s=r(n(8926)),c=n(9307),u=n(6664),l=n(1134);function p(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?p(Object(n),!0).forEach((function(t){(0,o.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):p(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.useAfterProcessLocalPayment=function(e){var t=e.getData,n=e.billingData,r=e.eventRegistration,o=e.responseTypes,p=e.activePaymentMethod,m=e.confirmationMethod,f=e.getPaymentMethodArgs,y=void 0===f?function(){return{}}:f,g=(0,u.useStripe)(),v=r.onCheckoutAfterProcessingWithSuccess,h=r.onCheckoutAfterProcessingWithError,b=(0,c.useRef)(n),P=(0,c.useRef)(y);(0,c.useEffect)((function(){b.current=n}),[n]),(0,c.useEffect)((function(){P.current=y}),[y]),(0,c.useEffect)((function(){var e=v(function(){var e=(0,s.default)(a.default.mark((function e(n){var r,s,c,u,f,y,v;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=n.redirectUrl,t("name")!==p){e.next=18;break}if(e.prev=2,!(s=r.match(/#response=(.+)/))){e.next=12;break}return c=JSON.parse(window.atob(decodeURIComponent(s[1]))),u=c.client_secret,f=c.return_url,y=(0,i.default)(c,["client_secret","return_url"]),e.next=8,g[m](u,{payment_method:d({billing_details:(0,l.getBillingDetailsFromAddress)(b.current)},P.current(b.current)),return_url:f});case 8:if(!(v=e.sent).error){e.next=11;break}throw new l.StripeError(v.error);case 11:window.location=decodeURI(y.order_received_url);case 12:e.next=18;break;case 14:return e.prev=14,e.t0=e.catch(2),console.log(e.t0),e.abrupt("return",(0,l.ensureErrorResponse)(o,e.t0.error));case 18:case"end":return e.stop()}}),e,null,[[2,14]])})));return function(t){return e.apply(this,arguments)}}());return function(){return e()}}),[g,v,h])}},878:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useCreateSource=void 0;var a=r(n(1284)),o=r(n(8926)),i=r(n(9713)),s=r(n(3038)),c=n(9307),u=n(1134),l=n(6664),p=n(5736);t.useCreateSource=function(e){var t=e.getData,n=e.billing,r=e.shippingAddress,d=e.onPaymentProcessing,m=e.responseTypes,f=e.getSourceArgs,y=void 0!==f&&f,g=e.element,v=void 0!==g&&g,h=(0,c.useState)(!1),b=(0,s.default)(h,2),P=b[0],E=b[1],O=(0,c.useState)(!1),_=(0,s.default)(O,2),S=_[0],w=_[1],C=(0,c.useRef)({billing:n,shippingAddress:r}),k=(0,l.useStripe)(),M=(0,l.useElements)();(0,c.useEffect)((function(){C.current={billing:n,shippingAddress:r}}));var j=(0,c.useCallback)((function(){var e=C.current.billing,n=e.cartTotal,r=e.currency,a=e.billingData,o=(0,u.getDefaultSourceArgs)({type:t("paymentType"),amount:n.value,billingData:a,currency:r.code,returnUrl:t("returnUrl")});return y&&(o=y(o,{billingData:a})),o}),[]),D=(0,c.useCallback)((function(e){return{meta:{paymentMethodData:(0,i.default)({},"".concat(t("name"),"_token_key"),e)}}}),[]);return(0,c.useEffect)((function(){var e=d((0,o.default)(a.default.mark((function e(){var t;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!P){e.next=2;break}return e.abrupt("return",(0,u.ensureSuccessResponse)(m,D(P.id)));case 2:if(e.prev=2,!v){e.next=11;break}if(S){e.next=6;break}throw(0,p.__)("Please enter your payment info before proceeding.","woo-stripe-payment");case 6:return e.next=8,k.createSource(M.getElement(v),j());case 8:t=e.sent,e.next=14;break;case 11:return e.next=13,k.createSource(j());case 13:t=e.sent;case 14:if(!t.error){e.next=16;break}throw new u.StripeError(t.error);case 16:return E(t.source),e.abrupt("return",(0,u.ensureSuccessResponse)(m,D(t.source.id)));case 20:return e.prev=20,e.t0=e.catch(2),console.log(e.t0),e.abrupt("return",(0,u.ensureErrorResponse)(m,e.t0.error||e.t0));case 24:case"end":return e.stop()}}),e,null,[[2,20]])}))));return function(){return e()}}),[P,d,k,m,v,S,w]),{setIsValid:w}}},3994:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.useValidateCheckout=void 0;var a=r(n(3038)),o=n(9307),i=n(1134),s=n(5736);t.useValidateCheckout=function(e){var t=e.subscriber,n=e.responseTypes,r=e.component,c=void 0===r?null:r,u=e.msg,l=void 0===u?(0,s.__)("Please enter your payment info before proceeding.","woo-stripe-payment"):u,p=(0,o.useState)(!1),d=(0,a.default)(p,2),m=d[0],f=d[1];return(0,o.useEffect)((function(){var e=t((function(){return!(c&&!m)||(0,i.ensureErrorResponse)(n,l)}));return function(){return e()}}),[t,m,f,n,c]),{isValid:m,setIsValid:f}}},9474:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_ideal_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Ideal",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmIdealPayment",component:c.IdealBankElement}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},9738:(e,t,n)=>{n(5142),n(9474),n(3868),n(8641),n(3817),n(4494),n(4784),n(1192),n(7894),n(3766),n(4031),n(5176),n(3140),n(39),n(6480),n(4990),n(5748)},5142:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(5736),u=(0,o.getSettings)("stripe_klarna_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"Klarna",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u,(function(e){var t=e.settings,n=e.billingData,r=e.cartTotals,a=n.country,o=r.currency_code,i=t("requiredParams");return[o]in i&&i[o].includes(a)})),content:r.createElement(s.PaymentMethod,{content:function(e){return r.createElement(r.Fragment,null,(0,o.isTestMode)()&&r.createElement("div",{className:"wc-stripe-klarna__testmode"},r.createElement("label",null,(0,c.__)("Test mode sms","woo-stripe-payment"),":")," ",r.createElement("span",null,"123456")),r.createElement(i.LocalPaymentIntentContent,e))},getData:u,confirmationMethod:"confirmKlarnaPayment"}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},3539:(e,t,n)=>{var r=n(9307),a=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.canMakePayment=t.LocalPaymentSourceContent=t.LocalPaymentIntentContent=void 0;var o=a(n(7154)),i=a(n(9713)),s=a(n(6479)),c=n(9307),u=n(6664),l=n(1134),p=n(8522),d=n(3636);function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach((function(t){(0,i.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}t.canMakePayment=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(n){var r=n.billingData,a=n.cartTotals,o=(0,s.default)(n,["billingData","cartTotals"]),i=a.currency_code,c=r.country,u=e("countries"),p=e("allowedCountries"),d=e("features"),m=!1;if(e("isAdmin"))m=!0;else{if((0,l.cartContainsSubscription)()&&!d.includes("subscriptions"))return!1;if((0,l.cartContainsPreOrder)()&&!d.includes("pre-orders"))return!1;e("currencies").includes(i)&&(m="all_except"===p?!e("exceptCountries").includes(c):"specific"===p?e("specificCountries").includes(c):!(u.length>0)||u.includes(c)),t&&m&&(m=t(f({settings:e,billingData:r,cartTotals:a},o)))}return m}},t.LocalPaymentIntentContent=function(e){var t=e.getData,n=(0,s.default)(e,["getData"]);return r.createElement(u.Elements,{stripe:l.initStripe,options:t("elementOptions")},r.createElement(g,f(f({},n),{},{getData:t})))},t.LocalPaymentSourceContent=function(e){return r.createElement(u.Elements,{stripe:l.initStripe},r.createElement(y,e))};var y=function(e){var t=e.getData,n=e.billing,a=e.shippingData,o=e.emitResponse,i=e.eventRegistration,s=e.getSourceArgs,c=void 0!==s&&s,u=e.element,l=void 0!==u&&u,d=a.shippingAddress,m=i.onPaymentProcessing,f=(i.onCheckoutAfterProcessingWithError,o.responseTypes),y=(o.noticeContexts,(0,p.useCreateSource)({getData:t,billing:n,shippingAddress:d,onPaymentProcessing:m,responseTypes:f,getSourceArgs:c,element:l}).setIsValid);return l?r.createElement(v,{name:t("name"),options:t("paymentElementOptions"),onChange:function(e){y(e.complete)},element:l}):null},g=function(e){var t=e.getData,n=e.billing,a=e.emitResponse,o=e.eventRegistration,s=e.activePaymentMethod,l=e.confirmationMethod,m=void 0===l?null:l,f=e.component,y=void 0===f?null:f,g=e.callback,h=void 0===g?null:g,b=(0,u.useElements)(),P=n.billingData,E=o.onPaymentProcessing,O=o.onCheckoutAfterProcessingWithError,_=a.responseTypes,S=a.noticeContexts,w=(0,c.useCallback)((function(e){return y?(0,i.default)({},t("paymentType"),b.getElement(y)):h?h(e):{}}),[b,h]),C=(0,p.useValidateCheckout)({subscriber:E,responseTypes:_,component:y}).setIsValid;return(0,p.useAfterProcessLocalPayment)({getData:t,billingData:P,eventRegistration:o,responseTypes:_,activePaymentMethod:s,confirmationMethod:m,getPaymentMethodArgs:w}),(0,d.useProcessCheckoutError)({responseTypes:_,subscriber:O,messageContext:S.PAYMENT}),y?r.createElement(v,{name:t("name"),options:t("paymentElementOptions"),onChange:function(e){return C(!e.empty)},element:y,callback:h}):null},v=function(e){var t=e.name,n=e.onChange,a=e.element,i=e.options,c=(0,s.default)(e,["name","onChange","element","options"]),u=a;return r.createElement("div",{className:"wc-stripe-local-payment-container ".concat(t," ").concat(u.displayName)},r.createElement(u,(0,o.default)({options:i,onChange:n},c)))}},4784:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_multibanco_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"MultiBanco",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:c}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentSourceContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},5748:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(n(6664),(0,o.getSettings)("stripe_oxxo_data"));c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"OXXO",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c,confirmationMethod:"confirmOxxoPayment"}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},3868:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=n(6664),u=(0,o.getSettings)("stripe_p24_data");u()&&(0,a.registerPaymentMethod)({name:u("name"),label:r.createElement(s.PaymentMethodLabel,{title:u("title"),paymentMethod:u("name"),icons:u("icon")}),ariaLabel:"P24",placeOrderButtonLabel:u("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(u),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u,confirmationMethod:"confirmP24Payment",component:c.P24BankElement}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:u}),supports:{showSavedCards:!1,showSaveOption:!1,features:u("features")}})},1192:(e,t,n)=>{var r,a=n(9307),o=n(4613),i=n(1134),s=n(3187),c=n(3539),u=n(6664),l=(0,i.getSettings)("stripe_sepa_data"),p=(r=s.PaymentMethod,function(e){return a.createElement(a.Fragment,null,a.createElement(r,e),a.createElement("div",{className:"wc-stripe-blocks-mandate sepa-mandate",dangerouslySetInnerHTML:{__html:e.getData("mandate")}}))});l()&&(0,o.registerPaymentMethod)({name:l("name"),label:a.createElement(s.PaymentMethodLabel,{title:l("title"),paymentMethod:l("name"),icons:l("icon")}),ariaLabel:"SEPA",placeOrderButtonLabel:l("placeOrderButtonLabel"),canMakePayment:(0,c.canMakePayment)(l),content:a.createElement(p,{content:c.LocalPaymentIntentContent,getData:l,confirmationMethod:"confirmSepaDebitPayment",component:u.IbanElement}),edit:a.createElement(s.PaymentMethod,{content:c.LocalPaymentIntentContent,getData:l}),supports:{showSavedCards:!1,showSaveOption:!1,features:l("features")}})},7894:(e,t,n)=>{var r=n(9307),a=n(4613),o=n(1134),i=n(3539),s=n(3187),c=(0,o.getSettings)("stripe_sofort_data");c()&&(0,a.registerPaymentMethod)({name:c("name"),label:r.createElement(s.PaymentMethodLabel,{title:c("title"),paymentMethod:c("name"),icons:c("icon")}),ariaLabel:"Sofort",placeOrderButtonLabel:c("placeOrderButtonLabel"),canMakePayment:(0,i.canMakePayment)(c),content:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,confirmationMethod:"confirmSofortPayment",getData:c,callback:function(e){return{sofort:{country:e.country}}}}),edit:r.createElement(s.PaymentMethod,{content:i.LocalPaymentIntentContent,getData:c}),supports:{showSavedCards:!1,showSaveOption:!1,features:c("features")}})},3766:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(1284)),i=a(n(8926)),s=a(n(9713)),c=a(n(3038)),u=n(9307),l=n(4613),p=n(1134),d=n(3187),m=n(3539),f=n(6664),y=n(8522),g=n(5736),v=n(3636),h=(0,p.getSettings)("stripe_wechat_data"),b=function(e){return r.createElement(f.Elements,{stripe:p.initStripe},r.createElement(P,e))},P=function(e){var t=e.getData,n=e.billing,a=(e.shippingData,e.emitResponse),o=e.eventRegistration,i=e.components,s=parseInt(t("qrSize")),c=a.responseTypes,l=o.onPaymentProcessing,d=o.onCheckoutAfterProcessingWithSuccess,m=i.ValidationInputError,f=(0,y.useValidateCheckout)({subscriber:o.onPaymentProcessing,responseTypes:a.responseTypes,msg:(0,g.__)("Please scan your QR code to continue with payment.","woo-stripe-payment")}),v=(f.isValid,f.setIsValid),h=O({getData:t,billing:n,responseTypes:c,subscriber:l}),b=h.source,P=h.error,_=h.deleteSourceFromStorage;return(0,u.useEffect)((function(){var e=d((function(){return _(),(0,p.ensureSuccessResponse)(c)}));return function(){return e()}}),[b,d,_]),(0,u.useEffect)((function(){b&&v(!0)}),[b]),b?r.createElement(E,{text:b.wechat.qr_code_url,width:s,height:s}):P?r.createElement("div",{className:"wechat-validation-error"},r.createElement(m,{errorMessage:(0,p.getErrorMessage)(P)})):(0,p.isAddressValid)(n.billingData)?null:(0,g.__)("Please fill out all the required fields in order to complete the WeChat payment.","woo-stripe-payment")},E=function(e){var t=e.text,n=e.width,a=void 0===n?128:n,o=e.height,i=void 0===o?128:o,s=e.colorDark,c=void 0===s?"#424770":s,l=e.colorLight,d=void 0===l?"#f8fbfd":l,m=e.correctLevel,f=void 0===m?QRCode.CorrectLevel.H:m,y=(0,u.useRef)();return(0,u.useEffect)((function(){new QRCode(y.current,{text:t,width:a,height:i,colorDark:c,colorLight:d,correctLevel:f})}),[y]),r.createElement(r.Fragment,null,r.createElement("div",{id:"wc-stripe-block-qrcode",ref:y}),(0,p.isTestMode)()&&r.createElement("p",null,(0,g.__)("Test mode: Click the Place Order button to proceed.","woo-stripe-payment")),!(0,p.isTestMode)()&&r.createElement("p",null,(0,g.__)("Scan the QR code using your WeChat app. Once scanned click the Place Order button.","woo-stripe-payment")))},O=function(e){var t=e.getData,n=e.billing,r=e.responseTypes,a=e.subscriber,l=(0,f.useStripe)(),d=(0,v.useStripeError)(),m=(0,c.default)(d,2),y=m[0],g=m[1],h=(0,u.useState)((0,p.getFromCache)("wechat:source")),b=(0,c.default)(h,2),P=b[0],E=b[1],O=(0,u.useRef)(null),_=n.cartTotal,S=n.billingData,w=n.currency;(0,u.useEffect)((function(){var e=a((function(){return(0,p.ensureSuccessResponse)(r,{meta:{paymentMethodData:(0,s.default)({},"".concat(t("name"),"_token_key"),P.id)}})}));return function(){return e()}}),[P,a]);var C=(0,u.useCallback)((0,i.default)(o.default.mark((function e(){var n;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,y||!(0,p.isAddressValid)(S)){e.next=9;break}return e.next=4,l.createSource((0,p.getDefaultSourceArgs)({type:t("paymentType"),amount:_.value,billingData:S,currency:w.code,returnUrl:t("returnUrl")}));case 4:if(!(n=e.sent).error){e.next=7;break}throw new p.StripeError(n.error);case 7:E(n.source),(0,p.storeInCache)("wechat:source",n.source);case 9:e.next=15;break;case 11:e.prev=11,e.t0=e.catch(0),console.log("error: ",e.t0),g(e.t0.error);case 15:case"end":return e.stop()}}),e,null,[[0,11]])}))),[l,P,_.value,S,w,y]),k=(0,u.useCallback)((function(){(0,p.deleteFromCache)("wechat:source")}),[]);return(0,u.useEffect)((function(){l&&!P&&(clearTimeout(O.current),O.current=setTimeout(C,1e3))}),[l,P,C]),{source:P,setSource:E,error:y,deleteSourceFromStorage:k}};h()&&(0,l.registerPaymentMethod)({name:h("name"),label:r.createElement(d.PaymentMethodLabel,{title:h("title"),paymentMethod:h("name"),icons:h("icon")}),ariaLabel:"WeChat",canMakePayment:(0,m.canMakePayment)(h),content:r.createElement(d.PaymentMethod,{content:b,getData:h}),edit:r.createElement(d.PaymentMethod,{content:b,getData:h}),supports:{showSavedCards:!1,showSaveOption:!1,features:h("features")}})},5180:(e,t,n)=>{n(3139),n(3726)},3726:(e,t,n)=>{var r=n(9307),a=n(5318),o=a(n(3038)),i=a(n(6479)),s=n(9307),c=n(4613),u=n(1134),l=n(3636),p=n(6664),d=(0,u.getSettings)("stripe_payment_request_data"),m=function(e){return r.createElement("div",{className:"wc-stripe-payment-request-container"},r.createElement(p.Elements,{stripe:u.initStripe},r.createElement(f,e)))},f=function(e){var t=e.getData,n=e.onClick,a=e.onClose,c=e.billing,u=e.shippingData,d=e.eventRegistration,m=e.emitResponse,f=e.onSubmit,y=e.activePaymentMethod,g=((0,i.default)(e,["getData","onClick","onClose","billing","shippingData","eventRegistration","emitResponse","onSubmit","activePaymentMethod"]),d.onPaymentProcessing),v=m.responseTypes,h=m.noticeContexts,b=(0,p.useStripe)(),P=(0,l.useStripeError)(),E=(0,o.default)(P,1)[0],O=(0,l.useExportedValues)();(0,l.useExpressBreakpointWidth)({payment_method:t("name"),width:375});var _=(0,l.useProcessPaymentIntent)({getData:t,billing:c,shippingData:u,onPaymentProcessing:g,emitResponse:m,error:E,onSubmit:f,activePaymentMethod:y,exportedValues:O}).setPaymentMethod;(0,l.useAfterProcessingPayment)({getData:t,eventRegistration:d,responseTypes:v,activePaymentMethod:y,messageContext:h.EXPRESS_PAYMENTS});var S=(0,l.usePaymentRequest)({getData:t,onClose:a,stripe:b,billing:c,shippingData:u,eventRegistration:d,setPaymentMethod:_,exportedValues:O,canPay:function(e){return null!=e&&!e.applePay}}).paymentRequest,w=(0,s.useMemo)((function(){return{paymentRequest:S,style:{paymentRequestButton:t("paymentRequestButton")}}}),[S]);return S?r.createElement(p.PaymentRequestButtonElement,{options:w,onClick:n}):null},y=function(e){e.getData,(0,i.default)(e,["getData"]);var t=(0,s.useRef)();return(0,s.useEffect)((function(){var e=window.devicePixelRatio;t.current.width=20*e,t.current.height=20*e;var n=t.current.getContext("2d");n.scale(e,e),n.beginPath(),n.arc(10,10,10,0,2*Math.PI),n.fillStyle="#986fff",n.fill()})),r.createElement("div",{className:"payment-request-block-editor"},r.createElement("div",{className:"icon-container"},r.createElement("span",null,"Buy now"),r.createElement("canvas",{className:"PaymentRequestButton-icon",ref:t}),r.createElement("i",{className:"payment-request-arrow"})))};(0,c.registerExpressPaymentMethod)({name:d("name"),canMakePayment:function(e){var t=e.cartTotals;if(d("isAdmin"))return!0;var n=t.currency_code,r=t.total_price;return(0,u.canMakePayment)({country:d("countryCode"),currency:n.toLowerCase(),total:{label:d("totalLabel"),amount:parseInt(r)}},(function(e){return null!=e&&!e.applePay}))},content:r.createElement(m,{getData:d}),edit:r.createElement(y,{getData:d}),supports:{showSavedCards:d("showSavedCards"),showSaveOption:d("showSaveOption"),features:d("features")}})},1065:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var a=r(n(1284)),o=r(n(8926)),i=n(9307),s=n(1134),c=n(3636);t.default=function(e){var t=e.eventRegistration,n=e.emitResponse,r=e.getData,u=e.method,l=void 0===u?"handleCardAction":u,p=t.onCheckoutAfterProcessingWithSuccess,d=t.onCheckoutAfterProcessingWithError,m=n.responseTypes;(0,c.useProcessCheckoutError)({responseTypes:m,subscriber:d,messageContext:n.noticeContexts.PAYMENTS});var f=(0,i.useCallback)(function(){var e=(0,o.default)(a.default.mark((function e(t){var n;return a.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=t.redirectUrl,e.next=3,(0,s.handleCardAction)({redirectUrl:n,getData:r,responseTypes:m,method:l});case 3:return e.abrupt("return",e.sent);case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[]);return(0,i.useEffect)((function(){var e=p(f);return function(){return e()}}),[p,f]),null}},1134:(e,t,n)=>{var r=n(5318);Object.defineProperty(t,"__esModule",{value:!0}),t.versionCompare=t.toCartAddress=t.storeInCache=t.removeNumberPrecision=t.registerLocalPaymentMethod=t.registerCreditCardForm=t.isUserLoggedIn=t.isTestMode=t.isNextActionRequired=t.isFieldRequired=t.isEmpty=t.isCheckoutPage=t.isCartPage=t.isAddressValid=t.initStripe=t.hasShippingRates=t.handleCardAction=t.getShippingOptions=t.getShippingOptionId=t.getSettings=t.getSelectedShippingOption=t.getRoute=t.getLocaleFields=t.getLocalPaymentMethods=t.getIntermediateAddress=t.getFromCache=t.getErrorMessage=t.getDisplayItems=t.getDefaultSourceArgs=t.getCreditCardForm=t.getBillingDetailsFromAddress=t.formatPrice=t.filterEmptyValues=t.ensureSuccessResponse=t.ensureErrorResponse=t.deleteFromCache=t.cartContainsSubscription=t.cartContainsPreOrder=t.canMakePayment=t.StripeError=void 0;var a=r(n(319)),o=r(n(1284)),i=r(n(8926)),s=r(n(3038)),c=r(n(8)),u=r(n(4575)),l=r(n(2205)),p=r(n(8585)),d=r(n(9754)),m=r(n(5957)),f=r(n(9713)),y=r(n(6479)),g=n(4465),v=n(4617),h=r(n(6989)),b=n(4293);function P(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return E(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?E(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,a=function(){};return{s:a,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:a}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,s=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){s=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(s)throw o}}}}function E(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?O(Object(n),!0).forEach((function(t){(0,f.default)(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):O(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var S=(0,v.getSetting)("stripeGeneralData"),w=S.publishableKey,C=S.stripeParams,k=(0,v.getSetting)("stripeErrorMessages"),M=(0,v.getSetting)("countryLocale",{}),j=/^([\w]+)\:(.+)$/,D=(0,v.getSetting)("stripeGeneralData").routes,x={},R=[],A={recipient:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},payerName:function(e,t){return e.first_name=t.split(" ").slice(0,-1).join(" "),e.last_name=t.split(" ").pop(),e},country:"country",addressLine:function(e,t){return t[0]&&(e.address_1=t[0]),t[1]&&(e.address_2=t[1]),e},line1:"address_1",line2:"address_2",city:"city",region:"state",state:"state",postalCode:"postcode",postal_code:"postcode",payerEmail:"email",payerPhone:"phone"},I=new Promise((function(e,t){(0,g.loadStripe)(w,C).then((function(t){e(t)})).catch((function(t){e({error:t})}))}));t.initStripe=I,t.registerCreditCardForm=function(e){var t=e.id,n=(0,y.default)(e,["id"]);x[t]=n},t.getCreditCardForm=function(e){return x.hasOwnProperty(e)?x[e]:{}};var L=function(e){return null!=D&&D[e]?D[e]:console.log("".concat(e," is not a valid route"))};t.getRoute=L;var T=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return _({type:e.SUCCESS},t)};t.ensureSuccessResponse=T;var N=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return _({type:e.ERROR,message:B(t)},n)};t.ensureErrorResponse=N;var B=function(e){return"string"==typeof e?e:null!=e&&e.code&&null!=k&&k[e.code]?k[e.code]:null!=e&&e.statusCode?null!=k&&k[e.statusCode]?k[e.statusCode]:e.statusMessage:e.message};t.getErrorMessage=B;var F=function(e){var t={name:"".concat(e.first_name," ").concat(e.last_name),address:{city:e.city||null,country:e.country||null,line1:e.address_1||null,line2:e.address_2||null,postal_code:e.postcode||null,state:e.state||null}};return null!=e&&e.phone&&(t.phone=e.phone),null!=e&&e.email&&(t.email=e.email),t};t.getBillingDetailsFromAddress=F,t.getSettings=function(e){return function(t){return t?(0,v.getSetting)(e)[t]:(0,v.getSetting)(e)}};var q=function(e){(0,l.default)(a,e);var t,n,r=(t=a,n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=(0,d.default)(t);if(n){var a=(0,d.default)(this).constructor;e=Reflect.construct(r,arguments,a)}else e=r.apply(this,arguments);return(0,p.default)(this,e)});function a(e){var t;return(0,u.default)(this,a),(t=r.call(this,e.message)).error=e,t}return a}((0,m.default)(Error));t.StripeError=q;var X=function(e){return"string"==typeof e?0==e.length||""==e:Array.isArray(e)?0==array.length:"object"!==(0,c.default)(e)||0==Object.keys(e).length};t.isEmpty=X,t.removeNumberPrecision=function(e,t){return e/Math.pow(10,t)},t.isAddressValid=function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=U(e.country),r=0,a=Object.entries(e);r<a.length;r++){var o=(0,s.default)(a[r],2),i=o[0],c=o[1];if(!t.includes(i)&&null!=n&&n[i]&&n[i].required&&X(c))return!1}return!0};var U=function(e){var t=_({},M.default);return e&&null!=M&&M[e]&&(t=Object.entries(M[e]).reduce((function(e,t){var n=(0,s.default)(t,2),r=n[0],a=n[1];return e[r]=_(_({},e[r]),a),e}),t),["phone","shipping-phone","email"].forEach((function(e){var n=document.getElementById(e);n&&(t[e]={required:n.required})}))),t};t.getLocaleFields=U,t.isFieldRequired=function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=U(t);return[e]in n&&n[e].required},t.getSelectedShippingOption=function(e){var t=e.match(j);if(t){var n=t[1];return[t[2],n]}return[]},t.hasShippingRates=function(e){return e.map((function(e){return e.shipping_rates.length>0})).filter(Boolean).length>0},t.isUserLoggedIn=function(e){return e>0};var V=function(){var e=(0,i.default)(o.default.mark((function e(t){var n,r,a,i,s,c,u,l,p,d,m,y,g,v,b,P,E,O;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.redirectUrl,r=t.responseTypes,a=t.name,i=t.method,s=void 0===i?"handleCardAction":i,c=t.savePaymentMethod,u=void 0!==c&&c,l=t.data,p=void 0===l?{}:l,e.prev=1,!(d=n.match(/#response=(.+)/))){e.next=28;break}return m=JSON.parse(window.atob(decodeURIComponent(d[1]))),y=m.type,g=m.client_secret,v=m.order_id,b=m.order_key,e.next=7,I;case 7:if(P=e.sent,"intent"!==y){e.next=14;break}return e.next=11,P[s](g);case 11:E=e.sent,e.next=17;break;case 14:return e.next=16,P.confirmCardSetup(g);case 16:E=e.sent;case 17:if(!E.error){e.next=19;break}return e.abrupt("return",N(r,E.error));case 19:return p=_(_({},p),{},(0,f.default)({order_id:v,order_key:b},"".concat(a,"_save_source_key"),u)),e.next=22,(0,h.default)({url:L("process/payment"),method:"POST",data:p});case 22:if(!(O=e.sent).messages){e.next=25;break}return e.abrupt("return",N(r,O.messages));case 25:return e.abrupt("return",T(r,{redirectUrl:O.redirect}));case 28:return e.abrupt("return",T(r));case 29:e.next=35;break;case 31:return e.prev=31,e.t0=e.catch(1),console.log(e.t0),e.abrupt("return",N(r,e.t0));case 35:case"end":return e.stop()}}),e,null,[[1,31]])})));return function(t){return e.apply(this,arguments)}}();t.handleCardAction=V,t.toCartAddress=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A;return function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};t=_(_({},t),W(n));for(var a=0,o=Object.entries(e);a<o.length;a++){var i,c=(0,s.default)(o[a],2),u=c[0],l=c[1];null!==(i=t)&&void 0!==i&&i[u]&&("function"==typeof l?l(r,t[u]):r[l]=t[u])}return r}},t.getIntermediateAddress=function(e){var t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["city","postcode","state","country"],r={},a=P(n);try{for(a.s();!(t=a.n()).done;){var o=t.value;r[o]=e[o]}}catch(e){a.e(e)}finally{a.f()}return r};var W=function(e){return Object.keys(e).filter((function(t){return Boolean(e[t])})).reduce((function(t,n){return _(_({},t),{},(0,f.default)({},n,e[n]))}),{})};t.filterEmptyValues=W;var Y=function(e,t){var n,r=(0,b.getCurrency)(t),a=r.prefix,o=r.suffix,i=r.decimalSeparator,s=r.minorUnit,c=r.thousandSeparator;if(""==e||void 0===e)return e;e="string"==typeof e?parseInt(e,10):e;var u="",l=(e=(e/=Math.pow(10,s)).toString().replace(".",i)).indexOf(i);l<0?s>0&&(e+="".concat(i).concat(new Array(s+1).join("0"))):(u=e.substr(l+1)).length<s&&(e+=new Array(s-u.length+1).join("0"));var p=e.match(new RegExp("(\\d+)\\".concat(i,"(\\d+)")));return p&&(e=p[1],u=p[2]),e=e.replace(new RegExp("\\B(?=(\\d{3})+(?!\\d))","g"),"".concat(c)),a+(e=(null===(n=u)||void 0===n?void 0:n.length)>0?e+i+u:e)+o};t.formatPrice=Y,t.getShippingOptions=function(e){var t=[];return e.forEach((function(e,n){e.shipping_rates.sort((function(e){return e.selected?-1:1}));var r=e.shipping_rates.map((function(e){var t=document.createElement("textarea");return t.innerHTML=e.name,Y(e.price,e.currency_code),{id:H(n,e.rate_id),label:t.value,amount:parseInt(e.price,10)}}));t=[].concat((0,a.default)(t),(0,a.default)(r))})),t};var H=function(e,t){return"".concat(e,":").concat(t)};t.getShippingOptionId=H,t.getDisplayItems=function(e,t){t.minorUnit;var n=[],r=["total_tax","total_shipping"];return e.forEach((function(e){(0<e.value||e.key&&r.includes(e.key))&&n.push({label:e.label,pending:!1,amount:e.value})})),n};var G={};t.canMakePayment=function(e,t){var n=e.country,r=e.currency,a=e.total;return new Promise((function(e,o){var i=[n,r,a.amount].reduce((function(e,t){return"".concat(e,"-").concat(t)}));return r?i in G?e(G[i]):I.then((function(s){if(s.error)return o(s.error);s.paymentRequest({country:n,currency:r,total:a}).canMakePayment().then((function(n){return G[i]=t(n),e(G[i])}))})).catch(o):e(!1)}))},t.registerLocalPaymentMethod=function(e){R.push(e)},t.getLocalPaymentMethods=function(){return R},t.cartContainsPreOrder=function(){var e=(0,v.getSetting)("stripePaymentData");return e&&e.pre_order},t.cartContainsSubscription=function(){var e=(0,v.getSetting)("stripePaymentData");return e&&e.subscription},t.getDefaultSourceArgs=function(e){var t=e.type,n=e.amount,r=e.billingData,a=e.currency,o=e.returnUrl;return{type:t,amount:n,currency:a,owner:F(r),redirect:{return_url:o}}},t.isTestMode=function(){return"test"===(0,v.getSetting)("stripeGeneralData").mode};var J=function(e){return"".concat("stripe:").concat(e)};t.storeInCache=function(e,t){var n=Math.floor((new Date).getTime()/1e3)+900;"sessionStorage"in window&&sessionStorage.setItem(J(e),JSON.stringify({value:t,exp:n}))},t.getFromCache=function(e){if("sessionStorage"in window)try{var t=JSON.parse(sessionStorage.getItem(J(e)));if(t){var n=t.value,r=t.exp;if(!(Math.floor((new Date).getTime()/1e3)>r))return n;Q(J(e))}}catch(e){}return null};var Q=function(e){"sessionStorage"in window&&sessionStorage.removeItem(J(e))};t.deleteFromCache=Q,t.versionCompare=function(e,t,n){switch(n){case"<":return e<t;case">":return e>t;case"<=":return e<=t;case">=":return e>=t;case"=":return e==t}return!1},t.isCartPage=function(){return"cart"===(0,v.getSetting)("stripeGeneralData").page},t.isCheckoutPage=function(){return"checkout"===(0,v.getSetting)("stripeGeneralData").page},t.isNextActionRequired=function(e){var t=e.match(/#response=(.+)/),n=null;return t&&(n=JSON.parse(window.atob(decodeURIComponent(t[1])))),n}},4184:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var o=typeof n;if("string"===o||"number"===o)e.push(n);else if(Array.isArray(n)&&n.length){var i=a.apply(null,n);i&&e.push(i)}else if("object"===o)for(var s in n)r.call(n,s)&&n[s]&&e.push(s)}}return e.join(" ")}e.exports?(a.default=a,e.exports=a):void 0===(n=function(){return a}.apply(t,[]))||(e.exports=n)}()},1465:()=>{},7776:()=>{},4836:()=>{},85:()=>{},3110:()=>{},8356:()=>{},5773:()=>{},9509:()=>{},3139:()=>{}}]);
3
  //# sourceMappingURL=commons.js.map
packages/blocks/build/commons.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"commons.js","mappings":"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","sources":["webpack://wc_stripe/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/construct.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/createClass.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/extends.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/inherits.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/typeof.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://wc_stripe/./node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","webpack://wc_stripe/./node_modules/@stripe/stripe-js/dist/stripe.esm.js","webpack://wc_stripe/./packages/blocks/assets/js/components/checkout/index.js","webpack://wc_stripe/./packages/blocks/assets/js/components/checkout/installments/index.js","webpack://wc_stripe/./packages/blocks/assets/js/components/checkout/payment-method-label/index.js","webpack://wc_stripe/./packages/blocks/assets/js/components/checkout/payment-method/index.js","webpack://wc_stripe/./packages/blocks/assets/js/components/checkout/radio-option/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/ach/hooks/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/ach/hooks/use-process-payment.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/ach/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/ach/payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/applepay/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/applepay/payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/components/custom-card-form.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/components/stripe-card-form.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/payment-element.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/error-boundary.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/button.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/constants.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/hooks/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-error-message.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-payment-request.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-payments-client.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/util.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-after-process-payment.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-breakpoint-width.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-exported-values.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-payment-events.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-payment-request.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-process-checkout-error.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-process-payment-intent.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-setup-intent.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-stripe-error.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-update-payment-intent.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/link/hooks/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/link/hooks/use-link.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/link/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/afterpay.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/alipay.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/bancontact.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/becs.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/boleto.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/eps.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/fpx.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/giropay.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/grabpay.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/hooks/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-after-process-local-payment.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-create-source.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-validate-checkout.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/ideal.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/klarna.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/local-payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/multibanco.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/oxxo.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/p24.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/sepa.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/sofort.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/wechat.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/payment-request/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/payment-request/payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/saved-card-component.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/util.js","webpack://wc_stripe/./node_modules/classnames/index.js"],"sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n\t(global = global || self, factory(global.ReactStripe = {}, global.React));\n}(this, (function (exports, React) { 'use strict';\n\n\tReact = React && Object.prototype.hasOwnProperty.call(React, 'default') ? React['default'] : React;\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\tvar ReactPropTypesSecret_1 = ReactPropTypesSecret;\n\n\tfunction emptyFunction() {}\n\n\tfunction emptyFunctionWithReset() {}\n\n\temptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n\tvar factoryWithThrowingShims = function () {\n\t function shim(props, propName, componentName, location, propFullName, secret) {\n\t if (secret === ReactPropTypesSecret_1) {\n\t // It is still safe when called from React.\n\t return;\n\t }\n\n\t var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n\t err.name = 'Invariant Violation';\n\t throw err;\n\t }\n\t shim.isRequired = shim;\n\n\t function getShim() {\n\t return shim;\n\t }\n\t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n\t var ReactPropTypes = {\n\t array: shim,\n\t bool: shim,\n\t func: shim,\n\t number: shim,\n\t object: shim,\n\t string: shim,\n\t symbol: shim,\n\t any: shim,\n\t arrayOf: getShim,\n\t element: shim,\n\t elementType: shim,\n\t instanceOf: getShim,\n\t node: shim,\n\t objectOf: getShim,\n\t oneOf: getShim,\n\t oneOfType: getShim,\n\t shape: getShim,\n\t exact: getShim,\n\t checkPropTypes: emptyFunctionWithReset,\n\t resetWarningCache: emptyFunction\n\t };\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t return ReactPropTypes;\n\t};\n\n\tvar propTypes = createCommonjsModule(function (module) {\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\t{\n\t // By explicitly using `prop-types` you are opting into new production behavior.\n\t // http://fb.me/prop-types-in-prod\n\t module.exports = factoryWithThrowingShims();\n\t}\n\t});\n\n\tfunction ownKeys(object, enumerableOnly) {\n\t var keys = Object.keys(object);\n\n\t if (Object.getOwnPropertySymbols) {\n\t var symbols = Object.getOwnPropertySymbols(object);\n\n\t if (enumerableOnly) {\n\t symbols = symbols.filter(function (sym) {\n\t return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n\t });\n\t }\n\n\t keys.push.apply(keys, symbols);\n\t }\n\n\t return keys;\n\t}\n\n\tfunction _objectSpread2(target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i] != null ? arguments[i] : {};\n\n\t if (i % 2) {\n\t ownKeys(Object(source), true).forEach(function (key) {\n\t _defineProperty(target, key, source[key]);\n\t });\n\t } else if (Object.getOwnPropertyDescriptors) {\n\t Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n\t } else {\n\t ownKeys(Object(source)).forEach(function (key) {\n\t Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n\t });\n\t }\n\t }\n\n\t return target;\n\t}\n\n\tfunction _typeof(obj) {\n\t \"@babel/helpers - typeof\";\n\n\t if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n\t _typeof = function (obj) {\n\t return typeof obj;\n\t };\n\t } else {\n\t _typeof = function (obj) {\n\t return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n\t };\n\t }\n\n\t return _typeof(obj);\n\t}\n\n\tfunction _defineProperty(obj, key, value) {\n\t if (key in obj) {\n\t Object.defineProperty(obj, key, {\n\t value: value,\n\t enumerable: true,\n\t configurable: true,\n\t writable: true\n\t });\n\t } else {\n\t obj[key] = value;\n\t }\n\n\t return obj;\n\t}\n\n\tfunction _slicedToArray(arr, i) {\n\t return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n\t}\n\n\tfunction _arrayWithHoles(arr) {\n\t if (Array.isArray(arr)) return arr;\n\t}\n\n\tfunction _iterableToArrayLimit(arr, i) {\n\t var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n\t if (_i == null) return;\n\t var _arr = [];\n\t var _n = true;\n\t var _d = false;\n\n\t var _s, _e;\n\n\t try {\n\t for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n\t _arr.push(_s.value);\n\n\t if (i && _arr.length === i) break;\n\t }\n\t } catch (err) {\n\t _d = true;\n\t _e = err;\n\t } finally {\n\t try {\n\t if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n\t } finally {\n\t if (_d) throw _e;\n\t }\n\t }\n\n\t return _arr;\n\t}\n\n\tfunction _unsupportedIterableToArray(o, minLen) {\n\t if (!o) return;\n\t if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n\t var n = Object.prototype.toString.call(o).slice(8, -1);\n\t if (n === \"Object\" && o.constructor) n = o.constructor.name;\n\t if (n === \"Map\" || n === \"Set\") return Array.from(o);\n\t if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n\t}\n\n\tfunction _arrayLikeToArray(arr, len) {\n\t if (len == null || len > arr.length) len = arr.length;\n\n\t for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n\t return arr2;\n\t}\n\n\tfunction _nonIterableRest() {\n\t throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n\t}\n\n\tvar usePrevious = function usePrevious(value) {\n\t var ref = React.useRef(value);\n\t React.useEffect(function () {\n\t ref.current = value;\n\t }, [value]);\n\t return ref.current;\n\t};\n\n\tvar isUnknownObject = function isUnknownObject(raw) {\n\t return raw !== null && _typeof(raw) === 'object';\n\t};\n\tvar isPromise = function isPromise(raw) {\n\t return isUnknownObject(raw) && typeof raw.then === 'function';\n\t}; // We are using types to enforce the `stripe` prop in this lib,\n\t// but in an untyped integration `stripe` could be anything, so we need\n\t// to do some sanity validation to prevent type errors.\n\n\tvar isStripe = function isStripe(raw) {\n\t return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n\t};\n\n\tvar PLAIN_OBJECT_STR = '[object Object]';\n\tvar isEqual = function isEqual(left, right) {\n\t if (!isUnknownObject(left) || !isUnknownObject(right)) {\n\t return left === right;\n\t }\n\n\t var leftArray = Array.isArray(left);\n\t var rightArray = Array.isArray(right);\n\t if (leftArray !== rightArray) return false;\n\t var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n\t var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n\t if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n\t // fallback to reference check.\n\n\t if (!leftPlainObject && !leftArray) return left === right;\n\t var leftKeys = Object.keys(left);\n\t var rightKeys = Object.keys(right);\n\t if (leftKeys.length !== rightKeys.length) return false;\n\t var keySet = {};\n\n\t for (var i = 0; i < leftKeys.length; i += 1) {\n\t keySet[leftKeys[i]] = true;\n\t }\n\n\t for (var _i = 0; _i < rightKeys.length; _i += 1) {\n\t keySet[rightKeys[_i]] = true;\n\t }\n\n\t var allKeys = Object.keys(keySet);\n\n\t if (allKeys.length !== leftKeys.length) {\n\t return false;\n\t }\n\n\t var l = left;\n\t var r = right;\n\n\t var pred = function pred(key) {\n\t return isEqual(l[key], r[key]);\n\t };\n\n\t return allKeys.every(pred);\n\t};\n\n\tvar extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n\t if (!isUnknownObject(options)) {\n\t return null;\n\t }\n\n\t return Object.keys(options).reduce(function (newOptions, key) {\n\t var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n\t if (immutableKeys.includes(key)) {\n\t if (isUpdated) {\n\t console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n\t }\n\n\t return newOptions;\n\t }\n\n\t if (!isUpdated) {\n\t return newOptions;\n\t }\n\n\t return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n\t }, null);\n\t};\n\n\tvar INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n\t// integration `stripe` could be anything, so we need to do some sanity\n\t// validation to prevent type errors.\n\n\tvar validateStripe = function validateStripe(maybeStripe) {\n\t if (maybeStripe === null || isStripe(maybeStripe)) {\n\t return maybeStripe;\n\t }\n\n\t throw new Error(INVALID_STRIPE_ERROR);\n\t};\n\n\tvar parseStripeProp = function parseStripeProp(raw) {\n\t if (isPromise(raw)) {\n\t return {\n\t tag: 'async',\n\t stripePromise: Promise.resolve(raw).then(validateStripe)\n\t };\n\t }\n\n\t var stripe = validateStripe(raw);\n\n\t if (stripe === null) {\n\t return {\n\t tag: 'empty'\n\t };\n\t }\n\n\t return {\n\t tag: 'sync',\n\t stripe: stripe\n\t };\n\t};\n\n\tvar ElementsContext = /*#__PURE__*/React.createContext(null);\n\tElementsContext.displayName = 'ElementsContext';\n\tvar parseElementsContext = function parseElementsContext(ctx, useCase) {\n\t if (!ctx) {\n\t throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an <Elements> provider.\"));\n\t }\n\n\t return ctx;\n\t};\n\t/**\n\t * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n\t * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n\t *\n\t * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n\t * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n\t * Pass the returned `Promise` to `Elements`.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n\t */\n\n\tvar Elements = function Elements(_ref) {\n\t var rawStripeProp = _ref.stripe,\n\t options = _ref.options,\n\t children = _ref.children;\n\t var parsed = React.useMemo(function () {\n\t return parseStripeProp(rawStripeProp);\n\t }, [rawStripeProp]); // For a sync stripe instance, initialize into context\n\n\t var _React$useState = React.useState(function () {\n\t return {\n\t stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n\t elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n\t };\n\t }),\n\t _React$useState2 = _slicedToArray(_React$useState, 2),\n\t ctx = _React$useState2[0],\n\t setContext = _React$useState2[1];\n\n\t React.useEffect(function () {\n\t var isMounted = true;\n\n\t var safeSetContext = function safeSetContext(stripe) {\n\t setContext(function (ctx) {\n\t // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n\t if (ctx.stripe) return ctx;\n\t return {\n\t stripe: stripe,\n\t elements: stripe.elements(options)\n\t };\n\t });\n\t }; // For an async stripePromise, store it in context once resolved\n\n\n\t if (parsed.tag === 'async' && !ctx.stripe) {\n\t parsed.stripePromise.then(function (stripe) {\n\t if (stripe && isMounted) {\n\t // Only update Elements context if the component is still mounted\n\t // and stripe is not null. We allow stripe to be null to make\n\t // handling SSR easier.\n\t safeSetContext(stripe);\n\t }\n\t });\n\t } else if (parsed.tag === 'sync' && !ctx.stripe) {\n\t // Or, handle a sync stripe instance going from null -> populated\n\t safeSetContext(parsed.stripe);\n\t }\n\n\t return function () {\n\t isMounted = false;\n\t };\n\t }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n\t var prevStripe = usePrevious(rawStripeProp);\n\t React.useEffect(function () {\n\t if (prevStripe !== null && prevStripe !== rawStripeProp) {\n\t console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n\t }\n\t }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n\t var prevOptions = usePrevious(options);\n\t React.useEffect(function () {\n\t if (!ctx.elements) {\n\t return;\n\t }\n\n\t var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n\t if (updates) {\n\t ctx.elements.update(updates);\n\t }\n\t }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n\t React.useEffect(function () {\n\t var anyStripe = ctx.stripe;\n\n\t if (!anyStripe || !anyStripe._registerWrapper || !anyStripe.registerAppInfo) {\n\t return;\n\t }\n\n\t anyStripe._registerWrapper({\n\t name: 'react-stripe-js',\n\t version: \"1.9.0\"\n\t });\n\n\t anyStripe.registerAppInfo({\n\t name: 'react-stripe-js',\n\t version: \"1.9.0\",\n\t url: 'https://stripe.com/docs/stripe-js/react'\n\t });\n\t }, [ctx.stripe]);\n\t return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n\t value: ctx\n\t }, children);\n\t};\n\tElements.propTypes = {\n\t stripe: propTypes.any,\n\t options: propTypes.object\n\t};\n\tvar useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n\t var ctx = React.useContext(ElementsContext);\n\t return parseElementsContext(ctx, useCaseMessage);\n\t};\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n\t */\n\n\tvar useElements = function useElements() {\n\t var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n\t elements = _useElementsContextWi.elements;\n\n\t return elements;\n\t};\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n\t */\n\n\tvar useStripe = function useStripe() {\n\t var _useElementsContextWi2 = useElementsContextWithUseCase('calls useStripe()'),\n\t stripe = _useElementsContextWi2.stripe;\n\n\t return stripe;\n\t};\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n\t */\n\n\tvar ElementsConsumer = function ElementsConsumer(_ref2) {\n\t var children = _ref2.children;\n\t var ctx = useElementsContextWithUseCase('mounts <ElementsConsumer>'); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n\t return children(ctx);\n\t};\n\tElementsConsumer.propTypes = {\n\t children: propTypes.func.isRequired\n\t};\n\n\tvar useCallbackReference = function useCallbackReference(cb) {\n\t var ref = React.useRef(cb);\n\t React.useEffect(function () {\n\t ref.current = cb;\n\t }, [cb]);\n\t return function () {\n\t if (ref.current) {\n\t ref.current.apply(ref, arguments);\n\t }\n\t };\n\t};\n\n\tvar noop = function noop() {};\n\n\tvar capitalized = function capitalized(str) {\n\t return str.charAt(0).toUpperCase() + str.slice(1);\n\t};\n\n\tvar createElementComponent = function createElementComponent(type, isServer) {\n\t var displayName = \"\".concat(capitalized(type), \"Element\");\n\n\t var ClientElement = function ClientElement(_ref) {\n\t var id = _ref.id,\n\t className = _ref.className,\n\t _ref$options = _ref.options,\n\t options = _ref$options === void 0 ? {} : _ref$options,\n\t _ref$onBlur = _ref.onBlur,\n\t onBlur = _ref$onBlur === void 0 ? noop : _ref$onBlur,\n\t _ref$onFocus = _ref.onFocus,\n\t onFocus = _ref$onFocus === void 0 ? noop : _ref$onFocus,\n\t _ref$onReady = _ref.onReady,\n\t onReady = _ref$onReady === void 0 ? noop : _ref$onReady,\n\t _ref$onChange = _ref.onChange,\n\t onChange = _ref$onChange === void 0 ? noop : _ref$onChange,\n\t _ref$onEscape = _ref.onEscape,\n\t onEscape = _ref$onEscape === void 0 ? noop : _ref$onEscape,\n\t _ref$onClick = _ref.onClick,\n\t onClick = _ref$onClick === void 0 ? noop : _ref$onClick,\n\t _ref$onLoadError = _ref.onLoadError,\n\t onLoadError = _ref$onLoadError === void 0 ? noop : _ref$onLoadError;\n\n\t var _useElementsContextWi = useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\")),\n\t elements = _useElementsContextWi.elements;\n\n\t var elementRef = React.useRef(null);\n\t var domNode = React.useRef(null);\n\t var callOnReady = useCallbackReference(onReady);\n\t var callOnBlur = useCallbackReference(onBlur);\n\t var callOnFocus = useCallbackReference(onFocus);\n\t var callOnClick = useCallbackReference(onClick);\n\t var callOnChange = useCallbackReference(onChange);\n\t var callOnEscape = useCallbackReference(onEscape);\n\t var callOnLoadError = useCallbackReference(onLoadError);\n\t React.useLayoutEffect(function () {\n\t if (elementRef.current == null && elements && domNode.current != null) {\n\t var element = elements.create(type, options);\n\t elementRef.current = element;\n\t element.mount(domNode.current);\n\t element.on('ready', function () {\n\t return callOnReady(element);\n\t });\n\t element.on('change', callOnChange);\n\t element.on('blur', callOnBlur);\n\t element.on('focus', callOnFocus);\n\t element.on('escape', callOnEscape); // Users can pass an onLoadError prop on any Element component\n\t // just as they could listen for the `loaderror` event on any Element,\n\t // but only certain Elements will trigger the event.\n\n\t element.on('loaderror', callOnLoadError); // Users can pass an onClick prop on any Element component\n\t // just as they could listen for the `click` event on any Element,\n\t // but only the PaymentRequestButton will actually trigger the event.\n\n\t element.on('click', callOnClick);\n\t }\n\t });\n\t var prevOptions = usePrevious(options);\n\t React.useEffect(function () {\n\t if (!elementRef.current) {\n\t return;\n\t }\n\n\t var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n\t if (updates) {\n\t elementRef.current.update(updates);\n\t }\n\t }, [options, prevOptions]);\n\t React.useLayoutEffect(function () {\n\t return function () {\n\t if (elementRef.current) {\n\t elementRef.current.destroy();\n\t elementRef.current = null;\n\t }\n\t };\n\t }, []);\n\t return /*#__PURE__*/React.createElement(\"div\", {\n\t id: id,\n\t className: className,\n\t ref: domNode\n\t });\n\t }; // Only render the Element wrapper in a server environment.\n\n\n\t var ServerElement = function ServerElement(props) {\n\t // Validate that we are in the right context by calling useElementsContextWithUseCase.\n\t useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n\t var id = props.id,\n\t className = props.className;\n\t return /*#__PURE__*/React.createElement(\"div\", {\n\t id: id,\n\t className: className\n\t });\n\t };\n\n\t var Element = isServer ? ServerElement : ClientElement;\n\t Element.propTypes = {\n\t id: propTypes.string,\n\t className: propTypes.string,\n\t onChange: propTypes.func,\n\t onBlur: propTypes.func,\n\t onFocus: propTypes.func,\n\t onReady: propTypes.func,\n\t onClick: propTypes.func,\n\t onLoadError: propTypes.func,\n\t options: propTypes.object\n\t };\n\t Element.displayName = displayName;\n\t Element.__elementType = type;\n\t return Element;\n\t};\n\n\tvar isServer = typeof window === 'undefined';\n\t/**\n\t * Requires beta access:\n\t * Contact [Stripe support](https://support.stripe.com/) for more information.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardElement = createElementComponent('card', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardNumberElement = createElementComponent('cardNumber', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardExpiryElement = createElementComponent('cardExpiry', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardCvcElement = createElementComponent('cardCvc', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar FpxBankElement = createElementComponent('fpxBank', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar IbanElement = createElementComponent('iban', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar IdealBankElement = createElementComponent('idealBank', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar P24BankElement = createElementComponent('p24Bank', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar EpsBankElement = createElementComponent('epsBank', isServer);\n\tvar PaymentElement = createElementComponent('payment', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n\t/**\n\t * Requires beta access:\n\t * Contact [Stripe support](https://support.stripe.com/) for more information.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n\t/**\n\t * Requires beta access:\n\t * Contact [Stripe support](https://support.stripe.com/) for more information.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n\texports.AffirmMessageElement = AffirmMessageElement;\n\texports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n\texports.AuBankAccountElement = AuBankAccountElement;\n\texports.CardCvcElement = CardCvcElement;\n\texports.CardElement = CardElement;\n\texports.CardExpiryElement = CardExpiryElement;\n\texports.CardNumberElement = CardNumberElement;\n\texports.Elements = Elements;\n\texports.ElementsConsumer = ElementsConsumer;\n\texports.EpsBankElement = EpsBankElement;\n\texports.FpxBankElement = FpxBankElement;\n\texports.IbanElement = IbanElement;\n\texports.IdealBankElement = IdealBankElement;\n\texports.LinkAuthenticationElement = LinkAuthenticationElement;\n\texports.P24BankElement = P24BankElement;\n\texports.PaymentElement = PaymentElement;\n\texports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n\texports.ShippingAddressElement = ShippingAddressElement;\n\texports.useElements = useElements;\n\texports.useStripe = useStripe;\n\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.12.1\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n};\n\n// own script injection.\n\nvar stripePromise$1 = Promise.resolve().then(function () {\n return loadScript(null);\n});\nvar loadCalled = false;\nstripePromise$1[\"catch\"](function (err) {\n if (!loadCalled) {\n console.warn(err);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now();\n return stripePromise$1.then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","export * from './payment-method-label';\nexport * from './radio-option';\nexport * from './payment-method';\nexport * from './installments';","import {useState, useRef, useEffect} from '@wordpress/element';\nimport {__} from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport classnames from 'classnames';\nimport {StripeError, getRoute} from \"../../../payment-methods/util\";\nimport './style.scss';\n\nexport const Installments = (\n {\n paymentMethodName,\n getCreatePaymentMethodArgs = null,\n cardFormComplete = false,\n addPaymentMethodData = null,\n getPaymentMethod\n }) => {\n const [installments, setInstallments] = useState(null);\n const [installment, setInstallment] = useState('');\n const [loading, setLoading] = useState(false);\n const onInstallmentSelected = (e) => {\n setInstallment(e.target.value);\n if (addPaymentMethodData) {\n addPaymentMethodData({_stripe_installment_plan: e.target.value});\n }\n }\n\n useEffect(() => {\n if (cardFormComplete) {\n // fetch the installments\n setLoading(true);\n setInstallment('');\n\n getPaymentMethod().then(async paymentMethod => {\n if (paymentMethod) {\n // fetch the installment plans\n const result = await apiFetch({\n url: getRoute('create/payment_intent'),\n method: 'POST',\n data: {payment_method_id: paymentMethod, payment_method: paymentMethodName}\n });\n setInstallments(result.installments);\n if (Object.keys(result.installments)?.length) {\n setInstallment(Object.keys(result.installments)[0]);\n }\n }\n }).catch(error => {\n console.log(error);\n }).finally(() => setLoading(false));\n }\n }, [cardFormComplete, getPaymentMethod]);\n\n return (\n <div className='wc-stripe-installments__container'>\n <label className={'wc-stripe-installments__label'}>\n {__('Pay in installments:', 'woo-stripe-payment')}\n <Loader loading={loading}/>\n </label>\n <InstallmentOptions\n installment={installment}\n onChange={onInstallmentSelected}\n installments={installments}\n isLoading={loading}/>\n </div>\n )\n}\n\nconst InstallmentOptions = ({installment, installments, onChange, isLoading}) => {\n let OPTIONS = null;\n if (isLoading) {\n OPTIONS = <option value=\"\" disabled>{__('Loading installments...', 'woo-stripe-payment')}</option>\n } else {\n if (installments === null) {\n OPTIONS = <option value=\"\" disabled>{__('Fill out card form for eligibility.', 'woo-stripe-payment')}</option>\n } else {\n OPTIONS = Object.keys(installments).map(id => {\n return <option key={id} value={id} dangerouslySetInnerHTML={{__html: installments[id].text}}/>\n });\n }\n }\n return (\n <select\n value={installment}\n onChange={onChange}\n className={classnames('wc-stripe-installment__options', {loading: isLoading})}>\n {OPTIONS}\n </select>\n );\n}\n\nconst Loader = ({loading}) => {\n return (\n <div className=\"wc-stripe-installment-loader__container\">\n {loading && <div className=\"wc-stripe-installment-loader\">\n <div></div>\n <div></div>\n <div></div>\n </div>}\n </div>\n );\n}\nexport default Installments;","import './style.scss';\n\nexport const PaymentMethodLabel = ({title, icons, paymentMethod, ...props}) => {\n const {PaymentMethodLabel: Label, PaymentMethodIcons: Icons} = props.components;\n if (!Array.isArray(icons)) {\n icons = [icons];\n }\n return (\n <span className={`wc-stripe-label-container ${paymentMethod}`}>\n <Label text={title}/>\n <Icons icons={icons} align='left'/>\n </span>\n )\n}","import {useEffect, useRef} from '@wordpress/element';\n\nexport const PaymentMethod = ({getData, content, ...props}) => {\n const Content = content;\n const desc = getData('description');\n const el = useRef(null);\n useEffect(() => {\n if (el.current && el.current.childNodes.length == 0) {\n el.current.classList.add('no-content');\n }\n });\n return (\n <>\n {desc && <Description desc={desc} payment_method={getData('name')}/>}\n <div ref={el} className='wc-stripe-blocks-payment-method-content'>\n <Content {...{...props, getData}}/>\n </div>\n </>);\n}\n\nconst Description = ({desc, payment_method}) => {\n return (\n <div className={`wc-stripe-blocks-payment-method__desc ${payment_method}`}>\n <p>{desc}</p>\n </div>\n )\n}","import classnames from 'classnames';\n\nexport const RadioControlOption = ({checked, onChange, value, label}) => {\n return (\n <label\n className={classnames('wc-stripe-blocks-radio-control__option', {\n 'wc-stripe-blocks-radio-control__option-checked': checked\n })}>\n <input\n className='wc-stripe-blocks-radio-control__input'\n type='radio'\n value={value}\n checked={checked}\n onChange={(event) => onChange(event.target.value)}/>\n <div className='wc-stripe-blocks-radio-control__label'>\n <span>{label}</span>\n </div>\n </label>\n )\n}\n\nexport default RadioControlOption;","export * from './use-process-payment';","import {useEffect, useRef, useCallback} from '@wordpress/element';\nimport {useStripe} from '@stripe/react-stripe-js';\nimport {ensureSuccessResponse, ensureErrorResponse, isNextActionRequired, handleCardAction, getRoute, StripeError} from \"../../util\";\nimport apiFetch from \"@wordpress/api-fetch\";\n\nexport const useProcessPayment = (\n {\n onCheckoutAfterProcessingWithSuccess,\n responseTypes,\n paymentMethod,\n billingAddress\n\n }) => {\n const stripe = useStripe();\n const currentData = useRef({billingAddress});\n useEffect(() => {\n currentData.current = {...currentData.current, billingAddress};\n });\n\n useEffect(() => {\n const unsubscribe = onCheckoutAfterProcessingWithSuccess(async ({redirectUrl}) => {\n const result = isNextActionRequired(redirectUrl);\n if (result) {\n if (result.type === 'intent') {\n return await processPaymentIntent(result, stripe);\n } else {\n return await processSetupIntent(result, stripe);\n }\n }\n });\n return () => unsubscribe();\n }, [\n onCheckoutAfterProcessingWithSuccess,\n responseTypes,\n stripe,\n processPaymentIntent,\n processSetupIntent\n ]);\n\n const processPaymentIntent = useCallback(async (data, stripe) => {\n const {billingAddress} = currentData.current;\n const {client_secret, order_id, order_key} = data;\n try {\n let response = await stripe.collectBankAccountForPayment({\n clientSecret: client_secret,\n params: {\n payment_method_type: 'us_bank_account',\n payment_method_data: {\n billing_details: {\n name: `${billingAddress.first_name} ${billingAddress.last_name}`,\n email: billingAddress.email,\n },\n },\n }\n });\n if (response.error) {\n throw response.error;\n }\n if (response.paymentIntent.status === \"requires_confirmation\") {\n let response = await stripe.confirmUsBankAccountPayment(client_secret);\n if (response.error) {\n throw response.error;\n }\n if (response.paymentIntent.status === 'processing') {\n let result = await apiFetch({\n url: getRoute('process/payment'),\n method: 'POST',\n data: {order_id, order_key, stripe_ach_token_key: response.paymentIntent.payment_method}\n });\n if (result.messages) {\n throw result.messages;\n }\n return ensureSuccessResponse(responseTypes, {\n redirectUrl: result.redirect\n });\n } else if (response.paymentIntent.status === 'requires_action') {\n throw {code: 'ach_instant_only'};\n }\n }\n } catch (err) {\n return ensureErrorResponse(responseTypes, err);\n }\n }, []);\n\n const processSetupIntent = useCallback(async (data, stripe) => {\n const {billingAddress} = currentData.current;\n const {client_secret, order_id, order_key} = data;\n try {\n let response = await stripe.collectBankAccountForSetup({\n clientSecret: client_secret,\n params: {\n payment_method_type: 'us_bank_account',\n payment_method_data: {\n billing_details: {\n name: `${billingAddress.first_name} ${billingAddress.last_name}`,\n email: billingAddress.email,\n },\n },\n }\n });\n if (response.error) {\n throw response.error;\n }\n if (response.setupIntent.status === \"requires_confirmation\") {\n let {setupIntent, error} = await stripe.confirmUsBankAccountSetup(client_secret);\n if (error) {\n throw error;\n }\n if (setupIntent.status === 'succeeded') {\n let response = await apiFetch({\n url: getRoute('process/payment'),\n method: 'POST',\n data: {order_id, order_key, stripe_ach_token_key: setupIntent.payment_method}\n });\n if (response.messages) {\n throw response.messages;\n }\n return ensureSuccessResponse(responseTypes, {\n redirectUrl: response.redirect\n });\n } else if (setupIntent.status === 'requires_action') {\n throw {code: 'ach_instant_only'};\n }\n }\n } catch (err) {\n console.log(err);\n return ensureErrorResponse(responseTypes, err);\n }\n }, []);\n}","import './styles.scss';\nimport './payment-method'","import {useState} from '@wordpress/element';\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {Elements} from '@stripe/react-stripe-js';\nimport {getSettings, initStripe as loadStripe} from '../util';\nimport {PaymentMethodLabel, PaymentMethod} from '../../components/checkout';\nimport SavedCardComponent from '../saved-card-component';\nimport {useCreateLinkToken, useInitializePlaid, useProcessPayment} from './hooks';\nimport {useProcessCheckoutError} from \"../hooks\";\n\nconst getData = getSettings('stripe_ach_data');\n\nconst ACHPaymentContent = (\n {\n eventRegistration,\n components,\n emitResponse,\n onSubmit,\n billing,\n ...props\n }) => {\n const {responseTypes} = emitResponse;\n const {\n onPaymentProcessing,\n onCheckoutAfterProcessingWithError,\n onCheckoutAfterProcessingWithSuccess\n } = eventRegistration;\n\n useProcessCheckoutError({\n responseTypes,\n subscriber: onCheckoutAfterProcessingWithError\n });\n\n\n useProcessPayment({\n onCheckoutAfterProcessingWithSuccess,\n responseTypes,\n paymentMethod: getData('name'),\n billingAddress: billing.billingData\n });\n return (\n <div className={'wc-stripe-ach__container'}>\n <Mandate text={getData('mandateText')}/>\n </div>\n )\n}\n\nconst ACHComponent = (props) => {\n return (\n <Elements stripe={loadStripe}>\n <ACHPaymentContent {...props}/>\n </Elements>\n )\n}\n\nconst Mandate = ({text}) => {\n return (\n <p className={'wc-stripe-ach__mandate'}>\n {text}\n </p>\n )\n}\n\nregisterPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icons')}/>,\n ariaLabel: 'ACH Payment',\n canMakePayment: ({cartTotals}) => cartTotals.currency_code === 'USD',\n content: <PaymentMethod\n getData={getData}\n content={ACHComponent}/>,\n savedTokenComponent: <SavedCardComponent getData={getData}/>,\n edit: <ACHComponent/>,\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: false,\n features: getData('features')\n }\n})","import './style.scss';\n\nimport './payment-method';","import {useCallback} from '@wordpress/element';\nimport {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, initStripe as loadStripe, canMakePayment} from \"../util\";\nimport {Elements, PaymentRequestButtonElement, useStripe} from \"@stripe/react-stripe-js\";\nimport ErrorBoundary from \"../error-boundary\";\nimport {\n usePaymentRequest,\n useProcessPaymentIntent,\n useExportedValues,\n useAfterProcessingPayment,\n useStripeError,\n useExpressBreakpointWidth\n} from '../hooks';\n\nconst getData = getSettings('stripe_applepay_data');\n\nconst ApplePayContent = (props) => {\n return (\n <ErrorBoundary>\n <div className='wc-stripe-apple-pay-container'>\n <Elements stripe={loadStripe}>\n <ApplePayButton {...props}/>\n </Elements>\n </div>\n </ErrorBoundary>\n );\n}\n\nconst ApplePayButton = (\n {\n getData,\n onClick,\n onClose,\n billing,\n shippingData,\n eventRegistration,\n emitResponse,\n onSubmit,\n activePaymentMethod,\n ...props\n }) => {\n const {onPaymentProcessing} = eventRegistration;\n const {responseTypes, noticeContexts} = emitResponse;\n const stripe = useStripe();\n const [error] = useStripeError();\n const canPay = (result) => result != null && result.applePay;\n const exportedValues = useExportedValues();\n useExpressBreakpointWidth({payment_method: getData('name'), width: 375});\n const {setPaymentMethod} = useProcessPaymentIntent({\n getData,\n billing,\n shippingData,\n onPaymentProcessing,\n emitResponse,\n error,\n onSubmit,\n activePaymentMethod,\n exportedValues\n });\n useAfterProcessingPayment({\n getData,\n eventRegistration,\n responseTypes,\n activePaymentMethod,\n messageContext: noticeContexts.EXPRESS_PAYMENTS\n });\n const {paymentRequest} = usePaymentRequest({\n getData,\n onClose,\n stripe,\n billing,\n shippingData,\n eventRegistration,\n setPaymentMethod,\n exportedValues,\n canPay\n });\n\n const handleClick = useCallback((e) => {\n if (paymentRequest) {\n e.preventDefault();\n onClick();\n paymentRequest.show();\n }\n }, [paymentRequest, onClick]);\n\n if (paymentRequest) {\n return (\n <button\n className={`apple-pay-button ${getData('buttonStyle')}`}\n style={{\n '-apple-pay-button-type': getData('buttonType')\n }}\n onClick={handleClick}/>\n\n )\n }\n return null;\n}\n\nconst ApplePayEdit = ({getData, ...props}) => {\n return (\n <div className={'apple-pay-block-editor'}>\n <img src={getData('editorIcon')}/>\n </div>\n )\n}\n\nregisterExpressPaymentMethod({\n name: getData('name'),\n canMakePayment: ({cartTotals, ...props}) => {\n if (getData('isAdmin')) {\n return true;\n }\n const {currency_code: currency, total_price} = cartTotals;\n return canMakePayment({\n country: getData('countryCode'),\n currency: currency.toLowerCase(),\n total: {\n label: getData('totalLabel'),\n amount: parseInt(total_price)\n }\n }, (result) => result != null && result.applePay);\n },\n content: <ApplePayContent getData={getData}/>,\n edit: <ApplePayEdit getData={getData}/>,\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: getData('showSaveOption'),\n features: getData('features')\n }\n})","import './style.scss';\nimport {registerCreditCardForm} from \"@paymentplugins/stripe/util\";\nimport {CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\nimport {__} from \"@wordpress/i18n\";\n\nconst Bootstrap = ({CardIcon, options, onChange}) => {\n return (\n <div className='wc-stripe-bootstrap-form'>\n <div className='row'>\n <div className='col-md-6 mb-3'>\n <CardNumberElement className='md-form md-outline stripe-input' options={options['cardNumber']}\n onChange={onChange(CardNumberElement)}/>\n <label htmlFor=\"stripe-card-number\">{__('Card Number', 'woo-stripe-payment')}</label>\n {CardIcon}\n </div>\n <div className='col-md-3 mb-3'>\n <CardExpiryElement className='md-form md-outline stripe-input' options={options['cardExpiry']}\n onChange={onChange(CardExpiryElement)}/>\n <label htmlFor=\"stripe-exp\">{__('Exp', 'woo-stripe-payment')}</label>\n </div>\n <div className='col-md-3 mb-3'>\n <CardCvcElement className=\"md-form md-outline stripe-input\" options={options['cardCvc']}\n onChange={onChange(CardCvcElement)}/>\n <label htmlFor=\"stripe-cvv\">{__('CVV', 'woo-stripe-payment')}</label>\n </div>\n </div>\n </div>\n )\n}\n\nregisterCreditCardForm({\n id: 'bootstrap',\n breakpoint: 475,\n component: <Bootstrap/>\n})","import {getCreditCardForm} from \"../../util\";\nimport {cloneElement, useRef, useCallback, useEffect, useState} from '@wordpress/element';\nimport {useElements, CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\nimport {sprintf, __} from '@wordpress/i18n';\nimport {useBreakpointWidth} from \"../../hooks\";\n\nconst classes = {\n focus: 'focused',\n empty: 'empty',\n invalid: 'invalid'\n}\n\nconst CustomCardForm = (\n {\n getData,\n onChange: eventChange,\n onComplete\n }) => {\n const [cardType, setCardType] = useState('');\n const elementOrder = useRef([]);\n const [container, setContainer] = useState(null);\n const elements = useElements();\n const id = getData('customForm');\n const {component: CardForm = null, breakpoint = 475} = getCreditCardForm(id);\n const postalCodeEnabled = getData('postalCodeEnabled');\n const options = {};\n const elementStatus = useRef({'cardNumber': {}, 'cardExpiry': {}, 'cardCvc': {}});\n ['cardNumber', 'cardExpiry', 'cardCvc'].forEach(type => {\n options[type] = {\n classes,\n ...getData('cardOptions'),\n ...getData('customFieldOptions')[type],\n }\n });\n const onChange = (element) => {\n setElementOrder(element);\n return (event) => {\n eventChange(event);\n elementStatus.current[event.elementType] = event;\n if (event.elementType === 'cardNumber') {\n if (event.brand === 'unknown') {\n setCardType('');\n } else {\n setCardType(event.brand);\n }\n }\n if (event.complete) {\n const idx = elementOrder.current.indexOf(element);\n if (elementOrder.current[idx + 1]) {\n const nextElement = elementOrder.current[idx + 1];\n elements.getElement(nextElement).focus();\n }\n }\n onComplete(isFormComplete());\n }\n }\n\n const isFormComplete = () => {\n let status = elementStatus.current;\n return Object.keys(status).filter(key => !!status[key].complete).length === Object.keys(status).length;\n }\n\n const setElementOrder = useCallback((element) => {\n if (!elementOrder.current.includes(element)) {\n elementOrder.current.push(element);\n }\n }, []);\n\n useBreakpointWidth({name: 'creditCardForm', width: breakpoint, node: container, className: 'small-form'});\n\n const getCardIconSrc = useCallback((type) => {\n for (let id of Object.keys(getData('cards'))) {\n if (id === type) {\n return getData('cards')[id];\n }\n }\n return '';\n }, []);\n\n if (!CardForm) {\n return (\n <div className='wc-stripe-custom-form-error'>\n <p>{sprintf(__('%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings.', 'woo-stripe-payment'), getData('customFormLabels')[id])}</p>\n </div>\n )\n }\n return (\n <div className={`wc-stripe-custom-form ${id}`} ref={setContainer}>\n {cloneElement(CardForm, {\n postalCodeEnabled,\n options,\n onChange,\n CardIcon: <CardIcon type={cardType} src={getCardIconSrc(cardType)}/>\n })}\n </div>\n )\n\n}\n\nconst CardIcon = ({type, src}) => {\n if (type) {\n return <img className={`wc-stripe-card ${type}`} src={src}/>\n }\n return null;\n}\n\nexport default CustomCardForm;\n","import './style.scss';\nimport {registerCreditCardForm} from \"@paymentplugins/stripe/util\";\nimport {CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\nimport {__} from \"@wordpress/i18n\";\nimport {useEffect, useCallback, useRef} from '@wordpress/element';\n\nconst SimpleForm = ({CardIcon, options, onChange}) => {\n useEffect(() => {\n }, []);\n return (\n <div className='wc-stripe-simple-form'>\n <div className=\"row\">\n <div className=\"field\">\n <div className='field-item'>\n <CardNumberElement id=\"stripe-card-number\" className=\"input empty\"\n options={options['cardNumber']}\n onChange={onChange(CardNumberElement)}/>\n <label htmlFor=\"stripe-card-number\"\n data-tid=\"\">{__('Card Number', 'woo-stripe-payment')}</label>\n <div className=\"baseline\"></div>\n {CardIcon}\n </div>\n </div>\n </div>\n <div className=\"row\">\n <div className=\"field half-width\">\n <div className='field-item'>\n <CardExpiryElement id=\"stripe-exp\" className=\"input empty\" options={options['cardExpiry']}\n onChange={onChange(CardExpiryElement)}/>\n <label htmlFor=\"stripe-exp\"\n data-tid=\"\">{__('Expiration', 'woo-stripe-payment')}</label>\n <div className=\"baseline\"></div>\n </div>\n </div>\n <div className=\"field half-width cvc\">\n <div className='field-item'>\n <CardCvcElement id=\"stripe-cvv\" className=\"input empty\" options={options['cardCvc']}\n onChange={onChange(CardCvcElement)}/>\n <label htmlFor=\"stripe-cvv\"\n data-tid=\"\">{__('CVV', 'woo-stripe-payment')}</label>\n <div className=\"baseline\"></div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nregisterCreditCardForm({\n id: 'simple',\n component: <SimpleForm/>,\n breakpoint: 375\n})","import {CardElement} from \"@stripe/react-stripe-js\";\nimport {isFieldRequired} from \"../../util\";\nimport {useMemo} from '@wordpress/element';\n\nconst StripeCardForm = ({getData, billing, onChange: eventChange, onComplete}) => {\n const elementStatus = {card: {}};\n const onChange = (event) => {\n eventChange(event);\n elementStatus[event.elementType] = event;\n onComplete(isFormComplete());\n }\n const isFormComplete = () => {\n return Object.keys(elementStatus).filter(type => !!elementStatus[type].complete).length === Object.keys(elementStatus).length;\n }\n const cardOptions = useMemo(() => {\n return {\n ...{\n value: {\n postalCode: billing?.billingData?.postcode\n },\n hidePostalCode: isFieldRequired('postcode'),\n iconStyle: 'default'\n }, ...getData('cardOptions')\n };\n }, [billing.billingData]);\n return (\n <div className='wc-stripe-inline-form'>\n <CardElement options={cardOptions} onChange={onChange}/>\n </div>\n )\n}\n\nexport default StripeCardForm;","import './style.scss';\n\nexport * from './payment-method';\n\nimport './components/bootstrap';\nimport './components/simple';\n","import {useState, useCallback, useMemo} from '@wordpress/element';\nimport {Elements, PaymentElement, useStripe, useElements} from '@stripe/react-stripe-js';\nimport {\n getSettings,\n initStripe as loadStripe\n} from '../util';\n\nimport {Installments} from '../../components/checkout/';\n\nimport {useProcessCheckoutError, useUpdatePaymentIntent} from \"../hooks\";\n\n\nconst getData = getSettings('stripe_cc_data');\n\nexport const PaymentElementComponent = ({cartData, ...props}) => {\n const clientSecret = cartData?.extensions?.stripe_cc?.clientSecret;\n return (\n <>\n <Elements stripe={loadStripe} options={{...getData('elementOptions'), clientSecret}}>\n <CardElement {...props} clientSecret={clientSecret}/>\n </Elements>\n </>\n );\n}\n\nconst CardElement = ({onComplete, clientSecret, ...props}) => {\n const [formComplete, setFormComplete] = useState(false);\n const installmentsActive = getData('installmentsActive')\n const elements = useElements();\n const stripe = useStripe();\n const {billing: {billingData}, eventRegistration, emitResponse, shouldSavePayment} = props;\n const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;\n const {responseTypes, noticeContexts} = emitResponse;\n const name = getData('name');\n const onChange = useCallback((event) => {\n setFormComplete(event.complete);\n }, []);\n const {updatePaymentIntent, addPaymentMethodData} = useUpdatePaymentIntent({\n clientSecret,\n billingData,\n eventRegistration,\n responseTypes,\n shouldSavePayment,\n noticeContexts,\n name\n });\n\n useProcessCheckoutError({\n responseTypes,\n subscriber: onCheckoutAfterProcessingWithError,\n messageContext: noticeContexts.PAYMENTS\n });\n\n const getPaymentMethod = useCallback(async () => {\n let paymentMethod = null;\n const result = await updatePaymentIntent();\n if (result?.paymentIntent?.payment_method) {\n paymentMethod = result.paymentIntent.payment_method;\n }\n return paymentMethod;\n }, [updatePaymentIntent]);\n\n const options = {\n fields: {\n billingDetails: {address: 'never'}\n },\n wallets: {applePay: 'never', googlePay: 'never'}\n }\n return (\n <>\n <PaymentElement options={options} onChange={onChange}/>\n {installmentsActive && <Installments\n paymentMethodName={getData('name')}\n stripe={stripe}\n cardFormComplete={formComplete}\n getPaymentMethod={getPaymentMethod}\n addPaymentMethodData={addPaymentMethodData}/>}\n </>\n )\n}\n\nexport default PaymentElementComponent;","import {useEffect, useState, useCallback, useMemo} from '@wordpress/element';\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {\n initStripe as loadStripe,\n getSettings,\n} from '../util';\nimport {Elements, CardElement, useStripe, useElements, CardNumberElement} from '@stripe/react-stripe-js';\nimport {PaymentMethodLabel, PaymentMethod} from '../../components/checkout';\nimport SavedCardComponent from '../saved-card-component';\nimport CustomCardForm from './components/custom-card-form';\nimport StripeCardForm from \"./components/stripe-card-form\";\nimport {Installments} from '../../components/checkout';\nimport PaymentElementComponent from './payment-element';\nimport {\n useProcessPaymentIntent,\n useAfterProcessingPayment,\n useSetupIntent,\n useStripeError\n} from \"../hooks\";\n\nconst getData = getSettings('stripe_cc_data');\n\nconst CreditCardContent = (props) => {\n const [error, setError] = useState(false);\n useEffect(() => {\n loadStripe.catch(error => {\n setError(error);\n })\n }, [setError]);\n if (error) {\n throw new Error(error);\n }\n if (getData('isPaymentElement')) {\n return (\n <PaymentElementComponent {...props}/>\n )\n }\n return (\n <Elements stripe={loadStripe} options={getData('elementOptions')}>\n <CreditCardElement {...props}/>\n </Elements>\n );\n};\n\nconst CreditCardElement = (\n {\n getData,\n billing,\n shippingData,\n emitResponse,\n eventRegistration,\n activePaymentMethod,\n shouldSavePayment\n }) => {\n const [error, setError] = useStripeError();\n const [formComplete, setFormComplete] = useState(false);\n const {onPaymentProcessing} = eventRegistration;\n const stripe = useStripe();\n const elements = useElements();\n const getPaymentMethodArgs = useCallback(() => {\n const elType = getData('customFormActive') ? CardNumberElement : CardElement;\n return {card: elements.getElement(elType)};\n }, [stripe, elements]);\n\n const {setupIntent, removeSetupIntent} = useSetupIntent({\n getData,\n cartTotal: billing.cartTotal,\n setError\n })\n\n const {getCreatePaymentMethodArgs, addPaymentMethodData} = useProcessPaymentIntent({\n getData,\n billing,\n shippingData,\n emitResponse,\n error,\n onPaymentProcessing,\n shouldSavePayment,\n setupIntent,\n removeSetupIntent,\n getPaymentMethodArgs,\n activePaymentMethod\n });\n useAfterProcessingPayment({\n getData,\n eventRegistration,\n responseTypes: emitResponse.responseTypes,\n activePaymentMethod,\n shouldSavePayment\n });\n\n const onChange = (event) => {\n if (event.error) {\n setError(event.error);\n } else {\n setError(false);\n }\n }\n\n const getPaymentMethod = useCallback(async () => {\n let paymentMethod = null;\n const result = await stripe.createPaymentMethod(getCreatePaymentMethodArgs());\n if (result?.paymentMethod?.id) {\n paymentMethod = result.paymentMethod.id;\n }\n return paymentMethod;\n }, [stripe, getCreatePaymentMethodArgs]);\n\n const Tag = getData('customFormActive') ? CustomCardForm : StripeCardForm;\n return (\n <div className='wc-stripe-card-container'>\n <Tag {...{getData, billing, onChange}} onComplete={setFormComplete}/>\n {getData('installmentsActive') && <Installments\n paymentMethodName={getData('name')}\n cardFormComplete={formComplete}\n addPaymentMethodData={addPaymentMethodData}\n getPaymentMethod={getPaymentMethod}/>}\n\n </div>\n );\n}\n\nregisterPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icons')}/>,\n ariaLabel: 'Credit Cards',\n canMakePayment: () => loadStripe,\n content: <PaymentMethod content={CreditCardContent} getData={getData}/>,\n savedTokenComponent: <SavedCardComponent getData={getData} method={getData('isPaymentElement') ? 'confirmCardPayment' : 'handleCardAction'}/>,\n edit: <PaymentMethod content={CreditCardContent} getData={getData}/>,\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: true,\n features: getData('features')\n }\n})","import {Component} from '@wordpress/element';\n\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.state = {hasError: false, error: null, errorInfo: null};\n }\n\n componentDidCatch(error, errorInfo) {\n this.setState({\n hasError: true,\n error,\n errorInfo\n })\n }\n\n render() {\n if (this.state.hasError) {\n return (\n <>\n {this.state.error && <div className='wc-stripe-block-error'>{this.state.error.toString()}</div>}\n {this.state.errorInfo &&\n <div className='wc-stripe-block-error'>{this.state.errorInfo.componentStack}</div>}\n </>\n )\n }\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;","import {useRef, useEffect} from '@wordpress/element';\nimport {usePaymentsClient, usePaymentRequest} from './hooks';\nimport {\n useProcessPaymentIntent,\n useStripeError,\n useExportedValues,\n useExpressBreakpointWidth, useAfterProcessingPayment\n} from '../hooks';\nimport {getSettings} from '@paymentplugins/stripe/util';\n\nconst {publishableKey} = getSettings('stripeGeneralData')();\n\nconst GooglePayButton = (\n {\n getData,\n setErrorMessage,\n billing,\n shippingData,\n canMakePayment,\n checkoutStatus,\n eventRegistration,\n activePaymentMethod,\n onClick,\n onClose,\n ...props\n }) => {\n const merchantInfo = {\n merchantId: getData('merchantId'),\n merchantName: getData('merchantName')\n };\n const [error, setError] = useStripeError();\n const buttonContainer = useRef();\n const {onSubmit, emitResponse} = props;\n const {onPaymentProcessing} = eventRegistration;\n const exportedValues = useExportedValues();\n const width = getData('buttonStyle').buttonType === 'long' ? 390 : 375;\n const {setPaymentMethod} = useProcessPaymentIntent({\n getData,\n billing,\n shippingData,\n onPaymentProcessing,\n emitResponse,\n error,\n exportedValues,\n onSubmit,\n checkoutStatus,\n activePaymentMethod\n });\n\n const buildPaymentRequest = usePaymentRequest({\n getData,\n publishableKey,\n merchantInfo,\n billing,\n shippingData\n })\n\n const {button, removeButton} = usePaymentsClient({\n merchantInfo,\n buildPaymentRequest,\n billing,\n shippingData,\n eventRegistration,\n canMakePayment,\n setErrorMessage,\n onSubmit,\n setPaymentMethod,\n exportedValues,\n onClick,\n onClose,\n getData\n });\n\n useAfterProcessingPayment({\n getData,\n eventRegistration,\n responseTypes: emitResponse.responseTypes,\n activePaymentMethod\n });\n\n useExpressBreakpointWidth({payment_method: getData('name'), width});\n\n useEffect(() => {\n if (button) {\n // prevent button duplicates\n removeButton(buttonContainer.current);\n buttonContainer.current.append(button);\n }\n }, [button]);\n\n return (\n <div className='wc-stripe-gpay-button-container' ref={buttonContainer}></div>\n )\n}\n\nexport default GooglePayButton;","export const BASE_PAYMENT_METHOD = {\n type: 'CARD',\n parameters: {\n allowedAuthMethods: [\"PAN_ONLY\"],\n allowedCardNetworks: [\"AMEX\", \"DISCOVER\", \"INTERAC\", \"JCB\", \"MASTERCARD\", \"VISA\"],\n assuranceDetailsRequired: true\n }\n};\n\nexport const BASE_PAYMENT_REQUEST = {\n apiVersion: 2,\n apiVersionMinor: 0\n}","export * from './use-payments-client';\nexport * from './use-payment-request';\nexport * from './use-error-message';","import {useState} from '@wordpress/element';\n\nexport const useErrorMessage = () => {\n const [errorMessage, setErrorMessage] = useState(false);\n return {errorMessage, setErrorMessage};\n}","import {useEffect, useCallback, useRef, useMemo} from '@wordpress/element';\nimport {BASE_PAYMENT_REQUEST, BASE_PAYMENT_METHOD} from \"../constants\";\nimport {isEmpty, isFieldRequired} from \"../../util\";\nimport {getTransactionInfo, getShippingOptionParameters} from \"../util\";\n\nexport const usePaymentRequest = ({getData, publishableKey, merchantInfo, billing, shippingData}) => {\n const {processingCountry, totalPriceLabel} = getData();\n const currentData = useRef({\n shippingData,\n billing\n });\n\n useEffect(() => {\n currentData.current = {\n shippingData,\n billing\n }\n });\n\n const buildPaymentRequest = useCallback(() => {\n const {billing, shippingData} = currentData.current;\n const {billingData} = billing;\n const {shippingRates} = shippingData;\n let options = {\n ...{\n emailRequired: isEmpty(billingData.email),\n merchantInfo,\n allowedPaymentMethods: [{\n ...{\n type: 'CARD',\n tokenizationSpecification: {\n type: \"PAYMENT_GATEWAY\",\n parameters: {\n gateway: 'stripe',\n \"stripe:version\": \"2018-10-31\",\n \"stripe:publishableKey\": publishableKey\n }\n }\n }, ...BASE_PAYMENT_METHOD\n }],\n shippingAddressRequired: shippingData.needsShipping,\n transactionInfo: getTransactionInfo({\n billing,\n processingCountry,\n totalPriceLabel\n }),\n callbackIntents: ['PAYMENT_AUTHORIZATION']\n }, ...BASE_PAYMENT_REQUEST\n };\n options.allowedPaymentMethods[0].parameters.billingAddressRequired = true;\n options.allowedPaymentMethods[0].parameters.billingAddressParameters = {\n format: 'FULL',\n phoneNumberRequired: isFieldRequired(shippingData.needsShipping ? 'shipping-phone' : 'phone', billingData.country) && isEmpty(billingData.phone)\n };\n if (options.shippingAddressRequired) {\n options.callbackIntents = [...options.callbackIntents, ...['SHIPPING_ADDRESS', 'SHIPPING_OPTION']];\n options.shippingOptionRequired = true;\n const shippingOptionParameters = getShippingOptionParameters(shippingRates);\n if (shippingOptionParameters.shippingOptions.length > 0) {\n options = {...options, shippingOptionParameters};\n }\n }\n return options;\n }, []);\n\n\n return buildPaymentRequest;\n}","import {useState, useEffect, useCallback, useMemo, useRef} from '@wordpress/element';\nimport apiFetch from '@wordpress/api-fetch';\nimport {\n getRoute,\n getErrorMessage,\n getSelectedShippingOption,\n getBillingDetailsFromAddress,\n isAddressValid,\n isEmpty,\n StripeError\n} from \"../../util\";\nimport {useStripe} from \"@stripe/react-stripe-js\";\nimport {toCartAddress} from \"../util\";\nimport {usePaymentEvents} from \"../../hooks\";\n\nexport const usePaymentsClient = (\n {\n merchantInfo,\n buildPaymentRequest,\n billing,\n shippingData,\n eventRegistration,\n canMakePayment,\n setErrorMessage,\n setPaymentMethod,\n exportedValues,\n onClick,\n onClose,\n getData\n }) => {\n const {environment} = getData();\n const [paymentsClient, setPaymentsClient] = useState();\n const [button, setButton] = useState(null);\n const currentBilling = useRef(billing);\n const currentShipping = useRef(shippingData);\n const {needsShipping} = shippingData;\n const stripe = useStripe();\n const {addPaymentEvent} = usePaymentEvents({\n billing,\n shippingData,\n eventRegistration\n });\n useEffect(() => {\n currentBilling.current = billing;\n currentShipping.current = shippingData;\n });\n\n const setAddressData = useCallback((paymentData) => {\n let billingAddress;\n if (paymentData?.paymentMethodData?.info?.billingAddress) {\n billingAddress = paymentData.paymentMethodData.info.billingAddress;\n if (isAddressValid(currentBilling.current.billingData, ['phone', 'email']) && isEmpty(currentBilling.current.billingData?.phone)) {\n billingAddress = {phoneNumber: billingAddress.phoneNumber};\n }\n exportedValues.billingData = currentBilling.current.billingData = toCartAddress(billingAddress, {email: paymentData.email});\n }\n if (paymentData?.shippingAddress) {\n exportedValues.shippingAddress = toCartAddress({...paymentData.shippingAddress, phoneNumber: billingAddress?.phoneNumber});\n }\n }, []);\n\n const removeButton = useCallback((parentElement) => {\n while (parentElement.firstChild) {\n parentElement.removeChild(parentElement.firstChild);\n }\n }, [button]);\n const handleClick = useCallback(async () => {\n onClick();\n try {\n let paymentData = await paymentsClient.loadPaymentData(buildPaymentRequest());\n\n // set the address data so it can be used during the checkout process\n setAddressData(paymentData);\n\n const data = JSON.parse(paymentData.paymentMethodData.tokenizationData.token);\n\n let result = await stripe.createPaymentMethod({\n type: 'card',\n card: {token: data.id},\n billing_details: getBillingDetailsFromAddress(currentBilling.current.billingData)\n });\n\n if (result.error) {\n throw new StripeError(result.error);\n }\n\n setPaymentMethod(result.paymentMethod.id);\n } catch (err) {\n if (err?.statusCode === \"CANCELED\") {\n onClose();\n } else {\n console.log(getErrorMessage(err));\n setErrorMessage(getErrorMessage(err));\n }\n }\n }, [\n stripe,\n paymentsClient,\n onClick,\n buildPaymentRequest\n ]);\n\n const createButton = useCallback(async () => {\n try {\n if (paymentsClient && stripe) {\n await canMakePayment;\n setButton(paymentsClient.createButton({\n onClick: handleClick,\n ...getData('buttonStyle')\n }));\n }\n } catch (err) {\n console.log(err);\n }\n }, [\n stripe,\n paymentsClient,\n handleClick\n ]);\n\n const paymentOptions = useMemo(() => {\n let options = {\n environment,\n merchantInfo,\n paymentDataCallbacks: {\n onPaymentAuthorized: () => Promise.resolve({transactionState: \"SUCCESS\"})\n }\n }\n if (needsShipping) {\n options.paymentDataCallbacks.onPaymentDataChanged = (paymentData) => {\n const shipping = currentShipping.current;\n const {shippingAddress: address, shippingOptionData} = paymentData;\n const selectedRates = getSelectedShippingOption(shippingOptionData.id);\n const shipping_method = ['default', 'shipping_option_unselected'].includes(shippingOptionData.id) ? null : shippingOptionData.id;\n return new Promise((resolve, reject) => {\n apiFetch({\n method: 'POST',\n url: getRoute('payment/data'),\n data: {\n address: toCartAddress(address),\n shipping_method,\n page_id: null\n }\n }).then(response => {\n if (response.code) {\n resolve(response.data.data);\n } else {\n resolve(response.data.paymentRequestUpdate);\n }\n }).catch(response => {\n resolve(response.data);\n }).finally(() => {\n if (shipping_method && shipping_method !== 'shipping_option_unselected') {\n shipping.setSelectedRates(...selectedRates);\n }\n });\n });\n }\n }\n return options;\n }, [needsShipping]);\n\n useEffect(() => {\n setPaymentsClient(new google.payments.api.PaymentsClient(paymentOptions));\n }, [paymentOptions]);\n\n useEffect(() => {\n createButton();\n }, [createButton])\n\n return {\n button,\n removeButton\n };\n}","import './style.scss';\n\nexport * from './payment-method';","import {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, initStripe as loadStripe, isCartPage} from '../util';\nimport {useErrorMessage} from \"./hooks\";\nimport GooglePayButton from './button';\nimport {BASE_PAYMENT_METHOD, BASE_PAYMENT_REQUEST} from './constants';\nimport google from '@googlepay';\nimport {Elements} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_googlepay_data');\n\nconst canMakePayment = (() => {\n const paymentsClient = new google.payments.api.PaymentsClient({\n environment: getData('environment'),\n merchantInfo: {\n merchantId: getData('merchantId'),\n merchantName: getData('merchantName')\n }\n });\n const isReadyToPayRequest = {...BASE_PAYMENT_REQUEST, allowedPaymentMethods: [BASE_PAYMENT_METHOD]};\n return paymentsClient.isReadyToPay(isReadyToPayRequest).then(() => {\n return true;\n }).catch(err => {\n console.log(err);\n return false;\n })\n})();\n\nconst GooglePayContent = ({getData, components, ...props}) => {\n const {ValidationInputError} = components;\n const {errorMessage, setErrorMessage} = useErrorMessage();\n return (\n <div className='wc-stripe-gpay-container'>\n <Elements stripe={loadStripe}>\n <GooglePayButton getData={getData}\n canMakePayment={canMakePayment}\n setErrorMessage={setErrorMessage}\n {...props}/>\n {errorMessage && <ValidationInputError errorMessage={errorMessage}/>}\n </Elements>\n </div>\n )\n}\n\nconst GooglePayEdit = ({getData, ...props}) => {\n const buttonType = getData('buttonStyle').buttonType;\n const src = getData('editorIcons')?.[buttonType] || 'long';\n return (\n <div className={`gpay-block-editor ${buttonType}`}>\n <img src={src}/>\n </div>\n )\n}\n\nregisterExpressPaymentMethod({\n name: getData('name'),\n canMakePayment: () => {\n if (getData('isAdmin')) {\n if (isCartPage()) {\n return getData('cartCheckoutEnabled');\n }\n return true;\n }\n if (isCartPage() && !getData('cartCheckoutEnabled')) {\n return false;\n }\n return loadStripe.then(stripe => {\n if (stripe.error) {\n return stripe;\n }\n return canMakePayment;\n });\n },\n content: <GooglePayContent getData={getData}/>,\n edit: <GooglePayEdit getData={getData}/>,\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: getData('showSaveOption'),\n features: getData('features')\n }\n})","import {getShippingOptionId, removeNumberPrecision, toCartAddress as mapAddressToCartAddress} from \"../util\";\nimport {formatPrice} from '../util';\nimport {getSetting} from '@woocommerce/settings'\n\nconst generalData = getSetting('stripeGeneralData');\n\nconst ADDRESS_MAPPINGS = {\n name: (address, name) => {\n address.first_name = name.split(' ').slice(0, -1).join(' ');\n address.last_name = name.split(' ').pop();\n return address;\n },\n countryCode: 'country',\n address1: 'address_1',\n address2: 'address_2',\n locality: 'city',\n administrativeArea: 'state',\n postalCode: 'postcode',\n email: 'email',\n phoneNumber: 'phone'\n}\n\nexport const getTransactionInfo = ({billing, processingCountry, totalPriceLabel}, status = 'ESTIMATED') => {\n const {cartTotal, cartTotalItems, currency} = billing;\n const transactionInfo = {\n countryCode: processingCountry,\n currencyCode: currency.code,\n totalPriceStatus: status,\n totalPrice: removeNumberPrecision(cartTotal.value, currency.minorUnit).toString(),\n displayItems: getDisplayItems(cartTotalItems, currency.minorUnit),\n totalPriceLabel\n }\n return transactionInfo;\n}\n\nexport const getPaymentRequestUpdate = ({billing, shippingData, processingCountry, totalPriceLabel}) => {\n const {needsShipping, shippingRates} = shippingData;\n let update = {\n newTransactionInfo: getTransactionInfo({\n billing, processingCountry, totalPriceLabel\n }, 'FINAL')\n }\n if (needsShipping) {\n update.newShippingOptionParameters = getShippingOptionParameters(shippingRates);\n }\n return update;\n}\n\n/**\n * Return an array of line item objects\n * @param cartTotalItems\n * @param unit\n * @returns {[]}\n */\nconst getDisplayItems = (cartTotalItems, unit = 2) => {\n let items = [];\n const keys = ['total_tax', 'total_shipping'];\n cartTotalItems.forEach(item => {\n if (0 < item.value || (item.key && keys.includes(item.key))) {\n items.push({\n label: item.label,\n type: 'LINE_ITEM',\n price: removeNumberPrecision(item.value, unit).toString()\n });\n }\n })\n return items;\n}\n\nexport const getShippingOptionParameters = (shippingRates) => {\n const shippingOptions = getShippingOptions(shippingRates);\n const shippingOptionIds = shippingOptions.map(option => option.id);\n let defaultSelectedOptionId = shippingOptionIds.slice(0, 1).shift();\n shippingRates.forEach((shippingPackage, idx) => {\n shippingPackage.shipping_rates.forEach(rate => {\n if (rate.selected) {\n defaultSelectedOptionId = getShippingOptionId(idx, rate.rate_id);\n }\n });\n });\n return {\n shippingOptions,\n defaultSelectedOptionId,\n }\n}\n\n//id label description\nexport const getShippingOptions = (shippingRates) => {\n let options = [];\n shippingRates.forEach((shippingPackage, idx) => {\n let rates = shippingPackage.shipping_rates.map(rate => {\n let txt = document.createElement('textarea');\n txt.innerHTML = rate.name;\n let price = formatPrice(rate.price, rate.currency_code);\n return {\n id: getShippingOptionId(idx, rate.rate_id),\n label: txt.value,\n description: `${price}`\n }\n });\n options = [...options, ...rates];\n });\n return options;\n}\n\nexport const toCartAddress = mapAddressToCartAddress(ADDRESS_MAPPINGS);\n","export * from './use-process-payment-intent';\nexport * from './use-after-process-payment';\nexport * from './use-setup-intent';\nexport * from './use-stripe-error';\nexport * from './use-exported-values';\nexport * from './use-payment-request';\nexport * from './use-payment-events';\nexport * from './use-breakpoint-width';\nexport * from './use-process-checkout-error';\nexport * from './use-update-payment-intent';","import {useEffect} from '@wordpress/element'\nimport {useStripe} from \"@stripe/react-stripe-js\";\nimport {handleCardAction} from \"../util\";\nimport {useProcessCheckoutError} from \"./use-process-checkout-error\";\n\nexport const useAfterProcessingPayment = (\n {\n getData,\n eventRegistration,\n responseTypes,\n activePaymentMethod,\n shouldSavePayment = false,\n messageContext = null\n }) => {\n const stripe = useStripe();\n const {onCheckoutAfterProcessingWithSuccess, onCheckoutAfterProcessingWithError} = eventRegistration;\n useProcessCheckoutError({\n responseTypes,\n subscriber: onCheckoutAfterProcessingWithError,\n messageContext\n });\n useEffect(() => {\n let unsubscribeAfterProcessingWithSuccess = onCheckoutAfterProcessingWithSuccess(async ({redirectUrl}) => {\n if (getData('name') === activePaymentMethod) {\n //check if response is in redirect. If so, open modal\n return await handleCardAction({\n redirectUrl,\n responseTypes,\n name: activePaymentMethod,\n savePaymentMethod: shouldSavePayment\n });\n }\n return null;\n })\n return () => unsubscribeAfterProcessingWithSuccess()\n }, [\n stripe,\n responseTypes,\n onCheckoutAfterProcessingWithSuccess,\n activePaymentMethod,\n shouldSavePayment\n ]);\n}","import {useState, useEffect, useCallback} from '@wordpress/element';\nimport {storeInCache, getFromCache} from \"../util\";\n\nexport const useBreakpointWidth = (\n {\n name,\n width,\n node,\n className\n }) => {\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n const getMaxWidth = useCallback((name) => {\n const maxWidth = getFromCache(name);\n return maxWidth ? parseInt(maxWidth) : 0;\n }, []);\n const setMaxWidth = useCallback((name, width) => storeInCache(name, width), []);\n\n useEffect(() => {\n const el = typeof node === 'function' ? node() : node;\n\n if (el) {\n const maxWidth = getMaxWidth(name);\n if (!maxWidth || width > maxWidth) {\n setMaxWidth(name, width);\n }\n if (el.clientWidth < width) {\n el.classList.add(className);\n } else {\n if (el.clientWidth > maxWidth) {\n el.classList.remove(className);\n }\n }\n }\n }, [windowWidth, node]);\n useEffect(() => {\n const handleResize = () => setWindowWidth(window.innerWidth);\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n });\n}\n\nexport const useExpressBreakpointWidth = (\n {\n payment_method,\n width\n }) => {\n const node = useCallback(() => {\n const el = document.getElementById(`express-payment-method-${payment_method}`);\n return el ? el.parentNode : null;\n }, []);\n useBreakpointWidth({\n name: 'expressMaxWidth',\n width,\n node,\n className: 'wc-stripe-express__sm'\n });\n\n}","import {useRef} from '@wordpress/element';\n\nexport const useExportedValues = () => {\n const exportedValues = useRef({});\n return exportedValues.current;\n}","import {useEffect, useCallback, useRef, useState} from '@wordpress/element';\nimport {hasShippingRates} from '../util';\n\nexport const usePaymentEvents = (\n {\n billing,\n shippingData,\n eventRegistration\n }) => {\n const {onShippingRateSuccess, onShippingRateFail, onShippingRateSelectSuccess} = eventRegistration;\n const currentBilling = useRef(billing);\n const currentShipping = useRef(shippingData);\n const [handler, setHandler] = useState(null);\n const [paymentEvents, setPaymentEvent] = useState({\n onShippingChanged: false\n });\n const addPaymentEvent = useCallback((name, handler, execute = false) => {\n if (execute) {\n setHandler({[name]: handler});\n } else {\n setPaymentEvent({...paymentEvents, [name]: handler});\n }\n }, [paymentEvents, setPaymentEvent]);\n const removePaymentEvent = useCallback((name) => {\n if (paymentEvents[name]) {\n delete paymentEvents[name];\n setPaymentEvent(paymentEvents);\n }\n }, [paymentEvents]);\n\n const onShippingChanged = useCallback(() => {\n const shipping = currentShipping.current;\n const billing = currentBilling.current;\n if (paymentEvents.onShippingChanged && !shipping.isSelectingRate && !shipping.shippingRatesLoading) {\n const handler = paymentEvents.onShippingChanged;\n let success = true;\n if (!hasShippingRates(shipping.shippingRates)) {\n success = false;\n }\n handler(success, {\n billing,\n shipping\n });\n removePaymentEvent('onShippingChanged');\n }\n }, [paymentEvents, removePaymentEvent]);\n\n useEffect(() => {\n currentBilling.current = billing;\n currentShipping.current = shippingData;\n });\n\n useEffect(() => {\n if (handler) {\n if (handler.onShippingChanged) {\n handler.onShippingChanged(true, {\n billing: currentBilling.current,\n shipping: currentShipping.current\n })\n setHandler(null);\n }\n }\n }, [handler]);\n\n useEffect(() => {\n const unsubscribeShippingRateSuccess = onShippingRateSuccess(onShippingChanged);\n const unsubscribeShippingRateSelectSuccess = onShippingRateSelectSuccess(onShippingChanged);\n const unsubscribeShippingRateFail = onShippingRateFail(({hasInvalidAddress, hasError}) => {\n if (paymentEvents.onShippingChanged) {\n const handler = paymentEvents.onShippingChanged;\n handler(false);\n removePaymentEvent('onShippingChanged');\n }\n });\n\n return () => {\n unsubscribeShippingRateSuccess();\n unsubscribeShippingRateFail();\n unsubscribeShippingRateSelectSuccess();\n }\n }, [\n paymentEvents,\n onShippingRateSuccess,\n onShippingRateFail,\n onShippingRateSelectSuccess\n ]);\n\n return {addPaymentEvent, removePaymentEvent};\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\nimport {usePaymentEvents} from './use-payment-events';\nimport {getIntermediateAddress} from '../util';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport {\n getDisplayItems,\n getShippingOptions,\n getSelectedShippingOption,\n isFieldRequired,\n toCartAddress as mapToCartAddress\n} from \"../util\";\n\nconst toCartAddress = mapToCartAddress();\n\nexport const usePaymentRequest = (\n {\n getData,\n onClose,\n stripe,\n billing,\n shippingData,\n eventRegistration,\n setPaymentMethod,\n exportedValues,\n canPay\n }) => {\n const {addPaymentEvent} = usePaymentEvents({\n billing,\n shippingData,\n eventRegistration\n });\n const {shippingAddress, needsShipping, shippingRates} = shippingData;\n const {billingData, cartTotalItems, currency, cartTotal} = billing;\n const [paymentRequest, setPaymentRequest] = useState(null);\n const paymentRequestOptions = useRef({});\n const currentShipping = useRef(shippingData)\n const currentBilling = useRef(billing);\n\n useEffect(() => {\n currentShipping.current = shippingData;\n currentBilling.current = billing;\n }, [shippingData]);\n\n useEffect(() => {\n if (stripe) {\n const options = {\n country: getData('countryCode'),\n currency: currency?.code.toLowerCase(),\n total: {\n amount: cartTotal.value,\n label: cartTotal.label,\n pending: true\n },\n requestPayerName: true,\n requestPayerEmail: isFieldRequired('email', billingData.country),\n requestPayerPhone: isFieldRequired(needsShipping ? 'shipping-phone' : 'phone', billingData.country),\n requestShipping: needsShipping,\n displayItems: getDisplayItems(cartTotalItems, currency)\n }\n if (options.requestShipping) {\n options.shippingOptions = getShippingOptions(shippingRates);\n }\n paymentRequestOptions.current = options;\n const paymentRequest = stripe.paymentRequest(paymentRequestOptions.current);\n paymentRequest.canMakePayment().then(result => {\n if (canPay(result)) {\n setPaymentRequest(paymentRequest);\n } else {\n setPaymentRequest(null);\n }\n });\n }\n }, [\n stripe,\n cartTotal.value,\n billingData.country,\n shippingRates,\n cartTotalItems,\n currency.code\n ]);\n\n useEffect(() => {\n if (paymentRequest) {\n if (paymentRequestOptions.current.requestShipping) {\n paymentRequest.on('shippingaddresschange', onShippingAddressChange);\n paymentRequest.on('shippingoptionchange', onShippingOptionChange);\n }\n paymentRequest.on('cancel', onClose);\n paymentRequest.on('paymentmethod', onPaymentMethodReceived);\n }\n }, [\n paymentRequest,\n onShippingAddressChange,\n onClose,\n onPaymentMethodReceived\n ]);\n\n const updatePaymentEvent = useCallback((event) => (success, {billing, shipping}) => {\n const {cartTotal, cartTotalItems, currency} = billing;\n const {shippingRates} = shipping;\n if (success) {\n event.updateWith({\n status: 'success',\n total: {\n amount: cartTotal.value,\n label: cartTotal.label,\n pending: false\n },\n displayItems: getDisplayItems(cartTotalItems, currency),\n shippingOptions: getShippingOptions(shippingRates)\n });\n } else {\n event.updateWith({status: 'invalid_shipping_address'});\n }\n }, []);\n\n const onShippingAddressChange = useCallback(event => {\n const {shippingAddress} = event;\n const shipping = currentShipping.current;\n const intermediateAddress = toCartAddress(shippingAddress);\n shipping.setShippingAddress({...shipping.shippingAddress, ...intermediateAddress});\n const addressEqual = isShallowEqual(getIntermediateAddress(shipping.shippingAddress), intermediateAddress);\n addPaymentEvent('onShippingChanged', updatePaymentEvent(event), addressEqual);\n }, [addPaymentEvent]);\n\n const onShippingOptionChange = useCallback(event => {\n const {shippingOption} = event;\n const shipping = currentShipping.current;\n shipping.setSelectedRates(...getSelectedShippingOption(shippingOption.id));\n addPaymentEvent('onShippingChanged', updatePaymentEvent(event));\n }, [addPaymentEvent]);\n\n const onPaymentMethodReceived = useCallback((paymentResponse) => {\n const {paymentMethod, payerName = null, payerEmail = null, payerPhone = null} = paymentResponse;\n // set address data\n let billingData = {payerName, payerEmail, payerPhone};\n if (paymentMethod?.billing_details.address) {\n billingData = toCartAddress(paymentMethod.billing_details.address, billingData);\n }\n exportedValues.billingData = billingData;\n\n if (paymentResponse.shippingAddress) {\n exportedValues.shippingAddress = toCartAddress(paymentResponse.shippingAddress, {payerPhone});\n }\n\n // set payment method\n setPaymentMethod(paymentMethod.id);\n paymentResponse.complete(\"success\");\n }, []);\n\n return {paymentRequest};\n}","import {useEffect} from '@wordpress/element';\n\nexport const useProcessCheckoutError = (\n {\n responseTypes,\n subscriber,\n messageContext = null\n }) => {\n useEffect(() => {\n const unsubscribe = subscriber((data) => {\n if (data?.processingResponse.paymentDetails?.stripeErrorMessage) {\n console.log(data.processingResponse.paymentDetails.stripeErrorMessage);\n return {\n type: responseTypes.ERROR,\n message: data.processingResponse.paymentDetails.stripeErrorMessage,\n messageContext\n };\n }\n return null;\n });\n return () => unsubscribe();\n }, [responseTypes, subscriber]);\n}","import {useEffect, useState, useCallback, useRef} from '@wordpress/element';\nimport {useStripe} from '@stripe/react-stripe-js';\nimport {\n ensureSuccessResponse,\n ensureErrorResponse,\n getBillingDetailsFromAddress,\n StripeError\n} from '../util';\n\nexport const useProcessPaymentIntent = (\n {\n getData,\n billing,\n shippingData,\n onPaymentProcessing,\n emitResponse,\n error,\n onSubmit,\n activePaymentMethod,\n paymentType = 'card',\n setupIntent = null,\n removeSetupIntent = null,\n shouldSavePayment = false,\n exportedValues = {},\n getPaymentMethodArgs = () => ({})\n }) => {\n const {billingData} = billing;\n const {shippingAddress} = shippingData;\n const {responseTypes} = emitResponse;\n const [paymentMethod, setPaymentMethod] = useState(null);\n const stripe = useStripe();\n const currentPaymentMethodArgs = useRef(getPaymentMethodArgs);\n const paymentMethodData = useRef({});\n useEffect(() => {\n currentPaymentMethodArgs.current = getPaymentMethodArgs;\n }, [getPaymentMethodArgs]);\n\n const addPaymentMethodData = useCallback((data) => {\n paymentMethodData.current = {...paymentMethodData.current, ...data};\n }, []);\n\n const getCreatePaymentMethodArgs = useCallback(() => {\n const args = {\n type: paymentType,\n billing_details: getBillingDetailsFromAddress(exportedValues?.billingData ? exportedValues.billingData : billingData)\n }\n return {...args, ...currentPaymentMethodArgs.current()};\n }, [billingData, paymentType, getPaymentMethodArgs]);\n\n const getSuccessResponse = useCallback((paymentMethodId, shouldSavePayment) => {\n const response = {\n meta: {\n paymentMethodData: {\n [`${getData('name')}_token_key`]: paymentMethodId,\n [`${getData('name')}_save_source_key`]: shouldSavePayment,\n ...paymentMethodData.current\n }\n }\n }\n if (exportedValues?.billingData) {\n response.meta.billingData = exportedValues.billingData;\n response.meta.billingAddress = exportedValues.billingData;\n }\n if (exportedValues?.shippingAddress) {\n response.meta.shippingData = {address: exportedValues.shippingAddress};\n }\n return response;\n }, [billingData, shippingAddress]);\n\n useEffect(() => {\n if (paymentMethod && typeof paymentMethod === 'string') {\n onSubmit();\n }\n }, [paymentMethod, onSubmit]);\n\n useEffect(() => {\n const unsubscribeProcessingPayment = onPaymentProcessing(async () => {\n if (activePaymentMethod !== getData('name')) {\n return null;\n }\n let [result, paymentMethodId] = [null, null];\n try {\n if (error) {\n throw new StripeError(error);\n }\n if (setupIntent) {\n result = await stripe.confirmCardSetup(setupIntent.client_secret, {\n payment_method: getCreatePaymentMethodArgs()\n });\n if (result.error) {\n throw new StripeError(result.error);\n }\n paymentMethodId = result.setupIntent.payment_method;\n removeSetupIntent();\n } else {\n // payment method has already been created.\n if (paymentMethod) {\n paymentMethodId = paymentMethod;\n } else {\n //create the payment method\n result = await stripe.createPaymentMethod(getCreatePaymentMethodArgs());\n if (result.error) {\n throw new StripeError(result.error);\n }\n paymentMethodId = result.paymentMethod.id;\n }\n }\n return ensureSuccessResponse(responseTypes, getSuccessResponse(paymentMethodId, shouldSavePayment));\n } catch (e) {\n console.log(e);\n setPaymentMethod(null);\n return ensureErrorResponse(responseTypes, e.error);\n }\n\n });\n return () => unsubscribeProcessingPayment();\n }, [\n paymentMethod,\n billingData,\n onPaymentProcessing,\n stripe,\n setupIntent,\n activePaymentMethod,\n shouldSavePayment\n ]);\n return {\n setPaymentMethod,\n getCreatePaymentMethodArgs,\n addPaymentMethodData\n };\n}","import {useEffect, useState, useCallback} from '@wordpress/element';\nimport apiFetch from \"@wordpress/api-fetch\";\nimport {\n getSettings,\n getRoute,\n cartContainsPreOrder,\n cartContainsSubscription,\n getFromCache,\n storeInCache,\n deleteFromCache\n} from '../util';\n\nexport const useSetupIntent = (\n {\n cartTotal,\n setError\n }) => {\n const [setupIntent, setSetupIntent] = useState(getFromCache('setupIntent'));\n\n useEffect(() => {\n const createSetupIntent = async () => {\n if (setupIntent) {\n return;\n }\n // only create intent under certain conditions\n let result = await apiFetch({\n url: getRoute('create/setup_intent'),\n method: 'POST'\n });\n if (result.code) {\n setError(result.message);\n } else {\n storeInCache('setupIntent', result.intent);\n setSetupIntent(result.intent);\n }\n }\n if (cartContainsPreOrder() || (cartContainsSubscription() && cartTotal.value == 0)) {\n if (!setupIntent) {\n createSetupIntent();\n }\n } else {\n setSetupIntent(null);\n }\n }, [cartTotal.value]);\n const removeSetupIntent = useCallback(() => {\n deleteFromCache('setupIntent');\n }, [cartTotal.value]);\n return {setupIntent, removeSetupIntent};\n}","import {useState} from '@wordpress/element'\n\nexport const useStripeError = () => {\n const [error, setError] = useState(false);\n return [error, setError];\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\nimport {useStripe, useElements} from \"@stripe/react-stripe-js\";\nimport {ensureErrorResponse, ensureSuccessResponse, getBillingDetailsFromAddress, StripeError, isNextActionRequired, getRoute, handleCardAction} from '../util';\n\nexport const useUpdatePaymentIntent = (\n {\n clientSecret,\n billingData,\n eventRegistration,\n responseTypes,\n name,\n shouldSavePayment,\n noticeContexts\n }\n) => {\n const {onPaymentProcessing, onCheckoutAfterProcessingWithSuccess} = eventRegistration;\n const currentData = useRef({billingData});\n const paymentMethodData = useRef({});\n const stripe = useStripe();\n const elements = useElements();\n\n const getSuccessResponse = useCallback((paymentMethod, shouldSavePayment) => {\n const response = {\n meta: {\n paymentMethodData: {\n [`${name}_token_key`]: paymentMethod,\n [`${name}_save_source_key`]: shouldSavePayment,\n ...paymentMethodData.current\n }\n }\n }\n return response;\n }, []);\n\n const addPaymentMethodData = useCallback((data) => {\n paymentMethodData.current = {...paymentMethodData.current, ...data};\n }, []);\n\n const updatePaymentIntent = useCallback(async () => {\n const {billingData} = currentData.current;\n return await stripe.updatePaymentIntent({\n elements,\n params: {\n payment_method_data: {\n billing_details: getBillingDetailsFromAddress(billingData)\n }\n }\n });\n }, [stripe, elements]);\n\n const confirmPayment = useCallback(async () => {\n const {billingData} = currentData.current;\n return await stripe.confirmPayment({\n elements,\n confirmParams: {\n payment_method_data: {\n billing_details: getBillingDetailsFromAddress(billingData)\n }\n },\n redirect: 'if_required'\n });\n }, [stripe, elements]);\n\n useEffect(() => {\n currentData.current = {billingData};\n });\n\n useEffect(() => {\n const unsubscribe = onPaymentProcessing(async () => {\n\n try {\n let paymentMethod = null;\n let result = await stripe.retrievePaymentIntent(clientSecret);\n if (result.paymentIntent.status === 'requires_action') {\n paymentMethod = result.paymentIntent.payment_method;\n await confirmPayment();\n } else {\n result = await updatePaymentIntent();\n if (result.error) {\n throw new StripeError(result.error);\n }\n paymentMethod = result.paymentIntent.payment_method;\n }\n return ensureSuccessResponse(responseTypes, getSuccessResponse(paymentMethod, shouldSavePayment));\n } catch (error) {\n return ensureErrorResponse(responseTypes, error, {messageContext: noticeContexts.PAYMENTS});\n }\n });\n return () => unsubscribe();\n }, [\n onPaymentProcessing,\n updatePaymentIntent,\n confirmPayment,\n clientSecret,\n shouldSavePayment\n ]);\n\n useEffect(() => {\n const unsubscribe = onCheckoutAfterProcessingWithSuccess(async ({redirectUrl}) => {\n return await handleCardAction({\n redirectUrl,\n responseTypes,\n name,\n method: 'confirmCardPayment',\n savePaymentMethod: shouldSavePayment\n })\n });\n return () => unsubscribe();\n }, [\n onCheckoutAfterProcessingWithSuccess,\n confirmPayment,\n shouldSavePayment,\n name\n ]);\n\n return {\n updatePaymentIntent,\n addPaymentMethodData\n }\n}","export * from './use-link';","import {useEffect, useState, useRef} from '@wordpress/element';\nimport {useStripe, useElements} from \"@stripe/react-stripe-js\";\nimport {toCartAddress as mapToCartAddress, ensureSuccessResponse, ensureErrorResponse, getBillingDetailsFromAddress} from '../../util';\n\nconst toCartAddress = mapToCartAddress();\n\nexport const useLink = (\n {\n email,\n eventRegistration,\n onClick,\n onSubmit,\n activePaymentMethod,\n responseTypes,\n ...props\n }) => {\n const [link, setLink] = useState();\n const stripe = useStripe();\n const elements = useElements();\n const currentData = useRef();\n const linkData = useRef();\n const {onPaymentProcessing} = eventRegistration;\n useEffect(() => {\n currentData.current = {onClick, onSubmit}\n });\n\n useEffect(() => {\n if (stripe && elements && !link) {\n setLink(stripe?.linkAutofillModal(elements));\n }\n }, [stripe, elements, link]);\n\n useEffect(() => {\n if (link) {\n link.launch({email});\n }\n }, [link, email]);\n\n useEffect(() => {\n if (link) {\n link.on('autofill', event => {\n linkData.current = event;\n currentData.current.onSubmit();\n\n });\n link.on('authenticated', event => {\n currentData.current.onClick();\n })\n }\n }, [link]);\n\n useEffect(() => {\n const unsubscribe = onPaymentProcessing(async () => {\n if (activePaymentMethod !== 'stripe_link_checkout') {\n return null;\n }\n const response = {meta: {}};\n const {shippingAddress = null, billingAddress = null} = linkData.current.value;\n if (billingAddress) {\n response.meta.billingData = toCartAddress({...billingAddress.address, recipient: billingAddress.name});\n response.meta.billingAddress = response.meta.billingData;\n }\n if (shippingAddress) {\n response.meta.shippingData = {address: toCartAddress({...shippingAddress.address, recipient: shippingAddress.name})};\n }\n // update the payment intent\n try {\n const result = await stripe.updatePaymentIntent({\n elements,\n params: {\n payment_method_data: {\n billing_details: getBillingDetailsFromAddress(response.meta.billingData)\n }\n }\n });\n response.meta.paymentMethodData = {\n stripe_cc_token_key: result.paymentIntent.payment_method,\n stripe_cc_save_source_key: false,\n }\n return ensureSuccessResponse(responseTypes, response);\n } catch (error) {\n console.log(error);\n return ensureErrorResponse(responseTypes, error);\n }\n });\n\n return () => unsubscribe();\n }, [onPaymentProcessing, stripe, elements, activePaymentMethod])\n\n return link;\n}","import {useEffect, useState} from '@wordpress/element';\nimport {Elements, useStripe, useElements, PaymentElement} from \"@stripe/react-stripe-js\";\nimport {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\nimport {useLink} from './hooks';\nimport {getSettings, initStripe as loadStripe, canMakePayment} from \"../util\";\n\nconst getData = getSettings('stripe_link_checkout_data');\n\nexport const LinkComponent = ({cartData, ...props}) => {\n const clientSecret = cartData?.extensions?.stripe_link_checkout?.clientSecret;\n if (clientSecret) {\n return (\n <Elements stripe={loadStripe} options={{clientSecret}}>\n <LinkCheckout {...props}/>\n </Elements>\n );\n }\n return null;\n}\n\nconst LinkCheckout = (\n {\n billing,\n shipping,\n eventRegistration,\n onClick,\n onSubmit,\n activePaymentMethod,\n emitResponse,\n ...props\n }) => {\n const {billingData, currency} = billing;\n const {responseTypes, noticeContexts} = emitResponse;\n const {email} = billingData;\n useLink({\n email,\n eventRegistration,\n onClick,\n onSubmit,\n activePaymentMethod,\n responseTypes\n });\n const options = {\n fields: {\n billingDetails: {address: 'never'}\n },\n wallets: {applePay: 'never', googlePay: 'never'}\n };\n return (\n <div style={{display: 'none'}}>\n <PaymentElement options={options}/>\n </div>\n );\n}\n\nregisterExpressPaymentMethod({\n name: getData('name'),\n canMakePayment: (props) => {\n return true;\n },\n content: <LinkComponent/>,\n edit: <LinkComponent/>,\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: getData('showSaveOption'),\n features: getData('features')\n }\n})","import {useState, useEffect} from '@wordpress/element';\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, initStripe} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {AfterpayClearpayMessageElement, Elements} from \"@stripe/react-stripe-js\";\nimport {sprintf, __} from '@wordpress/i18n';\nimport {ExperimentalOrderMeta, TotalsWrapper} from '@woocommerce/blocks-checkout';\nimport {registerPlugin} from '@wordpress/plugins';\n\nconst getData = getSettings('stripe_afterpay_data');\nlet variablesHandler;\nlet globalVariables = {};\nconst setVariablesHandler = (handler) => {\n variablesHandler = handler;\n}\n\nconst isAvailable = ({total, currency, country}) => {\n let available = false;\n const billingCountry = country;\n const requiredParams = getData('requiredParams');\n const accountCountry = getData('accountCountry');\n const requiredParamObj = requiredParams.hasOwnProperty(currency) ? requiredParams[currency] : false;\n if (requiredParamObj) {\n let countries = requiredParamObj?.[0];\n if (!Array.isArray(countries)) {\n countries = [countries];\n }\n available = countries.indexOf(accountCountry) > -1\n && (currency !== 'EUR' || !billingCountry || accountCountry === billingCountry)\n && (total > requiredParamObj?.[1] && total < requiredParamObj?.[2]);\n }\n return available;\n}\n\nconst PaymentMethodLabel = ({getData}) => {\n const [variables, setVariables] = useState({\n amount: getData('cartTotal'),\n currency: getData('currency'),\n isCartEligible: getData('msgOptions').isEligible,\n ...globalVariables\n });\n setVariablesHandler(setVariables);\n return (\n <Elements stripe={initStripe} options={getData('elementOptions')}>\n <div className='wc-stripe-blocks-afterpay__label'>\n <AfterpayClearpayMessageElement options={{\n ...getData('msgOptions'),\n ...{\n amount: variables.amount,\n currency: variables.currency,\n isCartEligible: variables.isCartEligible\n }\n }}/>\n </div>\n </Elements>\n );\n}\n\nconst AfterpayPaymentMethod = ({content, billing, shippingData, ...props}) => {\n const Content = content;\n const {cartTotal, currency, billingData: {country}} = billing;\n const {needsShipping} = shippingData\n const total = parseInt(cartTotal.value) / 10 ** currency.minorUnit;\n const isCartEligible = isAvailable({total, currency: currency.code, country});\n useEffect(() => {\n variablesHandler({\n amount: cartTotal.value,\n currency: currency.code,\n isCartEligible\n });\n }, [\n cartTotal.value,\n currency.code,\n ]);\n return (\n <>\n <div className='wc-stripe-blocks-payment-method-content'>\n {isCartEligible && <div className=\"wc-stripe-blocks-afterpay-offsite__container\">\n <div className=\"wc-stripe-blocks-afterpay__offsite\">\n <img src={getData('offSiteSrc')}/>\n <p>{sprintf(__('After clicking \"%s\", you will be redirected to Afterpay to complete your purchase securely.', 'woo-stripe-payment'), getData('placeOrderButtonLabel'))}</p>\n </div>\n </div>}\n <Content {...{...props, billing, shippingData}}/>\n </div>\n </>\n );\n}\n\nconst OrderItemMessaging = ({cart, extensions, context}) => {\n const {cartTotals, cartNeedsShipping: needsShipping, billingAddress: {country}} = cart;\n const {total_price, currency_code: currency} = cartTotals;\n const totalInCents = parseInt(cartTotals.total_price);\n const total = parseInt(cartTotals.total_price) / (10 ** cartTotals.currency_minor_unit);\n if (!isAvailable({total, currency, country})) {\n return null;\n }\n return (\n <TotalsWrapper>\n <Elements stripe={initStripe} options={getData('elementOptions')}>\n <div className='wc-stripe-blocks-afterpay-totals__item wc-block-components-totals-item'>\n <AfterpayClearpayMessageElement options={{\n ...getData('msgOptions'),\n ...{\n amount: totalInCents,\n currency,\n isCartEligible: isAvailable({total, currency, country})\n }\n }}/>\n </div>\n </Elements>\n </TotalsWrapper>\n );\n}\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n getData={getData}/>,\n ariaLabel: __('Afterpay', 'woo-stripe-payment'),\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData, ({settings, cartTotals, billingData}) => {\n const {currency_code: currency, currency_minor_unit, total_price} = cartTotals;\n const {country} = billingData;\n const total = parseInt(total_price) / (10 ** currency_minor_unit);\n if (variablesHandler) {\n variablesHandler({\n amount: parseInt(cartTotals.total_price),\n currency,\n isCartEligible: isAvailable({total, currency, country})\n });\n } else {\n globalVariables = {\n amount: parseInt(cartTotals.total_price),\n currency,\n isCartEligible: isAvailable({total, currency, country})\n };\n }\n const available = isAvailable({total, currency, country});\n if (!available && !settings('hideIneligible')) {\n return true;\n }\n return available;\n }),\n content: <AfterpayPaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmAfterpayClearpayPayment'}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n });\n\n const render = () => {\n return (\n <ExperimentalOrderMeta>\n <OrderItemMessaging/>\n </ExperimentalOrderMeta>\n )\n }\n registerPlugin('wc-stripe', {\n render: render,\n scope: 'woocommerce-checkout'\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {canMakePayment, LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel} from \"../../components/checkout/payment-method-label\";\nimport {PaymentMethod} from \"../../components/checkout\";\n\nconst getData = getSettings('stripe_alipay_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Alipay',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n confirmationMethod={'confirmAlipayPayment'}\n getData={getData}/>,\n edit: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}\n","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\n\nconst getData = getSettings('stripe_bancontact_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Bancontact',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n confirmationMethod={'confirmBancontactPayment'}\n getData={getData}/>,\n edit: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {AuBankAccountElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_becs_data');\n\nconst BecsPaymentMethod = (props) => {\n return (\n <>\n <PaymentMethod {...props} />\n <div className={'wc-stripe-blocks-mandate becs-mandate'}\n dangerouslySetInnerHTML={{__html: props.getData('mandate')}}/>\n </>\n );\n}\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'BECS',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <BecsPaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmAuBecsDebitPayment'}\n component={AuBankAccountElement}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {useState, useEffect, useCallback} from '@wordpress/element';\nimport {__} from '@wordpress/i18n';\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport classnames from 'classnames';\nimport {ensureErrorResponse, ensureSuccessResponse, getSettings, isTestMode} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\n\nconst getData = getSettings('stripe_boleto_data');\n\nconst BoletoPaymentMethodContainer = ({eventRegistration, ...props}) => {\n const [taxId, setTaxId] = useState('');\n const [isActive, setIsActive] = useState(false);\n const {onPaymentProcessing} = eventRegistration;\n const callback = useCallback(() => {\n return {\n boleto: {\n tax_id: taxId\n }\n };\n }, [taxId]);\n\n useEffect(() => {\n const unsubscribe = onPaymentProcessing(() => {\n if (!taxId) {\n return ensureErrorResponse(props.emitResponse.responseTypes, __('Please enter a valid CPF/CNPJ value', 'woo-stripe-payment'));\n }\n return ensureSuccessResponse(props.emitResponse.responseTypes, {\n meta: {\n paymentMethodData: {\n wc_stripe_boleto_tax_id: taxId\n }\n }\n });\n })\n return () => unsubscribe();\n }, [onPaymentProcessing, taxId]);\n return (\n <>\n <div className={classnames('wc-block-components-text-input', {\n 'is-active': isActive || taxId\n })}>\n <input\n type='text'\n id='wc-stripe-boleto-tax_id'\n onChange={e => setTaxId(e.target.value)}\n onFocus={() => setIsActive(true)}\n onBlur={() => setIsActive(false)}/>\n <label htmlFor='wc-stripe-boleto-tax_id'>{__(' CPF / CNPJ', ' woo-stripe-payment')}</label>\n </div>\n {isTestMode() &&\n <div className='wc-stripe-boleto__description'>\n <p>{__('Test mode values', 'woo-stripe-payment')}</p>\n <div>\n <label>CPF:</label>&nbsp;<span>000.000.000-00</span>\n </div>\n <div>\n <label>CNPJ:</label>&nbsp;<span>00.000.000/0000-00</span>\n </div>\n </div>}\n {!isTestMode() &&\n <div className=\"wc-stripe-boleto__description\">\n <p>{__('Accepted formats', 'woo-stripe-payment')}</p>\n <div>\n <label>CPF:</label>&nbsp;\n <span>{__('XXX.XXX.XXX-XX or XXXXXXXXXXX', 'woo-stripe-payment')}</span>\n </div>\n <div>\n <label>CNPJ:</label>&nbsp;\n <span>{__('XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX', 'woo-stripe-payment')}</span>\n </div>\n </div>}\n <LocalPaymentIntentContent callback={callback} {...{...props, ...{eventRegistration}}}/>\n </>\n )\n}\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Boleto',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={BoletoPaymentMethodContainer}\n getData={getData}\n confirmationMethod={'confirmBoletoPayment'}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {canMakePayment, LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {EpsBankElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_eps_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'EPS',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n confirmationMethod={'confirmEpsPayment'}\n component={EpsBankElement}\n getData={getData}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {FpxBankElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_fpx_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'FPX',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmIdealPayment'}\n component={FpxBankElement}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\n\nconst getData = getSettings('stripe_giropay_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Giropay',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n confirmationMethod={'confirmGiropayPayment'}\n getData={getData}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\n\nconst getData = getSettings('stripe_grabpay_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'GrabPay',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmGrabPayPayment'}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","export * from './use-after-process-local-payment';\nexport * from './use-validate-checkout';\nexport * from './use-create-source';","import {useEffect, useRef} from '@wordpress/element';\nimport {useStripe} from \"@stripe/react-stripe-js\";\nimport {ensureErrorResponse, getBillingDetailsFromAddress, StripeError} from \"../../util\";\n\nexport const useAfterProcessLocalPayment = (\n {\n getData,\n billingData,\n eventRegistration,\n responseTypes,\n activePaymentMethod,\n confirmationMethod,\n getPaymentMethodArgs = () => ({})\n }\n) => {\n const stripe = useStripe();\n const {onCheckoutAfterProcessingWithSuccess, onCheckoutAfterProcessingWithError} = eventRegistration;\n const currentBillingData = useRef(billingData);\n const currentPaymentMethodArgs = useRef(getPaymentMethodArgs);\n useEffect(() => {\n currentBillingData.current = billingData;\n }, [billingData]);\n\n useEffect(() => {\n currentPaymentMethodArgs.current = getPaymentMethodArgs;\n }, [getPaymentMethodArgs]);\n\n useEffect(() => {\n const unsubscribeAfterProcessingWithSuccess = onCheckoutAfterProcessingWithSuccess(async ({redirectUrl}) => {\n if (getData('name') === activePaymentMethod) {\n try {\n let match = redirectUrl.match(/#response=(.+)/);\n if (match) {\n let {client_secret, return_url, ...order} = JSON.parse(window.atob(decodeURIComponent(match[1])));\n let result = await stripe[confirmationMethod](client_secret, {\n payment_method: {\n billing_details: getBillingDetailsFromAddress(currentBillingData.current),\n ...currentPaymentMethodArgs.current(currentBillingData.current)\n },\n return_url\n });\n if (result.error) {\n throw new StripeError(result.error);\n }\n window.location = decodeURI(order.order_received_url);\n }\n } catch (e) {\n console.log(e);\n return ensureErrorResponse(responseTypes, e.error);\n }\n }\n })\n return () => unsubscribeAfterProcessingWithSuccess();\n }, [\n stripe,\n onCheckoutAfterProcessingWithSuccess,\n onCheckoutAfterProcessingWithError\n ]);\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\nimport {\n getDefaultSourceArgs,\n ensureSuccessResponse,\n ensureErrorResponse,\n StripeError\n} from \"../../util\";\nimport {useStripe, useElements} from \"@stripe/react-stripe-js\";\nimport {__} from '@wordpress/i18n';\n\nexport const useCreateSource = (\n {\n getData,\n billing,\n shippingAddress,\n onPaymentProcessing,\n responseTypes,\n getSourceArgs = false,\n element = false\n }) => {\n const [source, setSource] = useState(false);\n const [isValid, setIsValid] = useState(false);\n const currentValues = useRef({\n billing,\n shippingAddress,\n });\n const stripe = useStripe();\n const elements = useElements();\n useEffect(() => {\n currentValues.current = {\n billing,\n shippingAddress\n }\n });\n\n const getSourceArgsInternal = useCallback(() => {\n const {billing} = currentValues.current;\n const {cartTotal, currency, billingData} = billing;\n let args = getDefaultSourceArgs({\n type: getData('paymentType'),\n amount: cartTotal.value,\n billingData,\n currency: currency.code,\n returnUrl: getData('returnUrl')\n });\n if (getSourceArgs) {\n args = getSourceArgs(args, {billingData});\n }\n return args;\n }, []);\n\n const getSuccessData = useCallback((sourceId) => {\n return {\n meta: {\n paymentMethodData: {\n [`${getData('name')}_token_key`]: sourceId\n }\n }\n }\n }, []);\n\n useEffect(() => {\n const unsubscribe = onPaymentProcessing(async () => {\n if (source) {\n return ensureSuccessResponse(responseTypes, getSuccessData(source.id));\n }\n // create the source\n try {\n let result;\n if (element) {\n // validate the element\n if (!isValid) {\n throw __('Please enter your payment info before proceeding.', 'woo-stripe-payment');\n }\n result = await stripe.createSource(elements.getElement(element), getSourceArgsInternal());\n } else {\n result = await stripe.createSource(getSourceArgsInternal());\n }\n if (result.error) {\n throw new StripeError(result.error);\n }\n setSource(result.source);\n return ensureSuccessResponse(responseTypes, getSuccessData(result.source.id));\n } catch (err) {\n console.log(err);\n return ensureErrorResponse(responseTypes, err.error || err);\n }\n });\n return () => unsubscribe();\n }, [\n source,\n onPaymentProcessing,\n stripe,\n responseTypes,\n element,\n isValid,\n setIsValid\n ]);\n return {setIsValid};\n}","import {useEffect, useRef, useState} from '@wordpress/element';\nimport {ensureErrorResponse} from \"../../util\";\nimport {__} from \"@wordpress/i18n\";\n\nexport const useValidateCheckout = (\n {\n subscriber,\n responseTypes,\n component = null,\n msg = __('Please enter your payment info before proceeding.', 'woo-stripe-payment')\n }) => {\n const [isValid, setIsValid] = useState(false);\n\n useEffect(() => {\n const unsubscribe = subscriber(() => {\n if (component && !isValid) {\n return ensureErrorResponse(responseTypes, msg);\n }\n return true;\n });\n return () => unsubscribe();\n }, [\n subscriber,\n isValid,\n setIsValid,\n responseTypes,\n component\n ]);\n return {isValid, setIsValid};\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {IdealBankElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_ideal_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Ideal',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmIdealPayment'}\n component={IdealBankElement}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import './klarna';\nimport './ideal';\nimport './p24';\nimport './bancontact';\nimport './giropay';\nimport './eps';\nimport './multibanco';\nimport './sepa';\nimport './sofort';\nimport './wechat';\nimport './fpx';\nimport './becs';\nimport './grabpay';\nimport './alipay'\nimport './afterpay';\nimport './boleto';\nimport './oxxo';","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, isTestMode} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {__} from \"@wordpress/i18n\";\n\nconst getData = getSettings('stripe_klarna_data');\n\nconst KlarnaPaymentMethod = (props) => {\n return (\n <>\n {isTestMode() &&\n <div className=\"wc-stripe-klarna__testmode\">\n <label>{__('Test mode sms', 'woo-stripe-payment')}:</label>&nbsp;<span>123456</span>\n </div>}\n <LocalPaymentIntentContent {...props}/>\n </>\n )\n}\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Klarna',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData, ({settings, billingData, cartTotals}) => {\n const {country} = billingData;\n const {currency_code: currency} = cartTotals;\n const requiredParams = settings('requiredParams');\n return [currency] in requiredParams && requiredParams[currency].includes(country);\n }),\n content: <PaymentMethod\n content={KlarnaPaymentMethod}\n getData={getData}\n confirmationMethod={'confirmKlarnaPayment'}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {useCallback} from '@wordpress/element';\nimport {useElements, Elements} from \"@stripe/react-stripe-js\";\nimport {initStripe as loadStripe, cartContainsSubscription, cartContainsPreOrder} from '../util'\nimport {useAfterProcessLocalPayment, useValidateCheckout, useCreateSource} from \"./hooks\";\nimport {useProcessCheckoutError} from \"../hooks\";\n\n/**\n * Return true if the local payment method can be used.\n * @param settings\n * @returns {function({billingData: *, [p: string]: *}): *}\n */\nexport const canMakePayment = (settings, callback = false) => ({billingData, cartTotals, ...props}) => {\n const {currency_code} = cartTotals;\n const {country} = billingData;\n const countries = settings('countries');\n const type = settings('allowedCountries');\n const supports = settings('features');\n let canMakePayment = false;\n if (settings('isAdmin')) {\n canMakePayment = true;\n } else {\n // Check if there are any subscriptions or pre-orders in the cart.\n if (cartContainsSubscription() && !supports.includes('subscriptions')) {\n return false;\n } else if (cartContainsPreOrder() && !supports.includes('pre-orders')) {\n return false;\n }\n if (settings('currencies').includes(currency_code)) {\n if (type === 'all_except') {\n canMakePayment = !settings('exceptCountries').includes(country);\n } else if (type === 'specific') {\n canMakePayment = settings('specificCountries').includes(country);\n } else {\n canMakePayment = countries.length > 0 ? countries.includes(country) : true;\n }\n }\n if (callback && canMakePayment) {\n canMakePayment = callback({settings, billingData, cartTotals, ...props});\n }\n }\n return canMakePayment;\n}\n\nexport const LocalPaymentIntentContent = ({getData, ...props}) => {\n return (\n <Elements stripe={loadStripe} options={getData('elementOptions')}>\n <LocalPaymentIntentMethod {...{...props, getData}}/>\n </Elements>\n )\n}\n\nexport const LocalPaymentSourceContent = (props) => {\n return (\n <Elements stripe={loadStripe}>\n <LocalPaymentSourceMethod {...props}/>\n </Elements>\n )\n}\n\nconst LocalPaymentSourceMethod = (\n {\n getData,\n billing,\n shippingData,\n emitResponse,\n eventRegistration,\n getSourceArgs = false,\n element = false\n }) => {\n const {shippingAddress} = shippingData;\n const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;\n const {responseTypes, noticeContexts} = emitResponse;\n const onChange = (event) => {\n setIsValid(event.complete);\n }\n const {setIsValid} = useCreateSource({\n getData,\n billing,\n shippingAddress,\n onPaymentProcessing,\n responseTypes,\n getSourceArgs,\n element\n });\n\n if (element) {\n return (\n <LocalPaymentElementContainer\n name={getData('name')}\n options={getData('paymentElementOptions')}\n onChange={onChange}\n element={element}/>\n )\n }\n return null;\n}\n\nconst LocalPaymentIntentMethod = (\n {\n getData,\n billing,\n emitResponse,\n eventRegistration,\n activePaymentMethod,\n confirmationMethod = null,\n component = null,\n callback = null\n }) => {\n const elements = useElements();\n const {billingData} = billing;\n const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;\n const {responseTypes, noticeContexts} = emitResponse;\n const getPaymentMethodArgs = useCallback((billingData) => {\n if (component) {\n return {\n [getData('paymentType')]: elements.getElement(component)\n }\n } else if (callback) {\n return callback(billingData);\n }\n return {};\n }, [\n elements,\n callback\n ]);\n const {setIsValid} = useValidateCheckout({\n subscriber: onPaymentProcessing,\n responseTypes,\n component\n }\n );\n\n useAfterProcessLocalPayment({\n getData,\n billingData,\n eventRegistration,\n responseTypes,\n activePaymentMethod,\n confirmationMethod,\n getPaymentMethodArgs\n });\n useProcessCheckoutError({\n responseTypes,\n subscriber: onCheckoutAfterProcessingWithError,\n messageContext: noticeContexts.PAYMENT\n });\n if (component) {\n const onChange = (event) => setIsValid(!event.empty)\n return (\n <LocalPaymentElementContainer\n name={getData('name')}\n options={getData('paymentElementOptions')}\n onChange={onChange}\n element={component}\n callback={callback}/>\n )\n }\n return null;\n}\n\nconst LocalPaymentElementContainer = ({name, onChange, element, options, ...props}) => {\n const Tag = element;\n return (\n <div className={`wc-stripe-local-payment-container ${name} ${Tag.displayName}`}>\n <Tag options={options} onChange={onChange} {...props}/>\n </div>\n )\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentSourceContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\n\nconst getData = getSettings('stripe_multibanco_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'MultiBanco',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,\n edit: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}\n","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {IdealBankElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_oxxo_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'OXXO',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmOxxoPayment'}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {P24BankElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_p24_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'P24',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmP24Payment'}\n component={P24BankElement}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}\n","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, cartContainsPreOrder, cartContainsSubscription} from \"../util\";\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment, LocalPaymentIntentContent} from \"./local-payment-method\";\nimport {IbanElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_sepa_data');\n\nconst LocalPaymentMethod = (PaymentMethod) => (props) => {\n return (\n <>\n <PaymentMethod {...props}/>\n <div className={'wc-stripe-blocks-mandate sepa-mandate'}\n dangerouslySetInnerHTML={{__html: props.getData('mandate')}}/>\n </>\n )\n}\n\nconst SepaPaymentMethod = LocalPaymentMethod(PaymentMethod);\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'SEPA',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <SepaPaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmSepaDebitPayment'}\n component={IbanElement}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {canMakePayment, LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\n\nconst getData = getSettings('stripe_sofort_data');\n\nconst getConfirmationArgs = (billingData) => {\n return {sofort: {country: billingData.country}};\n}\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Sofort',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n confirmationMethod={'confirmSofortPayment'}\n getData={getData}\n callback={getConfirmationArgs}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}\n","import {useEffect, useRef, useState, useCallback} from '@wordpress/element';\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {\n getSettings,\n initStripe as loadStripe,\n getDefaultSourceArgs,\n isAddressValid,\n StripeError,\n isTestMode,\n ensureSuccessResponse,\n getErrorMessage,\n storeInCache,\n getFromCache,\n deleteFromCache\n} from \"../util\";\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {Elements} from \"@stripe/react-stripe-js\";\nimport {useValidateCheckout} from \"./hooks\";\nimport {__} from '@wordpress/i18n';\n//import QRCode from 'QRCode';\nimport {useStripe} from \"@stripe/react-stripe-js\";\nimport {useStripeError} from \"../hooks\";\n\nconst getData = getSettings('stripe_wechat_data');\n\nconst WeChatComponent = (props) => {\n return (\n <Elements stripe={loadStripe}>\n <WeChatPaymentMethod {...props}/>\n </Elements>\n )\n}\n\nconst WeChatPaymentMethod = (\n {\n getData,\n billing,\n shippingData,\n emitResponse,\n eventRegistration,\n components\n }) => {\n const size = parseInt(getData('qrSize'));\n const {responseTypes} = emitResponse;\n const {onPaymentProcessing, onCheckoutAfterProcessingWithSuccess} = eventRegistration;\n const {ValidationInputError} = components;\n const {isValid, setIsValid} = useValidateCheckout({\n subscriber: eventRegistration.onPaymentProcessing,\n responseTypes: emitResponse.responseTypes,\n msg: __('Please scan your QR code to continue with payment.', 'woo-stripe-payment')\n });\n\n const {source, error, deleteSourceFromStorage} = useCreateSource({\n getData,\n billing,\n responseTypes,\n subscriber: onPaymentProcessing\n })\n\n /**\n * delete the source from storage once payment is successful.\n * If test mode, redirect to the Stripe test url.\n * If live mode, redirect to the return Url.\n */\n useEffect(() => {\n const unsubscribe = onCheckoutAfterProcessingWithSuccess(() => {\n deleteSourceFromStorage();\n return ensureSuccessResponse(responseTypes);\n });\n return () => unsubscribe();\n }, [\n source,\n onCheckoutAfterProcessingWithSuccess,\n deleteSourceFromStorage\n ]);\n\n useEffect(() => {\n if (source) {\n setIsValid(true);\n }\n }, [source]);\n\n if (source) {\n return (\n <QRCodeComponent text={source.wechat.qr_code_url} width={size} height={size}/>\n );\n } else if (error) {\n return (\n <div className='wechat-validation-error'>\n <ValidationInputError errorMessage={getErrorMessage(error)}/>\n </div>\n );\n } else {\n // if billing address is not valid\n if (!isAddressValid(billing.billingData)) {\n return __('Please fill out all the required fields in order to complete the WeChat payment.', 'woo-stripe-payment');\n }\n }\n return null;\n}\n\nconst QRCodeComponent = (\n {\n text,\n width = 128,\n height = 128,\n colorDark = '#424770',\n colorLight = '#f8fbfd',\n correctLevel = QRCode.CorrectLevel.H\n }) => {\n const el = useRef();\n useEffect(() => {\n new QRCode(el.current, {\n text,\n width,\n height,\n colorDark,\n colorLight,\n correctLevel\n })\n }, [el]);\n return (\n <>\n <div id='wc-stripe-block-qrcode' ref={el}></div>\n {isTestMode() && <p>\n {__('Test mode: Click the Place Order button to proceed.', 'woo-stripe-payment')}\n </p>}\n {!isTestMode() && <p>\n {__('Scan the QR code using your WeChat app. Once scanned click the Place Order button.', 'woo-stripe-payment')}\n </p>}\n </>\n )\n}\n\nconst useCreateSource = (\n {\n getData,\n billing,\n responseTypes,\n subscriber\n }) => {\n const stripe = useStripe();\n const [error, setError] = useStripeError();\n const [source, setSource] = useState(getFromCache('wechat:source'));\n const createSourceTimeoutId = useRef(null);\n const {cartTotal, billingData, currency} = billing;\n\n useEffect(() => {\n const unsubscribe = subscriber(() => {\n return ensureSuccessResponse(responseTypes, {\n meta: {\n paymentMethodData: {\n [`${getData('name')}_token_key`]: source.id\n }\n }\n })\n });\n return () => unsubscribe();\n }, [source, subscriber]);\n\n const createSource = useCallback(async () => {\n // validate the billing fields. If valid, create the source.\n try {\n if (!error && isAddressValid(billingData)) {\n let result = await stripe.createSource(getDefaultSourceArgs({\n type: getData('paymentType'),\n amount: cartTotal.value,\n billingData,\n currency: currency.code,\n returnUrl: getData('returnUrl')\n }));\n if (result.error) {\n throw new StripeError(result.error);\n }\n setSource(result.source);\n storeInCache('wechat:source', result.source);\n }\n } catch (err) {\n console.log('error: ', err);\n setError(err.error);\n }\n }, [\n stripe,\n source,\n cartTotal.value,\n billingData,\n currency,\n error\n ]);\n const deleteSourceFromStorage = useCallback(() => {\n deleteFromCache('wechat:source');\n }, []);\n\n useEffect(() => {\n if (stripe && !source) {\n // if there is an existing request, cancel it.\n clearTimeout(createSourceTimeoutId.current);\n createSourceTimeoutId.current = setTimeout(createSource, 1000);\n }\n }, [\n stripe,\n source,\n createSource\n ]);\n\n return {source, setSource, error, deleteSourceFromStorage};\n}\n\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'WeChat',\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod content={WeChatComponent} getData={getData}/>,\n edit: <PaymentMethod content={WeChatComponent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}\n","import './style.scss';\n\nimport './payment-method';","import {useMemo, useEffect, useRef} from '@wordpress/element';\nimport {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, initStripe as loadStripe, canMakePayment} from \"../util\";\nimport {useBreakpointWidth, useExpressBreakpointWidth} from '../hooks';\nimport {Elements, PaymentRequestButtonElement, useStripe} from \"@stripe/react-stripe-js\";\nimport {\n usePaymentRequest,\n useProcessPaymentIntent,\n useExportedValues,\n useAfterProcessingPayment,\n useStripeError\n} from '../hooks';\n\nconst getData = getSettings('stripe_payment_request_data');\n\nconst PaymentRequestContent = (props) => {\n return (\n <div className='wc-stripe-payment-request-container'>\n <Elements stripe={loadStripe}>\n <PaymentRequestButton {...props}/>\n </Elements>\n </div>\n );\n}\n\nconst PaymentRequestButton = (\n {\n getData,\n onClick,\n onClose,\n billing,\n shippingData,\n eventRegistration,\n emitResponse,\n onSubmit,\n activePaymentMethod,\n ...props\n }) => {\n const {onPaymentProcessing} = eventRegistration;\n const {responseTypes, noticeContexts} = emitResponse;\n const stripe = useStripe();\n const [error] = useStripeError();\n const canPay = (result) => result != null && !result.applePay;\n const exportedValues = useExportedValues();\n useExpressBreakpointWidth({payment_method: getData('name'), width: 375});\n const {setPaymentMethod} = useProcessPaymentIntent({\n getData,\n billing,\n shippingData,\n onPaymentProcessing,\n emitResponse,\n error,\n onSubmit,\n activePaymentMethod,\n exportedValues\n });\n useAfterProcessingPayment({\n getData,\n eventRegistration,\n responseTypes,\n activePaymentMethod,\n messageContext: noticeContexts.EXPRESS_PAYMENTS\n });\n const {paymentRequest} = usePaymentRequest({\n getData,\n onClose,\n stripe,\n billing,\n shippingData,\n eventRegistration,\n setPaymentMethod,\n exportedValues,\n canPay\n });\n\n const options = useMemo(() => {\n return {\n paymentRequest,\n style: {\n paymentRequestButton: getData('paymentRequestButton')\n }\n }\n }, [paymentRequest]);\n\n if (paymentRequest) {\n return (\n <PaymentRequestButtonElement options={options} onClick={onClick}/>\n )\n }\n return null;\n}\n\nconst PaymentRequestEdit = ({getData, ...props}) => {\n const canvas = useRef();\n useEffect(() => {\n const scale = window.devicePixelRatio;\n canvas.current.width = 20 * scale;\n canvas.current.height = 20 * scale;\n let ctx = canvas.current.getContext('2d');\n ctx.scale(scale, scale);\n ctx.beginPath();\n ctx.arc(10, 10, 10, 0, 2 * Math.PI);\n ctx.fillStyle = '#986fff';\n ctx.fill();\n });\n return (\n <div className='payment-request-block-editor'>\n <div className={'icon-container'}>\n <span>Buy now</span>\n <canvas className='PaymentRequestButton-icon' ref={canvas}/>\n <i className={'payment-request-arrow'}></i>\n </div>\n </div>\n )\n}\n\nregisterExpressPaymentMethod({\n name: getData('name'),\n canMakePayment: ({cartTotals}) => {\n if (getData('isAdmin')) {\n return true;\n }\n const {currency_code: currency, total_price} = cartTotals;\n return canMakePayment({\n country: getData('countryCode'),\n currency: currency.toLowerCase(),\n total: {\n label: getData('totalLabel'),\n amount: parseInt(total_price)\n }\n }, (result) => result != null && !result.applePay);\n },\n content: <PaymentRequestContent getData={getData}/>,\n edit: <PaymentRequestEdit getData={getData}/>,\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: getData('showSaveOption'),\n features: getData('features')\n }\n});","import {useEffect, useCallback} from '@wordpress/element';\nimport {handleCardAction} from '@paymentplugins/stripe/util';\nimport {useProcessCheckoutError} from './hooks';\n\nconst SavedCardComponent = (\n {\n eventRegistration,\n emitResponse,\n getData,\n method = 'handleCardAction'\n }) => {\n const {onCheckoutAfterProcessingWithSuccess, onCheckoutAfterProcessingWithError} = eventRegistration;\n const {responseTypes} = emitResponse;\n useProcessCheckoutError({\n responseTypes,\n subscriber: onCheckoutAfterProcessingWithError,\n messageContext: emitResponse.noticeContexts.PAYMENTS\n })\n const handleSuccessResult = useCallback(async ({redirectUrl}) => {\n return await handleCardAction({redirectUrl, getData, responseTypes, method});\n }, []);\n\n useEffect(() => {\n const unsubscribe = onCheckoutAfterProcessingWithSuccess(handleSuccessResult);\n return () => unsubscribe();\n }, [onCheckoutAfterProcessingWithSuccess, handleSuccessResult]);\n return null;\n}\n\nexport default SavedCardComponent;\n","import {loadStripe} from '@stripe/stripe-js';\nimport {getSetting} from '@woocommerce/settings'\nimport apiFetch from \"@wordpress/api-fetch\";\nimport {getCurrency, formatPrice as wcFormatPrice} from '@woocommerce/price-format';\n\nconst {publishableKey, stripeParams} = getSetting('stripeGeneralData');\nconst messages = getSetting('stripeErrorMessages');\nconst countryLocale = getSetting('countryLocale', {});\n\nconst SHIPPING_OPTION_REGEX = /^([\\w]+)\\:(.+)$/;\n\nconst routes = getSetting('stripeGeneralData').routes;\n\nconst creditCardForms = {};\n\nconst localPaymentMethods = [];\n\nconst CACHE_PREFIX = 'stripe:';\n\nconst PAYMENT_REQUEST_ADDRESS_MAPPINGS = {\n recipient: (address, name) => {\n address.first_name = name.split(' ').slice(0, -1).join(' ');\n address.last_name = name.split(' ').pop();\n return address;\n },\n payerName: (address, name) => {\n address.first_name = name.split(' ').slice(0, -1).join(' ');\n address.last_name = name.split(' ').pop();\n return address;\n },\n country: 'country',\n addressLine: (address, value) => {\n if (value[0]) {\n address.address_1 = value[0];\n }\n if (value[1]) {\n address.address_2 = value[1];\n }\n return address;\n },\n line1: 'address_1',\n line2: 'address_2',\n city: 'city',\n region: 'state',\n state: 'state',\n postalCode: 'postcode',\n postal_code: 'postcode',\n payerEmail: 'email',\n payerPhone: 'phone'\n}\n\nexport const initStripe = new Promise((resolve, reject) => {\n loadStripe(publishableKey, stripeParams).then(stripe => {\n resolve(stripe);\n }).catch(err => {\n resolve({error: err});\n });\n});\n\nexport const registerCreditCardForm = ({id, ...props}) => {\n creditCardForms[id] = props;\n}\n\nexport const getCreditCardForm = (id) => {\n return creditCardForms.hasOwnProperty(id) ? creditCardForms[id] : {};\n}\n\nexport const getRoute = (route) => {\n return routes?.[route] ? routes[route] : console.log(`${route} is not a valid route`);\n}\n\nexport const ensureSuccessResponse = (responseTypes, data = {}) => {\n return {type: responseTypes.SUCCESS, ...data};\n}\n\n/**\n * Returns a formatted error object used by observers\n * @param responseTypes\n * @param error\n * @returns {{type: *, message: *}}\n */\nexport const ensureErrorResponse = (responseTypes, error, options = {}) => {\n return {type: responseTypes.ERROR, message: getErrorMessage(error), ...options}\n};\n\n/**\n * Return a customized error message.\n * @param error\n */\nexport const getErrorMessage = (error) => {\n if (typeof error == 'string') {\n return error;\n }\n if (error?.code && messages?.[error.code]) {\n return messages[error.code];\n }\n if (error?.statusCode) {\n return messages?.[error.statusCode] ? messages[error.statusCode] : error.statusMessage;\n }\n return error.message;\n}\n\n/**\n * Return a Stripe formatted billing_details object from a WC address\n * @param billingAddress\n */\nexport const getBillingDetailsFromAddress = (billingAddress) => {\n let billing_details = {\n name: `${billingAddress.first_name} ${billingAddress.last_name}`,\n address: {\n city: billingAddress.city || null,\n country: billingAddress.country || null,\n line1: billingAddress.address_1 || null,\n line2: billingAddress.address_2 || null,\n postal_code: billingAddress.postcode || null,\n state: billingAddress.state || null\n }\n }\n if (billingAddress?.phone) {\n billing_details.phone = billingAddress.phone;\n }\n if (billingAddress?.email) {\n billing_details.email = billingAddress.email;\n }\n return billing_details;\n}\n\nexport const getSettings = (name) => (key) => {\n if (key) {\n return getSetting(name)[key];\n }\n return getSetting(name);\n}\n\nexport class StripeError extends Error {\n constructor(error) {\n super(error.message);\n this.error = error;\n }\n}\n\n/**\n * Returns true if the provided value is empty.\n * @param value\n * @returns {boolean}\n */\nexport const isEmpty = (value) => {\n if (typeof value === 'string') {\n return value.length == 0 || value == '';\n }\n if (Array.isArray(value)) {\n return array.length == 0;\n }\n if (typeof value === 'object') {\n return Object.keys(value).length == 0;\n }\n if (typeof value === 'undefined') {\n return true;\n }\n return true;\n}\n\nexport const removeNumberPrecision = (value, unit) => {\n return value / 10 ** unit;\n}\n\n/**\n *\n * @param address\n * @param country\n */\nexport const isAddressValid = (address, exclude = []) => {\n const fields = getLocaleFields(address.country);\n for (const [key, value] of Object.entries(address)) {\n if (!exclude.includes(key) && fields?.[key] && fields[key].required) {\n if (isEmpty(value)) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport const getLocaleFields = (country) => {\n let localeFields = {...countryLocale.default};\n if (country && countryLocale?.[country]) {\n localeFields = Object.entries(countryLocale[country]).reduce((locale, [key, value]) => {\n locale[key] = {...locale[key], ...value}\n return locale;\n }, localeFields);\n ['phone', 'shipping-phone', 'email'].forEach(key => {\n let node = document.getElementById(key);\n if (node) {\n localeFields[key] = {required: node.required};\n }\n });\n }\n return localeFields;\n}\n\n/**\n * Return true if the field is required by the cart\n * @param field\n * @param country\n * @returns {boolean|*}\n */\nexport const isFieldRequired = (field, country = false) => {\n const fields = getLocaleFields(country);\n return [field] in fields && fields[field].required;\n}\n\nexport const getSelectedShippingOption = (id) => {\n const result = id.match(SHIPPING_OPTION_REGEX);\n if (result) {\n const {1: packageIdx, 2: rate} = result;\n return [rate, packageIdx];\n }\n return [];\n}\n\nexport const hasShippingRates = (shippingRates) => {\n return shippingRates.map(rate => {\n return rate.shipping_rates.length > 0;\n }).filter(Boolean).length > 0;\n}\n\n/**\n * Return true if the customer is logged in.\n * @param customerId\n * @returns {boolean}\n */\nexport const isUserLoggedIn = (customerId) => {\n return customerId > 0;\n}\n\nconst syncPaymentIntentWithOrder = async (order_id, client_secret) => {\n try {\n await apiFetch({\n url: routes['sync/intent'],\n method: 'POST',\n data: {order_id, client_secret}\n })\n } catch (error) {\n console.log(error);\n }\n}\n\nexport const handleCardAction = async (\n {\n redirectUrl,\n responseTypes,\n name,\n method = 'handleCardAction',\n savePaymentMethod = false\n }) => {\n try {\n let match = redirectUrl.match(/#response=(.+)/)\n if (match) {\n let {client_secret, order_id, order_key} = JSON.parse(window.atob(decodeURIComponent(match[1])));\n const stripe = await initStripe;\n let result = await stripe[method](client_secret);\n if (result.error) {\n return ensureErrorResponse(responseTypes, result.error);\n }\n // success so finish processing order then redirect to thank you page\n let data = {order_id, order_key, [`${name}_save_source_key`]: savePaymentMethod};\n let response = await apiFetch({\n url: getRoute('process/payment'),\n method: 'POST',\n data\n })\n if (response.messages) {\n return ensureErrorResponse(responseTypes, response.messages);\n }\n return ensureSuccessResponse(responseTypes, {\n redirectUrl: response.redirect\n });\n } else {\n return ensureSuccessResponse(responseTypes);\n }\n } catch (err) {\n console.log(err);\n return ensureErrorResponse(responseTypes, err);\n }\n}\n\n/**\n * Convert a payment wallet address to a WC cart address.\n * @param address_mappings\n * @returns {function(*, *=): {}}\n */\nexport const toCartAddress = (address_mappings = PAYMENT_REQUEST_ADDRESS_MAPPINGS) => (address, args = {}) => {\n const cartAddress = {};\n address = {...address, ...filterEmptyValues(args)};\n for (let [key, cartKey] of Object.entries(address_mappings)) {\n if (address?.[key]) {\n if (typeof cartKey === 'function') {\n cartKey(cartAddress, address[key]);\n } else {\n cartAddress[cartKey] = address[key];\n }\n }\n }\n return cartAddress;\n}\n\n/**\n * Given a WC formatted address, return only the intermediate address values\n * @param address\n * @param fields\n */\nexport const getIntermediateAddress = (address, fields = ['city', 'postcode', 'state', 'country']) => {\n const intermediateAddress = {};\n for (let key of fields) {\n intermediateAddress[key] = address[key];\n }\n return intermediateAddress;\n}\n\n/**\n *\n * @param values\n * @returns {{}|{[p: string]: *}}\n */\nexport const filterEmptyValues = (values) => {\n return Object.keys(values).filter(key => Boolean(values[key])).reduce((obj, key) => ({\n ...obj,\n [key]: values[key]\n }), {});\n}\n\nexport const formatPrice = (price, currencyCode) => {\n const {prefix, suffix, decimalSeparator, minorUnit, thousandSeparator} = getCurrency(currencyCode);\n if (price == '' || price === undefined) {\n return price;\n }\n\n price = typeof price === 'string' ? parseInt(price, 10) : price;\n price = price / 10 ** minorUnit;\n price = price.toString().replace('.', decimalSeparator);\n let fractional = '';\n const index = price.indexOf(decimalSeparator);\n if (index < 0) {\n if (minorUnit > 0) {\n price += `${decimalSeparator}${new Array(minorUnit + 1).join('0')}`;\n }\n } else {\n fractional = price.substr(index + 1);\n if (fractional.length < minorUnit) {\n price += new Array(minorUnit - fractional.length + 1).join('0');\n }\n }\n\n // separate out price and decimals so thousands separator can be added.\n const match = price.match(new RegExp(`(\\\\d+)\\\\${decimalSeparator}(\\\\d+)`));\n if (match) {\n ({1: price, 2: fractional} = match);\n }\n price = price.replace(new RegExp(`\\\\B(?=(\\\\d{3})+(?!\\\\d))`, 'g'), `${thousandSeparator}`);\n price = fractional?.length > 0 ? price + decimalSeparator + fractional : price;\n price = prefix + price + suffix;\n return price;\n}\n\nexport const getShippingOptions = (shippingRates) => {\n let options = [];\n shippingRates.forEach((shippingPackage, idx) => {\n // sort by selected rate\n shippingPackage.shipping_rates.sort((rate) => {\n return rate.selected ? -1 : 1;\n });\n let rates = shippingPackage.shipping_rates.map(rate => {\n let txt = document.createElement('textarea');\n txt.innerHTML = rate.name;\n let price = formatPrice(rate.price, rate.currency_code);\n return {\n id: getShippingOptionId(idx, rate.rate_id),\n label: txt.value,\n //detail: `${price}`,\n amount: parseInt(rate.price, 10)\n }\n });\n options = [...options, ...rates];\n });\n return options;\n}\n\nexport const getShippingOptionId = (packageId, rateId) => `${packageId}:${rateId}`\n\nexport const getDisplayItems = (cartItems, {minorUnit}) => {\n let items = [];\n const keys = ['total_tax', 'total_shipping'];\n cartItems.forEach(item => {\n if (0 < item.value || (item.key && keys.includes(item.key))) {\n items.push({\n label: item.label,\n pending: false,\n amount: item.value\n });\n }\n })\n return items;\n}\n\nconst canPay = {};\n\nexport const canMakePayment = ({country, currency, total}, callback) => {\n return new Promise((resolve, reject) => {\n const key = [country, currency, total.amount].reduce((key, value) => `${key}-${value}`);\n if (!currency) {\n return resolve(false);\n }\n if (key in canPay) {\n return resolve(canPay[key]);\n }\n return initStripe.then(stripe => {\n if (stripe.error) {\n return reject(stripe.error);\n }\n const request = stripe.paymentRequest({\n country,\n currency,\n total\n });\n request.canMakePayment().then(result => {\n canPay[key] = callback(result);\n return resolve(canPay[key]);\n });\n }).catch(reject);\n });\n};\n\nexport const registerLocalPaymentMethod = (paymentMethod) => {\n localPaymentMethods.push(paymentMethod);\n}\n\nexport const getLocalPaymentMethods = () => localPaymentMethods;\n\nexport const cartContainsPreOrder = () => {\n const data = getSetting('stripePaymentData');\n return data && data.pre_order;\n}\n\nexport const cartContainsSubscription = () => {\n const data = getSetting('stripePaymentData');\n return data && data.subscription;\n}\n\nexport const getDefaultSourceArgs = ({type, amount, billingData, currency, returnUrl}) => {\n return {\n type,\n amount,\n currency,\n owner: getBillingDetailsFromAddress(billingData),\n redirect: {\n return_url: returnUrl\n }\n }\n}\n\nexport const isTestMode = () => {\n return getSetting('stripeGeneralData').mode === 'test';\n}\n\nconst getCacheKey = (key) => `${CACHE_PREFIX}${key}`;\n\nexport const storeInCache = (key, value) => {\n const exp = Math.floor(new Date().getTime() / 1000) + (60 * 15);\n if ('sessionStorage' in window) {\n sessionStorage.setItem(getCacheKey(key), JSON.stringify({value, exp}));\n }\n}\n\nexport const getFromCache = (key) => {\n if ('sessionStorage' in window) {\n try {\n const item = JSON.parse(sessionStorage.getItem(getCacheKey(key)));\n if (item) {\n const {value, exp} = item;\n if (Math.floor(new Date().getTime() / 1000) > exp) {\n deleteFromCache(getCacheKey(key));\n } else {\n return value;\n }\n }\n } catch (err) {\n }\n }\n return null;\n}\n\nexport const deleteFromCache = (key) => {\n if ('sessionStorage' in window) {\n sessionStorage.removeItem(getCacheKey(key));\n }\n}\n\nexport const versionCompare = (ver1, ver2, compare) => {\n switch (compare) {\n case '<':\n return ver1 < ver2;\n case '>':\n return ver1 > ver2;\n case '<=':\n return ver1 <= ver2;\n case '>=':\n return ver1 >= ver2;\n case '=':\n return ver1 == ver2;\n }\n return false;\n}\n\nexport const isCartPage = () => getSetting('stripeGeneralData').page === 'cart';\n\nexport const isCheckoutPage = () => getSetting('stripeGeneralData').page === 'checkout';\n\nexport const isNextActionRequired = (url) => {\n let match = url.match(/#response=(.+)/);\n let args = null;\n if (match) {\n args = JSON.parse(window.atob(decodeURIComponent(match[1])));\n }\n return args;\n}","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"],"names":["module","exports","arr","len","length","i","arr2","Array","isArray","arrayLikeToArray","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","instance","Constructor","TypeError","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","Reflect","construct","a","push","Function","bind","prototype","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","obj","_extends","assign","source","hasOwnProperty","call","_getPrototypeOf","o","getPrototypeOf","__proto__","subClass","superClass","create","constructor","__esModule","toString","indexOf","sham","Proxy","Date","e","iter","Symbol","iterator","from","_arr","_n","_d","_e","_s","_i","next","objectWithoutPropertiesLoose","excluded","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","keys","_typeof","assertThisInitialized","_setPrototypeOf","p","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","minLen","n","slice","name","test","isNativeFunction","_wrapNativeSuper","_cache","Map","has","get","set","Wrapper","React","emptyFunction","emptyFunctionWithReset","resetWarningCache","propTypes","shim","propName","componentName","location","propFullName","secret","Error","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","factoryWithThrowingShims","ownKeys","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread2","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","usePrevious","ref","useRef","useEffect","current","isUnknownObject","raw","PLAIN_OBJECT_STR","isEqual","left","right","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","allKeys","l","r","every","extractAllowedOptionsUpdates","options","prevOptions","immutableKeys","reduce","newOptions","isUpdated","includes","console","warn","concat","validateStripe","maybeStripe","elements","createToken","createPaymentMethod","confirmCardPayment","parseStripeProp","isPromise","tag","stripePromise","stripe","ElementsContext","createContext","displayName","Elements","_ref","rawStripeProp","children","parsed","useMemo","_React$useState2","useState","ctx","setContext","isMounted","safeSetContext","prevStripe","updates","update","anyStripe","_registerWrapper","registerAppInfo","version","url","createElement","Provider","useElementsContextWithUseCase","useCaseMessage","useCase","parseElementsContext","useContext","ElementsConsumer","_ref2","useCallbackReference","cb","noop","createElementComponent","type","isServer","str","charAt","toUpperCase","Element","id","className","_ref$options","_ref$onBlur","onBlur","_ref$onFocus","onFocus","_ref$onReady","onReady","_ref$onChange","onChange","_ref$onEscape","onEscape","_ref$onClick","onClick","_ref$onLoadError","onLoadError","elementRef","domNode","callOnReady","callOnBlur","callOnFocus","callOnClick","callOnChange","callOnEscape","callOnLoadError","useLayoutEffect","mount","on","destroy","__elementType","window","AuBankAccountElement","CardElement","CardNumberElement","CardExpiryElement","CardCvcElement","FpxBankElement","IbanElement","IdealBankElement","P24BankElement","EpsBankElement","PaymentElement","PaymentRequestButtonElement","LinkAuthenticationElement","ShippingAddressElement","AffirmMessageElement","AfterpayClearpayMessageElement","useElements","useStripe","factory","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","initStripe","startTime","registerWrapper","stripePromise$1","params","Stripe","script","scripts","document","querySelectorAll","src","findScript","queryString","advancedFraudSignals","headOrBody","head","body","appendChild","injectScript","addEventListener","loadCalled","loadStripe","_len","_key","now","Installments","paymentMethodName","getCreatePaymentMethodArgs","cardFormComplete","addPaymentMethodData","getPaymentMethod","installments","setInstallments","installment","setInstallment","loading","setLoading","paymentMethod","getRoute","method","data","payment_method_id","payment_method","result","catch","log","finally","__","Loader","InstallmentOptions","_stripe_installment_plan","isLoading","OPTIONS","disabled","map","dangerouslySetInnerHTML","__html","text","title","icons","components","Label","PaymentMethodLabel","Icons","PaymentMethodIcons","align","getData","content","Content","desc","el","childNodes","classList","add","Description","RadioControlOption","checked","label","event","onCheckoutAfterProcessingWithSuccess","responseTypes","billingAddress","currentData","unsubscribe","redirectUrl","isNextActionRequired","processPaymentIntent","processSetupIntent","useCallback","client_secret","order_id","order_key","collectBankAccountForPayment","clientSecret","payment_method_type","payment_method_data","billing_details","first_name","last_name","email","response","paymentIntent","status","confirmUsBankAccountPayment","stripe_ach_token_key","messages","ensureSuccessResponse","redirect","code","ensureErrorResponse","collectBankAccountForSetup","setupIntent","confirmUsBankAccountSetup","getSettings","ACHPaymentContent","eventRegistration","emitResponse","billing","onSubmit","onCheckoutAfterProcessingWithError","onPaymentProcessing","useProcessCheckoutError","subscriber","useProcessPayment","billingData","Mandate","ACHComponent","registerPaymentMethod","ariaLabel","canMakePayment","cartTotals","currency_code","PaymentMethod","savedTokenComponent","edit","placeOrderButtonLabel","supports","showSavedCards","showSaveOption","features","ApplePayContent","ApplePayButton","onClose","shippingData","activePaymentMethod","noticeContexts","useStripeError","exportedValues","useExportedValues","useExpressBreakpointWidth","width","setPaymentMethod","useProcessPaymentIntent","useAfterProcessingPayment","messageContext","EXPRESS_PAYMENTS","paymentRequest","usePaymentRequest","canPay","applePay","handleClick","preventDefault","show","style","ApplePayEdit","registerExpressPaymentMethod","currency","total_price","country","toLowerCase","total","amount","parseInt","Bootstrap","CardIcon","htmlFor","registerCreditCardForm","breakpoint","component","classes","focus","empty","invalid","eventChange","onComplete","cardType","setCardType","elementOrder","container","setContainer","getCreditCardForm","CardForm","postalCodeEnabled","elementStatus","setElementOrder","useBreakpointWidth","getCardIconSrc","cloneElement","brand","complete","idx","nextElement","getElement","sprintf","SimpleForm","card","cardOptions","postalCode","postcode","hidePostalCode","isFieldRequired","iconStyle","PaymentElementComponent","cartData","extensions","stripe_cc","formComplete","setFormComplete","installmentsActive","shouldSavePayment","useUpdatePaymentIntent","updatePaymentIntent","PAYMENTS","fields","billingDetails","address","wallets","googlePay","CreditCardContent","setError","CreditCardElement","getPaymentMethodArgs","elType","useSetupIntent","cartTotal","removeSetupIntent","Tag","CustomCardForm","StripeCardForm","ErrorBoundary","state","hasError","errorInfo","setState","componentStack","Component","publishableKey","setErrorMessage","checkoutStatus","merchantInfo","merchantId","merchantName","buttonContainer","buttonType","buildPaymentRequest","usePaymentsClient","button","removeButton","append","parameters","allowedAuthMethods","allowedCardNetworks","assuranceDetailsRequired","apiVersion","apiVersionMinor","errorMessage","processingCountry","totalPriceLabel","shippingRates","emailRequired","isEmpty","allowedPaymentMethods","tokenizationSpecification","gateway","BASE_PAYMENT_METHOD","shippingAddressRequired","needsShipping","transactionInfo","getTransactionInfo","callbackIntents","BASE_PAYMENT_REQUEST","billingAddressRequired","billingAddressParameters","format","phoneNumberRequired","phone","shippingOptionRequired","shippingOptionParameters","getShippingOptionParameters","shippingOptions","environment","paymentsClient","setPaymentsClient","setButton","currentBilling","currentShipping","usePaymentEvents","addPaymentEvent","setAddressData","paymentData","paymentMethodData","isAddressValid","phoneNumber","toCartAddress","shippingAddress","parentElement","firstChild","removeChild","loadPaymentData","JSON","parse","tokenizationData","token","getBillingDetailsFromAddress","StripeError","statusCode","getErrorMessage","createButton","paymentOptions","paymentDataCallbacks","onPaymentAuthorized","transactionState","onPaymentDataChanged","shipping","shippingOptionData","selectedRates","getSelectedShippingOption","shipping_method","page_id","paymentRequestUpdate","setSelectedRates","google","payments","api","PaymentsClient","isReadyToPayRequest","isReadyToPay","GooglePayContent","ValidationInputError","useErrorMessage","GooglePayEdit","isCartPage","getSetting","cartTotalItems","countryCode","currencyCode","totalPriceStatus","totalPrice","removeNumberPrecision","minorUnit","displayItems","getDisplayItems","newTransactionInfo","newShippingOptionParameters","unit","items","item","price","getShippingOptions","defaultSelectedOptionId","option","shift","shippingPackage","shipping_rates","rate","selected","getShippingOptionId","rate_id","rates","txt","innerHTML","formatPrice","description","split","join","pop","address1","address2","locality","administrativeArea","unsubscribeAfterProcessingWithSuccess","handleCardAction","savePaymentMethod","innerWidth","windowWidth","setWindowWidth","getMaxWidth","maxWidth","getFromCache","setMaxWidth","storeInCache","clientWidth","remove","handleResize","removeEventListener","getElementById","parentNode","onShippingRateSuccess","onShippingRateFail","onShippingRateSelectSuccess","handler","setHandler","onShippingChanged","paymentEvents","setPaymentEvent","execute","removePaymentEvent","isSelectingRate","shippingRatesLoading","success","hasShippingRates","unsubscribeShippingRateSuccess","unsubscribeShippingRateSelectSuccess","unsubscribeShippingRateFail","hasInvalidAddress","setPaymentRequest","paymentRequestOptions","pending","requestPayerName","requestPayerEmail","requestPayerPhone","requestShipping","onShippingAddressChange","onShippingOptionChange","onPaymentMethodReceived","updatePaymentEvent","updateWith","intermediateAddress","setShippingAddress","addressEqual","getIntermediateAddress","shippingOption","paymentResponse","payerName","payerEmail","payerPhone","processingResponse","paymentDetails","stripeErrorMessage","ERROR","message","paymentType","currentPaymentMethodArgs","getSuccessResponse","paymentMethodId","meta","unsubscribeProcessingPayment","confirmCardSetup","setSetupIntent","createSetupIntent","intent","cartContainsPreOrder","cartContainsSubscription","deleteFromCache","confirmPayment","confirmParams","retrievePaymentIntent","link","setLink","linkData","linkAutofillModal","launch","recipient","stripe_cc_token_key","stripe_cc_save_source_key","LinkComponent","stripe_link_checkout","LinkCheckout","useLink","display","variablesHandler","globalVariables","isAvailable","available","billingCountry","requiredParams","accountCountry","requiredParamObj","countries","isCartEligible","isEligible","variables","setVariables","AfterpayPaymentMethod","OrderItemMessaging","cart","context","cartNeedsShipping","totalInCents","currency_minor_unit","TotalsWrapper","settings","LocalPaymentIntentContent","confirmationMethod","registerPlugin","render","ExperimentalOrderMeta","scope","BecsPaymentMethod","taxId","setTaxId","isActive","setIsActive","callback","boleto","tax_id","wc_stripe_boleto_tax_id","isTestMode","currentBillingData","match","atob","decodeURIComponent","return_url","order","decodeURI","order_received_url","getSourceArgs","setSource","isValid","setIsValid","currentValues","getSourceArgsInternal","getDefaultSourceArgs","returnUrl","getSuccessData","sourceId","createSource","msg","LocalPaymentIntentMethod","LocalPaymentSourceMethod","useCreateSource","LocalPaymentElementContainer","useValidateCheckout","useAfterProcessLocalPayment","PAYMENT","LocalPaymentSourceContent","SepaPaymentMethod","sofort","WeChatComponent","WeChatPaymentMethod","size","deleteSourceFromStorage","QRCodeComponent","wechat","qr_code_url","height","colorDark","colorLight","correctLevel","QRCode","CorrectLevel","H","createSourceTimeoutId","clearTimeout","setTimeout","PaymentRequestContent","PaymentRequestButton","paymentRequestButton","PaymentRequestEdit","canvas","scale","devicePixelRatio","getContext","beginPath","arc","Math","PI","fillStyle","fill","handleSuccessResult","stripeParams","countryLocale","SHIPPING_OPTION_REGEX","routes","creditCardForms","localPaymentMethods","PAYMENT_REQUEST_ADDRESS_MAPPINGS","addressLine","address_1","address_2","line1","line2","city","region","postal_code","route","SUCCESS","statusMessage","exclude","getLocaleFields","entries","required","localeFields","default","locale","field","packageIdx","Boolean","customerId","address_mappings","cartAddress","filterEmptyValues","cartKey","values","getCurrency","prefix","suffix","decimalSeparator","thousandSeparator","fractional","index","replace","substr","RegExp","sort","packageId","rateId","cartItems","pre_order","subscription","owner","mode","getCacheKey","exp","floor","getTime","sessionStorage","setItem","stringify","getItem","removeItem","ver1","ver2","compare","page","hasOwn","classNames","argType","inner"],"sourceRoot":""}
1
+ {"version":3,"file":"commons.js","mappings":";kFAUAA,EAAOC,QAVP,SAA2BC,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAC9CC,EAAKD,GAAKH,EAAIG,GAGhB,OAAOC,aCHTN,EAAOC,QAJP,SAAyBC,GACvB,GAAIK,MAAMC,QAAQN,GAAM,OAAOA,mBCDjC,IAAIO,EAAmB,EAAQ,MAM/BT,EAAOC,QAJP,SAA4BC,GAC1B,GAAIK,MAAMC,QAAQN,GAAM,OAAOO,EAAiBP,cCKlDF,EAAOC,QARP,SAAgCS,GAC9B,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAG3B,OAAOD,aCLT,SAASE,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQC,EAAKC,GACpE,IACE,IAAIC,EAAOP,EAAIK,GAAKC,GAChBE,EAAQD,EAAKC,MACjB,MAAOC,GAEP,YADAP,EAAOO,GAILF,EAAKG,KACPT,EAAQO,GAERG,QAAQV,QAAQO,GAAOI,KAAKT,EAAOC,GAwBvCjB,EAAOC,QApBP,SAA2ByB,GACzB,OAAO,WACL,IAAIhB,EAAOiB,KACPC,EAAOC,UACX,OAAO,IAAIL,SAAQ,SAAUV,EAASC,GACpC,IAAIF,EAAMa,EAAGI,MAAMpB,EAAMkB,GAEzB,SAASZ,EAAMK,GACbT,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQI,GAGlE,SAASJ,EAAOc,GACdnB,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAASc,GAGnEf,OAAMgB,kBCzBZhC,EAAOC,QANP,SAAyBgC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,sDCFxB,IAAIC,EAAiB,EAAQ,MAEzBC,EAA2B,EAAQ,MAEvC,SAASC,EAAWC,EAAQX,EAAMY,GAchC,OAbIH,IACFrC,EAAOC,QAAUqC,EAAaG,QAAQC,UAEtC1C,EAAOC,QAAUqC,EAAa,SAAoBC,EAAQX,EAAMY,GAC9D,IAAIG,EAAI,CAAC,MACTA,EAAEC,KAAKd,MAAMa,EAAGf,GAChB,IACIK,EAAW,IADGY,SAASC,KAAKhB,MAAMS,EAAQI,IAG9C,OADIH,GAAOJ,EAAeH,EAAUO,EAAMO,WACnCd,GAIJK,EAAWR,MAAM,KAAMD,WAGhC7B,EAAOC,QAAUqC,YCrBjB,SAASU,EAAkBC,EAAQC,GACjC,IAAK,IAAI7C,EAAI,EAAGA,EAAI6C,EAAM9C,OAAQC,IAAK,CACrC,IAAI8C,EAAaD,EAAM7C,GACvB8C,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeP,EAAQE,EAAWjC,IAAKiC,IAUlDnD,EAAOC,QANP,SAAsBiC,EAAauB,EAAYC,GAG7C,OAFID,GAAYT,EAAkBd,EAAYa,UAAWU,GACrDC,GAAaV,EAAkBd,EAAawB,GACzCxB,aCETlC,EAAOC,QAfP,SAAyB0D,EAAKzC,EAAKG,GAYjC,OAXIH,KAAOyC,EACTJ,OAAOC,eAAeG,EAAKzC,EAAK,CAC9BG,MAAOA,EACP+B,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZK,EAAIzC,GAAOG,EAGNsC,aCZT,SAASC,IAeP,OAdA5D,EAAOC,QAAU2D,EAAWL,OAAOM,QAAU,SAAUZ,GACrD,IAAK,IAAI5C,EAAI,EAAGA,EAAIwB,UAAUzB,OAAQC,IAAK,CACzC,IAAIyD,EAASjC,UAAUxB,GAEvB,IAAK,IAAIa,KAAO4C,EACVP,OAAOR,UAAUgB,eAAeC,KAAKF,EAAQ5C,KAC/C+B,EAAO/B,GAAO4C,EAAO5C,IAK3B,OAAO+B,GAGFW,EAAS9B,MAAMH,KAAME,WAG9B7B,EAAOC,QAAU2D,YClBjB,SAASK,EAAgBC,GAIvB,OAHAlE,EAAOC,QAAUgE,EAAkBV,OAAOnB,eAAiBmB,OAAOY,eAAiB,SAAyBD,GAC1G,OAAOA,EAAEE,WAAab,OAAOY,eAAeD,IAEvCD,EAAgBC,GAGzBlE,EAAOC,QAAUgE,kBCPjB,IAAI7B,EAAiB,EAAQ,MAiB7BpC,EAAOC,QAfP,SAAmBoE,EAAUC,GAC3B,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAInC,UAAU,sDAGtBkC,EAAStB,UAAYQ,OAAOgB,OAAOD,GAAcA,EAAWvB,UAAW,CACrEyB,YAAa,CACXnD,MAAOgD,EACPf,UAAU,EACVD,cAAc,KAGdiB,GAAYlC,EAAeiC,EAAUC,cCR3CtE,EAAOC,QANP,SAAgC0D,GAC9B,OAAOA,GAAOA,EAAIc,WAAad,EAAM,CACnC,QAAWA,aCEf3D,EAAOC,QAJP,SAA2ByB,GACzB,OAAgE,IAAzDmB,SAAS6B,SAASV,KAAKtC,GAAIiD,QAAQ,4BCY5C3E,EAAOC,QAbP,WACE,GAAuB,oBAAZwC,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAUkC,KAAM,OAAO,EACnC,GAAqB,mBAAVC,MAAsB,OAAO,EAExC,IAEE,OADAC,KAAK/B,UAAU2B,SAASV,KAAKvB,QAAQC,UAAUoC,KAAM,IAAI,iBAClD,EACP,MAAOC,GACP,OAAO,cCLX/E,EAAOC,QAJP,SAA0B+E,GACxB,GAAsB,oBAAXC,QAA0BA,OAAOC,YAAY3B,OAAOyB,GAAO,OAAOzE,MAAM4E,KAAKH,cC0B1FhF,EAAOC,QA3BP,SAA+BC,EAAKG,GAClC,GAAsB,oBAAX4E,QAA4BA,OAAOC,YAAY3B,OAAOrD,GAAjE,CACA,IAAIkF,EAAO,GACPC,GAAK,EACLC,GAAK,EACLC,OAAKvD,EAET,IACE,IAAK,IAAiCwD,EAA7BC,EAAKvF,EAAI+E,OAAOC,cAAmBG,GAAMG,EAAKC,EAAGC,QAAQnE,QAChE6D,EAAKxC,KAAK4C,EAAGnE,QAEThB,GAAK+E,EAAKhF,SAAWC,GAH8CgF,GAAK,IAK9E,MAAOtD,GACPuD,GAAK,EACLC,EAAKxD,EACL,QACA,IACOsD,GAAsB,MAAhBI,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,aCpBTpF,EAAOC,QAJP,WACE,MAAM,IAAIkC,UAAU,wJCGtBnC,EAAOC,QAJP,WACE,MAAM,IAAIkC,UAAU,yJCDtB,IAAIwD,EAA+B,EAAQ,MAqB3C3F,EAAOC,QAnBP,SAAkC6D,EAAQ8B,GACxC,GAAc,MAAV9B,EAAgB,MAAO,GAC3B,IACI5C,EAAKb,EADL4C,EAAS0C,EAA6B7B,EAAQ8B,GAGlD,GAAIrC,OAAOsC,sBAAuB,CAChC,IAAIC,EAAmBvC,OAAOsC,sBAAsB/B,GAEpD,IAAKzD,EAAI,EAAGA,EAAIyF,EAAiB1F,OAAQC,IACvCa,EAAM4E,EAAiBzF,GACnBuF,EAASjB,QAAQzD,IAAQ,GACxBqC,OAAOR,UAAUgD,qBAAqB/B,KAAKF,EAAQ5C,KACxD+B,EAAO/B,GAAO4C,EAAO5C,IAIzB,OAAO+B,aCHTjD,EAAOC,QAfP,SAAuC6D,EAAQ8B,GAC7C,GAAc,MAAV9B,EAAgB,MAAO,GAC3B,IAEI5C,EAAKb,EAFL4C,EAAS,GACT+C,EAAazC,OAAO0C,KAAKnC,GAG7B,IAAKzD,EAAI,EAAGA,EAAI2F,EAAW5F,OAAQC,IACjCa,EAAM8E,EAAW3F,GACbuF,EAASjB,QAAQzD,IAAQ,IAC7B+B,EAAO/B,GAAO4C,EAAO5C,IAGvB,OAAO+B,mBCZT,IAAIiD,EAAU,EAAQ,GAElBC,EAAwB,EAAQ,MAUpCnG,EAAOC,QARP,SAAoCS,EAAMsD,GACxC,OAAIA,GAA2B,WAAlBkC,EAAQlC,IAAsC,mBAATA,EAI3CmC,EAAsBzF,GAHpBsD,aCNX,SAASoC,EAAgBlC,EAAGmC,GAM1B,OALArG,EAAOC,QAAUmG,EAAkB7C,OAAOnB,gBAAkB,SAAyB8B,EAAGmC,GAEtF,OADAnC,EAAEE,UAAYiC,EACPnC,GAGFkC,EAAgBlC,EAAGmC,GAG5BrG,EAAOC,QAAUmG,kBCTjB,IAAIE,EAAiB,EAAQ,MAEzBC,EAAuB,EAAQ,MAE/BC,EAA6B,EAAQ,KAErCC,EAAkB,EAAQ,KAM9BzG,EAAOC,QAJP,SAAwBC,EAAKG,GAC3B,OAAOiG,EAAepG,IAAQqG,EAAqBrG,EAAKG,IAAMmG,EAA2BtG,EAAKG,IAAMoG,oBCTtG,IAAIC,EAAoB,EAAQ,MAE5BC,EAAkB,EAAQ,MAE1BH,EAA6B,EAAQ,KAErCI,EAAoB,EAAQ,MAMhC5G,EAAOC,QAJP,SAA4BC,GAC1B,OAAOwG,EAAkBxG,IAAQyG,EAAgBzG,IAAQsG,EAA2BtG,IAAQ0G,YCT9F,SAASV,EAAQvC,GAaf,MAVsB,mBAAXsB,QAAoD,iBAApBA,OAAOC,SAChDlF,EAAOC,QAAUiG,EAAU,SAAiBvC,GAC1C,cAAcA,GAGhB3D,EAAOC,QAAUiG,EAAU,SAAiBvC,GAC1C,OAAOA,GAAyB,mBAAXsB,QAAyBtB,EAAIa,cAAgBS,QAAUtB,IAAQsB,OAAOlC,UAAY,gBAAkBY,GAItHuC,EAAQvC,GAGjB3D,EAAOC,QAAUiG,iBChBjB,IAAIzF,EAAmB,EAAQ,MAW/BT,EAAOC,QATP,SAAqCiE,EAAG2C,GACtC,GAAK3C,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAOzD,EAAiByD,EAAG2C,GACtD,IAAIC,EAAIvD,OAAOR,UAAU2B,SAASV,KAAKE,GAAG6C,MAAM,GAAI,GAEpD,MADU,WAAND,GAAkB5C,EAAEM,cAAasC,EAAI5C,EAAEM,YAAYwC,MAC7C,QAANF,GAAqB,QAANA,EAAoBvG,MAAM4E,KAAKjB,GACxC,cAAN4C,GAAqB,2CAA2CG,KAAKH,GAAWrG,EAAiByD,EAAG2C,QAAxG,oBCRF,IAAI1C,EAAiB,EAAQ,MAEzB/B,EAAiB,EAAQ,MAEzB8E,EAAmB,EAAQ,KAE3BxE,EAAY,EAAQ,MAExB,SAASyE,EAAiB3E,GACxB,IAAI4E,EAAwB,mBAARC,IAAqB,IAAIA,SAAQrF,EA8BrD,OA5BAhC,EAAOC,QAAUkH,EAAmB,SAA0B3E,GAC5D,GAAc,OAAVA,IAAmB0E,EAAiB1E,GAAQ,OAAOA,EAEvD,GAAqB,mBAAVA,EACT,MAAM,IAAIL,UAAU,sDAGtB,QAAsB,IAAXiF,EAAwB,CACjC,GAAIA,EAAOE,IAAI9E,GAAQ,OAAO4E,EAAOG,IAAI/E,GAEzC4E,EAAOI,IAAIhF,EAAOiF,GAGpB,SAASA,IACP,OAAO/E,EAAUF,EAAOX,UAAWsC,EAAexC,MAAM6C,aAW1D,OARAiD,EAAQ1E,UAAYQ,OAAOgB,OAAO/B,EAAMO,UAAW,CACjDyB,YAAa,CACXnD,MAAOoG,EACPrE,YAAY,EACZE,UAAU,EACVD,cAAc,KAGXjB,EAAeqF,EAASjF,IAG1B2E,EAAiB3E,GAG1BxC,EAAOC,QAAUkH,yBCtCT,SAAWlH,EAASyH,GAAS,aAEpCA,EAAQA,GAASnE,OAAOR,UAAUgB,eAAeC,KAAK0D,EAAO,WAAaA,EAAe,QAAIA,EAgB7F,SAASC,KAET,SAASC,KAETA,EAAuBC,kBAAoBF,EAE3C,IApB8BjG,EAAI1B,EAgE9B8H,GAhE0BpG,EAgEO,SAAU1B,GAU7CA,EAAOC,QAtDsB,WAC7B,SAAS8H,EAAK7E,EAAO8E,EAAUC,EAAeC,EAAUC,EAAcC,GACpE,GAXuB,iDAWnBA,EAAJ,CAKA,IAAIrG,EAAM,IAAIsG,MAAM,mLAEpB,MADAtG,EAAIiF,KAAO,sBACLjF,GAIR,SAASuG,IACP,OAAOP,EAHTA,EAAKQ,WAAaR,EAOlB,IAAIS,EAAiB,CACnBC,MAAOV,EACPW,KAAMX,EACNY,KAAMZ,EACNa,OAAQb,EACRc,OAAQd,EACRe,OAAQf,EACRgB,OAAQhB,EACRiB,IAAKjB,EACLkB,QAASX,EACTY,QAASnB,EACToB,YAAapB,EACbqB,WAAYd,EACZe,KAAMtB,EACNuB,SAAUhB,EACViB,MAAOjB,EACPkB,UAAWlB,EACXmB,MAAOnB,EACPoB,MAAOpB,EACPqB,eAAgB/B,EAChBC,kBAAmBF,GAGrB,OADAa,EAAeoB,UAAYpB,EACpBA,EAaUqB,IAzEenI,EAA1B1B,EAAS,CAAEC,QAAS,IAAiBD,EAAOC,SAAUD,EAAOC,SA6ErE,SAAS6J,EAAQjB,EAAQkB,GACvB,IAAI9D,EAAO1C,OAAO0C,KAAK4C,GAEvB,GAAItF,OAAOsC,sBAAuB,CAChC,IAAImE,EAAUzG,OAAOsC,sBAAsBgD,GAEvCkB,IACFC,EAAUA,EAAQC,QAAO,SAAUC,GACjC,OAAO3G,OAAO4G,yBAAyBtB,EAAQqB,GAAK9G,eAIxD6C,EAAKrD,KAAKd,MAAMmE,EAAM+D,GAGxB,OAAO/D,EAGT,SAASmE,EAAenH,GACtB,IAAK,IAAI5C,EAAI,EAAGA,EAAIwB,UAAUzB,OAAQC,IAAK,CACzC,IAAIyD,EAAyB,MAAhBjC,UAAUxB,GAAawB,UAAUxB,GAAK,GAE/CA,EAAI,EACNyJ,EAAQvG,OAAOO,IAAS,GAAMuG,SAAQ,SAAUnJ,GAC9CoJ,EAAgBrH,EAAQ/B,EAAK4C,EAAO5C,OAE7BqC,OAAOgH,0BAChBhH,OAAOiH,iBAAiBvH,EAAQM,OAAOgH,0BAA0BzG,IAEjEgG,EAAQvG,OAAOO,IAASuG,SAAQ,SAAUnJ,GACxCqC,OAAOC,eAAeP,EAAQ/B,EAAKqC,OAAO4G,yBAAyBrG,EAAQ5C,OAKjF,OAAO+B,EAGT,SAASiD,EAAQvC,GAaf,OATEuC,EADoB,mBAAXjB,QAAoD,iBAApBA,OAAOC,SACtC,SAAUvB,GAClB,cAAcA,GAGN,SAAUA,GAClB,OAAOA,GAAyB,mBAAXsB,QAAyBtB,EAAIa,cAAgBS,QAAUtB,IAAQsB,OAAOlC,UAAY,gBAAkBY,GAItHuC,EAAQvC,GAGjB,SAAS2G,EAAgB3G,EAAKzC,EAAKG,GAYjC,OAXIH,KAAOyC,EACTJ,OAAOC,eAAeG,EAAKzC,EAAK,CAC9BG,MAAOA,EACP+B,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZK,EAAIzC,GAAOG,EAGNsC,EAGT,SAAS8G,EAAevK,EAAKG,GAC3B,OAGF,SAAyBH,GACvB,GAAIK,MAAMC,QAAQN,GAAM,OAAOA,EAJxBwK,CAAgBxK,IAOzB,SAA+BA,EAAKG,GAClC,IAAIoF,EAAKvF,IAA0B,oBAAX+E,QAA0B/E,EAAI+E,OAAOC,WAAahF,EAAI,eAE9E,GAAU,MAANuF,EAAJ,CACA,IAIID,EAAID,EAJJH,EAAO,GACPC,GAAK,EACLC,GAAK,EAIT,IACE,IAAKG,EAAKA,EAAGzB,KAAK9D,KAAQmF,GAAMG,EAAKC,EAAGC,QAAQnE,QAC9C6D,EAAKxC,KAAK4C,EAAGnE,QAEThB,GAAK+E,EAAKhF,SAAWC,GAH4BgF,GAAK,IAK5D,MAAOtD,GACPuD,GAAK,EACLC,EAAKxD,EACL,QACA,IACOsD,GAAsB,MAAhBI,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIH,EAAI,MAAMC,GAIlB,OAAOH,GAlCwBuF,CAAsBzK,EAAKG,IAqC5D,SAAqC6D,EAAG2C,GACtC,GAAK3C,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO0G,EAAkB1G,EAAG2C,GACvD,IAAIC,EAAIvD,OAAOR,UAAU2B,SAASV,KAAKE,GAAG6C,MAAM,GAAI,GAEpD,MADU,WAAND,GAAkB5C,EAAEM,cAAasC,EAAI5C,EAAEM,YAAYwC,MAC7C,QAANF,GAAqB,QAANA,EAAoBvG,MAAM4E,KAAKjB,GACxC,cAAN4C,GAAqB,2CAA2CG,KAAKH,GAAW8D,EAAkB1G,EAAG2C,QAAzG,GA3CgEgE,CAA4B3K,EAAKG,IAsDnG,WACE,MAAM,IAAI8B,UAAU,6IAvDmF2I,GA8CzG,SAASF,EAAkB1K,EAAKC,IACnB,MAAPA,GAAeA,EAAMD,EAAIE,UAAQD,EAAMD,EAAIE,QAE/C,IAAK,IAAIC,EAAI,EAAGC,EAAO,IAAIC,MAAMJ,GAAME,EAAIF,EAAKE,IAAKC,EAAKD,GAAKH,EAAIG,GAEnE,OAAOC,EAOT,IAAIyK,EAAc,SAAqB1J,GACrC,IAAI2J,EAAMtD,EAAMuD,OAAO5J,GAIvB,OAHAqG,EAAMwD,WAAU,WACdF,EAAIG,QAAU9J,IACb,CAACA,IACG2J,EAAIG,SAGTC,EAAkB,SAAyBC,GAC7C,OAAe,OAARA,GAAiC,WAAjBnF,EAAQmF,IAY7BC,EAAmB,kBACnBC,EAAU,SAASA,EAAQC,EAAMC,GACnC,IAAKL,EAAgBI,KAAUJ,EAAgBK,GAC7C,OAAOD,IAASC,EAGlB,IAAIC,EAAYnL,MAAMC,QAAQgL,GAE9B,GAAIE,IADanL,MAAMC,QAAQiL,GACD,OAAO,EACrC,IAAIE,EAAkBpI,OAAOR,UAAU2B,SAASV,KAAKwH,KAAUF,EAE/D,GAAIK,KADmBpI,OAAOR,UAAU2B,SAASV,KAAKyH,KAAWH,GACvB,OAAO,EAGjD,IAAKK,IAAoBD,EAAW,OAAOF,IAASC,EACpD,IAAIG,EAAWrI,OAAO0C,KAAKuF,GACvBK,EAAYtI,OAAO0C,KAAKwF,GAC5B,GAAIG,EAASxL,SAAWyL,EAAUzL,OAAQ,OAAO,EAGjD,IAFA,IAAI0L,EAAS,GAEJzL,EAAI,EAAGA,EAAIuL,EAASxL,OAAQC,GAAK,EACxCyL,EAAOF,EAASvL,KAAM,EAGxB,IAAK,IAAIoF,EAAK,EAAGA,EAAKoG,EAAUzL,OAAQqF,GAAM,EAC5CqG,EAAOD,EAAUpG,KAAO,EAG1B,IAAIsG,EAAUxI,OAAO0C,KAAK6F,GAE1B,GAAIC,EAAQ3L,SAAWwL,EAASxL,OAC9B,OAAO,EAGT,IAAI4L,EAAIR,EACJS,EAAIR,EAMR,OAAOM,EAAQG,OAJJ,SAAchL,GACvB,OAAOqK,EAAQS,EAAE9K,GAAM+K,EAAE/K,QAMzBiL,EAA+B,SAAsCC,EAASC,EAAaC,GAC7F,OAAKlB,EAAgBgB,GAId7I,OAAO0C,KAAKmG,GAASG,QAAO,SAAUC,EAAYtL,GACvD,IAAIuL,GAAarB,EAAgBiB,KAAiBd,EAAQa,EAAQlL,GAAMmL,EAAYnL,IAEpF,OAAIoL,EAAcI,SAASxL,IACrBuL,GACFE,QAAQC,KAAK,oCAAoCC,OAAO3L,EAAK,gCAGxDsL,GAGJC,EAIErC,EAAeA,EAAe,GAAIoC,GAAc,IAAK,GAAIlC,EAAgB,GAAIpJ,EAAKkL,EAAQlL,KAHxFsL,IAIR,MAnBM,MA0BPM,EAAiB,SAAwBC,GAC3C,GAAoB,OAAhBA,GA5EG3B,EADwBC,EA6EM0B,IA5EkB,mBAAjB1B,EAAI2B,UAAsD,mBAApB3B,EAAI4B,aAAiE,mBAA5B5B,EAAI6B,qBAAwE,mBAA3B7B,EAAI8B,mBA6ExK,OAAOJ,EA9EI,IAAkB1B,EAiF/B,MAAM,IAAIhD,MATe,uMAYvB+E,EAAkB,SAAyB/B,GAC7C,GA3Fc,SAAmBA,GACjC,OAAOD,EAAgBC,IAA4B,mBAAbA,EAAI5J,KA0FtC4L,CAAUhC,GACZ,MAAO,CACLiC,IAAK,QACLC,cAAe/L,QAAQV,QAAQuK,GAAK5J,KAAKqL,IAI7C,IAAIU,EAASV,EAAezB,GAE5B,OAAe,OAAXmC,EACK,CACLF,IAAK,SAIF,CACLA,IAAK,OACLE,OAAQA,IAIRC,EAA+B/F,EAAMgG,cAAc,MACvDD,EAAgBE,YAAc,kBAC9B,IAOIC,EAAkClG,EAAMgG,cAAc,MAC1DE,EAAmBD,YAAc,qBACjC,IAkBIE,EAAW,SAAkBC,GAC/B,IAAIC,EAAgBD,EAAKN,OACrBpB,EAAU0B,EAAK1B,QACf4B,EAAWF,EAAKE,SAChBC,EAASvG,EAAMwG,SAAQ,WACzB,OAAOd,EAAgBW,KACtB,CAACA,IAGAI,EAAmB1D,EADD/C,EAAM0G,SAAS,MACkB,GACnDC,EAAOF,EAAiB,GACxBG,EAAUH,EAAiB,GAG3BI,EAAmB9D,EADA/C,EAAM0G,SAAS,MACkB,GACpDI,EAAYD,EAAiB,GAC7BE,EAAeF,EAAiB,GAShCG,EAAmBjE,EANA/C,EAAM0G,UAAS,WACpC,MAAO,CACLZ,OAAuB,SAAfS,EAAOX,IAAiBW,EAAOT,OAAS,KAChDR,SAAyB,SAAfiB,EAAOX,IAAiBW,EAAOT,OAAOR,SAASZ,GAAW,SAGhB,GACpDuC,EAAMD,EAAiB,GACvBE,EAAaF,EAAiB,GAElChH,EAAMwD,WAAU,WACd,IAAI2D,GAAY,EAEZC,EAAiB,SAAwBtB,GAC3CoB,GAAW,SAAUD,GAEnB,OAAIA,EAAInB,OAAemB,EAChB,CACLnB,OAAQA,EACRR,SAAUQ,EAAOR,SAASZ,QAoBhC,MAdmB,UAAf6B,EAAOX,KAAoBqB,EAAInB,OAST,SAAfS,EAAOX,KAAmBqB,EAAInB,QAEvCsB,EAAeb,EAAOT,QAVtBS,EAAOV,cAAc9L,MAAK,SAAU+L,GAC9BA,GAAUqB,GAIZC,EAAetB,MAQd,WACLqB,GAAY,KAEb,CAACZ,EAAQU,EAAKvC,IAEjB,IAAI2C,EAAahE,EAAYgD,GAC7BrG,EAAMwD,WAAU,WACK,OAAf6D,GAAuBA,IAAehB,GACxCpB,QAAQC,KAAK,gGAEd,CAACmC,EAAYhB,IAEhB,IAAI1B,EAActB,EAAYqB,GA+B9B,OA9BA1E,EAAMwD,WAAU,WACd,GAAKyD,EAAI3B,SAAT,CAIA,IAAIgC,EAAU7C,EAA6BC,EAASC,EAAa,CAAC,eAAgB,UAE9E2C,GACFL,EAAI3B,SAASiC,OAAOD,MAErB,CAAC5C,EAASC,EAAasC,EAAI3B,WAE9BtF,EAAMwD,WAAU,WACd,IAAIgE,EAAYP,EAAInB,OAEf0B,GAAcA,EAAUC,kBAAqBD,EAAUE,kBAI5DF,EAAUC,iBAAiB,CACzBnI,KAAM,kBACNqI,QAAS,WAGXH,EAAUE,gBAAgB,CACxBpI,KAAM,kBACNqI,QAAS,SACTC,IAAK,+CAEN,CAACX,EAAInB,SACY9F,EAAM6H,cAAc9B,EAAgB+B,SAAU,CAChEnO,MAAOsN,GACOjH,EAAM6H,cAAc3B,EAAmB4B,SAAU,CAC/DnO,MAAO,CACLgN,KAAMA,EACNC,QAASA,EACTE,UAAWA,EACXC,aAAcA,IAEfT,KAELH,EAAS/F,UAAY,CACnB0F,OAAQ1F,EAAUkB,IAClBoD,QAAStE,EAAUe,QAErB,IAAI4G,EAAgC,SAAuCC,GAEzE,OAjJyB,SAA8Bf,EAAKgB,GAC5D,IAAKhB,EACH,MAAM,IAAItG,MAAM,+EAA+EwE,OAAO8C,EAAS,gCAGjH,OAAOhB,EA4IAiB,CADGlI,EAAMmI,WAAWpC,GACMiC,IAE/BI,EAAmC,SAA0CJ,GAE/E,OA5I4B,SAAiCf,EAAKgB,GAClE,IAAKhB,EACH,MAAM,IAAItG,MAAM,+EAA+EwE,OAAO8C,EAAS,gCAGjH,OAAOhB,EAuIAoB,CADGrI,EAAMmI,WAAWjC,GACS8B,IA8ClCM,EAAmB,SAA0BC,GAI/C,OAAOjC,EAHQiC,EAAMjC,UACXyB,EAA8B,+BAI1CO,EAAiBlI,UAAY,CAC3BkG,SAAUlG,EAAUa,KAAKJ,YAG3B,IAAI2H,EAAuB,SAA8BC,GACvD,IAAInF,EAAMtD,EAAMuD,OAAOkF,GAIvB,OAHAzI,EAAMwD,WAAU,WACdF,EAAIG,QAAUgF,IACb,CAACA,IACG,WACDnF,EAAIG,SACNH,EAAIG,QAAQrJ,MAAMkJ,EAAKnJ,aAKzBuO,EAAO,aAMPC,EAAyB,SAAgCC,EAAMC,GACjE,IALqCC,EAKjC7C,EAAc,GAAGd,QALgB2D,EAKGF,GAJ7BG,OAAO,GAAGC,cAAgBF,EAAIzJ,MAAM,GAIA,WA4K3C4J,EAAUJ,EAZM,SAAuBrN,GAEzCuM,EAA8B,WAAW5C,OAAOc,EAAa,MAC7DmC,EAAiC,WAAWjD,OAAOc,EAAa,MAChE,IAAIiD,EAAK1N,EAAM0N,GACXC,EAAY3N,EAAM2N,UACtB,OAAoBnJ,EAAM6H,cAAc,MAAO,CAC7CqB,GAAIA,EACJC,UAAWA,KAtKK,SAAuB/C,GACzC,IAAI8C,EAAK9C,EAAK8C,GACVC,EAAY/C,EAAK+C,UACjBC,EAAehD,EAAK1B,QACpBA,OAA2B,IAAjB0E,EAA0B,GAAKA,EACzCC,EAAcjD,EAAKkD,OACnBA,OAAyB,IAAhBD,EAAyBX,EAAOW,EACzCE,EAAenD,EAAKoD,QACpBA,OAA2B,IAAjBD,EAA0Bb,EAAOa,EAC3CE,EAAerD,EAAKsD,QACpBA,OAA2B,IAAjBD,EAA0Bf,EAAOe,EAC3CE,EAAgBvD,EAAKwD,SACrBA,OAA6B,IAAlBD,EAA2BjB,EAAOiB,EAC7CE,EAAgBzD,EAAK0D,SACrBA,OAA6B,IAAlBD,EAA2BnB,EAAOmB,EAC7CE,EAAe3D,EAAK4D,QACpBA,OAA2B,IAAjBD,EAA0BrB,EAAOqB,EAC3CE,EAAmB7D,EAAK8D,YACxBA,OAAmC,IAArBD,EAA8BvB,EAAOuB,EACnDE,EAAqB/D,EAAKgE,cAC1BA,OAAuC,IAAvBD,EAAgCzB,EAAOyB,EACvDE,EAAwBjE,EAAKkE,iBAC7BA,OAA6C,IAA1BD,EAAmC3B,EAAO2B,EAC7DE,EAAkBnE,EAAKoE,WACvBA,OAAiC,IAApBD,EAA6B7B,EAAO6B,EACjDE,EAAuBrE,EAAKsE,gBAC5BA,OAA2C,IAAzBD,EAAkC/B,EAAO+B,EAG3DnF,EADwByC,EAA8B,WAAW5C,OAAOc,EAAa,MACpDX,SAEjCqF,EAAa3K,EAAMuD,OAAO,MAC1BqH,EAAU5K,EAAMuD,OAAO,MAEvBsH,EAAwBzC,EAAiC,WAAWjD,OAAOc,EAAa,MACxFW,EAAUiE,EAAsBjE,QAChCG,EAAe8D,EAAsB9D,aAErC+D,EAActC,EAAqBkB,GACnCqB,EAAavC,EAAqBc,GAClC0B,EAAcxC,EAAqBgB,GACnCyB,EAAczC,EAAqBwB,GACnCkB,EAAe1C,EAAqBoB,GACpCuB,EAAe3C,EAAqBsB,GACpCsB,EAAkB5C,EAAqB0B,GACvCmB,EAAoB7C,EAAqB4B,GACzCkB,EAAuB9C,EAAqB8B,GAC5CiB,EAAiB/C,EAAqBgC,GACtCgB,EAAsBhD,EAAqBkC,GAC/C1K,EAAMyL,iBAAgB,WACpB,GAA0B,MAAtBd,EAAWlH,SAAmB6B,GAA+B,MAAnBsF,EAAQnH,QAAiB,CACrE,IAAIjC,EAAU8D,EAASzI,OAAO+L,EAAMlE,GAEvB,SAATkE,GAAmBhC,GAGrBA,EAAQpF,GAGVmJ,EAAWlH,QAAUjC,EACrBA,EAAQkK,MAAMd,EAAQnH,SACtBjC,EAAQmK,GAAG,SAAS,SAAUC,GACf,SAAThD,GAGE7B,GACFA,EAAa6E,GAIfd,EAAYc,IAEZd,EAAYtJ,MAGhBA,EAAQmK,GAAG,UAAU,SAAUC,GAChB,SAAThD,GAAmB7B,GAGrBA,EAAa6E,GAGfV,EAAaU,MAKfpK,EAAQmK,GAAG,OAAQZ,GAInBvJ,EAAQmK,GAAG,QAASX,GAIpBxJ,EAAQmK,GAAG,SAAUR,GAIrB3J,EAAQmK,GAAG,YAAaP,GAIxB5J,EAAQmK,GAAG,cAAeN,GAI1B7J,EAAQmK,GAAG,iBAAkBL,GAI7B9J,EAAQmK,GAAG,QAASV,GAIpBzJ,EAAQmK,GAAG,YAAY,SAAUC,GAClB,SAAThD,GAAmB7B,GAGrBA,EAAa6E,GAGfL,EAAeK,MAKjBpK,EAAQmK,GAAG,gBAAiBH,OAGhC,IAAI7G,EAActB,EAAYqB,GAoB9B,OAnBA1E,EAAMwD,WAAU,WACd,GAAKmH,EAAWlH,QAAhB,CAIA,IAAI6D,EAAU7C,EAA6BC,EAASC,EAAa,CAAC,mBAE9D2C,GACFqD,EAAWlH,QAAQ8D,OAAOD,MAE3B,CAAC5C,EAASC,IACb3E,EAAMyL,iBAAgB,WACpB,OAAO,WACDd,EAAWlH,UACbkH,EAAWlH,QAAQoI,UACnBlB,EAAWlH,QAAU,SAGxB,IACiBzD,EAAM6H,cAAc,MAAO,CAC7CqB,GAAIA,EACJC,UAAWA,EACX7F,IAAKsH,KAoCT,OAlBA3B,EAAQ7I,UAAY,CAClB8I,GAAI9I,EAAUgB,OACd+H,UAAW/I,EAAUgB,OACrBwI,SAAUxJ,EAAUa,KACpBqI,OAAQlJ,EAAUa,KAClBuI,QAASpJ,EAAUa,KACnByI,QAAStJ,EAAUa,KACnB6I,SAAU1J,EAAUa,KACpB+I,QAAS5J,EAAUa,KACnBiJ,YAAa9J,EAAUa,KACvBmJ,cAAehK,EAAUa,KACzBqJ,iBAAkBlK,EAAUa,KAC5BuJ,WAAYpK,EAAUa,KACtByJ,gBAAiBtK,EAAUa,KAC3ByD,QAAStE,EAAUe,QAErB8H,EAAQhD,YAAcA,EACtBgD,EAAQ6C,cAAgBlD,EACjBK,GAGLJ,EAA6B,oBAAXkD,OAQlBC,EAAuBrD,EAAuB,gBAAiBE,GAK/DoD,EAActD,EAAuB,OAAQE,GAK7CqD,EAAoBvD,EAAuB,aAAcE,GAKzDsD,EAAoBxD,EAAuB,aAAcE,GAKzDuD,EAAiBzD,EAAuB,UAAWE,GAKnDwD,EAAiB1D,EAAuB,UAAWE,GAKnDyD,EAAc3D,EAAuB,OAAQE,GAK7C0D,EAAmB5D,EAAuB,YAAaE,GAKvD2D,EAAiB7D,EAAuB,UAAWE,GAKnD4D,EAAiB9D,EAAuB,UAAWE,GACnD6D,EAAiB/D,EAAuB,UAAWE,GAKnD8D,EAA8BhE,EAAuB,uBAAwBE,GAQ7E+D,EAA4BjE,EAAuB,qBAAsBE,GAQzEgE,EAAiBlE,EAAuB,UAAWE,GAQnDiE,EAAyBnE,EAAuB,kBAAmBE,GAQnEkE,EAAcpE,EAAuB,OAAQE,GAK7CmE,EAAgCrE,EAAuB,yBAA0BE,GAKjFoE,EAAuBtE,EAAuB,gBAAiBE,GAK/DqE,EAAiCvE,EAAuB,0BAA2BE,GAEvFtQ,EAAQsU,eAAiBA,EACzBtU,EAAQ0U,qBAAuBA,EAC/B1U,EAAQ2U,+BAAiCA,EACzC3U,EAAQyT,qBAAuBA,EAC/BzT,EAAQ6T,eAAiBA,EACzB7T,EAAQ0T,YAAcA,EACtB1T,EAAQ4T,kBAAoBA,EAC5B5T,EAAQ2T,kBAAoBA,EAC5B3T,EAAQwU,YAAcA,EACtBxU,EAAQ4N,SAAWA,EACnB5N,EAAQ+P,iBAAmBA,EAC3B/P,EAAQkU,eAAiBA,EACzBlU,EAAQ8T,eAAiBA,EACzB9T,EAAQ+T,YAAcA,EACtB/T,EAAQgU,iBAAmBA,EAC3BhU,EAAQqU,0BAA4BA,EACpCrU,EAAQiU,eAAiBA,EACzBjU,EAAQmU,eAAiBA,EACzBnU,EAAQyU,8BAAgCA,EACxCzU,EAAQoU,4BAA8BA,EACtCpU,EAAQuU,uBAAyBA,EACjCvU,EAAQ4U,eApXa,WAInB,OAH4B/E,EAAiC,0BAC5BzB,MAmXnCpO,EAAQ6U,oBA3WkB,WAIxB,OAH6BhF,EAAiC,+BACvBtB,WA0WzCvO,EAAQ8U,YA1YU,WAIhB,OAH4BtF,EAA8B,uBACrBzC,UAyYvC/M,EAAQ+U,UAjYQ,WAId,OAH6BvF,EAA8B,qBACvBjC,QAiYtCjK,OAAOC,eAAevD,EAAS,aAAc,CAAEoB,OAAO,IA13BS4T,CAAQhV,EAAS,EAAQ,qECDzF,IAAIiV,EAAS,2BACTC,EAAe,4CACfC,EAA0B,mJA2C1B7H,EAAgB,KAkDhB8H,EAAa,SAAoBtI,EAAanL,EAAM0T,GACtD,GAAoB,OAAhBvI,EACF,OAAO,KAGT,IAAIS,EAAST,EAAYjL,WAAME,EAAWJ,GAE1C,OArEoB,SAAyB4L,EAAQ8H,GAChD9H,GAAWA,EAAO2B,kBAIvB3B,EAAO2B,iBAAiB,CACtBnI,KAAM,YACNqI,QAAS,SACTiG,UAAWA,IA4DbC,CAAgB/H,EAAQ8H,GACjB9H,GAKLgI,EAAkBhU,QAAQV,UAAUW,MAAK,WAC3C,OA9DmCgU,EA8DjB,KA5DI,OAAlBlI,IAIJA,EAAgB,IAAI/L,SAAQ,SAAUV,EAASC,GAC7C,GAAsB,oBAAX0S,OAWX,GAJIA,OAAOiC,QAAUD,GACnB9I,QAAQC,KAAKwI,GAGX3B,OAAOiC,OACT5U,EAAQ2S,OAAOiC,aAIjB,IACE,IAAIC,EAnEO,WAGf,IAFA,IAAIC,EAAUC,SAASC,iBAAiB,gBAAiBjJ,OAAOqI,EAAQ,OAE/D7U,EAAI,EAAGA,EAAIuV,EAAQxV,OAAQC,IAAK,CACvC,IAAIsV,EAASC,EAAQvV,GAErB,GAAK8U,EAAalO,KAAK0O,EAAOI,KAI9B,OAAOJ,EAGT,OAAO,KAsDUK,GAETL,GAAUF,EACZ9I,QAAQC,KAAKwI,GACHO,IACVA,EAxDW,SAAsBF,GACvC,IAAIQ,EAAcR,IAAWA,EAAOS,qBAAuB,8BAAgC,GACvFP,EAASE,SAAStG,cAAc,UACpCoG,EAAOI,IAAM,GAAGlJ,OAAOqI,GAAQrI,OAAOoJ,GACtC,IAAIE,EAAaN,SAASO,MAAQP,SAASQ,KAE3C,IAAKF,EACH,MAAM,IAAI9N,MAAM,+EAIlB,OADA8N,EAAWG,YAAYX,GAChBA,EA6CQY,CAAad,IAGxBE,EAAOa,iBAAiB,QAAQ,WAC1B/C,OAAOiC,OACT5U,EAAQ2S,OAAOiC,QAEf3U,EAAO,IAAIsH,MAAM,+BAGrBsN,EAAOa,iBAAiB,SAAS,WAC/BzV,EAAO,IAAIsH,MAAM,gCAEnB,MAAO/G,GAEP,YADAP,EAAOO,QAjCPR,EAAQ,UAPHyM,EAHM,IAAoBkI,KAgEjCgB,GAAa,EACjBjB,EAAuB,OAAE,SAAUzT,GAC5B0U,GACH9J,QAAQC,KAAK7K,MAGjB,IAAI2U,EAAa,WACf,IAAK,IAAIC,EAAO9U,UAAUzB,OAAQwB,EAAO,IAAIrB,MAAMoW,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EhV,EAAKgV,GAAQ/U,UAAU+U,GAGzBH,GAAa,EACb,IAAInB,EAAYxQ,KAAK+R,MACrB,OAAOrB,EAAgB/T,MAAK,SAAUsL,GACpC,OAAOsI,EAAWtI,EAAanL,EAAM0T,wEC5HzC,oLACA,oLACA,oLACA,wVCHA,UACA,UACA,aACA,aACA,UACA,QAEO,IAAMwB,EAAe,SAAH,GAOf,IALFC,EAAiB,EAAjBA,kBACiC,GADhB,EACjBC,2BAAiC,EACjCC,kBAAAA,OAAgB,IAAG,GAAK,MACxBC,qBAAAA,OAAoB,IAAG,OAAI,EAC3BC,EAAgB,EAAhBA,iBAAgB,GAEoB,EAAA/I,EAAAA,UAAS,MAAK,qBAA/CgJ,EAAY,KAAEC,EAAe,QACE,EAAAjJ,EAAAA,UAAS,IAAG,qBAA3CkJ,EAAW,KAAEC,EAAc,QACJ,EAAAnJ,EAAAA,WAAS,GAAM,qBAAtCoJ,EAAO,KAAEC,EAAU,KAiC1B,OAzBA,EAAAvM,EAAAA,YAAU,WACF+L,IAEAQ,GAAW,GACXF,EAAe,IAEfJ,IAAmB1V,KAAI,+CAAC,WAAMiW,GAAa,mFACnCA,EAAe,CAAF,gCAEQ,EAAAC,EAAAA,SAAS,CAC1BrI,KAAK,EAAAsI,EAAAA,UAAS,yBACdC,OAAQ,OACRC,KAAM,CAACC,kBAAmBL,EAAeM,eAAgBjB,KAC3D,OAJIkB,EAAS,EAAH,KAKZZ,EAAgBY,EAAOb,cACa,QAApC,EAAI7T,OAAO0C,KAAKgS,EAAOb,qBAAa,OAAhC,EAAkChX,QAClCmX,EAAehU,OAAO0C,KAAKgS,EAAOb,cAAc,IACnD,2CAER,mDAbsB,IAapBc,OAAM,SAAA5W,GACLqL,QAAQwL,IAAI7W,MACb8W,SAAQ,kBAAMX,GAAW,SAEjC,CAACR,EAAkBE,IAGlB,uBAAKtG,UAAU,qCACX,yBAAOA,UAAW,kCACb,EAAAwH,EAAAA,IAAG,uBAAwB,sBAC5B,gBAACC,EAAM,CAACd,QAASA,KAErB,gBAACe,EAAkB,CACfjB,YAAaA,EACbhG,SAxCkB,SAACvM,GAC3BwS,EAAexS,EAAE9B,OAAO5B,OACpB6V,GACAA,EAAqB,CAACsB,yBAA0BzT,EAAE9B,OAAO5B,SAsCrD+V,aAAcA,EACdqB,UAAWjB,MAG1B,iBAED,IAAMe,EAAqB,SAAH,GAAyD,IACzEG,EADqBpB,EAAW,EAAXA,YAAaF,EAAY,EAAZA,aAAc9F,EAAQ,EAARA,SAAUmH,EAAS,EAATA,UAa9D,OAVIC,EADAD,EACU,0BAAQpX,MAAM,GAAGsX,UAAQ,IAAE,EAAAN,EAAAA,IAAG,0BAA2B,uBAE9C,OAAjBjB,EACU,0BAAQ/V,MAAM,GAAGsX,UAAQ,IAAE,EAAAN,EAAAA,IAAG,sCAAuC,uBAErE9U,OAAO0C,KAAKmR,GAAcwB,KAAI,SAAAhI,GACpC,OAAO,0BAAQ1P,IAAK0P,EAAIvP,MAAOuP,EAAIiI,wBAAyB,CAACC,OAAQ1B,EAAaxG,GAAImI,WAK9F,0BACI1X,MAAOiW,EACPhG,SAAUA,EACVT,WAAW,EAAAmI,EAAAA,SAAW,iCAAkC,CAACxB,QAASiB,KACjEC,IAKPJ,EAAS,SAAH,GAAkB,IAAbd,EAAO,EAAPA,QACb,OACI,uBAAK3G,UAAU,2CACV2G,GAAW,uBAAK3G,UAAU,gCACvB,4BACA,4BACA,+BAIf,EACciG,EAAY,kJCnG3B,QAaC,qBAXiC,SAAH,GAAgD,IAA3CmC,EAAK,EAALA,MAAOC,EAAK,EAALA,MAAOxB,EAAa,EAAbA,cAAuB,qDACAyB,WAA1CC,EAAK,EAAzBC,mBAA+CC,EAAK,EAAzBC,mBAIlC,OAHKhZ,MAAMC,QAAQ0Y,KACfA,EAAQ,CAACA,IAGT,wBAAMrI,UAAS,oCAA+B6G,IAC1C,gBAAC0B,EAAK,CAACL,KAAME,IACb,gBAACK,EAAK,CAACJ,MAAOA,EAAOM,MAAM,yJCVvC,UAAqD,2kBAkBpD,gBAhB4B,SAAH,GAAqC,IAAhCC,EAAO,EAAPA,QAASC,EAAO,EAAPA,QAAYxW,GAAK,sCAC/CyW,EAAUD,EACVE,EAAOH,EAAQ,eACfI,GAAK,EAAA5O,EAAAA,QAAO,MAMlB,OALA,EAAAC,EAAAA,YAAU,WACF2O,EAAG1O,SAA2C,GAAhC0O,EAAG1O,QAAQ2O,WAAW1Z,QACpCyZ,EAAG1O,QAAQ4O,UAAUC,IAAI,iBAI7B,gCACKJ,GAAQ,gBAACK,EAAW,CAACL,KAAMA,EAAM5B,eAAgByB,EAAQ,UAC1D,uBAAKzO,IAAK6O,EAAIhJ,UAAU,2CACpB,gBAAC8I,EAAO,OAASzW,GAAK,IAAEuW,QAAAA,QAKxC,IAAMQ,EAAc,SAAH,GAA+B,IAA1BL,EAAI,EAAJA,KAAM5B,EAAc,EAAdA,eACxB,OACI,uBAAKnH,UAAS,gDAA2CmH,IACrD,yBAAI4B,oICvBhB,iBAEaM,EAAqB,SAAH,GAA0C,IAArCC,EAAO,EAAPA,QAAS7I,EAAQ,EAARA,SAAUjQ,EAAK,EAALA,MAAO+Y,EAAK,EAALA,MAC1D,OACI,yBACIvJ,WAAW,EAAAmI,EAAAA,SAAW,yCAA0C,CAC5D,iDAAkDmB,KAEtD,yBACItJ,UAAU,wCACVP,KAAK,QACLjP,MAAOA,EACP8Y,QAASA,EACT7I,SAAU,SAACgC,GAAK,OAAKhC,EAASgC,EAAMrQ,OAAO5B,UAC/C,uBAAKwP,UAAU,yCACX,4BAAOuJ,MAItB,6BAEcF,EAAkB,6ECrBjC,yUCAA,UACA,UACA,UACA,aAA4C,2kBA8H3C,oBA5HgC,SAAH,GAOpB,IALFG,EAAoC,EAApCA,qCACAC,EAAa,EAAbA,cAEAC,GADa,EAAb7C,cACc,EAAd6C,gBAGE/M,GAAS,EAAAwH,EAAAA,aACTwF,GAAc,EAAAvP,EAAAA,QAAO,CAACsP,eAAAA,KAC5B,EAAArP,EAAAA,YAAU,WACNsP,EAAYrP,QAAU,EAAH,KAAOqP,EAAYrP,SAAO,IAAEoP,eAAAA,QAGnD,EAAArP,EAAAA,YAAU,WACN,IAAMuP,EAAcJ,EAAoC,+CAAC,6FACL,GADaK,EAAW,EAAXA,cACvDzC,GAAS,EAAA0C,EAAAA,sBAAqBD,IACxB,CAAF,mBACc,WAAhBzC,EAAO3H,KAAiB,gCACXsK,EAAqB3C,EAAQzK,GAAO,OAEF,yCAFE,wBAEpCqN,EAAmB5C,EAAQzK,GAAO,4CAG1D,mDATuD,IAUxD,OAAO,kBAAMiN,OACd,CACCJ,EACAC,EACA9M,EACAoN,EACAC,IAGJ,IAAMD,GAAuB,EAAAE,EAAAA,aAAW,+CAAC,WAAOhD,EAAMtK,GAAM,yFAEf,OADlC+M,EAAkBC,EAAYrP,QAA9BoP,eACAQ,EAAsCjD,EAAtCiD,cAAeC,EAAuBlD,EAAvBkD,SAAUC,EAAanD,EAAbmD,UAAS,kBAEhBzN,EAAO0N,6BAA6B,CACrDC,aAAcJ,EACdtF,OAAQ,CACJ2F,oBAAqB,kBACrBC,oBAAqB,CACjBC,gBAAiB,CACbtU,KAAM,GAAF,OAAKuT,EAAegB,WAAU,YAAIhB,EAAeiB,WACrDC,MAAOlB,EAAekB,WAIpC,OAXU,KAARC,EAAW,EAAH,MAYCpa,MAAO,CAAF,qBACRoa,EAASpa,MAAK,UAEc,0BAAlCoa,EAASC,cAAcC,OAAkC,kCACpCpO,EAAOqO,4BAA4Bd,GAAc,QAA1D,KAARW,EAAW,EAAH,MACCpa,MAAO,CAAF,sBACRoa,EAASpa,MAAK,WAEc,eAAlCoa,EAASC,cAAcC,OAAuB,mCAC3B,EAAAjE,EAAAA,SAAS,CACxBrI,KAAK,EAAAsI,EAAAA,UAAS,mBACdC,OAAQ,OACRC,KAAM,CAACkD,SAAAA,EAAUC,UAAAA,EAAWa,qBAAsBJ,EAASC,cAAc3D,kBAC3E,QAJQ,KAANC,EAAS,EAAH,MAKC8D,SAAU,CAAF,sBACT9D,EAAO8D,SAAQ,kCAElB,EAAAC,EAAAA,uBAAsB1B,EAAe,CACxCI,YAAazC,EAAOgE,YACtB,WACuC,oBAAlCP,EAASC,cAAcC,OAA4B,sBACpD,CAACM,KAAM,oBAAmB,oFAIjC,EAAAC,EAAAA,qBAAoB7B,EAAe,EAAF,KAAM,0DAErD,qDA3CuC,GA2CrC,IAEGO,GAAqB,EAAAC,EAAAA,aAAW,+CAAC,WAAOhD,EAAMtK,GAAM,6FAEb,OADlC+M,EAAkBC,EAAYrP,QAA9BoP,eACAQ,EAAsCjD,EAAtCiD,cAAeC,EAAuBlD,EAAvBkD,SAAUC,EAAanD,EAAbmD,UAAS,kBAEhBzN,EAAO4O,2BAA2B,CACnDjB,aAAcJ,EACdtF,OAAQ,CACJ2F,oBAAqB,kBACrBC,oBAAqB,CACjBC,gBAAiB,CACbtU,KAAM,GAAF,OAAKuT,EAAegB,WAAU,YAAIhB,EAAeiB,WACrDC,MAAOlB,EAAekB,WAIpC,OAXU,KAARC,EAAW,EAAH,MAYCpa,MAAO,CAAF,qBACRoa,EAASpa,MAAK,UAEY,0BAAhCoa,EAASW,YAAYT,OAAkC,kCACtBpO,EAAO8O,0BAA0BvB,GAAc,QAAzD,GAAyD,SAA3EsB,EAAW,EAAXA,cAAa/a,EAAK,EAALA,OACP,CAAF,sBACCA,EAAK,WAEY,cAAvB+a,EAAYT,OAAsB,mCACb,EAAAjE,EAAAA,SAAS,CAC1BrI,KAAK,EAAAsI,EAAAA,UAAS,mBACdC,OAAQ,OACRC,KAAM,CAACkD,SAAAA,EAAUC,UAAAA,EAAWa,qBAAsBO,EAAYrE,kBAChE,QAJU,KAAR0D,EAAW,EAAH,MAKCK,SAAU,CAAF,sBACXL,EAASK,SAAQ,kCAEpB,EAAAC,EAAAA,uBAAsB1B,EAAe,CACxCI,YAAagB,EAASO,YACxB,WAC4B,oBAAvBI,EAAYT,OAA4B,sBACzC,CAACM,KAAM,oBAAmB,gCAIvB,OAJuB,0BAIxCvP,QAAQwL,IAAI,EAAD,IAAM,mBACV,EAAAgE,EAAAA,qBAAoB7B,EAAe,EAAF,KAAM,0DAErD,qDA5CqC,GA4CnC,qBChIP,QACA,6DCAA,GADA,QACA,SACA,UACA,UACA,UACA,aACA,UACA,UAEMb,GAAU,EAAA8C,EAAAA,aAAY,mBAEtBC,EAAoB,SAAH,GAQb,IANFC,EAAiB,EAAjBA,kBAEAC,GADU,EAAVvD,WACY,EAAZuD,cAEAC,GADQ,EAARC,SACO,EAAPD,SAGGrC,IAFK,uFAEYoC,EAAjBpC,eAGHuC,GAEAJ,EAHAK,oBAGAL,EAFAI,oCACAxC,EACAoC,EADApC,qCAeJ,OAZA,EAAA0C,EAAAA,yBAAwB,CACpBzC,cAAAA,EACA0C,WAAYH,KAIhB,EAAAI,EAAAA,mBAAkB,CACd5C,qCAAAA,EACAC,cAAAA,EACA5C,cAAe+B,EAAQ,QACvBc,eAAgBoC,EAAQO,cAGxB,uBAAKrM,UAAW,4BACZ,gBAACsM,EAAO,CAACpE,KAAMU,EAAQ,mBAK7B2D,EAAe,SAACla,GAClB,OACI,gBAAC,EAAA2K,SAAQ,CAACL,OAAQkJ,EAAAA,YACd,gBAAC8F,EAAsBtZ,KAK7Bia,EAAU,SAAH,GAAe,IAAVpE,EAAI,EAAJA,KACd,OACI,qBAAGlI,UAAW,0BACTkI,KAKb,EAAAsE,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CAACJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,WAC1C6D,UAAW,cACXC,eAAgB,YAAY,MAAmC,QAAnC,EAAVC,WAA2BC,eAC7C/D,QAAS,gBAAC,EAAAgE,cAAa,CACnBjE,QAASA,EACTC,QAAS0D,IACbO,oBAAqB,gBAAC,UAAkB,CAAClE,QAASA,IAClDmE,KAAM,gBAACR,EAAY,MACnBS,sBAAuBpE,EAAQ,yBAC/BqE,SAAU,CACNC,eAAgBtE,EAAQ,kBACxBuE,gBAAgB,EAChBC,SAAUxE,EAAQ,+BC9E1B,MAEA,wECFA,UACA,UACA,UACA,UACA,aACA,UASMA,GAAU,EAAA8C,EAAAA,aAAY,wBAEtB2B,EAAkB,SAAChb,GACrB,OACI,gBAAC,UAAa,KACV,uBAAK2N,UAAU,iCACX,gBAAC,EAAAhD,SAAQ,CAACL,OAAQkJ,EAAAA,YACd,gBAACyH,EAAmBjb,OAOlCib,EAAiB,SAAH,GAYV,IAVF1E,EAAO,EAAPA,QACA/H,EAAO,EAAPA,QACA0M,EAAO,EAAPA,QACAzB,EAAO,EAAPA,QACA0B,EAAY,EAAZA,aACA5B,EAAiB,EAAjBA,kBACAC,EAAY,EAAZA,aACAE,EAAQ,EAARA,SACA0B,EAAmB,EAAnBA,oBAGGxB,IAFK,6IAEkBL,EAAvBK,qBACAxC,EAAiCoC,EAAjCpC,cAAeiE,EAAkB7B,EAAlB6B,eAChB/Q,GAAS,EAAAwH,EAAAA,aAAY,GACX,EAAAwJ,EAAAA,kBAATld,GAAyB,kBAApB,GAENmd,GAAiB,EAAAC,EAAAA,sBACvB,EAAAC,EAAAA,2BAA0B,CAAC3G,eAAgByB,EAAQ,QAASmF,MAAO,MAAM,IAClEC,GAAoB,EAAAC,EAAAA,yBAAwB,CAC/CrF,QAAAA,EACAkD,QAAAA,EACA0B,aAAAA,EACAvB,oBAAAA,EACAJ,aAAAA,EACApb,MAAAA,EACAsb,SAAAA,EACA0B,oBAAAA,EACAG,eAAAA,IATGI,kBAWP,EAAAE,EAAAA,2BAA0B,CACtBtF,QAAAA,EACAgD,kBAAAA,EACAnC,cAAAA,EACAgE,oBAAAA,EACAU,eAAgBT,EAAeU,mBAChC,IACIC,GAAkB,EAAAC,EAAAA,mBAAkB,CACvC1F,QAAAA,EACA2E,QAAAA,EACA5Q,OAAAA,EACAmP,QAAAA,EACA0B,aAAAA,EACA5B,kBAAAA,EACAoC,iBAAAA,EACAJ,eAAAA,EACAW,OA9BW,SAACnH,GAAM,OAAe,MAAVA,GAAkBA,EAAOoH,YAqB7CH,eAYDI,GAAc,EAAAxE,EAAAA,cAAY,SAAC/V,GACzBma,IACAna,EAAEwa,iBACF7N,IACAwN,EAAeM,UAEpB,CAACN,EAAgBxN,IAEpB,OAAIwN,EAEI,0BACIrO,UAAS,2BAAsB4I,EAAQ,gBACvCgG,MAAO,CACH,yBAA0BhG,EAAQ,eAEtC/H,QAAS4N,IAId,MAGLI,EAAe,SAAH,GAA4B,IAAvBjG,EAAO,EAAPA,QACnB,OADoC,4BAEhC,uBAAK5I,UAAW,0BACZ,uBAAKkF,IAAK0D,EAAQ,mBAK9B,EAAAkG,EAAAA,8BAA6B,CACzB3Y,KAAMyS,EAAQ,QACd8D,eAAgB,YAA4B,IAA1BC,EAAU,EAAVA,WACd,IADkC,+BAC9B/D,EAAQ,WACR,OAAO,EACV,IACqBmG,EAAyBpC,EAAxCC,cAAyBoC,EAAerC,EAAfqC,YAChC,OAAO,EAAAtC,EAAAA,gBAAe,CAClBuC,QAASrG,EAAQ,eACjBmG,SAAUA,EAASG,cACnBC,MAAO,CACH5F,MAAOX,EAAQ,cACfwG,OAAQC,SAASL,MAEtB,SAAC5H,GAAM,OAAe,MAAVA,GAAkBA,EAAOoH,aAE5C3F,QAAS,gBAACwE,EAAe,CAACzE,QAASA,IACnCmE,KAAM,gBAAC8B,EAAY,CAACjG,QAASA,IAC7BqE,SAAU,CACNC,eAAgBtE,EAAQ,kBACxBuE,eAAgBvE,EAAQ,kBACxBwE,SAAUxE,EAAQ,6CCjI1B,QACA,cACA,UACA,UAEM0G,EAAY,SAAH,GAAsC,IAAjCC,EAAQ,EAARA,SAAUhU,EAAO,EAAPA,QAASkF,EAAQ,EAARA,SACnC,OACI,uBAAKT,UAAU,4BACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,iBACX,gBAAC,EAAA+C,kBAAiB,CAAC/C,UAAU,kCAAkCzE,QAASA,EAAoB,WACzEkF,SAAUA,EAASsC,EAAAA,qBACtC,yBAAOyM,QAAQ,uBAAsB,EAAAhI,EAAAA,IAAG,cAAe,uBACtD+H,GAEL,uBAAKvP,UAAU,iBACX,gBAAC,EAAAgD,kBAAiB,CAAChD,UAAU,kCAAkCzE,QAASA,EAAoB,WACzEkF,SAAUA,EAASuC,EAAAA,qBACtC,yBAAOwM,QAAQ,eAAc,EAAAhI,EAAAA,IAAG,MAAO,wBAE3C,uBAAKxH,UAAU,iBACX,gBAAC,EAAAiD,eAAc,CAACjD,UAAU,kCAAkCzE,QAASA,EAAiB,QACtEkF,SAAUA,EAASwC,EAAAA,kBACnC,yBAAOuM,QAAQ,eAAc,EAAAhI,EAAAA,IAAG,MAAO,4BAO3D,EAAAiI,EAAAA,wBAAuB,CACnB1P,GAAI,YACJ2P,WAAY,IACZC,UAAW,gBAACL,EAAS,gJCjCzB,UACA,UACA,UACA,UACA,UAA+C,2kBAE/C,IAAMM,EAAU,CACZC,MAAO,UACPC,MAAO,QACPC,QAAS,WA0FPR,EAAW,SAAH,GAAoB,IAAf9P,EAAI,EAAJA,KAAMyF,EAAG,EAAHA,IACrB,OAAIzF,EACO,uBAAKO,UAAS,yBAAoBP,GAAQyF,IAAKA,IAEnD,MAGkB,UA9FN,SAAH,GAKV,IAHF0D,EAAO,EAAPA,QACUoH,EAAW,EAArBvP,SACAwP,EAAU,EAAVA,WAAU,GAEkB,EAAA1S,EAAAA,UAAS,IAAG,qBAArC2S,EAAQ,KAAEC,EAAW,KACtBC,GAAe,EAAAhW,EAAAA,QAAO,IAAI,GACE,EAAAmD,EAAAA,UAAS,MAAK,qBAAzC8S,EAAS,KAAEC,EAAY,KACxBnU,GAAW,EAAA+H,EAAAA,eACXnE,EAAK6I,EAAQ,cAAc,GACsB,EAAA2H,EAAAA,mBAAkBxQ,GAAG,IAArE4P,UAAWa,OAAQ,IAAG,OAAI,MAAEd,WAAAA,OAAU,IAAG,MAAG,EAC7Ce,EAAoB7H,EAAQ,qBAC5BrN,EAAU,GACVmV,GAAgB,EAAAtW,EAAAA,QAAO,CAAC,WAAc,GAAI,WAAc,GAAI,QAAW,KAC7E,CAAC,aAAc,aAAc,WAAWZ,SAAQ,SAAAiG,GAC5ClE,EAAQkE,GAAQ,EAAH,GACTmQ,QAAAA,GACGhH,EAAQ,gBACRA,EAAQ,sBAAsBnJ,OAGzC,IA4BMkR,GAAkB,EAAA1G,EAAAA,cAAY,SAAC5R,GAC5B+X,EAAa9V,QAAQuB,SAASxD,IAC/B+X,EAAa9V,QAAQvI,KAAKsG,KAE/B,KAEH,EAAAuY,EAAAA,oBAAmB,CAACza,KAAM,iBAAkB4X,MAAO2B,EAAYlX,KAAM6X,EAAWrQ,UAAW,eAE3F,IAAM6Q,GAAiB,EAAA5G,EAAAA,cAAY,SAACxK,GAChC,IAAK,IAAL,MAAe/M,OAAO0C,KAAKwT,EAAQ,UAAS,eAAE,CAAzC,IAAI7I,EAAE,KACP,GAAIA,IAAON,EACP,OAAOmJ,EAAQ,SAAS7I,GAGhC,MAAO,KACR,IAEH,OAAKyQ,EAQD,uBAAKxQ,UAAS,gCAA2BD,GAAM5F,IAAKmW,IAC/C,EAAAQ,EAAAA,cAAaN,EAAU,CACpBC,kBAAAA,EACAlV,QAAAA,EACAkF,SAzDK,SAACpI,GAEd,OADAsY,EAAgBtY,GACT,SAACoK,GAUJ,GATAuN,EAAYvN,GACZiO,EAAcpW,QAAQmI,EAAMnK,aAAemK,EACjB,eAAtBA,EAAMnK,cACc,YAAhBmK,EAAMsO,MACNZ,EAAY,IAEZA,EAAY1N,EAAMsO,QAGtBtO,EAAMuO,SAAU,CAChB,IAAMC,EAAMb,EAAa9V,QAAQxG,QAAQuE,GACzC,GAAI+X,EAAa9V,QAAQ2W,EAAM,GAAI,CAC/B,IAAMC,EAAcd,EAAa9V,QAAQ2W,EAAM,GAC/C9U,EAASgV,WAAWD,GAAarB,SAO1B,IACf9E,EALAkF,GAKAlF,EAAS2F,EAAcpW,QACpB5H,OAAO0C,KAAK2V,GAAQ3R,QAAO,SAAA/I,GAAG,QAAM0a,EAAO1a,GAAK2gB,YAAUzhB,SAAWmD,OAAO0C,KAAK2V,GAAQxb,WAiCxFggB,SAAU,gBAACA,EAAQ,CAAC9P,KAAMyQ,EAAUhL,IAAK2L,EAAeX,QAX5D,uBAAKlQ,UAAU,+BACX,0BAAI,EAAAoR,EAAAA,UAAQ,EAAA5J,EAAAA,IAAG,qHAAsH,sBAAuBoB,EAAQ,oBAAoB7I,qCClFxM,QACA,cACA,UACA,UACA,UAEMsR,EAAa,SAAH,GAAsC,IAAjC9B,EAAQ,EAARA,SAAUhU,EAAO,EAAPA,QAASkF,EAAQ,EAARA,SAGpC,OAFA,EAAApG,EAAAA,YAAU,cACP,IAEC,uBAAK2F,UAAU,yBACX,uBAAKA,UAAU,OACX,uBAAKA,UAAU,SACX,uBAAKA,UAAU,cACX,gBAAC,EAAA+C,kBAAiB,CAAChD,GAAG,qBAAqBC,UAAU,cAClCzE,QAASA,EAAoB,WAC7BkF,SAAUA,EAASsC,EAAAA,qBACtC,yBAAOyM,QAAQ,qBACR,WAAS,KAAI,EAAAhI,EAAAA,IAAG,cAAe,uBACtC,uBAAKxH,UAAU,aACduP,KAIb,uBAAKvP,UAAU,OACX,uBAAKA,UAAU,oBACX,uBAAKA,UAAU,cACX,gBAAC,EAAAgD,kBAAiB,CAACjD,GAAG,aAAaC,UAAU,cAAczE,QAASA,EAAoB,WACrEkF,SAAUA,EAASuC,EAAAA,qBACtC,yBAAOwM,QAAQ,aACR,WAAS,KAAI,EAAAhI,EAAAA,IAAG,aAAc,uBACrC,uBAAKxH,UAAU,eAGvB,uBAAKA,UAAU,wBACX,uBAAKA,UAAU,cACX,gBAAC,EAAAiD,eAAc,CAAClD,GAAG,aAAaC,UAAU,cAAczE,QAASA,EAAiB,QAClEkF,SAAUA,EAASwC,EAAAA,kBACnC,yBAAOuM,QAAQ,aACR,WAAS,KAAI,EAAAhI,EAAAA,IAAG,MAAO,uBAC9B,uBAAKxH,UAAU,mBAQvC,EAAAyP,EAAAA,wBAAuB,CACnB1P,GAAI,SACJ4P,UAAW,gBAAC0B,EAAU,MACtB3B,WAAY,iICnDhB,UACA,UACA,UAA2C,2kBA8Bd,UA5BN,SAAH,GAA8D,IAAzD9G,EAAO,EAAPA,QAASkD,EAAO,EAAPA,QAAmBkE,EAAW,EAArBvP,SAAuBwP,EAAU,EAAVA,WACxDS,EAAgB,CAACY,KAAM,IASvBC,GAAc,EAAAlU,EAAAA,UAAQ,WAAM,MAC9B,OAAO,EAAP,KACO,CACC7M,MAAO,CACHghB,WAAY1F,MAAAA,GAAoB,QAAb,EAAPA,EAASO,mBAAW,WAAb,EAAP,EAAsBoF,UAEtCC,gBAAgB,EAAAC,EAAAA,iBAAgB,YAChCC,UAAW,YACThJ,EAAQ,kBAEnB,CAACkD,EAAQO,cACZ,OACI,uBAAKrM,UAAU,yBACX,gBAAC,EAAA8C,YAAW,CAACvH,QAASgW,EAAa9Q,SArB1B,SAACgC,GACduN,EAAYvN,GACZiO,EAAcjO,EAAMnK,aAAemK,EACnCwN,EAGOvd,OAAO0C,KAAKsb,GAAetX,QAAO,SAAAqG,GAAI,QAAMiR,EAAcjR,GAAMuR,YAAUzhB,SAAWmD,OAAO0C,KAAKsb,GAAenhB,6ECZ/H,QAEA,oLAEA,QACA,iNCLA,UACA,UACA,UAKA,UAEA,UAA2E,2kBAG3E,IAAMqZ,GAAU,EAAA8C,EAAAA,aAAY,kBAIfmG,EAA0B,SAACxf,GAAU,IAQvC,EARuC,EAChBA,EAAMyZ,QAA7BgG,EAAS,EAATA,UAAW/C,EAAQ,EAARA,SACdxT,EAAU,EAAH,CACPwW,KAAM,WACHnJ,EAAQ,mBAWf,OARIrN,EATqB,GAQTuW,EAAUthB,MACZ,EAAH,KAAO+K,GAAO,IAAEwW,KAAM,UAEnB,EAAH,KACAxW,GAAO,IACV6T,OAAQ0C,EAAUthB,MAClBue,SAAUA,MAAAA,GAAc,QAAN,EAARA,EAAU1D,YAAI,WAAN,EAAR,EAAgB6D,gBAI9B,gCACI,gBAAC,EAAAlS,SAAQ,CAACL,OAAQkJ,EAAAA,WAAYtK,QAASA,GACnC,gBAACuH,EAAgBzQ,MAIhC,4BAED,IAAMyQ,EAAc,SAAH,GAAe,EAAVmN,WAA0B,IAAX5d,GAAK,kCACE,EAAAkL,EAAAA,WAAS,GAAM,qBAAhDyU,EAAY,KAAEC,EAAe,KAC9BC,EAAqBtJ,EAAQ,sBAE7BjM,IADW,EAAAuH,EAAAA,gBACF,EAAAC,EAAAA,cACEkI,EAAoEha,EAA9EyZ,QAAUO,YAAcT,EAAsDvZ,EAAtDuZ,kBAAmBC,EAAmCxZ,EAAnCwZ,aAAcsG,EAAqB9f,EAArB8f,kBACpCnG,GAAsCJ,EAA3DK,oBAA2DL,EAAtCI,oCACrBvC,EAAiCoC,EAAjCpC,cAAeiE,EAAkB7B,EAAlB6B,eAChBvX,EAAOyS,EAAQ,QACfnI,GAAW,EAAAwJ,EAAAA,cAAY,SAACxH,GAC1BwP,EAAgBxP,EAAMuO,YACvB,IAAI,GAC6C,EAAAoB,EAAAA,0BAAyB,CACzE/F,YAAAA,EACAT,kBAAAA,EACAnC,cAAAA,EACA0I,kBAAAA,EACAzE,eAAAA,EACAvX,KAAAA,IANGkc,EAAmB,EAAnBA,oBAAqBhM,EAAoB,EAApBA,sBAS5B,EAAA6F,EAAAA,yBAAwB,CACpBzC,cAAAA,EACA0C,WAAYH,EACZmC,eAAgBT,EAAe4E,WAGnC,IAAMhM,GAAmB,EAAA2D,EAAAA,cAAW,6BAAC,8FACT,OAApBpD,EAAgB,KAAI,SACHwL,IAAqB,OAGzC,OAFGjL,OADEA,EAAS,EAAH,OACa,QAAf,EAANA,EAAQ0D,qBAAa,OAArB,EAAuB3D,iBACvBN,EAAgBO,EAAO0D,cAAc3D,gBACxC,kBACMN,GAAa,2CACrB,CAACwL,IAQJ,OACI,gCACI,gBAAC,EAAA9O,eAAc,CAAChI,QARR,CACZgX,OAAQ,CACJC,eAAgB,CAACC,QAAS,UAE9BC,QAAS,CAAClE,SAAU,QAASmE,UAAW,UAIFlS,SAAUA,IAC3CyR,GAAsB,gBAAC,EAAAjM,aAAY,CAChCC,kBAAmB0C,EAAQ,QAC3BjM,OAAQA,EACRyJ,iBAAkB4L,EAClB1L,iBAAkBA,EAClBD,qBAAsBA,MAGrC,EAEcwL,EAAuB,2FC/FtC,UACA,UACA,UAIA,UACA,UACA,aACA,aACA,aAEA,aACA,UAOMjJ,GAAU,EAAA8C,EAAAA,aAAY,kBAEtBkH,EAAoB,SAACvgB,GAAU,OACP,EAAAkL,EAAAA,WAAS,GAAM,qBAAlC9M,EAAK,KAAEoiB,EAAQ,KAMtB,IALA,EAAAxY,EAAAA,YAAU,WACNwL,EAAAA,WAAWwB,OAAM,SAAA5W,GACboiB,EAASpiB,QAEd,CAACoiB,IACApiB,EACA,MAAM,IAAI+G,MAAM/G,GAEpB,OAAImY,EAAQ,oBAEJ,gBAAC,UAA4BvW,GAIjC,gBAAC,EAAA2K,SAAQ,CAACL,OAAQkJ,EAAAA,WAAYtK,QAASqN,EAAQ,mBAC3C,gBAACkK,EAAsBzgB,KAK7BygB,EAAoB,SAAH,GASb,IAPFlK,EAAO,EAAPA,QACAkD,EAAO,EAAPA,QACA0B,EAAY,EAAZA,aACA3B,EAAY,EAAZA,aACAD,EAAiB,EAAjBA,kBACA6B,EAAmB,EAAnBA,oBACA0E,EAAiB,EAAjBA,kBAAiB,GAEK,EAAAxE,EAAAA,kBAAgB,qBAAnCld,EAAK,KAAEoiB,EAAQ,QACkB,EAAAtV,EAAAA,WAAS,GAAM,qBAAhDyU,EAAY,KAAEC,EAAe,KAC7BhG,EAAuBL,EAAvBK,oBACDtP,GAAS,EAAAwH,EAAAA,aACThI,GAAW,EAAA+H,EAAAA,eACX6O,GAAuB,EAAA9I,EAAAA,cAAY,WACrC,IAAM+I,EAASpK,EAAQ,oBAAsB7F,EAAAA,kBAAoBD,EAAAA,YACjE,MAAO,CAACwO,KAAMnV,EAASgV,WAAW6B,MACnC,CAACrW,EAAQR,IAAW,GAEkB,EAAA8W,EAAAA,gBAAe,CACpDrK,QAAAA,EACAkJ,UAAWhG,EAAQgG,UACnBe,SAAAA,IAHGrH,EAAW,EAAXA,YAAa0H,EAAiB,EAAjBA,kBAAiB,GAMsB,EAAAjF,EAAAA,yBAAwB,CAC/ErF,QAAAA,EACAkD,QAAAA,EACA0B,aAAAA,EACA3B,aAAAA,EACApb,MAAAA,EACAwb,oBAAAA,EACAkG,kBAAAA,EACA3G,YAAAA,EACA0H,kBAAAA,EACAH,qBAAAA,EACAtF,oBAAAA,IAXGtH,EAA0B,EAA1BA,2BAA4BE,EAAoB,EAApBA,sBAanC,EAAA6H,EAAAA,2BAA0B,CACtBtF,QAAAA,EACAgD,kBAAAA,EACAnC,cAAeoC,EAAapC,cAC5BgE,oBAAAA,EACA0E,kBAAAA,IAGJ,IAQM7L,GAAmB,EAAA2D,EAAAA,cAAW,6BAAC,8FACT,OAApBpD,EAAgB,KAAI,SACHlK,EAAON,oBAAoB8J,KAA6B,OAG5E,OAFGiB,OADEA,EAAS,EAAH,OACa,QAAf,EAANA,EAAQP,qBAAa,OAArB,EAAuB9G,KACvB8G,EAAgBO,EAAOP,cAAc9G,IACxC,kBACM8G,GAAa,2CACrB,CAAClK,EAAQwJ,IAENgN,EAAMvK,EAAQ,oBAAsBwK,EAAAA,QAAiBC,EAAAA,QAC3D,OACI,uBAAKrT,UAAU,4BACX,gBAACmT,EAAG,CAAMvK,QAAAA,EAASkD,QAAAA,EAASrL,SApBnB,SAACgC,GACVA,EAAMhS,MACNoiB,EAASpQ,EAAMhS,OAEfoiB,GAAS,IAgB8B5C,WAAYgC,IAClDrJ,EAAQ,uBAAyB,gBAAC,EAAA3C,aAAY,CAC3CC,kBAAmB0C,EAAQ,QAC3BxC,iBAAkB4L,EAClB3L,qBAAsBA,EACtBC,iBAAkBA,OAMlC,EAAAkG,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,WACnB6D,UAAW,eACXC,eAAgB,kBAAM7G,EAAAA,YACtBgD,QAAS,gBAAC,EAAAgE,cAAa,CAAChE,QAAS+J,EAAmBhK,QAASA,IAC7DkE,oBAAqB,gBAAC,UAAkB,CAAClE,QAASA,EAAS5B,OAAQ4B,EAAQ,oBAAsB,qBAAuB,qBACxHmE,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAAS+J,EAAmBhK,QAASA,IAC1DqE,SAAU,CACNC,eAAgBtE,EAAQ,kBACxBuE,gBAAgB,EAChBC,SAAUxE,EAAQ,8LCxImB,IAER,EAAlB,mCAF0B,IAE1B,GAF0B,EAE1B,EAF0B,kbAGzC,WAAYvW,GAAO,MAE8C,OAF9C,sBACf,cAAMA,IACDihB,MAAQ,CAACC,UAAU,EAAO9iB,MAAO,KAAM+iB,UAAW,MAAM,EAsBhE,OArBA,+CAED,SAAkB/iB,EAAO+iB,GACrB1iB,KAAK2iB,SAAS,CACVF,UAAU,EACV9iB,MAAAA,EACA+iB,UAAAA,MAEP,oBAED,WACI,OAAI1iB,KAAKwiB,MAAMC,SAEP,gCACKziB,KAAKwiB,MAAM7iB,OAAS,uBAAKuP,UAAU,yBAAyBlP,KAAKwiB,MAAM7iB,MAAMoD,YAC7E/C,KAAKwiB,MAAME,WACZ,uBAAKxT,UAAU,yBAAyBlP,KAAKwiB,MAAME,UAAUE,iBAIlE5iB,KAAKuB,MAAM8K,aACrB,EAzBc,CAFnB,QAE4BwW,WA4BA,oJC9B5B,UACA,UACA,UAQOC,GAAkB,EAFzB,QAEyBlI,aAAY,oBAAZ,GAAlBkI,eAqFuB,UAnFN,SAAH,GAaX,IAXFhL,EAAO,EAAPA,QACAiL,EAAe,EAAfA,gBACA/H,EAAO,EAAPA,QACA0B,EAAY,EAAZA,aACAd,EAAc,EAAdA,eACAoH,EAAc,EAAdA,eACAlI,EAAiB,EAAjBA,kBACA6B,EAAmB,EAAnBA,oBACA5M,EAAO,EAAPA,QACA0M,EAAO,EAAPA,QACGlb,GAAK,uKAEN0hB,EAAe,CACjBC,WAAYpL,EAAQ,cACpBqL,aAAcrL,EAAQ,iBACxB,GACwB,EAAA+E,EAAAA,kBAAgB,qBAAnCld,EAAK,KACNyjB,GADgB,MACE,EAAA9Z,EAAAA,WACjB2R,EAA0B1Z,EAA1B0Z,SAAUF,EAAgBxZ,EAAhBwZ,aACVI,EAAuBL,EAAvBK,oBACD2B,GAAiB,EAAAC,EAAAA,qBACjBE,EAA8C,SAAtCnF,EAAQ,eAAeuL,WAAwB,IAAM,IAC5DnG,GAAoB,EAAAC,EAAAA,yBAAwB,CAC/CrF,QAAAA,EACAkD,QAAAA,EACA0B,aAAAA,EACAvB,oBAAAA,EACAJ,aAAAA,EACApb,MAAAA,EACAmd,eAAAA,EACA7B,SAAAA,EACA+H,eAAAA,EACArG,oBAAAA,IAVGO,iBAaDoG,GAAsB,EAAA9F,EAAAA,mBAAkB,CAC1C1F,QAAAA,EACAgL,eAAAA,EACAG,aAAAA,EACAjI,QAAAA,EACA0B,aAAAA,IACF,GAE6B,EAAA6G,EAAAA,mBAAkB,CAC7CN,aAAAA,EACAK,oBAAAA,EACAtI,QAAAA,EACA0B,aAAAA,EACA5B,kBAAAA,EACAc,eAAAA,EACAmH,gBAAAA,EACA9H,SAAAA,EACAiC,iBAAAA,EACAJ,eAAAA,EACA/M,QAAAA,EACA0M,QAAAA,EACA3E,QAAAA,IAbG0L,EAAM,EAANA,OAAQC,EAAY,EAAZA,aAiCf,OAjBA,EAAArG,EAAAA,2BAA0B,CACtBtF,QAAAA,EACAgD,kBAAAA,EACAnC,cAAeoC,EAAapC,cAC5BgE,oBAAAA,KAGJ,EAAAK,EAAAA,2BAA0B,CAAC3G,eAAgByB,EAAQ,QAASmF,MAAAA,KAE5D,EAAA1T,EAAAA,YAAU,WACFia,IAEAC,EAAaL,EAAgB5Z,SAC7B4Z,EAAgB5Z,QAAQka,OAAOF,MAEpC,CAACA,IAGA,uBAAKtU,UAAU,kCAAkC7F,IAAK+Z,wHCpF5D,sBAPiC,CAC/BzU,KAAM,OACNgV,WAAY,CACRC,mBAAoB,CAAC,YACrBC,oBAAqB,CAAC,OAAQ,WAAY,UAAW,MAAO,aAAc,QAC1EC,0BAA0B,IAOjC,uBAHmC,CAChCC,WAAY,EACZC,gBAAiB,oECXrB,oLACA,oLACA,6SCFA,UAKC,kBAH8B,WAAM,OACO,EAAAvX,EAAAA,WAAS,GAAM,qBACvD,MAAO,CAACwX,aADW,KACGlB,gBADc,8ICHxC,UACA,UACA,UACA,UAAwE,2kBAgEvE,oBA9DgC,SAAH,GAAuE,IAAlEjL,EAAO,EAAPA,QAASgL,EAAc,EAAdA,eAAgBG,EAAY,EAAZA,aAAcjI,EAAO,EAAPA,QAAS0B,EAAY,EAAZA,aAAY,EAC9C5E,IAAtCoM,EAAiB,EAAjBA,kBAAmBC,EAAe,EAAfA,gBACpBtL,GAAc,EAAAvP,EAAAA,QAAO,CACvBoT,aAAAA,EACA1B,QAAAA,KAGJ,EAAAzR,EAAAA,YAAU,WACNsP,EAAYrP,QAAU,CAClBkT,aAAAA,EACA1B,QAAAA,MAIR,IAAMsI,GAAsB,EAAAnK,EAAAA,cAAY,WAAM,MACVN,EAAYrP,QAArCwR,EAAO,EAAPA,QAAS0B,EAAY,EAAZA,aACTnB,EAAeP,EAAfO,YACA6I,EAAiB1H,EAAjB0H,cACH3Z,EAAU,EAAH,KACJ,CACC4Z,eAAe,EAAAC,EAAAA,SAAQ/I,EAAYzB,OACnCmJ,aAAAA,EACAsB,sBAAuB,CAAC,EAAD,KAChB,CACC5V,KAAM,OACN6V,0BAA2B,CACvB7V,KAAM,kBACNgV,WAAY,CACRc,QAAS,SACT,iBAAkB,aAClB,wBAAyB3B,MAG/B4B,EAAAA,sBAEVC,wBAAyBjI,EAAakI,cACtCC,iBAAiB,EAAAC,EAAAA,oBAAmB,CAChC9J,QAAAA,EACAkJ,kBAAAA,EACAC,gBAAAA,IAEJY,gBAAiB,CAAC,2BAChBC,EAAAA,sBAOV,GALAva,EAAQ8Z,sBAAsB,GAAGZ,WAAWsB,wBAAyB,EACrExa,EAAQ8Z,sBAAsB,GAAGZ,WAAWuB,yBAA2B,CACnEC,OAAQ,OACRC,qBAAqB,EAAAvE,EAAAA,iBAAgBnE,EAAakI,cAAgB,iBAAmB,QAASrJ,EAAY4C,WAAY,EAAAmG,EAAAA,SAAQ/I,EAAY8J,QAE1I5a,EAAQka,wBAAyB,CACjCla,EAAQsa,gBAAkB,GAAH,qBAAOta,EAAQsa,iBAAoB,CAAC,mBAAoB,oBAC/Eta,EAAQ6a,wBAAyB,EACjC,IAAMC,GAA2B,EAAAC,EAAAA,6BAA4BpB,GACzDmB,EAAyBE,gBAAgBhnB,OAAS,IAClDgM,EAAU,EAAH,KAAOA,GAAO,IAAE8a,yBAAAA,KAG/B,OAAO9a,IACR,IAGH,OAAO6Y,iLClEX,UACA,aACA,UASA,UACA,UACA,UAA6C,2kBAiK5C,oBA/JgC,SAAH,GAcpB,IAZFL,EAAY,EAAZA,aACAK,EAAmB,EAAnBA,oBACAtI,EAAO,EAAPA,QACA0B,EAAY,EAAZA,aACA5B,EAAiB,EAAjBA,kBACAc,EAAc,EAAdA,eACAmH,EAAe,EAAfA,gBACA7F,EAAgB,EAAhBA,iBACAJ,EAAc,EAAdA,eACA/M,EAAO,EAAPA,QACA0M,EAAO,EAAPA,QACA3E,EAAO,EAAPA,QAEG4N,EAAe5N,IAAf4N,YAAW,GAC0B,EAAAjZ,EAAAA,YAAU,qBAA/CkZ,EAAc,KAAEC,EAAiB,QACZ,EAAAnZ,EAAAA,UAAS,MAAK,qBAAnC+W,EAAM,KAAEqC,EAAS,KAClBC,GAAiB,EAAAxc,EAAAA,QAAO0R,GACxB+K,GAAkB,EAAAzc,EAAAA,QAAOoT,GACxBkI,EAAiBlI,EAAjBkI,cACD/Y,GAAS,EAAAwH,EAAAA,cACW,EAAA2S,EAAAA,kBAAiB,CACvChL,QAAAA,EACA0B,aAAAA,EACA5B,kBAAAA,IAHGmL,iBAKP,EAAA1c,EAAAA,YAAU,WACNuc,EAAetc,QAAUwR,EACzB+K,EAAgBvc,QAAUkT,KAG9B,IAAMwJ,GAAiB,EAAA/M,EAAAA,cAAY,SAACgN,GAAgB,QAC5CvN,EACsD,EAOxB,EAP9BuN,MAAAA,GAA8B,QAAnB,EAAXA,EAAaC,yBAAiB,OAAM,QAAN,EAA9B,EAAgC3mB,YAAI,OAApC,EAAsCmZ,iBACtCA,EAAiBuN,EAAYC,kBAAkB3mB,KAAKmZ,gBAChD,EAAAyN,EAAAA,gBAAeP,EAAetc,QAAQ+R,YAAa,CAAC,QAAS,YAAa,EAAA+I,EAAAA,SAA0C,QAAnC,EAACwB,EAAetc,QAAQ+R,mBAAW,aAAlC,EAAoC8J,SACtHzM,EAAiB,CAAC0N,YAAa1N,EAAe0N,cAElDxJ,EAAevB,YAAcuK,EAAetc,QAAQ+R,aAAc,EAAAgL,EAAAA,eAAc3N,EAAgB,CAACkB,MAAOqM,EAAYrM,SAEpHqM,MAAAA,GAAAA,EAAaK,kBACb1J,EAAe0J,iBAAkB,EAAAD,EAAAA,eAAa,OAAKJ,EAAYK,iBAAe,IAAEF,YAA2B,QAAhB,EAAE1N,SAAc,aAAd,EAAgB0N,kBAElH,IAEG7C,GAAe,EAAAtK,EAAAA,cAAY,SAACsN,GAC9B,KAAOA,EAAcC,YACjBD,EAAcE,YAAYF,EAAcC,cAE7C,CAAClD,IACE7F,GAAc,EAAAxE,EAAAA,cAAW,6BAAC,8FAClB,OAAVpJ,IAAU,kBAEkB4V,EAAeiB,gBAAgBtD,KAAsB,OAKA,OALzE6C,EAAc,EAAH,KAGfD,EAAeC,GAEThQ,EAAO0Q,KAAKC,MAAMX,EAAYC,kBAAkBW,iBAAiBC,OAAM,SAE1Dnb,EAAON,oBAAoB,CAC1CoD,KAAM,OACN6R,KAAM,CAACwG,MAAO7Q,EAAKlH,IACnB0K,iBAAiB,EAAAsN,EAAAA,8BAA6BnB,EAAetc,QAAQ+R,eACvE,OAJQ,KAANjF,EAAS,EAAH,MAMC3W,MAAO,CAAF,sBACN,IAAIunB,EAAAA,YAAY5Q,EAAO3W,OAAM,QAGvCud,EAAiB5G,EAAOP,cAAc9G,IAAI,kDAElB,cAApB,uCAAKkY,YACL1K,KAEAzR,QAAQwL,KAAI,EAAA4Q,EAAAA,iBAAe,OAC3BrE,GAAgB,EAAAqE,EAAAA,iBAAe,QAClC,0DAEN,CACCvb,EACA8Z,EACA5V,EACAuT,IAGE+D,GAAe,EAAAlO,EAAAA,cAAW,6BAAC,iGAErBwM,IAAkB9Z,EAAM,gCAClB+P,EAAc,OACpBiK,EAAUF,EAAe0B,aAAa,EAAD,CACjCtX,QAAS4N,GACN7F,EAAQ,kBACX,uDAGR9M,QAAQwL,IAAI,EAAD,IAAM,yDAEtB,CACC3K,EACA8Z,EACAhI,IAGE2J,GAAiB,EAAA/a,EAAAA,UAAQ,WAC3B,IAAI9B,EAAU,CACVib,YAAAA,EACAzC,aAAAA,EACAsE,qBAAsB,CAClBC,oBAAqB,kBAAM3nB,QAAQV,QAAQ,CAACsoB,iBAAkB,eAkCtE,OA/BI7C,IACAna,EAAQ8c,qBAAqBG,qBAAuB,SAACvB,GACjD,IAAMwB,EAAW5B,EAAgBvc,QACTmY,EAA+BwE,EAAhDK,gBAA0BoB,EAAsBzB,EAAtByB,mBAC3BC,GAAgB,EAAAC,EAAAA,2BAA0BF,EAAmB3Y,IAC7D8Y,EAAkB,CAAC,UAAW,8BAA8Bhd,SAAS6c,EAAmB3Y,IAAM,KAAO2Y,EAAmB3Y,GAC9H,OAAO,IAAIpP,SAAQ,SAACV,EAASC,IACzB,EAAA4W,EAAAA,SAAS,CACLE,OAAQ,OACRvI,KAAK,EAAAsI,EAAAA,UAAS,gBACdE,KAAM,CACFwL,SAAS,EAAA4E,EAAAA,eAAc5E,GACvBoG,gBAAAA,EACAC,QAAS,QAEdloB,MAAK,SAAAia,GACAA,EAASQ,KACTpb,EAAQ4a,EAAS5D,KAAKA,MAEtBhX,EAAQ4a,EAAS5D,KAAK8R,yBAE3B1R,OAAM,SAAAwD,GACL5a,EAAQ4a,EAAS5D,SAClBM,SAAQ,WACHsR,GAAuC,+BAApBA,GACnBJ,EAASO,iBAAgB,MAAzBP,GAAQ,aAAqBE,YAM1Cpd,IACR,CAACma,IAUJ,OARA,EAAArb,EAAAA,YAAU,WACNqc,EAAkB,IAAIuC,OAAOC,SAASC,IAAIC,eAAehB,MAC1D,CAACA,KAEJ,EAAA/d,EAAAA,YAAU,WACN8d,MACD,CAACA,IAEG,CACH7D,OAAAA,EACAC,aAAAA,qEC5KR,QAEA,mQCFA,UACA,UACA,UACA,aACA,UACA,aACA,UAAiD,2kBAEjD,IAGUkC,EAOA4C,EAVJzQ,GAAU,EAAA8C,EAAAA,aAAY,yBAEtBgB,GACI+J,EAAiB,IAAIwC,EAAAA,QAAOC,SAASC,IAAIC,eAAe,CAC1D5C,YAAa5N,EAAQ,eACrBmL,aAAc,CACVC,WAAYpL,EAAQ,cACpBqL,aAAcrL,EAAQ,mBAGxByQ,EAAsB,EAAH,KAAOvD,EAAAA,sBAAoB,IAAET,sBAAuB,CAACG,EAAAA,uBACvEiB,EAAe6C,aAAaD,GAAqBzoB,MAAK,WACzD,OAAO,KACRyW,OAAM,SAAAnW,GAEL,OADA4K,QAAQwL,IAAIpW,IACL,MAITqoB,EAAmB,SAAH,GAAwC,IAAnC3Q,EAAO,EAAPA,QAASN,EAAU,EAAVA,WAAejW,GAAK,yCAC7CmnB,EAAwBlR,EAAxBkR,qBAAoB,GACa,EAAAC,EAAAA,mBAAjC1E,EAAY,EAAZA,aAAclB,EAAe,EAAfA,gBACrB,OACI,uBAAK7T,UAAU,4BACX,gBAAC,EAAAhD,SAAQ,CAACL,OAAQkJ,EAAAA,YACd,gBAAC,WAAe,cAAC+C,QAASA,EACT8D,eAAgBA,EAChBmH,gBAAiBA,GACbxhB,IACpB0iB,GAAgB,gBAACyE,EAAoB,CAACzE,aAAcA,OAM/D2E,EAAgB,SAAH,GAA4B,MAAvB9Q,EAAO,EAAPA,QACduL,IAD+B,4BAClBvL,EAAQ,eAAeuL,YACpCjP,GAA4B,QAAtB,EAAA0D,EAAQ,sBAAc,aAAtB,EAAyBuL,KAAe,OACpD,OACI,uBAAKnU,UAAS,4BAAuBmU,IACjC,uBAAKjP,IAAKA,OAKtB,EAAA4J,EAAAA,8BAA6B,CACzB3Y,KAAMyS,EAAQ,QACd8D,eAAgB,WACZ,OAAI9D,EAAQ,aACJ,EAAA+Q,EAAAA,eACO/Q,EAAQ,0BAInB,EAAA+Q,EAAAA,gBAAiB/Q,EAAQ,yBAGtB/C,EAAAA,WAAWjV,MAAK,SAAA+L,GACnB,OAAIA,EAAOlM,MACAkM,EAEJ+P,MAGf7D,QAAS,gBAAC0Q,EAAgB,CAAC3Q,QAASA,IACpCmE,KAAM,gBAAC2M,EAAa,CAAC9Q,QAASA,IAC9BqE,SAAU,CACNC,eAAgBtE,EAAQ,kBACxBuE,eAAgBvE,EAAQ,kBACxBwE,SAAUxE,EAAQ,uOC7E1B,UAsBagN,IAlBO,EAFpB,QAEoBgE,YAAW,qBAkBG,SAAH,GAA4E,IAAvE9N,EAAO,EAAPA,QAASkJ,EAAiB,EAAjBA,kBAAmBC,EAAe,EAAfA,gBAAkBlK,EAAS,UAAH,6CAAG,YAChF+G,EAAuChG,EAAvCgG,UAAW+H,EAA4B/N,EAA5B+N,eAAgB9K,EAAYjD,EAAZiD,SAC5B4G,EAAkB,CACpBmE,YAAa9E,EACb+E,aAAchL,EAAS1D,KACvB2O,iBAAkBjP,EAClBkP,YAAY,EAAAC,EAAAA,uBAAsBpI,EAAUthB,MAAOue,EAASoL,WAAWtmB,WACvEumB,aAAcC,EAAgBR,EAAgB9K,EAASoL,WACvDlF,gBAAAA,GAEJ,OAAOU,IACV,uBAeD,0BAbuC,SAAH,GAAoE,IAA/D7J,EAAO,EAAPA,QAAS0B,EAAY,EAAZA,aAAcwH,EAAiB,EAAjBA,kBAAmBC,EAAe,EAAfA,gBACxES,EAAgClI,EAAhCkI,cAAeR,EAAiB1H,EAAjB0H,cAClB9W,EAAS,CACTkc,mBAAoB1E,EAAmB,CACnC9J,QAAAA,EAASkJ,kBAAAA,EAAmBC,gBAAAA,GAC7B,UAKP,OAHIS,IACAtX,EAAOmc,4BAA8BjE,EAA4BpB,IAE9D9W,GASX,IAAMic,EAAkB,SAACR,GAA6B,IAAbW,EAAO,UAAH,6CAAG,EACxCC,EAAQ,GACNrlB,EAAO,CAAC,YAAa,kBAU3B,OATAykB,EAAergB,SAAQ,SAAAkhB,IACf,EAAIA,EAAKlqB,OAAUkqB,EAAKrqB,KAAO+E,EAAKyG,SAAS6e,EAAKrqB,OAClDoqB,EAAM1oB,KAAK,CACPwX,MAAOmR,EAAKnR,MACZ9J,KAAM,YACNkb,OAAO,EAAAT,EAAAA,uBAAsBQ,EAAKlqB,MAAOgqB,GAAM3mB,gBAIpD4mB,GAGEnE,EAA8B,SAACpB,GACxC,IAAMqB,EAAkBqE,EAAmB1F,GAEvC2F,EADsBtE,EAAgBxO,KAAI,SAAA+S,GAAM,OAAIA,EAAO/a,MACf7J,MAAM,EAAG,GAAG6kB,QAQ5D,OAPA7F,EAAc1b,SAAQ,SAACwhB,EAAiB/J,GACpC+J,EAAgBC,eAAezhB,SAAQ,SAAA0hB,GAC/BA,EAAKC,WACLN,GAA0B,EAAAO,EAAAA,qBAAoBnK,EAAKiK,EAAKG,gBAI7D,CACH9E,gBAAAA,EACAsE,wBAAAA,IAIR,gCACO,IAAMD,EAAqB,SAAC1F,GAC/B,IAAI3Z,EAAU,GAcd,OAbA2Z,EAAc1b,SAAQ,SAACwhB,EAAiB/J,GACpC,IAAIqK,EAAQN,EAAgBC,eAAelT,KAAI,SAAAmT,GAC3C,IAAIK,EAAMvW,SAAStG,cAAc,YACjC6c,EAAIC,UAAYN,EAAK/kB,KACrB,IAAIwkB,GAAQ,EAAAc,EAAAA,aAAYP,EAAKP,MAAOO,EAAKtO,eACzC,MAAO,CACH7M,IAAI,EAAAqb,EAAAA,qBAAoBnK,EAAKiK,EAAKG,SAClC9R,MAAOgS,EAAI/qB,MACXkrB,YAAa,GAAF,OAAKf,OAGxBpf,EAAU,GAAH,qBAAOA,IAAO,aAAK+f,OAEvB/f,GACV,uBAEM,IAAM8b,GAAgB,EAAAsE,EAAAA,eAnGJ,CACrBxlB,KAAM,SAACsc,EAAStc,GAGZ,OAFAsc,EAAQ/H,WAAavU,EAAKylB,MAAM,KAAK1lB,MAAM,GAAI,GAAG2lB,KAAK,KACvDpJ,EAAQ9H,UAAYxU,EAAKylB,MAAM,KAAKE,MAC7BrJ,GAEXqH,YAAa,UACbiC,SAAU,YACVC,SAAU,YACVC,SAAU,OACVC,mBAAoB,QACpB1K,WAAY,WACZ5G,MAAO,QACPwM,YAAa,UAsFsD,mFCzGvE,oLACA,oLACA,oLACA,oLACA,oLACA,oLACA,oLACA,oLACA,oLACA,oUCTA,UACA,UACA,UACA,UAuCC,4BArCwC,SAAH,GAQ5B,IANFxO,EAAO,EAAPA,QACAgD,EAAiB,EAAjBA,kBACAnC,EAAa,EAAbA,cACAgE,EAAmB,EAAnBA,oBAAmB,IACnB0E,kBAAAA,OAAiB,IAAG,GAAK,MACzBhE,eAAAA,OAAc,IAAG,OAAI,EAEnBxR,GAAS,EAAAwH,EAAAA,aACRqF,EAA4EoC,EAA5EpC,qCAAsCwC,EAAsCJ,EAAtCI,oCAC7C,EAAAE,EAAAA,yBAAwB,CACpBzC,cAAAA,EACA0C,WAAYH,EACZmC,eAAAA,KAEJ,EAAA9T,EAAAA,YAAU,WACN,IAAI8hB,EAAwC3S,EAAoC,+CAAC,2FAAmB,GAAXK,EAAW,EAAXA,YACjFjB,EAAQ,UAAY6E,EAAmB,iCAE1B,EAAA2O,EAAAA,kBAAiB,CAC1BvS,YAAAA,EACAJ,cAAAA,EACAtT,KAAMsX,EACN4O,kBAAmBlK,IACrB,wEAEC,MAAI,2CACd,mDAX+E,IAYhF,OAAO,kBAAMgK,OACd,CACCxf,EACA8M,EACAD,EACAiE,EACA0E,6JCxCR,UACA,UAEavB,EAAqB,SAAH,GAMrB,IAJFza,EAAI,EAAJA,KACA4X,EAAK,EAALA,MACAvV,EAAI,EAAJA,KACAwH,EAAS,EAATA,UAAS,GAEyB,EAAAzC,EAAAA,UAASqF,OAAO0Z,YAAW,qBAA1DC,EAAW,KAAEC,EAAc,KAC5BC,GAAc,EAAAxS,EAAAA,cAAY,SAAC9T,GAC7B,IAAMumB,GAAW,EAAAC,EAAAA,cAAaxmB,GAC9B,OAAOumB,EAAWrN,SAASqN,GAAY,IACxC,IACGE,GAAc,EAAA3S,EAAAA,cAAY,SAAC9T,EAAM4X,GAAK,OAAK,EAAA8O,EAAAA,cAAa1mB,EAAM4X,KAAQ,KAE5E,EAAA1T,EAAAA,YAAU,WACN,IAAM2O,EAAqB,mBAATxQ,EAAsBA,IAASA,EAEjD,GAAIwQ,EAAI,CACJ,IAAM0T,EAAWD,EAAYtmB,KACxBumB,GAAY3O,EAAQ2O,IACrBE,EAAYzmB,EAAM4X,GAElB/E,EAAG8T,YAAc/O,EACjB/E,EAAGE,UAAUC,IAAInJ,GAEbgJ,EAAG8T,YAAcJ,GACjB1T,EAAGE,UAAU6T,OAAO/c,MAIjC,CAACuc,EAAa/jB,KACjB,EAAA6B,EAAAA,YAAU,WACN,IAAM2iB,EAAe,WAAH,OAASR,EAAe5Z,OAAO0Z,aAEjD,OADA1Z,OAAO+C,iBAAiB,SAAUqX,GAC3B,kBAAMpa,OAAOqa,oBAAoB,SAAUD,QAEzD,uBAkBA,4BAhBwC,SAAH,GAI5B,IAFF7V,EAAc,EAAdA,eACA4G,EAAK,EAALA,MAEEvV,GAAO,EAAAyR,EAAAA,cAAY,WACrB,IAAMjB,EAAKhE,SAASkY,eAAe,0BAAD,OAA2B/V,IAC7D,OAAO6B,EAAKA,EAAGmU,WAAa,OAC7B,IACHvM,EAAmB,CACfza,KAAM,kBACN4X,MAAAA,EACAvV,KAAAA,EACAwH,UAAW,uLCtDnB,UACA,UACA,UAAgK,2kBAqH/J,2BAnHuC,SAAH,GAShC,IAPGqM,EAAW,EAAXA,YACAT,EAAiB,EAAjBA,kBACAnC,EAAa,EAAbA,cACAtT,EAAI,EAAJA,KACAgc,EAAiB,EAAjBA,kBACAzE,EAAc,EAAdA,eAGGzB,EAA6DL,EAA7DK,oBAAqBzC,EAAwCoC,EAAxCpC,qCACtBG,GAAc,EAAAvP,EAAAA,QAAO,CAACiS,YAAAA,IACtB6K,GAAoB,EAAA9c,EAAAA,QAAO,IAC3BuC,GAAS,EAAAwH,EAAAA,aACThI,GAAW,EAAA+H,EAAAA,eAEXkZ,GAAqB,EAAAnT,EAAAA,cAAY,SAACpD,EAAesL,GAAsB,MAUzE,MATiB,CACbkL,KAAM,CACFnG,kBAAmB,GAAF,+BACT/gB,EAAI,cAAe0Q,IAAa,yBAChC1Q,EAAI,oBAAqBgc,GAAiB,GAC3C+E,EAAkB5c,aAKlC,IAEG+L,GAAuB,EAAA4D,EAAAA,cAAY,SAAChD,GACtCiQ,EAAkB5c,QAAU,EAAH,KAAO4c,EAAkB5c,SAAY2M,KAC/D,IAEG5K,GAAsB,EAAA4N,EAAAA,cAAW,6BAAC,0FAClB,OAAXoC,EAAe1C,EAAYrP,QAA3B+R,YAAW,SACL1P,EAAON,oBAAoB,CACpCF,SAAAA,EACAyI,OAAQ,CACJ6F,iBAAiB,EAAAsN,EAAAA,8BAA6B1L,MAEpD,mFACH,CAAC1P,EAAQR,IAENmhB,GAAiB,EAAArT,EAAAA,cAAW,6BAAC,0FACb,OAAXoC,EAAe1C,EAAYrP,QAA3B+R,YAAW,SACL1P,EAAO2gB,eAAe,CAC/BnhB,SAAAA,EACAohB,cAAe,CACX/S,oBAAqB,CACjBC,iBAAiB,EAAAsN,EAAAA,8BAA6B1L,KAGtDjB,SAAU,gBACZ,mFACH,CAACzO,EAAQR,IAyDZ,OAvDA,EAAA9B,EAAAA,YAAU,WACNsP,EAAYrP,QAAQ+R,YAAcA,MAGtC,EAAAhS,EAAAA,YAAU,WACN,IAAMuP,EAAcqC,GAAmB,6BAAC,gGAKf,GALe,SAG5BpF,EAAgB,KAGkB,qBAA5B,QAAN,EADAO,EAAS,YACH,OAAe,QAAf,EAAN,EAAQ0D,qBAAa,WAAf,EAAN,EAAuBC,QAA4B,gBACC,OAApDlE,EAAgBO,EAAO0D,cAAc3D,eAAe,SAC9CmW,IAAgB,+CAEPjhB,IAAqB,QAA9B,KAAN+K,EAAS,EAAH,MACK3W,MAAO,CAAF,sBACN,IAAIunB,EAAAA,YAAY5Q,EAAO3W,OAAM,QAEvCoW,EAAgBO,EAAOP,cAAc9G,GACrC4J,EAAYrP,QAAQuM,cAAgBA,EAAc,kCAE/C,EAAAsE,EAAAA,uBAAsB1B,EAAe2T,EAAmBvW,EAAesL,KAAmB,4DAE1F,EAAA7G,EAAAA,qBAAoB7B,EAAe,EAAF,GAAS,CAAC0E,eAAgBT,EAAe4E,YAAU,2DAGnG,OAAO,kBAAM1I,OACd,CACCqC,EACA5P,EACAihB,EACAnL,KAGJ,EAAA9X,EAAAA,YAAU,WACN,IAAMuP,EAAcJ,EAAoC,+CAAC,2FAAmB,OAAXK,EAAW,EAAXA,YAAW,UAC3D,EAAAuS,EAAAA,kBAAiB,CAC1BvS,YAAAA,EACAJ,cAAAA,EACAtT,KAAAA,EACAkmB,kBAAmBlK,EACnBlL,MAAM,EAAF,wBACI9Q,EAAI,cAAewT,EAAYrP,QAAQuM,iBAEjD,mFACL,mDAVuD,IAWxD,OAAO,kBAAM+C,OACd,CACCJ,EACA8T,EACAnL,EACAhc,IAGG,CACHkG,oBAAAA,EACAgK,qBAAAA,gGCrHR,cAKC,oBAHgC,WAE7B,OADuB,EAAAjM,EAAAA,QAAO,IACRE,gJCJ1B,UACA,UAAyC,2kBAuFxC,mBArF+B,SAAH,GAKnB,IAHFwR,EAAO,EAAPA,QACA0B,EAAY,EAAZA,aACA5B,EAAiB,EAAjBA,kBAEG4R,EAA0E5R,EAA1E4R,sBAAuBC,EAAmD7R,EAAnD6R,mBAAoBC,EAA+B9R,EAA/B8R,4BAC5C9G,GAAiB,EAAAxc,EAAAA,QAAO0R,GACxB+K,GAAkB,EAAAzc,EAAAA,QAAOoT,GAAc,GACf,EAAAjQ,EAAAA,UAAS,MAAK,qBAArCogB,EAAO,KAAEC,EAAU,QACe,EAAArgB,EAAAA,UAAS,CAC9CsgB,mBAAmB,IACrB,qBAFKC,EAAa,KAAEC,EAAe,KAG/BhH,GAAkB,EAAA9M,EAAAA,cAAY,SAAC9T,EAAMwnB,GAA6B,IAApBK,EAAU,UAAH,8CACnDA,EACAJ,GAAW,EAAD,cAAGznB,EAAOwnB,IAEpBI,EAAgB,EAAD,KAAKD,GAAa,oBAAG3nB,EAAOwnB,OAEhD,CAACG,EAAeC,IACbE,GAAqB,EAAAhU,EAAAA,cAAY,SAAC9T,GAChC2nB,EAAc3nB,YACP2nB,EAAc3nB,GACrB4nB,EAAgBD,MAErB,CAACA,IAEED,GAAoB,EAAA5T,EAAAA,cAAY,WAClC,IAAMwO,EAAW5B,EAAgBvc,QAC3BwR,EAAU8K,EAAetc,QAC/B,GAAIwjB,EAAcD,oBAAsBpF,EAASyF,kBAAoBzF,EAAS0F,qBAAsB,CAChG,IAAMR,EAAUG,EAAcD,kBAC1BO,GAAU,GACT,EAAAC,EAAAA,kBAAiB5F,EAASvD,iBAC3BkJ,GAAU,GAEdT,EAAQS,EAAS,CACbtS,QAAAA,EACA2M,SAAAA,IAEJwF,EAAmB,wBAExB,CAACH,EAAeG,IA0CnB,OAxCA,EAAA5jB,EAAAA,YAAU,WACNuc,EAAetc,QAAUwR,EACzB+K,EAAgBvc,QAAUkT,MAG9B,EAAAnT,EAAAA,YAAU,WACFsjB,GACIA,EAAQE,oBACRF,EAAQE,mBAAkB,EAAM,CAC5B/R,QAAS8K,EAAetc,QACxBme,SAAU5B,EAAgBvc,UAE9BsjB,EAAW,SAGpB,CAACD,KAEJ,EAAAtjB,EAAAA,YAAU,WACN,IAAMikB,EAAiCd,EAAsBK,GACvDU,EAAuCb,EAA4BG,GACnEW,EAA8Bf,GAAmB,YAAmB,EAAjBgB,kBAA2B,EAARlL,SACpEuK,EAAcD,qBAEdF,EADgBG,EAAcD,oBACtB,GACRI,EAAmB,yBAI3B,OAAO,WACHK,IACAE,IACAD,OAEL,CACCT,EACAN,EACAC,EACAC,IAGG,CAAC3G,gBAAAA,EAAiBkH,mBAAAA,wJCvF7B,UACA,UACA,UACA,aAAyD,2kBASzD,IAAM5G,GAAgB,EAAAqH,EAAAA,iBA2IrB,oBAzIgC,SAAH,GAWpB,IATF9V,EAAO,EAAPA,QACA2E,EAAO,EAAPA,QACA5Q,EAAM,EAANA,OACAmP,EAAO,EAAPA,QACA0B,EAAY,EAAZA,aACA5B,EAAiB,EAAjBA,kBACAoC,EAAgB,EAAhBA,iBACAJ,EAAc,EAAdA,eACAW,EAAM,EAANA,OAEGwI,GAAmB,EAAAD,EAAAA,kBAAiB,CACvChL,QAAAA,EACA0B,aAAAA,EACA5B,kBAAAA,IAHGmL,gBAKiBrB,GAAgClI,EAAjD8J,gBAAiD9J,EAAhCkI,eAAeR,EAAiB1H,EAAjB0H,cAChC7I,EAAoDP,EAApDO,YAAawN,EAAuC/N,EAAvC+N,eAAgB9K,EAAuBjD,EAAvBiD,SAAU+C,EAAahG,EAAbgG,UAAS,GACX,EAAAvU,EAAAA,UAAS,MAAK,qBAAnD8Q,EAAc,KAAEsQ,EAAiB,KAClCC,GAAwB,EAAAxkB,EAAAA,QAAO,IAC/Byc,GAAkB,EAAAzc,EAAAA,QAAOoT,GACzBoJ,GAAiB,EAAAxc,EAAAA,QAAO0R,IAE9B,EAAAzR,EAAAA,YAAU,WACNwc,EAAgBvc,QAAUkT,EAC1BoJ,EAAetc,QAAUwR,IAC1B,CAAC0B,KAEJ,EAAAnT,EAAAA,YAAU,WACN,GAAIsC,EAAQ,CACR,IAAMpB,EAAU,CACZ0T,QAASrG,EAAQ,eACjBmG,SAAUA,MAAAA,OAAQ,EAARA,EAAU1D,KAAK6D,cACzBC,MAAO,CACHC,OAAQ0C,EAAUthB,MAClB+Y,MAAOuI,EAAUvI,MACjBsV,SAAS,GAEbC,kBAAkB,EAClBC,mBAAmB,EAAApN,EAAAA,iBAAgB,QAAStF,EAAY4C,SACxD+P,mBAAmB,EAAArN,EAAAA,iBAAgB+D,EAAgB,iBAAmB,QAASrJ,EAAY4C,SAC3FgQ,gBAAiBvJ,EACjB0E,cAAc,EAAAC,EAAAA,iBAAgBR,EAAgB9K,IAE9CxT,EAAQ0jB,kBACR1jB,EAAQgb,iBAAkB,EAAAqE,EAAAA,oBAAmB1F,IAEjD0J,EAAsBtkB,QAAUiB,EAChC,IAAM8S,EAAiB1R,EAAO0R,eAAeuQ,EAAsBtkB,SACnE+T,EAAe3B,iBAAiB9b,MAAK,SAAAwW,GAC7BmH,EAAOnH,GACPuX,EAAkBtQ,GAElBsQ,EAAkB,YAI/B,CACChiB,EACAmV,EAAUthB,MACV6b,EAAY4C,QACZiG,EACA2E,EACA9K,EAAS1D,QAGb,EAAAhR,EAAAA,YAAU,WACFgU,IACIuQ,EAAsBtkB,QAAQ2kB,kBAC9B5Q,EAAe7L,GAAG,wBAAyB0c,GAC3C7Q,EAAe7L,GAAG,uBAAwB2c,IAE9C9Q,EAAe7L,GAAG,SAAU+K,GAC5Bc,EAAe7L,GAAG,gBAAiB4c,MAExC,CACC/Q,EACA6Q,EACA3R,EACA6R,IAGJ,IAAMC,GAAqB,EAAApV,EAAAA,cAAY,SAACxH,GAAK,OAAK,SAAC2b,EAAS,GAAwB,IAAvBtS,EAAO,EAAPA,QAAS2M,EAAQ,EAARA,SAC3D3G,EAAuChG,EAAvCgG,UAAW+H,EAA4B/N,EAA5B+N,eAAgB9K,EAAYjD,EAAZiD,SAC3BmG,EAAiBuD,EAAjBvD,cACHkJ,EACA3b,EAAM6c,WAAW,CACbvU,OAAQ,UACRoE,MAAO,CACHC,OAAQ0C,EAAUthB,MAClB+Y,MAAOuI,EAAUvI,MACjBsV,SAAS,GAEbzE,cAAc,EAAAC,EAAAA,iBAAgBR,EAAgB9K,GAC9CwH,iBAAiB,EAAAqE,EAAAA,oBAAmB1F,KAGxCzS,EAAM6c,WAAW,CAACvU,OAAQ,gCAE/B,IAEGmU,GAA0B,EAAAjV,EAAAA,cAAY,SAAAxH,GAAS,IAC1C6U,EAAmB7U,EAAnB6U,gBACDmB,EAAW5B,EAAgBvc,QAC3BilB,EAAsBlI,EAAcC,GAC1CmB,EAAS+G,mBAAmB,EAAD,KAAK/G,EAASnB,iBAAoBiI,IAC7D,IAAME,GAAe,EAAAC,EAAAA,UAAe,EAAAC,EAAAA,wBAAuBlH,EAASnB,iBAAkBiI,GACtFxI,EAAgB,oBAAqBsI,EAAmB5c,GAAQgd,KACjE,CAAC1I,IAEEoI,GAAyB,EAAAlV,EAAAA,cAAY,SAAAxH,GAAS,IACzCmd,EAAkBnd,EAAlBmd,eACDnH,EAAW5B,EAAgBvc,QACjCme,EAASO,iBAAgB,MAAzBP,GAAQ,cAAqB,EAAAG,EAAAA,2BAA0BgH,EAAe7f,MACtEgX,EAAgB,oBAAqBsI,EAAmB5c,MACzD,CAACsU,IAEEqI,GAA0B,EAAAnV,EAAAA,cAAY,SAAC4V,GAAoB,IACtDhZ,EAAyEgZ,EAAzEhZ,cAAa,EAA4DgZ,EAA1DC,UAAAA,OAAS,IAAG,OAAI,IAA0CD,EAAxCE,WAAAA,OAAU,IAAG,OAAI,IAAuBF,EAArBG,WAAAA,OAAU,IAAG,OAAI,EAExE3T,EAAc,CAACyT,UAAAA,EAAWC,WAAAA,EAAYC,WAAAA,GACtCnZ,MAAAA,GAAAA,EAAe4D,gBAAgBgI,UAC/BpG,EAAcgL,EAAcxQ,EAAc4D,gBAAgBgI,QAASpG,IAEvEuB,EAAevB,YAAcA,EAEzBwT,EAAgBvI,kBAChB1J,EAAe0J,gBAAkBD,EAAcwI,EAAgBvI,gBAAiB,CAAC0I,WAAAA,KAIrFhS,EAAiBnH,EAAc9G,IAC/B8f,EAAgB7O,SAAS,aAC1B,IAEH,MAAO,CAAC3C,eAAAA,sGCtJZ,cAsBC,0BApBsC,SAAH,GAK1B,IAHF5E,EAAa,EAAbA,cACA0C,EAAU,EAAVA,WAAU,IACVgC,eAAAA,OAAc,IAAG,OAAI,GAEzB,EAAA9T,EAAAA,YAAU,WACN,IAAMuP,EAAcuC,GAAW,SAAClF,GAAS,MACrC,OAAIA,MAAAA,GAAuC,QAAnC,EAAJA,EAAMgZ,mBAAmBC,sBAAc,OAAvC,EAAyCC,oBACzCrkB,QAAQwL,IAAIL,EAAKgZ,mBAAmBC,eAAeC,oBAC5C,CACH1gB,KAAMgK,EAAc2W,MACpBC,QAASpZ,EAAKgZ,mBAAmBC,eAAeC,mBAChDhS,eAAAA,IAGD,QAEX,OAAO,kBAAMvE,OACd,CAACH,EAAe0C,6KCrBvB,UACA,UACA,UAKiB,2kBA2HhB,0BAzHsC,SAAH,GAgB1B,IAdFvD,EAAO,EAAPA,QACAkD,EAAO,EAAPA,QACA0B,EAAY,EAAZA,aACAvB,EAAmB,EAAnBA,oBACAJ,EAAY,EAAZA,aACApb,EAAK,EAALA,MACAsb,EAAQ,EAARA,SACA0B,EAAmB,EAAnBA,oBAAmB,IACnB6S,YAAAA,OAAW,IAAG,SAAM,MACpB9U,YAAAA,OAAW,IAAG,OAAI,MAClB0H,kBAAAA,OAAiB,IAAG,OAAI,MACxBf,kBAAAA,OAAiB,IAAG,GAAK,MACzBvE,eAAAA,OAAc,IAAG,KAAE,MACnBmF,qBAAAA,OAAoB,IAAG,mBAAO,IAAG,EAE9B1G,EAAeP,EAAfO,YACAiL,EAAmB9J,EAAnB8J,gBACA7N,EAAiBoC,EAAjBpC,cAAa,GACsB,EAAAlM,EAAAA,UAAS,MAAK,qBAAjDsJ,EAAa,KAAEmH,EAAgB,KAChCrR,GAAS,EAAAwH,EAAAA,aACToc,GAA2B,EAAAnmB,EAAAA,QAAO2Y,GAClCmE,GAAoB,EAAA9c,EAAAA,QAAO,KACjC,EAAAC,EAAAA,YAAU,WACNkmB,EAAyBjmB,QAAUyY,IACpC,CAACA,IAEJ,IAAM1M,GAAuB,EAAA4D,EAAAA,cAAY,SAAChD,GACtCiQ,EAAkB5c,QAAU,EAAH,KAAO4c,EAAkB5c,SAAY2M,KAC/D,IAEGd,GAA6B,EAAA8D,EAAAA,cAAY,WAK3C,OAAO,EAAP,KAJa,CACTxK,KAAM6gB,EACN7V,iBAAiB,EAAAsN,EAAAA,8BAA6BnK,MAAAA,GAAAA,EAAgBvB,YAAcuB,EAAevB,YAAcA,KAEzFkU,EAAyBjmB,aAC9C,CAAC+R,EAAaiU,EAAavN,IAExBqK,GAAqB,EAAAnT,EAAAA,cAAY,SAACuW,EAAiBrO,GAAsB,MACrEtH,EAAW,CACbwS,KAAM,CACFnG,kBAAmB,GAAF,+BACTtO,EAAQ,QAAO,cAAe4X,IAAe,yBAC7C5X,EAAQ,QAAO,oBAAqBuJ,GAAiB,GACtD+E,EAAkB5c,WAWjC,OAPIsT,MAAAA,GAAAA,EAAgBvB,cAChBxB,EAASwS,KAAKhR,YAAcuB,EAAevB,YAC3CxB,EAASwS,KAAK3T,eAAiBkE,EAAevB,aAE9CuB,MAAAA,GAAAA,EAAgB0J,kBAChBzM,EAASwS,KAAK7P,aAAe,CAACiF,QAAS7E,EAAe0J,kBAEnDzM,IACR,CAACwB,EAAaiL,IA0DjB,OAxDA,EAAAjd,EAAAA,YAAU,WACFwM,GAA0C,iBAAlBA,GACxBkF,MAEL,CAAClF,EAAekF,KAEnB,EAAA1R,EAAAA,YAAU,WACN,IAAMomB,EAA+BxU,GAAmB,6BAAC,+FACjDwB,IAAwB7E,EAAQ,QAAO,yCAChC,MAAI,OAE4B,GAAtCxB,EAA4B,KAApBoZ,EAA0B,KAAI,UAEnC/vB,EAAO,CAAF,qBACC,IAAIunB,EAAAA,YAAYvnB,GAAM,WAE5B+a,EAAa,CAAF,gCACI7O,EAAO+jB,iBAAiBlV,EAAYtB,cAAe,CAC9D/C,eAAgBhB,MAClB,OAFI,KAANiB,EAAS,EAAH,MAGK3W,MAAO,CAAF,sBACN,IAAIunB,EAAAA,YAAY5Q,EAAO3W,OAAM,QAEvC+vB,EAAkBpZ,EAAOoE,YAAYrE,eACrC+L,IAAoB,4BAGhBrM,EAAe,CAAF,gBACb2Z,EAAkB3Z,EAAc,yCAGjBlK,EAAON,oBAAoB8J,KAA6B,QAAjE,KAANiB,EAAS,EAAH,MACK3W,MAAO,CAAF,sBACN,IAAIunB,EAAAA,YAAY5Q,EAAO3W,OAAM,QAEvC+vB,EAAkBpZ,EAAOP,cAAc9G,GAAG,kCAG3C,EAAAoL,EAAAA,uBAAsB1B,EAAe2T,EAAmBoD,EAAiBrO,KAAmB,QAG5E,OAH4E,0BAEnGrW,QAAQwL,IAAI,EAAD,IACX0G,EAAiB,MAAM,mBAChB,EAAA1C,EAAAA,qBAAoB7B,EAAe,KAAEhZ,QAAM,2DAI1D,OAAO,kBAAMgwB,OACd,CACC5Z,EACAwF,EACAJ,EACAtP,EACA6O,EACAiC,EACA0E,IAEG,CACHnE,iBAAAA,EACA7H,2BAAAA,EACAE,qBAAAA,sJChIR,UACA,aACA,UA8CC,iBApC6B,SAAH,GAIjB,IAFFyL,EAAS,EAATA,UACAe,EAAQ,EAARA,SAAQ,GAE0B,EAAAtV,EAAAA,WAAS,EAAAof,EAAAA,cAAa,gBAAe,qBAApEnR,EAAW,KAAEmV,EAAc,MAElC,EAAAtmB,EAAAA,YAAU,WACN,IAAMumB,EAAiB,+CAAG,8FAClBpV,EAAa,CAAF,iEAII,EAAA1E,EAAAA,SAAS,CACxBrI,KAAK,EAAAsI,EAAAA,UAAS,uBACdC,OAAQ,SACV,QAHEI,EAAS,EAAH,MAICiE,KACPwH,EAASzL,EAAOiZ,WAEhB,EAAAxD,EAAAA,cAAa,cAAezV,EAAOyZ,QACnCF,EAAevZ,EAAOyZ,SACzB,2CACJ,kBAfsB,oCAgBnB,EAAAC,EAAAA,0BAA2B,EAAAC,EAAAA,6BAAiD,GAAnBjP,EAAUthB,MAC9Dgb,GACDoV,IAGJD,EAAe,QAEpB,CAAC7O,EAAUthB,QACd,IAAM0iB,GAAoB,EAAAjJ,EAAAA,cAAY,YAClC,EAAA+W,EAAAA,iBAAgB,iBACjB,CAAClP,EAAUthB,QACd,MAAO,CAACgb,YAAAA,EAAa0H,kBAAAA,4HC/CzB,UAKC,iBAH6B,WAAM,OACN,EAAA3V,EAAAA,WAAS,GAAM,qBACzC,MAAO,CADK,KAAU,uECH1B,yVCAA,UACA,UACA,UAAuI,2kBAEvI,IAAM8Z,GAAgB,EAAAqH,EAAAA,iBAgGrB,UA9FsB,SAAH,GASV,IAPF9T,EAAK,EAALA,MACAgB,EAAiB,EAAjBA,kBACA/K,EAAO,EAAPA,QACAkL,EAAQ,EAARA,SACA0B,EAAmB,EAAnBA,oBACAhE,EAAa,EAAbA,cACQ,8GAEY,EAAAlM,EAAAA,aAAU,qBAA3B0jB,EAAI,KAAEC,EAAO,KACdvkB,GAAS,EAAAwH,EAAAA,aACThI,GAAW,EAAA+H,EAAAA,eACXyF,GAAc,EAAAvP,EAAAA,UACd+mB,GAAW,EAAA/mB,EAAAA,UACV6R,EAAuBL,EAAvBK,oBA8EP,OA7EA,EAAA5R,EAAAA,YAAU,WACNsP,EAAYrP,QAAU,CAACuG,QAAAA,EAASkL,SAAAA,OAGpC,EAAA1R,EAAAA,YAAU,WACFsC,GAAUR,IAAa8kB,GACvBC,EAAQvkB,MAAAA,OAAM,EAANA,EAAQykB,kBAAkBjlB,MAEvC,CACCQ,EACAR,EACA8kB,KAGJ,EAAA5mB,EAAAA,YAAU,WACF4mB,GACAA,EAAKI,OAAO,CAACzW,MAAAA,MAElB,CAACqW,EAAMrW,KAEV,EAAAvQ,EAAAA,YAAU,WACF4mB,IACAA,EAAKze,GAAG,YAAY,SAAAC,GAChB0e,EAAS7mB,QAAUmI,EACnBkH,EAAYrP,QAAQyR,cAGxBkV,EAAKze,GAAG,iBAAiB,SAAAC,GACrBkH,EAAYrP,QAAQuG,gBAG7B,CAACogB,KAEJ,EAAA5mB,EAAAA,YAAU,WACN,IAAMuP,EAAcqC,GAAmB,6BAAC,yGACR,yBAAxBwB,EAA8C,yCACvC,MAAI,OAWf,OATM5C,EAAW,CAACwS,KAAM,IAAG,EAC6B8D,EAAS7mB,QAAQ9J,MAAK,IAAvE8mB,gBAAAA,OAAe,IAAG,OAAI,MAAE5N,gBAAAA,OAAc,IAAG,OAAI,KAEhDmB,EAASwS,KAAKhR,YAAcgL,EAAc,EAAD,KAAK3N,EAAe+I,SAAO,IAAE6O,UAAW5X,EAAevT,QAChG0U,EAASwS,KAAK3T,eAAiBmB,EAASwS,KAAKhR,aAE7CiL,IACAzM,EAASwS,KAAK7P,aAAe,CAACiF,QAAS4E,EAAc,EAAD,KAAKC,EAAgB7E,SAAO,IAAE6O,UAAWhK,EAAgBnhB,UAEjH,kBAEyBwG,EAAON,oBAAoB,CAC5CF,SAAAA,EACAyI,OAAQ,CACJ6F,iBAAiB,EAAAsN,EAAAA,8BAA6BlN,EAASwS,KAAKhR,gBAElE,OALU,KAANjF,EAAS,EAAH,MAMD3W,MAAO,CAAF,sBACN2W,EAAO3W,MAAK,QAKrB,OAHDoa,EAASwS,KAAKnG,kBAAoB,CAC9BqK,oBAAqBna,EAAOP,cAAc9G,GAC1CyhB,2BAA2B,GAC9B,mBACM,EAAArW,EAAAA,uBAAsB1B,EAAeoB,IAAS,QAElC,OAFkC,0BAErD/O,QAAQwL,IAAI,EAAD,IAAQ,mBACZ,EAAAgE,EAAAA,qBAAoB7B,EAAe,EAAF,KAAQ,2DAIxD,OAAO,kBAAMG,OACd,CACCqC,EACAtP,EACAR,EACAsR,IAGGwT,oIClGX,GADA,QACA,SACA,UACA,SACA,UAEMrY,GAAU,EAAA8C,EAAAA,aAAY,6BAEf+V,EAAgB,SAACpvB,GAAU,QACNA,EAAMyZ,QAA7BgG,EAAS,EAATA,UAAW/C,EAAQ,EAARA,SACdxT,EAAU,CACVwW,KAAM,UACN3C,OAAQ0C,EAAUthB,MAClBue,SAAUA,MAAAA,GAAc,QAAN,EAARA,EAAU1D,YAAI,WAAN,EAAR,EAAgB6D,cAC1BwS,qBAAsB,CAAC,OAAQ,SAOnC,OALwB,IAApB5P,EAAUthB,QACV+K,EAAU,CACNwW,KAAM,UAIV,gBAAC,EAAA/U,SAAQ,CAACL,OAAQkJ,EAAAA,WAAYtK,QAASA,GACnC,gBAAComB,EAAiBtvB,KAI7B,kBAED,IAAMsvB,EAAe,SAAH,GAUR,IARF7V,EAAO,EAAPA,QAEAF,GADQ,EAAR6M,SACiB,EAAjB7M,mBACA/K,EAAO,EAAPA,QACAkL,EAAQ,EAARA,SACA0B,EAAmB,EAAnBA,oBACA5B,EAAY,EAAZA,aAGGQ,IAFK,qHAEoBP,EAAzBO,aACA5C,GADyBqC,EAAZiD,SACoBlD,EAAjCpC,eACAmB,GADiCiB,EAAlB6B,eACNrB,EAATzB,OAeP,OAdA,EAAAgX,EAAAA,SAAQ,CACJhX,MAAAA,EACAgB,kBAAAA,EACA/K,QAAAA,EACAkL,SAAAA,EACA0B,oBAAAA,EACAhE,cAAAA,IASA,uBAAKmF,MAAO,CAACiT,QAAS,SAClB,gBAAC,EAAAte,eAAc,CAAChI,QARR,CACZgX,OAAQ,CACJC,eAAgB,CAACC,QAAS,UAE9BC,QAAS,CAAClE,SAAU,QAASmE,UAAW,eAShD,EAAA7D,EAAAA,8BAA6B,CACzB3Y,KAAMyS,EAAQ,QACd8D,eAAgB,SAACra,GACb,OAAO,GAEXwW,QAAS,gBAAC4Y,EAAa,MACvB1U,KAAM,gBAAC0U,EAAa,MACpBxU,SAAU,CACNC,eAAgBtE,EAAQ,kBACxBuE,eAAgBvE,EAAQ,kBACxBwE,SAAUxE,EAAQ,8FC1E1B,UACA,UACA,UACA,UACA,UAEA,UACA,UACA,UACA,UAAkD,2kBAElD,IACIkZ,EADElZ,GAAU,EAAA8C,EAAAA,aAAY,wBAExBqW,EAAkB,GAKhBC,EAAc,SAAH,GAAmC,IAA9B7S,EAAK,EAALA,MAAOJ,EAAQ,EAARA,SACrBkT,GAAY,EACVC,EAFoC,EAAPjT,QAG7BkT,EAAiBvZ,EAAQ,kBACzBwZ,EAAiBxZ,EAAQ,kBACzByZ,IAAmBF,EAAejvB,eAAe6b,IAAYoT,EAAepT,GAClF,GAAIsT,EAAkB,CAClB,IAAIC,EAAYD,MAAAA,OAAgB,EAAhBA,EAAmB,GAC9B3yB,MAAMC,QAAQ2yB,KACfA,EAAY,CAACA,IAEjBL,EAAYK,EAAUxuB,QAAQsuB,IAAmB,IAC5B,QAAbrT,IAAuBmT,GAAkBE,IAAmBF,IAC5D/S,GAAQkT,MAAAA,OAAgB,EAAhBA,EAAmB,KAAMlT,GAAQkT,MAAAA,OAAgB,EAAhBA,EAAmB,IAExE,OAAOJ,GAGLzZ,EAAqB,SAAH,GAAkB,IAAbI,EAAO,EAAPA,QAAO,GACE,EAAArL,EAAAA,UAAQ,GACtC6R,OAAQxG,EAAQ,aAChBmG,SAAUnG,EAAQ,YAClB2Z,eAAgB3Z,EAAQ,cAAc4Z,YACnCT,IACL,qBALKU,EAAS,KAAEC,EAAY,KAO9B,OA7BAZ,EA4BoBY,EAEhB,gBAAC,EAAA1lB,SAAQ,CAACL,OAAQ6H,EAAAA,WAAYjJ,QAASqN,EAAQ,mBAC3C,uBAAK5I,UAAU,oCACX,gBAAC,EAAA+D,+BAA8B,CAACxI,QAAO,OAChCqN,EAAQ,eACR,CACCwG,OAAQqT,EAAUrT,OAClBL,SAAU0T,EAAU1T,SACpBwT,eAAgBE,EAAUF,sBAQ5CI,EAAwB,SAAH,GAAmD,IAA9C9Z,EAAO,EAAPA,QAASiD,EAAO,EAAPA,QAAS0B,EAAY,EAAZA,aAAiBnb,GAAK,qDAC9DyW,EAAUD,EACTiJ,EAA+ChG,EAA/CgG,UAAW/C,EAAoCjD,EAApCiD,SAAwBE,EAAYnD,EAA1BO,YAAc4C,QAEpCE,GADkB3B,EAAjBkI,cACOrG,SAASyC,EAAUthB,OAAS,KAAH,IAAG,GAAMue,EAASoL,YACnDoI,EAAiBP,EAAY,CAAC7S,MAAAA,EAAOJ,SAAUA,EAAS1D,KAAM4D,QAAAA,IAWpE,OAVA,EAAA5U,EAAAA,YAAU,WACNynB,EAAiB,CACb1S,OAAQ0C,EAAUthB,MAClBue,SAAUA,EAAS1D,KACnBkX,eAAAA,MAEL,CACCzQ,EAAUthB,MACVue,EAAS1D,OAGT,gCACI,uBAAKrL,UAAU,2CACVuiB,GAAkB,uBAAKviB,UAAU,gDAC9B,uBAAKA,UAAU,sCACX,uBAAKkF,IAAK0D,EAAQ,gBAClB,0BAAI,EAAAwI,EAAAA,UAAQ,EAAA5J,EAAAA,IAAG,8FAA+F,sBAAuBoB,EAAQ,6BAGrJ,gBAACE,EAAO,OAASzW,GAAK,IAAEyZ,QAAAA,EAAS0B,aAAAA,QAM3CoV,EAAqB,SAAH,GAAoC,IAA/BplB,EAAI,EAAJA,KAClBmP,GADkC,EAAVkW,WAAmB,EAAPC,QACuCtlB,EAA3EmP,YAA+DsC,GAAYzR,EAA/DulB,kBAA+DvlB,EAA7BkM,eAAiBuF,SACnCF,GAAYpC,EAAxCqC,YAAwCrC,EAA3BC,eACdoW,EAAe3T,SAAS1C,EAAWqC,aACnCG,EAAQE,SAAS1C,EAAWqC,aAAe,KAAH,IAAI,GAAMrC,EAAWsW,qBACnE,OAAKjB,EAAY,CAAC7S,MAAAA,EAAOJ,SAAAA,EAAUE,QAAAA,IAI/B,gBAAC,EAAAiU,cAAa,KACV,gBAAC,EAAAlmB,SAAQ,CAACL,OAAQ6H,EAAAA,WAAYjJ,QAASqN,EAAQ,mBAC3C,uBAAK5I,UAAU,0EACX,gBAAC,EAAA+D,+BAA8B,CAACxI,QAAO,OAChCqN,EAAQ,eACR,CACCwG,OAAQ4T,EACRjU,SAAAA,EACAwT,eAAgBP,EAAY,CAAC7S,MAAAA,EAAOJ,SAAAA,EAAUE,QAAAA,WAX3D,MAoBXrG,OACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAACf,EAAkB,CACtBI,QAASA,IACb6D,WAAW,EAAAjF,EAAAA,IAAG,WAAY,sBAC1BwF,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAAS,YAAyC,IAAvCua,EAAQ,EAARA,SAAUxW,EAAU,EAAVA,WAAYN,EAAW,EAAXA,YACtC0C,EAA8CpC,EAA7DC,cAAyBqW,EAAoCtW,EAApCsW,oBAAqBjU,EAAerC,EAAfqC,YAC9CC,EAAW5C,EAAX4C,QACDE,EAAQE,SAASL,GAAe,KAAH,IAAI,GAAMiU,GACzCnB,EACAA,EAAiB,CACb1S,OAAQC,SAAS1C,EAAWqC,aAC5BD,SAAAA,EACAwT,eAAgBP,EAAY,CAAC7S,MAAAA,EAAOJ,SAAAA,EAAUE,QAAAA,MAGlD8S,EAAkB,CACd3S,OAAQC,SAAS1C,EAAWqC,aAC5BD,SAAAA,EACAwT,eAAgBP,EAAY,CAAC7S,MAAAA,EAAOJ,SAAAA,EAAUE,QAAAA,KAGtD,IAAMgT,EAAYD,EAAY,CAAC7S,MAAAA,EAAOJ,SAAAA,EAAUE,QAAAA,IAChD,OAAKgT,IAAckB,EAAS,mBAGrBlB,KAEXpZ,QAAS,gBAAC8Z,EAAqB,CAC3B9Z,QAASua,EAAAA,0BACTxa,QAASA,EACTya,mBAAoB,mCACxBtW,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,gBAW1B,EAAA0a,EAAAA,gBAAe,YAAa,CACxBC,OARW,WACX,OACI,gBAAC,EAAAC,sBAAqB,KAClB,gBAACZ,EAAkB,QAM3Ba,MAAO,sDCxKf,UACA,UACA,UACA,UACA,UAEM7a,GAAU,EAAA8C,EAAAA,aAAY,sBAExB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,SACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QAASua,EAAAA,0BACTC,mBAAoB,uBACpBza,QAASA,IACbmE,KAAM,gBAAC,EAAAF,cAAa,CAChBhE,QAASua,EAAAA,0BACTxa,QAASA,IACbqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,6CC5B9B,UACA,UACA,UACA,UAGMA,GAAU,EAAA8C,EAAAA,aAAY,0BAExB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,aACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QAASua,EAAAA,0BACTC,mBAAoB,2BACpBza,QAASA,IACbmE,KAAM,gBAAC,EAAAF,cAAa,CAChBhE,QAASua,EAAAA,0BACTxa,QAASA,IACbqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,6CC5B9B,UACA,UACA,UACA,UAEA,UAEMA,GAAU,EAAA8C,EAAAA,aAAY,oBAEtBgY,EAAoB,SAACrxB,GACvB,OACI,gCACI,gBAAC,EAAAwa,cAAkBxa,GACnB,uBAAK2N,UAAW,wCACXgI,wBAAyB,CAACC,OAAQ5V,EAAMuW,QAAQ,gBAK7DA,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,OACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC6a,EAAiB,CACvB7a,QAASua,EAAAA,0BACTxa,QAASA,EACTya,mBAAoB,4BACpB1T,UAAW9M,EAAAA,uBACfkK,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,2GCtC9B,UACA,UACA,UACA,aACA,UACA,UACA,UAA4E,2kBAG5E,IAAMA,GAAU,EAAA8C,EAAAA,aAAY,sBAqExB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,SACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QA9EyB,SAAH,GAAsC,IAAjC+C,EAAiB,EAAjBA,kBAAsBvZ,GAAK,yCACpC,EAAAkL,EAAAA,UAAS,IAAG,qBAA/BomB,EAAK,KAAEC,EAAQ,QACU,EAAArmB,EAAAA,WAAS,GAAM,qBAAxCsmB,EAAQ,KAAEC,EAAW,KACrB7X,EAAuBL,EAAvBK,oBACD8X,GAAW,EAAA9Z,EAAAA,cAAY,WACzB,MAAO,CACH+Z,OAAQ,CACJC,OAAQN,MAGjB,CAACA,IAiBJ,OAfA,EAAAtpB,EAAAA,YAAU,WACN,IAAMuP,EAAcqC,GAAoB,WACpC,OAAK0X,GAGE,EAAAxY,EAAAA,uBAAsB9Y,EAAMwZ,aAAapC,cAAe,CAC3D4T,KAAM,CACFnG,kBAAmB,CACfgN,wBAAyBP,OAL1B,EAAArY,EAAAA,qBAAoBjZ,EAAMwZ,aAAapC,eAAe,EAAAjC,EAAAA,IAAG,sCAAuC,0BAU/G,OAAO,kBAAMoC,OACd,CAACqC,EAAqB0X,IAErB,gCACI,uBAAK3jB,WAAW,EAAAmI,EAAAA,SAAW,iCAAkC,CACzD,YAAa0b,GAAYF,KAEzB,yBACIlkB,KAAK,OACLM,GAAG,0BACHU,SAAU,SAAAvM,GAAC,OAAI0vB,EAAS1vB,EAAE9B,OAAO5B,QACjC6P,QAAS,kBAAMyjB,GAAY,IAC3B3jB,OAAQ,kBAAM2jB,GAAY,MAC9B,yBAAOtU,QAAQ,4BAA2B,EAAAhI,EAAAA,IAAG,cAAe,0BAE/D,EAAA2c,EAAAA,eACD,uBAAKnkB,UAAU,iCACX,0BAAI,EAAAwH,EAAAA,IAAG,mBAAoB,uBAC3B,2BACI,qCAAmB,IAAM,+CAE7B,2BACI,sCAAoB,IAAM,sDAGhC,EAAA2c,EAAAA,eACF,uBAAKnkB,UAAU,iCACX,0BAAI,EAAAwH,EAAAA,IAAG,mBAAoB,uBAC3B,2BACI,qCAAmB,IACnB,6BAAO,EAAAA,EAAAA,IAAG,gCAAiC,wBAE/C,2BACI,sCAAoB,IACpB,6BAAO,EAAAA,EAAAA,IAAG,uCAAwC,yBAG1D,gBAAC,EAAA4b,2BAAyB,cAACW,SAAUA,GAAS,OAAS1xB,GAAU,CAACuZ,kBAAAA,QAiBlEhD,QAASA,EACTya,mBAAoB,yBACxBtW,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,6CChG9B,UACA,UACA,UACA,UACA,UAEMA,GAAU,EAAA8C,EAAAA,aAAY,mBAExB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,MACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QAASua,EAAAA,0BACTC,mBAAoB,oBACpB1T,UAAWrM,EAAAA,eACXsF,QAASA,IACbmE,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,6CC3B9B,UACA,UACA,UACA,UAEA,UAEMA,GAAU,EAAA8C,EAAAA,aAAY,mBAExB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,MACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QAASua,EAAAA,0BACTxa,QAASA,EACTya,mBAAoB,sBACpB1T,UAAWzM,EAAAA,iBACf6J,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,6CC5B9B,UACA,UACA,UACA,UAGMA,GAAU,EAAA8C,EAAAA,aAAY,uBAExB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,UACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QAASua,EAAAA,0BACTC,mBAAoB,wBACpBza,QAASA,IACbmE,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,6CC1B9B,UACA,UACA,UACA,UAGMA,GAAU,EAAA8C,EAAAA,aAAY,uBAExB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,UACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QAASua,EAAAA,0BACTxa,QAASA,EACTya,mBAAoB,0BACxBtW,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,gFC1B9B,oLACA,oLACA,+VCFA,UACA,UACA,UAA0F,2kBAwDzF,8BAtD0C,SAAH,GAUnC,IARGA,EAAO,EAAPA,QACAyD,EAAW,EAAXA,YACAT,EAAiB,EAAjBA,kBACAnC,EAAa,EAAbA,cACAgE,EAAmB,EAAnBA,oBACA4V,EAAkB,EAAlBA,mBAAkB,IAClBtQ,qBAAAA,OAAoB,IAAG,mBAAO,IAAG,EAG/BpW,GAAS,EAAAwH,EAAAA,aACRqF,EAA4EoC,EAA5EpC,qCAAsCwC,EAAsCJ,EAAtCI,mCACvCoY,GAAqB,EAAAhqB,EAAAA,QAAOiS,GAC5BkU,GAA2B,EAAAnmB,EAAAA,QAAO2Y,IACxC,EAAA1Y,EAAAA,YAAU,WACN+pB,EAAmB9pB,QAAU+R,IAC9B,CAACA,KAEJ,EAAAhS,EAAAA,YAAU,WACNkmB,EAAyBjmB,QAAUyY,IACpC,CAACA,KAEJ,EAAA1Y,EAAAA,YAAU,WACN,IAAM8hB,EAAwC3S,EAAoC,+CAAC,uGAAmB,GAAXK,EAAW,EAAXA,YACnFjB,EAAQ,UAAY6E,EAAmB,iBAEY,GAFZ,WAE/B4W,EAAQxa,EAAYwa,MAAM,mBACnB,CAAF,gBACmC,OADnC,EACuC1M,KAAKC,MAAMhV,OAAO0hB,KAAKC,mBAAmBF,EAAM,MAAvFna,EAAa,EAAbA,cAAesa,EAAU,EAAVA,WAAeC,GAAK,wDACrB9nB,EAAO0mB,GAAoBnZ,EAAe,CACzD/C,eAAgB,EAAF,CACVsD,iBAAiB,EAAAsN,EAAAA,8BAA6BqM,EAAmB9pB,UAC9DimB,EAAyBjmB,QAAQ8pB,EAAmB9pB,UAE3DkqB,WAAAA,IACF,OANQ,KAANpd,EAAS,EAAH,MAOC3W,MAAO,CAAF,sBACN,IAAIunB,EAAAA,YAAY5Q,EAAO3W,OAAM,QAEvCmS,OAAOvL,SAAWqtB,UAAUD,EAAME,oBAAoB,gCAG3C,OAH2C,0BAG1D7oB,QAAQwL,IAAI,EAAD,IAAI,mBACR,EAAAgE,EAAAA,qBAAoB7B,EAAe,KAAEhZ,QAAM,0DAG7D,mDAvBiF,IAwBlF,OAAO,kBAAM0rB,OACd,CACCxf,EACA6M,EACAwC,oKCxDR,UACA,UAMA,UACA,UA2FC,kBAzF8B,SAAH,GASlB,IAPFpD,EAAO,EAAPA,QACAkD,EAAO,EAAPA,QACAwL,EAAe,EAAfA,gBACArL,EAAmB,EAAnBA,oBACAxC,EAAa,EAAbA,cAAa,IACbmb,cAAAA,OAAa,IAAG,GAAK,MACrBvsB,QAAAA,OAAO,IAAG,GAAK,KAES,EAAAkF,EAAAA,WAAS,GAAM,qBAApCtK,EAAM,KAAE4xB,EAAS,QACM,EAAAtnB,EAAAA,WAAS,GAAM,qBAAtCunB,EAAO,KAAEC,EAAU,KACpBC,GAAgB,EAAA5qB,EAAAA,QAAO,CACzB0R,QAAAA,EACAwL,gBAAAA,IAEE3a,GAAS,EAAAwH,EAAAA,aACThI,GAAW,EAAA+H,EAAAA,gBACjB,EAAA7J,EAAAA,YAAU,WACN2qB,EAAc1qB,QAAU,CACpBwR,QAAAA,EACAwL,gBAAAA,MAIR,IAAM2N,GAAwB,EAAAhb,EAAAA,cAAY,WAAM,IACrC6B,EAAWkZ,EAAc1qB,QAAzBwR,QACAgG,EAAoChG,EAApCgG,UAAW/C,EAAyBjD,EAAzBiD,SAAU1C,EAAeP,EAAfO,YACxBtb,GAAO,EAAAm0B,EAAAA,sBAAqB,CAC5BzlB,KAAMmJ,EAAQ,eACdwG,OAAQ0C,EAAUthB,MAClB6b,YAAAA,EACA0C,SAAUA,EAAS1D,KACnB8Z,UAAWvc,EAAQ,eAKvB,OAHIgc,IACA7zB,EAAO6zB,EAAc7zB,EAAM,CAACsb,YAAAA,KAEzBtb,IACR,IAEGq0B,GAAiB,EAAAnb,EAAAA,cAAY,SAACob,GAChC,MAAO,CACHhI,KAAM,CACFnG,mBAAmB,EAAF,wBACTtO,EAAQ,QAAO,cAAeyc,OAI/C,IAuCH,OArCA,EAAAhrB,EAAAA,YAAU,WACN,IAAMuP,EAAcqC,GAAmB,6BAAC,8FAChChZ,EAAQ,CAAF,yCACC,EAAAkY,EAAAA,uBAAsB1B,EAAe2b,EAAenyB,EAAO8M,MAAI,oBAKlE1H,EAAS,CAAF,mBAEFysB,EAAS,CAAF,qBACF,EAAAtd,EAAAA,IAAG,oDAAqD,sBAAqB,uBAExE7K,EAAO2oB,aAAanpB,EAASgV,WAAW9Y,GAAU4sB,KAAwB,OAAzF7d,EAAS,EAAH,8CAESzK,EAAO2oB,aAAaL,KAAwB,QAA3D7d,EAAS,EAAH,iBAENA,EAAO3W,MAAO,CAAF,sBACN,IAAIunB,EAAAA,YAAY5Q,EAAO3W,OAAM,QAEd,OAAzBo0B,EAAUzd,EAAOnU,QAAQ,mBAClB,EAAAkY,EAAAA,uBAAsB1B,EAAe2b,EAAehe,EAAOnU,OAAO8M,MAAI,QAE5D,OAF4D,0BAE7EjE,QAAQwL,IAAI,EAAD,IAAM,mBACV,EAAAgE,EAAAA,qBAAoB7B,EAAe,KAAIhZ,OAAS,EAAJ,KAAQ,2DAGnE,OAAO,kBAAMmZ,OACd,CACC3W,EACAgZ,EACAtP,EACA8M,EACApR,EACAysB,EACAC,IAEG,CAACA,WAAAA,iIClGZ,UACA,UACA,UA2BC,sBAzBkC,SAAH,GAMtB,IAJF5Y,EAAU,EAAVA,WACA1C,EAAa,EAAbA,cAAa,IACbkG,UAAAA,OAAS,IAAG,OAAI,MAChB4V,IAAAA,OAAG,IAAG,KAAA/d,EAAAA,IAAG,oDAAqD,sBAAqB,KAEzD,EAAAjK,EAAAA,WAAS,GAAM,qBAAtCunB,EAAO,KAAEC,EAAU,KAiB1B,OAfA,EAAA1qB,EAAAA,YAAU,WACN,IAAMuP,EAAcuC,GAAW,WAC3B,QAAIwD,IAAcmV,KACP,EAAAxZ,EAAAA,qBAAoB7B,EAAe8b,MAIlD,OAAO,kBAAM3b,OACd,CACCuC,EACA2Y,EACAC,EACAtb,EACAkG,IAEG,CAACmV,QAAAA,EAASC,WAAAA,kCC5BrB,UACA,UACA,UACA,UAEA,UAEMnc,GAAU,EAAA8C,EAAAA,aAAY,qBAExB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,QACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QAASua,EAAAA,0BACTxa,QAASA,EACTya,mBAAoB,sBACpB1T,UAAWvM,EAAAA,mBACf2J,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,+BC5B9B,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,QACA,MACA,QACA,QACA,sCChBA,UACA,UACA,UACA,UAEA,UAEMA,GAAU,EAAA8C,EAAAA,aAAY,sBAcxB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,SACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAAS,YAAyC,IAAvCua,EAAQ,EAARA,SAAU9W,EAAW,EAAXA,YAAaM,EAAU,EAAVA,WACtDsC,EAAW5C,EAAX4C,QACeF,EAAYpC,EAA3BC,cACDuV,EAAiBgB,EAAS,kBAChC,MAAO,CAACpU,KAAaoT,GAAkBA,EAAepT,GAAUlT,SAASoT,MAE7EpG,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QA5BgB,SAACxW,GACzB,OACI,iCACK,EAAA8xB,EAAAA,eACD,uBAAKnkB,UAAU,8BACX,8BAAQ,EAAAwH,EAAAA,IAAG,gBAAiB,sBAAqB,KAAU,IAAM,uCAErE,gBAAC,EAAA4b,0BAA8B/wB,KAsB/BuW,QAASA,EACTya,mBAAoB,yBACxBtW,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,mOC5C9B,UACA,UACA,UACA,UACA,UAAiD,2kBAqChD,iBA9B6B,SAACua,GAAQ,IAAEY,EAAW,UAAH,8CAAQ,OAAK,YAAyC,IAAvC1X,EAAW,EAAXA,YAAaM,EAAU,EAAVA,WAAeta,GAAK,6CACtFua,EAAiBD,EAAjBC,cACAqC,EAAW5C,EAAX4C,QACDqT,EAAYa,EAAS,aACrB1jB,EAAO0jB,EAAS,oBAChBlW,EAAWkW,EAAS,YACtBzW,GAAiB,EACrB,GAAIyW,EAAS,WACTzW,GAAiB,MACd,CAEH,IAAI,EAAAqU,EAAAA,8BAA+B9T,EAASpR,SAAS,iBACjD,OAAO,EACJ,IAAI,EAAAilB,EAAAA,0BAA2B7T,EAASpR,SAAS,cACpD,OAAO,EAEPsnB,EAAS,cAActnB,SAAS+Q,KAE5BF,EADS,eAATjN,GACkB0jB,EAAS,mBAAmBtnB,SAASoT,GACvC,aAATxP,EACU0jB,EAAS,qBAAqBtnB,SAASoT,KAEvCqT,EAAU/yB,OAAS,IAAI+yB,EAAUzmB,SAASoT,IAG/D8U,GAAYrX,IACZA,EAAiBqX,EAAS,EAAD,CAAEZ,SAAAA,EAAU9W,YAAAA,EAAaM,WAAAA,GAAeta,KAGzE,OAAOqa,IASV,4BANwC,SAAH,GAA4B,IAAvB9D,EAAO,EAAPA,QAAYvW,GAAK,4BACxD,OACI,gBAAC,EAAA2K,SAAQ,CAACL,OAAQkJ,EAAAA,WAAYtK,QAASqN,EAAQ,mBAC3C,gBAAC4c,EAAwB,OAASnzB,GAAK,IAAEuW,QAAAA,OAWpD,4BANwC,SAACvW,GACtC,OACI,gBAAC,EAAA2K,SAAQ,CAACL,OAAQkJ,EAAAA,YACd,gBAAC4f,EAA6BpzB,KAK1C,IAAMozB,EAA2B,SAAH,GASpB,IAPF7c,EAAO,EAAPA,QACAkD,EAAO,EAAPA,QACA0B,EAAY,EAAZA,aACA3B,EAAY,EAAZA,aACAD,EAAiB,EAAjBA,kBAAiB,IACjBgZ,cAAAA,OAAa,IAAG,GAAK,MACrBvsB,QAAAA,OAAO,IAAG,GAAK,EAEZif,EAAmB9J,EAAnB8J,gBACArL,EAA2DL,EAA3DK,oBACAxC,GAD2DmC,EAAtCI,mCACYH,EAAjCpC,eAIAsb,GAJiClZ,EAAlB6B,gBAID,EAAAgY,EAAAA,iBAAgB,CACjC9c,QAAAA,EACAkD,QAAAA,EACAwL,gBAAAA,EACArL,oBAAAA,EACAxC,cAAAA,EACAmb,cAAAA,EACAvsB,QAAAA,IAPG0sB,YAUP,OAAI1sB,EAEI,gBAACstB,EAA4B,CACzBxvB,KAAMyS,EAAQ,QACdrN,QAASqN,EAAQ,yBACjBnI,SAlBK,SAACgC,GACdsiB,EAAWtiB,EAAMuO,WAkBT3Y,QAASA,IAGd,MAGLmtB,EAA2B,SAAH,GAUpB,IARF5c,EAAO,EAAPA,QACAkD,EAAO,EAAPA,QACAD,EAAY,EAAZA,aACAD,EAAiB,EAAjBA,kBACA6B,EAAmB,EAAnBA,oBAAmB,IACnB4V,mBAAAA,OAAkB,IAAG,OAAI,MACzB1T,UAAAA,OAAS,IAAG,OAAI,MAChBoU,SAAAA,OAAQ,IAAG,OAAI,EAEb5nB,GAAW,EAAA+H,EAAAA,eACVmI,EAAeP,EAAfO,YACAJ,EAA2DL,EAA3DK,oBAAqBD,EAAsCJ,EAAtCI,mCACrBvC,EAAiCoC,EAAjCpC,cAAeiE,EAAkB7B,EAAlB6B,eAChBqF,GAAuB,EAAA9I,EAAAA,cAAY,SAACoC,GACtC,OAAIsD,GACO,EAAP,cACK/G,EAAQ,eAAiBzM,EAASgV,WAAWxB,IAE3CoU,EACAA,EAAS1X,GAEb,KACR,CACClQ,EACA4nB,IAEGgB,GAAc,EAAAa,EAAAA,qBAAoB,CACjCzZ,WAAYF,EACZxC,cAAAA,EACAkG,UAAAA,IAHDoV,WAqBP,OAdA,EAAAc,EAAAA,6BAA4B,CACxBjd,QAAAA,EACAyD,YAAAA,EACAT,kBAAAA,EACAnC,cAAAA,EACAgE,oBAAAA,EACA4V,mBAAAA,EACAtQ,qBAAAA,KAEJ,EAAA7G,EAAAA,yBAAwB,CACpBzC,cAAAA,EACA0C,WAAYH,EACZmC,eAAgBT,EAAeoY,UAE/BnW,EAGI,gBAACgW,EAA4B,CACzBxvB,KAAMyS,EAAQ,QACdrN,QAASqN,EAAQ,yBACjBnI,SALS,SAACgC,GAAK,OAAKsiB,GAAYtiB,EAAMqN,QAMtCzX,QAASsX,EACToU,SAAUA,IAGf,MAGL4B,EAA+B,SAAH,GAAqD,IAAhDxvB,EAAI,EAAJA,KAAMsK,EAAQ,EAARA,SAAUpI,EAAO,EAAPA,QAASkD,EAAO,EAAPA,QAAYlJ,GAAK,wDACvE8gB,EAAM9a,EACZ,OACI,uBAAK2H,UAAS,4CAAuC7J,EAAI,YAAIgd,EAAIrW,cAC7D,gBAACqW,GAAG,cAAC5X,QAASA,EAASkF,SAAUA,GAAcpO,oCCpK3D,UACA,UACA,UACA,UAGMuW,GAAU,EAAA8C,EAAAA,aAAY,0BAExB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,aACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CAAChE,QAASkd,EAAAA,0BAA2Bnd,QAASA,IACrEmE,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASkd,EAAAA,0BAA2Bnd,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,6CCvB9B,UACA,UACA,UACA,UAIMA,GAFN,SAEgB,EAAA8C,EAAAA,aAAY,qBAExB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,OACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QAASua,EAAAA,0BACTxa,QAASA,EACTya,mBAAoB,uBACxBtW,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,6CC3B9B,UACA,UACA,UACA,UAEA,UAEMA,GAAU,EAAA8C,EAAAA,aAAY,mBAExB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,MACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QAASua,EAAAA,0BACTxa,QAASA,EACTya,mBAAoB,oBACpB1T,UAAWtM,EAAAA,iBACf0J,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,mCCpBFiE,YAR5B,UACA,UACA,UACA,UACA,UAEMjE,GAAU,EAAA8C,EAAAA,aAAY,oBAYtBsa,GAVsBnZ,EAUiBA,EAAAA,cAVC,SAACxa,GAC3C,OACI,gCACI,gBAACwa,EAAkBxa,GACnB,uBAAK2N,UAAW,wCACXgI,wBAAyB,CAACC,OAAQ5V,EAAMuW,QAAQ,iBAO7DA,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,OACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAACmd,EAAiB,CACvBnd,QAASua,EAAAA,0BACTxa,QAASA,EACTya,mBAAoB,0BACpB1T,UAAWxM,EAAAA,cACf4J,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,6CCvC9B,UACA,UACA,UACA,UAEMA,GAAU,EAAA8C,EAAAA,aAAY,sBAMxB9C,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,SACXO,sBAAuBpE,EAAQ,yBAC/B8D,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CACnBhE,QAASua,EAAAA,0BACTC,mBAAoB,uBACpBza,QAASA,EACTmb,SAlBgB,SAAC1X,GACzB,MAAO,CAAC4Z,OAAQ,CAAChX,QAAS5C,EAAY4C,aAkBlClC,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASua,EAAAA,0BAA2Bxa,QAASA,IAClEqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,2GC9B9B,UACA,UACA,UAaA,UACA,UACA,UACA,UACA,UAGA,UAEMA,GAAU,EAAA8C,EAAAA,aAAY,sBAEtBwa,EAAkB,SAAC7zB,GACrB,OACI,gBAAC,EAAA2K,SAAQ,CAACL,OAAQkJ,EAAAA,YACd,gBAACsgB,EAAwB9zB,KAK/B8zB,EAAsB,SAAH,GAQf,IANFvd,EAAO,EAAPA,QACAkD,EAAO,EAAPA,QAEAD,GADY,EAAZ2B,aACY,EAAZ3B,cACAD,EAAiB,EAAjBA,kBACAtD,EAAU,EAAVA,WAEE8d,EAAO/W,SAASzG,EAAQ,WACvBa,EAAiBoC,EAAjBpC,cACAwC,EAA6DL,EAA7DK,oBAAqBzC,EAAwCoC,EAAxCpC,qCACrBgQ,EAAwBlR,EAAxBkR,qBAAoB,GACG,EAAAoM,EAAAA,qBAAoB,CAC9CzZ,WAAYP,EAAkBK,oBAC9BxC,cAAeoC,EAAapC,cAC5B8b,KAAK,EAAA/d,EAAAA,IAAG,qDAAsD,wBAHlDud,GAAF,EAAPD,QAAmB,EAAVC,YAAU,EAMuBW,EAAgB,CAC7D9c,QAAAA,EACAkD,QAAAA,EACArC,cAAAA,EACA0C,WAAYF,IAJThZ,EAAM,EAANA,OAAQxC,EAAK,EAALA,MAAO41B,EAAuB,EAAvBA,wBA8BtB,OAlBA,EAAAhsB,EAAAA,YAAU,WACN,IAAMuP,EAAcJ,GAAqC,WAErD,OADA6c,KACO,EAAAlb,EAAAA,uBAAsB1B,MAEjC,OAAO,kBAAMG,OACd,CACC3W,EACAuW,EACA6c,KAGJ,EAAAhsB,EAAAA,YAAU,WACFpH,GACA8xB,GAAW,KAEhB,CAAC9xB,IAEAA,EAEI,gBAACqzB,EAAe,CAACpe,KAAMjV,EAAOszB,OAAOC,YAAazY,MAAOqY,EAAMK,OAAQL,IAEpE31B,EAEH,uBAAKuP,UAAU,2BACX,gBAACwZ,EAAoB,CAACzE,cAAc,EAAAmD,EAAAA,iBAAgBznB,OAKvD,EAAA0mB,EAAAA,gBAAerL,EAAQO,aAIzB,MAHQ,EAAA7E,EAAAA,IAAG,mFAAoF,uBAMpG8e,EAAkB,SAAH,GAQX,IANFpe,EAAI,EAAJA,KAAI,IACJ6F,MAAAA,OAAK,IAAG,MAAG,MACX0Y,OAAAA,OAAM,IAAG,MAAG,MACZC,UAAAA,OAAS,IAAG,YAAS,MACrBC,WAAAA,OAAU,IAAG,YAAS,MACtBC,aAAAA,OAAY,IAAG,EAAAC,OAAOC,aAAaC,EAAC,EAElC/d,GAAK,EAAA5O,EAAAA,UAWX,OAVA,EAAAC,EAAAA,YAAU,WACN,IAAIwsB,OAAO7d,EAAG1O,QAAS,CACnB4N,KAAAA,EACA6F,MAAAA,EACA0Y,OAAAA,EACAC,UAAAA,EACAC,WAAAA,EACAC,aAAAA,MAEL,CAAC5d,IAEA,gCACI,uBAAKjJ,GAAG,yBAAyB5F,IAAK6O,KACrC,EAAAmb,EAAAA,eAAgB,0BACZ,EAAA3c,EAAAA,IAAG,sDAAuD,yBAE7D,EAAA2c,EAAAA,eAAgB,0BACb,EAAA3c,EAAAA,IAAG,qFAAsF,yBAMpGke,EAAkB,SAAH,GAMX,IAJF9c,EAAO,EAAPA,QACAkD,EAAO,EAAPA,QACArC,EAAa,EAAbA,cACA0C,EAAU,EAAVA,WAEExP,GAAS,EAAAwH,EAAAA,aAAY,GACD,EAAAwJ,EAAAA,kBAAgB,qBAAnCld,EAAK,KAAEoiB,EAAQ,QACM,EAAAtV,EAAAA,WAAS,EAAAof,EAAAA,cAAa,kBAAiB,qBAA5D1pB,EAAM,KAAE4xB,EAAS,KAClBmC,GAAwB,EAAA5sB,EAAAA,QAAO,MAC9B0X,EAAoChG,EAApCgG,UAAWzF,EAAyBP,EAAzBO,YAAa0C,EAAYjD,EAAZiD,UAE/B,EAAA1U,EAAAA,YAAU,WACN,IAAMuP,EAAcuC,GAAW,WAC3B,OAAO,EAAAhB,EAAAA,uBAAsB1B,EAAe,CACxC4T,KAAM,CACFnG,mBAAmB,EAAF,wBACTtO,EAAQ,QAAO,cAAe3V,EAAO8M,UAKzD,OAAO,kBAAM6J,OACd,CAAC3W,EAAQkZ,IAEZ,IAAMmZ,GAAe,EAAArb,EAAAA,cAAW,6BAAC,sGAGpBxZ,KAAS,EAAA0mB,EAAAA,gBAAe9K,GAAY,gCAClB1P,EAAO2oB,cAAa,EAAAJ,EAAAA,sBAAqB,CACxDzlB,KAAMmJ,EAAQ,eACdwG,OAAQ0C,EAAUthB,MAClB6b,YAAAA,EACA0C,SAAUA,EAAS1D,KACnB8Z,UAAWvc,EAAQ,gBACpB,OANO,KAANxB,EAAS,EAAH,MAOC3W,MAAO,CAAF,qBACN,IAAIunB,EAAAA,YAAY5Q,EAAO3W,OAAM,OAEvCo0B,EAAUzd,EAAOnU,SACjB,EAAA4pB,EAAAA,cAAa,gBAAiBzV,EAAOnU,QAAQ,yDAGjD6I,QAAQwL,IAAI,UAAW,EAAF,IACrBuL,EAAS,KAAIpiB,OAAO,0DAEzB,CACCkM,EACA1J,EACA6e,EAAUthB,MACV6b,EACA0C,EACAte,IAEE41B,GAA0B,EAAApc,EAAAA,cAAY,YACxC,EAAA+W,EAAAA,iBAAgB,mBACjB,IAcH,OAZA,EAAA3mB,EAAAA,YAAU,WACFsC,IAAW1J,IAEXg0B,aAAaD,EAAsB1sB,SACnC0sB,EAAsB1sB,QAAU4sB,WAAW5B,EAAc,QAE9D,CACC3oB,EACA1J,EACAqyB,IAGG,CAACryB,OAAAA,EAAQ4xB,UAAAA,EAAWp0B,MAAAA,EAAO41B,wBAAAA,IAIlCzd,MACA,EAAA4D,EAAAA,uBAAsB,CAClBrW,KAAMyS,EAAQ,QACdW,MAAO,gBAAC,EAAAf,mBAAkB,CACtBJ,MAAOQ,EAAQ,SACf/B,cAAe+B,EAAQ,QACvBP,MAAOO,EAAQ,UACnB6D,UAAW,SACXC,gBAAgB,EAAAA,EAAAA,gBAAe9D,GAC/BC,QAAS,gBAAC,EAAAgE,cAAa,CAAChE,QAASqd,EAAiBtd,QAASA,IAC3DmE,KAAM,gBAAC,EAAAF,cAAa,CAAChE,QAASqd,EAAiBtd,QAASA,IACxDqE,SAAU,CACNC,gBAAgB,EAChBC,gBAAgB,EAChBC,SAAUxE,EAAQ,+BChO9B,QAEA,0ECFA,UACA,UACA,UACA,UACA,UASMA,GAAU,EAAA8C,EAAAA,aAAY,+BAEtByb,EAAwB,SAAC90B,GAC3B,OACI,uBAAK2N,UAAU,uCACX,gBAAC,EAAAhD,SAAQ,CAACL,OAAQkJ,EAAAA,YACd,gBAACuhB,EAAyB/0B,MAMpC+0B,EAAuB,SAAH,GAYhB,IAVFxe,EAAO,EAAPA,QACA/H,EAAO,EAAPA,QACA0M,EAAO,EAAPA,QACAzB,EAAO,EAAPA,QACA0B,EAAY,EAAZA,aACA5B,EAAiB,EAAjBA,kBACAC,EAAY,EAAZA,aACAE,EAAQ,EAARA,SACA0B,EAAmB,EAAnBA,oBAGGxB,IAFK,6IAEkBL,EAAvBK,qBACAxC,EAAiCoC,EAAjCpC,cAAeiE,EAAkB7B,EAAlB6B,eAChB/Q,GAAS,EAAAwH,EAAAA,aAAY,GACX,EAAAwJ,EAAAA,kBAATld,GAAyB,kBAApB,GAENmd,GAAiB,EAAAC,EAAAA,sBACvB,EAAAC,EAAAA,2BAA0B,CAAC3G,eAAgByB,EAAQ,QAASmF,MAAO,MAAM,IAClEC,GAAoB,EAAAC,EAAAA,yBAAwB,CAC/CrF,QAAAA,EACAkD,QAAAA,EACA0B,aAAAA,EACAvB,oBAAAA,EACAJ,aAAAA,EACApb,MAAAA,EACAsb,SAAAA,EACA0B,oBAAAA,EACAG,eAAAA,IATGI,kBAWP,EAAAE,EAAAA,2BAA0B,CACtBtF,QAAAA,EACAgD,kBAAAA,EACAnC,cAAAA,EACAgE,oBAAAA,EACAU,eAAgBT,EAAeU,mBAChC,IACIC,GAAkB,EAAAC,EAAAA,mBAAkB,CACvC1F,QAAAA,EACA2E,QAAAA,EACA5Q,OAAAA,EACAmP,QAAAA,EACA0B,aAAAA,EACA5B,kBAAAA,EACAoC,iBAAAA,EACAJ,eAAAA,EACAW,OA9BW,SAACnH,GAAM,OAAe,MAAVA,IAAmBA,EAAOoH,YAqB9CH,eAYD9S,GAAU,EAAA8B,EAAAA,UAAQ,WACpB,MAAO,CACHgR,eAAAA,EACAO,MAAO,CACHyY,qBAAsBze,EAAQ,4BAGvC,CAACyF,IAEJ,OAAIA,EAEI,gBAAC,EAAA7K,4BAA2B,CAACjI,QAASA,EAASsF,QAASA,IAGzD,MAGLymB,EAAqB,SAAH,GAAY,EAAP1e,SAAiB,4BAAM,IAC1C2e,GAAS,EAAAntB,EAAAA,UAYf,OAXA,EAAAC,EAAAA,YAAU,WACN,IAAMmtB,EAAQ5kB,OAAO6kB,iBACrBF,EAAOjtB,QAAQyT,MAAQ,GAAKyZ,EAC5BD,EAAOjtB,QAAQmsB,OAAS,GAAKe,EAC7B,IAAI1pB,EAAMypB,EAAOjtB,QAAQotB,WAAW,MACpC5pB,EAAI0pB,MAAMA,EAAOA,GACjB1pB,EAAI6pB,YACJ7pB,EAAI8pB,IAAI,GAAI,GAAI,GAAI,EAAG,EAAIC,KAAKC,IAChChqB,EAAIiqB,UAAY,UAChBjqB,EAAIkqB,UAGJ,uBAAKhoB,UAAU,gCACX,uBAAKA,UAAW,kBACZ,uCACA,0BAAQA,UAAU,4BAA4B7F,IAAKotB,IACnD,qBAAGvnB,UAAW,8BAM9B,EAAA8O,EAAAA,8BAA6B,CACzB3Y,KAAMyS,EAAQ,QACd8D,eAAgB,YAAkB,IAAhBC,EAAU,EAAVA,WACd,GAAI/D,EAAQ,WACR,OAAO,EACV,IACqBmG,EAAyBpC,EAAxCC,cAAyBoC,EAAerC,EAAfqC,YAChC,OAAO,EAAAtC,EAAAA,gBAAe,CAClBuC,QAASrG,EAAQ,eACjBmG,SAAUA,EAASG,cACnBC,MAAO,CACH5F,MAAOX,EAAQ,cACfwG,OAAQC,SAASL,MAEtB,SAAC5H,GAAM,OAAe,MAAVA,IAAmBA,EAAOoH,aAE7C3F,QAAS,gBAACse,EAAqB,CAACve,QAASA,IACzCmE,KAAM,gBAACua,EAAkB,CAAC1e,QAASA,IACnCqE,SAAU,CACNC,eAAgBtE,EAAQ,kBACxBuE,eAAgBvE,EAAQ,kBACxBwE,SAAUxE,EAAQ,6ICzI1B,UACA,UACA,UA2BiC,UAzBN,SAAH,GAMd,IAJFgD,EAAiB,EAAjBA,kBACAC,EAAY,EAAZA,aACAjD,EAAO,EAAPA,QAAO,IACP5B,OAAAA,OAAM,IAAG,qBAAkB,EAExBwC,EAA4EoC,EAA5EpC,qCAAsCwC,EAAsCJ,EAAtCI,mCACtCvC,EAAiBoC,EAAjBpC,eACP,EAAAyC,EAAAA,yBAAwB,CACpBzC,cAAAA,EACA0C,WAAYH,EACZmC,eAAgBtC,EAAa6B,eAAe4E,WAEhD,IAAM2V,GAAsB,EAAAhe,EAAAA,aAAW,+CAAC,2FAAmB,OAAXJ,EAAW,EAAXA,YAAW,UAC1C,EAAAuS,EAAAA,kBAAiB,CAACvS,YAAAA,EAAajB,QAAAA,EAASa,cAAAA,EAAezC,OAAAA,IAAQ,mFAC/E,mDAFsC,GAEpC,IAMH,OAJA,EAAA3M,EAAAA,YAAU,WACN,IAAMuP,EAAcJ,EAAqCye,GACzD,OAAO,kBAAMre,OACd,CAACJ,EAAsCye,IACnC,6/BC1BX,UACA,UACA,aACA,UAAoF,ylDAE7C,EAAArO,EAAAA,YAAW,qBAA3ChG,EAAc,EAAdA,eAAgBsU,EAAY,EAAZA,aACjBhd,GAAW,EAAA0O,EAAAA,YAAW,uBACtBuO,GAAgB,EAAAvO,EAAAA,YAAW,gBAAiB,IAE5CwO,EAAwB,kBAExBC,GAAS,EAAAzO,EAAAA,YAAW,qBAAqByO,OAEzCC,EAAkB,GAElBC,EAAsB,GAItBC,EAAmC,CACrClH,UAAW,SAAC7O,EAAStc,GAGjB,OAFAsc,EAAQ/H,WAAavU,EAAKylB,MAAM,KAAK1lB,MAAM,GAAI,GAAG2lB,KAAK,KACvDpJ,EAAQ9H,UAAYxU,EAAKylB,MAAM,KAAKE,MAC7BrJ,GAEXqN,UAAW,SAACrN,EAAStc,GAGjB,OAFAsc,EAAQ/H,WAAavU,EAAKylB,MAAM,KAAK1lB,MAAM,GAAI,GAAG2lB,KAAK,KACvDpJ,EAAQ9H,UAAYxU,EAAKylB,MAAM,KAAKE,MAC7BrJ,GAEXxD,QAAS,UACTwZ,YAAa,SAAChW,EAASjiB,GAOnB,OANIA,EAAM,KACNiiB,EAAQiW,UAAYl4B,EAAM,IAE1BA,EAAM,KACNiiB,EAAQkW,UAAYn4B,EAAM,IAEvBiiB,GAEXmW,MAAO,YACPC,MAAO,YACPC,KAAM,OACNC,OAAQ,QACRzV,MAAO,QACP9B,WAAY,WACZwX,YAAa,WACbjJ,WAAY,QACZC,WAAY,SAGHxb,EAAa,IAAI7T,SAAQ,SAACV,EAASC,IAC5C,EAAA2V,EAAAA,YAAW+N,EAAgBsU,GAAct3B,MAAK,SAAA+L,GAC1C1M,EAAQ0M,MACT0K,OAAM,SAAAnW,GACLjB,EAAQ,CAACQ,MAAOS,UAErB,eAIF,yBAFqC,SAAH,GAAuB,IAAlB6O,EAAE,EAAFA,GAAO1N,GAAK,uBAChDi2B,EAAgBvoB,GAAM1N,GAKzB,oBAFgC,SAAC0N,GAC9B,OAAOuoB,EAAgBp1B,eAAe6M,GAAMuoB,EAAgBvoB,GAAM,IAG/D,IAAMgH,EAAW,SAACkiB,GACrB,OAAOZ,MAAAA,GAAAA,EAASY,GAASZ,EAAOY,GAASntB,QAAQwL,IAAI,GAAD,OAAI2hB,EAAK,2BAChE,aAEM,IAAM9d,EAAwB,SAAC1B,GAA6B,IAAdxC,EAAO,UAAH,6CAAG,GACxD,OAAO,EAAP,CAAQxH,KAAMgK,EAAcyf,SAAYjiB,IAG5C,0BAMO,IAAMqE,EAAsB,SAAC7B,EAAehZ,GAAwB,IAAjB8K,EAAU,UAAH,6CAAG,GAChE,OAAO,EAAP,CAAQkE,KAAMgK,EAAc2W,MAAOC,QAASnI,EAAgBznB,IAAW8K,IAG3E,wBAIO,IAAM2c,EAAkB,SAACznB,GAC5B,MAAoB,iBAATA,EACAA,EAEPA,MAAAA,GAAAA,EAAO4a,MAAP5a,MAAeya,GAAAA,EAAWza,EAAM4a,MACzBH,EAASza,EAAM4a,MAEtB5a,MAAAA,GAAAA,EAAOwnB,WACA/M,MAAAA,GAAAA,EAAWza,EAAMwnB,YAAc/M,EAASza,EAAMwnB,YAAcxnB,EAAM04B,cAEtE14B,EAAM4vB,SAGjB,oBAIO,IAAMtI,EAA+B,SAACrO,GACzC,IAAIe,EAAkB,CAClBtU,KAAM,GAAF,OAAKuT,EAAegB,WAAU,YAAIhB,EAAeiB,WACrD8H,QAAS,CACLqW,KAAMpf,EAAeof,MAAQ,KAC7B7Z,QAASvF,EAAeuF,SAAW,KACnC2Z,MAAOlf,EAAegf,WAAa,KACnCG,MAAOnf,EAAeif,WAAa,KACnCK,YAAatf,EAAe+H,UAAY,KACxC6B,MAAO5J,EAAe4J,OAAS,OASvC,OANI5J,MAAAA,GAAAA,EAAgByM,QAChB1L,EAAgB0L,MAAQzM,EAAeyM,OAEvCzM,MAAAA,GAAAA,EAAgBkB,QAChBH,EAAgBG,MAAQlB,EAAekB,OAEpCH,GACV,iCAOA,cAL0B,SAACtU,GAAI,OAAK,SAAC9F,GAClC,OAAIA,GACO,EAAAupB,EAAAA,YAAWzjB,GAAM9F,IAErB,EAAAupB,EAAAA,YAAWzjB,KACrB,IAEY6hB,EAAW,mCAnI4D,IAmI5D,GAnI4D,EAmI5D,EAnI4D,kbAoIhF,WAAYvnB,GAAO,MAEI,OAFJ,sBACf,cAAMA,EAAM4vB,UACP5vB,MAAQA,EAAM,EACtB,SAJmB,EAInB,aAJ4B+G,QAOjC,gBAKO,IAAM4d,EAAU,SAAC5kB,GACpB,MAAqB,iBAAVA,EACgB,GAAhBA,EAAMjB,QAAwB,IAATiB,EAE5Bd,MAAMC,QAAQa,GACS,GAAhBoH,MAAMrI,OAEI,YAAjB,aAAOiB,IAC6B,GAA7BkC,OAAO0C,KAAK5E,GAAOjB,QAMjC,YAMD,wBAJqC,SAACiB,EAAOgqB,GACzC,OAAOhqB,EAAQ,KAAH,IAAG,GAAMgqB,IAkBxB,iBAV6B,SAAC/H,GAE3B,IAFqD,IAAjB2W,EAAU,UAAH,6CAAG,GACxC7W,EAAS8W,EAAgB5W,EAAQxD,SACvC,MAA2Bvc,OAAO42B,QAAQ7W,GAAQ,eAAE,6BAAxCpiB,EAAG,KAAEG,EAAK,KAClB,IAAK44B,EAAQvtB,SAASxL,IAAlB,MAA0BkiB,GAAAA,EAASliB,IAAQkiB,EAAOliB,GAAKk5B,UACnDnU,EAAQ5kB,GACR,OAAO,EAInB,OAAO,GAGJ,IAAM64B,EAAkB,SAACpa,GAC5B,IAAIua,EAAe,EAAH,GAAOrB,EAAcsB,SAarC,OAZIxa,GAAAA,MAAWkZ,GAAAA,EAAgBlZ,KAC3Bua,EAAe92B,OAAO42B,QAAQnB,EAAclZ,IAAUvT,QAAO,SAACguB,EAAQ,GAAiB,yBAAhBr5B,EAAG,KAAEG,EAAK,KAE7E,OADAk5B,EAAOr5B,GAAO,EAAH,KAAOq5B,EAAOr5B,IAASG,GAC3Bk5B,IACRF,GACH,CAAC,QAAS,iBAAkB,SAAShwB,SAAQ,SAAAnJ,GACzC,IAAImI,EAAOwM,SAASkY,eAAe7sB,GAC/BmI,IACAgxB,EAAan5B,GAAO,CAACk5B,SAAU/wB,EAAK+wB,eAIzCC,GAGX,oBASC,kBAH8B,SAACG,GAA2B,IAApB1a,EAAU,UAAH,8CACpCsD,EAAS8W,EAAgBpa,GAC/B,MAAO,CAAC0a,KAAUpX,GAAUA,EAAOoX,GAAOJ,UAU7C,4BAPwC,SAACxpB,GACtC,IAAMqH,EAASrH,EAAGskB,MAAM+D,GACxB,GAAIhhB,EAAQ,KACEwiB,EAAuBxiB,EAA1B,GACP,MAAO,CAD0BA,EAAX,GACRwiB,GAElB,MAAO,IASX,mBANgC,SAAC1U,GAC7B,OAAOA,EAAcnN,KAAI,SAAAmT,GACrB,OAAOA,EAAKD,eAAe1rB,OAAS,KACrC6J,OAAOywB,SAASt6B,OAAS,GAU/B,iBAF6B,SAACu6B,GAC3B,OAAOA,EAAa,GAGxB,IAYa1N,EAAgB,+CAAG,6HAUuB,GAR/CvS,EAAW,EAAXA,YACAJ,EAAa,EAAbA,cACAtT,EAAI,EAAJA,KAAI,IACJ6Q,OAAAA,OAAM,IAAG,qBAAkB,MAC3BqV,kBAAAA,OAAiB,IAAG,GAAK,MACzBpV,KAAAA,OAAI,IAAG,KAAE,aAGLod,EAAQxa,EAAYwa,MAAM,mBACnB,CAAF,gBACwC,OADxC,EAC4C1M,KAAKC,MAAMhV,OAAO0hB,KAAKC,mBAAmBF,EAAM,MAA5F5kB,EAAI,EAAJA,KAAMyK,EAAa,EAAbA,cAAeC,EAAQ,EAARA,SAAUC,EAAS,EAATA,UAAS,SACxB5F,EAAU,OAAnB,GAAN7H,EAAS,EAAH,KAEC,WAAT8C,EAAiB,kCACF9C,EAAOqK,GAAQkD,GAAc,QAA5C9C,EAAS,EAAH,8CAESzK,EAAO+jB,iBAAiBxW,GAAc,QAArD9C,EAAS,EAAH,iBAENA,EAAO3W,MAAO,CAAF,yCACL6a,EAAoB7B,EAAerC,EAAO3W,QAAM,QAG2B,OAAtFwW,EAAO,EAAH,KAAOA,GAAI,kBAAEkD,SAAAA,EAAUC,UAAAA,GAAS,UAAMjU,EAAI,oBAAqBkmB,IAAmB,WACjE,EAAAvV,EAAAA,SAAS,CAC1BrI,IAAKsI,EAAS,mBACdC,OAAQ,OACRC,KAAAA,IACF,QAJU,KAAR4D,EAAW,EAAH,MAKCK,SAAU,CAAF,yCACVI,EAAoB7B,EAAeoB,EAASK,WAAS,iCAEzDC,EAAsB1B,EAAe,CACxCI,YAAagB,EAASO,YACxB,iCAEKD,EAAsB1B,IAAc,gCAG9B,OAH8B,0BAG/C3N,QAAQwL,IAAI,EAAD,IAAM,kBACVgE,EAAoB7B,EAAe,EAAF,KAAM,0DAErD,gBA3C4B,sCA6C7B,qBAoBA,gBAf6B,WAAH,IAAIsgB,EAAmB,UAAH,6CAAGvB,EAAgC,OAAK,SAAC/V,GAAuB,IAAd1hB,EAAO,UAAH,6CAAG,GAC7Fi5B,EAAc,GACpBvX,EAAU,EAAH,KAAOA,GAAYwX,EAAkBl5B,IAC5C,IAAK,IAAL,MAA2B2B,OAAO42B,QAAQS,GAAiB,eAAE,+BAAnD15B,EAAG,KAAE65B,EAAO,KACP,QAAX,EAAIzX,SAAO,OAAP,EAAUpiB,KACa,mBAAZ65B,EACPA,EAAQF,EAAavX,EAAQpiB,IAE7B25B,EAAYE,GAAWzX,EAAQpiB,IAI3C,OAAO25B,IAgBX,yBARsC,SAACvX,GAA+D,IAE5E,EAFsBF,EAAS,UAAH,6CAAG,CAAC,OAAQ,WAAY,QAAS,WAC7EgN,EAAsB,GAAG,IACfhN,GAAM,IAAtB,IAAK,EAAL,qBAAwB,KAAfliB,EAAG,QACRkvB,EAAoBlvB,GAAOoiB,EAAQpiB,IACtC,8BACD,OAAOkvB,GAQJ,IAAM0K,EAAoB,SAACE,GAC9B,OAAOz3B,OAAO0C,KAAK+0B,GAAQ/wB,QAAO,SAAA/I,GAAG,OAAIw5B,QAAQM,EAAO95B,OAAOqL,QAAO,SAAC5I,EAAKzC,GAAG,cACxEyC,GAAG,oBACLzC,EAAM85B,EAAO95B,OACd,KACP,sBAEM,IAAMorB,EAAc,SAACd,EAAOZ,GAAiB,SACyB,EAAAqQ,EAAAA,aAAYrQ,GAA9EsQ,EAAM,EAANA,OAAQC,EAAM,EAANA,OAAQC,EAAgB,EAAhBA,iBAAkBpQ,EAAS,EAATA,UAAWqQ,EAAiB,EAAjBA,kBACpD,GAAa,IAAT7P,QAAyBxpB,IAAVwpB,EACf,OAAOA,EAGXA,EAAyB,iBAAVA,EAAqBtL,SAASsL,EAAO,IAAMA,EAG1D,IAAI8P,EAAa,GACXC,GAFN/P,GADAA,GAAgB,KAAH,IAAG,GAAMR,IACRtmB,WAAW82B,QAAQ,IAAKJ,IAElBz2B,QAAQy2B,GACxBG,EAAQ,EACJvQ,EAAY,IACZQ,GAAS,GAAJ,OAAO4P,GAAgB,OAAG,IAAI76B,MAAMyqB,EAAY,GAAG0B,KAAK,QAGjE4O,EAAa9P,EAAMiQ,OAAOF,EAAQ,IACnBn7B,OAAS4qB,IACpBQ,GAAS,IAAIjrB,MAAMyqB,EAAYsQ,EAAWl7B,OAAS,GAAGssB,KAAK,MAKnE,IAAMwI,EAAQ1J,EAAM0J,MAAM,IAAIwG,OAAO,WAAD,OAAYN,EAAgB,YAOhE,OANIlG,IACK1J,EAAwB0J,EAA3B,GAAaoG,EAAcpG,EAAjB,IAEhB1J,EAAQA,EAAMgQ,QAAQ,IAAIE,OAAO,0BAA2B,KAAM,GAAF,OAAKL,IAE7DH,GADR1P,GAAkB,QAAV,EAAA8P,SAAU,aAAV,EAAYl7B,QAAS,EAAIorB,EAAQ4P,EAAmBE,EAAa9P,GAChD2P,GAE5B,gBAuBA,qBArBiC,SAACpV,GAC/B,IAAI3Z,EAAU,GAmBd,OAlBA2Z,EAAc1b,SAAQ,SAACwhB,EAAiB/J,GAEpC+J,EAAgBC,eAAe6P,MAAK,SAAC5P,GACjC,OAAOA,EAAKC,UAAY,EAAI,KAEhC,IAAIG,EAAQN,EAAgBC,eAAelT,KAAI,SAAAmT,GAC3C,IAAIK,EAAMvW,SAAStG,cAAc,YAGjC,OAFA6c,EAAIC,UAAYN,EAAK/kB,KACTslB,EAAYP,EAAKP,MAAOO,EAAKtO,eAClC,CACH7M,GAAIqb,EAAoBnK,EAAKiK,EAAKG,SAClC9R,MAAOgS,EAAI/qB,MAEX4e,OAAQC,SAAS6L,EAAKP,MAAO,QAGrCpf,EAAU,GAAH,qBAAOA,IAAO,aAAK+f,OAEvB/f,GAGJ,IAAM6f,EAAsB,SAAC2P,EAAWC,GAAM,gBAAQD,EAAS,YAAIC,IAAQ,wBAejF,kBAb8B,SAACC,EAAW,GAAU,EAAT9Q,UAAe,IACnDM,EAAQ,GACNrlB,EAAO,CAAC,YAAa,kBAU3B,OATA61B,EAAUzxB,SAAQ,SAAAkhB,IACV,EAAIA,EAAKlqB,OAAUkqB,EAAKrqB,KAAO+E,EAAKyG,SAAS6e,EAAKrqB,OAClDoqB,EAAM1oB,KAAK,CACPwX,MAAOmR,EAAKnR,MACZsV,SAAS,EACTzP,OAAQsL,EAAKlqB,WAIlBiqB,GAGX,IAAMlM,EAAS,GA0Bb,iBAxB4B,SAAH,EAAgCwV,GAAa,IAAxC9U,EAAO,EAAPA,QAASF,EAAQ,EAARA,SAAUI,EAAK,EAALA,MAC/C,OAAO,IAAIxe,SAAQ,SAACV,EAASC,GACzB,IAAMG,EAAM,CAAC4e,EAASF,EAAUI,EAAMC,QAAQ1T,QAAO,SAACrL,EAAKG,GAAK,gBAAQH,EAAG,YAAIG,MAC/E,OAAKue,EAGD1e,KAAOke,EACAte,EAAQse,EAAOle,IAEnBmU,EAAW5T,MAAK,SAAA+L,GACnB,GAAIA,EAAOlM,MACP,OAAOP,EAAOyM,EAAOlM,OAETkM,EAAO0R,eAAe,CAClCY,QAAAA,EACAF,SAAAA,EACAI,MAAAA,IAEIzC,iBAAiB9b,MAAK,SAAAwW,GAE1B,OADAmH,EAAOle,GAAO0zB,EAAS3c,GAChBnX,EAAQse,EAAOle,UAE3BgX,MAAMnX,GAlBED,GAAQ,OAwB1B,6BAFyC,SAAC4W,GACvC0hB,EAAoBx2B,KAAK8U,IAGmC,yBAA1B,WAAH,OAAS0hB,GAK3C,uBAHmC,WAChC,IAAMthB,GAAO,EAAA2S,EAAAA,YAAW,qBACxB,OAAO3S,GAAQA,EAAKikB,WAMvB,2BAHuC,WACpC,IAAMjkB,GAAO,EAAA2S,EAAAA,YAAW,qBACxB,OAAO3S,GAAQA,EAAKkkB,cAavB,uBAVmC,SAAH,GAAyD,IAApD1rB,EAAI,EAAJA,KAAM2P,EAAM,EAANA,OAAQ/C,EAAW,EAAXA,YAAa0C,EAAQ,EAARA,SAAUoW,EAAS,EAATA,UACvE,MAAO,CACH1lB,KAAAA,EACA2P,OAAAA,EACAL,SAAAA,EACAqc,MAAOrT,EAA6B1L,GACpCjB,SAAU,CACNoZ,WAAYW,KAOvB,aAFyB,WACtB,MAAgD,UAAzC,EAAAvL,EAAAA,YAAW,qBAAqB7H,MAG3C,IAAMsZ,EAAc,SAACh7B,GAAG,gBArcH,WAqcuB,OAAGA,IAO9C,eAL2B,SAACA,EAAKG,GAC9B,IAAM86B,EAAMzD,KAAK0D,OAAM,IAAIt3B,MAAOu3B,UAAY,KAAS,IACnD,mBAAoB5oB,QACpB6oB,eAAeC,QAAQL,EAAYh7B,GAAMsnB,KAAKgU,UAAU,CAACn7B,MAAAA,EAAO86B,IAAAA,MAoBvE,eAhB2B,SAACj7B,GACzB,GAAI,mBAAoBuS,OACpB,IACI,IAAM8X,EAAO/C,KAAKC,MAAM6T,eAAeG,QAAQP,EAAYh7B,KAC3D,GAAIqqB,EAAM,KACClqB,EAAckqB,EAAdlqB,MAAO86B,EAAO5Q,EAAP4Q,IACd,KAAIzD,KAAK0D,OAAM,IAAIt3B,MAAOu3B,UAAY,KAAQF,GAG1C,OAAO96B,EAFPwwB,EAAgBqK,EAAYh7B,KAKtC,MAAOa,IAGb,OAAO,MAGJ,IAAM8vB,EAAkB,SAAC3wB,GACxB,mBAAoBuS,QACpB6oB,eAAeI,WAAWR,EAAYh7B,KAE7C,oBAgBA,iBAd6B,SAACy7B,EAAMC,EAAMC,GACvC,OAAQA,GACJ,IAAK,IACD,OAAOF,EAAOC,EAClB,IAAK,IACD,OAAOD,EAAOC,EAClB,IAAK,KACD,OAAOD,GAAQC,EACnB,IAAK,KACD,OAAOD,GAAQC,EACnB,IAAK,IACD,OAAOD,GAAQC,EAEvB,OAAO,GAGqE,aAAtD,WAAH,MAAkD,UAAzC,EAAAnS,EAAAA,YAAW,qBAAqBqS,MAEwB,iBAA1D,WAAH,MAAkD,cAAzC,EAAArS,EAAAA,YAAW,qBAAqBqS,MASnE,uBAPmC,SAACxtB,GACjC,IAAI4lB,EAAQ5lB,EAAI4lB,MAAM,kBAClBtzB,EAAO,KAIX,OAHIszB,IACAtzB,EAAO4mB,KAAKC,MAAMhV,OAAO0hB,KAAKC,mBAAmBF,EAAM,OAEpDtzB,iBCjhBX,OAOC,WACA,aAEA,IAAIm7B,EAAS,GAAGh5B,eAEhB,SAASi5B,IAGR,IAFA,IAAIvc,EAAU,GAELpgB,EAAI,EAAGA,EAAIwB,UAAUzB,OAAQC,IAAK,CAC1C,IAAIc,EAAMU,UAAUxB,GACpB,GAAKc,EAAL,CAEA,IAAI87B,SAAiB97B,EAErB,GAAgB,WAAZ87B,GAAoC,WAAZA,EAC3Bxc,EAAQ7d,KAAKzB,QACP,GAAIZ,MAAMC,QAAQW,IAAQA,EAAIf,OAAQ,CAC5C,IAAI88B,EAAQF,EAAWl7B,MAAM,KAAMX,GAC/B+7B,GACHzc,EAAQ7d,KAAKs6B,QAER,GAAgB,WAAZD,EACV,IAAK,IAAI/7B,KAAOC,EACX47B,EAAO/4B,KAAK7C,EAAKD,IAAQC,EAAID,IAChCuf,EAAQ7d,KAAK1B,IAMjB,OAAOuf,EAAQiM,KAAK,KAGgB1sB,EAAOC,SAC3C+8B,EAAW1C,QAAU0C,EACrBh9B,EAAOC,QAAU+8B,QAKhB,KAFwB,EAAF,WACtB,OAAOA,GACP,QAFoB,OAEpB,aAxCH","sources":["webpack://wc_stripe/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/construct.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/createClass.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/extends.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/inherits.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/isNativeFunction.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/typeof.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js","webpack://wc_stripe/./node_modules/@stripe/react-stripe-js/dist/react-stripe.umd.js","webpack://wc_stripe/./node_modules/@stripe/stripe-js/dist/stripe.esm.js","webpack://wc_stripe/./packages/blocks/assets/js/components/checkout/index.js","webpack://wc_stripe/./packages/blocks/assets/js/components/checkout/installments/index.js","webpack://wc_stripe/./packages/blocks/assets/js/components/checkout/payment-method-label/index.js","webpack://wc_stripe/./packages/blocks/assets/js/components/checkout/payment-method/index.js","webpack://wc_stripe/./packages/blocks/assets/js/components/checkout/radio-option/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/ach/hooks/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/ach/hooks/use-process-payment.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/ach/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/ach/payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/applepay/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/applepay/payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/components/bootstrap/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/components/custom-card-form.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/components/simple/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/components/stripe-card-form.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/payment-element.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/credit-card/payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/error-boundary.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/button.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/constants.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/hooks/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-error-message.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-payment-request.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/hooks/use-payments-client.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/googlepay/util.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-after-process-payment.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-breakpoint-width.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-deferred-payment-intent.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-exported-values.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-payment-events.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-payment-request.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-process-checkout-error.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-process-payment-intent.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-setup-intent.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/hooks/use-stripe-error.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/link/hooks/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/link/hooks/use-link.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/link/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/afterpay.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/alipay.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/bancontact.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/becs.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/boleto.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/eps.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/fpx.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/giropay.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/grabpay.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/hooks/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-after-process-local-payment.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-create-source.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/hooks/use-validate-checkout.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/ideal.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/klarna.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/local-payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/multibanco.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/oxxo.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/p24.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/sepa.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/sofort.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/local-payment/wechat.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/payment-request/index.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/payment-request/payment-method.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/saved-card-component.js","webpack://wc_stripe/./packages/blocks/assets/js/payment-methods/util.js","webpack://wc_stripe/./node_modules/classnames/index.js"],"sourcesContent":["function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nmodule.exports = _isNativeFunction;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nvar setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeFunction = require(\"./isNativeFunction\");\n\nvar construct = require(\"./construct\");\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n module.exports = _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nmodule.exports = _wrapNativeSuper;","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('react')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'react'], factory) :\n\t(global = global || self, factory(global.ReactStripe = {}, global.React));\n}(this, (function (exports, React) { 'use strict';\n\n\tReact = React && Object.prototype.hasOwnProperty.call(React, 'default') ? React['default'] : React;\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\tvar ReactPropTypesSecret_1 = ReactPropTypesSecret;\n\n\tfunction emptyFunction() {}\n\n\tfunction emptyFunctionWithReset() {}\n\n\temptyFunctionWithReset.resetWarningCache = emptyFunction;\n\n\tvar factoryWithThrowingShims = function () {\n\t function shim(props, propName, componentName, location, propFullName, secret) {\n\t if (secret === ReactPropTypesSecret_1) {\n\t // It is still safe when called from React.\n\t return;\n\t }\n\n\t var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n\t err.name = 'Invariant Violation';\n\t throw err;\n\t }\n\t shim.isRequired = shim;\n\n\t function getShim() {\n\t return shim;\n\t }\n\t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n\t var ReactPropTypes = {\n\t array: shim,\n\t bool: shim,\n\t func: shim,\n\t number: shim,\n\t object: shim,\n\t string: shim,\n\t symbol: shim,\n\t any: shim,\n\t arrayOf: getShim,\n\t element: shim,\n\t elementType: shim,\n\t instanceOf: getShim,\n\t node: shim,\n\t objectOf: getShim,\n\t oneOf: getShim,\n\t oneOfType: getShim,\n\t shape: getShim,\n\t exact: getShim,\n\t checkPropTypes: emptyFunctionWithReset,\n\t resetWarningCache: emptyFunction\n\t };\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t return ReactPropTypes;\n\t};\n\n\tvar propTypes = createCommonjsModule(function (module) {\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t *\n\t * This source code is licensed under the MIT license found in the\n\t * LICENSE file in the root directory of this source tree.\n\t */\n\t{\n\t // By explicitly using `prop-types` you are opting into new production behavior.\n\t // http://fb.me/prop-types-in-prod\n\t module.exports = factoryWithThrowingShims();\n\t}\n\t});\n\n\tfunction ownKeys(object, enumerableOnly) {\n\t var keys = Object.keys(object);\n\n\t if (Object.getOwnPropertySymbols) {\n\t var symbols = Object.getOwnPropertySymbols(object);\n\n\t if (enumerableOnly) {\n\t symbols = symbols.filter(function (sym) {\n\t return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n\t });\n\t }\n\n\t keys.push.apply(keys, symbols);\n\t }\n\n\t return keys;\n\t}\n\n\tfunction _objectSpread2(target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i] != null ? arguments[i] : {};\n\n\t if (i % 2) {\n\t ownKeys(Object(source), true).forEach(function (key) {\n\t _defineProperty(target, key, source[key]);\n\t });\n\t } else if (Object.getOwnPropertyDescriptors) {\n\t Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n\t } else {\n\t ownKeys(Object(source)).forEach(function (key) {\n\t Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n\t });\n\t }\n\t }\n\n\t return target;\n\t}\n\n\tfunction _typeof(obj) {\n\t \"@babel/helpers - typeof\";\n\n\t if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n\t _typeof = function (obj) {\n\t return typeof obj;\n\t };\n\t } else {\n\t _typeof = function (obj) {\n\t return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n\t };\n\t }\n\n\t return _typeof(obj);\n\t}\n\n\tfunction _defineProperty(obj, key, value) {\n\t if (key in obj) {\n\t Object.defineProperty(obj, key, {\n\t value: value,\n\t enumerable: true,\n\t configurable: true,\n\t writable: true\n\t });\n\t } else {\n\t obj[key] = value;\n\t }\n\n\t return obj;\n\t}\n\n\tfunction _slicedToArray(arr, i) {\n\t return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n\t}\n\n\tfunction _arrayWithHoles(arr) {\n\t if (Array.isArray(arr)) return arr;\n\t}\n\n\tfunction _iterableToArrayLimit(arr, i) {\n\t var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]);\n\n\t if (_i == null) return;\n\t var _arr = [];\n\t var _n = true;\n\t var _d = false;\n\n\t var _s, _e;\n\n\t try {\n\t for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n\t _arr.push(_s.value);\n\n\t if (i && _arr.length === i) break;\n\t }\n\t } catch (err) {\n\t _d = true;\n\t _e = err;\n\t } finally {\n\t try {\n\t if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n\t } finally {\n\t if (_d) throw _e;\n\t }\n\t }\n\n\t return _arr;\n\t}\n\n\tfunction _unsupportedIterableToArray(o, minLen) {\n\t if (!o) return;\n\t if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n\t var n = Object.prototype.toString.call(o).slice(8, -1);\n\t if (n === \"Object\" && o.constructor) n = o.constructor.name;\n\t if (n === \"Map\" || n === \"Set\") return Array.from(o);\n\t if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n\t}\n\n\tfunction _arrayLikeToArray(arr, len) {\n\t if (len == null || len > arr.length) len = arr.length;\n\n\t for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n\t return arr2;\n\t}\n\n\tfunction _nonIterableRest() {\n\t throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n\t}\n\n\tvar usePrevious = function usePrevious(value) {\n\t var ref = React.useRef(value);\n\t React.useEffect(function () {\n\t ref.current = value;\n\t }, [value]);\n\t return ref.current;\n\t};\n\n\tvar isUnknownObject = function isUnknownObject(raw) {\n\t return raw !== null && _typeof(raw) === 'object';\n\t};\n\tvar isPromise = function isPromise(raw) {\n\t return isUnknownObject(raw) && typeof raw.then === 'function';\n\t}; // We are using types to enforce the `stripe` prop in this lib,\n\t// but in an untyped integration `stripe` could be anything, so we need\n\t// to do some sanity validation to prevent type errors.\n\n\tvar isStripe = function isStripe(raw) {\n\t return isUnknownObject(raw) && typeof raw.elements === 'function' && typeof raw.createToken === 'function' && typeof raw.createPaymentMethod === 'function' && typeof raw.confirmCardPayment === 'function';\n\t};\n\n\tvar PLAIN_OBJECT_STR = '[object Object]';\n\tvar isEqual = function isEqual(left, right) {\n\t if (!isUnknownObject(left) || !isUnknownObject(right)) {\n\t return left === right;\n\t }\n\n\t var leftArray = Array.isArray(left);\n\t var rightArray = Array.isArray(right);\n\t if (leftArray !== rightArray) return false;\n\t var leftPlainObject = Object.prototype.toString.call(left) === PLAIN_OBJECT_STR;\n\t var rightPlainObject = Object.prototype.toString.call(right) === PLAIN_OBJECT_STR;\n\t if (leftPlainObject !== rightPlainObject) return false; // not sure what sort of special object this is (regexp is one option), so\n\t // fallback to reference check.\n\n\t if (!leftPlainObject && !leftArray) return left === right;\n\t var leftKeys = Object.keys(left);\n\t var rightKeys = Object.keys(right);\n\t if (leftKeys.length !== rightKeys.length) return false;\n\t var keySet = {};\n\n\t for (var i = 0; i < leftKeys.length; i += 1) {\n\t keySet[leftKeys[i]] = true;\n\t }\n\n\t for (var _i = 0; _i < rightKeys.length; _i += 1) {\n\t keySet[rightKeys[_i]] = true;\n\t }\n\n\t var allKeys = Object.keys(keySet);\n\n\t if (allKeys.length !== leftKeys.length) {\n\t return false;\n\t }\n\n\t var l = left;\n\t var r = right;\n\n\t var pred = function pred(key) {\n\t return isEqual(l[key], r[key]);\n\t };\n\n\t return allKeys.every(pred);\n\t};\n\n\tvar extractAllowedOptionsUpdates = function extractAllowedOptionsUpdates(options, prevOptions, immutableKeys) {\n\t if (!isUnknownObject(options)) {\n\t return null;\n\t }\n\n\t return Object.keys(options).reduce(function (newOptions, key) {\n\t var isUpdated = !isUnknownObject(prevOptions) || !isEqual(options[key], prevOptions[key]);\n\n\t if (immutableKeys.includes(key)) {\n\t if (isUpdated) {\n\t console.warn(\"Unsupported prop change: options.\".concat(key, \" is not a mutable property.\"));\n\t }\n\n\t return newOptions;\n\t }\n\n\t if (!isUpdated) {\n\t return newOptions;\n\t }\n\n\t return _objectSpread2(_objectSpread2({}, newOptions || {}), {}, _defineProperty({}, key, options[key]));\n\t }, null);\n\t};\n\n\tvar INVALID_STRIPE_ERROR = 'Invalid prop `stripe` supplied to `Elements`. We recommend using the `loadStripe` utility from `@stripe/stripe-js`. See https://stripe.com/docs/stripe-js/react#elements-props-stripe for details.'; // We are using types to enforce the `stripe` prop in this lib, but in a real\n\t// integration `stripe` could be anything, so we need to do some sanity\n\t// validation to prevent type errors.\n\n\tvar validateStripe = function validateStripe(maybeStripe) {\n\t if (maybeStripe === null || isStripe(maybeStripe)) {\n\t return maybeStripe;\n\t }\n\n\t throw new Error(INVALID_STRIPE_ERROR);\n\t};\n\n\tvar parseStripeProp = function parseStripeProp(raw) {\n\t if (isPromise(raw)) {\n\t return {\n\t tag: 'async',\n\t stripePromise: Promise.resolve(raw).then(validateStripe)\n\t };\n\t }\n\n\t var stripe = validateStripe(raw);\n\n\t if (stripe === null) {\n\t return {\n\t tag: 'empty'\n\t };\n\t }\n\n\t return {\n\t tag: 'sync',\n\t stripe: stripe\n\t };\n\t};\n\n\tvar ElementsContext = /*#__PURE__*/React.createContext(null);\n\tElementsContext.displayName = 'ElementsContext';\n\tvar parseElementsContext = function parseElementsContext(ctx, useCase) {\n\t if (!ctx) {\n\t throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an <Elements> provider.\"));\n\t }\n\n\t return ctx;\n\t};\n\tvar CartElementContext = /*#__PURE__*/React.createContext(null);\n\tCartElementContext.displayName = 'CartElementContext';\n\tvar parseCartElementContext = function parseCartElementContext(ctx, useCase) {\n\t if (!ctx) {\n\t throw new Error(\"Could not find Elements context; You need to wrap the part of your app that \".concat(useCase, \" in an <Elements> provider.\"));\n\t }\n\n\t return ctx;\n\t};\n\t/**\n\t * The `Elements` provider allows you to use [Element components](https://stripe.com/docs/stripe-js/react#element-components) and access the [Stripe object](https://stripe.com/docs/js/initializing) in any nested component.\n\t * Render an `Elements` provider at the root of your React app so that it is available everywhere you need it.\n\t *\n\t * To use the `Elements` provider, call `loadStripe` from `@stripe/stripe-js` with your publishable key.\n\t * The `loadStripe` function will asynchronously load the Stripe.js script and initialize a `Stripe` object.\n\t * Pass the returned `Promise` to `Elements`.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#elements-provider\n\t */\n\n\tvar Elements = function Elements(_ref) {\n\t var rawStripeProp = _ref.stripe,\n\t options = _ref.options,\n\t children = _ref.children;\n\t var parsed = React.useMemo(function () {\n\t return parseStripeProp(rawStripeProp);\n\t }, [rawStripeProp]);\n\n\t var _React$useState = React.useState(null),\n\t _React$useState2 = _slicedToArray(_React$useState, 2),\n\t cart = _React$useState2[0],\n\t setCart = _React$useState2[1];\n\n\t var _React$useState3 = React.useState(null),\n\t _React$useState4 = _slicedToArray(_React$useState3, 2),\n\t cartState = _React$useState4[0],\n\t setCartState = _React$useState4[1]; // For a sync stripe instance, initialize into context\n\n\n\t var _React$useState5 = React.useState(function () {\n\t return {\n\t stripe: parsed.tag === 'sync' ? parsed.stripe : null,\n\t elements: parsed.tag === 'sync' ? parsed.stripe.elements(options) : null\n\t };\n\t }),\n\t _React$useState6 = _slicedToArray(_React$useState5, 2),\n\t ctx = _React$useState6[0],\n\t setContext = _React$useState6[1];\n\n\t React.useEffect(function () {\n\t var isMounted = true;\n\n\t var safeSetContext = function safeSetContext(stripe) {\n\t setContext(function (ctx) {\n\t // no-op if we already have a stripe instance (https://github.com/stripe/react-stripe-js/issues/296)\n\t if (ctx.stripe) return ctx;\n\t return {\n\t stripe: stripe,\n\t elements: stripe.elements(options)\n\t };\n\t });\n\t }; // For an async stripePromise, store it in context once resolved\n\n\n\t if (parsed.tag === 'async' && !ctx.stripe) {\n\t parsed.stripePromise.then(function (stripe) {\n\t if (stripe && isMounted) {\n\t // Only update Elements context if the component is still mounted\n\t // and stripe is not null. We allow stripe to be null to make\n\t // handling SSR easier.\n\t safeSetContext(stripe);\n\t }\n\t });\n\t } else if (parsed.tag === 'sync' && !ctx.stripe) {\n\t // Or, handle a sync stripe instance going from null -> populated\n\t safeSetContext(parsed.stripe);\n\t }\n\n\t return function () {\n\t isMounted = false;\n\t };\n\t }, [parsed, ctx, options]); // Warn on changes to stripe prop\n\n\t var prevStripe = usePrevious(rawStripeProp);\n\t React.useEffect(function () {\n\t if (prevStripe !== null && prevStripe !== rawStripeProp) {\n\t console.warn('Unsupported prop change on Elements: You cannot change the `stripe` prop after setting it.');\n\t }\n\t }, [prevStripe, rawStripeProp]); // Apply updates to elements when options prop has relevant changes\n\n\t var prevOptions = usePrevious(options);\n\t React.useEffect(function () {\n\t if (!ctx.elements) {\n\t return;\n\t }\n\n\t var updates = extractAllowedOptionsUpdates(options, prevOptions, ['clientSecret', 'fonts']);\n\n\t if (updates) {\n\t ctx.elements.update(updates);\n\t }\n\t }, [options, prevOptions, ctx.elements]); // Attach react-stripe-js version to stripe.js instance\n\n\t React.useEffect(function () {\n\t var anyStripe = ctx.stripe;\n\n\t if (!anyStripe || !anyStripe._registerWrapper || !anyStripe.registerAppInfo) {\n\t return;\n\t }\n\n\t anyStripe._registerWrapper({\n\t name: 'react-stripe-js',\n\t version: \"1.14.2\"\n\t });\n\n\t anyStripe.registerAppInfo({\n\t name: 'react-stripe-js',\n\t version: \"1.14.2\",\n\t url: 'https://stripe.com/docs/stripe-js/react'\n\t });\n\t }, [ctx.stripe]);\n\t return /*#__PURE__*/React.createElement(ElementsContext.Provider, {\n\t value: ctx\n\t }, /*#__PURE__*/React.createElement(CartElementContext.Provider, {\n\t value: {\n\t cart: cart,\n\t setCart: setCart,\n\t cartState: cartState,\n\t setCartState: setCartState\n\t }\n\t }, children));\n\t};\n\tElements.propTypes = {\n\t stripe: propTypes.any,\n\t options: propTypes.object\n\t};\n\tvar useElementsContextWithUseCase = function useElementsContextWithUseCase(useCaseMessage) {\n\t var ctx = React.useContext(ElementsContext);\n\t return parseElementsContext(ctx, useCaseMessage);\n\t};\n\tvar useCartElementContextWithUseCase = function useCartElementContextWithUseCase(useCaseMessage) {\n\t var ctx = React.useContext(CartElementContext);\n\t return parseCartElementContext(ctx, useCaseMessage);\n\t};\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#useelements-hook\n\t */\n\n\tvar useElements = function useElements() {\n\t var _useElementsContextWi = useElementsContextWithUseCase('calls useElements()'),\n\t elements = _useElementsContextWi.elements;\n\n\t return elements;\n\t};\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#usestripe-hook\n\t */\n\n\tvar useStripe = function useStripe() {\n\t var _useElementsContextWi2 = useElementsContextWithUseCase('calls useStripe()'),\n\t stripe = _useElementsContextWi2.stripe;\n\n\t return stripe;\n\t};\n\t/**\n\t * @docs https://stripe.com/docs/payments/checkout/cart-element\n\t */\n\n\tvar useCartElement = function useCartElement() {\n\t var _useCartElementContex = useCartElementContextWithUseCase('calls useCartElement()'),\n\t cart = _useCartElementContex.cart;\n\n\t return cart;\n\t};\n\t/**\n\t * @docs https://stripe.com/docs/payments/checkout/cart-element\n\t */\n\n\tvar useCartElementState = function useCartElementState() {\n\t var _useCartElementContex2 = useCartElementContextWithUseCase('calls useCartElementState()'),\n\t cartState = _useCartElementContex2.cartState;\n\n\t return cartState;\n\t};\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#elements-consumer\n\t */\n\n\tvar ElementsConsumer = function ElementsConsumer(_ref2) {\n\t var children = _ref2.children;\n\t var ctx = useElementsContextWithUseCase('mounts <ElementsConsumer>'); // Assert to satisfy the busted React.FC return type (it should be ReactNode)\n\n\t return children(ctx);\n\t};\n\tElementsConsumer.propTypes = {\n\t children: propTypes.func.isRequired\n\t};\n\n\tvar useCallbackReference = function useCallbackReference(cb) {\n\t var ref = React.useRef(cb);\n\t React.useEffect(function () {\n\t ref.current = cb;\n\t }, [cb]);\n\t return function () {\n\t if (ref.current) {\n\t ref.current.apply(ref, arguments);\n\t }\n\t };\n\t};\n\n\tvar noop = function noop() {};\n\n\tvar capitalized = function capitalized(str) {\n\t return str.charAt(0).toUpperCase() + str.slice(1);\n\t};\n\n\tvar createElementComponent = function createElementComponent(type, isServer) {\n\t var displayName = \"\".concat(capitalized(type), \"Element\");\n\n\t var ClientElement = function ClientElement(_ref) {\n\t var id = _ref.id,\n\t className = _ref.className,\n\t _ref$options = _ref.options,\n\t options = _ref$options === void 0 ? {} : _ref$options,\n\t _ref$onBlur = _ref.onBlur,\n\t onBlur = _ref$onBlur === void 0 ? noop : _ref$onBlur,\n\t _ref$onFocus = _ref.onFocus,\n\t onFocus = _ref$onFocus === void 0 ? noop : _ref$onFocus,\n\t _ref$onReady = _ref.onReady,\n\t onReady = _ref$onReady === void 0 ? noop : _ref$onReady,\n\t _ref$onChange = _ref.onChange,\n\t onChange = _ref$onChange === void 0 ? noop : _ref$onChange,\n\t _ref$onEscape = _ref.onEscape,\n\t onEscape = _ref$onEscape === void 0 ? noop : _ref$onEscape,\n\t _ref$onClick = _ref.onClick,\n\t onClick = _ref$onClick === void 0 ? noop : _ref$onClick,\n\t _ref$onLoadError = _ref.onLoadError,\n\t onLoadError = _ref$onLoadError === void 0 ? noop : _ref$onLoadError,\n\t _ref$onLoaderStart = _ref.onLoaderStart,\n\t onLoaderStart = _ref$onLoaderStart === void 0 ? noop : _ref$onLoaderStart,\n\t _ref$onNetworksChange = _ref.onNetworksChange,\n\t onNetworksChange = _ref$onNetworksChange === void 0 ? noop : _ref$onNetworksChange,\n\t _ref$onCheckout = _ref.onCheckout,\n\t onCheckout = _ref$onCheckout === void 0 ? noop : _ref$onCheckout,\n\t _ref$onLineItemClick = _ref.onLineItemClick,\n\t onLineItemClick = _ref$onLineItemClick === void 0 ? noop : _ref$onLineItemClick;\n\n\t var _useElementsContextWi = useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\")),\n\t elements = _useElementsContextWi.elements;\n\n\t var elementRef = React.useRef(null);\n\t var domNode = React.useRef(null);\n\n\t var _useCartElementContex = useCartElementContextWithUseCase(\"mounts <\".concat(displayName, \">\")),\n\t setCart = _useCartElementContex.setCart,\n\t setCartState = _useCartElementContex.setCartState;\n\n\t var callOnReady = useCallbackReference(onReady);\n\t var callOnBlur = useCallbackReference(onBlur);\n\t var callOnFocus = useCallbackReference(onFocus);\n\t var callOnClick = useCallbackReference(onClick);\n\t var callOnChange = useCallbackReference(onChange);\n\t var callOnEscape = useCallbackReference(onEscape);\n\t var callOnLoadError = useCallbackReference(onLoadError);\n\t var callOnLoaderStart = useCallbackReference(onLoaderStart);\n\t var callOnNetworksChange = useCallbackReference(onNetworksChange);\n\t var callOnCheckout = useCallbackReference(onCheckout);\n\t var callOnLineItemClick = useCallbackReference(onLineItemClick);\n\t React.useLayoutEffect(function () {\n\t if (elementRef.current == null && elements && domNode.current != null) {\n\t var element = elements.create(type, options);\n\n\t if (type === 'cart' && setCart) {\n\t // we know that elements.create return value must be of type StripeCartElement if type is 'cart',\n\t // we need to cast because typescript is not able to infer which overloaded method is used based off param type\n\t setCart(element);\n\t }\n\n\t elementRef.current = element;\n\t element.mount(domNode.current);\n\t element.on('ready', function (event) {\n\t if (type === 'cart') {\n\t // we know that elements.on event must be of type StripeCartPayloadEvent if type is 'cart'\n\t // we need to cast because typescript is not able to infer which overloaded method is used based off param type\n\t if (setCartState) {\n\t setCartState(event);\n\t } // the cart ready event returns a CartStatePayload instead of the CartElement\n\n\n\t callOnReady(event);\n\t } else {\n\t callOnReady(element);\n\t }\n\t });\n\t element.on('change', function (event) {\n\t if (type === 'cart' && setCartState) {\n\t // we know that elements.on event must be of type StripeCartPayloadEvent if type is 'cart'\n\t // we need to cast because typescript is not able to infer which overloaded method is used based off param type\n\t setCartState(event);\n\t }\n\n\t callOnChange(event);\n\t }); // Users can pass an onBlur prop on any Element component\n\t // just as they could listen for the `blur` event on any Element,\n\t // but only certain Elements will trigger the event.\n\n\t element.on('blur', callOnBlur); // Users can pass an onFocus prop on any Element component\n\t // just as they could listen for the `focus` event on any Element,\n\t // but only certain Elements will trigger the event.\n\n\t element.on('focus', callOnFocus); // Users can pass an onEscape prop on any Element component\n\t // just as they could listen for the `escape` event on any Element,\n\t // but only certain Elements will trigger the event.\n\n\t element.on('escape', callOnEscape); // Users can pass an onLoadError prop on any Element component\n\t // just as they could listen for the `loaderror` event on any Element,\n\t // but only certain Elements will trigger the event.\n\n\t element.on('loaderror', callOnLoadError); // Users can pass an onLoaderStart prop on any Element component\n\t // just as they could listen for the `loaderstart` event on any Element,\n\t // but only certain Elements will trigger the event.\n\n\t element.on('loaderstart', callOnLoaderStart); // Users can pass an onNetworksChange prop on any Element component\n\t // just as they could listen for the `networkschange` event on any Element,\n\t // but only the Card and CardNumber Elements will trigger the event.\n\n\t element.on('networkschange', callOnNetworksChange); // Users can pass an onClick prop on any Element component\n\t // just as they could listen for the `click` event on any Element,\n\t // but only the PaymentRequestButton will actually trigger the event.\n\n\t element.on('click', callOnClick); // Users can pass an onCheckout prop on any Element component\n\t // just as they could listen for the `checkout` event on any Element,\n\t // but only certain Elements will trigger the event.\n\n\t element.on('checkout', function (event) {\n\t if (type === 'cart' && setCartState) {\n\t // we know that elements.on event must be of type StripeCartPayloadEvent if type is 'cart'\n\t // we need to cast because typescript is not able to infer which overloaded method is used based off param type\n\t setCartState(event);\n\t }\n\n\t callOnCheckout(event);\n\t }); // Users can pass an onLineItemClick prop on any Element component\n\t // just as they could listen for the `lineitemclick` event on any Element,\n\t // but only certain Elements will trigger the event.\n\n\t element.on('lineitemclick', callOnLineItemClick);\n\t }\n\t });\n\t var prevOptions = usePrevious(options);\n\t React.useEffect(function () {\n\t if (!elementRef.current) {\n\t return;\n\t }\n\n\t var updates = extractAllowedOptionsUpdates(options, prevOptions, ['paymentRequest']);\n\n\t if (updates) {\n\t elementRef.current.update(updates);\n\t }\n\t }, [options, prevOptions]);\n\t React.useLayoutEffect(function () {\n\t return function () {\n\t if (elementRef.current) {\n\t elementRef.current.destroy();\n\t elementRef.current = null;\n\t }\n\t };\n\t }, []);\n\t return /*#__PURE__*/React.createElement(\"div\", {\n\t id: id,\n\t className: className,\n\t ref: domNode\n\t });\n\t }; // Only render the Element wrapper in a server environment.\n\n\n\t var ServerElement = function ServerElement(props) {\n\t // Validate that we are in the right context by calling useElementsContextWithUseCase.\n\t useElementsContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n\t useCartElementContextWithUseCase(\"mounts <\".concat(displayName, \">\"));\n\t var id = props.id,\n\t className = props.className;\n\t return /*#__PURE__*/React.createElement(\"div\", {\n\t id: id,\n\t className: className\n\t });\n\t };\n\n\t var Element = isServer ? ServerElement : ClientElement;\n\t Element.propTypes = {\n\t id: propTypes.string,\n\t className: propTypes.string,\n\t onChange: propTypes.func,\n\t onBlur: propTypes.func,\n\t onFocus: propTypes.func,\n\t onReady: propTypes.func,\n\t onEscape: propTypes.func,\n\t onClick: propTypes.func,\n\t onLoadError: propTypes.func,\n\t onLoaderStart: propTypes.func,\n\t onNetworksChange: propTypes.func,\n\t onCheckout: propTypes.func,\n\t onLineItemClick: propTypes.func,\n\t options: propTypes.object\n\t };\n\t Element.displayName = displayName;\n\t Element.__elementType = type;\n\t return Element;\n\t};\n\n\tvar isServer = typeof window === 'undefined';\n\t/**\n\t * Requires beta access:\n\t * Contact [Stripe support](https://support.stripe.com/) for more information.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar AuBankAccountElement = createElementComponent('auBankAccount', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardElement = createElementComponent('card', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardNumberElement = createElementComponent('cardNumber', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardExpiryElement = createElementComponent('cardExpiry', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar CardCvcElement = createElementComponent('cardCvc', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar FpxBankElement = createElementComponent('fpxBank', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar IbanElement = createElementComponent('iban', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar IdealBankElement = createElementComponent('idealBank', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar P24BankElement = createElementComponent('p24Bank', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar EpsBankElement = createElementComponent('epsBank', isServer);\n\tvar PaymentElement = createElementComponent('payment', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar PaymentRequestButtonElement = createElementComponent('paymentRequestButton', isServer);\n\t/**\n\t * Requires beta access:\n\t * Contact [Stripe support](https://support.stripe.com/) for more information.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar LinkAuthenticationElement = createElementComponent('linkAuthentication', isServer);\n\t/**\n\t * Requires beta access:\n\t * Contact [Stripe support](https://support.stripe.com/) for more information.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar AddressElement = createElementComponent('address', isServer);\n\t/**\n\t * @deprecated\n\t * Use `AddressElement` instead.\n\t *\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar ShippingAddressElement = createElementComponent('shippingAddress', isServer);\n\t/**\n\t * Requires beta access:\n\t * Contact [Stripe support](https://support.stripe.com/) for more information.\n\t *\n\t * @docs https://stripe.com/docs/elements/cart-element\n\t */\n\n\tvar CartElement = createElementComponent('cart', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar PaymentMethodMessagingElement = createElementComponent('paymentMethodMessaging', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar AffirmMessageElement = createElementComponent('affirmMessage', isServer);\n\t/**\n\t * @docs https://stripe.com/docs/stripe-js/react#element-components\n\t */\n\n\tvar AfterpayClearpayMessageElement = createElementComponent('afterpayClearpayMessage', isServer);\n\n\texports.AddressElement = AddressElement;\n\texports.AffirmMessageElement = AffirmMessageElement;\n\texports.AfterpayClearpayMessageElement = AfterpayClearpayMessageElement;\n\texports.AuBankAccountElement = AuBankAccountElement;\n\texports.CardCvcElement = CardCvcElement;\n\texports.CardElement = CardElement;\n\texports.CardExpiryElement = CardExpiryElement;\n\texports.CardNumberElement = CardNumberElement;\n\texports.CartElement = CartElement;\n\texports.Elements = Elements;\n\texports.ElementsConsumer = ElementsConsumer;\n\texports.EpsBankElement = EpsBankElement;\n\texports.FpxBankElement = FpxBankElement;\n\texports.IbanElement = IbanElement;\n\texports.IdealBankElement = IdealBankElement;\n\texports.LinkAuthenticationElement = LinkAuthenticationElement;\n\texports.P24BankElement = P24BankElement;\n\texports.PaymentElement = PaymentElement;\n\texports.PaymentMethodMessagingElement = PaymentMethodMessagingElement;\n\texports.PaymentRequestButtonElement = PaymentRequestButtonElement;\n\texports.ShippingAddressElement = ShippingAddressElement;\n\texports.useCartElement = useCartElement;\n\texports.useCartElementState = useCartElementState;\n\texports.useElements = useElements;\n\texports.useStripe = useStripe;\n\n\tObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.42.1\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\n// own script injection.\n\nvar stripePromise$1 = Promise.resolve().then(function () {\n return loadScript(null);\n});\nvar loadCalled = false;\nstripePromise$1[\"catch\"](function (err) {\n if (!loadCalled) {\n console.warn(err);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now();\n return stripePromise$1.then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","export * from './payment-method-label';\nexport * from './radio-option';\nexport * from './payment-method';\nexport * from './installments';","import {useState, useRef, useEffect} from '@wordpress/element';\nimport {__} from '@wordpress/i18n';\nimport apiFetch from '@wordpress/api-fetch';\nimport classnames from 'classnames';\nimport {StripeError, getRoute} from \"../../../payment-methods/util\";\nimport './style.scss';\n\nexport const Installments = (\n {\n paymentMethodName,\n getCreatePaymentMethodArgs = null,\n cardFormComplete = false,\n addPaymentMethodData = null,\n getPaymentMethod\n }) => {\n const [installments, setInstallments] = useState(null);\n const [installment, setInstallment] = useState('');\n const [loading, setLoading] = useState(false);\n const onInstallmentSelected = (e) => {\n setInstallment(e.target.value);\n if (addPaymentMethodData) {\n addPaymentMethodData({_stripe_installment_plan: e.target.value});\n }\n }\n\n useEffect(() => {\n if (cardFormComplete) {\n // fetch the installments\n setLoading(true);\n setInstallment('');\n\n getPaymentMethod().then(async paymentMethod => {\n if (paymentMethod) {\n // fetch the installment plans\n const result = await apiFetch({\n url: getRoute('create/payment_intent'),\n method: 'POST',\n data: {payment_method_id: paymentMethod, payment_method: paymentMethodName}\n });\n setInstallments(result.installments);\n if (Object.keys(result.installments)?.length) {\n setInstallment(Object.keys(result.installments)[0]);\n }\n }\n }).catch(error => {\n console.log(error);\n }).finally(() => setLoading(false));\n }\n }, [cardFormComplete, getPaymentMethod]);\n\n return (\n <div className='wc-stripe-installments__container'>\n <label className={'wc-stripe-installments__label'}>\n {__('Pay in installments:', 'woo-stripe-payment')}\n <Loader loading={loading}/>\n </label>\n <InstallmentOptions\n installment={installment}\n onChange={onInstallmentSelected}\n installments={installments}\n isLoading={loading}/>\n </div>\n )\n}\n\nconst InstallmentOptions = ({installment, installments, onChange, isLoading}) => {\n let OPTIONS = null;\n if (isLoading) {\n OPTIONS = <option value=\"\" disabled>{__('Loading installments...', 'woo-stripe-payment')}</option>\n } else {\n if (installments === null) {\n OPTIONS = <option value=\"\" disabled>{__('Fill out card form for eligibility.', 'woo-stripe-payment')}</option>\n } else {\n OPTIONS = Object.keys(installments).map(id => {\n return <option key={id} value={id} dangerouslySetInnerHTML={{__html: installments[id].text}}/>\n });\n }\n }\n return (\n <select\n value={installment}\n onChange={onChange}\n className={classnames('wc-stripe-installment__options', {loading: isLoading})}>\n {OPTIONS}\n </select>\n );\n}\n\nconst Loader = ({loading}) => {\n return (\n <div className=\"wc-stripe-installment-loader__container\">\n {loading && <div className=\"wc-stripe-installment-loader\">\n <div></div>\n <div></div>\n <div></div>\n </div>}\n </div>\n );\n}\nexport default Installments;","import './style.scss';\n\nexport const PaymentMethodLabel = ({title, icons, paymentMethod, ...props}) => {\n const {PaymentMethodLabel: Label, PaymentMethodIcons: Icons} = props.components;\n if (!Array.isArray(icons)) {\n icons = [icons];\n }\n return (\n <span className={`wc-stripe-label-container ${paymentMethod}`}>\n <Label text={title}/>\n <Icons icons={icons} align='left'/>\n </span>\n )\n}","import {useEffect, useRef} from '@wordpress/element';\n\nexport const PaymentMethod = ({getData, content, ...props}) => {\n const Content = content;\n const desc = getData('description');\n const el = useRef(null);\n useEffect(() => {\n if (el.current && el.current.childNodes.length == 0) {\n el.current.classList.add('no-content');\n }\n });\n return (\n <>\n {desc && <Description desc={desc} payment_method={getData('name')}/>}\n <div ref={el} className='wc-stripe-blocks-payment-method-content'>\n <Content {...{...props, getData}}/>\n </div>\n </>);\n}\n\nconst Description = ({desc, payment_method}) => {\n return (\n <div className={`wc-stripe-blocks-payment-method__desc ${payment_method}`}>\n <p>{desc}</p>\n </div>\n )\n}","import classnames from 'classnames';\n\nexport const RadioControlOption = ({checked, onChange, value, label}) => {\n return (\n <label\n className={classnames('wc-stripe-blocks-radio-control__option', {\n 'wc-stripe-blocks-radio-control__option-checked': checked\n })}>\n <input\n className='wc-stripe-blocks-radio-control__input'\n type='radio'\n value={value}\n checked={checked}\n onChange={(event) => onChange(event.target.value)}/>\n <div className='wc-stripe-blocks-radio-control__label'>\n <span>{label}</span>\n </div>\n </label>\n )\n}\n\nexport default RadioControlOption;","export * from './use-process-payment';","import {useEffect, useRef, useCallback} from '@wordpress/element';\nimport {useStripe} from '@stripe/react-stripe-js';\nimport {ensureSuccessResponse, ensureErrorResponse, isNextActionRequired, handleCardAction, getRoute, StripeError} from \"../../util\";\nimport apiFetch from \"@wordpress/api-fetch\";\n\nexport const useProcessPayment = (\n {\n onCheckoutAfterProcessingWithSuccess,\n responseTypes,\n paymentMethod,\n billingAddress\n\n }) => {\n const stripe = useStripe();\n const currentData = useRef({billingAddress});\n useEffect(() => {\n currentData.current = {...currentData.current, billingAddress};\n });\n\n useEffect(() => {\n const unsubscribe = onCheckoutAfterProcessingWithSuccess(async ({redirectUrl}) => {\n const result = isNextActionRequired(redirectUrl);\n if (result) {\n if (result.type === 'intent') {\n return await processPaymentIntent(result, stripe);\n } else {\n return await processSetupIntent(result, stripe);\n }\n }\n });\n return () => unsubscribe();\n }, [\n onCheckoutAfterProcessingWithSuccess,\n responseTypes,\n stripe,\n processPaymentIntent,\n processSetupIntent\n ]);\n\n const processPaymentIntent = useCallback(async (data, stripe) => {\n const {billingAddress} = currentData.current;\n const {client_secret, order_id, order_key} = data;\n try {\n let response = await stripe.collectBankAccountForPayment({\n clientSecret: client_secret,\n params: {\n payment_method_type: 'us_bank_account',\n payment_method_data: {\n billing_details: {\n name: `${billingAddress.first_name} ${billingAddress.last_name}`,\n email: billingAddress.email,\n },\n },\n }\n });\n if (response.error) {\n throw response.error;\n }\n if (response.paymentIntent.status === \"requires_confirmation\") {\n let response = await stripe.confirmUsBankAccountPayment(client_secret);\n if (response.error) {\n throw response.error;\n }\n if (response.paymentIntent.status === 'processing') {\n let result = await apiFetch({\n url: getRoute('process/payment'),\n method: 'POST',\n data: {order_id, order_key, stripe_ach_token_key: response.paymentIntent.payment_method}\n });\n if (result.messages) {\n throw result.messages;\n }\n return ensureSuccessResponse(responseTypes, {\n redirectUrl: result.redirect\n });\n } else if (response.paymentIntent.status === 'requires_action') {\n throw {code: 'ach_instant_only'};\n }\n }\n } catch (err) {\n return ensureErrorResponse(responseTypes, err);\n }\n }, []);\n\n const processSetupIntent = useCallback(async (data, stripe) => {\n const {billingAddress} = currentData.current;\n const {client_secret, order_id, order_key} = data;\n try {\n let response = await stripe.collectBankAccountForSetup({\n clientSecret: client_secret,\n params: {\n payment_method_type: 'us_bank_account',\n payment_method_data: {\n billing_details: {\n name: `${billingAddress.first_name} ${billingAddress.last_name}`,\n email: billingAddress.email,\n },\n },\n }\n });\n if (response.error) {\n throw response.error;\n }\n if (response.setupIntent.status === \"requires_confirmation\") {\n let {setupIntent, error} = await stripe.confirmUsBankAccountSetup(client_secret);\n if (error) {\n throw error;\n }\n if (setupIntent.status === 'succeeded') {\n let response = await apiFetch({\n url: getRoute('process/payment'),\n method: 'POST',\n data: {order_id, order_key, stripe_ach_token_key: setupIntent.payment_method}\n });\n if (response.messages) {\n throw response.messages;\n }\n return ensureSuccessResponse(responseTypes, {\n redirectUrl: response.redirect\n });\n } else if (setupIntent.status === 'requires_action') {\n throw {code: 'ach_instant_only'};\n }\n }\n } catch (err) {\n console.log(err);\n return ensureErrorResponse(responseTypes, err);\n }\n }, []);\n}","import './styles.scss';\nimport './payment-method'","import {useState} from '@wordpress/element';\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {Elements} from '@stripe/react-stripe-js';\nimport {getSettings, initStripe as loadStripe} from '../util';\nimport {PaymentMethodLabel, PaymentMethod} from '../../components/checkout';\nimport SavedCardComponent from '../saved-card-component';\nimport {useCreateLinkToken, useInitializePlaid, useProcessPayment} from './hooks';\nimport {useProcessCheckoutError} from \"../hooks\";\n\nconst getData = getSettings('stripe_ach_data');\n\nconst ACHPaymentContent = (\n {\n eventRegistration,\n components,\n emitResponse,\n onSubmit,\n billing,\n ...props\n }) => {\n const {responseTypes} = emitResponse;\n const {\n onPaymentProcessing,\n onCheckoutAfterProcessingWithError,\n onCheckoutAfterProcessingWithSuccess\n } = eventRegistration;\n\n useProcessCheckoutError({\n responseTypes,\n subscriber: onCheckoutAfterProcessingWithError\n });\n\n\n useProcessPayment({\n onCheckoutAfterProcessingWithSuccess,\n responseTypes,\n paymentMethod: getData('name'),\n billingAddress: billing.billingData\n });\n return (\n <div className={'wc-stripe-ach__container'}>\n <Mandate text={getData('mandateText')}/>\n </div>\n )\n}\n\nconst ACHComponent = (props) => {\n return (\n <Elements stripe={loadStripe}>\n <ACHPaymentContent {...props}/>\n </Elements>\n )\n}\n\nconst Mandate = ({text}) => {\n return (\n <p className={'wc-stripe-ach__mandate'}>\n {text}\n </p>\n )\n}\n\nregisterPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icons')}/>,\n ariaLabel: 'ACH Payment',\n canMakePayment: ({cartTotals}) => cartTotals.currency_code === 'USD',\n content: <PaymentMethod\n getData={getData}\n content={ACHComponent}/>,\n savedTokenComponent: <SavedCardComponent getData={getData}/>,\n edit: <ACHComponent/>,\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: false,\n features: getData('features')\n }\n})","import './style.scss';\n\nimport './payment-method';","import {useCallback} from '@wordpress/element';\nimport {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, initStripe as loadStripe, canMakePayment} from \"../util\";\nimport {Elements, PaymentRequestButtonElement, useStripe} from \"@stripe/react-stripe-js\";\nimport ErrorBoundary from \"../error-boundary\";\nimport {\n usePaymentRequest,\n useProcessPaymentIntent,\n useExportedValues,\n useAfterProcessingPayment,\n useStripeError,\n useExpressBreakpointWidth\n} from '../hooks';\n\nconst getData = getSettings('stripe_applepay_data');\n\nconst ApplePayContent = (props) => {\n return (\n <ErrorBoundary>\n <div className='wc-stripe-apple-pay-container'>\n <Elements stripe={loadStripe}>\n <ApplePayButton {...props}/>\n </Elements>\n </div>\n </ErrorBoundary>\n );\n}\n\nconst ApplePayButton = (\n {\n getData,\n onClick,\n onClose,\n billing,\n shippingData,\n eventRegistration,\n emitResponse,\n onSubmit,\n activePaymentMethod,\n ...props\n }) => {\n const {onPaymentProcessing} = eventRegistration;\n const {responseTypes, noticeContexts} = emitResponse;\n const stripe = useStripe();\n const [error] = useStripeError();\n const canPay = (result) => result != null && result.applePay;\n const exportedValues = useExportedValues();\n useExpressBreakpointWidth({payment_method: getData('name'), width: 375});\n const {setPaymentMethod} = useProcessPaymentIntent({\n getData,\n billing,\n shippingData,\n onPaymentProcessing,\n emitResponse,\n error,\n onSubmit,\n activePaymentMethod,\n exportedValues\n });\n useAfterProcessingPayment({\n getData,\n eventRegistration,\n responseTypes,\n activePaymentMethod,\n messageContext: noticeContexts.EXPRESS_PAYMENTS\n });\n const {paymentRequest} = usePaymentRequest({\n getData,\n onClose,\n stripe,\n billing,\n shippingData,\n eventRegistration,\n setPaymentMethod,\n exportedValues,\n canPay\n });\n\n const handleClick = useCallback((e) => {\n if (paymentRequest) {\n e.preventDefault();\n onClick();\n paymentRequest.show();\n }\n }, [paymentRequest, onClick]);\n\n if (paymentRequest) {\n return (\n <button\n className={`apple-pay-button ${getData('buttonStyle')}`}\n style={{\n '-apple-pay-button-type': getData('buttonType')\n }}\n onClick={handleClick}/>\n\n )\n }\n return null;\n}\n\nconst ApplePayEdit = ({getData, ...props}) => {\n return (\n <div className={'apple-pay-block-editor'}>\n <img src={getData('editorIcon')}/>\n </div>\n )\n}\n\nregisterExpressPaymentMethod({\n name: getData('name'),\n canMakePayment: ({cartTotals, ...props}) => {\n if (getData('isAdmin')) {\n return true;\n }\n const {currency_code: currency, total_price} = cartTotals;\n return canMakePayment({\n country: getData('countryCode'),\n currency: currency.toLowerCase(),\n total: {\n label: getData('totalLabel'),\n amount: parseInt(total_price)\n }\n }, (result) => result != null && result.applePay);\n },\n content: <ApplePayContent getData={getData}/>,\n edit: <ApplePayEdit getData={getData}/>,\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: getData('showSaveOption'),\n features: getData('features')\n }\n})","import './style.scss';\nimport {registerCreditCardForm} from \"@paymentplugins/stripe/util\";\nimport {CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\nimport {__} from \"@wordpress/i18n\";\n\nconst Bootstrap = ({CardIcon, options, onChange}) => {\n return (\n <div className='wc-stripe-bootstrap-form'>\n <div className='row'>\n <div className='col-md-6 mb-3'>\n <CardNumberElement className='md-form md-outline stripe-input' options={options['cardNumber']}\n onChange={onChange(CardNumberElement)}/>\n <label htmlFor=\"stripe-card-number\">{__('Card Number', 'woo-stripe-payment')}</label>\n {CardIcon}\n </div>\n <div className='col-md-3 mb-3'>\n <CardExpiryElement className='md-form md-outline stripe-input' options={options['cardExpiry']}\n onChange={onChange(CardExpiryElement)}/>\n <label htmlFor=\"stripe-exp\">{__('Exp', 'woo-stripe-payment')}</label>\n </div>\n <div className='col-md-3 mb-3'>\n <CardCvcElement className=\"md-form md-outline stripe-input\" options={options['cardCvc']}\n onChange={onChange(CardCvcElement)}/>\n <label htmlFor=\"stripe-cvv\">{__('CVV', 'woo-stripe-payment')}</label>\n </div>\n </div>\n </div>\n )\n}\n\nregisterCreditCardForm({\n id: 'bootstrap',\n breakpoint: 475,\n component: <Bootstrap/>\n})","import {getCreditCardForm} from \"../../util\";\nimport {cloneElement, useRef, useCallback, useEffect, useState} from '@wordpress/element';\nimport {useElements, CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\nimport {sprintf, __} from '@wordpress/i18n';\nimport {useBreakpointWidth} from \"../../hooks\";\n\nconst classes = {\n focus: 'focused',\n empty: 'empty',\n invalid: 'invalid'\n}\n\nconst CustomCardForm = (\n {\n getData,\n onChange: eventChange,\n onComplete\n }) => {\n const [cardType, setCardType] = useState('');\n const elementOrder = useRef([]);\n const [container, setContainer] = useState(null);\n const elements = useElements();\n const id = getData('customForm');\n const {component: CardForm = null, breakpoint = 475} = getCreditCardForm(id);\n const postalCodeEnabled = getData('postalCodeEnabled');\n const options = {};\n const elementStatus = useRef({'cardNumber': {}, 'cardExpiry': {}, 'cardCvc': {}});\n ['cardNumber', 'cardExpiry', 'cardCvc'].forEach(type => {\n options[type] = {\n classes,\n ...getData('cardOptions'),\n ...getData('customFieldOptions')[type],\n }\n });\n const onChange = (element) => {\n setElementOrder(element);\n return (event) => {\n eventChange(event);\n elementStatus.current[event.elementType] = event;\n if (event.elementType === 'cardNumber') {\n if (event.brand === 'unknown') {\n setCardType('');\n } else {\n setCardType(event.brand);\n }\n }\n if (event.complete) {\n const idx = elementOrder.current.indexOf(element);\n if (elementOrder.current[idx + 1]) {\n const nextElement = elementOrder.current[idx + 1];\n elements.getElement(nextElement).focus();\n }\n }\n onComplete(isFormComplete());\n }\n }\n\n const isFormComplete = () => {\n let status = elementStatus.current;\n return Object.keys(status).filter(key => !!status[key].complete).length === Object.keys(status).length;\n }\n\n const setElementOrder = useCallback((element) => {\n if (!elementOrder.current.includes(element)) {\n elementOrder.current.push(element);\n }\n }, []);\n\n useBreakpointWidth({name: 'creditCardForm', width: breakpoint, node: container, className: 'small-form'});\n\n const getCardIconSrc = useCallback((type) => {\n for (let id of Object.keys(getData('cards'))) {\n if (id === type) {\n return getData('cards')[id];\n }\n }\n return '';\n }, []);\n\n if (!CardForm) {\n return (\n <div className='wc-stripe-custom-form-error'>\n <p>{sprintf(__('%s is not a valid blocks Stripe custom form. Please choose another custom form option in the Credit Card Settings.', 'woo-stripe-payment'), getData('customFormLabels')[id])}</p>\n </div>\n )\n }\n return (\n <div className={`wc-stripe-custom-form ${id}`} ref={setContainer}>\n {cloneElement(CardForm, {\n postalCodeEnabled,\n options,\n onChange,\n CardIcon: <CardIcon type={cardType} src={getCardIconSrc(cardType)}/>\n })}\n </div>\n )\n\n}\n\nconst CardIcon = ({type, src}) => {\n if (type) {\n return <img className={`wc-stripe-card ${type}`} src={src}/>\n }\n return null;\n}\n\nexport default CustomCardForm;\n","import './style.scss';\nimport {registerCreditCardForm} from \"@paymentplugins/stripe/util\";\nimport {CardNumberElement, CardExpiryElement, CardCvcElement} from '@stripe/react-stripe-js';\nimport {__} from \"@wordpress/i18n\";\nimport {useEffect, useCallback, useRef} from '@wordpress/element';\n\nconst SimpleForm = ({CardIcon, options, onChange}) => {\n useEffect(() => {\n }, []);\n return (\n <div className='wc-stripe-simple-form'>\n <div className=\"row\">\n <div className=\"field\">\n <div className='field-item'>\n <CardNumberElement id=\"stripe-card-number\" className=\"input empty\"\n options={options['cardNumber']}\n onChange={onChange(CardNumberElement)}/>\n <label htmlFor=\"stripe-card-number\"\n data-tid=\"\">{__('Card Number', 'woo-stripe-payment')}</label>\n <div className=\"baseline\"></div>\n {CardIcon}\n </div>\n </div>\n </div>\n <div className=\"row\">\n <div className=\"field half-width\">\n <div className='field-item'>\n <CardExpiryElement id=\"stripe-exp\" className=\"input empty\" options={options['cardExpiry']}\n onChange={onChange(CardExpiryElement)}/>\n <label htmlFor=\"stripe-exp\"\n data-tid=\"\">{__('Expiration', 'woo-stripe-payment')}</label>\n <div className=\"baseline\"></div>\n </div>\n </div>\n <div className=\"field half-width cvc\">\n <div className='field-item'>\n <CardCvcElement id=\"stripe-cvv\" className=\"input empty\" options={options['cardCvc']}\n onChange={onChange(CardCvcElement)}/>\n <label htmlFor=\"stripe-cvv\"\n data-tid=\"\">{__('CVV', 'woo-stripe-payment')}</label>\n <div className=\"baseline\"></div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n\nregisterCreditCardForm({\n id: 'simple',\n component: <SimpleForm/>,\n breakpoint: 375\n})","import {CardElement} from \"@stripe/react-stripe-js\";\nimport {isFieldRequired} from \"../../util\";\nimport {useMemo} from '@wordpress/element';\n\nconst StripeCardForm = ({getData, billing, onChange: eventChange, onComplete}) => {\n const elementStatus = {card: {}};\n const onChange = (event) => {\n eventChange(event);\n elementStatus[event.elementType] = event;\n onComplete(isFormComplete());\n }\n const isFormComplete = () => {\n return Object.keys(elementStatus).filter(type => !!elementStatus[type].complete).length === Object.keys(elementStatus).length;\n }\n const cardOptions = useMemo(() => {\n return {\n ...{\n value: {\n postalCode: billing?.billingData?.postcode\n },\n hidePostalCode: isFieldRequired('postcode'),\n iconStyle: 'default'\n }, ...getData('cardOptions')\n };\n }, [billing.billingData]);\n return (\n <div className='wc-stripe-inline-form'>\n <CardElement options={cardOptions} onChange={onChange}/>\n </div>\n )\n}\n\nexport default StripeCardForm;","import './style.scss';\n\nexport * from './payment-method';\n\nimport './components/bootstrap';\nimport './components/simple';\n","import {useState, useCallback, useMemo} from '@wordpress/element';\nimport {Elements, PaymentElement, useStripe, useElements} from '@stripe/react-stripe-js';\nimport {\n getSettings,\n initStripe as loadStripe\n} from '../util';\n\nimport {Installments} from '../../components/checkout/';\n\nimport {useProcessCheckoutError, useDeferredPaymentIntent} from \"../hooks\";\n\n\nconst getData = getSettings('stripe_cc_data');\n\nconst isSetupCard = total => 0 >= total;\n\nexport const PaymentElementComponent = (props) => {\n const {cartTotal, currency} = props.billing;\n let options = {\n mode: 'payment',\n ...getData('elementOptions')\n }\n if (isSetupCard(cartTotal.value)) {\n options = {...options, mode: 'setup'}\n } else {\n options = {\n ...options,\n amount: cartTotal.value,\n currency: currency?.code?.toLowerCase()\n }\n }\n return (\n <>\n <Elements stripe={loadStripe} options={options}>\n <CardElement {...props}/>\n </Elements>\n </>\n );\n}\n\nconst CardElement = ({onComplete, ...props}) => {\n const [formComplete, setFormComplete] = useState(false);\n const installmentsActive = getData('installmentsActive')\n const elements = useElements();\n const stripe = useStripe();\n const {billing: {billingData}, eventRegistration, emitResponse, shouldSavePayment} = props;\n const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;\n const {responseTypes, noticeContexts} = emitResponse;\n const name = getData('name');\n const onChange = useCallback((event) => {\n setFormComplete(event.complete);\n }, []);\n const {updatePaymentIntent, addPaymentMethodData} = useDeferredPaymentIntent({\n billingData,\n eventRegistration,\n responseTypes,\n shouldSavePayment,\n noticeContexts,\n name\n });\n\n useProcessCheckoutError({\n responseTypes,\n subscriber: onCheckoutAfterProcessingWithError,\n messageContext: noticeContexts.PAYMENTS\n });\n\n const getPaymentMethod = useCallback(async () => {\n let paymentMethod = null;\n const result = await updatePaymentIntent();\n if (result?.paymentIntent?.payment_method) {\n paymentMethod = result.paymentIntent.payment_method;\n }\n return paymentMethod;\n }, [updatePaymentIntent]);\n\n const options = {\n fields: {\n billingDetails: {address: 'never'}\n },\n wallets: {applePay: 'never', googlePay: 'never'}\n }\n return (\n <>\n <PaymentElement options={options} onChange={onChange}/>\n {installmentsActive && <Installments\n paymentMethodName={getData('name')}\n stripe={stripe}\n cardFormComplete={formComplete}\n getPaymentMethod={getPaymentMethod}\n addPaymentMethodData={addPaymentMethodData}/>}\n </>\n )\n}\n\nexport default PaymentElementComponent;","import {useEffect, useState, useCallback, useMemo} from '@wordpress/element';\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {\n initStripe as loadStripe,\n getSettings,\n} from '../util';\nimport {Elements, CardElement, useStripe, useElements, CardNumberElement} from '@stripe/react-stripe-js';\nimport {PaymentMethodLabel, PaymentMethod} from '../../components/checkout';\nimport SavedCardComponent from '../saved-card-component';\nimport CustomCardForm from './components/custom-card-form';\nimport StripeCardForm from \"./components/stripe-card-form\";\nimport {Installments} from '../../components/checkout';\nimport PaymentElementComponent from './payment-element';\nimport {\n useProcessPaymentIntent,\n useAfterProcessingPayment,\n useSetupIntent,\n useStripeError\n} from \"../hooks\";\n\nconst getData = getSettings('stripe_cc_data');\n\nconst CreditCardContent = (props) => {\n const [error, setError] = useState(false);\n useEffect(() => {\n loadStripe.catch(error => {\n setError(error);\n })\n }, [setError]);\n if (error) {\n throw new Error(error);\n }\n if (getData('isPaymentElement')) {\n return (\n <PaymentElementComponent {...props}/>\n )\n }\n return (\n <Elements stripe={loadStripe} options={getData('elementOptions')}>\n <CreditCardElement {...props}/>\n </Elements>\n );\n};\n\nconst CreditCardElement = (\n {\n getData,\n billing,\n shippingData,\n emitResponse,\n eventRegistration,\n activePaymentMethod,\n shouldSavePayment\n }) => {\n const [error, setError] = useStripeError();\n const [formComplete, setFormComplete] = useState(false);\n const {onPaymentProcessing} = eventRegistration;\n const stripe = useStripe();\n const elements = useElements();\n const getPaymentMethodArgs = useCallback(() => {\n const elType = getData('customFormActive') ? CardNumberElement : CardElement;\n return {card: elements.getElement(elType)};\n }, [stripe, elements]);\n\n const {setupIntent, removeSetupIntent} = useSetupIntent({\n getData,\n cartTotal: billing.cartTotal,\n setError\n })\n\n const {getCreatePaymentMethodArgs, addPaymentMethodData} = useProcessPaymentIntent({\n getData,\n billing,\n shippingData,\n emitResponse,\n error,\n onPaymentProcessing,\n shouldSavePayment,\n setupIntent,\n removeSetupIntent,\n getPaymentMethodArgs,\n activePaymentMethod\n });\n useAfterProcessingPayment({\n getData,\n eventRegistration,\n responseTypes: emitResponse.responseTypes,\n activePaymentMethod,\n shouldSavePayment\n });\n\n const onChange = (event) => {\n if (event.error) {\n setError(event.error);\n } else {\n setError(false);\n }\n }\n\n const getPaymentMethod = useCallback(async () => {\n let paymentMethod = null;\n const result = await stripe.createPaymentMethod(getCreatePaymentMethodArgs());\n if (result?.paymentMethod?.id) {\n paymentMethod = result.paymentMethod.id;\n }\n return paymentMethod;\n }, [stripe, getCreatePaymentMethodArgs]);\n\n const Tag = getData('customFormActive') ? CustomCardForm : StripeCardForm;\n return (\n <div className='wc-stripe-card-container'>\n <Tag {...{getData, billing, onChange}} onComplete={setFormComplete}/>\n {getData('installmentsActive') && <Installments\n paymentMethodName={getData('name')}\n cardFormComplete={formComplete}\n addPaymentMethodData={addPaymentMethodData}\n getPaymentMethod={getPaymentMethod}/>}\n\n </div>\n );\n}\n\nregisterPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icons')}/>,\n ariaLabel: 'Credit Cards',\n canMakePayment: () => loadStripe,\n content: <PaymentMethod content={CreditCardContent} getData={getData}/>,\n savedTokenComponent: <SavedCardComponent getData={getData} method={getData('isPaymentElement') ? 'confirmCardPayment' : 'handleCardAction'}/>,\n edit: <PaymentMethod content={CreditCardContent} getData={getData}/>,\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: true,\n features: getData('features')\n }\n})","import {Component} from '@wordpress/element';\n\nclass ErrorBoundary extends Component {\n constructor(props) {\n super(props);\n this.state = {hasError: false, error: null, errorInfo: null};\n }\n\n componentDidCatch(error, errorInfo) {\n this.setState({\n hasError: true,\n error,\n errorInfo\n })\n }\n\n render() {\n if (this.state.hasError) {\n return (\n <>\n {this.state.error && <div className='wc-stripe-block-error'>{this.state.error.toString()}</div>}\n {this.state.errorInfo &&\n <div className='wc-stripe-block-error'>{this.state.errorInfo.componentStack}</div>}\n </>\n )\n }\n return this.props.children;\n }\n}\n\nexport default ErrorBoundary;","import {useRef, useEffect} from '@wordpress/element';\nimport {usePaymentsClient, usePaymentRequest} from './hooks';\nimport {\n useProcessPaymentIntent,\n useStripeError,\n useExportedValues,\n useExpressBreakpointWidth, useAfterProcessingPayment\n} from '../hooks';\nimport {getSettings} from '@paymentplugins/stripe/util';\n\nconst {publishableKey} = getSettings('stripeGeneralData')();\n\nconst GooglePayButton = (\n {\n getData,\n setErrorMessage,\n billing,\n shippingData,\n canMakePayment,\n checkoutStatus,\n eventRegistration,\n activePaymentMethod,\n onClick,\n onClose,\n ...props\n }) => {\n const merchantInfo = {\n merchantId: getData('merchantId'),\n merchantName: getData('merchantName')\n };\n const [error, setError] = useStripeError();\n const buttonContainer = useRef();\n const {onSubmit, emitResponse} = props;\n const {onPaymentProcessing} = eventRegistration;\n const exportedValues = useExportedValues();\n const width = getData('buttonStyle').buttonType === 'long' ? 390 : 375;\n const {setPaymentMethod} = useProcessPaymentIntent({\n getData,\n billing,\n shippingData,\n onPaymentProcessing,\n emitResponse,\n error,\n exportedValues,\n onSubmit,\n checkoutStatus,\n activePaymentMethod\n });\n\n const buildPaymentRequest = usePaymentRequest({\n getData,\n publishableKey,\n merchantInfo,\n billing,\n shippingData\n })\n\n const {button, removeButton} = usePaymentsClient({\n merchantInfo,\n buildPaymentRequest,\n billing,\n shippingData,\n eventRegistration,\n canMakePayment,\n setErrorMessage,\n onSubmit,\n setPaymentMethod,\n exportedValues,\n onClick,\n onClose,\n getData\n });\n\n useAfterProcessingPayment({\n getData,\n eventRegistration,\n responseTypes: emitResponse.responseTypes,\n activePaymentMethod\n });\n\n useExpressBreakpointWidth({payment_method: getData('name'), width});\n\n useEffect(() => {\n if (button) {\n // prevent button duplicates\n removeButton(buttonContainer.current);\n buttonContainer.current.append(button);\n }\n }, [button]);\n\n return (\n <div className='wc-stripe-gpay-button-container' ref={buttonContainer}></div>\n )\n}\n\nexport default GooglePayButton;","export const BASE_PAYMENT_METHOD = {\n type: 'CARD',\n parameters: {\n allowedAuthMethods: [\"PAN_ONLY\"],\n allowedCardNetworks: [\"AMEX\", \"DISCOVER\", \"INTERAC\", \"JCB\", \"MASTERCARD\", \"VISA\"],\n assuranceDetailsRequired: true\n }\n};\n\nexport const BASE_PAYMENT_REQUEST = {\n apiVersion: 2,\n apiVersionMinor: 0\n}","export * from './use-payments-client';\nexport * from './use-payment-request';\nexport * from './use-error-message';","import {useState} from '@wordpress/element';\n\nexport const useErrorMessage = () => {\n const [errorMessage, setErrorMessage] = useState(false);\n return {errorMessage, setErrorMessage};\n}","import {useEffect, useCallback, useRef, useMemo} from '@wordpress/element';\nimport {BASE_PAYMENT_REQUEST, BASE_PAYMENT_METHOD} from \"../constants\";\nimport {isEmpty, isFieldRequired} from \"../../util\";\nimport {getTransactionInfo, getShippingOptionParameters} from \"../util\";\n\nexport const usePaymentRequest = ({getData, publishableKey, merchantInfo, billing, shippingData}) => {\n const {processingCountry, totalPriceLabel} = getData();\n const currentData = useRef({\n shippingData,\n billing\n });\n\n useEffect(() => {\n currentData.current = {\n shippingData,\n billing\n }\n });\n\n const buildPaymentRequest = useCallback(() => {\n const {billing, shippingData} = currentData.current;\n const {billingData} = billing;\n const {shippingRates} = shippingData;\n let options = {\n ...{\n emailRequired: isEmpty(billingData.email),\n merchantInfo,\n allowedPaymentMethods: [{\n ...{\n type: 'CARD',\n tokenizationSpecification: {\n type: \"PAYMENT_GATEWAY\",\n parameters: {\n gateway: 'stripe',\n \"stripe:version\": \"2018-10-31\",\n \"stripe:publishableKey\": publishableKey\n }\n }\n }, ...BASE_PAYMENT_METHOD\n }],\n shippingAddressRequired: shippingData.needsShipping,\n transactionInfo: getTransactionInfo({\n billing,\n processingCountry,\n totalPriceLabel\n }),\n callbackIntents: ['PAYMENT_AUTHORIZATION']\n }, ...BASE_PAYMENT_REQUEST\n };\n options.allowedPaymentMethods[0].parameters.billingAddressRequired = true;\n options.allowedPaymentMethods[0].parameters.billingAddressParameters = {\n format: 'FULL',\n phoneNumberRequired: isFieldRequired(shippingData.needsShipping ? 'shipping-phone' : 'phone', billingData.country) && isEmpty(billingData.phone)\n };\n if (options.shippingAddressRequired) {\n options.callbackIntents = [...options.callbackIntents, ...['SHIPPING_ADDRESS', 'SHIPPING_OPTION']];\n options.shippingOptionRequired = true;\n const shippingOptionParameters = getShippingOptionParameters(shippingRates);\n if (shippingOptionParameters.shippingOptions.length > 0) {\n options = {...options, shippingOptionParameters};\n }\n }\n return options;\n }, []);\n\n\n return buildPaymentRequest;\n}","import {useState, useEffect, useCallback, useMemo, useRef} from '@wordpress/element';\nimport apiFetch from '@wordpress/api-fetch';\nimport {\n getRoute,\n getErrorMessage,\n getSelectedShippingOption,\n getBillingDetailsFromAddress,\n isAddressValid,\n isEmpty,\n StripeError\n} from \"../../util\";\nimport {useStripe} from \"@stripe/react-stripe-js\";\nimport {toCartAddress} from \"../util\";\nimport {usePaymentEvents} from \"../../hooks\";\n\nexport const usePaymentsClient = (\n {\n merchantInfo,\n buildPaymentRequest,\n billing,\n shippingData,\n eventRegistration,\n canMakePayment,\n setErrorMessage,\n setPaymentMethod,\n exportedValues,\n onClick,\n onClose,\n getData\n }) => {\n const {environment} = getData();\n const [paymentsClient, setPaymentsClient] = useState();\n const [button, setButton] = useState(null);\n const currentBilling = useRef(billing);\n const currentShipping = useRef(shippingData);\n const {needsShipping} = shippingData;\n const stripe = useStripe();\n const {addPaymentEvent} = usePaymentEvents({\n billing,\n shippingData,\n eventRegistration\n });\n useEffect(() => {\n currentBilling.current = billing;\n currentShipping.current = shippingData;\n });\n\n const setAddressData = useCallback((paymentData) => {\n let billingAddress;\n if (paymentData?.paymentMethodData?.info?.billingAddress) {\n billingAddress = paymentData.paymentMethodData.info.billingAddress;\n if (isAddressValid(currentBilling.current.billingData, ['phone', 'email']) && isEmpty(currentBilling.current.billingData?.phone)) {\n billingAddress = {phoneNumber: billingAddress.phoneNumber};\n }\n exportedValues.billingData = currentBilling.current.billingData = toCartAddress(billingAddress, {email: paymentData.email});\n }\n if (paymentData?.shippingAddress) {\n exportedValues.shippingAddress = toCartAddress({...paymentData.shippingAddress, phoneNumber: billingAddress?.phoneNumber});\n }\n }, []);\n\n const removeButton = useCallback((parentElement) => {\n while (parentElement.firstChild) {\n parentElement.removeChild(parentElement.firstChild);\n }\n }, [button]);\n const handleClick = useCallback(async () => {\n onClick();\n try {\n let paymentData = await paymentsClient.loadPaymentData(buildPaymentRequest());\n\n // set the address data so it can be used during the checkout process\n setAddressData(paymentData);\n\n const data = JSON.parse(paymentData.paymentMethodData.tokenizationData.token);\n\n let result = await stripe.createPaymentMethod({\n type: 'card',\n card: {token: data.id},\n billing_details: getBillingDetailsFromAddress(currentBilling.current.billingData)\n });\n\n if (result.error) {\n throw new StripeError(result.error);\n }\n\n setPaymentMethod(result.paymentMethod.id);\n } catch (err) {\n if (err?.statusCode === \"CANCELED\") {\n onClose();\n } else {\n console.log(getErrorMessage(err));\n setErrorMessage(getErrorMessage(err));\n }\n }\n }, [\n stripe,\n paymentsClient,\n onClick,\n buildPaymentRequest\n ]);\n\n const createButton = useCallback(async () => {\n try {\n if (paymentsClient && stripe) {\n await canMakePayment;\n setButton(paymentsClient.createButton({\n onClick: handleClick,\n ...getData('buttonStyle')\n }));\n }\n } catch (err) {\n console.log(err);\n }\n }, [\n stripe,\n paymentsClient,\n handleClick\n ]);\n\n const paymentOptions = useMemo(() => {\n let options = {\n environment,\n merchantInfo,\n paymentDataCallbacks: {\n onPaymentAuthorized: () => Promise.resolve({transactionState: \"SUCCESS\"})\n }\n }\n if (needsShipping) {\n options.paymentDataCallbacks.onPaymentDataChanged = (paymentData) => {\n const shipping = currentShipping.current;\n const {shippingAddress: address, shippingOptionData} = paymentData;\n const selectedRates = getSelectedShippingOption(shippingOptionData.id);\n const shipping_method = ['default', 'shipping_option_unselected'].includes(shippingOptionData.id) ? null : shippingOptionData.id;\n return new Promise((resolve, reject) => {\n apiFetch({\n method: 'POST',\n url: getRoute('payment/data'),\n data: {\n address: toCartAddress(address),\n shipping_method,\n page_id: null\n }\n }).then(response => {\n if (response.code) {\n resolve(response.data.data);\n } else {\n resolve(response.data.paymentRequestUpdate);\n }\n }).catch(response => {\n resolve(response.data);\n }).finally(() => {\n if (shipping_method && shipping_method !== 'shipping_option_unselected') {\n shipping.setSelectedRates(...selectedRates);\n }\n });\n });\n }\n }\n return options;\n }, [needsShipping]);\n\n useEffect(() => {\n setPaymentsClient(new google.payments.api.PaymentsClient(paymentOptions));\n }, [paymentOptions]);\n\n useEffect(() => {\n createButton();\n }, [createButton])\n\n return {\n button,\n removeButton\n };\n}","import './style.scss';\n\nexport * from './payment-method';","import {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, initStripe as loadStripe, isCartPage} from '../util';\nimport {useErrorMessage} from \"./hooks\";\nimport GooglePayButton from './button';\nimport {BASE_PAYMENT_METHOD, BASE_PAYMENT_REQUEST} from './constants';\nimport google from '@googlepay';\nimport {Elements} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_googlepay_data');\n\nconst canMakePayment = (() => {\n const paymentsClient = new google.payments.api.PaymentsClient({\n environment: getData('environment'),\n merchantInfo: {\n merchantId: getData('merchantId'),\n merchantName: getData('merchantName')\n }\n });\n const isReadyToPayRequest = {...BASE_PAYMENT_REQUEST, allowedPaymentMethods: [BASE_PAYMENT_METHOD]};\n return paymentsClient.isReadyToPay(isReadyToPayRequest).then(() => {\n return true;\n }).catch(err => {\n console.log(err);\n return false;\n })\n})();\n\nconst GooglePayContent = ({getData, components, ...props}) => {\n const {ValidationInputError} = components;\n const {errorMessage, setErrorMessage} = useErrorMessage();\n return (\n <div className='wc-stripe-gpay-container'>\n <Elements stripe={loadStripe}>\n <GooglePayButton getData={getData}\n canMakePayment={canMakePayment}\n setErrorMessage={setErrorMessage}\n {...props}/>\n {errorMessage && <ValidationInputError errorMessage={errorMessage}/>}\n </Elements>\n </div>\n )\n}\n\nconst GooglePayEdit = ({getData, ...props}) => {\n const buttonType = getData('buttonStyle').buttonType;\n const src = getData('editorIcons')?.[buttonType] || 'long';\n return (\n <div className={`gpay-block-editor ${buttonType}`}>\n <img src={src}/>\n </div>\n )\n}\n\nregisterExpressPaymentMethod({\n name: getData('name'),\n canMakePayment: () => {\n if (getData('isAdmin')) {\n if (isCartPage()) {\n return getData('cartCheckoutEnabled');\n }\n return true;\n }\n if (isCartPage() && !getData('cartCheckoutEnabled')) {\n return false;\n }\n return loadStripe.then(stripe => {\n if (stripe.error) {\n return stripe;\n }\n return canMakePayment;\n });\n },\n content: <GooglePayContent getData={getData}/>,\n edit: <GooglePayEdit getData={getData}/>,\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: getData('showSaveOption'),\n features: getData('features')\n }\n})","import {getShippingOptionId, removeNumberPrecision, toCartAddress as mapAddressToCartAddress} from \"../util\";\nimport {formatPrice} from '../util';\nimport {getSetting} from '@woocommerce/settings'\n\nconst generalData = getSetting('stripeGeneralData');\n\nconst ADDRESS_MAPPINGS = {\n name: (address, name) => {\n address.first_name = name.split(' ').slice(0, -1).join(' ');\n address.last_name = name.split(' ').pop();\n return address;\n },\n countryCode: 'country',\n address1: 'address_1',\n address2: 'address_2',\n locality: 'city',\n administrativeArea: 'state',\n postalCode: 'postcode',\n email: 'email',\n phoneNumber: 'phone'\n}\n\nexport const getTransactionInfo = ({billing, processingCountry, totalPriceLabel}, status = 'ESTIMATED') => {\n const {cartTotal, cartTotalItems, currency} = billing;\n const transactionInfo = {\n countryCode: processingCountry,\n currencyCode: currency.code,\n totalPriceStatus: status,\n totalPrice: removeNumberPrecision(cartTotal.value, currency.minorUnit).toString(),\n displayItems: getDisplayItems(cartTotalItems, currency.minorUnit),\n totalPriceLabel\n }\n return transactionInfo;\n}\n\nexport const getPaymentRequestUpdate = ({billing, shippingData, processingCountry, totalPriceLabel}) => {\n const {needsShipping, shippingRates} = shippingData;\n let update = {\n newTransactionInfo: getTransactionInfo({\n billing, processingCountry, totalPriceLabel\n }, 'FINAL')\n }\n if (needsShipping) {\n update.newShippingOptionParameters = getShippingOptionParameters(shippingRates);\n }\n return update;\n}\n\n/**\n * Return an array of line item objects\n * @param cartTotalItems\n * @param unit\n * @returns {[]}\n */\nconst getDisplayItems = (cartTotalItems, unit = 2) => {\n let items = [];\n const keys = ['total_tax', 'total_shipping'];\n cartTotalItems.forEach(item => {\n if (0 < item.value || (item.key && keys.includes(item.key))) {\n items.push({\n label: item.label,\n type: 'LINE_ITEM',\n price: removeNumberPrecision(item.value, unit).toString()\n });\n }\n })\n return items;\n}\n\nexport const getShippingOptionParameters = (shippingRates) => {\n const shippingOptions = getShippingOptions(shippingRates);\n const shippingOptionIds = shippingOptions.map(option => option.id);\n let defaultSelectedOptionId = shippingOptionIds.slice(0, 1).shift();\n shippingRates.forEach((shippingPackage, idx) => {\n shippingPackage.shipping_rates.forEach(rate => {\n if (rate.selected) {\n defaultSelectedOptionId = getShippingOptionId(idx, rate.rate_id);\n }\n });\n });\n return {\n shippingOptions,\n defaultSelectedOptionId,\n }\n}\n\n//id label description\nexport const getShippingOptions = (shippingRates) => {\n let options = [];\n shippingRates.forEach((shippingPackage, idx) => {\n let rates = shippingPackage.shipping_rates.map(rate => {\n let txt = document.createElement('textarea');\n txt.innerHTML = rate.name;\n let price = formatPrice(rate.price, rate.currency_code);\n return {\n id: getShippingOptionId(idx, rate.rate_id),\n label: txt.value,\n description: `${price}`\n }\n });\n options = [...options, ...rates];\n });\n return options;\n}\n\nexport const toCartAddress = mapAddressToCartAddress(ADDRESS_MAPPINGS);\n","export * from './use-process-payment-intent';\nexport * from './use-after-process-payment';\nexport * from './use-setup-intent';\nexport * from './use-stripe-error';\nexport * from './use-exported-values';\nexport * from './use-payment-request';\nexport * from './use-payment-events';\nexport * from './use-breakpoint-width';\nexport * from './use-process-checkout-error';\nexport * from './use-deferred-payment-intent';","import {useEffect} from '@wordpress/element'\nimport {useStripe} from \"@stripe/react-stripe-js\";\nimport {handleCardAction} from \"../util\";\nimport {useProcessCheckoutError} from \"./use-process-checkout-error\";\n\nexport const useAfterProcessingPayment = (\n {\n getData,\n eventRegistration,\n responseTypes,\n activePaymentMethod,\n shouldSavePayment = false,\n messageContext = null\n }) => {\n const stripe = useStripe();\n const {onCheckoutAfterProcessingWithSuccess, onCheckoutAfterProcessingWithError} = eventRegistration;\n useProcessCheckoutError({\n responseTypes,\n subscriber: onCheckoutAfterProcessingWithError,\n messageContext\n });\n useEffect(() => {\n let unsubscribeAfterProcessingWithSuccess = onCheckoutAfterProcessingWithSuccess(async ({redirectUrl}) => {\n if (getData('name') === activePaymentMethod) {\n //check if response is in redirect. If so, open modal\n return await handleCardAction({\n redirectUrl,\n responseTypes,\n name: activePaymentMethod,\n savePaymentMethod: shouldSavePayment\n });\n }\n return null;\n })\n return () => unsubscribeAfterProcessingWithSuccess()\n }, [\n stripe,\n responseTypes,\n onCheckoutAfterProcessingWithSuccess,\n activePaymentMethod,\n shouldSavePayment\n ]);\n}","import {useState, useEffect, useCallback} from '@wordpress/element';\nimport {storeInCache, getFromCache} from \"../util\";\n\nexport const useBreakpointWidth = (\n {\n name,\n width,\n node,\n className\n }) => {\n const [windowWidth, setWindowWidth] = useState(window.innerWidth);\n const getMaxWidth = useCallback((name) => {\n const maxWidth = getFromCache(name);\n return maxWidth ? parseInt(maxWidth) : 0;\n }, []);\n const setMaxWidth = useCallback((name, width) => storeInCache(name, width), []);\n\n useEffect(() => {\n const el = typeof node === 'function' ? node() : node;\n\n if (el) {\n const maxWidth = getMaxWidth(name);\n if (!maxWidth || width > maxWidth) {\n setMaxWidth(name, width);\n }\n if (el.clientWidth < width) {\n el.classList.add(className);\n } else {\n if (el.clientWidth > maxWidth) {\n el.classList.remove(className);\n }\n }\n }\n }, [windowWidth, node]);\n useEffect(() => {\n const handleResize = () => setWindowWidth(window.innerWidth);\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n });\n}\n\nexport const useExpressBreakpointWidth = (\n {\n payment_method,\n width\n }) => {\n const node = useCallback(() => {\n const el = document.getElementById(`express-payment-method-${payment_method}`);\n return el ? el.parentNode : null;\n }, []);\n useBreakpointWidth({\n name: 'expressMaxWidth',\n width,\n node,\n className: 'wc-stripe-express__sm'\n });\n\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\nimport {useStripe, useElements} from \"@stripe/react-stripe-js\";\nimport {ensureErrorResponse, ensureSuccessResponse, getBillingDetailsFromAddress, StripeError, isNextActionRequired, getRoute, handleCardAction} from '../util';\n\nexport const useDeferredPaymentIntent = (\n {\n billingData,\n eventRegistration,\n responseTypes,\n name,\n shouldSavePayment,\n noticeContexts\n }\n) => {\n const {onPaymentProcessing, onCheckoutAfterProcessingWithSuccess} = eventRegistration;\n const currentData = useRef({billingData});\n const paymentMethodData = useRef({});\n const stripe = useStripe();\n const elements = useElements();\n\n const getSuccessResponse = useCallback((paymentMethod, shouldSavePayment) => {\n const response = {\n meta: {\n paymentMethodData: {\n [`${name}_token_key`]: paymentMethod,\n [`${name}_save_source_key`]: shouldSavePayment,\n ...paymentMethodData.current\n }\n }\n }\n return response;\n }, []);\n\n const addPaymentMethodData = useCallback((data) => {\n paymentMethodData.current = {...paymentMethodData.current, ...data};\n }, []);\n\n const createPaymentMethod = useCallback(async () => {\n const {billingData} = currentData.current;\n return await stripe.createPaymentMethod({\n elements,\n params: {\n billing_details: getBillingDetailsFromAddress(billingData)\n }\n });\n }, [stripe, elements]);\n\n const confirmPayment = useCallback(async () => {\n const {billingData} = currentData.current;\n return await stripe.confirmPayment({\n elements,\n confirmParams: {\n payment_method_data: {\n billing_details: getBillingDetailsFromAddress(billingData)\n }\n },\n redirect: 'if_required'\n });\n }, [stripe, elements]);\n\n useEffect(() => {\n currentData.current.billingData = billingData;\n });\n\n useEffect(() => {\n const unsubscribe = onPaymentProcessing(async () => {\n\n try {\n let paymentMethod = null;\n //let result = await stripe.retrievePaymentIntent(clientSecret);\n let result = null;\n if (result?.paymentIntent?.status === 'requires_action') {\n paymentMethod = result.paymentIntent.payment_method;\n await confirmPayment();\n } else {\n result = await createPaymentMethod();\n if (result.error) {\n throw new StripeError(result.error);\n }\n paymentMethod = result.paymentMethod.id;\n currentData.current.paymentMethod = paymentMethod;\n }\n return ensureSuccessResponse(responseTypes, getSuccessResponse(paymentMethod, shouldSavePayment));\n } catch (error) {\n return ensureErrorResponse(responseTypes, error, {messageContext: noticeContexts.PAYMENTS});\n }\n });\n return () => unsubscribe();\n }, [\n onPaymentProcessing,\n createPaymentMethod,\n confirmPayment,\n shouldSavePayment\n ]);\n\n useEffect(() => {\n const unsubscribe = onCheckoutAfterProcessingWithSuccess(async ({redirectUrl}) => {\n return await handleCardAction({\n redirectUrl,\n responseTypes,\n name,\n savePaymentMethod: shouldSavePayment,\n data: {\n [`${name}_token_key`]: currentData.current.paymentMethod\n }\n })\n });\n return () => unsubscribe();\n }, [\n onCheckoutAfterProcessingWithSuccess,\n confirmPayment,\n shouldSavePayment,\n name\n ]);\n\n return {\n createPaymentMethod,\n addPaymentMethodData\n }\n}","import {useRef} from '@wordpress/element';\n\nexport const useExportedValues = () => {\n const exportedValues = useRef({});\n return exportedValues.current;\n}","import {useEffect, useCallback, useRef, useState} from '@wordpress/element';\nimport {hasShippingRates} from '../util';\n\nexport const usePaymentEvents = (\n {\n billing,\n shippingData,\n eventRegistration\n }) => {\n const {onShippingRateSuccess, onShippingRateFail, onShippingRateSelectSuccess} = eventRegistration;\n const currentBilling = useRef(billing);\n const currentShipping = useRef(shippingData);\n const [handler, setHandler] = useState(null);\n const [paymentEvents, setPaymentEvent] = useState({\n onShippingChanged: false\n });\n const addPaymentEvent = useCallback((name, handler, execute = false) => {\n if (execute) {\n setHandler({[name]: handler});\n } else {\n setPaymentEvent({...paymentEvents, [name]: handler});\n }\n }, [paymentEvents, setPaymentEvent]);\n const removePaymentEvent = useCallback((name) => {\n if (paymentEvents[name]) {\n delete paymentEvents[name];\n setPaymentEvent(paymentEvents);\n }\n }, [paymentEvents]);\n\n const onShippingChanged = useCallback(() => {\n const shipping = currentShipping.current;\n const billing = currentBilling.current;\n if (paymentEvents.onShippingChanged && !shipping.isSelectingRate && !shipping.shippingRatesLoading) {\n const handler = paymentEvents.onShippingChanged;\n let success = true;\n if (!hasShippingRates(shipping.shippingRates)) {\n success = false;\n }\n handler(success, {\n billing,\n shipping\n });\n removePaymentEvent('onShippingChanged');\n }\n }, [paymentEvents, removePaymentEvent]);\n\n useEffect(() => {\n currentBilling.current = billing;\n currentShipping.current = shippingData;\n });\n\n useEffect(() => {\n if (handler) {\n if (handler.onShippingChanged) {\n handler.onShippingChanged(true, {\n billing: currentBilling.current,\n shipping: currentShipping.current\n })\n setHandler(null);\n }\n }\n }, [handler]);\n\n useEffect(() => {\n const unsubscribeShippingRateSuccess = onShippingRateSuccess(onShippingChanged);\n const unsubscribeShippingRateSelectSuccess = onShippingRateSelectSuccess(onShippingChanged);\n const unsubscribeShippingRateFail = onShippingRateFail(({hasInvalidAddress, hasError}) => {\n if (paymentEvents.onShippingChanged) {\n const handler = paymentEvents.onShippingChanged;\n handler(false);\n removePaymentEvent('onShippingChanged');\n }\n });\n\n return () => {\n unsubscribeShippingRateSuccess();\n unsubscribeShippingRateFail();\n unsubscribeShippingRateSelectSuccess();\n }\n }, [\n paymentEvents,\n onShippingRateSuccess,\n onShippingRateFail,\n onShippingRateSelectSuccess\n ]);\n\n return {addPaymentEvent, removePaymentEvent};\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\nimport {usePaymentEvents} from './use-payment-events';\nimport {getIntermediateAddress} from '../util';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\nimport {\n getDisplayItems,\n getShippingOptions,\n getSelectedShippingOption,\n isFieldRequired,\n toCartAddress as mapToCartAddress\n} from \"../util\";\n\nconst toCartAddress = mapToCartAddress();\n\nexport const usePaymentRequest = (\n {\n getData,\n onClose,\n stripe,\n billing,\n shippingData,\n eventRegistration,\n setPaymentMethod,\n exportedValues,\n canPay\n }) => {\n const {addPaymentEvent} = usePaymentEvents({\n billing,\n shippingData,\n eventRegistration\n });\n const {shippingAddress, needsShipping, shippingRates} = shippingData;\n const {billingData, cartTotalItems, currency, cartTotal} = billing;\n const [paymentRequest, setPaymentRequest] = useState(null);\n const paymentRequestOptions = useRef({});\n const currentShipping = useRef(shippingData)\n const currentBilling = useRef(billing);\n\n useEffect(() => {\n currentShipping.current = shippingData;\n currentBilling.current = billing;\n }, [shippingData]);\n\n useEffect(() => {\n if (stripe) {\n const options = {\n country: getData('countryCode'),\n currency: currency?.code.toLowerCase(),\n total: {\n amount: cartTotal.value,\n label: cartTotal.label,\n pending: true\n },\n requestPayerName: true,\n requestPayerEmail: isFieldRequired('email', billingData.country),\n requestPayerPhone: isFieldRequired(needsShipping ? 'shipping-phone' : 'phone', billingData.country),\n requestShipping: needsShipping,\n displayItems: getDisplayItems(cartTotalItems, currency)\n }\n if (options.requestShipping) {\n options.shippingOptions = getShippingOptions(shippingRates);\n }\n paymentRequestOptions.current = options;\n const paymentRequest = stripe.paymentRequest(paymentRequestOptions.current);\n paymentRequest.canMakePayment().then(result => {\n if (canPay(result)) {\n setPaymentRequest(paymentRequest);\n } else {\n setPaymentRequest(null);\n }\n });\n }\n }, [\n stripe,\n cartTotal.value,\n billingData.country,\n shippingRates,\n cartTotalItems,\n currency.code\n ]);\n\n useEffect(() => {\n if (paymentRequest) {\n if (paymentRequestOptions.current.requestShipping) {\n paymentRequest.on('shippingaddresschange', onShippingAddressChange);\n paymentRequest.on('shippingoptionchange', onShippingOptionChange);\n }\n paymentRequest.on('cancel', onClose);\n paymentRequest.on('paymentmethod', onPaymentMethodReceived);\n }\n }, [\n paymentRequest,\n onShippingAddressChange,\n onClose,\n onPaymentMethodReceived\n ]);\n\n const updatePaymentEvent = useCallback((event) => (success, {billing, shipping}) => {\n const {cartTotal, cartTotalItems, currency} = billing;\n const {shippingRates} = shipping;\n if (success) {\n event.updateWith({\n status: 'success',\n total: {\n amount: cartTotal.value,\n label: cartTotal.label,\n pending: false\n },\n displayItems: getDisplayItems(cartTotalItems, currency),\n shippingOptions: getShippingOptions(shippingRates)\n });\n } else {\n event.updateWith({status: 'invalid_shipping_address'});\n }\n }, []);\n\n const onShippingAddressChange = useCallback(event => {\n const {shippingAddress} = event;\n const shipping = currentShipping.current;\n const intermediateAddress = toCartAddress(shippingAddress);\n shipping.setShippingAddress({...shipping.shippingAddress, ...intermediateAddress});\n const addressEqual = isShallowEqual(getIntermediateAddress(shipping.shippingAddress), intermediateAddress);\n addPaymentEvent('onShippingChanged', updatePaymentEvent(event), addressEqual);\n }, [addPaymentEvent]);\n\n const onShippingOptionChange = useCallback(event => {\n const {shippingOption} = event;\n const shipping = currentShipping.current;\n shipping.setSelectedRates(...getSelectedShippingOption(shippingOption.id));\n addPaymentEvent('onShippingChanged', updatePaymentEvent(event));\n }, [addPaymentEvent]);\n\n const onPaymentMethodReceived = useCallback((paymentResponse) => {\n const {paymentMethod, payerName = null, payerEmail = null, payerPhone = null} = paymentResponse;\n // set address data\n let billingData = {payerName, payerEmail, payerPhone};\n if (paymentMethod?.billing_details.address) {\n billingData = toCartAddress(paymentMethod.billing_details.address, billingData);\n }\n exportedValues.billingData = billingData;\n\n if (paymentResponse.shippingAddress) {\n exportedValues.shippingAddress = toCartAddress(paymentResponse.shippingAddress, {payerPhone});\n }\n\n // set payment method\n setPaymentMethod(paymentMethod.id);\n paymentResponse.complete(\"success\");\n }, []);\n\n return {paymentRequest};\n}","import {useEffect} from '@wordpress/element';\n\nexport const useProcessCheckoutError = (\n {\n responseTypes,\n subscriber,\n messageContext = null\n }) => {\n useEffect(() => {\n const unsubscribe = subscriber((data) => {\n if (data?.processingResponse.paymentDetails?.stripeErrorMessage) {\n console.log(data.processingResponse.paymentDetails.stripeErrorMessage);\n return {\n type: responseTypes.ERROR,\n message: data.processingResponse.paymentDetails.stripeErrorMessage,\n messageContext\n };\n }\n return null;\n });\n return () => unsubscribe();\n }, [responseTypes, subscriber]);\n}","import {useEffect, useState, useCallback, useRef} from '@wordpress/element';\nimport {useStripe} from '@stripe/react-stripe-js';\nimport {\n ensureSuccessResponse,\n ensureErrorResponse,\n getBillingDetailsFromAddress,\n StripeError\n} from '../util';\n\nexport const useProcessPaymentIntent = (\n {\n getData,\n billing,\n shippingData,\n onPaymentProcessing,\n emitResponse,\n error,\n onSubmit,\n activePaymentMethod,\n paymentType = 'card',\n setupIntent = null,\n removeSetupIntent = null,\n shouldSavePayment = false,\n exportedValues = {},\n getPaymentMethodArgs = () => ({})\n }) => {\n const {billingData} = billing;\n const {shippingAddress} = shippingData;\n const {responseTypes} = emitResponse;\n const [paymentMethod, setPaymentMethod] = useState(null);\n const stripe = useStripe();\n const currentPaymentMethodArgs = useRef(getPaymentMethodArgs);\n const paymentMethodData = useRef({});\n useEffect(() => {\n currentPaymentMethodArgs.current = getPaymentMethodArgs;\n }, [getPaymentMethodArgs]);\n\n const addPaymentMethodData = useCallback((data) => {\n paymentMethodData.current = {...paymentMethodData.current, ...data};\n }, []);\n\n const getCreatePaymentMethodArgs = useCallback(() => {\n const args = {\n type: paymentType,\n billing_details: getBillingDetailsFromAddress(exportedValues?.billingData ? exportedValues.billingData : billingData)\n }\n return {...args, ...currentPaymentMethodArgs.current()};\n }, [billingData, paymentType, getPaymentMethodArgs]);\n\n const getSuccessResponse = useCallback((paymentMethodId, shouldSavePayment) => {\n const response = {\n meta: {\n paymentMethodData: {\n [`${getData('name')}_token_key`]: paymentMethodId,\n [`${getData('name')}_save_source_key`]: shouldSavePayment,\n ...paymentMethodData.current\n }\n }\n }\n if (exportedValues?.billingData) {\n response.meta.billingData = exportedValues.billingData;\n response.meta.billingAddress = exportedValues.billingData;\n }\n if (exportedValues?.shippingAddress) {\n response.meta.shippingData = {address: exportedValues.shippingAddress};\n }\n return response;\n }, [billingData, shippingAddress]);\n\n useEffect(() => {\n if (paymentMethod && typeof paymentMethod === 'string') {\n onSubmit();\n }\n }, [paymentMethod, onSubmit]);\n\n useEffect(() => {\n const unsubscribeProcessingPayment = onPaymentProcessing(async () => {\n if (activePaymentMethod !== getData('name')) {\n return null;\n }\n let [result, paymentMethodId] = [null, null];\n try {\n if (error) {\n throw new StripeError(error);\n }\n if (setupIntent) {\n result = await stripe.confirmCardSetup(setupIntent.client_secret, {\n payment_method: getCreatePaymentMethodArgs()\n });\n if (result.error) {\n throw new StripeError(result.error);\n }\n paymentMethodId = result.setupIntent.payment_method;\n removeSetupIntent();\n } else {\n // payment method has already been created.\n if (paymentMethod) {\n paymentMethodId = paymentMethod;\n } else {\n //create the payment method\n result = await stripe.createPaymentMethod(getCreatePaymentMethodArgs());\n if (result.error) {\n throw new StripeError(result.error);\n }\n paymentMethodId = result.paymentMethod.id;\n }\n }\n return ensureSuccessResponse(responseTypes, getSuccessResponse(paymentMethodId, shouldSavePayment));\n } catch (e) {\n console.log(e);\n setPaymentMethod(null);\n return ensureErrorResponse(responseTypes, e.error);\n }\n\n });\n return () => unsubscribeProcessingPayment();\n }, [\n paymentMethod,\n billingData,\n onPaymentProcessing,\n stripe,\n setupIntent,\n activePaymentMethod,\n shouldSavePayment\n ]);\n return {\n setPaymentMethod,\n getCreatePaymentMethodArgs,\n addPaymentMethodData\n };\n}","import {useEffect, useState, useCallback} from '@wordpress/element';\nimport apiFetch from \"@wordpress/api-fetch\";\nimport {\n getSettings,\n getRoute,\n cartContainsPreOrder,\n cartContainsSubscription,\n getFromCache,\n storeInCache,\n deleteFromCache\n} from '../util';\n\nexport const useSetupIntent = (\n {\n cartTotal,\n setError\n }) => {\n const [setupIntent, setSetupIntent] = useState(getFromCache('setupIntent'));\n\n useEffect(() => {\n const createSetupIntent = async () => {\n if (setupIntent) {\n return;\n }\n // only create intent under certain conditions\n let result = await apiFetch({\n url: getRoute('create/setup_intent'),\n method: 'POST'\n });\n if (result.code) {\n setError(result.message);\n } else {\n storeInCache('setupIntent', result.intent);\n setSetupIntent(result.intent);\n }\n }\n if (cartContainsPreOrder() || (cartContainsSubscription() && cartTotal.value == 0)) {\n if (!setupIntent) {\n createSetupIntent();\n }\n } else {\n setSetupIntent(null);\n }\n }, [cartTotal.value]);\n const removeSetupIntent = useCallback(() => {\n deleteFromCache('setupIntent');\n }, [cartTotal.value]);\n return {setupIntent, removeSetupIntent};\n}","import {useState} from '@wordpress/element'\n\nexport const useStripeError = () => {\n const [error, setError] = useState(false);\n return [error, setError];\n}","export * from './use-link';","import {useEffect, useState, useRef} from '@wordpress/element';\nimport {useStripe, useElements} from \"@stripe/react-stripe-js\";\nimport {toCartAddress as mapToCartAddress, ensureSuccessResponse, ensureErrorResponse, getBillingDetailsFromAddress} from '../../util';\n\nconst toCartAddress = mapToCartAddress();\n\nexport const useLink = (\n {\n email,\n eventRegistration,\n onClick,\n onSubmit,\n activePaymentMethod,\n responseTypes,\n ...props\n }) => {\n const [link, setLink] = useState();\n const stripe = useStripe();\n const elements = useElements();\n const currentData = useRef();\n const linkData = useRef();\n const {onPaymentProcessing} = eventRegistration;\n useEffect(() => {\n currentData.current = {onClick, onSubmit}\n });\n\n useEffect(() => {\n if (stripe && elements && !link) {\n setLink(stripe?.linkAutofillModal(elements));\n }\n }, [\n stripe,\n elements,\n link\n ]);\n\n useEffect(() => {\n if (link) {\n link.launch({email});\n }\n }, [link, email]);\n\n useEffect(() => {\n if (link) {\n link.on('autofill', event => {\n linkData.current = event;\n currentData.current.onSubmit();\n\n });\n link.on('authenticated', event => {\n currentData.current.onClick();\n })\n }\n }, [link]);\n\n useEffect(() => {\n const unsubscribe = onPaymentProcessing(async () => {\n if (activePaymentMethod !== 'stripe_link_checkout') {\n return null;\n }\n const response = {meta: {}};\n const {shippingAddress = null, billingAddress = null} = linkData.current.value;\n if (billingAddress) {\n response.meta.billingData = toCartAddress({...billingAddress.address, recipient: billingAddress.name});\n response.meta.billingAddress = response.meta.billingData;\n }\n if (shippingAddress) {\n response.meta.shippingData = {address: toCartAddress({...shippingAddress.address, recipient: shippingAddress.name})};\n }\n // update the payment intent\n try {\n const result = await stripe.createPaymentMethod({\n elements,\n params: {\n billing_details: getBillingDetailsFromAddress(response.meta.billingData)\n }\n });\n if (result.error) {\n throw result.error;\n }\n response.meta.paymentMethodData = {\n stripe_cc_token_key: result.paymentMethod.id,\n stripe_cc_save_source_key: false,\n }\n return ensureSuccessResponse(responseTypes, response);\n } catch (error) {\n console.log(error);\n return ensureErrorResponse(responseTypes, error);\n }\n });\n\n return () => unsubscribe();\n }, [\n onPaymentProcessing,\n stripe,\n elements,\n activePaymentMethod\n ]);\n\n return link;\n}","import {useEffect, useState} from '@wordpress/element';\nimport {Elements, useStripe, useElements, PaymentElement} from \"@stripe/react-stripe-js\";\nimport {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\nimport {useLink} from './hooks';\nimport {getSettings, initStripe as loadStripe, canMakePayment} from \"../util\";\n\nconst getData = getSettings('stripe_link_checkout_data');\n\nexport const LinkComponent = (props) => {\n const {cartTotal, currency} = props.billing;\n let options = {\n mode: 'payment',\n amount: cartTotal.value,\n currency: currency?.code?.toLowerCase(),\n payment_method_types: ['card', 'link']\n }\n if (cartTotal.value === 0) {\n options = {\n mode: 'setup'\n }\n }\n return (\n <Elements stripe={loadStripe} options={options}>\n <LinkCheckout {...props}/>\n </Elements>\n );\n return null;\n}\n\nconst LinkCheckout = (\n {\n billing,\n shipping,\n eventRegistration,\n onClick,\n onSubmit,\n activePaymentMethod,\n emitResponse,\n ...props\n }) => {\n const {billingData, currency} = billing;\n const {responseTypes, noticeContexts} = emitResponse;\n const {email} = billingData;\n useLink({\n email,\n eventRegistration,\n onClick,\n onSubmit,\n activePaymentMethod,\n responseTypes\n });\n const options = {\n fields: {\n billingDetails: {address: 'never'}\n },\n wallets: {applePay: 'never', googlePay: 'never'}\n };\n return (\n <div style={{display: 'none'}}>\n <PaymentElement options={options}/>\n </div>\n );\n}\n\nregisterExpressPaymentMethod({\n name: getData('name'),\n canMakePayment: (props) => {\n return true;\n },\n content: <LinkComponent/>,\n edit: <LinkComponent/>,\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: getData('showSaveOption'),\n features: getData('features')\n }\n})","import {useState, useEffect} from '@wordpress/element';\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, initStripe} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {AfterpayClearpayMessageElement, Elements} from \"@stripe/react-stripe-js\";\nimport {sprintf, __} from '@wordpress/i18n';\nimport {ExperimentalOrderMeta, TotalsWrapper} from '@woocommerce/blocks-checkout';\nimport {registerPlugin} from '@wordpress/plugins';\n\nconst getData = getSettings('stripe_afterpay_data');\nlet variablesHandler;\nlet globalVariables = {};\nconst setVariablesHandler = (handler) => {\n variablesHandler = handler;\n}\n\nconst isAvailable = ({total, currency, country}) => {\n let available = false;\n const billingCountry = country;\n const requiredParams = getData('requiredParams');\n const accountCountry = getData('accountCountry');\n const requiredParamObj = requiredParams.hasOwnProperty(currency) ? requiredParams[currency] : false;\n if (requiredParamObj) {\n let countries = requiredParamObj?.[0];\n if (!Array.isArray(countries)) {\n countries = [countries];\n }\n available = countries.indexOf(accountCountry) > -1\n && (currency !== 'EUR' || !billingCountry || accountCountry === billingCountry)\n && (total > requiredParamObj?.[1] && total < requiredParamObj?.[2]);\n }\n return available;\n}\n\nconst PaymentMethodLabel = ({getData}) => {\n const [variables, setVariables] = useState({\n amount: getData('cartTotal'),\n currency: getData('currency'),\n isCartEligible: getData('msgOptions').isEligible,\n ...globalVariables\n });\n setVariablesHandler(setVariables);\n return (\n <Elements stripe={initStripe} options={getData('elementOptions')}>\n <div className='wc-stripe-blocks-afterpay__label'>\n <AfterpayClearpayMessageElement options={{\n ...getData('msgOptions'),\n ...{\n amount: variables.amount,\n currency: variables.currency,\n isCartEligible: variables.isCartEligible\n }\n }}/>\n </div>\n </Elements>\n );\n}\n\nconst AfterpayPaymentMethod = ({content, billing, shippingData, ...props}) => {\n const Content = content;\n const {cartTotal, currency, billingData: {country}} = billing;\n const {needsShipping} = shippingData\n const total = parseInt(cartTotal.value) / 10 ** currency.minorUnit;\n const isCartEligible = isAvailable({total, currency: currency.code, country});\n useEffect(() => {\n variablesHandler({\n amount: cartTotal.value,\n currency: currency.code,\n isCartEligible\n });\n }, [\n cartTotal.value,\n currency.code,\n ]);\n return (\n <>\n <div className='wc-stripe-blocks-payment-method-content'>\n {isCartEligible && <div className=\"wc-stripe-blocks-afterpay-offsite__container\">\n <div className=\"wc-stripe-blocks-afterpay__offsite\">\n <img src={getData('offSiteSrc')}/>\n <p>{sprintf(__('After clicking \"%s\", you will be redirected to Afterpay to complete your purchase securely.', 'woo-stripe-payment'), getData('placeOrderButtonLabel'))}</p>\n </div>\n </div>}\n <Content {...{...props, billing, shippingData}}/>\n </div>\n </>\n );\n}\n\nconst OrderItemMessaging = ({cart, extensions, context}) => {\n const {cartTotals, cartNeedsShipping: needsShipping, billingAddress: {country}} = cart;\n const {total_price, currency_code: currency} = cartTotals;\n const totalInCents = parseInt(cartTotals.total_price);\n const total = parseInt(cartTotals.total_price) / (10 ** cartTotals.currency_minor_unit);\n if (!isAvailable({total, currency, country})) {\n return null;\n }\n return (\n <TotalsWrapper>\n <Elements stripe={initStripe} options={getData('elementOptions')}>\n <div className='wc-stripe-blocks-afterpay-totals__item wc-block-components-totals-item'>\n <AfterpayClearpayMessageElement options={{\n ...getData('msgOptions'),\n ...{\n amount: totalInCents,\n currency,\n isCartEligible: isAvailable({total, currency, country})\n }\n }}/>\n </div>\n </Elements>\n </TotalsWrapper>\n );\n}\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n getData={getData}/>,\n ariaLabel: __('Afterpay', 'woo-stripe-payment'),\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData, ({settings, cartTotals, billingData}) => {\n const {currency_code: currency, currency_minor_unit, total_price} = cartTotals;\n const {country} = billingData;\n const total = parseInt(total_price) / (10 ** currency_minor_unit);\n if (variablesHandler) {\n variablesHandler({\n amount: parseInt(cartTotals.total_price),\n currency,\n isCartEligible: isAvailable({total, currency, country})\n });\n } else {\n globalVariables = {\n amount: parseInt(cartTotals.total_price),\n currency,\n isCartEligible: isAvailable({total, currency, country})\n };\n }\n const available = isAvailable({total, currency, country});\n if (!available && !settings('hideIneligible')) {\n return true;\n }\n return available;\n }),\n content: <AfterpayPaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmAfterpayClearpayPayment'}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n });\n\n const render = () => {\n return (\n <ExperimentalOrderMeta>\n <OrderItemMessaging/>\n </ExperimentalOrderMeta>\n )\n }\n registerPlugin('wc-stripe', {\n render: render,\n scope: 'woocommerce-checkout'\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {canMakePayment, LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel} from \"../../components/checkout/payment-method-label\";\nimport {PaymentMethod} from \"../../components/checkout\";\n\nconst getData = getSettings('stripe_alipay_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Alipay',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n confirmationMethod={'confirmAlipayPayment'}\n getData={getData}/>,\n edit: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}\n","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\n\nconst getData = getSettings('stripe_bancontact_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Bancontact',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n confirmationMethod={'confirmBancontactPayment'}\n getData={getData}/>,\n edit: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {AuBankAccountElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_becs_data');\n\nconst BecsPaymentMethod = (props) => {\n return (\n <>\n <PaymentMethod {...props} />\n <div className={'wc-stripe-blocks-mandate becs-mandate'}\n dangerouslySetInnerHTML={{__html: props.getData('mandate')}}/>\n </>\n );\n}\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'BECS',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <BecsPaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmAuBecsDebitPayment'}\n component={AuBankAccountElement}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {useState, useEffect, useCallback} from '@wordpress/element';\nimport {__} from '@wordpress/i18n';\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport classnames from 'classnames';\nimport {ensureErrorResponse, ensureSuccessResponse, getSettings, isTestMode} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\n\nconst getData = getSettings('stripe_boleto_data');\n\nconst BoletoPaymentMethodContainer = ({eventRegistration, ...props}) => {\n const [taxId, setTaxId] = useState('');\n const [isActive, setIsActive] = useState(false);\n const {onPaymentProcessing} = eventRegistration;\n const callback = useCallback(() => {\n return {\n boleto: {\n tax_id: taxId\n }\n };\n }, [taxId]);\n\n useEffect(() => {\n const unsubscribe = onPaymentProcessing(() => {\n if (!taxId) {\n return ensureErrorResponse(props.emitResponse.responseTypes, __('Please enter a valid CPF/CNPJ value', 'woo-stripe-payment'));\n }\n return ensureSuccessResponse(props.emitResponse.responseTypes, {\n meta: {\n paymentMethodData: {\n wc_stripe_boleto_tax_id: taxId\n }\n }\n });\n })\n return () => unsubscribe();\n }, [onPaymentProcessing, taxId]);\n return (\n <>\n <div className={classnames('wc-block-components-text-input', {\n 'is-active': isActive || taxId\n })}>\n <input\n type='text'\n id='wc-stripe-boleto-tax_id'\n onChange={e => setTaxId(e.target.value)}\n onFocus={() => setIsActive(true)}\n onBlur={() => setIsActive(false)}/>\n <label htmlFor='wc-stripe-boleto-tax_id'>{__(' CPF / CNPJ', ' woo-stripe-payment')}</label>\n </div>\n {isTestMode() &&\n <div className='wc-stripe-boleto__description'>\n <p>{__('Test mode values', 'woo-stripe-payment')}</p>\n <div>\n <label>CPF:</label>&nbsp;<span>000.000.000-00</span>\n </div>\n <div>\n <label>CNPJ:</label>&nbsp;<span>00.000.000/0000-00</span>\n </div>\n </div>}\n {!isTestMode() &&\n <div className=\"wc-stripe-boleto__description\">\n <p>{__('Accepted formats', 'woo-stripe-payment')}</p>\n <div>\n <label>CPF:</label>&nbsp;\n <span>{__('XXX.XXX.XXX-XX or XXXXXXXXXXX', 'woo-stripe-payment')}</span>\n </div>\n <div>\n <label>CNPJ:</label>&nbsp;\n <span>{__('XX.XXX.XXX/XXXX-XX or XXXXXXXXXXXXXX', 'woo-stripe-payment')}</span>\n </div>\n </div>}\n <LocalPaymentIntentContent callback={callback} {...{...props, ...{eventRegistration}}}/>\n </>\n )\n}\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Boleto',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={BoletoPaymentMethodContainer}\n getData={getData}\n confirmationMethod={'confirmBoletoPayment'}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {canMakePayment, LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {EpsBankElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_eps_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'EPS',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n confirmationMethod={'confirmEpsPayment'}\n component={EpsBankElement}\n getData={getData}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {FpxBankElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_fpx_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'FPX',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmIdealPayment'}\n component={FpxBankElement}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\n\nconst getData = getSettings('stripe_giropay_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Giropay',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n confirmationMethod={'confirmGiropayPayment'}\n getData={getData}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\n\nconst getData = getSettings('stripe_grabpay_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'GrabPay',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmGrabPayPayment'}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","export * from './use-after-process-local-payment';\nexport * from './use-validate-checkout';\nexport * from './use-create-source';","import {useEffect, useRef} from '@wordpress/element';\nimport {useStripe} from \"@stripe/react-stripe-js\";\nimport {ensureErrorResponse, getBillingDetailsFromAddress, StripeError} from \"../../util\";\n\nexport const useAfterProcessLocalPayment = (\n {\n getData,\n billingData,\n eventRegistration,\n responseTypes,\n activePaymentMethod,\n confirmationMethod,\n getPaymentMethodArgs = () => ({})\n }\n) => {\n const stripe = useStripe();\n const {onCheckoutAfterProcessingWithSuccess, onCheckoutAfterProcessingWithError} = eventRegistration;\n const currentBillingData = useRef(billingData);\n const currentPaymentMethodArgs = useRef(getPaymentMethodArgs);\n useEffect(() => {\n currentBillingData.current = billingData;\n }, [billingData]);\n\n useEffect(() => {\n currentPaymentMethodArgs.current = getPaymentMethodArgs;\n }, [getPaymentMethodArgs]);\n\n useEffect(() => {\n const unsubscribeAfterProcessingWithSuccess = onCheckoutAfterProcessingWithSuccess(async ({redirectUrl}) => {\n if (getData('name') === activePaymentMethod) {\n try {\n let match = redirectUrl.match(/#response=(.+)/);\n if (match) {\n let {client_secret, return_url, ...order} = JSON.parse(window.atob(decodeURIComponent(match[1])));\n let result = await stripe[confirmationMethod](client_secret, {\n payment_method: {\n billing_details: getBillingDetailsFromAddress(currentBillingData.current),\n ...currentPaymentMethodArgs.current(currentBillingData.current)\n },\n return_url\n });\n if (result.error) {\n throw new StripeError(result.error);\n }\n window.location = decodeURI(order.order_received_url);\n }\n } catch (e) {\n console.log(e);\n return ensureErrorResponse(responseTypes, e.error);\n }\n }\n })\n return () => unsubscribeAfterProcessingWithSuccess();\n }, [\n stripe,\n onCheckoutAfterProcessingWithSuccess,\n onCheckoutAfterProcessingWithError\n ]);\n}","import {useState, useEffect, useRef, useCallback} from '@wordpress/element';\nimport {\n getDefaultSourceArgs,\n ensureSuccessResponse,\n ensureErrorResponse,\n StripeError\n} from \"../../util\";\nimport {useStripe, useElements} from \"@stripe/react-stripe-js\";\nimport {__} from '@wordpress/i18n';\n\nexport const useCreateSource = (\n {\n getData,\n billing,\n shippingAddress,\n onPaymentProcessing,\n responseTypes,\n getSourceArgs = false,\n element = false\n }) => {\n const [source, setSource] = useState(false);\n const [isValid, setIsValid] = useState(false);\n const currentValues = useRef({\n billing,\n shippingAddress,\n });\n const stripe = useStripe();\n const elements = useElements();\n useEffect(() => {\n currentValues.current = {\n billing,\n shippingAddress\n }\n });\n\n const getSourceArgsInternal = useCallback(() => {\n const {billing} = currentValues.current;\n const {cartTotal, currency, billingData} = billing;\n let args = getDefaultSourceArgs({\n type: getData('paymentType'),\n amount: cartTotal.value,\n billingData,\n currency: currency.code,\n returnUrl: getData('returnUrl')\n });\n if (getSourceArgs) {\n args = getSourceArgs(args, {billingData});\n }\n return args;\n }, []);\n\n const getSuccessData = useCallback((sourceId) => {\n return {\n meta: {\n paymentMethodData: {\n [`${getData('name')}_token_key`]: sourceId\n }\n }\n }\n }, []);\n\n useEffect(() => {\n const unsubscribe = onPaymentProcessing(async () => {\n if (source) {\n return ensureSuccessResponse(responseTypes, getSuccessData(source.id));\n }\n // create the source\n try {\n let result;\n if (element) {\n // validate the element\n if (!isValid) {\n throw __('Please enter your payment info before proceeding.', 'woo-stripe-payment');\n }\n result = await stripe.createSource(elements.getElement(element), getSourceArgsInternal());\n } else {\n result = await stripe.createSource(getSourceArgsInternal());\n }\n if (result.error) {\n throw new StripeError(result.error);\n }\n setSource(result.source);\n return ensureSuccessResponse(responseTypes, getSuccessData(result.source.id));\n } catch (err) {\n console.log(err);\n return ensureErrorResponse(responseTypes, err.error || err);\n }\n });\n return () => unsubscribe();\n }, [\n source,\n onPaymentProcessing,\n stripe,\n responseTypes,\n element,\n isValid,\n setIsValid\n ]);\n return {setIsValid};\n}","import {useEffect, useRef, useState} from '@wordpress/element';\nimport {ensureErrorResponse} from \"../../util\";\nimport {__} from \"@wordpress/i18n\";\n\nexport const useValidateCheckout = (\n {\n subscriber,\n responseTypes,\n component = null,\n msg = __('Please enter your payment info before proceeding.', 'woo-stripe-payment')\n }) => {\n const [isValid, setIsValid] = useState(false);\n\n useEffect(() => {\n const unsubscribe = subscriber(() => {\n if (component && !isValid) {\n return ensureErrorResponse(responseTypes, msg);\n }\n return true;\n });\n return () => unsubscribe();\n }, [\n subscriber,\n isValid,\n setIsValid,\n responseTypes,\n component\n ]);\n return {isValid, setIsValid};\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {IdealBankElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_ideal_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Ideal',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmIdealPayment'}\n component={IdealBankElement}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import './klarna';\nimport './ideal';\nimport './p24';\nimport './bancontact';\nimport './giropay';\nimport './eps';\nimport './multibanco';\nimport './sepa';\nimport './sofort';\nimport './wechat';\nimport './fpx';\nimport './becs';\nimport './grabpay';\nimport './alipay'\nimport './afterpay';\nimport './boleto';\nimport './oxxo';","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, isTestMode} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {__} from \"@wordpress/i18n\";\n\nconst getData = getSettings('stripe_klarna_data');\n\nconst KlarnaPaymentMethod = (props) => {\n return (\n <>\n {isTestMode() &&\n <div className=\"wc-stripe-klarna__testmode\">\n <label>{__('Test mode sms', 'woo-stripe-payment')}:</label>&nbsp;<span>123456</span>\n </div>}\n <LocalPaymentIntentContent {...props}/>\n </>\n )\n}\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Klarna',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData, ({settings, billingData, cartTotals}) => {\n const {country} = billingData;\n const {currency_code: currency} = cartTotals;\n const requiredParams = settings('requiredParams');\n return [currency] in requiredParams && requiredParams[currency].includes(country);\n }),\n content: <PaymentMethod\n content={KlarnaPaymentMethod}\n getData={getData}\n confirmationMethod={'confirmKlarnaPayment'}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {useCallback} from '@wordpress/element';\nimport {useElements, Elements} from \"@stripe/react-stripe-js\";\nimport {initStripe as loadStripe, cartContainsSubscription, cartContainsPreOrder} from '../util'\nimport {useAfterProcessLocalPayment, useValidateCheckout, useCreateSource} from \"./hooks\";\nimport {useProcessCheckoutError} from \"../hooks\";\n\n/**\n * Return true if the local payment method can be used.\n * @param settings\n * @returns {function({billingData: *, [p: string]: *}): *}\n */\nexport const canMakePayment = (settings, callback = false) => ({billingData, cartTotals, ...props}) => {\n const {currency_code} = cartTotals;\n const {country} = billingData;\n const countries = settings('countries');\n const type = settings('allowedCountries');\n const supports = settings('features');\n let canMakePayment = false;\n if (settings('isAdmin')) {\n canMakePayment = true;\n } else {\n // Check if there are any subscriptions or pre-orders in the cart.\n if (cartContainsSubscription() && !supports.includes('subscriptions')) {\n return false;\n } else if (cartContainsPreOrder() && !supports.includes('pre-orders')) {\n return false;\n }\n if (settings('currencies').includes(currency_code)) {\n if (type === 'all_except') {\n canMakePayment = !settings('exceptCountries').includes(country);\n } else if (type === 'specific') {\n canMakePayment = settings('specificCountries').includes(country);\n } else {\n canMakePayment = countries.length > 0 ? countries.includes(country) : true;\n }\n }\n if (callback && canMakePayment) {\n canMakePayment = callback({settings, billingData, cartTotals, ...props});\n }\n }\n return canMakePayment;\n}\n\nexport const LocalPaymentIntentContent = ({getData, ...props}) => {\n return (\n <Elements stripe={loadStripe} options={getData('elementOptions')}>\n <LocalPaymentIntentMethod {...{...props, getData}}/>\n </Elements>\n )\n}\n\nexport const LocalPaymentSourceContent = (props) => {\n return (\n <Elements stripe={loadStripe}>\n <LocalPaymentSourceMethod {...props}/>\n </Elements>\n )\n}\n\nconst LocalPaymentSourceMethod = (\n {\n getData,\n billing,\n shippingData,\n emitResponse,\n eventRegistration,\n getSourceArgs = false,\n element = false\n }) => {\n const {shippingAddress} = shippingData;\n const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;\n const {responseTypes, noticeContexts} = emitResponse;\n const onChange = (event) => {\n setIsValid(event.complete);\n }\n const {setIsValid} = useCreateSource({\n getData,\n billing,\n shippingAddress,\n onPaymentProcessing,\n responseTypes,\n getSourceArgs,\n element\n });\n\n if (element) {\n return (\n <LocalPaymentElementContainer\n name={getData('name')}\n options={getData('paymentElementOptions')}\n onChange={onChange}\n element={element}/>\n )\n }\n return null;\n}\n\nconst LocalPaymentIntentMethod = (\n {\n getData,\n billing,\n emitResponse,\n eventRegistration,\n activePaymentMethod,\n confirmationMethod = null,\n component = null,\n callback = null\n }) => {\n const elements = useElements();\n const {billingData} = billing;\n const {onPaymentProcessing, onCheckoutAfterProcessingWithError} = eventRegistration;\n const {responseTypes, noticeContexts} = emitResponse;\n const getPaymentMethodArgs = useCallback((billingData) => {\n if (component) {\n return {\n [getData('paymentType')]: elements.getElement(component)\n }\n } else if (callback) {\n return callback(billingData);\n }\n return {};\n }, [\n elements,\n callback\n ]);\n const {setIsValid} = useValidateCheckout({\n subscriber: onPaymentProcessing,\n responseTypes,\n component\n }\n );\n\n useAfterProcessLocalPayment({\n getData,\n billingData,\n eventRegistration,\n responseTypes,\n activePaymentMethod,\n confirmationMethod,\n getPaymentMethodArgs\n });\n useProcessCheckoutError({\n responseTypes,\n subscriber: onCheckoutAfterProcessingWithError,\n messageContext: noticeContexts.PAYMENT\n });\n if (component) {\n const onChange = (event) => setIsValid(!event.empty)\n return (\n <LocalPaymentElementContainer\n name={getData('name')}\n options={getData('paymentElementOptions')}\n onChange={onChange}\n element={component}\n callback={callback}/>\n )\n }\n return null;\n}\n\nconst LocalPaymentElementContainer = ({name, onChange, element, options, ...props}) => {\n const Tag = element;\n return (\n <div className={`wc-stripe-local-payment-container ${name} ${Tag.displayName}`}>\n <Tag options={options} onChange={onChange} {...props}/>\n </div>\n )\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentSourceContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\n\nconst getData = getSettings('stripe_multibanco_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'MultiBanco',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,\n edit: <PaymentMethod content={LocalPaymentSourceContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}\n","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {IdealBankElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_oxxo_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'OXXO',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmOxxoPayment'}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {P24BankElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_p24_data');\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'P24',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmP24Payment'}\n component={P24BankElement}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}\n","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, cartContainsPreOrder, cartContainsSubscription} from \"../util\";\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment, LocalPaymentIntentContent} from \"./local-payment-method\";\nimport {IbanElement} from \"@stripe/react-stripe-js\";\n\nconst getData = getSettings('stripe_sepa_data');\n\nconst LocalPaymentMethod = (PaymentMethod) => (props) => {\n return (\n <>\n <PaymentMethod {...props}/>\n <div className={'wc-stripe-blocks-mandate sepa-mandate'}\n dangerouslySetInnerHTML={{__html: props.getData('mandate')}}/>\n </>\n )\n}\n\nconst SepaPaymentMethod = LocalPaymentMethod(PaymentMethod);\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'SEPA',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <SepaPaymentMethod\n content={LocalPaymentIntentContent}\n getData={getData}\n confirmationMethod={'confirmSepaDebitPayment'}\n component={IbanElement}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}","import {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings} from \"../util\";\nimport {canMakePayment, LocalPaymentIntentContent} from './local-payment-method';\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\n\nconst getData = getSettings('stripe_sofort_data');\n\nconst getConfirmationArgs = (billingData) => {\n return {sofort: {country: billingData.country}};\n}\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'Sofort',\n placeOrderButtonLabel: getData('placeOrderButtonLabel'),\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod\n content={LocalPaymentIntentContent}\n confirmationMethod={'confirmSofortPayment'}\n getData={getData}\n callback={getConfirmationArgs}/>,\n edit: <PaymentMethod content={LocalPaymentIntentContent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}\n","import {useEffect, useRef, useState, useCallback} from '@wordpress/element';\nimport {registerPaymentMethod} from '@woocommerce/blocks-registry';\nimport {\n getSettings,\n initStripe as loadStripe,\n getDefaultSourceArgs,\n isAddressValid,\n StripeError,\n isTestMode,\n ensureSuccessResponse,\n getErrorMessage,\n storeInCache,\n getFromCache,\n deleteFromCache\n} from \"../util\";\nimport {PaymentMethodLabel, PaymentMethod} from \"../../components/checkout\";\nimport {canMakePayment} from \"./local-payment-method\";\nimport {Elements} from \"@stripe/react-stripe-js\";\nimport {useValidateCheckout} from \"./hooks\";\nimport {__} from '@wordpress/i18n';\n//import QRCode from 'QRCode';\nimport {useStripe} from \"@stripe/react-stripe-js\";\nimport {useStripeError} from \"../hooks\";\n\nconst getData = getSettings('stripe_wechat_data');\n\nconst WeChatComponent = (props) => {\n return (\n <Elements stripe={loadStripe}>\n <WeChatPaymentMethod {...props}/>\n </Elements>\n )\n}\n\nconst WeChatPaymentMethod = (\n {\n getData,\n billing,\n shippingData,\n emitResponse,\n eventRegistration,\n components\n }) => {\n const size = parseInt(getData('qrSize'));\n const {responseTypes} = emitResponse;\n const {onPaymentProcessing, onCheckoutAfterProcessingWithSuccess} = eventRegistration;\n const {ValidationInputError} = components;\n const {isValid, setIsValid} = useValidateCheckout({\n subscriber: eventRegistration.onPaymentProcessing,\n responseTypes: emitResponse.responseTypes,\n msg: __('Please scan your QR code to continue with payment.', 'woo-stripe-payment')\n });\n\n const {source, error, deleteSourceFromStorage} = useCreateSource({\n getData,\n billing,\n responseTypes,\n subscriber: onPaymentProcessing\n })\n\n /**\n * delete the source from storage once payment is successful.\n * If test mode, redirect to the Stripe test url.\n * If live mode, redirect to the return Url.\n */\n useEffect(() => {\n const unsubscribe = onCheckoutAfterProcessingWithSuccess(() => {\n deleteSourceFromStorage();\n return ensureSuccessResponse(responseTypes);\n });\n return () => unsubscribe();\n }, [\n source,\n onCheckoutAfterProcessingWithSuccess,\n deleteSourceFromStorage\n ]);\n\n useEffect(() => {\n if (source) {\n setIsValid(true);\n }\n }, [source]);\n\n if (source) {\n return (\n <QRCodeComponent text={source.wechat.qr_code_url} width={size} height={size}/>\n );\n } else if (error) {\n return (\n <div className='wechat-validation-error'>\n <ValidationInputError errorMessage={getErrorMessage(error)}/>\n </div>\n );\n } else {\n // if billing address is not valid\n if (!isAddressValid(billing.billingData)) {\n return __('Please fill out all the required fields in order to complete the WeChat payment.', 'woo-stripe-payment');\n }\n }\n return null;\n}\n\nconst QRCodeComponent = (\n {\n text,\n width = 128,\n height = 128,\n colorDark = '#424770',\n colorLight = '#f8fbfd',\n correctLevel = QRCode.CorrectLevel.H\n }) => {\n const el = useRef();\n useEffect(() => {\n new QRCode(el.current, {\n text,\n width,\n height,\n colorDark,\n colorLight,\n correctLevel\n })\n }, [el]);\n return (\n <>\n <div id='wc-stripe-block-qrcode' ref={el}></div>\n {isTestMode() && <p>\n {__('Test mode: Click the Place Order button to proceed.', 'woo-stripe-payment')}\n </p>}\n {!isTestMode() && <p>\n {__('Scan the QR code using your WeChat app. Once scanned click the Place Order button.', 'woo-stripe-payment')}\n </p>}\n </>\n )\n}\n\nconst useCreateSource = (\n {\n getData,\n billing,\n responseTypes,\n subscriber\n }) => {\n const stripe = useStripe();\n const [error, setError] = useStripeError();\n const [source, setSource] = useState(getFromCache('wechat:source'));\n const createSourceTimeoutId = useRef(null);\n const {cartTotal, billingData, currency} = billing;\n\n useEffect(() => {\n const unsubscribe = subscriber(() => {\n return ensureSuccessResponse(responseTypes, {\n meta: {\n paymentMethodData: {\n [`${getData('name')}_token_key`]: source.id\n }\n }\n })\n });\n return () => unsubscribe();\n }, [source, subscriber]);\n\n const createSource = useCallback(async () => {\n // validate the billing fields. If valid, create the source.\n try {\n if (!error && isAddressValid(billingData)) {\n let result = await stripe.createSource(getDefaultSourceArgs({\n type: getData('paymentType'),\n amount: cartTotal.value,\n billingData,\n currency: currency.code,\n returnUrl: getData('returnUrl')\n }));\n if (result.error) {\n throw new StripeError(result.error);\n }\n setSource(result.source);\n storeInCache('wechat:source', result.source);\n }\n } catch (err) {\n console.log('error: ', err);\n setError(err.error);\n }\n }, [\n stripe,\n source,\n cartTotal.value,\n billingData,\n currency,\n error\n ]);\n const deleteSourceFromStorage = useCallback(() => {\n deleteFromCache('wechat:source');\n }, []);\n\n useEffect(() => {\n if (stripe && !source) {\n // if there is an existing request, cancel it.\n clearTimeout(createSourceTimeoutId.current);\n createSourceTimeoutId.current = setTimeout(createSource, 1000);\n }\n }, [\n stripe,\n source,\n createSource\n ]);\n\n return {source, setSource, error, deleteSourceFromStorage};\n}\n\n\nif (getData()) {\n registerPaymentMethod({\n name: getData('name'),\n label: <PaymentMethodLabel\n title={getData('title')}\n paymentMethod={getData('name')}\n icons={getData('icon')}/>,\n ariaLabel: 'WeChat',\n canMakePayment: canMakePayment(getData),\n content: <PaymentMethod content={WeChatComponent} getData={getData}/>,\n edit: <PaymentMethod content={WeChatComponent} getData={getData}/>,\n supports: {\n showSavedCards: false,\n showSaveOption: false,\n features: getData('features')\n }\n })\n}\n","import './style.scss';\n\nimport './payment-method';","import {useMemo, useEffect, useRef} from '@wordpress/element';\nimport {registerExpressPaymentMethod} from '@woocommerce/blocks-registry';\nimport {getSettings, initStripe as loadStripe, canMakePayment} from \"../util\";\nimport {useBreakpointWidth, useExpressBreakpointWidth} from '../hooks';\nimport {Elements, PaymentRequestButtonElement, useStripe} from \"@stripe/react-stripe-js\";\nimport {\n usePaymentRequest,\n useProcessPaymentIntent,\n useExportedValues,\n useAfterProcessingPayment,\n useStripeError\n} from '../hooks';\n\nconst getData = getSettings('stripe_payment_request_data');\n\nconst PaymentRequestContent = (props) => {\n return (\n <div className='wc-stripe-payment-request-container'>\n <Elements stripe={loadStripe}>\n <PaymentRequestButton {...props}/>\n </Elements>\n </div>\n );\n}\n\nconst PaymentRequestButton = (\n {\n getData,\n onClick,\n onClose,\n billing,\n shippingData,\n eventRegistration,\n emitResponse,\n onSubmit,\n activePaymentMethod,\n ...props\n }) => {\n const {onPaymentProcessing} = eventRegistration;\n const {responseTypes, noticeContexts} = emitResponse;\n const stripe = useStripe();\n const [error] = useStripeError();\n const canPay = (result) => result != null && !result.applePay;\n const exportedValues = useExportedValues();\n useExpressBreakpointWidth({payment_method: getData('name'), width: 375});\n const {setPaymentMethod} = useProcessPaymentIntent({\n getData,\n billing,\n shippingData,\n onPaymentProcessing,\n emitResponse,\n error,\n onSubmit,\n activePaymentMethod,\n exportedValues\n });\n useAfterProcessingPayment({\n getData,\n eventRegistration,\n responseTypes,\n activePaymentMethod,\n messageContext: noticeContexts.EXPRESS_PAYMENTS\n });\n const {paymentRequest} = usePaymentRequest({\n getData,\n onClose,\n stripe,\n billing,\n shippingData,\n eventRegistration,\n setPaymentMethod,\n exportedValues,\n canPay\n });\n\n const options = useMemo(() => {\n return {\n paymentRequest,\n style: {\n paymentRequestButton: getData('paymentRequestButton')\n }\n }\n }, [paymentRequest]);\n\n if (paymentRequest) {\n return (\n <PaymentRequestButtonElement options={options} onClick={onClick}/>\n )\n }\n return null;\n}\n\nconst PaymentRequestEdit = ({getData, ...props}) => {\n const canvas = useRef();\n useEffect(() => {\n const scale = window.devicePixelRatio;\n canvas.current.width = 20 * scale;\n canvas.current.height = 20 * scale;\n let ctx = canvas.current.getContext('2d');\n ctx.scale(scale, scale);\n ctx.beginPath();\n ctx.arc(10, 10, 10, 0, 2 * Math.PI);\n ctx.fillStyle = '#986fff';\n ctx.fill();\n });\n return (\n <div className='payment-request-block-editor'>\n <div className={'icon-container'}>\n <span>Buy now</span>\n <canvas className='PaymentRequestButton-icon' ref={canvas}/>\n <i className={'payment-request-arrow'}></i>\n </div>\n </div>\n )\n}\n\nregisterExpressPaymentMethod({\n name: getData('name'),\n canMakePayment: ({cartTotals}) => {\n if (getData('isAdmin')) {\n return true;\n }\n const {currency_code: currency, total_price} = cartTotals;\n return canMakePayment({\n country: getData('countryCode'),\n currency: currency.toLowerCase(),\n total: {\n label: getData('totalLabel'),\n amount: parseInt(total_price)\n }\n }, (result) => result != null && !result.applePay);\n },\n content: <PaymentRequestContent getData={getData}/>,\n edit: <PaymentRequestEdit getData={getData}/>,\n supports: {\n showSavedCards: getData('showSavedCards'),\n showSaveOption: getData('showSaveOption'),\n features: getData('features')\n }\n});","import {useEffect, useCallback} from '@wordpress/element';\nimport {handleCardAction} from '@paymentplugins/stripe/util';\nimport {useProcessCheckoutError} from './hooks';\n\nconst SavedCardComponent = (\n {\n eventRegistration,\n emitResponse,\n getData,\n method = 'handleCardAction'\n }) => {\n const {onCheckoutAfterProcessingWithSuccess, onCheckoutAfterProcessingWithError} = eventRegistration;\n const {responseTypes} = emitResponse;\n useProcessCheckoutError({\n responseTypes,\n subscriber: onCheckoutAfterProcessingWithError,\n messageContext: emitResponse.noticeContexts.PAYMENTS\n })\n const handleSuccessResult = useCallback(async ({redirectUrl}) => {\n return await handleCardAction({redirectUrl, getData, responseTypes, method});\n }, []);\n\n useEffect(() => {\n const unsubscribe = onCheckoutAfterProcessingWithSuccess(handleSuccessResult);\n return () => unsubscribe();\n }, [onCheckoutAfterProcessingWithSuccess, handleSuccessResult]);\n return null;\n}\n\nexport default SavedCardComponent;\n","import {loadStripe} from '@stripe/stripe-js';\nimport {getSetting} from '@woocommerce/settings'\nimport apiFetch from \"@wordpress/api-fetch\";\nimport {getCurrency, formatPrice as wcFormatPrice} from '@woocommerce/price-format';\n\nconst {publishableKey, stripeParams} = getSetting('stripeGeneralData');\nconst messages = getSetting('stripeErrorMessages');\nconst countryLocale = getSetting('countryLocale', {});\n\nconst SHIPPING_OPTION_REGEX = /^([\\w]+)\\:(.+)$/;\n\nconst routes = getSetting('stripeGeneralData').routes;\n\nconst creditCardForms = {};\n\nconst localPaymentMethods = [];\n\nconst CACHE_PREFIX = 'stripe:';\n\nconst PAYMENT_REQUEST_ADDRESS_MAPPINGS = {\n recipient: (address, name) => {\n address.first_name = name.split(' ').slice(0, -1).join(' ');\n address.last_name = name.split(' ').pop();\n return address;\n },\n payerName: (address, name) => {\n address.first_name = name.split(' ').slice(0, -1).join(' ');\n address.last_name = name.split(' ').pop();\n return address;\n },\n country: 'country',\n addressLine: (address, value) => {\n if (value[0]) {\n address.address_1 = value[0];\n }\n if (value[1]) {\n address.address_2 = value[1];\n }\n return address;\n },\n line1: 'address_1',\n line2: 'address_2',\n city: 'city',\n region: 'state',\n state: 'state',\n postalCode: 'postcode',\n postal_code: 'postcode',\n payerEmail: 'email',\n payerPhone: 'phone'\n}\n\nexport const initStripe = new Promise((resolve, reject) => {\n loadStripe(publishableKey, stripeParams).then(stripe => {\n resolve(stripe);\n }).catch(err => {\n resolve({error: err});\n });\n});\n\nexport const registerCreditCardForm = ({id, ...props}) => {\n creditCardForms[id] = props;\n}\n\nexport const getCreditCardForm = (id) => {\n return creditCardForms.hasOwnProperty(id) ? creditCardForms[id] : {};\n}\n\nexport const getRoute = (route) => {\n return routes?.[route] ? routes[route] : console.log(`${route} is not a valid route`);\n}\n\nexport const ensureSuccessResponse = (responseTypes, data = {}) => {\n return {type: responseTypes.SUCCESS, ...data};\n}\n\n/**\n * Returns a formatted error object used by observers\n * @param responseTypes\n * @param error\n * @returns {{type: *, message: *}}\n */\nexport const ensureErrorResponse = (responseTypes, error, options = {}) => {\n return {type: responseTypes.ERROR, message: getErrorMessage(error), ...options}\n};\n\n/**\n * Return a customized error message.\n * @param error\n */\nexport const getErrorMessage = (error) => {\n if (typeof error == 'string') {\n return error;\n }\n if (error?.code && messages?.[error.code]) {\n return messages[error.code];\n }\n if (error?.statusCode) {\n return messages?.[error.statusCode] ? messages[error.statusCode] : error.statusMessage;\n }\n return error.message;\n}\n\n/**\n * Return a Stripe formatted billing_details object from a WC address\n * @param billingAddress\n */\nexport const getBillingDetailsFromAddress = (billingAddress) => {\n let billing_details = {\n name: `${billingAddress.first_name} ${billingAddress.last_name}`,\n address: {\n city: billingAddress.city || null,\n country: billingAddress.country || null,\n line1: billingAddress.address_1 || null,\n line2: billingAddress.address_2 || null,\n postal_code: billingAddress.postcode || null,\n state: billingAddress.state || null\n }\n }\n if (billingAddress?.phone) {\n billing_details.phone = billingAddress.phone;\n }\n if (billingAddress?.email) {\n billing_details.email = billingAddress.email;\n }\n return billing_details;\n}\n\nexport const getSettings = (name) => (key) => {\n if (key) {\n return getSetting(name)[key];\n }\n return getSetting(name);\n}\n\nexport class StripeError extends Error {\n constructor(error) {\n super(error.message);\n this.error = error;\n }\n}\n\n/**\n * Returns true if the provided value is empty.\n * @param value\n * @returns {boolean}\n */\nexport const isEmpty = (value) => {\n if (typeof value === 'string') {\n return value.length == 0 || value == '';\n }\n if (Array.isArray(value)) {\n return array.length == 0;\n }\n if (typeof value === 'object') {\n return Object.keys(value).length == 0;\n }\n if (typeof value === 'undefined') {\n return true;\n }\n return true;\n}\n\nexport const removeNumberPrecision = (value, unit) => {\n return value / 10 ** unit;\n}\n\n/**\n *\n * @param address\n * @param country\n */\nexport const isAddressValid = (address, exclude = []) => {\n const fields = getLocaleFields(address.country);\n for (const [key, value] of Object.entries(address)) {\n if (!exclude.includes(key) && fields?.[key] && fields[key].required) {\n if (isEmpty(value)) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport const getLocaleFields = (country) => {\n let localeFields = {...countryLocale.default};\n if (country && countryLocale?.[country]) {\n localeFields = Object.entries(countryLocale[country]).reduce((locale, [key, value]) => {\n locale[key] = {...locale[key], ...value}\n return locale;\n }, localeFields);\n ['phone', 'shipping-phone', 'email'].forEach(key => {\n let node = document.getElementById(key);\n if (node) {\n localeFields[key] = {required: node.required};\n }\n });\n }\n return localeFields;\n}\n\n/**\n * Return true if the field is required by the cart\n * @param field\n * @param country\n * @returns {boolean|*}\n */\nexport const isFieldRequired = (field, country = false) => {\n const fields = getLocaleFields(country);\n return [field] in fields && fields[field].required;\n}\n\nexport const getSelectedShippingOption = (id) => {\n const result = id.match(SHIPPING_OPTION_REGEX);\n if (result) {\n const {1: packageIdx, 2: rate} = result;\n return [rate, packageIdx];\n }\n return [];\n}\n\nexport const hasShippingRates = (shippingRates) => {\n return shippingRates.map(rate => {\n return rate.shipping_rates.length > 0;\n }).filter(Boolean).length > 0;\n}\n\n/**\n * Return true if the customer is logged in.\n * @param customerId\n * @returns {boolean}\n */\nexport const isUserLoggedIn = (customerId) => {\n return customerId > 0;\n}\n\nconst syncPaymentIntentWithOrder = async (order_id, client_secret) => {\n try {\n await apiFetch({\n url: routes['sync/intent'],\n method: 'POST',\n data: {order_id, client_secret}\n })\n } catch (error) {\n console.log(error);\n }\n}\n\nexport const handleCardAction = async (\n {\n redirectUrl,\n responseTypes,\n name,\n method = 'handleCardAction',\n savePaymentMethod = false,\n data = {}\n }) => {\n try {\n let match = redirectUrl.match(/#response=(.+)/)\n if (match) {\n let {type, client_secret, order_id, order_key} = JSON.parse(window.atob(decodeURIComponent(match[1])));\n const stripe = await initStripe;\n let result;\n if (type === 'intent') {\n result = await stripe[method](client_secret);\n } else {\n result = await stripe.confirmCardSetup(client_secret);\n }\n if (result.error) {\n return ensureErrorResponse(responseTypes, result.error);\n }\n // success so finish processing order then redirect to thank you page\n data = {...data, order_id, order_key, [`${name}_save_source_key`]: savePaymentMethod};\n let response = await apiFetch({\n url: getRoute('process/payment'),\n method: 'POST',\n data\n })\n if (response.messages) {\n return ensureErrorResponse(responseTypes, response.messages);\n }\n return ensureSuccessResponse(responseTypes, {\n redirectUrl: response.redirect\n });\n } else {\n return ensureSuccessResponse(responseTypes);\n }\n } catch (err) {\n console.log(err);\n return ensureErrorResponse(responseTypes, err);\n }\n}\n\n/**\n * Convert a payment wallet address to a WC cart address.\n * @param address_mappings\n * @returns {function(*, *=): {}}\n */\nexport const toCartAddress = (address_mappings = PAYMENT_REQUEST_ADDRESS_MAPPINGS) => (address, args = {}) => {\n const cartAddress = {};\n address = {...address, ...filterEmptyValues(args)};\n for (let [key, cartKey] of Object.entries(address_mappings)) {\n if (address?.[key]) {\n if (typeof cartKey === 'function') {\n cartKey(cartAddress, address[key]);\n } else {\n cartAddress[cartKey] = address[key];\n }\n }\n }\n return cartAddress;\n}\n\n/**\n * Given a WC formatted address, return only the intermediate address values\n * @param address\n * @param fields\n */\nexport const getIntermediateAddress = (address, fields = ['city', 'postcode', 'state', 'country']) => {\n const intermediateAddress = {};\n for (let key of fields) {\n intermediateAddress[key] = address[key];\n }\n return intermediateAddress;\n}\n\n/**\n *\n * @param values\n * @returns {{}|{[p: string]: *}}\n */\nexport const filterEmptyValues = (values) => {\n return Object.keys(values).filter(key => Boolean(values[key])).reduce((obj, key) => ({\n ...obj,\n [key]: values[key]\n }), {});\n}\n\nexport const formatPrice = (price, currencyCode) => {\n const {prefix, suffix, decimalSeparator, minorUnit, thousandSeparator} = getCurrency(currencyCode);\n if (price == '' || price === undefined) {\n return price;\n }\n\n price = typeof price === 'string' ? parseInt(price, 10) : price;\n price = price / 10 ** minorUnit;\n price = price.toString().replace('.', decimalSeparator);\n let fractional = '';\n const index = price.indexOf(decimalSeparator);\n if (index < 0) {\n if (minorUnit > 0) {\n price += `${decimalSeparator}${new Array(minorUnit + 1).join('0')}`;\n }\n } else {\n fractional = price.substr(index + 1);\n if (fractional.length < minorUnit) {\n price += new Array(minorUnit - fractional.length + 1).join('0');\n }\n }\n\n // separate out price and decimals so thousands separator can be added.\n const match = price.match(new RegExp(`(\\\\d+)\\\\${decimalSeparator}(\\\\d+)`));\n if (match) {\n ({1: price, 2: fractional} = match);\n }\n price = price.replace(new RegExp(`\\\\B(?=(\\\\d{3})+(?!\\\\d))`, 'g'), `${thousandSeparator}`);\n price = fractional?.length > 0 ? price + decimalSeparator + fractional : price;\n price = prefix + price + suffix;\n return price;\n}\n\nexport const getShippingOptions = (shippingRates) => {\n let options = [];\n shippingRates.forEach((shippingPackage, idx) => {\n // sort by selected rate\n shippingPackage.shipping_rates.sort((rate) => {\n return rate.selected ? -1 : 1;\n });\n let rates = shippingPackage.shipping_rates.map(rate => {\n let txt = document.createElement('textarea');\n txt.innerHTML = rate.name;\n let price = formatPrice(rate.price, rate.currency_code);\n return {\n id: getShippingOptionId(idx, rate.rate_id),\n label: txt.value,\n //detail: `${price}`,\n amount: parseInt(rate.price, 10)\n }\n });\n options = [...options, ...rates];\n });\n return options;\n}\n\nexport const getShippingOptionId = (packageId, rateId) => `${packageId}:${rateId}`\n\nexport const getDisplayItems = (cartItems, {minorUnit}) => {\n let items = [];\n const keys = ['total_tax', 'total_shipping'];\n cartItems.forEach(item => {\n if (0 < item.value || (item.key && keys.includes(item.key))) {\n items.push({\n label: item.label,\n pending: false,\n amount: item.value\n });\n }\n })\n return items;\n}\n\nconst canPay = {};\n\nexport const canMakePayment = ({country, currency, total}, callback) => {\n return new Promise((resolve, reject) => {\n const key = [country, currency, total.amount].reduce((key, value) => `${key}-${value}`);\n if (!currency) {\n return resolve(false);\n }\n if (key in canPay) {\n return resolve(canPay[key]);\n }\n return initStripe.then(stripe => {\n if (stripe.error) {\n return reject(stripe.error);\n }\n const request = stripe.paymentRequest({\n country,\n currency,\n total\n });\n request.canMakePayment().then(result => {\n canPay[key] = callback(result);\n return resolve(canPay[key]);\n });\n }).catch(reject);\n });\n};\n\nexport const registerLocalPaymentMethod = (paymentMethod) => {\n localPaymentMethods.push(paymentMethod);\n}\n\nexport const getLocalPaymentMethods = () => localPaymentMethods;\n\nexport const cartContainsPreOrder = () => {\n const data = getSetting('stripePaymentData');\n return data && data.pre_order;\n}\n\nexport const cartContainsSubscription = () => {\n const data = getSetting('stripePaymentData');\n return data && data.subscription;\n}\n\nexport const getDefaultSourceArgs = ({type, amount, billingData, currency, returnUrl}) => {\n return {\n type,\n amount,\n currency,\n owner: getBillingDetailsFromAddress(billingData),\n redirect: {\n return_url: returnUrl\n }\n }\n}\n\nexport const isTestMode = () => {\n return getSetting('stripeGeneralData').mode === 'test';\n}\n\nconst getCacheKey = (key) => `${CACHE_PREFIX}${key}`;\n\nexport const storeInCache = (key, value) => {\n const exp = Math.floor(new Date().getTime() / 1000) + (60 * 15);\n if ('sessionStorage' in window) {\n sessionStorage.setItem(getCacheKey(key), JSON.stringify({value, exp}));\n }\n}\n\nexport const getFromCache = (key) => {\n if ('sessionStorage' in window) {\n try {\n const item = JSON.parse(sessionStorage.getItem(getCacheKey(key)));\n if (item) {\n const {value, exp} = item;\n if (Math.floor(new Date().getTime() / 1000) > exp) {\n deleteFromCache(getCacheKey(key));\n } else {\n return value;\n }\n }\n } catch (err) {\n }\n }\n return null;\n}\n\nexport const deleteFromCache = (key) => {\n if ('sessionStorage' in window) {\n sessionStorage.removeItem(getCacheKey(key));\n }\n}\n\nexport const versionCompare = (ver1, ver2, compare) => {\n switch (compare) {\n case '<':\n return ver1 < ver2;\n case '>':\n return ver1 > ver2;\n case '<=':\n return ver1 <= ver2;\n case '>=':\n return ver1 >= ver2;\n case '=':\n return ver1 == ver2;\n }\n return false;\n}\n\nexport const isCartPage = () => getSetting('stripeGeneralData').page === 'cart';\n\nexport const isCheckoutPage = () => getSetting('stripeGeneralData').page === 'checkout';\n\nexport const isNextActionRequired = (url) => {\n let match = url.match(/#response=(.+)/);\n let args = null;\n if (match) {\n args = JSON.parse(window.atob(decodeURIComponent(match[1])));\n }\n return args;\n}","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n"],"names":["module","exports","arr","len","length","i","arr2","Array","isArray","arrayLikeToArray","self","ReferenceError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","fn","this","args","arguments","apply","err","undefined","instance","Constructor","TypeError","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","Reflect","construct","a","push","Function","bind","prototype","_defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","protoProps","staticProps","obj","_extends","assign","source","hasOwnProperty","call","_getPrototypeOf","o","getPrototypeOf","__proto__","subClass","superClass","create","constructor","__esModule","toString","indexOf","sham","Proxy","Date","e","iter","Symbol","iterator","from","_arr","_n","_d","_e","_s","_i","next","objectWithoutPropertiesLoose","excluded","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","sourceKeys","keys","_typeof","assertThisInitialized","_setPrototypeOf","p","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","minLen","n","slice","name","test","isNativeFunction","_wrapNativeSuper","_cache","Map","has","get","set","Wrapper","React","emptyFunction","emptyFunctionWithReset","resetWarningCache","propTypes","shim","propName","componentName","location","propFullName","secret","Error","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","factoryWithThrowingShims","ownKeys","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","_objectSpread2","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_arrayLikeToArray","_unsupportedIterableToArray","_nonIterableRest","usePrevious","ref","useRef","useEffect","current","isUnknownObject","raw","PLAIN_OBJECT_STR","isEqual","left","right","leftArray","leftPlainObject","leftKeys","rightKeys","keySet","allKeys","l","r","every","extractAllowedOptionsUpdates","options","prevOptions","immutableKeys","reduce","newOptions","isUpdated","includes","console","warn","concat","validateStripe","maybeStripe","elements","createToken","createPaymentMethod","confirmCardPayment","parseStripeProp","isPromise","tag","stripePromise","stripe","ElementsContext","createContext","displayName","CartElementContext","Elements","_ref","rawStripeProp","children","parsed","useMemo","_React$useState2","useState","cart","setCart","_React$useState4","cartState","setCartState","_React$useState6","ctx","setContext","isMounted","safeSetContext","prevStripe","updates","update","anyStripe","_registerWrapper","registerAppInfo","version","url","createElement","Provider","useElementsContextWithUseCase","useCaseMessage","useCase","parseElementsContext","useContext","useCartElementContextWithUseCase","parseCartElementContext","ElementsConsumer","_ref2","useCallbackReference","cb","noop","createElementComponent","type","isServer","str","charAt","toUpperCase","Element","id","className","_ref$options","_ref$onBlur","onBlur","_ref$onFocus","onFocus","_ref$onReady","onReady","_ref$onChange","onChange","_ref$onEscape","onEscape","_ref$onClick","onClick","_ref$onLoadError","onLoadError","_ref$onLoaderStart","onLoaderStart","_ref$onNetworksChange","onNetworksChange","_ref$onCheckout","onCheckout","_ref$onLineItemClick","onLineItemClick","elementRef","domNode","_useCartElementContex","callOnReady","callOnBlur","callOnFocus","callOnClick","callOnChange","callOnEscape","callOnLoadError","callOnLoaderStart","callOnNetworksChange","callOnCheckout","callOnLineItemClick","useLayoutEffect","mount","on","event","destroy","__elementType","window","AuBankAccountElement","CardElement","CardNumberElement","CardExpiryElement","CardCvcElement","FpxBankElement","IbanElement","IdealBankElement","P24BankElement","EpsBankElement","PaymentElement","PaymentRequestButtonElement","LinkAuthenticationElement","AddressElement","ShippingAddressElement","CartElement","PaymentMethodMessagingElement","AffirmMessageElement","AfterpayClearpayMessageElement","useCartElement","useCartElementState","useElements","useStripe","factory","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","initStripe","startTime","registerWrapper","stripePromise$1","params","Stripe","script","scripts","document","querySelectorAll","src","findScript","queryString","advancedFraudSignals","headOrBody","head","body","appendChild","injectScript","addEventListener","loadCalled","loadStripe","_len","_key","now","Installments","paymentMethodName","getCreatePaymentMethodArgs","cardFormComplete","addPaymentMethodData","getPaymentMethod","installments","setInstallments","installment","setInstallment","loading","setLoading","paymentMethod","apiFetch","getRoute","method","data","payment_method_id","payment_method","result","catch","log","finally","__","Loader","InstallmentOptions","_stripe_installment_plan","isLoading","OPTIONS","disabled","map","dangerouslySetInnerHTML","__html","text","classnames","title","icons","components","Label","PaymentMethodLabel","Icons","PaymentMethodIcons","align","getData","content","Content","desc","el","childNodes","classList","add","Description","RadioControlOption","checked","label","onCheckoutAfterProcessingWithSuccess","responseTypes","billingAddress","currentData","unsubscribe","redirectUrl","isNextActionRequired","processPaymentIntent","processSetupIntent","useCallback","client_secret","order_id","order_key","collectBankAccountForPayment","clientSecret","payment_method_type","payment_method_data","billing_details","first_name","last_name","email","response","paymentIntent","status","confirmUsBankAccountPayment","stripe_ach_token_key","messages","ensureSuccessResponse","redirect","code","ensureErrorResponse","collectBankAccountForSetup","setupIntent","confirmUsBankAccountSetup","getSettings","ACHPaymentContent","eventRegistration","emitResponse","billing","onSubmit","onCheckoutAfterProcessingWithError","onPaymentProcessing","useProcessCheckoutError","subscriber","useProcessPayment","billingData","Mandate","ACHComponent","registerPaymentMethod","ariaLabel","canMakePayment","cartTotals","currency_code","PaymentMethod","savedTokenComponent","edit","placeOrderButtonLabel","supports","showSavedCards","showSaveOption","features","ApplePayContent","ApplePayButton","onClose","shippingData","activePaymentMethod","noticeContexts","useStripeError","exportedValues","useExportedValues","useExpressBreakpointWidth","width","setPaymentMethod","useProcessPaymentIntent","useAfterProcessingPayment","messageContext","EXPRESS_PAYMENTS","paymentRequest","usePaymentRequest","canPay","applePay","handleClick","preventDefault","show","style","ApplePayEdit","registerExpressPaymentMethod","currency","total_price","country","toLowerCase","total","amount","parseInt","Bootstrap","CardIcon","htmlFor","registerCreditCardForm","breakpoint","component","classes","focus","empty","invalid","eventChange","onComplete","cardType","setCardType","elementOrder","container","setContainer","getCreditCardForm","CardForm","postalCodeEnabled","elementStatus","setElementOrder","useBreakpointWidth","getCardIconSrc","cloneElement","brand","complete","idx","nextElement","getElement","sprintf","SimpleForm","card","cardOptions","postalCode","postcode","hidePostalCode","isFieldRequired","iconStyle","PaymentElementComponent","cartTotal","mode","formComplete","setFormComplete","installmentsActive","shouldSavePayment","useDeferredPaymentIntent","updatePaymentIntent","PAYMENTS","fields","billingDetails","address","wallets","googlePay","CreditCardContent","setError","CreditCardElement","getPaymentMethodArgs","elType","useSetupIntent","removeSetupIntent","Tag","CustomCardForm","StripeCardForm","state","hasError","errorInfo","setState","componentStack","Component","publishableKey","setErrorMessage","checkoutStatus","merchantInfo","merchantId","merchantName","buttonContainer","buttonType","buildPaymentRequest","usePaymentsClient","button","removeButton","append","parameters","allowedAuthMethods","allowedCardNetworks","assuranceDetailsRequired","apiVersion","apiVersionMinor","errorMessage","processingCountry","totalPriceLabel","shippingRates","emailRequired","isEmpty","allowedPaymentMethods","tokenizationSpecification","gateway","BASE_PAYMENT_METHOD","shippingAddressRequired","needsShipping","transactionInfo","getTransactionInfo","callbackIntents","BASE_PAYMENT_REQUEST","billingAddressRequired","billingAddressParameters","format","phoneNumberRequired","phone","shippingOptionRequired","shippingOptionParameters","getShippingOptionParameters","shippingOptions","environment","paymentsClient","setPaymentsClient","setButton","currentBilling","currentShipping","usePaymentEvents","addPaymentEvent","setAddressData","paymentData","paymentMethodData","isAddressValid","phoneNumber","toCartAddress","shippingAddress","parentElement","firstChild","removeChild","loadPaymentData","JSON","parse","tokenizationData","token","getBillingDetailsFromAddress","StripeError","statusCode","getErrorMessage","createButton","paymentOptions","paymentDataCallbacks","onPaymentAuthorized","transactionState","onPaymentDataChanged","shipping","shippingOptionData","selectedRates","getSelectedShippingOption","shipping_method","page_id","paymentRequestUpdate","setSelectedRates","google","payments","api","PaymentsClient","isReadyToPayRequest","isReadyToPay","GooglePayContent","ValidationInputError","useErrorMessage","GooglePayEdit","isCartPage","getSetting","cartTotalItems","countryCode","currencyCode","totalPriceStatus","totalPrice","removeNumberPrecision","minorUnit","displayItems","getDisplayItems","newTransactionInfo","newShippingOptionParameters","unit","items","item","price","getShippingOptions","defaultSelectedOptionId","option","shift","shippingPackage","shipping_rates","rate","selected","getShippingOptionId","rate_id","rates","txt","innerHTML","formatPrice","description","mapAddressToCartAddress","split","join","pop","address1","address2","locality","administrativeArea","unsubscribeAfterProcessingWithSuccess","handleCardAction","savePaymentMethod","innerWidth","windowWidth","setWindowWidth","getMaxWidth","maxWidth","getFromCache","setMaxWidth","storeInCache","clientWidth","remove","handleResize","removeEventListener","getElementById","parentNode","getSuccessResponse","meta","confirmPayment","confirmParams","onShippingRateSuccess","onShippingRateFail","onShippingRateSelectSuccess","handler","setHandler","onShippingChanged","paymentEvents","setPaymentEvent","execute","removePaymentEvent","isSelectingRate","shippingRatesLoading","success","hasShippingRates","unsubscribeShippingRateSuccess","unsubscribeShippingRateSelectSuccess","unsubscribeShippingRateFail","hasInvalidAddress","mapToCartAddress","setPaymentRequest","paymentRequestOptions","pending","requestPayerName","requestPayerEmail","requestPayerPhone","requestShipping","onShippingAddressChange","onShippingOptionChange","onPaymentMethodReceived","updatePaymentEvent","updateWith","intermediateAddress","setShippingAddress","addressEqual","isShallowEqual","getIntermediateAddress","shippingOption","paymentResponse","payerName","payerEmail","payerPhone","processingResponse","paymentDetails","stripeErrorMessage","ERROR","message","paymentType","currentPaymentMethodArgs","paymentMethodId","unsubscribeProcessingPayment","confirmCardSetup","setSetupIntent","createSetupIntent","intent","cartContainsPreOrder","cartContainsSubscription","deleteFromCache","link","setLink","linkData","linkAutofillModal","launch","recipient","stripe_cc_token_key","stripe_cc_save_source_key","LinkComponent","payment_method_types","LinkCheckout","useLink","display","variablesHandler","globalVariables","isAvailable","available","billingCountry","requiredParams","accountCountry","requiredParamObj","countries","isCartEligible","isEligible","variables","setVariables","AfterpayPaymentMethod","OrderItemMessaging","extensions","context","cartNeedsShipping","totalInCents","currency_minor_unit","TotalsWrapper","settings","LocalPaymentIntentContent","confirmationMethod","registerPlugin","render","ExperimentalOrderMeta","scope","BecsPaymentMethod","taxId","setTaxId","isActive","setIsActive","callback","boleto","tax_id","wc_stripe_boleto_tax_id","isTestMode","currentBillingData","match","atob","decodeURIComponent","return_url","order","decodeURI","order_received_url","getSourceArgs","setSource","isValid","setIsValid","currentValues","getSourceArgsInternal","getDefaultSourceArgs","returnUrl","getSuccessData","sourceId","createSource","msg","LocalPaymentIntentMethod","LocalPaymentSourceMethod","useCreateSource","LocalPaymentElementContainer","useValidateCheckout","useAfterProcessLocalPayment","PAYMENT","LocalPaymentSourceContent","SepaPaymentMethod","sofort","WeChatComponent","WeChatPaymentMethod","size","deleteSourceFromStorage","QRCodeComponent","wechat","qr_code_url","height","colorDark","colorLight","correctLevel","QRCode","CorrectLevel","H","createSourceTimeoutId","clearTimeout","setTimeout","PaymentRequestContent","PaymentRequestButton","paymentRequestButton","PaymentRequestEdit","canvas","scale","devicePixelRatio","getContext","beginPath","arc","Math","PI","fillStyle","fill","handleSuccessResult","stripeParams","countryLocale","SHIPPING_OPTION_REGEX","routes","creditCardForms","localPaymentMethods","PAYMENT_REQUEST_ADDRESS_MAPPINGS","addressLine","address_1","address_2","line1","line2","city","region","postal_code","route","SUCCESS","statusMessage","exclude","getLocaleFields","entries","required","localeFields","default","locale","field","packageIdx","Boolean","customerId","address_mappings","cartAddress","filterEmptyValues","cartKey","values","getCurrency","prefix","suffix","decimalSeparator","thousandSeparator","fractional","index","replace","substr","RegExp","sort","packageId","rateId","cartItems","pre_order","subscription","owner","getCacheKey","exp","floor","getTime","sessionStorage","setItem","stringify","getItem","removeItem","ver1","ver2","compare","page","hasOwn","classNames","argType","inner"],"sourceRoot":""}
packages/blocks/src/Payments/Gateways/CreditCardPayment.php CHANGED
@@ -59,7 +59,9 @@ class CreditCardPayment extends AbstractStripePayment {
59
 
60
  protected function get_payment_method_icon() {
61
  $icons = array();
62
- foreach ( $this->get_setting( 'cards', [] ) as $id ) {
 
 
63
  $icons[] = array(
64
  'id' => $id,
65
  'alt' => '',
@@ -91,44 +93,6 @@ class CreditCardPayment extends AbstractStripePayment {
91
  $this->payment_intent_ctrl = $controller;
92
  }
93
 
94
- public function get_endpoint_data() {
95
- if ( $this->is_payment_element_active() ) {
96
- $data = new EndpointData();
97
- $data->set_endpoint( CartSchema::IDENTIFIER );
98
- $data->set_namespace( $this->name );
99
- $data->set_data_callback( function () {
100
- $result = [];
101
- $payment_intent = \WC_Stripe_Utils::get_payment_intent_from_session();
102
- if ( \WC_Stripe_Utils::is_setup_intent( $payment_intent ) && WC()->cart->total > 0 ) {
103
- $payment_intent = null;
104
- }
105
- if ( ! $payment_intent || ( isset( $payment_intent->confirmation_method ) && $payment_intent->confirmation_method !== \WC_Stripe_Constants::AUTOMATIC ) ) {
106
- $this->payment_intent_ctrl->create_payment_intent_from_cart( [ 'card' ] );
107
- $payment_intent = \WC_Stripe_Utils::get_payment_intent_from_session();
108
- }
109
- if ( $payment_intent ) {
110
- $this->payment_intent_ctrl->set_intent_exists( true );
111
- $result['clientSecret'] = $payment_intent->client_secret;
112
- }
113
-
114
- return $result;
115
- } );
116
- $data->set_schema_callback( function () {
117
- return [
118
- 'client_secret' => [
119
- 'description' => 'Client secret used by Stripe integration',
120
- 'type' => 'string',
121
- 'readonly' => true
122
- ]
123
- ];
124
- } );
125
-
126
- return $data;
127
- }
128
-
129
- return [];
130
- }
131
-
132
  public function is_payment_element_active() {
133
  return $this->get_setting( 'form_type' ) === 'payment';
134
  }
59
 
60
  protected function get_payment_method_icon() {
61
  $icons = array();
62
+ $cards = $this->get_setting( 'cards', [] );
63
+ $cards = ! \is_array( $cards ) ? [] : $cards;
64
+ foreach ( $cards as $id ) {
65
  $icons[] = array(
66
  'id' => $id,
67
  'alt' => '',
93
  $this->payment_intent_ctrl = $controller;
94
  }
95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  public function is_payment_element_active() {
97
  return $this->get_setting( 'form_type' ) === 'payment';
98
  }
packages/blocks/src/Payments/Gateways/LinkPayment.php CHANGED
@@ -67,45 +67,4 @@ class LinkPayment extends AbstractStripePayment {
67
  $this->payment_intent_ctrl = $controller;
68
  }
69
 
70
- public function get_endpoint_data() {
71
- if ( $this->link->is_active() ) {
72
- $data = new EndpointData();
73
- $data->set_endpoint( CartSchema::IDENTIFIER );
74
- $data->set_namespace( $this->name );
75
- $data->set_data_callback( function () {
76
- $result = [];
77
- $payment_intent = \WC_Stripe_Utils::get_payment_intent_from_session();
78
- if ( \WC_Stripe_Utils::is_setup_intent( $payment_intent ) && WC()->cart->total > 0 ) {
79
- $payment_intent = null;
80
- }
81
- if ( ! $payment_intent || ( \WC_Stripe_Utils::is_payment_intent( $payment_intent ) && empty( $payment_intent->client_secret ) ) ) {
82
- $this->payment_intent_ctrl->create_payment_intent_from_cart( [ 'card' ] );
83
- $payment_intent = \WC_Stripe_Utils::get_payment_intent_from_session();
84
- } elseif ( \WC_Stripe_Utils::is_payment_intent( $payment_intent ) && ! \in_array( 'link', $payment_intent->payment_method_types ) ) {
85
- $this->payment_intent_ctrl->update_payment_intent_from_cart( $payment_intent, [ 'card' ] );
86
- $payment_intent = \WC_Stripe_Utils::get_payment_intent_from_session();
87
- }
88
- if ( $payment_intent ) {
89
- $this->payment_intent_ctrl->set_intent_exists( true );
90
- $result['clientSecret'] = $payment_intent->client_secret;
91
- }
92
-
93
- return $result;
94
- } );
95
- $data->set_schema_callback( function () {
96
- return [
97
- 'client_secret' => [
98
- 'description' => 'Client secret used by Stripe integration',
99
- 'type' => 'string',
100
- 'readonly' => true
101
- ]
102
- ];
103
- } );
104
-
105
- return $data;
106
- }
107
-
108
- return [];
109
- }
110
-
111
  }
67
  $this->payment_intent_ctrl = $controller;
68
  }
69
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
  }
packages/blocks/src/Payments/PaymentsApi.php CHANGED
@@ -122,7 +122,7 @@ class PaymentsApi {
122
  return new Gateways\OXXOPayment( $container->get( AssetsApi::class ) );
123
  } );
124
  $this->container->register( Gateways\LinkPayment::class, function ( $container ) {
125
- $instance = new Gateways\LinkPayment( LinkIntegration::get_instance(), $container->get( AssetsApi::class ) );
126
  $instance->set_payment_intent_controller( PaymentIntent::instance() );
127
 
128
  return $instance;
122
  return new Gateways\OXXOPayment( $container->get( AssetsApi::class ) );
123
  } );
124
  $this->container->register( Gateways\LinkPayment::class, function ( $container ) {
125
+ $instance = new Gateways\LinkPayment( LinkIntegration::instance(), $container->get( AssetsApi::class ) );
126
  $instance->set_payment_intent_controller( PaymentIntent::instance() );
127
 
128
  return $instance;
packages/blocks/src/StoreApi/SchemaController.php CHANGED
@@ -14,7 +14,7 @@ class SchemaController {
14
  public function __construct( ExtendSchema $extend_schema, PaymentsApi $payments_api ) {
15
  $this->extend_schema = $extend_schema;
16
  $this->payments_api = $payments_api;
17
- add_action( 'init', [ $this, 'initialize' ], 20 );
18
  }
19
 
20
  public function initialize() {
14
  public function __construct( ExtendSchema $extend_schema, PaymentsApi $payments_api ) {
15
  $this->extend_schema = $extend_schema;
16
  $this->payments_api = $payments_api;
17
+ //add_action( 'init', [ $this, 'initialize' ], 20 );
18
  }
19
 
20
  public function initialize() {
packages/cartflows/build/wc-stripe-cartflows.asset.php CHANGED
@@ -1 +1 @@
1
- <?php return array('dependencies' => array('jquery', 'wp-api-fetch', 'wp-polyfill'), 'version' => 'c362aa542a2700ab7ac1f365cc5c2e81');
1
+ <?php return array('dependencies' => array('jquery', 'wp-api-fetch', 'wp-polyfill'), 'version' => '45cb3fa0219b75f3369b0ea884411db4');
packages/cartflows/build/wc-stripe-cartflows.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{var e={926:e=>{function t(e,t,r,n,o,i,c){try{var a=e[i](c),u=a.value}catch(e){return void r(e)}a.done?t(u):Promise.resolve(u).then(n,o)}e.exports=function(e){return function(){var r=this,n=arguments;return new Promise((function(o,i){var c=e.apply(r,n);function a(e){t(c,o,i,a,u,"next",e)}function u(e){t(c,o,i,a,u,"throw",e)}a(void 0)}))}}},713:e=>{e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},318:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},479:(e,t,r)=>{var n=r(316);e.exports=function(e,t){if(null==e)return{};var r,o,i=n(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o<c.length;o++)r=c[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}},316:e=>{e.exports=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}},465:(e,t,r)=>{"use strict";r.r(t),r.d(t,{loadStripe:()=>f});var n="https://js.stripe.com/v3",o=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,i="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",c=null,a=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.12.1",startTime:t})}(n,r),n},u=Promise.resolve().then((function(){return e=null,null!==c||(c=new Promise((function(t,r){if("undefined"!=typeof window)if(window.Stripe&&e&&console.warn(i),window.Stripe)t(window.Stripe);else try{var c=function(){for(var e=document.querySelectorAll('script[src^="'.concat(n,'"]')),t=0;t<e.length;t++){var r=e[t];if(o.test(r.src))return r}return null}();c&&e?console.warn(i):c||(c=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",r=document.createElement("script");r.src="".concat(n).concat(t);var o=document.head||document.body;if(!o)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return o.appendChild(r),r}(e)),c.addEventListener("load",(function(){window.Stripe?t(window.Stripe):r(new Error("Stripe.js not available"))})),c.addEventListener("error",(function(){r(new Error("Failed to load Stripe.js"))}))}catch(e){return void r(e)}else t(null)}))),c;var e})),s=!1;u.catch((function(e){s||console.warn(e)}));var f=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];s=!0;var n=Date.now();return u.then((function(e){return a(e,t,n)}))}},567:e=>{"use strict";e.exports=window.jQuery},284:e=>{"use strict";e.exports=window.regeneratorRuntime},989:e=>{"use strict";e.exports=window.wp.apiFetch}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e=r(318),t=e(r(713)),n=e(r(479)),o=e(r(284)),i=e(r(926)),c=e(r(567)),a=r(465),u=e(r(989));function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function f(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?s(Object(n),!0).forEach((function(r){(0,t.default)(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var l,d=cartflows_offer.stripeData,p=new Promise((function(e){(0,a.loadStripe)(d.key,d.accountId?{stripeAccount:d.accountId}:{}).then((function(t){e(t)})).catch((function(t){e(!1)}))})),w=function(){var e=(0,i.default)(o.default.mark((function e(t){var r,n;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.newURL.match(/response=(.*)/))try{(n=JSON.parse(window.atob(decodeURIComponent(r[1]))))&&n.hasOwnProperty("client_secret")&&(history.pushState({},"",window.location.pathname+window.location.search),v(n))}catch(e){}return e.abrupt("return",!0);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),v=function(){var e=(0,i.default)(o.default.mark((function e(t){var r,i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.client_secret,i=(0,n.default)(t,["client_secret"]),e.next=3,p;case 3:e.sent.handleCardAction(r).then((function(e){e.error?((0,c.default)("body").trigger("wcf-update-msg",[e.error.message,"wcf-payment-error"]),setTimeout((function(){(0,c.default)(document.body).trigger("wcf-hide-loader"),(0,c.default)(document.body).trigger("wcf-update-msg",[d.msg,"wcf-payment-success"])}),d.timeout),h(f({client_secret:r},i))):y()}));case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),y=function(){l.click()},h=function(e){return new Promise((function(t,r){(0,u.default)({path:"/wc-stripe/v1/cartflows/payment-intent",method:"POST",data:e}).then((function(e){})).catch((function(e){}))}))};window.addEventListener("hashchange",w),(0,c.default)(document.body).on("click",'a[href*="wcf-up-offer"], a[href*="wcf-down-offer"]',(function(e){l=(0,c.default)(e.currentTarget)}))})(),(this.wc_stripe=this.wc_stripe||{})["wc-stripe-cartflows"]={}})();
2
  //# sourceMappingURL=wc-stripe-cartflows.js.map
1
+ (()=>{var e={926:e=>{function t(e,t,r,n,o,i,c){try{var a=e[i](c),u=a.value}catch(e){return void r(e)}a.done?t(u):Promise.resolve(u).then(n,o)}e.exports=function(e){return function(){var r=this,n=arguments;return new Promise((function(o,i){var c=e.apply(r,n);function a(e){t(c,o,i,a,u,"next",e)}function u(e){t(c,o,i,a,u,"throw",e)}a(void 0)}))}}},713:e=>{e.exports=function(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}},318:e=>{e.exports=function(e){return e&&e.__esModule?e:{default:e}}},479:(e,t,r)=>{var n=r(316);e.exports=function(e,t){if(null==e)return{};var r,o,i=n(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o<c.length;o++)r=c[o],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}},316:e=>{e.exports=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n<i.length;n++)r=i[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}},465:(e,t,r)=>{"use strict";r.r(t),r.d(t,{loadStripe:()=>f});var n="https://js.stripe.com/v3",o=/^https:\/\/js\.stripe\.com\/v3\/?(\?.*)?$/,i="loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used",c=null,a=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.42.1",startTime:t})}(n,r),n},u=Promise.resolve().then((function(){return e=null,null!==c||(c=new Promise((function(t,r){if("undefined"!=typeof window)if(window.Stripe&&e&&console.warn(i),window.Stripe)t(window.Stripe);else try{var c=function(){for(var e=document.querySelectorAll('script[src^="'.concat(n,'"]')),t=0;t<e.length;t++){var r=e[t];if(o.test(r.src))return r}return null}();c&&e?console.warn(i):c||(c=function(e){var t=e&&!e.advancedFraudSignals?"?advancedFraudSignals=false":"",r=document.createElement("script");r.src="".concat(n).concat(t);var o=document.head||document.body;if(!o)throw new Error("Expected document.body not to be null. Stripe.js requires a <body> element.");return o.appendChild(r),r}(e)),c.addEventListener("load",(function(){window.Stripe?t(window.Stripe):r(new Error("Stripe.js not available"))})),c.addEventListener("error",(function(){r(new Error("Failed to load Stripe.js"))}))}catch(e){return void r(e)}else t(null)}))),c;var e})),s=!1;u.catch((function(e){s||console.warn(e)}));var f=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];s=!0;var n=Date.now();return u.then((function(e){return a(e,t,n)}))}},567:e=>{"use strict";e.exports=window.jQuery},284:e=>{"use strict";e.exports=window.regeneratorRuntime},989:e=>{"use strict";e.exports=window.wp.apiFetch}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var i=t[n]={exports:{}};return e[n](i,i.exports,r),i.exports}r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e=r(318),t=e(r(713)),n=e(r(479)),o=e(r(284)),i=e(r(926)),c=e(r(567)),a=r(465),u=e(r(989));function s(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function f(e){for(var r=1;r<arguments.length;r++){var n=null!=arguments[r]?arguments[r]:{};r%2?s(Object(n),!0).forEach((function(r){(0,t.default)(e,r,n[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var l,d=cartflows_offer.stripeData,p=new Promise((function(e){(0,a.loadStripe)(d.key,d.accountId?{stripeAccount:d.accountId}:{}).then((function(t){e(t)})).catch((function(t){e(!1)}))})),w=function(){var e=(0,i.default)(o.default.mark((function e(t){var r,n;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.newURL.match(/response=(.*)/))try{(n=JSON.parse(window.atob(decodeURIComponent(r[1]))))&&n.hasOwnProperty("client_secret")&&(history.pushState({},"",window.location.pathname+window.location.search),v(n))}catch(e){}return e.abrupt("return",!0);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),v=function(){var e=(0,i.default)(o.default.mark((function e(t){var r,i;return o.default.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.client_secret,i=(0,n.default)(t,["client_secret"]),e.next=3,p;case 3:e.sent.handleCardAction(r).then((function(e){e.error?((0,c.default)("body").trigger("wcf-update-msg",[e.error.message,"wcf-payment-error"]),setTimeout((function(){(0,c.default)(document.body).trigger("wcf-hide-loader"),(0,c.default)(document.body).trigger("wcf-update-msg",[d.msg,"wcf-payment-success"])}),d.timeout),h(f({client_secret:r},i))):y()}));case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),y=function(){l.click()},h=function(e){return new Promise((function(t,r){(0,u.default)({path:"/wc-stripe/v1/cartflows/payment-intent",method:"POST",data:e}).then((function(e){})).catch((function(e){}))}))};window.addEventListener("hashchange",w),(0,c.default)(document.body).on("click",'a[href*="wcf-up-offer"], a[href*="wcf-down-offer"]',(function(e){l=(0,c.default)(e.currentTarget)}))})(),(this.wc_stripe=this.wc_stripe||{})["wc-stripe-cartflows"]={}})();
2
  //# sourceMappingURL=wc-stripe-cartflows.js.map
packages/cartflows/build/wc-stripe-cartflows.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wc-stripe-cartflows.js","mappings":"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","sources":["webpack://wc_stripe/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://wc_stripe/./node_modules/@stripe/stripe-js/dist/stripe.esm.js","webpack://wc_stripe/external window \"jQuery\"","webpack://wc_stripe/external window \"regeneratorRuntime\"","webpack://wc_stripe/external window [\"wp\",\"apiFetch\"]","webpack://wc_stripe/webpack/bootstrap","webpack://wc_stripe/webpack/runtime/define property getters","webpack://wc_stripe/webpack/runtime/hasOwnProperty shorthand","webpack://wc_stripe/webpack/runtime/make namespace object","webpack://wc_stripe/./packages/cartflows/assets/js/index.js"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.12.1\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n};\n\n// own script injection.\n\nvar stripePromise$1 = Promise.resolve().then(function () {\n return loadScript(null);\n});\nvar loadCalled = false;\nstripePromise$1[\"catch\"](function (err) {\n if (!loadCalled) {\n console.warn(err);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now();\n return stripePromise$1.then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","module.exports = window[\"jQuery\"];","module.exports = window[\"regeneratorRuntime\"];","module.exports = window[\"wp\"][\"apiFetch\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import $ from 'jquery';\nimport {loadStripe} from '@stripe/stripe-js';\nimport apiFetch from \"@wordpress/api-fetch\";\n\nconst data = cartflows_offer.stripeData;\nconst getStripe = new Promise(resolve => {\n loadStripe(data.key, (() => data.accountId ? {stripeAccount: data.accountId} : {})()).then(stripe => {\n resolve(stripe);\n }).catch(error => {\n resolve(false);\n })\n});\n\nlet currentButton;\n\nconst initialize = () => {\n window.addEventListener('hashchange', handleHashChange);\n $(document.body).on('click', 'a[href*=\"wcf-up-offer\"], a[href*=\"wcf-down-offer\"]', handleButtonClick);\n}\n\nconst handleButtonClick = (e) => {\n currentButton = $(e.currentTarget);\n}\n\nconst handleHashChange = async (e) => {\n var match = e.newURL.match(/response=(.*)/);\n if (match) {\n try {\n var obj = JSON.parse(window.atob(decodeURIComponent(match[1])));\n if (obj && obj.hasOwnProperty('client_secret')) {\n history.pushState({}, '', window.location.pathname + window.location.search);\n handleCardAction(obj);\n }\n } catch (err) {\n\n }\n }\n return true;\n}\n\nconst handleCardAction = async ({client_secret, ...props}) => {\n const stripe = await getStripe;\n stripe.handleCardAction(client_secret).then(result => {\n if (result.error) {\n $('body').trigger('wcf-update-msg', [result.error.message, 'wcf-payment-error']);\n setTimeout(() => {\n $(document.body).trigger('wcf-hide-loader')\n $(document.body).trigger('wcf-update-msg', [data.msg, 'wcf-payment-success']);\n }, data.timeout);\n syncPaymentIntent({client_secret, ...props});\n } else {\n triggerOfferClick();\n }\n })\n}\n\nconst triggerOfferClick = () => {\n currentButton.click();\n}\n\nconst syncPaymentIntent = (data) => {\n return new Promise((resolve, reject) => {\n apiFetch({\n path: '/wc-stripe/v1/cartflows/payment-intent',\n method: 'POST',\n data\n }).then(response => {\n }).catch(err => {\n });\n });\n}\n\ninitialize();"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","module","exports","fn","self","this","args","arguments","apply","err","undefined","obj","Object","defineProperty","enumerable","configurable","writable","__esModule","objectWithoutPropertiesLoose","source","excluded","i","target","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","keys","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","stripePromise","initStripe","maybeStripe","startTime","stripe","_registerWrapper","name","version","registerWrapper","stripePromise$1","params","window","Stripe","console","warn","script","scripts","document","querySelectorAll","concat","test","src","findScript","queryString","advancedFraudSignals","createElement","headOrBody","head","body","Error","appendChild","injectScript","addEventListener","loadCalled","loadStripe","_len","Array","_key","Date","now","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition","o","get","prop","hasOwnProperty","r","Symbol","toStringTag","currentButton","data","cartflows_offer","stripeData","getStripe","accountId","stripeAccount","catch","handleHashChange","e","match","newURL","JSON","parse","atob","decodeURIComponent","history","pushState","location","pathname","search","handleCardAction","client_secret","props","result","trigger","message","setTimeout","msg","timeout","syncPaymentIntent","triggerOfferClick","click","path","method","response","on","currentTarget"],"sourceRoot":""}
1
+ {"version":3,"file":"wc-stripe-cartflows.js","mappings":"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","sources":["webpack://wc_stripe/./node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/defineProperty.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack://wc_stripe/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://wc_stripe/./node_modules/@stripe/stripe-js/dist/stripe.esm.js","webpack://wc_stripe/external window \"jQuery\"","webpack://wc_stripe/external window \"regeneratorRuntime\"","webpack://wc_stripe/external window [\"wp\",\"apiFetch\"]","webpack://wc_stripe/webpack/bootstrap","webpack://wc_stripe/webpack/runtime/define property getters","webpack://wc_stripe/webpack/runtime/hasOwnProperty shorthand","webpack://wc_stripe/webpack/runtime/make namespace object","webpack://wc_stripe/./packages/cartflows/assets/js/index.js"],"sourcesContent":["function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var V3_URL = 'https://js.stripe.com/v3';\nvar V3_URL_REGEX = /^https:\\/\\/js\\.stripe\\.com\\/v3\\/?(\\?.*)?$/;\nvar EXISTING_SCRIPT_MESSAGE = 'loadStripe.setLoadParameters was called but an existing Stripe.js script already exists in the document; existing script parameters will be used';\nvar findScript = function findScript() {\n var scripts = document.querySelectorAll(\"script[src^=\\\"\".concat(V3_URL, \"\\\"]\"));\n\n for (var i = 0; i < scripts.length; i++) {\n var script = scripts[i];\n\n if (!V3_URL_REGEX.test(script.src)) {\n continue;\n }\n\n return script;\n }\n\n return null;\n};\n\nvar injectScript = function injectScript(params) {\n var queryString = params && !params.advancedFraudSignals ? '?advancedFraudSignals=false' : '';\n var script = document.createElement('script');\n script.src = \"\".concat(V3_URL).concat(queryString);\n var headOrBody = document.head || document.body;\n\n if (!headOrBody) {\n throw new Error('Expected document.body not to be null. Stripe.js requires a <body> element.');\n }\n\n headOrBody.appendChild(script);\n return script;\n};\n\nvar registerWrapper = function registerWrapper(stripe, startTime) {\n if (!stripe || !stripe._registerWrapper) {\n return;\n }\n\n stripe._registerWrapper({\n name: 'stripe-js',\n version: \"1.42.1\",\n startTime: startTime\n });\n};\n\nvar stripePromise = null;\nvar loadScript = function loadScript(params) {\n // Ensure that we only attempt to load Stripe.js at most once\n if (stripePromise !== null) {\n return stripePromise;\n }\n\n stripePromise = new Promise(function (resolve, reject) {\n if (typeof window === 'undefined') {\n // Resolve to null when imported server side. This makes the module\n // safe to import in an isomorphic code base.\n resolve(null);\n return;\n }\n\n if (window.Stripe && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n }\n\n if (window.Stripe) {\n resolve(window.Stripe);\n return;\n }\n\n try {\n var script = findScript();\n\n if (script && params) {\n console.warn(EXISTING_SCRIPT_MESSAGE);\n } else if (!script) {\n script = injectScript(params);\n }\n\n script.addEventListener('load', function () {\n if (window.Stripe) {\n resolve(window.Stripe);\n } else {\n reject(new Error('Stripe.js not available'));\n }\n });\n script.addEventListener('error', function () {\n reject(new Error('Failed to load Stripe.js'));\n });\n } catch (error) {\n reject(error);\n return;\n }\n });\n return stripePromise;\n};\nvar initStripe = function initStripe(maybeStripe, args, startTime) {\n if (maybeStripe === null) {\n return null;\n }\n\n var stripe = maybeStripe.apply(undefined, args);\n registerWrapper(stripe, startTime);\n return stripe;\n}; // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n\n// own script injection.\n\nvar stripePromise$1 = Promise.resolve().then(function () {\n return loadScript(null);\n});\nvar loadCalled = false;\nstripePromise$1[\"catch\"](function (err) {\n if (!loadCalled) {\n console.warn(err);\n }\n});\nvar loadStripe = function loadStripe() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n loadCalled = true;\n var startTime = Date.now();\n return stripePromise$1.then(function (maybeStripe) {\n return initStripe(maybeStripe, args, startTime);\n });\n};\n\nexport { loadStripe };\n","module.exports = window[\"jQuery\"];","module.exports = window[\"regeneratorRuntime\"];","module.exports = window[\"wp\"][\"apiFetch\"];","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import $ from 'jquery';\nimport {loadStripe} from '@stripe/stripe-js';\nimport apiFetch from \"@wordpress/api-fetch\";\n\nconst data = cartflows_offer.stripeData;\nconst getStripe = new Promise(resolve => {\n loadStripe(data.key, (() => data.accountId ? {stripeAccount: data.accountId} : {})()).then(stripe => {\n resolve(stripe);\n }).catch(error => {\n resolve(false);\n })\n});\n\nlet currentButton;\n\nconst initialize = () => {\n window.addEventListener('hashchange', handleHashChange);\n $(document.body).on('click', 'a[href*=\"wcf-up-offer\"], a[href*=\"wcf-down-offer\"]', handleButtonClick);\n}\n\nconst handleButtonClick = (e) => {\n currentButton = $(e.currentTarget);\n}\n\nconst handleHashChange = async (e) => {\n var match = e.newURL.match(/response=(.*)/);\n if (match) {\n try {\n var obj = JSON.parse(window.atob(decodeURIComponent(match[1])));\n if (obj && obj.hasOwnProperty('client_secret')) {\n history.pushState({}, '', window.location.pathname + window.location.search);\n handleCardAction(obj);\n }\n } catch (err) {\n\n }\n }\n return true;\n}\n\nconst handleCardAction = async ({client_secret, ...props}) => {\n const stripe = await getStripe;\n stripe.handleCardAction(client_secret).then(result => {\n if (result.error) {\n $('body').trigger('wcf-update-msg', [result.error.message, 'wcf-payment-error']);\n setTimeout(() => {\n $(document.body).trigger('wcf-hide-loader')\n $(document.body).trigger('wcf-update-msg', [data.msg, 'wcf-payment-success']);\n }, data.timeout);\n syncPaymentIntent({client_secret, ...props});\n } else {\n triggerOfferClick();\n }\n })\n}\n\nconst triggerOfferClick = () => {\n currentButton.click();\n}\n\nconst syncPaymentIntent = (data) => {\n return new Promise((resolve, reject) => {\n apiFetch({\n path: '/wc-stripe/v1/cartflows/payment-intent',\n method: 'POST',\n data\n }).then(response => {\n }).catch(err => {\n });\n });\n}\n\ninitialize();"],"names":["asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","module","exports","fn","self","this","args","arguments","apply","err","undefined","obj","Object","defineProperty","enumerable","configurable","writable","__esModule","objectWithoutPropertiesLoose","source","excluded","i","target","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","prototype","propertyIsEnumerable","call","sourceKeys","keys","V3_URL","V3_URL_REGEX","EXISTING_SCRIPT_MESSAGE","stripePromise","initStripe","maybeStripe","startTime","stripe","_registerWrapper","name","version","registerWrapper","stripePromise$1","params","window","Stripe","console","warn","script","scripts","document","querySelectorAll","concat","test","src","findScript","queryString","advancedFraudSignals","createElement","headOrBody","head","body","Error","appendChild","injectScript","addEventListener","loadCalled","loadStripe","_len","Array","_key","Date","now","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","d","definition"