koishi-plugin-oni-sync-bot 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,13 +1,5 @@
1
- import{defineComponent as z,openBlock as y,createElementBlock as k,createElementVNode as c,ref as I,computed as b,watch as J,onMounted as Ee,resolveComponent as $,createBlock as N,withCtx as _,createVNode as v,unref as i,createTextVNode as U,Fragment as we,renderList as Yt,normalizeClass as T,toDisplayString as H,createCommentVNode as O,reactive as an,warn as oa,getCurrentInstance as Se,watchEffect as aa,onBeforeUnmount as lt,inject as ee,isRef as oo,onScopeDispose as sa,shallowRef as yt,provide as sn,renderSlot as Z,mergeProps as Je,toRef as wt,onUnmounted as ra,useAttrs as la,useSlots as ao,nextTick as ae,resolveDynamicComponent as ue,withModifiers as Ue,normalizeStyle as tt,Transition as rn,withDirectives as Ke,vShow as Qe,Text as ia,h as ua,shallowReactive as ca,isVNode as $t,render as Ct,toRefs as da,withKeys as dt,resolveDirective as fa}from"vue";import{store as pa,Time as va,message as Dt,send as De}from"@koishijs/client";import{isClient as me,useEventListener as so,useResizeObserver as ro,useTimeoutFn as ma}from"@vueuse/core";/*! Element Plus Icons Vue v2.3.2 */var ga=z({name:"Bottom",__name:"bottom",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z"})]))}}),ha=ga,ya=z({name:"CircleCheck",__name:"circle-check",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),c("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}}),ba=ya,_a=z({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),lo=_a,wa=z({name:"CircleClose",__name:"circle-close",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),c("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),io=wa,Ca=z({name:"Close",__name:"close",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),Sa=Ca,Ea=z({name:"Hide",__name:"hide",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176"}),c("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48"})]))}}),Ta=Ea,xa=z({name:"InfoFilled",__name:"info-filled",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),uo=xa,ka=z({name:"Loading",__name:"loading",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0"})]))}}),St=ka,Ma=z({name:"Plus",__name:"plus",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}}),Ia=Ma,Ba=z({name:"Refresh",__name:"refresh",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}}),$a=Ba,La=z({name:"SuccessFilled",__name:"success-filled",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),co=La,Oa=z({name:"Top",__name:"top",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z"})]))}}),Aa=Oa,Na=z({name:"View",__name:"view",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),Ra=Na,Pa=z({name:"WarningFilled",__name:"warning-filled",setup(e){return(t,n)=>(y(),k("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[c("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),fo=Pa;const za={class:"filter-container"},Fa={class:"filter-row"},Va={class:"button-group"},Da={key:0,class:"empty-state"},Ha="yyyy-MM-dd hh:mm:ss",Ua=z({__name:"page",setup(e){const t=I(),n=I("all"),o=I(""),a=I([]);function s(M){const p=va.template(Ha,new Date(M.timestamp)),u=M.type.toUpperCase(),S=M.content.replace(/\u001b\[[0-9;]*m/g,"");return`[${p}] [${u}] ${S}`}const l=b(()=>a.value.filter(M=>!M.includes("[ERROR]")&&!M.includes("[WARN]"))),r=b(()=>a.value.filter(M=>M.includes("[ERROR]")||M.includes("[WARN]"))),d=b(()=>{switch(n.value){case"normal":return l.value;case"error":return r.value;default:return a.value}}),f=b(()=>{if(!o.value.trim())return d.value;const M=o.value.toLowerCase();return d.value.filter(p=>p.toLowerCase().includes(M))});function w(M){return M.includes("[ERROR]")?"log-error":M.includes("[WARN]")?"log-warn":M.includes("[INFO]")?"log-info":""}const h=()=>{t.value&&(t.value.scrollTop=0)},C=()=>{t.value&&(t.value.scrollTop=t.value.scrollHeight)};return J(()=>pa.onilogs,M=>{M&&(a.value=M.map(s))},{deep:true,immediate:true}),J(()=>a.value.length,()=>{setTimeout(C,0)}),Ee(()=>{C()}),(M,p)=>{const u=$("el-tab-pane"),S=$("el-tabs"),x=$("el-input"),A=$("el-icon"),K=$("el-button"),R=$("k-layout");return y(),N(R,null,{default:_(()=>[c("div",za,[v(S,{modelValue:n.value,"onUpdate:modelValue":p[0]||(p[0]=F=>n.value=F),class:"log-tabs"},{default:_(()=>[v(u,{name:"all",label:"全部日志"}),v(u,{name:"normal",label:"正常日志"}),v(u,{name:"error",label:"错误/警告"})]),_:1},8,["modelValue"]),c("div",Fa,[v(x,{modelValue:o.value,"onUpdate:modelValue":p[1]||(p[1]=F=>o.value=F),placeholder:"搜索日志内容...",clearable:"",class:"filter-input"},null,8,["modelValue"]),c("div",Va,[v(K,{size:"small",onClick:h},{default:_(()=>[v(A,null,{default:_(()=>[v(i(Aa))]),_:1}),p[2]||(p[2]=U(" 顶部 ",-1))]),_:1}),v(K,{size:"small",onClick:C},{default:_(()=>[v(A,null,{default:_(()=>[v(i(ha))]),_:1}),p[3]||(p[3]=U(" 底部 ",-1))]),_:1})])])]),c("div",{class:"log-container",ref_key:"scrollRef",ref:t},[(y(true),k(we,null,Yt(f.value,(F,q)=>(y(),k("div",{key:q,class:"log-line"},[c("pre",{class:T(w(F))},H(F),3)]))),128)),f.value.length===0?(y(),k("div",Da,[...p[4]||(p[4]=[c("p",null,"暂无日志",-1)])])):O("v-if",true)],512)]),_:1})}}}),it=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n},Ka=it(Ua,[["__scopeId","data-v-62639236"]]),po=10,ja=2e4,Wa=1.33,Ce={steamEngine:2e3,oilEngine:200,hydrogenEngine:500,biodieselEngine:200,CommandModule:200,RoboPilotCommandModule:200,SolidBooster:1e3,LiquidFuelTank:100,OxidizerTank:100,OxidizerTankLiquid:100,CargoBay:2e3,GasCargoBay:2e3,LiquidCargoBay:2e3,SpecialCargoBay:2e3,TouristModule:200,ResearchModule:200,person:30},Et={steam:20,oil:40,hydrogen:60,biodiesel:50,booster:12e3},qt={steam:900,fuel:900,oxygen:2700},Ga={steam:"steamEngine",oil:"oilEngine",hydrogen:"hydrogenEngine",biodiesel:"biodieselEngine"},Ya={ResearchModule:"研究舱",CargoBay:"固体货舱",GasCargoBay:"气体货舱",LiquidCargoBay:"液体货舱",SpecialCargoBay:"生物货舱",TouristModule:"观光舱",RoboPilotCommandModule:"机器驾驶舱"};function vo(e){return Math.ceil(Math.max(e,Math.pow(e/300,3.2)))}function qa(e){const t={};for(const[n,o]of Object.entries(e))typeof o=="number"&&o>=0&&(t[n]=o);return t}function Xa(e){let t=Ce.CommandModule;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t+=(Ce[n]||0)*e[n]);return t}function Xt(e){return e.length===0?[]:(e.sort((t,n)=>t.weight-n.weight),[e[0]])}function Za(e,t){e+=Ce.steamEngine;const n=[];for(let o=0;o<=po;o++){const a=e+Ce.SolidBooster*o,s=Et.booster*o;for(let l=0;l<=qt.steam;l++){const r=a+l,d=s+Et.steam*l,f=vo(r),w=d-f;if(w>=t){n.push({capacity:l,booster:o,weight:r,mergedDistance:d,punish:f,finalDistance:w});break}}}return Xt(n)}function Ja(e,t,n,o,a,s,l,r){const d=Math.ceil(e/qt.fuel),f=Math.ceil(e/qt.oxygen),w=r==="liquid"?Ce.OxidizerTankLiquid:Ce.OxidizerTank,h=n+Ce.LiquidFuelTank*d+w*f,C=e*2,M=h+C,p=Math.floor(o+a*e*s),u=vo(M),S=p-u;return S<l?{isValid:false}:{isValid:true,solution:{capacity:e,booster:t,fuelCount:d,oxygenCount:f,dryWeight:h,wetWeight:C,weight:M,mergedDistance:p,punish:u,finalDistance:S}}}function Qa(e,t,n,o,a){const s=Et[e],l=o==="liquid"?Wa:1;t+=Ce[Ga[e]];const r=[];for(let d=0;d<=po;d++){const f=t+Ce.SolidBooster*d,w=Et.booster*d;for(let h=0;h<=ja;h+=10){const C=Ja(h,d,f,w,s,l,n,o);if(C.isValid){r.push(C.solution);break}}}if(r.length===0)return[];if(!a){const d=new Map;for(const f of r){const w=f.fuelCount;(!d.has(w)||d.get(w).weight>f.weight)&&d.set(w,f)}return Xt(Array.from(d.values()))}return Xt(r)}function es(e){const{type:t,distance:n,oxygenType:o,allowWaste:a,...s}=e,l=qa(s),r=Xa(l);return t==="steam"?Za(r,n):Qa(t,r,n,o,a)}const ts={class:"rocket-calculator sci-fi-bg"},ns={class:"content-layout"},os={class:"config-section"},as={class:"distance-control"},ss={class:"distance-step-selector"},rs={class:"distance-input-wrapper"},ls={class:"distance-value"},is={class:"oxidizer-hint"},us={class:"config-section"},cs={class:"modules-grid"},ds={class:"module-header"},fs={class:"module-name"},ps={key:0,class:"empty-state"},vs={key:1,class:"empty-state"},ms={class:"key-stats"},gs={class:"stat-item primary"},hs={class:"stat-value"},ys={class:"stat-item success"},bs={class:"stat-value"},_s={class:"stat-item warning"},ws={class:"stat-value"},Cs={class:"detail-stats"},Ss={class:"detail-grid"},Es={class:"detail-item"},Ts={class:"detail-label"},xs={class:"detail-value"},ks={class:"detail-item"},Ms={class:"detail-value"},Is={key:0,class:"detail-item"},Bs={class:"detail-value"},$s={key:1,class:"detail-item"},Ls={class:"detail-value"},Os={class:"data-table-section"},As={class:"table-wrapper"},Ns=z({__name:"calculator",setup(e){const t=b(()=>{const l=[];for(let r=1e4;r<=19e4;r+=1e4)l.push(r);return l}),n=an({type:"steam",distance:1e4,oxygenType:"solid",allowWaste:false,ResearchModule:0,CargoBay:0,GasCargoBay:0,LiquidCargoBay:0,SpecialCargoBay:0,TouristModule:0,RoboPilotCommandModule:0}),o=I(null),a=()=>{try{const l=es(n);o.value=l,l.length>0?Dt.success("解算完成!已收敛到最优解"):Dt.warning("解算失败,无解空间")}catch(l){Dt.error("解算器异常"),console.error(l)}},s=()=>{n.type="steam",n.distance=1e4,n.oxygenType="solid",n.ResearchModule=0,n.CargoBay=0,n.GasCargoBay=0,n.LiquidCargoBay=0,n.SpecialCargoBay=0,n.TouristModule=0,n.RoboPilotCommandModule=0,o.value=null};return(l,r)=>{const d=$("el-option"),f=$("el-select"),w=$("el-form-item"),h=$("el-button"),C=$("el-radio-button"),M=$("el-radio-group"),p=$("el-form"),u=$("el-input-number"),S=$("k-card"),x=$("el-divider"),A=$("el-table-column"),K=$("el-table");return y(),k("div",ts,[O(" 背景装饰网格 "),r[32]||(r[32]=c("div",{class:"grid-overlay"},null,-1)),v(S,{class:"header-card sci-fi-card"},{default:_(()=>[r[29]||(r[29]=c("div",{class:"header-glow"},null,-1)),r[30]||(r[30]=c("h1",{class:"sci-fi-title"},"ONI ROCKET CALCULATOR",-1)),r[31]||(r[31]=c("p",{class:"sci-fi-subtitle"},"缺氧火箭最优配置解算系统 · 基于官方物理引擎",-1)),c("div",ns,[O(" 输入控制台 "),v(S,{class:"form-card sci-fi-card"},{default:_(()=>[r[9]||(r[9]=c("div",{class:"card-header-line"},null,-1)),O(" 主配置 "),c("div",os,[r[6]||(r[6]=c("h3",{class:"section-title"},"【核心参数】",-1)),v(p,{model:n,size:"large",class:"sci-fi-form","label-position":"top"},{default:_(()=>[v(w,{label:"引擎类型"},{default:_(()=>[v(f,{modelValue:n.type,"onUpdate:modelValue":r[0]||(r[0]=R=>n.type=R),style:{width:"100%"},class:"sci-fi-select"},{default:_(()=>[v(d,{label:"蒸汽引擎",value:"steam"}),v(d,{label:"石油引擎",value:"oil"}),v(d,{label:"液氢引擎",value:"hydrogen"}),v(d,{label:"生物柴油引擎",value:"biodiesel"})]),_:1},8,["modelValue"])]),_:1}),v(w,{label:"目标轨道"},{default:_(()=>[c("div",as,[O(" 10000km 一档的步进选择器 "),c("div",ss,[(y(true),k(we,null,Yt(t.value,R=>(y(),N(h,{key:R,class:T(["step-btn",{active:n.distance===R}]),onClick:F=>n.distance=R},{default:_(()=>[U(H(R/1e3)+"k ",1)]),_:2},1032,["class","onClick"]))),128))]),c("div",rs,[r[2]||(r[2]=c("span",{class:"distance-label"},"当前:",-1)),c("span",ls,H(n.distance.toLocaleString()),1),r[3]||(r[3]=c("span",{class:"unit"},"km",-1))])])]),_:1}),n.type!=="steam"?(y(),N(w,{key:0,label:"氧化剂"},{default:_(()=>[v(M,{modelValue:n.oxygenType,"onUpdate:modelValue":r[1]||(r[1]=R=>n.oxygenType=R),class:"sci-fi-radio-group"},{default:_(()=>[v(C,{label:"solid"},{default:_(()=>[...r[4]||(r[4]=[U("氧石",-1)])]),_:1}),v(C,{label:"liquid"},{default:_(()=>[...r[5]||(r[5]=[U("液氧",-1)])]),_:1})]),_:1},8,["modelValue"]),c("div",is,[c("span",{class:T(["hint-item",{active:n.oxygenType==="solid"}])},"1.0x 效率",2),c("span",{class:T(["hint-item",{active:n.oxygenType==="liquid"}])},"1.33x 效率",2)])]),_:1})):O("v-if",true)]),_:1},8,["model"])]),r[10]||(r[10]=c("div",{class:"divider-line"},null,-1)),O(" 可选模块 "),c("div",us,[r[8]||(r[8]=c("h3",{class:"section-title"},"【载荷配置】",-1)),v(p,{model:n,size:"large",class:"modules-form","label-position":"top"},{default:_(()=>[c("div",cs,[(y(true),k(we,null,Yt(i(Ya),(R,F)=>(y(),k("div",{key:F,class:"module-item"},[c("div",ds,[c("span",fs,H(R),1)]),v(u,{modelValue:n[F],"onUpdate:modelValue":q=>n[F]=q,min:0,max:20,class:"module-input"},null,8,["modelValue","onUpdate:modelValue"])]))),128))]),v(w,{class:"calculate-btn-wrapper"},{default:_(()=>[v(h,{onClick:a,class:"sci-fi-calculate-btn"},{default:_(()=>[...r[7]||(r[7]=[c("span",{class:"btn-text"},"▶ 执行解算",-1),c("span",{class:"btn-glow"},null,-1)])]),_:1})]),_:1})]),_:1},8,["model"])])]),_:1}),O(" 结果显示面板 "),v(S,{class:"result-card sci-fi-card"},{default:_(()=>[r[28]||(r[28]=c("div",{class:"card-header-line"},null,-1)),o.value?o.value.length===0?(y(),k("div",vs,[r[13]||(r[13]=c("div",{class:"empty-icon"},"⚠️",-1)),r[14]||(r[14]=c("p",{class:"empty-text error"},"解算失败",-1)),r[15]||(r[15]=c("p",{class:"empty-hint"},"无法找到满足条件的配置,请尝试减少载荷",-1)),v(h,{onClick:s,class:"sci-fi-reset-btn"},{default:_(()=>[...r[12]||(r[12]=[U("重置参数",-1)])]),_:1})])):(y(),k(we,{key:2},[r[27]||(r[27]=c("div",{class:"result-header"},[c("h3",{class:"result-title"},"✅ 最优解算结果"),c("div",{class:"result-status"},[c("span",{class:"status-dot"}),c("span",null,"CONVERGED")])],-1)),c("div",ms,[c("div",gs,[r[17]||(r[17]=c("div",{class:"stat-label"},"总起飞重量",-1)),c("div",hs,[U(H(o.value[0].weight.toLocaleString())+" ",1),r[16]||(r[16]=c("span",{class:"stat-unit"},"kg",-1))])]),c("div",ys,[r[19]||(r[19]=c("div",{class:"stat-label"},"预计射程",-1)),c("div",bs,[U(H(o.value[0].finalDistance.toLocaleString())+" ",1),r[18]||(r[18]=c("span",{class:"stat-unit"},"km",-1))])]),c("div",_s,[r[21]||(r[21]=c("div",{class:"stat-label"},"质量惩罚",-1)),c("div",ws,[U(H(o.value[0].punish.toLocaleString())+" ",1),r[20]||(r[20]=c("span",{class:"stat-unit"},"km",-1))])])]),v(x,{class:"sci-fi-divider"}),c("div",Cs,[r[25]||(r[25]=c("h4",{class:"detail-title"},"【配置详情】",-1)),c("div",Ss,[c("div",Es,[c("span",Ts,H(n.type==="steam"?"蒸汽填充量":"燃料填充量"),1),c("span",xs,H(o.value[0].capacity.toLocaleString())+" kg",1)]),c("div",ks,[r[22]||(r[22]=c("span",{class:"detail-label"},"助推器数量",-1)),c("span",Ms,H(o.value[0].booster)+" 个",1)]),o.value[0].fuelCount!==void 0?(y(),k("div",Is,[r[23]||(r[23]=c("span",{class:"detail-label"},"燃料舱数量",-1)),c("span",Bs,H(o.value[0].fuelCount)+" 个",1)])):O("v-if",true),o.value[0].oxygenCount!==void 0?(y(),k("div",$s,[r[24]||(r[24]=c("span",{class:"detail-label"},"氧化剂舱数量",-1)),c("span",Ls,H(o.value[0].oxygenCount)+" 个",1)])):O("v-if",true)])]),v(x,{class:"sci-fi-divider"}),c("div",Os,[r[26]||(r[26]=c("h4",{class:"detail-title"},"【原始数据】",-1)),c("div",As,[v(K,{data:o.value,stripe:"",class:"sci-fi-table"},{default:_(()=>[v(A,{prop:"weight",label:"总重(kg)",sortable:""}),v(A,{prop:"finalDistance",label:"射程(km)",sortable:""}),v(A,{prop:"booster",label:"助推器"}),v(A,{prop:"fuelCount",label:"燃料舱"}),v(A,{prop:"oxygenCount",label:"氧化剂舱"})]),_:1},8,["data"])])])],64)):(y(),k("div",ps,[...r[11]||(r[11]=[c("div",{class:"scan-line"},null,-1),c("div",{class:"empty-icon"},"📡",-1),c("p",{class:"empty-text"},"等待输入参数...",-1),c("p",{class:"empty-hint"},"请配置核心参数与载荷",-1)])]))]),_:1})])]),_:1})])}}}),Rs=it(Ns,[["__scopeId","data-v-3e8f9409"]]),Ps={};function zs(e,t){const n=$("k-slot"),o=$("el-scrollbar"),a=$("k-layout");return y(),N(a,null,{default:_(()=>[v(o,{class:"scrollbar"},{default:_(()=>[v(n,{name:"calculator"})]),_:1})]),_:1})}const Fs=it(Ps,[["render",zs],["__scopeId","data-v-7f2607d9"]]),Vs={};function Ds(e,t){const n=$("k-slot"),o=$("el-scrollbar"),a=$("k-layout");return y(),N(a,null,{default:_(()=>[v(o,{class:"scrollbar"},{default:_(()=>[v(n,{name:"onitodos"})]),_:1})]),_:1})}const Hs=it(Vs,[["render",Ds],["__scopeId","data-v-4a10404d"]]),Us='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])',Ks=e=>getComputedStyle(e).position==="fixed"?false:e.offsetParent!==null,In=e=>Array.from(e.querySelectorAll(Us)).filter(t=>js(t)&&Ks(t)),js=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return true;if(e.disabled)return false;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return true;default:return false}},Ws=()=>me&&/firefox/i.test(window.navigator.userAgent);/**
1
+ import{defineComponent as I,openBlock as g,createElementBlock as $,createElementVNode as a,ref as O,computed as w,watch as ue,onMounted as tt,resolveComponent as C,createBlock as R,withCtx as c,createVNode as r,unref as m,createTextVNode as N,Fragment as ie,renderList as $e,normalizeClass as D,toDisplayString as B,createCommentVNode as L,reactive as Vt,warn as It,inject as te,isRef as Mt,getCurrentInstance as ce,provide as Bt,renderSlot as be,mergeProps as Pt,Transition as nt,withDirectives as Ne,normalizeStyle as ot,vShow as lt,shallowReactive as Lt,resolveDynamicComponent as Dt,withModifiers as Rt,isVNode as at,render as Ae,resolveDirective as jt}from"vue";import{store as Ft,Time as At,message as Se,send as se}from"@koishijs/client";import{isClient as Ve,useEventListener as Ut,useResizeObserver as Kt,useTimeoutFn as Gt}from"@vueuse/core";/*! Element Plus Icons Vue v2.3.2 */var Ht=I({name:"Bottom",__name:"bottom",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M544 805.888V168a32 32 0 1 0-64 0v637.888L246.656 557.952a30.72 30.72 0 0 0-45.312 0 35.52 35.52 0 0 0 0 48.064l288 306.048a30.72 30.72 0 0 0 45.312 0l288-306.048a35.52 35.52 0 0 0 0-48 30.72 30.72 0 0 0-45.312 0L544 805.824z"})]))}}),qt=Ht,Wt=I({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),Zt=Wt,Jt=I({name:"Close",__name:"close",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),Yt=Jt,Xt=I({name:"InfoFilled",__name:"info-filled",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),Qt=Xt,en=I({name:"Plus",__name:"plus",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}}),tn=en,nn=I({name:"Refresh",__name:"refresh",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M771.776 794.88A384 384 0 0 1 128 512h64a320 320 0 0 0 555.712 216.448H654.72a32 32 0 1 1 0-64h149.056a32 32 0 0 1 32 32v148.928a32 32 0 1 1-64 0v-50.56zM276.288 295.616h92.992a32 32 0 0 1 0 64H220.16a32 32 0 0 1-32-32V178.56a32 32 0 0 1 64 0v50.56A384 384 0 0 1 896.128 512h-64a320 320 0 0 0-555.776-216.384z"})]))}}),on=nn,ln=I({name:"SuccessFilled",__name:"success-filled",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),an=ln,sn=I({name:"Top",__name:"top",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M572.235 205.282v600.365a30.118 30.118 0 1 1-60.235 0V205.282L292.382 438.633a28.913 28.913 0 0 1-42.646 0 33.43 33.43 0 0 1 0-45.236l271.058-288.045a28.913 28.913 0 0 1 42.647 0L834.5 393.397a33.43 33.43 0 0 1 0 45.176 28.913 28.913 0 0 1-42.647 0l-219.618-233.23z"})]))}}),rn=sn,un=I({name:"WarningFilled",__name:"warning-filled",setup(e){return(n,t)=>(g(),$("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[a("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),cn=un;const dn={class:"filter-container"},pn={class:"filter-row"},fn={class:"button-group"},mn={key:0,class:"empty-state"},vn="yyyy-MM-dd hh:mm:ss",gn=I({__name:"page",setup(e){const n=O(),t=O("all"),o=O(""),s=O([]);function d(T){const k=At.template(vn,new Date(T.timestamp)),p=T.type.toUpperCase(),x=T.content.replace(/\u001b\[[0-9;]*m/g,"");return`[${k}] [${p}] ${x}`}const i=w(()=>s.value.filter(T=>!T.includes("[ERROR]")&&!T.includes("[WARN]"))),l=w(()=>s.value.filter(T=>T.includes("[ERROR]")||T.includes("[WARN]"))),f=w(()=>{switch(t.value){case"normal":return i.value;case"error":return l.value;default:return s.value}}),b=w(()=>{if(!o.value.trim())return f.value;const T=o.value.toLowerCase();return f.value.filter(k=>k.toLowerCase().includes(T))});function _(T){return T.includes("[ERROR]")?"log-error":T.includes("[WARN]")?"log-warn":T.includes("[INFO]")?"log-info":""}const h=()=>{n.value&&(n.value.scrollTop=0)},S=()=>{n.value&&(n.value.scrollTop=n.value.scrollHeight)};return ue(()=>Ft.onilogs,T=>{T&&(s.value=T.map(d))},{deep:true,immediate:true}),ue(()=>s.value.length,()=>{setTimeout(S,0)}),tt(()=>{S()}),(T,k)=>{const p=C("el-tab-pane"),x=C("el-tabs"),z=C("el-input"),j=C("el-icon"),U=C("el-button"),V=C("k-layout");return g(),R(V,null,{default:c(()=>[a("div",dn,[r(x,{modelValue:t.value,"onUpdate:modelValue":k[0]||(k[0]=M=>t.value=M),class:"log-tabs"},{default:c(()=>[r(p,{name:"all",label:"全部日志"}),r(p,{name:"normal",label:"正常日志"}),r(p,{name:"error",label:"错误/警告"})]),_:1},8,["modelValue"]),a("div",pn,[r(z,{modelValue:o.value,"onUpdate:modelValue":k[1]||(k[1]=M=>o.value=M),placeholder:"搜索日志内容...",clearable:"",class:"filter-input"},null,8,["modelValue"]),a("div",fn,[r(U,{size:"small",onClick:h},{default:c(()=>[r(j,null,{default:c(()=>[r(m(rn))]),_:1}),k[2]||(k[2]=N(" 顶部 ",-1))]),_:1}),r(U,{size:"small",onClick:S},{default:c(()=>[r(j,null,{default:c(()=>[r(m(qt))]),_:1}),k[3]||(k[3]=N(" 底部 ",-1))]),_:1})])])]),a("div",{class:"log-container",ref_key:"scrollRef",ref:n},[(g(true),$(ie,null,$e(b.value,(M,q)=>(g(),$("div",{key:q,class:"log-line"},[a("pre",{class:D(_(M))},B(M),3)]))),128)),b.value.length===0?(g(),$("div",mn,[...k[4]||(k[4]=[a("p",null,"暂无日志",-1)])])):L("v-if",true)],512)]),_:1})}}}),fe=(e,n)=>{const t=e.__vccOpts||e;for(const[o,s]of n)t[o]=s;return t},_n=fe(gn,[["__scopeId","data-v-62639236"]]),st=10,yn=2e4,hn=1.33,H={steamEngine:2e3,oilEngine:200,hydrogenEngine:500,biodieselEngine:200,CommandModule:200,RoboPilotCommandModule:200,SolidBooster:1e3,LiquidFuelTank:100,OxidizerTank:100,OxidizerTankLiquid:100,CargoBay:2e3,GasCargoBay:2e3,LiquidCargoBay:2e3,SpecialCargoBay:2e3,TouristModule:200,ResearchModule:200,person:30},ge={steam:20,oil:40,hydrogen:60,biodiesel:50,booster:12e3},ke={steam:900,fuel:900,oxygen:2700},bn={steam:"steamEngine",oil:"oilEngine",hydrogen:"hydrogenEngine",biodiesel:"biodieselEngine"},Cn={ResearchModule:"研究舱",CargoBay:"固体货舱",GasCargoBay:"气体货舱",LiquidCargoBay:"液体货舱",SpecialCargoBay:"生物货舱",TouristModule:"观光舱",RoboPilotCommandModule:"机器驾驶舱"};function rt(e){return Math.ceil(Math.max(e,Math.pow(e/300,3.2)))}function wn(e){const n={};for(const[t,o]of Object.entries(e))typeof o=="number"&&o>=0&&(n[t]=o);return n}function xn(e){let n=H.CommandModule;for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n+=(H[t]||0)*e[t]);return n}function Oe(e){return e.length===0?[]:(e.sort((n,t)=>n.weight-t.weight),[e[0]])}function Sn(e,n){e+=H.steamEngine;const t=[];for(let o=0;o<=st;o++){const s=e+H.SolidBooster*o,d=ge.booster*o;for(let i=0;i<=ke.steam;i++){const l=s+i,f=d+ge.steam*i,b=rt(l),_=f-b;if(_>=n){t.push({capacity:i,booster:o,weight:l,mergedDistance:f,punish:b,finalDistance:_});break}}}return Oe(t)}function Tn(e,n,t,o,s,d,i,l){const f=Math.ceil(e/ke.fuel),b=Math.ceil(e/ke.oxygen),_=l==="liquid"?H.OxidizerTankLiquid:H.OxidizerTank,h=t+H.LiquidFuelTank*f+_*b,S=e*2,T=h+S,k=Math.floor(o+s*e*d),p=rt(T),x=k-p;return x<i?{isValid:false}:{isValid:true,solution:{capacity:e,booster:n,fuelCount:f,oxygenCount:b,dryWeight:h,wetWeight:S,weight:T,mergedDistance:k,punish:p,finalDistance:x}}}function $n(e,n,t,o,s){const d=ge[e],i=o==="liquid"?hn:1;n+=H[bn[e]];const l=[];for(let f=0;f<=st;f++){const b=n+H.SolidBooster*f,_=ge.booster*f;for(let h=0;h<=yn;h+=10){const S=Tn(h,f,b,_,d,i,t,o);if(S.isValid){l.push(S.solution);break}}}if(l.length===0)return[];if(!s){const f=new Map;for(const b of l){const _=b.fuelCount;(!f.has(_)||f.get(_).weight>b.weight)&&f.set(_,b)}return Oe(Array.from(f.values()))}return Oe(l)}function kn(e){const{type:n,distance:t,oxygenType:o,allowWaste:s,...d}=e,i=wn(d),l=xn(i);return n==="steam"?Sn(l,t):$n(n,l,t,o,s)}const On={class:"rocket-calculator sci-fi-bg"},En={class:"content-layout"},zn={class:"config-section"},Nn={class:"distance-control"},Vn={class:"distance-step-selector"},In={class:"distance-input-wrapper"},Mn={class:"distance-value"},Bn={class:"oxidizer-hint"},Pn={class:"config-section"},Ln={class:"modules-grid"},Dn={class:"module-header"},Rn={class:"module-name"},jn={key:0,class:"empty-state"},Fn={key:1,class:"empty-state"},An={class:"key-stats"},Un={class:"stat-item primary"},Kn={class:"stat-value"},Gn={class:"stat-item success"},Hn={class:"stat-value"},qn={class:"stat-item warning"},Wn={class:"stat-value"},Zn={class:"detail-stats"},Jn={class:"detail-grid"},Yn={class:"detail-item"},Xn={class:"detail-label"},Qn={class:"detail-value"},eo={class:"detail-item"},to={class:"detail-value"},no={key:0,class:"detail-item"},oo={class:"detail-value"},lo={key:1,class:"detail-item"},ao={class:"detail-value"},so={class:"data-table-section"},ro={class:"table-wrapper"},io=I({__name:"calculator",setup(e){const n=w(()=>{const i=[];for(let l=1e4;l<=19e4;l+=1e4)i.push(l);return i}),t=Vt({type:"steam",distance:1e4,oxygenType:"solid",allowWaste:false,ResearchModule:0,CargoBay:0,GasCargoBay:0,LiquidCargoBay:0,SpecialCargoBay:0,TouristModule:0,RoboPilotCommandModule:0}),o=O(null),s=()=>{try{const i=kn(t);o.value=i,i.length>0?Se.success("解算完成!已收敛到最优解"):Se.warning("解算失败,无解空间")}catch(i){Se.error("解算器异常"),console.error(i)}},d=()=>{t.type="steam",t.distance=1e4,t.oxygenType="solid",t.ResearchModule=0,t.CargoBay=0,t.GasCargoBay=0,t.LiquidCargoBay=0,t.SpecialCargoBay=0,t.TouristModule=0,t.RoboPilotCommandModule=0,o.value=null};return(i,l)=>{const f=C("el-option"),b=C("el-select"),_=C("el-form-item"),h=C("el-button"),S=C("el-radio-button"),T=C("el-radio-group"),k=C("el-form"),p=C("el-input-number"),x=C("k-card"),z=C("el-divider"),j=C("el-table-column"),U=C("el-table");return g(),$("div",On,[L(" 背景装饰网格 "),l[32]||(l[32]=a("div",{class:"grid-overlay"},null,-1)),r(x,{class:"header-card sci-fi-card"},{default:c(()=>[l[29]||(l[29]=a("div",{class:"header-glow"},null,-1)),l[30]||(l[30]=a("h1",{class:"sci-fi-title"},"ONI ROCKET CALCULATOR",-1)),l[31]||(l[31]=a("p",{class:"sci-fi-subtitle"},"缺氧火箭最优配置解算系统 · 基于官方物理引擎",-1)),a("div",En,[L(" 输入控制台 "),r(x,{class:"form-card sci-fi-card"},{default:c(()=>[l[9]||(l[9]=a("div",{class:"card-header-line"},null,-1)),L(" 主配置 "),a("div",zn,[l[6]||(l[6]=a("h3",{class:"section-title"},"【核心参数】",-1)),r(k,{model:t,size:"large",class:"sci-fi-form","label-position":"top"},{default:c(()=>[r(_,{label:"引擎类型"},{default:c(()=>[r(b,{modelValue:t.type,"onUpdate:modelValue":l[0]||(l[0]=V=>t.type=V),style:{width:"100%"},class:"sci-fi-select"},{default:c(()=>[r(f,{label:"蒸汽引擎",value:"steam"}),r(f,{label:"石油引擎",value:"oil"}),r(f,{label:"液氢引擎",value:"hydrogen"}),r(f,{label:"生物柴油引擎",value:"biodiesel"})]),_:1},8,["modelValue"])]),_:1}),r(_,{label:"目标轨道"},{default:c(()=>[a("div",Nn,[L(" 10000km 一档的步进选择器 "),a("div",Vn,[(g(true),$(ie,null,$e(n.value,V=>(g(),R(h,{key:V,class:D(["step-btn",{active:t.distance===V}]),onClick:M=>t.distance=V},{default:c(()=>[N(B(V/1e3)+"k ",1)]),_:2},1032,["class","onClick"]))),128))]),a("div",In,[l[2]||(l[2]=a("span",{class:"distance-label"},"当前:",-1)),a("span",Mn,B(t.distance.toLocaleString()),1),l[3]||(l[3]=a("span",{class:"unit"},"km",-1))])])]),_:1}),t.type!=="steam"?(g(),R(_,{key:0,label:"氧化剂"},{default:c(()=>[r(T,{modelValue:t.oxygenType,"onUpdate:modelValue":l[1]||(l[1]=V=>t.oxygenType=V),class:"sci-fi-radio-group"},{default:c(()=>[r(S,{label:"solid"},{default:c(()=>[...l[4]||(l[4]=[N("氧石",-1)])]),_:1}),r(S,{label:"liquid"},{default:c(()=>[...l[5]||(l[5]=[N("液氧",-1)])]),_:1})]),_:1},8,["modelValue"]),a("div",Bn,[a("span",{class:D(["hint-item",{active:t.oxygenType==="solid"}])},"1.0x 效率",2),a("span",{class:D(["hint-item",{active:t.oxygenType==="liquid"}])},"1.33x 效率",2)])]),_:1})):L("v-if",true)]),_:1},8,["model"])]),l[10]||(l[10]=a("div",{class:"divider-line"},null,-1)),L(" 可选模块 "),a("div",Pn,[l[8]||(l[8]=a("h3",{class:"section-title"},"【载荷配置】",-1)),r(k,{model:t,size:"large",class:"modules-form","label-position":"top"},{default:c(()=>[a("div",Ln,[(g(true),$(ie,null,$e(m(Cn),(V,M)=>(g(),$("div",{key:M,class:"module-item"},[a("div",Dn,[a("span",Rn,B(V),1)]),r(p,{modelValue:t[M],"onUpdate:modelValue":q=>t[M]=q,min:0,max:20,class:"module-input"},null,8,["modelValue","onUpdate:modelValue"])]))),128))]),r(_,{class:"calculate-btn-wrapper"},{default:c(()=>[r(h,{onClick:s,class:"sci-fi-calculate-btn"},{default:c(()=>[...l[7]||(l[7]=[a("span",{class:"btn-text"},"▶ 执行解算",-1),a("span",{class:"btn-glow"},null,-1)])]),_:1})]),_:1})]),_:1},8,["model"])])]),_:1}),L(" 结果显示面板 "),r(x,{class:"result-card sci-fi-card"},{default:c(()=>[l[28]||(l[28]=a("div",{class:"card-header-line"},null,-1)),o.value?o.value.length===0?(g(),$("div",Fn,[l[13]||(l[13]=a("div",{class:"empty-icon"},"⚠️",-1)),l[14]||(l[14]=a("p",{class:"empty-text error"},"解算失败",-1)),l[15]||(l[15]=a("p",{class:"empty-hint"},"无法找到满足条件的配置,请尝试减少载荷",-1)),r(h,{onClick:d,class:"sci-fi-reset-btn"},{default:c(()=>[...l[12]||(l[12]=[N("重置参数",-1)])]),_:1})])):(g(),$(ie,{key:2},[l[27]||(l[27]=a("div",{class:"result-header"},[a("h3",{class:"result-title"},"✅ 最优解算结果"),a("div",{class:"result-status"},[a("span",{class:"status-dot"}),a("span",null,"CONVERGED")])],-1)),a("div",An,[a("div",Un,[l[17]||(l[17]=a("div",{class:"stat-label"},"总起飞重量",-1)),a("div",Kn,[N(B(o.value[0].weight.toLocaleString())+" ",1),l[16]||(l[16]=a("span",{class:"stat-unit"},"kg",-1))])]),a("div",Gn,[l[19]||(l[19]=a("div",{class:"stat-label"},"预计射程",-1)),a("div",Hn,[N(B(o.value[0].finalDistance.toLocaleString())+" ",1),l[18]||(l[18]=a("span",{class:"stat-unit"},"km",-1))])]),a("div",qn,[l[21]||(l[21]=a("div",{class:"stat-label"},"质量惩罚",-1)),a("div",Wn,[N(B(o.value[0].punish.toLocaleString())+" ",1),l[20]||(l[20]=a("span",{class:"stat-unit"},"km",-1))])])]),r(z,{class:"sci-fi-divider"}),a("div",Zn,[l[25]||(l[25]=a("h4",{class:"detail-title"},"【配置详情】",-1)),a("div",Jn,[a("div",Yn,[a("span",Xn,B(t.type==="steam"?"蒸汽填充量":"燃料填充量"),1),a("span",Qn,B(o.value[0].capacity.toLocaleString())+" kg",1)]),a("div",eo,[l[22]||(l[22]=a("span",{class:"detail-label"},"助推器数量",-1)),a("span",to,B(o.value[0].booster)+" 个",1)]),o.value[0].fuelCount!==void 0?(g(),$("div",no,[l[23]||(l[23]=a("span",{class:"detail-label"},"燃料舱数量",-1)),a("span",oo,B(o.value[0].fuelCount)+" 个",1)])):L("v-if",true),o.value[0].oxygenCount!==void 0?(g(),$("div",lo,[l[24]||(l[24]=a("span",{class:"detail-label"},"氧化剂舱数量",-1)),a("span",ao,B(o.value[0].oxygenCount)+" 个",1)])):L("v-if",true)])]),r(z,{class:"sci-fi-divider"}),a("div",so,[l[26]||(l[26]=a("h4",{class:"detail-title"},"【原始数据】",-1)),a("div",ro,[r(U,{data:o.value,stripe:"",class:"sci-fi-table"},{default:c(()=>[r(j,{prop:"weight",label:"总重(kg)",sortable:""}),r(j,{prop:"finalDistance",label:"射程(km)",sortable:""}),r(j,{prop:"booster",label:"助推器"}),r(j,{prop:"fuelCount",label:"燃料舱"}),r(j,{prop:"oxygenCount",label:"氧化剂舱"})]),_:1},8,["data"])])])],64)):(g(),$("div",jn,[...l[11]||(l[11]=[a("div",{class:"scan-line"},null,-1),a("div",{class:"empty-icon"},"📡",-1),a("p",{class:"empty-text"},"等待输入参数...",-1),a("p",{class:"empty-hint"},"请配置核心参数与载荷",-1)])]))]),_:1})])]),_:1})])}}}),uo=fe(io,[["__scopeId","data-v-3e8f9409"]]),co={};function po(e,n){const t=C("k-slot"),o=C("el-scrollbar"),s=C("k-layout");return g(),R(s,null,{default:c(()=>[r(o,{class:"scrollbar"},{default:c(()=>[r(t,{name:"calculator"})]),_:1})]),_:1})}const fo=fe(co,[["render",po],["__scopeId","data-v-7f2607d9"]]),mo={};function vo(e,n){const t=C("k-slot"),o=C("el-scrollbar"),s=C("k-layout");return g(),R(s,null,{default:c(()=>[r(o,{class:"scrollbar"},{default:c(()=>[r(t,{name:"onitodos"})]),_:1})]),_:1})}const go=fe(mo,[["render",vo],["__scopeId","data-v-4a10404d"]]);/**
2
2
  * @vue/shared v3.5.29
3
3
  * (c) 2018-present Yuxi (Evan) You and Vue contributors
4
4
  * @license MIT
5
- **/const et=()=>{},Gs=Object.prototype.hasOwnProperty,Tt=(e,t)=>Gs.call(e,t),Ne=e=>typeof e=="function",he=e=>typeof e=="string",nt=e=>e!==null&&typeof e=="object",Ys=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},qs=/-\w/g,Xs=Ys(e=>e.replace(qs,t=>t.slice(1).toUpperCase()));var Zs=typeof global=="object"&&global&&global.Object===Object&&global,Js=typeof self=="object"&&self&&self.Object===Object&&self,ln=Zs||Js||Function("return this")(),Be=ln.Symbol,mo=Object.prototype,Qs=mo.hasOwnProperty,er=mo.toString,Ze=Be?Be.toStringTag:void 0;function tr(e){var t=Qs.call(e,Ze),n=e[Ze];try{e[Ze]=void 0;var o=true}catch{}var a=er.call(e);return o&&(t?e[Ze]=n:delete e[Ze]),a}var nr=Object.prototype,or=nr.toString;function ar(e){return or.call(e)}var sr="[object Null]",rr="[object Undefined]",Bn=Be?Be.toStringTag:void 0;function un(e){return e==null?e===void 0?rr:sr:Bn&&Bn in Object(e)?tr(e):ar(e)}function cn(e){return e!=null&&typeof e=="object"}var lr="[object Symbol]";function dn(e){return typeof e=="symbol"||cn(e)&&un(e)==lr}function ir(e,t){for(var n=-1,o=e==null?0:e.length,a=Array(o);++n<o;)a[n]=t(e[n],n,e);return a}var ut=Array.isArray,$n=Be?Be.prototype:void 0,Ln=$n?$n.toString:void 0;function go(e){if(typeof e=="string")return e;if(ut(e))return ir(e,go)+"";if(dn(e))return Ln?Ln.call(e):"";var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function xt(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}function ur(e){return e}var cr="[object AsyncFunction]",dr="[object Function]",fr="[object GeneratorFunction]",pr="[object Proxy]";function vr(e){if(!xt(e))return false;var t=un(e);return t==dr||t==fr||t==cr||t==pr}var Ht=ln["__core-js_shared__"],On=function(){var e=/[^.]+$/.exec(Ht&&Ht.keys&&Ht.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function mr(e){return!!On&&On in e}var gr=Function.prototype,hr=gr.toString;function yr(e){if(e!=null){try{return hr.call(e)}catch{}try{return e+""}catch{}}return""}var br=/[\\^$.*+?()[\]{}|]/g,_r=/^\[object .+?Constructor\]$/,wr=Function.prototype,Cr=Object.prototype,Sr=wr.toString,Er=Cr.hasOwnProperty,Tr=RegExp("^"+Sr.call(Er).replace(br,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function xr(e){if(!xt(e)||mr(e))return false;var t=vr(e)?Tr:_r;return t.test(yr(e))}function kr(e,t){return e==null?void 0:e[t]}function fn(e,t){var n=kr(e,t);return xr(n)?n:void 0}function Mr(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}var Ir=800,Br=16,$r=Date.now;function Lr(e){var t=0,n=0;return function(){var o=$r(),a=Br-(o-n);if(n=o,a>0){if(++t>=Ir)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Or(e){return function(){return e}}var kt=function(){try{var e=fn(Object,"defineProperty");return e({},"",{}),e}catch{}}(),Ar=kt?function(e,t){return kt(e,"toString",{configurable:true,enumerable:false,value:Or(t),writable:true})}:ur,Nr=Lr(Ar),Rr=9007199254740991,Pr=/^(?:0|[1-9]\d*)$/;function ho(e,t){var n=typeof e;return t=t??Rr,!!t&&(n=="number"||n!="symbol"&&Pr.test(e))&&e>-1&&e%1==0&&e<t}function zr(e,t,n){t=="__proto__"&&kt?kt(e,t,{configurable:true,enumerable:true,value:n,writable:true}):e[t]=n}function yo(e,t){return e===t||e!==e&&t!==t}var Fr=Object.prototype,Vr=Fr.hasOwnProperty;function Dr(e,t,n){var o=e[t];(!(Vr.call(e,t)&&yo(o,n))||n===void 0&&!(t in e))&&zr(e,t,n)}var An=Math.max;function Hr(e,t,n){return t=An(t===void 0?e.length-1:t,0),function(){for(var o=arguments,a=-1,s=An(o.length-t,0),l=Array(s);++a<s;)l[a]=o[t+a];a=-1;for(var r=Array(t+1);++a<t;)r[a]=o[a];return r[t]=n(l),Mr(e,this,r)}}var Ur=9007199254740991;function Kr(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=Ur}var jr="[object Arguments]";function Nn(e){return cn(e)&&un(e)==jr}var bo=Object.prototype,Wr=bo.hasOwnProperty,Gr=bo.propertyIsEnumerable,_o=Nn(function(){return arguments}())?Nn:function(e){return cn(e)&&Wr.call(e,"callee")&&!Gr.call(e,"callee")},Yr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,qr=/^\w*$/;function Xr(e,t){if(ut(e))return false;var n=typeof e;return n=="number"||n=="symbol"||n=="boolean"||e==null||dn(e)?true:qr.test(e)||!Yr.test(e)||t!=null&&e in Object(t)}var ot=fn(Object,"create");function Zr(){this.__data__=ot?ot(null):{},this.size=0}function Jr(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Qr="__lodash_hash_undefined__",el=Object.prototype,tl=el.hasOwnProperty;function nl(e){var t=this.__data__;if(ot){var n=t[e];return n===Qr?void 0:n}return tl.call(t,e)?t[e]:void 0}var ol=Object.prototype,al=ol.hasOwnProperty;function sl(e){var t=this.__data__;return ot?t[e]!==void 0:al.call(t,e)}var rl="__lodash_hash_undefined__";function ll(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=ot&&t===void 0?rl:t,this}function Re(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}Re.prototype.clear=Zr;Re.prototype.delete=Jr;Re.prototype.get=nl;Re.prototype.has=sl;Re.prototype.set=ll;function il(){this.__data__=[],this.size=0}function Lt(e,t){for(var n=e.length;n--;)if(yo(e[n][0],t))return n;return-1}var ul=Array.prototype,cl=ul.splice;function dl(e){var t=this.__data__,n=Lt(t,e);if(n<0)return false;var o=t.length-1;return n==o?t.pop():cl.call(t,n,1),--this.size,true}function fl(e){var t=this.__data__,n=Lt(t,e);return n<0?void 0:t[n][1]}function pl(e){return Lt(this.__data__,e)>-1}function vl(e,t){var n=this.__data__,o=Lt(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}function We(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}We.prototype.clear=il;We.prototype.delete=dl;We.prototype.get=fl;We.prototype.has=pl;We.prototype.set=vl;var ml=fn(ln,"Map");function gl(){this.size=0,this.__data__={hash:new Re,map:new(ml||We),string:new Re}}function hl(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}function Ot(e,t){var n=e.__data__;return hl(t)?n[typeof t=="string"?"string":"hash"]:n.map}function yl(e){var t=Ot(this,e).delete(e);return this.size-=t?1:0,t}function bl(e){return Ot(this,e).get(e)}function _l(e){return Ot(this,e).has(e)}function wl(e,t){var n=Ot(this,e),o=n.size;return n.set(e,t),this.size+=n.size==o?0:1,this}function ze(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var o=e[t];this.set(o[0],o[1])}}ze.prototype.clear=gl;ze.prototype.delete=yl;ze.prototype.get=bl;ze.prototype.has=_l;ze.prototype.set=wl;var Cl="Expected a function";function pn(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Cl);var n=function(){var o=arguments,a=t?t.apply(this,o):o[0],s=n.cache;if(s.has(a))return s.get(a);var l=e.apply(this,o);return n.cache=s.set(a,l)||s,l};return n.cache=new(pn.Cache||ze),n}pn.Cache=ze;var Sl=500;function El(e){var t=pn(e,function(o){return n.size===Sl&&n.clear(),o}),n=t.cache;return t}var Tl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,xl=/\\(\\)?/g,kl=El(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Tl,function(n,o,a,s){t.push(a?s.replace(xl,"$1"):o||n)}),t});function Ml(e){return e==null?"":go(e)}function At(e,t){return ut(e)?e:Xr(e,t)?[e]:kl(Ml(e))}function vn(e){if(typeof e=="string"||dn(e))return e;var t=e+"";return t=="0"&&1/e==-1/0?"-0":t}function wo(e,t){t=At(t,e);for(var n=0,o=t.length;e!=null&&n<o;)e=e[vn(t[n++])];return n&&n==o?e:void 0}function Il(e,t,n){var o=e==null?void 0:wo(e,t);return o===void 0?n:o}function Bl(e,t){for(var n=-1,o=t.length,a=e.length;++n<o;)e[a+n]=t[n];return e}var Rn=Be?Be.isConcatSpreadable:void 0;function $l(e){return ut(e)||_o(e)||!!(Rn&&e&&e[Rn])}function Ll(e,t,n,o,a){var s=-1,l=e.length;for(n||(n=$l),a||(a=[]);++s<l;){var r=e[s];n(r)?Bl(a,r):a[a.length]=r}return a}function Ol(e){var t=e==null?0:e.length;return t?Ll(e):[]}function Al(e){return Nr(Hr(e,void 0,Ol),e+"")}function Nl(e,t){return e!=null&&t in Object(e)}function Rl(e,t,n){t=At(t,e);for(var o=-1,a=t.length,s=false;++o<a;){var l=vn(t[o]);if(!(s=e!=null&&n(e,l)))break;e=e[l]}return s||++o!=a?s:(a=e==null?0:e.length,!!a&&Kr(a)&&ho(l,a)&&(ut(e)||_o(e)))}function Pl(e,t){return e!=null&&Rl(e,t,Nl)}function Co(e){for(var t=-1,n=e==null?0:e.length,o={};++t<n;){var a=e[t];o[a[0]]=a[1]}return o}function So(e){return e==null}function zl(e,t,n,o){if(!xt(e))return e;t=At(t,e);for(var a=-1,s=t.length,l=s-1,r=e;r!=null&&++a<s;){var d=vn(t[a]),f=n;if(d==="__proto__"||d==="constructor"||d==="prototype")return e;if(a!=l){var w=r[d];f=void 0,f===void 0&&(f=xt(w)?w:ho(t[a+1])?[]:{})}Dr(r,d,f),r=r[d]}return e}function Fl(e,t,n){for(var o=-1,a=t.length,s={};++o<a;){var l=t[o],r=wo(e,l);n(r,l)&&zl(s,At(l,e),r)}return s}function Vl(e,t){return Fl(e,t,function(n,o){return Pl(e,o)})}var Dl=Al(function(e,t){return e==null?{}:Vl(e,t)});const Eo=e=>e===void 0,Pe=e=>typeof e=="number",Zt=e=>typeof Element>"u"?false:e instanceof Element,Hl=e=>he(e)?!Number.isNaN(Number(e)):false,Pn=e=>Object.keys(e);class Ul extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function Kl(e,t){throw new Ul(`[${e}] ${t}`)}const To=(e="")=>e.split(" ").filter(t=>!!t.trim()),zn=(e,t)=>{if(!e||!t)return false;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},jl=(e,t)=>{!e||!t.trim()||e.classList.add(...To(t))},Wl=(e,t)=>{!e||!t.trim()||e.classList.remove(...To(t))},Gl=(e,t)=>{var n;if(!me||!e||!t)return"";let o=Xs(t);o==="float"&&(o="cssFloat");try{const a=e.style[o];if(a)return a;const s=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,"");return s?s[o]:""}catch{return e.style[o]}};function at(e,t="px"){if(!e)return"";if(Pe(e)||Hl(e))return`${e}${t}`;if(he(e))return e}let ft;const Yl=e=>{var t;if(!me)return 0;if(ft!==void 0)return ft;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow="scroll";const a=document.createElement("div");a.style.width="100%",n.appendChild(a);const s=a.offsetWidth;return(t=n.parentNode)==null||t.removeChild(n),ft=o-s,ft},xo="__epPropKey",G=e=>e,ql=e=>nt(e)&&!!e[xo],ko=(e,t)=>{if(!nt(e)||ql(e))return e;const{values:n,required:o,default:a,type:s,validator:l}=e,d={type:s,required:!!o,validator:n||l?f=>{let w=false,h=[];if(n&&(h=Array.from(n),Tt(e,"default")&&h.push(a),w||(w=h.includes(f))),l&&(w||(w=l(f))),!w&&h.length>0){const C=[...new Set(h)].map(M=>JSON.stringify(M)).join(", ");oa(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${C}], got value ${JSON.stringify(f)}.`)}return w}:void 0,[xo]:true};return Tt(e,"default")&&(d.default=a),d},Te=e=>Co(Object.entries(e).map(([t,n])=>[t,ko(n,t)])),st=G([String,Object,Function]),Mo={Close:Sa,SuccessFilled:co,InfoFilled:uo,WarningFilled:fo,CircleCloseFilled:lo},Mt={success:co,warning:fo,error:lo,info:uo},Xl={validating:St,success:ba,error:io},Nt=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(t??{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},Zl=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),Jl=e=>(e.install=et,e),Rt={tab:"Tab",esc:"Escape"},Jt="update:modelValue",Io=["","default","small","large"],Ql=e=>["",...Io].includes(e);var bt=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))(bt||{});const ei=e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e),Bo=e=>e,ti=["class","style"],ni=/^on[A-Z]/,oi=(e={})=>{const{excludeListeners:t=false,excludeKeys:n}=e,o=b(()=>((n==null?void 0:n.value)||[]).concat(ti)),a=Se();return a?b(()=>{var s;return Co(Object.entries((s=a.proxy)==null?void 0:s.$attrs).filter(([l])=>!o.value.includes(l)&&!(t&&ni.test(l))))}):b(()=>({}))},It=({from:e,replacement:t,scope:n,version:o,ref:a,type:s="API"},l)=>{J(()=>i(l),r=>{},{immediate:true})},ai=(e,t,n,o)=>{let a={offsetX:0,offsetY:0};const s=d=>{const f=d.clientX,w=d.clientY,{offsetX:h,offsetY:C}=a,M=e.value.getBoundingClientRect(),p=M.left,u=M.top,S=M.width,x=M.height,A=document.documentElement.clientWidth,K=document.documentElement.clientHeight,R=-p+h,F=-u+C,q=A-p-S+h,L=K-u-x+C,j=E=>{let m=h+E.clientX-f,D=C+E.clientY-w;o!=null&&o.value||(m=Math.min(Math.max(m,R),q),D=Math.min(Math.max(D,F),L)),a={offsetX:m,offsetY:D},e.value&&(e.value.style.transform=`translate(${at(m)}, ${at(D)})`)},te=()=>{document.removeEventListener("mousemove",j),document.removeEventListener("mouseup",te)};document.addEventListener("mousemove",j),document.addEventListener("mouseup",te)},l=()=>{t.value&&e.value&&t.value.addEventListener("mousedown",s)},r=()=>{t.value&&e.value&&t.value.removeEventListener("mousedown",s)};Ee(()=>{aa(()=>{n.value?l():r()})}),lt(()=>{r()})};var si={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const ri=e=>(t,n)=>li(t,n,i(e)),li=(e,t,n)=>Il(n,e,e).replace(/\{(\w+)\}/g,(o,a)=>{var s;return`${(s=t==null?void 0:t[a])!=null?s:`{${a}}`}`}),ii=e=>{const t=b(()=>i(e).name),n=oo(e)?e:I(e);return{lang:t,locale:n,t:ri(e)}},$o=Symbol("localeContextKey"),ui=e=>{const t=e||ee($o,I());return ii(b(()=>t.value||si))},_t="el",ci="is-",Le=(e,t,n,o,a)=>{let s=`${e}-${t}`;return n&&(s+=`-${n}`),o&&(s+=`__${o}`),a&&(s+=`--${a}`),s},Lo=Symbol("namespaceContextKey"),Oo=e=>{const t=e||(Se()?ee(Lo,I(_t)):I(_t));return b(()=>i(t)||_t)},ye=(e,t)=>{const n=Oo(t);return{namespace:n,b:(u="")=>Le(n.value,e,u,"",""),e:u=>u?Le(n.value,e,"",u,""):"",m:u=>u?Le(n.value,e,"","",u):"",be:(u,S)=>u&&S?Le(n.value,e,u,S,""):"",em:(u,S)=>u&&S?Le(n.value,e,"",u,S):"",bm:(u,S)=>u&&S?Le(n.value,e,u,"",S):"",bem:(u,S,x)=>u&&S&&x?Le(n.value,e,u,S,x):"",is:(u,...S)=>{const x=S.length>=1?S[0]:true;return u&&x?`${ci}${u}`:""},cssVar:u=>{const S={};for(const x in u)u[x]&&(S[`--${n.value}-${x}`]=u[x]);return S},cssVarName:u=>`--${n.value}-${u}`,cssVarBlock:u=>{const S={};for(const x in u)u[x]&&(S[`--${n.value}-${e}-${x}`]=u[x]);return S},cssVarBlockName:u=>`--${n.value}-${e}-${u}`}},di=(e,t={})=>{oo(e)||Kl("[useLockscreen]","You need to pass a ref param to this function");const n=t.ns||ye("popup"),o=b(()=>n.bm("parent","hidden"));if(!me||zn(document.body,o.value))return;let a=0,s=false,l="0";const r=()=>{setTimeout(()=>{Wl(document==null?void 0:document.body,o.value),s&&document&&(document.body.style.width=l)},200)};J(e,d=>{if(!d){r();return}s=!zn(document.body,o.value),s&&(l=document.body.style.width),a=Yl(n.namespace.value);const f=document.documentElement.clientHeight<document.body.scrollHeight,w=Gl(document.body,"overflowY");a>0&&(f||w==="scroll")&&s&&(document.body.style.width=`calc(100% - ${a}px)`),jl(document.body,o.value)}),sa(()=>r())},Ao=e=>{const t=Se();return b(()=>{var n,o;return(o=(n=t==null?void 0:t.proxy)==null?void 0:n.$props)==null?void 0:o[e]})},No=e=>{if(!e)return{onClick:et,onMousedown:et,onMouseup:et};let t=false,n=false;return{onClick:l=>{t&&n&&e(l),t=n=false},onMousedown:l=>{t=l.target===l.currentTarget},onMouseup:l=>{n=l.target===l.currentTarget}}},Fn={prefix:Math.floor(Math.random()*1e4),current:0},fi=Symbol("elIdInjection"),pi=()=>Se()?ee(fi,Fn):Fn,Qt=e=>{const t=pi(),n=Oo();return b(()=>i(e)||`${n.value}-id-${t.prefix}-${t.current++}`)};let He=[];const Vn=e=>{const t=e;t.key===Rt.esc&&He.forEach(n=>n(t))},vi=e=>{Ee(()=>{He.length===0&&document.addEventListener("keydown",Vn),me&&He.push(e)}),lt(()=>{He=He.filter(t=>t!==e),He.length===0&&me&&document.removeEventListener("keydown",Vn)})},Dn={current:0},Hn=I(0),Ro=2e3,Un=Symbol("elZIndexContextKey"),Po=Symbol("zIndexContextKey"),mi=e=>{const t=Se()?ee(Un,Dn):Dn,n=e||(Se()?ee(Po,void 0):void 0),o=b(()=>{const l=i(n);return Pe(l)?l:Ro}),a=b(()=>o.value+Hn.value),s=()=>(t.current++,Hn.value=t.current,a.value);return!me&&ee(Un),{initialZIndex:o,currentZIndex:a,nextZIndex:s}};function gi(e){const t=I();function n(){if(e.value==null)return;const{selectionStart:a,selectionEnd:s,value:l}=e.value;if(a==null||s==null)return;const r=l.slice(0,Math.max(0,a)),d=l.slice(Math.max(0,s));t.value={selectionStart:a,selectionEnd:s,value:l,beforeTxt:r,afterTxt:d}}function o(){if(e.value==null||t.value==null)return;const{value:a}=e.value,{beforeTxt:s,afterTxt:l,selectionStart:r}=t.value;if(s==null||l==null||r==null)return;let d=a.length;if(a.endsWith(l))d=a.length-l.length;else if(a.startsWith(s))d=s.length;else{const f=s[r-1],w=a.indexOf(f,r-1);w!==-1&&(d=w+1)}e.value.setSelectionRange(d,d)}return[n,o]}const mn=ko({type:String,values:Io,required:false}),zo=Symbol("size"),hi=()=>{const e=ee(zo,{});return b(()=>i(e.size)||"")};function yi(e,{afterFocus:t,beforeBlur:n,afterBlur:o}={}){const a=Se(),{emit:s}=a,l=yt(),r=I(false),d=h=>{r.value||(r.value=true,s("focus",h),t==null||t())},f=h=>{var C;Ne(n)&&n(h)||h.relatedTarget&&((C=l.value)!=null&&C.contains(h.relatedTarget))||(r.value=false,s("blur",h),o==null||o())},w=()=>{var h;(h=e.value)==null||h.focus()};return J(l,h=>{h&&h.setAttribute("tabindex","-1")}),so(l,"click",w),{wrapperRef:l,isFocused:r,handleFocus:d,handleBlur:f}}const bi=Symbol("emptyValuesContextKey"),_i=Te({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>Ne(e)?!e():!e}}),wi=Te({ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical","undefined"]},ariaControls:String}),Ci=e=>Dl(wi,e),Fo=Symbol(),Bt=I();function gn(e,t=void 0){const n=Se()?ee(Fo,Bt):Bt;return e?b(()=>{var o,a;return(a=(o=n.value)==null?void 0:o[e])!=null?a:t}):n}function Vo(e,t){const n=gn(),o=ye(e,b(()=>{var r;return((r=n.value)==null?void 0:r.namespace)||_t})),a=ui(b(()=>{var r;return(r=n.value)==null?void 0:r.locale})),s=mi(b(()=>{var r;return((r=n.value)==null?void 0:r.zIndex)||Ro})),l=b(()=>{var r;return i(t)||((r=n.value)==null?void 0:r.size)||""});return Do(b(()=>i(n)||{})),{ns:o,locale:a,zIndex:s,size:l}}const Do=(e,t,n=false)=>{var o;const a=!!Se(),s=a?gn():void 0,l=(o=void 0)!=null?o:a?sn:void 0;if(!l)return;const r=b(()=>{const d=i(e);return s!=null&&s.value?Si(s.value,d):d});return l(Fo,r),l($o,b(()=>r.value.locale)),l(Lo,b(()=>r.value.namespace)),l(Po,b(()=>r.value.zIndex)),l(zo,{size:b(()=>r.value.size||"")}),l(bi,b(()=>({emptyValues:r.value.emptyValues,valueOnClear:r.value.valueOnClear}))),(n||!Bt.value)&&(Bt.value=r.value),r},Si=(e,t)=>{const n=[...new Set([...Pn(e),...Pn(t)])],o={};for(const a of n)o[a]=t[a]!==void 0?t[a]:e[a];return o},Ei=Te({a11y:{type:Boolean,default:true},locale:{type:G(Object)},size:mn,button:{type:G(Object)},experimentalFeatures:{type:G(Object)},keyboardNavigation:{type:Boolean,default:true},message:{type:G(Object)},zIndex:Number,namespace:{type:String,default:"el"},..._i}),en={};z({name:"ElConfigProvider",props:Ei,setup(e,{slots:t}){J(()=>e.message,o=>{Object.assign(en,o??{})},{immediate:true,deep:true});const n=Do(e);return()=>Z(t,"default",{config:n==null?void 0:n.value})}});var $e=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n};const Ti=Te({size:{type:G([Number,String])},color:{type:String}}),xi=z({name:"ElIcon",inheritAttrs:false}),ki=z({...xi,props:Ti,setup(e){const t=e,n=ye("icon"),o=b(()=>{const{size:a,color:s}=t;return!a&&!s?{}:{fontSize:Eo(a)?void 0:at(a),"--color":s}});return(a,s)=>(y(),k("i",Je({class:i(n).b(),style:i(o)},a.$attrs),[Z(a.$slots,"default")],16))}});var Mi=$e(ki,[["__file","icon.vue"]]);const ge=Nt(Mi),hn=Symbol("formContextKey"),Ho=Symbol("formItemContextKey"),Uo=(e,t={})=>{const n=I(void 0),o=t.prop?n:Ao("size"),a=t.global?n:hi(),s=t.form?{size:void 0}:ee(hn,void 0),l=t.formItem?{size:void 0}:ee(Ho,void 0);return b(()=>o.value||i(e)||(l==null?void 0:l.size)||(s==null?void 0:s.size)||a.value||"")},yn=e=>{const t=Ao("disabled"),n=ee(hn,void 0);return b(()=>t.value||i(e)||(n==null?void 0:n.disabled)||false)},Ko=()=>{const e=ee(hn,void 0),t=ee(Ho,void 0);return{form:e,formItem:t}},Ii=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=I(false)),o||(o=I(false));const a=I();let s;const l=b(()=>{var r;return!!(!(e.label||e.ariaLabel)&&t&&t.inputIds&&((r=t.inputIds)==null?void 0:r.length)<=1)});return Ee(()=>{s=J([wt(e,"id"),n],([r,d])=>{const f=r??(d?void 0:Qt().value);f!==a.value&&(t!=null&&t.removeInputId&&(a.value&&t.removeInputId(a.value),!(o!=null&&o.value)&&!d&&f&&t.addInputId(f)),a.value=f)},{immediate:true})}),ra(()=>{s&&s(),t!=null&&t.removeInputId&&a.value&&t.removeInputId(a.value)}),{isLabeledByFormItem:l,inputId:a}};let fe;const Bi=`
6
- height:0 !important;
7
- visibility:hidden !important;
8
- ${Ws()?"":"overflow:hidden !important;"}
9
- position:absolute !important;
10
- z-index:-1000 !important;
11
- top:0 !important;
12
- right:0 !important;
13
- `,$i=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing"];function Li(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),a=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:$i.map(l=>`${l}:${t.getPropertyValue(l)}`).join(";"),paddingSize:o,borderSize:a,boxSizing:n}}function Kn(e,t=1,n){var o;fe||(fe=document.createElement("textarea"),document.body.appendChild(fe));const{paddingSize:a,borderSize:s,boxSizing:l,contextStyle:r}=Li(e);fe.setAttribute("style",`${r};${Bi}`),fe.value=e.value||e.placeholder||"";let d=fe.scrollHeight;const f={};l==="border-box"?d=d+s:l==="content-box"&&(d=d-a),fe.value="";const w=fe.scrollHeight-a;if(Pe(t)){let h=w*t;l==="border-box"&&(h=h+a+s),d=Math.max(h,d),f.minHeight=`${h}px`}if(Pe(n)){let h=w*n;l==="border-box"&&(h=h+a+s),d=Math.min(h,d)}return f.height=`${d}px`,(o=fe.parentNode)==null||o.removeChild(fe),fe=void 0,f}const Oi=Te({id:{type:String,default:void 0},size:mn,disabled:Boolean,modelValue:{type:G([String,Number,Object]),default:""},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:String,default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:G([Boolean,Object]),default:false},autocomplete:{type:String,default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:{type:Boolean,default:false},clearable:{type:Boolean,default:false},showPassword:{type:Boolean,default:false},showWordLimit:{type:Boolean,default:false},suffixIcon:{type:st},prefixIcon:{type:st},containerRole:{type:String,default:void 0},label:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:true},inputStyle:{type:G([Object,Array,String]),default:()=>Bo({})},autofocus:{type:Boolean,default:false},...Ci(["ariaLabel"])}),Ai={[Jt]:e=>he(e),input:e=>he(e),change:e=>he(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>true,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},Ni=["role"],Ri=["id","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus"],Pi=["id","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus"],zi=z({name:"ElInput",inheritAttrs:false}),Fi=z({...zi,props:Oi,emits:Ai,setup(e,{expose:t,emit:n}){const o=e,a=la(),s=ao(),l=b(()=>{const g={};return o.containerRole==="combobox"&&(g["aria-haspopup"]=a["aria-haspopup"],g["aria-owns"]=a["aria-owns"],g["aria-expanded"]=a["aria-expanded"]),g}),r=b(()=>[o.type==="textarea"?S.b():u.b(),u.m(M.value),u.is("disabled",p.value),u.is("exceed",zt.value),{[u.b("group")]:s.prepend||s.append,[u.m("prefix")]:s.prefix||o.prefixIcon,[u.m("suffix")]:s.suffix||o.suffixIcon||o.clearable||o.showPassword,[u.bm("suffix","password-clear")]:Fe.value&&de.value,[u.b("hidden")]:o.type==="hidden"},a.class]),d=b(()=>[u.e("wrapper"),u.is("focus",E.value)]),f=oi({excludeKeys:b(()=>Object.keys(l.value))}),{form:w,formItem:h}=Ko(),{inputId:C}=Ii(o,{formItemContext:h}),M=Uo(),p=yn(),u=ye("input"),S=ye("textarea"),x=yt(),A=yt(),K=I(false),R=I(false),F=I(false),q=I(),L=yt(o.inputStyle),j=b(()=>x.value||A.value),{wrapperRef:te,isFocused:E,handleFocus:m,handleBlur:D}=yi(j,{afterBlur(){var g;o.validateEvent&&((g=h==null?void 0:h.validate)==null||g.call(h,"blur").catch(P=>void 0))}}),Q=b(()=>{var g;return(g=w==null?void 0:w.statusIcon)!=null?g:false}),se=b(()=>(h==null?void 0:h.validateState)||""),re=b(()=>se.value&&Xl[se.value]),V=b(()=>F.value?Ra:Ta),le=b(()=>[a.style]),ce=b(()=>[o.inputStyle,L.value,{resize:o.resize}]),ne=b(()=>So(o.modelValue)?"":String(o.modelValue)),Fe=b(()=>o.clearable&&!p.value&&!o.readonly&&!!ne.value&&(E.value||K.value)),de=b(()=>o.showPassword&&!p.value&&!o.readonly&&!!ne.value&&(!!ne.value||E.value)),be=b(()=>o.showWordLimit&&!!o.maxlength&&(o.type==="text"||o.type==="textarea")&&!p.value&&!o.readonly&&!o.showPassword),Ve=b(()=>ne.value.length),zt=b(()=>!!be.value&&Ve.value>Number(o.maxlength)),Ft=b(()=>!!s.suffix||!!o.suffixIcon||Fe.value||o.showPassword||be.value||!!se.value&&Q.value),[B,Ye]=gi(x);ro(A,g=>{if(Zo(),!be.value||o.resize!=="both")return;const P=g[0],{width:W}=P.contentRect;q.value={right:`calc(100% - ${W+15+6}px)`}});const qe=()=>{const{type:g,autosize:P}=o;if(!(!me||g!=="textarea"||!A.value))if(P){const W=nt(P)?P.minRows:void 0,ct=nt(P)?P.maxRows:void 0,Mn=Kn(A.value,W,ct);L.value={overflowY:"hidden",...Mn},ae(()=>{A.value.offsetHeight,L.value=Mn})}else L.value={minHeight:Kn(A.value).minHeight}},Zo=(g=>{let P=false;return()=>{var W;if(P||!o.autosize)return;((W=A.value)==null?void 0:W.offsetParent)===null||(g(),P=true)}})(qe),Xe=()=>{const g=j.value,P=o.formatter?o.formatter(ne.value):ne.value;!g||g.value===P||(g.value=P)},Vt=async g=>{B();let{value:P}=g.target;if(o.formatter&&(P=o.parser?o.parser(P):P),!R.value){if(P===ne.value){Xe();return}n(Jt,P),n("input",P),await ae(),Xe(),Ye()}},wn=g=>{n("change",g.target.value)},Cn=g=>{n("compositionstart",g),R.value=true},Sn=g=>{var P;n("compositionupdate",g);const W=(P=g.target)==null?void 0:P.value,ct=W[W.length-1]||"";R.value=!ei(ct)},En=g=>{n("compositionend",g),R.value&&(R.value=false,Vt(g))},Jo=()=>{F.value=!F.value,Tn()},Tn=async()=>{var g;await ae(),(g=j.value)==null||g.focus()},Qo=()=>{var g;return(g=j.value)==null?void 0:g.blur()},ea=g=>{K.value=false,n("mouseleave",g)},ta=g=>{K.value=true,n("mouseenter",g)},xn=g=>{n("keydown",g)},na=()=>{var g;(g=j.value)==null||g.select()},kn=()=>{n(Jt,""),n("change",""),n("clear"),n("input","")};return J(()=>o.modelValue,()=>{var g;ae(()=>qe()),o.validateEvent&&((g=h==null?void 0:h.validate)==null||g.call(h,"change").catch(P=>void 0))}),J(ne,()=>Xe()),J(()=>o.type,async()=>{await ae(),Xe(),qe()}),Ee(()=>{!o.formatter&&o.parser,Xe(),ae(qe)}),It({from:"label",replacement:"aria-label",version:"2.8.0",scope:"el-input",ref:"https://element-plus.org/en-US/component/input.html"},b(()=>!!o.label)),t({input:x,textarea:A,ref:j,textareaStyle:ce,autosize:wt(o,"autosize"),focus:Tn,blur:Qo,select:na,clear:kn,resizeTextarea:qe}),(g,P)=>(y(),k("div",Je(i(l),{class:[i(r),{[i(u).bm("group","append")]:g.$slots.append,[i(u).bm("group","prepend")]:g.$slots.prepend}],style:i(le),role:g.containerRole,onMouseenter:ta,onMouseleave:ea}),[O(" input "),g.type!=="textarea"?(y(),k(we,{key:0},[O(" prepend slot "),g.$slots.prepend?(y(),k("div",{key:0,class:T(i(u).be("group","prepend"))},[Z(g.$slots,"prepend")],2)):O("v-if",true),c("div",{ref_key:"wrapperRef",ref:te,class:T(i(d))},[O(" prefix slot "),g.$slots.prefix||g.prefixIcon?(y(),k("span",{key:0,class:T(i(u).e("prefix"))},[c("span",{class:T(i(u).e("prefix-inner"))},[Z(g.$slots,"prefix"),g.prefixIcon?(y(),N(i(ge),{key:0,class:T(i(u).e("icon"))},{default:_(()=>[(y(),N(ue(g.prefixIcon)))]),_:1},8,["class"])):O("v-if",true)],2)],2)):O("v-if",true),c("input",Je({id:i(C),ref_key:"input",ref:x,class:i(u).e("inner")},i(f),{minlength:g.minlength,maxlength:g.maxlength,type:g.showPassword?F.value?"text":"password":g.type,disabled:i(p),readonly:g.readonly,autocomplete:g.autocomplete,tabindex:g.tabindex,"aria-label":g.label||g.ariaLabel,placeholder:g.placeholder,style:g.inputStyle,form:g.form,autofocus:g.autofocus,onCompositionstart:Cn,onCompositionupdate:Sn,onCompositionend:En,onInput:Vt,onFocus:P[0]||(P[0]=(...W)=>i(m)&&i(m)(...W)),onBlur:P[1]||(P[1]=(...W)=>i(D)&&i(D)(...W)),onChange:wn,onKeydown:xn}),null,16,Ri),O(" suffix slot "),i(Ft)?(y(),k("span",{key:1,class:T(i(u).e("suffix"))},[c("span",{class:T(i(u).e("suffix-inner"))},[!i(Fe)||!i(de)||!i(be)?(y(),k(we,{key:0},[Z(g.$slots,"suffix"),g.suffixIcon?(y(),N(i(ge),{key:0,class:T(i(u).e("icon"))},{default:_(()=>[(y(),N(ue(g.suffixIcon)))]),_:1},8,["class"])):O("v-if",true)],64)):O("v-if",true),i(Fe)?(y(),N(i(ge),{key:1,class:T([i(u).e("icon"),i(u).e("clear")]),onMousedown:Ue(i(et),["prevent"]),onClick:kn},{default:_(()=>[v(i(io))]),_:1},8,["class","onMousedown"])):O("v-if",true),i(de)?(y(),N(i(ge),{key:2,class:T([i(u).e("icon"),i(u).e("password")]),onClick:Jo},{default:_(()=>[(y(),N(ue(i(V))))]),_:1},8,["class"])):O("v-if",true),i(be)?(y(),k("span",{key:3,class:T(i(u).e("count"))},[c("span",{class:T(i(u).e("count-inner"))},H(i(Ve))+" / "+H(g.maxlength),3)],2)):O("v-if",true),i(se)&&i(re)&&i(Q)?(y(),N(i(ge),{key:4,class:T([i(u).e("icon"),i(u).e("validateIcon"),i(u).is("loading",i(se)==="validating")])},{default:_(()=>[(y(),N(ue(i(re))))]),_:1},8,["class"])):O("v-if",true)],2)],2)):O("v-if",true)],2),O(" append slot "),g.$slots.append?(y(),k("div",{key:1,class:T(i(u).be("group","append"))},[Z(g.$slots,"append")],2)):O("v-if",true)],64)):(y(),k(we,{key:1},[O(" textarea "),c("textarea",Je({id:i(C),ref_key:"textarea",ref:A,class:[i(S).e("inner"),i(u).is("focus",i(E))]},i(f),{minlength:g.minlength,maxlength:g.maxlength,tabindex:g.tabindex,disabled:i(p),readonly:g.readonly,autocomplete:g.autocomplete,style:i(ce),"aria-label":g.label||g.ariaLabel,placeholder:g.placeholder,form:g.form,autofocus:g.autofocus,onCompositionstart:Cn,onCompositionupdate:Sn,onCompositionend:En,onInput:Vt,onFocus:P[2]||(P[2]=(...W)=>i(m)&&i(m)(...W)),onBlur:P[3]||(P[3]=(...W)=>i(D)&&i(D)(...W)),onChange:wn,onKeydown:xn}),null,16,Pi),i(be)?(y(),k("span",{key:0,style:tt(q.value),class:T(i(u).e("count"))},H(i(Ve))+" / "+H(g.maxlength),7)):O("v-if",true)],64))],16,Ni))}});var Vi=$e(Fi,[["__file","input.vue"]]);const Di=Nt(Vi),Ut="focus-trap.focus-after-trapped",Kt="focus-trap.focus-after-released",Hi="focus-trap.focusout-prevented",jn={cancelable:true,bubbles:false},Ui={cancelable:true,bubbles:false},Wn="focusAfterTrapped",Gn="focusAfterReleased",Ki=Symbol("elFocusTrap"),bn=I(),Pt=I(0),_n=I(0);let pt=0;const jo=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const a=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||a?NodeFilter.FILTER_SKIP:o.tabIndex>=0||o===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},Yn=(e,t)=>{for(const n of e)if(!ji(n,t))return n},ji=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return true;for(;e;){if(t&&e===t)return false;if(getComputedStyle(e).display==="none")return true;e=e.parentElement}return false},Wi=e=>{const t=jo(e),n=Yn(t,e),o=Yn(t.reverse(),e);return[n,o]},Gi=e=>e instanceof HTMLInputElement&&"select"in e,ke=(e,t)=>{if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:true}),_n.value=window.performance.now(),e!==n&&Gi(e)&&t&&e.select()}};function qn(e,t){const n=[...e],o=e.indexOf(t);return o!==-1&&n.splice(o,1),n}const Yi=()=>{let e=[];return{push:o=>{const a=e[0];a&&o!==a&&a.pause(),e=qn(e,o),e.unshift(o)},remove:o=>{var a,s;e=qn(e,o),(s=(a=e[0])==null?void 0:a.resume)==null||s.call(a)}}},qi=(e,t=false)=>{const n=document.activeElement;for(const o of e)if(ke(o,t),document.activeElement!==n)return},Xn=Yi(),Xi=()=>Pt.value>_n.value,vt=()=>{bn.value="pointer",Pt.value=window.performance.now()},Zn=()=>{bn.value="keyboard",Pt.value=window.performance.now()},Zi=()=>(Ee(()=>{pt===0&&(document.addEventListener("mousedown",vt),document.addEventListener("touchstart",vt),document.addEventListener("keydown",Zn)),pt++}),lt(()=>{pt--,pt<=0&&(document.removeEventListener("mousedown",vt),document.removeEventListener("touchstart",vt),document.removeEventListener("keydown",Zn))}),{focusReason:bn,lastUserFocusTimestamp:Pt,lastAutomatedFocusTimestamp:_n}),mt=e=>new CustomEvent(Hi,{...Ui,detail:e}),Ji=z({name:"ElFocusTrap",inheritAttrs:false,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[Wn,Gn,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=I();let o,a;const{focusReason:s}=Zi();vi(p=>{e.trapped&&!l.paused&&t("release-requested",p)});const l={paused:false,pause(){this.paused=true},resume(){this.paused=false}},r=p=>{if(!e.loop&&!e.trapped||l.paused)return;const{key:u,altKey:S,ctrlKey:x,metaKey:A,currentTarget:K,shiftKey:R}=p,{loop:F}=e,q=u===Rt.tab&&!S&&!x&&!A,L=document.activeElement;if(q&&L){const j=K,[te,E]=Wi(j);if(te&&E){if(!R&&L===E){const D=mt({focusReason:s.value});t("focusout-prevented",D),D.defaultPrevented||(p.preventDefault(),F&&ke(te,true))}else if(R&&[te,j].includes(L)){const D=mt({focusReason:s.value});t("focusout-prevented",D),D.defaultPrevented||(p.preventDefault(),F&&ke(E,true))}}else if(L===j){const D=mt({focusReason:s.value});t("focusout-prevented",D),D.defaultPrevented||p.preventDefault()}}};sn(Ki,{focusTrapRef:n,onKeydown:r}),J(()=>e.focusTrapEl,p=>{p&&(n.value=p)},{immediate:true}),J([n],([p],[u])=>{p&&(p.addEventListener("keydown",r),p.addEventListener("focusin",w),p.addEventListener("focusout",h)),u&&(u.removeEventListener("keydown",r),u.removeEventListener("focusin",w),u.removeEventListener("focusout",h))});const d=p=>{t(Wn,p)},f=p=>t(Gn,p),w=p=>{const u=i(n);if(!u)return;const S=p.target,x=p.relatedTarget,A=S&&u.contains(S);e.trapped||x&&u.contains(x)||(o=x),A&&t("focusin",p),!l.paused&&e.trapped&&(A?a=S:ke(a,true))},h=p=>{const u=i(n);if(!(l.paused||!u))if(e.trapped){const S=p.relatedTarget;!So(S)&&!u.contains(S)&&setTimeout(()=>{if(!l.paused&&e.trapped){const x=mt({focusReason:s.value});t("focusout-prevented",x),x.defaultPrevented||ke(a,true)}},0)}else{const S=p.target;S&&u.contains(S)||t("focusout",p)}};async function C(){await ae();const p=i(n);if(p){Xn.push(l);const u=p.contains(document.activeElement)?o:document.activeElement;if(o=u,!p.contains(u)){const x=new Event(Ut,jn);p.addEventListener(Ut,d),p.dispatchEvent(x),x.defaultPrevented||ae(()=>{let A=e.focusStartEl;he(A)||(ke(A),document.activeElement!==A&&(A="first")),A==="first"&&qi(jo(p),true),(document.activeElement===u||A==="container")&&ke(p)})}}}function M(){const p=i(n);if(p){p.removeEventListener(Ut,d);const u=new CustomEvent(Kt,{...jn,detail:{focusReason:s.value}});p.addEventListener(Kt,f),p.dispatchEvent(u),!u.defaultPrevented&&(s.value=="keyboard"||!Xi()||p.contains(document.activeElement))&&ke(o??document.body),p.removeEventListener(Kt,f),Xn.remove(l)}}return Ee(()=>{e.trapped&&C(),J(()=>e.trapped,p=>{p?C():M()})}),lt(()=>{e.trapped&&M()}),{onKeydown:r}}});function Qi(e,t,n,o,a,s){return Z(e.$slots,"default",{handleKeydown:e.onKeydown})}var eu=$e(Ji,[["render",Qi],["__file","focus-trap.vue"]]);const tu=Te({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:true},color:String,dotStyle:{type:G([String,Object,Array])},badgeStyle:{type:G([String,Object,Array])},offset:{type:G(Array),default:[0,0]},dotClass:{type:String},badgeClass:{type:String}}),nu=["textContent"],ou=z({name:"ElBadge"}),au=z({...ou,props:tu,setup(e,{expose:t}){const n=e,o=ye("badge"),a=b(()=>n.isDot?"":Pe(n.value)&&Pe(n.max)?n.max<n.value?`${n.max}+`:n.value===0&&!n.showZero?"":`${n.value}`:`${n.value}`),s=b(()=>{var l,r,d,f,w,h;return[{backgroundColor:n.color,marginRight:at(-((r=(l=n.offset)==null?void 0:l[0])!=null?r:0)),marginTop:at((f=(d=n.offset)==null?void 0:d[1])!=null?f:0)},(w=n.dotStyle)!=null?w:{},(h=n.badgeStyle)!=null?h:{}]});return It({from:"dot-style",replacement:"badge-style",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},b(()=>!!n.dotStyle)),It({from:"dot-class",replacement:"badge-class",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},b(()=>!!n.dotClass)),t({content:a}),(l,r)=>(y(),k("div",{class:T(i(o).b())},[Z(l.$slots,"default"),v(rn,{name:`${i(o).namespace.value}-zoom-in-center`,persisted:""},{default:_(()=>[Ke(c("sup",{class:T([i(o).e("content"),i(o).em("content",l.type),i(o).is("fixed",!!l.$slots.default),i(o).is("dot",l.isDot),l.dotClass,l.badgeClass]),style:tt(i(s)),textContent:H(i(a))},null,14,nu),[[Qe,!l.hidden&&(i(a)||l.isDot)]])]),_:1},8,["name"])],2))}});var su=$e(au,[["__file","badge.vue"]]);const ru=Nt(su),Wo=Symbol("buttonGroupContextKey"),lu=(e,t)=>{It({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},b(()=>e.type==="text"));const n=ee(Wo,void 0),o=gn("button"),{form:a}=Ko(),s=Uo(b(()=>n==null?void 0:n.size)),l=yn(),r=I(),d=ao(),f=b(()=>e.type||(n==null?void 0:n.type)||""),w=b(()=>{var p,u,S;return(S=(u=e.autoInsertSpace)!=null?u:(p=o.value)==null?void 0:p.autoInsertSpace)!=null?S:false}),h=b(()=>e.tag==="button"?{ariaDisabled:l.value||e.loading,disabled:l.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),C=b(()=>{var p;const u=(p=d.default)==null?void 0:p.call(d);if(w.value&&(u==null?void 0:u.length)===1){const S=u[0];if((S==null?void 0:S.type)===ia){const x=S.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(x.trim())}}return false});return{_disabled:l,_size:s,_type:f,_ref:r,_props:h,shouldAddSpace:C,handleClick:p=>{e.nativeType==="reset"&&(a==null||a.resetFields()),t("click",p)}}},iu=["default","primary","success","warning","info","danger","text",""],uu=["button","submit","reset"],tn=Te({size:mn,disabled:Boolean,type:{type:String,values:iu,default:""},icon:{type:st},nativeType:{type:String,values:uu,default:"button"},loading:Boolean,loadingIcon:{type:st,default:()=>St},plain:Boolean,text:Boolean,link:Boolean,bg:Boolean,autofocus:Boolean,round:Boolean,circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:G([String,Object]),default:"button"}}),cu={click:e=>e instanceof MouseEvent};function Y(e,t){du(e)&&(e="100%");var n=fu(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function gt(e){return Math.min(1,Math.max(0,e))}function du(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function fu(e){return typeof e=="string"&&e.indexOf("%")!==-1}function Go(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function ht(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Oe(e){return e.length===1?"0"+e:String(e)}function pu(e,t,n){return{r:Y(e,255)*255,g:Y(t,255)*255,b:Y(n,255)*255}}function Jn(e,t,n){e=Y(e,255),t=Y(t,255),n=Y(n,255);var o=Math.max(e,t,n),a=Math.min(e,t,n),s=0,l=0,r=(o+a)/2;if(o===a)l=0,s=0;else{var d=o-a;switch(l=r>.5?d/(2-o-a):d/(o+a),o){case e:s=(t-n)/d+(t<n?6:0);break;case t:s=(n-e)/d+2;break;case n:s=(e-t)/d+4;break}s/=6}return{h:s,s:l,l:r}}function jt(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function vu(e,t,n){var o,a,s;if(e=Y(e,360),t=Y(t,100),n=Y(n,100),t===0)a=n,s=n,o=n;else{var l=n<.5?n*(1+t):n+t-n*t,r=2*n-l;o=jt(r,l,e+1/3),a=jt(r,l,e),s=jt(r,l,e-1/3)}return{r:o*255,g:a*255,b:s*255}}function Qn(e,t,n){e=Y(e,255),t=Y(t,255),n=Y(n,255);var o=Math.max(e,t,n),a=Math.min(e,t,n),s=0,l=o,r=o-a,d=o===0?0:r/o;if(o===a)s=0;else{switch(o){case e:s=(t-n)/r+(t<n?6:0);break;case t:s=(n-e)/r+2;break;case n:s=(e-t)/r+4;break}s/=6}return{h:s,s:d,v:l}}function mu(e,t,n){e=Y(e,360)*6,t=Y(t,100),n=Y(n,100);var o=Math.floor(e),a=e-o,s=n*(1-t),l=n*(1-a*t),r=n*(1-(1-a)*t),d=o%6,f=[n,l,s,s,r,n][d],w=[r,n,n,l,s,s][d],h=[s,s,r,n,n,l][d];return{r:f*255,g:w*255,b:h*255}}function eo(e,t,n,o){var a=[Oe(Math.round(e).toString(16)),Oe(Math.round(t).toString(16)),Oe(Math.round(n).toString(16))];return o&&a[0].startsWith(a[0].charAt(1))&&a[1].startsWith(a[1].charAt(1))&&a[2].startsWith(a[2].charAt(1))?a[0].charAt(0)+a[1].charAt(0)+a[2].charAt(0):a.join("")}function gu(e,t,n,o,a){var s=[Oe(Math.round(e).toString(16)),Oe(Math.round(t).toString(16)),Oe(Math.round(n).toString(16)),Oe(hu(o))];return a&&s[0].startsWith(s[0].charAt(1))&&s[1].startsWith(s[1].charAt(1))&&s[2].startsWith(s[2].charAt(1))&&s[3].startsWith(s[3].charAt(1))?s[0].charAt(0)+s[1].charAt(0)+s[2].charAt(0)+s[3].charAt(0):s.join("")}function hu(e){return Math.round(parseFloat(e)*255).toString(16)}function to(e){return oe(e)/255}function oe(e){return parseInt(e,16)}function yu(e){return{r:e>>16,g:(e&65280)>>8,b:e&255}}var nn={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function bu(e){var t={r:0,g:0,b:0},n=1,o=null,a=null,s=null,l=false,r=false;return typeof e=="string"&&(e=Cu(e)),typeof e=="object"&&(_e(e.r)&&_e(e.g)&&_e(e.b)?(t=pu(e.r,e.g,e.b),l=true,r=String(e.r).substr(-1)==="%"?"prgb":"rgb"):_e(e.h)&&_e(e.s)&&_e(e.v)?(o=ht(e.s),a=ht(e.v),t=mu(e.h,o,a),l=true,r="hsv"):_e(e.h)&&_e(e.s)&&_e(e.l)&&(o=ht(e.s),s=ht(e.l),t=vu(e.h,o,s),l=true,r="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=Go(n),{ok:l,format:e.format||r,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var _u="[-\\+]?\\d+%?",wu="[-\\+]?\\d*\\.\\d+%?",Ie="(?:".concat(wu,")|(?:").concat(_u,")"),Wt="[\\s|\\(]+(".concat(Ie,")[,|\\s]+(").concat(Ie,")[,|\\s]+(").concat(Ie,")\\s*\\)?"),Gt="[\\s|\\(]+(".concat(Ie,")[,|\\s]+(").concat(Ie,")[,|\\s]+(").concat(Ie,")[,|\\s]+(").concat(Ie,")\\s*\\)?"),pe={CSS_UNIT:new RegExp(Ie),rgb:new RegExp("rgb"+Wt),rgba:new RegExp("rgba"+Gt),hsl:new RegExp("hsl"+Wt),hsla:new RegExp("hsla"+Gt),hsv:new RegExp("hsv"+Wt),hsva:new RegExp("hsva"+Gt),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function Cu(e){if(e=e.trim().toLowerCase(),e.length===0)return false;var t=false;if(nn[e])e=nn[e],t=true;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=pe.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=pe.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=pe.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=pe.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=pe.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=pe.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=pe.hex8.exec(e),n?{r:oe(n[1]),g:oe(n[2]),b:oe(n[3]),a:to(n[4]),format:t?"name":"hex8"}:(n=pe.hex6.exec(e),n?{r:oe(n[1]),g:oe(n[2]),b:oe(n[3]),format:t?"name":"hex"}:(n=pe.hex4.exec(e),n?{r:oe(n[1]+n[1]),g:oe(n[2]+n[2]),b:oe(n[3]+n[3]),a:to(n[4]+n[4]),format:t?"name":"hex8"}:(n=pe.hex3.exec(e),n?{r:oe(n[1]+n[1]),g:oe(n[2]+n[2]),b:oe(n[3]+n[3]),format:t?"name":"hex"}:false)))))))))}function _e(e){return!!pe.CSS_UNIT.exec(String(e))}var Su=function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var o;if(t instanceof e)return t;typeof t=="number"&&(t=yu(t)),this.originalInput=t;var a=bu(t);this.originalInput=t,this.r=a.r,this.g=a.g,this.b=a.b,this.a=a.a,this.roundA=Math.round(100*this.a)/100,this.format=(o=n.format)!==null&&o!==void 0?o:a.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=a.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,o,a,s=t.r/255,l=t.g/255,r=t.b/255;return s<=.03928?n=s/12.92:n=Math.pow((s+.055)/1.055,2.4),l<=.03928?o=l/12.92:o=Math.pow((l+.055)/1.055,2.4),r<=.03928?a=r/12.92:a=Math.pow((r+.055)/1.055,2.4),.2126*n+.7152*o+.0722*a},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=Go(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=Qn(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=Qn(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),a=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(o,"%, ").concat(a,"%)"):"hsva(".concat(n,", ").concat(o,"%, ").concat(a,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=Jn(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=Jn(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),a=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(o,"%, ").concat(a,"%)"):"hsla(".concat(n,", ").concat(o,"%, ").concat(a,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=false),eo(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=false),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=false),gu(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=false),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=false),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),o=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(o,")"):"rgba(".concat(t,", ").concat(n,", ").concat(o,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(Y(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(Y(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return false;for(var t="#"+eo(this.r,this.g,this.b,false),n=0,o=Object.entries(nn);n<o.length;n++){var a=o[n],s=a[0],l=a[1];if(t===l)return s}return false},e.prototype.toString=function(t){var n=!!t;t=t??this.format;var o=false,a=this.a<1&&this.a>=0,s=!n&&a&&(t.startsWith("hex")||t==="name");return s?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(o=this.toRgbString()),t==="prgb"&&(o=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(o=this.toHexString()),t==="hex3"&&(o=this.toHexString(true)),t==="hex4"&&(o=this.toHex8String(true)),t==="hex8"&&(o=this.toHex8String()),t==="name"&&(o=this.toName()),t==="hsl"&&(o=this.toHslString()),t==="hsv"&&(o=this.toHsvString()),o||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=gt(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=gt(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=gt(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=gt(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var o=this.toRgb(),a=new e(t).toRgb(),s=n/100,l={r:(a.r-o.r)*s+o.r,g:(a.g-o.g)*s+o.g,b:(a.b-o.b)*s+o.b,a:(a.a-o.a)*s+o.a};return new e(l)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var o=this.toHsl(),a=360/n,s=[this];for(o.h=(o.h-(a*t>>1)+720)%360;--t;)o.h=(o.h+a)%360,s.push(new e(o));return s},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),o=n.h,a=n.s,s=n.v,l=[],r=1/t;t--;)l.push(new e({h:o,s:a,v:s})),s=(s+r)%1;return l},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb(),a=n.a+o.a*(1-n.a);return new e({r:(n.r*n.a+o.r*o.a*(1-n.a))/a,g:(n.g*n.a+o.g*o.a*(1-n.a))/a,b:(n.b*n.a+o.b*o.a*(1-n.a))/a,a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,a=[this],s=360/t,l=1;l<t;l++)a.push(new e({h:(o+l*s)%360,s:n.s,l:n.l}));return a},e.prototype.equals=function(t){return this.toRgbString()===new e(t).toRgbString()},e}();function xe(e,t=20){return e.mix("#141414",t).toString()}function Eu(e){const t=yn(),n=ye("button");return b(()=>{let o={},a=e.color;if(a){const s=a.match(/var\((.*?)\)/);s&&(a=window.getComputedStyle(window.document.documentElement).getPropertyValue(s[1]));const l=new Su(a),r=e.dark?l.tint(20).toString():xe(l,20);if(e.plain)o=n.cssVarBlock({"bg-color":e.dark?xe(l,90):l.tint(90).toString(),"text-color":a,"border-color":e.dark?xe(l,50):l.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":a,"hover-border-color":a,"active-bg-color":r,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":r}),t.value&&(o[n.cssVarBlockName("disabled-bg-color")]=e.dark?xe(l,90):l.tint(90).toString(),o[n.cssVarBlockName("disabled-text-color")]=e.dark?xe(l,50):l.tint(50).toString(),o[n.cssVarBlockName("disabled-border-color")]=e.dark?xe(l,80):l.tint(80).toString());else{const d=e.dark?xe(l,30):l.tint(30).toString(),f=l.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(o=n.cssVarBlock({"bg-color":a,"text-color":f,"border-color":a,"hover-bg-color":d,"hover-text-color":f,"hover-border-color":d,"active-bg-color":r,"active-border-color":r}),t.value){const w=e.dark?xe(l,50):l.tint(50).toString();o[n.cssVarBlockName("disabled-bg-color")]=w,o[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,o[n.cssVarBlockName("disabled-border-color")]=w}}}return o})}const Tu=z({name:"ElButton"}),xu=z({...Tu,props:tn,emits:cu,setup(e,{expose:t,emit:n}){const o=e,a=Eu(o),s=ye("button"),{_ref:l,_size:r,_type:d,_disabled:f,_props:w,shouldAddSpace:h,handleClick:C}=lu(o,n),M=b(()=>[s.b(),s.m(d.value),s.m(r.value),s.is("disabled",f.value),s.is("loading",o.loading),s.is("plain",o.plain),s.is("round",o.round),s.is("circle",o.circle),s.is("text",o.text),s.is("link",o.link),s.is("has-bg",o.bg)]);return t({ref:l,size:r,type:d,disabled:f,shouldAddSpace:h}),(p,u)=>(y(),N(ue(p.tag),Je({ref_key:"_ref",ref:l},i(w),{class:i(M),style:i(a),onClick:i(C)}),{default:_(()=>[p.loading?(y(),k(we,{key:0},[p.$slots.loading?Z(p.$slots,"loading",{key:0}):(y(),N(i(ge),{key:1,class:T(i(s).is("loading"))},{default:_(()=>[(y(),N(ue(p.loadingIcon)))]),_:1},8,["class"]))],64)):p.icon||p.$slots.icon?(y(),N(i(ge),{key:1},{default:_(()=>[p.icon?(y(),N(ue(p.icon),{key:0})):Z(p.$slots,"icon",{key:1})]),_:3})):O("v-if",true),p.$slots.default?(y(),k("span",{key:2,class:T({[i(s).em("text","expand")]:i(h)})},[Z(p.$slots,"default")],2)):O("v-if",true)]),_:3},16,["class","style","onClick"]))}});var ku=$e(xu,[["__file","button.vue"]]);const Mu={size:tn.size,type:tn.type},Iu=z({name:"ElButtonGroup"}),Bu=z({...Iu,props:Mu,setup(e){const t=e;sn(Wo,an({size:wt(t,"size"),type:wt(t,"type")}));const n=ye("button");return(o,a)=>(y(),k("div",{class:T(`${i(n).b("group")}`)},[Z(o.$slots,"default")],2))}});var Yo=$e(Bu,[["__file","button-group.vue"]]);const $u=Nt(ku,{ButtonGroup:Yo});Jl(Yo);const on="_trap-focus-children",Ae=[],no=e=>{if(Ae.length===0)return;const t=Ae[Ae.length-1][on];if(t.length>0&&e.code===Rt.tab){if(t.length===1){e.preventDefault(),document.activeElement!==t[0]&&t[0].focus();return}const n=e.shiftKey,o=e.target===t[0],a=e.target===t[t.length-1];o&&n&&(e.preventDefault(),t[t.length-1].focus()),a&&!n&&(e.preventDefault(),t[0].focus())}},Lu={beforeMount(e){e[on]=In(e),Ae.push(e),Ae.length<=1&&document.addEventListener("keydown",no)},updated(e){ae(()=>{e[on]=In(e)})},unmounted(){Ae.shift(),Ae.length===0&&document.removeEventListener("keydown",no)}},Ou=Te({mask:{type:Boolean,default:true},customMaskEvent:{type:Boolean,default:false},overlayClass:{type:G([String,Array,Object])},zIndex:{type:G([String,Number])}}),Au={click:e=>e instanceof MouseEvent},Nu="overlay";var Ru=z({name:"ElOverlay",props:Ou,emits:Au,setup(e,{slots:t,emit:n}){const o=ye(Nu),a=d=>{n("click",d)},{onClick:s,onMousedown:l,onMouseup:r}=No(e.customMaskEvent?void 0:a);return()=>e.mask?v("div",{class:[o.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:s,onMousedown:l,onMouseup:r},[Z(t,"default")],bt.STYLE|bt.CLASS|bt.PROPS,["onClick","onMouseup","onMousedown"]):ua("div",{class:e.overlayClass,style:{zIndex:e.zIndex,position:"fixed",top:"0px",right:"0px",bottom:"0px",left:"0px"}},[Z(t,"default")])}});const Pu=Ru,qo=["success","info","warning","error"],X=Bo({customClass:"",center:false,dangerouslyUseHTMLString:false,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:false,type:"info",plain:false,offset:16,zIndex:0,grouping:false,repeatNum:1,appendTo:me?document.body:void 0}),zu=Te({customClass:{type:String,default:X.customClass},center:{type:Boolean,default:X.center},dangerouslyUseHTMLString:{type:Boolean,default:X.dangerouslyUseHTMLString},duration:{type:Number,default:X.duration},icon:{type:st,default:X.icon},id:{type:String,default:X.id},message:{type:G([String,Object,Function]),default:X.message},onClose:{type:G(Function),default:X.onClose},showClose:{type:Boolean,default:X.showClose},type:{type:String,values:qo,default:X.type},plain:{type:Boolean,default:X.plain},offset:{type:Number,default:X.offset},zIndex:{type:Number,default:X.zIndex},grouping:{type:Boolean,default:X.grouping},repeatNum:{type:Number,default:X.repeatNum}}),Fu={destroy:()=>true},ve=ca([]),Vu=e=>{const t=ve.findIndex(a=>a.id===e),n=ve[t];let o;return t>0&&(o=ve[t-1]),{current:n,prev:o}},Du=e=>{const{prev:t}=Vu(e);return t?t.vm.exposed.bottom.value:0},Hu=(e,t)=>ve.findIndex(o=>o.id===e)>0?16:t,Uu=["id"],Ku=["innerHTML"],ju=z({name:"ElMessage"}),Wu=z({...ju,props:zu,emits:Fu,setup(e,{expose:t}){const n=e,{Close:o}=Mo,{ns:a,zIndex:s}=Vo("message"),{currentZIndex:l,nextZIndex:r}=s,d=I(),f=I(false),w=I(0);let h;const C=b(()=>n.type?n.type==="error"?"danger":n.type:"info"),M=b(()=>{const L=n.type;return{[a.bm("icon",L)]:L&&Mt[L]}}),p=b(()=>n.icon||Mt[n.type]||""),u=b(()=>Du(n.id)),S=b(()=>Hu(n.id,n.offset)+u.value),x=b(()=>w.value+S.value),A=b(()=>({top:`${S.value}px`,zIndex:l.value}));function K(){n.duration!==0&&({stop:h}=ma(()=>{F()},n.duration))}function R(){h==null||h()}function F(){f.value=false}function q({code:L}){L===Rt.esc&&F()}return Ee(()=>{K(),r(),f.value=true}),J(()=>n.repeatNum,()=>{R(),K()}),so(document,"keydown",q),ro(d,()=>{w.value=d.value.getBoundingClientRect().height}),t({visible:f,bottom:x,close:F}),(L,j)=>(y(),N(rn,{name:i(a).b("fade"),onBeforeLeave:L.onClose,onAfterLeave:j[0]||(j[0]=te=>L.$emit("destroy")),persisted:""},{default:_(()=>[Ke(c("div",{id:L.id,ref_key:"messageRef",ref:d,class:T([i(a).b(),{[i(a).m(L.type)]:L.type},i(a).is("center",L.center),i(a).is("closable",L.showClose),i(a).is("plain",L.plain),L.customClass]),style:tt(i(A)),role:"alert",onMouseenter:R,onMouseleave:K},[L.repeatNum>1?(y(),N(i(ru),{key:0,value:L.repeatNum,type:i(C),class:T(i(a).e("badge"))},null,8,["value","type","class"])):O("v-if",true),i(p)?(y(),N(i(ge),{key:1,class:T([i(a).e("icon"),i(M)])},{default:_(()=>[(y(),N(ue(i(p))))]),_:1},8,["class"])):O("v-if",true),Z(L.$slots,"default",{},()=>[L.dangerouslyUseHTMLString?(y(),k(we,{key:1},[O(" Caution here, message could've been compromised, never use user's input as message "),c("p",{class:T(i(a).e("content")),innerHTML:L.message},null,10,Ku)],2112)):(y(),k("p",{key:0,class:T(i(a).e("content"))},H(L.message),3))]),L.showClose?(y(),N(i(ge),{key:2,class:T(i(a).e("closeBtn")),onClick:Ue(F,["stop"])},{default:_(()=>[v(i(o))]),_:1},8,["class","onClick"])):O("v-if",true)],46,Uu),[[Qe,f.value]])]),_:3},8,["name","onBeforeLeave"]))}});var Gu=$e(Wu,[["__file","message.vue"]]);let Yu=1;const Xo=e=>{const t=!e||he(e)||$t(e)||Ne(e)?{message:e}:e,n={...X,...t};if(!n.appendTo)n.appendTo=document.body;else if(he(n.appendTo)){let o=document.querySelector(n.appendTo);Zt(o)||(o=document.body),n.appendTo=o}return n},qu=e=>{const t=ve.indexOf(e);if(t===-1)return;ve.splice(t,1);const{handler:n}=e;n.close()},Xu=({appendTo:e,...t},n)=>{const o=`message_${Yu++}`,a=t.onClose,s=document.createElement("div"),l={...t,id:o,onClose:()=>{a==null||a(),qu(w)},onDestroy:()=>{Ct(null,s)}},r=v(Gu,l,Ne(l.message)||$t(l.message)?{default:Ne(l.message)?l.message:()=>l.message}:null);r.appContext=n||je._context,Ct(r,s),e.appendChild(s.firstElementChild);const d=r.component,w={id:o,vnode:r,vm:d,handler:{close:()=>{d.exposed.visible.value=false}},props:r.component.props};return w},je=(e={},t)=>{if(!me)return{close:()=>{}};if(Pe(en.max)&&ve.length>=en.max)return{close:()=>{}};const n=Xo(e);if(n.grouping&&ve.length){const a=ve.find(({vnode:s})=>{var l;return((l=s.props)==null?void 0:l.message)===n.message});if(a)return a.props.repeatNum+=1,a.props.type=n.type,a.handler}const o=Xu(n,t);return ve.push(o),o.handler};qo.forEach(e=>{je[e]=(t={},n)=>{const o=Xo(t);return je({...o,type:e},n)}});function Zu(e){for(const t of ve)(!e||e===t.props.type)&&t.handler.close()}je.closeAll=Zu;je._context=null;const ie=Zl(je,"$message"),Ju=z({name:"ElMessageBox",directives:{TrapFocus:Lu},components:{ElButton:$u,ElFocusTrap:eu,ElInput:Di,ElOverlay:Pu,ElIcon:ge,...Mo},inheritAttrs:false,props:{buttonSize:{type:String,validator:Ql},modal:{type:Boolean,default:true},lockScroll:{type:Boolean,default:true},showClose:{type:Boolean,default:true},closeOnClickModal:{type:Boolean,default:true},closeOnPressEscape:{type:Boolean,default:true},closeOnHashChange:{type:Boolean,default:true},center:Boolean,draggable:Boolean,overflow:Boolean,roundButton:{default:false,type:Boolean},container:{type:String,default:"body"},boxType:{type:String,default:""}},emits:["vanish","action"],setup(e,{emit:t}){const{locale:n,zIndex:o,ns:a,size:s}=Vo("message-box",b(()=>e.buttonSize)),{t:l}=n,{nextZIndex:r}=o,d=I(false),f=an({autofocus:true,beforeClose:null,callback:null,cancelButtonText:"",cancelButtonClass:"",confirmButtonText:"",confirmButtonClass:"",customClass:"",customStyle:{},dangerouslyUseHTMLString:false,distinguishCancelAndClose:false,icon:"",inputPattern:null,inputPlaceholder:"",inputType:"text",inputValue:null,inputValidator:null,inputErrorMessage:"",message:null,modalFade:true,modalClass:"",showCancelButton:false,showConfirmButton:true,type:"",title:void 0,showInput:false,action:"",confirmButtonLoading:false,cancelButtonLoading:false,confirmButtonLoadingIcon:St,cancelButtonLoadingIcon:St,confirmButtonDisabled:false,editorErrorMessage:"",validateError:false,zIndex:r()}),w=b(()=>{const V=f.type;return{[a.bm("icon",V)]:V&&Mt[V]}}),h=Qt(),C=Qt(),M=b(()=>f.icon||Mt[f.type]||""),p=b(()=>!!f.message),u=I(),S=I(),x=I(),A=I(),K=I(),R=b(()=>f.confirmButtonClass);J(()=>f.inputValue,async V=>{await ae(),e.boxType==="prompt"&&V!==null&&D()},{immediate:true}),J(()=>d.value,V=>{var le,ce;V&&(e.boxType!=="prompt"&&(f.autofocus?x.value=(ce=(le=K.value)==null?void 0:le.$el)!=null?ce:u.value:x.value=u.value),f.zIndex=r()),e.boxType==="prompt"&&(V?ae().then(()=>{var ne;A.value&&A.value.$el&&(f.autofocus?x.value=(ne=Q())!=null?ne:u.value:x.value=u.value)}):(f.editorErrorMessage="",f.validateError=false))});const F=b(()=>e.draggable),q=b(()=>e.overflow);ai(u,S,F,q),Ee(async()=>{await ae(),e.closeOnHashChange&&window.addEventListener("hashchange",L)}),lt(()=>{e.closeOnHashChange&&window.removeEventListener("hashchange",L)});function L(){d.value&&(d.value=false,ae(()=>{f.action&&t("action",f.action)}))}const j=()=>{e.closeOnClickModal&&m(f.distinguishCancelAndClose?"close":"cancel")},te=No(j),E=V=>{if(f.inputType!=="textarea")return V.preventDefault(),m("confirm")},m=V=>{var le;e.boxType==="prompt"&&V==="confirm"&&!D()||(f.action=V,f.beforeClose?(le=f.beforeClose)==null||le.call(f,V,f,L):L())},D=()=>{if(e.boxType==="prompt"){const V=f.inputPattern;if(V&&!V.test(f.inputValue||""))return f.editorErrorMessage=f.inputErrorMessage||l("el.messagebox.error"),f.validateError=true,false;const le=f.inputValidator;if(typeof le=="function"){const ce=le(f.inputValue);if(ce===false)return f.editorErrorMessage=f.inputErrorMessage||l("el.messagebox.error"),f.validateError=true,false;if(typeof ce=="string")return f.editorErrorMessage=ce,f.validateError=true,false}}return f.editorErrorMessage="",f.validateError=false,true},Q=()=>{const V=A.value.$refs;return V.input||V.textarea},se=()=>{m("close")},re=()=>{e.closeOnPressEscape&&se()};return e.lockScroll&&di(d),{...da(f),ns:a,overlayEvent:te,visible:d,hasMessage:p,typeClass:w,contentId:h,inputId:C,btnSize:s,iconComponent:M,confirmButtonClasses:R,rootRef:u,focusStartRef:x,headerRef:S,inputRef:A,confirmRef:K,doClose:L,handleClose:se,onCloseRequested:re,handleWrapperClick:j,handleInputEnter:E,handleAction:m,t:l}}}),Qu=["aria-label","aria-describedby"],ec=["aria-label"],tc=["id"];function nc(e,t,n,o,a,s){const l=$("el-icon"),r=$("close"),d=$("el-input"),f=$("el-button"),w=$("el-focus-trap"),h=$("el-overlay");return y(),N(rn,{name:"fade-in-linear",onAfterLeave:t[11]||(t[11]=C=>e.$emit("vanish")),persisted:""},{default:_(()=>[Ke(v(h,{"z-index":e.zIndex,"overlay-class":[e.ns.is("message-box"),e.modalClass],mask:e.modal},{default:_(()=>[c("div",{role:"dialog","aria-label":e.title,"aria-modal":"true","aria-describedby":e.showInput?void 0:e.contentId,class:T(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||(t[8]=(...C)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...C)),onMousedown:t[9]||(t[9]=(...C)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...C)),onMouseup:t[10]||(t[10]=(...C)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...C))},[v(w,{loop:"",trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:_(()=>[c("div",{ref:"rootRef",class:T([e.ns.b(),e.customClass,e.ns.is("draggable",e.draggable),{[e.ns.m("center")]:e.center}]),style:tt(e.customStyle),tabindex:"-1",onClick:t[7]||(t[7]=Ue(()=>{},["stop"]))},[e.title!==null&&e.title!==void 0?(y(),k("div",{key:0,ref:"headerRef",class:T([e.ns.e("header"),{"show-close":e.showClose}])},[c("div",{class:T(e.ns.e("title"))},[e.iconComponent&&e.center?(y(),N(l,{key:0,class:T([e.ns.e("status"),e.typeClass])},{default:_(()=>[(y(),N(ue(e.iconComponent)))]),_:1},8,["class"])):O("v-if",true),c("span",null,H(e.title),1)],2),e.showClose?(y(),k("button",{key:0,type:"button",class:T(e.ns.e("headerbtn")),"aria-label":e.t("el.messagebox.close"),onClick:t[0]||(t[0]=C=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel")),onKeydown:t[1]||(t[1]=dt(Ue(C=>e.handleAction(e.distinguishCancelAndClose?"close":"cancel"),["prevent"]),["enter"]))},[v(l,{class:T(e.ns.e("close"))},{default:_(()=>[v(r)]),_:1},8,["class"])],42,ec)):O("v-if",true)],2)):O("v-if",true),c("div",{id:e.contentId,class:T(e.ns.e("content"))},[c("div",{class:T(e.ns.e("container"))},[e.iconComponent&&!e.center&&e.hasMessage?(y(),N(l,{key:0,class:T([e.ns.e("status"),e.typeClass])},{default:_(()=>[(y(),N(ue(e.iconComponent)))]),_:1},8,["class"])):O("v-if",true),e.hasMessage?(y(),k("div",{key:1,class:T(e.ns.e("message"))},[Z(e.$slots,"default",{},()=>[e.dangerouslyUseHTMLString?(y(),N(ue(e.showInput?"label":"p"),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,["for","innerHTML"])):(y(),N(ue(e.showInput?"label":"p"),{key:0,for:e.showInput?e.inputId:void 0},{default:_(()=>[U(H(e.dangerouslyUseHTMLString?"":e.message),1)]),_:1},8,["for"]))])],2)):O("v-if",true)],2),Ke(c("div",{class:T(e.ns.e("input"))},[v(d,{id:e.inputId,ref:"inputRef",modelValue:e.inputValue,"onUpdate:modelValue":t[2]||(t[2]=C=>e.inputValue=C),type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:T({invalid:e.validateError}),onKeydown:dt(e.handleInputEnter,["enter"])},null,8,["id","modelValue","type","placeholder","aria-invalid","class","onKeydown"]),c("div",{class:T(e.ns.e("errormsg")),style:tt({visibility:e.editorErrorMessage?"visible":"hidden"})},H(e.editorErrorMessage),7)],2),[[Qe,e.showInput]])],10,tc),c("div",{class:T(e.ns.e("btns"))},[e.showCancelButton?(y(),N(f,{key:0,loading:e.cancelButtonLoading,"loading-icon":e.cancelButtonLoadingIcon,class:T([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||(t[3]=C=>e.handleAction("cancel")),onKeydown:t[4]||(t[4]=dt(Ue(C=>e.handleAction("cancel"),["prevent"]),["enter"]))},{default:_(()=>[U(H(e.cancelButtonText||e.t("el.messagebox.cancel")),1)]),_:1},8,["loading","loading-icon","class","round","size"])):O("v-if",true),Ke(v(f,{ref:"confirmRef",type:"primary",loading:e.confirmButtonLoading,"loading-icon":e.confirmButtonLoadingIcon,class:T([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||(t[5]=C=>e.handleAction("confirm")),onKeydown:t[6]||(t[6]=dt(Ue(C=>e.handleAction("confirm"),["prevent"]),["enter"]))},{default:_(()=>[U(H(e.confirmButtonText||e.t("el.messagebox.confirm")),1)]),_:1},8,["loading","loading-icon","class","round","disabled","size"]),[[Qe,e.showConfirmButton]])],2)],6)]),_:3},8,["trapped","focus-trap-el","focus-start-el","onReleaseRequested"])],42,Qu)]),_:3},8,["z-index","overlay-class","mask"]),[[Qe,e.visible]])]),_:3})}var oc=$e(Ju,[["render",nc],["__file","index.vue"]]);const rt=new Map,ac=e=>{let t=document.body;return e.appendTo&&(he(e.appendTo)&&(t=document.querySelector(e.appendTo)),Zt(e.appendTo)&&(t=e.appendTo),Zt(t)||(t=document.body)),t},sc=(e,t,n=null)=>{const o=v(oc,e,Ne(e.message)||$t(e.message)?{default:Ne(e.message)?e.message:()=>e.message}:null);return o.appContext=n,Ct(o,t),ac(e).appendChild(t.firstElementChild),o.component},rc=()=>document.createElement("div"),lc=(e,t)=>{const n=rc();e.onVanish=()=>{Ct(null,n),rt.delete(a)},e.onAction=s=>{const l=rt.get(a);let r;e.showInput?r={value:a.inputValue,action:s}:r=s,e.callback?e.callback(r,o.proxy):s==="cancel"||s==="close"?e.distinguishCancelAndClose&&s!=="cancel"?l.reject("close"):l.reject("cancel"):l.resolve(r)};const o=sc(e,n,t),a=o.proxy;for(const s in e)Tt(e,s)&&!Tt(a.$props,s)&&(a[s]=e[s]);return a.visible=true,a};function Ge(e,t=null){if(!me)return Promise.reject();let n;return he(e)||$t(e)?e={message:e}:n=e.callback,new Promise((o,a)=>{const s=lc(e,t??Ge._context);rt.set(s,{options:e,callback:n,resolve:o,reject:a})})}const ic=["alert","confirm","prompt"],uc={alert:{closeOnPressEscape:false,closeOnClickModal:false},confirm:{showCancelButton:true},prompt:{showCancelButton:true,showInput:true}};ic.forEach(e=>{Ge[e]=cc(e)});function cc(e){return(t,n,o,a)=>{let s="";return nt(n)?(o=n,s=""):Eo(n)?s="":s=n,Ge(Object.assign({title:s,message:t,type:"",...uc[e]},o,{boxType:e}),a)}}Ge.close=()=>{rt.forEach((e,t)=>{t.doClose()}),rt.clear()};Ge._context=null;const Me=Ge;Me.install=e=>{Me._context=e._context,e.config.globalProperties.$msgbox=Me,e.config.globalProperties.$messageBox=Me,e.config.globalProperties.$alert=Me.alert,e.config.globalProperties.$confirm=Me.confirm,e.config.globalProperties.$prompt=Me.prompt};const dc=Me,fc={class:"todo-app"},pc={class:"todo-container"},vc={class:"todo-header"},mc={class:"button-group"},gc={class:"todo-stats"},hc={class:"search-filter-section"},yc={class:"filter-buttons"},bc={class:"todo-table-card"},_c={key:1,class:"pagination-section"},wc=z({__name:"todolist",setup(e){const t=I([]),n=I(false),o=I(false),a=I(false),s=I(false),l=I(false),r=I(""),d=I("all"),f=I(1),w=I(8),h=I({title:"",content:"",createdBy:""}),C=I({id:0,title:"",content:"",createdBy:"",completed:false}),M=b(()=>t.value.filter(E=>E.completed).length),p=b(()=>t.value.filter(E=>!E.completed).length),u=b(()=>{let E=t.value;if(d.value==="active"?E=E.filter(m=>!m.completed):d.value==="completed"&&(E=E.filter(m=>m.completed)),r.value.trim()){const m=r.value.toLowerCase().trim();E=E.filter(D=>D.title.toLowerCase().includes(m)||D.content.toLowerCase().includes(m))}return f.value=1,E}),S=b(()=>{const E=(f.value-1)*w.value,m=E+w.value;return u.value.slice(E,m)});function x(E){w.value=E,f.value=1}function A(E){f.value=E}function K(E){return new Date(E).toLocaleString("zh-CN")}function R(){a.value=true,De("onitodos/list").then(E=>{t.value=E,a.value=false,ie.success("刷新成功")}).catch(E=>{a.value=false,ie.error("刷新失败"),console.error(E)})}De("onitodos/list").then(E=>{t.value=E});async function F(){if(!h.value.title.trim()){ie.warning("请输入标题");return}o.value=true;try{await De("onitodos/add",{title:h.value.title,content:h.value.content,createdBy:h.value.createdBy}),ie.success("添加成功"),s.value=false,h.value={title:"",content:"",createdBy:""},R()}catch(E){ie.error("添加失败"),console.error(E)}finally{o.value=false}}function q(E){C.value={id:E.id,title:E.title,content:E.content,createdBy:E.createdBy,completed:E.completed},l.value=true}async function L(){if(!C.value.title.trim()){ie.warning("请输入标题");return}o.value=true;try{await De("onitodos/update",{id:C.value.id,title:C.value.title,content:C.value.content,createdBy:C.value.createdBy,completed:C.value.completed}),ie.success("更新成功"),l.value=false,R()}catch(E){ie.error("更新失败"),console.error(E)}finally{o.value=false}}async function j(E,m){try{await De("onitodos/update",{id:E.id,completed:m}),ie.success(m?"标记完成成功":"取消完成成功"),R()}catch(D){ie.error("操作失败"),console.error(D)}}async function te(E){try{await dc.confirm(`确定要删除待办事项 "${E.title}" 吗?`,"确认删除",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}),await De("onitodos/delete",{id:E.id}),ie.success("删除成功"),R()}catch(m){m!=="cancel"&&(ie.error("删除失败"),console.error(m))}}return(E,m)=>{const D=$("el-icon"),Q=$("el-button"),se=$("el-statistic"),re=$("el-input"),V=$("el-table-column"),le=$("el-tag"),ce=$("el-table"),ne=$("el-empty"),Fe=$("el-pagination"),de=$("el-form-item"),be=$("el-form"),Ve=$("el-dialog"),zt=$("el-checkbox"),Ft=fa("loading");return y(),k("div",fc,[m[30]||(m[30]=c("div",{class:"bg-pattern"},null,-1)),c("div",pc,[c("div",vc,[m[20]||(m[20]=c("h2",{class:"todo-title"},[c("span",{class:"title-dot"},"♦"),c("span",{class:"title-text"},"ONITODO"),c("span",{class:"title-dot"},"♦")],-1)),c("div",mc,[v(Q,{type:"default",class:"cute-btn",onClick:R,loading:a.value},{default:_(()=>[v(D,null,{default:_(()=>[v(i($a))]),_:1}),m[18]||(m[18]=U(" 刷新 ",-1))]),_:1},8,["loading"]),v(Q,{type:"primary",class:"cute-btn primary",onClick:m[0]||(m[0]=B=>s.value=true)},{default:_(()=>[v(D,null,{default:_(()=>[v(i(Ia))]),_:1}),m[19]||(m[19]=U(" 新增待办 ",-1))]),_:1})])]),c("div",gc,[v(se,{title:"总计",value:t.value.length},null,8,["value"]),v(se,{title:"已完成",value:M.value},null,8,["value"]),v(se,{title:"未完成",value:p.value},null,8,["value"])]),c("div",hc,[v(re,{modelValue:r.value,"onUpdate:modelValue":m[1]||(m[1]=B=>r.value=B),placeholder:"🔍 搜索标题或内容...",class:"search-input cute-input",clearable:""},null,8,["modelValue"]),c("div",yc,[c("button",{class:T(["filter-btn",{active:d.value==="all"}]),onClick:m[2]||(m[2]=B=>d.value="all")}," 全部 ",2),c("button",{class:T(["filter-btn",{active:d.value==="active"}]),onClick:m[3]||(m[3]=B=>d.value="active")}," 未完成 ",2),c("button",{class:T(["filter-btn",{active:d.value==="completed"}]),onClick:m[4]||(m[4]=B=>d.value="completed")}," 已完成 ",2)])]),c("div",bc,[Ke((y(),N(ce,{data:S.value,stripe:"",style:{width:"100%"},class:"cute-table"},{default:_(()=>[v(V,{type:"index",label:"id",width:"80"}),v(V,{prop:"title",label:"标题","min-width":"150","show-overflow-tooltip":""},{default:_(({row:B})=>[c("span",{class:T({"completed-text":B.completed})},H(B.title),3)]),_:1}),v(V,{prop:"content",label:"内容","min-width":"150","show-overflow-tooltip":""}),v(V,{prop:"createdBy",label:"创建人",width:"80","show-overflow-tooltip":""}),v(V,{prop:"completed",label:"状态",width:"80"},{default:_(({row:B})=>[v(le,{type:B.completed?"success":"warning",size:"small",class:"cute-tag"},{default:_(()=>[U(H(B.completed?"已完成":"未完成"),1)]),_:2},1032,["type"])]),_:1}),v(V,{prop:"createdAt",label:"创建时间",width:"180"},{default:_(({row:B})=>[U(H(K(B.createdAt)),1)]),_:1}),v(V,{label:"操作",width:"200",fixed:"right"},{default:_(({row:B})=>[B.completed?(y(),N(Q,{key:1,size:"small",type:"warning",class:"cute-btn",onClick:Ye=>j(B,false)},{default:_(()=>[...m[22]||(m[22]=[U(" 取消 ",-1)])]),_:1},8,["onClick"])):(y(),N(Q,{key:0,size:"small",type:"success",class:"cute-btn",onClick:Ye=>j(B,true)},{default:_(()=>[...m[21]||(m[21]=[U(" 完成 ",-1)])]),_:1},8,["onClick"])),v(Q,{size:"small",type:"primary",class:"cute-btn",onClick:Ye=>q(B)},{default:_(()=>[...m[23]||(m[23]=[U(" 编辑 ",-1)])]),_:1},8,["onClick"]),v(Q,{size:"small",type:"danger",class:"cute-btn",onClick:Ye=>te(B)},{default:_(()=>[...m[24]||(m[24]=[U(" 删除 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[Ft,n.value]]),u.value.length===0&&!n.value?(y(),N(ne,{key:0,description:"暂无待办事项"})):O("v-if",true),u.value.length>8?(y(),k("div",_c,[v(Fe,{"current-page":f.value,"onUpdate:currentPage":m[5]||(m[5]=B=>f.value=B),"page-size":w.value,"onUpdate:pageSize":m[6]||(m[6]=B=>w.value=B),"page-sizes":[8,16,32,64],total:u.value.length,layout:"total, sizes, prev, pager, next, jumper",background:"",onSizeChange:x,onCurrentChange:A},null,8,["current-page","page-size","total"])])):O("v-if",true)])]),v(Ve,{modelValue:s.value,"onUpdate:modelValue":m[11]||(m[11]=B=>s.value=B),title:"新增待办事项",width:"500px",class:"cute-dialog"},{footer:_(()=>[v(Q,{onClick:m[10]||(m[10]=B=>s.value=false),class:"cute-btn"},{default:_(()=>[...m[25]||(m[25]=[U("取消",-1)])]),_:1}),v(Q,{type:"primary",onClick:F,loading:o.value,class:"cute-btn primary"},{default:_(()=>[...m[26]||(m[26]=[U(" 保存 ",-1)])]),_:1},8,["loading"])]),default:_(()=>[v(be,{model:h.value,"label-width":"80px"},{default:_(()=>[v(de,{label:"标题"},{default:_(()=>[v(re,{modelValue:h.value.title,"onUpdate:modelValue":m[7]||(m[7]=B=>h.value.title=B),placeholder:"请输入标题",class:"cute-input"},null,8,["modelValue"])]),_:1}),v(de,{label:"内容"},{default:_(()=>[v(re,{modelValue:h.value.content,"onUpdate:modelValue":m[8]||(m[8]=B=>h.value.content=B),type:"textarea",rows:4,placeholder:"请输入具体内容",class:"cute-input"},null,8,["modelValue"])]),_:1}),v(de,{label:"创建人"},{default:_(()=>[v(re,{modelValue:h.value.createdBy,"onUpdate:modelValue":m[9]||(m[9]=B=>h.value.createdBy=B),placeholder:"默认为:默认创建人",class:"cute-input"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),v(Ve,{modelValue:l.value,"onUpdate:modelValue":m[17]||(m[17]=B=>l.value=B),title:"编辑待办事项",width:"500px",class:"cute-dialog"},{footer:_(()=>[v(Q,{onClick:m[16]||(m[16]=B=>l.value=false),class:"cute-btn"},{default:_(()=>[...m[28]||(m[28]=[U("取消",-1)])]),_:1}),v(Q,{type:"primary",onClick:L,loading:o.value,class:"cute-btn primary"},{default:_(()=>[...m[29]||(m[29]=[U(" 保存 ",-1)])]),_:1},8,["loading"])]),default:_(()=>[v(be,{model:C.value,"label-width":"80px"},{default:_(()=>[v(de,{label:"标题"},{default:_(()=>[v(re,{modelValue:C.value.title,"onUpdate:modelValue":m[12]||(m[12]=B=>C.value.title=B),placeholder:"请输入标题",class:"cute-input"},null,8,["modelValue"])]),_:1}),v(de,{label:"内容"},{default:_(()=>[v(re,{modelValue:C.value.content,"onUpdate:modelValue":m[13]||(m[13]=B=>C.value.content=B),type:"textarea",rows:4,placeholder:"请输入具体内容",class:"cute-input"},null,8,["modelValue"])]),_:1}),v(de,{label:"创建人"},{default:_(()=>[v(re,{modelValue:C.value.createdBy,"onUpdate:modelValue":m[14]||(m[14]=B=>C.value.createdBy=B),placeholder:"请输入创建人",class:"cute-input"},null,8,["modelValue"])]),_:1}),v(de,{label:"状态"},{default:_(()=>[v(zt,{modelValue:C.value.completed,"onUpdate:modelValue":m[15]||(m[15]=B=>C.value.completed=B),class:"cute-checkbox"},{default:_(()=>[...m[27]||(m[27]=[U(" 已完成 ",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),Cc=it(wc,[["__scopeId","data-v-e2a5ab20"]]),kc=e=>{e.page({name:"同步机器人",path:"/onilogs",component:Ka,fields:["onilogs"]}),e.page({name:"火箭计算器",path:"/calculator",component:Fs}),e.page({name:"缺氧 TodoList",path:"/onitodos",component:Hs}),e.slot({type:"calculator",component:Rs}),e.slot({type:"onitodos",component:Cc})};export{kc as default};
5
+ **/const _o=Object.prototype.hasOwnProperty,Ue=(e,n)=>_o.call(e,n),_e=e=>typeof e=="function",ye=e=>typeof e=="string",it=e=>e!==null&&typeof e=="object";var yo=typeof global=="object"&&global&&global.Object===Object&&global,ho=typeof self=="object"&&self&&self.Object===Object&&self,Ie=yo||ho||Function("return this")(),ne=Ie.Symbol,ut=Object.prototype,bo=ut.hasOwnProperty,Co=ut.toString,re=ne?ne.toStringTag:void 0;function wo(e){var n=bo.call(e,re),t=e[re];try{e[re]=void 0;var o=true}catch{}var s=Co.call(e);return o&&(n?e[re]=t:delete e[re]),s}var xo=Object.prototype,So=xo.toString;function To(e){return So.call(e)}var $o="[object Null]",ko="[object Undefined]",Ke=ne?ne.toStringTag:void 0;function ct(e){return e==null?e===void 0?ko:$o:Ke&&Ke in Object(e)?wo(e):To(e)}function Oo(e){return e!=null&&typeof e=="object"}var Eo="[object Symbol]";function Me(e){return typeof e=="symbol"||Oo(e)&&ct(e)==Eo}function zo(e,n){for(var t=-1,o=e==null?0:e.length,s=Array(o);++t<o;)s[t]=n(e[t],t,e);return s}var Be=Array.isArray,Ge=ne?ne.prototype:void 0,He=Ge?Ge.toString:void 0;function dt(e){if(typeof e=="string")return e;if(Be(e))return zo(e,dt)+"";if(Me(e))return He?He.call(e):"";var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function pt(e){var n=typeof e;return e!=null&&(n=="object"||n=="function")}var No="[object AsyncFunction]",Vo="[object Function]",Io="[object GeneratorFunction]",Mo="[object Proxy]";function Bo(e){if(!pt(e))return false;var n=ct(e);return n==Vo||n==Io||n==No||n==Mo}var Te=Ie["__core-js_shared__"],qe=function(){var e=/[^.]+$/.exec(Te&&Te.keys&&Te.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""}();function Po(e){return!!qe&&qe in e}var Lo=Function.prototype,Do=Lo.toString;function Ro(e){if(e!=null){try{return Do.call(e)}catch{}try{return e+""}catch{}}return""}var jo=/[\\^$.*+?()[\]{}|]/g,Fo=/^\[object .+?Constructor\]$/,Ao=Function.prototype,Uo=Object.prototype,Ko=Ao.toString,Go=Uo.hasOwnProperty,Ho=RegExp("^"+Ko.call(Go).replace(jo,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function qo(e){if(!pt(e)||Po(e))return false;var n=Bo(e)?Ho:Fo;return n.test(Ro(e))}function Wo(e,n){return e==null?void 0:e[n]}function ft(e,n){var t=Wo(e,n);return qo(t)?t:void 0}function Zo(e,n){return e===n||e!==e&&n!==n}var Jo=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Yo=/^\w*$/;function Xo(e,n){if(Be(e))return false;var t=typeof e;return t=="number"||t=="symbol"||t=="boolean"||e==null||Me(e)?true:Yo.test(e)||!Jo.test(e)||n!=null&&e in Object(n)}var de=ft(Object,"create");function Qo(){this.__data__=de?de(null):{},this.size=0}function el(e){var n=this.has(e)&&delete this.__data__[e];return this.size-=n?1:0,n}var tl="__lodash_hash_undefined__",nl=Object.prototype,ol=nl.hasOwnProperty;function ll(e){var n=this.__data__;if(de){var t=n[e];return t===tl?void 0:t}return ol.call(n,e)?n[e]:void 0}var al=Object.prototype,sl=al.hasOwnProperty;function rl(e){var n=this.__data__;return de?n[e]!==void 0:sl.call(n,e)}var il="__lodash_hash_undefined__";function ul(e,n){var t=this.__data__;return this.size+=this.has(e)?0:1,t[e]=de&&n===void 0?il:n,this}function Q(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var o=e[n];this.set(o[0],o[1])}}Q.prototype.clear=Qo;Q.prototype.delete=el;Q.prototype.get=ll;Q.prototype.has=rl;Q.prototype.set=ul;function cl(){this.__data__=[],this.size=0}function Ce(e,n){for(var t=e.length;t--;)if(Zo(e[t][0],n))return t;return-1}var dl=Array.prototype,pl=dl.splice;function fl(e){var n=this.__data__,t=Ce(n,e);if(t<0)return false;var o=n.length-1;return t==o?n.pop():pl.call(n,t,1),--this.size,true}function ml(e){var n=this.__data__,t=Ce(n,e);return t<0?void 0:n[t][1]}function vl(e){return Ce(this.__data__,e)>-1}function gl(e,n){var t=this.__data__,o=Ce(t,e);return o<0?(++this.size,t.push([e,n])):t[o][1]=n,this}function le(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var o=e[n];this.set(o[0],o[1])}}le.prototype.clear=cl;le.prototype.delete=fl;le.prototype.get=ml;le.prototype.has=vl;le.prototype.set=gl;var _l=ft(Ie,"Map");function yl(){this.size=0,this.__data__={hash:new Q,map:new(_l||le),string:new Q}}function hl(e){var n=typeof e;return n=="string"||n=="number"||n=="symbol"||n=="boolean"?e!=="__proto__":e===null}function we(e,n){var t=e.__data__;return hl(n)?t[typeof n=="string"?"string":"hash"]:t.map}function bl(e){var n=we(this,e).delete(e);return this.size-=n?1:0,n}function Cl(e){return we(this,e).get(e)}function wl(e){return we(this,e).has(e)}function xl(e,n){var t=we(this,e),o=t.size;return t.set(e,n),this.size+=t.size==o?0:1,this}function ee(e){var n=-1,t=e==null?0:e.length;for(this.clear();++n<t;){var o=e[n];this.set(o[0],o[1])}}ee.prototype.clear=yl;ee.prototype.delete=bl;ee.prototype.get=Cl;ee.prototype.has=wl;ee.prototype.set=xl;var Sl="Expected a function";function Pe(e,n){if(typeof e!="function"||n!=null&&typeof n!="function")throw new TypeError(Sl);var t=function(){var o=arguments,s=n?n.apply(this,o):o[0],d=t.cache;if(d.has(s))return d.get(s);var i=e.apply(this,o);return t.cache=d.set(s,i)||d,i};return t.cache=new(Pe.Cache||ee),t}Pe.Cache=ee;var Tl=500;function $l(e){var n=Pe(e,function(o){return t.size===Tl&&t.clear(),o}),t=n.cache;return n}var kl=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Ol=/\\(\\)?/g,El=$l(function(e){var n=[];return e.charCodeAt(0)===46&&n.push(""),e.replace(kl,function(t,o,s,d){n.push(s?d.replace(Ol,"$1"):o||t)}),n});function zl(e){return e==null?"":dt(e)}function Nl(e,n){return Be(e)?e:Xo(e,n)?[e]:El(zl(e))}function Vl(e){if(typeof e=="string"||Me(e))return e;var n=e+"";return n=="0"&&1/e==-1/0?"-0":n}function Il(e,n){n=Nl(n,e);for(var t=0,o=n.length;e!=null&&t<o;)e=e[Vl(n[t++])];return t&&t==o?e:void 0}function Ml(e,n,t){var o=e==null?void 0:Il(e,n);return o===void 0?t:o}function Bl(e){for(var n=-1,t=e==null?0:e.length,o={};++n<t;){var s=e[n];o[s[0]]=s[1]}return o}const Pl=e=>e===void 0,pe=e=>typeof e=="number",Ll=e=>typeof Element>"u"?false:e instanceof Element,Dl=e=>ye(e)?!Number.isNaN(Number(e)):false,We=e=>Object.keys(e);function Ee(e,n="px"){if(!e)return"";if(pe(e)||Dl(e))return`${e}${n}`;if(ye(e))return e}const mt="__epPropKey",F=e=>e,Rl=e=>it(e)&&!!e[mt],vt=(e,n)=>{if(!it(e)||Rl(e))return e;const{values:t,required:o,default:s,type:d,validator:i}=e,f={type:d,required:!!o,validator:t||i?b=>{let _=false,h=[];if(t&&(h=Array.from(t),Ue(e,"default")&&h.push(s),_||(_=h.includes(b))),i&&(_||(_=i(b))),!_&&h.length>0){const S=[...new Set(h)].map(T=>JSON.stringify(T)).join(", ");It(`Invalid prop: validation failed${n?` for prop "${n}"`:""}. Expected one of [${S}], got value ${JSON.stringify(b)}.`)}return _}:void 0,[mt]:true};return Ue(e,"default")&&(f.default=s),f},me=e=>Bl(Object.entries(e).map(([n,t])=>[n,vt(t,n)])),jl=F([String,Object,Function]),Fl={Close:Yt},Ze={success:an,warning:cn,error:Zt,info:Qt},gt=(e,n)=>(e.install=t=>{for(const o of[e,...Object.values({})])t.component(o.name,o)},e),Al=(e,n)=>(e.install=t=>{e._context=t._context,t.config.globalProperties[n]=e},e),Ul={esc:"Escape"},Kl=["","default","small","large"],Gl=e=>e,Je=({from:e,replacement:n,scope:t,version:o,ref:s,type:d="API"},i)=>{ue(()=>m(i),l=>{},{immediate:true})};var Hl={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color."},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",week:"week",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum"},tour:{next:"Next",previous:"Previous",finish:"Finish"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const ql=e=>(n,t)=>Wl(n,t,m(e)),Wl=(e,n,t)=>Ml(t,e,e).replace(/\{(\w+)\}/g,(o,s)=>{var d;return`${(d=n==null?void 0:n[s])!=null?d:`{${s}}`}`}),Zl=e=>{const n=w(()=>m(e).name),t=Mt(e)?e:O(e);return{lang:n,locale:t,t:ql(e)}},_t=Symbol("localeContextKey"),Jl=e=>{const n=e||te(_t,O());return Zl(w(()=>n.value||Hl))},ve="el",Yl="is-",X=(e,n,t,o,s)=>{let d=`${e}-${n}`;return t&&(d+=`-${t}`),o&&(d+=`__${o}`),s&&(d+=`--${s}`),d},yt=Symbol("namespaceContextKey"),Xl=e=>{const n=e||(ce()?te(yt,O(ve)):O(ve));return w(()=>m(n)||ve)},Le=(e,n)=>{const t=Xl(n);return{namespace:t,b:(p="")=>X(t.value,e,p,"",""),e:p=>p?X(t.value,e,"",p,""):"",m:p=>p?X(t.value,e,"","",p):"",be:(p,x)=>p&&x?X(t.value,e,p,x,""):"",em:(p,x)=>p&&x?X(t.value,e,"",p,x):"",bm:(p,x)=>p&&x?X(t.value,e,p,"",x):"",bem:(p,x,z)=>p&&x&&z?X(t.value,e,p,x,z):"",is:(p,...x)=>{const z=x.length>=1?x[0]:true;return p&&z?`${Yl}${p}`:""},cssVar:p=>{const x={};for(const z in p)p[z]&&(x[`--${t.value}-${z}`]=p[z]);return x},cssVarName:p=>`--${t.value}-${p}`,cssVarBlock:p=>{const x={};for(const z in p)p[z]&&(x[`--${t.value}-${e}-${z}`]=p[z]);return x},cssVarBlockName:p=>`--${t.value}-${e}-${p}`}},Ye={current:0},Xe=O(0),ht=2e3,Qe=Symbol("elZIndexContextKey"),bt=Symbol("zIndexContextKey"),Ql=e=>{const n=ce()?te(Qe,Ye):Ye,t=e||(ce()?te(bt,void 0):void 0),o=w(()=>{const i=m(t);return pe(i)?i:ht}),s=w(()=>o.value+Xe.value),d=()=>(n.current++,Xe.value=n.current,s.value);return!Ve&&te(Qe),{initialZIndex:o,currentZIndex:s,nextZIndex:d}},ea=vt({type:String,values:Kl,required:false}),ta=Symbol("size"),na=Symbol("emptyValuesContextKey"),oa=me({emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>_e(e)?!e():!e}}),Ct=Symbol(),he=O();function wt(e,n=void 0){return ce()?te(Ct,he):he}function la(e,n){const t=wt(),o=Le(e,w(()=>{var l;return((l=t.value)==null?void 0:l.namespace)||ve})),s=Jl(w(()=>{var l;return(l=t.value)==null?void 0:l.locale})),d=Ql(w(()=>{var l;return((l=t.value)==null?void 0:l.zIndex)||ht})),i=w(()=>{var l;return m(n)||((l=t.value)==null?void 0:l.size)||""});return xt(w(()=>m(t)||{})),{ns:o,locale:s,zIndex:d,size:i}}const xt=(e,n,t=false)=>{var o;const s=!!ce(),d=s?wt():void 0,i=(o=void 0)!=null?o:s?Bt:void 0;if(!i)return;const l=w(()=>{const f=m(e);return d!=null&&d.value?aa(d.value,f):f});return i(Ct,l),i(_t,w(()=>l.value.locale)),i(yt,w(()=>l.value.namespace)),i(bt,w(()=>l.value.zIndex)),i(ta,{size:w(()=>l.value.size||"")}),i(na,w(()=>({emptyValues:l.value.emptyValues,valueOnClear:l.value.valueOnClear}))),(t||!he.value)&&(he.value=l.value),l},aa=(e,n)=>{const t=[...new Set([...We(e),...We(n)])],o={};for(const s of t)o[s]=n[s]!==void 0?n[s]:e[s];return o},sa=me({a11y:{type:Boolean,default:true},locale:{type:F(Object)},size:ea,button:{type:F(Object)},experimentalFeatures:{type:F(Object)},keyboardNavigation:{type:Boolean,default:true},message:{type:F(Object)},zIndex:Number,namespace:{type:String,default:"el"},...oa}),ze={};I({name:"ElConfigProvider",props:sa,setup(e,{slots:n}){ue(()=>e.message,o=>{Object.assign(ze,o??{})},{immediate:true,deep:true});const t=xt(e);return()=>be(n,"default",{config:t==null?void 0:t.value})}});var De=(e,n)=>{const t=e.__vccOpts||e;for(const[o,s]of n)t[o]=s;return t};const ra=me({size:{type:F([Number,String])},color:{type:String}}),ia=I({name:"ElIcon",inheritAttrs:false}),ua=I({...ia,props:ra,setup(e){const n=e,t=Le("icon"),o=w(()=>{const{size:s,color:d}=n;return!s&&!d?{}:{fontSize:Pl(s)?void 0:Ee(s),"--color":d}});return(s,d)=>(g(),$("i",Pt({class:m(t).b(),style:m(o)},s.$attrs),[be(s.$slots,"default")],16))}});var ca=De(ua,[["__file","icon.vue"]]);const et=gt(ca),da=me({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:true},color:String,dotStyle:{type:F([String,Object,Array])},badgeStyle:{type:F([String,Object,Array])},offset:{type:F(Array),default:[0,0]},dotClass:{type:String},badgeClass:{type:String}}),pa=["textContent"],fa=I({name:"ElBadge"}),ma=I({...fa,props:da,setup(e,{expose:n}){const t=e,o=Le("badge"),s=w(()=>t.isDot?"":pe(t.value)&&pe(t.max)?t.max<t.value?`${t.max}+`:t.value===0&&!t.showZero?"":`${t.value}`:`${t.value}`),d=w(()=>{var i,l,f,b,_,h;return[{backgroundColor:t.color,marginRight:Ee(-((l=(i=t.offset)==null?void 0:i[0])!=null?l:0)),marginTop:Ee((b=(f=t.offset)==null?void 0:f[1])!=null?b:0)},(_=t.dotStyle)!=null?_:{},(h=t.badgeStyle)!=null?h:{}]});return Je({from:"dot-style",replacement:"badge-style",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},w(()=>!!t.dotStyle)),Je({from:"dot-class",replacement:"badge-class",version:"2.8.0",scope:"el-badge",ref:"https://element-plus.org/en-US/component/badge.html"},w(()=>!!t.dotClass)),n({content:s}),(i,l)=>(g(),$("div",{class:D(m(o).b())},[be(i.$slots,"default"),r(nt,{name:`${m(o).namespace.value}-zoom-in-center`,persisted:""},{default:c(()=>[Ne(a("sup",{class:D([m(o).e("content"),m(o).em("content",i.type),m(o).is("fixed",!!i.$slots.default),m(o).is("dot",i.isDot),i.dotClass,i.badgeClass]),style:ot(m(d)),textContent:B(m(s))},null,14,pa),[[lt,!i.hidden&&(m(s)||i.isDot)]])]),_:1},8,["name"])],2))}});var va=De(ma,[["__file","badge.vue"]]);const ga=gt(va),St=["success","info","warning","error"],P=Gl({customClass:"",center:false,dangerouslyUseHTMLString:false,duration:3e3,icon:void 0,id:"",message:"",onClose:void 0,showClose:false,type:"info",plain:false,offset:16,zIndex:0,grouping:false,repeatNum:1,appendTo:Ve?document.body:void 0}),_a=me({customClass:{type:String,default:P.customClass},center:{type:Boolean,default:P.center},dangerouslyUseHTMLString:{type:Boolean,default:P.dangerouslyUseHTMLString},duration:{type:Number,default:P.duration},icon:{type:jl,default:P.icon},id:{type:String,default:P.id},message:{type:F([String,Object,Function]),default:P.message},onClose:{type:F(Function),default:P.onClose},showClose:{type:Boolean,default:P.showClose},type:{type:String,values:St,default:P.type},plain:{type:Boolean,default:P.plain},offset:{type:Number,default:P.offset},zIndex:{type:Number,default:P.zIndex},grouping:{type:Boolean,default:P.grouping},repeatNum:{type:Number,default:P.repeatNum}}),ya={destroy:()=>true},A=Lt([]),ha=e=>{const n=A.findIndex(s=>s.id===e),t=A[n];let o;return n>0&&(o=A[n-1]),{current:t,prev:o}},ba=e=>{const{prev:n}=ha(e);return n?n.vm.exposed.bottom.value:0},Ca=(e,n)=>A.findIndex(o=>o.id===e)>0?16:n,wa=["id"],xa=["innerHTML"],Sa=I({name:"ElMessage"}),Ta=I({...Sa,props:_a,emits:ya,setup(e,{expose:n}){const t=e,{Close:o}=Fl,{ns:s,zIndex:d}=la("message"),{currentZIndex:i,nextZIndex:l}=d,f=O(),b=O(false),_=O(0);let h;const S=w(()=>t.type?t.type==="error"?"danger":t.type:"info"),T=w(()=>{const E=t.type;return{[s.bm("icon",E)]:E&&Ze[E]}}),k=w(()=>t.icon||Ze[t.type]||""),p=w(()=>ba(t.id)),x=w(()=>Ca(t.id,t.offset)+p.value),z=w(()=>_.value+x.value),j=w(()=>({top:`${x.value}px`,zIndex:i.value}));function U(){t.duration!==0&&({stop:h}=Gt(()=>{M()},t.duration))}function V(){h==null||h()}function M(){b.value=false}function q({code:E}){E===Ul.esc&&M()}return tt(()=>{U(),l(),b.value=true}),ue(()=>t.repeatNum,()=>{V(),U()}),Ut(document,"keydown",q),Kt(f,()=>{_.value=f.value.getBoundingClientRect().height}),n({visible:b,bottom:z,close:M}),(E,ae)=>(g(),R(nt,{name:m(s).b("fade"),onBeforeLeave:E.onClose,onAfterLeave:ae[0]||(ae[0]=y=>E.$emit("destroy")),persisted:""},{default:c(()=>[Ne(a("div",{id:E.id,ref_key:"messageRef",ref:f,class:D([m(s).b(),{[m(s).m(E.type)]:E.type},m(s).is("center",E.center),m(s).is("closable",E.showClose),m(s).is("plain",E.plain),E.customClass]),style:ot(m(j)),role:"alert",onMouseenter:V,onMouseleave:U},[E.repeatNum>1?(g(),R(m(ga),{key:0,value:E.repeatNum,type:m(S),class:D(m(s).e("badge"))},null,8,["value","type","class"])):L("v-if",true),m(k)?(g(),R(m(et),{key:1,class:D([m(s).e("icon"),m(T)])},{default:c(()=>[(g(),R(Dt(m(k))))]),_:1},8,["class"])):L("v-if",true),be(E.$slots,"default",{},()=>[E.dangerouslyUseHTMLString?(g(),$(ie,{key:1},[L(" Caution here, message could've been compromised, never use user's input as message "),a("p",{class:D(m(s).e("content")),innerHTML:E.message},null,10,xa)],2112)):(g(),$("p",{key:0,class:D(m(s).e("content"))},B(E.message),3))]),E.showClose?(g(),R(m(et),{key:2,class:D(m(s).e("closeBtn")),onClick:Rt(M,["stop"])},{default:c(()=>[r(m(o))]),_:1},8,["class","onClick"])):L("v-if",true)],46,wa),[[lt,b.value]])]),_:3},8,["name","onBeforeLeave"]))}});var $a=De(Ta,[["__file","message.vue"]]);let ka=1;const Tt=e=>{const n=!e||ye(e)||at(e)||_e(e)?{message:e}:e,t={...P,...n};if(!t.appendTo)t.appendTo=document.body;else if(ye(t.appendTo)){let o=document.querySelector(t.appendTo);Ll(o)||(o=document.body),t.appendTo=o}return t},Oa=e=>{const n=A.indexOf(e);if(n===-1)return;A.splice(n,1);const{handler:t}=e;t.close()},Ea=({appendTo:e,...n},t)=>{const o=`message_${ka++}`,s=n.onClose,d=document.createElement("div"),i={...n,id:o,onClose:()=>{s==null||s(),Oa(_)},onDestroy:()=>{Ae(null,d)}},l=r($a,i,_e(i.message)||at(i.message)?{default:_e(i.message)?i.message:()=>i.message}:null);l.appContext=t||oe._context,Ae(l,d),e.appendChild(d.firstElementChild);const f=l.component,_={id:o,vnode:l,vm:f,handler:{close:()=>{f.exposed.visible.value=false}},props:l.component.props};return _},oe=(e={},n)=>{if(!Ve)return{close:()=>{}};if(pe(ze.max)&&A.length>=ze.max)return{close:()=>{}};const t=Tt(e);if(t.grouping&&A.length){const s=A.find(({vnode:d})=>{var i;return((i=d.props)==null?void 0:i.message)===t.message});if(s)return s.props.repeatNum+=1,s.props.type=t.type,s.handler}const o=Ea(t,n);return A.push(o),o.handler};St.forEach(e=>{oe[e]=(n={},t)=>{const o=Tt(n);return oe({...o,type:e},t)}});function za(e){for(const n of A)(!e||e===n.props.type)&&n.handler.close()}oe.closeAll=za;oe._context=null;const K=Al(oe,"$message"),Na={class:"todo-app"},Va={class:"todo-container"},Ia={class:"todo-header"},Ma={class:"button-group"},Ba={class:"todo-stats"},Pa={class:"search-filter-section"},La={class:"filter-buttons"},Da={class:"todo-table-card"},Ra={key:1,class:"pagination-section"},ja=I({__name:"todolist",setup(e){const n=O([]),t=O(false),o=O(false),s=O(false),d=O(false),i=O(false),l=O(""),f=O("all"),b=O(1),_=O(8),h=O({title:"",content:"",createdBy:""}),S=O({id:0,title:"",content:"",createdBy:"",completed:false}),T=w(()=>n.value.filter(y=>y.completed).length),k=w(()=>n.value.filter(y=>!y.completed).length),p=w(()=>{let y=n.value;if(f.value==="active"?y=y.filter(u=>!u.completed):f.value==="completed"&&(y=y.filter(u=>u.completed)),l.value.trim()){const u=l.value.toLowerCase().trim();y=y.filter(W=>W.title.toLowerCase().includes(u)||W.content.toLowerCase().includes(u))}return b.value=1,y}),x=w(()=>{const y=(b.value-1)*_.value,u=y+_.value;return p.value.slice(y,u)});function z(y){_.value=y,b.value=1}function j(y){b.value=y}function U(y){return new Date(y).toLocaleString("zh-CN")}function V(){s.value=true,se("onitodos/list").then(y=>{n.value=y,s.value=false,K.success("刷新成功")}).catch(y=>{s.value=false,K.error("刷新失败"),console.error(y)})}se("onitodos/list").then(y=>{n.value=y});async function M(){if(!h.value.title.trim()){K.warning("请输入标题");return}o.value=true;try{await se("onitodos/add",{title:h.value.title,content:h.value.content,createdBy:h.value.createdBy}),K.success("添加成功"),d.value=false,h.value={title:"",content:"",createdBy:""},V()}catch(y){K.error("添加失败"),console.error(y)}finally{o.value=false}}function q(y){S.value={id:y.id,title:y.title,content:y.content,createdBy:y.createdBy,completed:y.completed},i.value=true}async function E(){if(!S.value.title.trim()){K.warning("请输入标题");return}o.value=true;try{await se("onitodos/update",{id:S.value.id,title:S.value.title,content:S.value.content,createdBy:S.value.createdBy,completed:S.value.completed}),K.success("更新成功"),i.value=false,V()}catch(y){K.error("更新失败"),console.error(y)}finally{o.value=false}}async function ae(y,u){try{await se("onitodos/update",{id:y.id,completed:u}),K.success(u?"标记完成成功":"取消完成成功"),V()}catch(W){K.error("操作失败"),console.error(W)}}return(y,u)=>{const W=C("el-icon"),G=C("el-button"),xe=C("el-statistic"),Z=C("el-input"),J=C("el-table-column"),$t=C("el-tag"),kt=C("el-table"),Ot=C("el-empty"),Et=C("el-pagination"),Y=C("el-form-item"),Re=C("el-form"),je=C("el-dialog"),zt=C("el-checkbox"),Nt=jt("loading");return g(),$("div",Na,[u[29]||(u[29]=a("div",{class:"bg-pattern"},null,-1)),a("div",Va,[a("div",Ia,[u[20]||(u[20]=a("h2",{class:"todo-title"},[a("span",{class:"title-dot"},"♦"),a("span",{class:"title-text"},"ONITODO"),a("span",{class:"title-dot"},"♦")],-1)),a("div",Ma,[r(G,{type:"default",class:"cute-btn",onClick:V,loading:s.value},{default:c(()=>[r(W,null,{default:c(()=>[r(m(on))]),_:1}),u[18]||(u[18]=N(" 刷新 ",-1))]),_:1},8,["loading"]),r(G,{type:"primary",class:"cute-btn primary",onClick:u[0]||(u[0]=v=>d.value=true)},{default:c(()=>[r(W,null,{default:c(()=>[r(m(tn))]),_:1}),u[19]||(u[19]=N(" 新增待办 ",-1))]),_:1})])]),a("div",Ba,[r(xe,{title:"总计",value:n.value.length},null,8,["value"]),r(xe,{title:"已完成",value:T.value},null,8,["value"]),r(xe,{title:"未完成",value:k.value},null,8,["value"])]),a("div",Pa,[r(Z,{modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=v=>l.value=v),placeholder:"🔍 搜索标题或内容...",class:"search-input cute-input",clearable:""},null,8,["modelValue"]),a("div",La,[a("button",{class:D(["filter-btn",{active:f.value==="all"}]),onClick:u[2]||(u[2]=v=>f.value="all")}," 全部 ",2),a("button",{class:D(["filter-btn",{active:f.value==="active"}]),onClick:u[3]||(u[3]=v=>f.value="active")}," 未完成 ",2),a("button",{class:D(["filter-btn",{active:f.value==="completed"}]),onClick:u[4]||(u[4]=v=>f.value="completed")}," 已完成 ",2)])]),a("div",Da,[Ne((g(),R(kt,{data:x.value,stripe:"",style:{width:"100%"},class:"cute-table"},{default:c(()=>[r(J,{type:"index",label:"id",width:"80"}),r(J,{prop:"title",label:"标题","min-width":"150","show-overflow-tooltip":""},{default:c(({row:v})=>[a("span",{class:D({"completed-text":v.completed})},B(v.title),3)]),_:1}),r(J,{prop:"content",label:"内容","min-width":"150","show-overflow-tooltip":""}),r(J,{prop:"createdBy",label:"创建人",width:"80","show-overflow-tooltip":""}),r(J,{prop:"completed",label:"状态",width:"80"},{default:c(({row:v})=>[r($t,{type:v.completed?"success":"warning",size:"small",class:"cute-tag"},{default:c(()=>[N(B(v.completed?"已完成":"未完成"),1)]),_:2},1032,["type"])]),_:1}),r(J,{prop:"createdAt",label:"创建时间",width:"180"},{default:c(({row:v})=>[N(B(U(v.createdAt)),1)]),_:1}),r(J,{label:"操作",width:"150",fixed:"right"},{default:c(({row:v})=>[v.completed?(g(),R(G,{key:1,size:"small",type:"warning",class:"cute-btn",onClick:Fe=>ae(v,false)},{default:c(()=>[...u[22]||(u[22]=[N(" 取消 ",-1)])]),_:1},8,["onClick"])):(g(),R(G,{key:0,size:"small",type:"success",class:"cute-btn",onClick:Fe=>ae(v,true)},{default:c(()=>[...u[21]||(u[21]=[N(" 完成 ",-1)])]),_:1},8,["onClick"])),r(G,{size:"small",type:"primary",class:"cute-btn",onClick:Fe=>q(v)},{default:c(()=>[...u[23]||(u[23]=[N(" 编辑 ",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[Nt,t.value]]),p.value.length===0&&!t.value?(g(),R(Ot,{key:0,description:"暂无待办事项"})):L("v-if",true),p.value.length>8?(g(),$("div",Ra,[r(Et,{"current-page":b.value,"onUpdate:currentPage":u[5]||(u[5]=v=>b.value=v),"page-size":_.value,"onUpdate:pageSize":u[6]||(u[6]=v=>_.value=v),"page-sizes":[8,16,32,64],total:p.value.length,layout:"total, sizes, prev, pager, next, jumper",background:"",onSizeChange:z,onCurrentChange:j},null,8,["current-page","page-size","total"])])):L("v-if",true)])]),r(je,{modelValue:d.value,"onUpdate:modelValue":u[11]||(u[11]=v=>d.value=v),title:"新增待办事项",width:"500px",class:"cute-dialog"},{footer:c(()=>[r(G,{onClick:u[10]||(u[10]=v=>d.value=false),class:"cute-btn"},{default:c(()=>[...u[24]||(u[24]=[N("取消",-1)])]),_:1}),r(G,{type:"primary",onClick:M,loading:o.value,class:"cute-btn primary"},{default:c(()=>[...u[25]||(u[25]=[N(" 保存 ",-1)])]),_:1},8,["loading"])]),default:c(()=>[r(Re,{model:h.value,"label-width":"80px"},{default:c(()=>[r(Y,{label:"标题"},{default:c(()=>[r(Z,{modelValue:h.value.title,"onUpdate:modelValue":u[7]||(u[7]=v=>h.value.title=v),placeholder:"请输入标题",class:"cute-input"},null,8,["modelValue"])]),_:1}),r(Y,{label:"内容"},{default:c(()=>[r(Z,{modelValue:h.value.content,"onUpdate:modelValue":u[8]||(u[8]=v=>h.value.content=v),type:"textarea",rows:4,placeholder:"请输入具体内容",class:"cute-input"},null,8,["modelValue"])]),_:1}),r(Y,{label:"创建人"},{default:c(()=>[r(Z,{modelValue:h.value.createdBy,"onUpdate:modelValue":u[9]||(u[9]=v=>h.value.createdBy=v),placeholder:"默认为:默认创建人",class:"cute-input"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"]),r(je,{modelValue:i.value,"onUpdate:modelValue":u[17]||(u[17]=v=>i.value=v),title:"编辑待办事项",width:"500px",class:"cute-dialog"},{footer:c(()=>[r(G,{onClick:u[16]||(u[16]=v=>i.value=false),class:"cute-btn"},{default:c(()=>[...u[27]||(u[27]=[N("取消",-1)])]),_:1}),r(G,{type:"primary",onClick:E,loading:o.value,class:"cute-btn primary"},{default:c(()=>[...u[28]||(u[28]=[N(" 保存 ",-1)])]),_:1},8,["loading"])]),default:c(()=>[r(Re,{model:S.value,"label-width":"80px"},{default:c(()=>[r(Y,{label:"标题"},{default:c(()=>[r(Z,{modelValue:S.value.title,"onUpdate:modelValue":u[12]||(u[12]=v=>S.value.title=v),placeholder:"请输入标题",class:"cute-input"},null,8,["modelValue"])]),_:1}),r(Y,{label:"内容"},{default:c(()=>[r(Z,{modelValue:S.value.content,"onUpdate:modelValue":u[13]||(u[13]=v=>S.value.content=v),type:"textarea",rows:4,placeholder:"请输入具体内容",class:"cute-input"},null,8,["modelValue"])]),_:1}),r(Y,{label:"创建人"},{default:c(()=>[r(Z,{modelValue:S.value.createdBy,"onUpdate:modelValue":u[14]||(u[14]=v=>S.value.createdBy=v),placeholder:"请输入创建人",class:"cute-input"},null,8,["modelValue"])]),_:1}),r(Y,{label:"状态"},{default:c(()=>[r(zt,{modelValue:S.value.completed,"onUpdate:modelValue":u[15]||(u[15]=v=>S.value.completed=v),class:"cute-checkbox"},{default:c(()=>[...u[26]||(u[26]=[N(" 已完成 ",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model"])]),_:1},8,["modelValue"])])}}}),Fa=fe(ja,[["__scopeId","data-v-1d6d47ce"]]),Ga=e=>{e.page({name:"同步机器人",path:"/onilogs",component:_n,fields:["onilogs"]}),e.page({name:"火箭计算器",path:"/calculator",component:fo}),e.page({name:"缺氧 TodoList",path:"/onitodos",component:go}),e.slot({type:"calculator",component:uo}),e.slot({type:"onitodos",component:Fa})};export{Ga as default};
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- .filter-container[data-v-62639236]{background:#fff;padding:16px;margin-bottom:12px;border-radius:4px;box-shadow:0 2px 4px #0000001a}.log-tabs[data-v-62639236]{margin-bottom:16px}.filter-row[data-v-62639236]{display:flex;gap:12px;align-items:center}.filter-input[data-v-62639236]{flex:1}.button-group[data-v-62639236]{display:flex;gap:8px}.log-container[data-v-62639236]{width:100%;height:calc(100vh - 220px);overflow-y:auto;padding:12px;font-family:monospace;background:#1e1e1e;color:#d4d4d4;border-radius:4px}.log-line[data-v-62639236]{line-height:1.5;font-size:13px}pre[data-v-62639236]{margin:0;font-family:inherit;white-space:pre-wrap;word-break:break-all}.log-error[data-v-62639236]{color:#f44747}.log-warn[data-v-62639236]{color:#dcdcaa}.log-info[data-v-62639236]{color:#4fc1ff}.empty-state[data-v-62639236]{display:flex;justify-content:center;align-items:center;height:100%;color:gray;font-size:14px}[data-v-3e8f9409]{box-sizing:border-box}.rocket-calculator[data-v-3e8f9409]{max-width:800px;margin:0 auto;padding:20px;box-sizing:border-box;position:relative;min-height:100vh;overflow-x:hidden}.sci-fi-bg[data-v-3e8f9409]{background:linear-gradient(135deg,#0a0e27,#1a1f3a,#0f172a);color:#e0e7ff}.grid-overlay[data-v-3e8f9409]{position:fixed;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(0,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,255,255,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0}.sci-fi-card[data-v-3e8f9409]{background:#0f172af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,255,255,.2);box-shadow:0 0 20px #00ffff1a,inset 0 0 20px #00000080;position:relative;overflow:visible;z-index:1}.sci-fi-card[data-v-3e8f9409] .k-card__body{padding:24px}.card-header-line[data-v-3e8f9409]{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#00ffff,#8b5cf6,transparent);animation:lineGlow-3e8f9409 3s ease-in-out infinite;z-index:1}@keyframes lineGlow-3e8f9409{0%,to{opacity:.5}50%{opacity:1}}.header-card[data-v-3e8f9409]{margin-bottom:24px;text-align:center;position:relative;z-index:10;margin-top:8px}.header-glow[data-v-3e8f9409]{position:absolute;top:-50%;left:50%;transform:translate(-50%);width:200%;height:100%;background:radial-gradient(ellipse,rgba(139,92,246,.15) 0%,transparent 70%);pointer-events:none;z-index:-1}.sci-fi-title[data-v-3e8f9409]{margin:0 0 8px;font-size:28px;font-weight:800;letter-spacing:4px;color:#0ff;background:linear-gradient(90deg,#0ff,#8b5cf6,#0ff);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:titleShine-3e8f9409 4s linear infinite;position:relative;z-index:2;text-shadow:0 0 30px rgba(0,255,255,.3);line-height:1.4}@keyframes titleShine-3e8f9409{0%{background-position:0% center}to{background-position:200% center}}.sci-fi-subtitle[data-v-3e8f9409]{margin:0;color:#64748b;font-size:13px;letter-spacing:2px;text-transform:uppercase;position:relative;z-index:2;line-height:1.5}.content-layout[data-v-3e8f9409]{display:flex;flex-direction:column;gap:24px;position:relative;z-index:1}.config-section[data-v-3e8f9409]{margin-bottom:20px;position:relative;z-index:1}.section-title[data-v-3e8f9409]{margin:0 0 20px;font-size:14px;color:#0ff;letter-spacing:2px;font-weight:600}.distance-control[data-v-3e8f9409]{width:100%}.distance-step-selector[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:16px}.step-btn[data-v-3e8f9409]{margin:0;background:#0000004d;border:1px solid rgba(0,255,255,.2);color:#94a3b8;padding:8px 4px;font-size:12px;font-weight:600;transition:all .2s ease;white-space:nowrap}.step-btn[data-v-3e8f9409]:hover{border-color:#00ffff80;color:#0ff;transform:translateY(-1px)}.step-btn.active[data-v-3e8f9409]{background:#00ffff26;border-color:#0ff;color:#0ff;box-shadow:0 0 15px #00ffff4d}.distance-input-wrapper[data-v-3e8f9409]{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#0000004d;border:1px solid rgba(139,92,246,.3);border-radius:4px}.distance-label[data-v-3e8f9409]{color:#64748b;font-size:13px}.distance-value[data-v-3e8f9409]{font-size:20px;font-weight:800;color:#8b5cf6}.unit[data-v-3e8f9409]{color:#8b5cf6;font-weight:600;font-size:14px}.modules-grid[data-v-3e8f9409]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.module-item[data-v-3e8f9409]{background:#00ffff0d;border:1px solid rgba(0,255,255,.1);padding:12px;border-radius:4px;transition:all .3s ease;display:flex;flex-direction:column;gap:8px}.module-item[data-v-3e8f9409]:hover{border-color:#00ffff4d;background:#00ffff14}.module-name[data-v-3e8f9409]{font-size:13px;color:#94a3b8}.module-input[data-v-3e8f9409]{width:100%}.module-input[data-v-3e8f9409] .el-input__wrapper{background:#0000004d;border:1px solid rgba(0,255,255,.2);box-shadow:none;padding:4px 6px}.module-input[data-v-3e8f9409] .el-input__inner{text-align:center;color:#0ff;font-weight:700;font-size:16px}.module-input[data-v-3e8f9409] .el-input-number__decrease,.module-input[data-v-3e8f9409] .el-input-number__increase{background:#0ff3;color:#0ff;border-color:#00ffff4d;font-weight:800;font-size:16px;transition:all .2s ease}.module-input[data-v-3e8f9409] .el-input-number__decrease:hover,.module-input[data-v-3e8f9409] .el-input-number__increase:hover{background:#0ff6;color:#fff}.module-input[data-v-3e8f9409] .el-input-number__decrease.is-disabled,.module-input[data-v-3e8f9409] .el-input-number__increase.is-disabled{background:#0003;color:#475569;border-color:#ffffff1a}.calculate-btn-wrapper[data-v-3e8f9409]{margin-top:24px;margin-bottom:0}.sci-fi-calculate-btn[data-v-3e8f9409]{width:100%;height:50px;background:linear-gradient(135deg,#0ff,#8b5cf6);border:none;color:#0a0e27;font-weight:800;font-size:16px;letter-spacing:2px;position:relative;overflow:hidden;transition:all .3s ease}.sci-fi-calculate-btn[data-v-3e8f9409]:hover{transform:translateY(-2px);box-shadow:0 10px 30px #00ffff4d}.btn-text[data-v-3e8f9409]{position:relative;z-index:1}.btn-glow[data-v-3e8f9409]{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:btnScan-3e8f9409 2s ease-in-out infinite}@keyframes btnScan-3e8f9409{0%{left:-100%}to{left:100%}}.sci-fi-radio-group[data-v-3e8f9409]{width:100%;display:flex}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button{flex:1}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__inner{width:100%;background:#0000004d;border:1px solid rgba(0,255,255,.2);color:#94a3b8;font-weight:600;padding:12px 10px;transition:all .2s ease}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__inner:hover{color:#0ff;border-color:#0ff6}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__orig-radio:checked+.el-radio-button__inner{background:#00ffff26;border-color:#0ff;color:#0ff;box-shadow:0 0 15px #0ff3}.oxidizer-hint[data-v-3e8f9409]{display:flex;justify-content:space-around;margin-top:8px}.hint-item[data-v-3e8f9409]{font-size:12px;color:#64748b;transition:all .2s ease}.hint-item.active[data-v-3e8f9409]{color:#0ff;font-weight:600}.divider-line[data-v-3e8f9409]{height:1px;background:linear-gradient(90deg,transparent,rgba(0,255,255,.3),transparent);margin:24px 0}.result-header[data-v-3e8f9409]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:8px}.result-title[data-v-3e8f9409]{margin:0;font-size:18px;color:#0ff;letter-spacing:2px}.result-status[data-v-3e8f9409]{display:flex;align-items:center;gap:8px;font-size:12px;color:#67c23a;letter-spacing:1px}.status-dot[data-v-3e8f9409]{width:8px;height:8px;background:#67c23a;border-radius:50%;animation:statusPulse-3e8f9409 2s ease-in-out infinite}@keyframes statusPulse-3e8f9409{0%,to{box-shadow:0 0 #67c23a66}50%{box-shadow:0 0 0 8px #67c23a00}}.key-stats[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stat-item[data-v-3e8f9409]{background:#0000004d;border:1px solid rgba(255,255,255,.1);padding:16px;text-align:center;position:relative}.stat-item.primary[data-v-3e8f9409]{border-color:#0ff6;box-shadow:0 0 20px #00ffff1a}.stat-item.success[data-v-3e8f9409]{border-color:#67c23a66;box-shadow:0 0 20px #67c23a1a}.stat-item.warning[data-v-3e8f9409]{border-color:#e6a23c66;box-shadow:0 0 20px #e6a23c1a}.stat-label[data-v-3e8f9409]{font-size:12px;color:#64748b;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.stat-value[data-v-3e8f9409]{font-size:24px;font-weight:800}.stat-item.primary .stat-value[data-v-3e8f9409]{color:#0ff}.stat-item.success .stat-value[data-v-3e8f9409]{color:#67c23a}.stat-item.warning .stat-value[data-v-3e8f9409]{color:#e6a23c}.stat-unit[data-v-3e8f9409]{font-size:14px;opacity:.7}.detail-title[data-v-3e8f9409]{margin:0 0 16px;font-size:14px;color:#8b5cf6;letter-spacing:2px}.detail-grid[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-item[data-v-3e8f9409]{display:flex;justify-content:space-between;align-items:center;background:#0003;padding:12px 16px;border-left:3px solid #8b5cf6;gap:8px}.detail-label[data-v-3e8f9409]{font-size:13px;color:#94a3b8}.detail-value[data-v-3e8f9409]{font-size:16px;font-weight:700;color:#e0e7ff;text-align:right}.sci-fi-divider[data-v-3e8f9409]{border-color:#00ffff1a;margin:24px 0}.table-wrapper[data-v-3e8f9409]{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.sci-fi-table[data-v-3e8f9409]{background:#0003;min-width:500px}.sci-fi-table[data-v-3e8f9409] .el-table__header-wrapper{background:#00ffff0d}.sci-fi-table[data-v-3e8f9409] .el-table th{background:transparent;color:#0ff;border-color:#00ffff1a}.sci-fi-table[data-v-3e8f9409] .el-table td{border-color:#ffffff0d}.sci-fi-table[data-v-3e8f9409] .el-table--striped .el-table__body tr.el-table__row--striped{background:#0000001a}.empty-state[data-v-3e8f9409]{text-align:center;padding:60px 20px;position:relative}.scan-line[data-v-3e8f9409]{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(0,255,255,.5),transparent);animation:scanMove-3e8f9409 3s linear infinite}@keyframes scanMove-3e8f9409{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.empty-icon[data-v-3e8f9409]{font-size:48px;margin-bottom:16px}.empty-text[data-v-3e8f9409]{font-size:16px;color:#64748b;margin:0 0 8px;letter-spacing:1px}.empty-text.error[data-v-3e8f9409]{color:#f87171}.empty-hint[data-v-3e8f9409]{font-size:13px;color:#475569;margin:0 0 24px;line-height:1.5}.sci-fi-reset-btn[data-v-3e8f9409]{background:#8b5cf633;border:1px solid #8b5cf6;color:#8b5cf6}.sci-fi-reset-btn[data-v-3e8f9409]:hover{background:#8b5cf64d;color:#a78bfa}.sci-fi-form[data-v-3e8f9409] .el-form-item__label{color:#94a3b8;font-weight:600;padding-bottom:6px;line-height:1.4}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper{background:#0000004d;border:1px solid rgba(0,255,255,.2);box-shadow:none}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper:hover{border-color:#0ff6}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper.is-focus{border-color:#0ff;box-shadow:0 0 10px #0ff3}@media screen and (max-width: 600px){.rocket-calculator[data-v-3e8f9409]{padding:12px}.sci-fi-title[data-v-3e8f9409]{font-size:20px;letter-spacing:2px}.sci-fi-card[data-v-3e8f9409] .k-card__body{padding:16px}.key-stats[data-v-3e8f9409],.modules-grid[data-v-3e8f9409],.detail-grid[data-v-3e8f9409]{grid-template-columns:1fr}.distance-step-selector[data-v-3e8f9409]{grid-template-columns:repeat(3,1fr)}}.scrollbar[data-v-7f2607d9]{background:linear-gradient(135deg,#0a0e27,#1a1f3a,#0f172a);color:#e0e7ff}.todo-app[data-v-e2a5ab20]{min-height:100vh;position:relative;background:linear-gradient(135deg,#e0f4ff,#f0f8ff,#e8f5ff);padding:20px}.bg-pattern[data-v-e2a5ab20]{position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle,#b8d4e8 1px,transparent 1px);background-size:25px 25px;opacity:.5;pointer-events:none;z-index:0}.todo-container[data-v-e2a5ab20]{position:relative;z-index:1;max-width:1000px;margin:0 auto}.todo-header[data-v-e2a5ab20]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.todo-title[data-v-e2a5ab20]{font-family:Comic Sans MS,cursive,sans-serif;font-size:48px;font-weight:700;color:#fff;text-shadow:2px 2px 0 #333,-2px -2px 0 #333,2px -2px 0 #333,-2px 2px 0 #333,0px 2px 0 #333,0px -2px 0 #333,2px 0px 0 #333,-2px 0px 0 #333,3px 3px 0 #ffd700,4px 4px 0 #333;letter-spacing:5px;display:inline-flex;align-items:center;gap:10px;margin:0}.title-dot[data-v-e2a5ab20]{color:#ff6b9d;font-size:16px;animation:bounce-e2a5ab20 .6s infinite alternate}@keyframes bounce-e2a5ab20{0%{transform:translateY(0)}to{transform:translateY(-6px)}}.title-text[data-v-e2a5ab20]{background:linear-gradient(180deg,#fff,#f0f0f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.button-group[data-v-e2a5ab20]{display:flex;gap:10px}.cute-btn[data-v-e2a5ab20]{background:#fff;border:2px solid #333;color:#333;font-family:Comic Sans MS,cursive,sans-serif;border-radius:8px;box-shadow:3px 3px #333;transition:all .1s}.cute-btn[data-v-e2a5ab20]:hover{transform:translate(1px,1px);box-shadow:2px 2px #333}.cute-btn[data-v-e2a5ab20]:active{transform:translate(2px,2px);box-shadow:1px 1px #333}.cute-btn.primary[data-v-e2a5ab20]{background:linear-gradient(135deg,#ffb6c1,pink)}.todo-stats[data-v-e2a5ab20]{display:flex;gap:20px;margin-bottom:15px;padding:8px 15px;background:#fff;border:2px solid #333;border-radius:10px;box-shadow:4px 4px #333}.search-filter-section[data-v-e2a5ab20]{display:flex;gap:15px;margin-bottom:20px;align-items:center;flex-wrap:wrap}.search-input[data-v-e2a5ab20]{flex:1;min-width:250px}.filter-buttons[data-v-e2a5ab20]{display:flex;gap:10px}.filter-btn[data-v-e2a5ab20]{background:#fff;border:2px solid #333;color:#333;font-family:Comic Sans MS,cursive,sans-serif;padding:8px 20px;border-radius:8px;box-shadow:3px 3px #333;cursor:pointer;transition:all .1s}.filter-btn[data-v-e2a5ab20]:hover{transform:translate(1px,1px);box-shadow:2px 2px #333}.filter-btn[data-v-e2a5ab20]:active{transform:translate(2px,2px);box-shadow:1px 1px #333}.filter-btn.active[data-v-e2a5ab20]{background:linear-gradient(135deg,#87ceeb,#98d8c8)}.todo-table-card[data-v-e2a5ab20]{background:#fff;border:3px solid #333;border-radius:15px;box-shadow:8px 8px #333;overflow:hidden}.cute-table[data-v-e2a5ab20]{font-family:Comic Sans MS,cursive,sans-serif}.cute-table[data-v-e2a5ab20] .el-table__header th{background:linear-gradient(135deg,#87ceeb,#98d8c8);color:#333;font-weight:700}.completed-text[data-v-e2a5ab20]{text-decoration:line-through;color:#909399}.cute-tag[data-v-e2a5ab20]{font-family:Comic Sans MS,cursive,sans-serif;border:2px solid #333}[data-v-e2a5ab20] .el-dialog{border:3px solid #333;border-radius:15px;box-shadow:8px 8px #333}[data-v-e2a5ab20] .el-dialog__header{background:linear-gradient(135deg,#87ceeb,#98d8c8);border-bottom:3px solid #333;margin:0;padding:15px 20px}[data-v-e2a5ab20] .el-dialog__header .el-dialog__title{font-family:Comic Sans MS,cursive,sans-serif;font-weight:700;color:#333}.cute-input[data-v-e2a5ab20] .el-input__wrapper{border:2px solid #333;border-radius:8px;box-shadow:none}.cute-checkbox[data-v-e2a5ab20]{font-family:Comic Sans MS,cursive,sans-serif;color:#333}.cute-checkbox[data-v-e2a5ab20] .el-checkbox__input .el-checkbox__inner{border:2px solid #333;border-radius:4px;box-shadow:2px 2px #333}.cute-checkbox[data-v-e2a5ab20] .el-checkbox__input .el-checkbox__inner:hover{transform:translate(1px,1px);box-shadow:1px 1px #333}.cute-checkbox[data-v-e2a5ab20] .el-checkbox__input.is-checked .el-checkbox__inner{background:linear-gradient(135deg,#87ceeb,#98d8c8);border-color:#333}[data-v-e2a5ab20] .el-statistic__head{color:inherit;font-family:Comic Sans MS,cursive,sans-serif;font-size:14px}[data-v-e2a5ab20] .el-statistic__content{color:inherit;font-family:Comic Sans MS,cursive,sans-serif;font-size:20px}.pagination-section[data-v-e2a5ab20]{padding:20px;display:flex;justify-content:center;border-top:2px solid #333;background:linear-gradient(135deg,#f5f5f5,#fff)}[data-v-e2a5ab20] .el-pagination{font-family:Comic Sans MS,cursive,sans-serif}[data-v-e2a5ab20] .el-pagination button,[data-v-e2a5ab20] .el-pagination li{border:2px solid #333;border-radius:8px;box-shadow:2px 2px #333;transition:all .1s}[data-v-e2a5ab20] .el-pagination button:hover,[data-v-e2a5ab20] .el-pagination li:hover{transform:translate(1px,1px);box-shadow:1px 1px #333}[data-v-e2a5ab20] .el-pagination button.is-active,[data-v-e2a5ab20] .el-pagination li.is-active{background:linear-gradient(135deg,#87ceeb,#98d8c8);color:#333;font-weight:700}[data-v-e2a5ab20] .el-pagination .el-pager li{border-radius:8px}[data-v-e2a5ab20] .el-pagination .el-pagination__sizes .el-select .el-input__wrapper,[data-v-e2a5ab20] .el-pagination .el-pagination__jump .el-select .el-input__wrapper,[data-v-e2a5ab20] .el-pagination .el-pagination__sizes .el-input__wrapper,[data-v-e2a5ab20] .el-pagination .el-pagination__jump .el-input__wrapper{border:2px solid #333;border-radius:8px;box-shadow:2px 2px #333}
1
+ .filter-container[data-v-62639236]{background:#fff;padding:16px;margin-bottom:12px;border-radius:4px;box-shadow:0 2px 4px #0000001a}.log-tabs[data-v-62639236]{margin-bottom:16px}.filter-row[data-v-62639236]{display:flex;gap:12px;align-items:center}.filter-input[data-v-62639236]{flex:1}.button-group[data-v-62639236]{display:flex;gap:8px}.log-container[data-v-62639236]{width:100%;height:calc(100vh - 220px);overflow-y:auto;padding:12px;font-family:monospace;background:#1e1e1e;color:#d4d4d4;border-radius:4px}.log-line[data-v-62639236]{line-height:1.5;font-size:13px}pre[data-v-62639236]{margin:0;font-family:inherit;white-space:pre-wrap;word-break:break-all}.log-error[data-v-62639236]{color:#f44747}.log-warn[data-v-62639236]{color:#dcdcaa}.log-info[data-v-62639236]{color:#4fc1ff}.empty-state[data-v-62639236]{display:flex;justify-content:center;align-items:center;height:100%;color:gray;font-size:14px}[data-v-3e8f9409]{box-sizing:border-box}.rocket-calculator[data-v-3e8f9409]{max-width:800px;margin:0 auto;padding:20px;box-sizing:border-box;position:relative;min-height:100vh;overflow-x:hidden}.sci-fi-bg[data-v-3e8f9409]{background:linear-gradient(135deg,#0a0e27,#1a1f3a,#0f172a);color:#e0e7ff}.grid-overlay[data-v-3e8f9409]{position:fixed;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(0,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,255,255,.03) 1px,transparent 1px);background-size:40px 40px;pointer-events:none;z-index:0}.sci-fi-card[data-v-3e8f9409]{background:#0f172af2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(0,255,255,.2);box-shadow:0 0 20px #00ffff1a,inset 0 0 20px #00000080;position:relative;overflow:visible;z-index:1}.sci-fi-card[data-v-3e8f9409] .k-card__body{padding:24px}.card-header-line[data-v-3e8f9409]{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#00ffff,#8b5cf6,transparent);animation:lineGlow-3e8f9409 3s ease-in-out infinite;z-index:1}@keyframes lineGlow-3e8f9409{0%,to{opacity:.5}50%{opacity:1}}.header-card[data-v-3e8f9409]{margin-bottom:24px;text-align:center;position:relative;z-index:10;margin-top:8px}.header-glow[data-v-3e8f9409]{position:absolute;top:-50%;left:50%;transform:translate(-50%);width:200%;height:100%;background:radial-gradient(ellipse,rgba(139,92,246,.15) 0%,transparent 70%);pointer-events:none;z-index:-1}.sci-fi-title[data-v-3e8f9409]{margin:0 0 8px;font-size:28px;font-weight:800;letter-spacing:4px;color:#0ff;background:linear-gradient(90deg,#0ff,#8b5cf6,#0ff);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:titleShine-3e8f9409 4s linear infinite;position:relative;z-index:2;text-shadow:0 0 30px rgba(0,255,255,.3);line-height:1.4}@keyframes titleShine-3e8f9409{0%{background-position:0% center}to{background-position:200% center}}.sci-fi-subtitle[data-v-3e8f9409]{margin:0;color:#64748b;font-size:13px;letter-spacing:2px;text-transform:uppercase;position:relative;z-index:2;line-height:1.5}.content-layout[data-v-3e8f9409]{display:flex;flex-direction:column;gap:24px;position:relative;z-index:1}.config-section[data-v-3e8f9409]{margin-bottom:20px;position:relative;z-index:1}.section-title[data-v-3e8f9409]{margin:0 0 20px;font-size:14px;color:#0ff;letter-spacing:2px;font-weight:600}.distance-control[data-v-3e8f9409]{width:100%}.distance-step-selector[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:16px}.step-btn[data-v-3e8f9409]{margin:0;background:#0000004d;border:1px solid rgba(0,255,255,.2);color:#94a3b8;padding:8px 4px;font-size:12px;font-weight:600;transition:all .2s ease;white-space:nowrap}.step-btn[data-v-3e8f9409]:hover{border-color:#00ffff80;color:#0ff;transform:translateY(-1px)}.step-btn.active[data-v-3e8f9409]{background:#00ffff26;border-color:#0ff;color:#0ff;box-shadow:0 0 15px #00ffff4d}.distance-input-wrapper[data-v-3e8f9409]{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background:#0000004d;border:1px solid rgba(139,92,246,.3);border-radius:4px}.distance-label[data-v-3e8f9409]{color:#64748b;font-size:13px}.distance-value[data-v-3e8f9409]{font-size:20px;font-weight:800;color:#8b5cf6}.unit[data-v-3e8f9409]{color:#8b5cf6;font-weight:600;font-size:14px}.modules-grid[data-v-3e8f9409]{display:grid;grid-template-columns:1fr 1fr;gap:12px}.module-item[data-v-3e8f9409]{background:#00ffff0d;border:1px solid rgba(0,255,255,.1);padding:12px;border-radius:4px;transition:all .3s ease;display:flex;flex-direction:column;gap:8px}.module-item[data-v-3e8f9409]:hover{border-color:#00ffff4d;background:#00ffff14}.module-name[data-v-3e8f9409]{font-size:13px;color:#94a3b8}.module-input[data-v-3e8f9409]{width:100%}.module-input[data-v-3e8f9409] .el-input__wrapper{background:#0000004d;border:1px solid rgba(0,255,255,.2);box-shadow:none;padding:4px 6px}.module-input[data-v-3e8f9409] .el-input__inner{text-align:center;color:#0ff;font-weight:700;font-size:16px}.module-input[data-v-3e8f9409] .el-input-number__decrease,.module-input[data-v-3e8f9409] .el-input-number__increase{background:#0ff3;color:#0ff;border-color:#00ffff4d;font-weight:800;font-size:16px;transition:all .2s ease}.module-input[data-v-3e8f9409] .el-input-number__decrease:hover,.module-input[data-v-3e8f9409] .el-input-number__increase:hover{background:#0ff6;color:#fff}.module-input[data-v-3e8f9409] .el-input-number__decrease.is-disabled,.module-input[data-v-3e8f9409] .el-input-number__increase.is-disabled{background:#0003;color:#475569;border-color:#ffffff1a}.calculate-btn-wrapper[data-v-3e8f9409]{margin-top:24px;margin-bottom:0}.sci-fi-calculate-btn[data-v-3e8f9409]{width:100%;height:50px;background:linear-gradient(135deg,#0ff,#8b5cf6);border:none;color:#0a0e27;font-weight:800;font-size:16px;letter-spacing:2px;position:relative;overflow:hidden;transition:all .3s ease}.sci-fi-calculate-btn[data-v-3e8f9409]:hover{transform:translateY(-2px);box-shadow:0 10px 30px #00ffff4d}.btn-text[data-v-3e8f9409]{position:relative;z-index:1}.btn-glow[data-v-3e8f9409]{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:btnScan-3e8f9409 2s ease-in-out infinite}@keyframes btnScan-3e8f9409{0%{left:-100%}to{left:100%}}.sci-fi-radio-group[data-v-3e8f9409]{width:100%;display:flex}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button{flex:1}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__inner{width:100%;background:#0000004d;border:1px solid rgba(0,255,255,.2);color:#94a3b8;font-weight:600;padding:12px 10px;transition:all .2s ease}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__inner:hover{color:#0ff;border-color:#0ff6}.sci-fi-radio-group[data-v-3e8f9409] .el-radio-button__orig-radio:checked+.el-radio-button__inner{background:#00ffff26;border-color:#0ff;color:#0ff;box-shadow:0 0 15px #0ff3}.oxidizer-hint[data-v-3e8f9409]{display:flex;justify-content:space-around;margin-top:8px}.hint-item[data-v-3e8f9409]{font-size:12px;color:#64748b;transition:all .2s ease}.hint-item.active[data-v-3e8f9409]{color:#0ff;font-weight:600}.divider-line[data-v-3e8f9409]{height:1px;background:linear-gradient(90deg,transparent,rgba(0,255,255,.3),transparent);margin:24px 0}.result-header[data-v-3e8f9409]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:8px}.result-title[data-v-3e8f9409]{margin:0;font-size:18px;color:#0ff;letter-spacing:2px}.result-status[data-v-3e8f9409]{display:flex;align-items:center;gap:8px;font-size:12px;color:#67c23a;letter-spacing:1px}.status-dot[data-v-3e8f9409]{width:8px;height:8px;background:#67c23a;border-radius:50%;animation:statusPulse-3e8f9409 2s ease-in-out infinite}@keyframes statusPulse-3e8f9409{0%,to{box-shadow:0 0 #67c23a66}50%{box-shadow:0 0 0 8px #67c23a00}}.key-stats[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stat-item[data-v-3e8f9409]{background:#0000004d;border:1px solid rgba(255,255,255,.1);padding:16px;text-align:center;position:relative}.stat-item.primary[data-v-3e8f9409]{border-color:#0ff6;box-shadow:0 0 20px #00ffff1a}.stat-item.success[data-v-3e8f9409]{border-color:#67c23a66;box-shadow:0 0 20px #67c23a1a}.stat-item.warning[data-v-3e8f9409]{border-color:#e6a23c66;box-shadow:0 0 20px #e6a23c1a}.stat-label[data-v-3e8f9409]{font-size:12px;color:#64748b;margin-bottom:8px;text-transform:uppercase;letter-spacing:1px}.stat-value[data-v-3e8f9409]{font-size:24px;font-weight:800}.stat-item.primary .stat-value[data-v-3e8f9409]{color:#0ff}.stat-item.success .stat-value[data-v-3e8f9409]{color:#67c23a}.stat-item.warning .stat-value[data-v-3e8f9409]{color:#e6a23c}.stat-unit[data-v-3e8f9409]{font-size:14px;opacity:.7}.detail-title[data-v-3e8f9409]{margin:0 0 16px;font-size:14px;color:#8b5cf6;letter-spacing:2px}.detail-grid[data-v-3e8f9409]{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.detail-item[data-v-3e8f9409]{display:flex;justify-content:space-between;align-items:center;background:#0003;padding:12px 16px;border-left:3px solid #8b5cf6;gap:8px}.detail-label[data-v-3e8f9409]{font-size:13px;color:#94a3b8}.detail-value[data-v-3e8f9409]{font-size:16px;font-weight:700;color:#e0e7ff;text-align:right}.sci-fi-divider[data-v-3e8f9409]{border-color:#00ffff1a;margin:24px 0}.table-wrapper[data-v-3e8f9409]{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.sci-fi-table[data-v-3e8f9409]{background:#0003;min-width:500px}.sci-fi-table[data-v-3e8f9409] .el-table__header-wrapper{background:#00ffff0d}.sci-fi-table[data-v-3e8f9409] .el-table th{background:transparent;color:#0ff;border-color:#00ffff1a}.sci-fi-table[data-v-3e8f9409] .el-table td{border-color:#ffffff0d}.sci-fi-table[data-v-3e8f9409] .el-table--striped .el-table__body tr.el-table__row--striped{background:#0000001a}.empty-state[data-v-3e8f9409]{text-align:center;padding:60px 20px;position:relative}.scan-line[data-v-3e8f9409]{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,rgba(0,255,255,.5),transparent);animation:scanMove-3e8f9409 3s linear infinite}@keyframes scanMove-3e8f9409{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}to{top:100%;opacity:0}}.empty-icon[data-v-3e8f9409]{font-size:48px;margin-bottom:16px}.empty-text[data-v-3e8f9409]{font-size:16px;color:#64748b;margin:0 0 8px;letter-spacing:1px}.empty-text.error[data-v-3e8f9409]{color:#f87171}.empty-hint[data-v-3e8f9409]{font-size:13px;color:#475569;margin:0 0 24px;line-height:1.5}.sci-fi-reset-btn[data-v-3e8f9409]{background:#8b5cf633;border:1px solid #8b5cf6;color:#8b5cf6}.sci-fi-reset-btn[data-v-3e8f9409]:hover{background:#8b5cf64d;color:#a78bfa}.sci-fi-form[data-v-3e8f9409] .el-form-item__label{color:#94a3b8;font-weight:600;padding-bottom:6px;line-height:1.4}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper{background:#0000004d;border:1px solid rgba(0,255,255,.2);box-shadow:none}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper:hover{border-color:#0ff6}.sci-fi-select[data-v-3e8f9409] .el-input__wrapper.is-focus{border-color:#0ff;box-shadow:0 0 10px #0ff3}@media screen and (max-width: 600px){.rocket-calculator[data-v-3e8f9409]{padding:12px}.sci-fi-title[data-v-3e8f9409]{font-size:20px;letter-spacing:2px}.sci-fi-card[data-v-3e8f9409] .k-card__body{padding:16px}.key-stats[data-v-3e8f9409],.modules-grid[data-v-3e8f9409],.detail-grid[data-v-3e8f9409]{grid-template-columns:1fr}.distance-step-selector[data-v-3e8f9409]{grid-template-columns:repeat(3,1fr)}}.scrollbar[data-v-7f2607d9]{background:linear-gradient(135deg,#0a0e27,#1a1f3a,#0f172a);color:#e0e7ff}.todo-app[data-v-1d6d47ce]{min-height:100vh;position:relative;background:linear-gradient(135deg,#e0f4ff,#f0f8ff,#e8f5ff);padding:20px}.bg-pattern[data-v-1d6d47ce]{position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle,#b8d4e8 1px,transparent 1px);background-size:25px 25px;opacity:.5;pointer-events:none;z-index:0}.todo-container[data-v-1d6d47ce]{position:relative;z-index:1;max-width:1000px;margin:0 auto}.todo-header[data-v-1d6d47ce]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.todo-title[data-v-1d6d47ce]{font-family:Comic Sans MS,cursive,sans-serif;font-size:48px;font-weight:700;color:#fff;text-shadow:2px 2px 0 #333,-2px -2px 0 #333,2px -2px 0 #333,-2px 2px 0 #333,0px 2px 0 #333,0px -2px 0 #333,2px 0px 0 #333,-2px 0px 0 #333,3px 3px 0 #ffd700,4px 4px 0 #333;letter-spacing:5px;display:inline-flex;align-items:center;gap:10px;margin:0}.title-dot[data-v-1d6d47ce]{color:#ff6b9d;font-size:16px;animation:bounce-1d6d47ce .6s infinite alternate}@keyframes bounce-1d6d47ce{0%{transform:translateY(0)}to{transform:translateY(-6px)}}.title-text[data-v-1d6d47ce]{background:linear-gradient(180deg,#fff,#f0f0f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.button-group[data-v-1d6d47ce]{display:flex;gap:10px}.cute-btn[data-v-1d6d47ce]{background:#fff;border:2px solid #333;color:#333;font-family:Comic Sans MS,cursive,sans-serif;border-radius:8px;box-shadow:3px 3px #333;transition:all .1s}.cute-btn[data-v-1d6d47ce]:hover{transform:translate(1px,1px);box-shadow:2px 2px #333}.cute-btn[data-v-1d6d47ce]:active{transform:translate(2px,2px);box-shadow:1px 1px #333}.cute-btn.primary[data-v-1d6d47ce]{background:linear-gradient(135deg,#ffb6c1,pink)}.todo-stats[data-v-1d6d47ce]{display:flex;gap:20px;margin-bottom:15px;padding:8px 15px;background:#fff;border:2px solid #333;border-radius:10px;box-shadow:4px 4px #333}.search-filter-section[data-v-1d6d47ce]{display:flex;gap:15px;margin-bottom:20px;align-items:center;flex-wrap:wrap}.search-input[data-v-1d6d47ce]{flex:1;min-width:250px}.filter-buttons[data-v-1d6d47ce]{display:flex;gap:10px}.filter-btn[data-v-1d6d47ce]{background:#fff;border:2px solid #333;color:#333;font-family:Comic Sans MS,cursive,sans-serif;padding:8px 20px;border-radius:8px;box-shadow:3px 3px #333;cursor:pointer;transition:all .1s}.filter-btn[data-v-1d6d47ce]:hover{transform:translate(1px,1px);box-shadow:2px 2px #333}.filter-btn[data-v-1d6d47ce]:active{transform:translate(2px,2px);box-shadow:1px 1px #333}.filter-btn.active[data-v-1d6d47ce]{background:linear-gradient(135deg,#87ceeb,#98d8c8)}.todo-table-card[data-v-1d6d47ce]{background:#fff;border:3px solid #333;border-radius:15px;box-shadow:8px 8px #333;overflow:hidden}.cute-table[data-v-1d6d47ce]{font-family:Comic Sans MS,cursive,sans-serif}.cute-table[data-v-1d6d47ce] .el-table__header th{background:linear-gradient(135deg,#87ceeb,#98d8c8);color:#333;font-weight:700}.completed-text[data-v-1d6d47ce]{text-decoration:line-through;color:#909399}.cute-tag[data-v-1d6d47ce]{font-family:Comic Sans MS,cursive,sans-serif;border:2px solid #333}[data-v-1d6d47ce] .el-dialog{border:3px solid #333;border-radius:15px;box-shadow:8px 8px #333}[data-v-1d6d47ce] .el-dialog__header{background:linear-gradient(135deg,#87ceeb,#98d8c8);border-bottom:3px solid #333;margin:0;padding:15px 20px}[data-v-1d6d47ce] .el-dialog__header .el-dialog__title{font-family:Comic Sans MS,cursive,sans-serif;font-weight:700;color:#333}.cute-input[data-v-1d6d47ce] .el-input__wrapper{border:2px solid #333;border-radius:8px;box-shadow:none}.cute-checkbox[data-v-1d6d47ce]{font-family:Comic Sans MS,cursive,sans-serif;color:#333}.cute-checkbox[data-v-1d6d47ce] .el-checkbox__input .el-checkbox__inner{border:2px solid #333;border-radius:4px;box-shadow:2px 2px #333}.cute-checkbox[data-v-1d6d47ce] .el-checkbox__input .el-checkbox__inner:hover{transform:translate(1px,1px);box-shadow:1px 1px #333}.cute-checkbox[data-v-1d6d47ce] .el-checkbox__input.is-checked .el-checkbox__inner{background:linear-gradient(135deg,#87ceeb,#98d8c8);border-color:#333}[data-v-1d6d47ce] .el-statistic__head{color:inherit;font-family:Comic Sans MS,cursive,sans-serif;font-size:14px}[data-v-1d6d47ce] .el-statistic__content{color:inherit;font-family:Comic Sans MS,cursive,sans-serif;font-size:20px}.pagination-section[data-v-1d6d47ce]{padding:20px;display:flex;justify-content:center;border-top:2px solid #333;background:linear-gradient(135deg,#f5f5f5,#fff)}[data-v-1d6d47ce] .el-pagination{font-family:Comic Sans MS,cursive,sans-serif}[data-v-1d6d47ce] .el-pagination button,[data-v-1d6d47ce] .el-pagination li{border:2px solid #333;border-radius:8px;box-shadow:2px 2px #333;transition:all .1s}[data-v-1d6d47ce] .el-pagination button:hover,[data-v-1d6d47ce] .el-pagination li:hover{transform:translate(1px,1px);box-shadow:1px 1px #333}[data-v-1d6d47ce] .el-pagination button.is-active,[data-v-1d6d47ce] .el-pagination li.is-active{background:linear-gradient(135deg,#87ceeb,#98d8c8);color:#333;font-weight:700}[data-v-1d6d47ce] .el-pagination .el-pager li{border-radius:8px}[data-v-1d6d47ce] .el-pagination .el-pagination__sizes .el-select .el-input__wrapper,[data-v-1d6d47ce] .el-pagination .el-pagination__jump .el-select .el-input__wrapper,[data-v-1d6d47ce] .el-pagination .el-pagination__sizes .el-input__wrapper,[data-v-1d6d47ce] .el-pagination .el-pagination__jump .el-input__wrapper{border:2px solid #333;border-radius:8px;box-shadow:2px 2px #333}@media (max-width: 768px){.todo-app[data-v-1d6d47ce]{padding:10px}.todo-header[data-v-1d6d47ce]{flex-direction:column;gap:15px;align-items:stretch}.todo-title[data-v-1d6d47ce]{font-size:32px;letter-spacing:2px;justify-content:center}.title-dot[data-v-1d6d47ce]{font-size:12px}.button-group[data-v-1d6d47ce]{justify-content:center;flex-wrap:wrap}.cute-btn[data-v-1d6d47ce]{font-size:14px;padding:8px 12px}.todo-stats[data-v-1d6d47ce]{flex-wrap:wrap;justify-content:center;gap:10px}[data-v-1d6d47ce] .el-statistic{text-align:center}[data-v-1d6d47ce] .el-statistic__content{font-size:18px}.search-filter-section[data-v-1d6d47ce]{flex-direction:column;align-items:stretch}.search-input[data-v-1d6d47ce]{min-width:auto;width:100%}.filter-buttons[data-v-1d6d47ce]{justify-content:center;flex-wrap:wrap}.filter-btn[data-v-1d6d47ce]{padding:6px 14px;font-size:14px}.todo-table-card[data-v-1d6d47ce]{border-radius:10px;box-shadow:4px 4px #333}[data-v-1d6d47ce] .el-dialog{width:95%!important;margin:5vh auto!important;max-width:400px}[data-v-1d6d47ce] .el-dialog__header{padding:12px 16px}[data-v-1d6d47ce] .el-dialog__body{padding:15px}.pagination-section[data-v-1d6d47ce]{padding:15px 10px}[data-v-1d6d47ce] .el-pagination{flex-wrap:wrap;justify-content:center;gap:8px}[data-v-1d6d47ce] .el-pagination .el-pagination__sizes,[data-v-1d6d47ce] .el-pagination .el-pagination__jump{margin:0}[data-v-1d6d47ce] .el-pagination button,[data-v-1d6d47ce] .el-pagination li{min-width:32px;height:32px;line-height:28px;padding:0 8px}}@media (max-width: 480px){.todo-title[data-v-1d6d47ce]{font-size:24px;letter-spacing:1px}.title-dot[data-v-1d6d47ce]{font-size:10px}.cute-btn[data-v-1d6d47ce]{font-size:13px;padding:7px 10px}.filter-btn[data-v-1d6d47ce]{padding:5px 12px;font-size:13px}[data-v-1d6d47ce] .el-dialog{width:92%!important}}
package/lib/index.js CHANGED
@@ -48,6 +48,7 @@ var import_pinyin_pro = require("pinyin-pro");
48
48
  var CROSS_SITE_LINK_REGEX = /\[\[(en|ru|pt-br):[^\]]*\]\]/g;
49
49
  var DEV_TEXT_REGEX = /(?<!\w)Dev:/g;
50
50
  var MODULE_NAMESPACE_PREFIX = "Module:Dev/";
51
+ var logger = new import_koishi.Logger("oni-sync");
51
52
  function clean_page_text(text) {
52
53
  const textWithoutCrossLink = text.replace(CROSS_SITE_LINK_REGEX, "");
53
54
  const textWithReplacedDev = textWithoutCrossLink.replace(
@@ -59,12 +60,59 @@ function clean_page_text(text) {
59
60
  __name(clean_page_text, "clean_page_text");
60
61
  async function getAndProcessPageContent(site, pageTitle) {
61
62
  try {
62
- const res = await site.read(pageTitle);
63
- const rawText = res.revisions[0]?.content || "";
63
+ let rawText = "";
64
+ try {
65
+ const res = await site.read(pageTitle);
66
+ if (res) {
67
+ if (typeof res === "string") {
68
+ rawText = res;
69
+ } else if (res.revisions && res.revisions.length > 0 && res.revisions[0].content) {
70
+ rawText = res.revisions[0].content;
71
+ } else if (res.content) {
72
+ rawText = res.content;
73
+ } else if (res.wikitext) {
74
+ rawText = res.wikitext;
75
+ } else if (res.query && res.query.pages) {
76
+ const pageIds = Object.keys(res.query.pages);
77
+ if (pageIds.length > 0) {
78
+ const page = res.query.pages[pageIds[0]];
79
+ if (page.revisions && page.revisions.length > 0) {
80
+ rawText = page.revisions[0].content || "";
81
+ }
82
+ }
83
+ }
84
+ }
85
+ } catch (readErr) {
86
+ try {
87
+ const queryRes = await site.query({
88
+ action: "query",
89
+ titles: pageTitle,
90
+ prop: "revisions",
91
+ rvprop: "content",
92
+ rvlimit: 1
93
+ });
94
+ if (queryRes && queryRes.query && queryRes.query.pages) {
95
+ const pageIds = Object.keys(queryRes.query.pages);
96
+ if (pageIds.length > 0) {
97
+ const page = queryRes.query.pages[pageIds[0]];
98
+ if (page.revisions && page.revisions.length > 0) {
99
+ rawText = page.revisions[0].content || "";
100
+ }
101
+ }
102
+ }
103
+ } catch (backupErr) {
104
+ throw readErr;
105
+ }
106
+ }
64
107
  const processedText = clean_page_text(rawText);
65
108
  return processedText.trimEnd();
66
109
  } catch (err) {
67
- throw new Error(`[${pageTitle}] 内容获取失败: ${err}`);
110
+ const errMsg = err instanceof Error ? err.message : String(err);
111
+ logger.error(
112
+ `[getAndProcessPageContent] [${pageTitle}] 内容获取失败:`,
113
+ errMsg
114
+ );
115
+ throw new Error(`[${pageTitle}] 内容获取失败: ${errMsg}`);
68
116
  }
69
117
  }
70
118
  __name(getAndProcessPageContent, "getAndProcessPageContent");
@@ -94,7 +142,6 @@ function getErrorMessage(error) {
94
142
  return String(error);
95
143
  }
96
144
  __name(getErrorMessage, "getErrorMessage");
97
- var logger = new import_koishi.Logger("oni-sync");
98
145
 
99
146
  // src/services/wikiBotService.ts
100
147
  var WikiBotService = class _WikiBotService extends import_koishi2.Service {
@@ -1687,23 +1734,248 @@ var TodoList = class {
1687
1734
  );
1688
1735
  this.registerCommands(ctx);
1689
1736
  this.registerConsoleEvents(ctx);
1737
+ this.registerCronJobs(ctx);
1690
1738
  }
1691
1739
  static {
1692
1740
  __name(this, "TodoList");
1693
1741
  }
1694
- static inject = ["database", "console"];
1742
+ static inject = ["database", "console", "wikiBot", "cron"];
1695
1743
  log;
1744
+ registerCronJobs(ctx) {
1745
+ ctx.cron("0 0 * * 1", async () => {
1746
+ if (!this.ctx.wikiBot.isReady) {
1747
+ this.log.warn("定时任务:WikiBot 服务未就绪,跳过同步模块");
1748
+ return;
1749
+ }
1750
+ this.log.info("定时任务:每周一同步 wiki.gg 模块到 TodoList");
1751
+ try {
1752
+ const { added, updated } = await this.syncModulesToTodos();
1753
+ this.log.info(`定时任务完成:新增 ${added} 个,更新 ${updated} 个`);
1754
+ } catch (err) {
1755
+ this.log.error("定时任务失败:同步模块", err);
1756
+ }
1757
+ });
1758
+ ctx.cron("0 0 * * 2", async () => {
1759
+ if (!this.ctx.wikiBot.isReady) {
1760
+ this.log.warn("定时任务:WikiBot 服务未就绪,跳过检查同步状态");
1761
+ return;
1762
+ }
1763
+ this.log.info("定时任务:每周二检查模块同步状态");
1764
+ try {
1765
+ const { checked, synced } = await this.checkSyncStatus();
1766
+ this.log.info(`定时任务完成:检查 ${checked} 个,已同步 ${synced} 个`);
1767
+ } catch (err) {
1768
+ this.log.error("定时任务失败:检查同步状态", err);
1769
+ }
1770
+ });
1771
+ }
1772
+ async getAllModulesFromGG() {
1773
+ const modules = [];
1774
+ let apcontinue;
1775
+ try {
1776
+ do {
1777
+ const params = {
1778
+ action: "query",
1779
+ format: "json",
1780
+ list: "allpages",
1781
+ indexpageids: 1,
1782
+ redirects: 1,
1783
+ formatversion: "2",
1784
+ apnamespace: "828",
1785
+ aplimit: "max"
1786
+ };
1787
+ if (apcontinue) {
1788
+ params.apcontinue = apcontinue;
1789
+ params.continue = "-||";
1790
+ }
1791
+ const res = await this.apiCallWithRetry(
1792
+ () => this.ctx.wikiBot.ggbot.query(params)
1793
+ );
1794
+ if (res.query?.allpages) {
1795
+ modules.push(...res.query.allpages);
1796
+ }
1797
+ apcontinue = res.continue?.apcontinue;
1798
+ } while (apcontinue);
1799
+ this.log.info(`从 wiki.gg 获取到 ${modules.length} 个模块`);
1800
+ return modules;
1801
+ } catch (err) {
1802
+ this.log.error("从 wiki.gg 获取模块列表失败", err);
1803
+ throw err;
1804
+ }
1805
+ }
1806
+ sleep(ms) {
1807
+ return new Promise((resolve2) => setTimeout(resolve2, ms));
1808
+ }
1809
+ async apiCallWithRetry(apiCall, maxRetries = 3) {
1810
+ for (let i = 0; i < maxRetries; i++) {
1811
+ try {
1812
+ return await apiCall();
1813
+ } catch (err) {
1814
+ if (i === maxRetries - 1) {
1815
+ throw err;
1816
+ }
1817
+ this.log.warn(`API 调用失败,正在重试 (${i + 1}/${maxRetries})...`);
1818
+ await this.sleep(2e3);
1819
+ }
1820
+ }
1821
+ throw new Error("Max retries exceeded");
1822
+ }
1823
+ async getModuleRevisionFromGG(title) {
1824
+ try {
1825
+ await this.sleep(1e3);
1826
+ const res = await this.apiCallWithRetry(
1827
+ () => this.ctx.wikiBot.ggbot.query({
1828
+ action: "query",
1829
+ format: "json",
1830
+ prop: "revisions",
1831
+ titles: title,
1832
+ formatversion: "2",
1833
+ rvprop: "timestamp|user|comment",
1834
+ rvlimit: "1"
1835
+ })
1836
+ );
1837
+ if (res.query?.pages && res.query.pages.length > 0) {
1838
+ const page = res.query.pages[0];
1839
+ if (page.revisions && page.revisions.length > 0) {
1840
+ return {
1841
+ ...page,
1842
+ revision: page.revisions[0]
1843
+ };
1844
+ }
1845
+ }
1846
+ return null;
1847
+ } catch (err) {
1848
+ this.log.error(`从 wiki.gg 获取模块 ${title} 的修订信息失败`, err);
1849
+ return null;
1850
+ }
1851
+ }
1852
+ async getModuleRevisionFromBWiki(title) {
1853
+ try {
1854
+ await this.sleep(1e3);
1855
+ const res = await this.apiCallWithRetry(
1856
+ () => this.ctx.wikiBot.bwikibot.query({
1857
+ action: "query",
1858
+ format: "json",
1859
+ prop: "revisions",
1860
+ titles: title,
1861
+ formatversion: "2",
1862
+ rvprop: "timestamp|user|comment",
1863
+ rvlimit: "1"
1864
+ })
1865
+ );
1866
+ if (res.query?.pages && res.query.pages.length > 0) {
1867
+ const page = res.query.pages[0];
1868
+ if (page.revisions && page.revisions.length > 0) {
1869
+ return {
1870
+ ...page,
1871
+ revision: page.revisions[0]
1872
+ };
1873
+ }
1874
+ }
1875
+ return null;
1876
+ } catch (err) {
1877
+ this.log.error(`从 bwikia 获取模块 ${title} 的修订信息失败`, err);
1878
+ return null;
1879
+ }
1880
+ }
1881
+ async syncModulesToTodos() {
1882
+ if (!this.ctx.wikiBot.isReady) {
1883
+ this.log.warn("WikiBot 服务未就绪,无法同步模块");
1884
+ return { added: 0, updated: 0 };
1885
+ }
1886
+ const modules = await this.getAllModulesFromGG();
1887
+ const existingTodos = await this.ctx.database.get("onitodos", {});
1888
+ const existingTodoMap = new Map(existingTodos.map((t) => [t.title, t]));
1889
+ let added = 0;
1890
+ let updated = 0;
1891
+ for (const module2 of modules) {
1892
+ const moduleData = await this.getModuleRevisionFromGG(module2.title);
1893
+ if (!moduleData || !moduleData.revision) {
1894
+ continue;
1895
+ }
1896
+ const revision = moduleData.revision;
1897
+ const createdAt = new Date(revision.timestamp);
1898
+ const updatedAt = new Date(revision.timestamp);
1899
+ if (existingTodoMap.has(module2.title)) {
1900
+ const existingTodo = existingTodoMap.get(module2.title);
1901
+ await this.ctx.database.set(
1902
+ "onitodos",
1903
+ { id: existingTodo.id },
1904
+ {
1905
+ content: revision.comment || "",
1906
+ createdBy: revision.user,
1907
+ createdAt,
1908
+ updatedAt
1909
+ }
1910
+ );
1911
+ updated++;
1912
+ } else {
1913
+ await this.ctx.database.create("onitodos", {
1914
+ title: module2.title,
1915
+ content: revision.comment || "",
1916
+ completed: false,
1917
+ createdBy: revision.user,
1918
+ createdAt,
1919
+ updatedAt
1920
+ });
1921
+ added++;
1922
+ }
1923
+ }
1924
+ this.log.info(`同步模块到待办事项完成:新增 ${added},更新 ${updated}`);
1925
+ return { added, updated };
1926
+ }
1927
+ async checkSyncStatus() {
1928
+ if (!this.ctx.wikiBot.isReady) {
1929
+ this.log.warn("WikiBot 服务未就绪,无法检查同步状态");
1930
+ return { checked: 0, synced: 0 };
1931
+ }
1932
+ const todos = await this.ctx.database.get("onitodos", {});
1933
+ let checked = 0;
1934
+ let synced = 0;
1935
+ for (const todo of todos) {
1936
+ checked++;
1937
+ const ggRevision = await this.getModuleRevisionFromGG(todo.title);
1938
+ const bwikiRevision = await this.getModuleRevisionFromBWiki(todo.title);
1939
+ if (!ggRevision || !ggRevision.revision) {
1940
+ continue;
1941
+ }
1942
+ if (bwikiRevision && bwikiRevision.revision) {
1943
+ const ggTime = new Date(ggRevision.revision.timestamp).getTime();
1944
+ const bwikiTime = new Date(bwikiRevision.revision.timestamp).getTime();
1945
+ if (bwikiTime >= ggTime) {
1946
+ if (!todo.completed) {
1947
+ await this.ctx.database.set(
1948
+ "onitodos",
1949
+ { id: todo.id },
1950
+ { completed: true }
1951
+ );
1952
+ }
1953
+ synced++;
1954
+ } else {
1955
+ if (todo.completed) {
1956
+ await this.ctx.database.set(
1957
+ "onitodos",
1958
+ { id: todo.id },
1959
+ { completed: false }
1960
+ );
1961
+ }
1962
+ }
1963
+ }
1964
+ }
1965
+ this.log.info(`检查同步状态完成:检查 ${checked},已同步 ${synced}`);
1966
+ return { checked, synced };
1967
+ }
1696
1968
  getCreatedBy(session) {
1697
1969
  return session?.userId || "默认创建人";
1698
1970
  }
1699
1971
  registerCommands(ctx) {
1700
- ctx.command("todolist", "缺氧 TodoList", { authority: 1 }).alias("todo").action(async ({ session }) => {
1972
+ ctx.command("todolist", "缺氧 TodoList").alias("todo").action(async ({ session }) => {
1701
1973
  await session.execute("todo.list");
1702
1974
  });
1703
- ctx.command("todo.list", "查看 TodoList", { authority: 1 }).alias("todo.l").action(async ({ session }) => {
1975
+ ctx.command("todo.list", "查看 TodoList").alias("todo.l").action(async ({ session }) => {
1704
1976
  return "📋 请访问 https://klei.vip/onitodos 进行 TodoList 管理";
1705
1977
  });
1706
- ctx.command("todo.add <title>", "添加待办事项", { authority: 1 }).alias("todo.a").option("content", "-c <content>").option("createdBy", "-u <createdBy>").action(async ({ session, options }, title) => {
1978
+ ctx.command("todo.add <title>", "添加待办事项").alias("todo.a").option("content", "-c <content>").option("createdBy", "-u <createdBy>").action(async ({ session, options }, title) => {
1707
1979
  if (!title) {
1708
1980
  return "❌ 请提供标题!用法:todo.add <标题> [-c <内容>] [-u <创建人>]";
1709
1981
  }
@@ -1723,7 +1995,7 @@ var TodoList = class {
1723
1995
  return "❌ 添加待办事项失败,请查看日志";
1724
1996
  }
1725
1997
  });
1726
- ctx.command("todo.edit <id>", "编辑待办事项", { authority: 1 }).alias("todo.e").option("title", "-t <title>").option("content", "-c <content>").option("createdBy", "-u <createdBy>").action(async ({ session, options }, idStr) => {
1998
+ ctx.command("todo.edit <id>", "编辑待办事项").alias("todo.e").option("title", "-t <title>").option("content", "-c <content>").option("createdBy", "-u <createdBy>").action(async ({ session, options }, idStr) => {
1727
1999
  const id = Number(idStr);
1728
2000
  if (!id || isNaN(id)) {
1729
2001
  return "❌ 请提供有效的 ID!";
@@ -1749,7 +2021,7 @@ var TodoList = class {
1749
2021
  return "❌ 编辑待办事项失败,请查看日志";
1750
2022
  }
1751
2023
  });
1752
- ctx.command("todo.complete <id>", "标记待办事项为完成", { authority: 1 }).alias("todo.c").action(async ({ session }, idStr) => {
2024
+ ctx.command("todo.complete <id>", "标记待办事项为完成").alias("todo.c").action(async ({ session }, idStr) => {
1753
2025
  const id = Number(idStr);
1754
2026
  if (!id || isNaN(id)) {
1755
2027
  return "❌ 请提供有效的 ID!";
@@ -1771,7 +2043,7 @@ var TodoList = class {
1771
2043
  return "❌ 标记待办事项完成失败,请查看日志";
1772
2044
  }
1773
2045
  });
1774
- ctx.command("todo.uncomplete <id>", "标记待办事项为未完成", { authority: 1 }).alias("todo.u").action(async ({ session }, idStr) => {
2046
+ ctx.command("todo.uncomplete <id>", "标记待办事项为未完成").alias("todo.u").action(async ({ session }, idStr) => {
1775
2047
  const id = Number(idStr);
1776
2048
  if (!id || isNaN(id)) {
1777
2049
  return "❌ 请提供有效的 ID!";
@@ -1821,57 +2093,60 @@ var TodoList = class {
1821
2093
  return "❌ 清空 TodoList 失败,请查看日志";
1822
2094
  }
1823
2095
  });
2096
+ ctx.command("todo.syncmodules", "同步 wiki.gg 模块到 TodoList").action(async ({ session }) => {
2097
+ if (!this.ctx.wikiBot.isReady) {
2098
+ return "❌ WikiBot 服务未就绪,请检查登录配置或查看日志";
2099
+ }
2100
+ try {
2101
+ const { added, updated } = await this.syncModulesToTodos();
2102
+ return `✅ 同步模块完成!新增 ${added} 个,更新 ${updated} 个,请访问 https://klei.vip/onitodos 查看`;
2103
+ } catch (err) {
2104
+ this.log.error("同步模块失败", err);
2105
+ return "❌ 同步模块失败,请查看日志";
2106
+ }
2107
+ });
2108
+ ctx.command("todo.checksync", "检查模块同步状态").action(async ({ session }) => {
2109
+ if (!this.ctx.wikiBot.isReady) {
2110
+ return "❌ WikiBot 服务未就绪,请检查登录配置或查看日志";
2111
+ }
2112
+ try {
2113
+ const { checked, synced } = await this.checkSyncStatus();
2114
+ return `✅ 检查同步状态完成!检查 ${checked} 个,已同步 ${synced} 个,请访问 https://klei.vip/onitodos 查看`;
2115
+ } catch (err) {
2116
+ this.log.error("检查同步状态失败", err);
2117
+ return "❌ 检查同步状态失败,请查看日志";
2118
+ }
2119
+ });
1824
2120
  }
1825
2121
  registerConsoleEvents(ctx) {
1826
- ctx.console.addListener(
1827
- "onitodos/list",
1828
- async () => {
1829
- const todos = await ctx.database.get("onitodos", {});
1830
- return todos;
1831
- },
1832
- { authority: 1 }
1833
- );
1834
- ctx.console.addListener(
1835
- "onitodos/add",
1836
- async (data) => {
1837
- const todo = await ctx.database.create("onitodos", {
1838
- title: data.title,
1839
- content: data.content || "",
1840
- completed: false,
1841
- createdBy: data.createdBy || "默认创建人",
1842
- createdAt: /* @__PURE__ */ new Date(),
1843
- updatedAt: /* @__PURE__ */ new Date()
1844
- });
1845
- this.log.info(`控制台添加待办事项成功: ${data.title}`);
1846
- return todo;
1847
- },
1848
- { authority: 1 }
1849
- );
1850
- ctx.console.addListener(
1851
- "onitodos/update",
1852
- async (data) => {
1853
- const updateData = {
1854
- updatedAt: /* @__PURE__ */ new Date()
1855
- };
1856
- if (data.title !== void 0) updateData.title = data.title;
1857
- if (data.content !== void 0) updateData.content = data.content;
1858
- if (data.completed !== void 0) updateData.completed = data.completed;
1859
- if (data.createdBy !== void 0) updateData.createdBy = data.createdBy;
1860
- await ctx.database.set("onitodos", { id: data.id }, updateData);
1861
- this.log.info(`控制台更新待办事项成功: ID ${data.id}`);
1862
- return { success: true };
1863
- },
1864
- { authority: 1 }
1865
- );
1866
- ctx.console.addListener(
1867
- "onitodos/delete",
1868
- async (data) => {
1869
- await ctx.database.remove("onitodos", { id: data.id });
1870
- this.log.info(`控制台删除待办事项成功: ID ${data.id}`);
1871
- return { success: true };
1872
- },
1873
- { authority: 1 }
1874
- );
2122
+ ctx.console.addListener("onitodos/list", async () => {
2123
+ const todos = await ctx.database.get("onitodos", {});
2124
+ return todos;
2125
+ });
2126
+ ctx.console.addListener("onitodos/add", async (data) => {
2127
+ const todo = await ctx.database.create("onitodos", {
2128
+ title: data.title,
2129
+ content: data.content || "",
2130
+ completed: false,
2131
+ createdBy: data.createdBy || "默认创建人",
2132
+ createdAt: /* @__PURE__ */ new Date(),
2133
+ updatedAt: /* @__PURE__ */ new Date()
2134
+ });
2135
+ this.log.info(`控制台添加待办事项成功: ${data.title}`);
2136
+ return todo;
2137
+ });
2138
+ ctx.console.addListener("onitodos/update", async (data) => {
2139
+ const updateData = {
2140
+ updatedAt: /* @__PURE__ */ new Date()
2141
+ };
2142
+ if (data.title !== void 0) updateData.title = data.title;
2143
+ if (data.content !== void 0) updateData.content = data.content;
2144
+ if (data.completed !== void 0) updateData.completed = data.completed;
2145
+ if (data.createdBy !== void 0) updateData.createdBy = data.createdBy;
2146
+ await ctx.database.set("onitodos", { id: data.id }, updateData);
2147
+ this.log.info(`控制台更新待办事项成功: ID ${data.id}`);
2148
+ return { success: true };
2149
+ });
1875
2150
  }
1876
2151
  };
1877
2152
 
@@ -21,11 +21,6 @@ declare module "@koishijs/plugin-console" {
21
21
  }): Promise<{
22
22
  success: boolean;
23
23
  }>;
24
- "onitodos/delete"(data: {
25
- id: number;
26
- }): Promise<{
27
- success: boolean;
28
- }>;
29
24
  }
30
25
  }
31
26
  export interface OniTodoItem {
@@ -42,6 +37,14 @@ export declare class TodoList {
42
37
  static readonly inject: string[];
43
38
  log: Logger;
44
39
  constructor(ctx: Context);
40
+ private registerCronJobs;
41
+ private getAllModulesFromGG;
42
+ private sleep;
43
+ private apiCallWithRetry;
44
+ private getModuleRevisionFromGG;
45
+ private getModuleRevisionFromBWiki;
46
+ private syncModulesToTodos;
47
+ private checkSyncStatus;
45
48
  private getCreatedBy;
46
49
  private registerCommands;
47
50
  private registerConsoleEvents;
@@ -1,5 +1,6 @@
1
1
  import { Logger } from "koishi";
2
2
  import { Mwn } from "mwn";
3
+ declare const logger: Logger;
3
4
  /**
4
5
  * 获取并处理页面内容
5
6
  * @param site 机器人实例
@@ -17,5 +18,4 @@ declare function generatePinyinInfo(text: string): {
17
18
  pinyin_first: string;
18
19
  };
19
20
  declare function getErrorMessage(error: unknown): string;
20
- declare const logger: Logger;
21
- export { getAndProcessPageContent, generatePinyinInfo, logger, getErrorMessage };
21
+ export { getAndProcessPageContent, generatePinyinInfo, logger, getErrorMessage, };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "koishi-plugin-oni-sync-bot",
3
3
  "description": "缺氧Wiki站镜像点同步-测试",
4
- "version": "0.8.0",
4
+ "version": "0.8.2",
5
5
  "main": "lib/index.js",
6
6
  "typings": "lib/index.d.ts",
7
7
  "files": [
package/readme.md CHANGED
@@ -3,19 +3,32 @@
3
3
  [![npm](https://img.shields.io/npm/v/koishi-plugin-oni-sync-bot?style=flat-square)](https://www.npmjs.com/package/koishi-plugin-oni-sync-bot)
4
4
  [![Koishi](https://img.shields.io/badge/koishi-plugin-42b983?style=flat-square)](https://koishi.chat)
5
5
 
6
- 缺氧 Wiki 站镜像点同步插件 - 自动同步两个缺氧 Wiki 站点的内容。
6
+ 缺氧 Wiki 站镜像点同步插件 - 自动同步两个缺氧 Wiki 站点的内容,同时提供 TodoList 管理功能。
7
7
 
8
8
  ## 功能特性
9
9
 
10
+ ### 核心功能
11
+
10
12
  - 🚀 **自动登录** - 支持 WIKIGG 和 bwiki 双站点登录
11
13
  - 🔄 **自动重连** - 登录过期时自动重新登录并重试
12
14
  - 📄 **页面同步** - 单个页面同步到目标站点
13
15
  - 📦 **模块同步** - 批量同步指定前缀的页面
14
16
  - 🖼️ **图片同步** - 同步页面引用的图片文件
15
17
  - 🔍 **页面查询** - 查询页面历史版本和当前版本
16
- - 📊 **日志控制台** - 可视化日志查看和管理
17
18
  - ⚡ **增量更新** - 定时检测并同步最近修改的内容
18
19
 
20
+ ### TodoList 功能
21
+
22
+ - ✅ **待办事项管理** - 增删改查待办事项
23
+ - 📋 **控制台页面** - 可视化管理 TodoList
24
+ - 🔄 **模块同步** - 自动同步 wiki.gg 模块到 TodoList
25
+ - 📊 **同步状态检查** - 自动检查模块同步状态
26
+ - 🕐 **定时任务** - 每周一同步模块,每周二检查状态
27
+ - 🎨 **可爱风格** - 萌系风格的 UI 设计
28
+ - 🔍 **搜索筛选** - 支持关键词搜索和状态筛选
29
+ - 📄 **分页显示** - 支持分页和自定义每页条数
30
+ - 📱 **移动端适配** - 响应式设计,支持手机访问
31
+
19
32
  ## 安装
20
33
 
21
34
  ```bash
@@ -45,6 +58,21 @@ yarn add koishi-plugin-oni-sync-bot
45
58
  | `sync.gg <标题>` | 同步单个页面到 WIKIGG |
46
59
  | `sync.module <前缀>` | 同步指定前缀的所有页面 |
47
60
  | `sync.img <标题>` | 同步页面引用的图片 |
61
+ | `sync.update` | 执行增量更新 |
62
+
63
+ ### TodoList 命令
64
+
65
+ | 命令 | 说明 | 权限要求 |
66
+ | ---------------------- | ------------------------------------- | -------- |
67
+ | `todo.list` | 查看 TodoList(重定向到网页) | - |
68
+ | `todo.add <标题>` | 添加待办事项 | - |
69
+ | `todo.edit <id>` | 编辑待办事项 | - |
70
+ | `todo.complete <id>` | 标记待办事项为完成 | - |
71
+ | `todo.uncomplete <id>` | 标记待办事项为未完成 | - |
72
+ | `todo.delete <id>` | 删除待办事项 | 2 |
73
+ | `todo.clear` | 清空 TodoList | 2 |
74
+ | `todo.syncmodules` | 同步 wiki.gg 模块到 TodoList | - |
75
+ | `todo.checksync` | 检查模块同步状态 | - |
48
76
 
49
77
  ### 管理命令
50
78
 
@@ -52,49 +80,75 @@ yarn add koishi-plugin-oni-sync-bot
52
80
  | --------- | ---------------------- |
53
81
  | `relogin` | 手动重新登录两个机器人 |
54
82
 
55
- ## 使用示例
83
+ ## TodoList 命令示例
56
84
 
57
- ### 同步单个页面
85
+ ### 添加待办
58
86
 
59
87
  ```
60
- /sync.page 缺氧
88
+ /todo.add 同步模块 -c "同步 Module:Data" -u "管理员"
61
89
  ```
62
90
 
63
- ### 同步模块
91
+ ### 编辑待办
64
92
 
65
93
  ```
66
- /sync.module 缺氧:
94
+ /todo.edit 1 -t "新标题" -c "新内容" -u "编辑者"
67
95
  ```
68
96
 
69
- ### 同步图片
97
+ ### 同步模块
70
98
 
71
99
  ```
72
- /sync.img 电解器.png
100
+ /todo.syncmodules
73
101
  ```
74
102
 
75
- ### 手动重新登录
103
+ ### 检查同步状态
76
104
 
77
105
  ```
78
- /relogin
106
+ /todo.checksync
79
107
  ```
80
108
 
81
109
  ## 控制台功能
82
110
 
83
- 插件提供了可视化的控制台界面:
111
+ 插件提供了两个可视化的控制台界面:
112
+
113
+ ### 日志控制台
84
114
 
85
115
  - 📋 **日志查看** - 按级别(全部/信息/警告/错误)筛选日志
86
116
  - 🔍 **搜索功能** - 快速搜索日志内容
87
117
  - ⏬ **自动滚动** - 新日志自动滚动到底部
88
118
  - 🎯 **一键滚动** - 手动跳转到顶部或底部
89
119
 
120
+ ### TodoList 控制台
121
+
122
+ - ✨ **可爱风格** - 萌系设计的 UI 界面
123
+ - ➕ **新增待办** - 弹窗表单添加待办
124
+ - ✏️ **编辑待办** - 修改待办内容和状态
125
+ - ✅ **完成标记** - 一键标记完成/未完成
126
+ - 🔍 **搜索筛选** - 支持按标题、内容搜索,按状态筛选
127
+ - 📄 **分页显示** - 超过 8 条自动分页,支持自定义每页条数
128
+ - 📊 **统计信息** - 显示总数、已完成、未完成数量
129
+ - 📱 **移动端适配** - 响应式布局,完美支持手机访问
130
+
131
+ **注意:控制台界面无法删除待办事项,删除操作仅可通过命令完成(需要权限 2)。**
132
+
133
+ ## 定时任务
134
+
135
+ 插件使用 `koishi-plugin-cron` 提供定时任务功能:
136
+
137
+ - **每周一 00:00** - 自动同步 wiki.gg 所有模块到 TodoList
138
+ - **每周二 00:00** - 自动检查模块同步状态,更新完成标记
139
+
90
140
  ## 技术特性
91
141
 
92
142
  - ✅ **TypeScript** - 完整的类型支持
93
143
  - 🎯 **面向对象** - 基于类的插件架构
94
144
  - 🔌 **服务化设计** - 核心功能封装为独立服务
95
145
  - 🧩 **模块化** - 功能拆分为独立子插件
96
- - 🔄 **自动重试** - 登录失败自动重试
146
+ - 🔄 **自动重试** - 登录失败自动重试(最多 3 次)
97
147
  - 🔐 **自动重连** - 登录过期自动重新登录
148
+ - 🛡️ **错误处理** - 完善的错误处理和日志记录
149
+ - ⏱️ **API 限流** - 模块同步时请求间隔 1 秒
150
+ - 🔄 **API 重试** - API 调用失败自动重试(最多 3 次)
151
+ - 📦 **数据库持久化** - TodoList 数据存储在数据库中
98
152
 
99
153
  ## 项目结构
100
154
 
@@ -104,35 +158,60 @@ koishi-plugin-oni-sync-bot/
104
158
  │ ├── services/ # 服务层
105
159
  │ │ └── wikiBotService.ts # Wiki 机器人服务
106
160
  │ ├── plugins/ # 插件层
107
- │ │ ├── command.ts # 基础命令插件
108
161
  │ │ ├── queryCommands.ts # 查询命令插件
109
162
  │ │ ├── syncCommands.ts # 同步命令插件
110
163
  │ │ ├── updateCommands.ts # 更新命令插件
111
- │ │ └── consoleLogProvider.ts # 日志控制台插件
164
+ │ │ ├── consoleLogProvider.ts # 日志控制台插件
165
+ │ │ ├── todoList.ts # TodoList 插件
166
+ │ │ ├── databaseExtension.ts # 数据库扩展
167
+ │ │ └── routeRedirect.ts # 路由重定向
112
168
  │ ├── sync/ # 同步逻辑
113
169
  │ │ ├── pageSync.ts # 页面同步
114
170
  │ │ ├── moduleSync.ts # 模块同步
115
171
  │ │ └── imgSync.ts # 图片同步
116
172
  │ ├── utils/ # 工具函数
117
173
  │ │ └── tools.ts # 通用工具
118
- │ ├── config/ # 配置
119
- │ │ └── index.ts # 配置定义
120
174
  │ ├── client/ # 前端
121
175
  │ │ ├── page.vue # 日志页面
176
+ │ │ ├── onitodolist/ # TodoList 页面
177
+ │ │ │ └── todolist.vue # TodoList 主组件
122
178
  │ │ └── index.ts # 入口
123
179
  │ └── index.ts # 主入口
124
180
  ├── package.json
125
181
  └── tsconfig.json
126
182
  ```
127
183
 
184
+ ## TodoList 模块同步逻辑
185
+
186
+ ### 模块同步流程
187
+
188
+ 1. 从 wiki.gg 获取命名空间 828(Module)的所有页面
189
+ 2. 逐个获取每个模块的最新修订信息(用户、时间、注释)
190
+ 3. 将模块信息存入 TodoList:
191
+ - `title` = 模块名称
192
+ - `content` = 修订注释
193
+ - `createdBy` = 修订用户
194
+ - `createdAt` / `updatedAt` = 修订时间
195
+ - `completed` = false(默认未完成)
196
+
197
+ ### 同步状态检查
198
+
199
+ 1. 获取所有 TodoList 中的待办事项
200
+ 2. 对每个待办:
201
+ - 从 wiki.gg 获取最新修订时间
202
+ - 从 bwikia 获取最新修订时间
203
+ - 对比时间:
204
+ - 如果 bwikia 时间 ≥ wiki.gg 时间 → 标记为已完成
205
+ - 如果 bwikia 时间 < wiki.gg 时间 → 标记为未完成
206
+
128
207
  ## 开发
129
208
 
130
209
  ```bash
131
- # 创建KOISHI项目
210
+ # 创建 KOISHI 项目
132
211
  yarn create koishi
133
212
 
134
213
  # 克隆项目
135
- git clone <https://github.com/Charles-LF/oni-sync-bot.git>
214
+ git clone https://github.com/Charles-LF/oni-sync-bot.git
136
215
 
137
216
  # 安装依赖
138
217
  yarn install