import{An as e,En as t,Rn as n,Tn as r,Yn as i,ar as a,cn as o,cr as s,dn as c,fn as l,ln as ee,on as u,pn as d,rn as f,rr as p,sn as m,un as h,wn as g}from"./game-logic-BBFCPVtv.js";import"./vendor-pinia-L_8CmDWM.js";import"./vendor-crypto-CQM8pryk.js";import"./game-i18n-BC9uiVvf.js";import{n as _}from"./vendor-others-Bce0hM6h.js";import"./vendor-reka-ui-DR3m_AkV.js";import{t as v}from"./vendor-utils-BlvnUqQX.js";import"./vendor-vueuse-Djj-oRw9.js";import{D as te,H as ne,S as re,V as ie,a as ae,c as oe,x as se,y as ce}from"./vendor-icons-Ccm2_GPI.js";import{t as y}from"./CardDescription-DduF5EVY.js";import{$ as le,A as ue,F as de,I as fe,J as b,M as pe,N as x,P as me,X as he,d as S,et as C,f as w,i as T,j as E,k as D,m as O,n as k,p as A,r as j}from"./index-B4KMqZ_y.js";var M=v(),N={class:`container mx-auto p-4 sm:p-6 space-y-6`},P={class:`flex items-center justify-between`},F={class:`text-2xl font-bold`},I={class:`flex items-center justify-between p-4 border rounded-lg`},L={class:`space-y-1`},R={class:`font-medium`},ge={class:`text-sm text-muted-foreground`},_e={class:`flex items-center justify-between p-4 border rounded-lg`},ve={class:`space-y-1`},ye={class:`font-medium`},be={class:`text-sm text-muted-foreground`},xe={class:`flex gap-2`},Se={class:`flex items-center justify-between p-4 border rounded-lg border-destructive/50`},Ce={class:`space-y-1`},we={class:`font-medium text-destructive`},Te={class:`text-sm text-muted-foreground`},Ee={class:`flex flex-col sm:flex-row items-start sm:items-center justify-between p-4 border rounded-lg gap-3`},De={class:`space-y-1 flex-1`},Oe={class:`font-medium`},ke={class:`text-sm text-muted-foreground`},Ae={class:`flex items-center gap-2 sm:gap-4 w-full sm:w-auto`},je={class:`flex items-center gap-2 flex-1 sm:flex-initial`},Me={class:`min-w-[60px] text-center font-medium`},Ne={class:`flex items-center justify-between p-4 border rounded-lg`},Pe={class:`space-y-1`},Fe={class:`font-medium`},Ie={class:`text-sm text-muted-foreground`},Le={class:`space-y-2`},z={class:`flex items-center justify-between text-sm`},Re={class:`text-muted-foreground`},ze={class:`font-medium`},Be={class:`flex items-center justify-between text-sm`},Ve={class:`text-muted-foreground`},He={class:`font-medium`},Ue={class:`pt-2`},We={class:`pt-2 border-t space-y-2`},Ge={class:`text-sm font-medium`},Ke={class:`flex flex-col gap-2`},qe={class:`ml-auto text-xs text-muted-foreground`},B=d({__name:`SettingsView`,setup(d){let{t:v}=he(),B=le(),V=i(),H=i(!1),U=i(!1),W=i(``),G=i(!1),K=i(``),q=i(``),J=null,Y=u(()=>k(B.player.lastManualUpdateCheck||0)),X=()=>{if(Y.value){W.value=``;return}let e=B.player.lastManualUpdateCheck||0,t=300*1e3-(Date.now()-e);if(t<=0){W.value=``;return}let n=Math.floor(t/6e4),r=Math.floor(t%6e4/1e3);W.value=`${String(n).padStart(2,`0`)}:${String(r).padStart(2,`0`)}`},Z=null;g(()=>{X(),Z=setInterval(X,1e3)}),r(()=>{Z&&clearInterval(Z)});let Je=()=>{window.open(`https://github.com/${C.author.name}/${C.name}`,`_blank`)},Ye=()=>{window.open(`https://qm.qq.com/q/${C.id}`,`_blank`)},Q=i(!1),$=i(null),Xe=async()=>{if(!(U.value||!Y.value)){U.value=!0;try{let e=await j(B.player.lastManualUpdateCheck||0,e=>{B.player.lastManualUpdateCheck=e});e?($.value=e,Q.value=!0):_.success(v(`settings.upToDate`))}catch(e){console.error(`Failed to check for updates:`,e),_.error(v(`settings.checkUpdateFailed`))}finally{U.value=!1}}},Ze=async()=>{try{H.value=!0;let e=localStorage.getItem(C.name),t=localStorage.getItem(`${C.name}-universe`),n=localStorage.getItem(`${C.name}-npcs`);if(!e){_.error(v(`settings.exportFailed`));return}let r={game:e,npcs:n,universe:t||null},i=`${C.name}-${new Date().toISOString().slice(0,10)}-${Date.now()}.json`,a=JSON.stringify(r,null,2);(0,M.saveAs)(new Blob([a],{type:`application/json`}),i),_.success(v(`settings.exportSuccess`))}catch(e){console.error(`Export failed:`,e),_.error(v(`settings.exportFailed`))}finally{H.value=!1}},Qe=()=>{V.value?.click()},$e=e=>{let t=e.target.files?.[0];t&&(K.value=v(`settings.importConfirmTitle`),q.value=v(`settings.importConfirmMessage`),G.value=!0,B.isPaused=!0,J=()=>et(t))},et=async e=>{try{let t=new FileReader;t.onload=e=>{try{let t=e.target?.result;if(typeof t==`string`){let e=JSON.parse(t);if(typeof e==`string`||!e.game){localStorage.setItem(C.name,t),_.success(v(`settings.importSuccess`)),setTimeout(()=>window.location.reload(),1e3);return}e.game&&localStorage.setItem(C.name,e.game),e.universe&&localStorage.setItem(`${C.name}-universe`,e.universe),e.npcs&&localStorage.setItem(`${C.name}-npcs`,e.npcs),_.success(v(`settings.importSuccess`)),setTimeout(()=>window.location.reload(),1e3)}else _.error(v(`settings.importFailed`))}catch(e){let t=e instanceof Error?e.message:String(e);_.error(v(`settings.importFailed`)+`: `+t)}},t.readAsText(e)}catch(e){console.error(`Import failed:`,e),_.error(v(`settings.importFailed`))}},tt=()=>{K.value=v(`settings.clearConfirmTitle`),q.value=v(`settings.clearConfirmMessage`),G.value=!0,J=nt},nt=()=>{B.isPaused=!0;try{localStorage.clear(),window.location.reload()}catch(e){console.error(`Failed to clear data:`,e),window.location.reload()}},rt=()=>{B.gameSpeed<10&&(B.gameSpeed=Math.min(10,B.gameSpeed+.5),_.success(v(`settings.speedChanged`,{speed:B.gameSpeed})))},it=()=>{B.gameSpeed>.5&&(B.gameSpeed=Math.max(.5,B.gameSpeed-.5),_.success(v(`settings.speedChanged`,{speed:B.gameSpeed})))},at=()=>{B.gameSpeed=1,_.success(v(`settings.speedReset`))},ot=()=>{B.isPaused=!B.isPaused,B.isPaused?_.info(v(`settings.gamePaused`)):_.success(v(`settings.gameResumed`))},st=()=>{J&&=(J(),null),G.value=!1},ct=()=>{B.isPaused=!1,J=null,G.value=!1,V.value&&(V.value.value=``)};return(r,i)=>(t(),h(`div`,N,[m(`div`,P,[m(`h1`,F,s(p(v)(`nav.settings`)),1)]),l(p(O),null,{default:n(()=>[l(p(w),null,{default:n(()=>[l(p(S),null,{default:n(()=>[c(s(p(v)(`settings.dataManagement`)),1)]),_:1}),l(p(y),null,{default:n(()=>[c(s(p(v)(`settings.dataManagementDesc`)),1)]),_:1})]),_:1}),l(p(A),{class:`space-y-4`},{default:n(()=>[m(`div`,I,[m(`div`,L,[m(`h3`,R,s(p(v)(`settings.exportData`)),1),m(`p`,ge,s(p(v)(`settings.exportDataDesc`)),1)]),l(p(b),{onClick:Ze,disabled:H.value},{default:n(()=>[l(p(ne),{class:`mr-2 h-4 w-4`}),c(` `+s(H.value?p(v)(`settings.exporting`):p(v)(`settings.export`)),1)]),_:1},8,[`disabled`])]),m(`div`,_e,[m(`div`,ve,[m(`h3`,ye,s(p(v)(`settings.importData`)),1),m(`p`,be,s(p(v)(`settings.importDataDesc`)),1)]),m(`div`,xe,[m(`input`,{ref_key:`fileInputRef`,ref:V,type:`file`,accept:`.json`,class:`hidden`,onChange:$e},null,544),l(p(b),{onClick:Qe,variant:`outline`},{default:n(()=>[l(p(ae),{class:`mr-2 h-4 w-4`}),c(` `+s(p(v)(`settings.selectFile`)),1)]),_:1})])]),m(`div`,Se,[m(`div`,Ce,[m(`h3`,we,s(p(v)(`settings.clearData`)),1),m(`p`,Te,s(p(v)(`settings.clearDataDesc`)),1)]),l(p(b),{onClick:tt,variant:`destructive`},{default:n(()=>[l(p(oe),{class:`mr-2 h-4 w-4`}),c(` `+s(p(v)(`settings.clear`)),1)]),_:1})])]),_:1})]),_:1}),l(p(O),null,{default:n(()=>[l(p(w),null,{default:n(()=>[l(p(S),null,{default:n(()=>[c(s(p(v)(`settings.gameSettings`)),1)]),_:1}),l(p(y),null,{default:n(()=>[c(s(p(v)(`settings.gameSettingsDesc`)),1)]),_:1})]),_:1}),l(p(A),{class:`space-y-4`},{default:n(()=>[m(`div`,Ee,[m(`div`,De,[m(`h3`,Oe,s(p(v)(`settings.gameSpeed`)),1),m(`p`,ke,s(p(v)(`settings.gameSpeedDesc`)),1)]),m(`div`,Ae,[m(`div`,je,[l(p(b),{onClick:it,variant:`outline`,size:`sm`,disabled:p(B).gameSpeed<=.5},{default:n(()=>[...i[2]||=[c(`-`,-1)]]),_:1},8,[`disabled`]),m(`span`,Me,s(p(B).gameSpeed||1)+`x`,1),l(p(b),{onClick:rt,variant:`outline`,size:`sm`,disabled:p(B).gameSpeed>=10},{default:n(()=>[...i[3]||=[c(`+`,-1)]]),_:1},8,[`disabled`])]),l(p(b),{onClick:at,variant:`ghost`,size:`sm`},{default:n(()=>[c(s(p(v)(`settings.reset`)),1)]),_:1})])]),m(`div`,Ne,[m(`div`,Pe,[m(`h3`,Fe,s(p(v)(`settings.gamePause`)),1),m(`p`,Ie,s(p(v)(`settings.gamePauseDesc`)),1)]),l(p(b),{onClick:ot,variant:p(B).isPaused?`default`:`outline`},{default:n(()=>[(t(),o(e(p(B).isPaused?p(se):p(re)),{class:`mr-2 h-4 w-4`})),c(` `+s(p(B).isPaused?p(v)(`settings.resume`):p(v)(`settings.pause`)),1)]),_:1},8,[`variant`])])]),_:1})]),_:1}),l(p(O),null,{default:n(()=>[l(p(w),null,{default:n(()=>[l(p(S),null,{default:n(()=>[c(s(p(v)(`settings.about`)),1)]),_:1})]),_:1}),l(p(A),{class:`space-y-4`},{default:n(()=>[m(`div`,Le,[m(`div`,z,[m(`span`,Re,s(p(v)(`settings.version`))+`:`,1),m(`span`,ze,s(p(C).version),1)]),m(`div`,Be,[m(`span`,Ve,s(p(v)(`settings.buildDate`))+`:`,1),m(`span`,He,s(p(C).buildDate),1)]),m(`div`,Ue,[l(p(b),{onClick:Xe,variant:`outline`,size:`sm`,disabled:U.value||!Y.value,class:`w-full`},{default:n(()=>[l(p(ce),{class:a([`mr-2 h-4 w-4`,{"animate-spin":U.value}])},null,8,[`class`]),U.value?(t(),h(f,{key:0},[c(s(p(v)(`settings.checking`)),1)],64)):!Y.value&&W.value?(t(),h(f,{key:1},[c(s(W.value),1)],64)):(t(),h(f,{key:2},[c(s(p(v)(`settings.checkUpdate`)),1)],64))]),_:1},8,[`disabled`])])]),m(`div`,We,[m(`h3`,Ge,s(p(v)(`settings.community`)),1),m(`div`,Ke,[l(p(b),{variant:`outline`,class:`w-full justify-start`,onClick:Je},{default:n(()=>[l(p(ie),{class:`mr-2 h-4 w-4`}),c(` `+s(p(v)(`settings.github`)),1)]),_:1}),p(B).locale===`zh-CN`||p(B).locale===`zh-TW`?(t(),o(p(b),{key:0,variant:`outline`,class:`w-full justify-start`,onClick:Ye},{default:n(()=>[l(p(te),{class:`mr-2 h-4 w-4`}),c(` `+s(p(v)(`settings.qqGroup`))+` `,1),m(`span`,qe,s(p(C).qq),1)]),_:1})):ee(``,!0)])])]),_:1})]),_:1}),l(p(fe),{open:G.value,"onUpdate:open":i[0]||=e=>G.value=e},{default:n(()=>[l(p(x),null,{default:n(()=>[l(p(ue),null,{default:n(()=>[l(p(D),null,{default:n(()=>[c(s(K.value),1)]),_:1}),l(p(pe),null,{default:n(()=>[c(s(q.value),1)]),_:1})]),_:1}),l(p(E),null,{default:n(()=>[l(p(me),{onClick:ct},{default:n(()=>[c(s(p(v)(`common.cancel`)),1)]),_:1}),l(p(de),{onClick:st},{default:n(()=>[c(s(p(v)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),l(T,{open:Q.value,"onUpdate:open":i[1]||=e=>Q.value=e,"version-info":$.value},null,8,[`open`,`version-info`])]))}});export{B as default};