- Implemented StreamInterface, UploadedFileInterface, and UriInterface as per PSR standards. - Added getallheaders function to retrieve HTTP headers in a compatible manner. - Included LICENSE files for ralouphie/getallheaders and symfony/deprecation-contracts. - Introduced function for triggering deprecation notices in Symfony.
1 line
154 KiB
JavaScript
1 line
154 KiB
JavaScript
(()=>{"use strict";var t={338:(t,e,a)=>{var n=a(795);e.createRoot=n.createRoot,e.hydrateRoot=n.hydrateRoot},795:t=>{t.exports=window.ReactDOM}},e={};function a(n){var o=e[n];if(void 0!==o)return o.exports;var r=e[n]={exports:{}};return t[n](r,r.exports,a),r.exports}a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var n in e)a.o(e,n)&&!a.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),a.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};a.r(n),a.d(n,{allowedMetaFields:()=>we,contentFetchStatus:()=>Ee,contentSaveSource:()=>fe,contentSaveTranslate:()=>he,excerptSaveSource:()=>de,excerptSaveTranslate:()=>ue,metaFieldsSaveSource:()=>_e,metaFieldsSaveTranslate:()=>ye,selectedAiModel:()=>Se,setBlockRules:()=>be,slugSaveSource:()=>ge,slugSaveTranslate:()=>me,titleSaveSource:()=>ce,titleSaveTranslate:()=>pe,translationInfo:()=>ve});var o={};a.r(o),a.d(o,{contentFetchStatus:()=>Re,getAllowedMetaFields:()=>Le,getBlockRules:()=>ke,getSelectedAiModel:()=>Ae,getTranslatedString:()=>Ce,getTranslationEntry:()=>Te,getTranslationInfo:()=>xe});var r=a(338);const s=window.wp.element,l=window.wp.data,i=window.wp.i18n,c=t=>React.createElement("div",{className:"modal-header",key:t.modalRender},React.createElement("span",{className:"close",onClick:()=>{t.setPopupVisibility(!1)}},"×"),React.createElement("h2",{className:"notranslate"},(0,i.__)("Step 2 - Start Automatic Translation Process","autopoly-ai-translation-for-polylang-pro")),React.createElement("div",{className:"save_btn_cont"},React.createElement("button",{className:"notranslate save_it button button-primary",disabled:t.translatePendingStatus,onClick:t.updatePostData},t.translateButtonStatus?React.createElement(React.Fragment,null,React.createElement("span",{className:"updating-text"},(0,i.__)("Updating","autopoly-ai-translation-for-polylang-pro"),React.createElement("span",{className:"dot",style:{"--i":0}}),React.createElement("span",{className:"dot",style:{"--i":1}}),React.createElement("span",{className:"dot",style:{"--i":2}}))):(0,i.__)("Update Content","autopoly-ai-translation-for-polylang-pro")))),p=window.React;var d=a.n(p);const u=t=>{const e=t.skipTags||[],a="#atfp_open_translate_span#",n="#atfp_close_translate_span#",o="#atfp_temp_tag_open#",r="#atfp_temp_tag_close#",s="#atfp_less_then_symbol#",l="#atfp_greater_then_symbol#",i="#atfp_entity_open_translate_span#",c="#atfp_entity_close_translate_span#",p=t=>t.replace(new RegExp(a,"g"),"").replace(new RegExp(n,"g"),""),d=t=>{const o=document.createElement("div");o.innerHTML=t;const r=o.firstElementChild;if(!r)return t;let s=r.childNodes,l=s.length;if(l>0){s=Array.from(s).sort((t,e)=>3===t.nodeType?-1:3===e.nodeType?1:0);for(let t=0;t<l;t++){let e=s[t];if(3===e.nodeType){let t=e.textContent.replace(/^\s+|^\.\s+|^\s.|\s+$|\.\s+$|\s.\+$/g,t=>`${a}${p(t)}${n}`);e.textContent=t}else if(8===e.nodeType)e.textContent=e.textContent;else{let t=d(e.outerHTML);e.outerHTML=t}}}let i=r.outerHTML.match(/^<[^>]+>/)[0];const c=new RegExp(`${a}|${n}`,"g");i=i.replace(c,"");const u=r.tagName.toLowerCase(),g=new RegExp(`</${u}>`,"i"),m=r.outerHTML.match(g);if("<style>"===i)return`${a}${p(r.outerHTML)}${n}`;let f=r.innerHTML;f=f.replace(/^\s+|^\.\s+|^\s.|\s+$|\.\s+$|\s.\+$/g,t=>`${a}${p(t)}${n}`),r.innerHTML="";let h="",_="",y="";if(_=`${a}${p(i)}${n}`,m&&(h=`${a}</${u}>${n}`),e.includes(u)){const t=new RegExp(`${a}|${n}`,"g");f=f.replace(t,""),f=`${a}${p(f)}${n}`}return""!==f?(""!==_&&(y=_+f),""!==h&&(y+=h)):y=_+h,r.outerHTML=y,o.innerHTML},u=["yandex","localAiTranslator","google"].includes(t.service)?(e=>{/^(_yoast_wpseo_|rank_math_|_seopress_)/.test(t.contentKey.trim())&&(e=(t=>t.replace(/(%{1,2}[a-zA-Z0-9_]+%{0,2})/g,t=>`${a}${p(t)}${n}`))(e));const u=/\[(.*?)\]/g;"string"==typeof e&&e.match(u)&&(e=e.replace(u,t=>`${a}${p(t)}${n}`));let g=e;if((t=>(t=t.trim(),/^<([a-z][a-z0-9]*)\b[^>]*>(\s*(?:<!--.*?-->\s*)*<\/\1>)?$/i.test(t)))(e))g=e.replace(/<([a-z][a-z0-9]*)\b[^>]*>(\s*(?:<!--.*?-->\s*)*<\/\1>)?/gi,t=>`${a}${p(t)}${n}`);else{const t=document.createElement("div");t.innerHTML=(t=>{if("string"!=typeof t||!t.trim())return t;const e=/<\/?([a-zA-Z0-9]+)(\s[^>]*)?>/g,a=[];let n,s="",l=0;for(;null!==(n=e.exec(t));){const[i,c]=n,p=i.startsWith("</"),d=n.index;if(d>l&&(s+=t.slice(l,d)),p){const t=a.findIndex(t=>t.tag===c);-1!==t?(a.splice(t,1),s+=i):s+=`${o}<${c}>${r}`+i}else a.push({tag:c}),s+=i;l=e.lastIndex}l<t.length&&(s+=t.slice(l));for(let t=a.length-1;t>=0;t--){const{tag:e}=a[t];s+=`${o}</${e}>${r}`}return n=null,a.length=0,t=null,s})(e),function t(e){let o=e.childNodes;const r=e=>{if(o.length>e){let u=o[e],g=null;if(3===u.nodeType){const t=u.textContent.replace(/^\s+|^\.\s+|^\s.|\s+$|\.\s+$|\s.\+$/g,t=>`${a}${p(t)}${n}`);g=document.createTextNode(t)}else if(8===u.nodeType)g=document.createTextNode(`${a}${s}!--${p(u.textContent)}--${l}${n}`);else if(1===u.nodeType){const e=u.childNodes,o=u.outerHTML.trim(),r=o.match(/^<([a-zA-Z0-9]+)(\s[^>]*)?>/i);if(!r)return o;const d=r[1],m=r[2]||"",f=new RegExp(`<\\/${d}>\\s*$`,"i").test(o);e.length>0&&t(u);let h=`${a}${s}${d}${p(m)}${l}${n}${(t=>t.replace(/&([a-zA-Z0-9#x]+);/g,t=>`${i}${t.replace(/&/g,"").replace(/;/g,"")}${c}`))(u.innerHTML)}`;f&&(h+=`${a}${s}/${d}${l}${n}`),g=document.createTextNode(h)}else{let t=u.outerHTML;t=t.replace(/<!--([\s\S]*?)-->/g,(t,e)=>`${a}${p(t)}${n}`);let e=d(t);g=document.createTextNode(e)}u.replaceWith(g),e++,r(e)}};return r(0),e}(t),g=t.innerText,g=g.replace(new RegExp(s,"g"),"<").replace(new RegExp(l,"g"),">"),g=((t,e)=>{if(t=t.trim(),!/<\/?(tr|td)\b[^>]*>/i.test(t))return e;if(/<\/?(tr|td)\b[^>]*>/i.test(e))return e;e=e.trim();const o=t.match(/^<(tr|td)\b[^>]*>/i),r=t.match(/<\/(tr|td)>\s*$/i);let s=e;return o&&(s=`${a}${p(o[0])}${n}`+s),r&&(s+=`${a}${p(r[0])}${n}`),s})(e,g)}const m=new RegExp(`${o}([\\s\\S]*?)(${r})`,"g");return g=g.replace(m,""),g=(t=>t.replace(new RegExp(i,"g"),"&").replace(new RegExp(c,"g"),";"))(g),(t=>{const e=new RegExp(`(${a}[\\s\\S]*?${n})|'`);return t.split(e).filter(Boolean).filter(t=>""!==t.trim())})(g)})(t.content):t.content,g=new RegExp(`${a}[\\s\\S]*?${n}`),m=new RegExp(`${a}|${n}`,"g");return React.createElement(React.Fragment,null,["yandex","localAiTranslator","google"].includes(t.service)?u.map((t,e)=>g.test(t)?React.createElement("span",{key:e,className:"notranslate atfp-notraslate-tag",translate:"no"},(t=>t.replace(m,""))(t)):t):u)},g=({type:t,key:e,translateContent:a,source:n,provider:o,AllowedMetaFields:r})=>{if(["title","excerpt","slug"].includes(t)){const e=`${t}SaveTranslate`;(0,l.dispatch)("block-atfp/translate")[e](a,o)}else["metaFields"].includes(t)?Object.keys(r).includes(e)&&(0,l.dispatch)("block-atfp/translate").metaFieldsSaveTranslate(e,a,n,o):(0,l.dispatch)("block-atfp/translate").contentSaveTranslate(e,a,n,o)},m=({prefix:t=!1,start:e=!1,end:a=!1,translateStatus:n=!1})=>{const o=(a-e)/1e3,r={};if(t){if(r.provider=t,e&&a){const e=(0,l.select)("block-atfp/translate").getTranslationInfo().translateData[t]?.timeTaken||0;r.timeTaken=o+e}n&&(r.translateStatus=!0),(0,l.dispatch)("block-atfp/translate").translationInfo(r)}},f=t=>{if(document.querySelector(`#atfp-${t}-progress-bar`))jQuery(`.${t}-translator_progress`).css("width","0%"),jQuery(`.${t}-translator-strings-count`).hide();else{const e=jQuery(`\n <div id="atfp-${t}-progress-bar" class="atfp-translate-progress-bar">\n <div class="${t}-translator_progress_bar" style="background-color: #f3f3f3;border-radius: 10px;overflow: hidden;margin: 1.5rem auto; width: 50%;">\n <div class="${t}-translator_progress" style="overflow: hidden;transition: width .2s ease-in-out; border-radius: 10px;text-align: center;width: 0%;height: 20px;box-sizing: border-box;background-color: #4caf50; color: #fff; font-weight: 600;"></div>\n </div>\n <div style="display:none; color: white;" class="${t}-translator-strings-count hidden">\n Wahooo! You have saved your valuable time via auto translating \n <strong class="totalChars"></strong> characters using \n <strong>\n ${t} Translator\n </strong>\n </div>\n </div>\n `);jQuery("#atfp_strings_model .atfp_translate_progress").append(e)}},h=({number:t})=>t>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(1)+"K":t,_=(t,e="none",a=!1)=>{!1===a&&(a=(0,l.select)("block-atfp/translate").getTranslationInfo().sourceCharacterCount);const n=document.querySelector(`.${t}-translator-strings-count`);n&&(n.style.display=e,n.querySelector(".totalChars").textContent=h({number:a}))},y=({container:t,provider:e,startTime:a,endTime:n,translateStatus:o,modalRenderId:r})=>{if(!document.querySelector(`#atfp-${e}-strings-modal.modal-container[data-render-id="${r}"]`))return;t.querySelector(".atfp_translate_progress").style.display="none",t.querySelector(".atfp_string_container").style.animation="none",document.body.style.top="0";const s=t.querySelector("button.save_it");s.removeAttribute("disabled"),s.classList.add("translated"),s.classList.remove("notranslate"),(({provider:t,startTime:e,endTime:a})=>{const n=document.getElementById("atfp_strings_model").querySelector(".atfp_string_container").querySelectorAll('td.translate[data-string-type]:not([data-translate-status="translated"]):not(.notranslate):not([translate="no"])'),o=n.length,r=(0,l.select)("block-atfp/translate").getAllowedMetaFields();n.forEach((n,s)=>{const i=n.innerText,c=n.dataset.key,p=n.dataset.stringType,d=n.closest("tr").querySelector('td[data-source="source_text"]').innerText;g({type:p,key:c,translateContent:i,source:d,provider:t,AllowedMetaFields:r});const u=(0,l.select)("block-atfp/translate").getTranslationInfo().translateData[t],f=u&&u.targetStringCount?u.targetStringCount:0,h=u&&u.targetWordCount?u.targetWordCount:0,y=u&&u.targetCharacterCount?u.targetCharacterCount:0;""!==i.trim()&&i.trim().length>0&&(0,l.dispatch)("block-atfp/translate").translationInfo({targetStringCount:f+d.trim().split(/(?<=[.!?]+)\s+/).length,targetWordCount:h+d.trim().split(/\s+/).filter(t=>/[^\p{L}\p{N}]/.test(t)).length,targetCharacterCount:y+d.trim().length,provider:t}),s===o-1&&(jQuery(`.${t}-translator_progress`).css("width","100%"),_(t,"block"),m({prefix:t,start:e,end:a,translateStatus:!0}))})})({provider:e,startTime:a,endTime:n}),o(!1)},b=(t,e,a)=>{const n=(new Date).getTime();let o=!1;f(e);const r=document.getElementById("atfp_strings_model"),s=r.querySelector(".atfp_string_container");s.scrollTop=0;const l=s.scrollHeight;if(void 0!==l&&l>100){if(document.querySelector(".atfp_translate_progress").style.display="block",setTimeout(()=>{const t=2e3*Math.ceil(l/s?.offsetHeight);(t=>{const{element:e,scrollSpeed:a,provider:n}=t;if(e.scrollHeight-e.offsetHeight<=0)return;const o=jQuery(`.${n}-translator_progress_bar`);let r=null,s=e.scrollTop;const l=()=>{const t=e.scrollHeight-e.offsetHeight+100,i=performance.now();r||(r=i);const c=s+(i-r)/a*(t+2e3-s);var p=e.scrollTop/(e.scrollHeight-e.clientHeight)*100;o.find(`.${n}-translator_progress`).css("width",p+"%");let d=(Math.round(10*p)/10).toFixed(1);d=Math.min(d,100).toString(),o.find(`.${n}-translator_progress`).text(d+"%"),c>t?_(n,"block"):(e.scrollTop=c,c<t&&setTimeout(l,16))};l()})({element:s,scrollSpeed:t,provider:e})},2e3),s.addEventListener("scroll",()=>{if(s.scrollTop+s.clientHeight+50>=s.scrollHeight&&!o){const s=(new Date).getTime();setTimeout(()=>{y({container:r,provider:e,startTime:n,endTime:s,translateStatus:t,modalRenderId:a})},4e3),o=!0}}),s.clientHeight+10>=l){jQuery(`.${e}-translator_progress`).css("width","100%"),jQuery(`.${e}-translator_progress`).text("100%"),_(e,"block");const o=(new Date).getTime();setTimeout(()=>{y({container:r,provider:e,startTime:n,endTime:o,translateStatus:t,modalRenderId:a})},4e3)}}else{jQuery(`.${e}-translator_progress`).css("width","100%"),jQuery(`.${e}-translator_progress`).text("100%"),_(e,"block");const o=(new Date).getTime();setTimeout(()=>{y({container:r,provider:e,startTime:n,endTime:o,translateStatus:t,modalRenderId:a})},4e3)}},v=(t,e,a,n,o,r,s,l)=>{var i={keycode:{ESCAPE:27},getRequest:function(){return t.XDomainRequest?new t.XDomainRequest:t.XMLHttpRequest?new t.XMLHttpRequest:null},loadScript:function(t,a,n){var o=e.createElement("script");o.src=t,o.addEventListener("load",function t(){this.removeEventListener("load",t,!1),n()},!1),a.appendChild(o)},loadResource:function(e,a){var n=this.getRequest();return n?(n.onload=function(){a(this.responseText)},n.open("GET",e,!0),t.setTimeout(function(){n.send()},0),n):null},getStyleList:function(t){var e=t.getAttribute("class");return e?e.replace(/\s+/g," ").trim().split(" "):[]},hasStyleName:function(t,e){var a=this.getStyleList(t);return!!a.length&&a.indexOf(e)>=0},addStyleName:function(t,e){var a=this.getStyleList(t);a.push(e),t.setAttribute("class",a.join(" "))},removeStyleName:function(t,e){var a=this.getStyleList(t),n=a.indexOf(e);n>=0&&(a.splice(n,1),t.setAttribute("class",a.join(" ")))},isSupportedBrowser:function(){return"localStorage"in t&&"querySelector"in e&&"addEventListener"in t&&"getComputedStyle"in t&&"CSS1Compat"===e.compatMode}},c=function(t,e){var a=this;t.addEventListener("click",function(t){a.onClick(t)},!1),this._element=t,this._contentElement=e||this._element};c.prototype.onClick=function(){},c.prototype.setText=function(t){return this._contentElement.textContent=t,this};var p=function(t,e){var a=this;t.reset(),t.addEventListener("click",function(t){var e=t.target;"value"in e&&a.onSelect(e.value)},!1),t.addEventListener("change",function(t){alert("form change state");var e=t.target;e.checked&&a.onChange(e.value)},!1),this._form=t,this._itemName=e};p.prototype.onSelect=function(){},p.prototype.onChange=function(){},p.prototype.isHidden=function(){return this._form.hasAttribute("hidden")},p.prototype.getItems=function(){return this._form[this._itemName]||[]},p.prototype.getValue=function(){var t,e,a=this.getItems();for(t=0,e=a.length;t<e;t++)if(a[t].checked)return a[t].value;return""},p.prototype.setValue=function(t){var e,a,n=this.getItems();if(t===this.getValue())return this;for(e=0,a=n.length;e<a;e++)if(n[e].value===t){n[e].checked=!0,this.onChange(t);break}return this},p.prototype.setHidden=function(t){return(t=!!t)!==this.isHidden()&&(this._form[(t?"set":"remove")+"Attribute"]("hidden",""),this.onHiddenChange(t)),this},p.prototype.onHiddenChange=function(){};var d=function(a){var n,o=this,c=a.select,p=a.element,d=a.storage,u=(a.autoMode,a.pageLang),g=(a.userLang,a.translator),m=a.leftButton,f=a.rightButton,h=a.closeButton;if(this._element=p,this._pageLang=u,this._translator=g,this.onStateChange=function(t,e){"active"===t&&d.setValue("active",e)},c.onSelect=function(t){this.setHidden(!0),o.translate(t),b(s,"yandex",l)},c.onChange=function(t){d.setValue("lang",t),f.setText(t),o.setState("invalid",t===u)},c.onHiddenChange=function(a){var n,r=e.documentElement;o.setState("expanded",!a),a||(o.setState("right",!1).setState("bottom",!1),p.focus(),(n=this._form.getBoundingClientRect()).right+(t.pageXOffset||r.scrollLeft)+1>=Math.max(r.clientWidth,r.scrollWidth)&&o.setState("right",!0),n.bottom+(t.pageYOffset||r.scrollTop)+1>=Math.max(r.clientHeight,r.scrollHeight)&&o.setState("bottom",!0))},p.addEventListener("blur",function(){c.setHidden(!0)},!1),p.addEventListener("keydown",function(t){t.keyCode===i.keycode.ESCAPE&&c.setHidden(!0)},!1),g.on("error",function(){this.abort(),o.setState("busy",!1).setState("error",!0)}),g.on("progress",function(t){switch(t){case 0:o.setState("busy",!0).setState("active",!0);break;case 100:o.setState("done",!0).setState("busy",!1)}}),m.onClick=function(){c.setHidden(!0),o.translate(c.getValue()),b(s,"yandex",l)},f.onClick=function(){o.hasState("active")?(g.undo(),o.setState("busy",!1).setState("done",!1).setState("error",!1).setState("active",!1)):c.setHidden(!c.isHidden())},h.onClick=function(){c.setHidden(!0)},null!=r)var _=r;switch(_){case"nb":case"nn":n="no";break;default:n=_}n&&(c.setValue(n),d.getValue("active"))};d.prototype.hasState=function(t){return i.hasStyleName(this._element,"yt-state_"+t)},d.prototype.setState=function(t,e){return(e=!!e)===this.hasState(t)||(i[(e?"add":"remove")+"StyleName"](this._element,"yt-state_"+t),this.onStateChange(t,e)),this},d.prototype.translate=function(t){return t&&!this.hasState("active")&&this._translator.translate(this._pageLang,t),this},d.prototype.onStateChange=function(){};var u=function(e){this._name=e;try{this._data=t.JSON.parse(t.localStorage[e])}catch(t){this._data={}}};u.prototype.getValue=function(t){return this._data[t]},u.prototype.setValue=function(e,a){this._data[e]=a;try{t.localStorage[this._name]=t.JSON.stringify(this._data)}catch(t){}};var g=e.getElementById(n.widgetId);if(g&&i.isSupportedBrowser()){var m=function(){i.loadScript("https://yastatic.net/s3/translate/v21.4.7/js/tr_page.js",g,function(){i.loadResource("https://translate.yandex.net/website-widget/v1/widget.html",function(t){var e;t&&(g.innerHTML=t,e=g.querySelector(".yt-widget"),n.widgetTheme&&e.setAttribute("data-theme",n.widgetTheme),new d({select:new p(e.querySelector(".yt-listbox"),"yt-lang"),element:e,storage:new u("yt-widget"),autoMode:"true"===n.autoMode,pageLang:n.pageLang,userLang:(a.language||a.userLanguage||"").split("-")[0],translator:new o.PageTranslator({srv:"tr-url-widget",url:"https://translate.yandex.net/api/v1/tr.json/translate",autoSync:!0,maxPortionLength:600}),leftButton:new c(e.querySelector(".yt-button_type_left")),rightButton:new c(e.querySelector(".yt-button_type_right"),e.querySelector(".yt-button_type_right > .yt-button__text")),closeButton:new c(e.querySelector(".yt-button_type_close"))}))})})};"complete"===e.readyState||"interactive"===e.readyState?m():e.addEventListener("DOMContentLoaded",m,!1)}},w=t=>{const e=window;v(e,e.document,e.navigator,{pageLang:t.sourceLang,autoMode:"false",widgetId:"atfp_yandex_translate_element",widgetTheme:"light"},e.yt=e.yt||{},t.targetLang,t.translateStatusHandler,t.modalRenderId)};class S{static Object=t=>new this(t).extraData();constructor(t){this.btnSelector=t.btnSelector||!1,this.btnClass=t.btnClass||!1,this.btnText=t.btnText||`Translate To ${t.targetLanguageLabel} (Beta)`,this.stringSelector=t.stringSelector||!1,this.progressBarSelector=t.progressBarSelector||!1,this.onStartTranslationProcess=t.onStartTranslationProcess||(()=>{}),this.onComplete=t.onComplete||(()=>{}),this.onLanguageError=t.onLanguageError||(()=>{}),this.onBeforeTranslate=t.onBeforeTranslate||(()=>{}),this.onAfterTranslate=t.onAfterTranslate||(()=>{}),this.sourceLanguage=t.sourceLanguage||"en",this.targetLanguage=t.targetLanguage||"hi",this.targetLanguageLabel=t.targetLanguageLabel||"Hindi",this.sourceLanguageLabel=t.sourceLanguageLabel||"English"}extraData=async()=>{const t=await S.languageSupportedStatus(this.sourceLanguage,this.targetLanguage,this.targetLanguageLabel,this.sourceLanguageLabel);return!0!==t?(this.onLanguageError(t),{}):(this.defaultLang=this.targetLanguage,{continueTranslation:this.continueTranslation,stopTranslation:this.stopTranslation,startTranslation:this.startTranslation,reInit:this.reInit,init:this.init})};static languageSupportedStatus=async(t,e,a,n)=>{const o=["en","es","ja","ar","de","bn","fr","hi","it","ko","nl","pl","pt","ru","th","tr","vi","zh","zh-hant","bg","cs","da","el","fi","hr","hu","id","iw","lt","no","ro","sk","sl","sv","uk","kn","ta","te","mr"].map(t=>t.toLowerCase()),r="https:"===window.location.protocol,s=window?.isSecureContext;if(!window.hasOwnProperty("chrome")||!navigator.userAgent.includes("Chrome")||navigator.userAgent.includes("Edg"))return jQuery('<span style="color: #ff4646; display: inline-block;">\n <strong>Important Notice:</strong>\n <ol>\n <li>The Translator API, which leverages Chrome local AI models, is designed specifically for use with the Chrome browser.</li>\n <li>For comprehensive information about the Translator API, <a href="https://developer.chrome.com/docs/ai/translator-api" target="_blank">click here</a>.</li>\n </ol>\n <p>Please ensure you are using the Chrome browser for optimal performance and compatibility.</p>\n </span>');if(!("translation"in self&&"createTranslator"in self.translation||"ai"in self&&"translator"in self.ai||"Translator"in self&&"create"in self.Translator||r||s))return jQuery(`<span style="color: #ff4646; display: inline-block;">\n <strong>Important Notice:</strong>\n <ol>\n <li>\n The Translator API is not functioning due to an insecure connection.\n </li>\n <li>\n Please switch to a secure connection (HTTPS) or add this URL to the list of insecure origins treated as secure by visiting \n <span data-clipboard-text="chrome://flags/#unsafely-treat-insecure-origin-as-secure" target="_blank" class="chrome-ai-translator-flags">\n chrome://flags/#unsafely-treat-insecure-origin-as-secure ${S.svgIcons("copy")}\n </span>.\n Click on the URL to copy it, then open a new window and paste this URL to access the settings.\n </li>\n </ol>\n </span>`);if(!("translation"in self&&"createTranslator"in self.translation||"ai"in self&&"translator"in self.ai||"Translator"in self&&"create"in self.Translator))return jQuery(`<span style="color: #ff4646; display: inline-block;">\n <h4>Steps to Enable the Translator AI Modal:</h4>\n <ol>\n <li>Open this URL in a new Chrome tab: <strong><span data-clipboard-text="chrome://flags/#translation-api" target="_blank" class="chrome-ai-translator-flags">chrome://flags/#translation-api ${S.svgIcons("copy")}</span></strong>. Click on the URL to copy it, then open a new window and paste this URL to access the settings.</li>\n <li>Ensure that the <strong>Experimental translation API</strong> option is set to <strong>Enabled</strong>.</li>\n <li>Click on the <strong>Save</strong> button to apply the changes.</li>\n <li>The Translator AI modal should now be enabled and ready for use.</li>\n </ol>\n <p>For more information, please refer to the <a href="https://developer.chrome.com/docs/ai/translator-api" target="_blank">documentation</a>.</p> \n <p>If the issue persists, please ensure that your browser is up to date and restart your browser.</p>\n <p>If you continue to experience issues after following the above steps, please <a href="https://my.coolplugins.net/account/support-tickets/" target="_blank" rel="noopener">open a support ticket</a> with our team. We are here to help you resolve any problems and ensure a smooth translation experience.</p>\n </span>`);if(!o.includes(e.toLowerCase()))return jQuery(`<span style="color: #ff4646; display: inline-block;">\n <strong>Language Support Information:</strong>\n <ol>\n <li>The current version of Chrome AI Translator does not support the Target Language <strong>${a} (${e})</strong></li>\n <li>To view the list of supported languages, please <span data-clipboard-text="chrome://on-device-translation-internals" target="_blank" class="chrome-ai-translator-flags">chrome://on-device-translation-internals ${S.svgIcons("copy")}</span>. Click on the URL to copy it, then open a new window and paste this URL to access the settings.</li>\n <li>Ensure your Chrome browser is updated to the latest version for optimal performance.</li>\n </ol>\n </span>`);if(!o.includes(t.toLowerCase()))return jQuery(`<span style="color: #ff4646; display: inline-block;">\n <strong>Language Support Information:</strong>\n <ol>\n <li>The current version of Chrome AI Translator does not support the Source Language <strong>${n} (${t})</strong></li>\n <li>To view the list of supported languages, please <span data-clipboard-text="chrome://on-device-translation-internals" target="_blank" class="chrome-ai-translator-flags">chrome://on-device-translation-internals ${S.svgIcons("copy")}</span>. Click on the URL to copy it, then open a new window and paste this URL to access the settings.</li>\n <li>Ensure your Chrome browser is updated to the latest version for optimal performance.</li>\n </ol>\n </span>`);const l=await S.languagePairAvality(t,e);return"after-download"===l||"downloadable"===l||"unavailable"===l?jQuery(`<span style="color: #ff4646; display: inline-block;">\n <h4>Installation Instructions for Language Packs:</h4>\n <ol>\n <li>\n To proceed, please install the language pack for <strong>${a} (${e})</strong> or <strong>${n} (${t})</strong>.\n </li>\n <li>\n After installing the language pack, add this language to your browser's system languages in Chrome settings.<br>\n Go to <strong>Settings > Languages > Add languages</strong> and add <strong>${a}</strong> or <strong>${n}</strong> to your preferred languages list & reload the page.\n </li>\n <li>\n You can install it by visiting the following link: \n <strong>\n <span data-clipboard-text="chrome://on-device-translation-internals" target="_blank" class="chrome-ai-translator-flags">\n chrome://on-device-translation-internals ${S.svgIcons("copy")}\n </span>\n </strong>. Click on the URL to copy it, then open a new window and paste this URL to access the settings.\n </li>\n <li>\n Please check if both your source <strong>(<span style="color:#2271b1">${t}</span>)</strong> and target <strong>(<span style="color:#2271b1">${e}</span>)</strong> languages are available in the language packs list.\n </li>\n <li>\n You need to install both language packs for translation to work. You can search for each language by its language code: <strong>${t}</strong> and <strong>${e}</strong>.\n </li>\n <li>For more help, refer to the <a href="https://developer.chrome.com/docs/ai/translator-api#supported-languages" target="_blank">documentation to check supported languages</a>.</li>\n </ol>\n </span>`):"downloading"===l?jQuery(`<span style="color: #ff4646; display: inline-block;">\n <h4>Language Pack Download In Progress:</h4>\n <ol>\n <li>\n The language pack for <strong>${a} (${e})</strong> or <strong>${n} (${t})</strong> is already being downloaded.\n </li>\n <li>\n <strong>You do not need to start the download again.</strong> Please wait for the download to complete. Once finished, the translation feature will become available automatically.\n </li>\n <li>\n You can check the download progress by opening:\n <strong>\n <span data-clipboard-text="chrome://on-device-translation-internals" target="_blank" class="chrome-ai-translator-flags">\n chrome://on-device-translation-internals ${S.svgIcons("copy")}\n </span>\n </strong>\n . Click on the URL to copy it, then open a new window and paste this URL in Chrome to view the status.\n </li>\n <li>\n <strong>What to do next:</strong>\n <ul style="margin-top: .5em;">\n <li>Wait for the download to finish. The status will change to <strong>Ready</strong> or <strong>Installed</strong> in the <strong>Language Packs</strong> section.</li>\n <li>After the language pack is installed, you may need to <strong>reload</strong> or <strong>restart</strong> your browser for the changes to take effect.</li>\n </ul>\n </li>\n <li>\n For more help, refer to the <a href="https://developer.chrome.com/docs/ai/translator-api#supported-languages" target="_blank">documentation to check supported languages</a>.\n </li>\n </ol>\n <div style="text-align: right;">\n <button onclick="location.reload()" class="atfpp-error-reload-btn">Reload Page</button>\n </div>\n </span>`):"readily"===l||"available"===l||jQuery(`<span style="color: #ff4646; display: inline-block;">\n <h4>Language Pack Installation Required</h4>\n <ol>\n <li>Please ensure that the language pack for <strong>${a} (${e})</strong> or <strong>${n} (${t})</strong> is installed and set as a preferred language in your browser.</li>\n <li>To install the language pack, visit <strong><span data-clipboard-text="chrome://on-device-translation-internals" target="_blank" class="chrome-ai-translator-flags">chrome://on-device-translation-internals ${S.svgIcons("copy")}</span></strong>. Click on the URL to copy it, then open a new window and paste this URL to access the settings.</li>\n <li>If you encounter any issues, please refer to the <a href="https://developer.chrome.com/docs/ai/translator-api#supported-languages" target="_blank">documentation to check supported languages</a> for further assistance.</li>\n </ol>\n </span>`)};static languagePairAvality=async(t,e)=>{try{await self.Translator.create({sourceLanguage:t,targetLanguage:e,monitor(t){t.addEventListener("downloadprogress",t=>{console.log(`Downloaded ${100*t.loaded}%`)})}})}catch(t){console.log("err",t)}if("translation"in self&&"createTranslator"in self.translation)return await self.translation.canTranslate({sourceLanguage:t,targetLanguage:e});if("ai"in self&&"translator"in self.ai){const a=await self.ai.translator.capabilities();return await a.languagePairAvailable(t,e)}return"Translator"in self&&"create"in self.Translator&&await self.Translator.availability({sourceLanguage:t,targetLanguage:e})};AITranslator=async t=>"translation"in self&&"createTranslator"in self.translation?await self.translation.createTranslator({sourceLanguage:this.sourceLanguage,targetLanguage:t}):"ai"in self&&"translator"in self.ai?await self.ai.translator.create({sourceLanguage:this.sourceLanguage,targetLanguage:t}):"Translator"in self&&"create"in self.Translator&&await self.Translator.create({sourceLanguage:this.sourceLanguage,targetLanguage:t});init=async()=>{this.appendBtn(),this.translationStart=!1,this.completedTranslateIndex=0,this.completedCharacterCount=0,this.translateBtnEvents(),this.progressBarSelector&&this.addProgressBar()};appendBtn=()=>{this.translateBtn=jQuery(`<button class="button button-primary${this.btnClass?" "+this.btnClass:""}">${this.btnText}</button>`),jQuery(this.btnSelector).append(this.translateBtn)};formatCharacterCount=t=>t>=1e6?(t/1e6).toFixed(1)+"M":t>=1e3?(t/1e3).toFixed(1)+"K":t;translateBtnEvents=t=>this.btnSelector&&0!==jQuery(this.btnSelector).length?this.stringSelector&&0!==jQuery(this.stringSelector).length?(this.translateStatus=!0,this.translateBtn.off("click"),this.translateBtn.prop("disabled",!1),void(this.translationStart?this.translateStringEle.length>this.completedTranslateIndex+1?this.translateBtn.on("click",()=>{this.onStartTranslationProcess(),this.stringTranslation(this.completedTranslateIndex+1)}):(this.onComplete({translatedStringsCount:this.completedCharacterCount}),this.translateBtn.prop("disabled",!0)):this.translateBtn.on("click",this.startTranslationProcess))):this.onLanguageError("The string selector is missing. Please provide a valid selector for the strings to be translated."):this.onLanguageError("The button selector is missing. Please provide a valid selector for the button.");startTranslationProcess=async()=>{this.onStartTranslationProcess();const t=this.defaultLang;this.translationStart=!0,this.translateStringEle=jQuery(this.stringSelector),this.totalStringCount=Array.from(this.translateStringEle).map(t=>t.innerText.length).reduce((t,e)=>t+e,0),this.translator=await this.AITranslator(t),this.translateStringEle.length>0&&await this.stringTranslation(this.completedTranslateIndex)};stringTranslation=async t=>{if(!this.translateStatus)return;const e=this.translateStringEle[t];this.onBeforeTranslate(e);const a=e.innerText;let n=[];(e.childNodes.length>0&&!e.querySelector(".notranslate")||e.querySelector(".notranslate"))&&e.childNodes.forEach(t=>{3===t.nodeType&&""!==t.nodeValue.trim()&&n.push(t)}),n.length>0&&await this.stringTranslationBatch(n,0),this.completedCharacterCount+=a.length,this.completedTranslateIndex=t,this.progressBarSelector&&this.updateProgressBar(),this.onAfterTranslate(e),this.translateStringEle.length>t+1&&await this.stringTranslation(this.completedTranslateIndex+1),t===this.translateStringEle.length-1&&(this.translateBtn.prop("disabled",!0),this.onComplete({characterCount:this.completedCharacterCount}),jQuery(this.progressBarSelector).find(".chrome-ai-translator-strings-count").show().find(".totalChars").text(this.formatCharacterCount(this.completedCharacterCount)))};stringTranslationBatch=async(t,e)=>{const a=await this.translator.translate(t[e].nodeValue);return a&&""!==a&&(t[e].nodeValue=a),e<t.length-1&&await this.stringTranslationBatch(t,e+1),!0};addProgressBar=()=>{if(!document.querySelector("#chrome-ai-translator-modal .chrome-ai-translator_progress_bar")){const t=jQuery('\n <div class="chrome-ai-translator_progress_bar" style="background-color: #f3f3f3;border-radius: 10px;overflow: hidden;margin: 1.5rem auto; width: 50%;">\n <div class="chrome-ai-translator_progress" style="overflow: hidden;transition: width .5s ease-in-out; border-radius: 10px;text-align: center;width: 0%;height: 20px;box-sizing: border-box;background-color: #4caf50; color: #fff; font-weight: 600;"></div>\n </div>\n <div style="display:none; color: white;" class="chrome-ai-translator-strings-count hidden">\n Wahooo! You have saved your valuable time via auto translating \n <strong class="totalChars">0</strong> characters using \n <strong>\n Chrome AI Translator\n </strong>\n </div>\n ');jQuery(this.progressBarSelector).append(t)}};updateProgressBar=()=>{const t=this.completedCharacterCount/this.totalStringCount*1e3/10;let e=t.toString().split(".")[1]||"";e=e.length>0&&"0"!==e[0]?e[0]:"";const a=parseInt(t)+""+(""!==e?"."+e:"");jQuery(".chrome-ai-translator_progress").css({width:`${a}%`}).text(`${a}%`)};stopTranslation=()=>{this.translateStatus=!1};reInit=()=>{this.translateBtnEvents()};startTranslation=()=>{this.translateStatus=!0,this.startTranslationProcess(this.completedTranslateIndex+1)};static svgIcons=t=>({copy:'<svg stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 448 512" height="16px" width="16px" xmlns="http://www.w3.org/2000/svg" fill="#2271b1"><path d="M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"></path></svg>'}[t]||"")}const E=S,T=async t=>{const e=atfp_global_object.languageObject[t.targetLang].name,a=atfp_global_object.languageObject[t.sourceLang].name,n=(0,l.select)("block-atfp/translate").getAllowedMetaFields(),{translateStatusHandler:o,translateStatus:r}=t;let s=0;const c=await E.Object({mainWrapperSelector:"#atfp_strings_model",btnSelector:`#${t.ID}`,btnClass:"local_ai_translator_btn",btnText:(0,i.__)("Translate To","autopoly-ai-translation-for-polylang-pro")+" "+e+" (Beta)",stringSelector:".atfp_string_container tbody tr td.translate:not([data-translate-status='translated'])",progressBarSelector:"#atfp_strings_model .atfp_translate_progress",sourceLanguage:t.sourceLang,targetLanguage:t.targetLang,targetLanguageLabel:e,sourceLanguageLabel:a,onStartTranslationProcess:()=>{s=(new Date).getTime(),jQuery("#atfp_strings_model .modal-content .atfp_string_container")[0].scrollHeight>100&&jQuery("#atfp_strings_model .atfp_translate_progress").fadeIn("slow")},onComplete:()=>{m({prefix:"localAiTranslator",start:s,end:(new Date).getTime(),translateStatus:!0}),setTimeout(()=>{o(!1),jQuery("#atfp_strings_model .atfp_translate_progress").fadeOut("slow")},4e3)},onBeforeTranslate:t=>{const e=jQuery("#atfp_strings_model .modal-content .atfp_string_container");if(e.length<1)return c.stopTranslation(),m({prefix:"localAiTranslator",start:s,end:(new Date).getTime()}),void(s=0);const a=e[0].getBoundingClientRect(),n=t.closest("tr").offsetTop,o=e.height();var r;n>o+a.y&&(r=n-o+t.offsetHeight,e.scrollTop(r))},onAfterTranslate:t=>{const e=t.innerText,a=t.dataset.stringType,o=t.dataset.key,r=t.closest("tr").querySelector('td[data-source="source_text"]').innerText;g({type:a,key:o,translateContent:e,source:r,provider:"localAiTranslator",AllowedMetaFields:n});const s=(0,l.select)("block-atfp/translate").getTranslationInfo().translateData?.localAiTranslator,i=s&&s.targetStringCount?s.targetStringCount:0,c=s&&s.targetWordCount?s.targetWordCount:0,p=s&&s.targetCharacterCount?s.targetCharacterCount:0;""!==e.trim()&&e.trim().length>0&&(0,l.dispatch)("block-atfp/translate").translationInfo({targetStringCount:i+r.trim().split(/(?<=[.!?]+)\s+/).length,targetWordCount:c+r.trim().split(/\s+/).filter(t=>/[^\p{L}\p{N}]/.test(t)).length,targetCharacterCount:p+r.trim().length,provider:"localAiTranslator"})}});if(c.hasOwnProperty("init")){c.init();const t=document.querySelector("#atfp_localAiTranslator_translate_element .local_ai_translator_btn");t&&r&&(t.disabled=r)}},k=class{constructor(t){this.CONCURRENCY_LIMIT=window?.atfp_global_object?.AIRequestBatchSize||5,this.MAX_TOKENS=window?.atfp_global_object?.AIRequestMaxTokens||500,this.aiProviders={openai:"OpenAI",google:"Gemini",openrouter:"OpenRouter",deepl:"DeepL"},this.translateStatusHandler=t.translateStatusHandler,this.translateStatus=t.translateStatus,this.sourceLang=t.sourceLang,this.targetLang=t.targetLang,this.APIcontroller=[],this.staticStrings={},this.stopProcess=!1,this.AllowedMetaFields=(0,l.select)("block-atfp/translate").getAllowedMetaFields(),this.service=t.service,this.allStrings=this.allStringsFilter(),this.stringsBatches=this.calculateTokensInBatches(this.allStrings),this.errorMessage={},this.pendingStrings={},this.totalStrings=Object.keys(this.allStrings).length,this.completedStrings={},this.scrollDebounce=null,this.errorCount=0,this.isProcessing=!1,this.requestIndex=0,this.stringCount={},this.wordCount={},this.characterCount={},this.emptyBatches={},this.appendButton();const e=document.querySelector("#atfp-ai-translate-btn");e&&e.addEventListener("click",this.AITranslate),t.destroyUpdateHandler(()=>{this.service&&this.abortAllRequests(this.service)})}appendButton(){const t=document.querySelector(`#atfp_${this.service}_ai_translate_element`);if(t){let e=jQuery(t).find("#atfp_ai_translate_options");if(e.length<1){const a=(0,l.select)("block-atfp/translate").getTranslationInfo(),n=this.service&&a&&a.translateData&&a.translateData[this.service+"_ai"]&&a.translateData[this.service+"_ai"].translateStatus;e=jQuery(t).append(`<button id="atfp-ai-translate-btn" class="button button-primary atfp-disable" ${n||!this.service?"disabled":""}>${(0,i.__)(this.service?"Translate with "+this.aiProviders[this.service]:"Translate","autopoly-ai-translation-for-polylang-pro")}</button>`)}}}AITranslate=()=>{this.abortAllRequests(this.service),this.allStrings=this.allStringsFilter(),this.stringsBatches=this.calculateTokensInBatches(this.allStrings),this.stopProcess=!1,this.pendingStrings[this.service]=!1,this.errorCount=0,this.requestIndex=0,this.staticStringsUpdate(),jQuery(".atfp-translate-progress-bar").hide(),jQuery(`#atfp-${this.service}-progress-bar`).show(),f(this.aiProviders[this.service]),this.service=this.service,this.updateProgressBar(),this.processChunkBatch()};scrollDebounceHandler=t=>{clearTimeout(this.scrollDebounce),this.scrollDebounce=setTimeout(()=>{const e=document.querySelector('td[data-key="'+t+'"]');if(!e)return;const a=document.querySelector(`#atfp-${this.service}_ai-strings-modal .atfp_string_container`);if(!(e.getBoundingClientRect().top>=a.getBoundingClientRect().top&&e.getBoundingClientRect().bottom<=a.getBoundingClientRect().bottom)){const t=a.clientHeight,n=e.closest("tr").offsetTop-t+e.offsetHeight;a.scrollTo({top:n,behavior:"smooth"})}},250)};allStringsFilter=()=>{const t={};return Object.values(this.entries).forEach((e,a)=>{const n=e.source;if(n.trim().startsWith("[")&&n.trim().endsWith("]")){const t=e.source,a=e.type,o=e.id;a&&(this.staticStrings[o]=n,Object.keys(this.aiProviders).forEach(e=>{g({type:a,key:o,translateContent:n,source:t,provider:e+"_ai",AllowedMetaFields:this.AllowedMetaFields})}))}else e.translatedData[this.service+"_ai"]&&""!==e.translatedData[this.service+"_ai"]||""===e.source||(t[a]=e.source)}),t};calculateTokensInBatches=t=>{let e={},a=0,n=[];const o=Object.entries(t);for(let t=0;t<o.length;t++){const[r,s]=o[t],l=s.length,i=Math.ceil(l/4);a+i<=this.MAX_TOKENS?(e[r]=s,a+=i):(n.push(e),e={[r]:s},a=i)}return Object.keys(e).length>0&&n.push(e),n};processChunkBatch=async()=>{if(this.isProcessing)return;if(this.isProcessing=!0,this.showProgressBar(),0===[...this.stringsBatches].length)return void this.translateStatusHandler(!1);const t=new Date;try{await this.runRequest(),this.totalStrings===this.completedStrings[this.service]&&this.pendingStrings[this.service]&&(this.pendingStrings[this.service]=!1),this.processCompleteHandler(t)}catch(e){if(this.processCompleteHandler(t),"AbortError"===e.name){const t=this.errorMessage[this.service]&&this.errorMessage[this.service].includes("You exceeded your current quota")?(0,i.__)("You have exceeded you current plan limit. that's why the request is aborted.","autopoly-ai-translation-for-polylang-pro"):e;console.warn(t)}else console.error("An error occurred during the AJAX processing:",e)}};processCompleteHandler=async t=>{const e=t||new Date,a=new Date,n=this.pendingStrings[this.service]||!1,o=document.querySelector("#atfp-ai-translate-btn");if(m({prefix:this.service+"_ai",start:e,end:a,translateStatus:!n}),!n&&o&&(o.disabled=!0,o.title=(0,i.__)("Translation completed successfully.","autopoly-ai-translation-for-polylang-pro")),(0,l.dispatch)("block-atfp/translate").translationInfo({targetStringCount:this.stringCount[this.service],targetWordCount:this.wordCount[this.service],targetCharacterCount:this.characterCount[this.service],provider:this.service+"_ai"}),this.isProcessing=!1,await new Promise(t=>setTimeout(t,200)),n)return this.isProcessing=!1,void this.pendingRequest();_(this.aiProviders[this.service],"block",this.characterCount[this.service]),await new Promise(t=>setTimeout(t,4e3)),this.hideProgressBar()};makeAjaxRequest=async t=>{const e=new AbortController;this.APIcontroller.push(e);const a=Object.keys(t),n=Object.assign({},Object.values(t)),o=await(async({controller:t,Strings:e,slug:a,source_language:n,target_language:o})=>{const r={atfp_nonce:atfp_global_object.ai_translate_nonce,action:"atfp_ai_translation",strings:JSON.stringify(e),source_language:n,target_language:o,service_slug:a},s=await fetch(`${atfp_global_object.ai_translate_route_url}/${a}:translate-text`,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json","X-WP-Nonce":atfp_global_object.ai_translate_route_nonce},signal:t.signal,body:new URLSearchParams(r)});if(!s.ok){const t=await s.json();console.error("WordPress Error:",t)}return await s.json()})({controller:e,Strings:n,slug:this.service,source_language:this.sourceLang,target_language:this.targetLang});if(o.success&&o.data&&o.data.translate_data){if(Object.keys(o.data.translate_data).length>0){this.errorCount=0;const t=Object.keys(o.data.translate_data)[0];await this.updateData(t,o.data.translate_data,a)}}else this.pendingStrings[this.service]=!0,o.success&&!o.data.translate_data&&o.data.text&&(console.group("Automatic Translation Error"),console.warn("Empty response"),console.log(t),console.groupEnd()),o.success||(this.errorMessage[this.service]=o.data,console.group("Automatic Translation Error"),console.log("%c"+o.data,"color: red; font-weight: bold; font-size: 1.2rem;"),console.groupEnd(),this.errorCount++,(this.errorCount>=5||o.data.includes("service is not available."))&&(this.stopProcess=!0,this.abortAllRequests(this.service)),o.data.includes("You exceeded your current quota")&&(this.stopProcess=!0,this.abortAllRequests(this.service)))};runRequest=async()=>{const t=this.stringsBatches.slice(0,this.CONCURRENCY_LIMIT);this.requestIndex=this.CONCURRENCY_LIMIT-1;const e=async t=>(await this.makeAjaxRequest(t),this.requestIndex<this.stringsBatches.length-1&&!this.stopProcess?(this.requestIndex++,await e(this.stringsBatches[this.requestIndex])):void 0);await Promise.all(t.map(async t=>{await e(t)}))};abortAllRequests=t=>{this.stopProcess=!0,this.pendingStrings[t]=!0;try{this.APIcontroller.forEach(t=>{t.signal&&!t.signal.aborted&&t.abort("Modal Closed")})}catch(t){return void("AbortError"===t.name?console.warn("Request aborted"):console.error("An error occurred during the AJAX processing:",t))}this.scrollDebounce&&clearTimeout(this.scrollDebounce),this.APIcontroller=[]};showProgressBar=()=>{const t=document.querySelector(`#atfp-${this.service}_ai-strings-modal .atfp_translate_progress`);t&&(t.style.display="block")};hideProgressBar=async()=>{const t=document.querySelector(`#atfp-${this.service}_ai-strings-modal .atfp_translate_progress`);t&&(t.style.display="none",this.translateStatusHandler(!1))};updateProgressBar=()=>{const t=this.totalStrings,e=(this.completedStrings[this.service]||0)/t*100;let a=(Math.round(10*e)/10).toFixed(1);a=Math.min(a,100).toString();const n=document.querySelector(`#atfp-${this.service}_ai-strings-modal .${this.aiProviders[this.service]}-translator_progress`);n&&(n.style.width=`${a}%`,n.textContent=a+"%")};updateData=async(t,e,a)=>{const n=e[t],o=a[t];if(n&&""!==n&&this.entries&&this.entries[o]){const t=this.entries[o]?.id,e=this.entries[o].source,a=n,r=this.entries[o]?.type;this.scrollDebounceHandler(t),this.completedStrings[this.service]=this.completedStrings[this.service]||0,++this.completedStrings[this.service],await new Promise(t=>setTimeout(t,300)),this.updateProgressBar();const s=document.querySelector(`td[data-key="${t}"][data-string-type="${r}"]`);s&&(s.innerText=a),this.stringCount[this.service]=this.stringCount[this.service]||0,this.wordCount[this.service]=this.wordCount[this.service]||0,this.characterCount[this.service]=this.characterCount[this.service]||0,this.stringCount[this.service]=this.stringCount[this.service]+e.trim().split(/(?<=[.!?]+)\s+/).length,this.wordCount[this.service]=this.wordCount[this.service]+e.trim().split(/\s+/).filter(t=>/[^\p{L}\p{N}]/.test(t)).length,this.characterCount[this.service]=this.characterCount[this.service]+e.trim().length,r&&g({type:r,key:t,translateContent:a,source:e,provider:this.service+"_ai",AllowedMetaFields:this.AllowedMetaFields})}if(delete e[t],Object.keys(e).length>0){const t=Object.keys(e)[0];await this.updateData(t,e,a)}};pendingRequest=()=>{if(this.pendingStrings[this.service]){jQuery(".atfp_translate_progress").hide();const t=this.totalStrings,e=(this.completedStrings[this.service]||0)/t*100;let a=(Math.round(10*e)/10).toFixed(1);a=Math.min(a,100);let n=100-a;n=(Math.round(10*n)/10).toFixed(1),n=Math.min(n,100);let o="",r="";this.errorMessage&&this.errorMessage[this.service]&&this.errorMessage[this.service].includes("You exceeded your current quota")?(o='<p class="atfp-pending-request-message-heading">'+(0,i.__)("You’ve exceeded your current plan limit.","autopoly-ai-translation-for-polylang-pro")+"</p> "+(0,i.__)("To continue, please check your plan details and update your API key.","autopoly-ai-translation-for-polylang-pro"),r=(0,i.__)('Click "Translate" after updating your API key to re-translate the remaining strings.',"autopoly-ai-translation-for-polylang-pro")):(o='<p class="atfp-pending-request-message-heading">'+(0,i.__)("Oops! Something went wrong during translation","autopoly-ai-translation-for-polylang-pro")+"</p>",r=(0,i.__)('Click "Translate" to re-translate the remaining strings.',"autopoly-ai-translation-for-polylang-pro"));const s=`\n <div class="atfp-pending-request-message-container">\n <div class="atfp-pending-request-message">\n <div>${o}</div>\n <p>${(0,i.__)("To see more details, open your browser’s developer console.","autopoly-ai-translation-for-polylang-pro")}</p>\n\n <p>✅ ${(0,i.sprintf)((0,i.__)("You’ve translated %s of the strings.","autopoly-ai-translation-for-polylang-pro"),a+"%")}</p>\n <p>❌ ${(0,i.sprintf)((0,i.__)("%s of the strings are still not translated.","autopoly-ai-translation-for-polylang-pro"),n+"%")}</p>\n\n <p><strong>${(0,i.__)("Next Steps:","autopoly-ai-translation-for-polylang-pro")}</strong></p>\n\n <p>${r}</p>\n <p><strong>${(0,i.__)("OR","autopoly-ai-translation-for-polylang-pro")}</strong></p>\n <p>${(0,i.__)('Click "Continue" to proceed without translating the rest of the strings.',"autopoly-ai-translation-for-polylang-pro")}</p>\n </div>\n <div class="atfp-pending-request-message-buttons">\n <button id="atfp-${this.service}-translate-error-message-translate-again">${(0,i.__)("Translate","autopoly-ai-translation-for-polylang-pro")}</button>\n <button id="atfp-${this.service}-translate-error-message-continue">${(0,i.__)("Continue","autopoly-ai-translation-for-polylang-pro")}</button>\n </div>\n </div>\n `;jQuery(".atfp-translate-error-message").remove(),jQuery("#atfp_strings_model .atfp_translate_progress").after(s),this.translateErrorButtonsHandler()}};translateErrorButtonsHandler=()=>{jQuery(`#atfp-${this.service}-translate-error-message-translate-again`).click(()=>{this.translateAgain()}),jQuery(`#atfp-${this.service}-translate-error-message-continue`).click(()=>{this.translateComplete()})};translateAgain=()=>{this.allStrings=this.allStringsFilter(),this.stringsBatches=this.calculateTokensInBatches(this.allStrings),document.querySelector(`#atfp_${this.service}_ai_translate_options`),jQuery(".atfp-pending-request-message-container").remove();const t=document.querySelector("#atfp-ai-translate-btn");t&&t.click()};translateComplete=()=>{jQuery(".atfp-pending-request-message-container").remove(),this.hideProgressBar(),this.translateStatusHandler(!1)};staticStringsUpdate=()=>{const t=this.staticStrings;Object.keys(t).forEach(e=>{const a=document.querySelector(`td[data-key="${e}"]`);a&&""===a.innerText&&(a.innerText=t[e])})};get entries(){return(0,l.select)("block-atfp/translate").getTranslationEntry()}},C=t=>{const{sourceLang:e,targetLang:a,ID:n,translateStatusHandler:o,modalRenderId:r}=t;let s=a,l=e;"zh"===s&&(s=atfp_global_object.languageObject.zh?.locale.replace("_","-")),"zh"===l&&(l=atfp_global_object.languageObject.zh?.locale.replace("_","-")),new google.translate.TranslateElement({pageLanguage:l,includedLanguages:s,defaultLanguage:l,multilanguagePage:!0,autoDisplay:!1},n);const i=document.querySelector(`#${n}`);i&&i.children.length<=0&&Object.values(google?.translate?.TranslateElement()).map(t=>{t instanceof HTMLElement&&"atfp_google_translate_element"===t.id&&i.replaceWith(t)}),document.querySelector(`#${n}`).addEventListener("change",()=>{b(o,"google",r)})},x=t=>{t=t||{};const{Service:e=!1,openErrorModalHandler:a=()=>{}}=t,n=window.atfp_global_object.admin_url,o=window.atfp_global_object.atfp_url+"assets/images/error-icon.svg",r={yandex:{Provider:w,title:"Yandex Translate",SettingBtnText:"Translate",serviceLabel:"Yandex Translate",Docs:"https://docs.coolplugins.net/doc/yandex-translate-for-polylang/?utm_source=atfp_plugin&utm_medium=inside&utm_campaign=docs&utm_content=popup_yandex_pro ",heading:(0,i.__)("Choose Language","autopoly-ai-translation-for-polylang-pro"),BetaEnabled:!1,ButtonDisabled:t.yandexButtonDisabled,ErrorMessage:t.yandexButtonDisabled?React.createElement("div",{className:"atfp-provider-error button button-primary",onClick:()=>a("yandex")},React.createElement("img",{src:o,alt:"error"})," ",(0,i.__)("View Error","autopoly-ai-translation-for-polylang-pro")):React.createElement(React.Fragment,null),Logo:"yandex.png"},google:{Provider:C,title:"Google Translate",SettingBtnText:"Translate",serviceLabel:"Google Translate",Docs:"https://docs.coolplugins.net/doc/google-translate-for-polylang/?utm_source=atfp_plugin&utm_medium=inside&utm_campaign=docs&utm_content=popup_google_pro",heading:(0,i.__)("Choose Language","autopoly-ai-translation-for-polylang-pro"),BetaEnabled:!1,ButtonDisabled:t.googleButtonDisabled,ErrorMessage:t.googleButtonDisabled?React.createElement("div",{className:"atfp-provider-error button button-primary",onClick:()=>a("google")},React.createElement("img",{src:o,alt:"error"})," ",(0,i.__)("View Error","autopoly-ai-translation-for-polylang-pro")):React.createElement(React.Fragment,null),Logo:"google.png"},localAiTranslator:{Provider:T,title:"Chrome Built-in AI",SettingBtnText:"Translate",serviceLabel:"Chrome AI Translator",heading:(0,i.sprintf)((0,i.__)("Translate Using %s","autopoly-ai-translation-for-polylang-pro"),"Chrome built-in API"),Docs:"https://docs.coolplugins.net/doc/chrome-ai-translation-polylang/?utm_source=atfp_plugin&utm_medium=inside&utm_campaign=docs&utm_content=popup_chrome_pro",BetaEnabled:!0,ButtonDisabled:t.localAiTranslatorButtonDisabled,ErrorMessage:t.localAiTranslatorButtonDisabled?React.createElement("div",{className:"atfp-provider-error button button-primary",onClick:()=>a("localAiTranslator")},React.createElement("img",{src:o,alt:"error"})," ",(0,i.__)("View Error","autopoly-ai-translation-for-polylang-pro")):React.createElement(React.Fragment,null),Logo:"chrome.png"},openai_ai:{Provider:t=>new k({...t,service:"openai"}),title:"OpenAI Model",SettingBtnText:"Translate",serviceLabel:"OpenAI",heading:(0,i.sprintf)((0,i.__)("Translate Using %s Model","autopoly-ai-translation-for-polylang-pro"),"OpenAI"),Docs:"https://docs.coolplugins.net/doc/translate-via-open-ai-polylang/?utm_source=atfp_plugin&utm_medium=inside&utm_campaign=docs&utm_content=popup_openai_pro",BetaEnabled:!0,ButtonDisabled:t.openai_aiButtonDisabled,ErrorMessage:t.openai_aiButtonDisabled?React.createElement("a",{className:"atfp-provider-error button button-primary",href:n+"admin.php?page=polylang-atfpp-dashboard&tab=settings",target:"_blank"},React.createElement("img",{src:o,alt:"error"})," ",(0,i.__)("Add API Key","autopoly-ai-translation-for-polylang-pro")):React.createElement(React.Fragment,null),Logo:"openai.png"},google_ai:{Provider:t=>new k({...t,service:"google"}),title:"Gemini Model",SettingBtnText:"Translate",serviceLabel:"Gemini",heading:(0,i.sprintf)((0,i.__)("Translate Using %s Model","autopoly-ai-translation-for-polylang-pro"),"Gemini"),Docs:"https://docs.coolplugins.net/doc/translate-via-gemini-ai-polylang/?utm_source=atfp_plugin&utm_medium=inside&utm_campaign=docs&utm_content=popup_gemini_pro",BetaEnabled:!0,ButtonDisabled:t.google_aiButtonDisabled,ErrorMessage:t.google_aiButtonDisabled?React.createElement("a",{className:"atfp-provider-error button button-primary",href:n+"admin.php?page=polylang-atfpp-dashboard&tab=settings",target:"_blank"},React.createElement("img",{src:o,alt:"error"})," ",(0,i.__)("Add API Key","autopoly-ai-translation-for-polylang-pro")):React.createElement(React.Fragment,null),Logo:"gemini.png"},deepl_ai:{Provider:t=>new k({...t,service:"deepl"}),title:"DeepL Model",SettingBtnText:"Translate",serviceLabel:"DeepL",heading:(0,i.sprintf)((0,i.__)("Translate Using %s Model","autopoly-ai-translation-for-polylang-pro"),"DeepL"),Docs:"https://docs.coolplugins.net/doc/translate-via-deepl-ai-polylang/?utm_source=atfpp_plugin&utm_medium=inside&utm_campaign=docs&utm_content=popup_deepl",BetaEnabled:!0,ButtonDisabled:t.deepl_aiButtonDisabled,ErrorMessage:t.deepl_aiButtonDisabled?t.deepl_aiButtonDisabled.includes("language_not_supported")?React.createElement("div",{className:"atfp-provider-error button button-primary",onClick:()=>a("deepl")},React.createElement("img",{src:o,alt:"error"})," ",(0,i.__)("View Error","autopoly-ai-translation-for-polylang-pro")):React.createElement("a",{className:"atfp-provider-error button button-primary",href:n+"admin.php?page=polylang-atfpp-dashboard&tab=settings",target:"_blank"},React.createElement("img",{src:o,alt:"error"})," ",(0,i.__)("Add API Key","autopoly-ai-translation-for-polylang-pro")):React.createElement(React.Fragment,null),Logo:"deepl.png"}};return e?r[e]:r};var L=a(795),A=a.n(L);const R=({position:t,sourceLang:e,targetLang:a,selectedSourceText:n,onClose:o,setGlossaryTerms:r})=>{const[s,l]=(0,p.useState)("general"),[i,c]=(0,p.useState)(n||""),[u,g]=(0,p.useState)(n||""),[m,f]=(0,p.useState)(""),[h,_]=(0,p.useState)(""),[y,b]=(0,p.useState)(!1),[v,w]=(0,p.useState)(""),[S,E]=(0,p.useState)(""),[T,k]=(0,p.useState)([]);(0,p.useEffect)(()=>{if(n)if(n.includes("<")&&n.includes(">")){const t=(t=>{const e=document.createElement("div");e.innerHTML=t;const a=[],n=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1);let o;for(;o=n.nextNode();){const t=o.textContent.trim();if(t&&t.length>1){const e=o.parentElement;if(e){const t=e.textContent.trim();t.endsWith(":")&&a.push(t)}a.push(t)}}return[...new Set(a)]})(n);if(k(t),t.length>0){const e=(t=>{if(!t||0===t.length)return"";for(const e of t){const t=e.trim();if(t.endsWith(":")||/^(Label|Title|Heading|Text):/i.test(t))return t}return t[0]||""})(t);g(e),c(e)}}else g(n),c(n),k([])},[n]);const C=(0,p.useRef)(null),x=(0,p.useRef)(null);(0,p.useEffect)(()=>{const t=t=>{const e=C.current,a=x.current||document.querySelector(".atfp-info-popup"),n=e&&!e.contains(t.target),r=!a||!a.contains(t.target);n&&r&&o()};return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[o]);const L={};return"undefined"!=typeof window&&null!=t?.right&&(L.right=window.innerWidth-t.right),"undefined"!=typeof window&&null!=t?.bottom?(L.bottom=window.innerHeight-t.bottom+20,null!=L.right&&(L.right=L.right-30)):null!=t?.top&&(L.top=t.top),d().createElement("div",{ref:C,className:"atfp-glossary-popup atfp-add-glossary-popup",style:L,onClick:t=>t.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"atfp-add-glossary-title"},d().createElement("div",{className:"atfp-glossary-popup__header"},d().createElement("span",{id:"atfp-add-glossary-title"},"Add New Glossary Term")),d().createElement("form",{onSubmit:async t=>{if(t.preventDefault(),b(!0),w(""),!s||!i?.trim()||!e?.trim())return w("Type, Term, and Source Language are required."),void b(!1);try{if(!atfp_global_object?.atfpp_glossary_nonce)return w("Security token missing. Please refresh the page."),void b(!1);const n=new FormData;n.append("action","atfpp_add_glossary"),n.append("_wpnonce",atfp_global_object.atfpp_glossary_nonce),n.append("type",s),n.append("term",i.trim()),n.append("description",h||""),n.append("source_lang",e),m&&m.trim()&&a&&n.append(`translations[${a}]`,m.trim());const l=atfp_global_object?.ajaxurl||ajaxurl,c=await fetch(l,{method:"POST",credentials:"same-origin",body:n});let p;try{const e=await c.text();try{p=JSON.parse(e)}catch(t){throw console.error("Failed to parse response:",e),new Error("Invalid response from server")}}catch(t){throw console.error("Error reading response:",t),new Error("Failed to read server response")}if(p?.success){if("function"==typeof r)try{const t=`${l}?action=atfpp_get_glossary&sourceLang=${encodeURIComponent(e)}&targetLang=${encodeURIComponent(a||"")}`,n=await fetch(t,{credentials:"same-origin"});if(n.ok){const t=await n.json();t?.success&&(r(t.data?.terms||[]),E("Glossary term added successfully!"),setTimeout(()=>{o()},3e3))}}catch(t){console.error("Error refreshing glossary:",t)}}else{const t=p?.data||"Could not add glossary term";w("This term already exists in this language."===t?"This term already exists in this language.":"Permission denied"===t?"You do not have permission to add glossary terms.":"string"==typeof t?t:"Failed to add glossary term.")}}catch(t){console.error("Error saving glossary term:",t),w("Failed to add glossary term. Please try again.")}finally{b(!1)}},className:"atfp-add-glossary-form"},d().createElement("div",{className:"atfp-form-group"},d().createElement("label",{htmlFor:"atfp-type"},"Type:"),d().createElement("select",{id:"atfp-type",value:s,onChange:t=>l(t.target.value),required:!0},d().createElement("option",{value:"general"},"General"),d().createElement("option",{value:"name"},"Name"))),d().createElement("div",{className:"atfp-form-group"},T.length>0?d().createElement(d().Fragment,null,d().createElement("div",{className:"atfp-form-group"},d().createElement("label",{htmlFor:"atfp-term-select"},"Select Glossary Term:"),d().createElement("select",{id:"atfp-term-select",value:u,onChange:t=>{const e=t.target.value;g(e),c(e)},required:!0},T.map((t,e)=>{const a=t.length>50?t.substring(0,47)+"...":t;return d().createElement("option",{key:e,value:t},a)}))),d().createElement("div",{className:"atfp-form-group",style:{marginTop:"16px"}},d().createElement("label",{htmlFor:"atfp-term"},"Glossary Term:"),d().createElement("input",{id:"atfp-term",type:"text",value:i,onChange:t=>c(t.target.value),placeholder:"Edit selected text if needed",required:!0}))):d().createElement("div",{className:"atfp-form-group"},d().createElement("label",{htmlFor:"atfp-term"},"Glossary Term:"),d().createElement("input",{id:"atfp-term",type:"text",value:i,onChange:t=>c(t.target.value),placeholder:"Enter source term",required:!0}))),d().createElement("div",{className:"atfp-form-group"},d().createElement("label",{htmlFor:"atfp-translation"},"Custom Translation ",a?`(${a})`:"",":"),d().createElement("input",{id:"atfp-translation",type:"text",value:m,onChange:t=>f(t.target.value),placeholder:"Enter custom translation..."})),d().createElement("div",{className:"atfp-form-group"},d().createElement("label",{htmlFor:"atfp-description"},"Description (optional):"),d().createElement("textarea",{id:"atfp-description",value:h,onChange:t=>_(t.target.value),placeholder:"Enter term description (optional)...",rows:3})),v&&d().createElement("div",{className:"atfp-error-message",role:"alert"},v),S&&d().createElement("div",{className:"atfp-success-message",role:"alert"},S),d().createElement("div",{className:"atfp-form-actions"},d().createElement("button",{type:"button",onClick:o,className:"button button-secondary"},"Cancel"),d().createElement("button",{type:"submit",className:"button button-primary",disabled:y},y?"Saving...":"Save"))))},N=d().forwardRef(({left:t,top:e,onClose:a,onGlossaryClick:n,onAddGlossary:o,glossaryOpen:r,glossaryCount:s=0,onSave:l,onCopy:i,disableGlossary:c=!1,showAddGlossary:p=!1},u)=>{const g=atfp_global_object.atfp_url+"assets/images/";return d().useEffect(()=>{const t=()=>a(),e=[document.getElementById("atfp-ai-translate-btn"),document.getElementsByClassName("local_ai_translator_btn")[0],document.querySelector(".goog-te-combo"),document.getElementById("yt-widget")].filter(Boolean);return e.forEach(e=>{const a="SELECT"===e.tagName?"change":"click";e.addEventListener(a,t)}),()=>{e.forEach(e=>{const a="SELECT"===e.tagName?"change":"click";e.removeEventListener(a,t)})}},[a]),d().createElement("div",{ref:u,className:"atfp-info-popup",style:{left:t,top:e},onClick:t=>t.stopPropagation()},d().createElement("button",{className:"atfp-info-popup__close",onClick:a,"aria-label":"Close",title:"Close"},d().createElement("img",{src:g+"cross.png",alt:"Close"})),d().createElement("button",{className:"atfp-info-popup__glossary"+(c?" atfp-disabled":""),onClick:c?null:n,title:c?"No glossary terms available":"Glossary",disabled:c},d().createElement("span",{className:"atfp-bookmark-icon-wrapper"},d().createElement("img",{src:g+"bookmark.png",alt:"Glossary",className:`atfp-bookmark-icon${r?" atfp-bookmark-icon--active":""}${c?" atfp-bookmark-icon--disabled":""}`}),s>0&&d().createElement("span",{className:"atfp-bookmark-badge"},s))),d().createElement("button",{className:"atfp-info-popup__add-glossary"+(p?" atfp-active":""),onClick:o,title:"Add to Glossary"},d().createElement("img",{src:g+"plus.png",alt:"Add Glossary",className:"atfp-add-icon"+(p?" atfp-add-icon--active":"")})),d().createElement("button",{className:"atfp-info-popup__copy",onClick:i,title:"Copy"},d().createElement("img",{src:g+"copy.png",alt:"Copy",className:"atfp-copy-icon"})),d().createElement("button",{className:"atfp-info-popup__save",onClick:l,"aria-label":"Save",title:"Save"},d().createElement("img",{src:g+"save.png",alt:"Save",className:"atfp-save-icon"})))}),j=({position:t,terms:e=[],targetLangLabel:a="Translation",sourceLangLabel:n="English",onInsert:o})=>{const r={right:window.innerWidth-t.right};t.bottom?(r.bottom=window.innerHeight-t.bottom+20,r.right=r.right-30):r.top=t.top;const s=(t,e=23,a=20)=>t?t.length>e?t.slice(0,a)+"…":t:"",l=atfp_global_object.atfp_url+"assets/images/";return d().createElement("div",{className:"atfp-glossary-popup",style:r,onClick:t=>t.stopPropagation()},d().createElement("div",{className:"atfp-glossary-popup__header"},d().createElement("span",{className:"atfp-glossary-popup__icon"},d().createElement("img",{src:l+"bookmark.png",alt:"Glossary",className:"atfp-bookmark-icon"})),"Glossary term in this sentence",d().createElement("span",{className:"atfp-glossary-popup__badge"},e.length)),d().createElement("table",null,d().createElement("thead",null,d().createElement("tr",null,d().createElement("th",null,n),d().createElement("th",null,a),d().createElement("th",null,"Description"),d().createElement("th",null))),d().createElement("tbody",null,e.map((t,e)=>d().createElement("tr",{key:e},d().createElement("td",{title:t.english},s(t.english)),d().createElement("td",{title:t.translation},s(t.translation)),d().createElement("td",{title:t.description},s(t.description)),d().createElement("td",null,d().createElement("button",{className:"atfp-glossary-insert",onClick:()=>o&&o(t)},"Insert")))))))},D=t=>{const{service:e}=t,a=(0,l.select)("block-atfp/translate").getTranslationEntry(),n=t.stringModalBodyNotice,o=atfp_global_object.atfp_url+"assets/images/",r=(0,p.useRef)(null),[c,m]=(0,p.useState)(null),[f,h]=(0,p.useState)(null),[_,y]=(0,p.useState)({left:0,top:0}),[b,v]=(0,p.useState)({left:0,top:0}),[w,S]=(0,p.useState)([]),[E,T]=(0,p.useState)({}),k=(0,p.useRef)({}),[C,L]=(0,p.useState)([]),[D,I]=(0,p.useState)(""),[O,$]=(0,p.useState)(null),[P,M]=(0,p.useState)({}),F="glossary"===f,B="add-glossary"===f,H=(t,e=!1)=>{const a=document.querySelector(".atfp_string_container");if(!a)return{right:t.right-(e?4:0),top:t.bottom+4};const n=a.getBoundingClientRect(),o={right:t.right-(e?4:0)},r=n.bottom-t.bottom,s=t.top-n.top;return r<200?s>=200?o.bottom=window.innerHeight-t.top+4:(o.top=n.top+window.scrollY,o.right=o.right-30):o.top=t.bottom+4,o},q=(t,e=!1)=>{const a=document.querySelector(".atfp_string_container"),n={right:t.right-(e?4:0)};return a?(a.getBoundingClientRect().bottom-t.bottom<200&&(n.right=n.right-30),n):n};(0,p.useEffect)(()=>{!async function(){try{const e=`${ajaxurl}?action=atfpp_get_glossary&sourceLang=${encodeURIComponent(t.sourceLang)}&targetLang=${encodeURIComponent(t.targetLang)}`,a=await fetch(e,{credentials:"same-origin"}),n=await a.json();L(n.data.terms||[])}catch(t){L([])}}()},[t.sourceLang,t.targetLang]);const U=(e=>{if(!e)return[];const a=document.createElement("div");a.innerHTML=e;const n=a.textContent,o=t=>t.toLowerCase().replace(/[.,/#!$%^&*;{}=\-_`~()]/g,t=>":"===t?":":"").trim(),r=o(n);return C.filter(t=>{if(!t.original_term)return!1;const e=t.original_term.trim(),a=o(e),n=a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),s=new RegExp(`\\b${n}\\b`,"i").test(r);if(s&&e.endsWith(":")){const t=r.indexOf(a),e=r[t+a.length];return!e||" "===e}return s}).map(e=>({english:e.original_term,translation:e.translations?.find(e=>e.target_language_code===t.targetLang)?.translated_term||"",description:e.description||""}))})(D);(0,p.useEffect)(()=>{c||(h(null),S([]))},[c]),(0,p.useEffect)(()=>{["yandex","google"].includes(t.service)&&(document.documentElement.setAttribute("translate","no"),document.body.classList.add("notranslate"));const e=t.service,a=`atfp_${e}_translate_element`;wp.data.select("block-atfp/translate").getTranslationEntry().length>0&&t.postDataFetchStatus&&x({Service:e}).Provider({sourceLang:t.sourceLang,targetLang:t.targetLang,translateStatusHandler:t.translateStatusHandler,ID:a,translateStatus:t.translateStatus,modalRenderId:t.modalRender,destroyUpdateHandler:t.updateDestroyHandler})},[t.modalRender,t.postDataFetchStatus]);const z=t=>{if(t)return[t]},W=t=>{const e=(window.atfp_global_object?.languageObject||{})[t];return"object"==typeof e?e.name||t:e||t};return d().createElement("div",{className:"modal-body"},a.length>0&&t.postDataFetchStatus?d().createElement(d().Fragment,null,n&&d().createElement("div",{className:"atfp-body-notice-wrapper"},d().createElement(n,null)),t.translatePendingStatus&&d().createElement("div",{className:"atfp_translate_progress",key:t.modalRender},(0,i.__)("Automatic translation is in progress....","automatic-translations-for-polylang-pro"),d().createElement("br",null),(0,i.__)("It will take few minutes, enjoy ☕ coffee in this time!","automatic-translations-for-polylang-pro"),d().createElement("br",null),d().createElement("br",null),(0,i.__)("Please do not leave this window or browser tab while translation is in progress...","automatic-translations-for-polylang-pro")),d().createElement("div",{className:`translator-widget ${e}`,style:{display:"flex"}},d().createElement("h3",{className:"choose-lang"},x({Service:t.service}).heading," ",d().createElement("span",{className:"dashicons-before dashicons-translation"})),d().createElement("div",{className:"atfp_translate_element_wrapper "+(t.translateStatus?"translate-completed":"")},d().createElement("div",{id:`atfp_${t.service}_translate_element`}))),d().createElement("div",{className:"atfp_string_container"},d().createElement("table",{className:"scrolldown",id:"stringTemplate",ref:r},d().createElement("thead",null,d().createElement("tr",null,d().createElement("th",{className:"notranslate"},(0,i.__)("S.No","autopoly-ai-translation-for-polylang-pro")),d().createElement("th",{className:"notranslate"},(0,i.__)("Source Text","autopoly-ai-translation-for-polylang-pro")),d().createElement("th",{className:"notranslate"},(0,i.__)("Translation","autopoly-ai-translation-for-polylang-pro")))),d().createElement("tbody",null,t.postDataFetchStatus&&d().createElement(d().Fragment,null,a.map((a,n)=>{const l=`${n}_2`;let c;const p=P[l];let g="";a.translatedData&&(e&&a.translatedData[e]?g=a.translatedData[e]:a.translatedData[t.service]&&(g=a.translatedData[t.service])),c=void 0!==p?p:g||(!t.translatePendingStatus&&["google","yandex","localAiTranslator"].includes(t.service)?a.source||"":t.translatePendingStatus&&["google","yandex","localAiTranslator"].includes(t.service)&&!t.service.includes("_ai")?d().createElement(u,{service:t.service,content:a.source||"",contentKey:a.id}):t.translatePendingStatus?"":d().createElement("img",{src:o+"plus.png",alt:(0,i.__)("Add translation","automatic-translations-for-polylang-pro"),className:"atfp-add-translation-icon"}));const f=w.some(t=>t.row===n&&2===t.col);return d().createElement(s.Fragment,{key:n+t.translatePendingStatus},void 0!==a.source&&""!==a.source.trim()&&d().createElement(d().Fragment,null,d().createElement("tr",{key:n+"tr"+t.translatePendingStatus},d().createElement("td",null,n+1),d().createElement("td",{"data-source":"source_text"},a.source),d().createElement("td",{"data-key":a.id,"data-string-type":a.type,onClick:o=>{((a,n,o,s)=>{const l=`${o}_2`;let i="";if(i=void 0!==P[l]?P[l]:s.translatedData?e&&s.translatedData[e]?s.translatedData[e]:s.translatedData[t.service]?s.translatedData[t.service]:s.source||"":s.source||"",w.some(t=>t.row===o&&2===t.col)||(S([{row:o,col:2}]),T({[l]:i})),I(s.source||""),$({row:o,col:2}),!r.current)return;const c=a.currentTarget.getBoundingClientRect(),p=r.current.querySelectorAll("thead th"),d=p[2]?p[2].textContent:"",u=document.querySelector(".atfp_string_container").getBoundingClientRect(),g=u.bottom-c.bottom,f=c.top-u.top,h={left:c.right+window.scrollX,top:c.top+window.scrollY-35,value:s,header:d};if(g<50&&(h.top=c.top+window.scrollY-130,h.bottom=50),f<35&&(h.top=u.top+window.scrollY,h.bottom=35),m(h),F){const t=H(c,!0);y(t)}})(o,0,n,a)},style:{cursor:"pointer"},translate:P[l]&&"google"===t.service||P[l]&&"yandex"===t.service?"no":(t.translatePendingStatus&&["google","yandex","localAiTranslator"].includes(t.service)&&t.service.includes("_ai"),"yes"),className:`${f||P[l]||g?"":"atfp-empty-translation-cell"} ${P[l]&&"localAiTranslator"===t.service||P[l]&&"google"===t.service?"notranslate":(t.translatePendingStatus&&["google","yandex","localAiTranslator"].includes(t.service)&&t.service.includes("_ai"),"translate")}`,"data-translate-status":t.translatePendingStatus?"pending":"translated"},f?d().createElement("textarea",{ref:t=>{k.current[l]=t,t&&(t.style.height="auto",t.style.height=t.scrollHeight+"px")},value:E[l]||"",autoFocus:!0,onFocus:()=>$({row:n,col:2}),onChange:t=>T({...E,[l]:t.target.value}),onInput:t=>((t,e)=>{if(t.target.style.height="auto",t.target.style.height=t.target.scrollHeight+"px",O&&O.row===e&&2===O.col){const e=t.target.getBoundingClientRect();if(F){const t=H(e,!0);y(t)}if(B){const t=q(e,!0);v(t)}}})(t,n),style:{width:"100%",minHeight:40,resize:"vertical"}}):((a,n,r)=>{const s=P[r];let l="";return n.translatedData&&(e&&n.translatedData[e]?l=n.translatedData[e]:n.translatedData[t.service]&&(l=n.translatedData[t.service])),void 0!==s?s:l||(["google","yandex","localAiTranslator"].includes(t.service)?t.translatePendingStatus&&!t.service.includes("_ai")?d().createElement(u,{service:t.service,content:n.source||"",contentKey:n.id}):n.source||"":d().createElement("img",{src:o+"plus.png",alt:(0,i.__)("Add translation","automatic-translations-for-polylang-pro"),className:"atfp-add-translation-icon"}))})(0,a,l)))))})))))):t.postDataFetchStatus?d().createElement("p",null,(0,i.__)("No strings are available for translation","autopoly-ai-translation-for-polylang-pro")):d().createElement("div",{className:"atfp-skeleton-loader-wrapper"},d().createElement("div",{className:"translate-widget"},d().createElement("div",{className:"atfp-skeleton-loader-mini"}),d().createElement("div",{className:"atfp-skeleton-loader-mini"})),d().createElement("table",null,d().createElement("thead",null,d().createElement("tr",null,d().createElement("th",{className:"notranslate"},(0,i.__)("S.No","autopoly-ai-translation-for-polylang-pro")),d().createElement("th",{className:"notranslate"},(0,i.__)("Source Text","autopoly-ai-translation-for-polylang-pro")),d().createElement("th",{className:"notranslate"},(0,i.__)("Translation","autopoly-ai-translation-for-polylang-pro")))),d().createElement("tbody",null,[...Array(10)].map((t,e)=>d().createElement("tr",{key:e},d().createElement("td",null,d().createElement("div",{className:"atfp-skeleton-loader-mini"})),d().createElement("td",null,d().createElement("div",{className:"atfp-skeleton-loader-mini"})),d().createElement("td",null,d().createElement("div",{className:"atfp-skeleton-loader-mini"}))))))),c&&A().createPortal(d().createElement(N,{left:c.left,top:c.top,onClose:()=>{S([]),T({}),m(null),$(null)},onGlossaryClick:()=>{if(0!==U.length&&(h(t=>"glossary"===t?null:"glossary"),O)){const t=`${O.row}_${O.col}`,e=k.current[t];if(e){const t=e.getBoundingClientRect(),a=H(t,!0);y(a)}}},onAddGlossary:()=>{if(h(t=>"add-glossary"===t?null:"add-glossary"),"add-glossary"!==f&&O){const t=`${O.row}_${O.col}`,e=k.current[t];if(e){const t=e.getBoundingClientRect(),a=q(t,!0);v(a)}}},showAddGlossary:B,onCopy:()=>{const t=O;if(t){const e=a[t.row]?.source||"";T(a=>({...a,[`${t.row}_${t.col}`]:e})),setTimeout(()=>{const e=k.current[`${t.row}_${t.col}`];e&&e.focus()},0)}},glossaryOpen:F&&U.length>0,glossaryCount:U.length,onSave:()=>{const n=O;if(n){const o=`${n.row}_${n.col}`,s=E[o]||"",l=a[n.row];s.trim()?(M(t=>({...t,[o]:s})),l?.id&&z(e).forEach(e=>{g({type:l.type||"content",key:l.id,translateContent:s,source:l.source,provider:e,AllowedMetaFields:t.AllowedMetaFields||{}})})):(M(t=>{const e={...t};return delete e[o],e}),l?.id&&z(e).forEach(e=>{g({type:l.type||"content",key:l.id,translateContent:"",source:l.source,provider:e,AllowedMetaFields:t.AllowedMetaFields||{}})})),S(t=>t.filter(t=>!(t.row===n.row&&t.col===n.col)));const i=n.row+1;if(i<a.length){const o=a[i];if(o?.source?.trim()){const a=`${i}_${n.col}`;let s;if(void 0!==P[a])s=P[a];else{let a="";o.translatedData&&(e&&o.translatedData[e]?a=o.translatedData[e]:o.translatedData[t.service]&&(a=o.translatedData[t.service])),s=a||o.source||""}return S(t=>[...t,{row:i,col:n.col}]),T(t=>({...t,[a]:s})),I(o.source||""),$({row:i,col:n.col}),void setTimeout(()=>{const t=r.current,e=t?.querySelector(`tbody tr:nth-child(${i+1}) td:nth-child(${n.col+1})`);if(e){const a=e.getBoundingClientRect();m({left:a.right+window.scrollX,top:a.top+window.scrollY,value:o,header:t.querySelectorAll("thead th")[n.col]?.textContent||""})}},0)}}m(null)}},disableGlossary:0===U.length}),document.body),B&&O&&A().createPortal(d().createElement(R,{position:b,sourceLang:t.sourceLang,targetLang:t.targetLang,selectedSourceText:D,onClose:()=>h(null),setGlossaryTerms:L}),document.body),F&&U.length>0&&A().createPortal(d().createElement(j,{position:_,terms:U,sourceLangLabel:W(t.sourceLang),targetLangLabel:W(t.targetLang),onInsert:t=>((t,e)=>{if(!e)return;const a=`${e.row}_${e.col}`,n=k.current[a];if(n){const e=n.selectionStart,o=n.selectionEnd,r=E[a]||"",s=t.translation||t.english||"",l=r.slice(0,e)+s+r.slice(o);T({...E,[a]:l}),setTimeout(()=>{n.focus(),n.selectionStart=n.selectionEnd=e+s.length},0)}else T({...E,[a]:(E[a]||"")+(t.translation||t.english||"")})})(t,O),width:256}),document.body))},I=t=>React.createElement("div",{className:`notice inline notice-info is-dismissible ${t.className}`},Array.isArray(t.children)?t.children.join(" "):t.children),O=t=>React.createElement("div",{className:"modal-footer",key:t.modalRender},!t.translatePendingStatus&&React.createElement(I,{className:"atfp_string_count"},React.createElement("p",null,(0,i.__)("Wahooo! You have saved your valuable time via auto translating","autopoly-ai-translation-for-polylang-pro")," ",React.createElement("strong",null,React.createElement(h,{number:t.characterCount}))," ",(0,i.__)("characters using","autopoly-ai-translation-for-polylang-pro")," ",React.createElement("strong",null,t.serviceLabel),".",(0,i.__)("Please share your feedback —","autopoly-ai-translation-for-polylang-pro"),React.createElement("a",{href:"https://wordpress.org/support/plugin/automatic-translations-for-polylang/reviews/#new-post",target:"_blank",rel:"noopener",style:{color:"yellow"}},(0,i.__)("leave a quick review","autopoly-ai-translation-for-polylang-pro")),"!")),React.createElement("div",{className:"save_btn_cont"},React.createElement("button",{className:"notranslate save_it button button-primary",disabled:t.translatePendingStatus,onClick:t.updatePostData},t.translateButtonStatus?React.createElement(React.Fragment,null,React.createElement("span",{className:"updating-text"},(0,i.__)("Updating","autopoly-ai-translation-for-polylang-pro"),React.createElement("span",{className:"dot",style:{"--i":0}}),React.createElement("span",{className:"dot",style:{"--i":1}}),React.createElement("span",{className:"dot",style:{"--i":2}}))):(0,i.__)("Update Content","autopoly-ai-translation-for-polylang-pro"))));function $(){return $=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var a=arguments[e];for(var n in a)({}).hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t},$.apply(null,arguments)}const P=t=>{let e=t.service;const a=(0,l.select)("block-atfp/translate").getTranslationInfo().translateData[e]||!1,n=a?.translateStatus||!1,[o,r]=(0,s.useState)(!0),[i,p]=(0,s.useState)(""),[d,u]=(0,s.useState)(!0),[g,m]=(0,s.useState)(a?.targetCharacterCount||0),[f,h]=(0,s.useState)([]),[_,y]=(0,s.useState)(!1),b=t=>{h(e=>[...e,t])};(0,s.useEffect)(()=>{o||f.length>0&&f.forEach(t=>{"function"==typeof t&&t()})},[o,f]);const v=()=>{const e=t.service;return"localAiTranslator"===e?"Chrome AI Translator":"openai_ai"===e?"OpenAI Translate":"google_ai"===e?"Gemini Translate":"openrouter_ai"===e?"OpenRouter Translate":"deepl_ai"===e?"DeepL Translate":e.replace(/^\w/,t=>t.toUpperCase())+" Translate"};(0,s.useEffect)(()=>{t.postDataFetchStatus||t.fetchPostData({postId:t.postId,sourceLang:t.sourceLang,targetLang:t.targetLang,updatePostDataFetch:t.updatePostDataFetch,refPostData:t=>p(e=>({...e,...t})),updateDestroyHandler:b})},[t.postDataFetchStatus,t.modalRender]);const w=e=>{if("yandex"===t.service&&document.querySelector("#atfp_yandex_translate_element #yt-widget .yt-button__icon.yt-button__icon_type_right")?.click(),"google"===t.service){const t=document.querySelector('.skiptranslate iframe[id=":1.container"]');if(t){const e=t.contentDocument.querySelector('a[id=":1.close"][title="Close"] img');e&&e.click()}}u(!0),r(!1)},S=()=>{if(_)return;const e=i;let a=t.service;"ai_modal"===a&&(a=(0,l.select)("block-atfp/translate").getSelectedAiModel()),y(!0),t.translatePost({postContent:e,modalClose:()=>{r(!1),w()},service:a}),t.pageTranslate(!0),(({provider:t,sourceLang:e,targetLang:a,postId:n})=>{const o=(0,l.select)("block-atfp/translate").getTranslationInfo(),r=o.translateData?.[t]?.targetStringCount||0,s=o.translateData?.[t]?.targetWordCount||0,i=o.translateData?.[t]?.targetCharacterCount||0,c=o.translateData?.[t]?.timeTaken||0,p=o?.sourceWordCount||0,d=o?.sourceCharacterCount||0,u=o?.sourceStringCount||0,g={provider:t,totalStringCount:r,totalWordCount:s,totalCharacterCount:i,editorType:atfp_global_object.editor_type,date:(new Date).toISOString(),sourceStringCount:u,sourceWordCount:p,sourceCharacterCount:d,sourceLang:e,targetLang:a,timeTaken:c,action:atfp_global_object.update_translate_data,atfp_nonce:atfp_global_object.ajax_nonce,post_id:n};fetch(atfp_global_object.ajax_url,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json"},body:new URLSearchParams(g)}).then().catch(t=>{console.error(t)})})({provider:a,sourceLang:t.sourceLang,targetLang:t.targetLang,postId:t.currentPostId})};return(0,s.useEffect)(()=>{r(!0),n&&(m(a?.targetCharacterCount||0),u(!1)),setTimeout(()=>{const t=document.querySelector(".atfp_string_container");t&&(t.scrollTop=0)})},[t.modalRender]),React.createElement(React.Fragment,null," ",o&&React.createElement("div",{id:`atfp-${t.service}-strings-modal`,className:"modal-container",style:{display:o?"flex":"none"},"data-render-id":t.modalRender},React.createElement("div",{className:"modal-content"},React.createElement(c,{modalRender:t.modalRender,setPopupVisibility:w,postContent:i,translatePendingStatus:d,pageTranslate:t.pageTranslate,service:"ai_modal"===t.service?e:t.service,serviceLabel:v(),updatePostData:S,characterCount:g,translateButtonStatus:_}),React.createElement(D,$({},t,{updatePostContent:t=>{p(t)},contentLoading:t.contentLoading,postDataFetchStatus:t.postDataFetchStatus,translatePendingStatus:d,service:t.service,sourceLang:t.sourceLang,targetLang:t.targetLang,translateStatusHandler:e=>{let a=t.service;"ai_modal"===a&&(a=(0,l.select)("block-atfp/translate").getSelectedAiModel());const n=(0,l.select)("block-atfp/translate").getTranslationInfo().translateData[a]?.targetCharacterCount||0;m(n),u(e)},modalRender:t.modalRender,translateStatus:n,stringModalBodyNotice:t.stringModalBodyNotice,updateDestroyHandler:b})),React.createElement(O,{modalRender:t.modalRender,setPopupVisibility:w,postContent:i,translatePendingStatus:d,pageTranslate:t.pageTranslate,service:"ai_modal"===t.service?e:t.service,serviceLabel:v(),updatePostData:S,characterCount:g,translateButtonStatus:_}))))},M=({setSettingVisibility:t})=>React.createElement("div",{className:"modal-header"},React.createElement("h2",null,(0,i.__)("Step 1 - Select Translation Provider","autopoly-ai-translation-for-polylang-pro")),React.createElement("span",{className:"close",onClick:()=>t(!1)},"×")),F=t=>{const e=t.Service,a=t[e+"Disabled"],n=x({Service:e,[e+"ButtonDisabled"]:a,openErrorModalHandler:t.openErrorModalHandler}),o=`atfp-${e.replace(/([A-Z])/g,"-$1").toLowerCase().replace(/[^a-z0-9-]/g,"")}-btn`;return React.createElement("tr",null,React.createElement("td",{className:"atfp-provider-name"},React.createElement("img",{src:`${t.imgFolder}${n.Logo}`,alt:n.title}),React.createElement("span",null,n.title)),React.createElement("td",null,n.ButtonDisabled?n.ErrorMessage:React.createElement("div",{id:o,onClick:t.fetchContent,className:"atfp-service-btn button button-primary","data-service":e,"data-service-label":n.ServiceLabel},n.SettingBtnText)),React.createElement("td",null,React.createElement("a",{href:n.Docs,target:"_blank",rel:"noopener noreferrer",className:"atfp-doc-icon"},React.createElement("svg",{width:"9",height:"12",viewBox:"0 0 9 12",fill:"none",xmlns:"http://www.w3.org/2000/svg"},React.createElement("path",{d:"M2.17607 6.20533H6.82393V5.53867H2.17607V6.20533ZM2.17607 8.05133H6.82393V7.38467H2.17607V8.05133ZM2.17607 9.898H4.89536V9.23133H2.17607V9.898ZM1.03821 12C0.7425 12 0.495643 11.8973 0.297643 11.692C0.0996427 11.4867 0.000428571 11.2304 0 10.9233V1.07667C0 0.77 0.0992142 0.514 0.297643 0.308667C0.496071 0.103333 0.743143 0.000444444 1.03886 0H6.10714L9 3V10.9233C9 11.23 8.901 11.4862 8.703 11.692C8.505 11.8978 8.25771 12.0004 7.96114 12H1.03821ZM5.78571 3.33333V0.666667H1.03886C0.939857 0.666667 0.849 0.709333 0.766286 0.794666C0.683571 0.88 0.642429 0.974 0.642857 1.07667V10.9233C0.642857 11.0256 0.684 11.1196 0.766286 11.2053C0.848571 11.2911 0.939214 11.3338 1.03821 11.3333H7.96179C8.06036 11.3333 8.151 11.2907 8.23371 11.2053C8.31643 11.12 8.35757 11.0258 8.35714 10.9227V3.33333H5.78571Z",fill:"#6F6F6F"})))))};function B(){return B=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var a=arguments[e];for(var n in a)({}).hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t},B.apply(null,arguments)}const H=t=>{const e=x();return React.createElement("div",{className:"atfp-setting-modal-body"},React.createElement("div",{className:"atfp-setting-modal-notice-wrapper"}),React.createElement("table",null,React.createElement("thead",null,React.createElement("tr",null,React.createElement("th",null,"Name"),React.createElement("th",null,"Translate"),React.createElement("th",null,"Docs"))),React.createElement("tbody",null,Object.keys(e).map(e=>React.createElement(F,B({key:e},t,{Service:e}))))))},q=t=>{const{targetLangName:e,postType:a,sourceLangName:n,setSettingVisibility:o}=t;return React.createElement("div",{className:"modal-footer"},React.createElement("p",{className:"atfp-error-message",style:{marginBottom:".5rem"}},sprintf((0,i.__)("This will replace your current %(postType)s with a %(target)s translation of the original %(source)s content.","autopoly-ai-translation-for-polylang-pro"),{postType:a,source:n,target:e})),React.createElement("button",{className:"atfp-setting-close button button-primary",onClick:()=>o(!1)},(0,i.__)("Close","autopoly-ai-translation-for-polylang-pro")))},{entries:U,setPrototypeOf:z,isFrozen:W,getPrototypeOf:G,getOwnPropertyDescriptor:V}=Object;let{freeze:Q,seal:Y,create:X}=Object,{apply:Z,construct:J}="undefined"!=typeof Reflect&&Reflect;Q||(Q=function(t){return t}),Y||(Y=function(t){return t}),Z||(Z=function(t,e){for(var a=arguments.length,n=new Array(a>2?a-2:0),o=2;o<a;o++)n[o-2]=arguments[o];return t.apply(e,n)}),J||(J=function(t){for(var e=arguments.length,a=new Array(e>1?e-1:0),n=1;n<e;n++)a[n-1]=arguments[n];return new t(...a)});const K=mt(Array.prototype.forEach),tt=mt(Array.prototype.lastIndexOf),et=mt(Array.prototype.pop),at=mt(Array.prototype.push),nt=mt(Array.prototype.splice),ot=mt(String.prototype.toLowerCase),rt=mt(String.prototype.toString),st=mt(String.prototype.match),lt=mt(String.prototype.replace),it=mt(String.prototype.indexOf),ct=mt(String.prototype.trim),pt=mt(Object.prototype.hasOwnProperty),dt=mt(RegExp.prototype.test),ut=(gt=TypeError,function(){for(var t=arguments.length,e=new Array(t),a=0;a<t;a++)e[a]=arguments[a];return J(gt,e)});var gt;function mt(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var a=arguments.length,n=new Array(a>1?a-1:0),o=1;o<a;o++)n[o-1]=arguments[o];return Z(t,e,n)}}function ft(t,e){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:ot;z&&z(t,null);let n=e.length;for(;n--;){let o=e[n];if("string"==typeof o){const t=a(o);t!==o&&(W(e)||(e[n]=t),o=t)}t[o]=!0}return t}function ht(t){for(let e=0;e<t.length;e++)pt(t,e)||(t[e]=null);return t}function _t(t){const e=X(null);for(const[a,n]of U(t))pt(t,a)&&(Array.isArray(n)?e[a]=ht(n):n&&"object"==typeof n&&n.constructor===Object?e[a]=_t(n):e[a]=n);return e}function yt(t,e){for(;null!==t;){const a=V(t,e);if(a){if(a.get)return mt(a.get);if("function"==typeof a.value)return mt(a.value)}t=G(t)}return function(){return null}}const bt=Q(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),vt=Q(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","slot","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),wt=Q(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),St=Q(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Et=Q(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),Tt=Q(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),kt=Q(["#text"]),Ct=Q(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),xt=Q(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Lt=Q(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),At=Q(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Rt=Y(/\{\{[\w\W]*|[\w\W]*\}\}/gm),Nt=Y(/<%[\w\W]*|[\w\W]*%>/gm),jt=Y(/\$\{[\w\W]*/gm),Dt=Y(/^data-[\-\w.\u00B7-\uFFFF]+$/),It=Y(/^aria-[\-\w]+$/),Ot=Y(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),$t=Y(/^(?:\w+script|data):/i),Pt=Y(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Mt=Y(/^html$/i),Ft=Y(/^[a-z][.\w]*(-[.\w]+)+$/i);var Bt=Object.freeze({__proto__:null,ARIA_ATTR:It,ATTR_WHITESPACE:Pt,CUSTOM_ELEMENT:Ft,DATA_ATTR:Dt,DOCTYPE_NAME:Mt,ERB_EXPR:Nt,IS_ALLOWED_URI:Ot,IS_SCRIPT_OR_DATA:$t,MUSTACHE_EXPR:Rt,TMPLIT_EXPR:jt});const Ht=function(){return"undefined"==typeof window?null:window};var qt=function t(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ht();const a=e=>t(e);if(a.version="3.2.7",a.removed=[],!e||!e.document||9!==e.document.nodeType||!e.Element)return a.isSupported=!1,a;let{document:n}=e;const o=n,r=o.currentScript,{DocumentFragment:s,HTMLTemplateElement:l,Node:i,Element:c,NodeFilter:p,NamedNodeMap:d=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:u,DOMParser:g,trustedTypes:m}=e,f=c.prototype,h=yt(f,"cloneNode"),_=yt(f,"remove"),y=yt(f,"nextSibling"),b=yt(f,"childNodes"),v=yt(f,"parentNode");if("function"==typeof l){const t=n.createElement("template");t.content&&t.content.ownerDocument&&(n=t.content.ownerDocument)}let w,S="";const{implementation:E,createNodeIterator:T,createDocumentFragment:k,getElementsByTagName:C}=n,{importNode:x}=o;let L={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};a.isSupported="function"==typeof U&&"function"==typeof v&&E&&void 0!==E.createHTMLDocument;const{MUSTACHE_EXPR:A,ERB_EXPR:R,TMPLIT_EXPR:N,DATA_ATTR:j,ARIA_ATTR:D,IS_SCRIPT_OR_DATA:I,ATTR_WHITESPACE:O,CUSTOM_ELEMENT:$}=Bt;let{IS_ALLOWED_URI:P}=Bt,M=null;const F=ft({},[...bt,...vt,...wt,...Et,...kt]);let B=null;const H=ft({},[...Ct,...xt,...Lt,...At]);let q=Object.seal(X(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),z=null,W=null,G=!0,V=!0,Y=!1,Z=!0,J=!1,gt=!0,mt=!1,ht=!1,Rt=!1,Nt=!1,jt=!1,Dt=!1,It=!0,$t=!1,Pt=!0,Ft=!1,qt={},Ut=null;const zt=ft({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Wt=null;const Gt=ft({},["audio","video","img","source","image","track"]);let Vt=null;const Qt=ft({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Yt="http://www.w3.org/1998/Math/MathML",Xt="http://www.w3.org/2000/svg",Zt="http://www.w3.org/1999/xhtml";let Jt=Zt,Kt=!1,te=null;const ee=ft({},[Yt,Xt,Zt],rt);let ae=ft({},["mi","mo","mn","ms","mtext"]),ne=ft({},["annotation-xml"]);const oe=ft({},["title","style","font","a","script"]);let re=null;const se=["application/xhtml+xml","text/html"];let le=null,ie=null;const ce=n.createElement("form"),pe=function(t){return t instanceof RegExp||t instanceof Function},de=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ie||ie!==t){if(t&&"object"==typeof t||(t={}),t=_t(t),re=-1===se.indexOf(t.PARSER_MEDIA_TYPE)?"text/html":t.PARSER_MEDIA_TYPE,le="application/xhtml+xml"===re?rt:ot,M=pt(t,"ALLOWED_TAGS")?ft({},t.ALLOWED_TAGS,le):F,B=pt(t,"ALLOWED_ATTR")?ft({},t.ALLOWED_ATTR,le):H,te=pt(t,"ALLOWED_NAMESPACES")?ft({},t.ALLOWED_NAMESPACES,rt):ee,Vt=pt(t,"ADD_URI_SAFE_ATTR")?ft(_t(Qt),t.ADD_URI_SAFE_ATTR,le):Qt,Wt=pt(t,"ADD_DATA_URI_TAGS")?ft(_t(Gt),t.ADD_DATA_URI_TAGS,le):Gt,Ut=pt(t,"FORBID_CONTENTS")?ft({},t.FORBID_CONTENTS,le):zt,z=pt(t,"FORBID_TAGS")?ft({},t.FORBID_TAGS,le):_t({}),W=pt(t,"FORBID_ATTR")?ft({},t.FORBID_ATTR,le):_t({}),qt=!!pt(t,"USE_PROFILES")&&t.USE_PROFILES,G=!1!==t.ALLOW_ARIA_ATTR,V=!1!==t.ALLOW_DATA_ATTR,Y=t.ALLOW_UNKNOWN_PROTOCOLS||!1,Z=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,J=t.SAFE_FOR_TEMPLATES||!1,gt=!1!==t.SAFE_FOR_XML,mt=t.WHOLE_DOCUMENT||!1,Nt=t.RETURN_DOM||!1,jt=t.RETURN_DOM_FRAGMENT||!1,Dt=t.RETURN_TRUSTED_TYPE||!1,Rt=t.FORCE_BODY||!1,It=!1!==t.SANITIZE_DOM,$t=t.SANITIZE_NAMED_PROPS||!1,Pt=!1!==t.KEEP_CONTENT,Ft=t.IN_PLACE||!1,P=t.ALLOWED_URI_REGEXP||Ot,Jt=t.NAMESPACE||Zt,ae=t.MATHML_TEXT_INTEGRATION_POINTS||ae,ne=t.HTML_INTEGRATION_POINTS||ne,q=t.CUSTOM_ELEMENT_HANDLING||{},t.CUSTOM_ELEMENT_HANDLING&&pe(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(q.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&pe(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(q.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(q.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),J&&(V=!1),jt&&(Nt=!0),qt&&(M=ft({},kt),B=[],!0===qt.html&&(ft(M,bt),ft(B,Ct)),!0===qt.svg&&(ft(M,vt),ft(B,xt),ft(B,At)),!0===qt.svgFilters&&(ft(M,wt),ft(B,xt),ft(B,At)),!0===qt.mathMl&&(ft(M,Et),ft(B,Lt),ft(B,At))),t.ADD_TAGS&&(M===F&&(M=_t(M)),ft(M,t.ADD_TAGS,le)),t.ADD_ATTR&&(B===H&&(B=_t(B)),ft(B,t.ADD_ATTR,le)),t.ADD_URI_SAFE_ATTR&&ft(Vt,t.ADD_URI_SAFE_ATTR,le),t.FORBID_CONTENTS&&(Ut===zt&&(Ut=_t(Ut)),ft(Ut,t.FORBID_CONTENTS,le)),Pt&&(M["#text"]=!0),mt&&ft(M,["html","head","body"]),M.table&&(ft(M,["tbody"]),delete z.tbody),t.TRUSTED_TYPES_POLICY){if("function"!=typeof t.TRUSTED_TYPES_POLICY.createHTML)throw ut('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw ut('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');w=t.TRUSTED_TYPES_POLICY,S=w.createHTML("")}else void 0===w&&(w=function(t,e){if("object"!=typeof t||"function"!=typeof t.createPolicy)return null;let a=null;const n="data-tt-policy-suffix";e&&e.hasAttribute(n)&&(a=e.getAttribute(n));const o="dompurify"+(a?"#"+a:"");try{return t.createPolicy(o,{createHTML:t=>t,createScriptURL:t=>t})}catch(t){return console.warn("TrustedTypes policy "+o+" could not be created."),null}}(m,r)),null!==w&&"string"==typeof S&&(S=w.createHTML(""));Q&&Q(t),ie=t}},ue=ft({},[...vt,...wt,...St]),ge=ft({},[...Et,...Tt]),me=function(t){at(a.removed,{element:t});try{v(t).removeChild(t)}catch(e){_(t)}},fe=function(t,e){try{at(a.removed,{attribute:e.getAttributeNode(t),from:e})}catch(t){at(a.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t)if(Nt||jt)try{me(e)}catch(t){}else try{e.setAttribute(t,"")}catch(t){}},he=function(t){let e=null,a=null;if(Rt)t="<remove></remove>"+t;else{const e=st(t,/^[\r\n\t ]+/);a=e&&e[0]}"application/xhtml+xml"===re&&Jt===Zt&&(t='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+t+"</body></html>");const o=w?w.createHTML(t):t;if(Jt===Zt)try{e=(new g).parseFromString(o,re)}catch(t){}if(!e||!e.documentElement){e=E.createDocument(Jt,"template",null);try{e.documentElement.innerHTML=Kt?S:o}catch(t){}}const r=e.body||e.documentElement;return t&&a&&r.insertBefore(n.createTextNode(a),r.childNodes[0]||null),Jt===Zt?C.call(e,mt?"html":"body")[0]:mt?e.documentElement:r},_e=function(t){return T.call(t.ownerDocument||t,t,p.SHOW_ELEMENT|p.SHOW_COMMENT|p.SHOW_TEXT|p.SHOW_PROCESSING_INSTRUCTION|p.SHOW_CDATA_SECTION,null)},ye=function(t){return t instanceof u&&("string"!=typeof t.nodeName||"string"!=typeof t.textContent||"function"!=typeof t.removeChild||!(t.attributes instanceof d)||"function"!=typeof t.removeAttribute||"function"!=typeof t.setAttribute||"string"!=typeof t.namespaceURI||"function"!=typeof t.insertBefore||"function"!=typeof t.hasChildNodes)},be=function(t){return"function"==typeof i&&t instanceof i};function ve(t,e,n){K(t,t=>{t.call(a,e,n,ie)})}const we=function(t){let e=null;if(ve(L.beforeSanitizeElements,t,null),ye(t))return me(t),!0;const n=le(t.nodeName);if(ve(L.uponSanitizeElement,t,{tagName:n,allowedTags:M}),gt&&t.hasChildNodes()&&!be(t.firstElementChild)&&dt(/<[/\w!]/g,t.innerHTML)&&dt(/<[/\w!]/g,t.textContent))return me(t),!0;if(7===t.nodeType)return me(t),!0;if(gt&&8===t.nodeType&&dt(/<[/\w]/g,t.data))return me(t),!0;if(!M[n]||z[n]){if(!z[n]&&Ee(n)){if(q.tagNameCheck instanceof RegExp&&dt(q.tagNameCheck,n))return!1;if(q.tagNameCheck instanceof Function&&q.tagNameCheck(n))return!1}if(Pt&&!Ut[n]){const e=v(t)||t.parentNode,a=b(t)||t.childNodes;if(a&&e)for(let n=a.length-1;n>=0;--n){const o=h(a[n],!0);o.__removalCount=(t.__removalCount||0)+1,e.insertBefore(o,y(t))}}return me(t),!0}return t instanceof c&&!function(t){let e=v(t);e&&e.tagName||(e={namespaceURI:Jt,tagName:"template"});const a=ot(t.tagName),n=ot(e.tagName);return!!te[t.namespaceURI]&&(t.namespaceURI===Xt?e.namespaceURI===Zt?"svg"===a:e.namespaceURI===Yt?"svg"===a&&("annotation-xml"===n||ae[n]):Boolean(ue[a]):t.namespaceURI===Yt?e.namespaceURI===Zt?"math"===a:e.namespaceURI===Xt?"math"===a&&ne[n]:Boolean(ge[a]):t.namespaceURI===Zt?!(e.namespaceURI===Xt&&!ne[n])&&!(e.namespaceURI===Yt&&!ae[n])&&!ge[a]&&(oe[a]||!ue[a]):!("application/xhtml+xml"!==re||!te[t.namespaceURI]))}(t)?(me(t),!0):"noscript"!==n&&"noembed"!==n&&"noframes"!==n||!dt(/<\/no(script|embed|frames)/i,t.innerHTML)?(J&&3===t.nodeType&&(e=t.textContent,K([A,R,N],t=>{e=lt(e,t," ")}),t.textContent!==e&&(at(a.removed,{element:t.cloneNode()}),t.textContent=e)),ve(L.afterSanitizeElements,t,null),!1):(me(t),!0)},Se=function(t,e,a){if(It&&("id"===e||"name"===e)&&(a in n||a in ce))return!1;if(V&&!W[e]&&dt(j,e));else if(G&&dt(D,e));else if(!B[e]||W[e]){if(!(Ee(t)&&(q.tagNameCheck instanceof RegExp&&dt(q.tagNameCheck,t)||q.tagNameCheck instanceof Function&&q.tagNameCheck(t))&&(q.attributeNameCheck instanceof RegExp&&dt(q.attributeNameCheck,e)||q.attributeNameCheck instanceof Function&&q.attributeNameCheck(e,t))||"is"===e&&q.allowCustomizedBuiltInElements&&(q.tagNameCheck instanceof RegExp&&dt(q.tagNameCheck,a)||q.tagNameCheck instanceof Function&&q.tagNameCheck(a))))return!1}else if(Vt[e]);else if(dt(P,lt(a,O,"")));else if("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==it(a,"data:")||!Wt[t])if(Y&&!dt(I,lt(a,O,"")));else if(a)return!1;return!0},Ee=function(t){return"annotation-xml"!==t&&st(t,$)},Te=function(t){ve(L.beforeSanitizeAttributes,t,null);const{attributes:e}=t;if(!e||ye(t))return;const n={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:B,forceKeepAttr:void 0};let o=e.length;for(;o--;){const r=e[o],{name:s,namespaceURI:l,value:i}=r,c=le(s),p=i;let d="value"===s?p:ct(p);if(n.attrName=c,n.attrValue=d,n.keepAttr=!0,n.forceKeepAttr=void 0,ve(L.uponSanitizeAttribute,t,n),d=n.attrValue,!$t||"id"!==c&&"name"!==c||(fe(s,t),d="user-content-"+d),gt&&dt(/((--!?|])>)|<\/(style|title|textarea)/i,d)){fe(s,t);continue}if("attributename"===c&&st(d,"href")){fe(s,t);continue}if(n.forceKeepAttr)continue;if(!n.keepAttr){fe(s,t);continue}if(!Z&&dt(/\/>/i,d)){fe(s,t);continue}J&&K([A,R,N],t=>{d=lt(d,t," ")});const u=le(t.nodeName);if(Se(u,c,d)){if(w&&"object"==typeof m&&"function"==typeof m.getAttributeType)if(l);else switch(m.getAttributeType(u,c)){case"TrustedHTML":d=w.createHTML(d);break;case"TrustedScriptURL":d=w.createScriptURL(d)}if(d!==p)try{l?t.setAttributeNS(l,s,d):t.setAttribute(s,d),ye(t)?me(t):et(a.removed)}catch(e){fe(s,t)}}else fe(s,t)}ve(L.afterSanitizeAttributes,t,null)},ke=function t(e){let a=null;const n=_e(e);for(ve(L.beforeSanitizeShadowDOM,e,null);a=n.nextNode();)ve(L.uponSanitizeShadowNode,a,null),we(a),Te(a),a.content instanceof s&&t(a.content);ve(L.afterSanitizeShadowDOM,e,null)};return a.sanitize=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=null,r=null,l=null,c=null;if(Kt=!t,Kt&&(t="\x3c!--\x3e"),"string"!=typeof t&&!be(t)){if("function"!=typeof t.toString)throw ut("toString is not a function");if("string"!=typeof(t=t.toString()))throw ut("dirty is not a string, aborting")}if(!a.isSupported)return t;if(ht||de(e),a.removed=[],"string"==typeof t&&(Ft=!1),Ft){if(t.nodeName){const e=le(t.nodeName);if(!M[e]||z[e])throw ut("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof i)n=he("\x3c!----\x3e"),r=n.ownerDocument.importNode(t,!0),1===r.nodeType&&"BODY"===r.nodeName||"HTML"===r.nodeName?n=r:n.appendChild(r);else{if(!Nt&&!J&&!mt&&-1===t.indexOf("<"))return w&&Dt?w.createHTML(t):t;if(n=he(t),!n)return Nt?null:Dt?S:""}n&&Rt&&me(n.firstChild);const p=_e(Ft?t:n);for(;l=p.nextNode();)we(l),Te(l),l.content instanceof s&&ke(l.content);if(Ft)return t;if(Nt){if(jt)for(c=k.call(n.ownerDocument);n.firstChild;)c.appendChild(n.firstChild);else c=n;return(B.shadowroot||B.shadowrootmode)&&(c=x.call(o,c,!0)),c}let d=mt?n.outerHTML:n.innerHTML;return mt&&M["!doctype"]&&n.ownerDocument&&n.ownerDocument.doctype&&n.ownerDocument.doctype.name&&dt(Mt,n.ownerDocument.doctype.name)&&(d="<!DOCTYPE "+n.ownerDocument.doctype.name+">\n"+d),J&&K([A,R,N],t=>{d=lt(d,t," ")}),w&&Dt?w.createHTML(d):d},a.setConfig=function(){de(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),ht=!0},a.clearConfig=function(){ie=null,ht=!1},a.isValidAttribute=function(t,e,a){ie||de({});const n=le(t),o=le(e);return Se(n,o,a)},a.addHook=function(t,e){"function"==typeof e&&at(L[t],e)},a.removeHook=function(t,e){if(void 0!==e){const a=tt(L[t],e);return-1===a?void 0:nt(L[t],a,1)[0]}return et(L[t])},a.removeHooks=function(t){L[t]=[]},a.removeAllHooks=function(){L={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},a}();const Ut=({message:t,onClose:e,Title:a})=>{let n=jQuery("<div>").append(t);const o=n.html();return n.remove(),n=null,(0,s.useEffect)(()=>{const t=document.querySelectorAll(".chrome-ai-translator-flags");if(t.length>0)return t.forEach(t=>{t.classList.add("atfp-tooltip-element"),t.addEventListener("click",e=>{if(e.preventDefault(),t.querySelector(".atfp-tooltip"))return;let a=document.createElement("span");a.textContent="Text to be copied.",a.className="atfp-tooltip",t.appendChild(a),(async({text:t=!1,startCopyStatus:e=()=>{},endCopyStatus:a=()=>{}})=>{if(t&&""!==t)try{if(navigator?.clipboard?.writeText)await navigator.clipboard.writeText(t);else{const e=document.createElement("textarea");e.value=t,document.body.appendChild(e),e.select(),document.execCommand&&document.execCommand("copy"),document.body.removeChild(e)}e(),setTimeout(()=>a(),800)}catch(t){console.error("Error copying text to clipboard:",t)}})({text:t.getAttribute("data-clipboard-text"),startCopyStatus:()=>{a.classList.add("atfp-tooltip-active")},endCopyStatus:()=>{setTimeout(()=>{a.remove()},800)}})})}),()=>{t.forEach(t=>{t.removeEventListener("click",()=>{})})}},[]),React.createElement("div",{className:"atfp-error-modal-box-container"},React.createElement("div",{className:"atfp-error-modal-box"},React.createElement("div",{className:"atfp-error-modal-box-header"},React.createElement("span",{className:"atfp-error-modal-box-close",onClick:e},"×"),a&&React.createElement("h3",null,a)),React.createElement("div",{className:"atfp-error-modal-box-body"},React.createElement("p",{dangerouslySetInnerHTML:{__html:qt.sanitize(o)}})),React.createElement("div",{className:"atfp-error-modal-box-footer"},React.createElement("button",{className:"atfp-error-modal-box-close button button-primary",onClick:e},"Close"))))},zt=["ar","bg","cs","da","de","el","en","en-gb","en-us","es","es-419","et","fi","fr","he","hu","id","it","ja","ko","lt","lv","nb","nl","pl","pt","pt-br","pt-pt","ro","ru","sk","sl","sv","th","tr","uk","vi","zh","zh-hans","zh-hant"];function Wt(){return Wt=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var a=arguments[e];for(var n in a)({}).hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t},Wt.apply(null,arguments)}const Gt=t=>{const[e,a]=(0,s.useState)({}),[n,o]=(0,s.useState)(0),[l,c]=(0,s.useState)(!1),p=atfp_global_object.source_lang,d=t.targetLang,u=atfp_global_object.languageObject[p].name,g=atfp_global_object.languageObject[d].name,m=atfp_global_object.atfp_url+"assets/images/",f=["af","am","ar","az","ba","be","bg","bn","bs","ca","ceb","cs","cv","cy","da","de","el","emj","en","eo","es","et","eu","fa","fi","fr","ga","gd","gl","gu","he","hi","hr","ht","hu","hy","id","is","it","ja","jv","ka","kazlat","kk","km","kn","ko","ky","la","lb","lo","lt","lv","mg","mhr","mi","mk","ml","mn","mr","mrj","ms","mt","my","ne","nl","no","pa","pap","pl","pt","pt-BR","ro","ru","sah","si","sk","sl","sq","sr","sr-Latn","su","sv","sw","ta","te","tg","th","tl","tr","tt","udm","uk","ur","uz","uzbcyr","vi","xh","yi","zh","zu"].includes(d),h=["ab","ace","ach","aa","af","sq","alz","am","ar","hy","as","av","awa","ay","az","ban","bal","bm","bci","ba","eu","btx","bts","bbc","be","bem","bn","bew","bho","bik","bs","br","bg","bua","yue","ca","ceb","ch","ce","ny","zh-CN","zh-TW","chk","cv","co","crh","crh-Latn","hr","cs","da","fa-AF","dv","din","doi","dov","nl","dyu","dz","en","eo","et","ee","fo","fj","tl","fi","fon","fr","fr-CA","fy","fur","ff","gaa","gl","ka","de","el","gn","gu","ht","cnh","ha","haw","iw","hil","hi","hmn","hu","hrx","iba","is","ig","ilo","id","iu-Latn","iu","ga","it","jam","ja","jw","kac","kl","kn","kr","pam","kk","kha","km","cgg","kg","rw","ktu","trp","kv","gom","ko","kri","ku","ckb","ky","lo","ltg","la","lv","lij","li","ln","lt","lmo","lg","luo","lb","mk","mad","mai","mak","mg","ms","ms-Arab","ml","mt","mam","gv","mi","mr","mh","mwr","mfe","chm","mni-Mtei","min","lus","mn","my","nhe","ndc-ZW","nr","new","ne","bm-Nkoo","no","nus","oc","or","om","os","pag","pap","ps","fa","pl","pt","pt-PT","pa","pa-Arab","qu","kek","rom","ro","rn","ru","se","sm","sg","sa","sat-Latn","sat","gd","nso","sr","st","crs","shn","sn","scn","szl","sd","si","sk","sl","so","es","su","sus","sw","ss","sv","ty","tg","ber-Latn","ber","ta","tt","te","tet","th","bo","ti","tiv","tpi","to","lua","ts","tn","tcy","tum","tr","tk","tyv","ak","udm","uk","ur","ug","uz","ve","vec","vi","war","cy","wo","xh","sah","yi","yo","yua","zap","zu"].includes("zh"===d?atfp_global_object.languageObject.zh?.locale.replace("_","-"):d),[_,y]=(0,s.useState)(!1),[b,v]=(0,s.useState)({}),[w,S]=(0,s.useState)(!1),[T,k]=(0,s.useState)(!1),C=t=>{t.preventDefault();const e=t.target;"yes"===e.dataset.value&&c(!0),e.closest("#atfp-modal-open-warning-wrapper").remove()};(0,s.useEffect)(()=>{const e=document.querySelectorAll("#atfp-modal-open-warning-wrapper .modal-content div[data-value]"),a=document.querySelector(t.translateWrpSelector);a&&a.addEventListener("click",t=>{t.preventDefault(),c(t=>!t)}),e.forEach(t=>{t&&t.addEventListener("click",C)})},[]),(0,s.useEffect)(()=>{if(l){f||v(t=>({...t,yandex:{message:"<p style={{ fontSize: '1rem', color: '#ff4646' }}>"+(0,i.sprintf)((0,i.__)("Yandex Translate does not support the target language: %s.","autopoly-ai-translation-for-polylang-pro"),"<strong>"+g+" ("+d+")</strong>")+"</p>",Title:(0,i.__)("Yandex Translate","autopoly-ai-translation-for-polylang-pro")}})),h||v(t=>({...t,google:{message:"<p style={{ fontSize: '1rem', color: '#ff4646' }}>"+(0,i.sprintf)((0,i.__)("Google Translate does not support the target language: %s.","autopoly-ai-translation-for-polylang-pro"),"<strong>"+g+" ("+d+")</strong>")+"</p>",Title:(0,i.__)("Google Translate","autopoly-ai-translation-for-polylang-pro")}}));const t=zt.includes(d)&&zt.includes(p);if(atfp_global_object?.AIServices?.includes("deepl")){if(!t){const t=zt.includes(p)?d:p,e=zt.includes(p)?(0,i.__)("target","autopoly-ai-translation-for-polylang-pro"):(0,i.__)("source","autopoly-ai-translation-for-polylang-pro"),a=atfp_global_object.languageObject[t].name;y("language_not_supported"),v(n=>({...n,deepl:{message:"<p style={{ fontSize: '1rem', color: '#ff4646' }}>"+(0,i.sprintf)((0,i.__)("DeepL Translate does not support the %s language: %s.","autopoly-ai-translation-for-polylang-pro"),e,"<strong>"+a+" ("+t+")</strong>")+"</p>",Title:(0,i.__)("DeepL Translate","autopoly-ai-translation-for-polylang-pro")}}))}}else y("api_key_missing");(async()=>{const t=await E.languageSupportedStatus(p,d,g,u),e=document.querySelector(".atfp-service-btn#atfp-local-ai-translator-btn");!0!==t&&"object"==typeof t&&e&&(k(!0),v(e=>({...e,localAiTranslator:{message:t,Title:(0,i.__)("Chrome AI Translator","autopoly-ai-translation-for-polylang-pro")}})))})()}},[l]),(0,s.useEffect)(()=>{const a=e,o=a.dataset&&a.dataset.service,s=a.dataset&&a.dataset.serviceLabel,l=t.postId,i=document.getElementById("atfp_strings_model");i&&(i._reactRoot||(i._reactRoot=r.createRoot(i)),n&&i._reactRoot.render(React.createElement(P,{currentPostId:t.currentPostId,postId:l,service:o,serviceLabel:s,sourceLang:p,targetLang:d,modalRender:n,pageTranslate:t.pageTranslate,postDataFetchStatus:t.postDataFetchStatus,fetchPostData:t.fetchPostData,translatePost:t.translatePost,contentLoading:t.contentLoading,updatePostDataFetch:t.updatePostDataFetch,stringModalBodyNotice:t.stringModalBodyNotice})))},[t.postDataFetchStatus,n]);const x=t=>{c(t)};return React.createElement(React.Fragment,null,w&&b[w]&&React.createElement(Ut,Wt({onClose:()=>{S(!1),c(!0)}},b[w])),l&&React.createElement("div",{className:"modal-container",style:{display:l?"flex":"none"}},React.createElement("div",{className:"atfp-settings modal-content"},React.createElement(M,{setSettingVisibility:x,postType:t.postType,sourceLangName:u,targetLangName:g}),React.createElement(H,{yandexDisabled:!f,googleDisabled:!h,fetchContent:async t=>{let e=t.target.classList.contains("atfp-service-btn")?t.target:t.target.closest(".atfp-service-btn");if(!e)return;const n=e.dataset&&e.dataset.service;if(c(!1),"localAiTranslator"===n){const t=await E.languageSupportedStatus(p,d,g);if(!0!==t&&"object"==typeof t)return}o(t=>t+1),a(e)},imgFolder:m,targetLangName:g,postType:t.postType,sourceLangName:u,localAiTranslatorDisabled:T,openErrorModalHandler:t=>{c(!1),S(t)},openai_aiDisabled:!atfp_global_object?.AIServices?.includes("openai"),google_aiDisabled:!atfp_global_object?.AIServices?.includes("google"),openrouter_aiDisabled:!atfp_global_object?.AIServices?.includes("openrouter"),deepl_aiDisabled:_}),React.createElement(q,{targetLangName:g,postType:t.postType,sourceLangName:u,setSettingVisibility:x}))))},Vt="SAVE_SOURCE_TITLE",Qt="SAVE_TRANSLATE_TITLE",Yt="SAVE_SOURCE_EXCERPT",Xt="SAVE_TRANSLATE_EXCERPT",Zt="SAVE_SOURCE_CONTENT",Jt="SAVE_TRANSLATE_CONTENT",Kt="SAVE_SOURCE_META_FIELDS",te="SAVE_TRANSLATE_META_FIELDS",ee="SET_BLOCK_RULES",ae="SAVE_TRANSLATE_INFO",ne="ALLOWED_META_FIELDS",oe="SELECTED_AI_MODEL",re="SAVE_SOURCE_SLUG",se="SAVE_TRANSLATE_SLUG",le="CONTENT_FETCH_STATUS",ie={title:{},excerpt:{},slug:{},content:[],metaFields:{},allowedMetaFields:{},selectedAiModel:!1,contentFetchStatus:!1},ce=t=>({type:Vt,text:t}),pe=(t,e)=>({type:Qt,text:t,provider:e}),de=t=>({type:Yt,text:t}),ue=(t,e)=>({type:Xt,text:t,provider:e}),ge=t=>({type:re,text:t}),me=(t,e)=>({type:se,text:t,provider:e}),fe=(t,e)=>({type:Zt,text:e,id:t}),he=(t,e,a,n)=>({type:Jt,text:e,id:t,source:a,provider:n}),_e=(t,e)=>({type:Kt,text:e,id:t}),ye=(t,e,a,n)=>({type:te,text:e,id:t,source:a,provider:n}),be=t=>({type:ee,data:t}),ve=({sourceStringCount:t=null,sourceWordCount:e=null,sourceCharacterCount:a=null,timeTaken:n=null,provider:o=null,targetStringCount:r=null,targetWordCount:s=null,targetCharacterCount:l=null,translateStatus:i=null})=>({type:ae,sourceStringCount:t,sourceWordCount:e,sourceCharacterCount:a,timeTaken:n,targetStringCount:r,targetWordCount:s,targetCharacterCount:l,provider:o,translateStatus:i}),we=({id:t,type:e,status:a})=>({type:ne,id:t,inputType:e,status:a}),Se=t=>({type:oe,model:t}),Ee=t=>({type:le,status:t}),Te=t=>{const e=new Array;return t.title.source&&e.push({id:"title",source:t.title.source,type:"title",translatedData:t.title.translatedData||{}}),t.excerpt.source&&e.push({id:"excerpt",source:t.excerpt.source,type:"excerpt",translatedData:t.excerpt.translatedData||{}}),t.slug&&t.slug.source&&e.push({id:"slug",source:t.slug.source,type:"slug",translatedData:t.slug.translatedData||{}}),Object.keys(t.metaFields).map(a=>{e.push({type:"metaFields",id:a,source:t.metaFields[a].source,translatedData:t.metaFields[a].translatedData||{}})}),Object.keys(t.content).map(a=>{e.push({type:"content",id:a,source:t.content[a].source,translatedData:t.content[a].translatedData||{}})}),e},ke=t=>t.blockRules,Ce=(t,e,a,n=null,o=null)=>["title","excerpt"].includes(e)&&t[e].source===a&&t[e].translatedData&&t[e].translatedData[o]?t[e]?.translatedData[o]||t[e]?.source:"slug"===e&&t.slug.source===a&&t.slug.translatedData&&t.slug.translatedData[o]?void 0!==t.slug?.translatedData[o]?t.slug?.translatedData[o]:t.slug?.source:"metaFields"===e&&t.metaFields&&t.metaFields[n]&&t.metaFields[n].source===a&&t.metaFields[n].translatedData&&t.metaFields[n].translatedData[o]?void 0!==t.metaFields[n]?.translatedData[o]?t.metaFields[n]?.translatedData[o]:t.metaFields[n]?.source:"content"===e&&t.content&&t.content[n]&&t.content[n].source===a&&t.content[n].translatedData&&t.content[n].translatedData[o]?void 0!==t.content[n]?.translatedData[o]?t.content[n]?.translatedData[o]:t.content[n]?.source:a,xe=t=>({sourceStringCount:t?.translationInfo?.sourceStringCount||0,sourceWordCount:t?.translationInfo?.sourceWordCount||0,sourceCharacterCount:t?.translationInfo?.sourceCharacterCount||0,translateData:t?.translationInfo?.translateData||{}}),Le=t=>t.allowedMetaFields||{},Ae=t=>t.selectedAiModel,Re=t=>t.contentFetchStatus,{createReduxStore:Ne,register:je}=wp.data;je(Ne("block-atfp/translate",{reducer:(t=ie,e)=>{switch(e.type){case Vt:return/[\p{L}\p{N}]/gu.test(e.text)?{...t,title:{...t.title,source:e.text}}:t;case Qt:return{...t,title:{...t.title,translatedData:{...t.title.translatedData||[],[e.provider]:e.text}}};case Yt:return/[\p{L}\p{N}]/gu.test(e.text)?{...t,excerpt:{...t.excerpt,source:e.text}}:t;case Xt:return{...t,excerpt:{...t.excerpt,translatedData:{...t.excerpt.translatedData||[],[e.provider]:e.text}}};case re:return{...t,slug:{...t.slug,source:e.text}};case se:return{...t,slug:{...t.slug,translatedData:{...t.slug.translatedData||[],[e.provider]:e.text}}};case Zt:return/[\p{L}\p{N}]/gu.test(e.text)?{...t,content:{...t.content,[e.id]:{...t.content[e.id]||[],source:e.text}}}:t;case Jt:return t.content[e.id].source===e.source?{...t,content:{...t.content,[e.id]:{...t.content[e.id]||[],translatedData:{...t.content[e.id].translatedData||[],[e.provider]:e.text}}}}:t;case Kt:return/[\p{L}\p{N}]/gu.test(e.text)?{...t,metaFields:{...t.metaFields,[e.id]:{...t.metaFields[e.id]||[],source:e.text}}}:t;case te:return{...t,metaFields:{...t.metaFields,[e.id]:{...t.metaFields[e.id]||[],translatedData:{...t.metaFields[e.id].translatedData||[],[e.provider]:e.text}}}};case ee:return{...t,blockRules:e.data};case ae:const a={};return e.sourceStringCount&&(a.sourceStringCount=e.sourceStringCount),e.sourceWordCount&&(a.sourceWordCount=e.sourceWordCount),e.sourceCharacterCount&&(a.sourceCharacterCount=e.sourceCharacterCount),(e.targetWordCount||e.targetCharacterCount||e.translateStatus||e.timeTaken)&&e.provider&&(a.translateData={...t.translationInfo?.translateData||{},[e.provider]:{...t.translationInfo?.translateData?.[e.provider]||{},...e.targetStringCount&&{targetStringCount:e.targetStringCount},...e.targetWordCount&&{targetWordCount:e.targetWordCount},...e.targetCharacterCount&&{targetCharacterCount:e.targetCharacterCount},...e.translateStatus&&{translateStatus:e.translateStatus},...e.timeTaken&&{timeTaken:e.timeTaken}}}),{...t,translationInfo:{...t.translationInfo,...a}};case ne:return{...t,allowedMetaFields:{...t.allowedMetaFields,[e.id]:{...t.allowedMetaFields[e.id]||[],inputType:e.inputType,status:e.status}}};case oe:return{...t,selectedAiModel:e.model};case le:return{...t,contentFetchStatus:e.status};default:return t}},actions:n,selectors:o}));const De=(t,e,a,n)=>{const o=(t,e)=>{Object.keys(e).map(a=>{let o=e;o=o[a];const r=new Array(...t,a);n(r,o)})};Object.getPrototypeOf(e)===Array.prototype?((t,e)=>{const r=new Array(...t);let s=a;r.forEach(t=>{s=s[t]}),[null,void 0].includes(s)||(Object.getPrototypeOf(s)!==Object.prototype?(Object.getPrototypeOf(s)===Array.prototype&&s.forEach((t,a)=>{const o=new Array;r.forEach(t=>{o.push(t)}),o.push(a),n(o,e[0])}),"object"!=typeof s||o(t,e[0])):o(t,e[0]))})(t,e):Object.getPrototypeOf(e)===Object.prototype&&o(t,e)},Ie=(t,e)=>{Object.keys(e.AtfpBlockParseRules).includes(t.name)&&((t,e,a)=>{const n=Object.values(a),o=(a,n)=>{if(!0===n){const n=new Array(...a),o=new Array;let r=e,s=t;n.forEach(t=>{o.push(t),s+=`atfp${t}`,r=r?r[t]:r});let i=r;if(i instanceof wp.richText.RichTextData&&(i=i.originalHTML),void 0!==i&&"string"==typeof i&&""!==i.trim()){let t=s.replace(/[^\p{L}\p{N}]/gu,"");if(!/[\p{L}\p{N}]/gu.test(i))return!1;(0,l.dispatch)("block-atfp/translate").contentSaveSource(t,i)}return}De(a,n,e,o)};n.forEach(t=>{Object.keys(t).forEach(e=>{const a=new Array(e);o(a,t[e])})})})(t.clientId,t.attributes,e.AtfpBlockParseRules[t.name])},Oe=(t,e)=>{t.forEach(t=>{Ie(t,e),t.innerBlocks&&Oe(t.innerBlocks,e)})},Pe=window.wp.blocks,Me=async t=>{const e=atfp_global_object.ajax_url;let a=wp.data.select("block-atfp/translate").getBlockRules()||{};const n=[];t.updateDestroyHandler(()=>{n.forEach(t=>{t.abort("Modal Closed")})}),await(async()=>{if(a&&a.AtfpBlockParseRules&&Object.keys(a.AtfpBlockParseRules).length>0)return;const t={atfp_nonce:atfp_global_object.ajax_nonce,action:atfp_global_object.action_block_rules},o=new AbortController;n.push(o),await fetch(e,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json"},body:new URLSearchParams(t),signal:o.signal}).then(t=>t.json()).then(t=>{a=JSON.parse(t.data.blockRules),(0,l.dispatch)("block-atfp/translate").setBlockRules(a)}).catch(t=>{console.error("Error fetching post content:",t)})})(),await(async()=>{if((0,l.select)("block-atfp/translate").contentFetchStatus())return;const o={postId:parseInt(t.postId),local:t.targetLang,current_local:t.sourceLang,atfp_nonce:atfp_global_object.ajax_nonce,action:atfp_global_object.action_fetch},r=new AbortController;n.push(r),await fetch(e,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json"},body:new URLSearchParams(o),signal:r.signal}).then(t=>t.json()).then(e=>{if((0,l.select)("block-atfp/translate").contentFetchStatus())return;const n=e.data;n.content&&""!==n.content.trim()&&(n.content=(0,Pe.parse)(n.content)),((t,e)=>{Object.keys(t).forEach(a=>{if("content"===a)((t,e)=>{Object.values(t).forEach(t=>{Ie(t,e),t.innerBlocks&&Oe(t.innerBlocks,e)})})(t[a],e);else if(["title","excerpt"].includes(a)&&t[a]&&""!==t[a].trim()){const e=`${a}SaveSource`;(0,l.dispatch)("block-atfp/translate")[e](t[a])}"slug_name"===a&&"slug_translate"===atfp_global_object.slug_translation_option&&t[a]&&""!==t[a].trim()&&(0,l.dispatch)("block-atfp/translate").slugSaveSource(t[a])})})(n,a),t.refPostData(n),t.updatePostDataFetch(!0),(0,l.dispatch)("block-atfp/translate").contentFetchStatus(!0)}).catch(t=>{console.error("Error fetching post content:",t)})})()},Fe=(t,e,a,n)=>{const{createBlock:o}=wp.blocks,{name:r,attributes:s}=t;let l={...s},i=t,c="";return Object.keys(a.AtfpBlockParseRules).includes(t.name)&&(i=((t,e,a)=>{const{select:n}=wp.data,o=Object.values(e),r=t.attributes,s=t.clientId,l=(e,o)=>{if(!0===o){const o=new Array(...e),l=new Array;let i=r,c=s;o.forEach(t=>{l.push(t),c+=`atfp${t}`,i=i?i[t]:i});let p=i;if(p instanceof wp.richText.RichTextData&&(p=p.originalHTML),void 0!==p&&"string"==typeof p&&""!==p.trim()){let e=c.replace(/[^\p{L}\p{N}]/gu,""),r="";r=/[\p{L}\p{N}]/gu.test(p)?n("block-atfp/translate").getTranslatedString("content",p,e,a):p,t.attributes=((t,e,a)=>{const n={...t};let o=n;for(let t=0;t<e.length-1;t++)Object.getPrototypeOf(o[e[t]])===Array.prototype?o[e[t]]=[...o[e[t]]]:o[e[t]]={...o[e[t]]},o=o[e[t]];return o[e[e.length-1]]instanceof wp.richText.RichTextData?o[e[e.length-1]]=a.replace(/(?<!\\)"|\\"/g,"'"):o[e[e.length-1]]=a,n})(t.attributes,o,r)}return}De(e,o,r,l)};return o.forEach(t=>{Object.keys(t).forEach(e=>{const a=new Array(e);l(a,t[e])})}),t})(t,a.AtfpBlockParseRules[t.name],n),l=i.attributes),c=o(r,l,e),c},Be=(t,e,a)=>{let n=t.innerBlocks.map(t=>{if(t.name)return Be(t,e,a)});return Fe(t,n,e,a)},He=t=>{if(!(0,l.dispatch)("yoast-seo/editor"))return;const{updateData:e,setFocusKeyword:a,setBreadcrumbsTitle:n,setFacebookPreviewTitle:o,setFacebookPreviewDescription:r,setTwitterPreviewTitle:s,setTwitterPreviewDescription:i}=(0,l.dispatch)("yoast-seo/editor"),{key:c,value:p}=t;switch(c){case"_yoast_wpseo_focuskw":a&&a(p);break;case"_yoast_wpseo_title":e&&e({title:p});break;case"_yoast_wpseo_metadesc":e&&e({description:p});break;case"_yoast_wpseo_bctitle":n&&n(p);break;case"_yoast_wpseo_opengraph-title":o&&o(p);break;case"_yoast_wpseo_opengraph-description":r&&r(p);break;case"_yoast_wpseo_twitter-title":s&&s(p);break;case"_yoast_wpseo_twitter-description":i&&i(p)}},qe=t=>{if(!(0,l.dispatch)("rank-math"))return;const{updateKeywords:e,updateTitle:a,updateDescription:n,updateBreadcrumbTitle:o,updateFacebookTitle:r,updateFacebookDescription:s,updateTwitterTitle:i,updateTwitterDescription:c}=(0,l.dispatch)("rank-math"),{key:p,value:d}=t;switch(p){case"rank_math_focus_keyword":e&&e(d);break;case"rank_math_title":a&&a(d);break;case"rank_math_description":n&&n(d);break;case"rank_math_breadcrumb_title":o&&o(d);break;case"rank_math_facebook_title":r&&r(d);break;case"rank_math_facebook_description":s&&s(d);break;case"rank_math_twitter_title":i&&i(d);break;case"rank_math_twitter_description":c&&c(d)}},Ue=async t=>{const{key:e,value:a}=t,n=e.replace(/^_/,"")+"_meta";if(document.querySelector("#"+n))switch(e){case"_seopress_titles_title":case"_seopress_titles_desc":case"_seopress_social_fb_title":case"_seopress_social_fb_desc":case"_seopress_social_twitter_title":case"_seopress_social_twitter_desc":jQuery(`#${n}`).val(a),jQuery(`#${n}`).trigger("change");break;case"_seopress_analysis_target_kw":window.target_kw&&window.target_kw instanceof window.Tagify&&window.target_kw.DOM.originalInput.id===n?window.target_kw.addTags(a):(jQuery("#"+n).val(a),jQuery("#"+n).trigger("change"))}},ze=(t,e)=>{const a=(0,l.select)("block-atfp/translate").getAllowedMetaFields(),n=t,o=(t,e,a)=>{[`[data-depend-id="${t}"]`,`[name="${t}"]`,`[id="${t}"]`].forEach(t=>{document.querySelectorAll(t+':not([type="button"]):not([type="checkbox"]):not([type="radio"])').forEach(t=>{if(t){if(t.value===a)return void(t.value=e);t.querySelectorAll('input:not([type="button"])').forEach(t=>{t.value!==a||(t.value=e)}),t.querySelectorAll("textarea").forEach(t=>{t.value!==a||(t.value=e)})}})})},r=(t,a)=>{Object.keys(a).forEach(s=>{const i=[...t,s],c=i.join("_atfp_");if("string"==typeof a[s]){const t=(0,l.select)("block-atfp/translate").getTranslatedString("metaFields",a[s],c,e);let r=n;t&&""!==t&&i.forEach((e,n)=>{if(n===i.length-1)return o(i.join("_"),t,a[e]),o(e,t,a[e]),void(r[e]=t);r.hasOwnProperty(e)||(r[e]={}),r=r[e]})}"object"==typeof a[s]&&Object.keys(a[s]).length>0&&(n[c]=r(i,a[s]))})};return t&&Object.keys(t).length>0&&Object.keys(t).forEach(s=>{if("object"==typeof t[s]&&Object.keys(t[s]).length>0)r([s],t[s]);else if("string"==typeof t[s]&&a[s]&&a[s].status){const a=t[s],r=(0,l.select)("block-atfp/translate").getTranslatedString("metaFields",a,s,e);r&&""!==r&&(o(s,r,a),n[s]=r)}}),n},We=t=>{const{editPost:e}=(0,l.dispatch)("core/editor"),{modalClose:a,postContent:n,service:o}=t;(()=>{const t={};if(Object.keys(n).filter(t=>["title","excerpt"].includes(t)).forEach(e=>{const a=n[e];if(""!==a.trim()){const n=(0,l.select)("block-atfp/translate").getTranslatedString(e,a,null,o);t[e]=n}}),e(t),"slug_translate"===atfp_global_object.slug_translation_option){const t=(0,l.select)("block-atfp/translate").getTranslatedString("slug",n.slug_name,null,o);e({slug:t})}if("slug_keep"===atfp_global_object.slug_translation_option){const t=atfp_global_object.slug_name;setTimeout(()=>{e({slug:t})},500)}})(),(()=>{const t=n.metaFields;if(!t)return;const e=(0,l.select)("block-atfp/translate").getAllowedMetaFields();Object.keys(t).forEach(a=>{if(Object.keys(e).includes(a)){const n=(0,l.select)("block-atfp/translate").getTranslatedString("metaFields",t[a],a,o);a.startsWith("_yoast_wpseo_")&&"string"===e[a].inputType?He({key:a,value:n}):a.startsWith("rank_math_")&&"string"===e[a].inputType?qe({key:a,value:n}):a.startsWith("_seopress_")&&"string"===e[a].inputType&&Ue({key:a,value:n})}})})(),(()=>{const t=(0,l.select)("block-atfp/translate").getAllowedMetaFields(),e=n.metaFields;window.acf&&acf.getFields().forEach(a=>{const n=JSON.parse(JSON.stringify({key:a.data.key,type:a.data.type,name:a.data.name}));let r=!1;if(a.$el&&a.$el.closest(".acf-field.acf-field-repeater")&&a.$el.closest(".acf-field.acf-field-repeater").length>0){const t=a.$el.closest(".acf-row").data("id"),e=a.$el.closest(".acf-field.acf-field-repeater").data("name");if(t&&""!==t){const a=t.replace("row-","");n.name=e+"_"+a+"_"+n.name,r=!0}}if(a.data&&a.data.key&&Object.keys(t).includes(n.name)){const t=a.data.name,r=a.data.type,s=e[t]?e[t]:a?.val(),i=(0,l.select)("block-atfp/translate").getTranslatedString("metaFields",s,n.name,o);if("wysiwyg"===r&&tinymce){const t=a.data.id;tinymce.get(t)?.setContent(i)}else a.val(i)}})})(),(()=>{const t=n.content;t.length<=0||Object.values(t).forEach(t=>{((t,e)=>{const{select:a}=wp.data,n=a("block-atfp/translate").getBlockRules(),{dispatch:o}=wp.data,{name:r}=t;if(r){let a=t.innerBlocks.map(t=>{if(t.name)return Be(t,n,e)});const r=Fe(t,a,n,e);o("core/block-editor").insertBlock(r)}})(t,o)})})(),"false"===atfp_global_object.postMetaSync&&(()=>{const t=window.atfp_global_object.ajax_url,e=window.atfp_global_object.current_post_id,a=window.atfp_global_object.post_meta_fields_key,r=window.atfp_global_object.update_post_meta_fields;if(!e||!a||!r)return;const s={action:r,post_id:e,meta_fields:JSON.stringify(ze(n.metaFields,o)),post_meta_fields_key:a};fetch(t,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json"},body:new URLSearchParams(s)}).then(t=>t.json()).then().catch(t=>{console.error("Error:",t)})})(),a()},Ge=async t=>{const e=atfp_global_object.ajax_url,a=[];t.updateDestroyHandler(()=>{a.forEach(t=>{t.abort("Modal Closed")})}),await(async()=>{if((0,l.select)("block-atfp/translate").contentFetchStatus())return;const n={postId:parseInt(t.postId),local:t.targetLang,current_local:t.sourceLang,atfp_nonce:atfp_global_object.ajax_nonce,action:atfp_global_object.action_fetch},o=new AbortController;a.push(o),await fetch(e,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json"},body:new URLSearchParams(n),signal:o.signal}).then(t=>t.json()).then(e=>{if((0,l.select)("block-atfp/translate").contentFetchStatus())return;const a=e.data;(t=>{Object.keys(t).forEach(e=>{if("content"===e)(function(t){const e=[],a=/(\r\n|\r|\n)/g;let n,o=0;for(;null!==(n=a.exec(t));){n.index>o&&e.push(t.slice(o,n.index));const r=n[0];e.push(`atfpp_skip_${r}_atfpp`),o=a.lastIndex}return o<t.length&&e.push(t.slice(o)),e})(t[e]).forEach((t,e)=>{const a=/^&[a-zA-Z0-9#]+;$/.test(t),n=/^<\/?\s*[a-zA-Z0-9#]+\s*\/?>$/.test(t),o=/^<\s*\/?\s*[a-zA-Z0-9#]+\s*><\/\s*\/?\s*[a-zA-Z0-9#]+\s*>$/.test(t),r=/<!--[\s\S]*?-->/g.test(t)&&t.indexOf("\x3c!--")<t.indexOf("--\x3e"),s=!(a||n||o||r);""!==t&&!t.includes("atfpp_skip_")&&s&&(0,l.dispatch)("block-atfp/translate").contentSaveSource("classic_index_"+e,t)});else if(["title","excerpt"].includes(e)){if(t[e]&&""!==t[e].trim()){const a=`${e}SaveSource`;(0,l.dispatch)("block-atfp/translate")[a](t[e])}}else"slug_name"===e&&"slug_translate"===atfp_global_object.slug_translation_option&&t[e]&&""!==t[e].trim()&&(0,l.dispatch)("block-atfp/translate").slugSaveSource(t[e])})})(a),t.refPostData(a),t.updatePostDataFetch(!0),(0,l.dispatch)("block-atfp/translate").contentFetchStatus(!0)}).catch(t=>{console.error("Error fetching post content:",t)})})()},Ve=t=>{const{modalClose:e,postContent:a,service:n}=t,o=(0,l.select)("block-atfp/translate").getAllowedMetaFields();(()=>{if("slug_translate"===atfp_global_object.slug_translation_option||"slug_keep"===atfp_global_object.slug_translation_option){let t="";"slug_translate"===atfp_global_object.slug_translation_option&&(t=(0,l.select)("block-atfp/translate").getTranslatedString("slug",a.slug_name,null,n)),"slug_keep"===atfp_global_object.slug_translation_option&&(t=atfp_global_object.slug_name);const e=document.querySelector("#slugdiv"),o=e?.querySelector('input#post_name[name="post_name"]'),r=e?.querySelector("label");o&&(o.value=t),r&&r.classList.add("screen-reader-text")}if(a.title&&""!==a.title.trim()){const t=(0,l.select)("block-atfp/translate").getTranslatedString("title",a.title,null,n),e=document.querySelector("#titlediv"),o=e?.querySelector('input#title[name="post_title"]'),r=e?.querySelector("label");o&&(o.value=t),r&&r.classList.add("screen-reader-text")}if(a.excerpt&&""!==a.excerpt.trim()){const t=(0,l.select)("block-atfp/translate").getTranslatedString("excerpt",a.excerpt,null,n),e=document.querySelector("#postexcerpt.postbox textarea#excerpt");if(e&&(e.value=t),"product"==atfp_global_object.post_type&&window.tinymce){const e=tinymce.get("excerpt");e&&e.setContent(t)}}})(),"false"===atfp_global_object.postMetaSync&&((()=>{const t=a.metaFields;t&&Object.keys(t).forEach(e=>{if(Object.keys(o).includes(e)){const a=(0,l.select)("block-atfp/translate").getTranslatedString("metaFields",t[e],e,n);e.startsWith("_yoast_wpseo_")&&"string"===o[e].inputType?He({key:e,value:a}):e.startsWith("rank_math_")&&"string"===o[e].inputType?qe({key:e,value:a}):e.startsWith("_seopress_")&&"string"===o[e].inputType&&Ue({key:e,value:a})}})})(),(()=>{const t=a.metaFields;window.acf&&acf.getFields().forEach(e=>{const a=JSON.parse(JSON.stringify({key:e.data.key,type:e.data.type,name:e.data.name}));let r=!1;if(e.$el&&e.$el.closest(".acf-field.acf-field-repeater")&&e.$el.closest(".acf-field.acf-field-repeater").length>0){const t=e.$el.closest(".acf-row").data("id"),n=e.$el.closest(".acf-field.acf-field-repeater").data("name");if(t&&""!==t){const e=t.replace("row-","");a.name=n+"_"+e+"_"+a.name,r=!0}}if(e.data&&e.data.key&&Object.keys(o).includes(a.name)){const o=e.data.name,r=e.data.type,s=t[o]?t[o]:e?.val(),i=(0,l.select)("block-atfp/translate").getTranslatedString("metaFields",s,a.name,n);if("wysiwyg"===r&&window.tinymce){const t=e.data.id;tinymce.get(t)?.setContent(i)}else e.val(i)}})})(),(()=>{const t=document.querySelector("#postcustomstuff"),e=t?.querySelectorAll('tbody#the-list td.left input[type="text"][value]');e&&e.length>0&&Array.from(e).forEach(t=>{const e=t?.value;if(e&&""!==e&&Object.keys(o).includes(e)){let a=t?.closest("tr").id;if(a=a.replace("meta-",""),a&&""!==a){const t=document.querySelector(`#meta-${a}-value[name="meta[${a}][value]"]`);if(t&&t.value){const a=(0,l.select)("block-atfp/translate").getTranslatedString("metaFields",t.value,e,n);a&&""!==a&&(t.value=a)}}}})})()),(()=>{const t=function(t){const e=[],a=/(\r\n|\r|\n)/g;let n,o=0;for(;null!==(n=a.exec(t));){n.index>o&&e.push(t.slice(o,n.index));const r=n[0];e.push(`atfpp_skip_${r}_atfpp`),o=a.lastIndex}return o<t.length&&e.push(t.slice(o)),e}(a.content),e=[];t.forEach((t,a)=>{const o=/^&[a-zA-Z0-9#]+;$/.test(t),r=/^<\/?\s*[a-zA-Z0-9#]+\s*\/?>$/.test(t),s=/^<\s*\/?\s*[a-zA-Z0-9#]+\s*><\/\s*\/?\s*[a-zA-Z0-9#]+\s*>$/.test(t),i=/<!--[\s\S]*?-->/g.test(t)&&t.indexOf("\x3c!--")<t.indexOf("--\x3e"),c=!(o||r||s||i);if(""!==t&&!t.includes("atfpp_skip_")&&c){const o="classic_index_"+a,r=(0,l.select)("block-atfp/translate").getTranslatedString("content",t,o,n);e.push(r)}else if(t.includes("atfpp_skip_")){const a=t.replace("atfpp_skip_","").replace("_atfpp","");e.push(a)}else e.push(t)});const o=e.join(""),r=document.querySelector("#wp-content-wrap .wp-editor-tabs");if(r){const t=r?.querySelector(".wp-switch-editor.switch-html"),e=r?.querySelector(".wp-switch-editor.switch-tmce");if(t){t.click();const a=document.querySelector("textarea#content");if(a&&(a.value=o),e)return void e.click()}if(e&&window.tinymce)return e.click(),void tinymce.get("content")?.setContent(o)}window.tinymce&&tinymce.get("content")&&tinymce.get("content")?.setContent(o)})(),setTimeout(()=>{e()},500),"false"===atfp_global_object.postMetaSync&&(()=>{const t=window.atfp_global_object.ajax_url,e=window.atfp_global_object.current_post_id,o=window.atfp_global_object.post_meta_fields_key,r=window.atfp_global_object.update_post_meta_fields;if(!e||!o||!r)return;const s={action:r,post_id:e,meta_fields:JSON.stringify(ze(a.metaFields,n)),post_meta_fields_key:o};fetch(t,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json"},body:new URLSearchParams(s)}).then(t=>t.json()).then().catch(t=>{console.error("Error:",t)})})(),(()=>{const t=window.atfp_global_object.ajax_url,e=window.atfp_global_object.current_post_id,a=window.atfp_global_object.classic_status_key,n=window.atfp_global_object.action_update_status;fetch(t,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json"},body:new URLSearchParams({action:n,post_id:e,status:"completed",atfpp_update_translation_nonce:a})}).then(t=>t.json()).then().catch(t=>{console.error("Error:",t)})})()},Qe=t=>{const e=()=>{const t=document.querySelector(".atfp-body-notice-wrapper");if(t){const e=t.offsetHeight+t.offsetTop;t.closest(".modal-body").style.setProperty("--atfp-notice-wrapper-height",`${e}px`)}};return(0,p.useEffect)(()=>(t.lastNotice&&(e(),window.addEventListener("resize",e)),()=>{window.removeEventListener("resize",e)}),[t.lastNotice]),React.createElement("div",{className:t.className},t.children)},Ye=async t=>{const e={widgetsContent:atfp_global_object.elementorData&&"string"==typeof atfp_global_object.elementorData?JSON.parse(atfp_global_object.elementorData):atfp_global_object.elementorData};"slug_translate"===atfp_global_object.slug_translation_option&&(e.slug_name=atfp_global_object.slug_name),atfp_global_object.parent_post_title&&""!==atfp_global_object.parent_post_title&&(e.title=atfp_global_object.parent_post_title),(t=>{const e=(t,a,n)=>{t(a[n],n),++n<a.length&&e(t,a,n)},a=(t,e)=>{if("string"==typeof e&&""!==e.trim()&&t.length>0){const a=t.join("_atfp_");e&&""!==e&&(0,l.dispatch)("block-atfp/translate").contentSaveSource(a,e)}},n=t=>["title","description","editor","text","content","label"].some(e=>t.toLowerCase().includes(e))||["caption","heading","sub_heading","testimonial_content","testimonial_job","testimonial_name","name"].some(e=>t===e),o=["content_width","title_size","font_size","margin","padding","background","border","color","text_align","font_weight","font_family","line_height","letter_spacing","text_transform","border_radius","box_shadow","opacity","width","height","display","position","z_index","visibility","align","max_width","content_typography_typography","flex_justify_content","title_color","description_color","email_content"],r=(t,s,l=[])=>{const i=t.settings;if(l.push(s),"object"==typeof i&&null!==i&&Object.keys(i).length>0){const t=(t,r)=>{if(!o.some(e=>t.toLowerCase().includes(e))&&(n(t)&&"string"==typeof i[t]&&""!==i[t].trim()&&a([...l,"settings",t],i[t]),Array.isArray(i[t])&&i[t].length>0)){const r=(r,s)=>{"object"==typeof r&&null!==r&&e(e=>{o.includes(e.toLowerCase())||n(e)&&"string"==typeof r[e]&&""!==r[e].trim()&&a([...l,"settings",t,s,e],r[e])},Object.keys(r),0)};e(r,i[t],0)}};e(t,Object.keys(i),0)}if(t.elements&&Array.isArray(t.elements)&&t.elements.length>0){const a=(t,e)=>{r(t,e,[...l,"elements"])};e(a,t.elements,0)}};if(t.widgetsContent&&t.widgetsContent.length>0&&e((t,e)=>{r(t,e,[])},t.widgetsContent,0),t.title&&""!==t.title){const e=atfp_global_object.current_post_id;if(e){const a=elementor?.settings?.page?.model?.get("post_title");a&&""!==a&&a===`Elementor #${e}`&&(0,l.dispatch)("block-atfp/translate").titleSaveSource(t.title)}}"slug_translate"===atfp_global_object.slug_translation_option&&(0,l.dispatch)("block-atfp/translate").slugSaveSource(t.slug_name)})(e),t.refPostData(e),t.updatePostDataFetch(!0)},Xe=(t,e)=>{for(const a of t){if(a.get("id")===e)return a;const t=a.get("elements").models,n=Xe(t,e);if(n)return n}return null},Ze=({postContent:t,modalClose:e,service:a})=>{const n=elementor.config.document.id,o=[],r=["content_width","title_size","font_size","margin","padding","background","border","color","text_align","font_weight","font_family","line_height","letter_spacing","text_transform","border_radius","box_shadow","opacity","width","height","display","position","z_index","visibility","align","max_width","content_typography_typography","flex_justify_content","title_color","description_color","email_content"],s=t=>["title","description","editor","text","content","label"].some(e=>t.toLowerCase().includes(e))||["caption","heading","sub_heading","testimonial_content","testimonial_job","testimonial_name","name"].some(e=>t===e),i=(t,e,n=[])=>{const c=t.id,p=t.settings;n.push(e),"object"==typeof p&&null!==p&&Object.keys(p).forEach(t=>{if(!r.some(e=>t.toLowerCase().includes(e))){if(s(t)&&"string"==typeof p[t]&&""!==p[t].trim()){const e=n.join("_atfp_")+"_atfp_settings_atfp_"+t,r=(0,l.select)("block-atfp/translate").getTranslatedString("content",p[t],e,a);o.push({ID:c,key:t,translatedContent:r})}Array.isArray(p[t])&&p[t].forEach((e,i)=>{"object"==typeof e&&null!==e&&Object.keys(e).forEach(p=>{if(!r.includes(p.toLowerCase())&&s(p)&&"string"==typeof e[p]&&""!==e[p].trim()){const r=`${t}[${i}].${p}`,s=n.join("_atfp_")+"_atfp_settings_atfp_"+t+"_atfp_"+i+"_atfp_"+p,d=(0,l.select)("block-atfp/translate").getTranslatedString("content",e[p],s,a);o.push({ID:c,key:r,translatedContent:d})}})})}}),t.elements&&Array.isArray(t.elements)&&t.elements.forEach((t,e)=>{i(t,e,[...n,"elements"])})};t.widgetsContent.map((t,e)=>i(t,e,[])),(t=>{t.forEach(t=>{const e=Xe(elementor.elements.models,t.ID);if(e){const a=e.get("settings");a.get(t.key)&&(a.set(t.key,t.translatedContent),e?.renderRemoteServer());const n=t.key.match(/(.+)\[(\d+)\]\.(.+)/);if(n){const[o,r,s,l]=n,i=a.get(r);Array.isArray(i.models)&&i.models[s]&&(i.models[s].attributes[l]=t.translatedContent,a.set(r,i),e?.renderRemoteServer())}}}),$e.internal("document/save/set-is-modified",{status:!0})})(o),((t,e)=>{const a=(0,l.select)("block-atfp/translate").getAllowedMetaFields();t&&Object.keys(t).forEach(n=>{if(Object.keys(a).includes(n)){const o=(0,l.select)("block-atfp/translate").getTranslatedString("metaFields",t[n],n,e);n.startsWith("_yoast_wpseo_")&&"string"===a[n].inputType?He({key:n,value:o}):n.startsWith("rank_math_")&&"string"===a[n].inputType?qe({key:n,value:o}):n.startsWith("_seopress_")&&"string"===a[n].inputType&&elementor?.settings?.page?.model?.setExternalChange(n,o)}})})(t.metaFields,a),((t,e)=>{if(t&&""!==t){const a=(0,l.select)("block-atfp/translate").getTranslatedString("title",t,null,e);a&&""!==a&&elementor?.settings?.page?.model?.setExternalChange("post_title",a)}})(t.title,a);const c=(()=>{const t=atfp_global_object.elementorData;return wp.data.select("block-atfp/translate").getTranslationEntry().forEach(e=>{const n=e.source,o=e.id,r=e.translatedData,s=e.type;if(!n||""===n||"content"!==s)return;const l=o.split("_atfp_"),i=r[a];let c=null,p=null,d=t;l.forEach(t=>{c=d,p=t,d=d?d[t]:null}),c&&p&&c[p]&&c[p]===n&&(c[p]=i)}),t})(),p={action:atfp_global_object.update_elementor_data,post_id:n,elementor_data:JSON.stringify(c),atfp_nonce:atfp_global_object.ajax_nonce,parent_post_id:atfp_global_object.parent_post_id};if(t.slug_name&&""!==t.slug_name&&"slug_translate"===atfp_global_object.slug_translation_option){const e=t.slug_name,n=(0,l.select)("block-atfp/translate").getTranslatedString("slug",e,null,a);n&&""!==n&&(p.post_name=n)}"false"===atfp_global_object.postMetaSync&&(p.meta_fields=JSON.stringify(ze(t.metaFields,a))),fetch(atfp_global_object.ajax_url,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json"},body:new URLSearchParams(p)}).then(t=>t.json()).then(t=>{if(t.success){const t=document.querySelector('.atfp-translate-button[name="atfp_meta_box_translate"]');t&&t.setAttribute("title","Translation process completed successfully.")}else console.error("Failed to update Elementor data:",t.data);e()}).catch(t=>{e(),console.error("Error updating Elementor data:",t)})},Je=window.atfp_global_object.editor_type,Ke=()=>{let t=new Array;t.push('\x3c!-- The Modal --\x3e<div id="atfp-setting-modal"></div>','<div id="atfp_strings_model" class="modal atfp_custom_model"></div>'),t.forEach(t=>{document.body.insertAdjacentHTML("beforeend",t)})},ta=()=>{const t=[];if("true"===atfp_global_object.postMetaSync&&t.push({className:"atfp-notice atfp-notice-error",message:React.createElement("p",null,(0,i.__)("For accurate custom field translations, please disable the Custom Fields synchronization in ","autopoly-ai-translation-for-polylang-pro"),React.createElement("a",{href:`${atfp_global_object.admin_url}admin.php?page=mlang_settings`,target:"_blank",rel:"noopener noreferrer"},(0,i.__)("Polylang settings","autopoly-ai-translation-for-polylang-pro")),(0,i.__)(". This may affect linked posts or pages.","autopoly-ai-translation-for-polylang-pro"))}),"gutenberg"===Je){const e=(0,l.select)("block-atfp/translate").getBlockRules();e.AtfpBlockParseRules&&0!==Object.keys(e.AtfpBlockParseRules).length||t.push({className:"atfp-notice atfp-notice-error",message:React.createElement("p",null,(0,i.__)("No block rules were found. It appears that the block-rules.JSON file could not be fetched, possibly because it is blocked by your server settings. Please check your server configuration to resolve this issue.","autopoly-ai-translation-for-polylang-pro"))})}"classic"===Je&&"true"===atfp_global_object.blockCommentTag&&t.push({className:"atfp-notice atfp-notice-error",message:React.createElement("p",null,(0,i.__)("This page may contain Gutenberg block content. After the translation, please review the updated content before finalizing the page update.","autopoly-ai-translation-for-polylang-pro"))});const e=t.length;if(t.length>0)return t.map((t,a)=>React.createElement(Qe,{className:t.className,key:a,lastNotice:a===e-1},t.message))},ea=()=>{const[t,e]=(0,p.useState)(!1),a=window.atfp_global_object.target_lang,n=window.atfp_global_object.parent_post_id,o=window.atfp_global_object.current_post_id,r=window.atfp_global_object.post_type;let s,c,d;const u=window.atfp_global_object.source_lang;"elementor"===Je?(d='button.atfp-translate-button[name="atfp_meta_box_translate"]',s=Ze,c=Ye):"gutenberg"===Je?(d='input#atfp-translate-button[name="atfp_meta_box_translate"]',s=We,c=Me):"classic"===Je&&(d="button#atfp-classic-editor-translate-button",s=Ve,c=Ge);const[g,m]=(0,p.useState)(!1),[f,h]=(0,p.useState)(!0);if((0,p.useEffect)(()=>{if(t){const t=document.querySelector(d);t&&(t.disabled=!0,t.value=(0,i.__)("Already Translated","autopoly-ai-translation-for-polylang-pro"))}},[t]),!u||""===u){const t=document.querySelector(d);return void(t&&(t.title=`Parent ${window.atfp_global_object.post_type} may be deleted.`,t.disabled=!0))}return React.createElement(React.Fragment,null,!t&&u&&""!==u&&React.createElement(Gt,{contentLoading:f,updatePostDataFetch:t=>{m(t),h(!1)},postDataFetchStatus:g,pageTranslate:t=>{e(t)},postId:n,currentPostId:o,targetLang:a,postType:r,fetchPostData:async t=>{await(async t=>{const e=window?.atfp_global_object?.ajax_url,a=[];if((0,l.select)("block-atfp/translate").contentFetchStatus())return;t.updateDestroyHandler(()=>{a.forEach(t=>{t.abort("Modal Closed")})});const n=({key:t,value:e,type:a,status:n,allowedMetaFields:o})=>{/^\d{1,2}\/\d{1,2}\/\d{4}(?:\s+\d{1,2}:\d{2}\s*(?:AM|PM)?)?$/i.test(e)||/^[0-9.\- _#!$%^&*()+~`]+$/.test(e)||((0,l.dispatch)("block-atfp/translate").allowedMetaFields({id:t,type:a,status:n}),(0,l.dispatch)("block-atfp/translate").metaFieldsSaveSource(t,e))},o=(t,e,a)=>{Object.keys(e).forEach(r=>{const s=[...t,r],l=s.join("_atfp_");if("string"==typeof e[r]){const o=e[r];n({key:l,value:o,type:"string",status:a[t[0]].status,allowedMetaFields:a})}else"object"==typeof e[r]&&Object.keys(e[r]).length>0&&o(s,e[r],a)})};"false"===window?.atfp_global_object?.postMetaSync&&await(async()=>{const r=window?.atfp_global_object?.get_meta_fields,s=window?.atfp_global_object?.meta_fields_key,l=parseInt(t.postId);if(!r||!s||!l)return;const i=new AbortController;a.push(i);const c=await fetch(e,{method:"POST",headers:{"content-type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json"},body:new URLSearchParams({action:r,atfp_nonce:s,postId:l}),headers:{"content-type":"application/x-www-form-urlencoded; charset=UTF-8",Accept:"application/json"},signal:i.signal}),p=await c.json(),d=p?.data?.metaFields,u=p?.data?.allowedMetaFields;d&&Object.keys(d).length>0&&Object.keys(d).forEach(t=>{if(u[t]&&u[t].status)if("string"==typeof d[t]){const e=d[t];n({key:t,value:e,type:u[t].type,status:u[t].status,allowedMetaFields:u})}else"object"==typeof d[t]&&Object.keys(d[t]).length>0&&o([t],d[t],u)}),t.refPostData({metaFields:d})})()})(t),await c(t);const e=wp.data.select("block-atfp/translate").getTranslationEntry();let a=0,n=0,o=0;e.map(t=>{const e=t.source?t.source:"",r=e.split(/(?<=[.!?]+)\s+/).length,s=e.trim().split(/\s+/).filter(t=>/[^\p{L}\p{N}]/.test(t)).length,l=e.length;a+=r,n+=l,o+=s}),wp.data.dispatch("block-atfp/translate").translationInfo({sourceStringCount:a,sourceWordCount:o,sourceCharacterCount:n})},translatePost:s,translateWrpSelector:d,stringModalBodyNotice:ta}))},aa=()=>{const t=document.getElementById("atfp-setting-modal"),e=(()=>{const t=window.atfp_global_object.post_type,e=window.atfp_global_object.target_lang,a=atfp_global_object.languageObject[e].name,n=document.createElement("div");return n.id="atfp-modal-open-warning-wrapper",n.innerHTML=`\n <div class="modal-container" style="display: flex">\n <div class="modal-content">\n <p>${(0,i.sprintf)((0,i.__)("Would you like to duplicate your original %s content and have it automatically translated into %s?","autopoly-ai-translation-for-polylang-pro"),t,a)}</p>\n <div>\n <div data-value="yes">${(0,i.__)("Yes","autopoly-ai-translation-for-polylang-pro")}</div>\n <div data-value="no">${(0,i.__)("No","autopoly-ai-translation-for-polylang-pro")}</div>\n </div>\n </div>\n </div>`,n})();document.body.insertBefore(e,t)},na=()=>{const t=jQuery(".MuiButtonGroup-root.MuiButtonGroup-contained").parent(),e=jQuery(t).find(".elementor-button.atfp-translate-button");if(t.length>0&&0===e.length){const e=jQuery('<button class="elementor-button atfp-translate-button" name="atfp_meta_box_translate">Translate</button>');let a=!1;const n=window.atfp_global_object.current_post_id,o=window.atfp_global_object.target_lang,s=localStorage.getItem("atfpElementorConfirmBox");if(s&&"string"==typeof s&&""!==s&&(a=JSON.parse(s)),t.prepend(e),$e.internal("document/save/set-is-modified",{status:!0}),!window.atfp_global_object.elementorData||""===window.atfp_global_object.elementorData||window.atfp_global_object.elementorData.length<1||elementor.elements.length<1)return a&&a[n+"_"+o]&&(delete a[n+"_"+o],0===Object.keys(a).length?localStorage.removeItem("atfpElementorConfirmBox"):localStorage.setItem("atfpElementorConfirmBox",JSON.stringify(a))),e.attr("disabled","disabled"),void e.attr("title","Translation is not available because there is no Elementor data.");Ke(),r.createRoot(document.getElementById("atfp-setting-modal")).render(React.createElement(ea,null)),a&&a[n+"_"+o]&&setTimeout(()=>{e.click(),delete a[n+"_"+o],0===Object.keys(a).length?localStorage.removeItem("atfpElementorConfirmBox"):localStorage.setItem("atfpElementorConfirmBox",JSON.stringify(a))},100)}};"gutenberg"===Je&&window.addEventListener("load",()=>{Ke();const t=window.atfp_global_object.source_lang;t&&""!==t&&aa(),r.createRoot(document.getElementById("atfp-setting-modal")).render(React.createElement(ea,null))}),"classic"===Je&&window.addEventListener("load",()=>{Ke();const t=window.atfp_global_object.source_lang;t&&""!==t&&aa(),r.createRoot(document.getElementById("atfp-setting-modal")).render(React.createElement(ea,null))}),"elementor"===Je&&jQuery(window).on("elementor:init",function(){elementor.on("document:loaded",na)})})(); |