(()=>{function e(){var n,r,o="function"==typeof Symbol?Symbol:{},c=o.iterator||"@@iterator",a=o.toStringTag||"@@toStringTag";function i(e,o,c,a){var i=o&&o.prototype instanceof s?o:s,l=Object.create(i.prototype);return t(l,"_invoke",function(e,t,o){var c,a,i,s=0,l=o||[],p=!1,d={p:0,n:0,v:n,a:f,f:f.bind(n,4),d:function(e,t){return c=e,a=0,i=n,d.n=t,u}};function f(e,t){for(a=e,i=t,r=0;!p&&s&&!o&&r<l.length;r++){var o,c=l[r],f=d.p,P=c[2];e>3?(o=P===t)&&(i=c[(a=c[4])?5:(a=3,3)],c[4]=c[5]=n):c[0]<=f&&((o=e<2&&f<c[1])?(a=0,d.v=t,d.n=c[1]):f<P&&(o=e<3||c[0]>t||t>P)&&(c[4]=e,c[5]=t,d.n=P,a=0))}if(o||e>1)return u;throw p=!0,t}return function(o,l,P){if(s>1)throw TypeError("Generator is already running");for(p&&1===l&&f(l,P),a=l,i=P;(r=a<2?n:i)||!p;){c||(a?a<3?(a>1&&(d.n=-1),f(a,i)):d.n=i:d.v=i);try{if(s=2,c){if(a||(o="next"),r=c[o]){if(!(r=r.call(c,i)))throw TypeError("iterator result is not an object");if(!r.done)return r;i=r.value,a<2&&(a=0)}else 1===a&&(r=c.return)&&r.call(c),a<2&&(i=TypeError("The iterator does not provide a '"+o+"' method"),a=1);c=n}else if((r=(p=d.n<0)?i:e.call(t,d))!==u)break}catch(e){c=n,a=1,i=e}finally{s=1}}return{value:r,done:p}}}(e,c,a),!0),l}var u={};function s(){}function l(){}function p(){}r=Object.getPrototypeOf;var d=[][c]?r(r([][c]())):(t(r={},c,function(){return this}),r),f=p.prototype=s.prototype=Object.create(d);function P(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,t(e,a,"GeneratorFunction")),e.prototype=Object.create(f),e}return l.prototype=p,t(f,"constructor",p),t(p,"constructor",l),l.displayName="GeneratorFunction",t(p,a,"GeneratorFunction"),t(f),t(f,a,"Generator"),t(f,c,function(){return this}),t(f,"toString",function(){return"[object Generator]"}),(e=function(){return{w:i,m:P}})()}function t(e,n,r,o){var c=Object.defineProperty;try{c({},"",{})}catch(e){c=0}t=function(e,n,r,o){function a(n,r){t(e,n,function(e){return this._invoke(n,r,e)})}n?c?c(e,n,{value:r,enumerable:!o,configurable:!o,writable:!o}):e[n]=r:(a("next",0),a("throw",1),a("return",2))},t(e,n,r,o)}function n(e,t,n,r,o,c,a){try{var i=e[c](a),u=i.value}catch(e){return void n(e)}i.done?t(u):Promise.resolve(u).then(r,o)}function r(e){return function(){var t=this,r=arguments;return new Promise(function(o,c){var a=e.apply(t,r);function i(e){n(a,o,c,i,u,"next",e)}function u(e){n(a,o,c,i,u,"throw",e)}i(void 0)})}}!function(t){"use strict";var n=window.ppcpRecaptchaSettings||{},o=null,c=null,a=null,i=!1;function u(){return new Promise(function(e){"undefined"!=typeof grecaptcha&&grecaptcha.execute?(console.log("PPCP reCAPTCHA: reCAPTCHA v3 loaded and ready"),e()):(console.log("PPCP reCAPTCHA: Waiting for reCAPTCHA v3 to load..."),setTimeout(function(){u().then(e)},100))})}function s(e,r){if(!n.isBlocks){var o=n.isSingleProduct?"form.cart":n.isCheckout?"form.checkout":null;if(o){var c=t(o);0!==c.length?(c.find('input[name="ppcp_recaptcha_token"]').remove(),c.find('input[name="ppcp_recaptcha_version"]').remove(),c.append('<input type="hidden" name="ppcp_recaptcha_token" value="'+e+'">'),c.append('<input type="hidden" name="ppcp_recaptcha_version" value="'+r+'">')):console.error("PPCP reCAPTCHA: Form not found for token update")}}}function l(e){console.log("PPCP reCAPTCHA: Checkout error detected");var t=e&&("string"==typeof e?e.toLowerCase().includes("captcha"):e.some(function(e){return e.content&&e.content.toLowerCase().includes("captcha")}));i?null!==a&&"undefined"!=typeof grecaptcha&&grecaptcha.reset&&(console.log("PPCP reCAPTCHA: Resetting v2 widget"),grecaptcha.reset(a),c=null):t?(console.log("PPCP reCAPTCHA: v3 failed on checkout, rendering v2"),f()):n.siteKeyV3&&(console.log("PPCP reCAPTCHA: Regenerating v3 token"),p())}function p(){return d.apply(this,arguments)}function d(){return(d=r(e().m(function t(){var r;return e().w(function(e){for(;;)switch(e.p=e.n){case 0:if("undefined"!=typeof grecaptcha&&grecaptcha.execute){e.n=1;break}return console.error("PPCP reCAPTCHA: grecaptcha v3 not loaded"),e.a(2);case 1:return e.p=1,e.n=2,grecaptcha.execute(n.siteKeyV3,{action:"ppcp"});case 2:o=e.v,console.log("PPCP reCAPTCHA: New v3 token generated"),s(o,"v3"),n.isBlocks&&window.wp&&window.wp.data&&window.wp.data.dispatch("wc/store/checkout").__internalSetExtensionData("ppcp_recaptcha",{token:o,version:"v3"}),e.n=4;break;case 3:e.p=3,r=e.v,console.error("PPCP reCAPTCHA: Failed to generate v3 token",r),o=null;case 4:return e.a(2)}},t,null,[[1,3]])}))).apply(this,arguments)}function f(){if(!i&&n.siteKeyV2){var e=document.getElementById(n.v2ContainerId);if(e)if("undefined"!=typeof grecaptcha&&grecaptcha.render){e.innerHTML="";var t=document.createElement("div");t.className="g-recaptcha",t.setAttribute("data-sitekey",n.siteKeyV2),t.setAttribute("data-theme",n.theme),e.appendChild(t),a=grecaptcha.render(t,{sitekey:n.siteKeyV2,theme:n.theme,callback:function(e){c=e,console.log("PPCP reCAPTCHA: v2 verified"),s(e,"v2"),n.isBlocks&&window.wp&&window.wp.data&&window.wp.data.dispatch("wc/store/checkout").__internalSetExtensionData("ppcp_recaptcha",{token:e,version:"v2"})},"expired-callback":function(){c=null,s("","v2"),n.isBlocks&&window.wp&&window.wp.data&&window.wp.data.dispatch("wc/store/checkout").__internalSetExtensionData("ppcp_recaptcha",{token:"",version:"v2"})}}),i=!0}else console.error("PPCP reCAPTCHA: grecaptcha v2 not loaded");else console.error("PPCP reCAPTCHA: v2 container not found")}}var P=window.fetch;if(window.fetch=function(){var t=r(e().m(function t(r){var u,s,l,p,d,h=arguments;return e().w(function(e){for(;;)switch(e.n){case 0:if(u=h.length>1&&void 0!==h[1]?h[1]:{},(s="string"==typeof r?r:r.url)&&s.includes("ppc-create-order")){e.n=1;break}return e.a(2,P.call(this,r,u));case 1:if(console.log("PPCP reCAPTCHA: Intercepting AJAX",s),i&&c?(l=c,p="v2"):(l=o,p="v3"),l){e.n=2;break}return console.error("PPCP reCAPTCHA: No token available"),e.a(2,Promise.reject(new Error("Missing reCAPTCHA token")));case 2:try{(d=JSON.parse(u.body)).ppcp_recaptcha_token=l,d.ppcp_recaptcha_version=p,u.body=JSON.stringify(d),console.log("PPCP reCAPTCHA: Token injected",p)}catch(e){console.error("PPCP reCAPTCHA: Failed to inject token",e)}return e.a(2,P.call(this,r,u).then(function(e){return 403!==e.status&&400!==e.status||e.clone().json().then(function(e){e.data.code===n.errorCodeVerificationFailed&&(i?(console.log("PPCP reCAPTCHA: v2 verification failed, resetting v2 widget"),grecaptcha.reset(a),c=null):(console.log("PPCP reCAPTCHA: v3 failed, rendering v2"),f()))}),e}))}},t,this)}));return function(_x){return t.apply(this,arguments)}}(),t(document).ready(function(){n.siteKeyV3&&u().then(function(){console.log("PPCP reCAPTCHA: Pre-generating v3 token"),p(),setInterval(p,9e4)})}),!n.isBlocks&&n.isCheckout&&t(document.body).on("checkout_error",function(){l(t(".woocommerce-error, .woocommerce-NoticeGroup-checkout").text())}),n.isBlocks&&window.wp&&window.wp.data){var h=window.wp.data,C=h.subscribe,v=h.select,w=!1;C(function(){var e=v("wc/store/checkout");if(e){var n=e.hasError();n&&!w&&(console.log("PPCP reCAPTCHA: Block checkout error detected"),setTimeout(function(){var e=t(".wc-block-components-notice-banner__content");if(e.length>0){var n=e.text();console.log("PPCP reCAPTCHA: Error message extracted:",n),l(n)}else console.error("PPCP reCAPTCHA: Error banner not found in DOM")},100)),w=n}})}}(jQuery)})();