"use strict";(()=>{var S=Object.defineProperty;var g=(n,t)=>S(n,"name",{value:t,configurable:!0});var h={"D&D5E":{journal:"text.content",item:"system.description.value"},PF2E:{journal:"text.content",item:"system.description.value"}};var p=class n{static{g(this,"Translator")}static async translate(t){return await n.translateWithChatLlama(t)}static async getPromptTemplate(t,e){let a=i.getSetting("translate-all","promptTemplatePath");if(!a)return"";let s="";if(a)try{let r=foundry.utils.getRoute(a);s=await fetch(r).then(o=>o.text())}catch(r){ui?.notifications?.warn(`Could not load prompt template. ${r}`)}return s+`: ${e}`}static async generatePrompt(t,e,a){let s=i.getSetting("translate-all","promptTemplatePath"),r="";return s?r=await n.getPromptTemplate(s,a):r=`Translate the following ${t} description into ${e}: You recieve data formatted in HTML. Don't change format and structure, like HTML tags. Don't add new HTML tags and don't change the nesting of HTML tags. If quotation marks are used, they must be closed. Don't add extra quotation marks. Do not add any additional code encapsulation or formatting. Just return the translated text. ${a}.`,r}static async getModels(){let t,e=i.getSetting("translate-all","apiEndpoint");try{t=await fetch(`${e}/api/tags`,{method:"GET"})}catch(r){ui?.notifications?.error(`Ollama API call failed. ${r}`)}if(!t?.ok){ui?.notifications?.error("Ollama API call failed.");return}return(await t.json()).models.reduce((r,o)=>(r[o.model]=o.model,r),{})}static async translateWithChatLlama(t){let e,a=i.getSetting("translate-all","apiEndpoint"),s=i.getSetting("translate-all","targetSystem"),r=i.getSetting("translate-all","targetLanguage"),o=i.getSetting("translate-all","targetModel"),d=await n.generatePrompt(s,r,t);try{let u=JSON.stringify({model:o,prompt:d,stream:!1});console.log(`Body. ${u}`),e=await fetch(`${a}/generate`,{method:"POST",headers:{"Content-Type":"application/json"},body:u})}catch(u){ui?.notifications?.error(`Ollama API call failed. ${u}`)}if(!e?.ok){ui?.notifications?.error(`Ollama API call failed. ${e?.status}`);return}let l=(await e.json())?.response;return l.startsWith("```html")&&(l=l.substring(8,l.length-4)),console.log(`Response after cut: ${l}`),l??void 0}};var i=class{static{g(this,"TranslateAllSettingHandler")}gameSettings=game.settings;settings={targetSystem:{name:"translate-all.settings.game.system.name",hint:"translate-all.settings.game.system.hint",scope:"world",config:!0,type:String,default:"PF2E",choices:{"D&D5E":"D&D 5e",PF2E:"Pathfinder 2e"}},apiEndpoint:{name:"translate-all.settings.apiEndpoint.name",hint:"translate-all.settings.apiEndpoint.hint",scope:"world",config:!0,type:String,default:"https://api.openai.com/v1"},targetLanguage:{name:"translate-all.settings.language.name",hint:"translate-all.settings.language.hint",scope:"world",config:!0,type:String,default:"Italian",masked:!0},targetModel:{name:"translate-all.settings.model.name",hint:"translate-all.settings.model.hint",scope:"world",config:!0,type:String,default:"gpt-4o-mini",choices:{}},promptModel:{name:"translate-all.settings.promptTemplatePath.name",hint:"translate-all.settings.promptTemplatePath.hint",scope:"world",config:!0,type:String,filePicker:!0,default:""}};constructor(){}async init(){await this._registerSettings()}async _registerSettings(){this._register("translate-all","targetSystem",this.settings.targetSystem),this._register("translate-all","apiEndpoint",this.settings.apiEndpoint),this._register("translate-all","targetLanguage",this.settings.targetLanguage);let t=await p.getModels();t&&(this.settings.targetModel.choices=t),this._register("translate-all","targetModel",this.settings.targetModel),this._register("translate-all","promptTemplatePath",this.settings.promptModel)}_register(t,e,a){this.gameSettings.register(t,e,a)}static getSetting(t,e){return game.settings.get(t,e)}};var m=class n{static{g(this,"DataHandler")}static getDescription(t,e){let a=i.getSetting("translate-all","targetSystem");if(e==="journal")return n.getDescriptionFromJournal(t,a);if(e==="item")return n.getDescriptionFromItem(t,a)}static getDescriptionFromJournal(t,e){switch(e){case"PF2E":return(t?.options).document.text.content||void 0;case"D&D5E":return(t?.options).document.text.content||void 0;default:return}}static getDescriptionFromItem(t,e){switch(e){case"PF2E":return(t?.object?.system).description.value;case"D&D5E":return t?.options?.document.system.description.value||void 0;default:return}}static getPathToUpdate(t){let e=i.getSetting("translate-all","targetSystem");return h[e][t]}static async getTranslatedDescription(t,e,a,s){let r=n.getDescription(t,a);if(!r)return;let o=n.getPathToUpdate(a);s(t,e,r,o)}};var c=class n{static{g(this,"HTMLHandler")}static async translateApp(t,e,a,s){let o=(e instanceof jQuery?e:$(e)).find(".window-header");if(o.find("button.translate-btn").length)return;let d=$('