diff --git a/assets/About.a7cdb5bd.js b/assets/About.94bd82da.js
similarity index 96%
rename from assets/About.a7cdb5bd.js
rename to assets/About.94bd82da.js
index 7e24b56..217bfa9 100644
--- a/assets/About.a7cdb5bd.js
+++ b/assets/About.94bd82da.js
@@ -1 +1 @@
-import{i as e,f as l,T as t,o as a,a as n,b as s,w as o,n as i,P as r,U as u,F as d,d as c,Q as f,R as m,r as h,p as b}from"./vendor.d2dd6a75.js";import{V as p}from"./VSheet.36660dd1.js";import{e as w,f as y,V as v,a as g,c as _,b as x,g as C}from"./VRow.93776d3b.js";const k={data:()=>({selectedComp:""})},V=e=>(f("data-v-5fda034c"),e=e(),m(),e),S=c(" Owned Submarines "),A=c(" Campaign Settings "),E=c(" Crew "),T=c(" Misc Tools "),M=c("Owned Submarines"),I=V((()=>r("span",{class:"text-h6"},"Displays a list of currently owned submarines.",-1))),R=V((()=>r("br",null,null,-1))),P=V((()=>r("br",null,null,-1))),D=c(" Each submarine on the list has 3 buttons: "),W={class:"pl-8"},O=c("mdi-file-download-outline"),H=c(" - extracts submarine file from the save and downloads it "),j=c("mdi-clipboard-arrow-right-outline"),B=c(" - loads submarine file in the submarine editor "),z=c("mdi-delete-outline"),L=c(' - removes submarine from the "owned submarines" list and deletes its file '),U=c(" There is also a radiobutton on the left of each submarine which allows to set currently selected sub. "),F=V((()=>r("br",null,null,-1))),N=c(" Loading .sub file when the save is loaded will add it to that list and attach it to the savefile (or update existing submarine file with the same name). "),q=c("Campaign Settings"),G=V((()=>r("span",{class:"text-h6"}," Max Missions ",-1))),J=V((()=>r("br",null,null,-1))),Q=c(" Allows to set how many missions can be selected at the same time. "),Y=V((()=>r("br",null,null,-1))),K=V((()=>r("br",null,null,-1))),X=V((()=>r("span",{class:"text-h6"}," Radiation ",-1))),Z=V((()=>r("br",null,null,-1))),$=c(" Allows to toggle radiation."),ee=V((()=>r("br",null,null,-1))),le=c(" Off -> On - will turn on the radiation"),te=V((()=>r("br",null,null,-1))),ae=c(" On -> Off - will turn off the radiation and reset its progress on the map and outposts. Outposts that have already been abandoned due to its effects will stay that way. "),ne=V((()=>r("br",null,null,-1))),se=V((()=>r("br",null,null,-1))),oe=V((()=>r("span",{class:"text-h6"}," Difficulty ",-1))),ie=V((()=>r("br",null,null,-1))),re=c(" Allows to mass-update difficulties across all generated levels."),ue=V((()=>r("br",null,null,-1))),de=c(' The input can take any value, with "current" being the current difficuly for any given level.'),ce=V((()=>r("br",null,null,-1))),fe=c(" Example uses: "),me=V((()=>r("ul",{class:"pl-8"},[r("li",null,[r("span",{class:"text-secondary"},"current * 2"),c(" - will double the difficulty in each level")]),r("li",null,[r("span",{class:"text-secondary"},"current + 10"),c(" - will increase the difficuly by 10 in each level")]),r("li",null,[r("span",{class:"text-secondary"},"85"),c(" - will set the difficuly to 85 in each level")])],-1))),he=c(" It won't let you set any difficuly higher than 100 or lower than 0 as that might break some things. "),be=c("Crew / Bots"),pe=V((()=>r("span",{class:"text-h6"}," Displays a list of current single-player crew or bots hired in multi-player campaign. ",-1))),we=V((()=>r("br",null,null,-1))),ye=V((()=>r("br",null,null,-1))),ve=c(" Each character on the list has 3 buttons: "),ge={class:"pl-8"},_e=c("mdi-drag-horizontal-variant"),xe=c(" - can be grabbed to reorder crew"),Ce=c("mdi-file-edit-outline"),ke=c(" - opens character editing menu where you can edit name, job, skills or copy/edit raw .xml "),Ve=c("mdi-delete-outline"),Se=c(" - deletes the character"),Ae=c(" To add characters you can: "),Ee={class:"pl-8"},Te=V((()=>r("li",null,[c(" Load "),r("span",{class:"text-secondary"},"CharacterData.xml"),c(" file - to import all multiplayer characters as bots. ")],-1))),Me=c("mdi-account-plus-outline"),Ie=c(" - to add a new assistant (inventory will be empty because i don't know how to make it auto fill and don't want to risk item id conflicts) "),Re=c("mdi-account-edit-outline"),Pe=c(" - to add a new character from xml textfield "),De=c("mdi-clipboard-arrow-up-outline"),We=c(" - to add a new character from xml in the clipboard "),Oe=c(" After loading "),He=V((()=>r("span",{class:"text-secondary"},"CharacterData.xml",-1))),je=c(" file, "),Be=c("mdi-file-download-outline"),ze=c(" icon will be available, which allows you to export player characters back as "),Le=V((()=>r("span",{class:"text-secondary"},"CharacterData.xml",-1))),Ue=c(" file."),Fe=V((()=>r("br",null,null,-1))),Ne=c(" This has some limitations though, the save editor temporarily keeps a list of steam data mapped to character names and uses it when exporting player characters. This means that changing the \"originalname\" of the character won't allow it to be exported properly. Also, there is no way to safely store this list in the save file, so it won't be stored there, meaning the export option will disappear after downloading the modified save and loading it again. "),qe=c("Miscellaneous tools"),Ge=V((()=>r("span",{class:"text-h6"}," Gamesession.xml tools ",-1))),Je=V((()=>r("br",null,null,-1))),Qe=c(" Four buttons allowing to directly edit gamesession.xml file: "),Ye={class:"pl-8"},Ke=c("mdi-clipboard-arrow-down-outline"),Xe=c(" - copies contents of gamesession.xml to the clipboard "),Ze=c("mdi-clipboard-arrow-up-outline"),$e=c(" - replaces gamesession.xml file with the contents of the clipboard "),el=c("mdi-file-download-outline"),ll=c(" - downloads gamesession.xml file"),tl=c("mdi-file-edit-outline"),al=c(" - opens gamesession.xml content in one large textarea "),nl=c(" Loading gamesession.xml file will replace the current one. "),sl=V((()=>r("br",null,null,-1))),ol=V((()=>r("br",null,null,-1))),il=V((()=>r("span",{class:"text-h6"}," Save conversion ",-1))),rl=V((()=>r("br",null,null,-1))),ul=c(" Allows to convert savefile between single-player and multi-player formats."),dl=V((()=>r("br",null,null,-1))),cl=c(" Important notes: "),fl=V((()=>r("ul",{class:"pl-8"},[r("li",null," When converting MP->SP only bots will be turned into the crew. Any human-controlled characters need to be imported by loading CharacterData.xml file. "),r("li",null," When converting SP->MP random capaign id will be generted. Make sure its unique from your other MP savefiles. ")],-1))),ml=V((()=>r("br",null,null,-1))),hl=V((()=>r("span",{class:"text-h6"}," Campaign ID (MP saves only) ",-1))),bl=V((()=>r("br",null,null,-1))),pl=c(" Allows to set campaign id property. "),wl=V((()=>r("br",null,null,-1))),yl=V((()=>r("br",null,null,-1))),vl=V((()=>r("span",{class:"text-h6"}," Current Money ",-1))),gl=V((()=>r("br",null,null,-1))),_l=c(" Allows to set current money. ");k.render=function(e,l,t,c,f,m){const b=h("v-btn"),p=h("v-sheet"),w=h("v-col"),y=h("v-row"),v=h("v-card-title"),g=h("v-card-header"),_=h("v-icon"),x=h("v-card-text"),C=h("v-card");return a(),n(d,null,[s(y,null,{default:o((()=>[s(w,null,{default:o((()=>[s(p,{elevation:"1",class:"buttonWrapper"},{default:o((()=>[s(b,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[0]||(l[0]=e=>f.selectedComp="ownedSubs")},{default:o((()=>[S])),_:1}),s(b,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[1]||(l[1]=e=>f.selectedComp="campSettings")},{default:o((()=>[A])),_:1}),s(b,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[2]||(l[2]=e=>f.selectedComp="crew")},{default:o((()=>[E])),_:1}),s(b,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[3]||(l[3]=e=>f.selectedComp="misc")},{default:o((()=>[T])),_:1})])),_:1})])),_:1})])),_:1}),s(y,null,{default:o((()=>[s(w,null,{default:o((()=>["ownedSubs"===f.selectedComp?(a(),i(C,{key:0,elevation:"1",class:"aboutCard"},{default:o((()=>[s(g,null,{default:o((()=>[s(v,{class:"text-h4"},{default:o((()=>[M])),_:1})])),_:1}),s(x,null,{default:o((()=>[I,R,P,D,r("ul",W,[r("li",null,[s(_,{color:"secondary"},{default:o((()=>[O])),_:1}),H]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[j])),_:1}),B]),r("li",null,[s(_,{color:"red"},{default:o((()=>[z])),_:1}),L])]),U,F,N])),_:1})])),_:1})):u("",!0),"campSettings"===f.selectedComp?(a(),i(C,{key:1,elevation:"1",class:"aboutCard"},{default:o((()=>[s(g,null,{default:o((()=>[s(v,{class:"text-h4"},{default:o((()=>[q])),_:1})])),_:1}),s(x,null,{default:o((()=>[G,J,Q,Y,K,X,Z,$,ee,le,te,ae,ne,se,oe,ie,re,ue,de,ce,fe,me,he])),_:1})])),_:1})):u("",!0),"crew"===f.selectedComp?(a(),i(C,{key:2,elevation:"1",class:"aboutCard"},{default:o((()=>[s(g,null,{default:o((()=>[s(v,{class:"text-h4"},{default:o((()=>[be])),_:1})])),_:1}),s(x,null,{default:o((()=>[pe,we,ye,ve,r("ul",ge,[r("li",null,[s(_,{color:"secondary"},{default:o((()=>[_e])),_:1}),xe]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[Ce])),_:1}),ke]),r("li",null,[s(_,{color:"red"},{default:o((()=>[Ve])),_:1}),Se])]),Ae,r("ul",Ee,[Te,r("li",null,[s(_,{color:"secondary"},{default:o((()=>[Me])),_:1}),Ie]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[Re])),_:1}),Pe]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[De])),_:1}),We])]),Oe,He,je,s(_,{color:"secondary"},{default:o((()=>[Be])),_:1}),ze,Le,Ue,Fe,Ne])),_:1})])),_:1})):u("",!0),"misc"===f.selectedComp?(a(),i(C,{key:3,elevation:"1",class:"aboutCard"},{default:o((()=>[s(g,null,{default:o((()=>[s(v,{class:"text-h4"},{default:o((()=>[qe])),_:1})])),_:1}),s(x,null,{default:o((()=>[Ge,Je,Qe,r("ul",Ye,[r("li",null,[s(_,{color:"secondary"},{default:o((()=>[Ke])),_:1}),Xe]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[Ze])),_:1}),$e]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[el])),_:1}),ll]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[tl])),_:1}),al])]),nl,sl,ol,il,rl,ul,dl,cl,fl,ml,hl,bl,pl,wl,yl,vl,gl,_l])),_:1})])),_:1})):u("",!0)])),_:1})])),_:1})],64)},k.__scopeId="data-v-5fda034c",e(k,"components",{VBtn:l,VSheet:p,VCol:w,VRow:y,VCardTitle:v,VCardHeader:g,VIcon:t,VCardText:_,VCard:x});const xl={data:()=>({selectedComp:""})},Cl=e=>(f("data-v-79114805"),e=e(),m(),e),kl=c(" Export from file "),Vl=c("Wire Hider"),Sl=c("Run Script"),Al=c("Misc Tools"),El=c("Export from file"),Tl=Cl((()=>r("span",{class:"text-h6"},"Allows to export preview image or shuttles from the submarine file.",-1))),Ml=Cl((()=>r("br",null,null,-1))),Il=Cl((()=>r("br",null,null,-1))),Rl=c(" Pressing "),Pl=c("mdi-file-download-outline"),Dl=c(" button triggers download. "),Wl=c("Wire hider"),Ol=Cl((()=>r("span",{class:"text-h6"}," A tool to make mass wire hiding easy. ",-1))),Hl=Cl((()=>r("br",null,null,-1))),jl=Cl((()=>r("br",null,null,-1))),Bl=c(' Just select desired wire color ("all" will affect all wires) and press buttons to hide or unhide them. This tool uses the "hidden in game" property so the wires will still be visible in the in-game submarine editor. '),zl=c("Run script"),Ll=Cl((()=>r("span",{class:"text-h6"}," Edit submarine directly with a script. ",-1))),Ul=Cl((()=>r("br",null,null,-1))),Fl=Cl((()=>r("br",null,null,-1))),Nl=c(" Work-in-progress tool. Allows to directly edit your submarine with javascript. "),ql=c("Miscellaneous tools"),Gl=Cl((()=>r("br",null,null,-1))),Jl=Cl((()=>r("span",{class:"text-h6"}," Change Price ",-1))),Ql=Cl((()=>r("br",null,null,-1))),Yl=c(" Allows to change submarine price without any limits. "),Kl=Cl((()=>r("br",null,null,-1))),Xl=Cl((()=>r("br",null,null,-1))),Zl=Cl((()=>r("span",{class:"text-h6"}," Clean walls ",-1))),$l=Cl((()=>r("br",null,null,-1))),et=c(" Removes stains from background walls. Checkbox allows to also clean walls in shuttles. "),lt=Cl((()=>r("br",null,null,-1))),tt=Cl((()=>r("br",null,null,-1))),at=Cl((()=>r("span",{class:"text-h6"}," Compact submarine ",-1))),nt=Cl((()=>r("br",null,null,-1))),st=c(" Allows to massively reduce submarine file size by replacing preview images with 4 pixels. "),ot=Cl((()=>r("ul",{class:"pl-8"},[r("li",null,[r("span",{class:"text-secondary"},"SHUTTLES"),c(" button replaces preview images in all shuttles attached to the main submarine. ")]),r("li",null,[r("span",{class:"text-secondary"},"SUB"),c(" button replaces preview image of main submarine.")])],-1))),it=c(" Note that the shuttle images aren't used anywhere so removing them reduces file size with no downsides. Removing the main submarine preview image will make it even lighter but it will deffinitely be notieable in-game."),rt=Cl((()=>r("br",null,null,-1))),ut=c(" If buttons are locked that means that there is no preview image or shuttles. ");xl.render=function(e,l,t,r,c,f){const m=h("v-btn"),b=h("v-sheet"),p=h("v-col"),w=h("v-row"),y=h("v-card-title"),v=h("v-card-header"),g=h("v-icon"),_=h("v-card-text"),x=h("v-card");return a(),n(d,null,[s(w,null,{default:o((()=>[s(p,null,{default:o((()=>[s(b,{elevation:"1",class:"buttonWrapper"},{default:o((()=>[s(m,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[0]||(l[0]=e=>c.selectedComp="export")},{default:o((()=>[kl])),_:1}),s(m,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[1]||(l[1]=e=>c.selectedComp="wirehider")},{default:o((()=>[Vl])),_:1}),s(m,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[2]||(l[2]=e=>c.selectedComp="script")},{default:o((()=>[Sl])),_:1}),s(m,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[3]||(l[3]=e=>c.selectedComp="misc")},{default:o((()=>[Al])),_:1})])),_:1})])),_:1})])),_:1}),s(w,null,{default:o((()=>[s(p,null,{default:o((()=>["export"===c.selectedComp?(a(),i(x,{key:0,elevation:"1",class:"aboutCard"},{default:o((()=>[s(v,null,{default:o((()=>[s(y,{class:"text-h4"},{default:o((()=>[El])),_:1})])),_:1}),s(_,null,{default:o((()=>[Tl,Ml,Il,Rl,s(g,{color:"secondary"},{default:o((()=>[Pl])),_:1}),Dl])),_:1})])),_:1})):u("",!0),"wirehider"===c.selectedComp?(a(),i(x,{key:1,elevation:"1",class:"aboutCard"},{default:o((()=>[s(v,null,{default:o((()=>[s(y,{class:"text-h4"},{default:o((()=>[Wl])),_:1})])),_:1}),s(_,null,{default:o((()=>[Ol,Hl,jl,Bl])),_:1})])),_:1})):u("",!0),"script"===c.selectedComp?(a(),i(x,{key:2,elevation:"1",class:"aboutCard"},{default:o((()=>[s(v,null,{default:o((()=>[s(y,{class:"text-h4"},{default:o((()=>[zl])),_:1})])),_:1}),s(_,null,{default:o((()=>[Ll,Ul,Fl,Nl])),_:1})])),_:1})):u("",!0),"misc"===c.selectedComp?(a(),i(x,{key:3,elevation:"1",class:"aboutCard"},{default:o((()=>[s(v,null,{default:o((()=>[s(y,{class:"text-h4"},{default:o((()=>[ql])),_:1})])),_:1}),s(_,null,{default:o((()=>[Gl,Jl,Ql,Yl,Kl,Xl,Zl,$l,et,lt,tt,at,nt,st,ot,it,rt,ut])),_:1})])),_:1})):u("",!0)])),_:1})])),_:1})],64)},xl.__scopeId="data-v-79114805",e(xl,"components",{VBtn:l,VSheet:p,VCol:w,VRow:y,VCardTitle:v,VCardHeader:g,VIcon:t,VCardText:_,VCard:x});const dt={data:()=>({subEditor:!1}),components:{AboutSaveEditor:k,AboutSubEditor:xl}},ct=e=>(f("data-v-928e6b64"),e=e(),m(),e),ft=c(" About Save Editor "),mt=c(" About Submarine Editor "),ht=ct((()=>r("b",null,[c(" Note: Always back up the original file before replacing it with the downloaded one."),r("br"),c(" Even if something had worked for you before, there is always a risk that a game update breaks some stuff. ")],-1))),bt=c(" If the editor freezes, crashes or outputs corrupted file feel free to create a "),pt=ct((()=>r("a",{style:{color:"rgb(var(--v-theme-secondary))"},href:"https://github.com/ignis05/baro-save-editor/issues"}," github issue ",-1))),wt=c(" attaching original file(s) and providing steps for reproduction."),yt=ct((()=>r("br",null,null,-1))),vt=c(" 翻译 by TYHH10 如果有翻译问题,切勿到原作者那边提问. ");dt.render=function(e,l,t,n,r,u){const d=h("v-btn"),c=h("v-sheet"),f=h("v-col"),m=h("v-row"),p=h("AboutSubEditor"),w=h("AboutSaveEditor"),y=h("v-container");return a(),i(y,null,{default:o((()=>[s(m,null,{default:o((()=>[s(f,null,{default:o((()=>[s(c,{elevation:"1",class:"buttonWrapper"},{default:o((()=>[s(d,{class:b([{"text-black":!r.subEditor},"mx-2"]),color:"secondary",onClick:l[0]||(l[0]=e=>r.subEditor=!1)},{default:o((()=>[ft])),_:1},8,["class"]),s(d,{class:b([{"text-black":r.subEditor},"mx-2"]),color:"secondary",onClick:l[1]||(l[1]=e=>r.subEditor=!0)},{default:o((()=>[mt])),_:1},8,["class"])])),_:1})])),_:1})])),_:1}),s(m,null,{default:o((()=>[s(f,null,{default:o((()=>[s(c,{elevation:"1",class:"pa-2",style:{"text-align":"center"}},{default:o((()=>[ht])),_:1})])),_:1})])),_:1}),r.subEditor?(a(),i(p,{key:0})):(a(),i(w,{key:1})),s(m,null,{default:o((()=>[s(f,null,{default:o((()=>[s(c,{elevation:"1",class:"pa-2",style:{"text-align":"center"}},{default:o((()=>[bt,pt,wt,yt,vt])),_:1})])),_:1})])),_:1})])),_:1})},dt.__scopeId="data-v-928e6b64",e(dt,"components",{VBtn:l,VSheet:p,VCol:w,VRow:y,VContainer:C});export{dt as default};
+import{i as e,f as l,T as t,o as a,a as n,b as s,w as o,n as i,P as r,U as u,F as d,d as c,Q as f,R as m,r as h,p as b}from"./vendor.6119329f.js";import{V as p}from"./VSheet.bf08dac1.js";import{e as w,f as y,V as v,a as g,c as _,b as x,g as C}from"./VRow.a47e2044.js";const k={data:()=>({selectedComp:""})},V=e=>(f("data-v-a24af734"),e=e(),m(),e),S=c(" Owned Submarines "),A=c(" Campaign Settings "),E=c(" Crew "),T=c(" Misc Tools "),M=c("Owned Submarines"),I=V((()=>r("span",{class:"text-h6"},"Displays a list of currently owned submarines.",-1))),R=V((()=>r("br",null,null,-1))),P=V((()=>r("br",null,null,-1))),D=c(" Each submarine on the list has 3 buttons: "),W={class:"pl-8"},O=c("mdi-file-download-outline"),H=c(" - extracts submarine file from the save and downloads it "),j=c("mdi-clipboard-arrow-right-outline"),B=c(" - loads submarine file in the submarine editor "),z=c("mdi-delete-outline"),L=c(' - removes submarine from the "owned submarines" list and deletes its file '),U=c(" There is also a radiobutton on the left of each submarine which allows to set currently selected sub. "),F=V((()=>r("br",null,null,-1))),N=c(" Loading .sub file when the save is loaded will add it to that list and attach it to the savefile (or update existing submarine file with the same name). "),q=c("Campaign Settings"),G=V((()=>r("span",{class:"text-h6"}," Max Missions ",-1))),J=V((()=>r("br",null,null,-1))),Q=c(" Allows to set how many missions can be selected at the same time. "),Y=V((()=>r("br",null,null,-1))),K=V((()=>r("br",null,null,-1))),X=V((()=>r("span",{class:"text-h6"}," Radiation ",-1))),Z=V((()=>r("br",null,null,-1))),$=c(" Allows to toggle radiation."),ee=V((()=>r("br",null,null,-1))),le=c(" Off -> On - will turn on the radiation"),te=V((()=>r("br",null,null,-1))),ae=c(" On -> Off - will turn off the radiation and reset its progress on the map and outposts. Outposts that have already been abandoned due to its effects will stay that way. "),ne=V((()=>r("br",null,null,-1))),se=V((()=>r("br",null,null,-1))),oe=V((()=>r("span",{class:"text-h6"}," Difficulty ",-1))),ie=V((()=>r("br",null,null,-1))),re=c(" Allows to mass-update difficulties across all generated levels."),ue=V((()=>r("br",null,null,-1))),de=c(' The input can take any value, with "current" being the current difficuly for any given level.'),ce=V((()=>r("br",null,null,-1))),fe=c(" Example uses: "),me=V((()=>r("ul",{class:"pl-8"},[r("li",null,[r("span",{class:"text-secondary"},"current * 2"),c(" - will double the difficulty in each level")]),r("li",null,[r("span",{class:"text-secondary"},"current + 10"),c(" - will increase the difficuly by 10 in each level")]),r("li",null,[r("span",{class:"text-secondary"},"85"),c(" - will set the difficuly to 85 in each level")])],-1))),he=c(" It won't let you set any difficuly higher than 100 or lower than 0 as that might break some things. "),be=c("Crew / Bots"),pe=V((()=>r("span",{class:"text-h6"}," Displays a list of current single-player crew or bots hired in multi-player campaign. ",-1))),we=V((()=>r("br",null,null,-1))),ye=V((()=>r("br",null,null,-1))),ve=c(" Each character on the list has 3 buttons: "),ge={class:"pl-8"},_e=c("mdi-drag-horizontal-variant"),xe=c(" - can be grabbed to reorder crew"),Ce=c("mdi-file-edit-outline"),ke=c(" - opens character editing menu where you can edit name, job, skills or copy/edit raw .xml "),Ve=c("mdi-delete-outline"),Se=c(" - deletes the character"),Ae=c(" To add characters you can: "),Ee={class:"pl-8"},Te=V((()=>r("li",null,[c(" Load "),r("span",{class:"text-secondary"},"CharacterData.xml"),c(" file - to import all multiplayer characters as bots. ")],-1))),Me=c("mdi-account-plus-outline"),Ie=c(" - to add a new assistant (inventory will be empty because i don't know how to make it auto fill and don't want to risk item id conflicts) "),Re=c("mdi-account-edit-outline"),Pe=c(" - to add a new character from xml textfield "),De=c("mdi-clipboard-arrow-up-outline"),We=c(" - to add a new character from xml in the clipboard "),Oe=c(" After loading "),He=V((()=>r("span",{class:"text-secondary"},"CharacterData.xml",-1))),je=c(" file, "),Be=c("mdi-file-download-outline"),ze=c(" icon will be available, which allows you to export player characters back as "),Le=V((()=>r("span",{class:"text-secondary"},"CharacterData.xml",-1))),Ue=c(" file."),Fe=V((()=>r("br",null,null,-1))),Ne=c(" This has some limitations though, the save editor temporarily keeps a list of steam data mapped to character names and uses it when exporting player characters. This means that changing the \"originalname\" of the character won't allow it to be exported properly. Also, there is no way to safely store this list in the save file, so it won't be stored there, meaning the export option will disappear after downloading the modified save and loading it again. "),qe=c("Miscellaneous tools"),Ge=V((()=>r("span",{class:"text-h6"}," Gamesession.xml tools ",-1))),Je=V((()=>r("br",null,null,-1))),Qe=c(" Four buttons allowing to directly edit gamesession.xml file: "),Ye={class:"pl-8"},Ke=c("mdi-clipboard-arrow-down-outline"),Xe=c(" - copies contents of gamesession.xml to the clipboard "),Ze=c("mdi-clipboard-arrow-up-outline"),$e=c(" - replaces gamesession.xml file with the contents of the clipboard "),el=c("mdi-file-download-outline"),ll=c(" - downloads gamesession.xml file"),tl=c("mdi-file-edit-outline"),al=c(" - opens gamesession.xml content in one large textarea "),nl=c(" Loading gamesession.xml file will replace the current one. "),sl=V((()=>r("br",null,null,-1))),ol=V((()=>r("br",null,null,-1))),il=V((()=>r("span",{class:"text-h6"}," Save conversion ",-1))),rl=V((()=>r("br",null,null,-1))),ul=c(" Allows to convert savefile between single-player and multi-player formats."),dl=V((()=>r("br",null,null,-1))),cl=c(" Important notes: "),fl=V((()=>r("ul",{class:"pl-8"},[r("li",null," When converting MP->SP only bots will be turned into the crew. Any human-controlled characters need to be imported by loading CharacterData.xml file. "),r("li",null," When converting SP->MP random capaign id will be generted. Make sure its unique from your other MP savefiles. ")],-1))),ml=V((()=>r("br",null,null,-1))),hl=V((()=>r("span",{class:"text-h6"}," Campaign ID (MP saves only) ",-1))),bl=V((()=>r("br",null,null,-1))),pl=c(" Allows to set campaign id property. "),wl=V((()=>r("br",null,null,-1))),yl=V((()=>r("br",null,null,-1))),vl=V((()=>r("span",{class:"text-h6"}," Current Money ",-1))),gl=V((()=>r("br",null,null,-1))),_l=c(" Allows to set current money. ");k.render=function(e,l,t,c,f,m){const b=h("v-btn"),p=h("v-sheet"),w=h("v-col"),y=h("v-row"),v=h("v-card-title"),g=h("v-card-header"),_=h("v-icon"),x=h("v-card-text"),C=h("v-card");return a(),n(d,null,[s(y,null,{default:o((()=>[s(w,null,{default:o((()=>[s(p,{elevation:"1",class:"buttonWrapper"},{default:o((()=>[s(b,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[0]||(l[0]=e=>f.selectedComp="ownedSubs")},{default:o((()=>[S])),_:1}),s(b,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[1]||(l[1]=e=>f.selectedComp="campSettings")},{default:o((()=>[A])),_:1}),s(b,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[2]||(l[2]=e=>f.selectedComp="crew")},{default:o((()=>[E])),_:1}),s(b,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[3]||(l[3]=e=>f.selectedComp="misc")},{default:o((()=>[T])),_:1})])),_:1})])),_:1})])),_:1}),s(y,null,{default:o((()=>[s(w,null,{default:o((()=>["ownedSubs"===f.selectedComp?(a(),i(C,{key:0,elevation:"1",class:"aboutCard"},{default:o((()=>[s(g,null,{default:o((()=>[s(v,{class:"text-h4"},{default:o((()=>[M])),_:1})])),_:1}),s(x,null,{default:o((()=>[I,R,P,D,r("ul",W,[r("li",null,[s(_,{color:"secondary"},{default:o((()=>[O])),_:1}),H]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[j])),_:1}),B]),r("li",null,[s(_,{color:"red"},{default:o((()=>[z])),_:1}),L])]),U,F,N])),_:1})])),_:1})):u("",!0),"campSettings"===f.selectedComp?(a(),i(C,{key:1,elevation:"1",class:"aboutCard"},{default:o((()=>[s(g,null,{default:o((()=>[s(v,{class:"text-h4"},{default:o((()=>[q])),_:1})])),_:1}),s(x,null,{default:o((()=>[G,J,Q,Y,K,X,Z,$,ee,le,te,ae,ne,se,oe,ie,re,ue,de,ce,fe,me,he])),_:1})])),_:1})):u("",!0),"crew"===f.selectedComp?(a(),i(C,{key:2,elevation:"1",class:"aboutCard"},{default:o((()=>[s(g,null,{default:o((()=>[s(v,{class:"text-h4"},{default:o((()=>[be])),_:1})])),_:1}),s(x,null,{default:o((()=>[pe,we,ye,ve,r("ul",ge,[r("li",null,[s(_,{color:"secondary"},{default:o((()=>[_e])),_:1}),xe]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[Ce])),_:1}),ke]),r("li",null,[s(_,{color:"red"},{default:o((()=>[Ve])),_:1}),Se])]),Ae,r("ul",Ee,[Te,r("li",null,[s(_,{color:"secondary"},{default:o((()=>[Me])),_:1}),Ie]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[Re])),_:1}),Pe]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[De])),_:1}),We])]),Oe,He,je,s(_,{color:"secondary"},{default:o((()=>[Be])),_:1}),ze,Le,Ue,Fe,Ne])),_:1})])),_:1})):u("",!0),"misc"===f.selectedComp?(a(),i(C,{key:3,elevation:"1",class:"aboutCard"},{default:o((()=>[s(g,null,{default:o((()=>[s(v,{class:"text-h4"},{default:o((()=>[qe])),_:1})])),_:1}),s(x,null,{default:o((()=>[Ge,Je,Qe,r("ul",Ye,[r("li",null,[s(_,{color:"secondary"},{default:o((()=>[Ke])),_:1}),Xe]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[Ze])),_:1}),$e]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[el])),_:1}),ll]),r("li",null,[s(_,{color:"secondary"},{default:o((()=>[tl])),_:1}),al])]),nl,sl,ol,il,rl,ul,dl,cl,fl,ml,hl,bl,pl,wl,yl,vl,gl,_l])),_:1})])),_:1})):u("",!0)])),_:1})])),_:1})],64)},k.__scopeId="data-v-a24af734",e(k,"components",{VBtn:l,VSheet:p,VCol:w,VRow:y,VCardTitle:v,VCardHeader:g,VIcon:t,VCardText:_,VCard:x});const xl={data:()=>({selectedComp:""})},Cl=e=>(f("data-v-95b44e5e"),e=e(),m(),e),kl=c(" Export from file "),Vl=c("Wire Hider"),Sl=c("Run Script"),Al=c("Misc Tools"),El=c("Export from file"),Tl=Cl((()=>r("span",{class:"text-h6"},"Allows to export preview image or shuttles from the submarine file.",-1))),Ml=Cl((()=>r("br",null,null,-1))),Il=Cl((()=>r("br",null,null,-1))),Rl=c(" Pressing "),Pl=c("mdi-file-download-outline"),Dl=c(" button triggers download. "),Wl=c("Wire hider"),Ol=Cl((()=>r("span",{class:"text-h6"}," A tool to make mass wire hiding easy. ",-1))),Hl=Cl((()=>r("br",null,null,-1))),jl=Cl((()=>r("br",null,null,-1))),Bl=c(' Just select desired wire color ("all" will affect all wires) and press buttons to hide or unhide them. This tool uses the "hidden in game" property so the wires will still be visible in the in-game submarine editor. '),zl=c("Run script"),Ll=Cl((()=>r("span",{class:"text-h6"}," Edit submarine directly with a script. ",-1))),Ul=Cl((()=>r("br",null,null,-1))),Fl=Cl((()=>r("br",null,null,-1))),Nl=c(" Work-in-progress tool. Allows to directly edit your submarine with javascript. "),ql=c("Miscellaneous tools"),Gl=Cl((()=>r("br",null,null,-1))),Jl=Cl((()=>r("span",{class:"text-h6"}," Change Price ",-1))),Ql=Cl((()=>r("br",null,null,-1))),Yl=c(" Allows to change submarine price without any limits. "),Kl=Cl((()=>r("br",null,null,-1))),Xl=Cl((()=>r("br",null,null,-1))),Zl=Cl((()=>r("span",{class:"text-h6"}," Clean walls ",-1))),$l=Cl((()=>r("br",null,null,-1))),et=c(" Removes stains from background walls. Checkbox allows to also clean walls in shuttles. "),lt=Cl((()=>r("br",null,null,-1))),tt=Cl((()=>r("br",null,null,-1))),at=Cl((()=>r("span",{class:"text-h6"}," Compact submarine ",-1))),nt=Cl((()=>r("br",null,null,-1))),st=c(" Allows to massively reduce submarine file size by replacing preview images with 4 pixels. "),ot=Cl((()=>r("ul",{class:"pl-8"},[r("li",null,[r("span",{class:"text-secondary"},"SHUTTLES"),c(" button replaces preview images in all shuttles attached to the main submarine. ")]),r("li",null,[r("span",{class:"text-secondary"},"SUB"),c(" button replaces preview image of main submarine.")])],-1))),it=c(" Note that the shuttle images aren't used anywhere so removing them reduces file size with no downsides. Removing the main submarine preview image will make it even lighter but it will deffinitely be notieable in-game."),rt=Cl((()=>r("br",null,null,-1))),ut=c(" If buttons are locked that means that there is no preview image or shuttles. ");xl.render=function(e,l,t,r,c,f){const m=h("v-btn"),b=h("v-sheet"),p=h("v-col"),w=h("v-row"),y=h("v-card-title"),v=h("v-card-header"),g=h("v-icon"),_=h("v-card-text"),x=h("v-card");return a(),n(d,null,[s(w,null,{default:o((()=>[s(p,null,{default:o((()=>[s(b,{elevation:"1",class:"buttonWrapper"},{default:o((()=>[s(m,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[0]||(l[0]=e=>c.selectedComp="export")},{default:o((()=>[kl])),_:1}),s(m,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[1]||(l[1]=e=>c.selectedComp="wirehider")},{default:o((()=>[Vl])),_:1}),s(m,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[2]||(l[2]=e=>c.selectedComp="script")},{default:o((()=>[Sl])),_:1}),s(m,{color:"secondary",variant:"outlined",class:"mx-2",onClick:l[3]||(l[3]=e=>c.selectedComp="misc")},{default:o((()=>[Al])),_:1})])),_:1})])),_:1})])),_:1}),s(w,null,{default:o((()=>[s(p,null,{default:o((()=>["export"===c.selectedComp?(a(),i(x,{key:0,elevation:"1",class:"aboutCard"},{default:o((()=>[s(v,null,{default:o((()=>[s(y,{class:"text-h4"},{default:o((()=>[El])),_:1})])),_:1}),s(_,null,{default:o((()=>[Tl,Ml,Il,Rl,s(g,{color:"secondary"},{default:o((()=>[Pl])),_:1}),Dl])),_:1})])),_:1})):u("",!0),"wirehider"===c.selectedComp?(a(),i(x,{key:1,elevation:"1",class:"aboutCard"},{default:o((()=>[s(v,null,{default:o((()=>[s(y,{class:"text-h4"},{default:o((()=>[Wl])),_:1})])),_:1}),s(_,null,{default:o((()=>[Ol,Hl,jl,Bl])),_:1})])),_:1})):u("",!0),"script"===c.selectedComp?(a(),i(x,{key:2,elevation:"1",class:"aboutCard"},{default:o((()=>[s(v,null,{default:o((()=>[s(y,{class:"text-h4"},{default:o((()=>[zl])),_:1})])),_:1}),s(_,null,{default:o((()=>[Ll,Ul,Fl,Nl])),_:1})])),_:1})):u("",!0),"misc"===c.selectedComp?(a(),i(x,{key:3,elevation:"1",class:"aboutCard"},{default:o((()=>[s(v,null,{default:o((()=>[s(y,{class:"text-h4"},{default:o((()=>[ql])),_:1})])),_:1}),s(_,null,{default:o((()=>[Gl,Jl,Ql,Yl,Kl,Xl,Zl,$l,et,lt,tt,at,nt,st,ot,it,rt,ut])),_:1})])),_:1})):u("",!0)])),_:1})])),_:1})],64)},xl.__scopeId="data-v-95b44e5e",e(xl,"components",{VBtn:l,VSheet:p,VCol:w,VRow:y,VCardTitle:v,VCardHeader:g,VIcon:t,VCardText:_,VCard:x});const dt={data:()=>({subEditor:!1}),components:{AboutSaveEditor:k,AboutSubEditor:xl}},ct=e=>(f("data-v-740e6190"),e=e(),m(),e),ft=c(" About Save Editor "),mt=c(" About Submarine Editor "),ht=ct((()=>r("b",null,[c(" Note: Always back up the original file before replacing it with the downloaded one."),r("br"),c(" Even if something had worked for you before, there is always a risk that a game update breaks some stuff. ")],-1))),bt=c(" If the editor freezes, crashes or outputs corrupted file feel free to create a "),pt=ct((()=>r("a",{style:{color:"rgb(var(--v-theme-secondary))"},href:"https://github.com/ignis05/baro-save-editor/issues"}," github issue ",-1))),wt=c(" attaching original file(s) and providing steps for reproduction."),yt=ct((()=>r("br",null,null,-1))),vt=c(" 翻译 by TYHH10 如果有翻译问题,切勿到原作者那边提问. ");dt.render=function(e,l,t,n,r,u){const d=h("v-btn"),c=h("v-sheet"),f=h("v-col"),m=h("v-row"),p=h("AboutSubEditor"),w=h("AboutSaveEditor"),y=h("v-container");return a(),i(y,null,{default:o((()=>[s(m,null,{default:o((()=>[s(f,null,{default:o((()=>[s(c,{elevation:"1",class:"buttonWrapper"},{default:o((()=>[s(d,{class:b([{"text-black":!r.subEditor},"mx-2"]),color:"secondary",onClick:l[0]||(l[0]=e=>r.subEditor=!1)},{default:o((()=>[ft])),_:1},8,["class"]),s(d,{class:b([{"text-black":r.subEditor},"mx-2"]),color:"secondary",onClick:l[1]||(l[1]=e=>r.subEditor=!0)},{default:o((()=>[mt])),_:1},8,["class"])])),_:1})])),_:1})])),_:1}),s(m,null,{default:o((()=>[s(f,null,{default:o((()=>[s(c,{elevation:"1",class:"pa-2",style:{"text-align":"center"}},{default:o((()=>[ht])),_:1})])),_:1})])),_:1}),r.subEditor?(a(),i(p,{key:0})):(a(),i(w,{key:1})),s(m,null,{default:o((()=>[s(f,null,{default:o((()=>[s(c,{elevation:"1",class:"pa-2",style:{"text-align":"center"}},{default:o((()=>[bt,pt,wt,yt,vt])),_:1})])),_:1})])),_:1})])),_:1})},dt.__scopeId="data-v-740e6190",e(dt,"components",{VBtn:l,VSheet:p,VCol:w,VRow:y,VContainer:C});export{dt as default};
diff --git a/assets/About.a76c7f59.css b/assets/About.a76c7f59.css
new file mode 100644
index 0000000..7fa387f
--- /dev/null
+++ b/assets/About.a76c7f59.css
@@ -0,0 +1 @@
+.buttonWrapper[data-v-a24af734]{display:flex;flex-direction:row;justify-content:space-evenly;align-content:center}.aboutCard[data-v-a24af734]{padding:4px}.buttonWrapper[data-v-95b44e5e]{display:flex;flex-direction:row;justify-content:space-evenly;align-content:center}.aboutCard[data-v-95b44e5e]{padding:4px}.buttonWrapper[data-v-740e6190]{display:flex;flex-direction:row;justify-content:space-evenly;align-content:center}
diff --git a/assets/About.ae1e6e1e.css b/assets/About.ae1e6e1e.css
deleted file mode 100644
index 674de32..0000000
--- a/assets/About.ae1e6e1e.css
+++ /dev/null
@@ -1 +0,0 @@
-.buttonWrapper[data-v-5fda034c]{display:flex;flex-direction:row;justify-content:space-evenly;align-content:center}.aboutCard[data-v-5fda034c]{padding:4px}.buttonWrapper[data-v-79114805]{display:flex;flex-direction:row;justify-content:space-evenly;align-content:center}.aboutCard[data-v-79114805]{padding:4px}.buttonWrapper[data-v-928e6b64]{display:flex;flex-direction:row;justify-content:space-evenly;align-content:center}
diff --git a/assets/Decompressor.aaf76174.js b/assets/Decompressor.5291c480.js
similarity index 95%
rename from assets/Decompressor.aaf76174.js
rename to assets/Decompressor.5291c480.js
index 25cbb76..24417d1 100644
--- a/assets/Decompressor.aaf76174.js
+++ b/assets/Decompressor.5291c480.js
@@ -1 +1 @@
-import{p as e,a as t,V as a}from"./VTooltip.c0af69e3.js";import{v as s,i as r,T as o,f as i,o as n,n as l,w as c,b as d,P as m,t as u,U as p,a as f,m as h,F as y,Q as w,R as v,d as g,r as b}from"./vendor.d2dd6a75.js";import{D as k,a as x}from"./index.0cad470e.js";import{c as _,b as D,e as C,f as j,a as A,g as V}from"./VRow.93776d3b.js";const W={data:()=>({workingDir:{name:null,handle:null},savesList:[]}),computed:{saveLocation:()=>e.windows?"C:\\Users\\%username%\\AppData\\Local\\Daedalic Entertainment GmbH\\Barotrauma":e.linux?"/home/$USER/.local/share/Daedalic Entertainment GmbH/":e.macos?"/$USER/Library/Application Support/Daedalic Entertainment GmbH/":"(unrecognized os)"},methods:{async selectWorkingDir(){try{var e=await window.showDirectoryPicker({id:"DecompressorWorkingDir",startIn:"desktop"})}catch(t){if(t instanceof TypeError)return this.$store.dispatch("showAlert",{type:"error",text:"Failed to use the File System API. It seems like it's not supported by your browser."});if(t instanceof DOMException)return;console.log("directory picker failed:"),console.error(t)}e&&(this.workingDir.name=e.name,this.workingDir.handle=e,this.scanWorkingDir(),this.$store.dispatch("showAlert",{type:"success",text:`Opened ${e.name} as the working directory.`}))},async scanWorkingDir(){let e=[];for await(const[t,a]of this.workingDir.handle.entries())if("file"===a.kind){if(t.endsWith(".save")){let s=e.find((e=>e.name==t.slice(0,-5)));s?s.compressed=a:e.push({name:t.slice(0,-5),compressed:a})}}else for await(const[s,r]of a.entries())if("file"===r.kind&&"gamesession.xml"==s){let s=e.find((e=>e.name==t));s?s.decompressed=a:e.push({name:t,decompressed:a})}this.savesList=e},async copyPath(){await navigator.clipboard.writeText(this.saveLocation),this.$store.dispatch("showAlert",{type:"success",text:"Copied save path to system clipboard."})},async decompress(e){let t=e.compressed;if(!t)return console.error("no saveFile - decompress button should not be reachable");let a=this.workingDir.handle;if(!a)return console.error("no workingDir - decompress button should not be reachable");if("granted"!==await a.queryPermission({mode:"readwrite"})&&"granted"!==await a.requestPermission({mode:"readwrite"}))return this.$store.dispatch("showAlert",{type:"error",text:"Failed get file system permissions."});let r=await t.getFile(),o=s.Buffer.from(await r.arrayBuffer()),i=k(o),n=e.decompressed;n||(n=await a.getDirectoryHandle(e.name,{create:!0}));for await(const[s,l]of n.entries())"file"===l.kind&&await n.removeEntry(s);for(let[s,l]of Object.entries(i)){let e=await n.getFileHandle(s,{create:!0}),t=await e.createWritable(),a=new Blob([l]);await t.write(a),await t.close()}this.scanWorkingDir(),this.$store.dispatch("showAlert",{type:"success",text:`Decompressed ${t.name}`})},async compress(e){let t=e.decompressed;if(!t)return console.error("no saveDir - decompress button should not be reachable");let a=this.workingDir.handle;if(!a)return console.error("no workingDir - decompress button should not be reachable");if("granted"!==await a.queryPermission({mode:"readwrite"})&&"granted"!==await a.requestPermission({mode:"readwrite"}))return this.$store.dispatch("showAlert",{type:"error",text:"Failed get file system permissions."});const r={};for await(const[c,d]of t.entries()){if("file"!==d.kind)continue;let e=await d.getFile(),t=s.Buffer.from(await e.arrayBuffer());r[c]=t}let o=x(r),i=new Blob([o.buffer],{type:"application/gzip"}),n=e.compressed;n||(n=await a.getFileHandle(t.name+".save",{create:!0}));let l=await n.createWritable();await l.write(i),await l.close(),this.scanWorkingDir(),this.$store.dispatch("showAlert",{type:"success",text:`Compressed ${e.name}`})}}},$=e=>(w("data-v-0398232a"),e=e(),v(),e),F=$((()=>m("div",{class:"text-white text-center text-h5"},"简单的存档解压缩工具.",-1))),P={class:"text-center d-flex flex-row justify-center align-center"},B=g(" 您的 save 文件位置 "),I={class:"text-primary ml-2"},S=g(" mdi-clipboard-outline "),E=g("Copy path to clipboard"),H=$((()=>m("div",{class:"text-center mt-2"},[m("span",{class:"text-orange"},"Warning:"),g(" This tool uses experimental File System API - it might not work correctly in some browsers."),m("br"),g("It's also unable to access directories where some system files might be (this includes anything inside AppData directory - so you will need to copy the saves you want to decompress somewhere accessible). ")],-1))),L=g("Select working directory"),T={class:"d-flex justify-center align-center mb-4"},z={class:"mr-4 mb-0 text-white d-inline-flex text-h5 justify-center",style:{"min-width":"200px",border:"1px solid rgb(var(--v-theme-secondary))",padding:"2px","border-radius":"5px"}},R=g("mdi-folder-search-outline"),q=g("Select working directory"),U=g("mdi-folder-sync-outline"),G=g("Refresh directory"),O=g("Detected saves"),M={class:"d-flex flex-column justify-start align-center mb-4"},Q={style:{"font-size":"1.1em"}},Y=g("mdi-package-variant"),J=g("Decompress save"),K=g("mdi-package-variant-closed"),N=g("Compress save"),X=g(" How to use: "),Z={class:"pl-4 mb-2"},ee=$((()=>m("li",null,"Select a directory in a location accessible by the API (Desktop, Documents, etc.)",-1))),te=$((()=>m("li",null,"The tool will detect all compressed and decompressed saves directly in that selected directory",-1))),ae=g("mdi-package-variant"),se=g(" button decompresses the save"),re=g("mdi-package-variant-closed"),oe=g(" button compresses the save"),ie=g(" You can use "),ne=g("mdi-folder-sync-outline"),le=g(" to refresh the current directory or "),ce=g("mdi-folder-search-outline"),de=g(" to select a different one. "),me=g(" If file / directory with a matching name exists when compressing/decompressing the save, it will be overwritten. ");W.render=function(e,t,a,s,r,o){const i=b("v-icon"),w=b("v-tooltip"),v=b("v-card-text"),g=b("v-card"),k=b("v-col"),x=b("v-row"),_=b("v-card-header"),D=b("v-btn"),C=b("v-spacer"),j=b("v-container");return n(),l(j,null,{default:c((()=>[d(x,null,{default:c((()=>[d(k,null,{default:c((()=>[d(g,null,{default:c((()=>[d(v,{style:{opacity:"1"}},{default:c((()=>[F,m("div",P,[B,m("span",I,u(o.saveLocation),1),m("div",null,[d(i,{onClick:o.copyPath,color:"secondary",class:"iconButton ml-3"},{default:c((()=>[S])),_:1},8,["onClick"]),d(w,{anchor:"bottom",activator:"parent"},{default:c((()=>[E])),_:1})])]),H])),_:1})])),_:1})])),_:1})])),_:1}),d(x,null,{default:c((()=>[d(k,null,{default:c((()=>[d(g,null,{default:c((()=>[d(_,{class:"text-h4 justify-center"},{default:c((()=>[L])),_:1}),m("div",T,[m("div",z,u(r.workingDir.name||"none"),1),d(D,{color:"secondary",variant:"outlined",type:"icon",elevation:"1",onClick:o.selectWorkingDir},{default:c((()=>[d(i,{size:"large"},{default:c((()=>[R])),_:1}),d(w,{anchor:"bottom",activator:"parent"},{default:c((()=>[q])),_:1})])),_:1},8,["onClick"]),r.workingDir.handle?(n(),l(D,{key:0,class:"ml-2",color:"secondary",variant:"outlined",type:"icon",elevation:"1",onClick:o.scanWorkingDir},{default:c((()=>[d(i,{size:"large"},{default:c((()=>[U])),_:1}),d(w,{anchor:"bottom",activator:"parent"},{default:c((()=>[G])),_:1})])),_:1},8,["onClick"])):p("",!0)])])),_:1})])),_:1})])),_:1}),r.workingDir.handle?(n(),l(x,{key:0},{default:c((()=>[d(k,null,{default:c((()=>[d(g,null,{default:c((()=>[d(_,{class:"text-h5 justify-center"},{default:c((()=>[O])),_:1}),m("div",M,[(n(!0),f(y,null,h(this.savesList,(e=>(n(),f("div",{key:e.name,style:{width:"400px"},class:"d-flex flex-row justify-center align-center my-1"},[m("div",Q,u(e.name),1),d(C),d(D,{color:e.compressed?"secondary":"grey",disabled:!e.compressed,class:"mx-1",type:"icon",elevation:"1",variant:"outlined",onClick:t=>o.decompress(e)},{default:c((()=>[d(i,{size:"large"},{default:c((()=>[Y])),_:1}),d(w,{anchor:"bottom",activator:"parent"},{default:c((()=>[J])),_:1})])),_:2},1032,["color","disabled","onClick"]),d(D,{color:e.decompressed?"secondary":"grey",disabled:!e.decompressed,class:"mx-1",type:"icon",elevation:"1",variant:"outlined",onClick:t=>o.compress(e)},{default:c((()=>[d(i,{size:"large"},{default:c((()=>[K])),_:1}),d(w,{anchor:"bottom",activator:"parent"},{default:c((()=>[N])),_:1})])),_:2},1032,["color","disabled","onClick"])])))),128))])])),_:1})])),_:1})])),_:1})):p("",!0),d(x,null,{default:c((()=>[d(k,null,{default:c((()=>[d(g,{class:"d-flex align-center justify-center"},{default:c((()=>[d(v,{style:{opacity:"1"}},{default:c((()=>[X,m("ol",Z,[ee,te,m("li",null,[d(i,{color:"secondary"},{default:c((()=>[ae])),_:1}),se]),m("li",null,[d(i,{color:"secondary"},{default:c((()=>[re])),_:1}),oe]),m("li",null,[ie,d(i,{color:"secondary"},{default:c((()=>[ne])),_:1}),le,d(i,{color:"secondary"},{default:c((()=>[ce])),_:1}),de])]),me])),_:1})])),_:1})])),_:1})])),_:1})])),_:1})},W.__scopeId="data-v-0398232a",r(W,"components",{VIcon:o,VTooltip:t,VCardText:_,VCard:D,VCol:C,VRow:j,VCardHeader:A,VBtn:i,VSpacer:a,VContainer:V});export{W as default};
+import{p as e,a as t,V as a}from"./VTooltip.a2067bd7.js";import{v as s,i as r,T as o,f as i,o as n,n as l,w as c,b as d,P as m,t as u,U as p,a as f,m as h,F as y,Q as w,R as v,d as g,r as b}from"./vendor.6119329f.js";import{D as k,a as x}from"./index.40754ba3.js";import{c as _,b as D,e as C,f as j,a as A,g as V}from"./VRow.a47e2044.js";const W={data:()=>({workingDir:{name:null,handle:null},savesList:[]}),computed:{saveLocation:()=>e.windows?"C:\\Users\\%username%\\AppData\\Local\\Daedalic Entertainment GmbH\\Barotrauma":e.linux?"/home/$USER/.local/share/Daedalic Entertainment GmbH/":e.macos?"/$USER/Library/Application Support/Daedalic Entertainment GmbH/":"(unrecognized os)"},methods:{async selectWorkingDir(){try{var e=await window.showDirectoryPicker({id:"DecompressorWorkingDir",startIn:"desktop"})}catch(t){if(t instanceof TypeError)return this.$store.dispatch("showAlert",{type:"error",text:"Failed to use the File System API. It seems like it's not supported by your browser."});if(t instanceof DOMException)return;console.log("directory picker failed:"),console.error(t)}e&&(this.workingDir.name=e.name,this.workingDir.handle=e,this.scanWorkingDir(),this.$store.dispatch("showAlert",{type:"success",text:`Opened ${e.name} as the working directory.`}))},async scanWorkingDir(){let e=[];for await(const[t,a]of this.workingDir.handle.entries())if("file"===a.kind){if(t.endsWith(".save")){let s=e.find((e=>e.name==t.slice(0,-5)));s?s.compressed=a:e.push({name:t.slice(0,-5),compressed:a})}}else for await(const[s,r]of a.entries())if("file"===r.kind&&"gamesession.xml"==s){let s=e.find((e=>e.name==t));s?s.decompressed=a:e.push({name:t,decompressed:a})}this.savesList=e},async copyPath(){await navigator.clipboard.writeText(this.saveLocation),this.$store.dispatch("showAlert",{type:"success",text:"Copied save path to system clipboard."})},async decompress(e){let t=e.compressed;if(!t)return console.error("no saveFile - decompress button should not be reachable");let a=this.workingDir.handle;if(!a)return console.error("no workingDir - decompress button should not be reachable");if("granted"!==await a.queryPermission({mode:"readwrite"})&&"granted"!==await a.requestPermission({mode:"readwrite"}))return this.$store.dispatch("showAlert",{type:"error",text:"Failed get file system permissions."});let r=await t.getFile(),o=s.Buffer.from(await r.arrayBuffer()),i=k(o),n=e.decompressed;n||(n=await a.getDirectoryHandle(e.name,{create:!0}));for await(const[s,l]of n.entries())"file"===l.kind&&await n.removeEntry(s);for(let[s,l]of Object.entries(i)){let e=await n.getFileHandle(s,{create:!0}),t=await e.createWritable(),a=new Blob([l]);await t.write(a),await t.close()}this.scanWorkingDir(),this.$store.dispatch("showAlert",{type:"success",text:`Decompressed ${t.name}`})},async compress(e){let t=e.decompressed;if(!t)return console.error("no saveDir - decompress button should not be reachable");let a=this.workingDir.handle;if(!a)return console.error("no workingDir - decompress button should not be reachable");if("granted"!==await a.queryPermission({mode:"readwrite"})&&"granted"!==await a.requestPermission({mode:"readwrite"}))return this.$store.dispatch("showAlert",{type:"error",text:"Failed get file system permissions."});const r={};for await(const[c,d]of t.entries()){if("file"!==d.kind)continue;let e=await d.getFile(),t=s.Buffer.from(await e.arrayBuffer());r[c]=t}let o=x(r),i=new Blob([o.buffer],{type:"application/gzip"}),n=e.compressed;n||(n=await a.getFileHandle(t.name+".save",{create:!0}));let l=await n.createWritable();await l.write(i),await l.close(),this.scanWorkingDir(),this.$store.dispatch("showAlert",{type:"success",text:`Compressed ${e.name}`})}}},$=e=>(w("data-v-2e21acb8"),e=e(),v(),e),F=$((()=>m("div",{class:"text-white text-center text-h5"},"简单的存档解压缩工具.",-1))),P={class:"text-center d-flex flex-row justify-center align-center"},B=g(" 您的 save 文件位置 "),I={class:"text-primary ml-2"},S=g(" mdi-clipboard-outline "),E=g("Copy path to clipboard"),H=$((()=>m("div",{class:"text-center mt-2"},[m("span",{class:"text-orange"},"Warning:"),g(" This tool uses experimental File System API - it might not work correctly in some browsers."),m("br"),g("It's also unable to access directories where some system files might be (this includes anything inside AppData directory - so you will need to copy the saves you want to decompress somewhere accessible). ")],-1))),L=g("Select working directory"),T={class:"d-flex justify-center align-center mb-4"},z={class:"mr-4 mb-0 text-white d-inline-flex text-h5 justify-center",style:{"min-width":"200px",border:"1px solid rgb(var(--v-theme-secondary))",padding:"2px","border-radius":"5px"}},R=g("mdi-folder-search-outline"),q=g("Select working directory"),U=g("mdi-folder-sync-outline"),G=g("Refresh directory"),O=g("Detected saves"),M={class:"d-flex flex-column justify-start align-center mb-4"},Q={style:{"font-size":"1.1em"}},Y=g("mdi-package-variant"),J=g("Decompress save"),K=g("mdi-package-variant-closed"),N=g("Compress save"),X=g(" How to use: "),Z={class:"pl-4 mb-2"},ee=$((()=>m("li",null,"Select a directory in a location accessible by the API (Desktop, Documents, etc.)",-1))),te=$((()=>m("li",null,"The tool will detect all compressed and decompressed saves directly in that selected directory",-1))),ae=g("mdi-package-variant"),se=g(" button decompresses the save"),re=g("mdi-package-variant-closed"),oe=g(" button compresses the save"),ie=g(" You can use "),ne=g("mdi-folder-sync-outline"),le=g(" to refresh the current directory or "),ce=g("mdi-folder-search-outline"),de=g(" to select a different one. "),me=g(" If file / directory with a matching name exists when compressing/decompressing the save, it will be overwritten. ");W.render=function(e,t,a,s,r,o){const i=b("v-icon"),w=b("v-tooltip"),v=b("v-card-text"),g=b("v-card"),k=b("v-col"),x=b("v-row"),_=b("v-card-header"),D=b("v-btn"),C=b("v-spacer"),j=b("v-container");return n(),l(j,null,{default:c((()=>[d(x,null,{default:c((()=>[d(k,null,{default:c((()=>[d(g,null,{default:c((()=>[d(v,{style:{opacity:"1"}},{default:c((()=>[F,m("div",P,[B,m("span",I,u(o.saveLocation),1),m("div",null,[d(i,{onClick:o.copyPath,color:"secondary",class:"iconButton ml-3"},{default:c((()=>[S])),_:1},8,["onClick"]),d(w,{anchor:"bottom",activator:"parent"},{default:c((()=>[E])),_:1})])]),H])),_:1})])),_:1})])),_:1})])),_:1}),d(x,null,{default:c((()=>[d(k,null,{default:c((()=>[d(g,null,{default:c((()=>[d(_,{class:"text-h4 justify-center"},{default:c((()=>[L])),_:1}),m("div",T,[m("div",z,u(r.workingDir.name||"none"),1),d(D,{color:"secondary",variant:"outlined",type:"icon",elevation:"1",onClick:o.selectWorkingDir},{default:c((()=>[d(i,{size:"large"},{default:c((()=>[R])),_:1}),d(w,{anchor:"bottom",activator:"parent"},{default:c((()=>[q])),_:1})])),_:1},8,["onClick"]),r.workingDir.handle?(n(),l(D,{key:0,class:"ml-2",color:"secondary",variant:"outlined",type:"icon",elevation:"1",onClick:o.scanWorkingDir},{default:c((()=>[d(i,{size:"large"},{default:c((()=>[U])),_:1}),d(w,{anchor:"bottom",activator:"parent"},{default:c((()=>[G])),_:1})])),_:1},8,["onClick"])):p("",!0)])])),_:1})])),_:1})])),_:1}),r.workingDir.handle?(n(),l(x,{key:0},{default:c((()=>[d(k,null,{default:c((()=>[d(g,null,{default:c((()=>[d(_,{class:"text-h5 justify-center"},{default:c((()=>[O])),_:1}),m("div",M,[(n(!0),f(y,null,h(this.savesList,(e=>(n(),f("div",{key:e.name,style:{width:"400px"},class:"d-flex flex-row justify-center align-center my-1"},[m("div",Q,u(e.name),1),d(C),d(D,{color:e.compressed?"secondary":"grey",disabled:!e.compressed,class:"mx-1",type:"icon",elevation:"1",variant:"outlined",onClick:t=>o.decompress(e)},{default:c((()=>[d(i,{size:"large"},{default:c((()=>[Y])),_:1}),d(w,{anchor:"bottom",activator:"parent"},{default:c((()=>[J])),_:1})])),_:2},1032,["color","disabled","onClick"]),d(D,{color:e.decompressed?"secondary":"grey",disabled:!e.decompressed,class:"mx-1",type:"icon",elevation:"1",variant:"outlined",onClick:t=>o.compress(e)},{default:c((()=>[d(i,{size:"large"},{default:c((()=>[K])),_:1}),d(w,{anchor:"bottom",activator:"parent"},{default:c((()=>[N])),_:1})])),_:2},1032,["color","disabled","onClick"])])))),128))])])),_:1})])),_:1})])),_:1})):p("",!0),d(x,null,{default:c((()=>[d(k,null,{default:c((()=>[d(g,{class:"d-flex align-center justify-center"},{default:c((()=>[d(v,{style:{opacity:"1"}},{default:c((()=>[X,m("ol",Z,[ee,te,m("li",null,[d(i,{color:"secondary"},{default:c((()=>[ae])),_:1}),se]),m("li",null,[d(i,{color:"secondary"},{default:c((()=>[re])),_:1}),oe]),m("li",null,[ie,d(i,{color:"secondary"},{default:c((()=>[ne])),_:1}),le,d(i,{color:"secondary"},{default:c((()=>[ce])),_:1}),de])]),me])),_:1})])),_:1})])),_:1})])),_:1})])),_:1})},W.__scopeId="data-v-2e21acb8",r(W,"components",{VIcon:o,VTooltip:t,VCardText:_,VCard:D,VCol:C,VRow:j,VCardHeader:A,VBtn:i,VSpacer:a,VContainer:V});export{W as default};
diff --git a/assets/Decompressor.67738c0d.css b/assets/Decompressor.67738c0d.css
new file mode 100644
index 0000000..81f7646
--- /dev/null
+++ b/assets/Decompressor.67738c0d.css
@@ -0,0 +1 @@
+.iconButton[data-v-2e21acb8]{cursor:pointer}
diff --git a/assets/Decompressor.e4207692.css b/assets/Decompressor.e4207692.css
deleted file mode 100644
index bf8acbc..0000000
--- a/assets/Decompressor.e4207692.css
+++ /dev/null
@@ -1 +0,0 @@
-.iconButton[data-v-0398232a]{cursor:pointer}
diff --git a/assets/FileDropper.295cac68.js b/assets/FileDropper.73d1d497.js
similarity index 98%
rename from assets/FileDropper.295cac68.js
rename to assets/FileDropper.73d1d497.js
index 631595a..f8f8537 100644
--- a/assets/FileDropper.295cac68.js
+++ b/assets/FileDropper.73d1d497.js
@@ -1 +1 @@
-var e=Object.defineProperty,t=Object.defineProperties,a=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,o=(t,a,r)=>a in t?e(t,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[a]=r,i=(e,t)=>{for(var a in t||(t={}))n.call(t,a)&&o(e,a,t[a]);if(r)for(var a of r(t))l.call(t,a)&&o(e,a,t[a]);return e},s=(e,r)=>t(e,a(r)),u=(e,t)=>{var a={};for(var o in e)n.call(e,o)&&t.indexOf(o)<0&&(a[o]=e[o]);if(null!=e&&r)for(var o of r(e))t.indexOf(o)<0&&l.call(e,o)&&(a[o]=e[o]);return a};import{$ as c,a0 as d,a1 as p,M as v,a2 as f,a3 as b,b as g,a4 as m,a5 as h,a6 as y,a7 as _,a8 as A,N as x,a9 as j,aa as S,ab as C,O as k,ac as w,ad as B,ae as I,af as V,ag as D,T as O,ah as E,ai as M,aj as F,ak as P,al as $,am as U,an as L,ao as z,ap as R,aq as T,ar as H,as as N,at as W,au as G,W as Q,av as Y,F as J,aw as K,ax as X,ay as Z,az as q,aA as ee,aB as te,G as ae,aC as re,J as ne,aD as le,aE as oe,aF as ie,aG as se,aH as ue,aI as ce,aJ as de,aK as pe,_ as ve,i as fe,f as be,aL as ge,l as me,v as he,o as ye,n as _e,w as Ae,P as xe,a as je,t as Se,Z as Ce,aM as ke,Q as we,R as Be,d as Ie,r as Ve}from"./vendor.d2dd6a75.js";import{V as De,a as Oe,p as Ee}from"./VTooltip.c0af69e3.js";import{D as Me}from"./index.0cad470e.js";import{V as Fe,c as Pe,b as $e}from"./VRow.93776d3b.js";var Ue=Array.isArray;const Le=c({name:"VMessages",props:i({active:Boolean,color:String,messages:{type:[Array,String],default:()=>[]}},d({transition:{component:p,leaveAbsolute:!0,group:!0}})),setup(e,t){let{slots:a}=t;const r=v((()=>f(e.messages))),{textColorClasses:n,textColorStyles:l}=b(v((()=>e.color)));return()=>g(m,{transition:e.transition,tag:"div",class:["v-messages",n.value],style:l.value},{default:()=>[e.active&&r.value.map(((e,t)=>g("div",{class:"v-messages__message",key:`${t}-${r.value}`},[a.message?a.message({message:e}):e])))]})}}),ze=Symbol.for("vuetify:form");function Re(){return h(ze,null)}const Te=y({disabled:Boolean,error:Boolean,errorMessages:{type:[Array,String],default:()=>[]},maxErrors:{type:[Number,String],default:1},name:String,readonly:Boolean,rules:{type:Array,default:()=>[]},modelValue:null});const He=y(i(i({id:String,appendIcon:String,prependIcon:String,hideDetails:[Boolean,String],messages:{type:[Array,String],default:()=>[]},direction:{type:String,default:"horizontal",validator:e=>["horizontal","vertical"].includes(e)}},B()),Te())),Ne=I()({name:"VInput",props:i({},He()),emits:{"click:prepend":e=>!0,"click:append":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{slots:a,emit:r}=t;const{densityClasses:n}=V(e),{errorMessages:l,isDirty:o,isDisabled:i,isReadonly:s,isPristine:u,isValid:c,isValidating:d,reset:p,resetValidation:b,validate:m,validationClasses:h}=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_();const a=A(e,"modelValue"),r=Re(),n=x([]),l=x(!0),o=v((()=>f(a.value||[]).length>0)),i=v((()=>!!(e.disabled||null!=r&&r.isDisabled.value))),s=v((()=>!!(e.readonly||null!=r&&r.isReadonly.value))),u=v((()=>e.errorMessages.length?f(e.errorMessages):n.value)),c=v((()=>!e.error&&!u.value.length&&(!l.value||null))),d=x(!1),p=v((()=>({[`${t}--error`]:!1===c.value,[`${t}--dirty`]:o.value,[`${t}--disabled`]:i.value,[`${t}--readonly`]:s.value}))),b=v((()=>{var t;return null!=(t=e.name)?t:j()}));function g(){m(),a.value=null}function m(){l.value=!0,n.value=[]}async function h(){const t=[];d.value=!0;for(const r of e.rules){if(t.length>=(e.maxErrors||1))break;const n="function"==typeof r?r:()=>r,l=await n(a.value);!0!==l&&("string"==typeof l?t.push(l):console.warn(`${l} is not a valid value. Rule functions must return boolean true or a string.`))}return n.value=t,d.value=!1,l.value=!1,n.value}return S((()=>{null==r||r.register(b.value,h,g,m)})),C((()=>{null==r||r.unregister(b.value)})),k(a,h),{errorMessages:u,isDirty:o,isDisabled:i,isReadonly:s,isPristine:l,isValid:c,isValidating:d,reset:g,resetValidation:m,validate:h,validationClasses:p}}(e),y=j(),w=v((()=>e.id||`input-${y}`)),B=v((()=>({id:w,isDirty:o,isDisabled:i,isReadonly:s,isPristine:u,isValid:c,isValidating:d,reset:p,resetValidation:b,validate:m})));return D((()=>{var t,o,i,s,u;const c=!(!a.prepend&&!e.prependIcon),d=!(!a.append&&!e.appendIcon),p=!!(null!=(t=e.messages)&&t.length||l.value.length),v=!e.hideDetails||"auto"===e.hideDetails&&p;return g("div",{class:["v-input",`v-input--${e.direction}`,n.value,h.value]},[c&&g("div",{class:"v-input__prepend"},[null==a||null==(o=a.prepend)?void 0:o.call(a,B.value),e.prependIcon&&g(O,{onClick:e=>r("click:prepend",e),icon:e.prependIcon},null)]),a.default&&g("div",{class:"v-input__control"},[null==(i=a.default)?void 0:i.call(a,B.value)]),d&&g("div",{class:"v-input__append"},[null==a||null==(s=a.append)?void 0:s.call(a,B.value),e.appendIcon&&g(O,{onClick:e=>r("click:append",e),icon:e.appendIcon},null)]),v&&g("div",{class:"v-input__details"},[g(Le,{active:p,messages:l.value.length>0?l.value:e.messages},{message:a.message}),null==(u=a.details)?void 0:u.call(a,B.value)])])})),{reset:p,resetValidation:b,validate:m}}});const We=c({name:"VLabel",props:i({text:String},E()),setup(e,t){let{slots:a}=t;return()=>{var t;return g("label",{class:"v-label"},[e.text,null==(t=a.default)?void 0:t.call(a)])}}}),Ge=c({name:"VFieldLabel",props:{floating:Boolean},setup(e,t){let{slots:a}=t;return()=>g(We,{class:["v-field-label",{"v-field-label--floating":e.floating}],"aria-hidden":e.floating||void 0},a)}});const Qe=c({name:"VProgressLinear",props:i(i(i({active:{type:Boolean,default:!0},bgColor:String,bgOpacity:[Number,String],bufferValue:{type:[Number,String],default:0},clickable:Boolean,color:String,height:{type:[Number,String],default:4},indeterminate:Boolean,max:{type:[Number,String],default:100},modelValue:{type:[Number,String],default:0},reverse:Boolean,stream:Boolean,striped:Boolean,roundedBar:Boolean},M()),F()),E()),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:a}=t;const r=A(e,"modelValue"),{isRtl:n}=P(),{themeClasses:l}=$(e),{textColorClasses:o,textColorStyles:u}=b(e,"color"),{backgroundColorClasses:c,backgroundColorStyles:d}=U(v((()=>e.bgColor||e.color))),{backgroundColorClasses:p,backgroundColorStyles:f}=U(e,"color"),{roundedClasses:m}=L(e),{intersectionRef:h,isIntersecting:y}=z(),_=v((()=>parseInt(e.max,10))),x=v((()=>parseInt(e.height,10))),j=v((()=>parseFloat(e.bufferValue)/_.value*100)),S=v((()=>parseFloat(r.value)/_.value*100)),C=v((()=>n.value!==e.reverse)),k=v((()=>e.indeterminate?"fade-transition":"slide-x-transition")),w=v((()=>null==e.bgOpacity?e.bgOpacity:parseFloat(e.bgOpacity)));function B(e){if(!h.value)return;const{left:t,right:a,width:n}=h.value.getBoundingClientRect(),l=C.value?n-e.clientX+(a-n):e.clientX-t;r.value=Math.round(l/n*_.value)}return()=>g(e.tag,{ref:h,class:["v-progress-linear",{"v-progress-linear--active":e.active&&y.value,"v-progress-linear--reverse":C.value,"v-progress-linear--rounded":e.rounded,"v-progress-linear--rounded-bar":e.roundedBar,"v-progress-linear--striped":e.striped},m.value,l.value],style:{height:e.active?R(x.value):0,"--v-progress-linear-height":R(x.value)},role:"progressbar","aria-valuemin":"0","aria-valuemax":e.max,"aria-valuenow":e.indeterminate?void 0:S.value,onClick:e.clickable&&B},{default:()=>[e.stream&&g("div",{class:["v-progress-linear__stream",o.value],style:s(i({},u.value),{[C.value?"left":"right"]:R(-x.value),borderTop:`${R(x.value/2)} dotted`,opacity:w.value,top:`calc(50% - ${R(x.value/4)})`,width:R(100-j.value,"%"),"--v-progress-linear-stream-to":R(x.value*(C.value?1:-1))})},null),g("div",{class:["v-progress-linear__background",c.value],style:[d.value,{opacity:w.value,width:R(e.stream?j.value:100,"%")}]},null),g(T,{name:k.value},{default:()=>[e.indeterminate?g("div",{class:"v-progress-linear__indeterminate"},[["long","short"].map((e=>g("div",{key:e,class:["v-progress-linear__indeterminate",e,p.value],style:f.value},null)))]):g("div",{class:["v-progress-linear__determinate",p.value],style:[f.value,{width:R(S.value,"%")}]},null)]}),a.default&&g("div",{class:"v-progress-linear__content"},[a.default({value:S.value,buffer:j.value})])]})}}),Ye=y({loading:Boolean},"loader");function Je(e,t){var a;let{slots:r}=t;return g("div",{class:`${e.name}__loader`},[(null==(a=r.default)?void 0:a.call(r,{color:e.color,isActive:e.active}))||g(Qe,{active:e.active,color:e.color,height:"2",indeterminate:!0},null)])}const Ke=y({focused:Boolean},"focus");const Xe=["underlined","outlined","filled","contained","plain"],Ze=y(i(i({appendInnerIcon:String,bgColor:String,clearable:Boolean,clearIcon:{type:String,default:"$clear"},active:Boolean,color:String,dirty:Boolean,disabled:Boolean,error:Boolean,label:String,persistentClear:Boolean,prependInnerIcon:String,reverse:Boolean,singleLine:Boolean,variant:{type:String,default:"filled",validator:e=>Xe.includes(e)}},E()),Ye()),"v-field"),qe=I()({name:"VField",inheritAttrs:!1,props:i(i({id:String},Ke()),Ze()),emits:{"click:clear":e=>!0,"click:prepend-inner":e=>!0,"click:append-inner":e=>!0,"click:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:a,emit:r,slots:n}=t;const{themeClasses:l}=$(e),{loaderClasses:o}=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_();return{loaderClasses:v((()=>({[`${t}--loading`]:e.loading})))}}(e),{focusClasses:u,isFocused:c,focus:d,blur:p}=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_();const a=A(e,"focused");function r(){a.value=!0}function n(){a.value=!1}return{focusClasses:v((()=>({[`${t}--focused`]:a.value}))),isFocused:a,focus:r,blur:n}}(e),f=v((()=>e.dirty||e.active)),m=v((()=>!(e.singleLine||!e.label&&!n.label))),h=j(),y=v((()=>e.id||`input-${h}`)),S=x(),C=x(),w=x(),{backgroundColorClasses:B,backgroundColorStyles:I}=U(H(e,"bgColor")),{textColorClasses:V,textColorStyles:E}=b(v((()=>f.value&&c.value&&!e.error&&!e.disabled?e.color:void 0)));k(f,(e=>{if(m.value){const t=S.value.$el,a=C.value.$el,r=N(t),n=a.getBoundingClientRect(),l=n.x-r.x,o=n.y-r.y-(r.height/2-n.height/2),s=n.width/.75,u=Math.abs(s-r.width)>1?{maxWidth:R(s)}:void 0,c=1e3*parseFloat(getComputedStyle(t).transitionDuration),d=parseFloat(getComputedStyle(a).getPropertyValue("--v-field-label-scale"));t.style.visibility="visible",a.style.visibility="hidden",t.animate([{transform:"translate(0)"},i({transform:`translate(${l}px, ${o}px) scale(${d})`},u)],{duration:c,easing:W,direction:e?"normal":"reverse"}).finished.then((()=>{t.style.removeProperty("visibility"),a.style.removeProperty("visibility")}))}}),{flush:"post"});const M=v((()=>({isActive:f,isFocused:c,controlRef:w,blur:p,focus:d})));function F(e){e.target!==document.activeElement&&e.preventDefault(),r("click:control",e)}return D((()=>{var t,c,v;const b="outlined"===e.variant,h=n.prependInner||e.prependInnerIcon,_=!(!e.clearable&&!n.clear),A=!!(n.appendInner||e.appendInnerIcon||_),x=n.label?n.label({label:e.label,props:{for:y.value}}):e.label;return g("div",K({class:["v-field",{"v-field--active":f.value,"v-field--appended":A,"v-field--disabled":e.disabled,"v-field--dirty":e.dirty,"v-field--error":e.error,"v-field--has-background":!!e.bgColor,"v-field--persistent-clear":e.persistentClear,"v-field--prepended":h,"v-field--reverse":e.reverse,"v-field--single-line":e.singleLine,[`v-field--variant-${e.variant}`]:!0},l.value,B.value,u.value,o.value],style:[I.value,E.value],onClick:F},a),[g("div",{class:"v-field__overlay"},null),g(Je,{name:"v-field",active:e.loading,color:e.error?"error":e.color},{default:n.loader}),h&&g("div",{class:"v-field__prepend-inner"},[e.prependInnerIcon&&g(O,{onClick:e=>r("click:prepend-inner",e),icon:e.prependInnerIcon},null),null==n||null==(t=n.prependInner)?void 0:t.call(n,M.value)]),g("div",{class:"v-field__field"},[["contained","filled"].includes(e.variant)&&m.value&&g(Ge,{ref:C,class:[V.value],floating:!0},{default:()=>[x]}),g(Ge,{ref:S,for:y.value},{default:()=>[x]}),null==(c=n.default)?void 0:c.call(n,s(i({},M.value),{props:{id:y.value,class:"v-field__input"},focus:d,blur:p}))]),_&&g(G,null,{default:()=>[Q(g("div",{class:"v-field__clearable"},[n.clear?n.clear():g(O,{onClick:e=>r("click:clear",e),icon:e.clearIcon},null)]),[[Y,e.dirty]])]}),A&&g("div",{class:"v-field__append-inner"},[null==n||null==(v=n.appendInner)?void 0:v.call(n,M.value),e.appendInnerIcon&&g(O,{onClick:e=>r("click:append-inner",e),icon:e.appendInnerIcon},null)]),g("div",{class:["v-field__outline",V.value]},[b&&g(J,null,[g("div",{class:"v-field__outline__start"},null),m.value&&g("div",{class:"v-field__outline__notch"},[g(Ge,{ref:C,floating:!0},{default:()=>[x]})]),g("div",{class:"v-field__outline__end"},null)]),["plain","underlined"].includes(e.variant)&&m.value&&g(Ge,{ref:C,floating:!0},{default:()=>[x]})])])})),{controlRef:w}}});const et=c({name:"VCounter",functional:!0,props:i({active:Boolean,max:[Number,String],value:{type:[Number,String],default:0}},d({transition:{component:p}})),setup(e,t){let{slots:a}=t;const r=v((()=>e.max?`${e.value} / ${e.max}`:String(e.value)));return()=>g(m,{transition:e.transition},{default:()=>[Q(g("div",{class:"v-counter"},[a.default?a.default({counter:r.value,max:e.max,value:e.value}):r.value]),[[Y,e.active]])]})}}),tt=["color","file","time","date","datetime-local","week","month"],at=I()({name:"VTextField",directives:{Intersect:X},inheritAttrs:!1,props:i(i({autofocus:Boolean,counter:[Boolean,Number,String],counterValue:Function,hint:String,persistentHint:Boolean,prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,suffix:String,type:{type:String,default:"text"}},He()),Ze()),emits:{"click:append":e=>!0,"click:append-inner":e=>!0,"click:clear":e=>!0,"click:control":e=>!0,"click:input":e=>!0,"click:prepend":e=>!0,"click:prepend-inner":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:a,emit:r,slots:n}=t;const l=A(e,"modelValue"),o=v((()=>{var t;return"function"==typeof e.counterValue?e.counterValue(l.value):(null!=(t=l.value)?t:"").toString().length})),c=v((()=>a.maxlength?a.maxlength:!e.counter||"number"!=typeof e.counter&&"string"!=typeof e.counter?void 0:e.counter));function d(t,a){var r,n;e.autofocus&&t&&(null==(r=a[0].target)||null==(n=r.focus)||n.call(r))}const p=x(),f=x(),b=x(!1),m=x(),h=v((()=>tt.includes(e.type)||e.persistentPlaceholder||b.value)),y=v((()=>e.messages.length?e.messages:b.value||e.persistentHint?e.hint:""));function _(){var e;m.value!==document.activeElement&&(null==(e=m.value)||e.focus());b.value||(b.value=!0)}function j(e){_(),r("click:control",e)}function S(e){e.stopPropagation(),_(),ae((()=>{l.value="",r("click:clear",e)}))}return D((()=>{const t=!!(n.counter||e.counter||e.counterValue),[v,A]=Z(a),[x]=function(e){return w(e,Object.keys(Ne.props))}(e),C=x,{modelValue:k}=C,B=u(C,["modelValue"]),[I]=function(e){return w(e,Object.keys(qe.props))}(e);return g(Ne,K({ref:p,modelValue:l.value,"onUpdate:modelValue":e=>l.value=e,class:["v-text-field",{"v-text-field--persistent-placeholder":e.persistentPlaceholder,"v-text-field--prefixed":e.prefix,"v-text-field--suffixed":e.suffix,"v-text-field--flush-details":["plain","underlined"].includes(e.variant)}],"onClick:prepend":e=>r("click:prepend",e),"onClick:append":e=>r("click:append",e)},v,B,{messages:y.value}),s(i({},n),{default:t=>{let{isDisabled:a,isDirty:o,isReadonly:c,isValid:p}=t;return g(qe,K({ref:f,onMousedown:e=>{e.target!==m.value&&e.preventDefault()},"onClick:control":j,"onClick:clear":S,"onClick:prependInner":e=>r("click:prepend-inner",e),"onClick:appendInner":e=>r("click:append-inner",e),role:"textbox"},I,{active:h.value||o.value,dirty:o.value||e.dirty,focused:b.value,error:!1===p.value}),s(i({},n),{default:t=>{var o;let{props:i}=t,s=i,{class:p}=s,v=u(s,["class"]);return g(J,null,[e.prefix&&g("span",{class:"v-text-field__prefix"},[e.prefix]),g("div",{class:p,onClick:e=>r("click:input",e)},[null==(o=n.default)?void 0:o.call(n),Q(g("input",K({ref:m,"onUpdate:modelValue":e=>l.value=e,autofocus:e.autofocus,readonly:c.value,disabled:a.value,placeholder:e.placeholder,size:1,type:e.type,onFocus:_,onBlur:()=>b.value=!1},v,A),null),[[q,l.value],[ee("intersect"),{handler:d},null,{once:!0}]])]),e.suffix&&g("span",{class:"v-text-field__suffix"},[e.suffix])])}}))},details:t?()=>g(J,null,[g("span",null,null),g(et,{active:e.persistentCounter||b.value,value:o.value,max:c.value},n.counter)]):void 0}))})),te({},p,f,m)}});var rt=function(){this.__data__=[],this.size=0},nt=re;var lt=function(e,t){for(var a=e.length;a--;)if(nt(e[a][0],t))return a;return-1},ot=lt,it=Array.prototype.splice;var st=lt;var ut=lt;var ct=lt;var dt=rt,pt=function(e){var t=this.__data__,a=ot(t,e);return!(a<0)&&(a==t.length-1?t.pop():it.call(t,a,1),--this.size,!0)},vt=function(e){var t=this.__data__,a=st(t,e);return a<0?void 0:t[a][1]},ft=function(e){return ut(this.__data__,e)>-1},bt=function(e,t){var a=this.__data__,r=ct(a,e);return r<0?(++this.size,a.push([e,t])):a[r][1]=t,this};function gt(e){var t=-1,a=null==e?0:e.length;for(this.clear();++t{const t={};return e.length&&(t[e.vertical?"maxHeight":"maxWidth"]=R(e.length)),e.thickness&&(t[e.vertical?"borderRightWidth":"borderTopWidth"]=R(e.thickness)),t}));return()=>g("hr",{class:[{"v-divider":!0,"v-divider--inset":e.inset,"v-divider--vertical":e.vertical},r.value,n.value],style:[o.value,l.value],"aria-orientation":a.role&&"separator"!==a.role?void 0:e.vertical?"vertical":"horizontal",role:`${a.role||"separator"}`},null)}}),Zl={props:{fromSubEditor:Boolean},data:()=>({hovered:!1,fileLocDialog:!1,helpDialog:!1}),methods:{async loadFile(e){await this.$store.dispatch("setLoading",!0),await new Promise((e=>setTimeout(e,50)));const t=new FileReader;t.readAsArrayBuffer(e),t.onload=t=>{const a=t.target.result;var r={name:e.name,data:null};if(this.fromSubEditor)r.data=a,this.$store.dispatch("subUploaded",r);else{if(e.name.endsWith(".save")){var n=Me(he.Buffer.from(a));r.data=n}else e.name.endsWith(".sub")?r.data=a:e.name.endsWith(".xml")?r.data=he.Buffer.from(a).toString("utf-8"):r.data=a;this.$store.dispatch("fileUploaded",r)}}},selectHandler(e){var t;(null==(t=e.target)?void 0:t.files[0])&&this.loadFile(e.target.files[0]),e.target.value=null},dropHandler(e){var t;this.hovered=!1,(null==(t=e.dataTransfer)?void 0:t.files[0])&&this.loadFile(e.dataTransfer.files[0])},dropzoneClickHandler(){this.$refs.fileInput.click()},dragEnter(){this.hovered=!0},dragLeave(){this.hovered=!1}},computed:{getBorderColor(){return this.$vuetify.theme.themes.dark.colors.secondary},fileImage:()=>"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABgAAAAYADwa0LPAAABLUlEQVRo3u2YMQ7CMAxFvxErAwdgZoQjduQswAUYmDkDO2sHygHMUiSo1MZJE5uC31Ypif+LK6Up4DhOEGZeMfORmRseT2URvs4Q3Eai3fkS6Ehkem3sJLoVc63zxm7qAmUllATKSSgKlJFQFsgvYSCQV8JIIJ+EoYBIgiSFPyYQBedI1pESqjdL3dFvYa5VSNq52E5NvgMuYI0LWFNUgJmrIh9okSGSTuI2fPRnQa6Tf9SCnfBREuYCPeHFEqYCgfAiCTMBYfighIlAZPhBCXWBxPC9ErECRe4DfYVT5v78fcAFrHEBa4rciVP/XKTwFx14AFi8HrKcjnLuoQGSDpwVA3c5hQZITsY1gAuApXL4GsCWiG5Dg4IdIKIrgA2AA4BGIXgDYC8J7zgO8ASiT0oNF0KikAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wNy0yM1QyMDowNzoxOSswMDowMPb+N9UAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDctMjNUMjA6MDc6MTkrMDA6MDCHo49pAAAAAElFTkSuQmCC",saveLocation:()=>Ee.windows?"C:\\Users\\%username%\\AppData\\Local\\Daedalic Entertainment GmbH\\Barotrauma":Ee.linux?"/home/$USER/.local/share/Daedalic Entertainment GmbH/":Ee.macos?"/$USER/Library/Application Support/Daedalic Entertainment GmbH/":"Your platform was not recognized, use button on the right to see possible save locations"}},ql=e=>(we("data-v-f75d7ce6"),e=e(),Be(),e),eo={class:"d-flex flex-row align-center justify-center mb-1"},to=ql((()=>xe("div",{class:"h3 mb-1"},"将文件拖到虚线框里,进行加载↓",-1))),ao={key:0,class:"text-center"},ro=[Ie(" 您的 sub 文件在 "),ql((()=>xe("span",{class:"text-primary"},"Barotrauma 安装目录",-1)))],no={key:1,class:"text-center"},lo=Ie(" 您的 save 文件位置 "),oo={class:"text-primary"},io=Ie("mdi-file-find-outline"),so=Ie("Where can I find my files?"),uo={class:"text-h5"},co=Ie("mdi-close-thick"),po=ql((()=>xe("div",{class:"text-h6 text-center"},"Submarines are within Barotrauma installation dir:",-1))),vo=ql((()=>xe("ul",null,[xe("li",null,[Ie(" Vanilla submarines: "),xe("span",{class:"text-primary"}," Barotrauma/Submarines ")]),xe("li",null,[Ie(" Downloaded temporarily when joining server: "),xe("span",{class:"text-primary"}," Barotrauma/Submarines/Downloaded "),Ie(" (it's a hidden directory) ")]),xe("li",null,[Ie(" Downloaded from Steam Workshop: "),xe("span",{class:"text-primary"}," Barotrauma/Mods/[package name] ")]),xe("li",null,[Ie(" Created or modified by you: "),xe("span",{class:"text-primary"}," Barotrauma/LocalMods/[package name] ")])],-1))),fo=ql((()=>xe("br",null,null,-1))),bo=ql((()=>xe("p",{class:"text"},' To open your Barotrauma dir, right click on it in Steam menu and select "Browse Local Files" ',-1))),go=ql((()=>xe("div",{class:"text-h6 text-center"},"Save location depends on your OS:",-1))),mo=ql((()=>xe("ul",null,[xe("li",null,[Ie(" Windows: "),xe("span",{class:"text-primary"}," C:\\Users\\%username%\\AppData\\Local\\Daedalic Entertainment GmbH\\Barotrauma ")]),xe("li",null,[Ie(" Linux: "),xe("span",{class:"text-primary"}," /home/$USER/.local/share/Daedalic Entertainment GmbH/ ")]),xe("li",null,[Ie(" MacOS: "),xe("span",{class:"text-primary"}," /$USER/Library/Application Support/Daedalic Entertainment GmbH/ ")])],-1))),ho=Ie("mdi-help-circle-outline"),yo=Ie("What files can I load?"),_o=ql((()=>xe("span",{class:"text-h5"},"What files can i load here?",-1))),Ao=Ie("mdi-close-thick"),xo=ql((()=>xe("div",{class:"text-h6 text-center"},"Submarine editor supports following files:",-1))),jo=ql((()=>xe("ul",null,[xe("li",null,[xe("span",{class:"text-primary font-weight-bold"},".sub"),Ie(" - Barotrauma submarine files")]),xe("li",null,[xe("span",{class:"text-primary text-bold"},".xml"),Ie(" - Decompressed Barotrauma submarine files")])],-1))),So=ql((()=>xe("div",{class:"text-h6 text-center"},[Ie(" Save editor needs to load "),xe("span",{class:"text-primary font-weight-bold"},".save"),Ie(" file first, then it accepts: ")],-1))),Co=ql((()=>xe("ul",null,[xe("li",null,[xe("span",{class:"text-primary font-weight-bold"},".sub"),Ie(" - Add a new owned submarine or update file of an existing one ")]),xe("li",null,[xe("span",{class:"text-primary font-weight-bold"},"gamesession.xml"),Ie(" - Replace gamesession.xml inside the loaded save ")]),xe("li",null,[xe("span",{class:"text-primary font-weight-bold"},"(...)_CharacterData.xml"),Ie(" - Import player characters from multiplayer save as bots ")])],-1))),ko=["accept"];Zl.render=function(e,t,a,r,n,l){const o=Ve("v-spacer"),i=Ve("v-icon"),s=Ve("v-tooltip"),u=Ve("v-btn"),c=Ve("v-card-title"),d=Ve("v-divider"),p=Ve("v-img"),v=Ve("v-card-text"),f=Ve("v-card"),b=Ve("v-dialog");return ye(),_e(f,{class:"pa-4",elevation:"1"},{default:Ae((()=>[xe("div",eo,[to,g(o),a.fromSubEditor?(ye(),je("div",ao,ro)):(ye(),je("div",no,[lo,xe("span",oo,Se(l.saveLocation),1)])),g(u,{onClick:t[0]||(t[0]=Ce((e=>n.fileLocDialog=!0),["stop"])),size:"x-small",icon:""},{default:Ae((()=>[g(i,null,{default:Ae((()=>[io])),_:1}),g(s,{anchor:"bottom",activator:"parent"},{default:Ae((()=>[so])),_:1})])),_:1}),g(b,{class:"filedropper",modelValue:n.fileLocDialog,"onUpdate:modelValue":t[2]||(t[2]=e=>n.fileLocDialog=e)},{default:Ae((()=>[g(f,null,{default:Ae((()=>[g(c,null,{default:Ae((()=>[xe("span",uo,"Where are my "+Se(a.fromSubEditor?".sub":".save")+" files?",1),g(o),g(u,{color:"red",size:"x-small",icon:"",onClick:t[1]||(t[1]=e=>n.fileLocDialog=!1)},{default:Ae((()=>[g(i,null,{default:Ae((()=>[co])),_:1})])),_:1})])),_:1}),g(d),a.fromSubEditor?(ye(),_e(v,{key:0,class:"pl-8"},{default:Ae((()=>[po,vo,fo,bo,g(p,{src:"~@/assets/browseLocalFiles.png"})])),_:1})):(ye(),_e(v,{key:1,class:"pl-8"},{default:Ae((()=>[go,mo])),_:1}))])),_:1})])),_:1},8,["modelValue"]),g(u,{onClick:t[3]||(t[3]=Ce((e=>n.helpDialog=!0),["stop"])),size:"x-small",icon:""},{default:Ae((()=>[g(i,null,{default:Ae((()=>[ho])),_:1}),g(s,{anchor:"bottom",activator:"parent"},{default:Ae((()=>[yo])),_:1})])),_:1}),g(b,{class:"filedropper",modelValue:n.helpDialog,"onUpdate:modelValue":t[5]||(t[5]=e=>n.helpDialog=e)},{default:Ae((()=>[g(f,null,{default:Ae((()=>[g(c,null,{default:Ae((()=>[_o,g(o),g(u,{color:"red",size:"x-small",icon:"",onClick:t[4]||(t[4]=e=>n.helpDialog=!1)},{default:Ae((()=>[g(i,null,{default:Ae((()=>[Ao])),_:1})])),_:1})])),_:1}),g(d),a.fromSubEditor?(ye(),_e(v,{key:0,class:"pl-8"},{default:Ae((()=>[xo,jo])),_:1})):(ye(),_e(v,{key:1,class:"pl-8"},{default:Ae((()=>[So,Co])),_:1}))])),_:1})])),_:1},8,["modelValue"])]),xe("div",{class:"dropzone",onDrop:t[6]||(t[6]=Ce(((...e)=>l.dropHandler&&l.dropHandler(...e)),["prevent"])),onClick:t[7]||(t[7]=(...e)=>l.dropzoneClickHandler&&l.dropzoneClickHandler(...e)),onDragenter:t[8]||(t[8]=Ce(((...e)=>l.dragEnter&&l.dragEnter(...e)),["stop","prevent"])),onDragleave:t[9]||(t[9]=Ce(((...e)=>l.dragLeave&&l.dragLeave(...e)),["stop","prevent"])),onDragover:t[10]||(t[10]=Ce((()=>{}),["stop","prevent"])),style:ke({borderColor:n.hovered?l.getBorderColor:"",backgroundImage:`url(${l.fileImage})`})},null,36),xe("input",{ref:"fileInput",class:"dropzoneInput",type:"file",onChange:t[11]||(t[11]=(...e)=>l.selectHandler&&l.selectHandler(...e)),multiple:"false",accept:a.fromSubEditor?".sub, .xml":".save, .sub, .xml"},null,40,ko)])),_:1})},Zl.__scopeId="data-v-f75d7ce6",fe(Zl,"components",{VSpacer:De,VIcon:O,VTooltip:Oe,VBtn:be,VCardTitle:Fe,VDivider:Xl,VImg:ge,VCardText:Pe,VCard:$e,VDialog:me});export{at as V,Kl as _,Xl as a,Zl as b,Ue as i};
+var e=Object.defineProperty,t=Object.defineProperties,a=Object.getOwnPropertyDescriptors,r=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,l=Object.prototype.propertyIsEnumerable,o=(t,a,r)=>a in t?e(t,a,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[a]=r,i=(e,t)=>{for(var a in t||(t={}))n.call(t,a)&&o(e,a,t[a]);if(r)for(var a of r(t))l.call(t,a)&&o(e,a,t[a]);return e},s=(e,r)=>t(e,a(r)),u=(e,t)=>{var a={};for(var o in e)n.call(e,o)&&t.indexOf(o)<0&&(a[o]=e[o]);if(null!=e&&r)for(var o of r(e))t.indexOf(o)<0&&l.call(e,o)&&(a[o]=e[o]);return a};import{$ as c,a0 as d,a1 as p,M as v,a2 as f,a3 as b,b as g,a4 as m,a5 as h,a6 as y,a7 as _,a8 as A,N as x,a9 as j,aa as S,ab as C,O as k,ac as w,ad as B,ae as I,af as V,ag as D,T as O,ah as E,ai as M,aj as F,ak as P,al as $,am as U,an as L,ao as z,ap as R,aq as T,ar as H,as as N,at as W,au as G,W as Q,av as Y,F as J,aw as K,ax as X,ay as Z,az as q,aA as ee,aB as te,G as ae,aC as re,J as ne,aD as le,aE as oe,aF as ie,aG as se,aH as ue,aI as ce,aJ as de,aK as pe,_ as ve,i as fe,f as be,aL as ge,l as me,v as he,o as ye,n as _e,w as Ae,P as xe,a as je,t as Se,Z as Ce,aM as ke,Q as we,R as Be,d as Ie,r as Ve}from"./vendor.6119329f.js";import{V as De,a as Oe,p as Ee}from"./VTooltip.a2067bd7.js";import{D as Me}from"./index.40754ba3.js";import{V as Fe,c as Pe,b as $e}from"./VRow.a47e2044.js";var Ue=Array.isArray;const Le=c({name:"VMessages",props:i({active:Boolean,color:String,messages:{type:[Array,String],default:()=>[]}},d({transition:{component:p,leaveAbsolute:!0,group:!0}})),setup(e,t){let{slots:a}=t;const r=v((()=>f(e.messages))),{textColorClasses:n,textColorStyles:l}=b(v((()=>e.color)));return()=>g(m,{transition:e.transition,tag:"div",class:["v-messages",n.value],style:l.value},{default:()=>[e.active&&r.value.map(((e,t)=>g("div",{class:"v-messages__message",key:`${t}-${r.value}`},[a.message?a.message({message:e}):e])))]})}}),ze=Symbol.for("vuetify:form");function Re(){return h(ze,null)}const Te=y({disabled:Boolean,error:Boolean,errorMessages:{type:[Array,String],default:()=>[]},maxErrors:{type:[Number,String],default:1},name:String,readonly:Boolean,rules:{type:Array,default:()=>[]},modelValue:null});const He=y(i(i({id:String,appendIcon:String,prependIcon:String,hideDetails:[Boolean,String],messages:{type:[Array,String],default:()=>[]},direction:{type:String,default:"horizontal",validator:e=>["horizontal","vertical"].includes(e)}},B()),Te())),Ne=I()({name:"VInput",props:i({},He()),emits:{"click:prepend":e=>!0,"click:append":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{slots:a,emit:r}=t;const{densityClasses:n}=V(e),{errorMessages:l,isDirty:o,isDisabled:i,isReadonly:s,isPristine:u,isValid:c,isValidating:d,reset:p,resetValidation:b,validate:m,validationClasses:h}=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_();const a=A(e,"modelValue"),r=Re(),n=x([]),l=x(!0),o=v((()=>f(a.value||[]).length>0)),i=v((()=>!!(e.disabled||null!=r&&r.isDisabled.value))),s=v((()=>!!(e.readonly||null!=r&&r.isReadonly.value))),u=v((()=>e.errorMessages.length?f(e.errorMessages):n.value)),c=v((()=>!e.error&&!u.value.length&&(!l.value||null))),d=x(!1),p=v((()=>({[`${t}--error`]:!1===c.value,[`${t}--dirty`]:o.value,[`${t}--disabled`]:i.value,[`${t}--readonly`]:s.value}))),b=v((()=>{var t;return null!=(t=e.name)?t:j()}));function g(){m(),a.value=null}function m(){l.value=!0,n.value=[]}async function h(){const t=[];d.value=!0;for(const r of e.rules){if(t.length>=(e.maxErrors||1))break;const n="function"==typeof r?r:()=>r,l=await n(a.value);!0!==l&&("string"==typeof l?t.push(l):console.warn(`${l} is not a valid value. Rule functions must return boolean true or a string.`))}return n.value=t,d.value=!1,l.value=!1,n.value}return S((()=>{null==r||r.register(b.value,h,g,m)})),C((()=>{null==r||r.unregister(b.value)})),k(a,h),{errorMessages:u,isDirty:o,isDisabled:i,isReadonly:s,isPristine:l,isValid:c,isValidating:d,reset:g,resetValidation:m,validate:h,validationClasses:p}}(e),y=j(),w=v((()=>e.id||`input-${y}`)),B=v((()=>({id:w,isDirty:o,isDisabled:i,isReadonly:s,isPristine:u,isValid:c,isValidating:d,reset:p,resetValidation:b,validate:m})));return D((()=>{var t,o,i,s,u;const c=!(!a.prepend&&!e.prependIcon),d=!(!a.append&&!e.appendIcon),p=!!(null!=(t=e.messages)&&t.length||l.value.length),v=!e.hideDetails||"auto"===e.hideDetails&&p;return g("div",{class:["v-input",`v-input--${e.direction}`,n.value,h.value]},[c&&g("div",{class:"v-input__prepend"},[null==a||null==(o=a.prepend)?void 0:o.call(a,B.value),e.prependIcon&&g(O,{onClick:e=>r("click:prepend",e),icon:e.prependIcon},null)]),a.default&&g("div",{class:"v-input__control"},[null==(i=a.default)?void 0:i.call(a,B.value)]),d&&g("div",{class:"v-input__append"},[null==a||null==(s=a.append)?void 0:s.call(a,B.value),e.appendIcon&&g(O,{onClick:e=>r("click:append",e),icon:e.appendIcon},null)]),v&&g("div",{class:"v-input__details"},[g(Le,{active:p,messages:l.value.length>0?l.value:e.messages},{message:a.message}),null==(u=a.details)?void 0:u.call(a,B.value)])])})),{reset:p,resetValidation:b,validate:m}}});const We=c({name:"VLabel",props:i({text:String},E()),setup(e,t){let{slots:a}=t;return()=>{var t;return g("label",{class:"v-label"},[e.text,null==(t=a.default)?void 0:t.call(a)])}}}),Ge=c({name:"VFieldLabel",props:{floating:Boolean},setup(e,t){let{slots:a}=t;return()=>g(We,{class:["v-field-label",{"v-field-label--floating":e.floating}],"aria-hidden":e.floating||void 0},a)}});const Qe=c({name:"VProgressLinear",props:i(i(i({active:{type:Boolean,default:!0},bgColor:String,bgOpacity:[Number,String],bufferValue:{type:[Number,String],default:0},clickable:Boolean,color:String,height:{type:[Number,String],default:4},indeterminate:Boolean,max:{type:[Number,String],default:100},modelValue:{type:[Number,String],default:0},reverse:Boolean,stream:Boolean,striped:Boolean,roundedBar:Boolean},M()),F()),E()),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:a}=t;const r=A(e,"modelValue"),{isRtl:n}=P(),{themeClasses:l}=$(e),{textColorClasses:o,textColorStyles:u}=b(e,"color"),{backgroundColorClasses:c,backgroundColorStyles:d}=U(v((()=>e.bgColor||e.color))),{backgroundColorClasses:p,backgroundColorStyles:f}=U(e,"color"),{roundedClasses:m}=L(e),{intersectionRef:h,isIntersecting:y}=z(),_=v((()=>parseInt(e.max,10))),x=v((()=>parseInt(e.height,10))),j=v((()=>parseFloat(e.bufferValue)/_.value*100)),S=v((()=>parseFloat(r.value)/_.value*100)),C=v((()=>n.value!==e.reverse)),k=v((()=>e.indeterminate?"fade-transition":"slide-x-transition")),w=v((()=>null==e.bgOpacity?e.bgOpacity:parseFloat(e.bgOpacity)));function B(e){if(!h.value)return;const{left:t,right:a,width:n}=h.value.getBoundingClientRect(),l=C.value?n-e.clientX+(a-n):e.clientX-t;r.value=Math.round(l/n*_.value)}return()=>g(e.tag,{ref:h,class:["v-progress-linear",{"v-progress-linear--active":e.active&&y.value,"v-progress-linear--reverse":C.value,"v-progress-linear--rounded":e.rounded,"v-progress-linear--rounded-bar":e.roundedBar,"v-progress-linear--striped":e.striped},m.value,l.value],style:{height:e.active?R(x.value):0,"--v-progress-linear-height":R(x.value)},role:"progressbar","aria-valuemin":"0","aria-valuemax":e.max,"aria-valuenow":e.indeterminate?void 0:S.value,onClick:e.clickable&&B},{default:()=>[e.stream&&g("div",{class:["v-progress-linear__stream",o.value],style:s(i({},u.value),{[C.value?"left":"right"]:R(-x.value),borderTop:`${R(x.value/2)} dotted`,opacity:w.value,top:`calc(50% - ${R(x.value/4)})`,width:R(100-j.value,"%"),"--v-progress-linear-stream-to":R(x.value*(C.value?1:-1))})},null),g("div",{class:["v-progress-linear__background",c.value],style:[d.value,{opacity:w.value,width:R(e.stream?j.value:100,"%")}]},null),g(T,{name:k.value},{default:()=>[e.indeterminate?g("div",{class:"v-progress-linear__indeterminate"},[["long","short"].map((e=>g("div",{key:e,class:["v-progress-linear__indeterminate",e,p.value],style:f.value},null)))]):g("div",{class:["v-progress-linear__determinate",p.value],style:[f.value,{width:R(S.value,"%")}]},null)]}),a.default&&g("div",{class:"v-progress-linear__content"},[a.default({value:S.value,buffer:j.value})])]})}}),Ye=y({loading:Boolean},"loader");function Je(e,t){var a;let{slots:r}=t;return g("div",{class:`${e.name}__loader`},[(null==(a=r.default)?void 0:a.call(r,{color:e.color,isActive:e.active}))||g(Qe,{active:e.active,color:e.color,height:"2",indeterminate:!0},null)])}const Ke=y({focused:Boolean},"focus");const Xe=["underlined","outlined","filled","contained","plain"],Ze=y(i(i({appendInnerIcon:String,bgColor:String,clearable:Boolean,clearIcon:{type:String,default:"$clear"},active:Boolean,color:String,dirty:Boolean,disabled:Boolean,error:Boolean,label:String,persistentClear:Boolean,prependInnerIcon:String,reverse:Boolean,singleLine:Boolean,variant:{type:String,default:"filled",validator:e=>Xe.includes(e)}},E()),Ye()),"v-field"),qe=I()({name:"VField",inheritAttrs:!1,props:i(i({id:String},Ke()),Ze()),emits:{"click:clear":e=>!0,"click:prepend-inner":e=>!0,"click:append-inner":e=>!0,"click:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:a,emit:r,slots:n}=t;const{themeClasses:l}=$(e),{loaderClasses:o}=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_();return{loaderClasses:v((()=>({[`${t}--loading`]:e.loading})))}}(e),{focusClasses:u,isFocused:c,focus:d,blur:p}=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:_();const a=A(e,"focused");function r(){a.value=!0}function n(){a.value=!1}return{focusClasses:v((()=>({[`${t}--focused`]:a.value}))),isFocused:a,focus:r,blur:n}}(e),f=v((()=>e.dirty||e.active)),m=v((()=>!(e.singleLine||!e.label&&!n.label))),h=j(),y=v((()=>e.id||`input-${h}`)),S=x(),C=x(),w=x(),{backgroundColorClasses:B,backgroundColorStyles:I}=U(H(e,"bgColor")),{textColorClasses:V,textColorStyles:E}=b(v((()=>f.value&&c.value&&!e.error&&!e.disabled?e.color:void 0)));k(f,(e=>{if(m.value){const t=S.value.$el,a=C.value.$el,r=N(t),n=a.getBoundingClientRect(),l=n.x-r.x,o=n.y-r.y-(r.height/2-n.height/2),s=n.width/.75,u=Math.abs(s-r.width)>1?{maxWidth:R(s)}:void 0,c=1e3*parseFloat(getComputedStyle(t).transitionDuration),d=parseFloat(getComputedStyle(a).getPropertyValue("--v-field-label-scale"));t.style.visibility="visible",a.style.visibility="hidden",t.animate([{transform:"translate(0)"},i({transform:`translate(${l}px, ${o}px) scale(${d})`},u)],{duration:c,easing:W,direction:e?"normal":"reverse"}).finished.then((()=>{t.style.removeProperty("visibility"),a.style.removeProperty("visibility")}))}}),{flush:"post"});const M=v((()=>({isActive:f,isFocused:c,controlRef:w,blur:p,focus:d})));function F(e){e.target!==document.activeElement&&e.preventDefault(),r("click:control",e)}return D((()=>{var t,c,v;const b="outlined"===e.variant,h=n.prependInner||e.prependInnerIcon,_=!(!e.clearable&&!n.clear),A=!!(n.appendInner||e.appendInnerIcon||_),x=n.label?n.label({label:e.label,props:{for:y.value}}):e.label;return g("div",K({class:["v-field",{"v-field--active":f.value,"v-field--appended":A,"v-field--disabled":e.disabled,"v-field--dirty":e.dirty,"v-field--error":e.error,"v-field--has-background":!!e.bgColor,"v-field--persistent-clear":e.persistentClear,"v-field--prepended":h,"v-field--reverse":e.reverse,"v-field--single-line":e.singleLine,[`v-field--variant-${e.variant}`]:!0},l.value,B.value,u.value,o.value],style:[I.value,E.value],onClick:F},a),[g("div",{class:"v-field__overlay"},null),g(Je,{name:"v-field",active:e.loading,color:e.error?"error":e.color},{default:n.loader}),h&&g("div",{class:"v-field__prepend-inner"},[e.prependInnerIcon&&g(O,{onClick:e=>r("click:prepend-inner",e),icon:e.prependInnerIcon},null),null==n||null==(t=n.prependInner)?void 0:t.call(n,M.value)]),g("div",{class:"v-field__field"},[["contained","filled"].includes(e.variant)&&m.value&&g(Ge,{ref:C,class:[V.value],floating:!0},{default:()=>[x]}),g(Ge,{ref:S,for:y.value},{default:()=>[x]}),null==(c=n.default)?void 0:c.call(n,s(i({},M.value),{props:{id:y.value,class:"v-field__input"},focus:d,blur:p}))]),_&&g(G,null,{default:()=>[Q(g("div",{class:"v-field__clearable"},[n.clear?n.clear():g(O,{onClick:e=>r("click:clear",e),icon:e.clearIcon},null)]),[[Y,e.dirty]])]}),A&&g("div",{class:"v-field__append-inner"},[null==n||null==(v=n.appendInner)?void 0:v.call(n,M.value),e.appendInnerIcon&&g(O,{onClick:e=>r("click:append-inner",e),icon:e.appendInnerIcon},null)]),g("div",{class:["v-field__outline",V.value]},[b&&g(J,null,[g("div",{class:"v-field__outline__start"},null),m.value&&g("div",{class:"v-field__outline__notch"},[g(Ge,{ref:C,floating:!0},{default:()=>[x]})]),g("div",{class:"v-field__outline__end"},null)]),["plain","underlined"].includes(e.variant)&&m.value&&g(Ge,{ref:C,floating:!0},{default:()=>[x]})])])})),{controlRef:w}}});const et=c({name:"VCounter",functional:!0,props:i({active:Boolean,max:[Number,String],value:{type:[Number,String],default:0}},d({transition:{component:p}})),setup(e,t){let{slots:a}=t;const r=v((()=>e.max?`${e.value} / ${e.max}`:String(e.value)));return()=>g(m,{transition:e.transition},{default:()=>[Q(g("div",{class:"v-counter"},[a.default?a.default({counter:r.value,max:e.max,value:e.value}):r.value]),[[Y,e.active]])]})}}),tt=["color","file","time","date","datetime-local","week","month"],at=I()({name:"VTextField",directives:{Intersect:X},inheritAttrs:!1,props:i(i({autofocus:Boolean,counter:[Boolean,Number,String],counterValue:Function,hint:String,persistentHint:Boolean,prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,suffix:String,type:{type:String,default:"text"}},He()),Ze()),emits:{"click:append":e=>!0,"click:append-inner":e=>!0,"click:clear":e=>!0,"click:control":e=>!0,"click:input":e=>!0,"click:prepend":e=>!0,"click:prepend-inner":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:a,emit:r,slots:n}=t;const l=A(e,"modelValue"),o=v((()=>{var t;return"function"==typeof e.counterValue?e.counterValue(l.value):(null!=(t=l.value)?t:"").toString().length})),c=v((()=>a.maxlength?a.maxlength:!e.counter||"number"!=typeof e.counter&&"string"!=typeof e.counter?void 0:e.counter));function d(t,a){var r,n;e.autofocus&&t&&(null==(r=a[0].target)||null==(n=r.focus)||n.call(r))}const p=x(),f=x(),b=x(!1),m=x(),h=v((()=>tt.includes(e.type)||e.persistentPlaceholder||b.value)),y=v((()=>e.messages.length?e.messages:b.value||e.persistentHint?e.hint:""));function _(){var e;m.value!==document.activeElement&&(null==(e=m.value)||e.focus());b.value||(b.value=!0)}function j(e){_(),r("click:control",e)}function S(e){e.stopPropagation(),_(),ae((()=>{l.value="",r("click:clear",e)}))}return D((()=>{const t=!!(n.counter||e.counter||e.counterValue),[v,A]=Z(a),[x]=function(e){return w(e,Object.keys(Ne.props))}(e),C=x,{modelValue:k}=C,B=u(C,["modelValue"]),[I]=function(e){return w(e,Object.keys(qe.props))}(e);return g(Ne,K({ref:p,modelValue:l.value,"onUpdate:modelValue":e=>l.value=e,class:["v-text-field",{"v-text-field--persistent-placeholder":e.persistentPlaceholder,"v-text-field--prefixed":e.prefix,"v-text-field--suffixed":e.suffix,"v-text-field--flush-details":["plain","underlined"].includes(e.variant)}],"onClick:prepend":e=>r("click:prepend",e),"onClick:append":e=>r("click:append",e)},v,B,{messages:y.value}),s(i({},n),{default:t=>{let{isDisabled:a,isDirty:o,isReadonly:c,isValid:p}=t;return g(qe,K({ref:f,onMousedown:e=>{e.target!==m.value&&e.preventDefault()},"onClick:control":j,"onClick:clear":S,"onClick:prependInner":e=>r("click:prepend-inner",e),"onClick:appendInner":e=>r("click:append-inner",e),role:"textbox"},I,{active:h.value||o.value,dirty:o.value||e.dirty,focused:b.value,error:!1===p.value}),s(i({},n),{default:t=>{var o;let{props:i}=t,s=i,{class:p}=s,v=u(s,["class"]);return g(J,null,[e.prefix&&g("span",{class:"v-text-field__prefix"},[e.prefix]),g("div",{class:p,onClick:e=>r("click:input",e)},[null==(o=n.default)?void 0:o.call(n),Q(g("input",K({ref:m,"onUpdate:modelValue":e=>l.value=e,autofocus:e.autofocus,readonly:c.value,disabled:a.value,placeholder:e.placeholder,size:1,type:e.type,onFocus:_,onBlur:()=>b.value=!1},v,A),null),[[q,l.value],[ee("intersect"),{handler:d},null,{once:!0}]])]),e.suffix&&g("span",{class:"v-text-field__suffix"},[e.suffix])])}}))},details:t?()=>g(J,null,[g("span",null,null),g(et,{active:e.persistentCounter||b.value,value:o.value,max:c.value},n.counter)]):void 0}))})),te({},p,f,m)}});var rt=function(){this.__data__=[],this.size=0},nt=re;var lt=function(e,t){for(var a=e.length;a--;)if(nt(e[a][0],t))return a;return-1},ot=lt,it=Array.prototype.splice;var st=lt;var ut=lt;var ct=lt;var dt=rt,pt=function(e){var t=this.__data__,a=ot(t,e);return!(a<0)&&(a==t.length-1?t.pop():it.call(t,a,1),--this.size,!0)},vt=function(e){var t=this.__data__,a=st(t,e);return a<0?void 0:t[a][1]},ft=function(e){return ut(this.__data__,e)>-1},bt=function(e,t){var a=this.__data__,r=ct(a,e);return r<0?(++this.size,a.push([e,t])):a[r][1]=t,this};function gt(e){var t=-1,a=null==e?0:e.length;for(this.clear();++t{const t={};return e.length&&(t[e.vertical?"maxHeight":"maxWidth"]=R(e.length)),e.thickness&&(t[e.vertical?"borderRightWidth":"borderTopWidth"]=R(e.thickness)),t}));return()=>g("hr",{class:[{"v-divider":!0,"v-divider--inset":e.inset,"v-divider--vertical":e.vertical},r.value,n.value],style:[o.value,l.value],"aria-orientation":a.role&&"separator"!==a.role?void 0:e.vertical?"vertical":"horizontal",role:`${a.role||"separator"}`},null)}}),Zl={props:{fromSubEditor:Boolean},data:()=>({hovered:!1,fileLocDialog:!1,helpDialog:!1}),methods:{async loadFile(e){await this.$store.dispatch("setLoading",!0),await new Promise((e=>setTimeout(e,50)));const t=new FileReader;t.readAsArrayBuffer(e),t.onload=t=>{const a=t.target.result;var r={name:e.name,data:null};if(this.fromSubEditor)r.data=a,this.$store.dispatch("subUploaded",r);else{if(e.name.endsWith(".save")){var n=Me(he.Buffer.from(a));r.data=n}else e.name.endsWith(".sub")?r.data=a:e.name.endsWith(".xml")?r.data=he.Buffer.from(a).toString("utf-8"):r.data=a;this.$store.dispatch("fileUploaded",r)}}},selectHandler(e){var t;(null==(t=e.target)?void 0:t.files[0])&&this.loadFile(e.target.files[0]),e.target.value=null},dropHandler(e){var t;this.hovered=!1,(null==(t=e.dataTransfer)?void 0:t.files[0])&&this.loadFile(e.dataTransfer.files[0])},dropzoneClickHandler(){this.$refs.fileInput.click()},dragEnter(){this.hovered=!0},dragLeave(){this.hovered=!1}},computed:{getBorderColor(){return this.$vuetify.theme.themes.dark.colors.secondary},fileImage:()=>"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABgAAAAYADwa0LPAAABLUlEQVRo3u2YMQ7CMAxFvxErAwdgZoQjduQswAUYmDkDO2sHygHMUiSo1MZJE5uC31Ypif+LK6Up4DhOEGZeMfORmRseT2URvs4Q3Eai3fkS6Ehkem3sJLoVc63zxm7qAmUllATKSSgKlJFQFsgvYSCQV8JIIJ+EoYBIgiSFPyYQBedI1pESqjdL3dFvYa5VSNq52E5NvgMuYI0LWFNUgJmrIh9okSGSTuI2fPRnQa6Tf9SCnfBREuYCPeHFEqYCgfAiCTMBYfighIlAZPhBCXWBxPC9ErECRe4DfYVT5v78fcAFrHEBa4rciVP/XKTwFx14AFi8HrKcjnLuoQGSDpwVA3c5hQZITsY1gAuApXL4GsCWiG5Dg4IdIKIrgA2AA4BGIXgDYC8J7zgO8ASiT0oNF0KikAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0wNy0yM1QyMDowNzoxOSswMDowMPb+N9UAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMDctMjNUMjA6MDc6MTkrMDA6MDCHo49pAAAAAElFTkSuQmCC",saveLocation:()=>Ee.windows?"C:\\Users\\%username%\\AppData\\Local\\Daedalic Entertainment GmbH\\Barotrauma":Ee.linux?"/home/$USER/.local/share/Daedalic Entertainment GmbH/":Ee.macos?"/$USER/Library/Application Support/Daedalic Entertainment GmbH/":"Your platform was not recognized, use button on the right to see possible save locations"}},ql=e=>(we("data-v-0d882500"),e=e(),Be(),e),eo={class:"d-flex flex-row align-center justify-center mb-1"},to=ql((()=>xe("div",{class:"h3 mb-1"},"将文件拖到虚线框里,进行加载↓",-1))),ao={key:0,class:"text-center"},ro=[Ie(" 您的 sub 文件在 "),ql((()=>xe("span",{class:"text-primary"},"Barotrauma 安装目录",-1)))],no={key:1,class:"text-center"},lo=Ie(" 您的 save 文件位置 "),oo={class:"text-primary"},io=Ie("mdi-file-find-outline"),so=Ie("Where can I find my files?"),uo={class:"text-h5"},co=Ie("mdi-close-thick"),po=ql((()=>xe("div",{class:"text-h6 text-center"},"Submarines are within Barotrauma installation dir:",-1))),vo=ql((()=>xe("ul",null,[xe("li",null,[Ie(" Vanilla submarines: "),xe("span",{class:"text-primary"}," Barotrauma/Submarines ")]),xe("li",null,[Ie(" Downloaded temporarily when joining server: "),xe("span",{class:"text-primary"}," Barotrauma/Submarines/Downloaded "),Ie(" (it's a hidden directory) ")]),xe("li",null,[Ie(" Downloaded from Steam Workshop: "),xe("span",{class:"text-primary"}," Barotrauma/Mods/[package name] ")]),xe("li",null,[Ie(" Created or modified by you: "),xe("span",{class:"text-primary"}," Barotrauma/LocalMods/[package name] ")])],-1))),fo=ql((()=>xe("br",null,null,-1))),bo=ql((()=>xe("p",{class:"text"},' To open your Barotrauma dir, right click on it in Steam menu and select "Browse Local Files" ',-1))),go=ql((()=>xe("div",{class:"text-h6 text-center"},"Save location depends on your OS:",-1))),mo=ql((()=>xe("ul",null,[xe("li",null,[Ie(" Windows: "),xe("span",{class:"text-primary"}," C:\\Users\\%username%\\AppData\\Local\\Daedalic Entertainment GmbH\\Barotrauma ")]),xe("li",null,[Ie(" Linux: "),xe("span",{class:"text-primary"}," /home/$USER/.local/share/Daedalic Entertainment GmbH/ ")]),xe("li",null,[Ie(" MacOS: "),xe("span",{class:"text-primary"}," /$USER/Library/Application Support/Daedalic Entertainment GmbH/ ")])],-1))),ho=Ie("mdi-help-circle-outline"),yo=Ie("What files can I load?"),_o=ql((()=>xe("span",{class:"text-h5"},"What files can i load here?",-1))),Ao=Ie("mdi-close-thick"),xo=ql((()=>xe("div",{class:"text-h6 text-center"},"Submarine editor supports following files:",-1))),jo=ql((()=>xe("ul",null,[xe("li",null,[xe("span",{class:"text-primary font-weight-bold"},".sub"),Ie(" - Barotrauma submarine files")]),xe("li",null,[xe("span",{class:"text-primary text-bold"},".xml"),Ie(" - Decompressed Barotrauma submarine files")])],-1))),So=ql((()=>xe("div",{class:"text-h6 text-center"},[Ie(" Save editor needs to load "),xe("span",{class:"text-primary font-weight-bold"},".save"),Ie(" file first, then it accepts: ")],-1))),Co=ql((()=>xe("ul",null,[xe("li",null,[xe("span",{class:"text-primary font-weight-bold"},".sub"),Ie(" - Add a new owned submarine or update file of an existing one ")]),xe("li",null,[xe("span",{class:"text-primary font-weight-bold"},"gamesession.xml"),Ie(" - Replace gamesession.xml inside the loaded save ")]),xe("li",null,[xe("span",{class:"text-primary font-weight-bold"},"(...)_CharacterData.xml"),Ie(" - Import player characters from multiplayer save as bots ")])],-1))),ko=["accept"];Zl.render=function(e,t,a,r,n,l){const o=Ve("v-spacer"),i=Ve("v-icon"),s=Ve("v-tooltip"),u=Ve("v-btn"),c=Ve("v-card-title"),d=Ve("v-divider"),p=Ve("v-img"),v=Ve("v-card-text"),f=Ve("v-card"),b=Ve("v-dialog");return ye(),_e(f,{class:"pa-4",elevation:"1"},{default:Ae((()=>[xe("div",eo,[to,g(o),a.fromSubEditor?(ye(),je("div",ao,ro)):(ye(),je("div",no,[lo,xe("span",oo,Se(l.saveLocation),1)])),g(u,{onClick:t[0]||(t[0]=Ce((e=>n.fileLocDialog=!0),["stop"])),size:"x-small",icon:""},{default:Ae((()=>[g(i,null,{default:Ae((()=>[io])),_:1}),g(s,{anchor:"bottom",activator:"parent"},{default:Ae((()=>[so])),_:1})])),_:1}),g(b,{class:"filedropper",modelValue:n.fileLocDialog,"onUpdate:modelValue":t[2]||(t[2]=e=>n.fileLocDialog=e)},{default:Ae((()=>[g(f,null,{default:Ae((()=>[g(c,null,{default:Ae((()=>[xe("span",uo,"Where are my "+Se(a.fromSubEditor?".sub":".save")+" files?",1),g(o),g(u,{color:"red",size:"x-small",icon:"",onClick:t[1]||(t[1]=e=>n.fileLocDialog=!1)},{default:Ae((()=>[g(i,null,{default:Ae((()=>[co])),_:1})])),_:1})])),_:1}),g(d),a.fromSubEditor?(ye(),_e(v,{key:0,class:"pl-8"},{default:Ae((()=>[po,vo,fo,bo,g(p,{src:"~@/assets/browseLocalFiles.png"})])),_:1})):(ye(),_e(v,{key:1,class:"pl-8"},{default:Ae((()=>[go,mo])),_:1}))])),_:1})])),_:1},8,["modelValue"]),g(u,{onClick:t[3]||(t[3]=Ce((e=>n.helpDialog=!0),["stop"])),size:"x-small",icon:""},{default:Ae((()=>[g(i,null,{default:Ae((()=>[ho])),_:1}),g(s,{anchor:"bottom",activator:"parent"},{default:Ae((()=>[yo])),_:1})])),_:1}),g(b,{class:"filedropper",modelValue:n.helpDialog,"onUpdate:modelValue":t[5]||(t[5]=e=>n.helpDialog=e)},{default:Ae((()=>[g(f,null,{default:Ae((()=>[g(c,null,{default:Ae((()=>[_o,g(o),g(u,{color:"red",size:"x-small",icon:"",onClick:t[4]||(t[4]=e=>n.helpDialog=!1)},{default:Ae((()=>[g(i,null,{default:Ae((()=>[Ao])),_:1})])),_:1})])),_:1}),g(d),a.fromSubEditor?(ye(),_e(v,{key:0,class:"pl-8"},{default:Ae((()=>[xo,jo])),_:1})):(ye(),_e(v,{key:1,class:"pl-8"},{default:Ae((()=>[So,Co])),_:1}))])),_:1})])),_:1},8,["modelValue"])]),xe("div",{class:"dropzone",onDrop:t[6]||(t[6]=Ce(((...e)=>l.dropHandler&&l.dropHandler(...e)),["prevent"])),onClick:t[7]||(t[7]=(...e)=>l.dropzoneClickHandler&&l.dropzoneClickHandler(...e)),onDragenter:t[8]||(t[8]=Ce(((...e)=>l.dragEnter&&l.dragEnter(...e)),["stop","prevent"])),onDragleave:t[9]||(t[9]=Ce(((...e)=>l.dragLeave&&l.dragLeave(...e)),["stop","prevent"])),onDragover:t[10]||(t[10]=Ce((()=>{}),["stop","prevent"])),style:ke({borderColor:n.hovered?l.getBorderColor:"",backgroundImage:`url(${l.fileImage})`})},null,36),xe("input",{ref:"fileInput",class:"dropzoneInput",type:"file",onChange:t[11]||(t[11]=(...e)=>l.selectHandler&&l.selectHandler(...e)),multiple:"false",accept:a.fromSubEditor?".sub, .xml":".save, .sub, .xml"},null,40,ko)])),_:1})},Zl.__scopeId="data-v-0d882500",fe(Zl,"components",{VSpacer:De,VIcon:O,VTooltip:Oe,VBtn:be,VCardTitle:Fe,VDivider:Xl,VImg:ge,VCardText:Pe,VCard:$e,VDialog:me});export{at as V,Kl as _,Xl as a,Zl as b,Ue as i};
diff --git a/assets/FileDropper.72632a15.css b/assets/FileDropper.9955e26d.css
similarity index 99%
rename from assets/FileDropper.72632a15.css
rename to assets/FileDropper.9955e26d.css
index e4ba54c..cb4e12c 100644
--- a/assets/FileDropper.72632a15.css
+++ b/assets/FileDropper.9955e26d.css
@@ -1 +1 @@
-.v-text-field input{color:inherit;flex:1;opacity:0;transition:.15s opacity cubic-bezier(.4,0,.2,1)}.v-text-field input:focus,.v-text-field input:active{outline:none}.v-text-field input:invalid{box-shadow:none}.v-text-field .v-field{cursor:text}.v-text-field--prefixed.v-text-field .v-field__input{--v-field-padding-start: 6px}.v-text-field--suffixed.v-text-field .v-field__input{--v-field-padding-end: 0}.v-text-field .v-input__details{padding-inline-start:16px;padding-inline-end:16px}.v-text-field .v-field--active input{opacity:1}.v-text-field .v-field--single-line input{transition:none}.v-text-field__prefix,.v-text-field__suffix{align-items:center;color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));cursor:default;display:flex;opacity:0;padding-top:var(--v-field-padding-top);transition:inherit;white-space:nowrap}.v-field--active .v-text-field__prefix,.v-field--active .v-text-field__suffix{opacity:1}.v-field--disabled .v-text-field__prefix,.v-field--disabled .v-text-field__suffix{color:rgba(var(--v-theme-on-surface),var(--v-disabled-opacity))}.v-text-field__prefix{padding-inline-start:var(--v-field-padding-start)}.v-text-field__suffix{padding-inline-end:var(--v-field-padding-end)}.v-text-field--flush-details .v-input__details{padding:0}.v-text-field--persistent-placeholder input{opacity:1}.v-input{display:grid;flex:1 1 auto}.v-input--disabled{pointer-events:none}.v-input--density-default{--v-input-control-height: 56px;--v-input-padding-top: 16px}.v-input--density-comfortable{--v-input-control-height: 48px;--v-input-padding-top: 12px}.v-input--density-compact{--v-input-control-height: 40px;--v-input-padding-top: 8px}.v-input--vertical{grid-template-areas:"append" "control" "prepend";grid-template-rows:max-content auto max-content;grid-template-columns:min-content}.v-input--vertical .v-input__prepend{margin-block-start:16px}.v-input--vertical .v-input__append{margin-block-end:16px}.v-input--horizontal{grid-template-areas:"prepend control append" "a messages b";grid-template-columns:max-content auto max-content;grid-template-rows:auto auto}.v-input--horizontal .v-input__prepend{margin-inline-end:16px}.v-input--horizontal .v-input__append{margin-inline-start:16px}.v-input__details{align-items:flex-end;display:flex;font-size:.75rem;font-weight:400;grid-area:messages;letter-spacing:.0333333333em;line-height:normal;margin-bottom:16px;min-height:22px;padding-top:6px;overflow:hidden;justify-content:space-between}.v-input__details>.v-icon,.v-input__prepend>.v-icon,.v-input__append>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-input--disabled .v-input__details>.v-icon,.v-input--disabled .v-input__details .v-messages,.v-input--error .v-input__details>.v-icon,.v-input--error .v-input__details .v-messages,.v-input--disabled .v-input__prepend>.v-icon,.v-input--disabled .v-input__prepend .v-messages,.v-input--error .v-input__prepend>.v-icon,.v-input--error .v-input__prepend .v-messages,.v-input--disabled .v-input__append>.v-icon,.v-input--disabled .v-input__append .v-messages,.v-input--error .v-input__append>.v-icon,.v-input--error .v-input__append .v-messages{opacity:1}.v-input--disabled .v-input__details,.v-input--disabled .v-input__prepend,.v-input--disabled .v-input__append{opacity:var(--v-disabled-opacity)}.v-input--error:not(.v-input--disabled) .v-input__details>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__details .v-messages,.v-input--error:not(.v-input--disabled) .v-input__prepend>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__prepend .v-messages,.v-input--error:not(.v-input--disabled) .v-input__append>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__append .v-messages{color:rgb(var(--v-theme-error))}.v-input__prepend,.v-input__append{display:flex;padding-top:var(--v-input-padding-top)}.v-input__prepend{grid-area:prepend}.v-input__append{grid-area:append}.v-input__control{grid-area:control}.v-messages{flex:1 1 auto;font-size:12px;min-height:14px;min-width:1px;opacity:var(--v-medium-emphasis-opacity);position:relative}.v-messages__message{line-height:12px;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto;transition-duration:.15s}.v-field{display:grid;grid-template-areas:"prepend-inner field clear append-inner";grid-template-columns:min-content auto min-content min-content;font-size:16px;letter-spacing:.009375em;max-width:100%;border-radius:4px;contain:layout;flex:1 0;grid-area:control;position:relative;--v-field-padding-start: 16px;--v-field-padding-end: 16px;--v-field-padding-top: 8px;--v-field-padding-bottom: 6px}.v-field--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-field--prepended{padding-inline-start:12px;--v-field-padding-start: 6px;--v-field-padding-end: 6px}.v-field--appended{padding-inline-end:12px}.v-field--variant-contained{background:rgb(var(--v-theme-surface));border-color:transparent;color:rgba(var(--v-theme-on-background),var(--v-high-emphasis-opacity));box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.v-field--variant-contained,.v-field--variant-filled{border-bottom-left-radius:0;border-bottom-right-radius:0}.v-field--variant-plain,.v-field--variant-underlined{border-radius:0;padding:0;--v-field-padding-start: 0;--v-field-padding-end: 0;--v-field-padding-top: 0}.v-field--variant-plain.v-field--single-line,.v-field--variant-underlined.v-field--single-line{--v-field-padding-top: 0}.v-field--variant-outlined,.v-field--single-line{--v-field-padding-top: 0}.v-input--density-default .v-field--variant-contained,.v-input--density-default .v-field--variant-filled{--v-input-control-height: 56px;--v-field-padding-bottom: 6px}.v-input--density-comfortable .v-field--variant-contained,.v-input--density-comfortable .v-field--variant-filled{--v-input-control-height: 48px;--v-field-padding-bottom: 2px}.v-input--density-compact .v-field--variant-contained,.v-input--density-compact .v-field--variant-filled{--v-input-control-height: 40px;--v-field-padding-bottom: -2px}.v-input--density-default .v-field--variant-underlined{--v-input-control-height: 40px;--v-field-padding-bottom: 6px}.v-input--density-comfortable .v-field--variant-underlined{--v-input-control-height: 32px;--v-field-padding-bottom: 4px}.v-input--density-compact .v-field--variant-underlined{--v-input-control-height: 24px;--v-field-padding-bottom: 2px}.v-field__input{align-self:stretch;color:inherit;display:flex;flex-wrap:wrap;letter-spacing:.009375em;opacity:var(--v-high-emphasis-opacity);padding-inline-start:var(--v-field-padding-start);padding-inline-end:var(--v-field-padding-end);padding-top:var(--v-field-padding-top, 8px);width:100%}.v-field__input input{letter-spacing:inherit}.v-field__input:focus,.v-field__input:active{outline:none}.v-field__input:invalid{box-shadow:none}.v-field__field{flex:1 0;min-height:var(--v-input-control-height, 56px);grid-area:field;padding-bottom:var(--v-field-padding-bottom, 6px);position:relative}.v-field__prepend-inner{grid-area:prepend-inner;padding-inline-end:var(--v-field-padding-after)}.v-field__clearable{grid-area:clear}.v-field__append-inner{grid-area:append-inner;padding-inline-start:var(--v-field-padding-after)}.v-field__field,.v-field__prepend-inner,.v-field__append-inner,.v-field__clearable{align-items:flex-start;display:flex;padding-top:var(--v-input-padding-top, 8px)}.v-field--focused .v-field__prepend-inner,.v-field--focused .v-field__append-inner{opacity:1}.v-field__prepend-inner>.v-icon,.v-field__append-inner>.v-icon,.v-field__clearable>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-field--disabled .v-field__prepend-inner>.v-icon,.v-field--error .v-field__prepend-inner>.v-icon,.v-field--disabled .v-field__append-inner>.v-icon,.v-field--error .v-field__append-inner>.v-icon,.v-field--disabled .v-field__clearable>.v-icon,.v-field--error .v-field__clearable>.v-icon{opacity:1}.v-field--error:not(.v-field--disabled) .v-field__prepend-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__append-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__clearable>.v-icon{color:rgb(var(--v-theme-error))}.v-field__clearable{cursor:pointer;opacity:0;margin-inline-start:4px;margin-inline-end:4px;transition:.15s cubic-bezier(.4,0,.2,1);transition-property:opacity,transform,width}.v-field--focused .v-field__clearable,.v-field--persistent-clear .v-field__clearable{opacity:1}@media (hover: hover){.v-field:hover .v-field__clearable{opacity:1}}.v-label.v-field-label{contain:layout paint;margin-inline-start:var(--v-field-padding-start);margin-inline-end:var(--v-field-padding-end);max-width:calc(100% - var(--v-field-padding-start) - var(--v-field-padding-end));pointer-events:none;position:absolute;transform-origin:left center;transition:.15s cubic-bezier(.4,0,.2,1);transition-property:opacity,transform}.v-field--active .v-label.v-field-label{visibility:hidden}.v-field--disabled .v-label.v-field-label,.v-field--focused .v-label.v-field-label,.v-field--error .v-label.v-field-label{opacity:1}.v-field--error:not(.v-field--disabled) .v-label.v-field-label{color:rgb(var(--v-theme-error))}.v-label.v-field-label--floating{--v-field-label-scale: .75em;font-size:var(--v-field-label-scale);visibility:hidden;max-width:100%}.v-field.v-field--active .v-label.v-field-label--floating{visibility:visible}.v-input--density-default .v-field--variant-contained .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-filled .v-label.v-field-label--floating{top:7px}.v-input--density-comfortable .v-field--variant-contained .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-filled .v-label.v-field-label--floating{top:5px}.v-input--density-compact .v-field--variant-contained .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating{top:3px}.v-field--variant-plain .v-label.v-field-label--floating,.v-field--variant-underlined .v-label.v-field-label--floating{transform:translateY(-6px);margin:0}.v-field--variant-outlined .v-label.v-field-label--floating{transform:translateY(-50%);transform-origin:center;position:static;margin:0 4px}.v-field__outline{--v-field-border-width: 1px;--v-field-border-opacity: .38;align-items:stretch;contain:layout;display:flex;height:100%;left:0;pointer-events:none;position:absolute;right:0;width:100%}@media (hover: hover){.v-field:hover .v-field__outline{--v-field-border-opacity: var(--v-high-emphasis-opacity)}}.v-field--error:not(.v-field--disabled) .v-field__outline{color:rgb(var(--v-theme-error))}.v-field.v-field--focused .v-field__outline,.v-input.v-input--error .v-field__outline{--v-field-border-opacity: 1}.v-field--variant-outlined.v-field--focused .v-field__outline{--v-field-border-width: 2px}.v-field--variant-filled .v-field__outline:before,.v-field--variant-underlined .v-field__outline:before{border-style:solid;border-width:0 0 var(--v-field-border-width);opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-filled .v-field__outline:after,.v-field--variant-underlined .v-field__outline:after{border-color:currentColor;border-style:solid;border-width:0 0 2px;transform:scaleX(0);transition:transform .15s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--focused.v-field--variant-filled .v-field__outline:after,.v-field--focused.v-field--variant-underlined .v-field__outline:after{transform:scaleX(1)}.v-field--variant-outlined .v-field__outline{border-radius:inherit}.v-field--variant-outlined .v-field__outline__start,.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after,.v-field--variant-outlined .v-field__outline__end{border:0 solid currentColor;opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-outlined .v-field__outline__start{flex:0 0 12px;border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-start-width:var(--v-field-border-width)}.v-field--variant-outlined .v-field__outline__start.v-locale--is-ltr,.v-locale--is-ltr .v-field--variant-outlined .v-field__outline__start{border-radius:4px 0 0 4px}.v-field--variant-outlined .v-field__outline__start.v-locale--is-rtl,.v-locale--is-rtl .v-field--variant-outlined .v-field__outline__start{border-radius:0 4px 4px 0}.v-field--variant-outlined .v-field__outline__notch{flex:none;position:relative;border-width:0 0 var(--v-field-border-width)}.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after{opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-outlined .v-field__outline__notch:before{border-width:var(--v-field-border-width) 0 0}.v-field--variant-outlined .v-field__outline__notch:after{bottom:0;border-width:0 0 var(--v-field-border-width)}.v-field--active.v-field--variant-outlined .v-field__outline__notch:before{opacity:0}.v-field--variant-outlined .v-field__outline__end{flex:1;border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-end-width:var(--v-field-border-width)}.v-field--variant-outlined .v-field__outline__end.v-locale--is-ltr,.v-locale--is-ltr .v-field--variant-outlined .v-field__outline__end{border-radius:0 4px 4px 0}.v-field--variant-outlined .v-field__outline__end.v-locale--is-rtl,.v-locale--is-rtl .v-field--variant-outlined .v-field__outline__end{border-radius:4px 0 0 4px}.v-field__loader{bottom:0;left:0;position:absolute;right:0;width:100%}.v-field--variant-filled .v-field__overlay{background-color:currentColor;border-radius:inherit;opacity:.04;pointer-events:none;transition:opacity .25s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-filled.v-field--has-background .v-field__overlay{opacity:0}@media (hover: hover){.v-field--variant-filled:hover .v-field__overlay{opacity:calc(.08 * var(--v-theme-overlay-multiplier))}}.v-field--variant-filled.v-field--focused .v-field__overlay{opacity:calc(.16 * var(--v-theme-overlay-multiplier))}.v-field--reverse .v-field__input.v-locale--is-ltr,.v-locale--is-ltr .v-field--reverse .v-field__input{text-align:right}.v-field--reverse .v-field__input.v-locale--is-rtl,.v-locale--is-rtl .v-field--reverse .v-field__input{text-align:left}.v-input--disabled .v-field--variant-filled .v-field__outline:before,.v-input--disabled .v-field--variant-underlined .v-field__outline:before{border-image:repeating-linear-gradient(to right,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 0px,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 2px,transparent 2px,transparent 4px) 1 repeat}.v-field--loading .v-field__outline:after,.v-field--loading .v-field__outline:before{opacity:0}.v-label{align-items:center;cursor:pointer;display:inline-flex;font-size:1rem;letter-spacing:.009375em;min-width:0;opacity:var(--v-medium-emphasis-opacity);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-progress-linear{background:transparent;overflow:hidden;position:relative;transition:.2s cubic-bezier(.4,0,.2,1);width:100%}.v-progress-linear__background{background:currentColor;bottom:0;left:0;opacity:var(--v-border-opacity);position:absolute;top:0;transition-property:width,left,right;transition:inherit}.v-progress-linear__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:100%}.v-progress-linear__determinate,.v-progress-linear__indeterminate{background:currentColor}.v-progress-linear__determinate{height:inherit;left:0;position:absolute;transition:inherit;transition-property:width,left,right}.v-progress-linear__indeterminate .long,.v-progress-linear__indeterminate .short{animation-play-state:paused;animation-duration:2.2s;animation-iteration-count:infinite;bottom:0;height:inherit;left:0;position:absolute;right:auto;top:0;width:auto;will-change:left,right}.v-progress-linear__indeterminate .long{animation-name:indeterminate-ltr}.v-progress-linear__indeterminate .short{animation-name:indeterminate-short-ltr}.v-progress-linear__stream{animation:stream .25s infinite linear;animation-play-state:paused;bottom:0;left:auto;opacity:.3;pointer-events:none;position:absolute;transition:inherit;transition-property:width,left,right}.v-progress-linear--reverse .v-progress-linear__background,.v-progress-linear--reverse .v-progress-linear__determinate,.v-progress-linear--reverse .v-progress-linear__content{left:auto;right:0}.v-progress-linear--reverse .v-progress-linear__indeterminate .long,.v-progress-linear--reverse .v-progress-linear__indeterminate .short{left:auto;right:0}.v-progress-linear--reverse .v-progress-linear__indeterminate .long{animation-name:indeterminate-rtl}.v-progress-linear--reverse .v-progress-linear__indeterminate .short{animation-name:indeterminate-short-rtl}.v-progress-linear--reverse .v-progress-linear__stream{right:auto}.v-progress-linear--absolute,.v-progress-linear--fixed{left:0;z-index:1}.v-progress-linear--absolute{position:absolute}.v-progress-linear--fixed{position:fixed}.v-progress-linear--rounded{border-radius:4px}.v-progress-linear--rounded.v-progress-linear--rounded-bar .v-progress-linear__determinate,.v-progress-linear--rounded.v-progress-linear--rounded-bar .v-progress-linear__indeterminate{border-radius:inherit}.v-progress-linear--striped .v-progress-linear__determinate{animation:progress-linear-stripes 1s infinite linear;background-image:linear-gradient(135deg,hsla(0deg,0%,100%,.25) 25%,transparent 0,transparent 50%,hsla(0deg,0%,100%,.25) 0,hsla(0deg,0%,100%,.25) 75%,transparent 0,transparent);background-repeat:repeat;background-size:var(--v-progress-linear-height)}.v-progress-linear--active .v-progress-linear__indeterminate .long,.v-progress-linear--active .v-progress-linear__indeterminate .short{animation-play-state:running}.v-progress-linear--active .v-progress-linear__stream{animation-play-state:running}.v-progress-linear--rounded-bar .v-progress-linear__determinate,.v-progress-linear--rounded-bar .v-progress-linear__indeterminate,.v-progress-linear--rounded-bar .v-progress-linear__stream+.v-progress-linear__background{border-radius:4px}.v-progress-linear--rounded-bar .v-progress-linear__determinate.v-locale--is-ltr,.v-locale--is-ltr .v-progress-linear--rounded-bar .v-progress-linear__determinate{border-top-left-radius:0;border-bottom-left-radius:0}.v-progress-linear--rounded-bar .v-progress-linear__determinate.v-locale--is-rtl,.v-locale--is-rtl .v-progress-linear--rounded-bar .v-progress-linear__determinate{border-top-right-radius:0;border-bottom-right-radius:0}@keyframes indeterminate-ltr{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@keyframes indeterminate-rtl{0%{left:100%;right:-90%}60%{left:100%;right:-90%}to{left:-35%;right:100%}}@keyframes indeterminate-short-ltr{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short-rtl{0%{left:100%;right:-200%}60%{left:-8%;right:107%}to{left:-8%;right:107%}}@keyframes stream{to{transform:translate(var(--v-progress-linear-stream-to))}}@keyframes progress-linear-stripes{0%{background-position-x:var(--v-progress-linear-height)}}.v-counter{color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));flex:0 1 auto;font-size:12px;transition-duration:.15s}input.dropzoneInput[data-v-f75d7ce6]{display:none}.dropzone[data-v-f75d7ce6]{border:2px dashed #bbb;border-radius:5px;padding:50px;text-align:center;cursor:pointer;position:relative;background-position:center}.v-dialog.filedropper .v-overlay__content{max-width:780px!important;max-height:650px!important}.v-divider{display:block;flex:1 1 100%;height:0px;max-height:0px;transition:inherit;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:thin 0 0 0}.v-divider--vertical{align-self:stretch;border-width:0 thin 0 0;display:inline-flex;height:inherit;margin-left:-1px;max-height:100%;max-width:0px;vertical-align:text-bottom;width:0px}.v-divider--inset:not(.v-divider--vertical){max-width:calc(100% - 72px);margin-inline-start:72px}.v-divider--inset.v-divider--vertical{margin-bottom:8px;margin-top:8px;max-height:calc(100% - 16px)}
+.v-text-field input{color:inherit;flex:1;opacity:0;transition:.15s opacity cubic-bezier(.4,0,.2,1)}.v-text-field input:focus,.v-text-field input:active{outline:none}.v-text-field input:invalid{box-shadow:none}.v-text-field .v-field{cursor:text}.v-text-field--prefixed.v-text-field .v-field__input{--v-field-padding-start: 6px}.v-text-field--suffixed.v-text-field .v-field__input{--v-field-padding-end: 0}.v-text-field .v-input__details{padding-inline-start:16px;padding-inline-end:16px}.v-text-field .v-field--active input{opacity:1}.v-text-field .v-field--single-line input{transition:none}.v-text-field__prefix,.v-text-field__suffix{align-items:center;color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));cursor:default;display:flex;opacity:0;padding-top:var(--v-field-padding-top);transition:inherit;white-space:nowrap}.v-field--active .v-text-field__prefix,.v-field--active .v-text-field__suffix{opacity:1}.v-field--disabled .v-text-field__prefix,.v-field--disabled .v-text-field__suffix{color:rgba(var(--v-theme-on-surface),var(--v-disabled-opacity))}.v-text-field__prefix{padding-inline-start:var(--v-field-padding-start)}.v-text-field__suffix{padding-inline-end:var(--v-field-padding-end)}.v-text-field--flush-details .v-input__details{padding:0}.v-text-field--persistent-placeholder input{opacity:1}.v-input{display:grid;flex:1 1 auto}.v-input--disabled{pointer-events:none}.v-input--density-default{--v-input-control-height: 56px;--v-input-padding-top: 16px}.v-input--density-comfortable{--v-input-control-height: 48px;--v-input-padding-top: 12px}.v-input--density-compact{--v-input-control-height: 40px;--v-input-padding-top: 8px}.v-input--vertical{grid-template-areas:"append" "control" "prepend";grid-template-rows:max-content auto max-content;grid-template-columns:min-content}.v-input--vertical .v-input__prepend{margin-block-start:16px}.v-input--vertical .v-input__append{margin-block-end:16px}.v-input--horizontal{grid-template-areas:"prepend control append" "a messages b";grid-template-columns:max-content auto max-content;grid-template-rows:auto auto}.v-input--horizontal .v-input__prepend{margin-inline-end:16px}.v-input--horizontal .v-input__append{margin-inline-start:16px}.v-input__details{align-items:flex-end;display:flex;font-size:.75rem;font-weight:400;grid-area:messages;letter-spacing:.0333333333em;line-height:normal;margin-bottom:16px;min-height:22px;padding-top:6px;overflow:hidden;justify-content:space-between}.v-input__details>.v-icon,.v-input__prepend>.v-icon,.v-input__append>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-input--disabled .v-input__details>.v-icon,.v-input--disabled .v-input__details .v-messages,.v-input--error .v-input__details>.v-icon,.v-input--error .v-input__details .v-messages,.v-input--disabled .v-input__prepend>.v-icon,.v-input--disabled .v-input__prepend .v-messages,.v-input--error .v-input__prepend>.v-icon,.v-input--error .v-input__prepend .v-messages,.v-input--disabled .v-input__append>.v-icon,.v-input--disabled .v-input__append .v-messages,.v-input--error .v-input__append>.v-icon,.v-input--error .v-input__append .v-messages{opacity:1}.v-input--disabled .v-input__details,.v-input--disabled .v-input__prepend,.v-input--disabled .v-input__append{opacity:var(--v-disabled-opacity)}.v-input--error:not(.v-input--disabled) .v-input__details>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__details .v-messages,.v-input--error:not(.v-input--disabled) .v-input__prepend>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__prepend .v-messages,.v-input--error:not(.v-input--disabled) .v-input__append>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__append .v-messages{color:rgb(var(--v-theme-error))}.v-input__prepend,.v-input__append{display:flex;padding-top:var(--v-input-padding-top)}.v-input__prepend{grid-area:prepend}.v-input__append{grid-area:append}.v-input__control{grid-area:control}.v-messages{flex:1 1 auto;font-size:12px;min-height:14px;min-width:1px;opacity:var(--v-medium-emphasis-opacity);position:relative}.v-messages__message{line-height:12px;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto;transition-duration:.15s}.v-field{display:grid;grid-template-areas:"prepend-inner field clear append-inner";grid-template-columns:min-content auto min-content min-content;font-size:16px;letter-spacing:.009375em;max-width:100%;border-radius:4px;contain:layout;flex:1 0;grid-area:control;position:relative;--v-field-padding-start: 16px;--v-field-padding-end: 16px;--v-field-padding-top: 8px;--v-field-padding-bottom: 6px}.v-field--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-field--prepended{padding-inline-start:12px;--v-field-padding-start: 6px;--v-field-padding-end: 6px}.v-field--appended{padding-inline-end:12px}.v-field--variant-contained{background:rgb(var(--v-theme-surface));border-color:transparent;color:rgba(var(--v-theme-on-background),var(--v-high-emphasis-opacity));box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.v-field--variant-contained,.v-field--variant-filled{border-bottom-left-radius:0;border-bottom-right-radius:0}.v-field--variant-plain,.v-field--variant-underlined{border-radius:0;padding:0;--v-field-padding-start: 0;--v-field-padding-end: 0;--v-field-padding-top: 0}.v-field--variant-plain.v-field--single-line,.v-field--variant-underlined.v-field--single-line{--v-field-padding-top: 0}.v-field--variant-outlined,.v-field--single-line{--v-field-padding-top: 0}.v-input--density-default .v-field--variant-contained,.v-input--density-default .v-field--variant-filled{--v-input-control-height: 56px;--v-field-padding-bottom: 6px}.v-input--density-comfortable .v-field--variant-contained,.v-input--density-comfortable .v-field--variant-filled{--v-input-control-height: 48px;--v-field-padding-bottom: 2px}.v-input--density-compact .v-field--variant-contained,.v-input--density-compact .v-field--variant-filled{--v-input-control-height: 40px;--v-field-padding-bottom: -2px}.v-input--density-default .v-field--variant-underlined{--v-input-control-height: 40px;--v-field-padding-bottom: 6px}.v-input--density-comfortable .v-field--variant-underlined{--v-input-control-height: 32px;--v-field-padding-bottom: 4px}.v-input--density-compact .v-field--variant-underlined{--v-input-control-height: 24px;--v-field-padding-bottom: 2px}.v-field__input{align-self:stretch;color:inherit;display:flex;flex-wrap:wrap;letter-spacing:.009375em;opacity:var(--v-high-emphasis-opacity);padding-inline-start:var(--v-field-padding-start);padding-inline-end:var(--v-field-padding-end);padding-top:var(--v-field-padding-top, 8px);width:100%}.v-field__input input{letter-spacing:inherit}.v-field__input:focus,.v-field__input:active{outline:none}.v-field__input:invalid{box-shadow:none}.v-field__field{flex:1 0;min-height:var(--v-input-control-height, 56px);grid-area:field;padding-bottom:var(--v-field-padding-bottom, 6px);position:relative}.v-field__prepend-inner{grid-area:prepend-inner;padding-inline-end:var(--v-field-padding-after)}.v-field__clearable{grid-area:clear}.v-field__append-inner{grid-area:append-inner;padding-inline-start:var(--v-field-padding-after)}.v-field__field,.v-field__prepend-inner,.v-field__append-inner,.v-field__clearable{align-items:flex-start;display:flex;padding-top:var(--v-input-padding-top, 8px)}.v-field--focused .v-field__prepend-inner,.v-field--focused .v-field__append-inner{opacity:1}.v-field__prepend-inner>.v-icon,.v-field__append-inner>.v-icon,.v-field__clearable>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-field--disabled .v-field__prepend-inner>.v-icon,.v-field--error .v-field__prepend-inner>.v-icon,.v-field--disabled .v-field__append-inner>.v-icon,.v-field--error .v-field__append-inner>.v-icon,.v-field--disabled .v-field__clearable>.v-icon,.v-field--error .v-field__clearable>.v-icon{opacity:1}.v-field--error:not(.v-field--disabled) .v-field__prepend-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__append-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__clearable>.v-icon{color:rgb(var(--v-theme-error))}.v-field__clearable{cursor:pointer;opacity:0;margin-inline-start:4px;margin-inline-end:4px;transition:.15s cubic-bezier(.4,0,.2,1);transition-property:opacity,transform,width}.v-field--focused .v-field__clearable,.v-field--persistent-clear .v-field__clearable{opacity:1}@media (hover: hover){.v-field:hover .v-field__clearable{opacity:1}}.v-label.v-field-label{contain:layout paint;margin-inline-start:var(--v-field-padding-start);margin-inline-end:var(--v-field-padding-end);max-width:calc(100% - var(--v-field-padding-start) - var(--v-field-padding-end));pointer-events:none;position:absolute;transform-origin:left center;transition:.15s cubic-bezier(.4,0,.2,1);transition-property:opacity,transform}.v-field--active .v-label.v-field-label{visibility:hidden}.v-field--disabled .v-label.v-field-label,.v-field--focused .v-label.v-field-label,.v-field--error .v-label.v-field-label{opacity:1}.v-field--error:not(.v-field--disabled) .v-label.v-field-label{color:rgb(var(--v-theme-error))}.v-label.v-field-label--floating{--v-field-label-scale: .75em;font-size:var(--v-field-label-scale);visibility:hidden;max-width:100%}.v-field.v-field--active .v-label.v-field-label--floating{visibility:visible}.v-input--density-default .v-field--variant-contained .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-filled .v-label.v-field-label--floating{top:7px}.v-input--density-comfortable .v-field--variant-contained .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-filled .v-label.v-field-label--floating{top:5px}.v-input--density-compact .v-field--variant-contained .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating{top:3px}.v-field--variant-plain .v-label.v-field-label--floating,.v-field--variant-underlined .v-label.v-field-label--floating{transform:translateY(-6px);margin:0}.v-field--variant-outlined .v-label.v-field-label--floating{transform:translateY(-50%);transform-origin:center;position:static;margin:0 4px}.v-field__outline{--v-field-border-width: 1px;--v-field-border-opacity: .38;align-items:stretch;contain:layout;display:flex;height:100%;left:0;pointer-events:none;position:absolute;right:0;width:100%}@media (hover: hover){.v-field:hover .v-field__outline{--v-field-border-opacity: var(--v-high-emphasis-opacity)}}.v-field--error:not(.v-field--disabled) .v-field__outline{color:rgb(var(--v-theme-error))}.v-field.v-field--focused .v-field__outline,.v-input.v-input--error .v-field__outline{--v-field-border-opacity: 1}.v-field--variant-outlined.v-field--focused .v-field__outline{--v-field-border-width: 2px}.v-field--variant-filled .v-field__outline:before,.v-field--variant-underlined .v-field__outline:before{border-style:solid;border-width:0 0 var(--v-field-border-width);opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-filled .v-field__outline:after,.v-field--variant-underlined .v-field__outline:after{border-color:currentColor;border-style:solid;border-width:0 0 2px;transform:scaleX(0);transition:transform .15s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--focused.v-field--variant-filled .v-field__outline:after,.v-field--focused.v-field--variant-underlined .v-field__outline:after{transform:scaleX(1)}.v-field--variant-outlined .v-field__outline{border-radius:inherit}.v-field--variant-outlined .v-field__outline__start,.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after,.v-field--variant-outlined .v-field__outline__end{border:0 solid currentColor;opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-outlined .v-field__outline__start{flex:0 0 12px;border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-start-width:var(--v-field-border-width)}.v-field--variant-outlined .v-field__outline__start.v-locale--is-ltr,.v-locale--is-ltr .v-field--variant-outlined .v-field__outline__start{border-radius:4px 0 0 4px}.v-field--variant-outlined .v-field__outline__start.v-locale--is-rtl,.v-locale--is-rtl .v-field--variant-outlined .v-field__outline__start{border-radius:0 4px 4px 0}.v-field--variant-outlined .v-field__outline__notch{flex:none;position:relative;border-width:0 0 var(--v-field-border-width)}.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after{opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-outlined .v-field__outline__notch:before{border-width:var(--v-field-border-width) 0 0}.v-field--variant-outlined .v-field__outline__notch:after{bottom:0;border-width:0 0 var(--v-field-border-width)}.v-field--active.v-field--variant-outlined .v-field__outline__notch:before{opacity:0}.v-field--variant-outlined .v-field__outline__end{flex:1;border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-end-width:var(--v-field-border-width)}.v-field--variant-outlined .v-field__outline__end.v-locale--is-ltr,.v-locale--is-ltr .v-field--variant-outlined .v-field__outline__end{border-radius:0 4px 4px 0}.v-field--variant-outlined .v-field__outline__end.v-locale--is-rtl,.v-locale--is-rtl .v-field--variant-outlined .v-field__outline__end{border-radius:4px 0 0 4px}.v-field__loader{bottom:0;left:0;position:absolute;right:0;width:100%}.v-field--variant-filled .v-field__overlay{background-color:currentColor;border-radius:inherit;opacity:.04;pointer-events:none;transition:opacity .25s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-filled.v-field--has-background .v-field__overlay{opacity:0}@media (hover: hover){.v-field--variant-filled:hover .v-field__overlay{opacity:calc(.08 * var(--v-theme-overlay-multiplier))}}.v-field--variant-filled.v-field--focused .v-field__overlay{opacity:calc(.16 * var(--v-theme-overlay-multiplier))}.v-field--reverse .v-field__input.v-locale--is-ltr,.v-locale--is-ltr .v-field--reverse .v-field__input{text-align:right}.v-field--reverse .v-field__input.v-locale--is-rtl,.v-locale--is-rtl .v-field--reverse .v-field__input{text-align:left}.v-input--disabled .v-field--variant-filled .v-field__outline:before,.v-input--disabled .v-field--variant-underlined .v-field__outline:before{border-image:repeating-linear-gradient(to right,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 0px,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 2px,transparent 2px,transparent 4px) 1 repeat}.v-field--loading .v-field__outline:after,.v-field--loading .v-field__outline:before{opacity:0}.v-label{align-items:center;cursor:pointer;display:inline-flex;font-size:1rem;letter-spacing:.009375em;min-width:0;opacity:var(--v-medium-emphasis-opacity);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-progress-linear{background:transparent;overflow:hidden;position:relative;transition:.2s cubic-bezier(.4,0,.2,1);width:100%}.v-progress-linear__background{background:currentColor;bottom:0;left:0;opacity:var(--v-border-opacity);position:absolute;top:0;transition-property:width,left,right;transition:inherit}.v-progress-linear__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:100%}.v-progress-linear__determinate,.v-progress-linear__indeterminate{background:currentColor}.v-progress-linear__determinate{height:inherit;left:0;position:absolute;transition:inherit;transition-property:width,left,right}.v-progress-linear__indeterminate .long,.v-progress-linear__indeterminate .short{animation-play-state:paused;animation-duration:2.2s;animation-iteration-count:infinite;bottom:0;height:inherit;left:0;position:absolute;right:auto;top:0;width:auto;will-change:left,right}.v-progress-linear__indeterminate .long{animation-name:indeterminate-ltr}.v-progress-linear__indeterminate .short{animation-name:indeterminate-short-ltr}.v-progress-linear__stream{animation:stream .25s infinite linear;animation-play-state:paused;bottom:0;left:auto;opacity:.3;pointer-events:none;position:absolute;transition:inherit;transition-property:width,left,right}.v-progress-linear--reverse .v-progress-linear__background,.v-progress-linear--reverse .v-progress-linear__determinate,.v-progress-linear--reverse .v-progress-linear__content{left:auto;right:0}.v-progress-linear--reverse .v-progress-linear__indeterminate .long,.v-progress-linear--reverse .v-progress-linear__indeterminate .short{left:auto;right:0}.v-progress-linear--reverse .v-progress-linear__indeterminate .long{animation-name:indeterminate-rtl}.v-progress-linear--reverse .v-progress-linear__indeterminate .short{animation-name:indeterminate-short-rtl}.v-progress-linear--reverse .v-progress-linear__stream{right:auto}.v-progress-linear--absolute,.v-progress-linear--fixed{left:0;z-index:1}.v-progress-linear--absolute{position:absolute}.v-progress-linear--fixed{position:fixed}.v-progress-linear--rounded{border-radius:4px}.v-progress-linear--rounded.v-progress-linear--rounded-bar .v-progress-linear__determinate,.v-progress-linear--rounded.v-progress-linear--rounded-bar .v-progress-linear__indeterminate{border-radius:inherit}.v-progress-linear--striped .v-progress-linear__determinate{animation:progress-linear-stripes 1s infinite linear;background-image:linear-gradient(135deg,hsla(0deg,0%,100%,.25) 25%,transparent 0,transparent 50%,hsla(0deg,0%,100%,.25) 0,hsla(0deg,0%,100%,.25) 75%,transparent 0,transparent);background-repeat:repeat;background-size:var(--v-progress-linear-height)}.v-progress-linear--active .v-progress-linear__indeterminate .long,.v-progress-linear--active .v-progress-linear__indeterminate .short{animation-play-state:running}.v-progress-linear--active .v-progress-linear__stream{animation-play-state:running}.v-progress-linear--rounded-bar .v-progress-linear__determinate,.v-progress-linear--rounded-bar .v-progress-linear__indeterminate,.v-progress-linear--rounded-bar .v-progress-linear__stream+.v-progress-linear__background{border-radius:4px}.v-progress-linear--rounded-bar .v-progress-linear__determinate.v-locale--is-ltr,.v-locale--is-ltr .v-progress-linear--rounded-bar .v-progress-linear__determinate{border-top-left-radius:0;border-bottom-left-radius:0}.v-progress-linear--rounded-bar .v-progress-linear__determinate.v-locale--is-rtl,.v-locale--is-rtl .v-progress-linear--rounded-bar .v-progress-linear__determinate{border-top-right-radius:0;border-bottom-right-radius:0}@keyframes indeterminate-ltr{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@keyframes indeterminate-rtl{0%{left:100%;right:-90%}60%{left:100%;right:-90%}to{left:-35%;right:100%}}@keyframes indeterminate-short-ltr{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short-rtl{0%{left:100%;right:-200%}60%{left:-8%;right:107%}to{left:-8%;right:107%}}@keyframes stream{to{transform:translate(var(--v-progress-linear-stream-to))}}@keyframes progress-linear-stripes{0%{background-position-x:var(--v-progress-linear-height)}}.v-counter{color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));flex:0 1 auto;font-size:12px;transition-duration:.15s}input.dropzoneInput[data-v-0d882500]{display:none}.dropzone[data-v-0d882500]{border:2px dashed #bbb;border-radius:5px;padding:50px;text-align:center;cursor:pointer;position:relative;background-position:center}.v-dialog.filedropper .v-overlay__content{max-width:780px!important;max-height:650px!important}.v-divider{display:block;flex:1 1 100%;height:0px;max-height:0px;transition:inherit;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:thin 0 0 0}.v-divider--vertical{align-self:stretch;border-width:0 thin 0 0;display:inline-flex;height:inherit;margin-left:-1px;max-height:100%;max-width:0px;vertical-align:text-bottom;width:0px}.v-divider--inset:not(.v-divider--vertical){max-width:calc(100% - 72px);margin-inline-start:72px}.v-divider--inset.v-divider--vertical{margin-bottom:8px;margin-top:8px;max-height:calc(100% - 16px)}
diff --git a/assets/SaveTools.3006e934.css b/assets/SaveTools.3006e934.css
new file mode 100644
index 0000000..190f6cb
--- /dev/null
+++ b/assets/SaveTools.3006e934.css
@@ -0,0 +1 @@
+.iconButton[data-v-ca595cae]{cursor:pointer}input[data-v-ca595cae]{border:1px solid white;width:100%}.toolTitle[data-v-ca595cae]{font-weight:normal;font-size:1.1em;align-self:center;margin-left:12px}.toolContent[data-v-ca595cae]:not(:last-child){margin-bottom:16px}.textArea[data-v-ca595cae]{background:white;color:#000}.textArea[data-v-27135f03]{background:white;color:#000}.charEditCardText[data-v-27135f03]{opacity:100;display:flex;flex-flow:row wrap;justify-content:space-evenly;align-items:flex-center}.charEditCardText>*[data-v-27135f03]{margin:0 8px 16px}input[data-v-27135f03]{border:1px solid white;color:#fff;font-size:2em;padding-left:8px}select[data-v-27135f03]{border:1px solid white;font-size:2em;padding-left:8px;line-height:40px;cursor:pointer;border-radius:5px}option[data-v-27135f03]{background:rgb(var(--v-theme-surface))}.mainCard.v-card[data-v-27135f03]{background-color:rgb(var(--v-theme-background))}.iconButton[data-v-27135f03]{cursor:pointer}.captain[data-v-27135f03]{color:#718fb7}.engineer[data-v-27135f03]{color:#d7ac60}.mechanic[data-v-27135f03]{color:#60c9d0}.securityofficer[data-v-27135f03]{color:#8d776a}.medicaldoctor[data-v-27135f03]{color:#b9472b}.assistant[data-v-27135f03]{color:#f8f8f8}.iconButton[data-v-59af5179]{cursor:pointer}input[data-v-59af5179]{border:1px solid white;width:100%}.toolTitle[data-v-59af5179]{font-weight:normal;font-size:1.1em;align-self:center;margin-left:12px}.toolContent[data-v-59af5179]:not(:last-child){margin-bottom:16px}.textArea[data-v-59af5179]{background:white;color:#000}.iconButton[data-v-9590118c]{cursor:pointer}.selectedSub[data-v-9590118c]{margin-top:5px;margin-right:5px;cursor:pointer}
diff --git a/assets/SaveTools.c735103f.js b/assets/SaveTools.8f9b5174.js
similarity index 52%
rename from assets/SaveTools.c735103f.js
rename to assets/SaveTools.8f9b5174.js
index 22096be..8a1a488 100644
--- a/assets/SaveTools.c735103f.js
+++ b/assets/SaveTools.8f9b5174.js
@@ -1,8 +1,8 @@
-var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,o)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,__spreadValues=(e,t)=>{for(var o in t||(t={}))__hasOwnProp.call(t,o)&&__defNormalProp(e,o,t[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(t))__propIsEnum.call(t,o)&&__defNormalProp(e,o,t[o]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));import{H as toFinite_1,_ as _Symbol,I as isSymbol_1,J as _root,K as toNumber_1,i as installAssets,f as VBtn,L as useStore,M as computed,N as ref,O as watch,o as openBlock,n as createBlock,w as withCtx,b as createVNode,P as createBaseVNode,p as normalizeClass,d as createTextVNode,t as toDisplayString,Q as pushScopeId,R as popScopeId,r as resolveComponent,S as mapGetters,y as lib,T as VIcon,l as VDialog,a as createElementBlock,F as Fragment,m as renderList,U as createCommentVNode,W as withDirectives,X as vModelText,Y as vModelSelect,Z as withModifiers}from"./vendor.d2dd6a75.js";import{i as isArray_1,V as VTextField,_ as _baseClone,a as VDivider,b as _sfc_main$6}from"./FileDropper.295cac68.js";import{V as VCardTitle,a as VCardHeader,b as VCard,c as VCardText,d as VCardActions,e as VCol,f as VRow,g as VContainer}from"./VRow.93776d3b.js";import{V as VSheet}from"./VSheet.36660dd1.js";import{d as desanitized_js2xml,g as gsHeader,C as CompressSub,a as CompressSave}from"./index.0cad470e.js";import{V as VSpacer,a as VTooltip}from"./VTooltip.c0af69e3.js";var toFinite=toFinite_1;function toInteger$1(e){var t=toFinite(e),o=t%1;return t==t?o?t-o:t:0}var toInteger_1=toInteger$1;function arrayMap$1(e,t){for(var o=-1,a=null==e?0:e.length,n=Array(a);++o=t?e:t)),e}var _baseClamp=baseClamp$1,baseClamp=_baseClamp,toNumber=toNumber_1;function clamp(e,t,o){return void 0===o&&(o=t,t=void 0),void 0!==o&&(o=(o=toNumber(o))==o?o:0),void 0!==t&&(t=(t=toNumber(t))==t?t:0),baseClamp(toNumber(e),t,o)}var clamp_1=clamp,CampaignSettings_vue_vue_type_style_index_0_scoped_true_lang="\n.iconButton[data-v-3af6cd4c] {\r\n cursor: pointer;\n}\ninput[data-v-3af6cd4c] {\r\n border: 1px solid white;\r\n width: 100%;\n}\n.toolTitle[data-v-3af6cd4c] {\r\n font-weight: normal;\r\n font-size: 1.1em;\r\n align-self: center;\r\n margin-left: 12px;\n}\n.toolContent[data-v-3af6cd4c]:not(:last-child) {\r\n margin-bottom: 16px;\n}\n.textArea[data-v-3af6cd4c] {\r\n background: white;\r\n color: black;\n}\r\n";const _sfc_main$5={setup:()=>({maxmissions:maxmissionsSetup(),radiation:radiationSetup(),difficulty:difficultySetup()})};function maxmissionsSetup(){const e=useStore(),t=computed((()=>e.getters.campaignSettings.attributes.MaxMissionCount)),o=ref(t.value),a=computed((()=>o.value!==t.value));function n(){parseInt(o.value)>=0?(e.getters.campaignSettings.attributes.MaxMissionCount=o.value,e.dispatch("showAlert",{type:"success",text:`最大任务数量设定为 "${o.value}".`})):e.dispatch("showAlert",{type:"info",text:"Value must be a positive number."})}return watch(t,(e=>{o.value=e})),{inputVal:o,isDifferent:a,click:n,keyUp:function(e){"Enter"===e.key&&n()}}}function radiationSetup(){const e=useStore(),t=computed((()=>"True"==e.getters.campaignSettings.attributes.RadiationEnabled));return{isEnabled:t,toggle:function(){let o=e.getters.campaign.elements.find((e=>"map"===e.name)),a=o.elements.find((e=>"Radiation"===e.name));if(t.value){e.getters.campaignSettings.attributes.RadiationEnabled="False",a.attributes.Enabled="False",a.attributes.Amount="-200";for(let e of o.elements.filter((e=>"location"==e.name)))e.attributes.turnsinradiation="0"}else e.getters.campaignSettings.attributes.RadiationEnabled="True",a.attributes.Enabled="True"}}}function difficultySetup(){const store=useStore(),avgDiff=computed((()=>{let e=store.getters.campaign.elements.find((e=>"map"==e.name)),t=0,o=0;for(let a of e.elements)if("connection"==a.name&&(o+=parseFloat(a.attributes.difficulty),t++),"connection"==a.name||"location"==a.name){if(!location.elements)continue;for(let e of location.elements)"Level"===e.name&&(o+=parseFloat(e.attributes.difficulty),t++)}return round_1(o/t,2)})),inputVal=ref("current * 2");function updateVal(element){var _a;let current=parseFloat(null==(_a=element.attributes)?void 0:_a.difficulty),newDiff;if(isNaN(current))return!1;try{newDiff=eval(inputVal.value)}catch(err){return!1}return!isNaN(newDiff)&&(element.attributes.difficulty=clamp_1(newDiff,0,100).toString(),!0)}function click(){let current=10,newDiff;if(isNaN(current))return;try{newDiff=eval(inputVal.value)}catch(err){return store.dispatch("showAlert",{type:"error",text:`Invalid input: "${err}".`})}if(isNaN(newDiff))return store.dispatch("showAlert",{type:"error",text:"输入无效:输出值为 NaN,请输入正确的数值."});let updatedCount=0;for(let e of store.getters.campaign.elements.find((e=>"map"==e.name)).elements)if("connection"==e.name&&updateVal(e)&&updatedCount++,"connection"==e.name||"location"==e.name)for(let t of e.elements)"Level"===t.name&&updateVal(t)&&updatedCount++;store.dispatch("showAlert",{type:"success",text:`难度更新为 ${updatedCount}.`})}function keyUp(e){"Enter"===e.key&&click()}return{inputVal:inputVal,avgDiff:avgDiff,click:click,keyUp:keyUp}}const _withScopeId$2=e=>(pushScopeId("data-v-3af6cd4c"),e=e(),popScopeId(),e),_hoisted_1$4=createTextVNode(" 战役设置 "),_hoisted_2$4={class:"toolContent d-flex flex-row justify-space-between align-center px-2"},_hoisted_3$4=createTextVNode(" 应用 "),_hoisted_4$4=_withScopeId$2((()=>createBaseVNode("h3",{class:"toolTitle"},"木星辐射",-1))),_hoisted_5$4={class:"toolContent d-flex flex-row justify-space-between px-2"},_hoisted_6$4=_withScopeId$2((()=>createBaseVNode("h3",{class:"toolTitle"},"难度",-1))),_hoisted_7$2={class:"toolContent d-flex flex-column px-2"},_hoisted_8$2={class:"mb-2"},_hoisted_9$2=createTextVNode(" 当前难度: "),_hoisted_10$2={class:"text-secondary"},_hoisted_11$2={class:"d-flex flex-row justify-space-between align-center"},_hoisted_12$2=createTextVNode(" 应用 ");function _sfc_render$5(e,t,o,a,n,r){const l=resolveComponent("v-card-title"),i=resolveComponent("v-card-header"),s=resolveComponent("v-text-field"),c=resolveComponent("v-btn"),d=resolveComponent("v-sheet"),u=resolveComponent("v-card");return openBlock(),createBlock(u,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(i,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_1$4])),_:1})])),_:1}),createVNode(d,{class:"d-flex flex-column align-center"},{default:withCtx((()=>[createBaseVNode("div",_hoisted_2$4,[createVNode(s,{"hide-details":"true",density:"comfortable",label:"最大任务数量",variant:"outlined",style:{color:"white","min-width":"140px"},modelValue:a.maxmissions.inputVal.value,"onUpdate:modelValue":t[0]||(t[0]=e=>a.maxmissions.inputVal.value=e),onKeyup:a.maxmissions.keyUp,class:normalizeClass(["mr-2 mb-0",{"text-secondary":a.maxmissions.isDifferent.value,"text-white":!a.maxmissions.isDifferent.value}])},null,8,["modelValue","onKeyup","class"]),createVNode(c,{variant:"outlined",disabled:!a.maxmissions.isDifferent.value,onClick:a.maxmissions.click,color:"secondary",class:"py-5"},{default:withCtx((()=>[_hoisted_3$4])),_:1},8,["disabled","onClick"])]),_hoisted_4$4,createBaseVNode("div",_hoisted_5$4,[createVNode(c,{variant:"outlined",disabled:!a.radiation.isEnabled.value,onClick:a.radiation.toggle,color:a.radiation.isEnabled.value?"secondary":"grey"},{default:withCtx((()=>[createTextVNode(toDisplayString((a.radiation.isEnabled.value,"禁用")),1)])),_:1},8,["disabled","onClick","color"]),createVNode(c,{variant:"outlined",disabled:a.radiation.isEnabled.value,onClick:a.radiation.toggle,color:a.radiation.isEnabled.value?"grey":"secondary"},{default:withCtx((()=>[createTextVNode(toDisplayString((a.radiation.isEnabled.value,"启用")),1)])),_:1},8,["disabled","onClick","color"])]),_hoisted_6$4,createBaseVNode("div",_hoisted_7$2,[createBaseVNode("div",_hoisted_8$2,[_hoisted_9$2,createBaseVNode("span",_hoisted_10$2,toDisplayString(a.difficulty.avgDiff),1)]),createBaseVNode("div",_hoisted_11$2,[createVNode(s,{"hide-details":"true",density:"comfortable",label:"新难度",variant:"outlined",style:{color:"white","min-width":"140px"},modelValue:a.difficulty.inputVal.value,"onUpdate:modelValue":t[1]||(t[1]=e=>a.difficulty.inputVal.value=e),onKeyup:a.difficulty.keyUp,class:"mr-2 mb-0 text-white"},null,8,["modelValue","onKeyup"]),createVNode(c,{variant:"outlined",onClick:a.difficulty.click,color:"secondary",class:"py-5"},{default:withCtx((()=>[_hoisted_12$2])),_:1},8,["onClick"])])])])),_:1})])),_:1})}
+var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,o)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,__spreadValues=(e,t)=>{for(var o in t||(t={}))__hasOwnProp.call(t,o)&&__defNormalProp(e,o,t[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(t))__propIsEnum.call(t,o)&&__defNormalProp(e,o,t[o]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));import{H as toFinite_1,_ as _Symbol,I as isSymbol_1,J as _root,K as toNumber_1,i as installAssets,f as VBtn,L as useStore,M as computed,N as ref,O as watch,o as openBlock,n as createBlock,w as withCtx,b as createVNode,P as createBaseVNode,p as normalizeClass,d as createTextVNode,t as toDisplayString,Q as pushScopeId,R as popScopeId,r as resolveComponent,S as mapGetters,y as lib,T as VIcon,l as VDialog,a as createElementBlock,F as Fragment,m as renderList,U as createCommentVNode,W as withDirectives,X as vModelText,Y as vModelSelect,Z as withModifiers}from"./vendor.6119329f.js";import{i as isArray_1,V as VTextField,_ as _baseClone,a as VDivider,b as _sfc_main$6}from"./FileDropper.73d1d497.js";import{V as VCardTitle,a as VCardHeader,b as VCard,c as VCardText,d as VCardActions,e as VCol,f as VRow,g as VContainer}from"./VRow.a47e2044.js";import{V as VSheet}from"./VSheet.bf08dac1.js";import{d as desanitized_js2xml,g as gsHeader,C as CompressSub,a as CompressSave}from"./index.40754ba3.js";import{V as VSpacer,a as VTooltip}from"./VTooltip.a2067bd7.js";var toFinite=toFinite_1;function toInteger$1(e){var t=toFinite(e),o=t%1;return t==t?o?t-o:t:0}var toInteger_1=toInteger$1;function arrayMap$1(e,t){for(var o=-1,a=null==e?0:e.length,n=Array(a);++o=t?e:t)),e}var _baseClamp=baseClamp$1,baseClamp=_baseClamp,toNumber=toNumber_1;function clamp(e,t,o){return void 0===o&&(o=t,t=void 0),void 0!==o&&(o=(o=toNumber(o))==o?o:0),void 0!==t&&(t=(t=toNumber(t))==t?t:0),baseClamp(toNumber(e),t,o)}var clamp_1=clamp,CampaignSettings_vue_vue_type_style_index_0_scoped_true_lang="\n.iconButton[data-v-ca595cae] {\n cursor: pointer;\n}\ninput[data-v-ca595cae] {\n border: 1px solid white;\n width: 100%;\n}\n.toolTitle[data-v-ca595cae] {\n font-weight: normal;\n font-size: 1.1em;\n align-self: center;\n margin-left: 12px;\n}\n.toolContent[data-v-ca595cae]:not(:last-child) {\n margin-bottom: 16px;\n}\n.textArea[data-v-ca595cae] {\n background: white;\n color: black;\n}\n";const _sfc_main$5={setup:()=>({maxmissions:maxmissionsSetup(),radiation:radiationSetup(),difficulty:difficultySetup()})};function maxmissionsSetup(){const e=useStore(),t=computed((()=>e.getters.campaignSettings.attributes.MaxMissionCount)),o=ref(t.value),a=computed((()=>o.value!==t.value));function n(){parseInt(o.value)>=0?(e.getters.campaignSettings.attributes.MaxMissionCount=o.value,e.dispatch("showAlert",{type:"success",text:`最大任务数量设定为 "${o.value}".`})):e.dispatch("showAlert",{type:"info",text:"Value must be a positive number."})}return watch(t,(e=>{o.value=e})),{inputVal:o,isDifferent:a,click:n,keyUp:function(e){"Enter"===e.key&&n()}}}function radiationSetup(){const e=useStore(),t=computed((()=>"True"==e.getters.campaignSettings.attributes.RadiationEnabled));return{isEnabled:t,toggle:function(){let o=e.getters.campaign.elements.find((e=>"map"===e.name)),a=o.elements.find((e=>"Radiation"===e.name));if(t.value){e.getters.campaignSettings.attributes.RadiationEnabled="False",a.attributes.Enabled="False",a.attributes.Amount="-200";for(let e of o.elements.filter((e=>"location"==e.name)))e.attributes.turnsinradiation="0"}else e.getters.campaignSettings.attributes.RadiationEnabled="True",a.attributes.Enabled="True"}}}function difficultySetup(){const store=useStore(),avgDiff=computed((()=>{let e=store.getters.campaign.elements.find((e=>"map"==e.name)),t=0,o=0;for(let a of e.elements)if("connection"==a.name&&(o+=parseFloat(a.attributes.difficulty),t++),"connection"==a.name||"location"==a.name){if(!location.elements)continue;for(let e of location.elements)"Level"===e.name&&(o+=parseFloat(e.attributes.difficulty),t++)}return round_1(o/t,2)})),inputVal=ref("current * 2");function updateVal(element){var _a;let current=parseFloat(null==(_a=element.attributes)?void 0:_a.difficulty),newDiff;if(isNaN(current))return!1;try{newDiff=eval(inputVal.value)}catch(err){return!1}return!isNaN(newDiff)&&(element.attributes.difficulty=clamp_1(newDiff,0,100).toString(),!0)}function click(){let current=10,newDiff;if(isNaN(current))return;try{newDiff=eval(inputVal.value)}catch(err){return store.dispatch("showAlert",{type:"error",text:`Invalid input: "${err}".`})}if(isNaN(newDiff))return store.dispatch("showAlert",{type:"error",text:"输入无效:输出值为 NaN,请输入正确的数值."});let updatedCount=0;for(let e of store.getters.campaign.elements.find((e=>"map"==e.name)).elements)if("connection"==e.name&&updateVal(e)&&updatedCount++,"connection"==e.name||"location"==e.name)for(let t of e.elements)"Level"===t.name&&updateVal(t)&&updatedCount++;store.dispatch("showAlert",{type:"success",text:`难度更新为 ${updatedCount}.`})}function keyUp(e){"Enter"===e.key&&click()}return{inputVal:inputVal,avgDiff:avgDiff,click:click,keyUp:keyUp}}const _withScopeId$2=e=>(pushScopeId("data-v-ca595cae"),e=e(),popScopeId(),e),_hoisted_1$4=createTextVNode(" 战役设置 "),_hoisted_2$4={class:"toolContent d-flex flex-row justify-space-between align-center px-2"},_hoisted_3$4=createTextVNode(" 应用 "),_hoisted_4$4=_withScopeId$2((()=>createBaseVNode("h3",{class:"toolTitle"},"木星辐射",-1))),_hoisted_5$4={class:"toolContent d-flex flex-row justify-space-between px-2"},_hoisted_6$4=_withScopeId$2((()=>createBaseVNode("h3",{class:"toolTitle"},"难度",-1))),_hoisted_7$2={class:"toolContent d-flex flex-column px-2"},_hoisted_8$2={class:"mb-2"},_hoisted_9$2=createTextVNode(" 当前难度: "),_hoisted_10$2={class:"text-secondary"},_hoisted_11$2={class:"d-flex flex-row justify-space-between align-center"},_hoisted_12$2=createTextVNode(" 应用 ");function _sfc_render$5(e,t,o,a,n,r){const l=resolveComponent("v-card-title"),i=resolveComponent("v-card-header"),s=resolveComponent("v-text-field"),c=resolveComponent("v-btn"),d=resolveComponent("v-sheet"),u=resolveComponent("v-card");return openBlock(),createBlock(u,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(i,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_1$4])),_:1})])),_:1}),createVNode(d,{class:"d-flex flex-column align-center"},{default:withCtx((()=>[createBaseVNode("div",_hoisted_2$4,[createVNode(s,{"hide-details":"true",density:"comfortable",label:"最大任务数量",variant:"outlined",style:{color:"white","min-width":"140px"},modelValue:a.maxmissions.inputVal.value,"onUpdate:modelValue":t[0]||(t[0]=e=>a.maxmissions.inputVal.value=e),onKeyup:a.maxmissions.keyUp,class:normalizeClass(["mr-2 mb-0",{"text-secondary":a.maxmissions.isDifferent.value,"text-white":!a.maxmissions.isDifferent.value}])},null,8,["modelValue","onKeyup","class"]),createVNode(c,{variant:"outlined",disabled:!a.maxmissions.isDifferent.value,onClick:a.maxmissions.click,color:"secondary",class:"py-5"},{default:withCtx((()=>[_hoisted_3$4])),_:1},8,["disabled","onClick"])]),_hoisted_4$4,createBaseVNode("div",_hoisted_5$4,[createVNode(c,{variant:"outlined",disabled:!a.radiation.isEnabled.value,onClick:a.radiation.toggle,color:a.radiation.isEnabled.value?"secondary":"grey"},{default:withCtx((()=>[createTextVNode(toDisplayString((a.radiation.isEnabled.value,"禁用")),1)])),_:1},8,["disabled","onClick","color"]),createVNode(c,{variant:"outlined",disabled:a.radiation.isEnabled.value,onClick:a.radiation.toggle,color:a.radiation.isEnabled.value?"grey":"secondary"},{default:withCtx((()=>[createTextVNode(toDisplayString((a.radiation.isEnabled.value,"启用")),1)])),_:1},8,["disabled","onClick","color"])]),_hoisted_6$4,createBaseVNode("div",_hoisted_7$2,[createBaseVNode("div",_hoisted_8$2,[_hoisted_9$2,createBaseVNode("span",_hoisted_10$2,toDisplayString(a.difficulty.avgDiff),1)]),createBaseVNode("div",_hoisted_11$2,[createVNode(s,{"hide-details":"true",density:"comfortable",label:"新难度",variant:"outlined",style:{color:"white","min-width":"140px"},modelValue:a.difficulty.inputVal.value,"onUpdate:modelValue":t[1]||(t[1]=e=>a.difficulty.inputVal.value=e),onKeyup:a.difficulty.keyUp,class:"mr-2 mb-0 text-white"},null,8,["modelValue","onKeyup"]),createVNode(c,{variant:"outlined",onClick:a.difficulty.click,color:"secondary",class:"py-5"},{default:withCtx((()=>[_hoisted_12$2])),_:1},8,["onClick"])])])])),_:1})])),_:1})}
/**!
* Sortable 1.14.0
* @author RubaXa
* @author owenm
* @license MIT
*/
-function ownKeys(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function _objectSpread2(e){for(var t=1;t=0||(n[o]=e[o]);return n}function _objectWithoutProperties(e,t){if(null==e)return{};var o,a,n=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}_sfc_main$5.render=_sfc_render$5,_sfc_main$5.__scopeId="data-v-3af6cd4c",installAssets(_sfc_main$5,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VTextField:VTextField,VBtn:VBtn,VSheet:VSheet,VCard:VCard});var version="1.14.0";function userAgent(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var IE11OrLess=userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Edge=userAgent(/Edge/i),FireFox=userAgent(/firefox/i),Safari=userAgent(/safari/i)&&!userAgent(/chrome/i)&&!userAgent(/android/i),IOS=userAgent(/iP(ad|od|hone)/i),ChromeForAndroid=userAgent(/chrome/i)&&userAgent(/android/i),captureMode={capture:!1,passive:!1};function on(e,t,o){e.addEventListener(t,o,!IE11OrLess&&captureMode)}function off(e,t,o){e.removeEventListener(t,o,!IE11OrLess&&captureMode)}function matches(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(o){return!1}return!1}}function getParentOrHost(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function closest(e,t,o,a){if(e){o=o||document;do{if(null!=t&&(">"===t[0]?e.parentNode===o&&matches(e,t):matches(e,t))||a&&e===o)return e;if(e===o)break}while(e=getParentOrHost(e))}return null}var R_SPACE=/\s+/g,_throttleTimeout;function toggleClass(e,t,o){if(e&&t)if(e.classList)e.classList[o?"add":"remove"](t);else{var a=(" "+e.className+" ").replace(R_SPACE," ").replace(" "+t+" "," ");e.className=(a+(o?" "+t:"")).replace(R_SPACE," ")}}function css(e,t,o){var a=e&&e.style;if(a){if(void 0===o)return document.defaultView&&document.defaultView.getComputedStyle?o=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(o=e.currentStyle),void 0===t?o:o[t];t in a||-1!==t.indexOf("webkit")||(t="-webkit-"+t),a[t]=o+("string"==typeof o?"":"px")}}function matrix(e,t){var o="";if("string"==typeof e)o=e;else do{var a=css(e,"transform");a&&"none"!==a&&(o=a+" "+o)}while(!t&&(e=e.parentNode));var n=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return n&&new n(o)}function find(e,t,o){if(e){var a=e.getElementsByTagName(t),n=0,r=a.length;if(o)for(;n=r:n<=r))return a;if(a===getWindowScrollingElement())break;a=getParentAutoScrollElement(a,!1)}return!1}function getChild(e,t,o,a){for(var n=0,r=0,l=e.children;r2&&void 0!==arguments[2]?arguments[2]:{},a=o.evt,n=_objectWithoutProperties(o,_excluded);PluginManager.pluginEvent.bind(Sortable)(e,t,_objectSpread2({dragEl:dragEl,parentEl:parentEl,ghostEl:ghostEl,rootEl:rootEl,nextEl:nextEl,lastDownEl:lastDownEl,cloneEl:cloneEl,cloneHidden:cloneHidden,dragStarted:moved,putSortable:putSortable,activeSortable:Sortable.active,originalEvent:a,oldIndex:oldIndex,oldDraggableIndex:oldDraggableIndex,newIndex:newIndex,newDraggableIndex:newDraggableIndex,hideGhostForTarget:_hideGhostForTarget,unhideGhostForTarget:_unhideGhostForTarget,cloneNowHidden:function(){cloneHidden=!0},cloneNowShown:function(){cloneHidden=!1},dispatchSortableEvent:function(e){_dispatchEvent({sortable:t,name:e,originalEvent:a})}},n))};function _dispatchEvent(e){dispatchEvent(_objectSpread2({putSortable:putSortable,cloneEl:cloneEl,targetEl:dragEl,rootEl:rootEl,oldIndex:oldIndex,oldDraggableIndex:oldDraggableIndex,newIndex:newIndex,newDraggableIndex:newDraggableIndex},e))}var dragEl,parentEl,ghostEl,rootEl,nextEl,lastDownEl,cloneEl,cloneHidden,oldIndex,newIndex,oldDraggableIndex,newDraggableIndex,activeGroup,putSortable,awaitingDragStarted=!1,ignoreNextClick=!1,sortables=[],tapEvt,touchEvt,lastDx,lastDy,tapDistanceLeft,tapDistanceTop,moved,lastTarget,lastDirection,pastFirstInvertThresh=!1,isCircumstantialInvert=!1,targetMoveDistance,ghostRelativeParent,ghostRelativeParentInitialScroll=[],_silent=!1,savedInputChecked=[],documentExists="undefined"!=typeof document,PositionGhostAbsolutely=IOS,CSSFloatProperty=Edge||IE11OrLess?"cssFloat":"float",supportDraggable=documentExists&&!ChromeForAndroid&&!IOS&&"draggable"in document.createElement("div"),supportCssPointerEvents=function(){if(documentExists){if(IE11OrLess)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),_detectDirection=function(e,t){var o=css(e),a=parseInt(o.width)-parseInt(o.paddingLeft)-parseInt(o.paddingRight)-parseInt(o.borderLeftWidth)-parseInt(o.borderRightWidth),n=getChild(e,0,t),r=getChild(e,1,t),l=n&&css(n),i=r&&css(r),s=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+getRect(n).width,c=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+getRect(r).width;if("flex"===o.display)return"column"===o.flexDirection||"column-reverse"===o.flexDirection?"vertical":"horizontal";if("grid"===o.display)return o.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(n&&l.float&&"none"!==l.float){var d="left"===l.float?"left":"right";return!r||"both"!==i.clear&&i.clear!==d?"horizontal":"vertical"}return n&&("block"===l.display||"flex"===l.display||"table"===l.display||"grid"===l.display||s>=a&&"none"===o[CSSFloatProperty]||r&&"none"===o[CSSFloatProperty]&&s+c>a)?"vertical":"horizontal"},_dragElInRowColumn=function(e,t,o){var a=o?e.left:e.top,n=o?e.right:e.bottom,r=o?e.width:e.height,l=o?t.left:t.top,i=o?t.right:t.bottom,s=o?t.width:t.height;return a===l||n===i||a+r/2===l+s/2},_detectNearestEmptySortable=function(e,t){var o;return sortables.some((function(a){var n=a[expando].options.emptyInsertThreshold;if(n&&!lastChild(a)){var r=getRect(a),l=e>=r.left-n&&e<=r.right+n,i=t>=r.top-n&&t<=r.bottom+n;return l&&i?o=a:void 0}})),o},_prepareGroup=function(e){function t(e,o){return function(a,n,r,l){var i=a.options.group.name&&n.options.group.name&&a.options.group.name===n.options.group.name;if(null==e&&(o||i))return!0;if(null==e||!1===e)return!1;if(o&&"clone"===e)return e;if("function"==typeof e)return t(e(a,n,r,l),o)(a,n,r,l);var s=(o?a:n).options.group.name;return!0===e||"string"==typeof e&&e===s||e.join&&e.indexOf(s)>-1}}var o={},a=e.group;a&&"object"==_typeof(a)||(a={name:a}),o.name=a.name,o.checkPull=t(a.pull,!0),o.checkPut=t(a.put),o.revertClone=a.revertClone,e.group=o},_hideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css(ghostEl,"display","none")},_unhideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css(ghostEl,"display","")};documentExists&&document.addEventListener("click",(function(e){if(ignoreNextClick)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),ignoreNextClick=!1,!1}),!0);var nearestEmptyInsertDetectEvent=function(e){if(dragEl){e=e.touches?e.touches[0]:e;var t=_detectNearestEmptySortable(e.clientX,e.clientY);if(t){var o={};for(var a in e)e.hasOwnProperty(a)&&(o[a]=e[a]);o.target=o.rootEl=t,o.preventDefault=void 0,o.stopPropagation=void 0,t[expando]._onDragOver(o)}}},_checkOutsideTargetEl=function(e){dragEl&&dragEl.parentNode[expando]._isOutsideThisEl(e.target)};function Sortable(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=_extends({},t),e[expando]=this;var o={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return _detectDirection(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Sortable.supportPointer&&"PointerEvent"in window&&!Safari,emptyInsertThreshold:5};for(var a in PluginManager.initializePlugins(this,e,o),o)!(a in t)&&(t[a]=o[a]);for(var n in _prepareGroup(t),this)"_"===n.charAt(0)&&"function"==typeof this[n]&&(this[n]=this[n].bind(this));this.nativeDraggable=!t.forceFallback&&supportDraggable,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?on(e,"pointerdown",this._onTapStart):(on(e,"mousedown",this._onTapStart),on(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(on(e,"dragover",this),on(e,"dragenter",this)),sortables.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),_extends(this,AnimationStateManager())}function _globalDragOver(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}function _onMove(e,t,o,a,n,r,l,i){var s,c,d=e[expando],u=d.options.onMove;return!window.CustomEvent||IE11OrLess||Edge?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=o,s.draggedRect=a,s.related=n||t,s.relatedRect=r||getRect(t),s.willInsertAfter=i,s.originalEvent=l,e.dispatchEvent(s),u&&(c=u.call(d,s,l)),c}function _disableDraggable(e){e.draggable=!1}function _unsilent(){_silent=!1}function _ghostIsFirst(e,t,o){var a=getRect(getChild(o.el,0,o.options,!0));return t?e.clientXa.right+10||e.clientX<=a.right&&e.clientY>a.bottom&&e.clientX>=a.left:e.clientX>a.right&&e.clientY>a.top||e.clientX<=a.right&&e.clientY>a.bottom+10}function _getSwapDirection(e,t,o,a,n,r,l,i){var s=a?e.clientY:e.clientX,c=a?o.height:o.width,d=a?o.top:o.left,u=a?o.bottom:o.right,h=!1;if(!l)if(i&&targetMoveDistanced+c*r/2:su-targetMoveDistance)return-lastDirection}else if(s>d+c*(1-n)/2&&su-c*r/2)?s>d+c/2?1:-1:0}function _getInsertDirection(e){return index(dragEl)=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){dragEl&&_disableDraggable(dragEl),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;off(e,"mouseup",this._disableDelayedDrag),off(e,"touchend",this._disableDelayedDrag),off(e,"touchcancel",this._disableDelayedDrag),off(e,"mousemove",this._delayedDragTouchMoveHandler),off(e,"touchmove",this._delayedDragTouchMoveHandler),off(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?on(document,"pointermove",this._onTouchMove):on(document,t?"touchmove":"mousemove",this._onTouchMove):(on(dragEl,"dragend",this),on(rootEl,"dragstart",this._onDragStart));try{document.selection?_nextTick((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(o){}},_dragStarted:function(e,t){if(awaitingDragStarted=!1,rootEl&&dragEl){pluginEvent("dragStarted",this,{evt:t}),this.nativeDraggable&&on(document,"dragover",_checkOutsideTargetEl);var o=this.options;!e&&toggleClass(dragEl,o.dragClass,!1),toggleClass(dragEl,o.ghostClass,!0),Sortable.active=this,e&&this._appendGhost(),_dispatchEvent({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(touchEvt){this._lastX=touchEvt.clientX,this._lastY=touchEvt.clientY,_hideGhostForTarget();for(var e=document.elementFromPoint(touchEvt.clientX,touchEvt.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(touchEvt.clientX,touchEvt.clientY))!==t;)t=e;if(dragEl.parentNode[expando]._isOutsideThisEl(e),t)do{if(t[expando]){if(t[expando]._onDragOver({clientX:touchEvt.clientX,clientY:touchEvt.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);_unhideGhostForTarget()}},_onTouchMove:function(e){if(tapEvt){var t=this.options,o=t.fallbackTolerance,a=t.fallbackOffset,n=e.touches?e.touches[0]:e,r=ghostEl&&matrix(ghostEl,!0),l=ghostEl&&r&&r.a,i=ghostEl&&r&&r.d,s=PositionGhostAbsolutely&&ghostRelativeParent&&getRelativeScrollOffset(ghostRelativeParent),c=(n.clientX-tapEvt.clientX+a.x)/(l||1)+(s?s[0]-ghostRelativeParentInitialScroll[0]:0)/(l||1),d=(n.clientY-tapEvt.clientY+a.y)/(i||1)+(s?s[1]-ghostRelativeParentInitialScroll[1]:0)/(i||1);if(!Sortable.active&&!awaitingDragStarted){if(o&&Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))=0&&(_dispatchEvent({rootEl:parentEl,name:"add",toEl:parentEl,fromEl:rootEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"remove",toEl:parentEl,originalEvent:e}),_dispatchEvent({rootEl:parentEl,name:"sort",toEl:parentEl,fromEl:rootEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"sort",toEl:parentEl,originalEvent:e})),putSortable&&putSortable.save()):newIndex!==oldIndex&&newIndex>=0&&(_dispatchEvent({sortable:this,name:"update",toEl:parentEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"sort",toEl:parentEl,originalEvent:e})),Sortable.active&&(null!=newIndex&&-1!==newIndex||(newIndex=oldIndex,newDraggableIndex=oldDraggableIndex),_dispatchEvent({sortable:this,name:"end",toEl:parentEl,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){pluginEvent("nulling",this),rootEl=dragEl=parentEl=ghostEl=nextEl=cloneEl=lastDownEl=cloneHidden=tapEvt=touchEvt=moved=newIndex=newDraggableIndex=oldIndex=oldDraggableIndex=lastTarget=lastDirection=putSortable=activeGroup=Sortable.dragged=Sortable.ghost=Sortable.clone=Sortable.active=null,savedInputChecked.forEach((function(e){e.checked=!0})),savedInputChecked.length=lastDx=lastDy=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":dragEl&&(this._onDragOver(e),_globalDragOver(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],o=this.el.children,a=0,n=o.length,r=this.options;a *[data-v-a81c326a] {\r\n margin: 0 8px;\r\n margin-bottom: 16px;\n}\ninput[data-v-a81c326a] {\r\n border: 1px solid white;\r\n color: white;\r\n font-size: 2em;\r\n padding-left: 8px;\n}\nselect[data-v-a81c326a] {\r\n border: 1px solid white;\r\n font-size: 2em;\r\n padding-left: 8px;\r\n line-height: 40px;\r\n cursor: pointer;\r\n border-radius: 5px;\n}\noption[data-v-a81c326a] {\r\n background: rgb(var(--v-theme-surface));\n}\n.mainCard.v-card[data-v-a81c326a] {\r\n background-color: rgb(var(--v-theme-background));\n}\n.iconButton[data-v-a81c326a] {\r\n cursor: pointer;\n}\n.captain[data-v-a81c326a] {\r\n color: #718fb7;\n}\n.engineer[data-v-a81c326a] {\r\n color: #d7ac60;\n}\n.mechanic[data-v-a81c326a] {\r\n color: #60c9d0;\n}\n.securityofficer[data-v-a81c326a] {\r\n color: #8d776a;\n}\n.medicaldoctor[data-v-a81c326a] {\r\n color: #b9472b;\n}\n.assistant[data-v-a81c326a] {\r\n color: #f8f8f8;\n}\r\n";const _sfc_main$4={data:()=>({addCharDialog:!1,addCharDialogVal:"",editDialog:!1,showTextarea:!1,textAreaVal:"",color:{captain:"#718fb7",engineer:"#d7ac60",mechanic:"#60c9d0",securityofficer:"#8d776a",medicaldoctor:"#b9472b",assistant:"#f8f8f8"},selectedChar:null,charClone:null}),computed:__spreadProps(__spreadValues({},mapGetters(["isMultiPlayer"])),{crewList(){return this.$store.getters.campaign.elements.find((e=>this.isMultiPlayer?"bots"==e.name:"crew"==e.name))},characterArray(){return this.crewList.elements.filter((e=>"Character"===e.name))},cloneJob(){return this.charClone?this.charClone.elements.find((e=>"job"==e.name)):{}},canExportPlayers(){return this.$store.state.playerCharacters.length>0}}),methods:{hashWrapper:e=>sum$1(e),editChar(e){this.selectedChar=e,this.charClone=cloneDeep_1(e),this.editDialog=!0},editDialogClose(){if(this.showTextarea)return this.showTextarea=!1,void(this.textAreaVal="");this.editDialog=!1,this.selectedChar=null,this.charClone=null},editDialogSave(){if(this.showTextarea){let e,o=this.textAreaVal;try{e=lib.xml2js(o).elements[0]}catch(t){return console.warn(t),void this.$store.dispatch("showAlert",{type:"error",text:`XML parser fail: ${t.message}`})}return e.attributes.name?(this.charClone=e,this.$store.dispatch("showAlert",{type:"success",text:`Loaded ${this.charClone.attributes.name} xml changes.`}),void(this.showTextarea=!1)):void this.$store.dispatch("showAlert",{type:"error",text:"Failed to read character name - file may be invalid or corrupted"})}this.editDialog=!1,this.charClone.attributes.name===this.selectedChar.attributes.name||this.charClone.attributes.originalname||(this.charClone.attributes.originalname=this.selectedChar.attributes.name);let e=this.crewList.elements.indexOf(this.selectedChar);this.crewList.elements[e]=this.charClone,this.selectedChar=null,this.$store.dispatch("showAlert",{type:"success",text:`Modified character ${this.charClone.attributes.name}`}),this.charClone=null},deleteChar(e){let t=this.crewList.elements.indexOf(e);if(-1==t)return console.error("faled to delete - element not found");this.crewList.elements.splice(t,1),this.$store.dispatch("showAlert",{type:"success",text:`已删除 ${e.attributes.name} 船员.`})},async copyChar(){let e=desanitized_js2xml({elements:[this.charClone]},{spaces:4});await navigator.clipboard.writeText(e),this.$store.dispatch("showAlert",{type:"success",text:`Copied ${this.charClone.attributes.name} to system clipboard.`})},async pasteChar(){let e,t=await navigator.clipboard.readText();try{e=lib.xml2js(t).elements[0]}catch(o){return console.warn(o),void this.$store.dispatch("showAlert",{type:"error",text:`XML parser fail: ${o.message}`})}e.attributes.name?(this.charClone=e,this.$store.dispatch("showAlert",{type:"success",text:`Pasted ${this.charClone.attributes.name} from system clipboard.`})):this.$store.dispatch("showAlert",{type:"error",text:"Failed to read character name - file may be invalid or corrupted"})},rawEditChar(){this.textAreaVal=desanitized_js2xml({elements:[this.charClone]},{spaces:4}),this.showTextarea=!0},addNew(){let e={type:"element",name:"Character",attributes:{name:"New Assistant",originalname:"New Assistant",speciesname:"human",gender:"female",race:"Asian",salary:"2137",headspriteid:"6",hairindex:"2",beardindex:"0",moustacheindex:"0",faceattachmentindex:"0",startitemsgiven:"false",ragdoll:"",personality:"Crazy"},elements:[{type:"element",name:"job",attributes:{name:"Assistant",identifier:"assistant"},elements:[{type:"element",name:"skill",attributes:{identifier:"weapons",level:"20"}},{type:"element",name:"skill",attributes:{identifier:"mechanical",level:"20"}},{type:"element",name:"skill",attributes:{identifier:"electrical",level:"20"}},{type:"element",name:"skill",attributes:{identifier:"medical",level:"20"}},{type:"element",name:"skill",attributes:{identifier:"helm",level:"20"}}]},{type:"element",name:"inventory",elements:[]},{type:"element",name:"health",elements:[{type:"element",name:"LimbHealth",attributes:{i:"0"}},{type:"element",name:"LimbHealth",attributes:{i:"1"}},{type:"element",name:"LimbHealth",attributes:{i:"2"}},{type:"element",name:"LimbHealth",attributes:{i:"3"}},{type:"element",name:"LimbHealth",attributes:{i:"4"}},{type:"element",name:"LimbHealth",attributes:{i:"5"}}]},{type:"element",name:"orders"}]};for(var t=1,o="New Assistant";this.characterArray.find((e=>{var t;return null==(t=e.attributes.originalname)?void 0:t.startsWith(o)}));)o="New Assistant"+t++,e.attributes.originalname=o;this.crewList.elements.unshift(e)},addFromXml(e){let t;try{t=lib.xml2js(e).elements[0]}catch(o){return console.warn(o),this.$store.dispatch("showAlert",{type:"error",text:`XML parser fail: ${o.message}`}),!1}return t.attributes.name?(this.crewList.elements.unshift(t),this.$store.dispatch("showAlert",{type:"success",text:`Added new character: ${t.attributes.name}.`}),!0):(this.$store.dispatch("showAlert",{type:"error",text:"Failed to read character name - file may be invalid or corrupted"}),!1)},async addFromClip(){let e=await navigator.clipboard.readText();this.addFromXml(e)},addFromInput(){this.addFromXml(this.addCharDialogVal)&&(this.addCharDialog=!1,this.addCharDialogVal="")},exportPlayers(){var e;let t=0,o=lib.xml2js("").elements[0];o.elements=[];for(let r of this.characterArray){let a=null!=(e=r.attributes.originalname)?e:r.attributes.name,n=this.$store.state.playerCharacters.find((e=>e.name==a));if(!n)continue;let l=cloneDeep_1(r),i=lib.xml2js(``).elements[0];i.elements=[];let s=l.elements.splice(l.elements.findIndex((e=>"inventory"==e.name)),1)[0],c=l.elements.splice(l.elements.findIndex((e=>"health"==e.name)),1)[0];i.elements.push(l),i.elements.push(s),i.elements.push(c),o.elements.push(i),t++}if(!t)return this.$store.dispatch("showAlert",{type:"info",text:"Could not match any of the crew characters with their CharacterCampaignData"});let a=gsHeader+desanitized_js2xml({elements:[o]},{spaces:4}),n=document.createElement("a");n.href=URL.createObjectURL(new Blob([a],{type:"application/xml"})),n.download=this.$store.state.savefileName.slice(0,-5)+"_CharacterData.xml",n.click(),this.$store.dispatch("showAlert",{type:"success",text:`Exported and prompted to download ${t} player characters`})}},mounted(){var e=document.getElementById("crewListWrapper");Sortable.create(e,{animation:150,handle:".grabHandle",onSort:e=>{const t=this.characterArray[e.oldIndex],o=this.crewList.elements.indexOf(t),a=this.crewList.elements.indexOf(this.characterArray[e.newIndex]);this.crewList.elements.splice(o,1),this.crewList.elements.splice(a,0,t)}})}},_withScopeId$1=e=>(pushScopeId("data-v-a81c326a"),e=e(),popScopeId(),e),_hoisted_1$3={class:"name"},_hoisted_2$3=createTextVNode("mdi-drag-horizontal-variant"),_hoisted_3$3=createTextVNode(" mdi-file-edit-outline "),_hoisted_4$3=createTextVNode(" mdi-delete-outline "),_hoisted_5$3=createTextVNode("mdi-file-download-outline"),_hoisted_6$3=_withScopeId$1((()=>createBaseVNode("div",{class:"pt-1"},"添加:",-1))),_hoisted_7$1=createTextVNode("mdi-account-plus-outline"),_hoisted_8$1=createTextVNode("mdi-account-edit-outline"),_hoisted_9$1=_withScopeId$1((()=>createBaseVNode("span",{class:"text-h5"},"Add character from xml",-1))),_hoisted_10$1=createTextVNode(" Cancel "),_hoisted_11$1=createTextVNode(" Add "),_hoisted_12$1=createTextVNode("mdi-clipboard-arrow-up-outline"),_hoisted_13$1={class:"text-h4"},_hoisted_14$1=createTextVNode("Editing "),_hoisted_15$1={class:"text-black"},_hoisted_16$1=_withScopeId$1((()=>createBaseVNode("span",{class:"text-h4"},"General",-1))),_hoisted_17$1=_withScopeId$1((()=>createBaseVNode("div",{class:"text-h5"},"Raw xml:",-1))),_hoisted_18$1=createTextVNode("mdi-clipboard-arrow-down-outline"),_hoisted_19$1=createTextVNode("mdi-clipboard-arrow-up-outline"),_hoisted_20$1=createTextVNode("mdi-file-edit-outline"),_hoisted_21$1=_withScopeId$1((()=>createBaseVNode("span",{class:"text-h4"},"Job & Skills",-1))),_hoisted_22$1=_withScopeId$1((()=>createBaseVNode("div",{class:"text-h5"},"Job:",-1))),_hoisted_23$1=_withScopeId$1((()=>createBaseVNode("option",{class:"captain",value:"captain"},"Captain",-1))),_hoisted_24$1=_withScopeId$1((()=>createBaseVNode("option",{class:"securityofficer",value:"securityofficer"},"Security Officer",-1))),_hoisted_25$1=_withScopeId$1((()=>createBaseVNode("option",{class:"medicaldoctor",value:"medicaldoctor"},"Medical Doctor",-1))),_hoisted_26$1=_withScopeId$1((()=>createBaseVNode("option",{class:"engineer",value:"engineer"},"Engineer",-1))),_hoisted_27$1=_withScopeId$1((()=>createBaseVNode("option",{class:"mechanic",value:"mechanic"},"Mechanic",-1))),_hoisted_28=_withScopeId$1((()=>createBaseVNode("option",{class:"assistant",value:"assistant"},"Assistant",-1))),_hoisted_29=[_hoisted_23$1,_hoisted_24$1,_hoisted_25$1,_hoisted_26$1,_hoisted_27$1,_hoisted_28],_hoisted_30=_withScopeId$1((()=>createBaseVNode("div",{class:"text-h5"},"Skills",-1))),_hoisted_31=["onUpdate:modelValue"],_hoisted_32=createTextVNode(" Cancel "),_hoisted_33=createTextVNode(" Save ");function _sfc_render$4(e,t,o,a,n,r){const l=resolveComponent("v-card-title"),i=resolveComponent("v-card-header"),s=resolveComponent("v-spacer"),c=resolveComponent("v-icon"),d=resolveComponent("v-sheet"),u=resolveComponent("v-btn"),h=resolveComponent("v-card-text"),p=resolveComponent("v-card-actions"),f=resolveComponent("v-card"),m=resolveComponent("v-dialog"),g=resolveComponent("v-text-field"),v=resolveComponent("v-col"),_=resolveComponent("v-row");return openBlock(),createElementBlock(Fragment,null,[createVNode(f,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(i,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[createTextVNode(toDisplayString(e.isMultiPlayer?"Hired Bots":"拥有的船员"),1)])),_:1})])),_:1}),createVNode(d,{class:"mb-2",id:"crewListWrapper"},{default:withCtx((()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.characterArray,(e=>(openBlock(),createBlock(d,{key:r.hashWrapper(e.attributes),class:normalizeClass(`d-flex flex-row justify-center px-4 ${e.elements.find((e=>"job"==e.name)).attributes.identifier}`)},{default:withCtx((()=>[createBaseVNode("div",_hoisted_1$3,toDisplayString(e.attributes.name),1),createVNode(s),createVNode(c,{style:{cursor:"grabbing"},class:"grabHandle",color:"secondary"},{default:withCtx((()=>[_hoisted_2$3])),_:1}),createVNode(c,{title:"编辑船员",color:"secondary",class:"iconButton",onClick:t=>r.editChar(e)},{default:withCtx((()=>[_hoisted_3$3])),_:2},1032,["onClick"]),createVNode(c,{title:"删除船员",color:"red",class:"iconButton",onClick:t=>r.deleteChar(e)},{default:withCtx((()=>[_hoisted_4$3])),_:2},1032,["onClick"])])),_:2},1032,["class"])))),128))])),_:1}),createVNode(d,{class:"d-flex flex-row align-center pl-4 pr-2"},{default:withCtx((()=>[r.canExportPlayers?(openBlock(),createBlock(u,{key:0,title:"Export player characters",icon:"",size:"x-small",onClick:r.exportPlayers},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_5$3])),_:1})])),_:1},8,["onClick"])):createCommentVNode("",!0),_hoisted_6$3,createVNode(s),createVNode(u,{title:"Add new assistant character",icon:"",size:"x-small",onClick:r.addNew},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_7$1])),_:1})])),_:1},8,["onClick"]),createVNode(u,{title:"Add character from xml",icon:"",size:"x-small",onClick:t[3]||(t[3]=e=>n.addCharDialog=!0)},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_8$1])),_:1}),createVNode(m,{class:"editCharacter",modelValue:n.addCharDialog,"onUpdate:modelValue":t[2]||(t[2]=e=>n.addCharDialog=e)},{default:withCtx((()=>[createVNode(f,{class:"d-flex flex-column",style:{width:"100%",height:"100%"}},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_9$1])),_:1}),createVNode(h,{class:"d-flex flex-grow-1"},{default:withCtx((()=>[withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":t[0]||(t[0]=e=>n.addCharDialogVal=e),spellcheck:"false",class:"textArea d-flex px-2 flex-grow-1"},null,512),[[vModelText,n.addCharDialogVal]])])),_:1}),createVNode(p,{style:{flex:"0 1 auto"}},{default:withCtx((()=>[createVNode(s),createVNode(u,{color:"red darken-1",text:"",onClick:t[1]||(t[1]=e=>n.addCharDialog=!1)},{default:withCtx((()=>[_hoisted_10$1])),_:1}),createVNode(u,{color:"green darken-1",text:"",onClick:r.addFromInput},{default:withCtx((()=>[_hoisted_11$1])),_:1},8,["onClick"])])),_:1})])),_:1})])),_:1},8,["modelValue"])])),_:1}),createVNode(u,{title:"Paste character xml from clipboard",icon:"",size:"x-small",onClick:r.addFromClip},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_12$1])),_:1})])),_:1},8,["onClick"])])),_:1})])),_:1}),createVNode(m,{persistent:"",class:"editCharacter",modelValue:n.editDialog,"onUpdate:modelValue":t[9]||(t[9]=e=>n.editDialog=e),fullscreen:""},{default:withCtx((()=>[createVNode(f,{class:"d-flex flex-column mainCard",style:{width:"100%",height:"100%"}},{default:withCtx((()=>[createVNode(l,{style:{"background-color":"rgb(var(--v-theme-primary))"}},{default:withCtx((()=>{var e,t;return[createBaseVNode("span",_hoisted_13$1,[_hoisted_14$1,createBaseVNode("span",_hoisted_15$1,toDisplayString(null==(t=null==(e=n.charClone)?void 0:e.attributes)?void 0:t.name),1)])]})),_:1}),n.charClone?(openBlock(),createBlock(h,{key:0,class:"d-flex flex-grow-1"},{default:withCtx((()=>[n.showTextarea?withDirectives((openBlock(),createElementBlock("textarea",{key:1,"onUpdate:modelValue":t[6]||(t[6]=e=>n.textAreaVal=e),spellcheck:"false",class:"textArea d-flex px-2 flex-grow-1"},null,512)),[[vModelText,n.textAreaVal]]):(openBlock(),createBlock(_,{key:0},{default:withCtx((()=>[createVNode(v,null,{default:withCtx((()=>[createVNode(f,{elevation:"1"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_16$1])),_:1}),createVNode(h,{class:"charEditCardText"},{default:withCtx((()=>[createBaseVNode("div",null,[createVNode(g,{label:"Name",variant:"outlined",style:{color:"white","min-width":"200px"},class:"mb-4 mt-3",type:"text",modelValue:n.charClone.attributes.name,"onUpdate:modelValue":t[4]||(t[4]=e=>n.charClone.attributes.name=e)},null,8,["modelValue"])]),createBaseVNode("div",null,[_hoisted_17$1,createVNode(u,{title:"Copy character xml to clipboard",size:"x-small",icon:"",onClick:r.copyChar},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_18$1])),_:1})])),_:1},8,["onClick"]),createVNode(u,{title:"Paste character xml from clipboard",size:"x-small",icon:"",onClick:r.pasteChar},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_19$1])),_:1})])),_:1},8,["onClick"]),createVNode(u,{title:"Edit raw xml",size:"x-small",icon:"",onClick:r.rawEditChar},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_20$1])),_:1})])),_:1},8,["onClick"])])])),_:1})])),_:1})])),_:1}),createVNode(v,null,{default:withCtx((()=>[createVNode(f,{elevation:"1"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_21$1])),_:1}),createVNode(h,{class:"charEditCardText"},{default:withCtx((()=>[createBaseVNode("div",null,[_hoisted_22$1,withDirectives(createBaseVNode("select",{class:normalizeClass(r.cloneJob.attributes.identifier),"onUpdate:modelValue":t[5]||(t[5]=e=>r.cloneJob.attributes.identifier=e)},_hoisted_29,2),[[vModelSelect,r.cloneJob.attributes.identifier]])]),createBaseVNode("div",null,[_hoisted_30,createBaseVNode("div",null,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.cloneJob.elements,(e=>(openBlock(),createElementBlock("div",{key:e.attributes.identifier},[createBaseVNode("div",null,toDisplayString(e.attributes.identifier),1),withDirectives(createBaseVNode("input",{type:"number",min:"0",max:"100",style:{width:"6em"},"onUpdate:modelValue":t=>e.attributes.level=t},null,8,_hoisted_31),[[vModelText,e.attributes.level]])])))),128))])])])),_:1})])),_:1})])),_:1})])),_:1}))])),_:1})):createCommentVNode("",!0),createVNode(p,{style:{flex:"0 1 auto"}},{default:withCtx((()=>[createVNode(s),createVNode(u,{color:"red darken-1",text:"",onClick:t[7]||(t[7]=e=>r.editDialogClose())},{default:withCtx((()=>[_hoisted_32])),_:1}),createVNode(u,{color:"green darken-1",text:"",onClick:t[8]||(t[8]=e=>r.editDialogSave())},{default:withCtx((()=>[_hoisted_33])),_:1})])),_:1})])),_:1})])),_:1},8,["modelValue"])],64)}_sfc_main$4.render=_sfc_render$4,_sfc_main$4.__scopeId="data-v-a81c326a",installAssets(_sfc_main$4,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VSpacer:VSpacer,VIcon:VIcon,VSheet:VSheet,VBtn:VBtn,VCardText:VCardText,VCardActions:VCardActions,VCard:VCard,VDialog:VDialog,VTextField:VTextField,VCol:VCol,VRow:VRow});var MiscSaveTools_vue_vue_type_style_index_0_scoped_true_lang="\n.iconButton[data-v-a3f6e3d2] {\r\n cursor: pointer;\n}\ninput[data-v-a3f6e3d2] {\r\n border: 1px solid white;\r\n width: 100%;\n}\n.toolTitle[data-v-a3f6e3d2] {\r\n font-weight: normal;\r\n font-size: 1.1em;\r\n align-self: center;\r\n margin-left: 12px;\n}\n.toolContent[data-v-a3f6e3d2]:not(:last-child) {\r\n margin-bottom: 16px;\n}\n.textArea[data-v-a3f6e3d2] {\r\n background: white;\r\n color: black;\n}\r\n";const _sfc_main$3={setup(){const e=useStore();return{isMP:computed((()=>e.getters.isMultiPlayer)),campaignId:campaignIdSetup(),convert:convertSetup(),gameses:gamesesSetup(),money:moneySetup()}}};function moneySetup(){const e=useStore(),t=computed((()=>e.getters.campaign.attributes.money)),o=ref(t.value),a=computed((()=>o.value!==t.value));function n(){parseInt(o.value)>=0?(e.getters.campaign.attributes.money=o.value,e.dispatch("showAlert",{type:"success",text:`Set current money to "${o.value}".`})):e.dispatch("showAlert",{type:"info",text:"Value must be a positive number."})}return watch(t,(e=>{o.value=e})),{inputVal:o,isDifferent:a,click:n,keyUp:function(e){"Enter"===e.key&&n()}}}function campaignIdSetup(){const e=useStore(),t=computed((()=>{var t,o,a;return(null==(a=null==(o=null==(t=e.state.gamesession.elements)?void 0:t[0])?void 0:o.attributes)?void 0:a.campaignid)||"-1"})),o=ref(t.value),a=computed((()=>o.value!==t.value));function n(){""!=o.value?(e.state.gamesession.elements[0].attributes.campaignid=o.value,e.dispatch("showAlert",{type:"success",text:`Set campaign ID to "${o.value}".`})):e.dispatch("showAlert",{type:"info",text:"ID can't be empty."})}return watch(t,(e=>{o.value=e})),{inputVal:o,isDifferent:a,click:n,keyUp:function(e){"Enter"===e.key&&n()}}}function gamesesSetup(){const e=useStore(),t=ref(!1),o=ref("");return{download:function(){let t=gsHeader+desanitized_js2xml(e.state.gamesession),o=document.createElement("a");o.href=URL.createObjectURL(new Blob([t],{type:"application/xml"})),o.download="gamesession.xml",o.click()},edit:function(){t.value=!0,o.value=gsHeader+desanitized_js2xml(e.state.gamesession,{spaces:4})},dialog:t,xmlString:o,saveChanges:function(){var t,a,n;let r;try{r=lib.xml2js(o.value.substring(gsHeader.length))}catch(l){return console.warn(l),void e.dispatch("showAlert",{type:"error",text:`XML parser fail: ${l.message}`})}(null==(n=null==(a=null==(t=r.elements)?void 0:t[0])?void 0:a.elements)?void 0:n.find((e=>"MultiPlayerCampaign"===e.name||"SinglePlayerCampaign"===e.name)))?(e.commit("SET_GAMESESSION",r),e.dispatch("showAlert",{type:"success",text:'Updated "gamesession.xml".'})):(console.warn("Failed to find campaign element in new gamesession - aborting"),e.dispatch("showAlert",{type:"error",text:"Campaign data not found in the gamesession - make sure the xml is correct. Changes were not saved."}))},closeDialog:function(){t.value=!1,o.value=""},copy:async function(){let t=gsHeader+desanitized_js2xml(e.state.gamesession,{spaces:4});await navigator.clipboard.writeText(t),e.dispatch("showAlert",{type:"success",text:"Copied gamesession.xml to system clipboard."})},paste:async function(){var o,a,n;let r,l=await navigator.clipboard.readText();try{r=lib.xml2js(l.substring(gsHeader.length))}catch(i){return console.warn(i),void e.dispatch("showAlert",{type:"error",text:`XML parser fail: ${i.message}`})}(null==(n=null==(a=null==(o=r.elements)?void 0:o[0])?void 0:a.elements)?void 0:n.find((e=>"MultiPlayerCampaign"===e.name||"SinglePlayerCampaign"===e.name)))?(e.commit("SET_GAMESESSION",r),t.value=!1,e.dispatch("showAlert",{type:"success",text:'Pasted "gamesession.xml" from clipboard.'})):(console.warn("Failed to find campaign element in new gamesession - aborting"),e.dispatch("showAlert",{type:"error",text:"Campaign data not found in the gamesession - make sure the xml is correct."}))}}}function convertSetup(){const e=useStore();return{dialog:ref(!1),click:async function(){await e.dispatch("setLoading",!0),await new Promise((e=>setTimeout(e,50))),e.dispatch("convertSaveFile")}}}const _withScopeId=e=>(pushScopeId("data-v-a3f6e3d2"),e=e(),popScopeId(),e),_hoisted_1$2=createTextVNode(" 杂项工具 "),_hoisted_2$2={class:"d-flex flex-row justify-space-between pr-2 toolContent mb-8",style:{width:"100%","max-width":"320px"}},_hoisted_3$2=_withScopeId((()=>createBaseVNode("h3",{class:"toolTitle d-block"},"Gamesession.xml",-1))),_hoisted_4$2=createTextVNode(" mdi-clipboard-arrow-down-outline "),_hoisted_5$2=createTextVNode(" mdi-clipboard-arrow-up-outline "),_hoisted_6$2=createTextVNode(" mdi-file-download-outline "),_hoisted_7=createTextVNode(" mdi-file-edit-outline "),_hoisted_8=_withScopeId((()=>createBaseVNode("span",{class:"text-h5"},"Manualy edit gamesession.xml",-1))),_hoisted_9=createTextVNode(" Cancel "),_hoisted_10=createTextVNode(" Save "),_hoisted_11=_withScopeId((()=>createBaseVNode("h3",{class:"toolTitle"},"Save 转换",-1))),_hoisted_12={class:"toolContent d-flex flex-row justify-space-between align-center px-2 mb-8"},_hoisted_13={class:"text"},_hoisted_14=createTextVNode(" Convert to a "),_hoisted_15={class:"text-primary"},_hoisted_16=createTextVNode(" format: "),_hoisted_17=createTextVNode("mdi-file-sync-outline"),_hoisted_18=createTextVNode("mdi-help-circle-outline"),_hoisted_19=createTextVNode("Savefile format convertion info"),_hoisted_20={class:"text-h5"},_hoisted_21=createTextVNode("mdi-close-thick"),_hoisted_22=_withScopeId((()=>createBaseVNode("div",{class:"text"},[createTextVNode(" - Hired bots will be turned into crew members"),createBaseVNode("br"),createBaseVNode("br"),createTextVNode(" Please note that the player-controlled characters are not saved inside the .save file."),createBaseVNode("br"),createTextVNode("If you wish to have them in single-player, you need to import them by loading "),createBaseVNode("span",{class:"text-primary"},'(...)_CharacterData.xml"'),createTextVNode(" file. ")],-1))),_hoisted_23=_withScopeId((()=>createBaseVNode("div",{class:"text"},[createTextVNode(" - Submarines you can purchase at the shipyard well be limited to a specific list. If you want to purchase non-vanilla submarine, make sure to add its name to that list."),createBaseVNode("br"),createTextVNode(" - Current crew will be turned into bots."),createBaseVNode("br"),createTextVNode(" - Random campaign id will be generated. Make sure it's not conflicting with any of your other multiplayer saves."),createBaseVNode("br")],-1))),_hoisted_24={key:0,class:"toolContent d-flex flex-row justify-space-between align-center px-2"},_hoisted_25=createTextVNode(" SET "),_hoisted_26={class:"toolContent d-flex flex-row justify-space-between align-center px-2"},_hoisted_27=createTextVNode(" SET ");function _sfc_render$3(e,t,o,a,n,r){const l=resolveComponent("v-card-title"),i=resolveComponent("v-card-header"),s=resolveComponent("v-spacer"),c=resolveComponent("v-icon"),d=resolveComponent("v-card-text"),u=resolveComponent("v-btn"),h=resolveComponent("v-card-actions"),p=resolveComponent("v-card"),f=resolveComponent("v-dialog"),m=resolveComponent("v-tooltip"),g=resolveComponent("v-divider"),v=resolveComponent("v-text-field"),_=resolveComponent("v-sheet");return openBlock(),createBlock(p,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(i,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_1$2])),_:1})])),_:1}),createVNode(_,{class:"d-flex flex-column align-center"},{default:withCtx((()=>[createBaseVNode("div",_hoisted_2$2,[_hoisted_3$2,createVNode(s),createVNode(c,{title:"Copy to clipboard",color:"secondary",class:"iconButton",onClick:t[0]||(t[0]=e=>a.gameses.copy())},{default:withCtx((()=>[_hoisted_4$2])),_:1}),createVNode(c,{title:"Paste from clipboard",color:"secondary",class:"iconButton",onClick:t[1]||(t[1]=e=>a.gameses.paste())},{default:withCtx((()=>[_hoisted_5$2])),_:1}),createVNode(c,{title:"Download",color:"secondary",class:"iconButton",onClick:t[2]||(t[2]=e=>a.gameses.download())},{default:withCtx((()=>[_hoisted_6$2])),_:1}),createVNode(c,{title:"Edit xml",color:"secondary",class:"iconButton",onClick:t[3]||(t[3]=withModifiers((e=>a.gameses.edit()),["stop"]))},{default:withCtx((()=>[_hoisted_7])),_:1}),createVNode(f,{class:"fullscreen",modelValue:a.gameses.dialog.value,"onUpdate:modelValue":t[7]||(t[7]=e=>a.gameses.dialog.value=e),fullscreen:""},{default:withCtx((()=>[createVNode(p,{class:"d-flex flex-column",style:{width:"100%",height:"100%"}},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_8])),_:1}),createVNode(d,{class:"d-flex flex-grow-1"},{default:withCtx((()=>[withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":t[4]||(t[4]=e=>a.gameses.xmlString.value=e),spellcheck:"false",class:"textArea d-flex px-2 flex-grow-1"},null,512),[[vModelText,a.gameses.xmlString.value]])])),_:1}),createVNode(h,{style:{flex:"0 1 auto"}},{default:withCtx((()=>[createVNode(s),createVNode(u,{color:"red darken-1",text:"",onClick:t[5]||(t[5]=e=>a.gameses.closeDialog())},{default:withCtx((()=>[_hoisted_9])),_:1}),createVNode(u,{color:"green darken-1",text:"",onClick:t[6]||(t[6]=e=>a.gameses.saveChanges())},{default:withCtx((()=>[_hoisted_10])),_:1})])),_:1})])),_:1})])),_:1},8,["modelValue"])]),_hoisted_11,createBaseVNode("div",_hoisted_12,[createBaseVNode("div",_hoisted_13,[_hoisted_14,createBaseVNode("span",_hoisted_15,toDisplayString(a.isMP?"single":"multi")+"-player",1),_hoisted_16]),createVNode(s),createVNode(u,{title:"Convert",onClick:a.convert.click,size:"x-small",icon:""},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_17])),_:1})])),_:1},8,["onClick"]),createVNode(u,{onClick:t[8]||(t[8]=withModifiers((e=>a.convert.dialog.value=!0),["stop"])),size:"x-small",icon:""},{default:withCtx((()=>[createVNode(c,null,{default:withCtx((()=>[_hoisted_18])),_:1}),createVNode(m,{anchor:"bottom",activator:"parent"},{default:withCtx((()=>[_hoisted_19])),_:1})])),_:1}),createVNode(f,{class:"convertInfo",modelValue:a.convert.dialog.value,"onUpdate:modelValue":t[10]||(t[10]=e=>a.convert.dialog.value=e)},{default:withCtx((()=>[createVNode(p,null,{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[createBaseVNode("span",_hoisted_20,toDisplayString(a.isMP?"Multi-player to single-player convertion":"Single-player to multi-player convertion"),1),createVNode(s),createVNode(u,{color:"red",size:"x-small",icon:"",onClick:t[9]||(t[9]=e=>a.convert.dialog.value=!1)},{default:withCtx((()=>[createVNode(c,null,{default:withCtx((()=>[_hoisted_21])),_:1})])),_:1})])),_:1}),createVNode(g),a.isMP?(openBlock(),createBlock(d,{key:0,class:"px-2"},{default:withCtx((()=>[_hoisted_22])),_:1})):(openBlock(),createBlock(d,{key:1,class:"px-2"},{default:withCtx((()=>[_hoisted_23])),_:1}))])),_:1})])),_:1},8,["modelValue"])]),a.isMP?(openBlock(),createElementBlock("div",_hoisted_24,[createVNode(v,{"hide-details":"true",density:"comfortable",label:"Campaign ID",variant:"outlined",style:{color:"white","min-width":"140px"},modelValue:a.campaignId.inputVal.value,"onUpdate:modelValue":t[11]||(t[11]=e=>a.campaignId.inputVal.value=e),onKeyup:a.campaignId.keyUp,class:normalizeClass(["mr-2 mb-0",{"text-secondary":a.campaignId.isDifferent.value,"text-white":!a.campaignId.isDifferent.value}])},null,8,["modelValue","onKeyup","class"]),createVNode(u,{variant:"outlined",disabled:!a.campaignId.isDifferent.value,onClick:a.campaignId.click,color:"secondary",class:"py-5"},{default:withCtx((()=>[_hoisted_25])),_:1},8,["disabled","onClick"])])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_26,[createVNode(v,{"hide-details":"true",density:"comfortable",label:"Current Money",variant:"outlined",style:{color:"white","min-width":"140px"},modelValue:a.money.inputVal.value,"onUpdate:modelValue":t[12]||(t[12]=e=>a.money.inputVal.value=e),onKeyup:a.money.keyUp,class:normalizeClass(["mr-2 mb-0",{"text-secondary":a.money.isDifferent.value,"text-white":!a.money.isDifferent.value}])},null,8,["modelValue","onKeyup","class"]),createVNode(u,{variant:"outlined",disabled:!a.money.isDifferent.value,onClick:a.money.click,color:"secondary",class:"py-5"},{default:withCtx((()=>[_hoisted_27])),_:1},8,["disabled","onClick"])])])),_:1})])),_:1})}_sfc_main$3.render=_sfc_render$3,_sfc_main$3.__scopeId="data-v-a3f6e3d2",installAssets(_sfc_main$3,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VSpacer:VSpacer,VIcon:VIcon,VCardText:VCardText,VBtn:VBtn,VCardActions:VCardActions,VCard:VCard,VDialog:VDialog,VTooltip:VTooltip,VDivider:VDivider,VTextField:VTextField,VSheet:VSheet});var OwnedSubList_vue_vue_type_style_index_0_scoped_true_lang="\n.iconButton[data-v-1c0f442e] {\r\n cursor: pointer;\n}\n.selectedSub[data-v-1c0f442e] {\r\n margin-top: 5px;\r\n margin-right: 5px;\r\n cursor: pointer;\n}\r\n";const _sfc_main$2={computed:{ownedSubList(){var e;return null==(e=this.$store.state.gamesession.elements)?void 0:e[0].elements.find((e=>"ownedsubmarines"==e.name)).elements},selectedSub(){return this.$store.state.gamesession.elements[0].attributes.submarine}},methods:{test(e){console.log(e)},deleteSub(e){let t=this.$store.state.subfiles,o=Object.keys(t).find((o=>t[o].elements[0].attributes.name===e));if(!o)return console.error(`Failed to delete ${e} - not found in attached .sub files`);delete t[o];let a=this.ownedSubList.findIndex((t=>t.attributes.name===e));if(-1===a)return this.$store.dispatch("showAlert",{type:"error",text:`Failed to delete ${e} - not found in ownedSubmarines.`}),console.error(`Failed to delete ${e} - not found in ownedSubmarines`);this.ownedSubList.splice(a,1),this.$store.dispatch("showAlert",{type:"success",text:`Removed "${e}" from the owned submarines and "${o}" file from the savefile.`})},downloadSub(e){let t=this.$store.state.subfiles,o=Object.keys(t).find((o=>t[o].elements[0].attributes.name===e));if(!o)return console.error(`Failed to download ${e} - not found in attached .sub files`);let a=CompressSub(desanitized_js2xml(t[o])),n=document.createElement("a");n.href=URL.createObjectURL(new Blob([a.buffer],{type:"application/gzip"})),n.download=o,n.click()},editSub(e){let t=this.$store.state.subfiles,o=Object.keys(t).find((o=>t[o].elements[0].attributes.name===e));if(!o)return console.error(`Failed to move ${e} to editor - not found in attached .sub files`);this.$store.dispatch("subUploaded",{name:o+".raw",data:JSON.parse(JSON.stringify(t[o]))}),this.$router.push("/SubTools")},selectSub(e){this.$store.state.gamesession.elements[0].attributes.submarine=e,this.$store.dispatch("showAlert",{type:"success",text:`Set current submarine to ${e}.`})}}},_hoisted_1$1=createTextVNode(" 拥有的潜艇 "),_hoisted_2$1=["checked","onClick"],_hoisted_3$1={class:"subname"},_hoisted_4$1=createTextVNode(" mdi-file-download-outline "),_hoisted_5$1=createTextVNode(" mdi-clipboard-arrow-right-outline "),_hoisted_6$1=createTextVNode(" mdi-delete-outline ");function _sfc_render$2(e,t,o,a,n,r){const l=resolveComponent("v-card-title"),i=resolveComponent("v-card-header"),s=resolveComponent("v-spacer"),c=resolveComponent("v-icon"),d=resolveComponent("v-sheet"),u=resolveComponent("v-card");return openBlock(),createBlock(u,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(i,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_1$1])),_:1})])),_:1}),createVNode(d,{class:"mb-2"},{default:withCtx((()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.ownedSubList.map((e=>e.attributes.name)),(e=>(openBlock(),createBlock(d,{key:e,class:"d-flex flex-row justify-center px-4"},{default:withCtx((()=>[createBaseVNode("input",{title:"Set as currently used",class:"selectedSub",type:"radio",name:"selectedOwnedSub",checked:r.selectedSub===e,onClick:t=>r.selectSub(e)},null,8,_hoisted_2$1),createBaseVNode("div",_hoisted_3$1,toDisplayString(e),1),createVNode(s),createVNode(c,{title:"Download submarine file",color:"secondary",class:"iconButton",onClick:t=>r.downloadSub(e)},{default:withCtx((()=>[_hoisted_4$1])),_:2},1032,["onClick"]),createVNode(c,{title:"Edit submarine",color:"secondary",class:"iconButton",onClick:t=>r.editSub(e)},{default:withCtx((()=>[_hoisted_5$1])),_:2},1032,["onClick"]),createVNode(c,{title:"Delete submarine",color:"red",class:"iconButton",onClick:t=>r.deleteSub(e)},{default:withCtx((()=>[_hoisted_6$1])),_:2},1032,["onClick"])])),_:2},1024)))),128))])),_:1})])),_:1})}_sfc_main$2.render=_sfc_render$2,_sfc_main$2.__scopeId="data-v-1c0f442e",installAssets(_sfc_main$2,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VSpacer:VSpacer,VIcon:VIcon,VSheet:VSheet,VCard:VCard});const _sfc_main$1={props:{blockDownload:Boolean},computed:{filename(){return this.$store.state.savefileName||"none"},modificationDate(){var e,t,o;let a=null==(o=null==(t=null==(e=this.$store.state.gamesession.elements)?void 0:e[0])?void 0:t.attributes)?void 0:o.savetime;return a?new Date(1e3*parseInt(a)).toLocaleString():"-"}},methods:{download(){var e={};e["gamesession.xml"]=gsHeader+desanitized_js2xml(this.$store.state.gamesession);for(let[a,n]of Object.entries(this.$store.state.subfiles))e[a]=CompressSub(desanitized_js2xml(n));var t=CompressSave(e),o=document.createElement("a");o.href=URL.createObjectURL(new Blob([t.buffer],{type:"application/gzip"})),o.download=this.$store.state.savefileName,o.click()}}},_hoisted_1=createTextVNode(" 下载 "),_hoisted_2={class:"float-right ma-1"},_hoisted_3=createTextVNode(" 已加载文件: "),_hoisted_4={class:"text-primary"},_hoisted_5=createTextVNode(" , Save 日期/时间: "),_hoisted_6={class:"text-primary"};function _sfc_render$1(e,t,o,a,n,r){const l=resolveComponent("v-btn"),i=resolveComponent("v-card"),s=resolveComponent("v-col");return openBlock(),createBlock(s,null,{default:withCtx((()=>[createVNode(i,{elevation:"1",class:"pr-2"},{default:withCtx((()=>[createVNode(l,{color:o.blockDownload?"surface":"secondary",disabled:o.blockDownload,onClick:r.download},{default:withCtx((()=>[_hoisted_1])),_:1},8,["color","disabled","onClick"]),createBaseVNode("div",_hoisted_2,[_hoisted_3,createBaseVNode("span",_hoisted_4,toDisplayString(r.filename),1),_hoisted_5,createBaseVNode("span",_hoisted_6,toDisplayString(r.modificationDate),1)])])),_:1})])),_:1})}_sfc_main$1.render=_sfc_render$1,installAssets(_sfc_main$1,"components",{VBtn:VBtn,VCard:VCard,VCol:VCol});const _sfc_main={name:"SaveTools",components:{CampaignSettings:_sfc_main$5,CrewList:_sfc_main$4,FileDropper:_sfc_main$6,MiscSaveTools:_sfc_main$3,OwnedSubList:_sfc_main$2,SaveDataBar:_sfc_main$1},computed:__spreadValues({},mapGetters(["saveLoaded"]))};function _sfc_render(e,t,o,a,n,r){const l=resolveComponent("FileDropper"),i=resolveComponent("v-col"),s=resolveComponent("v-row"),c=resolveComponent("SaveDataBar"),d=resolveComponent("OwnedSubList"),u=resolveComponent("CampaignSettings"),h=resolveComponent("CrewList"),p=resolveComponent("MiscSaveTools"),f=resolveComponent("v-container");return openBlock(),createBlock(f,null,{default:withCtx((()=>[createVNode(s,null,{default:withCtx((()=>[createVNode(i,null,{default:withCtx((()=>[createVNode(l)])),_:1})])),_:1}),createVNode(s,null,{default:withCtx((()=>[createVNode(c,{blockDownload:!e.saveLoaded},null,8,["blockDownload"])])),_:1}),e.saveLoaded?(openBlock(),createBlock(s,{key:0},{default:withCtx((()=>[createVNode(i,null,{default:withCtx((()=>[createVNode(d)])),_:1}),createVNode(i,null,{default:withCtx((()=>[createVNode(u)])),_:1}),createVNode(i,null,{default:withCtx((()=>[createVNode(h)])),_:1}),createVNode(i,null,{default:withCtx((()=>[createVNode(p)])),_:1})])),_:1})):createCommentVNode("",!0)])),_:1})}_sfc_main.render=_sfc_render,installAssets(_sfc_main,"components",{VCol:VCol,VRow:VRow,VContainer:VContainer});export{_sfc_main as default};
+function ownKeys(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function _objectSpread2(e){for(var t=1;t=0||(n[o]=e[o]);return n}function _objectWithoutProperties(e,t){if(null==e)return{};var o,a,n=_objectWithoutPropertiesLoose(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}_sfc_main$5.render=_sfc_render$5,_sfc_main$5.__scopeId="data-v-ca595cae",installAssets(_sfc_main$5,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VTextField:VTextField,VBtn:VBtn,VSheet:VSheet,VCard:VCard});var version="1.14.0";function userAgent(e){if("undefined"!=typeof window&&window.navigator)return!!navigator.userAgent.match(e)}var IE11OrLess=userAgent(/(?:Trident.*rv[ :]?11\.|msie|iemobile|Windows Phone)/i),Edge=userAgent(/Edge/i),FireFox=userAgent(/firefox/i),Safari=userAgent(/safari/i)&&!userAgent(/chrome/i)&&!userAgent(/android/i),IOS=userAgent(/iP(ad|od|hone)/i),ChromeForAndroid=userAgent(/chrome/i)&&userAgent(/android/i),captureMode={capture:!1,passive:!1};function on(e,t,o){e.addEventListener(t,o,!IE11OrLess&&captureMode)}function off(e,t,o){e.removeEventListener(t,o,!IE11OrLess&&captureMode)}function matches(e,t){if(t){if(">"===t[0]&&(t=t.substring(1)),e)try{if(e.matches)return e.matches(t);if(e.msMatchesSelector)return e.msMatchesSelector(t);if(e.webkitMatchesSelector)return e.webkitMatchesSelector(t)}catch(o){return!1}return!1}}function getParentOrHost(e){return e.host&&e!==document&&e.host.nodeType?e.host:e.parentNode}function closest(e,t,o,a){if(e){o=o||document;do{if(null!=t&&(">"===t[0]?e.parentNode===o&&matches(e,t):matches(e,t))||a&&e===o)return e;if(e===o)break}while(e=getParentOrHost(e))}return null}var R_SPACE=/\s+/g,_throttleTimeout;function toggleClass(e,t,o){if(e&&t)if(e.classList)e.classList[o?"add":"remove"](t);else{var a=(" "+e.className+" ").replace(R_SPACE," ").replace(" "+t+" "," ");e.className=(a+(o?" "+t:"")).replace(R_SPACE," ")}}function css(e,t,o){var a=e&&e.style;if(a){if(void 0===o)return document.defaultView&&document.defaultView.getComputedStyle?o=document.defaultView.getComputedStyle(e,""):e.currentStyle&&(o=e.currentStyle),void 0===t?o:o[t];t in a||-1!==t.indexOf("webkit")||(t="-webkit-"+t),a[t]=o+("string"==typeof o?"":"px")}}function matrix(e,t){var o="";if("string"==typeof e)o=e;else do{var a=css(e,"transform");a&&"none"!==a&&(o=a+" "+o)}while(!t&&(e=e.parentNode));var n=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return n&&new n(o)}function find(e,t,o){if(e){var a=e.getElementsByTagName(t),n=0,r=a.length;if(o)for(;n=r:n<=r))return a;if(a===getWindowScrollingElement())break;a=getParentAutoScrollElement(a,!1)}return!1}function getChild(e,t,o,a){for(var n=0,r=0,l=e.children;r2&&void 0!==arguments[2]?arguments[2]:{},a=o.evt,n=_objectWithoutProperties(o,_excluded);PluginManager.pluginEvent.bind(Sortable)(e,t,_objectSpread2({dragEl:dragEl,parentEl:parentEl,ghostEl:ghostEl,rootEl:rootEl,nextEl:nextEl,lastDownEl:lastDownEl,cloneEl:cloneEl,cloneHidden:cloneHidden,dragStarted:moved,putSortable:putSortable,activeSortable:Sortable.active,originalEvent:a,oldIndex:oldIndex,oldDraggableIndex:oldDraggableIndex,newIndex:newIndex,newDraggableIndex:newDraggableIndex,hideGhostForTarget:_hideGhostForTarget,unhideGhostForTarget:_unhideGhostForTarget,cloneNowHidden:function(){cloneHidden=!0},cloneNowShown:function(){cloneHidden=!1},dispatchSortableEvent:function(e){_dispatchEvent({sortable:t,name:e,originalEvent:a})}},n))};function _dispatchEvent(e){dispatchEvent(_objectSpread2({putSortable:putSortable,cloneEl:cloneEl,targetEl:dragEl,rootEl:rootEl,oldIndex:oldIndex,oldDraggableIndex:oldDraggableIndex,newIndex:newIndex,newDraggableIndex:newDraggableIndex},e))}var dragEl,parentEl,ghostEl,rootEl,nextEl,lastDownEl,cloneEl,cloneHidden,oldIndex,newIndex,oldDraggableIndex,newDraggableIndex,activeGroup,putSortable,awaitingDragStarted=!1,ignoreNextClick=!1,sortables=[],tapEvt,touchEvt,lastDx,lastDy,tapDistanceLeft,tapDistanceTop,moved,lastTarget,lastDirection,pastFirstInvertThresh=!1,isCircumstantialInvert=!1,targetMoveDistance,ghostRelativeParent,ghostRelativeParentInitialScroll=[],_silent=!1,savedInputChecked=[],documentExists="undefined"!=typeof document,PositionGhostAbsolutely=IOS,CSSFloatProperty=Edge||IE11OrLess?"cssFloat":"float",supportDraggable=documentExists&&!ChromeForAndroid&&!IOS&&"draggable"in document.createElement("div"),supportCssPointerEvents=function(){if(documentExists){if(IE11OrLess)return!1;var e=document.createElement("x");return e.style.cssText="pointer-events:auto","auto"===e.style.pointerEvents}}(),_detectDirection=function(e,t){var o=css(e),a=parseInt(o.width)-parseInt(o.paddingLeft)-parseInt(o.paddingRight)-parseInt(o.borderLeftWidth)-parseInt(o.borderRightWidth),n=getChild(e,0,t),r=getChild(e,1,t),l=n&&css(n),i=r&&css(r),s=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+getRect(n).width,c=i&&parseInt(i.marginLeft)+parseInt(i.marginRight)+getRect(r).width;if("flex"===o.display)return"column"===o.flexDirection||"column-reverse"===o.flexDirection?"vertical":"horizontal";if("grid"===o.display)return o.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(n&&l.float&&"none"!==l.float){var d="left"===l.float?"left":"right";return!r||"both"!==i.clear&&i.clear!==d?"horizontal":"vertical"}return n&&("block"===l.display||"flex"===l.display||"table"===l.display||"grid"===l.display||s>=a&&"none"===o[CSSFloatProperty]||r&&"none"===o[CSSFloatProperty]&&s+c>a)?"vertical":"horizontal"},_dragElInRowColumn=function(e,t,o){var a=o?e.left:e.top,n=o?e.right:e.bottom,r=o?e.width:e.height,l=o?t.left:t.top,i=o?t.right:t.bottom,s=o?t.width:t.height;return a===l||n===i||a+r/2===l+s/2},_detectNearestEmptySortable=function(e,t){var o;return sortables.some((function(a){var n=a[expando].options.emptyInsertThreshold;if(n&&!lastChild(a)){var r=getRect(a),l=e>=r.left-n&&e<=r.right+n,i=t>=r.top-n&&t<=r.bottom+n;return l&&i?o=a:void 0}})),o},_prepareGroup=function(e){function t(e,o){return function(a,n,r,l){var i=a.options.group.name&&n.options.group.name&&a.options.group.name===n.options.group.name;if(null==e&&(o||i))return!0;if(null==e||!1===e)return!1;if(o&&"clone"===e)return e;if("function"==typeof e)return t(e(a,n,r,l),o)(a,n,r,l);var s=(o?a:n).options.group.name;return!0===e||"string"==typeof e&&e===s||e.join&&e.indexOf(s)>-1}}var o={},a=e.group;a&&"object"==_typeof(a)||(a={name:a}),o.name=a.name,o.checkPull=t(a.pull,!0),o.checkPut=t(a.put),o.revertClone=a.revertClone,e.group=o},_hideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css(ghostEl,"display","none")},_unhideGhostForTarget=function(){!supportCssPointerEvents&&ghostEl&&css(ghostEl,"display","")};documentExists&&document.addEventListener("click",(function(e){if(ignoreNextClick)return e.preventDefault(),e.stopPropagation&&e.stopPropagation(),e.stopImmediatePropagation&&e.stopImmediatePropagation(),ignoreNextClick=!1,!1}),!0);var nearestEmptyInsertDetectEvent=function(e){if(dragEl){e=e.touches?e.touches[0]:e;var t=_detectNearestEmptySortable(e.clientX,e.clientY);if(t){var o={};for(var a in e)e.hasOwnProperty(a)&&(o[a]=e[a]);o.target=o.rootEl=t,o.preventDefault=void 0,o.stopPropagation=void 0,t[expando]._onDragOver(o)}}},_checkOutsideTargetEl=function(e){dragEl&&dragEl.parentNode[expando]._isOutsideThisEl(e.target)};function Sortable(e,t){if(!e||!e.nodeType||1!==e.nodeType)throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(e));this.el=e,this.options=t=_extends({},t),e[expando]=this;var o={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(e.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return _detectDirection(e,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(e,t){e.setData("Text",t.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:!1!==Sortable.supportPointer&&"PointerEvent"in window&&!Safari,emptyInsertThreshold:5};for(var a in PluginManager.initializePlugins(this,e,o),o)!(a in t)&&(t[a]=o[a]);for(var n in _prepareGroup(t),this)"_"===n.charAt(0)&&"function"==typeof this[n]&&(this[n]=this[n].bind(this));this.nativeDraggable=!t.forceFallback&&supportDraggable,this.nativeDraggable&&(this.options.touchStartThreshold=1),t.supportPointer?on(e,"pointerdown",this._onTapStart):(on(e,"mousedown",this._onTapStart),on(e,"touchstart",this._onTapStart)),this.nativeDraggable&&(on(e,"dragover",this),on(e,"dragenter",this)),sortables.push(this.el),t.store&&t.store.get&&this.sort(t.store.get(this)||[]),_extends(this,AnimationStateManager())}function _globalDragOver(e){e.dataTransfer&&(e.dataTransfer.dropEffect="move"),e.cancelable&&e.preventDefault()}function _onMove(e,t,o,a,n,r,l,i){var s,c,d=e[expando],u=d.options.onMove;return!window.CustomEvent||IE11OrLess||Edge?(s=document.createEvent("Event")).initEvent("move",!0,!0):s=new CustomEvent("move",{bubbles:!0,cancelable:!0}),s.to=t,s.from=e,s.dragged=o,s.draggedRect=a,s.related=n||t,s.relatedRect=r||getRect(t),s.willInsertAfter=i,s.originalEvent=l,e.dispatchEvent(s),u&&(c=u.call(d,s,l)),c}function _disableDraggable(e){e.draggable=!1}function _unsilent(){_silent=!1}function _ghostIsFirst(e,t,o){var a=getRect(getChild(o.el,0,o.options,!0));return t?e.clientXa.right+10||e.clientX<=a.right&&e.clientY>a.bottom&&e.clientX>=a.left:e.clientX>a.right&&e.clientY>a.top||e.clientX<=a.right&&e.clientY>a.bottom+10}function _getSwapDirection(e,t,o,a,n,r,l,i){var s=a?e.clientY:e.clientX,c=a?o.height:o.width,d=a?o.top:o.left,u=a?o.bottom:o.right,h=!1;if(!l)if(i&&targetMoveDistanced+c*r/2:su-targetMoveDistance)return-lastDirection}else if(s>d+c*(1-n)/2&&su-c*r/2)?s>d+c/2?1:-1:0}function _getInsertDirection(e){return index(dragEl)=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){dragEl&&_disableDraggable(dragEl),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;off(e,"mouseup",this._disableDelayedDrag),off(e,"touchend",this._disableDelayedDrag),off(e,"touchcancel",this._disableDelayedDrag),off(e,"mousemove",this._delayedDragTouchMoveHandler),off(e,"touchmove",this._delayedDragTouchMoveHandler),off(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,t){t=t||"touch"==e.pointerType&&e,!this.nativeDraggable||t?this.options.supportPointer?on(document,"pointermove",this._onTouchMove):on(document,t?"touchmove":"mousemove",this._onTouchMove):(on(dragEl,"dragend",this),on(rootEl,"dragstart",this._onDragStart));try{document.selection?_nextTick((function(){document.selection.empty()})):window.getSelection().removeAllRanges()}catch(o){}},_dragStarted:function(e,t){if(awaitingDragStarted=!1,rootEl&&dragEl){pluginEvent("dragStarted",this,{evt:t}),this.nativeDraggable&&on(document,"dragover",_checkOutsideTargetEl);var o=this.options;!e&&toggleClass(dragEl,o.dragClass,!1),toggleClass(dragEl,o.ghostClass,!0),Sortable.active=this,e&&this._appendGhost(),_dispatchEvent({sortable:this,name:"start",originalEvent:t})}else this._nulling()},_emulateDragOver:function(){if(touchEvt){this._lastX=touchEvt.clientX,this._lastY=touchEvt.clientY,_hideGhostForTarget();for(var e=document.elementFromPoint(touchEvt.clientX,touchEvt.clientY),t=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(touchEvt.clientX,touchEvt.clientY))!==t;)t=e;if(dragEl.parentNode[expando]._isOutsideThisEl(e),t)do{if(t[expando]){if(t[expando]._onDragOver({clientX:touchEvt.clientX,clientY:touchEvt.clientY,target:e,rootEl:t})&&!this.options.dragoverBubble)break}e=t}while(t=t.parentNode);_unhideGhostForTarget()}},_onTouchMove:function(e){if(tapEvt){var t=this.options,o=t.fallbackTolerance,a=t.fallbackOffset,n=e.touches?e.touches[0]:e,r=ghostEl&&matrix(ghostEl,!0),l=ghostEl&&r&&r.a,i=ghostEl&&r&&r.d,s=PositionGhostAbsolutely&&ghostRelativeParent&&getRelativeScrollOffset(ghostRelativeParent),c=(n.clientX-tapEvt.clientX+a.x)/(l||1)+(s?s[0]-ghostRelativeParentInitialScroll[0]:0)/(l||1),d=(n.clientY-tapEvt.clientY+a.y)/(i||1)+(s?s[1]-ghostRelativeParentInitialScroll[1]:0)/(i||1);if(!Sortable.active&&!awaitingDragStarted){if(o&&Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))=0&&(_dispatchEvent({rootEl:parentEl,name:"add",toEl:parentEl,fromEl:rootEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"remove",toEl:parentEl,originalEvent:e}),_dispatchEvent({rootEl:parentEl,name:"sort",toEl:parentEl,fromEl:rootEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"sort",toEl:parentEl,originalEvent:e})),putSortable&&putSortable.save()):newIndex!==oldIndex&&newIndex>=0&&(_dispatchEvent({sortable:this,name:"update",toEl:parentEl,originalEvent:e}),_dispatchEvent({sortable:this,name:"sort",toEl:parentEl,originalEvent:e})),Sortable.active&&(null!=newIndex&&-1!==newIndex||(newIndex=oldIndex,newDraggableIndex=oldDraggableIndex),_dispatchEvent({sortable:this,name:"end",toEl:parentEl,originalEvent:e}),this.save())))),this._nulling()},_nulling:function(){pluginEvent("nulling",this),rootEl=dragEl=parentEl=ghostEl=nextEl=cloneEl=lastDownEl=cloneHidden=tapEvt=touchEvt=moved=newIndex=newDraggableIndex=oldIndex=oldDraggableIndex=lastTarget=lastDirection=putSortable=activeGroup=Sortable.dragged=Sortable.ghost=Sortable.clone=Sortable.active=null,savedInputChecked.forEach((function(e){e.checked=!0})),savedInputChecked.length=lastDx=lastDy=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":dragEl&&(this._onDragOver(e),_globalDragOver(e));break;case"selectstart":e.preventDefault()}},toArray:function(){for(var e,t=[],o=this.el.children,a=0,n=o.length,r=this.options;a *[data-v-27135f03] {\n margin: 0 8px;\n margin-bottom: 16px;\n}\ninput[data-v-27135f03] {\n border: 1px solid white;\n color: white;\n font-size: 2em;\n padding-left: 8px;\n}\nselect[data-v-27135f03] {\n border: 1px solid white;\n font-size: 2em;\n padding-left: 8px;\n line-height: 40px;\n cursor: pointer;\n border-radius: 5px;\n}\noption[data-v-27135f03] {\n background: rgb(var(--v-theme-surface));\n}\n.mainCard.v-card[data-v-27135f03] {\n background-color: rgb(var(--v-theme-background));\n}\n.iconButton[data-v-27135f03] {\n cursor: pointer;\n}\n.captain[data-v-27135f03] {\n color: #718fb7;\n}\n.engineer[data-v-27135f03] {\n color: #d7ac60;\n}\n.mechanic[data-v-27135f03] {\n color: #60c9d0;\n}\n.securityofficer[data-v-27135f03] {\n color: #8d776a;\n}\n.medicaldoctor[data-v-27135f03] {\n color: #b9472b;\n}\n.assistant[data-v-27135f03] {\n color: #f8f8f8;\n}\n";const _sfc_main$4={data:()=>({addCharDialog:!1,addCharDialogVal:"",editDialog:!1,showTextarea:!1,textAreaVal:"",color:{captain:"#718fb7",engineer:"#d7ac60",mechanic:"#60c9d0",securityofficer:"#8d776a",medicaldoctor:"#b9472b",assistant:"#f8f8f8"},selectedChar:null,charClone:null}),computed:__spreadProps(__spreadValues({},mapGetters(["isMultiPlayer"])),{crewList(){return this.$store.getters.campaign.elements.find((e=>this.isMultiPlayer?"bots"==e.name:"crew"==e.name))},characterArray(){return this.crewList.elements.filter((e=>"Character"===e.name))},cloneJob(){return this.charClone?this.charClone.elements.find((e=>"job"==e.name)):{}},canExportPlayers(){return this.$store.state.playerCharacters.length>0}}),methods:{hashWrapper:e=>sum$1(e),editChar(e){this.selectedChar=e,this.charClone=cloneDeep_1(e),this.editDialog=!0},editDialogClose(){if(this.showTextarea)return this.showTextarea=!1,void(this.textAreaVal="");this.editDialog=!1,this.selectedChar=null,this.charClone=null},editDialogSave(){if(this.showTextarea){let e,o=this.textAreaVal;try{e=lib.xml2js(o).elements[0]}catch(t){return console.warn(t),void this.$store.dispatch("showAlert",{type:"error",text:`XML parser fail: ${t.message}`})}return e.attributes.name?(this.charClone=e,this.$store.dispatch("showAlert",{type:"success",text:`Loaded ${this.charClone.attributes.name} xml changes.`}),void(this.showTextarea=!1)):void this.$store.dispatch("showAlert",{type:"error",text:"Failed to read character name - file may be invalid or corrupted"})}this.editDialog=!1,this.charClone.attributes.name===this.selectedChar.attributes.name||this.charClone.attributes.originalname||(this.charClone.attributes.originalname=this.selectedChar.attributes.name);let e=this.crewList.elements.indexOf(this.selectedChar);this.crewList.elements[e]=this.charClone,this.selectedChar=null,this.$store.dispatch("showAlert",{type:"success",text:`Modified character ${this.charClone.attributes.name}`}),this.charClone=null},deleteChar(e){let t=this.crewList.elements.indexOf(e);if(-1==t)return console.error("faled to delete - element not found");this.crewList.elements.splice(t,1),this.$store.dispatch("showAlert",{type:"success",text:`已删除 ${e.attributes.name} 船员.`})},async copyChar(){let e=desanitized_js2xml({elements:[this.charClone]},{spaces:4});await navigator.clipboard.writeText(e),this.$store.dispatch("showAlert",{type:"success",text:`Copied ${this.charClone.attributes.name} to system clipboard.`})},async pasteChar(){let e,t=await navigator.clipboard.readText();try{e=lib.xml2js(t).elements[0]}catch(o){return console.warn(o),void this.$store.dispatch("showAlert",{type:"error",text:`XML parser fail: ${o.message}`})}e.attributes.name?(this.charClone=e,this.$store.dispatch("showAlert",{type:"success",text:`Pasted ${this.charClone.attributes.name} from system clipboard.`})):this.$store.dispatch("showAlert",{type:"error",text:"Failed to read character name - file may be invalid or corrupted"})},rawEditChar(){this.textAreaVal=desanitized_js2xml({elements:[this.charClone]},{spaces:4}),this.showTextarea=!0},addNew(){let e={type:"element",name:"Character",attributes:{name:"New Assistant",originalname:"New Assistant",speciesname:"human",gender:"female",race:"Asian",salary:"2137",headspriteid:"6",hairindex:"2",beardindex:"0",moustacheindex:"0",faceattachmentindex:"0",startitemsgiven:"false",ragdoll:"",personality:"Crazy"},elements:[{type:"element",name:"job",attributes:{name:"Assistant",identifier:"assistant"},elements:[{type:"element",name:"skill",attributes:{identifier:"weapons",level:"20"}},{type:"element",name:"skill",attributes:{identifier:"mechanical",level:"20"}},{type:"element",name:"skill",attributes:{identifier:"electrical",level:"20"}},{type:"element",name:"skill",attributes:{identifier:"medical",level:"20"}},{type:"element",name:"skill",attributes:{identifier:"helm",level:"20"}}]},{type:"element",name:"inventory",elements:[]},{type:"element",name:"health",elements:[{type:"element",name:"LimbHealth",attributes:{i:"0"}},{type:"element",name:"LimbHealth",attributes:{i:"1"}},{type:"element",name:"LimbHealth",attributes:{i:"2"}},{type:"element",name:"LimbHealth",attributes:{i:"3"}},{type:"element",name:"LimbHealth",attributes:{i:"4"}},{type:"element",name:"LimbHealth",attributes:{i:"5"}}]},{type:"element",name:"orders"}]};for(var t=1,o="New Assistant";this.characterArray.find((e=>{var t;return null==(t=e.attributes.originalname)?void 0:t.startsWith(o)}));)o="New Assistant"+t++,e.attributes.originalname=o;this.crewList.elements.unshift(e)},addFromXml(e){let t;try{t=lib.xml2js(e).elements[0]}catch(o){return console.warn(o),this.$store.dispatch("showAlert",{type:"error",text:`XML parser fail: ${o.message}`}),!1}return t.attributes.name?(this.crewList.elements.unshift(t),this.$store.dispatch("showAlert",{type:"success",text:`Added new character: ${t.attributes.name}.`}),!0):(this.$store.dispatch("showAlert",{type:"error",text:"Failed to read character name - file may be invalid or corrupted"}),!1)},async addFromClip(){let e=await navigator.clipboard.readText();this.addFromXml(e)},addFromInput(){this.addFromXml(this.addCharDialogVal)&&(this.addCharDialog=!1,this.addCharDialogVal="")},exportPlayers(){var e;let t=0,o=lib.xml2js("").elements[0];o.elements=[];for(let r of this.characterArray){let a=null!=(e=r.attributes.originalname)?e:r.attributes.name,n=this.$store.state.playerCharacters.find((e=>e.name==a));if(!n)continue;let l=cloneDeep_1(r),i=lib.xml2js(``).elements[0];i.elements=[];let s=l.elements.splice(l.elements.findIndex((e=>"inventory"==e.name)),1)[0],c=l.elements.splice(l.elements.findIndex((e=>"health"==e.name)),1)[0];i.elements.push(l),i.elements.push(s),i.elements.push(c),o.elements.push(i),t++}if(!t)return this.$store.dispatch("showAlert",{type:"info",text:"Could not match any of the crew characters with their CharacterCampaignData"});let a=gsHeader+desanitized_js2xml({elements:[o]},{spaces:4}),n=document.createElement("a");n.href=URL.createObjectURL(new Blob([a],{type:"application/xml"})),n.download=this.$store.state.savefileName.slice(0,-5)+"_CharacterData.xml",n.click(),this.$store.dispatch("showAlert",{type:"success",text:`Exported and prompted to download ${t} player characters`})}},mounted(){var e=document.getElementById("crewListWrapper");Sortable.create(e,{animation:150,handle:".grabHandle",onSort:e=>{const t=this.characterArray[e.oldIndex],o=this.crewList.elements.indexOf(t),a=this.crewList.elements.indexOf(this.characterArray[e.newIndex]);this.crewList.elements.splice(o,1),this.crewList.elements.splice(a,0,t)}})}},_withScopeId$1=e=>(pushScopeId("data-v-27135f03"),e=e(),popScopeId(),e),_hoisted_1$3={class:"name"},_hoisted_2$3=createTextVNode("mdi-drag-horizontal-variant"),_hoisted_3$3=createTextVNode(" mdi-file-edit-outline "),_hoisted_4$3=createTextVNode(" mdi-delete-outline "),_hoisted_5$3=createTextVNode("mdi-file-download-outline"),_hoisted_6$3=_withScopeId$1((()=>createBaseVNode("div",{class:"pt-1"},"添加:",-1))),_hoisted_7$1=createTextVNode("mdi-account-plus-outline"),_hoisted_8$1=createTextVNode("mdi-account-edit-outline"),_hoisted_9$1=_withScopeId$1((()=>createBaseVNode("span",{class:"text-h5"},"Add character from xml",-1))),_hoisted_10$1=createTextVNode(" Cancel "),_hoisted_11$1=createTextVNode(" Add "),_hoisted_12$1=createTextVNode("mdi-clipboard-arrow-up-outline"),_hoisted_13$1={class:"text-h4"},_hoisted_14$1=createTextVNode("Editing "),_hoisted_15$1={class:"text-black"},_hoisted_16$1=_withScopeId$1((()=>createBaseVNode("span",{class:"text-h4"},"General",-1))),_hoisted_17$1=_withScopeId$1((()=>createBaseVNode("div",{class:"text-h5"},"Raw xml:",-1))),_hoisted_18$1=createTextVNode("mdi-clipboard-arrow-down-outline"),_hoisted_19$1=createTextVNode("mdi-clipboard-arrow-up-outline"),_hoisted_20$1=createTextVNode("mdi-file-edit-outline"),_hoisted_21$1=_withScopeId$1((()=>createBaseVNode("span",{class:"text-h4"},"Job & Skills",-1))),_hoisted_22$1=_withScopeId$1((()=>createBaseVNode("div",{class:"text-h5"},"Job:",-1))),_hoisted_23$1=_withScopeId$1((()=>createBaseVNode("option",{class:"captain",value:"captain"},"Captain",-1))),_hoisted_24$1=_withScopeId$1((()=>createBaseVNode("option",{class:"securityofficer",value:"securityofficer"},"Security Officer",-1))),_hoisted_25$1=_withScopeId$1((()=>createBaseVNode("option",{class:"medicaldoctor",value:"medicaldoctor"},"Medical Doctor",-1))),_hoisted_26$1=_withScopeId$1((()=>createBaseVNode("option",{class:"engineer",value:"engineer"},"Engineer",-1))),_hoisted_27$1=_withScopeId$1((()=>createBaseVNode("option",{class:"mechanic",value:"mechanic"},"Mechanic",-1))),_hoisted_28=_withScopeId$1((()=>createBaseVNode("option",{class:"assistant",value:"assistant"},"Assistant",-1))),_hoisted_29=[_hoisted_23$1,_hoisted_24$1,_hoisted_25$1,_hoisted_26$1,_hoisted_27$1,_hoisted_28],_hoisted_30=_withScopeId$1((()=>createBaseVNode("div",{class:"text-h5"},"Skills",-1))),_hoisted_31=["onUpdate:modelValue"],_hoisted_32=createTextVNode(" Cancel "),_hoisted_33=createTextVNode(" Save ");function _sfc_render$4(e,t,o,a,n,r){const l=resolveComponent("v-card-title"),i=resolveComponent("v-card-header"),s=resolveComponent("v-spacer"),c=resolveComponent("v-icon"),d=resolveComponent("v-sheet"),u=resolveComponent("v-btn"),h=resolveComponent("v-card-text"),p=resolveComponent("v-card-actions"),f=resolveComponent("v-card"),m=resolveComponent("v-dialog"),g=resolveComponent("v-text-field"),v=resolveComponent("v-col"),_=resolveComponent("v-row");return openBlock(),createElementBlock(Fragment,null,[createVNode(f,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(i,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[createTextVNode(toDisplayString(e.isMultiPlayer?"Hired Bots":"拥有的船员"),1)])),_:1})])),_:1}),createVNode(d,{class:"mb-2",id:"crewListWrapper"},{default:withCtx((()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.characterArray,(e=>(openBlock(),createBlock(d,{key:r.hashWrapper(e.attributes),class:normalizeClass(`d-flex flex-row justify-center px-4 ${e.elements.find((e=>"job"==e.name)).attributes.identifier}`)},{default:withCtx((()=>[createBaseVNode("div",_hoisted_1$3,toDisplayString(e.attributes.name),1),createVNode(s),createVNode(c,{style:{cursor:"grabbing"},class:"grabHandle",color:"secondary"},{default:withCtx((()=>[_hoisted_2$3])),_:1}),createVNode(c,{title:"编辑船员",color:"secondary",class:"iconButton",onClick:t=>r.editChar(e)},{default:withCtx((()=>[_hoisted_3$3])),_:2},1032,["onClick"]),createVNode(c,{title:"删除船员",color:"red",class:"iconButton",onClick:t=>r.deleteChar(e)},{default:withCtx((()=>[_hoisted_4$3])),_:2},1032,["onClick"])])),_:2},1032,["class"])))),128))])),_:1}),createVNode(d,{class:"d-flex flex-row align-center pl-4 pr-2"},{default:withCtx((()=>[r.canExportPlayers?(openBlock(),createBlock(u,{key:0,title:"Export player characters",icon:"",size:"x-small",onClick:r.exportPlayers},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_5$3])),_:1})])),_:1},8,["onClick"])):createCommentVNode("",!0),_hoisted_6$3,createVNode(s),createVNode(u,{title:"Add new assistant character",icon:"",size:"x-small",onClick:r.addNew},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_7$1])),_:1})])),_:1},8,["onClick"]),createVNode(u,{title:"Add character from xml",icon:"",size:"x-small",onClick:t[3]||(t[3]=e=>n.addCharDialog=!0)},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_8$1])),_:1}),createVNode(m,{class:"editCharacter",modelValue:n.addCharDialog,"onUpdate:modelValue":t[2]||(t[2]=e=>n.addCharDialog=e)},{default:withCtx((()=>[createVNode(f,{class:"d-flex flex-column",style:{width:"100%",height:"100%"}},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_9$1])),_:1}),createVNode(h,{class:"d-flex flex-grow-1"},{default:withCtx((()=>[withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":t[0]||(t[0]=e=>n.addCharDialogVal=e),spellcheck:"false",class:"textArea d-flex px-2 flex-grow-1"},null,512),[[vModelText,n.addCharDialogVal]])])),_:1}),createVNode(p,{style:{flex:"0 1 auto"}},{default:withCtx((()=>[createVNode(s),createVNode(u,{color:"red darken-1",text:"",onClick:t[1]||(t[1]=e=>n.addCharDialog=!1)},{default:withCtx((()=>[_hoisted_10$1])),_:1}),createVNode(u,{color:"green darken-1",text:"",onClick:r.addFromInput},{default:withCtx((()=>[_hoisted_11$1])),_:1},8,["onClick"])])),_:1})])),_:1})])),_:1},8,["modelValue"])])),_:1}),createVNode(u,{title:"Paste character xml from clipboard",icon:"",size:"x-small",onClick:r.addFromClip},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_12$1])),_:1})])),_:1},8,["onClick"])])),_:1})])),_:1}),createVNode(m,{persistent:"",class:"editCharacter",modelValue:n.editDialog,"onUpdate:modelValue":t[9]||(t[9]=e=>n.editDialog=e),fullscreen:""},{default:withCtx((()=>[createVNode(f,{class:"d-flex flex-column mainCard",style:{width:"100%",height:"100%"}},{default:withCtx((()=>[createVNode(l,{style:{"background-color":"rgb(var(--v-theme-primary))"}},{default:withCtx((()=>{var e,t;return[createBaseVNode("span",_hoisted_13$1,[_hoisted_14$1,createBaseVNode("span",_hoisted_15$1,toDisplayString(null==(t=null==(e=n.charClone)?void 0:e.attributes)?void 0:t.name),1)])]})),_:1}),n.charClone?(openBlock(),createBlock(h,{key:0,class:"d-flex flex-grow-1"},{default:withCtx((()=>[n.showTextarea?withDirectives((openBlock(),createElementBlock("textarea",{key:1,"onUpdate:modelValue":t[6]||(t[6]=e=>n.textAreaVal=e),spellcheck:"false",class:"textArea d-flex px-2 flex-grow-1"},null,512)),[[vModelText,n.textAreaVal]]):(openBlock(),createBlock(_,{key:0},{default:withCtx((()=>[createVNode(v,null,{default:withCtx((()=>[createVNode(f,{elevation:"1"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_16$1])),_:1}),createVNode(h,{class:"charEditCardText"},{default:withCtx((()=>[createBaseVNode("div",null,[createVNode(g,{label:"Name",variant:"outlined",style:{color:"white","min-width":"200px"},class:"mb-4 mt-3",type:"text",modelValue:n.charClone.attributes.name,"onUpdate:modelValue":t[4]||(t[4]=e=>n.charClone.attributes.name=e)},null,8,["modelValue"])]),createBaseVNode("div",null,[_hoisted_17$1,createVNode(u,{title:"Copy character xml to clipboard",size:"x-small",icon:"",onClick:r.copyChar},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_18$1])),_:1})])),_:1},8,["onClick"]),createVNode(u,{title:"Paste character xml from clipboard",size:"x-small",icon:"",onClick:r.pasteChar},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_19$1])),_:1})])),_:1},8,["onClick"]),createVNode(u,{title:"Edit raw xml",size:"x-small",icon:"",onClick:r.rawEditChar},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_20$1])),_:1})])),_:1},8,["onClick"])])])),_:1})])),_:1})])),_:1}),createVNode(v,null,{default:withCtx((()=>[createVNode(f,{elevation:"1"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_21$1])),_:1}),createVNode(h,{class:"charEditCardText"},{default:withCtx((()=>[createBaseVNode("div",null,[_hoisted_22$1,withDirectives(createBaseVNode("select",{class:normalizeClass(r.cloneJob.attributes.identifier),"onUpdate:modelValue":t[5]||(t[5]=e=>r.cloneJob.attributes.identifier=e)},_hoisted_29,2),[[vModelSelect,r.cloneJob.attributes.identifier]])]),createBaseVNode("div",null,[_hoisted_30,createBaseVNode("div",null,[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.cloneJob.elements,(e=>(openBlock(),createElementBlock("div",{key:e.attributes.identifier},[createBaseVNode("div",null,toDisplayString(e.attributes.identifier),1),withDirectives(createBaseVNode("input",{type:"number",min:"0",max:"100",style:{width:"6em"},"onUpdate:modelValue":t=>e.attributes.level=t},null,8,_hoisted_31),[[vModelText,e.attributes.level]])])))),128))])])])),_:1})])),_:1})])),_:1})])),_:1}))])),_:1})):createCommentVNode("",!0),createVNode(p,{style:{flex:"0 1 auto"}},{default:withCtx((()=>[createVNode(s),createVNode(u,{color:"red darken-1",text:"",onClick:t[7]||(t[7]=e=>r.editDialogClose())},{default:withCtx((()=>[_hoisted_32])),_:1}),createVNode(u,{color:"green darken-1",text:"",onClick:t[8]||(t[8]=e=>r.editDialogSave())},{default:withCtx((()=>[_hoisted_33])),_:1})])),_:1})])),_:1})])),_:1},8,["modelValue"])],64)}_sfc_main$4.render=_sfc_render$4,_sfc_main$4.__scopeId="data-v-27135f03",installAssets(_sfc_main$4,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VSpacer:VSpacer,VIcon:VIcon,VSheet:VSheet,VBtn:VBtn,VCardText:VCardText,VCardActions:VCardActions,VCard:VCard,VDialog:VDialog,VTextField:VTextField,VCol:VCol,VRow:VRow});var MiscSaveTools_vue_vue_type_style_index_0_scoped_true_lang="\n.iconButton[data-v-59af5179] {\n cursor: pointer;\n}\ninput[data-v-59af5179] {\n border: 1px solid white;\n width: 100%;\n}\n.toolTitle[data-v-59af5179] {\n font-weight: normal;\n font-size: 1.1em;\n align-self: center;\n margin-left: 12px;\n}\n.toolContent[data-v-59af5179]:not(:last-child) {\n margin-bottom: 16px;\n}\n.textArea[data-v-59af5179] {\n background: white;\n color: black;\n}\n";const _sfc_main$3={setup(){const e=useStore();return{isMP:computed((()=>e.getters.isMultiPlayer)),campaignId:campaignIdSetup(),convert:convertSetup(),gameses:gamesesSetup(),money:moneySetup()}}};function moneySetup(){const e=useStore(),t=computed((()=>e.getters.campaign.attributes.money)),o=ref(t.value),a=computed((()=>o.value!==t.value));function n(){parseInt(o.value)>=0?(e.getters.campaign.attributes.money=o.value,e.dispatch("showAlert",{type:"success",text:`Set current money to "${o.value}".`})):e.dispatch("showAlert",{type:"info",text:"Value must be a positive number."})}return watch(t,(e=>{o.value=e})),{inputVal:o,isDifferent:a,click:n,keyUp:function(e){"Enter"===e.key&&n()}}}function campaignIdSetup(){const e=useStore(),t=computed((()=>{var t,o,a;return(null==(a=null==(o=null==(t=e.state.gamesession.elements)?void 0:t[0])?void 0:o.attributes)?void 0:a.campaignid)||"-1"})),o=ref(t.value),a=computed((()=>o.value!==t.value));function n(){""!=o.value?(e.state.gamesession.elements[0].attributes.campaignid=o.value,e.dispatch("showAlert",{type:"success",text:`Set campaign ID to "${o.value}".`})):e.dispatch("showAlert",{type:"info",text:"ID can't be empty."})}return watch(t,(e=>{o.value=e})),{inputVal:o,isDifferent:a,click:n,keyUp:function(e){"Enter"===e.key&&n()}}}function gamesesSetup(){const e=useStore(),t=ref(!1),o=ref("");return{download:function(){let t=gsHeader+desanitized_js2xml(e.state.gamesession),o=document.createElement("a");o.href=URL.createObjectURL(new Blob([t],{type:"application/xml"})),o.download="gamesession.xml",o.click()},edit:function(){t.value=!0,o.value=gsHeader+desanitized_js2xml(e.state.gamesession,{spaces:4})},dialog:t,xmlString:o,saveChanges:function(){var t,a,n;let r;try{r=lib.xml2js(o.value.substring(gsHeader.length))}catch(l){return console.warn(l),void e.dispatch("showAlert",{type:"error",text:`XML parser fail: ${l.message}`})}(null==(n=null==(a=null==(t=r.elements)?void 0:t[0])?void 0:a.elements)?void 0:n.find((e=>"MultiPlayerCampaign"===e.name||"SinglePlayerCampaign"===e.name)))?(e.commit("SET_GAMESESSION",r),e.dispatch("showAlert",{type:"success",text:'Updated "gamesession.xml".'})):(console.warn("Failed to find campaign element in new gamesession - aborting"),e.dispatch("showAlert",{type:"error",text:"Campaign data not found in the gamesession - make sure the xml is correct. Changes were not saved."}))},closeDialog:function(){t.value=!1,o.value=""},copy:async function(){let t=gsHeader+desanitized_js2xml(e.state.gamesession,{spaces:4});await navigator.clipboard.writeText(t),e.dispatch("showAlert",{type:"success",text:"Copied gamesession.xml to system clipboard."})},paste:async function(){var o,a,n;let r,l=await navigator.clipboard.readText();try{r=lib.xml2js(l.substring(gsHeader.length))}catch(i){return console.warn(i),void e.dispatch("showAlert",{type:"error",text:`XML parser fail: ${i.message}`})}(null==(n=null==(a=null==(o=r.elements)?void 0:o[0])?void 0:a.elements)?void 0:n.find((e=>"MultiPlayerCampaign"===e.name||"SinglePlayerCampaign"===e.name)))?(e.commit("SET_GAMESESSION",r),t.value=!1,e.dispatch("showAlert",{type:"success",text:'Pasted "gamesession.xml" from clipboard.'})):(console.warn("Failed to find campaign element in new gamesession - aborting"),e.dispatch("showAlert",{type:"error",text:"Campaign data not found in the gamesession - make sure the xml is correct."}))}}}function convertSetup(){const e=useStore();return{dialog:ref(!1),click:async function(){await e.dispatch("setLoading",!0),await new Promise((e=>setTimeout(e,50))),e.dispatch("convertSaveFile")}}}const _withScopeId=e=>(pushScopeId("data-v-59af5179"),e=e(),popScopeId(),e),_hoisted_1$2=createTextVNode(" 杂项工具 "),_hoisted_2$2={class:"d-flex flex-row justify-space-between pr-2 toolContent mb-8",style:{width:"100%","max-width":"320px"}},_hoisted_3$2=_withScopeId((()=>createBaseVNode("h3",{class:"toolTitle d-block"},"Gamesession.xml",-1))),_hoisted_4$2=createTextVNode(" mdi-clipboard-arrow-down-outline "),_hoisted_5$2=createTextVNode(" mdi-clipboard-arrow-up-outline "),_hoisted_6$2=createTextVNode(" mdi-file-download-outline "),_hoisted_7=createTextVNode(" mdi-file-edit-outline "),_hoisted_8=_withScopeId((()=>createBaseVNode("span",{class:"text-h5"},"Manualy edit gamesession.xml",-1))),_hoisted_9=createTextVNode(" Cancel "),_hoisted_10=createTextVNode(" Save "),_hoisted_11=_withScopeId((()=>createBaseVNode("h3",{class:"toolTitle"},"Save 转换",-1))),_hoisted_12={class:"toolContent d-flex flex-row justify-space-between align-center px-2 mb-8"},_hoisted_13={class:"text"},_hoisted_14=createTextVNode(" Convert to a "),_hoisted_15={class:"text-primary"},_hoisted_16=createTextVNode(" format: "),_hoisted_17=createTextVNode("mdi-file-sync-outline"),_hoisted_18=createTextVNode("mdi-help-circle-outline"),_hoisted_19=createTextVNode("Savefile format convertion info"),_hoisted_20={class:"text-h5"},_hoisted_21=createTextVNode("mdi-close-thick"),_hoisted_22=_withScopeId((()=>createBaseVNode("div",{class:"text"},[createTextVNode(" - Hired bots will be turned into crew members"),createBaseVNode("br"),createBaseVNode("br"),createTextVNode(" Please note that the player-controlled characters are not saved inside the .save file."),createBaseVNode("br"),createTextVNode("If you wish to have them in single-player, you need to import them by loading "),createBaseVNode("span",{class:"text-primary"},'(...)_CharacterData.xml"'),createTextVNode(" file. ")],-1))),_hoisted_23=_withScopeId((()=>createBaseVNode("div",{class:"text"},[createTextVNode(" - Submarines you can purchase at the shipyard well be limited to a specific list. If you want to purchase non-vanilla submarine, make sure to add its name to that list."),createBaseVNode("br"),createTextVNode(" - Current crew will be turned into bots."),createBaseVNode("br"),createTextVNode(" - Random campaign id will be generated. Make sure it's not conflicting with any of your other multiplayer saves."),createBaseVNode("br")],-1))),_hoisted_24={key:0,class:"toolContent d-flex flex-row justify-space-between align-center px-2"},_hoisted_25=createTextVNode(" SET "),_hoisted_26={class:"toolContent d-flex flex-row justify-space-between align-center px-2"},_hoisted_27=createTextVNode(" SET ");function _sfc_render$3(e,t,o,a,n,r){const l=resolveComponent("v-card-title"),i=resolveComponent("v-card-header"),s=resolveComponent("v-spacer"),c=resolveComponent("v-icon"),d=resolveComponent("v-card-text"),u=resolveComponent("v-btn"),h=resolveComponent("v-card-actions"),p=resolveComponent("v-card"),f=resolveComponent("v-dialog"),m=resolveComponent("v-tooltip"),g=resolveComponent("v-divider"),v=resolveComponent("v-text-field"),_=resolveComponent("v-sheet");return openBlock(),createBlock(p,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(i,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_1$2])),_:1})])),_:1}),createVNode(_,{class:"d-flex flex-column align-center"},{default:withCtx((()=>[createBaseVNode("div",_hoisted_2$2,[_hoisted_3$2,createVNode(s),createVNode(c,{title:"Copy to clipboard",color:"secondary",class:"iconButton",onClick:t[0]||(t[0]=e=>a.gameses.copy())},{default:withCtx((()=>[_hoisted_4$2])),_:1}),createVNode(c,{title:"Paste from clipboard",color:"secondary",class:"iconButton",onClick:t[1]||(t[1]=e=>a.gameses.paste())},{default:withCtx((()=>[_hoisted_5$2])),_:1}),createVNode(c,{title:"Download",color:"secondary",class:"iconButton",onClick:t[2]||(t[2]=e=>a.gameses.download())},{default:withCtx((()=>[_hoisted_6$2])),_:1}),createVNode(c,{title:"Edit xml",color:"secondary",class:"iconButton",onClick:t[3]||(t[3]=withModifiers((e=>a.gameses.edit()),["stop"]))},{default:withCtx((()=>[_hoisted_7])),_:1}),createVNode(f,{class:"fullscreen",modelValue:a.gameses.dialog.value,"onUpdate:modelValue":t[7]||(t[7]=e=>a.gameses.dialog.value=e),fullscreen:""},{default:withCtx((()=>[createVNode(p,{class:"d-flex flex-column",style:{width:"100%",height:"100%"}},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_8])),_:1}),createVNode(d,{class:"d-flex flex-grow-1"},{default:withCtx((()=>[withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":t[4]||(t[4]=e=>a.gameses.xmlString.value=e),spellcheck:"false",class:"textArea d-flex px-2 flex-grow-1"},null,512),[[vModelText,a.gameses.xmlString.value]])])),_:1}),createVNode(h,{style:{flex:"0 1 auto"}},{default:withCtx((()=>[createVNode(s),createVNode(u,{color:"red darken-1",text:"",onClick:t[5]||(t[5]=e=>a.gameses.closeDialog())},{default:withCtx((()=>[_hoisted_9])),_:1}),createVNode(u,{color:"green darken-1",text:"",onClick:t[6]||(t[6]=e=>a.gameses.saveChanges())},{default:withCtx((()=>[_hoisted_10])),_:1})])),_:1})])),_:1})])),_:1},8,["modelValue"])]),_hoisted_11,createBaseVNode("div",_hoisted_12,[createBaseVNode("div",_hoisted_13,[_hoisted_14,createBaseVNode("span",_hoisted_15,toDisplayString(a.isMP?"single":"multi")+"-player",1),_hoisted_16]),createVNode(s),createVNode(u,{title:"Convert",onClick:a.convert.click,size:"x-small",icon:""},{default:withCtx((()=>[createVNode(c,{color:"secondary"},{default:withCtx((()=>[_hoisted_17])),_:1})])),_:1},8,["onClick"]),createVNode(u,{onClick:t[8]||(t[8]=withModifiers((e=>a.convert.dialog.value=!0),["stop"])),size:"x-small",icon:""},{default:withCtx((()=>[createVNode(c,null,{default:withCtx((()=>[_hoisted_18])),_:1}),createVNode(m,{anchor:"bottom",activator:"parent"},{default:withCtx((()=>[_hoisted_19])),_:1})])),_:1}),createVNode(f,{class:"convertInfo",modelValue:a.convert.dialog.value,"onUpdate:modelValue":t[10]||(t[10]=e=>a.convert.dialog.value=e)},{default:withCtx((()=>[createVNode(p,null,{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[createBaseVNode("span",_hoisted_20,toDisplayString(a.isMP?"Multi-player to single-player convertion":"Single-player to multi-player convertion"),1),createVNode(s),createVNode(u,{color:"red",size:"x-small",icon:"",onClick:t[9]||(t[9]=e=>a.convert.dialog.value=!1)},{default:withCtx((()=>[createVNode(c,null,{default:withCtx((()=>[_hoisted_21])),_:1})])),_:1})])),_:1}),createVNode(g),a.isMP?(openBlock(),createBlock(d,{key:0,class:"px-2"},{default:withCtx((()=>[_hoisted_22])),_:1})):(openBlock(),createBlock(d,{key:1,class:"px-2"},{default:withCtx((()=>[_hoisted_23])),_:1}))])),_:1})])),_:1},8,["modelValue"])]),a.isMP?(openBlock(),createElementBlock("div",_hoisted_24,[createVNode(v,{"hide-details":"true",density:"comfortable",label:"Campaign ID",variant:"outlined",style:{color:"white","min-width":"140px"},modelValue:a.campaignId.inputVal.value,"onUpdate:modelValue":t[11]||(t[11]=e=>a.campaignId.inputVal.value=e),onKeyup:a.campaignId.keyUp,class:normalizeClass(["mr-2 mb-0",{"text-secondary":a.campaignId.isDifferent.value,"text-white":!a.campaignId.isDifferent.value}])},null,8,["modelValue","onKeyup","class"]),createVNode(u,{variant:"outlined",disabled:!a.campaignId.isDifferent.value,onClick:a.campaignId.click,color:"secondary",class:"py-5"},{default:withCtx((()=>[_hoisted_25])),_:1},8,["disabled","onClick"])])):createCommentVNode("",!0),createBaseVNode("div",_hoisted_26,[createVNode(v,{"hide-details":"true",density:"comfortable",label:"Current Money",variant:"outlined",style:{color:"white","min-width":"140px"},modelValue:a.money.inputVal.value,"onUpdate:modelValue":t[12]||(t[12]=e=>a.money.inputVal.value=e),onKeyup:a.money.keyUp,class:normalizeClass(["mr-2 mb-0",{"text-secondary":a.money.isDifferent.value,"text-white":!a.money.isDifferent.value}])},null,8,["modelValue","onKeyup","class"]),createVNode(u,{variant:"outlined",disabled:!a.money.isDifferent.value,onClick:a.money.click,color:"secondary",class:"py-5"},{default:withCtx((()=>[_hoisted_27])),_:1},8,["disabled","onClick"])])])),_:1})])),_:1})}_sfc_main$3.render=_sfc_render$3,_sfc_main$3.__scopeId="data-v-59af5179",installAssets(_sfc_main$3,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VSpacer:VSpacer,VIcon:VIcon,VCardText:VCardText,VBtn:VBtn,VCardActions:VCardActions,VCard:VCard,VDialog:VDialog,VTooltip:VTooltip,VDivider:VDivider,VTextField:VTextField,VSheet:VSheet});var OwnedSubList_vue_vue_type_style_index_0_scoped_true_lang="\n.iconButton[data-v-9590118c] {\n cursor: pointer;\n}\n.selectedSub[data-v-9590118c] {\n margin-top: 5px;\n margin-right: 5px;\n cursor: pointer;\n}\n";const _sfc_main$2={computed:{ownedSubList(){var e;return null==(e=this.$store.state.gamesession.elements)?void 0:e[0].elements.find((e=>"ownedsubmarines"==e.name)).elements},selectedSub(){return this.$store.state.gamesession.elements[0].attributes.submarine}},methods:{test(e){console.log(e)},deleteSub(e){let t=this.$store.state.subfiles,o=Object.keys(t).find((o=>t[o].elements[0].attributes.name===e));if(!o)return console.error(`Failed to delete ${e} - not found in attached .sub files`);delete t[o];let a=this.ownedSubList.findIndex((t=>t.attributes.name===e));if(-1===a)return this.$store.dispatch("showAlert",{type:"error",text:`Failed to delete ${e} - not found in ownedSubmarines.`}),console.error(`Failed to delete ${e} - not found in ownedSubmarines`);this.ownedSubList.splice(a,1),this.$store.dispatch("showAlert",{type:"success",text:`Removed "${e}" from the owned submarines and "${o}" file from the savefile.`})},downloadSub(e){let t=this.$store.state.subfiles,o=Object.keys(t).find((o=>t[o].elements[0].attributes.name===e));if(!o)return console.error(`Failed to download ${e} - not found in attached .sub files`);let a=CompressSub(desanitized_js2xml(t[o])),n=document.createElement("a");n.href=URL.createObjectURL(new Blob([a.buffer],{type:"application/gzip"})),n.download=o,n.click()},editSub(e){let t=this.$store.state.subfiles,o=Object.keys(t).find((o=>t[o].elements[0].attributes.name===e));if(!o)return console.error(`Failed to move ${e} to editor - not found in attached .sub files`);this.$store.dispatch("subUploaded",{name:o+".raw",data:JSON.parse(JSON.stringify(t[o]))}),this.$router.push("/SubTools")},selectSub(e){this.$store.state.gamesession.elements[0].attributes.submarine=e,this.$store.dispatch("showAlert",{type:"success",text:`Set current submarine to ${e}.`})}}},_hoisted_1$1=createTextVNode(" 拥有的潜艇 "),_hoisted_2$1=["checked","onClick"],_hoisted_3$1={class:"subname"},_hoisted_4$1=createTextVNode(" mdi-file-download-outline "),_hoisted_5$1=createTextVNode(" mdi-clipboard-arrow-right-outline "),_hoisted_6$1=createTextVNode(" mdi-delete-outline ");function _sfc_render$2(e,t,o,a,n,r){const l=resolveComponent("v-card-title"),i=resolveComponent("v-card-header"),s=resolveComponent("v-spacer"),c=resolveComponent("v-icon"),d=resolveComponent("v-sheet"),u=resolveComponent("v-card");return openBlock(),createBlock(u,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(i,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[_hoisted_1$1])),_:1})])),_:1}),createVNode(d,{class:"mb-2"},{default:withCtx((()=>[(openBlock(!0),createElementBlock(Fragment,null,renderList(r.ownedSubList.map((e=>e.attributes.name)),(e=>(openBlock(),createBlock(d,{key:e,class:"d-flex flex-row justify-center px-4"},{default:withCtx((()=>[createBaseVNode("input",{title:"Set as currently used",class:"selectedSub",type:"radio",name:"selectedOwnedSub",checked:r.selectedSub===e,onClick:t=>r.selectSub(e)},null,8,_hoisted_2$1),createBaseVNode("div",_hoisted_3$1,toDisplayString(e),1),createVNode(s),createVNode(c,{title:"Download submarine file",color:"secondary",class:"iconButton",onClick:t=>r.downloadSub(e)},{default:withCtx((()=>[_hoisted_4$1])),_:2},1032,["onClick"]),createVNode(c,{title:"Edit submarine",color:"secondary",class:"iconButton",onClick:t=>r.editSub(e)},{default:withCtx((()=>[_hoisted_5$1])),_:2},1032,["onClick"]),createVNode(c,{title:"Delete submarine",color:"red",class:"iconButton",onClick:t=>r.deleteSub(e)},{default:withCtx((()=>[_hoisted_6$1])),_:2},1032,["onClick"])])),_:2},1024)))),128))])),_:1})])),_:1})}_sfc_main$2.render=_sfc_render$2,_sfc_main$2.__scopeId="data-v-9590118c",installAssets(_sfc_main$2,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VSpacer:VSpacer,VIcon:VIcon,VSheet:VSheet,VCard:VCard});const _sfc_main$1={props:{blockDownload:Boolean},computed:{filename(){return this.$store.state.savefileName||"none"},modificationDate(){var e,t,o;let a=null==(o=null==(t=null==(e=this.$store.state.gamesession.elements)?void 0:e[0])?void 0:t.attributes)?void 0:o.savetime;return a?new Date(1e3*parseInt(a)).toLocaleString():"-"}},methods:{download(){var e={};e["gamesession.xml"]=gsHeader+desanitized_js2xml(this.$store.state.gamesession);for(let[a,n]of Object.entries(this.$store.state.subfiles))e[a]=CompressSub(desanitized_js2xml(n));var t=CompressSave(e),o=document.createElement("a");o.href=URL.createObjectURL(new Blob([t.buffer],{type:"application/gzip"})),o.download=this.$store.state.savefileName,o.click()}}},_hoisted_1=createTextVNode(" 下载 "),_hoisted_2={class:"float-right ma-1"},_hoisted_3=createTextVNode(" 已加载文件: "),_hoisted_4={class:"text-primary"},_hoisted_5=createTextVNode(" , Save 日期/时间: "),_hoisted_6={class:"text-primary"};function _sfc_render$1(e,t,o,a,n,r){const l=resolveComponent("v-btn"),i=resolveComponent("v-card"),s=resolveComponent("v-col");return openBlock(),createBlock(s,null,{default:withCtx((()=>[createVNode(i,{elevation:"1",class:"pr-2"},{default:withCtx((()=>[createVNode(l,{color:o.blockDownload?"surface":"secondary",disabled:o.blockDownload,onClick:r.download},{default:withCtx((()=>[_hoisted_1])),_:1},8,["color","disabled","onClick"]),createBaseVNode("div",_hoisted_2,[_hoisted_3,createBaseVNode("span",_hoisted_4,toDisplayString(r.filename),1),_hoisted_5,createBaseVNode("span",_hoisted_6,toDisplayString(r.modificationDate),1)])])),_:1})])),_:1})}_sfc_main$1.render=_sfc_render$1,installAssets(_sfc_main$1,"components",{VBtn:VBtn,VCard:VCard,VCol:VCol});const _sfc_main={name:"SaveTools",components:{CampaignSettings:_sfc_main$5,CrewList:_sfc_main$4,FileDropper:_sfc_main$6,MiscSaveTools:_sfc_main$3,OwnedSubList:_sfc_main$2,SaveDataBar:_sfc_main$1},computed:__spreadValues({},mapGetters(["saveLoaded"]))};function _sfc_render(e,t,o,a,n,r){const l=resolveComponent("FileDropper"),i=resolveComponent("v-col"),s=resolveComponent("v-row"),c=resolveComponent("SaveDataBar"),d=resolveComponent("OwnedSubList"),u=resolveComponent("CampaignSettings"),h=resolveComponent("CrewList"),p=resolveComponent("MiscSaveTools"),f=resolveComponent("v-container");return openBlock(),createBlock(f,null,{default:withCtx((()=>[createVNode(s,null,{default:withCtx((()=>[createVNode(i,null,{default:withCtx((()=>[createVNode(l)])),_:1})])),_:1}),createVNode(s,null,{default:withCtx((()=>[createVNode(c,{blockDownload:!e.saveLoaded},null,8,["blockDownload"])])),_:1}),e.saveLoaded?(openBlock(),createBlock(s,{key:0},{default:withCtx((()=>[createVNode(i,null,{default:withCtx((()=>[createVNode(d)])),_:1}),createVNode(i,null,{default:withCtx((()=>[createVNode(u)])),_:1}),createVNode(i,null,{default:withCtx((()=>[createVNode(h)])),_:1}),createVNode(i,null,{default:withCtx((()=>[createVNode(p)])),_:1})])),_:1})):createCommentVNode("",!0)])),_:1})}_sfc_main.render=_sfc_render,installAssets(_sfc_main,"components",{VCol:VCol,VRow:VRow,VContainer:VContainer});export{_sfc_main as default};
diff --git a/assets/SaveTools.97bc7b6b.css b/assets/SaveTools.97bc7b6b.css
deleted file mode 100644
index 907718a..0000000
--- a/assets/SaveTools.97bc7b6b.css
+++ /dev/null
@@ -1 +0,0 @@
-.iconButton[data-v-3af6cd4c]{cursor:pointer}input[data-v-3af6cd4c]{border:1px solid white;width:100%}.toolTitle[data-v-3af6cd4c]{font-weight:normal;font-size:1.1em;align-self:center;margin-left:12px}.toolContent[data-v-3af6cd4c]:not(:last-child){margin-bottom:16px}.textArea[data-v-3af6cd4c]{background:white;color:#000}.textArea[data-v-a81c326a]{background:white;color:#000}.charEditCardText[data-v-a81c326a]{opacity:100;display:flex;flex-flow:row wrap;justify-content:space-evenly;align-items:flex-center}.charEditCardText>*[data-v-a81c326a]{margin:0 8px 16px}input[data-v-a81c326a]{border:1px solid white;color:#fff;font-size:2em;padding-left:8px}select[data-v-a81c326a]{border:1px solid white;font-size:2em;padding-left:8px;line-height:40px;cursor:pointer;border-radius:5px}option[data-v-a81c326a]{background:rgb(var(--v-theme-surface))}.mainCard.v-card[data-v-a81c326a]{background-color:rgb(var(--v-theme-background))}.iconButton[data-v-a81c326a]{cursor:pointer}.captain[data-v-a81c326a]{color:#718fb7}.engineer[data-v-a81c326a]{color:#d7ac60}.mechanic[data-v-a81c326a]{color:#60c9d0}.securityofficer[data-v-a81c326a]{color:#8d776a}.medicaldoctor[data-v-a81c326a]{color:#b9472b}.assistant[data-v-a81c326a]{color:#f8f8f8}.iconButton[data-v-a3f6e3d2]{cursor:pointer}input[data-v-a3f6e3d2]{border:1px solid white;width:100%}.toolTitle[data-v-a3f6e3d2]{font-weight:normal;font-size:1.1em;align-self:center;margin-left:12px}.toolContent[data-v-a3f6e3d2]:not(:last-child){margin-bottom:16px}.textArea[data-v-a3f6e3d2]{background:white;color:#000}.iconButton[data-v-1c0f442e]{cursor:pointer}.selectedSub[data-v-1c0f442e]{margin-top:5px;margin-right:5px;cursor:pointer}
diff --git a/assets/SubTools.19f2515d.css b/assets/SubTools.19f2515d.css
deleted file mode 100644
index 5e121b0..0000000
--- a/assets/SubTools.19f2515d.css
+++ /dev/null
@@ -1 +0,0 @@
-input[data-v-7f184210]{border:1px solid white;width:100%}.toolTitle[data-v-7f184210]{font-weight:normal;font-size:1.1em;align-self:center;margin-left:12px}.toolContent[data-v-7f184210]:not(:last-child){margin-bottom:16px}.v-dialog.subCompactor .v-overlay__content{max-width:820px!important;max-height:650px!important}.textArea{background:white;color:#000;width:100%;min-height:80px}.iconButton[data-v-5e434df2]{cursor:pointer}.iconButton[data-v-af6b7320]{cursor:pointer}select[data-v-6a3a5d71]{border:1px solid white;color:#fff;cursor:pointer}option[data-v-6a3a5d71]{background:#212121}
diff --git a/assets/SubTools.1eac9245.css b/assets/SubTools.1eac9245.css
new file mode 100644
index 0000000..c005f47
--- /dev/null
+++ b/assets/SubTools.1eac9245.css
@@ -0,0 +1 @@
+input[data-v-0346e45a]{border:1px solid white;width:100%}.toolTitle[data-v-0346e45a]{font-weight:normal;font-size:1.1em;align-self:center;margin-left:12px}.toolContent[data-v-0346e45a]:not(:last-child){margin-bottom:16px}.v-dialog.subCompactor .v-overlay__content{max-width:820px!important;max-height:650px!important}.textArea{background:white;color:#000;width:100%;min-height:80px}.iconButton[data-v-7c79bf20]{cursor:pointer}.iconButton[data-v-7aa471af]{cursor:pointer}select[data-v-040598dc]{border:1px solid white;color:#fff;cursor:pointer}option[data-v-040598dc]{background:#212121}
diff --git a/assets/SubTools.52417866.js b/assets/SubTools.52417866.js
deleted file mode 100644
index bb31fac..0000000
--- a/assets/SubTools.52417866.js
+++ /dev/null
@@ -1 +0,0 @@
-var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,o)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,__spreadValues=(e,t)=>{for(var o in t||(t={}))__hasOwnProp.call(t,o)&&__defNormalProp(e,o,t[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(t))__propIsEnum.call(t,o)&&__defNormalProp(e,o,t[o]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));import{i as installAssets,f as VBtn,T as VIcon,l as VDialog,L as useStore,M as computed,N as ref,O as watch,o as openBlock,n as createBlock,w as withCtx,b as createVNode,P as createBaseVNode,p as normalizeClass,W as withDirectives,b7 as vModelCheckbox,Z as withModifiers,d as createTextVNode,Q as pushScopeId,R as popScopeId,r as resolveComponent,X as vModelText,U as createCommentVNode,a as createElementBlock,m as renderList,F as Fragment,t as toDisplayString,S as mapGetters,Y as vModelSelect}from"./vendor.d2dd6a75.js";import{V as VTextField,a as VDivider,_ as _baseClone,b as _sfc_main$6}from"./FileDropper.295cac68.js";import{V as VCardTitle,a as VCardHeader,c as VCardText,b as VCard,e as VCol,f as VRow,g as VContainer}from"./VRow.93776d3b.js";import{V as VSpacer}from"./VTooltip.c0af69e3.js";import{V as VSheet}from"./VSheet.36660dd1.js";import{d as desanitized_js2xml,C as CompressSub}from"./index.0cad470e.js";var MiscSubTools_vue_vue_type_style_index_0_scoped_true_lang="\ninput[data-v-7f184210] {\r\n border: 1px solid white;\r\n width: 100%;\n}\n.toolTitle[data-v-7f184210] {\r\n font-weight: normal;\r\n font-size: 1.1em;\r\n align-self: center;\r\n margin-left: 12px;\n}\n.toolContent[data-v-7f184210]:not(:last-child) {\r\n margin-bottom: 16px;\n}\r\n",MiscSubTools_vue_vue_type_style_index_1_lang="\n.v-dialog.subCompactor .v-overlay__content {\r\n max-width: 820px !important;\r\n max-height: 650px !important;\n}\r\n";const _sfc_main$5={setup:()=>({price:priceSetup(),wallClean:wallCleanSetup(),compact:compactSetup()})};function priceSetup(){const e=useStore(),t=computed((()=>e.getters.sub.attributes.price)),o=ref(t.value),a=computed((()=>o.value!==t.value));function s(){parseInt(o.value)>=0?(e.getters.sub.attributes.price=o.value,e.dispatch("showAlert",{type:"success",text:`Set submarine price to "${o.value}"`})):e.dispatch("showAlert",{type:"info",text:"Value must be a positive number."})}return watch(t,(()=>{o.value=t.value})),{inputVal:o,isDifferent:a,click:s,keyUp:function(e){"Enter"===e.key&&s()}}}function wallCleanSetup(){const e=useStore(),t=ref(!0);return{checkBoxVal:t,click:function(){let o=0;for(let t of e.getters.sub.elements.filter((e=>"Hull"===e.name)))t.attributes.backgroundsections&&""!==t.attributes.backgroundsections&&(t.attributes.backgroundsections="",o++);if(t.value)for(let t of e.getters.sub.elements.filter((e=>"LinkedSubmarine"===e.name)))for(let e of t.elements.filter((e=>"Hull"===e.name)))e.attributes.backgroundsections&&""!==e.attributes.backgroundsections&&(e.attributes.backgroundsections="",o++);o>0?e.dispatch("showAlert",{type:"success",text:`Cleaned stains from ${o} walls.`}):e.dispatch("showAlert",{type:"info",text:"No stained walls found."})}}}function compactSetup(){const e=useStore(),t=ref(!1),o=computed((()=>e.getters.sub.elements.filter((e=>"LinkedSubmarine"===e.name)))),a=computed((()=>{var t;return(null==(t=e.state.editorSubmarine.data.elements[0].attributes)?void 0:t.previewimage)||""}));return{dialog:t,clickSub:function(){e.state.editorSubmarine.data.elements[0].attributes.previewimage="iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAE0lEQVR4nGNkYGD4D8QMTAxQAAAOKAEDRx/UrAAAAABJRU5ErkJggg==",e.dispatch("showAlert",{type:"success",text:"Compacted main submarine."})},clickShuttles:function(){var t;let a=0;for(let e of o.value)console.dir(e),(null==(t=null==e?void 0:e.attributes)?void 0:t.previewimage)&&(e.attributes.previewimage="iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAE0lEQVR4nGNkYGD4D8QMTAxQAAAOKAEDRx/UrAAAAABJRU5ErkJggg==",a++);a>0?e.dispatch("showAlert",{type:"success",text:`Compacted ${a} shuttles.`}):e.dispatch("showAlert",{type:"info",text:"No shuttles with preview images found."})},linkedSubs:o,previewImage:a}}const _withScopeId$2=e=>(pushScopeId("data-v-7f184210"),e=e(),popScopeId(),e),_hoisted_1$4=createTextVNode(" 杂项工具 "),_hoisted_2$4={class:"toolContent d-flex flex-row justify-space-between align-center px-2"},_hoisted_3$3=createTextVNode(" SET "),_hoisted_4$3=_withScopeId$2((()=>createBaseVNode("h3",{class:"toolTitle"},"Clean walls",-1))),_hoisted_5$3={class:"toolContent d-flex flex-row justify-flex-start align-center px-2",style:{width:"100%"}},_hoisted_6$3=_withScopeId$2((()=>createBaseVNode("div",{class:"mx-2"},"Include shuttles",-1))),_hoisted_7$2=createTextVNode(" CLEAN "),_hoisted_8$1={class:"toolTitle"},_hoisted_9$1=createTextVNode(" Compact sub "),_hoisted_10$1=createTextVNode("mdi-help-circle-outline"),_hoisted_11$1=_withScopeId$2((()=>createBaseVNode("span",{class:"text-h5"},'"Compact" submarine tool',-1))),_hoisted_12$1=createTextVNode("mdi-close-thick"),_hoisted_13=createTextVNode(" This tool allows you to significantly reduce file size of your submarine by replacing its preview image with 4 black pixels. Example: removing preview image from one of my shuttles this was reduced its filesize from 71KB to 9KB."),_hoisted_14=_withScopeId$2((()=>createBaseVNode("br",null,null,-1))),_hoisted_15=_withScopeId$2((()=>createBaseVNode("h5",{class:"text-h5"},"Compact Shuttles",-1))),_hoisted_16=createTextVNode(" This will remove preview images of all shuttles attached to the submarine. Preview images of shuttles stored inside main submarine file aren't used anywhere in-game so stripping them has no downsides. "),_hoisted_17=_withScopeId$2((()=>createBaseVNode("h5",{class:"text-h5"},"Compact Sub",-1))),_hoisted_18=createTextVNode(" This will remove preview image of the loaded submarine, making its file smaller. If this is used on a main submarine (not used as a shuttle), the lack of image will be noticeable. "),_hoisted_19={class:"toolContent d-flex flex-row align-center px-2",style:{width:"100%","justify-content":"space-evenly"}},_hoisted_20=createTextVNode(" Shuttles "),_hoisted_21=createTextVNode(" Sub ");function _sfc_render$5(e,t,o,a,s,r){const i=resolveComponent("v-card-title"),l=resolveComponent("v-card-header"),n=resolveComponent("v-text-field"),d=resolveComponent("v-btn"),c=resolveComponent("v-spacer"),_=resolveComponent("v-icon"),u=resolveComponent("v-divider"),p=resolveComponent("v-card-text"),h=resolveComponent("v-card"),m=resolveComponent("v-dialog"),f=resolveComponent("v-sheet");return openBlock(),createBlock(h,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(l,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(i,null,{default:withCtx((()=>[_hoisted_1$4])),_:1})])),_:1}),createVNode(f,{class:"d-flex flex-column align-center"},{default:withCtx((()=>[createBaseVNode("div",_hoisted_2$4,[createVNode(n,{density:"comfortable",label:"Change Price",variant:"outlined",style:{color:"white","min-width":"140px"},modelValue:a.price.inputVal.value,"onUpdate:modelValue":t[0]||(t[0]=e=>a.price.inputVal.value=e),onKeyup:a.price.keyUp,class:normalizeClass(["mr-2 mb-0",{"text-secondary":a.price.isDifferent.value,"text-white":!a.price.isDifferent.value}])},null,8,["modelValue","onKeyup","class"]),createVNode(d,{variant:"outlined",disabled:!a.price.isDifferent.value,onClick:a.price.click,color:"secondary",class:"py-5"},{default:withCtx((()=>[_hoisted_3$3])),_:1},8,["disabled","onClick"])]),_hoisted_4$3,createBaseVNode("div",_hoisted_5$3,[withDirectives(createBaseVNode("input",{style:{width:"auto"},type:"checkbox","onUpdate:modelValue":t[1]||(t[1]=e=>a.wallClean.checkBoxVal.value=e)},null,512),[[vModelCheckbox,a.wallClean.checkBoxVal.value]]),_hoisted_6$3,createVNode(c),createVNode(d,{variant:"outlined",onClick:a.wallClean.click,color:"secondary"},{default:withCtx((()=>[_hoisted_7$2])),_:1},8,["onClick"])]),createBaseVNode("h3",_hoisted_8$1,[_hoisted_9$1,createVNode(d,{class:"ml-2",onClick:t[2]||(t[2]=withModifiers((e=>a.compact.dialog.value=!0),["stop"])),size:"x-small",icon:"",title:"Info"},{default:withCtx((()=>[createVNode(_,null,{default:withCtx((()=>[_hoisted_10$1])),_:1})])),_:1}),createVNode(m,{class:"subCompactor",modelValue:a.compact.dialog.value,"onUpdate:modelValue":t[4]||(t[4]=e=>a.compact.dialog.value=e)},{default:withCtx((()=>[createVNode(h,null,{default:withCtx((()=>[createVNode(i,null,{default:withCtx((()=>[_hoisted_11$1,createVNode(c),createVNode(d,{color:"red",size:"x-small",icon:"",onClick:t[3]||(t[3]=e=>a.compact.dialog.value=!1)},{default:withCtx((()=>[createVNode(_,null,{default:withCtx((()=>[_hoisted_12$1])),_:1})])),_:1})])),_:1}),createVNode(u),createVNode(p,{class:"pl-8"},{default:withCtx((()=>[_hoisted_13,_hoisted_14,_hoisted_15,_hoisted_16,_hoisted_17,_hoisted_18])),_:1})])),_:1})])),_:1},8,["modelValue"])]),createBaseVNode("div",_hoisted_19,[createVNode(d,{variant:"outlined",disabled:0===a.compact.linkedSubs.value.length,onClick:a.compact.clickShuttles,color:"secondary",title:0===a.compact.linkedSubs.value.length?"No shuttles found":"Compact attached shuttles"},{default:withCtx((()=>[_hoisted_20])),_:1},8,["disabled","onClick","title"]),createVNode(d,{variant:"outlined",disabled:""===a.compact.previewImage.value,onClick:a.compact.clickSub,color:"secondary",title:""===a.compact.previewImage.value?"No preview image found":"Compact main submarine"},{default:withCtx((()=>[_hoisted_21])),_:1},8,["disabled","onClick","title"])])])),_:1})])),_:1})}_sfc_main$5.render=_sfc_render$5,_sfc_main$5.__scopeId="data-v-7f184210",installAssets(_sfc_main$5,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VTextField:VTextField,VBtn:VBtn,VSpacer:VSpacer,VIcon:VIcon,VDivider:VDivider,VCardText:VCardText,VCard:VCard,VDialog:VDialog,VSheet:VSheet});var ScriptRunner_vue_vue_type_style_index_0_lang="\n.textArea {\r\n background: white;\r\n color: black;\r\n width: 100%;\r\n min-height: 80px;\n}\r\n";const _sfc_main$4={data:()=>({areaText:"//check console\nconsole.dir(submarine)"}),methods:{run(){var submarine=this.$store.getters.sub;submarine.toString(),eval(this.areaText),this.$store.dispatch("showAlert",{type:"success",text:"Succesfully executed script"})}}},_hoisted_1$3=createTextVNode(" Run Script "),_hoisted_2$3=createTextVNode("Run");function _sfc_render$4(e,t,o,a,s,r){const i=resolveComponent("v-card-title"),l=resolveComponent("v-card-header"),n=resolveComponent("v-btn"),d=resolveComponent("v-sheet"),c=resolveComponent("v-card");return openBlock(),createBlock(c,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(l,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(i,null,{default:withCtx((()=>[_hoisted_1$3])),_:1})])),_:1}),createVNode(d,{class:"mb-2 d-flex flex-column justify-center align-center px-4"},{default:withCtx((()=>[withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":t[0]||(t[0]=e=>s.areaText=e),spellcheck:"false",class:"textArea px-2 mx-0"},null,512),[[vModelText,s.areaText]]),createVNode(n,{class:"mt-4",color:"secondary",variant:"outlined",onClick:r.run,disabled:""==s.areaText},{default:withCtx((()=>[_hoisted_2$3])),_:1},8,["onClick","disabled"])])),_:1})])),_:1})}_sfc_main$4.render=_sfc_render$4,installAssets(_sfc_main$4,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VBtn:VBtn,VSheet:VSheet,VCard:VCard});var baseClone=_baseClone,CLONE_SYMBOLS_FLAG=4;function clone(e){return baseClone(e,CLONE_SYMBOLS_FLAG)}var clone_1=clone,ShuttleExporter_vue_vue_type_style_index_0_scoped_true_lang="\n.iconButton[data-v-5e434df2] {\r\n cursor: pointer;\n}\r\n";const _sfc_main$3={methods:{downloadShuttle(e){let t=clone_1(e);t.name="Submarine";let o=desanitized_js2xml({elements:[t]}),a=CompressSub(o),s=document.createElement("a");s.href=URL.createObjectURL(new Blob([a.buffer],{type:"application/gzip"})),s.download=`${t.attributes.name}.sub`,s.click()},downloadImage(){var e=document.createElement("a");e.href="data:image/png;base64,"+this.previewImage,e.download=`${this.$store.state.editorSubmarine.filename.slice(0,-4)}.png`,e.click()}},computed:{linkedSubmarines(){return this.$store.getters.sub.elements.filter((e=>"LinkedSubmarine"===e.name)).map((e=>({name:e.attributes.name,object:e,snowflake:e.attributes.linkedto})))},previewImage(){var e;return(null==(e=this.$store.state.editorSubmarine.data.elements[0].attributes)?void 0:e.previewimage)||""}}},_withScopeId$1=e=>(pushScopeId("data-v-5e434df2"),e=e(),popScopeId(),e),_hoisted_1$2=createTextVNode(" Export from file "),_hoisted_2$2=_withScopeId$1((()=>createBaseVNode("div",{class:"d-flex flex-row justify-center align-center"},"Preview Image",-1))),_hoisted_3$2=createTextVNode(" mdi-file-download-outline "),_hoisted_4$2={class:"d-flex flex-row justify-center align-center"},_hoisted_5$2=createTextVNode(" mdi-file-download-outline "),_hoisted_6$2={key:1,class:"text-center text-grey"};function _sfc_render$3(e,t,o,a,s,r){const i=resolveComponent("v-card-title"),l=resolveComponent("v-card-header"),n=resolveComponent("v-spacer"),d=resolveComponent("v-icon"),c=resolveComponent("v-sheet"),_=resolveComponent("v-card");return openBlock(),createBlock(_,{elevation:"1",class:"pb-4"},{default:withCtx((()=>[createVNode(l,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(i,null,{default:withCtx((()=>[_hoisted_1$2])),_:1})])),_:1}),createVNode(c,{class:"d-flex flex-column align-center"},{default:withCtx((()=>[""!==r.previewImage?(openBlock(),createBlock(c,{key:0,class:"d-flex flex-row justify-center align-center mt-2 px-4",style:{width:"100%"}},{default:withCtx((()=>[_hoisted_2$2,createVNode(n),createVNode(d,{title:"Download",class:"iconButton",color:"secondary",onClick:t[0]||(t[0]=e=>r.downloadImage())},{default:withCtx((()=>[_hoisted_3$2])),_:1})])),_:1})):createCommentVNode("",!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(r.linkedSubmarines,(e=>(openBlock(),createBlock(c,{class:"d-flex flex-row justify-center align-center mt-2 px-4",style:{width:"100%"},key:e.snowflake},{default:withCtx((()=>[createBaseVNode("div",_hoisted_4$2,toDisplayString(e.name),1),createVNode(n),createVNode(d,{title:"Download",class:"iconButton",color:"secondary",onClick:t=>r.downloadShuttle(e.object)},{default:withCtx((()=>[_hoisted_5$2])),_:2},1032,["onClick"])])),_:2},1024)))),128)),""==r.previewImage&&0==r.linkedSubmarines.length?(openBlock(),createElementBlock("div",_hoisted_6$2," Nothing suitable for export found ")):createCommentVNode("",!0)])),_:1})])),_:1})}_sfc_main$3.render=_sfc_render$3,_sfc_main$3.__scopeId="data-v-5e434df2",installAssets(_sfc_main$3,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VSpacer:VSpacer,VIcon:VIcon,VSheet:VSheet,VCard:VCard});var SubDataBar_vue_vue_type_style_index_0_scoped_true_lang="\n.iconButton[data-v-af6b7320] {\r\n cursor: pointer;\n}\r\n";const _sfc_main$2={props:{blockDownload:Boolean},computed:__spreadProps(__spreadValues({},mapGetters(["saveLoaded"])),{filename(){return this.$store.state.editorSubmarine.filename||"none"},subname(){var e,t;return(null==(t=null==(e=this.$store.state.editorSubmarine.data)?void 0:e.elements)?void 0:t[0].attributes.name)||"-"},buttonActive(){return this.saveLoaded&&!this.blockDownload}}),methods:{download(){let e=CompressSub(desanitized_js2xml(this.$store.state.editorSubmarine.data)),t=document.createElement("a");t.href=URL.createObjectURL(new Blob([e.buffer],{type:"application/gzip"})),t.download=this.$store.state.editorSubmarine.filename,t.click()},pushToSaveEditor(){this.buttonActive&&(console.log("dispatching "+(this.filename+".raw")),this.$store.dispatch("fileUploaded",{name:this.filename+".raw",data:this.$store.state.editorSubmarine.data}),this.$router.push("/"))}}},_hoisted_1$1=createTextVNode(" 下载 "),_hoisted_2$1=createTextVNode(" mdi-clipboard-arrow-left-outline "),_hoisted_3$1={class:"float-right ma-1"},_hoisted_4$1=createTextVNode(" 已加载文件: "),_hoisted_5$1={class:"text-primary"},_hoisted_6$1=createTextVNode(" , 潜艇名称: "),_hoisted_7$1={class:"text-primary"};function _sfc_render$2(e,t,o,a,s,r){const i=resolveComponent("v-btn"),l=resolveComponent("v-icon"),n=resolveComponent("v-card"),d=resolveComponent("v-col");return openBlock(),createBlock(d,null,{default:withCtx((()=>[createVNode(n,{elevation:"1",class:"pr-2"},{default:withCtx((()=>[createVNode(i,{class:"mr-4",color:o.blockDownload?"surface":"secondary",disabled:o.blockDownload,onClick:r.download},{default:withCtx((()=>[_hoisted_1$1])),_:1},8,["color","disabled","onClick"]),createVNode(l,{size:"32",title:"load to savefile",color:r.buttonActive?"secondary":"grey",class:normalizeClass({iconButton:r.buttonActive}),onClick:r.pushToSaveEditor},{default:withCtx((()=>[_hoisted_2$1])),_:1},8,["color","class","onClick"]),createBaseVNode("div",_hoisted_3$1,[_hoisted_4$1,createBaseVNode("span",_hoisted_5$1,toDisplayString(r.filename),1),_hoisted_6$1,createBaseVNode("span",_hoisted_7$1,toDisplayString(r.subname),1)])])),_:1})])),_:1})}_sfc_main$2.render=_sfc_render$2,_sfc_main$2.__scopeId="data-v-af6b7320",installAssets(_sfc_main$2,"components",{VBtn:VBtn,VIcon:VIcon,VCard:VCard,VCol:VCol});var WireHider_vue_vue_type_style_index_0_scoped_true_lang="\nselect[data-v-6a3a5d71] {\r\n border: 1px solid white;\r\n color: white;\r\n cursor: pointer;\n}\noption[data-v-6a3a5d71] {\r\n background: #212121;\n}\r\n";const _sfc_main$1={data:()=>({selectedWireType:"all"}),methods:{hideWires(e=!0){var t=e?"True":"False",o=0;for(let a of this.$store.getters.sub.elements.filter((e=>this.matchWireType(e.attributes.identifier))))a.attributes.hiddeningame!=t&&(a.attributes.hiddeningame=t,o++);o>0?this.$store.dispatch("showAlert",{type:"success",text:`Set ${o} wires to ${e?"hidden":"visible"}`}):this.$store.dispatch("showAlert",{type:"info",text:"All wires of that type were already set to "+(e?"hidden":"visible")})},unhideWires(){this.hideWires(!1)},matchWireType(e){return"all"===this.selectedWireType?/^.*wire$/.test(e):e===this.selectedWireType}}},_withScopeId=e=>(pushScopeId("data-v-6a3a5d71"),e=e(),popScopeId(),e),_hoisted_1=createTextVNode(" Wire Hider "),_hoisted_2=_withScopeId((()=>createBaseVNode("option",{value:"all"},"all",-1))),_hoisted_3=_withScopeId((()=>createBaseVNode("option",{value:"whitewire"},"white",-1))),_hoisted_4=_withScopeId((()=>createBaseVNode("option",{value:"redwire"},"red",-1))),_hoisted_5=_withScopeId((()=>createBaseVNode("option",{value:"bluewire"},"blue",-1))),_hoisted_6=_withScopeId((()=>createBaseVNode("option",{value:"yellowwire"},"yellow",-1))),_hoisted_7=_withScopeId((()=>createBaseVNode("option",{value:"greenwire"},"green",-1))),_hoisted_8=_withScopeId((()=>createBaseVNode("option",{value:"blackwire"},"black",-1))),_hoisted_9=_withScopeId((()=>createBaseVNode("option",{value:"brownall"},"brown",-1))),_hoisted_10=[_hoisted_2,_hoisted_3,_hoisted_4,_hoisted_5,_hoisted_6,_hoisted_7,_hoisted_8,_hoisted_9],_hoisted_11=createTextVNode("Hide"),_hoisted_12=createTextVNode("Unhide");function _sfc_render$1(e,t,o,a,s,r){const i=resolveComponent("v-card-title"),l=resolveComponent("v-card-header"),n=resolveComponent("v-btn"),d=resolveComponent("v-sheet"),c=resolveComponent("v-card");return openBlock(),createBlock(c,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(l,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(i,null,{default:withCtx((()=>[_hoisted_1])),_:1})])),_:1}),createVNode(d,{class:"mb-2 px-4 d-flex flex-row justify-center"},{default:withCtx((()=>[withDirectives(createBaseVNode("select",{"onUpdate:modelValue":t[0]||(t[0]=e=>s.selectedWireType=e),class:"px-2"},_hoisted_10,512),[[vModelSelect,s.selectedWireType]]),createVNode(n,{onClick:r.hideWires,variant:"outlined",color:"secondary",class:"mx-2"},{default:withCtx((()=>[_hoisted_11])),_:1},8,["onClick"]),createVNode(n,{onClick:r.unhideWires,variant:"outlined",color:"secondary"},{default:withCtx((()=>[_hoisted_12])),_:1},8,["onClick"])])),_:1})])),_:1})}_sfc_main$1.render=_sfc_render$1,_sfc_main$1.__scopeId="data-v-6a3a5d71",installAssets(_sfc_main$1,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VBtn:VBtn,VSheet:VSheet,VCard:VCard});const _sfc_main={name:"SubTools",computed:__spreadValues({},mapGetters(["subLoaded"])),components:{FileDropper:_sfc_main$6,MiscSubTools:_sfc_main$5,ScriptRunner:_sfc_main$4,ShuttleExporter:_sfc_main$3,SubDataBar:_sfc_main$2,WireHider:_sfc_main$1}};function _sfc_render(e,t,o,a,s,r){const i=resolveComponent("FileDropper"),l=resolveComponent("v-col"),n=resolveComponent("v-row"),d=resolveComponent("SubDataBar"),c=resolveComponent("ShuttleExporter"),_=resolveComponent("WireHider"),u=resolveComponent("ScriptRunner"),p=resolveComponent("MiscSubTools"),h=resolveComponent("v-container");return openBlock(),createBlock(h,null,{default:withCtx((()=>[createVNode(n,null,{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[createVNode(i,{fromSubEditor:!0})])),_:1})])),_:1}),createVNode(n,null,{default:withCtx((()=>[createVNode(d,{blockDownload:!e.subLoaded},null,8,["blockDownload"])])),_:1}),e.subLoaded?(openBlock(),createBlock(n,{key:0},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[createVNode(c)])),_:1}),createVNode(l,null,{default:withCtx((()=>[createVNode(_)])),_:1}),createVNode(l,null,{default:withCtx((()=>[createVNode(u)])),_:1}),createVNode(l,null,{default:withCtx((()=>[createVNode(p)])),_:1})])),_:1})):createCommentVNode("",!0)])),_:1})}_sfc_main.render=_sfc_render,installAssets(_sfc_main,"components",{VCol:VCol,VRow:VRow,VContainer:VContainer});export{_sfc_main as default};
diff --git a/assets/SubTools.7beba2d8.js b/assets/SubTools.7beba2d8.js
new file mode 100644
index 0000000..179df9f
--- /dev/null
+++ b/assets/SubTools.7beba2d8.js
@@ -0,0 +1 @@
+var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,o)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,__spreadValues=(e,t)=>{for(var o in t||(t={}))__hasOwnProp.call(t,o)&&__defNormalProp(e,o,t[o]);if(__getOwnPropSymbols)for(var o of __getOwnPropSymbols(t))__propIsEnum.call(t,o)&&__defNormalProp(e,o,t[o]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t));import{i as installAssets,f as VBtn,T as VIcon,l as VDialog,L as useStore,M as computed,N as ref,O as watch,o as openBlock,n as createBlock,w as withCtx,b as createVNode,P as createBaseVNode,p as normalizeClass,W as withDirectives,b7 as vModelCheckbox,Z as withModifiers,d as createTextVNode,Q as pushScopeId,R as popScopeId,r as resolveComponent,X as vModelText,U as createCommentVNode,a as createElementBlock,m as renderList,F as Fragment,t as toDisplayString,S as mapGetters,Y as vModelSelect}from"./vendor.6119329f.js";import{V as VTextField,a as VDivider,_ as _baseClone,b as _sfc_main$6}from"./FileDropper.73d1d497.js";import{V as VCardTitle,a as VCardHeader,c as VCardText,b as VCard,e as VCol,f as VRow,g as VContainer}from"./VRow.a47e2044.js";import{V as VSpacer}from"./VTooltip.a2067bd7.js";import{V as VSheet}from"./VSheet.bf08dac1.js";import{d as desanitized_js2xml,C as CompressSub}from"./index.40754ba3.js";var MiscSubTools_vue_vue_type_style_index_0_scoped_true_lang="\ninput[data-v-0346e45a] {\n border: 1px solid white;\n width: 100%;\n}\n.toolTitle[data-v-0346e45a] {\n font-weight: normal;\n font-size: 1.1em;\n align-self: center;\n margin-left: 12px;\n}\n.toolContent[data-v-0346e45a]:not(:last-child) {\n margin-bottom: 16px;\n}\n",MiscSubTools_vue_vue_type_style_index_1_lang="\n.v-dialog.subCompactor .v-overlay__content {\n max-width: 820px !important;\n max-height: 650px !important;\n}\n";const _sfc_main$5={setup:()=>({price:priceSetup(),wallClean:wallCleanSetup(),compact:compactSetup()})};function priceSetup(){const e=useStore(),t=computed((()=>e.getters.sub.attributes.price)),o=ref(t.value),a=computed((()=>o.value!==t.value));function s(){parseInt(o.value)>=0?(e.getters.sub.attributes.price=o.value,e.dispatch("showAlert",{type:"success",text:`Set submarine price to "${o.value}"`})):e.dispatch("showAlert",{type:"info",text:"Value must be a positive number."})}return watch(t,(()=>{o.value=t.value})),{inputVal:o,isDifferent:a,click:s,keyUp:function(e){"Enter"===e.key&&s()}}}function wallCleanSetup(){const e=useStore(),t=ref(!0);return{checkBoxVal:t,click:function(){let o=0;for(let t of e.getters.sub.elements.filter((e=>"Hull"===e.name)))t.attributes.backgroundsections&&""!==t.attributes.backgroundsections&&(t.attributes.backgroundsections="",o++);if(t.value)for(let t of e.getters.sub.elements.filter((e=>"LinkedSubmarine"===e.name)))for(let e of t.elements.filter((e=>"Hull"===e.name)))e.attributes.backgroundsections&&""!==e.attributes.backgroundsections&&(e.attributes.backgroundsections="",o++);o>0?e.dispatch("showAlert",{type:"success",text:`Cleaned stains from ${o} walls.`}):e.dispatch("showAlert",{type:"info",text:"No stained walls found."})}}}function compactSetup(){const e=useStore(),t=ref(!1),o=computed((()=>e.getters.sub.elements.filter((e=>"LinkedSubmarine"===e.name)))),a=computed((()=>{var t;return(null==(t=e.state.editorSubmarine.data.elements[0].attributes)?void 0:t.previewimage)||""}));return{dialog:t,clickSub:function(){e.state.editorSubmarine.data.elements[0].attributes.previewimage="iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAE0lEQVR4nGNkYGD4D8QMTAxQAAAOKAEDRx/UrAAAAABJRU5ErkJggg==",e.dispatch("showAlert",{type:"success",text:"Compacted main submarine."})},clickShuttles:function(){var t;let a=0;for(let e of o.value)console.dir(e),(null==(t=null==e?void 0:e.attributes)?void 0:t.previewimage)&&(e.attributes.previewimage="iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAE0lEQVR4nGNkYGD4D8QMTAxQAAAOKAEDRx/UrAAAAABJRU5ErkJggg==",a++);a>0?e.dispatch("showAlert",{type:"success",text:`Compacted ${a} shuttles.`}):e.dispatch("showAlert",{type:"info",text:"No shuttles with preview images found."})},linkedSubs:o,previewImage:a}}const _withScopeId$2=e=>(pushScopeId("data-v-0346e45a"),e=e(),popScopeId(),e),_hoisted_1$4=createTextVNode(" 杂项工具 "),_hoisted_2$4={class:"toolContent d-flex flex-row justify-space-between align-center px-2"},_hoisted_3$3=createTextVNode(" SET "),_hoisted_4$3=_withScopeId$2((()=>createBaseVNode("h3",{class:"toolTitle"},"Clean walls",-1))),_hoisted_5$3={class:"toolContent d-flex flex-row justify-flex-start align-center px-2",style:{width:"100%"}},_hoisted_6$3=_withScopeId$2((()=>createBaseVNode("div",{class:"mx-2"},"Include shuttles",-1))),_hoisted_7$2=createTextVNode(" CLEAN "),_hoisted_8$1={class:"toolTitle"},_hoisted_9$1=createTextVNode(" Compact sub "),_hoisted_10$1=createTextVNode("mdi-help-circle-outline"),_hoisted_11$1=_withScopeId$2((()=>createBaseVNode("span",{class:"text-h5"},'"Compact" submarine tool',-1))),_hoisted_12$1=createTextVNode("mdi-close-thick"),_hoisted_13=createTextVNode(" This tool allows you to significantly reduce file size of your submarine by replacing its preview image with 4 black pixels. Example: removing preview image from one of my shuttles this was reduced its filesize from 71KB to 9KB."),_hoisted_14=_withScopeId$2((()=>createBaseVNode("br",null,null,-1))),_hoisted_15=_withScopeId$2((()=>createBaseVNode("h5",{class:"text-h5"},"Compact Shuttles",-1))),_hoisted_16=createTextVNode(" This will remove preview images of all shuttles attached to the submarine. Preview images of shuttles stored inside main submarine file aren't used anywhere in-game so stripping them has no downsides. "),_hoisted_17=_withScopeId$2((()=>createBaseVNode("h5",{class:"text-h5"},"Compact Sub",-1))),_hoisted_18=createTextVNode(" This will remove preview image of the loaded submarine, making its file smaller. If this is used on a main submarine (not used as a shuttle), the lack of image will be noticeable. "),_hoisted_19={class:"toolContent d-flex flex-row align-center px-2",style:{width:"100%","justify-content":"space-evenly"}},_hoisted_20=createTextVNode(" Shuttles "),_hoisted_21=createTextVNode(" Sub ");function _sfc_render$5(e,t,o,a,s,i){const r=resolveComponent("v-card-title"),l=resolveComponent("v-card-header"),n=resolveComponent("v-text-field"),d=resolveComponent("v-btn"),c=resolveComponent("v-spacer"),_=resolveComponent("v-icon"),u=resolveComponent("v-divider"),p=resolveComponent("v-card-text"),h=resolveComponent("v-card"),m=resolveComponent("v-dialog"),f=resolveComponent("v-sheet");return openBlock(),createBlock(h,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(l,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(r,null,{default:withCtx((()=>[_hoisted_1$4])),_:1})])),_:1}),createVNode(f,{class:"d-flex flex-column align-center"},{default:withCtx((()=>[createBaseVNode("div",_hoisted_2$4,[createVNode(n,{density:"comfortable",label:"Change Price",variant:"outlined",style:{color:"white","min-width":"140px"},modelValue:a.price.inputVal.value,"onUpdate:modelValue":t[0]||(t[0]=e=>a.price.inputVal.value=e),onKeyup:a.price.keyUp,class:normalizeClass(["mr-2 mb-0",{"text-secondary":a.price.isDifferent.value,"text-white":!a.price.isDifferent.value}])},null,8,["modelValue","onKeyup","class"]),createVNode(d,{variant:"outlined",disabled:!a.price.isDifferent.value,onClick:a.price.click,color:"secondary",class:"py-5"},{default:withCtx((()=>[_hoisted_3$3])),_:1},8,["disabled","onClick"])]),_hoisted_4$3,createBaseVNode("div",_hoisted_5$3,[withDirectives(createBaseVNode("input",{style:{width:"auto"},type:"checkbox","onUpdate:modelValue":t[1]||(t[1]=e=>a.wallClean.checkBoxVal.value=e)},null,512),[[vModelCheckbox,a.wallClean.checkBoxVal.value]]),_hoisted_6$3,createVNode(c),createVNode(d,{variant:"outlined",onClick:a.wallClean.click,color:"secondary"},{default:withCtx((()=>[_hoisted_7$2])),_:1},8,["onClick"])]),createBaseVNode("h3",_hoisted_8$1,[_hoisted_9$1,createVNode(d,{class:"ml-2",onClick:t[2]||(t[2]=withModifiers((e=>a.compact.dialog.value=!0),["stop"])),size:"x-small",icon:"",title:"Info"},{default:withCtx((()=>[createVNode(_,null,{default:withCtx((()=>[_hoisted_10$1])),_:1})])),_:1}),createVNode(m,{class:"subCompactor",modelValue:a.compact.dialog.value,"onUpdate:modelValue":t[4]||(t[4]=e=>a.compact.dialog.value=e)},{default:withCtx((()=>[createVNode(h,null,{default:withCtx((()=>[createVNode(r,null,{default:withCtx((()=>[_hoisted_11$1,createVNode(c),createVNode(d,{color:"red",size:"x-small",icon:"",onClick:t[3]||(t[3]=e=>a.compact.dialog.value=!1)},{default:withCtx((()=>[createVNode(_,null,{default:withCtx((()=>[_hoisted_12$1])),_:1})])),_:1})])),_:1}),createVNode(u),createVNode(p,{class:"pl-8"},{default:withCtx((()=>[_hoisted_13,_hoisted_14,_hoisted_15,_hoisted_16,_hoisted_17,_hoisted_18])),_:1})])),_:1})])),_:1},8,["modelValue"])]),createBaseVNode("div",_hoisted_19,[createVNode(d,{variant:"outlined",disabled:0===a.compact.linkedSubs.value.length,onClick:a.compact.clickShuttles,color:"secondary",title:0===a.compact.linkedSubs.value.length?"No shuttles found":"Compact attached shuttles"},{default:withCtx((()=>[_hoisted_20])),_:1},8,["disabled","onClick","title"]),createVNode(d,{variant:"outlined",disabled:""===a.compact.previewImage.value,onClick:a.compact.clickSub,color:"secondary",title:""===a.compact.previewImage.value?"No preview image found":"Compact main submarine"},{default:withCtx((()=>[_hoisted_21])),_:1},8,["disabled","onClick","title"])])])),_:1})])),_:1})}_sfc_main$5.render=_sfc_render$5,_sfc_main$5.__scopeId="data-v-0346e45a",installAssets(_sfc_main$5,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VTextField:VTextField,VBtn:VBtn,VSpacer:VSpacer,VIcon:VIcon,VDivider:VDivider,VCardText:VCardText,VCard:VCard,VDialog:VDialog,VSheet:VSheet});var ScriptRunner_vue_vue_type_style_index_0_lang="\n.textArea {\n background: white;\n color: black;\n width: 100%;\n min-height: 80px;\n}\n";const _sfc_main$4={data:()=>({areaText:"//check console\nconsole.dir(submarine)"}),methods:{run(){var submarine=this.$store.getters.sub;submarine.toString(),eval(this.areaText),this.$store.dispatch("showAlert",{type:"success",text:"Succesfully executed script"})}}},_hoisted_1$3=createTextVNode(" Run Script "),_hoisted_2$3=createTextVNode("Run");function _sfc_render$4(e,t,o,a,s,i){const r=resolveComponent("v-card-title"),l=resolveComponent("v-card-header"),n=resolveComponent("v-btn"),d=resolveComponent("v-sheet"),c=resolveComponent("v-card");return openBlock(),createBlock(c,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(l,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(r,null,{default:withCtx((()=>[_hoisted_1$3])),_:1})])),_:1}),createVNode(d,{class:"mb-2 d-flex flex-column justify-center align-center px-4"},{default:withCtx((()=>[withDirectives(createBaseVNode("textarea",{"onUpdate:modelValue":t[0]||(t[0]=e=>s.areaText=e),spellcheck:"false",class:"textArea px-2 mx-0"},null,512),[[vModelText,s.areaText]]),createVNode(n,{class:"mt-4",color:"secondary",variant:"outlined",onClick:i.run,disabled:""==s.areaText},{default:withCtx((()=>[_hoisted_2$3])),_:1},8,["onClick","disabled"])])),_:1})])),_:1})}_sfc_main$4.render=_sfc_render$4,installAssets(_sfc_main$4,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VBtn:VBtn,VSheet:VSheet,VCard:VCard});var baseClone=_baseClone,CLONE_SYMBOLS_FLAG=4;function clone(e){return baseClone(e,CLONE_SYMBOLS_FLAG)}var clone_1=clone,ShuttleExporter_vue_vue_type_style_index_0_scoped_true_lang="\n.iconButton[data-v-7c79bf20] {\n cursor: pointer;\n}\n";const _sfc_main$3={methods:{downloadShuttle(e){let t=clone_1(e);t.name="Submarine";let o=desanitized_js2xml({elements:[t]}),a=CompressSub(o),s=document.createElement("a");s.href=URL.createObjectURL(new Blob([a.buffer],{type:"application/gzip"})),s.download=`${t.attributes.name}.sub`,s.click()},downloadImage(){var e=document.createElement("a");e.href="data:image/png;base64,"+this.previewImage,e.download=`${this.$store.state.editorSubmarine.filename.slice(0,-4)}.png`,e.click()}},computed:{linkedSubmarines(){return this.$store.getters.sub.elements.filter((e=>"LinkedSubmarine"===e.name)).map((e=>({name:e.attributes.name,object:e,snowflake:e.attributes.linkedto})))},previewImage(){var e;return(null==(e=this.$store.state.editorSubmarine.data.elements[0].attributes)?void 0:e.previewimage)||""}}},_withScopeId$1=e=>(pushScopeId("data-v-7c79bf20"),e=e(),popScopeId(),e),_hoisted_1$2=createTextVNode(" Export from file "),_hoisted_2$2=_withScopeId$1((()=>createBaseVNode("div",{class:"d-flex flex-row justify-center align-center"},"Preview Image",-1))),_hoisted_3$2=createTextVNode(" mdi-file-download-outline "),_hoisted_4$2={class:"d-flex flex-row justify-center align-center"},_hoisted_5$2=createTextVNode(" mdi-file-download-outline "),_hoisted_6$2={key:1,class:"text-center text-grey"};function _sfc_render$3(e,t,o,a,s,i){const r=resolveComponent("v-card-title"),l=resolveComponent("v-card-header"),n=resolveComponent("v-spacer"),d=resolveComponent("v-icon"),c=resolveComponent("v-sheet"),_=resolveComponent("v-card");return openBlock(),createBlock(_,{elevation:"1",class:"pb-4"},{default:withCtx((()=>[createVNode(l,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(r,null,{default:withCtx((()=>[_hoisted_1$2])),_:1})])),_:1}),createVNode(c,{class:"d-flex flex-column align-center"},{default:withCtx((()=>[""!==i.previewImage?(openBlock(),createBlock(c,{key:0,class:"d-flex flex-row justify-center align-center mt-2 px-4",style:{width:"100%"}},{default:withCtx((()=>[_hoisted_2$2,createVNode(n),createVNode(d,{title:"Download",class:"iconButton",color:"secondary",onClick:t[0]||(t[0]=e=>i.downloadImage())},{default:withCtx((()=>[_hoisted_3$2])),_:1})])),_:1})):createCommentVNode("",!0),(openBlock(!0),createElementBlock(Fragment,null,renderList(i.linkedSubmarines,(e=>(openBlock(),createBlock(c,{class:"d-flex flex-row justify-center align-center mt-2 px-4",style:{width:"100%"},key:e.snowflake},{default:withCtx((()=>[createBaseVNode("div",_hoisted_4$2,toDisplayString(e.name),1),createVNode(n),createVNode(d,{title:"Download",class:"iconButton",color:"secondary",onClick:t=>i.downloadShuttle(e.object)},{default:withCtx((()=>[_hoisted_5$2])),_:2},1032,["onClick"])])),_:2},1024)))),128)),""==i.previewImage&&0==i.linkedSubmarines.length?(openBlock(),createElementBlock("div",_hoisted_6$2," Nothing suitable for export found ")):createCommentVNode("",!0)])),_:1})])),_:1})}_sfc_main$3.render=_sfc_render$3,_sfc_main$3.__scopeId="data-v-7c79bf20",installAssets(_sfc_main$3,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VSpacer:VSpacer,VIcon:VIcon,VSheet:VSheet,VCard:VCard});var SubDataBar_vue_vue_type_style_index_0_scoped_true_lang="\n.iconButton[data-v-7aa471af] {\n cursor: pointer;\n}\n";const _sfc_main$2={props:{blockDownload:Boolean},computed:__spreadProps(__spreadValues({},mapGetters(["saveLoaded"])),{filename(){return this.$store.state.editorSubmarine.filename||"none"},subname(){var e,t;return(null==(t=null==(e=this.$store.state.editorSubmarine.data)?void 0:e.elements)?void 0:t[0].attributes.name)||"-"},buttonActive(){return this.saveLoaded&&!this.blockDownload}}),methods:{download(){let e=CompressSub(desanitized_js2xml(this.$store.state.editorSubmarine.data)),t=document.createElement("a");t.href=URL.createObjectURL(new Blob([e.buffer],{type:"application/gzip"})),t.download=this.$store.state.editorSubmarine.filename,t.click()},pushToSaveEditor(){this.buttonActive&&(console.log("dispatching "+(this.filename+".raw")),this.$store.dispatch("fileUploaded",{name:this.filename+".raw",data:this.$store.state.editorSubmarine.data}),this.$router.push("/"))}}},_hoisted_1$1=createTextVNode(" 下载 "),_hoisted_2$1=createTextVNode(" mdi-clipboard-arrow-left-outline "),_hoisted_3$1={class:"float-right ma-1"},_hoisted_4$1=createTextVNode(" 已加载文件: "),_hoisted_5$1={class:"text-primary"},_hoisted_6$1=createTextVNode(" , 潜艇名称: "),_hoisted_7$1={class:"text-primary"};function _sfc_render$2(e,t,o,a,s,i){const r=resolveComponent("v-btn"),l=resolveComponent("v-icon"),n=resolveComponent("v-card"),d=resolveComponent("v-col");return openBlock(),createBlock(d,null,{default:withCtx((()=>[createVNode(n,{elevation:"1",class:"pr-2"},{default:withCtx((()=>[createVNode(r,{class:"mr-4",color:o.blockDownload?"surface":"secondary",disabled:o.blockDownload,onClick:i.download},{default:withCtx((()=>[_hoisted_1$1])),_:1},8,["color","disabled","onClick"]),createVNode(l,{size:"32",title:"load to savefile",color:i.buttonActive?"secondary":"grey",class:normalizeClass({iconButton:i.buttonActive}),onClick:i.pushToSaveEditor},{default:withCtx((()=>[_hoisted_2$1])),_:1},8,["color","class","onClick"]),createBaseVNode("div",_hoisted_3$1,[_hoisted_4$1,createBaseVNode("span",_hoisted_5$1,toDisplayString(i.filename),1),_hoisted_6$1,createBaseVNode("span",_hoisted_7$1,toDisplayString(i.subname),1)])])),_:1})])),_:1})}_sfc_main$2.render=_sfc_render$2,_sfc_main$2.__scopeId="data-v-7aa471af",installAssets(_sfc_main$2,"components",{VBtn:VBtn,VIcon:VIcon,VCard:VCard,VCol:VCol});var WireHider_vue_vue_type_style_index_0_scoped_true_lang="\nselect[data-v-040598dc] {\n border: 1px solid white;\n color: white;\n cursor: pointer;\n}\noption[data-v-040598dc] {\n background: #212121;\n}\n";const _sfc_main$1={data:()=>({selectedWireType:"all"}),methods:{hideWires(e=!0){var t=e?"True":"False",o=0;for(let a of this.$store.getters.sub.elements.filter((e=>this.matchWireType(e.attributes.identifier))))a.attributes.hiddeningame!=t&&(a.attributes.hiddeningame=t,o++);o>0?this.$store.dispatch("showAlert",{type:"success",text:`Set ${o} wires to ${e?"hidden":"visible"}`}):this.$store.dispatch("showAlert",{type:"info",text:"All wires of that type were already set to "+(e?"hidden":"visible")})},unhideWires(){this.hideWires(!1)},matchWireType(e){return"all"===this.selectedWireType?/^.*wire$/.test(e):e===this.selectedWireType}}},_withScopeId=e=>(pushScopeId("data-v-040598dc"),e=e(),popScopeId(),e),_hoisted_1=createTextVNode(" Wire Hider "),_hoisted_2=_withScopeId((()=>createBaseVNode("option",{value:"all"},"all",-1))),_hoisted_3=_withScopeId((()=>createBaseVNode("option",{value:"whitewire"},"white",-1))),_hoisted_4=_withScopeId((()=>createBaseVNode("option",{value:"redwire"},"red",-1))),_hoisted_5=_withScopeId((()=>createBaseVNode("option",{value:"bluewire"},"blue",-1))),_hoisted_6=_withScopeId((()=>createBaseVNode("option",{value:"yellowwire"},"yellow",-1))),_hoisted_7=_withScopeId((()=>createBaseVNode("option",{value:"greenwire"},"green",-1))),_hoisted_8=_withScopeId((()=>createBaseVNode("option",{value:"blackwire"},"black",-1))),_hoisted_9=_withScopeId((()=>createBaseVNode("option",{value:"brownall"},"brown",-1))),_hoisted_10=[_hoisted_2,_hoisted_3,_hoisted_4,_hoisted_5,_hoisted_6,_hoisted_7,_hoisted_8,_hoisted_9],_hoisted_11=createTextVNode("Hide"),_hoisted_12=createTextVNode("Unhide");function _sfc_render$1(e,t,o,a,s,i){const r=resolveComponent("v-card-title"),l=resolveComponent("v-card-header"),n=resolveComponent("v-btn"),d=resolveComponent("v-sheet"),c=resolveComponent("v-card");return openBlock(),createBlock(c,{elevation:"1",class:"pb-2"},{default:withCtx((()=>[createVNode(l,{class:"flex-column align-center"},{default:withCtx((()=>[createVNode(r,null,{default:withCtx((()=>[_hoisted_1])),_:1})])),_:1}),createVNode(d,{class:"mb-2 px-4 d-flex flex-row justify-center"},{default:withCtx((()=>[withDirectives(createBaseVNode("select",{"onUpdate:modelValue":t[0]||(t[0]=e=>s.selectedWireType=e),class:"px-2"},_hoisted_10,512),[[vModelSelect,s.selectedWireType]]),createVNode(n,{onClick:i.hideWires,variant:"outlined",color:"secondary",class:"mx-2"},{default:withCtx((()=>[_hoisted_11])),_:1},8,["onClick"]),createVNode(n,{onClick:i.unhideWires,variant:"outlined",color:"secondary"},{default:withCtx((()=>[_hoisted_12])),_:1},8,["onClick"])])),_:1})])),_:1})}_sfc_main$1.render=_sfc_render$1,_sfc_main$1.__scopeId="data-v-040598dc",installAssets(_sfc_main$1,"components",{VCardTitle:VCardTitle,VCardHeader:VCardHeader,VBtn:VBtn,VSheet:VSheet,VCard:VCard});const _sfc_main={name:"SubTools",computed:__spreadValues({},mapGetters(["subLoaded"])),components:{FileDropper:_sfc_main$6,MiscSubTools:_sfc_main$5,ScriptRunner:_sfc_main$4,ShuttleExporter:_sfc_main$3,SubDataBar:_sfc_main$2,WireHider:_sfc_main$1}};function _sfc_render(e,t,o,a,s,i){const r=resolveComponent("FileDropper"),l=resolveComponent("v-col"),n=resolveComponent("v-row"),d=resolveComponent("SubDataBar"),c=resolveComponent("ShuttleExporter"),_=resolveComponent("WireHider"),u=resolveComponent("ScriptRunner"),p=resolveComponent("MiscSubTools"),h=resolveComponent("v-container");return openBlock(),createBlock(h,null,{default:withCtx((()=>[createVNode(n,null,{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[createVNode(r,{fromSubEditor:!0})])),_:1})])),_:1}),createVNode(n,null,{default:withCtx((()=>[createVNode(d,{blockDownload:!e.subLoaded},null,8,["blockDownload"])])),_:1}),e.subLoaded?(openBlock(),createBlock(n,{key:0},{default:withCtx((()=>[createVNode(l,null,{default:withCtx((()=>[createVNode(c)])),_:1}),createVNode(l,null,{default:withCtx((()=>[createVNode(_)])),_:1}),createVNode(l,null,{default:withCtx((()=>[createVNode(u)])),_:1}),createVNode(l,null,{default:withCtx((()=>[createVNode(p)])),_:1})])),_:1})):createCommentVNode("",!0)])),_:1})}_sfc_main.render=_sfc_render,installAssets(_sfc_main,"components",{VCol:VCol,VRow:VRow,VContainer:VContainer});export{_sfc_main as default};
diff --git a/assets/VRow.93776d3b.js b/assets/VRow.a47e2044.js
similarity index 99%
rename from assets/VRow.93776d3b.js
rename to assets/VRow.a47e2044.js
index 78ab15f..0156806 100644
--- a/assets/VRow.93776d3b.js
+++ b/assets/VRow.a47e2044.js
@@ -1 +1 @@
-var e=Object.defineProperty,a=Object.defineProperties,t=Object.getOwnPropertyDescriptors,l=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable,r=(a,t,l)=>t in a?e(a,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):a[t]=l,o=(e,a)=>{for(var t in a||(a={}))n.call(a,t)&&r(e,t,a[t]);if(l)for(var t of l(a))s.call(a,t)&&r(e,t,a[t]);return e},i=(e,l)=>a(e,t(l));import{a6 as u,ad as d,ai as c,aN as p,aj as v,$ as f,am as g,ar as b,af as y,an as m,aO as S,ag as C,b as j,aL as h,T as x,aP as O,aQ as k,aR as w,ah as B,aS as $,aT as V,aU as A,aV as I,aW as N,aX as P,al as L,aY as E,aZ as R,a_ as T,a$ as W,b0 as z,b1 as G,W as D,b2 as M,b3 as Q,aA as U,b4 as X,M as Y,b5 as Z}from"./vendor.d2dd6a75.js";const _=f({name:"VAvatar",props:u(o(o(o(o({color:String,start:Boolean,end:Boolean,icon:String,image:String},d()),c()),p()),v()))(),setup(e,a){let{slots:t}=a;const{backgroundColorClasses:l,backgroundColorStyles:n}=g(b(e,"color")),{densityClasses:s}=y(e),{roundedClasses:r}=m(e),{sizeClasses:o,sizeStyles:i}=S(e);return C((()=>{var a;return j(e.tag,{class:["v-avatar",{"v-avatar--start":e.start,"v-avatar--end":e.end},l.value,s.value,r.value,o.value],style:[n.value,i.value]},{default:()=>[e.image?j(h,{src:e.image,alt:""},null):e.icon?j(x,{icon:e.icon},null):null==(a=t.default)?void 0:a.call(t)]})})),{}}}),q=f({name:"VCardActions",setup(e,a){let{slots:t}=a;return O({VBtn:{variant:"text"}}),C((()=>{var e;return j("div",{class:"v-card-actions"},[null==t||null==(e=t.default)?void 0:e.call(t)])})),{}}}),F=k("v-card-avatar"),H=k("v-card-content"),J=k("v-card-header"),K=k("v-card-header-text"),ee=k("v-card-img"),ae=k("v-card-subtitle"),te=k("v-card-text"),le=k("v-card-title"),ne=f({name:"VCard",directives:{Ripple:w},props:o(o(o(o(o(o(o(o(o(o({appendAvatar:String,appendIcon:String,disabled:Boolean,flat:Boolean,hover:Boolean,image:String,link:Boolean,prependAvatar:String,prependIcon:String,ripple:Boolean,subtitle:String,text:String,title:String},B()),$()),d()),V()),A()),I()),c()),N()),v()),P({variant:"contained"})),setup(e,a){let{attrs:t,slots:l}=a;const{themeClasses:n}=L(e),{borderClasses:s}=E(e),{colorClasses:r,colorStyles:o,variantClasses:i}=R(e),{densityClasses:u}=y(e),{dimensionStyles:d}=T(e),{elevationClasses:c}=W(e),{positionClasses:p,positionStyles:v}=z(e),{roundedClasses:f}=m(e),g=G(e,t);return()=>{var a,t,b,y;const m=g.isLink.value?"a":e.tag,S=!(!l.title&&!e.title),C=!(!l.subtitle&&!e.subtitle),x=S||C,O=!!(l.append||e.appendAvatar||e.appendIcon),k=!!(l.prepend||e.prependAvatar||e.prependIcon),w=!(!l.image&&!e.image),B=x||k||O,$=!(!l.text&&!e.text),V=!e.disabled&&(g.isClickable.value||e.link);return D(j(m,{class:["v-card",{"v-card--disabled":e.disabled,"v-card--flat":e.flat,"v-card--hover":e.hover&&!(e.disabled||e.flat),"v-card--link":V},n.value,s.value,r.value,u.value,c.value,p.value,f.value,i.value],style:[o.value,d.value,v.value],href:g.href.value,onClick:V&&g.navigate},{default:()=>[M(V,"v-card"),w&&j(Q,{defaults:{VImg:{cover:!0,src:e.image}}},{default:()=>[j(ee,null,{default:()=>[l.image?null==(a=l.image)?void 0:a.call(l):j(h,{alt:""},null)]})]}),null==(t=l.media)?void 0:t.call(l),B&&j(J,null,{default:()=>[k&&j(Q,{defaults:{VAvatar:{density:e.density,icon:e.prependIcon,image:e.prependAvatar}}},{default:()=>[j(F,null,{default:()=>[l.prepend?l.prepend():j(_,null,null)]})]}),x&&j(K,null,{default:()=>[S&&j(le,null,{default:()=>[l.title?l.title():e.title]}),C&&j(ae,null,{default:()=>[l.subtitle?l.subtitle():e.subtitle]}),null==(b=l.headerText)?void 0:b.call(l)]}),O&&j(Q,{defaults:{VAvatar:{density:e.density,icon:e.appendIcon,image:e.appendAvatar}}},{default:()=>[j(F,null,{default:()=>[l.append?l.append():j(_,null,null)]})]})]}),$&&j(te,null,{default:()=>[l.text?l.text():e.text]}),l.content&&j(H,null,{default:l.content}),null==(y=l.default)?void 0:y.call(l),l.actions&&j(q,null,{default:l.actions})]}),[[U("ripple"),V]])}}});const se=f({name:"VContainer",props:o({fluid:{type:Boolean,default:!1}},v()),setup(e,a){let{slots:t}=a;return()=>j(e.tag,{class:["v-container",{"v-container--fluid":e.fluid}]},t)}}),re=["sm","md","lg","xl","xxl"],oe=re.reduce(((e,a)=>(e[a]={type:[Boolean,String,Number],default:!1},e)),{}),ie=re.reduce(((e,a)=>(e["offset"+X(a)]={type:[String,Number],default:null},e)),{}),ue=re.reduce(((e,a)=>(e["order"+X(a)]={type:[String,Number],default:null},e)),{}),de={col:Object.keys(oe),offset:Object.keys(ie),order:Object.keys(ue)};function ce(e,a,t){let l=e;if(null!=t&&!1!==t){if(a){l+=`-${a.replace(e,"")}`}return"col"===e&&(l="v-"+l),"col"!==e||""!==t&&!0!==t?(l+=`-${t}`,l.toLowerCase()):l.toLowerCase()}}const pe=f({name:"VCol",props:o(i(o(i(o(i(o({cols:{type:[Boolean,String,Number],default:!1}},oe),{offset:{type:[String,Number],default:null}}),ie),{order:{type:[String,Number],default:null}}),ue),{alignSelf:{type:String,default:null,validator:e=>["auto","start","end","center","baseline","stretch"].includes(e)}}),v()),setup(e,a){let{slots:t}=a;const l=Y((()=>{const a=[];let t;for(t in de)de[t].forEach((l=>{const n=e[l],s=ce(t,l,n);s&&a.push(s)}));const l=a.some((e=>e.startsWith("v-col-")));return a.push({"v-col":!l||!e.cols,[`v-col-${e.cols}`]:e.cols,[`offset-${e.offset}`]:e.offset,[`order-${e.order}`]:e.order,[`align-self-${e.alignSelf}`]:e.alignSelf}),a}));return()=>{var a;return Z(e.tag,{class:l.value},null==(a=t.default)?void 0:a.call(t))}}}),ve=["sm","md","lg","xl","xxl"],fe=["start","end","center"];function ge(e,a){return ve.reduce(((t,l)=>(t[e+X(l)]=a(),t)),{})}const be=e=>[...fe,"baseline","stretch"].includes(e),ye=ge("align",(()=>({type:String,default:null,validator:be}))),me=e=>[...fe,"space-between","space-around"].includes(e),Se=ge("justify",(()=>({type:String,default:null,validator:me}))),Ce=e=>[...fe,"space-between","space-around","stretch"].includes(e),je=ge("alignContent",(()=>({type:String,default:null,validator:Ce}))),he={align:Object.keys(ye),justify:Object.keys(Se),alignContent:Object.keys(je)},xe={align:"align",justify:"justify",alignContent:"align-content"};function Oe(e,a,t){let l=xe[e];if(null!=t){if(a){l+=`-${a.replace(e,"")}`}return l+=`-${t}`,l.toLowerCase()}}const ke=f({name:"VRow",props:o(o(i(o(i(o({dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:be}},ye),{justify:{type:String,default:null,validator:me}}),Se),{alignContent:{type:String,default:null,validator:Ce}}),je),v()),setup(e,a){let{slots:t}=a;const l=Y((()=>{const a=[];let t;for(t in he)he[t].forEach((l=>{const n=e[l],s=Oe(t,l,n);s&&a.push(s)}));return a.push({"v-row--no-gutters":e.noGutters,"v-row--dense":e.dense,[`align-${e.align}`]:e.align,[`justify-${e.justify}`]:e.justify,[`align-content-${e.alignContent}`]:e.alignContent}),a}));return()=>{var a;return Z(e.tag,{class:["v-row",l.value]},null==(a=t.default)?void 0:a.call(t))}}});export{le as V,J as a,ne as b,te as c,q as d,pe as e,ke as f,se as g};
+var e=Object.defineProperty,a=Object.defineProperties,t=Object.getOwnPropertyDescriptors,l=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,s=Object.prototype.propertyIsEnumerable,r=(a,t,l)=>t in a?e(a,t,{enumerable:!0,configurable:!0,writable:!0,value:l}):a[t]=l,o=(e,a)=>{for(var t in a||(a={}))n.call(a,t)&&r(e,t,a[t]);if(l)for(var t of l(a))s.call(a,t)&&r(e,t,a[t]);return e},i=(e,l)=>a(e,t(l));import{a6 as u,ad as d,ai as c,aN as p,aj as v,$ as f,am as g,ar as b,af as y,an as m,aO as S,ag as C,b as j,aL as h,T as x,aP as O,aQ as k,aR as w,ah as B,aS as $,aT as V,aU as A,aV as I,aW as N,aX as P,al as L,aY as E,aZ as R,a_ as T,a$ as W,b0 as z,b1 as G,W as D,b2 as M,b3 as Q,aA as U,b4 as X,M as Y,b5 as Z}from"./vendor.6119329f.js";const _=f({name:"VAvatar",props:u(o(o(o(o({color:String,start:Boolean,end:Boolean,icon:String,image:String},d()),c()),p()),v()))(),setup(e,a){let{slots:t}=a;const{backgroundColorClasses:l,backgroundColorStyles:n}=g(b(e,"color")),{densityClasses:s}=y(e),{roundedClasses:r}=m(e),{sizeClasses:o,sizeStyles:i}=S(e);return C((()=>{var a;return j(e.tag,{class:["v-avatar",{"v-avatar--start":e.start,"v-avatar--end":e.end},l.value,s.value,r.value,o.value],style:[n.value,i.value]},{default:()=>[e.image?j(h,{src:e.image,alt:""},null):e.icon?j(x,{icon:e.icon},null):null==(a=t.default)?void 0:a.call(t)]})})),{}}}),q=f({name:"VCardActions",setup(e,a){let{slots:t}=a;return O({VBtn:{variant:"text"}}),C((()=>{var e;return j("div",{class:"v-card-actions"},[null==t||null==(e=t.default)?void 0:e.call(t)])})),{}}}),F=k("v-card-avatar"),H=k("v-card-content"),J=k("v-card-header"),K=k("v-card-header-text"),ee=k("v-card-img"),ae=k("v-card-subtitle"),te=k("v-card-text"),le=k("v-card-title"),ne=f({name:"VCard",directives:{Ripple:w},props:o(o(o(o(o(o(o(o(o(o({appendAvatar:String,appendIcon:String,disabled:Boolean,flat:Boolean,hover:Boolean,image:String,link:Boolean,prependAvatar:String,prependIcon:String,ripple:Boolean,subtitle:String,text:String,title:String},B()),$()),d()),V()),A()),I()),c()),N()),v()),P({variant:"contained"})),setup(e,a){let{attrs:t,slots:l}=a;const{themeClasses:n}=L(e),{borderClasses:s}=E(e),{colorClasses:r,colorStyles:o,variantClasses:i}=R(e),{densityClasses:u}=y(e),{dimensionStyles:d}=T(e),{elevationClasses:c}=W(e),{positionClasses:p,positionStyles:v}=z(e),{roundedClasses:f}=m(e),g=G(e,t);return()=>{var a,t,b,y;const m=g.isLink.value?"a":e.tag,S=!(!l.title&&!e.title),C=!(!l.subtitle&&!e.subtitle),x=S||C,O=!!(l.append||e.appendAvatar||e.appendIcon),k=!!(l.prepend||e.prependAvatar||e.prependIcon),w=!(!l.image&&!e.image),B=x||k||O,$=!(!l.text&&!e.text),V=!e.disabled&&(g.isClickable.value||e.link);return D(j(m,{class:["v-card",{"v-card--disabled":e.disabled,"v-card--flat":e.flat,"v-card--hover":e.hover&&!(e.disabled||e.flat),"v-card--link":V},n.value,s.value,r.value,u.value,c.value,p.value,f.value,i.value],style:[o.value,d.value,v.value],href:g.href.value,onClick:V&&g.navigate},{default:()=>[M(V,"v-card"),w&&j(Q,{defaults:{VImg:{cover:!0,src:e.image}}},{default:()=>[j(ee,null,{default:()=>[l.image?null==(a=l.image)?void 0:a.call(l):j(h,{alt:""},null)]})]}),null==(t=l.media)?void 0:t.call(l),B&&j(J,null,{default:()=>[k&&j(Q,{defaults:{VAvatar:{density:e.density,icon:e.prependIcon,image:e.prependAvatar}}},{default:()=>[j(F,null,{default:()=>[l.prepend?l.prepend():j(_,null,null)]})]}),x&&j(K,null,{default:()=>[S&&j(le,null,{default:()=>[l.title?l.title():e.title]}),C&&j(ae,null,{default:()=>[l.subtitle?l.subtitle():e.subtitle]}),null==(b=l.headerText)?void 0:b.call(l)]}),O&&j(Q,{defaults:{VAvatar:{density:e.density,icon:e.appendIcon,image:e.appendAvatar}}},{default:()=>[j(F,null,{default:()=>[l.append?l.append():j(_,null,null)]})]})]}),$&&j(te,null,{default:()=>[l.text?l.text():e.text]}),l.content&&j(H,null,{default:l.content}),null==(y=l.default)?void 0:y.call(l),l.actions&&j(q,null,{default:l.actions})]}),[[U("ripple"),V]])}}});const se=f({name:"VContainer",props:o({fluid:{type:Boolean,default:!1}},v()),setup(e,a){let{slots:t}=a;return()=>j(e.tag,{class:["v-container",{"v-container--fluid":e.fluid}]},t)}}),re=["sm","md","lg","xl","xxl"],oe=re.reduce(((e,a)=>(e[a]={type:[Boolean,String,Number],default:!1},e)),{}),ie=re.reduce(((e,a)=>(e["offset"+X(a)]={type:[String,Number],default:null},e)),{}),ue=re.reduce(((e,a)=>(e["order"+X(a)]={type:[String,Number],default:null},e)),{}),de={col:Object.keys(oe),offset:Object.keys(ie),order:Object.keys(ue)};function ce(e,a,t){let l=e;if(null!=t&&!1!==t){if(a){l+=`-${a.replace(e,"")}`}return"col"===e&&(l="v-"+l),"col"!==e||""!==t&&!0!==t?(l+=`-${t}`,l.toLowerCase()):l.toLowerCase()}}const pe=f({name:"VCol",props:o(i(o(i(o(i(o({cols:{type:[Boolean,String,Number],default:!1}},oe),{offset:{type:[String,Number],default:null}}),ie),{order:{type:[String,Number],default:null}}),ue),{alignSelf:{type:String,default:null,validator:e=>["auto","start","end","center","baseline","stretch"].includes(e)}}),v()),setup(e,a){let{slots:t}=a;const l=Y((()=>{const a=[];let t;for(t in de)de[t].forEach((l=>{const n=e[l],s=ce(t,l,n);s&&a.push(s)}));const l=a.some((e=>e.startsWith("v-col-")));return a.push({"v-col":!l||!e.cols,[`v-col-${e.cols}`]:e.cols,[`offset-${e.offset}`]:e.offset,[`order-${e.order}`]:e.order,[`align-self-${e.alignSelf}`]:e.alignSelf}),a}));return()=>{var a;return Z(e.tag,{class:l.value},null==(a=t.default)?void 0:a.call(t))}}}),ve=["sm","md","lg","xl","xxl"],fe=["start","end","center"];function ge(e,a){return ve.reduce(((t,l)=>(t[e+X(l)]=a(),t)),{})}const be=e=>[...fe,"baseline","stretch"].includes(e),ye=ge("align",(()=>({type:String,default:null,validator:be}))),me=e=>[...fe,"space-between","space-around"].includes(e),Se=ge("justify",(()=>({type:String,default:null,validator:me}))),Ce=e=>[...fe,"space-between","space-around","stretch"].includes(e),je=ge("alignContent",(()=>({type:String,default:null,validator:Ce}))),he={align:Object.keys(ye),justify:Object.keys(Se),alignContent:Object.keys(je)},xe={align:"align",justify:"justify",alignContent:"align-content"};function Oe(e,a,t){let l=xe[e];if(null!=t){if(a){l+=`-${a.replace(e,"")}`}return l+=`-${t}`,l.toLowerCase()}}const ke=f({name:"VRow",props:o(o(i(o(i(o({dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:be}},ye),{justify:{type:String,default:null,validator:me}}),Se),{alignContent:{type:String,default:null,validator:Ce}}),je),v()),setup(e,a){let{slots:t}=a;const l=Y((()=>{const a=[];let t;for(t in he)he[t].forEach((l=>{const n=e[l],s=Oe(t,l,n);s&&a.push(s)}));return a.push({"v-row--no-gutters":e.noGutters,"v-row--dense":e.dense,[`align-${e.align}`]:e.align,[`justify-${e.justify}`]:e.justify,[`align-content-${e.alignContent}`]:e.alignContent}),a}));return()=>{var a;return Z(e.tag,{class:["v-row",l.value]},null==(a=t.default)?void 0:a.call(t))}}});export{le as V,J as a,ne as b,te as c,q as d,pe as e,ke as f,se as g};
diff --git a/assets/VSheet.36660dd1.js b/assets/VSheet.bf08dac1.js
similarity index 74%
rename from assets/VSheet.36660dd1.js
rename to assets/VSheet.bf08dac1.js
index d311465..eb90269 100644
--- a/assets/VSheet.36660dd1.js
+++ b/assets/VSheet.bf08dac1.js
@@ -1 +1 @@
-var a=Object.defineProperty,e=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,r=(e,s,o)=>s in e?a(e,s,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[s]=o,l=(a,l)=>{for(var t in l||(l={}))s.call(l,t)&&r(a,t,l[t]);if(e)for(var t of e(l))o.call(l,t)&&r(a,t,l[t]);return a};import{$ as t,aS as n,aT as u,aU as i,aV as p,ai as v,aj as b,ah as c,al as d,am as y,ar as m,aY as C,a_ as f,a$ as S,b0 as g,an as j,b as O}from"./vendor.d2dd6a75.js";const h=t({name:"VSheet",props:l(l(l(l(l(l(l({color:String},n()),u()),i()),p()),v()),b()),c()),setup(a,e){let{slots:s}=e;const{themeClasses:o}=d(a),{backgroundColorClasses:r,backgroundColorStyles:l}=y(m(a,"color")),{borderClasses:t}=C(a),{dimensionStyles:n}=f(a),{elevationClasses:u}=S(a),{positionClasses:i,positionStyles:p}=g(a),{roundedClasses:v}=j(a);return()=>O(a.tag,{class:["v-sheet",o.value,r.value,t.value,u.value,i.value,v.value],style:[l.value,n.value,p.value]},s)}});export{h as V};
+var a=Object.defineProperty,e=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable,r=(e,s,o)=>s in e?a(e,s,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[s]=o,l=(a,l)=>{for(var t in l||(l={}))s.call(l,t)&&r(a,t,l[t]);if(e)for(var t of e(l))o.call(l,t)&&r(a,t,l[t]);return a};import{$ as t,aS as n,aT as u,aU as i,aV as p,ai as v,aj as b,ah as c,al as y,am as m,ar as d,aY as f,a_ as C,a$ as S,b0 as g,an as j,b as O}from"./vendor.6119329f.js";const h=t({name:"VSheet",props:l(l(l(l(l(l(l({color:String},n()),u()),i()),p()),v()),b()),c()),setup(a,e){let{slots:s}=e;const{themeClasses:o}=y(a),{backgroundColorClasses:r,backgroundColorStyles:l}=m(d(a,"color")),{borderClasses:t}=f(a),{dimensionStyles:n}=C(a),{elevationClasses:u}=S(a),{positionClasses:i,positionStyles:p}=g(a),{roundedClasses:v}=j(a);return()=>O(a.tag,{class:["v-sheet",o.value,r.value,t.value,u.value,i.value,v.value],style:[l.value,n.value,p.value]},s)}});export{h as V};
diff --git a/assets/VTooltip.c0af69e3.js b/assets/VTooltip.a2067bd7.js
similarity index 79%
rename from assets/VTooltip.c0af69e3.js
rename to assets/VTooltip.a2067bd7.js
index 8e15065..54756f6 100644
--- a/assets/VTooltip.c0af69e3.js
+++ b/assets/VTooltip.a2067bd7.js
@@ -1 +1 @@
-var e=Object.defineProperty,o=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,t=(o,n,r)=>n in o?e(o,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[n]=r;import{aQ as i,ae as a,a0 as s,a8 as d,M as l,b as c,aw as u,b6 as p,a9 as v}from"./vendor.d2dd6a75.js";const w=i("flex-grow-1","div","VSpacer");var f="undefined"!=typeof navigator&&"undefined"!=typeof window;if(f&&"undefined"!=typeof nw)try{nw.Window.get()}catch(b){f=!1}var g=!f,m=f?navigator.userAgent:void 0;var h={gui:f,terminal:g,registerQuery:function(e,o){var n=window.matchMedia(e);o(n.matches);var r=()=>o(n.matches);return n.addListener(r),()=>n.removeListener(r)}};h.node="undefined"!=typeof process&&!!process.versions&&!!process.versions.node,h.pwa=h.gui&&window.matchMedia("(display-mode: standalone)").matches&&null!==document.head.querySelector('[rel="manifest"]'),h.uwp="undefined"!=typeof Windows&&"undefined"!=typeof MSApp,h.nwjs=!(!h.node||!process.versions.nw),h.electron=!(!h.node||!process.versions.electron),h.cordova=!(!h.gui||!window.cordova),h.packaged=h.uwp||h.nwjs||h.electron||h.cordova,h.web=!h.node&&!h.packaged,h.browser=h.web,h.website=h.web&&!h.pwa,h.worker=!h.gui&&"undefined"!=typeof self&&void 0!==self.importScripts,h.serviceWorker=h.worker&&!!navigator.serviceWorker.controller||!1,h.android=!!h.gui&&m.includes("Android"),h.chromeos=!!h.gui&&m.includes("CrOS"),h.tizen=!!h.gui&&m.includes("Tizen"),h.ios=h.gui&&/iPad|iPhone|iPod/.test(m)&&!window.MSStream||!1,h.linuxBased=h.android||h.tizen,h.windows=h.node?"win32"===process.platform:m.includes("Windows"),h.macos=h.node?"darwin"===process.platform:m.includes("Macintosh"),h.linux=h.node?"linux"===process.platform:m.includes("Linux")&&!h.linuxBased&&!h.macos;const y=a()({name:"VTooltip",inheritAttrs:!1,props:((e,i)=>{for(var a in i||(i={}))n.call(i,a)&&t(e,a,i[a]);if(o)for(var a of o(i))r.call(i,a)&&t(e,a,i[a]);return e})({id:String,modelValue:Boolean,text:String,anchor:{type:String,default:"end"},origin:{type:String,default:"auto"}},s({transition:!1})),emits:{"update:modelValue":e=>!0},setup(e,o){let{attrs:n,slots:r}=o;const t=d(e,"modelValue"),i=v(),a=l((()=>e.id||`v-tooltip-${i}`)),s=l((()=>e.anchor.split(" ").length>1?e.anchor:e.anchor+" center")),w=l((()=>"auto"===e.origin||"overlap"===e.origin||e.origin.split(" ").length>1||e.anchor.split(" ").length>1?e.origin:e.origin+" center")),f=l((()=>e.transition?e.transition:t.value?"scale-transition":"fade-transition"));return()=>c(p,u({modelValue:t.value,"onUpdate:modelValue":e=>t.value=e,class:["v-tooltip"],id:a.value,transition:f.value,absolute:!0,positionStrategy:"connected",scrollStrategy:"reposition",anchor:s.value,origin:w.value,"min-width":0,offset:10,scrim:!1,persistent:!0,"open-on-click":!1,"open-on-hover":!0,role:"tooltip",eager:!0,activatorProps:{"aria-describedby":a.value}},n),{activator:r.activator,default:function(){for(var o,n,t=arguments.length,i=new Array(t),a=0;an in o?e(o,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):o[n]=r;import{aQ as i,ae as a,a0 as s,a8 as d,M as l,b as c,aw as u,b6 as p,a9 as v}from"./vendor.6119329f.js";const f=i("flex-grow-1","div","VSpacer");var w="undefined"!=typeof navigator&&"undefined"!=typeof window;if(w&&"undefined"!=typeof nw)try{nw.Window.get()}catch(b){w=!1}var g=!w,m=w?navigator.userAgent:void 0;var h={gui:w,terminal:g,registerQuery:function(e,o){var n=window.matchMedia(e);o(n.matches);var r=()=>o(n.matches);return n.addListener(r),()=>n.removeListener(r)}};h.node="undefined"!=typeof process&&!!process.versions&&!!process.versions.node,h.pwa=h.gui&&window.matchMedia("(display-mode: standalone)").matches&&null!==document.head.querySelector('[rel="manifest"]'),h.uwp="undefined"!=typeof Windows&&"undefined"!=typeof MSApp,h.nwjs=!(!h.node||!process.versions.nw),h.electron=!(!h.node||!process.versions.electron),h.cordova=!(!h.gui||!window.cordova),h.packaged=h.uwp||h.nwjs||h.electron||h.cordova,h.web=!h.node&&!h.packaged,h.browser=h.web,h.website=h.web&&!h.pwa,h.worker=!h.gui&&"undefined"!=typeof self&&void 0!==self.importScripts,h.serviceWorker=h.worker&&!!navigator.serviceWorker.controller||!1,h.android=!!h.gui&&m.includes("Android"),h.chromeos=!!h.gui&&m.includes("CrOS"),h.tizen=!!h.gui&&m.includes("Tizen"),h.ios=h.gui&&/iPad|iPhone|iPod/.test(m)&&!window.MSStream||!1,h.linuxBased=h.android||h.tizen,h.windows=h.node?"win32"===process.platform:m.includes("Windows"),h.macos=h.node?"darwin"===process.platform:m.includes("Macintosh"),h.linux=h.node?"linux"===process.platform:m.includes("Linux")&&!h.linuxBased&&!h.macos;const y=a()({name:"VTooltip",inheritAttrs:!1,props:((e,i)=>{for(var a in i||(i={}))n.call(i,a)&&t(e,a,i[a]);if(o)for(var a of o(i))r.call(i,a)&&t(e,a,i[a]);return e})({id:String,modelValue:Boolean,text:String,anchor:{type:String,default:"end"},origin:{type:String,default:"auto"}},s({transition:!1})),emits:{"update:modelValue":e=>!0},setup(e,o){let{attrs:n,slots:r}=o;const t=d(e,"modelValue"),i=v(),a=l((()=>e.id||`v-tooltip-${i}`)),s=l((()=>e.anchor.split(" ").length>1?e.anchor:e.anchor+" center")),f=l((()=>"auto"===e.origin||"overlap"===e.origin||e.origin.split(" ").length>1||e.anchor.split(" ").length>1?e.origin:e.origin+" center")),w=l((()=>e.transition?e.transition:t.value?"scale-transition":"fade-transition"));return()=>c(p,u({modelValue:t.value,"onUpdate:modelValue":e=>t.value=e,class:["v-tooltip"],id:a.value,transition:w.value,absolute:!0,positionStrategy:"connected",scrollStrategy:"reposition",anchor:s.value,origin:f.value,"min-width":0,offset:10,scrim:!1,persistent:!0,"open-on-click":!1,"open-on-hover":!0,role:"tooltip",eager:!0,activatorProps:{"aria-describedby":a.value}},n),{activator:r.activator,default:function(){for(var o,n,t=arguments.length,i=new Array(t),a=0;aa in t?e(t,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[a]=s;import{c as l,i,V as m,a as d,b as u,w as c,r as f,o as p,d as g,t as b,e as v,f as h,g as E,h as S,j as y,k as A,l as w,u as _,F as L,m as T,n as x,p as D,q as I,s as O,v as B,x as C,y as R,z as P,A as U,B as j,C as $,D as k,E as N,G as V}from"./vendor.d2dd6a75.js";!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver((e=>{for(const a of e)if("childList"===a.type)for(const e of a.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)})).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerpolicy&&(t.referrerPolicy=e.referrerpolicy),"use-credentials"===e.crossorigin?t.credentials="include":"anonymous"===e.crossorigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();var F=l({theme:{defaultTheme:"customDark",themes:{customDark:{dark:!0,colors:{primary:"#4CAF50",secondary:"#03A9F4"}}}}});const M={computed:{showAlert:{get(){return!!this.$store.state.alert},set(e){this.$store.dispatch("showAlert",e)}},alertData(){return this.$store.state.alert}}},W={elevation:"0",class:"d-flex flex-column justify-start align-center alertDisplayDiv"};M.render=function(e,t,a,s,n,r){const o=f("v-alert");return p(),d("div",W,[u(o,{type:r.alertData.type,closable:"",modelValue:r.showAlert,"onUpdate:modelValue":t[0]||(t[0]=e=>r.showAlert=e),elevation:"1",class:"mb-4"},{default:c((()=>[g(b(r.alertData.text),1)])),_:1},8,["type","modelValue"])])},i(M,"components",{VAlert:m});const G={name:"App",data:()=>({navLinks:[{name:"SaveTools",label:"存档编辑器",url:"/"},{name:"SubTools",label:"潜艇编辑器",url:"/SubTools"},{name:"Decompressor",label:"存档解压缩",url:"/Decompressor"},{name:"About",label:"关于",url:"/About"}]}),computed:{pageName(){return this.$route.meta.title},titleVisible:()=>_().lgAndUp.value,isLoading(){return this.$store.state.isLoading}},components:{AlertBox:M}};G.render=function(e,t,a,s,n,r){const o=f("v-app-bar-title"),l=f("v-btn"),i=f("v-app-bar"),m=f("router-view"),v=f("v-main"),h=f("v-app"),E=f("v-progress-circular"),S=f("v-dialog"),y=f("AlertBox");return p(),d(L,null,[u(h,null,{default:c((()=>[u(i,{color:"primary"},{default:c((()=>[u(o,{text:"",class:"text-black",style:{"font-size":"2em"}},{default:c((()=>[g(b(r.pageName),1)])),_:1}),(p(!0),d(L,null,T(n.navLinks,(t=>(p(),x(l,{key:`navbar-link-${t.label}`,to:t.url,class:D(["mx-2 navbar-button",{"text-secondary":t.name==e.$route.name}])},{default:c((()=>[g(b(t.label),1)])),_:2},1032,["to","class"])))),128))])),_:1}),u(v,null,{default:c((()=>[u(m)])),_:1})])),_:1}),u(S,{persistent:"",modelValue:r.isLoading,"onUpdate:modelValue":t[0]||(t[0]=e=>r.isLoading=e),class:"loader"},{default:c((()=>[u(E,{indeterminate:""})])),_:1},8,["modelValue"]),u(y)],64)},i(G,"components",{VAppBarTitle:v,VBtn:h,VAppBar:E,VMain:S,VApp:y,VProgressCircular:A,VDialog:w});const q={},z=function(e,t){return t&&0!==t.length?Promise.all(t.map((e=>{if((e=`/baro-save-editor/${e}`)in q)return;q[e]=!0;const t=e.endsWith(".css"),a=t?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${a}`))return;const s=document.createElement("link");return s.rel=t?"stylesheet":"modulepreload",t||(s.as="script",s.crossOrigin=""),s.href=e,document.head.appendChild(s),t?new Promise(((e,t)=>{s.addEventListener("load",e),s.addEventListener("error",t)})):void 0}))).then((()=>e())):e()},H=[{path:"/",alias:"/index.html",name:"SaveTools",component:()=>z((()=>import("./SaveTools.c735103f.js")),["assets/SaveTools.c735103f.js","assets/SaveTools.97bc7b6b.css","assets/vendor.d2dd6a75.js","assets/vendor.e9ddbc1a.css","assets/FileDropper.295cac68.js","assets/FileDropper.72632a15.css","assets/VTooltip.c0af69e3.js","assets/VTooltip.3df7ec5e.css","assets/VRow.93776d3b.js","assets/VRow.e10d04e1.css","assets/VSheet.36660dd1.js","assets/VSheet.c1c258b0.css"]),meta:{title:"潜渊症存档编辑器",keywords:"barotrauma, save editor, save, editor, submarine, decompressor",desc:"Online save and submarine editing tools for Barotrauma. Edit owned submarines, the crew, convert between single-player and multi-player formats, adjust campaign settings. Also includes some submarine editing tools and save decompressor."},beforeEnter:(e,t,a)=>{var s=sessionStorage.redirect;s?(console.log(`Detected redirect to ${s}`),s.endsWith("/")&&(s=s.slice(0,-1)),delete sessionStorage.redirect,a(s)):a()}},{path:"/SubTools",name:"SubTools",component:()=>z((()=>import("./SubTools.52417866.js")),["assets/SubTools.52417866.js","assets/SubTools.19f2515d.css","assets/vendor.d2dd6a75.js","assets/vendor.e9ddbc1a.css","assets/FileDropper.295cac68.js","assets/FileDropper.72632a15.css","assets/VTooltip.c0af69e3.js","assets/VTooltip.3df7ec5e.css","assets/VRow.93776d3b.js","assets/VRow.e10d04e1.css","assets/VSheet.36660dd1.js","assets/VSheet.c1c258b0.css"]),meta:{title:"潜渊症潜艇编辑器",keywords:"barotrauma, submarine editor, submarine, editor, tools",desc:"Online submarine tools for Barotrauma. Extract shuttles, preview image, mass hide wires, change price or clean wall stains."}},{path:"/Decompressor",name:"Decompressor",component:()=>z((()=>import("./Decompressor.aaf76174.js")),["assets/Decompressor.aaf76174.js","assets/Decompressor.e4207692.css","assets/VTooltip.c0af69e3.js","assets/VTooltip.3df7ec5e.css","assets/vendor.d2dd6a75.js","assets/vendor.e9ddbc1a.css","assets/VRow.93776d3b.js","assets/VRow.e10d04e1.css"]),meta:{title:"潜渊症存档解压缩",keywords:"barotrauma, save, decompressor, compressor",desc:"Online save compressor and decompressor for Barotrauma. Uses experimental file system API: might not work on some browsers and can only access files in specific locations."}},{path:"/About",name:"About",component:()=>z((()=>import("./About.a7cdb5bd.js")),["assets/About.a7cdb5bd.js","assets/About.ae1e6e1e.css","assets/vendor.d2dd6a75.js","assets/vendor.e9ddbc1a.css","assets/VSheet.36660dd1.js","assets/VSheet.c1c258b0.css","assets/VRow.93776d3b.js","assets/VRow.e10d04e1.css"]),meta:{title:"关于这个App",keywords:"barotrauma, save editor, save, editor, submarine, decompressor",desc:"Online save and submarine editing tools for Barotrauma. Edit owned submarines, the crew, convert between single-player and multi-player formats, adjust campaign settings. Also includes some submarine editing tools and save decompressor."}}],Y=I({history:O("/baro-save-editor/"),routes:H});function K(e){for(var t={},a=B.Buffer.from(C(e)),s=0;s{for(var a in t||(t={}))n.call(t,a)&&o(e,a,t[a]);if(s)for(var a of s(t))r.call(t,a)&&o(e,a,t[a]);return e})({},l),t(i,a({attributeValueFn:e=>e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/\r/g,"
").replace(/\n/g,"
")}))));var i}const ee='\n';function te(e){var t,a,s;let n=null==(s=null==(a=null==(t=e.elements)?void 0:t[0])?void 0:a.elements)?void 0:s.find((e=>"MultiPlayerCampaign"===e.name||"SinglePlayerCampaign"===e.name)),r=n.elements.find((e=>"CampaignSettings"===e.name));r&&(r.name="campaignsettings");let o=n.elements.find((e=>"bots"==e.name||"crew"==e.name));o.elements||(o.elements=[])}var ae=U({state:{alert:!1,alertTimout:null,editorSubmarine:{filename:null,data:{}},gamesession:{},isLoading:!1,savefileName:null,subfiles:{},playerCharacters:[]},getters:{campaign:e=>{var t,a,s;return null==(s=null==(a=null==(t=e.gamesession.elements)?void 0:t[0])?void 0:a.elements)?void 0:s.find((e=>"MultiPlayerCampaign"===e.name||"SinglePlayerCampaign"===e.name))},campaignSettings:(e,t)=>t.campaign.elements.find((e=>"campaignsettings"==e.name)),isMultiPlayer:e=>{var t,a,s;return-1!==(null==(s=null==(a=null==(t=e.gamesession.elements)?void 0:t[0])?void 0:a.elements)?void 0:s.findIndex((e=>"MultiPlayerCampaign"===e.name)))},saveLoaded:e=>null!==e.savefileName,sub:e=>{var t,a;return null==(a=null==(t=e.editorSubmarine.data)?void 0:t.elements)?void 0:a[0]},subLoaded:e=>null!==e.editorSubmarine.filename},mutations:{SET_ALERT(e,t){e.alert=t},SET_ALERT_TIMEOUT(e,t){e.alertTimout=setTimeout(t,1e4)},CLEAR_ALERT_TIMEOUT(e){clearTimeout(e.alertTimout)},SET_SAVEFILENAME(e,t){e.savefileName=t},SET_GAMESESSION(e,t){e.gamesession=t},CLEAR_SUBFILES(e){e.subfiles={}},ADD_SUBFILE(e,{name:t,data:a}){e.subfiles[t]=a},SET_SUBFILE(e,{name:t,data:a}){e.editorSubmarine.filename=t,e.editorSubmarine.data=a},ADD_CHARACTERS(e,t){var a;let s=null==(a=e.gamesession.elements[0].elements)?void 0:a.find((e=>"SinglePlayerCampaign"===e.name)).elements.find((e=>"crew"===e.name));for(let n of t)s.elements.push(n)},ADD_BOTS(e,t){var a,s,n;let r=null==(n=null==(s=null==(a=e.gamesession.elements)?void 0:a[0])?void 0:s.elements)?void 0:n.find((e=>"MultiPlayerCampaign"===e.name)).elements.find((e=>"bots"===e.name));"true"!==r.attributes.hasbots&&(r.attributes.hasbots="true"),r.elements||(r.elements=[]);for(let o of t)r.elements.push(o)},SET_LOADING(e,t){e.isLoading=t},CLEAR_PLAYERS(e){e.playerCharacters=[]}},actions:{showAlert({commit:e},t){t||(e("CLEAR_ALERT_TIMEOUT"),e("SET_ALERT",!1)),e("SET_ALERT",t),e("SET_ALERT_TIMEOUT",(()=>{e("SET_ALERT",!1)}))},clearSubFiles({commit:e}){e("CLEAR_SUBFILES")},subUploaded({commit:e,dispatch:t},a){if(a.name.endsWith(".sub")){let t=R.xml2js(Q(B.Buffer.from(a.data)));e("SET_SUBFILE",{name:a.name,data:t})}else a.name.endsWith(".xml")?e("SET_SUBFILE",{name:a.name.slice(0,-4)+".sub",data:R.xml2js(B.Buffer.from(a.data).toString("utf-8"))}):a.name.endsWith(".raw")?e("SET_SUBFILE",{name:a.name.slice(0,-4),data:a.data}):(console.warn(`wrong file type uploaded - ${a.name}`),t("showAlert",{type:"warning",text:`Unrecognized file type: ${a.name}.`}));e("SET_LOADING",!1)},fileUploaded({commit:e,dispatch:t,state:a,getters:s},n){var r,o,l,i,m,d,u;if(n.name.endsWith(".save")){e("CLEAR_SUBFILES"),e("CLEAR_PLAYERS"),e("SET_SAVEFILENAME",n.name);let a=R.xml2js(n.data["gamesession.xml"].toString("utf-8").substring(ee.length));if("Gamesession"!==a.elements[0].name)throw"Failed to parse gamesession.xml";te(a),e("SET_GAMESESSION",a),delete n.data["gamesession.xml"];for(let[s,l]of Object.entries(n.data))if(s.endsWith(".sub")){let a=R.xml2js(Q(l));e("ADD_SUBFILE",{name:s,data:a}),(null==(o=null==(r=null==a?void 0:a.elements[0])?void 0:r.attributes)?void 0:o.name)||(console.warn(`Failed to parse xml from ${s} - file might be invalid`),t("showAlert",{type:"error",text:`Failed to parse xml from ${s} - file might be invalid.`}))}else console.warn(`Unrecognized file type: ${s}`),t("showAlert",{type:"warning",text:`Unrecognized file type: ${s}.`})}else if(a.savefileName)if(n.name.endsWith(".sub")||n.name.endsWith(".raw")){var c;if(console.log(`received ${n.name}`),n.name.endsWith(".raw")?(c=n.data,n.name=n.name.slice(0,-4)):c=R.xml2js(Q(B.Buffer.from(n.data))),console.log(`final: ${n.name}`),a.subfiles[n.name])t("showAlert",{type:"success",text:`Updated owned submarine file "${n.name}"`});else{let e=c.elements[0].attributes.name;(null==(l=a.gamesession.elements)?void 0:l[0].elements.find((e=>"ownedsubmarines"==e.name)).elements).push({type:"element",name:"sub",attributes:{name:e}}),t("showAlert",{type:"success",text:`Added new owned submarine "${e}" and attached "${n.name}" to the save file.`})}e("ADD_SUBFILE",{name:n.name,data:c})}else if("gamesession.xml"===n.name){let a=R.xml2js(n.data.substring(ee.length));if("Gamesession"!==(null==(m=null==(i=a.elements)?void 0:i[0])?void 0:m.name))throw"Failed to parse gamesession.xml";te(a),e("SET_GAMESESSION",a),t("showAlert",{type:"success",text:"Updated gamesession.xml file."})}else if(n.name.endsWith("CharacterData.xml")){let r=R.xml2js(n.data.substring(ee.length)),o=[],l=0;for(let e of null==(u=null==(d=null==r?void 0:r.elements)?void 0:d[0])?void 0:u.elements){let t=e.elements.find((e=>"Character"==e.name)),s=e.elements.find((e=>"inventory"==e.name)),n=e.elements.find((e=>"health"==e.name));t.elements.push(s),t.elements.push(n),o.push(t),l++,a.playerCharacters.push(e.attributes)}0===l?(console.warn("Character import failed - file might be invalid or empty"),t("showAlert",{type:"warning",text:"Character import failed - file might be invalid or empty."})):(s.isMultiPlayer?e("ADD_BOTS",o):e("ADD_CHARACTERS",o),t("showAlert",{type:"success",text:`Succesfully imported ${l} characters.`}))}else console.warn(`Unrecognized file type: ${n.name}`),t("showAlert",{type:"warning",text:`Unrecognized file type: ${n.name}.`});else t("showAlert",{type:"info",text:"No .save file loaded to attach additional files to."}),console.warn("No .save file to attach additional files to");e("SET_LOADING",!1)},convertSaveFile({commit:e,dispatch:t,state:a,getters:s}){if(s.isMultiPlayer){let e=s.campaign.elements.find((e=>"bots"==e.name));e.name="crew",e.attributes.hasbots&&delete e.attributes.hasbots,s.campaign.name="SinglePlayerCampaign",t("showAlert",{type:"success",text:"存档文件转换为 单人 存档."})}else{let e=s.campaign.elements.find((e=>"crew"==e.name));e.name="bots",e.attributes||(e.attributes={}),e.attributes.hasbots="true",s.campaign.name="MultiPlayerCampaign",a.gamesession.elements[0].attributes.campaignid=j(50,100).toString(),t("showAlert",{type:"success",text:"存档文件转换为 多人 存档."})}e("SET_LOADING",!1)},setLoading({commit:e,state:t},a){t.isLoading!==!!a&&e("SET_LOADING",!!a)}},modules:{}});!function(e={}){const{immediate:t=!1,onNeedRefresh:a,onOfflineReady:s,onRegistered:n,onRegisterError:r}=e;let o,l;if("serviceWorker"in navigator){o=new $("/baro-save-editor/sw.js",{scope:"/baro-save-editor/"}),o.addEventListener("activated",(e=>{e.isUpdate||null==s||s()}));{const e=()=>{null==a||a()};o.addEventListener("waiting",e),o.addEventListener("externalwaiting",e)}o.register({immediate:t}).then((e=>{l=e,null==n||n(e)})).catch((e=>{null==r||r(e)}))}}({onNeedRefresh(){},onOfflineReady(){}}),function(){let e=document.referrer;sessionStorage.getItem("referrer")&&(e=sessionStorage.getItem("referrer"),sessionStorage.removeItem("referrer")),sessionStorage.getItem("_swa")||0===e.indexOf(location.protocol+"//"+location.host)||fetch("https://counter.dev/track?"+new URLSearchParams({referrer:e,screen:screen.width+"x"+screen.height,user:"ignis",utcoffset:"2"})),sessionStorage.setItem("_swa","1")}();const se=N(G);se.use(Y),se.use(ae),se.use(F),se.mount("#app");Y.afterEach((function(e){V((()=>{document.title=e.meta.title||"Barotrauma Save Editor",e.meta.desc&&document.querySelector('meta[name="description"]').setAttribute("content",e.meta.desc),e.meta.keywords&&document.querySelector('meta[name="keywords"]').setAttribute("content",e.meta.keywords)}))}));export{X as C,K as D,J as a,Z as d,ee as g};
+var e=Object.defineProperty,t=Object.defineProperties,a=Object.getOwnPropertyDescriptors,s=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,o=(t,a,s)=>a in t?e(t,a,{enumerable:!0,configurable:!0,writable:!0,value:s}):t[a]=s;import{c as l,i,V as m,a as d,b as u,w as c,r as f,o as p,d as g,t as b,e as v,f as h,g as E,h as S,j as y,k as A,l as w,u as _,F as L,m as T,n as x,p as D,q as I,s as O,v as B,x as C,y as R,z as P,A as U,B as j,C as $,D as k,E as N,G as V}from"./vendor.6119329f.js";!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))t(e);new MutationObserver((e=>{for(const a of e)if("childList"===a.type)for(const e of a.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&t(e)})).observe(document,{childList:!0,subtree:!0})}function t(e){if(e.ep)return;e.ep=!0;const t=function(e){const t={};return e.integrity&&(t.integrity=e.integrity),e.referrerpolicy&&(t.referrerPolicy=e.referrerpolicy),"use-credentials"===e.crossorigin?t.credentials="include":"anonymous"===e.crossorigin?t.credentials="omit":t.credentials="same-origin",t}(e);fetch(e.href,t)}}();var F=l({theme:{defaultTheme:"customDark",themes:{customDark:{dark:!0,colors:{primary:"#4CAF50",secondary:"#03A9F4"}}}}});const M={computed:{showAlert:{get(){return!!this.$store.state.alert},set(e){this.$store.dispatch("showAlert",e)}},alertData(){return this.$store.state.alert}}},W={elevation:"0",class:"d-flex flex-column justify-start align-center alertDisplayDiv"};M.render=function(e,t,a,s,n,r){const o=f("v-alert");return p(),d("div",W,[u(o,{type:r.alertData.type,closable:"",modelValue:r.showAlert,"onUpdate:modelValue":t[0]||(t[0]=e=>r.showAlert=e),elevation:"1",class:"mb-4"},{default:c((()=>[g(b(r.alertData.text),1)])),_:1},8,["type","modelValue"])])},i(M,"components",{VAlert:m});const G={name:"App",data:()=>({navLinks:[{name:"SaveTools",label:"存档编辑器",url:"/"},{name:"SubTools",label:"潜艇编辑器",url:"/SubTools"},{name:"Decompressor",label:"存档解压缩",url:"/Decompressor"},{name:"About",label:"关于",url:"/About"}]}),computed:{pageName(){return this.$route.meta.title},titleVisible:()=>_().lgAndUp.value,isLoading(){return this.$store.state.isLoading}},components:{AlertBox:M}};G.render=function(e,t,a,s,n,r){const o=f("v-app-bar-title"),l=f("v-btn"),i=f("v-app-bar"),m=f("router-view"),v=f("v-main"),h=f("v-app"),E=f("v-progress-circular"),S=f("v-dialog"),y=f("AlertBox");return p(),d(L,null,[u(h,null,{default:c((()=>[u(i,{color:"primary"},{default:c((()=>[u(o,{text:"",class:"text-black",style:{"font-size":"2em"}},{default:c((()=>[g(b(r.pageName),1)])),_:1}),(p(!0),d(L,null,T(n.navLinks,(t=>(p(),x(l,{key:`navbar-link-${t.label}`,to:t.url,class:D(["mx-2 navbar-button",{"text-secondary":t.name==e.$route.name}])},{default:c((()=>[g(b(t.label),1)])),_:2},1032,["to","class"])))),128))])),_:1}),u(v,null,{default:c((()=>[u(m)])),_:1})])),_:1}),u(S,{persistent:"",modelValue:r.isLoading,"onUpdate:modelValue":t[0]||(t[0]=e=>r.isLoading=e),class:"loader"},{default:c((()=>[u(E,{indeterminate:""})])),_:1},8,["modelValue"]),u(y)],64)},i(G,"components",{VAppBarTitle:v,VBtn:h,VAppBar:E,VMain:S,VApp:y,VProgressCircular:A,VDialog:w});const q={},z=function(e,t){return t&&0!==t.length?Promise.all(t.map((e=>{if((e=`/baro-save-editor/${e}`)in q)return;q[e]=!0;const t=e.endsWith(".css"),a=t?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${a}`))return;const s=document.createElement("link");return s.rel=t?"stylesheet":"modulepreload",t||(s.as="script",s.crossOrigin=""),s.href=e,document.head.appendChild(s),t?new Promise(((e,t)=>{s.addEventListener("load",e),s.addEventListener("error",t)})):void 0}))).then((()=>e())):e()},H=[{path:"/",alias:"/index.html",name:"SaveTools",component:()=>z((()=>import("./SaveTools.8f9b5174.js")),["assets/SaveTools.8f9b5174.js","assets/SaveTools.3006e934.css","assets/vendor.6119329f.js","assets/vendor.e9ddbc1a.css","assets/FileDropper.73d1d497.js","assets/FileDropper.9955e26d.css","assets/VTooltip.a2067bd7.js","assets/VTooltip.3df7ec5e.css","assets/VRow.a47e2044.js","assets/VRow.e10d04e1.css","assets/VSheet.bf08dac1.js","assets/VSheet.c1c258b0.css"]),meta:{title:"潜渊症存档编辑器",keywords:"barotrauma, save editor, save, editor, submarine, decompressor",desc:"Online save and submarine editing tools for Barotrauma. Edit owned submarines, the crew, convert between single-player and multi-player formats, adjust campaign settings. Also includes some submarine editing tools and save decompressor."},beforeEnter:(e,t,a)=>{var s=sessionStorage.redirect;s?(console.log(`Detected redirect to ${s}`),s.endsWith("/")&&(s=s.slice(0,-1)),delete sessionStorage.redirect,a(s)):a()}},{path:"/SubTools",name:"SubTools",component:()=>z((()=>import("./SubTools.7beba2d8.js")),["assets/SubTools.7beba2d8.js","assets/SubTools.1eac9245.css","assets/vendor.6119329f.js","assets/vendor.e9ddbc1a.css","assets/FileDropper.73d1d497.js","assets/FileDropper.9955e26d.css","assets/VTooltip.a2067bd7.js","assets/VTooltip.3df7ec5e.css","assets/VRow.a47e2044.js","assets/VRow.e10d04e1.css","assets/VSheet.bf08dac1.js","assets/VSheet.c1c258b0.css"]),meta:{title:"潜渊症潜艇编辑器",keywords:"barotrauma, submarine editor, submarine, editor, tools",desc:"Online submarine tools for Barotrauma. Extract shuttles, preview image, mass hide wires, change price or clean wall stains."}},{path:"/Decompressor",name:"Decompressor",component:()=>z((()=>import("./Decompressor.5291c480.js")),["assets/Decompressor.5291c480.js","assets/Decompressor.67738c0d.css","assets/VTooltip.a2067bd7.js","assets/VTooltip.3df7ec5e.css","assets/vendor.6119329f.js","assets/vendor.e9ddbc1a.css","assets/VRow.a47e2044.js","assets/VRow.e10d04e1.css"]),meta:{title:"潜渊症存档解压缩",keywords:"barotrauma, save, decompressor, compressor",desc:"Online save compressor and decompressor for Barotrauma. Uses experimental file system API: might not work on some browsers and can only access files in specific locations."}},{path:"/About",name:"About",component:()=>z((()=>import("./About.94bd82da.js")),["assets/About.94bd82da.js","assets/About.a76c7f59.css","assets/vendor.6119329f.js","assets/vendor.e9ddbc1a.css","assets/VSheet.bf08dac1.js","assets/VSheet.c1c258b0.css","assets/VRow.a47e2044.js","assets/VRow.e10d04e1.css"]),meta:{title:"关于这个App",keywords:"barotrauma, save editor, save, editor, submarine, decompressor",desc:"Online save and submarine editing tools for Barotrauma. Edit owned submarines, the crew, convert between single-player and multi-player formats, adjust campaign settings. Also includes some submarine editing tools and save decompressor."}}],Y=I({history:O("/baro-save-editor/"),routes:H});function K(e){for(var t={},a=B.Buffer.from(C(e)),s=0;s{for(var a in t||(t={}))n.call(t,a)&&o(e,a,t[a]);if(s)for(var a of s(t))r.call(t,a)&&o(e,a,t[a]);return e})({},l),t(i,a({attributeValueFn:e=>e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/\r/g,"
").replace(/\n/g,"
")}))));var i}const ee='\n';function te(e){var t,a,s;let n=null==(s=null==(a=null==(t=e.elements)?void 0:t[0])?void 0:a.elements)?void 0:s.find((e=>"MultiPlayerCampaign"===e.name||"SinglePlayerCampaign"===e.name)),r=n.elements.find((e=>"CampaignSettings"===e.name));r&&(r.name="campaignsettings");let o=n.elements.find((e=>"bots"==e.name||"crew"==e.name));o.elements||(o.elements=[])}var ae=U({state:{alert:!1,alertTimout:null,editorSubmarine:{filename:null,data:{}},gamesession:{},isLoading:!1,savefileName:null,subfiles:{},playerCharacters:[]},getters:{campaign:e=>{var t,a,s;return null==(s=null==(a=null==(t=e.gamesession.elements)?void 0:t[0])?void 0:a.elements)?void 0:s.find((e=>"MultiPlayerCampaign"===e.name||"SinglePlayerCampaign"===e.name))},campaignSettings:(e,t)=>t.campaign.elements.find((e=>"campaignsettings"==e.name)),isMultiPlayer:e=>{var t,a,s;return-1!==(null==(s=null==(a=null==(t=e.gamesession.elements)?void 0:t[0])?void 0:a.elements)?void 0:s.findIndex((e=>"MultiPlayerCampaign"===e.name)))},saveLoaded:e=>null!==e.savefileName,sub:e=>{var t,a;return null==(a=null==(t=e.editorSubmarine.data)?void 0:t.elements)?void 0:a[0]},subLoaded:e=>null!==e.editorSubmarine.filename},mutations:{SET_ALERT(e,t){e.alert=t},SET_ALERT_TIMEOUT(e,t){e.alertTimout=setTimeout(t,1e4)},CLEAR_ALERT_TIMEOUT(e){clearTimeout(e.alertTimout)},SET_SAVEFILENAME(e,t){e.savefileName=t},SET_GAMESESSION(e,t){e.gamesession=t},CLEAR_SUBFILES(e){e.subfiles={}},ADD_SUBFILE(e,{name:t,data:a}){e.subfiles[t]=a},SET_SUBFILE(e,{name:t,data:a}){e.editorSubmarine.filename=t,e.editorSubmarine.data=a},ADD_CHARACTERS(e,t){var a;let s=null==(a=e.gamesession.elements[0].elements)?void 0:a.find((e=>"SinglePlayerCampaign"===e.name)).elements.find((e=>"crew"===e.name));for(let n of t)s.elements.push(n)},ADD_BOTS(e,t){var a,s,n;let r=null==(n=null==(s=null==(a=e.gamesession.elements)?void 0:a[0])?void 0:s.elements)?void 0:n.find((e=>"MultiPlayerCampaign"===e.name)).elements.find((e=>"bots"===e.name));"true"!==r.attributes.hasbots&&(r.attributes.hasbots="true"),r.elements||(r.elements=[]);for(let o of t)r.elements.push(o)},SET_LOADING(e,t){e.isLoading=t},CLEAR_PLAYERS(e){e.playerCharacters=[]}},actions:{showAlert({commit:e},t){t||(e("CLEAR_ALERT_TIMEOUT"),e("SET_ALERT",!1)),e("SET_ALERT",t),e("SET_ALERT_TIMEOUT",(()=>{e("SET_ALERT",!1)}))},clearSubFiles({commit:e}){e("CLEAR_SUBFILES")},subUploaded({commit:e,dispatch:t},a){if(a.name.endsWith(".sub")){let t=R.xml2js(Q(B.Buffer.from(a.data)));e("SET_SUBFILE",{name:a.name,data:t})}else a.name.endsWith(".xml")?e("SET_SUBFILE",{name:a.name.slice(0,-4)+".sub",data:R.xml2js(B.Buffer.from(a.data).toString("utf-8"))}):a.name.endsWith(".raw")?e("SET_SUBFILE",{name:a.name.slice(0,-4),data:a.data}):(console.warn(`wrong file type uploaded - ${a.name}`),t("showAlert",{type:"warning",text:`Unrecognized file type: ${a.name}.`}));e("SET_LOADING",!1)},fileUploaded({commit:e,dispatch:t,state:a,getters:s},n){var r,o,l,i,m,d,u;if(n.name.endsWith(".save")){e("CLEAR_SUBFILES"),e("CLEAR_PLAYERS"),e("SET_SAVEFILENAME",n.name);let a=R.xml2js(n.data["gamesession.xml"].toString("utf-8").substring(ee.length));if("Gamesession"!==a.elements[0].name)throw"Failed to parse gamesession.xml";te(a),e("SET_GAMESESSION",a),delete n.data["gamesession.xml"];for(let[s,l]of Object.entries(n.data))if(s.endsWith(".sub")){let a=R.xml2js(Q(l));e("ADD_SUBFILE",{name:s,data:a}),(null==(o=null==(r=null==a?void 0:a.elements[0])?void 0:r.attributes)?void 0:o.name)||(console.warn(`Failed to parse xml from ${s} - file might be invalid`),t("showAlert",{type:"error",text:`Failed to parse xml from ${s} - file might be invalid.`}))}else console.warn(`Unrecognized file type: ${s}`),t("showAlert",{type:"warning",text:`Unrecognized file type: ${s}.`})}else if(a.savefileName)if(n.name.endsWith(".sub")||n.name.endsWith(".raw")){var c;if(console.log(`received ${n.name}`),n.name.endsWith(".raw")?(c=n.data,n.name=n.name.slice(0,-4)):c=R.xml2js(Q(B.Buffer.from(n.data))),console.log(`final: ${n.name}`),a.subfiles[n.name])t("showAlert",{type:"success",text:`Updated owned submarine file "${n.name}"`});else{let e=c.elements[0].attributes.name;(null==(l=a.gamesession.elements)?void 0:l[0].elements.find((e=>"ownedsubmarines"==e.name)).elements).push({type:"element",name:"sub",attributes:{name:e}}),t("showAlert",{type:"success",text:`Added new owned submarine "${e}" and attached "${n.name}" to the save file.`})}e("ADD_SUBFILE",{name:n.name,data:c})}else if("gamesession.xml"===n.name){let a=R.xml2js(n.data.substring(ee.length));if("Gamesession"!==(null==(m=null==(i=a.elements)?void 0:i[0])?void 0:m.name))throw"Failed to parse gamesession.xml";te(a),e("SET_GAMESESSION",a),t("showAlert",{type:"success",text:"Updated gamesession.xml file."})}else if(n.name.endsWith("CharacterData.xml")){let r=R.xml2js(n.data.substring(ee.length)),o=[],l=0;for(let e of null==(u=null==(d=null==r?void 0:r.elements)?void 0:d[0])?void 0:u.elements){let t=e.elements.find((e=>"Character"==e.name)),s=e.elements.find((e=>"inventory"==e.name)),n=e.elements.find((e=>"health"==e.name));t.elements.push(s),t.elements.push(n),o.push(t),l++,a.playerCharacters.push(e.attributes)}0===l?(console.warn("Character import failed - file might be invalid or empty"),t("showAlert",{type:"warning",text:"Character import failed - file might be invalid or empty."})):(s.isMultiPlayer?e("ADD_BOTS",o):e("ADD_CHARACTERS",o),t("showAlert",{type:"success",text:`Succesfully imported ${l} characters.`}))}else console.warn(`Unrecognized file type: ${n.name}`),t("showAlert",{type:"warning",text:`Unrecognized file type: ${n.name}.`});else t("showAlert",{type:"info",text:"No .save file loaded to attach additional files to."}),console.warn("No .save file to attach additional files to");e("SET_LOADING",!1)},convertSaveFile({commit:e,dispatch:t,state:a,getters:s}){if(s.isMultiPlayer){let e=s.campaign.elements.find((e=>"bots"==e.name));e.name="crew",e.attributes.hasbots&&delete e.attributes.hasbots,s.campaign.name="SinglePlayerCampaign",t("showAlert",{type:"success",text:"存档文件转换为 单人 存档."})}else{let e=s.campaign.elements.find((e=>"crew"==e.name));e.name="bots",e.attributes||(e.attributes={}),e.attributes.hasbots="true",s.campaign.name="MultiPlayerCampaign",a.gamesession.elements[0].attributes.campaignid=j(50,100).toString(),t("showAlert",{type:"success",text:"存档文件转换为 多人 存档."})}e("SET_LOADING",!1)},setLoading({commit:e,state:t},a){t.isLoading!==!!a&&e("SET_LOADING",!!a)}},modules:{}});!function(e={}){const{immediate:t=!1,onNeedRefresh:a,onOfflineReady:s,onRegistered:n,onRegisterError:r}=e;let o,l;if("serviceWorker"in navigator){o=new $("/baro-save-editor/sw.js",{scope:"/baro-save-editor/"}),o.addEventListener("activated",(e=>{e.isUpdate||null==s||s()}));{const e=()=>{null==a||a()};o.addEventListener("waiting",e),o.addEventListener("externalwaiting",e)}o.register({immediate:t}).then((e=>{l=e,null==n||n(e)})).catch((e=>{null==r||r(e)}))}}({onNeedRefresh(){},onOfflineReady(){}}),function(){let e=document.referrer;sessionStorage.getItem("referrer")&&(e=sessionStorage.getItem("referrer"),sessionStorage.removeItem("referrer")),sessionStorage.getItem("_swa")||0===e.indexOf(location.protocol+"//"+location.host)||fetch("https://counter.dev/track?"+new URLSearchParams({referrer:e,screen:screen.width+"x"+screen.height,user:"ignis",utcoffset:"2"})),sessionStorage.setItem("_swa","1")}();const se=N(G);se.use(Y),se.use(ae),se.use(F),se.mount("#app");Y.afterEach((function(e){V((()=>{document.title=e.meta.title||"Barotrauma Save Editor",e.meta.desc&&document.querySelector('meta[name="description"]').setAttribute("content",e.meta.desc),e.meta.keywords&&document.querySelector('meta[name="keywords"]').setAttribute("content",e.meta.keywords)}))}));export{X as C,K as D,J as a,Z as d,ee as g};
diff --git a/assets/vendor.d2dd6a75.js b/assets/vendor.6119329f.js
similarity index 100%
rename from assets/vendor.d2dd6a75.js
rename to assets/vendor.6119329f.js
diff --git a/index.html b/index.html
index 9626c81..6335d75 100644
--- a/index.html
+++ b/index.html
@@ -31,8 +31,8 @@
-
-
+
+
diff --git a/sw.js b/sw.js
index 1f990ce..6e8f0f7 100644
--- a/sw.js
+++ b/sw.js
@@ -1,2 +1,2 @@
-if(!self.define){let e,s={};const c=(c,a)=>(c=new URL(c+".js",a).href,s[c]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=c,e.onload=s,document.head.appendChild(e)}else e=c,importScripts(c),s()})).then((()=>{let e=s[c];if(!e)throw new Error(`Module ${c} didn’t register its module`);return e})));self.define=(a,d)=>{const r=e||("document"in self?document.currentScript.src:"")||location.href;if(s[r])return;let i={};const o=e=>c(e,r),b={module:{uri:r},exports:i,require:o};s[r]=Promise.all(a.map((e=>b[e]||o(e)))).then((e=>(d(...e),i)))}}define(["./workbox-b3e22772"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"404.html",revision:"09ed5779b5dfff7026706ed81238f8fa"},{url:"About.html",revision:"c4c4a2847f3098eacd180e16e9c7f378"},{url:"assets/About.a7cdb5bd.js",revision:"e683bd90c4ef2dc4d8c9642ca7fa67aa"},{url:"assets/About.ae1e6e1e.css",revision:"002ef306f964a6da7ca689ffdfba1d69"},{url:"assets/Decompressor.aaf76174.js",revision:"1000677832331c9ab022f70011f46ada"},{url:"assets/Decompressor.e4207692.css",revision:"53c3f2844f20f1d0dd3552a6ebd04292"},{url:"assets/FileDropper.295cac68.js",revision:"384f631e13810867c653cb8aa862de89"},{url:"assets/FileDropper.72632a15.css",revision:"94391ad2bbef4d0ecc54a1c1e6550a72"},{url:"assets/index.0cad470e.js",revision:"708ad745cbcc3c6cb217b2f8aace5500"},{url:"assets/index.e32c88b2.css",revision:"81707b61aafa872863d7dfd9e557cdd8"},{url:"assets/SaveTools.97bc7b6b.css",revision:"cfb416e278ff63bb5211633599118810"},{url:"assets/SaveTools.c735103f.js",revision:"a05073e972bd481c7c1a6c2134711554"},{url:"assets/SubTools.19f2515d.css",revision:"c4c6344d6965296d6313f9e69267ddbb"},{url:"assets/SubTools.52417866.js",revision:"3b9519cec6036f012254a60b461d8ebe"},{url:"assets/vendor.d2dd6a75.js",revision:"d79152d67a9ae4d7922a6540d214ef30"},{url:"assets/vendor.e9ddbc1a.css",revision:"2e91ee1c430445c241fddd6c9dd9db15"},{url:"assets/VRow.93776d3b.js",revision:"6b6a90972a92c47a9b16d883c8b662e9"},{url:"assets/VRow.e10d04e1.css",revision:"aec8ddb95c05bbd8902fd626aa0f80cd"},{url:"assets/VSheet.36660dd1.js",revision:"2710cb9583c244cd7f61a3a6ceb1047e"},{url:"assets/VSheet.c1c258b0.css",revision:"2fc8d4c30aac911440ba8dd927c52612"},{url:"assets/VTooltip.3df7ec5e.css",revision:"82313d60d1204957c3c0a4d84afb0ea8"},{url:"assets/VTooltip.c0af69e3.js",revision:"8ebfe296c0cfc2414eb89a018a2ab9c1"},{url:"Decompressor.html",revision:"bec12158d77e267708f107d198fb63b0"},{url:"howto/addSubForPurchase.html",revision:"f4754b6d3f805ed5f923eb1e1652b15f"},{url:"howto/editOwnedSubmarine.html",revision:"06efa971de172735f5860d883e5035c3"},{url:"index.html",revision:"45e304bb873de13911c505a767ec94e2"},{url:"SubTools.html",revision:"825bedab5174e42df4cc65cde94883a8"},{url:"pwa-192x192.png",revision:"a8ac7ec9414dccd8f171eeb3bfb6e15b"},{url:"pwa-512x512.png",revision:"679b09ad5f1f8745902b2222baac86a9"},{url:"manifest.webmanifest",revision:"04aabe678ba4501f5319f5b966a45637"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));
+if(!self.define){let e,s={};const a=(a,d)=>(a=new URL(a+".js",d).href,s[a]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=a,e.onload=s,document.head.appendChild(e)}else e=a,importScripts(a),s()})).then((()=>{let e=s[a];if(!e)throw new Error(`Module ${a} didn’t register its module`);return e})));self.define=(d,r)=>{const c=e||("document"in self?document.currentScript.src:"")||location.href;if(s[c])return;let i={};const b=e=>a(e,c),o={module:{uri:c},exports:i,require:b};s[c]=Promise.all(d.map((e=>o[e]||b(e)))).then((e=>(r(...e),i)))}}define(["./workbox-b3e22772"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"404.html",revision:"c7a9625f116b041d637c55efb17f3aa8"},{url:"About.html",revision:"fbbb9e21658bd52bcd617605aa70b3e5"},{url:"assets/About.94bd82da.js",revision:"20238c14d6cdb9ba28d233494a4d528f"},{url:"assets/About.a76c7f59.css",revision:"722a7bb01dde1db25361190b4f6382f7"},{url:"assets/Decompressor.5291c480.js",revision:"24be212a868c67459fd3d87a40d05b19"},{url:"assets/Decompressor.67738c0d.css",revision:"9282b6337b5ffc24728e856f791d74fe"},{url:"assets/FileDropper.73d1d497.js",revision:"fb3f8ec0702f46191cbaf2113a4d0806"},{url:"assets/FileDropper.9955e26d.css",revision:"437d725b5ba4e5f23944a37aa5368b70"},{url:"assets/index.40754ba3.js",revision:"f9ba3e57e10f163bd87c87547593d555"},{url:"assets/index.e32c88b2.css",revision:"81707b61aafa872863d7dfd9e557cdd8"},{url:"assets/SaveTools.3006e934.css",revision:"70a0936bad3cf6617f8cb57f6c7c6ed0"},{url:"assets/SaveTools.8f9b5174.js",revision:"2b349819a3e11d785ae1b6ef03105401"},{url:"assets/SubTools.1eac9245.css",revision:"2e242c82f5f060b2af5782a5a80485db"},{url:"assets/SubTools.7beba2d8.js",revision:"ce4f0fb0f423929f7eb7c305c3ada918"},{url:"assets/vendor.6119329f.js",revision:"d79152d67a9ae4d7922a6540d214ef30"},{url:"assets/vendor.e9ddbc1a.css",revision:"2e91ee1c430445c241fddd6c9dd9db15"},{url:"assets/VRow.a47e2044.js",revision:"97603aa21463bf49a4b890e7b1a1c885"},{url:"assets/VRow.e10d04e1.css",revision:"aec8ddb95c05bbd8902fd626aa0f80cd"},{url:"assets/VSheet.bf08dac1.js",revision:"18ca544ef00f13560dbb8cb56a9dad1c"},{url:"assets/VSheet.c1c258b0.css",revision:"2fc8d4c30aac911440ba8dd927c52612"},{url:"assets/VTooltip.3df7ec5e.css",revision:"82313d60d1204957c3c0a4d84afb0ea8"},{url:"assets/VTooltip.a2067bd7.js",revision:"e554d55f948c61ffe9010e4349711b2b"},{url:"Decompressor.html",revision:"2b0ee0c1494ed863378fa6f734ea6e5a"},{url:"howto/addSubForPurchase.html",revision:"a597962fb6a8eaf284f5acd9833c69a6"},{url:"howto/editOwnedSubmarine.html",revision:"cc52412922fc4a2ecd0205210eec6c84"},{url:"index.html",revision:"cddfb2e8bf65cec1da91271cd632659d"},{url:"SubTools.html",revision:"d5bc72657cf33efbae4ab5a73b4262b2"},{url:"pwa-192x192.png",revision:"a8ac7ec9414dccd8f171eeb3bfb6e15b"},{url:"pwa-512x512.png",revision:"679b09ad5f1f8745902b2222baac86a9"},{url:"manifest.webmanifest",revision:"04aabe678ba4501f5319f5b966a45637"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));
//# sourceMappingURL=sw.js.map
diff --git a/sw.js.map b/sw.js.map
index 90115b9..3f93439 100644
--- a/sw.js.map
+++ b/sw.js.map
@@ -1 +1 @@
-{"version":3,"file":"sw.js","sources":["C:/Users/ADMINI~1.DES/AppData/Local/Temp/761661f807bc6d35acdd357a94c1546a/sw.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from 'D:/TYHH10-git/baro-save-editor/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from 'D:/TYHH10-git/baro-save-editor/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {registerRoute as workbox_routing_registerRoute} from 'D:/TYHH10-git/baro-save-editor/node_modules/workbox-routing/registerRoute.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from 'D:/TYHH10-git/baro-save-editor/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from 'D:/TYHH10-git/baro-save-editor/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"404.html\",\n \"revision\": \"09ed5779b5dfff7026706ed81238f8fa\"\n },\n {\n \"url\": \"About.html\",\n \"revision\": \"c4c4a2847f3098eacd180e16e9c7f378\"\n },\n {\n \"url\": \"assets/About.a7cdb5bd.js\",\n \"revision\": \"e683bd90c4ef2dc4d8c9642ca7fa67aa\"\n },\n {\n \"url\": \"assets/About.ae1e6e1e.css\",\n \"revision\": \"002ef306f964a6da7ca689ffdfba1d69\"\n },\n {\n \"url\": \"assets/Decompressor.aaf76174.js\",\n \"revision\": \"1000677832331c9ab022f70011f46ada\"\n },\n {\n \"url\": \"assets/Decompressor.e4207692.css\",\n \"revision\": \"53c3f2844f20f1d0dd3552a6ebd04292\"\n },\n {\n \"url\": \"assets/FileDropper.295cac68.js\",\n \"revision\": \"384f631e13810867c653cb8aa862de89\"\n },\n {\n \"url\": \"assets/FileDropper.72632a15.css\",\n \"revision\": \"94391ad2bbef4d0ecc54a1c1e6550a72\"\n },\n {\n \"url\": \"assets/index.0cad470e.js\",\n \"revision\": \"708ad745cbcc3c6cb217b2f8aace5500\"\n },\n {\n \"url\": \"assets/index.e32c88b2.css\",\n \"revision\": \"81707b61aafa872863d7dfd9e557cdd8\"\n },\n {\n \"url\": \"assets/SaveTools.97bc7b6b.css\",\n \"revision\": \"cfb416e278ff63bb5211633599118810\"\n },\n {\n \"url\": \"assets/SaveTools.c735103f.js\",\n \"revision\": \"a05073e972bd481c7c1a6c2134711554\"\n },\n {\n \"url\": \"assets/SubTools.19f2515d.css\",\n \"revision\": \"c4c6344d6965296d6313f9e69267ddbb\"\n },\n {\n \"url\": \"assets/SubTools.52417866.js\",\n \"revision\": \"3b9519cec6036f012254a60b461d8ebe\"\n },\n {\n \"url\": \"assets/vendor.d2dd6a75.js\",\n \"revision\": \"d79152d67a9ae4d7922a6540d214ef30\"\n },\n {\n \"url\": \"assets/vendor.e9ddbc1a.css\",\n \"revision\": \"2e91ee1c430445c241fddd6c9dd9db15\"\n },\n {\n \"url\": \"assets/VRow.93776d3b.js\",\n \"revision\": \"6b6a90972a92c47a9b16d883c8b662e9\"\n },\n {\n \"url\": \"assets/VRow.e10d04e1.css\",\n \"revision\": \"aec8ddb95c05bbd8902fd626aa0f80cd\"\n },\n {\n \"url\": \"assets/VSheet.36660dd1.js\",\n \"revision\": \"2710cb9583c244cd7f61a3a6ceb1047e\"\n },\n {\n \"url\": \"assets/VSheet.c1c258b0.css\",\n \"revision\": \"2fc8d4c30aac911440ba8dd927c52612\"\n },\n {\n \"url\": \"assets/VTooltip.3df7ec5e.css\",\n \"revision\": \"82313d60d1204957c3c0a4d84afb0ea8\"\n },\n {\n \"url\": \"assets/VTooltip.c0af69e3.js\",\n \"revision\": \"8ebfe296c0cfc2414eb89a018a2ab9c1\"\n },\n {\n \"url\": \"Decompressor.html\",\n \"revision\": \"bec12158d77e267708f107d198fb63b0\"\n },\n {\n \"url\": \"howto/addSubForPurchase.html\",\n \"revision\": \"f4754b6d3f805ed5f923eb1e1652b15f\"\n },\n {\n \"url\": \"howto/editOwnedSubmarine.html\",\n \"revision\": \"06efa971de172735f5860d883e5035c3\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"45e304bb873de13911c505a767ec94e2\"\n },\n {\n \"url\": \"SubTools.html\",\n \"revision\": \"825bedab5174e42df4cc65cde94883a8\"\n },\n {\n \"url\": \"pwa-192x192.png\",\n \"revision\": \"a8ac7ec9414dccd8f171eeb3bfb6e15b\"\n },\n {\n \"url\": \"pwa-512x512.png\",\n \"revision\": \"679b09ad5f1f8745902b2222baac86a9\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"04aabe678ba4501f5319f5b966a45637\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\nworkbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"index.html\")));\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_routing_NavigationRoute","workbox_precaching_createHandlerBoundToURL"],"mappings":"0nBAuBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,oBACK,oCAEd,KACS,sBACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,4CACK,oCAEd,KACS,0CACK,oCAEd,KACS,2CACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,yCACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,qCACK,oCAEd,KACS,sCACK,oCAEd,KACS,mCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,sCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,6BACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,sBACK,oCAEd,KACS,yBACK,oCAEd,KACS,2BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,qCAEb,8CAE2B,IAAIC,kBAAgCC,0BAA2C"}
\ No newline at end of file
+{"version":3,"file":"sw.js","sources":["../../../../../tmp/40ccb99e5ebfc1d6d5cc0320dc6dffcc/sw.js"],"sourcesContent":["import {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/home/runner/work/baro-save-editor/baro-save-editor/node_modules/workbox-precaching/precacheAndRoute.mjs';\nimport {cleanupOutdatedCaches as workbox_precaching_cleanupOutdatedCaches} from '/home/runner/work/baro-save-editor/baro-save-editor/node_modules/workbox-precaching/cleanupOutdatedCaches.mjs';\nimport {registerRoute as workbox_routing_registerRoute} from '/home/runner/work/baro-save-editor/baro-save-editor/node_modules/workbox-routing/registerRoute.mjs';\nimport {NavigationRoute as workbox_routing_NavigationRoute} from '/home/runner/work/baro-save-editor/baro-save-editor/node_modules/workbox-routing/NavigationRoute.mjs';\nimport {createHandlerBoundToURL as workbox_precaching_createHandlerBoundToURL} from '/home/runner/work/baro-save-editor/baro-save-editor/node_modules/workbox-precaching/createHandlerBoundToURL.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\n\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"404.html\",\n \"revision\": \"c7a9625f116b041d637c55efb17f3aa8\"\n },\n {\n \"url\": \"About.html\",\n \"revision\": \"fbbb9e21658bd52bcd617605aa70b3e5\"\n },\n {\n \"url\": \"assets/About.94bd82da.js\",\n \"revision\": \"20238c14d6cdb9ba28d233494a4d528f\"\n },\n {\n \"url\": \"assets/About.a76c7f59.css\",\n \"revision\": \"722a7bb01dde1db25361190b4f6382f7\"\n },\n {\n \"url\": \"assets/Decompressor.5291c480.js\",\n \"revision\": \"24be212a868c67459fd3d87a40d05b19\"\n },\n {\n \"url\": \"assets/Decompressor.67738c0d.css\",\n \"revision\": \"9282b6337b5ffc24728e856f791d74fe\"\n },\n {\n \"url\": \"assets/FileDropper.73d1d497.js\",\n \"revision\": \"fb3f8ec0702f46191cbaf2113a4d0806\"\n },\n {\n \"url\": \"assets/FileDropper.9955e26d.css\",\n \"revision\": \"437d725b5ba4e5f23944a37aa5368b70\"\n },\n {\n \"url\": \"assets/index.40754ba3.js\",\n \"revision\": \"f9ba3e57e10f163bd87c87547593d555\"\n },\n {\n \"url\": \"assets/index.e32c88b2.css\",\n \"revision\": \"81707b61aafa872863d7dfd9e557cdd8\"\n },\n {\n \"url\": \"assets/SaveTools.3006e934.css\",\n \"revision\": \"70a0936bad3cf6617f8cb57f6c7c6ed0\"\n },\n {\n \"url\": \"assets/SaveTools.8f9b5174.js\",\n \"revision\": \"2b349819a3e11d785ae1b6ef03105401\"\n },\n {\n \"url\": \"assets/SubTools.1eac9245.css\",\n \"revision\": \"2e242c82f5f060b2af5782a5a80485db\"\n },\n {\n \"url\": \"assets/SubTools.7beba2d8.js\",\n \"revision\": \"ce4f0fb0f423929f7eb7c305c3ada918\"\n },\n {\n \"url\": \"assets/vendor.6119329f.js\",\n \"revision\": \"d79152d67a9ae4d7922a6540d214ef30\"\n },\n {\n \"url\": \"assets/vendor.e9ddbc1a.css\",\n \"revision\": \"2e91ee1c430445c241fddd6c9dd9db15\"\n },\n {\n \"url\": \"assets/VRow.a47e2044.js\",\n \"revision\": \"97603aa21463bf49a4b890e7b1a1c885\"\n },\n {\n \"url\": \"assets/VRow.e10d04e1.css\",\n \"revision\": \"aec8ddb95c05bbd8902fd626aa0f80cd\"\n },\n {\n \"url\": \"assets/VSheet.bf08dac1.js\",\n \"revision\": \"18ca544ef00f13560dbb8cb56a9dad1c\"\n },\n {\n \"url\": \"assets/VSheet.c1c258b0.css\",\n \"revision\": \"2fc8d4c30aac911440ba8dd927c52612\"\n },\n {\n \"url\": \"assets/VTooltip.3df7ec5e.css\",\n \"revision\": \"82313d60d1204957c3c0a4d84afb0ea8\"\n },\n {\n \"url\": \"assets/VTooltip.a2067bd7.js\",\n \"revision\": \"e554d55f948c61ffe9010e4349711b2b\"\n },\n {\n \"url\": \"Decompressor.html\",\n \"revision\": \"2b0ee0c1494ed863378fa6f734ea6e5a\"\n },\n {\n \"url\": \"howto/addSubForPurchase.html\",\n \"revision\": \"a597962fb6a8eaf284f5acd9833c69a6\"\n },\n {\n \"url\": \"howto/editOwnedSubmarine.html\",\n \"revision\": \"cc52412922fc4a2ecd0205210eec6c84\"\n },\n {\n \"url\": \"index.html\",\n \"revision\": \"cddfb2e8bf65cec1da91271cd632659d\"\n },\n {\n \"url\": \"SubTools.html\",\n \"revision\": \"d5bc72657cf33efbae4ab5a73b4262b2\"\n },\n {\n \"url\": \"pwa-192x192.png\",\n \"revision\": \"a8ac7ec9414dccd8f171eeb3bfb6e15b\"\n },\n {\n \"url\": \"pwa-512x512.png\",\n \"revision\": \"679b09ad5f1f8745902b2222baac86a9\"\n },\n {\n \"url\": \"manifest.webmanifest\",\n \"revision\": \"04aabe678ba4501f5319f5b966a45637\"\n }\n], {});\nworkbox_precaching_cleanupOutdatedCaches();\nworkbox_routing_registerRoute(new workbox_routing_NavigationRoute(workbox_precaching_createHandlerBoundToURL(\"index.html\")));\n\n\n\n\n\n\n"],"names":["self","addEventListener","event","data","type","skipWaiting","workbox_routing_NavigationRoute","workbox_precaching_createHandlerBoundToURL"],"mappings":"0nBAuBAA,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,oCAY2B,CAClC,KACS,oBACK,oCAEd,KACS,sBACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,2CACK,oCAEd,KACS,4CACK,oCAEd,KACS,0CACK,oCAEd,KACS,2CACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,yCACK,oCAEd,KACS,wCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,qCACK,oCAEd,KACS,sCACK,oCAEd,KACS,mCACK,oCAEd,KACS,oCACK,oCAEd,KACS,qCACK,oCAEd,KACS,sCACK,oCAEd,KACS,wCACK,oCAEd,KACS,uCACK,oCAEd,KACS,6BACK,oCAEd,KACS,wCACK,oCAEd,KACS,yCACK,oCAEd,KACS,sBACK,oCAEd,KACS,yBACK,oCAEd,KACS,2BACK,oCAEd,KACS,2BACK,oCAEd,KACS,gCACK,qCAEb,8CAE2B,IAAIC,kBAAgCC,0BAA2C"}
\ No newline at end of file