var S=Object.defineProperty;var M=(i,e,t)=>e in i?S(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var l=(i,e,t)=>(M(i,typeof e!="symbol"?e+"":e,t),t),C=(i,e,t)=>{if(!e.has(i))throw TypeError("Cannot "+t)};var s=(i,e,t)=>(C(i,e,"read from private field"),t?t.call(i):e.get(i)),o=(i,e,t)=>{if(e.has(i))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(i):e.set(i,t)};var T,p,y,L;class A{constructor(e){o(this,T,29e3);l(this,"widget");l(this,"manifests");l(this,"manifest");o(this,p,["SCRIPT","B","I","FONT","svg","STYLE"]);o(this,y,["ARTICLE","ASIDE","CANVAS","DD","DIV","DL","DT","FIELDSET","FIGCAPTION","FIGURE","FOOTER","FORM","HEADER","HR","LI","OL","UL","MAIN","NAV","NOSCRIPT","SECTION","TABLE","TR","TH","TD","TFOOT","THEAD","TBODY","VIDEO","BODY"]);o(this,L,[]);this.widget=e,this.manifests=[],this.rotateManifest()}async process(){await this.crawlNode(document.body);const e=[];let t=this.widget;this.manifests.forEach(a=>{e.push((async()=>{await t.translate(a)})())}),await Promise.all(e)}rotateManifest(){this.manifest&&(this.manifest.translateLength<s(this,T)||this.manifest.translateLength===0)||(this.manifest=new v,this.manifests.push(this.manifest))}async crawlNode(e){if(!(e.nodeType===1&&(e.hasAttribute("data-rz-no-translate")||e.classList.contains("notranslate")||e.getAttribute("translate")==="no"))&&!s(this,p).includes(e.nodeName)){if(!s(this,y).includes(e.nodeName)&&e.nodeType===1){this.processNodeForTranslate(e);return}if(e.nodeType===3){if(e.data.trim()==="")return;this.processTextNodeForTranslate(e);return}var t=Array.from(e.childNodes);t.length&&t.forEach(a=>{this.crawlNode(a)})}}processTextNodeForTranslate(e){if(e.data.replace(/ {2}|\r\n|\n|\r|\t/gm,"").length===0)return;let t=document.createElement("font");e.parentNode.insertBefore(t,e);let a=e.parentNode.getAttribute(this.widget.data_key_base+this.widget.lang);if(t.appendChild(e),a!==null){t.innerHTML=a;return}this.manifest.addTextNode(t),this.rotateManifest()}processNodeForTranslate(e){e.innerText.trim().length===0||e.innerText.replace(/ {2}|\r\n|\n|\r|\t/gm,"")==""||(this.manifest.addNode(e),this.rotateManifest())}}T=new WeakMap,p=new WeakMap,y=new WeakMap,L=new WeakMap;class v{constructor(e){l(this,"data");l(this,"translateLength",0);l(this,"isTranslated",!1);this.data=[]}addTextNode(e){e.innerHTML.replace(/ {2}|\r\n|\n|\r|\t/gm,"")!=""&&(this.data.push({type:"text",wrap:e}),this.translateLength+=e.innerHTML.length)}addNode(e){if(e.innerHTML.replace(/ {2}|\r\n|\n|\r|\t/gm,"")=="")return;let t=e.cloneNode(!0);const a={type:"html",node:e,html:""};this.prepareTranslateNode(t),a.html=t.innerHTML.replace(/ {2}|\r\n|\n|\r|\t/gm,""),t.innerText.replace(/ {2}|\r\n|\n|\r|\t/gm,"")!=""&&(this.data.push(a),this.translateLength+=a.html.length)}mapForRequest(){return this.data.map(e=>e.type==="html"?e.html:e.wrap.innerHTML.replace(/ {2}|\r\n|\n|\r|\t/gm,""))}updateTextFromTranslateRequest(e){let t=0;this.data.forEach(a=>{try{if(a.type=="html"){const r=document.createElement("div");r.innerHTML=e[t];var n=Array.from(r.querySelectorAll("u[i]"));n.sort((u,h)=>u.getAttribute("i")-h.getAttribute("i")),this.replaceNodesWithTranslation(a.node,n)}else a.wrap.innerHTML=e[t]}catch(r){console.log("Potentially missing node: ",r)}t++}),this.isTranslated=!0}prepareTranslateNode(e,t=0){if(e.nodeName==="FONT")return e.remove(),t;if(e.nodeType===3){if(e.data.replace(/ {2}|\r\n|\n|\r|\t/gm,"").length===0)return t;let n=document.createElement("u");return n.setAttribute("i",t),e.parentNode.insertBefore(n,e),n.appendChild(e),t}const a=Array.from(e.childNodes);a.length&&a.forEach(n=>{e.childNodes.length>0&&(t=this.prepareTranslateNode(n,t))})}wrapTextNode(e){let t=document.createElement("font");return e.parentNode.insertBefore(t,e),t.appendChild(e),t}emptyExistingFontTags(e){if(e.nodeName==="FONT"){e.innerHTML="";return}if(e.nodeType===1){var t=Array.from(e.childNodes);t.length&&t.forEach(a=>{this.emptyExistingFontTags(a)})}}replaceNodesWithTranslation(e,t){if(e.nodeName!=="FONT"){if(e.nodeType===3){if(e.data.replace(/ {2}|\r\n|\n|\r|\t/gm,"").length===0)return;const n=t.shift();if(n===void 0)return;let r=document.createElement("font");e.parentNode.insertBefore(r,e),r.appendChild(e),r.innerHTML=n.innerHTML;return}var a=Array.from(e.childNodes);a.length&&a.forEach(n=>{this.replaceNodesWithTranslation(n,t)})}}}var f,g,w,m,c,N,E;window.RZTranslator=(E=class{constructor(e){o(this,f,"rzTranslateLang");o(this,g,"en");o(this,w,"https://translate.revize.com");o(this,m,!0);o(this,c,{Afrikaans:"af",Akan:"ak",Albanian:"sq",Amharic:"am",Arabic:"ar",Armenian:"hy",Azerbaijani:"az",Basque:"eu",Belarusian:"be",Bemba:"bem",Bengali:"bn",Bihari:"bh","Bork, bork, bork!":"xx-bork",Bosnian:"bs",Breton:"br",Bulgarian:"bg",Cambodian:"km",Catalan:"ca",Cherokee:"chr",Chichewa:"ny","Chinese (Simplified)":"zh-CN","Chinese (Traditional)":"zh-TW",Corsican:"co",Croatian:"hr",Czech:"cs",Danish:"da",Dutch:"nl","Elmer Fudd":"xx-elmer",English:"en",Esperanto:"eo",Estonian:"et",Ewe:"ee",Faroese:"fo",Filipino:"tl",Finnish:"fi",French:"fr",Frisian:"fy",Ga:"gaa",Galician:"gl",Georgian:"ka",German:"de",Greek:"el",Guarani:"gn",Gujarati:"gu",Hacker:"xx-hacker","Haitian Creole":"ht",Hausa:"ha",Hawaiian:"haw",Hebrew:"iw",Hindi:"hi",Hungarian:"hu",Icelandic:"is",Igbo:"ig",Indonesian:"id",Interlingua:"ia",Irish:"ga",Italian:"it",Japanese:"ja",Javanese:"jw",Kannada:"kn",Kazakh:"kk",Kinyarwanda:"rw",Kirundi:"rn",Klingon:"xx-klingon",Kongo:"kg",Korean:"ko","Krio (Sierra Leone)":"kri",Kurdish:"ku","Kurdish (Soranî)":"ckb",Kyrgyz:"ky",Laothian:"lo",Latin:"la",Latvian:"lv",Lingala:"ln",Lithuanian:"lt",Lozi:"loz",Luganda:"lg",Luo:"ach",Macedonian:"mk",Malagasy:"mg",Malay:"ms",Malayalam:"ml",Maltese:"mt",Maori:"mi",Marathi:"mr","Mauritian Creole":"mfe",Moldavian:"mo",Mongolian:"mn",Montenegrin:"sr-ME",Nepali:"ne","Nigerian Pidgin":"pcm","Northern Sotho":"nso",Norwegian:"no","Norwegian (Nynorsk)":"nn",Occitan:"oc",Oriya:"or",Oromo:"om",Pashto:"ps",Persian:"fa",Pirate:"xx-pirate",Polish:"pl","Portuguese (Brazil)":"pt-BR","Portuguese (Portugal)":"pt-PT",Punjabi:"pa",Quechua:"qu",Romanian:"ro",Romansh:"rm",Runyakitara:"nyn",Russian:"ru","Scots Gaelic":"gd",Serbian:"sr","Serbo-Croatian":"sh",Sesotho:"st",Setswana:"tn","Seychellois Creole":"crs",Shona:"sn",Sindhi:"sd",Sinhalese:"si",Slovak:"sk",Slovenian:"sl",Somali:"so",Spanish:"es","Spanish (Latin American)":"es-419",Sundanese:"su",Swahili:"sw",Swedish:"sv",Tajik:"tg",Tamil:"ta",Tatar:"tt",Telugu:"te",Thai:"th",Tigrinya:"ti",Tonga:"to",Tshiluba:"lua",Tumbuka:"tum",Turkish:"tr",Turkmen:"tk",Twi:"tw",Uighur:"ug",Ukrainian:"uk",Urdu:"ur",Uzbek:"uz",Vietnamese:"vi",Welsh:"cy",Wolof:"wo",Xhosa:"xh",Yiddish:"yi",Yoruba:"yo",Zulu:"zu"});o(this,N,1e3);l(this,"data_key_base","data-rz-translation-");l(this,"onInit");l(this,"beforeTranslate");l(this,"afterTranslate");l(this,"afterInit");l(this,"throttle",function(e,t,a){var n,r,u,h=null,d=0;a||(a={});var I=function(){d=a.leading===!1?0:new Date().getTime(),h=null,u=e.apply(n,r),h||(n=r=null)};return function(){var b=new Date().getTime();!d&&a.leading===!1&&(d=b);var k=t-(b-d);return n=this,r=arguments,k<=0||k>t?(h&&(clearTimeout(h),h=null),d=b,u=e.apply(n,r),h||(n=r=null)):!h&&a.trailing!==!1&&(h=setTimeout(I,k)),u}});if(e.widget_key)this.widget_key=e.widget_key;else return console.log("Missing widget key"),this;e.onInit&&(this.onInit=e.onInit),e.afterInit&&(this.afterInit=e.afterInit),e.beforeTranslate&&(this.beforeTranslate=e.beforeTranslate),e.afterTranslate&&(this.afterTranslate=e.afterTranslate),document.documentElement.lang=this.lang,this.initThrottledPageCrawl=this.throttle(this.initPageCrawl,s(this,N),{}),this.initTranslateRoutine()}changeLanguage(e){let t=this.parseLang(e);if(t===null||t===this.lang)return!1;this.lang=t,window.location.reload()}parseLang(e){if(s(this,c)[e]!==void 0)return s(this,c)[e];const t=Object.values(s(this,c)),a=t.indexOf(e);return a>-1?t[a]:null}parseLangCode(e){for(const[t,a]of Object.entries(s(this,c)))if(a===e)return t;return null}get lang(){let e=localStorage.getItem(s(this,f)+this.widget_key);return e===null&&(e=s(this,g)),e}set lang(e){localStorage.setItem(s(this,f)+this.widget_key,e)}async initPageCrawl(){s(this,m)&&console.log("PAGE CRAWL!",new Date().toLocaleString()),this.beforeTranslate&&this.beforeTranslate.apply(this),await new A(this).process(),this.afterTranslate&&this.afterTranslate.apply(this)}async initTranslateRoutine(){this.onInit&&this.onInit.apply(this);let e=this.lang;if(e===s(this,g)){console.log("Not translating "+e+" because matches source.");return}this.initThrottledPageCrawl(),new MutationObserver(a=>{a.forEach(n=>{if(n.target.localName!=="font")switch(n.type){case"childList":n.addedNodes.forEach(r=>{r.nodeName!="FONT"&&(s(this,m)&&console.log("Registered Mutation:",new Date().toLocaleString(),n),this.initThrottledPageCrawl())});break}})}).observe(document.body,{subtree:!0,childList:!0})}async translate(e){var t={contents:e.mapForRequest(),mime_type:"text/html",source_language_code:s(this,g),target_language_code:this.lang};if(t.contents.length!==0){var a={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)};try{const n=s(this,w)+"/api/widgets/"+this.widget_key+"/translate",r=await fetch(n,a),u=await r.json();console.log(r),console.log(u),e.updateTextFromTranslateRequest(u.translatedText)}catch(n){console.log(n)}}}},f=new WeakMap,g=new WeakMap,w=new WeakMap,m=new WeakMap,c=new WeakMap,N=new WeakMap,E);
