mirror of
https://github.com/setube/ogame-vue-ts.git
synced 2026-05-11 23:45:11 +08:00
重构并精简了部分UI组件,移除冗余弹窗与详情组件,新增NPC相关逻辑(npcBehaviorLogic、npcGrowthLogic、npcStore等)及外交逻辑(diplomaticLogic、DiplomacyView)。完善分页、标签、复选框等通用UI组件。优化战报弹窗,调整README下载链接为相对路径,修复部分国际化内容。
2 lines
85 KiB
JavaScript
2 lines
85 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./OverviewView-DdvtPdf7.js","./vendor-others-DTUzJ7S-.js","./game-logic-Bi1l7y4K.js","./game-config-CG6z6nnH.js","./rolldown-runtime-CIDIeb-o.js","./vendor-others-BMPyaZWq.css","./vendor-reka-ui-BEHIKScj.js","./vendor-vueuse-CJcfYqoW.js","./vendor-crypto-CQM8pryk.js","./vendor-utils-BlvnUqQX.js","./vendor-pinia-DqhKuBjp.js","./CardDescription-BSLS07AU.js","./TabsTrigger-DrosU7aN.js","./useGameConfig-b98LOtBY.js","./game-i18n-Dr0JspcV.js","./BuildingsView-4mX0ZiqE.js","./vendor-icons-z9V6Jdbh.js","./CardUnlockOverlay-DYfgGY6J.js","./ResearchView-BEvEoPdM.js","./vendor-vue-router-1sDnnIWZ.js","./UnlockRequirement-CoWPiUl8.js","./ShipyardView-C8y8F-rK.js","./DefenseView-BuYOjWBp.js","./FleetView-D6gRUTGU.js","./OfficersView-gOtt9blg.js","./BattleSimulatorView-C7D7Sz5R.js","./BattleReportDialog-CGjL16c6.js","./TooltipProvider-BwjgS8_x.js","./MessagesView-Czwj26_i.js","./GalaxyView-Yqd2o_zC.js","./SelectValue-DmEWUfvu.js","./DiplomacyView-Bz3CIKaK.js","./SettingsView-yJRibE1k.js","./GMView-DWcaM1NY.js"])))=>i.map(i=>d[i]);
|
|
import{i as e}from"./rolldown-runtime-CIDIeb-o.js";import{$ as t,$t as n,A as r,B as i,Bt as a,Cn as o,Ct as s,Dn as c,En as l,F as u,Ft as d,G as f,Gn as p,Gt as m,H as ee,It as te,Jn as h,Jt as g,K as ne,Ln as _,Lt as re,M as v,Mn as ie,Mt as ae,N as oe,Nt as se,Ot as ce,P as le,Pt as ue,Qt as y,St as de,U as b,V as fe,Vt as pe,W as me,X as x,Xn as S,Xt as C,Yn as he,Yt as w,Zt as T,_n as E,_t as D,at as ge,ct as _e,en as O,et as k,f as ve,fn as ye,gn as A,h as be,it as xe,j as Se,kt as Ce,l as we,ln as j,lt as M,mn as N,mt as Te,pn as Ee,pt as P,qn as F,rn as I,rt as De,st as Oe,tn as L,tt as ke,vn as Ae,vt as je,yt as Me,z as Ne,zt as Pe}from"./game-logic-Bi1l7y4K.js";import{n as Fe,r as Ie,t as Le}from"./vendor-pinia-DqhKuBjp.js";import{i as Re,n as ze,r as Be,t as Ve}from"./vendor-vue-router-1sDnnIWZ.js";import{t as He}from"./vendor-crypto-CQM8pryk.js";import{n as Ue,r as We,t as Ge}from"./game-i18n-Dr0JspcV.js";import{R as Ke,c as R,t as qe,z as Je}from"./vendor-others-DTUzJ7S-.js";import{$ as z,A as Ye,B as Xe,C as Ze,G as Qe,H as $e,J as et,K as tt,L as nt,M as rt,N as it,P as at,Q as ot,R as st,U as ct,V as lt,W as ut,X as dt,Y as ft,Z as pt,a as mt,et as ht,i as gt,j as _t,n as vt,o as yt,q as bt,r as xt,t as St,tt as Ct,w as wt,z as Tt}from"./vendor-reka-ui-BEHIKScj.js";import{n as Et}from"./vendor-utils-BlvnUqQX.js";import{i as Dt,n as Ot,r as kt,t as At}from"./vendor-vueuse-CJcfYqoW.js";import{A as jt,C as Mt,E as Nt,F as Pt,H as Ft,I as It,J as Lt,N as Rt,O as zt,S as Bt,V as Vt,_ as Ht,c as Ut,f as Wt,h as Gt,j as Kt,k as qt,l as Jt,m as Yt,n as Xt,o as Zt,p as Qt,r as $t,t as en,u as tn,w as nn,x as rn}from"./vendor-icons-z9V6Jdbh.js";import{l as an,m as B,r as on}from"./game-config-CG6z6nnH.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})(),``+new URL(`logo-Cz0cNqhe.svg`,import.meta.url).href;var V={name:`ogame-vue-ts`,title:`OGame-Vue-Ts`,qq:`920930589`,id:`2zBlHPUA6E`,author:{name:`setube`,email:`1962257451@qq.com`},private:!0,version:`1.2.0`,buildDate:`2025/12/15 08:18:13`,main:`dist-electron/main.js`,type:`module`,scripts:{dev:`vite --port 25121`,build:`vue-tsc -b && vite build && node update-build-date.js`,preview:`vite preview`,"build:server":`pnpm run build && go build`,"build:electron":`cross-env ELECTRON_BUILD=1 pnpm run build && electron-builder`},dependencies:{"@tailwindcss/vite":`^4.1.17`,"@tanstack/vue-table":`^8.21.3`,"@vueuse/core":`^14.1.0`,"class-variance-authority":`^0.7.1`,clsx:`^2.1.1`,"crypto-js":`^4.2.0`,"file-saver":`^2.0.5`,finalhandler:`^2.1.1`,"lucide-vue-next":`^0.556.0`,pinia:`^3.0.4`,"pinia-plugin-persistedstate":`^4.7.1`,"reka-ui":`^2.6.1`,"serve-static":`^2.2.0`,"tailwind-merge":`^3.4.0`,tailwindcss:`^4.1.17`,vue:`^3.5.24`,"vue-router":`4`,"vue-sonner":`^2.0.9`},devDependencies:{"@types/crypto-js":`^4.2.2`,"@types/file-saver":`^2.0.7`,"@types/node":`^24.10.2`,"@vitejs/plugin-vue":`^6.0.1`,"@vue/tsconfig":`^0.8.1`,"cross-env":`^7.0.3`,electron:`^39.2.7`,"electron-builder":`^26.0.12`,"electron-vite":`^5.0.0`,"tw-animate-css":`^1.4.0`,typescript:`~5.9.3`,vite:`npm:rolldown-vite@7.2.5`,"vite-plugin-electron":`^0.29.0`,"vite-plugin-electron-renderer":`^0.14.6`,"vue-tsc":`^3.1.4`},pnpm:{overrides:{vite:`npm:rolldown-vite@7.2.5`},onlyBuiltDependencies:[`electron-winstaller`,`esbuild`,`vue-demi`],ignoredBuiltDependencies:[`electron`]},packageManager:`pnpm@10.13.1+sha512.37ebf1a5c7a30d5fabe0c5df44ee8da4c965ca0c5af3dbab28c3a1681b70a256218d05c81c9c0dcf767ef6b8551eb5b960042b9ed4300c59242336377e01cfad`,build:{appId:`games.wenzi.ogame`,productName:`OGame`,directories:{output:`pkg`},win:{target:`nsis`,icon:`public/favicon.ico`,verifyUpdateCodeSignature:!1,artifactName:"${productName}-Setup.${ext}"},mac:{target:[`dmg`,`zip`],artifactName:"${productName}-mac.${ext}"},linux:{target:[`AppImage`,`deb`],artifactName:"${productName}-linux.${ext}"}}},sn=e(He(),1);const cn=e=>{try{let t=JSON.stringify(e);return sn.default.AES.encrypt(t,V.name).toString()}catch(e){console.error(e)}return``},ln=e=>{try{let t=sn.default.AES.decrypt(e,V.name).toString(sn.default.enc.Utf8);return JSON.parse(t)}catch(e){return console.error(e),{}}},H=Ie(`game`,{state:()=>({gameTime:Date.now(),isPaused:!1,player:{id:`player1`,name:``,planets:[],technologies:{},officers:{},researchQueue:[],fleetMissions:[],battleReports:[],spyReports:[],spiedNotifications:[],npcActivityNotifications:[],missionReports:[],incomingFleetAlerts:[],giftNotifications:[],giftRejectedNotifications:[],points:0},currentPlanetId:``,isDark:``,locale:`zh-CN`}),getters:{currentPlanet(){return this.player.planets.find(e=>e.id===this.currentPlanetId)},getMoonForPlanet(){return e=>this.player.planets.find(t=>t.parentPlanetId===e&&t.isMoon)}},persist:{key:V.name,storage:localStorage,serializer:{serialize:e=>cn(e),deserialize:e=>ln(e)}}});var U=_(!1);const un=()=>{let e=H();ye(()=>{e.isDark?U.value=e.isDark===`dark`:(U.value=window.matchMedia(`(prefers-color-scheme: dark)`).matches,e.isDark=U.value?`dark`:`light`),t()}),o(U,()=>{t(),e.isDark=U.value?`dark`:`light`});let t=()=>{U.value?document.documentElement.classList.add(`dark`):document.documentElement.classList.remove(`dark`)};return{isDark:U,toggleTheme:()=>{U.value=!U.value}}},dn=()=>{let e=H(),t=g(()=>e.locale),n=g(()=>We[t.value]);return{t:e=>{let t=e.split(`.`),r=n.value;for(let n of t)if(r&&typeof r==`object`&&n in r)r=r[n];else return e;return typeof r==`string`?r:e},locale:t,setLocale:t=>{e.locale=t},messages:n}},W=(...e)=>Et(Je(e));var G=L({__name:`Button`,props:{variant:{},size:{},class:{},asChild:{type:Boolean},as:{default:`button`}},setup(e){let t=e;return(n,r)=>(N(),C(p(ot),{"data-slot":`button`,as:e.as,"as-child":e.asChild,class:F(p(W)(p(fn)({variant:e.variant,size:e.size}),t.class))},{default:l(()=>[E(n.$slots,`default`)]),_:3},8,[`as`,`as-child`,`class`]))}});const fn=Ke(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60`,outline:`border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-9 px-4 py-2 has-[>svg]:px-3`,sm:`h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5`,lg:`h-10 rounded-md px-6 has-[>svg]:px-4`,icon:`size-9`,"icon-sm":`size-8`,"icon-lg":`size-10`}},defaultVariants:{variant:`default`,size:`default`}});var pn=L({__name:`Badge`,props:{asChild:{type:Boolean},as:{},variant:{},class:{}},setup(e){let t=e,n=R(t,`class`);return(r,i)=>(N(),C(p(ot),j({"data-slot":`badge`,class:p(W)(p(mn)({variant:e.variant}),t.class)},p(n)),{default:l(()=>[E(r.$slots,`default`)]),_:3},16,[`class`]))}});const mn=Ke(`inline-flex items-center justify-center rounded-sm border h-5 min-w-5 px-1 text-xs font-medium tabular-nums select-none w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90`,secondary:`border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90`,destructive:`border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60`,outline:`text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground`}},defaultVariants:{variant:`default`}});var hn=L({__name:`Progress`,props:{modelValue:{default:0},max:{},getValueLabel:{},getValueText:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=R(t,`class`);return(e,r)=>(N(),C(p(wt),j({"data-slot":`progress`},p(n),{class:p(W)(`bg-primary/20 relative h-2 w-full overflow-hidden rounded-full`,t.class)}),{default:l(()=>[O(p(Ze),{"data-slot":`progress-indicator`,class:`bg-primary h-full w-full flex-1 transition-all`,style:he(`transform: translateX(-${100-(t.modelValue??0)}%);`)},null,8,[`style`])]),_:1},16,[`class`]))}}),gn=L({__name:`Popover`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=z(e,t);return(e,t)=>(N(),C(p(at),j({"data-slot":`popover`},p(n)),{default:l(t=>[E(e.$slots,`default`,h(I(t)))]),_:3},16))}}),_n=L({inheritAttrs:!1,__name:`PopoverContent`,props:{forceMount:{type:Boolean},side:{},sideOffset:{default:4},sideFlip:{type:Boolean},align:{default:`center`},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},disableOutsidePointerEvents:{type:Boolean},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=z(R(n,`class`),r);return(e,t)=>(N(),C(p(rt),null,{default:l(()=>[O(p(it),j({"data-slot":`popover-content`},{...e.$attrs,...p(i)},{class:p(W)(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md origin-(--reka-popover-content-transform-origin) outline-hidden`,n.class)}),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),vn=L({__name:`PopoverTrigger`,props:{asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(N(),C(p(_t),j({"data-slot":`popover-trigger`},t),{default:l(()=>[E(e.$slots,`default`)]),_:3},16))}}),yn=L({__name:`Sheet`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=z(e,t);return(e,t)=>(N(),C(p(pt),j({"data-slot":`sheet`},p(n)),{default:l(t=>[E(e.$slots,`default`,h(I(t)))]),_:3},16))}}),bn=L({__name:`SheetOverlay`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=R(t,`class`);return(e,r)=>(N(),C(p(bt),j({"data-slot":`sheet-overlay`,class:p(W)(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80`,t.class)},p(n)),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`]))}}),xn=L({inheritAttrs:!1,__name:`SheetContent`,props:{class:{},side:{default:`right`},forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=z(R(n,`class`,`side`),r);return(t,r)=>(N(),C(p(tt),null,{default:l(()=>[O(bn),O(p(ft),j({"data-slot":`sheet-content`,class:p(W)(`bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500`,e.side===`right`&&`data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm`,e.side===`left`&&`data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm`,e.side===`top`&&`data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b`,e.side===`bottom`&&`data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t`,n.class)},{...t.$attrs,...p(i)}),{default:l(()=>[E(t.$slots,`default`),O(p(dt),{class:`ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none`},{default:l(()=>[O(p(Xt),{class:`size-4`}),r[0]||=w(`span`,{class:`sr-only`},`Close`,-1)]),_:1})]),_:3},16,[`class`])]),_:3}))}}),Sn=L({__name:`SheetDescription`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=R(t,`class`);return(e,r)=>(N(),C(p(et),j({"data-slot":`sheet-description`,class:p(W)(`text-muted-foreground text-sm`,t.class)},p(n)),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`]))}}),Cn=L({__name:`SheetHeader`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`sheet-header`,class:F(p(W)(`flex flex-col gap-1.5 p-4`,t.class))},[E(e.$slots,`default`)],2))}}),wn=L({__name:`SheetTitle`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=R(t,`class`);return(e,r)=>(N(),C(p(Qe),j({"data-slot":`sheet-title`,class:p(W)(`text-foreground font-semibold`,t.class)},p(n)),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`]))}});const Tn=`sidebar_state`,[En,Dn]=Ct(`Sidebar`);var On={class:`flex h-full w-full flex-col`},kn=[`data-state`,`data-collapsible`,`data-variant`,`data-side`],An={"data-sidebar":`sidebar`,class:`bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm`},jn=L({inheritAttrs:!1,__name:`Sidebar`,props:{side:{default:`left`},variant:{default:`sidebar`},collapsible:{default:`offcanvas`},class:{}},setup(e){let t=e,{isMobile:r,state:i,openMobile:a,setOpenMobile:o}=En();return(s,c)=>e.collapsible===`none`?(N(),y(`div`,j({key:0,"data-slot":`sidebar`,class:p(W)(`bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col`,t.class)},s.$attrs),[E(s.$slots,`default`)],16)):p(r)?(N(),C(p(yn),j({key:1,open:p(a)},s.$attrs,{"onUpdate:open":p(o)}),{default:l(()=>[O(p(xn),{"data-sidebar":`sidebar`,"data-slot":`sidebar`,"data-mobile":`true`,side:e.side,class:`bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden`,style:he({"--sidebar-width":p(`18rem`)})},{default:l(()=>[O(Cn,{class:`sr-only`},{default:l(()=>[O(wn,null,{default:l(()=>[...c[0]||=[n(`Sidebar`,-1)]]),_:1}),O(Sn,null,{default:l(()=>[...c[1]||=[n(`Displays the mobile sidebar.`,-1)]]),_:1})]),_:1}),w(`div`,On,[E(s.$slots,`default`)])]),_:3},8,[`side`,`style`])]),_:3},16,[`open`,`onUpdate:open`])):(N(),y(`div`,{key:2,class:`group peer text-sidebar-foreground hidden md:block`,"data-slot":`sidebar`,"data-state":p(i),"data-collapsible":p(i)===`collapsed`?e.collapsible:``,"data-variant":e.variant,"data-side":e.side},[w(`div`,{class:F(p(W)(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,e.variant===`floating`||e.variant===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`))},null,2),w(`div`,j({class:p(W)(`fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,e.side===`left`?`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`:`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,e.variant===`floating`||e.variant===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,t.class)},s.$attrs),[w(`div`,An,[E(s.$slots,`default`)])],16)],8,kn))}}),Mn=L({__name:`SidebarContent`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`sidebar-content`,"data-sidebar":`content`,class:F(p(W)(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,t.class))},[E(e.$slots,`default`)],2))}}),Nn=L({__name:`SidebarFooter`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`sidebar-footer`,"data-sidebar":`footer`,class:F(p(W)(`flex flex-col gap-2 p-2`,t.class))},[E(e.$slots,`default`)],2))}}),Pn=L({__name:`SidebarGroup`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`sidebar-group`,"data-sidebar":`group`,class:F(p(W)(`relative flex w-full min-w-0 flex-col p-2`,t.class))},[E(e.$slots,`default`)],2))}}),Fn=L({__name:`SidebarHeader`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`sidebar-header`,"data-sidebar":`header`,class:F(p(W)(`flex flex-col gap-2 p-2`,t.class))},[E(e.$slots,`default`)],2))}}),In=L({__name:`Input`,props:{defaultValue:{},modelValue:{},class:{}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=Dt(n,`modelValue`,t,{passive:!0,defaultValue:n.defaultValue});return(e,t)=>c((N(),y(`input`,{"onUpdate:modelValue":t[0]||=e=>ie(r)?r.value=e:null,"data-slot":`input`,class:F(p(W)(`file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,`focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,`aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive`,n.class))},null,2)),[[a,p(r)]])}}),Ln=L({__name:`SidebarInset`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`main`,{"data-slot":`sidebar-inset`,class:F(p(W)(`bg-background relative flex w-full flex-1 flex-col`,`md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2`,t.class))},[E(e.$slots,`default`)],2))}}),Rn=L({__name:`SidebarMenu`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`ul`,{"data-slot":`sidebar-menu`,"data-sidebar":`menu`,class:F(p(W)(`flex w-full min-w-0 flex-col gap-1`,t.class))},[E(e.$slots,`default`)],2))}}),zn=L({__name:`SidebarMenuBadge`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`sidebar-menu-badge`,"data-sidebar":`menu-badge`,class:F(p(W)(`text-sidebar-foreground pointer-events-none flex h-5 min-w-5 items-center justify-center rounded-sm px-1 text-xs font-medium tabular-nums select-none`,`peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`absolute right-1`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[collapsible=icon]:absolute group-data-[collapsible=icon]:right-0 group-data-[collapsible=icon]:-top-1 group-data-[collapsible=icon]:h-4 group-data-[collapsible=icon]:min-w-4`,t.class))},[E(e.$slots,`default`)],2))}}),Bn=L({__name:`Tooltip`,props:{defaultOpen:{type:Boolean},open:{type:Boolean},delayDuration:{},disableHoverableContent:{type:Boolean},disableClosingTrigger:{type:Boolean},disabled:{type:Boolean},ignoreNonKeyboardFocus:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=z(e,t);return(e,t)=>(N(),C(p(gt),j({"data-slot":`tooltip`},p(n)),{default:l(t=>[E(e.$slots,`default`,h(I(t)))]),_:3},16))}}),Vn=L({inheritAttrs:!1,__name:`TooltipContent`,props:{forceMount:{type:Boolean},ariaLabel:{},asChild:{type:Boolean},as:{},side:{},sideOffset:{default:4},align:{},alignOffset:{},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,i=z(R(n,`class`),r);return(e,t)=>(N(),C(p(vt),null,{default:l(()=>[O(p(xt),j({"data-slot":`tooltip-content`},{...p(i),...e.$attrs},{class:p(W)(`bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit rounded-md px-3 py-1.5 text-xs text-balance`,n.class)}),{default:l(()=>[E(e.$slots,`default`),O(p(yt),{class:`bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]`})]),_:3},16,[`class`])]),_:3}))}}),Hn=L({__name:`TooltipTrigger`,props:{reference:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(N(),C(p(St),j({"data-slot":`tooltip-trigger`},t),{default:l(()=>[E(e.$slots,`default`)]),_:3},16))}}),Un=L({__name:`SidebarMenuButtonChild`,props:{variant:{default:`default`},size:{default:`default`},isActive:{type:Boolean},class:{},asChild:{type:Boolean},as:{default:`button`}},setup(e){let t=e;return(n,r)=>(N(),C(p(ot),j({"data-slot":`sidebar-menu-button`,"data-sidebar":`menu-button`,"data-size":e.size,"data-active":e.isActive,class:p(W)(p(Jn)({variant:e.variant,size:e.size}),t.class),as:e.as,"as-child":e.asChild},n.$attrs),{default:l(()=>[E(n.$slots,`default`)]),_:3},16,[`data-size`,`data-active`,`class`,`as`,`as-child`]))}}),Wn=L({inheritAttrs:!1,__name:`SidebarMenuButton`,props:{variant:{default:`default`},size:{default:`default`},isActive:{type:Boolean},class:{},asChild:{type:Boolean},as:{default:`button`},tooltip:{}},setup(e){let t=e,{isMobile:r,state:i}=En(),a=R(t,`tooltip`);return(t,o)=>e.tooltip?(N(),C(p(Bn),{key:1},{default:l(()=>[O(p(Hn),{"as-child":``},{default:l(()=>[O(Un,h(I({...p(a),...t.$attrs})),{default:l(()=>[E(t.$slots,`default`)]),_:3},16)]),_:3}),O(p(Vn),{side:`right`,align:`center`,hidden:p(i)!==`collapsed`||p(r)},{default:l(()=>[typeof e.tooltip==`string`?(N(),y(m,{key:0},[n(S(e.tooltip),1)],64)):(N(),C(Ae(e.tooltip),{key:1}))]),_:1},8,[`hidden`])]),_:3})):(N(),C(Un,h(j({key:0},{...p(a),...t.$attrs})),{default:l(()=>[E(t.$slots,`default`)]),_:3},16))}}),Gn=L({__name:`SidebarMenuItem`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`li`,{"data-slot":`sidebar-menu-item`,"data-sidebar":`menu-item`,class:F(p(W)(`group/menu-item relative`,t.class))},[E(e.$slots,`default`)],2))}}),Kn=L({__name:`SidebarProvider`,props:{defaultOpen:{type:Boolean,default:!At?.cookie.includes(`${Tn}=false`)},open:{type:Boolean,default:void 0},class:{}},emits:[`update:open`],setup(e,{emit:t}){let n=e,r=t,i=kt(`(max-width: 768px)`),a=_(!1),o=Dt(n,`open`,r,{defaultValue:n.defaultOpen??!1,passive:n.open===void 0}),s=e=>{o.value=e,document.cookie=`${Tn}=${o.value}; path=/; max-age=604800`},c=e=>{a.value=e},u=()=>i.value?c(!a.value):s(!o.value);return Ot(`keydown`,e=>{e.key===`b`&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),u())}),Dn({state:g(()=>o.value?`expanded`:`collapsed`),open:o,setOpen:s,isMobile:i,openMobile:a,setOpenMobile:c,toggleSidebar:u}),(e,t)=>(N(),C(p(mt),{"delay-duration":0},{default:l(()=>[w(`div`,j({"data-slot":`sidebar-wrapper`,style:{"--sidebar-width":p(`16rem`),"--sidebar-width-icon":p(`3rem`)},class:p(W)(`group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full`,n.class)},e.$attrs),[E(e.$slots,`default`)],16)]),_:3}))}}),qn=L({__name:`SidebarTrigger`,props:{class:{}},setup(e){let t=e,{toggleSidebar:n}=En();return(e,r)=>(N(),C(p(G),{"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,variant:`ghost`,size:`icon`,class:F(p(W)(`h-7 w-7`,t.class)),onClick:p(n)},{default:l(()=>[O(p(rn)),r[0]||=w(`span`,{class:`sr-only`},`Toggle Sidebar`,-1)]),_:1},8,[`class`,`onClick`]))}});const Jn=Ke(`peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});var Yn=L({__name:`ResourceIcon`,props:{type:{},size:{default:`md`}},setup(e){let t={metal:`bg-gradient-to-br from-slate-400 to-slate-600`,crystal:`bg-gradient-to-br from-cyan-400 to-blue-600`,deuterium:`bg-gradient-to-br from-green-400 to-emerald-600`,darkMatter:`bg-gradient-to-br from-purple-600 to-indigo-900`,energy:`bg-gradient-to-br from-yellow-400 to-orange-500`},n={sm:`w-3 h-3`,md:`w-4 h-4`,lg:`w-5 h-5`};return(r,i)=>(N(),y(`div`,{class:F([t[e.type],n[e.size],`rounded shadow-sm`])},null,2))}}),Xn=L({__name:`Dialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},modal:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=z(e,t);return(e,t)=>(N(),C(p(pt),j({"data-slot":`dialog`},p(n)),{default:l(t=>[E(e.$slots,`default`,h(I(t)))]),_:3},16))}}),Zn=L({__name:`DialogOverlay`,props:{forceMount:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=R(t,`class`);return(e,r)=>(N(),C(p(bt),j({"data-slot":`dialog-overlay`},p(n),{class:p(W)(`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80`,t.class)}),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`]))}}),Qn=L({__name:`DialogDescription`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=ht(R(t,`class`));return(e,r)=>(N(),C(p(et),j({"data-slot":`dialog-description`},p(n),{class:p(W)(`text-muted-foreground text-sm`,t.class)}),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`]))}}),$n=L({__name:`DialogHeader`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`dialog-header`,class:F(p(W)(`flex flex-col gap-2 text-center sm:text-left`,t.class))},[E(e.$slots,`default`)],2))}}),er={class:`shrink-0 px-4 pt-4 pb-3 sm:px-6 sm:pt-6 sm:pb-4 border-b`},tr={class:`overflow-y-auto px-4 py-3 sm:px-6 sm:py-4`},nr={key:0,class:`shrink-0 px-4 pb-4 pt-3 sm:px-6 sm:pb-6 sm:pt-4 border-t`},rr=L({inheritAttrs:!1,__name:`ScrollableDialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},containerClass:{},showCloseButton:{type:Boolean,default:!0}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=z(R(n,`containerClass`),r);return(t,n)=>(N(),C(p(tt),null,{default:l(()=>[O(Zn),O(p(ft),j({"data-slot":`scrollable-dialog-content`},{...t.$attrs,...p(i)},{class:p(W)(`bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 w-[calc(100vw-3rem)] translate-x-[-50%] translate-y-[-50%] rounded-lg border shadow-lg duration-200 sm:w-auto flex flex-col p-0`,e.containerClass)}),{default:l(()=>[w(`div`,er,[E(t.$slots,`header`)]),w(`div`,tr,[E(t.$slots,`default`)]),t.$slots.footer?(N(),y(`div`,nr,[E(t.$slots,`footer`)])):T(``,!0),e.showCloseButton?(N(),C(p(dt),{key:1,"data-slot":`dialog-close`,class:`ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 z-10`},{default:l(()=>[O(p(Xt)),n[0]||=w(`span`,{class:`sr-only`},`Close`,-1)]),_:1})):T(``,!0)]),_:3},16,[`class`])]),_:3}))}}),ir=L({__name:`DialogTitle`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=ht(R(t,`class`));return(e,r)=>(N(),C(p(Qe),j({"data-slot":`dialog-title`},p(n),{class:p(W)(`text-lg leading-none font-semibold`,t.class)}),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`]))}});const ar=Ie(`detailDialog`,{state:()=>({isOpen:!1,type:null,itemType:null,currentLevel:void 0}),actions:{openBuilding(e,t){this.isOpen=!0,this.type=`building`,this.itemType=e,this.currentLevel=t},openTechnology(e,t){this.isOpen=!0,this.type=`technology`,this.itemType=e,this.currentLevel=t},openShip(e){this.isOpen=!0,this.type=`ship`,this.itemType=e,this.currentLevel=void 0},openDefense(e){this.isOpen=!0,this.type=`defense`,this.itemType=e,this.currentLevel=void 0},close(){this.isOpen=!1,this.type=null,this.itemType=null,this.currentLevel=void 0}}});var or={"data-slot":`table-container`,class:`relative w-full overflow-auto`},sr=L({__name:`Table`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,or,[w(`table`,{"data-slot":`table`,class:F(p(W)(`w-full caption-bottom text-sm`,t.class))},[E(e.$slots,`default`)],2)]))}}),cr=L({__name:`TableBody`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`tbody`,{"data-slot":`table-body`,class:F(p(W)(`[&_tr:last-child]:border-0`,t.class))},[E(e.$slots,`default`)],2))}}),K=L({__name:`TableCell`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`td`,{"data-slot":`table-cell`,class:F(p(W)(`p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,t.class))},[E(e.$slots,`default`)],2))}}),lr=L({__name:`TableRow`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`tr`,{"data-slot":`table-row`,class:F(p(W)(`hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors`,t.class))},[E(e.$slots,`default`)],2))}}),q=L({__name:`TableHead`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`th`,{"data-slot":`table-head`,class:F(p(W)(`text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]`,t.class))},[E(e.$slots,`default`)],2))}}),ur=L({__name:`TableHeader`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`thead`,{"data-slot":`table-header`,class:F(p(W)(`[&_tr]:border-b`,t.class))},[E(e.$slots,`default`)],2))}}),J=L({__name:`Card`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`card`,class:F(p(W)(`bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm`,t.class))},[E(e.$slots,`default`)],2))}}),Y=L({__name:`CardContent`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`card-content`,class:F(p(W)(`px-6`,t.class))},[E(e.$slots,`default`)],2))}}),X=L({__name:`CardHeader`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`card-header`,class:F(p(W)(`@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6`,t.class))},[E(e.$slots,`default`)],2))}}),Z=L({__name:`CardTitle`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`h3`,{"data-slot":`card-title`,class:F(p(W)(`leading-none font-semibold`,t.class))},[E(e.$slots,`default`)],2))}}),dr=L({__name:`Label`,props:{for:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=R(t,`class`);return(e,r)=>(N(),C(p(Ye),j({"data-slot":`label`},p(n),{class:p(W)(`flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50`,t.class)}),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`]))}});const fr=(e,t=2)=>e>=0x38d7ea4c68000?(e/0x38d7ea4c68000).toFixed(t)+`Q`:e>=0xe8d4a51000?(e/0xe8d4a51000).toFixed(t)+`T`:e>=1e9?(e/1e9).toFixed(t)+`B`:e>=1e6?(e/1e6).toFixed(t)+`M`:e>=1e3?(e/1e3).toFixed(t)+`K`:Math.floor(e).toString(),pr=(e,t)=>{let n=e/t;return n>=1?`text-red-600 dark:text-red-400`:n>=.7?`text-yellow-600 dark:text-yellow-400`:``},mr=e=>{let t=365*86400,n=Math.floor(e/t);e%=t;let r=Math.floor(e/86400);e%=86400;let i=Math.floor(e/3600);e%=3600;let a=Math.floor(e/60),o=Math.floor(e%60),s=i.toString().padStart(2,`0`),c=a.toString().padStart(2,`0`),l=o.toString().padStart(2,`0`);return n>0?`${n}:${r}:${s}:${c}:${l}`:r>0?`${r}:${s}:${c}:${l}`:`${s}:${c}:${l}`},hr=e=>new Date(e).toLocaleString(`zh-CN`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`}),gr=(e,t)=>e<t?`text-red-600 dark:text-red-400`:``;var _r={class:`cursor-pointer underline decoration-dotted underline-offset-4 touch-manipulation`},vr={class:`font-mono text-sm`},Q=L({__name:`NumberWithTooltip`,props:{value:{}},setup(e){let t=e,n=g(()=>t.value.toLocaleString());return(t,r)=>(N(),C(p(gn),null,{default:l(()=>[O(p(vn),{"as-child":``},{default:l(()=>[w(`span`,_r,S(p(fr)(e.value,1)),1)]),_:1}),O(p(_n),{class:`w-auto p-2`,side:`top`,align:`center`},{default:l(()=>[w(`p`,vr,S(n.value),1)]),_:1})]),_:1}))}}),yr={class:`space-y-4`},br={key:0,class:`border rounded-lg overflow-hidden`},xr={key:1},Sr={key:0,class:`text-green-600 dark:text-green-400`},Cr={key:1},wr={key:0,class:`text-red-600 dark:text-red-400`},Tr={key:1},Er={key:0,class:`text-blue-600 dark:text-blue-400`},Dr={key:1},Or={key:0,class:`text-blue-600 dark:text-blue-400`},kr={key:1},Ar={key:0,class:`text-green-600 dark:text-green-400`},jr={key:1},Mr={key:0,class:`text-cyan-600 dark:text-cyan-400`},Nr={key:1,class:`text-cyan-600 dark:text-cyan-400`},Pr={class:`text-indigo-600 dark:text-indigo-400`},Fr={class:`text-red-600 dark:text-red-400`},Ir={class:`text-blue-600 dark:text-blue-400`},Lr={class:`text-gray-600 dark:text-gray-400`},Rr={class:`text-purple-600 dark:text-purple-400`},zr={class:`text-blue-600 dark:text-blue-400`},Br={class:`text-green-600 dark:text-green-400`},Vr={class:`text-yellow-600 dark:text-yellow-400`},Hr={class:`text-indigo-600 dark:text-indigo-400`},Ur={class:`text-primary font-medium`},Wr={key:1,class:`grid grid-cols-2 gap-4`},Gr={class:`flex items-center justify-between text-sm`},Kr={class:`text-muted-foreground`},qr={class:`font-medium`},Jr={class:`flex items-center justify-between text-sm`},Yr={class:`text-muted-foreground`},Xr={class:`font-medium`},Zr={class:`flex items-center justify-between text-sm`},Qr={class:`text-muted-foreground`},$r={class:`font-medium`},ei={class:`text-3xl font-bold text-primary`},ti={class:`text-xs text-muted-foreground mt-1`},ni={key:2,class:`grid grid-cols-2 md:grid-cols-3 gap-4`},ri={class:`text-2xl font-bold`},ii={class:`text-2xl font-bold`},ai={class:`text-2xl font-bold`},oi={class:`text-2xl font-bold`},si={class:`text-2xl font-bold`},ci={class:`text-2xl font-bold`},li={key:3,class:`grid grid-cols-1 md:grid-cols-2 gap-4`},ui={class:`text-muted-foreground`},di={class:`font-medium`},fi={class:`flex items-center justify-between text-sm pt-2 border-t`},pi={class:`text-muted-foreground`},mi={class:`font-bold text-primary`},hi={class:`text-3xl font-bold`},gi={class:`text-xs text-muted-foreground mt-2`},_i={class:`flex items-center gap-4`},vi={class:`grid grid-cols-2 gap-4 pt-4 border-t`},yi={class:`space-y-2`},bi={class:`text-sm text-muted-foreground`},xi={class:`space-y-1 text-sm`},Si={class:`font-medium`},Ci={class:`space-y-2`},wi={class:`text-sm text-muted-foreground`},Ti={class:`text-xl font-bold`},Ei={class:`text-xs text-muted-foreground`},Di=L({__name:`ItemDetailView`,props:{type:{},itemType:{},currentLevel:{}},setup(e){let{t}=dn(),r=H(),i=e,a=_(1),o=[{key:`metal`},{key:`crystal`},{key:`deuterium`}],u=g(()=>r.currentPlanet),f=g(()=>s(r.player.officers,r.gameTime)),ee=g(()=>u.value&&u.value.buildings.roboticsFactory||0),h=g(()=>u.value&&u.value.buildings.naniteFactory||0),ne=g(()=>u.value&&u.value.buildings.researchLab||0),v=g(()=>({building:`buildings`,technology:`research`,ship:`shipyard`,defense:`defense`})[i.type]),ie=g(()=>i.type===`building`?i.itemType===`darkMatterCollector`:i.type===`technology`?i.itemType===`gravitonTechnology`:!1),oe=g(()=>{if(i.type!==`building`)return!1;let e=i.itemType;return[`metalMine`,`crystalMine`,`deuteriumSynthesizer`,`solarPlant`,`fusionReactor`,`darkMatterCollector`].includes(e)}),le=g(()=>{if(i.type!==`building`)return!1;let e=i.itemType;return[`metalMine`,`crystalMine`,`deuteriumSynthesizer`].includes(e)}),b=g(()=>{if(i.type!==`building`)return!1;let e=i.itemType;return[`metalStorage`,`crystalStorage`,`deuteriumTank`,`darkMatterCollector`,`darkMatterTank`].includes(e)}),fe=g(()=>i.type===`building`?i.itemType===`shipyard`:i.type===`technology`?i.itemType===`computerTechnology`:!1),me=g(()=>i.type===`building`?i.itemType===`naniteFactory`:!1),x=g(()=>{if(i.type===`building`){let e=i.itemType;return[`terraformer`,`lunarBase`].includes(e)}else if(i.type===`technology`)return i.itemType===`terraformingTechnology`;return!1}),he=g(()=>i.type===`building`?i.itemType===`missileSilo`:!1),E=g(()=>{if(i.type!==`building`)return!1;let e=i.itemType;return[`roboticsFactory`,`naniteFactory`].includes(e)}),D=g(()=>i.type===`building`?i.itemType===`researchLab`:i.type===`technology`?i.itemType===`energyTechnology`:!1),ge=g(()=>i.type===`technology`?i.itemType===`weaponsTechnology`:!1),_e=g(()=>i.type===`technology`?i.itemType===`shieldingTechnology`:!1),k=g(()=>i.type===`technology`?i.itemType===`armourTechnology`:!1),ve=g(()=>i.type===`technology`?i.itemType===`espionageTechnology`:!1),ye=g(()=>i.type===`technology`?i.itemType===`computerTechnology`:!1),be=g(()=>i.type===`technology`?i.itemType===`astrophysics`:!1),xe=g(()=>{if(i.type!==`technology`)return!1;let e=i.itemType;return[`combustionDrive`,`impulseDrive`,`hyperspaceDrive`].includes(e)}),Se=g(()=>i.currentLevel??0),we=g(()=>i.type===`ship`?an[i.itemType]:i.type===`defense`?on[i.itemType]:null),j=g(()=>i.type===`ship`?an[i.itemType]:null),M=g(()=>i.type===`ship`?an[i.itemType].cost:i.type===`defense`?on[i.itemType].cost:{metal:0,crystal:0,deuterium:0}),Te=g(()=>i.type===`ship`?de(i.itemType,1,f.value.buildingSpeedBonus,ee.value,h.value):i.type===`defense`?Me(i.itemType,1,f.value.buildingSpeedBonus,ee.value,h.value):0),Ee=g(()=>{if(i.type!==`building`&&i.type!==`technology`)return[];let e=i.currentLevel||0,t=[];for(let n=e;n<=e+10;n++)t.push(n);return t}),P=e=>{if(e===0)return{cost:{metal:0,crystal:0,deuterium:0,darkMatter:0},time:0,production:0,consumption:0,points:0,capacity:0,fleetStorage:0,spaceBonus:0,buildSpeedBonus:0,researchSpeedBonus:0};if(i.type===`building`){let t=i.itemType,n=ce(t,e),r=Ce(t,e,f.value.buildingSpeedBonus,ee.value,h.value),a=0,o=0,s=0,c=0,l=0,u=0,d=0,p=1+(f.value.resourceProductionBonus||0)/100,m=1+(f.value.energyProductionBonus||0)/100,te=1+(f.value.storageCapacityBonus||0)/100;t===`metalMine`?(a=Math.floor(1500*e*1.5**e*p),o=Math.floor(10*e*1.1**e)):t===`crystalMine`?(a=Math.floor(1e3*e*1.5**e*p),o=Math.floor(10*e*1.1**e)):t===`deuteriumSynthesizer`?(a=Math.floor(500*e*1.5**e*p),o=Math.floor(10*e*1.1**e)):t===`solarPlant`?a=Math.floor(50*e*1.1**e*m):t===`metalStorage`||t===`crystalStorage`||t===`deuteriumTank`?s=Math.floor(1e4*2**e*te):t===`darkMatterCollector`?(s=1e3+e*100,a=Math.floor(25*e*1.5**e)):t===`darkMatterTank`?s=Math.floor(1e3*2**e*te):t===`fusionReactor`?a=Math.floor(150*e*1.15**e):t===`shipyard`?c=1e3*e:t===`terraformer`||t===`lunarBase`?l=5:t===`roboticsFactory`?u=e:t===`naniteFactory`?u=e*2:t===`researchLab`&&(d=e);let g=ae(t,e-1,e);return{cost:n,time:r,production:a,consumption:o,points:g,capacity:s,fleetStorage:c,spaceBonus:l,buildSpeedBonus:u,researchSpeedBonus:d}}else{let t=i.itemType,n=te(t,e),r=re(t,e-1,f.value.researchSpeedBonus,ne.value),a=0;return t===`energyTechnology`&&(a=e),{cost:n,time:r,production:0,consumption:0,points:d(t,e-1,e),capacity:0,fleetStorage:0,spaceBonus:0,buildSpeedBonus:0,researchSpeedBonus:a}}},I=g(()=>{if(i.type!==`building`&&i.type!==`technology`)return{metal:0,crystal:0,deuterium:0,points:0};let e=0,t=0,n=0,r=0;for(let i of Ee.value){if(i===0)continue;let a=P(i);e+=a.cost.metal,t+=a.cost.crystal,n+=a.cost.deuterium,r+=a.points}return{metal:e,crystal:t,deuterium:n,points:r}}),De=g(()=>i.type===`ship`?ue(i.itemType,1):i.type===`defense`?se(i.itemType,1):0),Oe=g(()=>({metal:M.value.metal*a.value,crystal:M.value.crystal*a.value,deuterium:M.value.deuterium*a.value})),L=g(()=>i.type===`ship`?ue(i.itemType,a.value):i.type===`defense`?se(i.itemType,a.value):0);return(r,i)=>(N(),y(`div`,yr,[e.type===`building`||e.type===`technology`?(N(),y(`div`,br,[O(p(sr),null,{default:l(()=>[O(p(ur),null,{default:l(()=>[O(p(lr),null,{default:l(()=>[O(p(q),{class:`w-20 text-center`},{default:l(()=>[n(S(p(t)(`${v.value}.levelRange`)),1)]),_:1}),O(p(q),{class:`text-center`},{default:l(()=>[n(S(p(t)(`resources.metal`)),1)]),_:1}),O(p(q),{class:`text-center`},{default:l(()=>[n(S(p(t)(`resources.crystal`)),1)]),_:1}),O(p(q),{class:`text-center`},{default:l(()=>[n(S(p(t)(`resources.deuterium`)),1)]),_:1}),ie.value?(N(),C(p(q),{key:0,class:`text-center`},{default:l(()=>[n(S(p(t)(`resources.darkMatter`)),1)]),_:1})):T(``,!0),O(p(q),{class:`text-center`},{default:l(()=>[n(S(e.type===`building`?p(t)(`buildings.buildTime`):p(t)(`research.researchTime`)),1)]),_:1}),e.type===`building`&&oe.value?(N(),C(p(q),{key:1,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.production`)),1)]),_:1})):T(``,!0),e.type===`building`&&le.value?(N(),C(p(q),{key:2,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.consumption`)),1)]),_:1})):T(``,!0),e.type===`building`&&b.value?(N(),C(p(q),{key:3,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.storageCapacity`)),1)]),_:1})):T(``,!0),e.type===`building`&&fe.value?(N(),C(p(q),{key:4,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.fleetStorage`)),1)]),_:1})):T(``,!0),e.type===`building`&&me.value?(N(),C(p(q),{key:5,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.buildQueueBonus`)),1)]),_:1})):T(``,!0),e.type===`building`&&x.value?(N(),C(p(q),{key:6,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.spaceBonus`)),1)]),_:1})):T(``,!0),e.type===`building`&&he.value?(N(),C(p(q),{key:7,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.missileCapacity`)),1)]),_:1})):T(``,!0),e.type===`building`&&E.value?(N(),C(p(q),{key:8,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.buildSpeedBonus`)),1)]),_:1})):T(``,!0),e.type===`building`&&D.value?(N(),C(p(q),{key:9,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.researchSpeedBonus`)),1)]),_:1})):T(``,!0),e.type===`technology`&&ge.value?(N(),C(p(q),{key:10,class:`text-center`},{default:l(()=>[n(S(p(t)(`research.attackBonus`)),1)]),_:1})):T(``,!0),e.type===`technology`&&_e.value?(N(),C(p(q),{key:11,class:`text-center`},{default:l(()=>[n(S(p(t)(`research.shieldBonus`)),1)]),_:1})):T(``,!0),e.type===`technology`&&k.value?(N(),C(p(q),{key:12,class:`text-center`},{default:l(()=>[n(S(p(t)(`research.armorBonus`)),1)]),_:1})):T(``,!0),e.type===`technology`&&ve.value?(N(),C(p(q),{key:13,class:`text-center`},{default:l(()=>[n(S(p(t)(`research.spyLevel`)),1)]),_:1})):T(``,!0),e.type===`technology`&&fe.value?(N(),C(p(q),{key:14,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.fleetStorage`)),1)]),_:1})):T(``,!0),e.type===`technology`&&ye.value?(N(),C(p(q),{key:15,class:`text-center`},{default:l(()=>[n(S(p(t)(`research.researchQueueBonus`)),1)]),_:1})):T(``,!0),e.type===`technology`&&be.value?(N(),C(p(q),{key:16,class:`text-center`},{default:l(()=>[n(S(p(t)(`research.colonySlots`)),1)]),_:1})):T(``,!0),e.type===`technology`&&x.value?(N(),C(p(q),{key:17,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.spaceBonus`)),1)]),_:1})):T(``,!0),e.type===`technology`&&xe.value?(N(),C(p(q),{key:18,class:`text-center`},{default:l(()=>[n(S(p(t)(`research.speedBonus`)),1)]),_:1})):T(``,!0),e.type===`technology`&&D.value?(N(),C(p(q),{key:19,class:`text-center`},{default:l(()=>[n(S(p(t)(`buildings.researchSpeedBonus`)),1)]),_:1})):T(``,!0),O(p(q),{class:`text-center`},{default:l(()=>[n(S(p(t)(`player.points`)),1)]),_:1})]),_:1})]),_:1}),O(p(cr),null,{default:l(()=>[(N(!0),y(m,null,A(Ee.value,r=>(N(),C(p(lr),{key:r,class:F({"bg-muted/50":r===Se.value})},{default:l(()=>[O(p(K),{class:`text-center font-medium`},{default:l(()=>[r===Se.value?(N(),C(p(pn),{key:0,variant:`default`},{default:l(()=>[n(S(r),1)]),_:2},1024)):(N(),y(`span`,xr,S(r),1))]),_:2},1024),O(p(K),{class:`text-center text-sm`},{default:l(()=>[O(Q,{value:P(r).cost.metal},null,8,[`value`])]),_:2},1024),O(p(K),{class:`text-center text-sm`},{default:l(()=>[O(Q,{value:P(r).cost.crystal},null,8,[`value`])]),_:2},1024),O(p(K),{class:`text-center text-sm`},{default:l(()=>[O(Q,{value:P(r).cost.deuterium},null,8,[`value`])]),_:2},1024),ie.value?(N(),C(p(K),{key:0,class:`text-center text-sm`},{default:l(()=>[O(Q,{value:P(r).cost.darkMatter},null,8,[`value`])]),_:2},1024)):T(``,!0),O(p(K),{class:`text-center text-sm`},{default:l(()=>[n(S(p(mr)(P(r).time)),1)]),_:2},1024),e.type===`building`&&oe.value?(N(),C(p(K),{key:1,class:`text-center text-sm`},{default:l(()=>[P(r).production>0?(N(),y(`span`,Sr,[i[1]||=n(` + `,-1),O(Q,{value:P(r).production},null,8,[`value`]),n(` /`+S(p(t)(`resources.perHour`)),1)])):(N(),y(`span`,Cr,`-`))]),_:2},1024)):T(``,!0),e.type===`building`&&le.value?(N(),C(p(K),{key:2,class:`text-center text-sm`},{default:l(()=>[P(r).consumption>0?(N(),y(`span`,wr,[i[2]||=n(` - `,-1),O(Q,{value:P(r).consumption},null,8,[`value`])])):(N(),y(`span`,Tr,`-`))]),_:2},1024)):T(``,!0),e.type===`building`&&b.value?(N(),C(p(K),{key:3,class:`text-center text-sm`},{default:l(()=>[P(r).capacity>0?(N(),y(`span`,Er,[O(Q,{value:P(r).capacity},null,8,[`value`])])):(N(),y(`span`,Dr,`-`))]),_:2},1024)):T(``,!0),e.type===`building`&&fe.value?(N(),C(p(K),{key:4,class:`text-center text-sm`},{default:l(()=>[P(r).fleetStorage>0?(N(),y(`span`,Or,[i[3]||=n(` +`,-1),O(Q,{value:P(r).fleetStorage},null,8,[`value`])])):(N(),y(`span`,kr,`-`))]),_:2},1024)):T(``,!0),e.type===`building`&&me.value?(N(),C(p(K),{key:5,class:`text-center text-sm`},{default:l(()=>[...i[4]||=[w(`span`,{class:`text-purple-600 dark:text-purple-400`},`+1`,-1)]]),_:1})):T(``,!0),e.type===`building`&&x.value?(N(),C(p(K),{key:6,class:`text-center text-sm`},{default:l(()=>[P(r).spaceBonus>0?(N(),y(`span`,Ar,[i[5]||=n(` +`,-1),O(Q,{value:P(r).spaceBonus},null,8,[`value`])])):(N(),y(`span`,jr,`-`))]),_:2},1024)):T(``,!0),e.type===`building`&&he.value?(N(),C(p(K),{key:7,class:`text-center text-sm`},{default:l(()=>[...i[6]||=[w(`span`,{class:`text-orange-600 dark:text-orange-400`},`+10`,-1)]]),_:1})):T(``,!0),e.type===`building`&&E.value?(N(),C(p(K),{key:8,class:`text-center text-sm`},{default:l(()=>[e.itemType===`roboticsFactory`?(N(),y(`span`,Mr,`+`+S(P(r).buildSpeedBonus*100)+`%`,1)):e.itemType===`naniteFactory`?(N(),y(`span`,Nr,`+`+S(P(r).buildSpeedBonus*100)+`%`,1)):T(``,!0)]),_:2},1024)):T(``,!0),e.type===`building`&&D.value?(N(),C(p(K),{key:9,class:`text-center text-sm`},{default:l(()=>[w(`span`,Pr,`+`+S((P(r).researchSpeedBonus-1)*100)+`%`,1)]),_:2},1024)):T(``,!0),e.type===`technology`&&ge.value?(N(),C(p(K),{key:10,class:`text-center text-sm`},{default:l(()=>[w(`span`,Fr,`+`+S(r*10)+`%`,1)]),_:2},1024)):T(``,!0),e.type===`technology`&&_e.value?(N(),C(p(K),{key:11,class:`text-center text-sm`},{default:l(()=>[w(`span`,Ir,`+`+S(r*10)+`%`,1)]),_:2},1024)):T(``,!0),e.type===`technology`&&k.value?(N(),C(p(K),{key:12,class:`text-center text-sm`},{default:l(()=>[w(`span`,Lr,`+`+S(r*10)+`%`,1)]),_:2},1024)):T(``,!0),e.type===`technology`&&ve.value?(N(),C(p(K),{key:13,class:`text-center text-sm`},{default:l(()=>[w(`span`,Rr,`+`+S(r),1)]),_:2},1024)):T(``,!0),e.type===`technology`&&fe.value?(N(),C(p(K),{key:14,class:`text-center text-sm`},{default:l(()=>[w(`span`,zr,[i[7]||=n(`+`,-1),O(Q,{value:r*500},null,8,[`value`])])]),_:2},1024)):T(``,!0),e.type===`technology`&&ye.value?(N(),C(p(K),{key:15,class:`text-center text-sm`},{default:l(()=>[...i[8]||=[w(`span`,{class:`text-purple-600 dark:text-purple-400`},`+1`,-1)]]),_:1})):T(``,!0),e.type===`technology`&&be.value?(N(),C(p(K),{key:16,class:`text-center text-sm`},{default:l(()=>[...i[9]||=[w(`span`,{class:`text-green-600 dark:text-green-400`},`+1`,-1)]]),_:1})):T(``,!0),e.type===`technology`&&x.value?(N(),C(p(K),{key:17,class:`text-center text-sm`},{default:l(()=>[w(`span`,Br,`+5 `+S(p(t)(`research.forAllPlanets`)),1)]),_:1})):T(``,!0),e.type===`technology`&&xe.value?(N(),C(p(K),{key:18,class:`text-center text-sm`},{default:l(()=>[w(`span`,Vr,`+`+S(r*10)+`%`,1)]),_:2},1024)):T(``,!0),e.type===`technology`&&D.value?(N(),C(p(K),{key:19,class:`text-center text-sm`},{default:l(()=>[w(`span`,Hr,`+`+S(P(r).researchSpeedBonus*100)+`%`,1)]),_:2},1024)):T(``,!0),O(p(K),{class:`text-center text-sm`},{default:l(()=>[w(`span`,Ur,[i[10]||=n(` + `,-1),O(Q,{value:P(r).points},null,8,[`value`])])]),_:2},1024)]),_:2},1032,[`class`]))),128))]),_:1})]),_:1})])):T(``,!0),e.type===`building`||e.type===`technology`?(N(),y(`div`,Wr,[O(p(J),null,{default:l(()=>[O(p(X),{class:`pb-3`},{default:l(()=>[O(p(Z),{class:`text-sm`},{default:l(()=>[n(S(p(t)(`${v.value}.totalCost`)),1)]),_:1})]),_:1}),O(p(Y),{class:`space-y-2`},{default:l(()=>[w(`div`,Gr,[w(`span`,Kr,S(p(t)(`resources.metal`))+`:`,1),w(`span`,qr,[O(Q,{value:I.value.metal},null,8,[`value`])])]),w(`div`,Jr,[w(`span`,Yr,S(p(t)(`resources.crystal`))+`:`,1),w(`span`,Xr,[O(Q,{value:I.value.crystal},null,8,[`value`])])]),w(`div`,Zr,[w(`span`,Qr,S(p(t)(`resources.deuterium`))+`:`,1),w(`span`,$r,[O(Q,{value:I.value.deuterium},null,8,[`value`])])])]),_:1})]),_:1}),O(p(J),null,{default:l(()=>[O(p(X),{class:`pb-3`},{default:l(()=>[O(p(Z),{class:`text-sm`},{default:l(()=>[n(S(p(t)(`${v.value}.totalPoints`)),1)]),_:1})]),_:1}),O(p(Y),null,{default:l(()=>[w(`div`,ei,[O(Q,{value:I.value.points},null,8,[`value`])]),w(`p`,ti,S(p(t)(`${v.value}.levelRange`))+`: `+S(Math.max(0,Se.value-10))+` - `+S(Se.value+10),1)]),_:1})]),_:1})])):T(``,!0),e.type===`ship`||e.type===`defense`?(N(),y(`div`,ni,[O(p(J),null,{default:l(()=>[O(p(X),{class:`pb-3`},{default:l(()=>[O(p(Z),{class:`text-sm flex items-center gap-2`},{default:l(()=>[O(p(Ut),{class:`h-4 w-4`}),n(` `+S(p(t)(`${v.value}.attack`)),1)]),_:1})]),_:1}),O(p(Y),null,{default:l(()=>[w(`div`,ri,[O(Q,{value:we.value?.attack||0},null,8,[`value`])])]),_:1})]),_:1}),O(p(J),null,{default:l(()=>[O(p(X),{class:`pb-3`},{default:l(()=>[O(p(Z),{class:`text-sm flex items-center gap-2`},{default:l(()=>[O(p(Qt),{class:`h-4 w-4`}),n(` `+S(p(t)(`${v.value}.shield`)),1)]),_:1})]),_:1}),O(p(Y),null,{default:l(()=>[w(`div`,ii,[O(Q,{value:we.value?.shield||0},null,8,[`value`])])]),_:1})]),_:1}),O(p(J),null,{default:l(()=>[O(p(X),{class:`pb-3`},{default:l(()=>[O(p(Z),{class:`text-sm flex items-center gap-2`},{default:l(()=>[O(p(Yt),{class:`h-4 w-4`}),n(` `+S(p(t)(`${v.value}.armor`)),1)]),_:1})]),_:1}),O(p(Y),null,{default:l(()=>[w(`div`,ai,[O(Q,{value:we.value?.armor||0},null,8,[`value`])])]),_:1})]),_:1}),e.type===`ship`?(N(),C(p(J),{key:0},{default:l(()=>[O(p(X),{class:`pb-3`},{default:l(()=>[O(p(Z),{class:`text-sm flex items-center gap-2`},{default:l(()=>[O(p(en),{class:`h-4 w-4`}),n(` `+S(p(t)(`shipyard.speed`)),1)]),_:1})]),_:1}),O(p(Y),null,{default:l(()=>[w(`div`,oi,[O(Q,{value:j.value?.speed||0},null,8,[`value`])])]),_:1})]),_:1})):T(``,!0),e.type===`ship`?(N(),C(p(J),{key:1},{default:l(()=>[O(p(X),{class:`pb-3`},{default:l(()=>[O(p(Z),{class:`text-sm flex items-center gap-2`},{default:l(()=>[O(p(Bt),{class:`h-4 w-4`}),n(` `+S(p(t)(`shipyard.cargoCapacity`)),1)]),_:1})]),_:1}),O(p(Y),null,{default:l(()=>[w(`div`,si,[O(Q,{value:j.value?.cargoCapacity||0},null,8,[`value`])])]),_:1})]),_:1})):T(``,!0),e.type===`ship`?(N(),C(p(J),{key:2},{default:l(()=>[O(p(X),{class:`pb-3`},{default:l(()=>[O(p(Z),{class:`text-sm flex items-center gap-2`},{default:l(()=>[O(p(Pt),{class:`h-4 w-4`}),n(` `+S(p(t)(`shipyard.fuelConsumption`)),1)]),_:1})]),_:1}),O(p(Y),null,{default:l(()=>[w(`div`,ci,[O(Q,{value:j.value?.fuelConsumption||0},null,8,[`value`])])]),_:1})]),_:1})):T(``,!0)])):T(``,!0),e.type===`ship`||e.type===`defense`?(N(),y(`div`,li,[O(p(J),null,{default:l(()=>[O(p(X),null,{default:l(()=>[O(p(Z),{class:`text-sm`},{default:l(()=>[n(S(p(t)(`${v.value}.buildCost`)),1)]),_:1})]),_:1}),O(p(Y),{class:`space-y-2`},{default:l(()=>[(N(),y(m,null,A(o,e=>c(w(`div`,{key:e.key,class:`flex items-center justify-between text-sm`},[w(`span`,ui,S(p(t)(`resources.${e.key}`))+`:`,1),w(`span`,di,[O(Q,{value:M.value[e.key]},null,8,[`value`])])]),[[pe,M.value[e.key]>0]])),64)),w(`div`,fi,[w(`span`,pi,S(p(t)(`player.points`))+`:`,1),w(`span`,mi,[O(Q,{value:De.value},null,8,[`value`])])])]),_:1})]),_:1}),O(p(J),null,{default:l(()=>[O(p(X),null,{default:l(()=>[O(p(Z),{class:`text-sm`},{default:l(()=>[n(S(p(t)(`${v.value}.buildTime`)),1)]),_:1})]),_:1}),O(p(Y),null,{default:l(()=>[w(`div`,hi,S(p(mr)(Te.value)),1),w(`p`,gi,S(p(t)(`${v.value}.perUnit`)),1)]),_:1})]),_:1})])):T(``,!0),e.type===`ship`||e.type===`defense`?(N(),C(p(J),{key:4},{default:l(()=>[O(p(X),null,{default:l(()=>[O(p(Z),{class:`text-sm`},{default:l(()=>[n(S(p(t)(`${v.value}.batchCalculator`)),1)]),_:1})]),_:1}),O(p(Y),{class:`space-y-4`},{default:l(()=>[w(`div`,_i,[O(p(dr),{class:`w-20`},{default:l(()=>[n(S(p(t)(`${v.value}.quantity`))+`:`,1)]),_:1}),O(p(In),{modelValue:a.value,"onUpdate:modelValue":i[0]||=e=>a.value=e,modelModifiers:{number:!0},type:`number`,min:`1`,class:`flex-1`},null,8,[`modelValue`])]),w(`div`,vi,[w(`div`,yi,[w(`p`,bi,S(p(t)(`${v.value}.totalCost`))+`:`,1),w(`div`,xi,[(N(),y(m,null,A(o,e=>w(`div`,{key:e.key,class:`flex justify-between`},[w(`span`,null,S(p(t)(`resources.${e.key}`))+`:`,1),w(`span`,Si,[O(Q,{value:Oe.value[e.key]},null,8,[`value`])])])),64))])]),w(`div`,Ci,[w(`p`,wi,S(p(t)(`${v.value}.totalTime`))+`:`,1),w(`div`,Ti,S(p(mr)(Te.value*a.value)),1),w(`p`,Ei,[n(S(p(t)(`player.points`))+`: + `,1),O(Q,{value:L.value},null,8,[`value`])])])])]),_:1})]),_:1})):T(``,!0)]))}}),Oi=L({__name:`DetailDialog`,setup(e){let{t}=dn(),r=ar(),i=g(()=>!r.type||!r.itemType?``:t(`${{building:`buildings`,technology:`technologies`,ship:`ships`,defense:`defenses`}[r.type]}.${r.itemType}`)),a=g(()=>!r.type||!r.itemType?``:t(`${{building:`buildingDescriptions`,technology:`technologyDescriptions`,ship:`shipDescriptions`,defense:`defenseDescriptions`}[r.type]}.${r.itemType}`)),o=e=>{e||r.close()};return(e,s)=>(N(),C(p(Xn),{open:p(r).isOpen,"onUpdate:open":o},{default:l(()=>[p(r).type&&p(r).itemType?(N(),C(p(rr),{key:0,"container-class":`sm:max-w-[90vw] md:max-w-3xl lg:max-w-4xl max-h-[90vh]`},{header:l(()=>[O(p($n),null,{default:l(()=>[O(p(ir),{class:`flex items-center gap-2`},{default:l(()=>[n(S(i.value)+` `,1),p(r).currentLevel===void 0?T(``,!0):(N(),C(p(pn),{key:0,variant:`outline`},{default:l(()=>[n(S(p(t)(`common.currentLevel`))+` `+S(p(r).currentLevel),1)]),_:1}))]),_:1}),O(p(Qn),null,{default:l(()=>[n(S(a.value),1)]),_:1})]),_:1})]),default:l(()=>[O(Di,{type:p(r).type,itemType:p(r).itemType,currentLevel:p(r).currentLevel},null,8,[`type`,`itemType`,`currentLevel`])]),_:1})):T(``,!0)]),_:1},8,[`open`]))}}),ki=L({__name:`Sonner`,props:{id:{},invert:{type:Boolean},theme:{},position:{},closeButtonPosition:{},hotkey:{},richColors:{type:Boolean},expand:{type:Boolean},duration:{},gap:{},visibleToasts:{},closeButton:{type:Boolean},toastOptions:{},class:{},style:{},offset:{},mobileOffset:{},dir:{},swipeDirections:{},icons:{},containerAriaLabel:{}},setup(e){let t=e;return(e,n)=>(N(),C(p(qe),j({class:p(W)(`toaster group`,t.class),style:{"--normal-bg":`var(--popover)`,"--normal-text":`var(--popover-foreground)`,"--normal-border":`var(--border)`,"--border-radius":`var(--radius)`}},t),{"success-icon":l(()=>[O(p(Vt),{class:`size-4`})]),"info-icon":l(()=>[O(p(jt),{class:`size-4`})]),"warning-icon":l(()=>[O(p(Zt),{class:`size-4`})]),"error-icon":l(()=>[O(p(Mt),{class:`size-4`})]),"loading-icon":l(()=>[w(`div`,null,[O(p(zt),{class:`size-4 animate-spin`})])]),"close-icon":l(()=>[O(p(Xt),{class:`size-4`})]),_:1},16,[`class`]))}}),Ai=L({__name:`AlertDialog`,props:{open:{type:Boolean},defaultOpen:{type:Boolean}},emits:[`update:open`],setup(e,{emit:t}){let n=z(e,t);return(e,t)=>(N(),C(p(st),j({"data-slot":`alert-dialog`},p(n)),{default:l(t=>[E(e.$slots,`default`,h(I(t)))]),_:3},16))}}),ji=L({__name:`AlertDialogAction`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=R(t,`class`);return(e,r)=>(N(),C(p(ut),j(p(n),{class:p(W)(p(fn)(),t.class)}),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`]))}}),Mi=L({__name:`AlertDialogCancel`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=R(t,`class`);return(e,r)=>(N(),C(p($e),j(p(n),{class:p(W)(p(fn)({variant:`outline`}),`mt-2 sm:mt-0`,t.class)}),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`]))}}),Ni=L({inheritAttrs:!1,__name:`AlertDialogContent`,props:{forceMount:{type:Boolean},disableOutsidePointerEvents:{type:Boolean},asChild:{type:Boolean},as:{},class:{}},emits:[`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`],setup(e,{emit:t}){let n=e,r=t,i=z(R(n,`class`),r);return(e,t)=>(N(),C(p(Tt),null,{default:l(()=>[O(p(Xe),{"data-slot":`alert-dialog-overlay`,class:`data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/80`}),O(p(ct),j({"data-slot":`alert-dialog-content`},{...e.$attrs,...p(i)},{class:p(W)(`bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg`,n.class)}),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`])]),_:3}))}}),Pi=L({__name:`AlertDialogDescription`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=R(t,`class`);return(e,r)=>(N(),C(p(lt),j({"data-slot":`alert-dialog-description`},p(n),{class:p(W)(`text-muted-foreground text-sm`,t.class)}),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`]))}}),Fi=L({__name:`AlertDialogFooter`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`alert-dialog-footer`,class:F(p(W)(`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,t.class))},[E(e.$slots,`default`)],2))}}),Ii=L({__name:`AlertDialogHeader`,props:{class:{}},setup(e){let t=e;return(e,n)=>(N(),y(`div`,{"data-slot":`alert-dialog-header`,class:F(p(W)(`flex flex-col gap-2 text-center sm:text-left`,t.class))},[E(e.$slots,`default`)],2))}}),Li=L({__name:`AlertDialogTitle`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=R(t,`class`);return(e,r)=>(N(),C(p(nt),j({"data-slot":`alert-dialog-title`},p(n),{class:p(W)(`text-lg font-semibold`,t.class)}),{default:l(()=>[E(e.$slots,`default`)]),_:3},16,[`class`]))}});const Ri=Ie(`universe`,{state:()=>({planets:{},debrisFields:{}}),persist:{key:`${V.name}-universe`,storage:localStorage,serializer:{serialize:e=>cn(e),deserialize:e=>ln(e)}}}),zi=()=>{let e=H(),t=Ri(),n=(e,n)=>{for(let r=0;r<e;r++){let e=ke(),i=k(e.galaxy,e.system,e.position);if(t.planets[i])continue;let a=_e(r,e,n);t.planets[i]=a}};return{initGame:async(r,i,a)=>{if(!ge(e.player.planets)){let r=Date.now(),i=s(e.player.officers,r);e.player.planets.forEach(e=>{D(e,r,i)}),Object.keys(t.planets).length===0&&n(200,a);return}e.player=De(e.player.id,r);let o=Oe(e.player.id,i);e.player.planets=[o],e.currentPlanetId=o.id,n(200,a)},generateNPCPlanets:n}},Bi=Ie(`npc`,{state:()=>({npcs:[],lastGrowthCheck:{}}),persist:{key:`${V.name}-npcs`,storage:localStorage,serializer:{serialize:e=>cn(e),deserialize:e=>ln(e)}}}),Vi=e=>{let t=H(),n=Ri(),r=Bi();return{processMissionArrival:async a=>{let o=k(a.targetPosition.galaxy,a.targetPosition.system,a.targetPosition.position),s=t.player.planets.find(e=>e.position.galaxy===a.targetPosition.galaxy&&e.position.system===a.targetPosition.system&&e.position.position===a.targetPosition.position)||n.planets[o],c=t.player.planets.find(e=>e.id===a.originPlanetId)?.name||e(`fleetView.unknownPlanet`);if(a.missionType===B.Transport){let n=ne(a,s,t.player,r.npcs);t.player.missionReports||(t.player.missionReports=[]),t.player.missionReports.push({id:`mission-report-${a.id}`,timestamp:Date.now(),missionType:B.Transport,originPlanetId:a.originPlanetId,originPlanetName:c,targetPosition:a.targetPosition,targetPlanetId:s?.id,targetPlanetName:s?.name||`[${a.targetPosition.galaxy}:${a.targetPosition.system}:${a.targetPosition.position}]`,success:n.success,message:n.success?e(`missionReports.transportSuccess`):e(`missionReports.transportFailed`),details:{transportedResources:a.cargo},read:!1})}else if(a.missionType===B.Attack){let e=await Ne(a,s,t.player,null,t.player.planets);if(e){if(t.player.battleReports.push(e.battleResult),s){let n=r.npcs.find(e=>e.planets.some(e=>e.id===s.id));n&&x(t.player,n,e.battleResult,r.npcs)}e.moon&&t.player.planets.push(e.moon),e.debrisField&&(n.debrisFields[e.debrisField.id]=e.debrisField)}}else if(a.missionType===B.Colonize){let n=i(a,s,t.player,e(`planet.colonyPrefix`));t.player.missionReports||(t.player.missionReports=[]),t.player.missionReports.push({id:`mission-report-${a.id}`,timestamp:Date.now(),missionType:B.Colonize,originPlanetId:a.originPlanetId,originPlanetName:c,targetPosition:a.targetPosition,targetPlanetId:n?.id,targetPlanetName:n?.name,success:!!n,message:e(n?`missionReports.colonizeSuccess`:`missionReports.colonizeFailed`),details:n?{newPlanetId:n.id,newPlanetName:n.name}:void 0,read:!1}),n&&t.player.planets.push(n)}else if(a.missionType===B.Spy){let e=f(a,s,t.player,null,r.npcs);e&&t.player.spyReports.push(e)}else if(a.missionType===B.Deploy){let n=fe(a,s,t.player.id);if(t.player.missionReports||(t.player.missionReports=[]),t.player.missionReports.push({id:`mission-report-${a.id}`,timestamp:Date.now(),missionType:B.Deploy,originPlanetId:a.originPlanetId,originPlanetName:c,targetPosition:a.targetPosition,targetPlanetId:s?.id,targetPlanetName:s?.name||`[${a.targetPosition.galaxy}:${a.targetPosition.system}:${a.targetPosition.position}]`,success:n,message:e(n?`missionReports.deploySuccess`:`missionReports.deployFailed`),details:{deployedFleet:a.fleet},read:!1}),n){let e=t.player.fleetMissions.indexOf(a);e>-1&&t.player.fleetMissions.splice(e,1);return}}else if(a.missionType===B.Recycle){let r=`debris_${a.targetPosition.galaxy}_${a.targetPosition.system}_${a.targetPosition.position}`,i=n.debrisFields[r],o=me(a,i);t.player.missionReports||(t.player.missionReports=[]),t.player.missionReports.push({id:`mission-report-${a.id}`,timestamp:Date.now(),missionType:B.Recycle,originPlanetId:a.originPlanetId,originPlanetName:c,targetPosition:a.targetPosition,success:!!o,message:e(o?`missionReports.recycleSuccess`:`missionReports.recycleFailed`),details:o?{recycledResources:o.collectedResources,remainingDebris:o.remainingDebris||void 0}:void 0,read:!1}),o&&i&&(o.remainingDebris&&(o.remainingDebris.metal>0||o.remainingDebris.crystal>0)?n.debrisFields[r]={id:i.id,position:i.position,resources:o.remainingDebris,createdAt:i.createdAt,expiresAt:i.expiresAt}:delete n.debrisFields[r])}else if(a.missionType===B.Destroy){let r=ee(a,s,t.player);if(t.player.missionReports||(t.player.missionReports=[]),t.player.missionReports.push({id:`mission-report-${a.id}`,timestamp:Date.now(),missionType:B.Destroy,originPlanetId:a.originPlanetId,originPlanetName:c,targetPosition:a.targetPosition,targetPlanetId:s?.id,targetPlanetName:s?.name,success:r?.success||!1,message:r?.success?e(`missionReports.destroySuccess`):e(`missionReports.destroyFailed`),details:r?.success?{destroyedPlanetName:s?.name||`[${a.targetPosition.galaxy}:${a.targetPosition.system}:${a.targetPosition.position}]`}:void 0,read:!1}),r&&r.success&&r.planetId){let e=t.player.planets.findIndex(e=>e.id===r.planetId);e>-1?t.player.planets.splice(e,1):delete n.planets[o]}}},processMissionReturn:e=>{let n=t.player.planets.find(t=>t.id===e.originPlanetId);if(!n)return;je(n.fleet,e.fleet),M(n.resources,e.cargo);let r=t.player.fleetMissions.indexOf(e);r>-1&&t.player.fleetMissions.splice(r,1)}}},Hi=()=>{let e=H(),t=Ri(),n=Bi(),i=t=>{if(!e.player.incomingFleetAlerts)return;let n=e.player.incomingFleetAlerts.indexOf(t);n>-1&&e.player.incomingFleetAlerts.splice(n,1)},a=t=>{if(!e.player.incomingFleetAlerts)return;let n=e.player.incomingFleetAlerts.findIndex(e=>e.id===t);n>-1&&e.player.incomingFleetAlerts.splice(n,1)},o=(n,i)=>{if(i.missionType===B.Recycle){let e=i.debrisFieldId;if(!e){console.warn(`[NPC Mission] Recycle mission missing debrisFieldId`),i.status=`returning`,i.returnTime=Date.now()+(i.arrivalTime-i.departureTime);return}let n=t.debrisFields[e],r=me(i,n);r&&n&&(r.remainingDebris&&(r.remainingDebris.metal>0||r.remainingDebris.crystal>0)?t.debrisFields[e]={id:n.id,position:n.position,resources:r.remainingDebris,createdAt:n.createdAt}:delete t.debrisFields[e]),a(i.id),i.returnTime=Date.now()+(i.arrivalTime-i.departureTime);return}let o=k(i.targetPosition.galaxy,i.targetPosition.system,i.targetPosition.position),s=e.player.planets.find(e=>e.position.galaxy===i.targetPosition.galaxy&&e.position.system===i.targetPosition.system&&e.position.position===i.targetPosition.position)||t.planets[o];if(!s){console.warn(`[NPC Mission] Target planet not found`);return}if(i.missionType===B.Spy){let{spiedNotification:t,spyReport:o}=r(n,i,s,e.player);n.playerSpyReports||={},n.playerSpyReports[s.id]=o,e.player.spiedNotifications||(e.player.spiedNotifications=[]),e.player.spiedNotifications.push(t),a(i.id)}else i.missionType===B.Attack&&b(n,i,s,e.player,e.player.planets).then(n=>{n&&(e.player.battleReports.push(n.battleResult),n.moon&&e.player.planets.push(n.moon),n.debrisField&&(t.debrisFields[n.debrisField.id]=n.debrisField)),a(i.id)})},s=(e,t)=>{let n=e.planets.find(e=>e.id===t.originPlanetId);if(n&&(je(n.fleet,t.fleet),t.cargo&&(n.resources.metal+=t.cargo.metal,n.resources.crystal+=t.cargo.crystal,n.resources.deuterium+=t.cargo.deuterium),e.fleetMissions)){let n=e.fleetMissions.indexOf(t);n>-1&&e.fleetMissions.splice(n,1)}},c=0,l=r=>{if(c+=r,c<10)return;let i=Object.values(t.planets);if(n.npcs.length===0){let t=new Map;if(i.forEach(n=>{n.ownerId===e.player.id||!n.ownerId||(t.has(n.ownerId)||t.set(n.ownerId,{id:n.ownerId,name:`NPC-${n.ownerId.substring(0,8)}`,planets:[],technologies:{},difficulty:`medium`,relations:{},allies:[],enemies:[]}),t.get(n.ownerId).planets.push(n))}),n.npcs=Array.from(t.values()),n.npcs.length>0){let t=v({planets:i,player:e.player,npcs:n.npcs});n.npcs.forEach(e=>{le(e,t)}),oe(n.npcs)}}if(n.npcs.length===0){c=0;return}let a={planets:i,player:e.player,npcs:n.npcs};n.npcs.forEach(e=>{u(e,a,c)}),c=0},d=0;return{processNPCMissionArrival:o,processNPCMissionReturn:s,removeIncomingFleetAlert:i,removeIncomingFleetAlertById:a,updateNPCGrowth:l,updateNPCBehavior:r=>{if(d+=r,d<5)return;if(n.npcs.length===0){d=0;return}let i=Date.now(),a=Object.values(t.planets);n.npcs.forEach(n=>{Se(n,e.player,a,t.debrisFields,i)}),d=0}}},Ui=(e,t,n,r,i)=>{let a=H();return{handleCancelBuild:o=>{n.value=e(`queue.cancelBuild`),r.value=e(`queue.confirmCancel`),i.value=()=>{if(!a.currentPlanet)return!1;let{item:e,index:t}=be(a.currentPlanet.buildQueue,o);if(!e)return!1;if(e.type===`building`){let t=ve(a.currentPlanet,e);M(a.currentPlanet.resources,t)}return a.currentPlanet.buildQueue.splice(t,1),!0},t.value=!0},handleCancelResearch:o=>{n.value=e(`queue.cancelResearch`),r.value=e(`queue.confirmCancel`),i.value=()=>{if(!a.currentPlanet)return!1;let{item:e,index:t}=be(a.player.researchQueue,o);if(!e)return!1;if(e.type===`technology`){let t=we(e);M(a.currentPlanet.resources,t)}return a.player.researchQueue.splice(t,1),!0},t.value=!0},getItemName:t=>{if(t.type===`building`||t.type===`demolish`){let n=e(`buildings.${t.itemType}`);return t.type===`demolish`?`${e(`buildingsView.demolish`)} - ${n}`:n}else if(t.type===`technology`)return e(`technologies.${t.itemType}`);else if(t.type===`ship`)return e(`ships.${t.itemType}`);else if(t.type===`defense`)return e(`defenses.${t.itemType}`);return e(`common.unknown`)},getRemainingTime:e=>{let t=Date.now();return Math.max(0,Math.floor((e.endTime-t)/1e3))},getQueueProgress:e=>{let t=Date.now(),n=e.endTime-e.startTime,r=t-e.startTime;return Math.min(100,Math.max(0,r/n*100))}}},Wi=(e,n,r,i,a,o)=>{let s=H(),c=Bi();return{updateGame:()=>{if(s.isPaused)return;let l=Date.now();s.gameTime=l,t(s.player.officers,l);let u=xe(s.player,l);s.player.researchQueue=u.updatedResearchQueue,s.player.fleetMissions.forEach(t=>{t.status===`outbound`&&l>=t.arrivalTime?e(t):t.status===`returning`&&t.returnTime&&l>=t.returnTime&&n(t)}),c.npcs.forEach(e=>{e.fleetMissions&&e.fleetMissions.forEach(t=>{t.status===`outbound`&&l>=t.arrivalTime?r(e,t):t.status===`returning`&&t.returnTime&&l>=t.returnTime&&i(e,t)})}),a(1),o(1)}}},Gi=()=>{try{let e=V.name,t=`${V.name}-universe`,n=localStorage.getItem(e);if(!n)return;let r;try{r=ln(n)}catch{try{r=JSON.parse(n)}catch{return}}if(!(r.universePlanets||r.debrisFields))return;let i={planets:{},debrisFields:{}};if(r.universePlanets){let e=r.universePlanets,t=r.player?.planets||[],n=new Set(t.map(e=>e.id));Object.entries(e).forEach(([e,t])=>{n.has(t.id)||(i.planets[e]=t)}),delete r.universePlanets}r.debrisFields&&(i.debrisFields=r.debrisFields,delete r.debrisFields),localStorage.setItem(t,cn(i)),localStorage.setItem(e,cn(r))}catch(e){console.error(e)}};var Ki={class:`flex items-center justify-center p-4 group-data-[collapsible=icon]:p-2`},qi={class:`text-xl font-bold ml-2 group-data-[collapsible=icon]:hidden`},Ji={class:`px-4 py-3 space-y-2 text-sm`},Yi={class:`font-semibold mb-1`},Xi={class:`text-muted-foreground text-xs`},Zi={class:`bg-muted/50 rounded-lg p-2`},Qi={class:`flex items-center justify-between`},$i={class:`text-xs text-muted-foreground`},ea={class:`text-sm font-bold text-primary`},ta={key:0,class:`flex gap-1`},na={class:`space-y-1`},ra={class:`flex flex-col h-full overflow-hidden`},ia={key:0,class:`bg-card border-b px-4 sm:px-6 py-6.5 shadow-md`},aa={class:`flex items-center justify-between gap-3 sm:gap-6`},oa={class:`lg:flex-1`},sa={class:`flex items-center gap-3 sm:gap-6 flex-1 lg:flex-none overflow-x-auto lg:justify-center`},ca={class:`min-w-0`},la={class:`text-[10px] sm:text-xs text-muted-foreground truncate`},ua={class:`flex items-center gap-2 sm:gap-4 flex-shrink-0 lg:flex-1 lg:justify-end`},da={key:0,class:`flex items-center gap-1.5 sm:gap-2 text-xs sm:text-sm`},fa={class:`text-muted-foreground hidden sm:inline`},pa={key:1,class:`flex items-center gap-1.5 sm:gap-2 text-xs sm:text-sm`},ma={class:`text-muted-foreground hidden sm:inline`},ha={key:1,class:`bg-card border-b px-4 sm:px-6 py-4.5`},ga={class:`space-y-3`},_a={class:`flex items-center justify-between text-xs sm:text-sm gap-2`},va={class:`flex items-center gap-1.5 sm:gap-2 min-w-0 flex-1`},ya={class:`font-medium truncate`},ba={class:`text-muted-foreground hidden sm:inline flex-shrink-0 text-[10px] sm:text-xs`},xa={class:`flex items-center gap-2 sm:gap-3 flex-shrink-0`},Sa={class:`text-muted-foreground text-[10px] sm:text-xs whitespace-nowrap`},Ca={class:`flex items-center justify-between text-xs sm:text-sm gap-2`},wa={class:`flex items-center gap-1.5 sm:gap-2 min-w-0 flex-1`},Ta={class:`font-medium truncate`},Ea={class:`text-muted-foreground hidden sm:inline flex-shrink-0 text-[10px] sm:text-xs`},Da={class:`flex items-center gap-2 sm:gap-3 flex-shrink-0`},Oa={class:`text-muted-foreground text-[10px] sm:text-xs whitespace-nowrap`},ka={class:`flex-1 overflow-y-auto`},Aa={class:`animate-fade-in`},ja=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})(L({__name:`App`,setup(e){Gi();let t=H(),{isDark:r}=un(),{t:i}=dn(),a=_(!1),o=_(``),c=_(``),u=_(null),d=[`zh-CN`,`zh-TW`,`en`,`de`,`ru`,`ko`,`ja`],f=_(window.innerWidth>=1024),{initGame:ee}=zi(),{processMissionArrival:te,processMissionReturn:h}=Vi(i),{processNPCMissionArrival:ne,processNPCMissionReturn:re,updateNPCGrowth:v,updateNPCBehavior:ie}=Hi(),{handleCancelBuild:ae,handleCancelResearch:oe,getItemName:se,getRemainingTime:ce,getQueueProgress:le}=Ui(i,a,o,c,u),{updateGame:ue}=Wi(te,h,ne,re,v,ie),de=null;Ee(()=>{de&&clearInterval(de)}),ye(async()=>{t.player.planets.length===0&&(t.locale=Ge()),await ee(i(`common.playerName`),i(`planet.homePlanet`),i(`planet.planetPrefix`)),de=setInterval(()=>{ue()},1e3)});let b=g(()=>t.currentPlanet),fe=[{name:g(()=>i(`nav.overview`)),path:`/`,icon:Kt},{name:g(()=>i(`nav.buildings`)),path:`/buildings`,icon:Lt},{name:g(()=>i(`nav.research`)),path:`/research`,icon:It},{name:g(()=>i(`nav.shipyard`)),path:`/shipyard`,icon:Wt},{name:g(()=>i(`nav.defense`)),path:`/defense`,icon:Qt},{name:g(()=>i(`nav.fleet`)),path:`/fleet`,icon:Ht},{name:g(()=>i(`nav.officers`)),path:`/officers`,icon:$t},{name:g(()=>i(`nav.simulator`)),path:`/battle-simulator`,icon:Jt},{name:g(()=>i(`nav.galaxy`)),path:`/galaxy`,icon:Rt},{name:g(()=>i(`nav.messages`)),path:`/messages`,icon:Nt},{name:g(()=>i(`nav.settings`)),path:`/settings`,icon:Gt},...[]],pe=g(()=>{if(!b.value)return null;let e=Date.now(),n=s(t.player.officers,e);return Te(b.value,{resourceProductionBonus:n.resourceProductionBonus,darkMatterProductionBonus:n.darkMatterProductionBonus,energyProductionBonus:n.energyProductionBonus})}),me=g(()=>{if(!b.value)return null;let e=Date.now(),n=s(t.player.officers,e);return P(b.value,n.storageCapacityBonus)}),x=g(()=>t.player.battleReports.filter(e=>!e.read).length+t.player.spyReports.filter(e=>!e.read).length),he=[{key:`metal`},{key:`crystal`},{key:`deuterium`},{key:`energy`},{key:`darkMatter`}],E=g(()=>!b.value||b.value.isMoon?null:t.getMoonForPlanet(b.value.id)),D=g(()=>!!E.value),ge=()=>{E.value&&(t.currentPlanetId=E.value.id)},_e=()=>{b.value?.parentPlanetId&&(t.currentPlanetId=b.value.parentPlanetId)},k=()=>{f.value=!f.value},ve=()=>{u.value&&u.value(),a.value=!1};return(e,s)=>(N(),C(p(Kn),{open:f.value,"onUpdate:open":s[2]||=e=>f.value=e},{default:l(()=>[O(p(jn),{collapsible:`icon`},{default:l(()=>[O(p(Fn),{class:`border-b`},{default:l(()=>[w(`div`,Ki,[s[3]||=w(`img`,{src:``+new URL(`logo-Cz0cNqhe.svg`,import.meta.url).href,class:`w-10 group-data-[collapsible=icon]:w-8`},null,-1),w(`h1`,qi,S(p(V).title),1)])]),_:1}),O(p(Mn),null,{default:l(()=>[b.value?(N(),C(p(Pn),{key:0,class:`border-b group-data-[collapsible=icon]:hidden`},{default:l(()=>[w(`div`,Ji,[w(`div`,null,[w(`p`,Yi,[n(S(b.value.name)+` `,1),b.value.isMoon?(N(),C(p(pn),{key:0,variant:`secondary`,class:`ml-1 text-xs`},{default:l(()=>[n(S(p(i)(`planet.moon`)),1)]),_:1})):T(``,!0)]),w(`p`,Xi,` [`+S(b.value.position.galaxy)+`:`+S(b.value.position.system)+`:`+S(b.value.position.position)+`] `,1)]),w(`div`,Zi,[w(`div`,Qi,[w(`span`,$i,S(p(i)(`player.points`)),1),w(`span`,ea,S(p(fr)(p(t).player.points)),1)])]),D.value||b.value.isMoon?(N(),y(`div`,ta,[b.value.isMoon?(N(),C(p(G),{key:0,onClick:_e,variant:`outline`,size:`sm`,class:`w-full text-xs h-7`},{default:l(()=>[n(S(p(i)(`planet.backToPlanet`)),1)]),_:1})):E.value?(N(),C(p(G),{key:1,onClick:ge,variant:`outline`,size:`sm`,class:`w-full text-xs h-7`},{default:l(()=>[n(S(p(i)(`planet.switchToMoon`)),1)]),_:1})):T(``,!0)])):T(``,!0)])]),_:1})):T(``,!0),O(p(Pn),null,{default:l(()=>[O(p(Rn),null,{default:l(()=>[(N(),y(m,null,A(fe,t=>O(p(Gn),{key:t.path},{default:l(()=>[O(p(Wn),{"as-child":``,"is-active":e.$route.path===t.path,tooltip:t.name.value},{default:l(()=>[O(p(Ve),{to:t.path},{default:l(()=>[(N(),C(Ae(t.icon))),w(`span`,null,S(t.name.value),1),t.path===`/messages`&&x.value>0?(N(),C(p(zn),{key:0},{default:l(()=>[n(S(x.value),1)]),_:1})):T(``,!0)]),_:2},1032,[`to`])]),_:2},1032,[`is-active`,`tooltip`])]),_:2},1024)),64))]),_:1})]),_:1})]),_:1}),O(p(Nn),{class:`border-t`},{default:l(()=>[O(p(Rn),null,{default:l(()=>[O(p(Gn),null,{default:l(()=>[O(p(gn),null,{default:l(()=>[O(p(vn),{"as-child":``},{default:l(()=>[O(p(Wn),{tooltip:p(Ue)[p(t).locale]},{default:l(()=>[O(p(qt)),w(`span`,null,S(p(Ue)[p(t).locale]),1)]),_:1},8,[`tooltip`])]),_:1}),O(p(_n),{class:`w-48 p-2`,side:`right`,align:`end`},{default:l(()=>[w(`div`,na,[(N(),y(m,null,A(d,e=>O(p(G),{key:e,onClick:n=>p(t).locale=e,variant:p(t).locale===e?`secondary`:`ghost`,class:`w-full justify-start`,size:`sm`},{default:l(()=>[n(S(p(Ue)[e]),1)]),_:2},1032,[`onClick`,`variant`])),64))])]),_:1})]),_:1})]),_:1}),O(p(Gn),null,{default:l(()=>[O(p(Wn),{onClick:s[0]||=e=>r.value=!p(r),tooltip:p(r)?p(i)(`sidebar.lightMode`):p(i)(`sidebar.darkMode`)},{default:l(()=>[p(r)?(N(),C(p(tn),{key:0})):(N(),C(p(nn),{key:1})),w(`span`,null,S(p(r)?p(i)(`sidebar.lightMode`):p(i)(`sidebar.darkMode`)),1)]),_:1},8,[`tooltip`])]),_:1}),O(p(Gn),{class:`hidden sm:inline`},{default:l(()=>[O(p(Wn),{onClick:k,tooltip:f.value?p(i)(`sidebar.collapse`):p(i)(`sidebar.expand`)},{default:l(()=>[O(p(Ft),{class:`group-data-[state=collapsed]:rotate-180 transition-transform`}),w(`span`,null,S(p(i)(`sidebar.collapse`)),1)]),_:1},8,[`tooltip`])]),_:1})]),_:1})]),_:1})]),_:1}),O(p(Ln),null,{default:l(()=>[w(`div`,ra,[b.value?(N(),y(`header`,ia,[w(`div`,aa,[w(`div`,oa,[O(p(qn),{class:`lg:hidden`})]),w(`div`,sa,[(N(),y(m,null,A(he,e=>w(`div`,{key:e.key,class:`flex items-center gap-1.5 sm:gap-2 flex-shrink-0`},[O(Yn,{type:e.key,size:`md`},null,8,[`type`]),w(`div`,ca,[w(`p`,{class:F([`text-xs sm:text-sm font-medium truncate`,p(pr)(b.value.resources[e.key],me.value?.[e.key]||1/0)])},S(p(fr)(b.value.resources[e.key]))+` / `+S(p(fr)(me.value?.[e.key]||0)),3),w(`p`,la,` +`+S(p(fr)(Math.round((pe.value?.[e.key]||0)/60)))+`/`+S(p(i)(`resources.perMinute`)),1)])])),64))]),w(`div`,ua,[b.value.buildQueue.length>0?(N(),y(`div`,da,[s[4]||=w(`div`,{class:`h-2 w-2 rounded-full bg-green-500 animate-pulse`},null,-1),w(`span`,fa,S(p(i)(`queue.building`)),1)])):T(``,!0),p(t).player.researchQueue.length>0?(N(),y(`div`,pa,[s[5]||=w(`div`,{class:`h-2 w-2 rounded-full bg-blue-500 animate-pulse`},null,-1),w(`span`,ma,S(p(i)(`queue.researching`)),1)])):T(``,!0)])])])):T(``,!0),b.value&&(b.value.buildQueue.length>0||p(t).player.researchQueue.length>0)?(N(),y(`div`,ha,[w(`div`,ga,[(N(!0),y(m,null,A(b.value.buildQueue,e=>(N(),y(`div`,{key:e.id,class:`space-y-1.5`},[w(`div`,_a,[w(`div`,va,[s[6]||=w(`div`,{class:`h-2 w-2 rounded-full bg-green-500 animate-pulse flex-shrink-0`},null,-1),w(`span`,ya,S(p(se)(e)),1),w(`span`,ba,[e.type===`ship`||e.type===`defense`?(N(),y(m,{key:0},[n(` → `+S(p(i)(`queue.quantity`))+` `+S(e.quantity),1)],64)):(N(),y(m,{key:1},[n(`→ `+S(p(i)(`queue.level`))+` `+S(e.targetLevel),1)],64))])]),w(`div`,xa,[w(`span`,Sa,S(p(mr)(p(ce)(e))),1),O(p(G),{onClick:t=>p(ae)(e.id),variant:`ghost`,size:`sm`,class:`h-5 sm:h-6 px-1.5 sm:px-2 text-[10px] sm:text-xs`},{default:l(()=>[n(S(p(i)(`queue.cancel`)),1)]),_:1},8,[`onClick`])])]),O(p(hn),{"model-value":p(le)(e),class:`h-1.5`},null,8,[`model-value`])]))),128)),(N(!0),y(m,null,A(p(t).player.researchQueue,e=>(N(),y(`div`,{key:e.id,class:`space-y-1.5`},[w(`div`,Ca,[w(`div`,wa,[s[7]||=w(`div`,{class:`h-2 w-2 rounded-full bg-blue-500 animate-pulse flex-shrink-0`},null,-1),w(`span`,Ta,S(p(se)(e)),1),w(`span`,Ea,` → `+S(p(i)(`queue.level`))+` `+S(e.targetLevel),1)]),w(`div`,Da,[w(`span`,Oa,S(p(mr)(p(ce)(e))),1),O(p(G),{onClick:t=>p(oe)(e.id),variant:`ghost`,size:`sm`,class:`h-5 sm:h-6 px-1.5 sm:px-2 text-[10px] sm:text-xs`},{default:l(()=>[n(S(p(i)(`queue.cancel`)),1)]),_:1},8,[`onClick`])])]),O(p(hn),{"model-value":p(le)(e),class:`h-1.5`},null,8,[`model-value`])]))),128))])])):T(``,!0),w(`main`,ka,[w(`div`,Aa,[O(p(ze))])])])]),_:1}),O(p(Ai),{open:a.value,"onUpdate:open":s[1]||=e=>a.value=e},{default:l(()=>[O(p(Ni),null,{default:l(()=>[O(p(Ii),null,{default:l(()=>[O(p(Li),null,{default:l(()=>[n(S(o.value),1)]),_:1}),O(p(Pi),null,{default:l(()=>[n(S(c.value),1)]),_:1})]),_:1}),O(p(Fi),null,{default:l(()=>[O(p(Mi),null,{default:l(()=>[n(S(p(i)(`common.cancel`)),1)]),_:1}),O(p(ji),{onClick:ve},{default:l(()=>[n(S(p(i)(`common.confirm`)),1)]),_:1})]),_:1})]),_:1})]),_:1},8,[`open`]),O(Oi),O(ki,{position:`top-center`})]),_:1},8,[`open`]))}}),[[`__scopeId`,`data-v-19955dd6`]]),Ma=`modulepreload`,Na=function(e,t){return new URL(e,t).href},Pa={};const $=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=Na(t,n),t in Pa)return;Pa[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:Ma,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};var Fa=Be({history:Re(),routes:[{path:`/`,name:`overview`,component:()=>$(()=>import(`./OverviewView-DdvtPdf7.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14]),import.meta.url)},{path:`/buildings`,name:`buildings`,component:()=>$(()=>import(`./BuildingsView-4mX0ZiqE.js`),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,16,10,17,13,11,14]),import.meta.url)},{path:`/research`,name:`research`,component:()=>$(()=>import(`./ResearchView-BEvEoPdM.js`),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,16,10,19,17,13,20,11,14]),import.meta.url)},{path:`/shipyard`,name:`shipyard`,component:()=>$(()=>import(`./ShipyardView-C8y8F-rK.js`),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,16,10,19,17,13,20,11,14]),import.meta.url)},{path:`/defense`,name:`defense`,component:()=>$(()=>import(`./DefenseView-BuYOjWBp.js`),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,16,10,19,17,13,20,11,14]),import.meta.url)},{path:`/fleet`,name:`fleet`,component:()=>$(()=>import(`./FleetView-D6gRUTGU.js`),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,16,10,19,20,11,13,12,14]),import.meta.url)},{path:`/officers`,name:`officers`,component:()=>$(()=>import(`./OfficersView-gOtt9blg.js`),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10,11,13,14]),import.meta.url)},{path:`/battle-simulator`,name:`battle-simulator`,component:()=>$(()=>import(`./BattleSimulatorView-C7D7Sz5R.js`),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,16,10,26,27,13,11,12,14]),import.meta.url)},{path:`/messages`,name:`messages`,component:()=>$(()=>import(`./MessagesView-Czwj26_i.js`),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,16,10,26,27,13,11,12,14]),import.meta.url)},{path:`/galaxy`,name:`galaxy`,component:()=>$(()=>import(`./GalaxyView-Yqd2o_zC.js`),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,16,10,19,11,30,27,14]),import.meta.url)},{path:`/diplomacy`,name:`diplomacy`,component:()=>$(()=>import(`./DiplomacyView-Bz3CIKaK.js`),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,16,10,19,11,12,14]),import.meta.url)},{path:`/settings`,name:`settings`,component:()=>$(()=>import(`./SettingsView-yJRibE1k.js`),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,16,10,11,14]),import.meta.url)},{path:`/gm`,name:`gm`,component:()=>$(()=>import(`./GMView-DWcaM1NY.js`),__vite__mapDeps([33,1,2,3,4,5,6,7,8,9,16,10,11,30,13,14]),import.meta.url),beforeEnter:(e,t,n)=>{n(`/`)}}]}),Ia=Pe(ja),La=Fe();La.use(Le),Ia.use(La),Ia.use(Fa),Ia.mount(`#app`);export{$n as A,gn as B,lr as C,ar as D,sr as E,Vn as F,W as G,pn as H,Bn as I,V as J,dn as K,In as L,Xn as M,Yn as N,ir as O,Hn as P,vn as R,q as S,cr as T,fn as U,hn as V,G as W,Z as _,Fi as a,J as b,Mi as c,hr as d,fr as f,dr as g,gr as h,Ii as i,Qn as j,rr as k,ji as l,pr as m,Ri as n,Pi as o,mr as p,H as q,Li as r,Ni as s,Bi as t,Ai as u,X as v,K as w,ur as x,Y as y,_n as z}; |